-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
51 lines (41 loc) · 1.25 KB
/
CMakeLists.txt
File metadata and controls
51 lines (41 loc) · 1.25 KB
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
50
51
CMAKE_MINIMUM_REQUIRED (VERSION 3.0)
PROJECT(pathtracer)
# Configure
IF(NOT CMAKE_BUILD_TYPE)
SET(CMAKE_BUILD_TYPE Release ... FORCE)
ENDIF()
SET(CMAKE_CXX_STANDARD 14)
SET(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
IF(CMAKE_BUILD_TYPE MATCHES Debug)
MESSAGE("INFO: Debug build")
ELSEIF(CMAKE_BUILD_TYPE MATCHES Release)
MESSAGE("INFO: Release build")
ELSE()
MESSAGE("WARNING: Unknown build type")
ENDIF()
# Includes
INCLUDE_DIRECTORIES(include)
INCLUDE_DIRECTORIES(lib/include)
INCLUDE_DIRECTORIES(lib/src/spdlog/include)
# Sub-projects/libraries
ADD_SUBDIRECTORY(lib/src/spdlog)
# Files
FILE(GLOB CORE "src/*.cpp")
FILE(GLOB HEADERS "include/*.hpp")
FILE(GLOB CLIENT "src/main.cpp")
FILE(GLOB TESTS "tests/*.cpp")
LIST(REMOVE_ITEM CORE "${CMAKE_SOURCE_DIR}/src/main.cpp")
# Targets
ADD_LIBRARY(core ${CORE} ${HEADERS})
ADD_EXECUTABLE(pathtracer ${CLIENT} ${HEADERS})
ADD_EXECUTABLE(pathtracer_tests ${TESTS} ${HEADERS})
# Tests
ENABLE_TESTING()
ADD_TEST(NAME all COMMAND pathtracer_tests)
# Link core lib
TARGET_LINK_LIBRARIES(pathtracer core)
TARGET_LINK_LIBRARIES(pathtracer_tests core)
# Link thread lib
FIND_PACKAGE(Threads REQUIRED)
TARGET_LINK_LIBRARIES(pathtracer ${CMAKE_THREAD_LIBS_INIT})
TARGET_LINK_LIBRARIES(pathtracer_tests ${CMAKE_THREAD_LIBS_INIT})