Namespace Catch CMake options

This commit is contained in:
David Seifert 2018-01-18 19:20:08 +01:00 committed by Martin Hořeňovský
parent 1e3ddbb496
commit b0f4f16ee0
4 changed files with 13 additions and 12 deletions

View File

@ -204,7 +204,7 @@ before_script:
- | - |
# Use Debug builds for running Valgrind and building examples # Use Debug builds for running Valgrind and building examples
cmake -H. -BBuild-Debug -DCMAKE_BUILD_TYPE=Debug -Wdev -DUSE_CPP14=${CPP14} -DUSE_VALGRIND=${VALGRIND} -DBUILD_EXAMPLES=ON -DENABLE_COVERAGE=ON cmake -H. -BBuild-Debug -DCMAKE_BUILD_TYPE=Debug -Wdev -DUSE_CPP14=${CPP14} -DCATCH_USE_VALGRIND=${VALGRIND} -DCATCH_BUILD_EXAMPLES=ON -DCATCH_ENABLE_COVERAGE=ON
# Don't bother with release build for coverage build # Don't bother with release build for coverage build
cmake -H. -BBuild-Release -DCMAKE_BUILD_TYPE=Release -Wdev -DUSE_CPP14=${CPP14} cmake -H. -BBuild-Release -DCMAKE_BUILD_TYPE=Release -Wdev -DUSE_CPP14=${CPP14}

View File

@ -10,10 +10,10 @@ project(Catch2 LANGUAGES CXX VERSION 2.1.0)
include(GNUInstallDirs) include(GNUInstallDirs)
option(USE_VALGRIND "Perform SelfTests with Valgrind" OFF) option(CATCH_USE_VALGRIND "Perform SelfTests with Valgrind" OFF)
option(BUILD_EXAMPLES "Build documentation examples" OFF) option(CATCH_BUILD_EXAMPLES "Build documentation examples" OFF)
option(ENABLE_COVERAGE "Generate coverage for codecov.io" OFF) option(CATCH_ENABLE_COVERAGE "Generate coverage for codecov.io" OFF)
option(DISABLE_WERROR "Do not enable warnings as errors" OFF) option(CATCH_ENABLE_WERROR "Enable all warnings as errors" ON)
set_property(GLOBAL PROPERTY USE_FOLDERS ON) set_property(GLOBAL PROPERTY USE_FOLDERS ON)
@ -319,7 +319,8 @@ if (BUILD_TESTING AND NOT_SUBPROJECT)
set_property(TARGET SelfTest PROPERTY CXX_STANDARD_REQUIRED ON) set_property(TARGET SelfTest PROPERTY CXX_STANDARD_REQUIRED ON)
set_property(TARGET SelfTest PROPERTY CXX_EXTENSIONS OFF) set_property(TARGET SelfTest PROPERTY CXX_EXTENSIONS OFF)
if (ENABLE_COVERAGE) if (CATCH_ENABLE_COVERAGE)
set(ENABLE_COVERAGE ON CACHE BOOL "Enable coverage build." FORCE)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/CMake") list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/CMake")
find_package(codecov) find_package(codecov)
add_coverage(SelfTest) add_coverage(SelfTest)
@ -330,7 +331,7 @@ if (BUILD_TESTING AND NOT_SUBPROJECT)
# Add desired warnings # Add desired warnings
if ( CMAKE_CXX_COMPILER_ID MATCHES "Clang|AppleClang|GNU" ) if ( CMAKE_CXX_COMPILER_ID MATCHES "Clang|AppleClang|GNU" )
target_compile_options( SelfTest PRIVATE -Wall -Wextra -Wunreachable-code ) target_compile_options( SelfTest PRIVATE -Wall -Wextra -Wunreachable-code )
if (NOT DISABLE_WERROR) if (CATCH_ENABLE_WERROR)
target_compile_options( SelfTest PRIVATE -Werror) target_compile_options( SelfTest PRIVATE -Werror)
endif() endif()
endif() endif()
@ -342,7 +343,7 @@ if (BUILD_TESTING AND NOT_SUBPROJECT)
if ( CMAKE_CXX_COMPILER_ID MATCHES "MSVC" ) if ( CMAKE_CXX_COMPILER_ID MATCHES "MSVC" )
STRING(REGEX REPLACE "/W[0-9]" "/W4" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) # override default warning level STRING(REGEX REPLACE "/W[0-9]" "/W4" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) # override default warning level
target_compile_options( SelfTest PRIVATE /w44265 /w44061 /w44062 ) target_compile_options( SelfTest PRIVATE /w44265 /w44061 /w44062 )
if (NOT DISABLE_WERROR) if (CATCH_ENABLE_WERROR)
target_compile_options( SelfTest PRIVATE /WX) target_compile_options( SelfTest PRIVATE /WX)
endif() endif()
endif() endif()
@ -370,7 +371,7 @@ if (BUILD_TESTING AND NOT_SUBPROJECT)
add_test(NAME ApprovalTests COMMAND python ${CMAKE_CURRENT_SOURCE_DIR}/scripts/approvalTests.py $<TARGET_FILE:SelfTest>) add_test(NAME ApprovalTests COMMAND python ${CMAKE_CURRENT_SOURCE_DIR}/scripts/approvalTests.py $<TARGET_FILE:SelfTest>)
set_tests_properties(ApprovalTests PROPERTIES FAIL_REGULAR_EXPRESSION "Results differed") set_tests_properties(ApprovalTests PROPERTIES FAIL_REGULAR_EXPRESSION "Results differed")
if (USE_VALGRIND) if (CATCH_USE_VALGRIND)
add_test(NAME ValgrindRunTests COMMAND valgrind --leak-check=full --error-exitcode=1 $<TARGET_FILE:SelfTest>) add_test(NAME ValgrindRunTests COMMAND valgrind --leak-check=full --error-exitcode=1 $<TARGET_FILE:SelfTest>)
add_test(NAME ValgrindListTests COMMAND valgrind --leak-check=full --error-exitcode=1 $<TARGET_FILE:SelfTest> --list-tests --verbosity high) add_test(NAME ValgrindListTests COMMAND valgrind --leak-check=full --error-exitcode=1 $<TARGET_FILE:SelfTest> --list-tests --verbosity high)
set_tests_properties(ValgrindListTests PROPERTIES PASS_REGULAR_EXPRESSION "definitely lost: 0 bytes in 0 blocks") set_tests_properties(ValgrindListTests PROPERTIES PASS_REGULAR_EXPRESSION "definitely lost: 0 bytes in 0 blocks")
@ -381,7 +382,7 @@ if (BUILD_TESTING AND NOT_SUBPROJECT)
endif() # !NO_SELFTEST endif() # !NO_SELFTEST
if(BUILD_EXAMPLES) if(CATCH_BUILD_EXAMPLES)
add_subdirectory(examples) add_subdirectory(examples)
endif() endif()

