Skip to content

Commit

Permalink
treat warnings as errors in CI
Browse files Browse the repository at this point in the history
In the past, when we build on travis and appveyor, we would detect this,
and turn on -Werror (treating warnings as errors). Somewhere along the
line - that got lost.

Re-enable that for azure pipelines, and document it in the README

At the same time, turn on the equivilent for the cmake files themselves.

Signed-off-by: Robin Getz <[email protected]>
  • Loading branch information
rgetz authored and pcercuei committed May 11, 2023
1 parent 33b8b70 commit 7cb06e0
Show file tree
Hide file tree
Showing 5 changed files with 12 additions and 10 deletions.
2 changes: 1 addition & 1 deletion CI/azure/ci-ubuntu.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@ set -x
uname -a
echo "$PWD"
mkdir build && cd build
cmake .. -DWITH_HWMON=ON -DWITH_SERIAL_BACKEND=ON -DWITH_EXAMPLES=ON -DPYTHON_BINDINGS=ON -DENABLE_PACKAGING=ON -DCPACK_SYSTEM_NAME="${ARTIFACTNAME}"
cmake .. -Werror=dev -DCOMPILE_WARNING_AS_ERROR=ON -DWITH_HWMON=ON -DWITH_SERIAL_BACKEND=ON -DWITH_EXAMPLES=ON -DPYTHON_BINDINGS=ON -DENABLE_PACKAGING=ON -DCPACK_SYSTEM_NAME="${ARTIFACTNAME}"
make
make package
2 changes: 1 addition & 1 deletion CI/build_win.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ mkdir build-x64
cp .\libiio.iss.cmakein .\build-x64
cd build-x64

