@@ -11,18 +11,22 @@ project(inifile-cpp)
1111include (CTest)
1212
1313set (INICPP_CXX_STANDARD "11" CACHE STRING "C++ standard to use when building tests & examples." )
14+ option (GENERATE_COVERAGE "Enable generating code coverage" OFF )
15+ option (BUILD_TESTS "Enable building unit tests" OFF )
16+ option (BUILD_EXAMPLES "Enable building example applications" OFF )
1417
15- SET (CMAKE_CXX_STANDARD ${INICPP_CXX_STANDARD} )
16- SET (CMAKE_CXX_STANDARD_REQUIRED ON )
18+ set (CMAKE_CXX_STANDARD ${INICPP_CXX_STANDARD} )
19+ set (CMAKE_CXX_STANDARD_REQUIRED ON )
1720
1821if (CMAKE_COMPILER_IS_GNUCXX)
19- set ( CMAKE_CXX_FLAGS " -Wall -Wextra" )
22+ add_compile_options ( -Wall -Wextra)
2023endif (CMAKE_COMPILER_IS_GNUCXX)
2124
2225if (CMAKE_CXX_COMPILER_ID MATCHES "MSVC" )
23- set ( CMAKE_CXX_FLAGS " /WX /wd4530" )
26+ add_compile_options ( /WX /wd4530)
2427endif (CMAKE_CXX_COMPILER_ID MATCHES "MSVC" )
2528
29+
2630add_subdirectory (dep)
2731
2832add_library (inicpp INTERFACE )
@@ -32,6 +36,12 @@ target_include_directories(inicpp INTERFACE
3236add_library (inicpp::inicpp ALIAS inicpp)
3337install (FILES ${CMAKE_CURRENT_SOURCE_DIR} /include /inicpp.h TYPE INCLUDE )
3438
39+ if (GENERATE_COVERAGE AND CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang" )
40+ # Add required flags (GCC & LLVM/Clang)
41+ target_compile_options (inicpp INTERFACE -O0 -g --coverage)
42+ target_link_options (inicpp INTERFACE --coverage)
43+ endif (GENERATE_COVERAGE AND CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang" )
44+
3545if (${BUILD_TESTS} )
3646 add_subdirectory (test )
3747endif (${BUILD_TESTS} )
0 commit comments