diff --git a/cmake/Modules/UseWarnings.cmake b/cmake/Modules/UseWarnings.cmake index 8e42423d..c4cab18d 100644 --- a/cmake/Modules/UseWarnings.cmake +++ b/cmake/Modules/UseWarnings.cmake @@ -12,3 +12,20 @@ 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_EXTERNAL_WARNINGS AND CXX_COMPAT_GCC) + file(WRITE ${CMAKE_BINARY_DIR}/disable_warning_pragmas.h " +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored \"-Wdeprecated-declarations\" +#pragma GCC diagnostic ignored \"-Wdeprecated-register\" +#pragma GCC diagnostic ignored \"-Wignored-qualifiers\" +#pragma GCC diagnostic ignored \"-Wmismatched-tags\" +#pragma GCC diagnostic ignored \"-Wshadow\" +#pragma GCC diagnostic ignored \"-Wsign-compare\" +#pragma GCC diagnostic ignored \"-Wunused-parameter\"") + file(WRITE ${CMAKE_BINARY_DIR}/reenable_warning_pragmas.h "#pragma GCC diagnostic pop") +else() + file(WRITE ${CMAKE_BINARY_DIR}/disable_warning_pragmas.h "") + file(WRITE ${CMAKE_BINARY_DIR}/reenable_warning_pragmas.h "") +endif() diff --git a/opm/core/linalg/LinearSolverIstl.cpp b/opm/core/linalg/LinearSolverIstl.cpp index 66229fd9..f7ffd732 100644 --- a/opm/core/linalg/LinearSolverIstl.cpp +++ b/opm/core/linalg/LinearSolverIstl.cpp @@ -30,6 +30,8 @@ // the deprecated member anyway (in this compilation unit) #define DUNE_COMMON_FIELDVECTOR_SIZE_IS_METHOD 1 +#include "disable_warning_pragmas.h" + // TODO: clean up includes. #include #include @@ -49,6 +51,8 @@ #include #endif +#include "reenable_warning_pragmas.h" + #include #include #include