cmake -G "$COMPILER" -DCMAKE_SYSTEM_PREFIX_PATH="C:" -DENABLE_IPV6=ON -DWITH_USB_BACKEND=ON -DWITH_SERIAL_BACKEND=ON -DPYTHON_BINDINGS=ON -DCSHARP_BINDINGS:BOOL=ON -DLIBXML2_LIBRARIES="C:\\libs\\64\\libxml2.lib" -DLIBUSB_LIBRARIES="C:\\libs\\64\\libusb-1.0.lib" -DLIBSERIALPORT_LIBRARIES="C:\\libs\\64\\libserialport.dll.a" -DLIBUSB_INCLUDE_DIR="C:\\include\\libusb-1.0" -DLIBXML2_INCLUDE_DIR="C:\\include\\libxml2" ..
cmake -G "$COMPILER" -DCMAKE_SYSTEM_PREFIX_PATH="C:" -Werror=dev -DCOMPILE_WARNING_AS_ERROR=ON -DENABLE_IPV6=ON -DWITH_USB_BACKEND=ON -DWITH_SERIAL_BACKEND=ON -DPYTHON_BINDINGS=ON -DCSHARP_BINDINGS:BOOL=ON -DLIBXML2_LIBRARIES="C:\\libs\\64\\libxml2.lib" -DLIBUSB_LIBRARIES="C:\\libs\\64\\libusb-1.0.lib" -DLIBSERIALPORT_LIBRARIES="C:\\libs\\64\\libserialport.dll.a" -DLIBUSB_INCLUDE_DIR="C:\\include\\libusb-1.0" -DLIBXML2_INCLUDE_DIR="C:\\include\\libxml2" ..
cmake --build . --config Release
if ( $LASTEXITCODE -ne 0 ) {
throw "[*] cmake build failure"
Expand Down
9 changes: 5 additions & 4 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -184,13 +184,14 @@ endif()

# make sure all check_symbol_exists are before this point, otherwise they fail
# on some versions of compilers
option(COMPILE_WARNING_AS_ERROR "Make all warnings into errors" OFF)
if (MSVC)
# why can't different CIs use the same flags?
# Travis CI : CI=True & TRAVIS=True
# Appveyor : CI=True & APPVEYOR=True
# Azure Pipelines: TF_BUILD=True
if(DEFINED ENV{TF_BUILD} OR (DEFINED ENV{CI} AND DEFINED ENV{APPVEYOR}))
message(STATUS "Running in an Azure or AppVeyor environment, setting -Werror")
if(COMPILE_WARNING_AS_ERROR)
message(STATUS "Setting -Werror")
add_compile_options(/WX)
endif()
elseif (CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID STREQUAL "Clang")
Expand All @@ -200,8 +201,8 @@ elseif (CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID STREQUAL "Clang")
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fprofile-arcs -ftest-coverage")
SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -fprofile-arcs -ftest-coverage")
endif()
if(DEFINED ENV{TF_BUILD} OR (DEFINED ENV{CI} AND (DEFINED ENV{TRAVIS} OR DEFINED ENV{APPVEYOR})))
message(STATUS "Running in CI environment (Azure, Travis or AppVeyor), setting -Werror")
if(COMPILE_WARNING_AS_ERROR)
message(STATUS "Setting -Werror")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror")
endif()
else()
Expand Down
1 change: 1 addition & 0 deletions README_BUILD.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ The recommendation is to leave things to the default.
Cmake Options | Default | Target | Description |
---------------------- | ------- | -------| ---------------------------------------------- |
`BUILD_SHARED_LIBS` | ON | All | Build shared libraries |
'COMPILE_WARNING_AS_ERROR' | OFF | All | Make all C warnings into errors |
`PYTHON_BINDINGS` | OFF | All | Install PYTHON bindings |
`WITH_TESTS` | ON | All | Build the test programs (iio-utils) |
`WITH_EXAMPLES` | OFF | All | Build the example programs |
Expand Down
8 changes: 4 additions & 4 deletions azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ stages:
- script: |
set -e
mkdir build && cd build
cmake .. -DENABLE_PACKAGING=ON -DPYTHON_BINDINGS=ON -DWITH_DOC=ON -DWITH_MAN=ON -DCPACK_SYSTEM_NAME=${ARTIFACTNAME}
cmake .. -Werror=dev -DCOMPILE_WARNING_AS_ERROR=ON -DENABLE_PACKAGING=ON -DPYTHON_BINDINGS=ON -DWITH_DOC=ON -DWITH_MAN=ON -DCPACK_SYSTEM_NAME=${ARTIFACTNAME}
make
make package
displayName: 'Build'
Expand Down Expand Up @@ -208,23 +208,23 @@ stages:
- script: |
set -e
mkdir build && cd build
cmake .. -DOSX_PACKAGE=ON -DPYTHON_BINDINGS=ON -DWITH_EXAMPLES=ON -DWITH_SERIAL_BACKEND=OFF -DWITH_ZSTD=OFF
cmake .. -Werror=dev -DCOMPILE_WARNING_AS_ERROR=ON -DOSX_PACKAGE=ON -DPYTHON_BINDINGS=ON -DWITH_EXAMPLES=ON -DWITH_SERIAL_BACKEND=OFF -DWITH_ZSTD=OFF
make
sudo make install
cd ..
displayName: 'Build'
- script: |
set -e
mkdir build_tar && cd build_tar
cmake .. -DOSX_PACKAGE=OFF -DENABLE_PACKAGING=ON -DPYTHON_BINDINGS=ON -DWITH_SERIAL_BACKEND=OFF -DWITH_ZSTD=OFF -DCPACK_SYSTEM_NAME=${ARTIFACTNAME}
cmake .. -Werror=dev -DCOMPILE_WARNING_AS_ERROR=ON -DOSX_PACKAGE=OFF -DENABLE_PACKAGING=ON -DPYTHON_BINDINGS=ON -DWITH_SERIAL_BACKEND=OFF -DWITH_ZSTD=OFF -DCPACK_SYSTEM_NAME=${ARTIFACTNAME}
make
make package
cd ..
displayName: 'Build tar'
- script: |
set -e
cd build
cmake .. -DPYTHON_BINDINGS=ON -DWITH_DOC=ON
cmake .. -Werror=dev -DCOMPILE_WARNING_AS_ERROR=ON -DPYTHON_BINDINGS=ON -DWITH_DOC=ON
make
cd ..
displayName: 'Build With Doc'
Expand Down

0 comments on commit 7cb06e0

Please sign in to comment.