From a9971ba8bf1d8b008a32c6ed8fea05cd8eb16748 Mon Sep 17 00:00:00 2001 From: Michael Platings Date: Fri, 10 May 2024 13:31:38 +0000 Subject: [PATCH] Remove -Werror from CMakeLists -Werror causes an error if an ignorable warning is found. This is beneficial during development because it ensures that warnings are fixed, but it is harmful for deployment since it can turn warnings that may be spurious into blockers for a user to build the project. Therefore don't specify -Werror in CMakeLists that must be used to build the project. Instead specify it in outer build scripts that a user will typically bypass. The idiomatic way to specify -Werror in CMake 3.24 and later is to use CMAKE_COMPILE_WARNING_AS_ERROR so use that. --- .devcontainer/clang_toolchain.cmake | 1 + benchmark/CMakeLists.txt | 1 - kleidicv/CMakeLists.txt | 1 - scripts/build.sh | 1 + scripts/ci.sh | 4 ++++ test/CMakeLists.txt | 1 - 6 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.devcontainer/clang_toolchain.cmake b/.devcontainer/clang_toolchain.cmake index 670754a91..d41a265f7 100644 --- a/.devcontainer/clang_toolchain.cmake +++ b/.devcontainer/clang_toolchain.cmake @@ -11,6 +11,7 @@ set(CMAKE_CXX_COMPILER_TARGET aarch64-linux-gnu) set(GNU_MACHINE aarch64-linux-gnu) set(CMAKE_FIND_LIBRARY_SUFFIXES ".a") set(CMAKE_BUILD_WITH_INSTALL_RPATH ON) +set(CMAKE_COMPILE_WARNING_AS_ERROR ON) set(CMAKE_BUILD_RPATH "") set(CMAKE_SHARED_LINKER_FLAGS "-fuse-ld=lld ${CMAKE_SHARED_LINKER_FLAGS}") set(CMAKE_EXE_LINKER_FLAGS "--rtlib=compiler-rt -fuse-ld=lld -static ${CMAKE_EXE_LINKER_FLAGS}") diff --git a/benchmark/CMakeLists.txt b/benchmark/CMakeLists.txt index 9f29557cb..5e79c0c4e 100644 --- a/benchmark/CMakeLists.txt +++ b/benchmark/CMakeLists.txt @@ -30,7 +30,6 @@ set(KLEIDICV_INCLUDE_DIR set(KLEIDICV_BENCHMARK_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) set(KLEIDICV_BENCHMARK_CXX_FLAGS - "-Werror" "-Wall" "-Wextra" "-Wold-style-cast" diff --git a/kleidicv/CMakeLists.txt b/kleidicv/CMakeLists.txt index 4bef9981c..1f3969e78 100644 --- a/kleidicv/CMakeLists.txt +++ b/kleidicv/CMakeLists.txt @@ -92,7 +92,6 @@ set(KLEIDICV_INCLUDE_DIRS ) set(KLEIDICV_WARNING_FLAGS - "-Werror" "-Wall" "-Wextra" "-Wold-style-cast" diff --git a/scripts/build.sh b/scripts/build.sh index 56327eb7b..1d2d86dc0 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -90,6 +90,7 @@ cmake_config_args=( -G "${CMAKE_GENERATOR}" "-DCMAKE_VERBOSE_MAKEFILE=${CMAKE_VERBOSE_MAKEFILE}" "-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}" + "-DCMAKE_COMPILE_WARNING_AS_ERROR=ON" "-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}" "-DCMAKE_EXE_LINKER_FLAGS=${CMAKE_EXE_LINKER_FLAGS}" "-DCMAKE_SHARED_LINKER_FLAGS=${CMAKE_SHARED_LINKER_FLAGS}" diff --git a/scripts/ci.sh b/scripts/ci.sh index c8b170b3d..c097b4498 100755 --- a/scripts/ci.sh +++ b/scripts/ci.sh @@ -33,6 +33,7 @@ doxygen # Build cmake -S . -B build -G Ninja \ + -DCMAKE_COMPILE_WARNING_AS_ERROR=ON \ -DCMAKE_CXX_CLANG_TIDY=clang-tidy \ -DCMAKE_CXX_FLAGS="--target=aarch64-linux-gnu --coverage" \ -DCMAKE_EXE_LINKER_FLAGS="--rtlib=compiler-rt -static -fuse-ld=lld" \ @@ -46,6 +47,7 @@ ninja -C build # Build with GCC CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++ cmake -S . -B build/gcc -G Ninja \ + -DCMAKE_COMPILE_WARNING_AS_ERROR=ON \ -DCMAKE_EXE_LINKER_FLAGS="-static" ninja -C build/gcc @@ -76,6 +78,7 @@ if [[ $(dpkg --print-architecture) = arm64 ]]; then # Clang address & undefined behaviour sanitizers cmake -S . -B build/sanitize -G Ninja \ -DCMAKE_BUILD_TYPE=Debug \ + -DCMAKE_COMPILE_WARNING_AS_ERROR=ON \ -DKLEIDICV_ENABLE_SME2=OFF \ -DCMAKE_CXX_FLAGS="-fsanitize=address,undefined -fno-sanitize-recover=all -Wno-pass-failed" ninja -C build/sanitize kleidicv-api-test @@ -85,6 +88,7 @@ fi # Build benchmarks, just to prevent bitrot. cmake -S . -B build/build-benchmark -G Ninja \ -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_COMPILE_WARNING_AS_ERROR=ON \ -DCMAKE_CROSSCOMPILING_EMULATOR=qemu-aarch64 \ -DCMAKE_CXX_COMPILER_TARGET=aarch64-linux-gnu \ -DCMAKE_EXE_LINKER_FLAGS="--rtlib=compiler-rt -static -fuse-ld=lld" \ diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 478ef714e..ab408a553 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -14,7 +14,6 @@ set(KLEIDICV_TEST_INCLUDE_DIR ) set(KLEIDICV_TEST_CXX_FLAGS - "-Werror" "-Wall" "-Wextra" "-Wold-style-cast" -- GitLab