enforce standards conformance on MSVC and fix warning flags (#10)
* enforce standards conformance on MSVC * add \W4 flag for test compilation * enable compiler warnings for the library target when building tests * update note on testing frameworks * turns out only clang understands strongly typed enums
This commit is contained in:
parent
a2a6674101
commit
a4881dda8b
3 changed files with 20 additions and 15 deletions
|
@ -40,26 +40,31 @@ file(GLOB sources CONFIGURE_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/source/*.cpp)
|
|||
add_executable(GreeterTests ${sources})
|
||||
target_link_libraries(GreeterTests doctest Greeter)
|
||||
|
||||
if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR CMAKE_CXX_COMPILER_ID MATCHES "GNU")
|
||||
set_target_properties(GreeterTests PROPERTIES CXX_STANDARD 17 COMPILE_FLAGS "-Wall -pedantic -Wextra -Werror")
|
||||
else()
|
||||
set_target_properties(GreeterTests PROPERTIES CXX_STANDARD 17)
|
||||
set_target_properties(GreeterTests PROPERTIES CXX_STANDARD 17)
|
||||
|
||||
# enable compiler warnings
|
||||
if (NOT TEST_INSTALLED_VERSION)
|
||||
if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR CMAKE_CXX_COMPILER_ID MATCHES "GNU")
|
||||
target_compile_options(Greeter PUBLIC -Wall -pedantic -Wextra -Werror)
|
||||
elseif(MSVC)
|
||||
target_compile_options(Greeter PUBLIC /W4)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# ---- Add GreeterTests ----
|
||||
|
||||
ENABLE_TESTING()
|
||||
|
||||
# use doctest_discover_tests for better CTest support
|
||||
# Note: doctest and similar testing frameworks can automatically configure CMake tests
|
||||
# For other testing frameworks add the tests target instead:
|
||||
# ADD_TEST(GreeterTests GreeterTests)
|
||||
|
||||
include(${doctest_SOURCE_DIR}/scripts/cmake/doctest.cmake)
|
||||
doctest_discover_tests(GreeterTests)
|
||||
|
||||
# Note: for general testing frameworks use:
|
||||
# ADD_TEST(GreeterTests GreeterTests)
|
||||
|
||||
# ---- code coverage ----
|
||||
|
||||
if (ENABLE_TEST_COVERAGE)
|
||||
set_target_properties(Greeter PROPERTIES CXX_STANDARD 17 COMPILE_FLAGS "-O0 -g -fprofile-arcs -ftest-coverage --coverage")
|
||||
target_compile_options(Greeter PRIVATE -O0 -g -fprofile-arcs -ftest-coverage --coverage)
|
||||
target_link_options(Greeter PUBLIC "--coverage")
|
||||
endif()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue