diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml index 0a2ca82..b0f1868 100644 --- a/.github/workflows/c-cpp.yml +++ b/.github/workflows/c-cpp.yml @@ -337,8 +337,8 @@ jobs: strategy: matrix: config: - - {c: "gcc", cxx: "g++", flags: "-ffunction-sections -Wno-error=maybe-uninitialized -Wno-error=attributes -Wno-error=cpp"} - - {c: "clang", cxx: "clang++", flags: "-fuse-ld=lld -Wno-unused-command-line-argument -Wno-nan-infinity-disabled -Wno-error=cpp"} + - {c: "gcc", cxx: "g++", flags: "-ffunction-sections -Wno-error=maybe-uninitialized -Wno-error=attributes"} + - {c: "clang", cxx: "clang++", flags: "-fuse-ld=lld -Wno-unused-command-line-argument -Wno-nan-infinity-disabled"} defaults: run: diff --git a/cmake/flags.cmake b/cmake/flags.cmake index e6b57b8..08d901d 100644 --- a/cmake/flags.cmake +++ b/cmake/flags.cmake @@ -23,6 +23,10 @@ if (CMAKE_CXX_COMPILER_ID MATCHES GNU) set(WARNING_FLAGS "${WARNING_FLAGS} -Wstrict-overflow=2") endif() + if (NOT (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 15)) + set(WARNING_FLAGS "${WARNING_FLAGS} -Wno-error=cpp") + endif() + if (DISABLE_WARNINGS) set(WARNING_FLAGS "-w") endif() @@ -111,6 +115,10 @@ elseif (CMAKE_CXX_COMPILER_ID MATCHES Clang) set(WARNING_FLAGS "-Wall -Wextra -Wno-unused-function -Wno-undefined-internal -Wunreachable-code-aggressive -Wmissing-prototypes -Wmissing-variable-declarations -Werror") + if (NOT (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 20)) + set(WARNING_FLAGS "${WARNING_FLAGS} -Wno-error=cpp") + endif() + if (DISABLE_WARNINGS) set(WARNING_FLAGS "-w") endif()