-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
50 lines (39 loc) · 2.16 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
41
42
43
44
45
46
47
48
49
cmake_minimum_required(VERSION 3.10)
# project name
project(timing)
# cpp standard
set(CXX_STANDARD 17)
set(CXX_STANDARD_REQUIRED true)
set(CMAKE_CXX_FLAGS "-Wall -Wextra -std=c++17 -lpthread -ldl -lm -pthread")
add_subdirectory(${PROJECT_SOURCE_DIR}/sqlite3)
add_subdirectory(${PROJECT_SOURCE_DIR}/toml)
configure_file(${PROJECT_SOURCE_DIR}/config/project_config.toml
config/project_config.toml)
# generate the executable
add_executable(${PROJECT_NAME} ${PROJECT_SOURCE_DIR}/src/main.cc
${PROJECT_SOURCE_DIR}/src/time_log.cc
${PROJECT_SOURCE_DIR}/src/time_table.cc
${PROJECT_SOURCE_DIR}/src/database_manager.cc
${PROJECT_SOURCE_DIR}/src/service_init.cc)
add_executable(test ${PROJECT_SOURCE_DIR}/src/test.cc
${PROJECT_SOURCE_DIR}/src/time_table.cc)
target_include_directories(test PUBLIC ${PROJECT_SOURCE_DIR}
PUBLIC ${PROJECT_SOURCE_DIR}/src
PUBLIC ${PROJECT_SOURCE_DIR}/sqlite3
PUBLIC ${PROJECT_SOURCE_DIR}/toml
PUBLIC ${PROJECT_SOURCE_DIR}/toml/include)
target_include_directories(${PROJECT_NAME} PUBLIC ${PROJECT_SOURCE_DIR}
PUBLIC ${PROJECT_SOURCE_DIR}/src
PUBLIC ${PROJECT_SOURCE_DIR}/sqlite3
PUBLIC ${PROJECT_SOURCE_DIR}/toml
PUBLIC ${PROJECT_SOURCE_DIR}/toml/include)
IF (WIN32 OR APPLE)
target_link_libraries(${PROJECT_NAME} LINK_PUBLIC sqlite3
LINK_PUBLIC cpptoml)
ENDIF (WIN32 OR APPLE)
# issue on Ubuntu 21.04: dl-libs not found automatically
IF (UNIX)
target_link_libraries(${PROJECT_NAME} LINK_PUBLIC sqlite3
LINK_PUBLIC cpptoml
${CMAKE_DL_LIBS})
ENDIF (UNIX)