-
Notifications
You must be signed in to change notification settings - Fork 1
/
CMakeLists.txt
78 lines (59 loc) · 2.69 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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# CMAKE
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
set(SOLUTION_CMAKE_VERSION 3.25)
cmake_minimum_required(VERSION ${SOLUTION_CMAKE_VERSION})
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# PROJECT
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
set(HEXAGON_EX_VERSION 0.1.0)
project("HexagonEX" VERSION ${HEXAGON_EX_VERSION})
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# GLOBALS
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
set(SOLUTION_DIR ${CMAKE_SOURCE_DIR})
set(SOLUTION_SOURCES_DIR "${SOLUTION_DIR}/src")
set(HEXAGON_EX_OUTPUT_DIR "${SOLUTION_DIR}/bin")
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# CONFIGS
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
if (${CMAKE_BUILD_TYPE} STREQUAL "Debug")
set(DEBUG ON)
add_definitions(-DDEBUG=1)
else (${CMAKE_BUILD_TYPE} STREQUAL "Debug")
set(DEBUG OFF)
endif (${CMAKE_BUILD_TYPE} STREQUAL "Debug")
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# SOURCES
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
set(SOLUTION_SOURCES
"${SOLUTION_SOURCES_DIR}/main.cpp"
)
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# MODULES
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# HexagonEX.Core
set(HEXAGON_EX_CORE_INCLUDE_DIR "${SOLUTION_SOURCES_DIR}/game/core/private")
add_subdirectory("${SOLUTION_SOURCES_DIR}/game/core")
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# BUILD
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Create Executable-Object
add_executable(exe ${SOLUTION_SOURCES})
# Configure Executable-Object
set_target_properties(exe PROPERTIES
RUNTIME_OUTPUT_DIRECTORY "${HEXAGON_EX_OUTPUT_DIR}"
RUNTIME_OUTPUT_NAME "HexagonEX"
)
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# LINK
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Link with Headers
target_include_directories(exe PRIVATE ${SOLUTION_SOURCES_DIR})
# HexagonEX.Core
target_link_libraries(exe
hexagonex_core
)
target_include_directories(exe PRIVATE ${HEXAGON_EX_CORE_INCLUDE_DIR})
# = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =