Report warnings as errors on Travis and AppVeyor
diff --git a/.appveyor.yml b/.appveyor.yml
index 6a6bb33..12a51b8 100644
--- a/.appveyor.yml
+++ b/.appveyor.yml
@@ -28,6 +28,6 @@
7z x 3.2.9.zip -y > $null
$env:CMAKE_INCLUDE_PATH = "eigen-eigen-dc6cfdf9bcec"
build_script:
-- cmake -A "%CMAKE_ARCH%"
+- cmake -A "%CMAKE_ARCH%" -DPYBIND11_WERROR=ON
- set MSBuildLogger="C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
- cmake --build . --config Release --target check -- /v:m /logger:%MSBuildLogger%
diff --git a/.travis.yml b/.travis.yml
index 78e5184..4193d87 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -86,7 +86,10 @@
export CMAKE_EXTRA_ARGS="${CMAKE_EXTRA_ARGS} -DCMAKE_INCLUDE_PATH=eigen-eigen-dc6cfdf9bcec"
fi
script:
-- $SCRIPT_RUN_PREFIX cmake ${CMAKE_EXTRA_ARGS} -DPYBIND11_PYTHON_VERSION=$PYTHON -DPYBIND11_CPP_STANDARD=-std=c++$CPP
+- $SCRIPT_RUN_PREFIX cmake ${CMAKE_EXTRA_ARGS}
+ -DPYBIND11_PYTHON_VERSION=$PYTHON
+ -DPYBIND11_CPP_STANDARD=-std=c++$CPP
+ -DPYBIND11_WERROR=ON
- $SCRIPT_RUN_PREFIX make CTEST_OUTPUT_ON_FAILURE=TRUE check -j 2
after_script:
- if [ -n "$DOCKER" ]; then docker stop "$containerid"; docker rm "$containerid"; fi
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6802050..450f651 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -17,6 +17,7 @@
option(PYBIND11_INSTALL "Install pybind11 header files?" ${PYBIND11_MASTER_PROJECT})
option(PYBIND11_TEST "Build pybind11 test suite?" ${PYBIND11_MASTER_PROJECT})
+option(PYBIND11_WERROR "Report all warnings as errors" OFF)
# Add a CMake parameter for choosing a desired Python version
set(PYBIND11_PYTHON_VERSION "" CACHE STRING "Python version to use for compiling the example application")
@@ -142,6 +143,14 @@
else()
target_compile_options(${target_name} PRIVATE -Wall -Wextra -Wconversion)
endif()
+
+ if(PYBIND11_WERROR)
+ if(MSVC)
+ target_compile_options(${target_name} PRIVATE /WX)
+ else()
+ target_compile_options(${target_name} PRIVATE -Werror)
+ endif()
+ endif()
endfunction()
if (PYBIND11_TEST)