diff --git a/cmake/Modules/UseWarnings.cmake b/cmake/Modules/UseWarnings.cmake index 8e42423d6..399cd066f 100644 --- a/cmake/Modules/UseWarnings.cmake +++ b/cmake/Modules/UseWarnings.cmake @@ -12,3 +12,17 @@ if (CXX_COMPAT_GCC) add_options (ALL_LANGUAGES ALL_BUILDS "${_warn_flag}") endif (_warn_flag) endif () + +option(SILENCE_DUNE_WARNINGS "Disable warnings from DUNE?" OFF) +if(SILENCE_DUNE_WARNINGS AND CXX_COMPAT_GCC) + file(WRITE ${CMAKE_BINARY_DIR}/dune_disable_pragmas.h " +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored \"-Wshadow\" +#pragma GCC diagnostic ignored \"-Wunused-parameter\" +#pragma GCC diagnostic ignored \"-Wignored-qualifiers\" +#pragma GCC diagnostic ignored \"-Wmismatched-tags\"") + file(WRITE ${CMAKE_BINARY_DIR}/dune_reenable_pragmas.h "#pragma GCC diagnostic pop") +else() + file(WRITE ${CMAKE_BINARY_DIR}/dune_disable_pragmas.h "") + file(WRITE ${CMAKE_BINARY_DIR}/dune_reenable_pragmas.h "") +endif()