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