From 3d74da8df1a691c392efeda58843df587ac2341e Mon Sep 17 00:00:00 2001 From: Jeremy <51220084+jeremy-rifkin@users.noreply.github.com> Date: Sun, 14 Jan 2024 23:42:15 -0600 Subject: [PATCH] Turn on -Werror for CI pipelines --- CMakeLists.txt | 9 +++++++++ ci/build-in-all-configs.py | 4 ++++ ci/test-all-configs.py | 4 ++++ cmake/OptionVariables.cmake | 2 ++ 4 files changed, 19 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2d098d8..09158a1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -229,6 +229,15 @@ target_compile_options( $<$:/W4 /WX /permissive-> ) +if(CPPTRACE_WERROR_BUILD) + target_compile_options( + ${target_name} + PRIVATE + $<$>:-Werror> + $<$:/WX> + ) +endif() + # ---- Generate Build Info Headers ---- # used in export header generated below diff --git a/ci/build-in-all-configs.py b/ci/build-in-all-configs.py index e5dc2e3..913f4aa 100644 --- a/ci/build-in-all-configs.py +++ b/ci/build-in-all-configs.py @@ -48,6 +48,7 @@ def build(matrix): f"-DCMAKE_CXX_COMPILER={matrix['compiler']}", f"-DCMAKE_CXX_STANDARD={matrix['std']}", f"-DCPPTRACE_USE_EXTERNAL_LIBDWARF=On", + f"-DCPPTRACE_WERROR_BUILD=On", f"-D{matrix['unwind']}=On", f"-D{matrix['symbols']}=On", f"-D{matrix['demangle']}=On", @@ -63,6 +64,7 @@ def build(matrix): f"-DCMAKE_CXX_COMPILER={matrix['compiler']}", f"-DCMAKE_CXX_STANDARD={matrix['std']}", f"-DCPPTRACE_USE_EXTERNAL_LIBDWARF=On", + f"-DCPPTRACE_WERROR_BUILD=On", f"-D{matrix['unwind']}=On", f"-D{matrix['symbols']}=On", f"-D{matrix['demangle']}=On", @@ -98,6 +100,7 @@ def build_full_or_auto(matrix): f"-DCMAKE_CXX_COMPILER={matrix['compiler']}", f"-DCMAKE_CXX_STANDARD={matrix['std']}", f"-DCPPTRACE_USE_EXTERNAL_LIBDWARF=On", + f"-DCPPTRACE_WERROR_BUILD=On", f"-DCPPTRACE_BACKTRACE_PATH=/usr/lib/gcc/x86_64-linux-gnu/10/include/backtrace.h", ] if matrix["config"] != "": @@ -113,6 +116,7 @@ def build_full_or_auto(matrix): f"-DCMAKE_CXX_COMPILER={matrix['compiler']}", f"-DCMAKE_CXX_STANDARD={matrix['std']}", f"-DCPPTRACE_USE_EXTERNAL_LIBDWARF=On", + f"-DCPPTRACE_WERROR_BUILD=On", ] if matrix["config"] != "": args.append(f"{matrix['config']}") diff --git a/ci/test-all-configs.py b/ci/test-all-configs.py index 1cfd0d5..abdd7c0 100644 --- a/ci/test-all-configs.py +++ b/ci/test-all-configs.py @@ -155,6 +155,7 @@ def build(matrix): f"-DCMAKE_C_COMPILER={get_c_compiler_counterpart(matrix['compiler'])}", f"-DCMAKE_CXX_STANDARD={matrix['std']}", f"-DCPPTRACE_USE_EXTERNAL_LIBDWARF=On", + f"-DCPPTRACE_WERROR_BUILD=On", f"-D{matrix['unwind']}=On", f"-D{matrix['symbols']}=On", f"-D{matrix['demangle']}=On", @@ -176,6 +177,7 @@ def build(matrix): f"-DCMAKE_C_COMPILER={get_c_compiler_counterpart(matrix['compiler'])}", f"-DCMAKE_CXX_STANDARD={matrix['std']}", f"-DCPPTRACE_USE_EXTERNAL_LIBDWARF=On", + f"-DCPPTRACE_WERROR_BUILD=On", f"-D{matrix['unwind']}=On", f"-D{matrix['symbols']}=On", f"-D{matrix['demangle']}=On", @@ -202,6 +204,7 @@ def build_full_or_auto(matrix): f"-DCMAKE_C_COMPILER={get_c_compiler_counterpart(matrix['compiler'])}", f"-DCMAKE_CXX_STANDARD={matrix['std']}", f"-DCPPTRACE_USE_EXTERNAL_LIBDWARF=On", + f"-DCPPTRACE_WERROR_BUILD=On", f"-DCPPTRACE_BACKTRACE_PATH=/usr/lib/gcc/x86_64-linux-gnu/10/include/backtrace.h", "-DCPPTRACE_BUILD_TESTING=On", f"-DBUILD_SHARED_LIBS={matrix['shared']}" @@ -220,6 +223,7 @@ def build_full_or_auto(matrix): f"-DCMAKE_C_COMPILER={get_c_compiler_counterpart(matrix['compiler'])}", f"-DCMAKE_CXX_STANDARD={matrix['std']}", f"-DCPPTRACE_USE_EXTERNAL_LIBDWARF=On", + f"-DCPPTRACE_WERROR_BUILD=On", "-DCPPTRACE_BUILD_TESTING=On", f"-DBUILD_SHARED_LIBS={matrix['shared']}" ] diff --git a/cmake/OptionVariables.cmake b/cmake/OptionVariables.cmake index 377290d..6a4a3c6 100644 --- a/cmake/OptionVariables.cmake +++ b/cmake/OptionVariables.cmake @@ -161,12 +161,14 @@ option(CPPTRACE_USE_EXTERNAL_LIBDWARF "" OFF) option(CPPTRACE_CONAN "" OFF) option(CPPTRACE_VCPKG "" OFF) option(CPPTRACE_SANITIZER_BUILD "" OFF) +option(CPPTRACE_WERROR_BUILD "" OFF) mark_as_advanced( CPPTRACE_BACKTRACE_PATH CPPTRACE_ADDR2LINE_PATH CPPTRACE_ADDR2LINE_SEARCH_SYSTEM_PATH CPPTRACE_SANITIZER_BUILD + CPPTRACE_WERROR_BUILD CPPTRACE_CONAN CPPTRACE_VCPKG )