deal.II version GIT relicensing-3350-g0ff4b5c3a0 2025-05-21 15:30:00+00:00
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Loading...
Searching...
No Matches
config.h
Go to the documentation of this file.
1// ------------------------------------------------------------------------
2//
3// SPDX-License-Identifier: LGPL-2.1-or-later
4// Copyright (C) 2012 - 2024 by the deal.II authors
5//
6// This file is part of the deal.II library.
7//
8// Part of the source code is dual licensed under Apache-2.0 WITH
9// LLVM-exception OR LGPL-2.1-or-later. Detailed license information
10// governing the source code and code contributions can be found in
11// LICENSE.md and CONTRIBUTING.md at the top level directory of deal.II.
12//
13// ------------------------------------------------------------------------
14
15#ifndef dealii_config_h
16#define dealii_config_h
17
18/***********************************************************************
19 * Information about deal.II:
20 */
21
22#define DEAL_II_PACKAGE_NAME "deal.II"
23
24#define DEAL_II_PACKAGE_VERSION "GIT relicensing-3350-g0ff4b5c3a0 2025-05-21 15:30:00+00:00"
25
26#define DEAL_II_VERSION_MAJOR GIT relicensing-3350-g0ff4b5c3a0 2025-05-21 15:30:00+00:00
27#define DEAL_II_VERSION_MINOR GIT relicensing-3350-g0ff4b5c3a0 2025-05-21 15:30:00+00:00
28#define DEAL_II_VERSION_SUBMINOR GIT relicensing-3350-g0ff4b5c3a0 2025-05-21 15:30:00+00:00
29
30/***********************************************************************
31 * Two macro names that we put at the top and bottom of all deal.II files
32 * and that will be expanded to "namespace dealii {" and "}".
33 */
34
35#define DEAL_II_NAMESPACE_OPEN namespace dealii {
36#define DEAL_II_NAMESPACE_CLOSE }
37
38/***********************************************************************
39 * A variable that can be used to query whether we are compiling in
40 * debug or release mode.
41 */
42
44
51{
52 debug,
54};
55
62#ifdef DEBUG
64#else
66#endif
67
68
73constexpr bool running_in_debug_mode()
74{
76}
77
78
80
81
82/***********************************************************************
83 * Configured deal.II features:
84 */
85
86/* #undef DEAL_II_WITH_64BIT_INDICES */
87/* #undef DEAL_II_WITH_ADOLC */
88/* #undef DEAL_II_WITH_ARPACK */
89/* #undef DEAL_II_WITH_ARBORX */
90/* #undef DEAL_II_WITH_ASSIMP */
91#define DEAL_II_FEATURE_BOOST_BUNDLED_CONFIGURED
92/* #undef DEAL_II_WITH_CGAL */
93/* #undef DEAL_II_WITH_COMPLEX_VALUES */
94/* #undef DEAL_II_WITH_GINKGO */
95/* #undef DEAL_II_WITH_GMSH */
96/* #undef DEAL_II_WITH_GSL */
97/* #undef DEAL_II_WITH_HDF5 */
98#define DEAL_II_WITH_KOKKOS
99#define DEAL_II_FEATURE_KOKKOS_BUNDLED_CONFIGURED
100/* #undef DEAL_II_WITH_LAPACK */
101/* #undef LAPACK_WITH_64BIT_BLAS_INDICES */
102/* #undef DEAL_II_LAPACK_WITH_MKL */
103/* #undef DEAL_II_WITH_MAGIC_ENUM */
104/* #undef DEAL_II_WITH_METIS */
105/* #undef DEAL_II_WITH_MPI */
106#define DEAL_II_WITH_MUPARSER
107/* #undef DEAL_II_WITH_MUMPS */
108#define DEAL_II_FEATURE_MUPARSER_BUNDLED_CONFIGURED
109/* #undef DEAL_II_WITH_OPENCASCADE */
110/* #undef DEAL_II_WITH_P4EST */
111/* #undef DEAL_II_WITH_PETSC */
112/* #undef DEAL_II_WITH_PSBLAS */
113/* #undef DEAL_II_WITH_SCALAPACK */
114/* #undef DEAL_II_WITH_SLEPC */
115/* #undef DEAL_II_WITH_SUNDIALS */
116/* #undef DEAL_II_WITH_SYMENGINE */
117#define DEAL_II_WITH_TASKFLOW
118#define DEAL_II_FEATURE_TASKFLOW_BUNDLED_CONFIGURED
119#define DEAL_II_WITH_TBB
120#define DEAL_II_FEATURE_TBB_BUNDLED_CONFIGURED
121/* #undef DEAL_II_WITH_TRILINOS */
122/* #undef DEAL_II_WITH_UMFPACK */
123/* #undef DEAL_II_FEATURE_UMFPACK_BUNDLED_CONFIGURED */
124#define DEAL_II_USE_VECTORIZATION_GATHER
125/* #undef DEAL_II_WITH_VTK */
126/* #undef DEAL_II_WITH_ZLIB */
127
128#ifdef DEAL_II_WITH_TBB
133#define DEAL_II_WITH_THREADS
134
135#define TBB_SUPPRESS_DEPRECATED_MESSAGES 1
136
137/* #undef DEAL_II_TBB_WITH_ONEAPI */
138
139#endif
140
141/***********************************************************************
142 * Compiler bugs:
143 *
144 * For documentation see cmake/checks/check_03_compiler_bugs.cmake
145 */
146
147/* #undef DEAL_II_DELETED_MOVE_CONSTRUCTOR_BUG */
148
149/***********************************************************************
150 * Compiler features:
151 *
152 * For documentation see cmake/checks/check_01_compiler_features.cmake
153 */
154
155#define DEAL_II_COMPILER_USE_VECTOR_ARITHMETICS
156/* #undef DEAL_II_VECTOR_ITERATOR_IS_POINTER */
157#define DEAL_II_HAVE_BUILTIN_EXPECT
158#define DEAL_II_HAVE_GLIBC_STACKTRACE
159#define DEAL_II_HAVE_LIBSTDCXX_DEMANGLER
160/* #undef __PRETTY_FUNCTION__ */
161#define DEAL_II_ALWAYS_INLINE __attribute__((always_inline))
162#define DEAL_II_RESTRICT __restrict
163#define DEAL_II_COMPILER_HAS_DIAGNOSTIC_PRAGMA
164
165
166#define DEAL_II_HOST_DEVICE KOKKOS_FUNCTION
167#define DEAL_II_HOST_DEVICE_ALWAYS_INLINE KOKKOS_FORCEINLINE_FUNCTION
168
169// clang++ assumes that all constexpr functions are __host__ __device__ when
170// Kokkos was configured with CUDA or HIP support. This is problematic
171// when calling non-constexpr functions in constexpr functions. Hence, we
172// need a way to annotate functions explicitly as host-only.
173/* #undef DEAL_II_KOKKOS_ENABLE_HIP */
174#if (defined(__clang__) && defined(__CUDA__)) || defined(DEAL_II_KOKKOS_ENABLE_HIP)
175# define DEAL_II_HOST __host__
176#else
177# define DEAL_II_HOST
178#endif
179
180
181/***********************************************************************
182 * CPU features:
183 *
184 * For documentation see cmake/checks/check_01_cpu_features.cmake
185 */
186
187/* #undef DEAL_II_WORDS_BIGENDIAN */
188
189/*
190 * This sets the largest number of vectorization bits detected for the given
191 * compiler flags and hardware (e.g. 256 for AVX on x86-64 architectures) for
192 * use in deal.II's intrinsics-based VectorizedArray class.
193 */
194#define DEAL_II_VECTORIZATION_WIDTH_IN_BITS 128
195
196/*
197 * Backward compatibility setting
198 */
199#if DEAL_II_VECTORIZATION_WIDTH_IN_BITS == 512
200#define DEAL_II_COMPILER_VECTORIZATION_LEVEL 3
201#elif DEAL_II_VECTORIZATION_WIDTH_IN_BITS == 256
202#define DEAL_II_COMPILER_VECTORIZATION_LEVEL 2
203#elif DEAL_II_VECTORIZATION_WIDTH_IN_BITS == 128
204#define DEAL_II_COMPILER_VECTORIZATION_LEVEL 1
205#else
206#define DEAL_II_COMPILER_VECTORIZATION_LEVEL 0
207#endif
208
209#define DEAL_II_OPENMP_SIMD_PRAGMA _Pragma("omp simd")
210
211
212/***********************************************************************
213 * Language features:
214 *
215 * For documentation see cmake/checks/check_01_cxx_features.cmake
216 */
217
218/* #undef DEAL_II_HAVE_CXX14 */
219#define DEAL_II_HAVE_CXX17
220/* #undef DEAL_II_HAVE_CXX20 */
221/* #undef DEAL_II_HAVE_CXX23 */
222
223#define DEAL_II_HAVE_FP_EXCEPTIONS
224/* #undef DEAL_II_HAVE_COMPLEX_OPERATOR_OVERLOADS */
225#define DEAL_II_HAVE_CXX17_BESSEL_FUNCTIONS
226/* #undef DEAL_II_CXX14_CONSTEXPR_BUG */
227
228// The following three are defined for backwards compatibility with older
229// deal.II versions:
230#define DEAL_II_WITH_CXX11
231#define DEAL_II_WITH_CXX14
232#define DEAL_II_WITH_CXX17
233
240#if defined(DEAL_II_HAVE_CXX20) && !defined(DEAL_II_DOXYGEN_DO_NOT_PARSE_REQUIRES_CLAUSES)
241# define DEAL_II_CXX20_REQUIRES(condition) requires(condition)
242#else
243# define DEAL_II_CXX20_REQUIRES(condition)
244#endif
245
251#ifdef DEAL_II_HAVE_CXX23
252# define DEAL_II_CXX23_ASSUME(expr) [[assume(expr)]]
253#else
254# if defined(__clang__)
255# define DEAL_II_CXX23_ASSUME(expr) __builtin_assume(static_cast<bool>(expr))
256# elif defined(_MSC_VER) || defined(__ICC)
257# define DEAL_II_CXX23_ASSUME(expr) __assume(expr);
258# else
259/* no way with GCC to express this without evaluating 'expr' */
260# define DEAL_II_CXX23_ASSUME(expr) \
261 do \
262 { \
263 } \
264 while (false)
265# endif
266#endif
267
268#define DEAL_II_FALLTHROUGH [[fallthrough]]
269#define DEAL_II_CONSTEXPR constexpr
270
271
272
273/***********************************************************************
274 * Dealing with deprecations.
275 */
276
281#define DEAL_II_DEPRECATED [[deprecated]]
282#define DEAL_II_DEPRECATED_WITH_COMMENT(comment) [[deprecated(comment)]]
283
290/* #undef DEAL_II_EARLY_DEPRECATIONS */
291#ifndef DEAL_II_DEPRECATED_EARLY
292// guard to allow user to override DEAL_II_DEPRECATED_EARLY
293#ifdef DEAL_II_EARLY_DEPRECATIONS
294#define DEAL_II_DEPRECATED_EARLY [[deprecated]]
295#else
296#define DEAL_II_DEPRECATED_EARLY
297#endif
298#endif
299
300#ifndef DEAL_II_DEPRECATED_EARLY_WITH_COMMENT
301// guard to allow user to override DEAL_II_DEPRECATED_EARLY
302#ifdef DEAL_II_EARLY_DEPRECATIONS
303#define DEAL_II_DEPRECATED_EARLY_WITH_COMMENT(comment) [[deprecated(comment)]]
304#else
305#define DEAL_II_DEPRECATED_EARLY_WITH_COMMENT(comment)
306#endif
307#endif
308
309
310/***********************************************************************
311 * System features:
312 *
313 * For documentation see cmake/checks/check_02_system_features.cmake
314 */
315
316#define DEAL_II_HAVE_SYS_RESOURCE_H
317#define DEAL_II_HAVE_UNISTD_H
318#define DEAL_II_HAVE_GETHOSTNAME
319#define DEAL_II_HAVE_GETPID
320/* #undef DEAL_II_HAVE_JN */
321
322/* #undef DEAL_II_MSVC */
323
324
325/***********************************************************************
326 * Feature configuration
327 *
328 * For documentation see cmake/configure/configure_*.cmake and
329 * cmake/modules/Find*.cmake
330 */
331
332/* cmake/modules/FindADOLC.cmake */
333/* #undef DEAL_II_ADOLC_WITH_ATRIG_ERF */
334/* #undef DEAL_II_ADOLC_WITH_ADVANCED_BRANCHING */
335/* #undef DEAL_II_ADOLC_WITH_TAPELESS_REFCOUNTING */
336
337/* cmake/modules/FindARBORX.cmake */
338/* #undef DEAL_II_ARBORX_WITH_MPI */
339
340/* cmake/modules/FindARPACK.cmake */
341/* #undef DEAL_II_ARPACK_WITH_PARPACK */
342
343/* cmake/modules/FindGMSH.cmake */
344/* #undef DEAL_II_GMSH_WITH_API */
345
346/* cmake/modules/FindPETSC.cmake */
347/* #undef DEAL_II_PETSC_WITH_COMPLEX */
348/* #undef DEAL_II_PETSC_WITH_HYPRE */
349/* #undef DEAL_II_PETSC_WITH_MUMPS */
350/* #undef DEAL_II_PETSC_WITH_KOKKOS */
351
352/* cmake/modules/FindSUNDIALS.cmake */
353/* #undef DEAL_II_SUNDIALS_WITH_IDAS */
354
355/* cmake/modules/FindSYMENGINE.cmake */
356/* #undef DEAL_II_SYMENGINE_WITH_LLVM */
357
358/* cmake/configure/configure_20_boost.cmake */
359/* #undef DEAL_II_BOOST_HAS_BROKEN_HEADER_DEPRECATIONS */
360
361/* cmake/configure/configure_50_cgal.cmake */
362/* #undef DEAL_II_CGAL_HAS_DEPRECATED_BOOST_INCLUDES */
363
364/* cmake/configure/configure_2_trilinos.cmake */
365/* #undef DEAL_II_TRILINOS_CXX_SUPPORTS_SACADO_COMPLEX_RAD */
366/* #undef DEAL_II_TRILINOS_WITH_AMESOS2 */
367/* #undef DEAL_II_TRILINOS_WITH_BELOS */
368/* #undef DEAL_II_TRILINOS_WITH_EPETRAEXT */
369/* #undef DEAL_II_TRILINOS_WITH_IFPACK2 */
370/* #undef DEAL_II_TRILINOS_WITH_MUELU */
371/* #undef DEAL_II_TRILINOS_WITH_NOX */
372/* #undef DEAL_II_TRILINOS_WITH_ROL */
373/* #undef DEAL_II_TRILINOS_WITH_SACADO */
374/* #undef DEAL_II_TRILINOS_WITH_SEACAS */
375/* #undef DEAL_II_TRILINOS_WITH_TPETRA */
376/* #undef DEAL_II_TRILINOS_WITH_ZOLTAN */
377
378#if defined(DEAL_II_BOOST_HAS_BROKEN_HEADER_DEPRECATIONS) || \
379 defined(DEAL_II_CGAL_HAS_DEPRECATED_BOOST_INCLUDES)
380# ifndef BOOST_ALLOW_DEPRECATED_HEADERS
381# define BOOST_ALLOW_DEPRECATED_HEADERS
382# endif
383#endif
384
385/***********************************************************************
386 * Various macros for version number query and comparison:
387 *
388 * These macros are defined to make testing for specific versions within
389 * the deal.II main code as simple as possible.
390 */
391
392/*
393 * deal.II:
394 */
395
402#define DEAL_II_VERSION_GTE(major,minor,subminor) \
403 ((DEAL_II_VERSION_MAJOR * 10000 + \
404 DEAL_II_VERSION_MINOR * 100 + \
405 DEAL_II_VERSION_SUBMINOR) \
406 >= \
407 (major)*10000 + (minor)*100 + (subminor))
408
409/*
410 * boost:
411 */
412#define DEAL_II_BOOST_VERSION_MAJOR 1
413#define DEAL_II_BOOST_VERSION_MINOR 84
414#define DEAL_II_BOOST_VERSION_SUBMINOR 0
415
416#define DEAL_II_BOOST_VERSION_GTE(major,minor,subminor) \
417 ((DEAL_II_BOOST_VERSION_MAJOR * 100000 + \
418 DEAL_II_BOOST_VERSION_MINOR * 100 + \
419 DEAL_II_BOOST_VERSION_SUBMINOR) \
420 >= \
421 (major)*100000 + (minor)*100 + (subminor))
422
423/*
424 * Gmsh:
425 */
426#ifdef DEAL_II_WITH_GMSH
427# define DEAL_II_GMSH_EXECUTABLE_PATH ""
428#endif
429
430
435#ifdef DEAL_II_WITH_KOKKOS
436# define DEAL_II_KOKKOS_VERSION_MAJOR 4
437# define DEAL_II_KOKKOS_VERSION_MINOR 5
438# define DEAL_II_KOKKOS_VERSION_SUBMINOR 1
439
440# define DEAL_II_KOKKOS_VERSION_GTE(major,minor,subminor) \
441 ((DEAL_II_KOKKOS_VERSION_MAJOR * 10000 + \
442 DEAL_II_KOKKOS_VERSION_MINOR * 100 + \
443 DEAL_II_KOKKOS_VERSION_SUBMINOR) \
444 >= \
445 (major)*10000 + (minor)*100 + (subminor))
446#endif
447
448
453#ifdef DEAL_II_WITH_OPENCASCADE
454# define DEAL_II_OPENCASCADE_VERSION_MAJOR
455# define DEAL_II_OPENCASCADE_VERSION_MINOR
456# define DEAL_II_OPENCASCADE_VERSION_SUBMINOR
457
458# define DEAL_II_OPENCASCADE_VERSION_GTE(major,minor,subminor) \
459 ((DEAL_II_OPENCASCADE_VERSION_MAJOR * 10000 + \
460 DEAL_II_OPENCASCADE_VERSION_MINOR * 100 + \
461 DEAL_II_OPENCASCADE_VERSION_SUBMINOR) \
462 >= \
463 (major)*10000 + (minor)*100 + (subminor))
464#endif
465
466/*
467 * p4est:
468 */
469
470#ifdef DEAL_II_WITH_P4EST
471# define DEAL_II_P4EST_VERSION_MAJOR
472# define DEAL_II_P4EST_VERSION_MINOR
473# define DEAL_II_P4EST_VERSION_SUBMINOR
474# define DEAL_II_P4EST_VERSION_PATCH
475
476# define DEAL_II_P4EST_VERSION_GTE(major,minor,subminor,patch) \
477 ((DEAL_II_P4EST_VERSION_MAJOR * 1000000 + \
478 DEAL_II_P4EST_VERSION_MINOR * 10000 + \
479 DEAL_II_P4EST_VERSION_SUBMINOR * 100 + \
480 DEAL_II_P4EST_VERSION_PATCH) \
481 >= \
482 (major)*1000000 + (minor)*10000 + (subminor)*100 + (patch))
483#endif
484
485/*
486 * SUNDIALS:
487 */
488
489#ifdef DEAL_II_WITH_SUNDIALS
490 # define DEAL_II_SUNDIALS_VERSION_MAJOR
491 # define DEAL_II_SUNDIALS_VERSION_MINOR
492 # define DEAL_II_SUNDIALS_VERSION_PATCH
493
494 #define DEAL_II_SUNDIALS_VERSION_GTE(major,minor,patch) \
495 ((DEAL_II_SUNDIALS_VERSION_MAJOR * 10000 + \
496 DEAL_II_SUNDIALS_VERSION_MINOR * 100 + \
497 DEAL_II_SUNDIALS_VERSION_PATCH) \
498 >= \
499 (major)*10000 + (minor)*100 + (patch))
500
501 #define DEAL_II_SUNDIALS_VERSION_LT(major,minor,patch) \
502 ((DEAL_II_SUNDIALS_VERSION_MAJOR * 10000 + \
503 DEAL_II_SUNDIALS_VERSION_MINOR * 100 + \
504 DEAL_II_SUNDIALS_VERSION_PATCH) \
505 < \
506 (major)*10000 + (minor)*100 + (patch))
507#endif
508
509/*
510 * PETSc:
511 *
512 * Note: The following macros are defined in petscversion.h
513 * so we simply refer to the ones there.
514 */
515
516#ifdef DEAL_II_WITH_PETSC
517# include <petscversion.h>
518# define DEAL_II_PETSC_VERSION_LT(major,minor,subminor) \
519 PETSC_VERSION_LT(major,minor,subminor)
520# define DEAL_II_PETSC_VERSION_GTE(major,minor,subminor) \
521 PETSC_VERSION_GE(major,minor,subminor)
522#endif
523
524/*
525 * SLEPC:
526 */
527
528#ifdef DEAL_II_WITH_SLEPC
529# include <slepcversion.h>
530# define DEAL_II_SLEPC_VERSION_LT(major,minor,subminor) \
531 SLEPC_VERSION_LT(major,minor,subminor)
532# define DEAL_II_SLEPC_VERSION_GTE(major,minor,subminor) \
533 SLEPC_VERSION_GE(major,minor,subminor)
534#endif
535
536/*
537 * Trilinos:
538 */
539
540#ifdef DEAL_II_WITH_TRILINOS
541# define DEAL_II_TRILINOS_VERSION_MAJOR
542# define DEAL_II_TRILINOS_VERSION_MINOR
543# define DEAL_II_TRILINOS_VERSION_SUBMINOR
544
545# define DEAL_II_TRILINOS_VERSION_GTE(major,minor,subminor) \
546 ((DEAL_II_TRILINOS_VERSION_MAJOR * 10000 + \
547 DEAL_II_TRILINOS_VERSION_MINOR * 100 + \
548 DEAL_II_TRILINOS_VERSION_SUBMINOR) \
549 >= \
550 (major)*10000 + (minor)*100 + (subminor))
551#endif
552
553/*
554 * CGAL:
555 */
556
557#ifdef DEAL_II_WITH_CGAL
558# define DEAL_II_CGAL_VERSION_MAJOR
559# define DEAL_II_CGAL_VERSION_MINOR
560# define DEAL_II_CGAL_VERSION_SUBMINOR
561
562# define DEAL_II_CGAL_VERSION_GTE(major, minor, subminor) \
563 ((DEAL_II_CGAL_VERSION_MAJOR * 10000 + DEAL_II_CGAL_VERSION_MINOR * 100 + \
564 DEAL_II_CGAL_VERSION_SUBMINOR) >= \
565 (major)*10000 + (minor)*100 + (subminor))
566#endif
567
568/*
569 * MPI
570 */
571
572#ifdef DEAL_II_WITH_MPI
573# define DEAL_II_MPI_VERSION_MAJOR
574# define DEAL_II_MPI_VERSION_MINOR
575
576# define DEAL_II_MPI_VERSION_GTE(major,minor) \
577 ((DEAL_II_MPI_VERSION_MAJOR * 100 + \
578 DEAL_II_MPI_VERSION_MINOR) \
579 >= \
580 (major)*100 + (minor))
581#else
582# define DEAL_II_MPI_VERSION_GTE(major,minor) false
583#endif
584
585/* #undef DEAL_II_MPI_WITH_DEVICE_SUPPORT */
586
587/***********************************************************************
588 * Two macros to guard external header includes.
589 *
590 * Selectively disable diagnostics set by "-Wextra" (and similar flags) for
591 * GCC and compiler accepting GCC dialects (such as clang).
592 * "diagnostic push" is supported since gcc-4.6 and clang-3.3.
593 */
594
595#ifdef DEAL_II_COMPILER_HAS_DIAGNOSTIC_PRAGMA
596
597/* keep pragmas with an exclamation mark in order.. */
598# define DEAL_II_DISABLE_EXTRA_DIAGNOSTICS \
599_Pragma("GCC diagnostic push") \
600_Pragma("GCC diagnostic ignored \"-Wunknown-pragmas\"") \
601_Pragma("GCC diagnostic ignored \"-Wpragmas\"") \
602_Pragma("GCC diagnostic ignored \"-Wunknown-warning-option\"") \
603_Pragma("GCC diagnostic ignored \"-Wunknown-warning\"") \
604_Pragma("GCC diagnostic ignored \"-Wextra\"") \
605_Pragma("GCC diagnostic ignored \"-Waddress-of-packed-member\"") \
606_Pragma("GCC diagnostic ignored \"-Wcast-function-type\"") \
607_Pragma("GCC diagnostic ignored \"-Wdeprecated-copy\"") \
608_Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") \
609_Pragma("GCC diagnostic ignored \"-Wdeprecated-volatile\"") \
610_Pragma("GCC diagnostic ignored \"-Wexpansion-to-defined\"") \
611_Pragma("GCC diagnostic ignored \"-Wfloat-conversion\"") \
612_Pragma("GCC diagnostic ignored \"-Wignored-attributes\"") \
613_Pragma("GCC diagnostic ignored \"-Wignored-qualifiers\"") \
614_Pragma("GCC diagnostic ignored \"-Wimplicit-fallthrough\"") \
615_Pragma("GCC diagnostic ignored \"-Winfinite-recursion\"") \
616_Pragma("GCC diagnostic ignored \"-Wint-in-bool-context\"") \
617_Pragma("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") \
618_Pragma("GCC diagnostic ignored \"-Wmisleading-indentation\"") \
619_Pragma("GCC diagnostic ignored \"-Wmissing-field-initializers\"") \
620_Pragma("GCC diagnostic ignored \"-Wnested-anon-types\"") \
621_Pragma("GCC diagnostic ignored \"-Wnon-template-friend\"") \
622_Pragma("GCC diagnostic ignored \"-Wnon-virtual-dtor\"") \
623_Pragma("GCC diagnostic ignored \"-Wnonnull\"") \
624_Pragma("GCC diagnostic ignored \"-Woverflow\"") \
625_Pragma("GCC diagnostic ignored \"-Woverloaded-virtual\"") \
626_Pragma("GCC diagnostic ignored \"-Wpedantic\"") \
627_Pragma("GCC diagnostic ignored \"-Wsuggest-override\"") \
628_Pragma("GCC diagnostic ignored \"-Wtautological-constant-out-of-range-compare\"") \
629_Pragma("GCC diagnostic ignored \"-Wtautological-overlap-compare\"") \
630_Pragma("GCC diagnostic ignored \"-Wtype-limits\"") \
631_Pragma("GCC diagnostic ignored \"-Wundef\"") \
632_Pragma("GCC diagnostic ignored \"-Wunused-but-set-parameter\"") \
633_Pragma("GCC diagnostic ignored \"-Wunused-but-set-variable\"") \
634_Pragma("GCC diagnostic ignored \"-Wunused-function\"") \
635_Pragma("GCC diagnostic ignored \"-Wunused-parameter\"") \
636_Pragma("GCC diagnostic ignored \"-Wunused-private-field\"") \
637_Pragma("GCC diagnostic ignored \"-Wunused-variable\"") \
638_Pragma("GCC diagnostic ignored \"-Wuse-after-free\"") \
639_Pragma("GCC diagnostic warning \"-Wpragmas\"")
640
641# define DEAL_II_ENABLE_EXTRA_DIAGNOSTICS \
642_Pragma("GCC diagnostic pop")
643
644#else
645
646# define DEAL_II_DISABLE_EXTRA_DIAGNOSTICS
647# define DEAL_II_ENABLE_EXTRA_DIAGNOSTICS
648
649#endif
650
651/***********************************************************************
652 * Define macros for picking the correct C linkage name for a Fortran function.
653 * See cmake/configure/configure_fortran_mangling.cmake for more information.
654 */
655
656#define DEAL_II_FORTRAN_MANGLE(name, NAME) name ## _
657
658#define DEAL_II_FORTRAN_MANGLE_UNDERSCORE(name, NAME) name ## _
659
660/***********************************************************************
661 * Define a portable preprocessor macro that generates custom warnings
662 * reporting the line and the file where the warning appears. Taken from:
663 * http://goodliffe.blogspot.com/2009/07/c-how-to-say-warning-to-visual-studio-c.html
664 */
665
666#ifdef _MSC_VER
667 #define DEAL_II_STRINGIZE_HELPER(x) #x
668 #define DEAL_II_STRINGIZE(x) DEAL_II_STRINGIZE_HELPER(x)
669 #define DEAL_II_DO_PRAGMA(x) __pragma(x)
670 #define DEAL_II_WARNING(desc) DEAL_II_DO_PRAGMA(message(__FILE__ "(" DEAL_II_STRINGIZE(__LINE__) ") : warning: " #desc))
671#else
672 #define DEAL_II_DO_PRAGMA(x) _Pragma(#x)
673 #define DEAL_II_WARNING(desc) DEAL_II_DO_PRAGMA(message(#desc))
674#endif
675
676
677/***********************************************************************
678 * Final inclusions:
679 */
680
681/*
682 * Include the boost version header to do a quick version check in case, by
683 * accident, we have configured with one version of boost but are compiling
684 * either the library or an external application with a different version of
685 * boost.
686 */
687#include <boost/version.hpp>
688static_assert(
689 BOOST_VERSION == 100000 * DEAL_II_BOOST_VERSION_MAJOR +
692 "The version number of boost that you are compiling with does not match the "
693 "version number of boost found during deal.II's configuration step. This "
694 "leads to difficult to understand bugs and is not supported. Please check "
695 "that you have set up your application with the same version of boost as "
696 "deal.II.");
697
698#endif
#define DEAL_II_BOOST_VERSION_MINOR
Definition config.h:413
constexpr LibraryBuildMode library_build_mode
Definition config.h:63
#define DEAL_II_NAMESPACE_OPEN
Definition config.h:35
constexpr bool running_in_debug_mode()
Definition config.h:73
#define DEAL_II_BOOST_VERSION_MAJOR
Definition config.h:412
#define DEAL_II_NAMESPACE_CLOSE
Definition config.h:36
LibraryBuildMode
Definition config.h:51
#define DEAL_II_BOOST_VERSION_SUBMINOR
Definition config.h:414