View File

@ -1,7 +1,7 @@
# #
# Build examples. # Build examples.
# #
# Requires BUILD_EXAMPLES to be defined 'true', see ../CMakeLists.txt. # Requires CATCH_BUILD_EXAMPLES to be defined 'true', see ../CMakeLists.txt.
# #
cmake_minimum_required( VERSION 3.0 ) cmake_minimum_required( VERSION 3.0 )

View File

@ -6,7 +6,7 @@ if "%CONFIGURATION%"=="Debug" (
python scripts\generateSingleHeader.py python scripts\generateSingleHeader.py
cmake -Hmisc -Bbuild-misc -A%PLATFORM% cmake -Hmisc -Bbuild-misc -A%PLATFORM%
cmake --build build-misc cmake --build build-misc
cmake -H. -BBuild -A%PLATFORM% -DUSE_WMAIN=%wmain% -DBUILD_EXAMPLES=ON -DMEMORYCHECK_COMMAND=build-misc\Debug\CoverageHelper.exe -DMEMORYCHECK_COMMAND_OPTIONS=--sep-- -DMEMORYCHECK_TYPE=Valgrind cmake -H. -BBuild -A%PLATFORM% -DUSE_WMAIN=%wmain% -DCATCH_BUILD_EXAMPLES=ON -DMEMORYCHECK_COMMAND=build-misc\Debug\CoverageHelper.exe -DMEMORYCHECK_COMMAND_OPTIONS=--sep-- -DMEMORYCHECK_TYPE=Valgrind
) )
if "%CONFIGURATION%"=="Release" ( if "%CONFIGURATION%"=="Release" (
cmake -H. -BBuild -A%PLATFORM% -DUSE_WMAIN=%wmain% cmake -H. -BBuild -A%PLATFORM% -DUSE_WMAIN=%wmain%