From 6db9480865fe36332e1f98f6481c405bace21aab Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 27 May 2026 21:00:19 +0100 Subject: [PATCH] cmake: Add a -Werror build option for the workflow Move the -Werror flag from being the default to a CMake build flag - ENABLE_WERROR - and set it in the workflow. Fixes: #69 Signed-off-by: Phil Elwell --- .github/workflows/build.yml | 4 +++- CMakeLists.txt | 2 ++ dtmerge/CMakeLists.txt | 6 +++++- eeptools/CMakeLists.txt | 6 +++++- pinctrl/CMakeLists.txt | 6 +++++- piolib/CMakeLists.txt | 6 +++++- piolib/examples/CMakeLists.txt | 6 +++++- rpieepromab/CMakeLists.txt | 6 +++++- rpifwcrypto/CMakeLists.txt | 6 +++++- vclog/CMakeLists.txt | 6 +++++- 10 files changed, 45 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2d6f025..7bfbcce 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -53,7 +53,8 @@ jobs: run: | cmake -S . -B build \ -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \ - -DCMAKE_INSTALL_PREFIX=/usr + -DCMAKE_INSTALL_PREFIX=/usr \ + -DENABLE_WERROR=ON - name: Configure (armhf) if: matrix.arch == 'armhf' @@ -61,6 +62,7 @@ jobs: cmake -S . -B build \ -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \ -DCMAKE_INSTALL_PREFIX=/usr \ + -DENABLE_WERROR=ON \ -DCMAKE_SYSTEM_NAME=Linux \ -DCMAKE_SYSTEM_PROCESSOR=arm \ -DCMAKE_C_COMPILER=arm-linux-gnueabihf-gcc \ diff --git a/CMakeLists.txt b/CMakeLists.txt index 5e2e430..b22956c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,6 +2,8 @@ cmake_minimum_required(VERSION 3.1...3.27) project(utils) +option(ENABLE_WERROR "Treat compiler warnings as errors" OFF) + # List of subsidiary CMakeLists add_subdirectory(dtmerge) add_subdirectory(eeptools) diff --git a/dtmerge/CMakeLists.txt b/dtmerge/CMakeLists.txt index ef73e92..dc26e51 100644 --- a/dtmerge/CMakeLists.txt +++ b/dtmerge/CMakeLists.txt @@ -5,7 +5,11 @@ include(GNUInstallDirs) #set project name project(dtmerge) -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Werror") +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra") +option(ENABLE_WERROR "Treat compiler warnings as errors" OFF) +if(ENABLE_WERROR) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror") +endif() if (CMAKE_COMPILER_IS_GNUCC) add_definitions (-ffunction-sections) diff --git a/eeptools/CMakeLists.txt b/eeptools/CMakeLists.txt index 3438255..86da8ac 100644 --- a/eeptools/CMakeLists.txt +++ b/eeptools/CMakeLists.txt @@ -5,7 +5,11 @@ include(GNUInstallDirs) #set project name project(eeptools) -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Werror") +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra") +option(ENABLE_WERROR "Treat compiler warnings as errors" OFF) +if(ENABLE_WERROR) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror") +endif() if (CMAKE_COMPILER_IS_GNUCC) add_definitions (-ffunction-sections) diff --git a/pinctrl/CMakeLists.txt b/pinctrl/CMakeLists.txt index 23cccd9..af7850b 100644 --- a/pinctrl/CMakeLists.txt +++ b/pinctrl/CMakeLists.txt @@ -1,7 +1,11 @@ cmake_minimum_required(VERSION 3.10...3.27) include(GNUInstallDirs) -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Werror") +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra") +option(ENABLE_WERROR "Treat compiler warnings as errors" OFF) +if(ENABLE_WERROR) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror") +endif() #set project name project(pinctrl) diff --git a/piolib/CMakeLists.txt b/piolib/CMakeLists.txt index 9e98d9b..2b437b9 100644 --- a/piolib/CMakeLists.txt +++ b/piolib/CMakeLists.txt @@ -9,7 +9,11 @@ project(piolib) add_compile_definitions(LIBRARY_BUILD=1) -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Werror") +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra") +option(ENABLE_WERROR "Treat compiler warnings as errors" OFF) +if(ENABLE_WERROR) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror") +endif() if (CMAKE_COMPILER_IS_GNUCC) add_definitions (-ffunction-sections) diff --git a/piolib/examples/CMakeLists.txt b/piolib/examples/CMakeLists.txt index 57efafa..57a4ace 100644 --- a/piolib/examples/CMakeLists.txt +++ b/piolib/examples/CMakeLists.txt @@ -5,7 +5,11 @@ include(GNUInstallDirs) #set project name project(examples) -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Werror") +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra") +option(ENABLE_WERROR "Treat compiler warnings as errors" OFF) +if(ENABLE_WERROR) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror") +endif() if (CMAKE_COMPILER_IS_GNUCC) add_definitions (-ffunction-sections) diff --git a/rpieepromab/CMakeLists.txt b/rpieepromab/CMakeLists.txt index 897039a..84c27a3 100644 --- a/rpieepromab/CMakeLists.txt +++ b/rpieepromab/CMakeLists.txt @@ -1,7 +1,11 @@ cmake_minimum_required(VERSION 3.10...3.27) include(GNUInstallDirs) -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Werror") +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra") +option(ENABLE_WERROR "Treat compiler warnings as errors" OFF) +if(ENABLE_WERROR) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror") +endif() # Set project name and version project(rpieepromab VERSION 0.2.2) diff --git a/rpifwcrypto/CMakeLists.txt b/rpifwcrypto/CMakeLists.txt index f23b397..522a1ac 100644 --- a/rpifwcrypto/CMakeLists.txt +++ b/rpifwcrypto/CMakeLists.txt @@ -1,7 +1,11 @@ cmake_minimum_required(VERSION 3.10...3.27) include(GNUInstallDirs) -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Werror") +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra") +option(ENABLE_WERROR "Treat compiler warnings as errors" OFF) +if(ENABLE_WERROR) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror") +endif() # Set project name project(rpifwcrypto) diff --git a/vclog/CMakeLists.txt b/vclog/CMakeLists.txt index 611f9dc..6edddc7 100644 --- a/vclog/CMakeLists.txt +++ b/vclog/CMakeLists.txt @@ -1,6 +1,10 @@ cmake_minimum_required(VERSION 3.10...3.27) -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Werror -pedantic") +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -pedantic") +option(ENABLE_WERROR "Treat compiler warnings as errors" OFF) +if(ENABLE_WERROR) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror") +endif() #set project name project(vclog)