-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
40 lines (30 loc) · 1.28 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
cmake_minimum_required(VERSION 3.11)
project(CPP_Spielwiese VERSION 1.0)
set(CMAKE_EXPORT_COMPILE_COMMANDS TRUE)
#set(CMAKE_CXX_CLANG_TIDY clang-tidy -p)
set(TEST_ENABLED TRUE CACHE BOOL "Tests are enabled")
if (${TEST_ENABLED})
enable_testing()
endif ()
add_subdirectory(${PROJECT_SOURCE_DIR}/src/lib_name)
add_executable(${PROJECT_NAME} src/main.cpp)
set_property(TARGET ${PROJECT_NAME} PROPERTY LINKER_LANGUAGE CXX)
set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 17)
target_link_libraries(${PROJECT_NAME} PRIVATE lib_name)
if (${TEST_ENABLED})
find_package(Boost COMPONENTS system REQUIRED)
set(${PROJECT_NAME}_test_src
${CMAKE_CURRENT_SOURCE_DIR}/test/general_tests.cpp
)
foreach (testSrc ${${PROJECT_NAME}_test_src})
get_filename_component(testName ${testSrc} NAME_WE)
add_executable(${PROJECT_NAME}_${testName} ${testSrc})
set_property(TARGET ${PROJECT_NAME}_${testName} PROPERTY CXX_STANDARD 17)
target_link_libraries(${PROJECT_NAME}_${testName} Boost::boost lib_name)
add_test(NAME ${PROJECT_NAME}_${testName} COMMAND ${PROJECT_NAME}_${testName} -m HRF -l warning --build_info)
endforeach (testSrc)
endif ()
install(TARGETS ${PROJECT_NAME}
RUNTIME
DESTINATION bin)
include(CPack)