-
Notifications
You must be signed in to change notification settings - Fork 0
/
CMakeLists.txt
63 lines (54 loc) · 1.11 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
cmake_minimum_required(VERSION 3.0)
project(game-of-life)
# C++ compile flags
if(MSVC)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4")
else()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wpedantic -std=c++11")
endif()
# Directories
set(IMGUI_SRC_DIR libs/imgui)
set(LIB_SDL_PATH libs/SDL)
set(LIB_DIR libs)
set(INCLUDE_DIR includes)
set(SRC_DIR src)
# Load SDL
find_package(
SDL2 PATHS ${LIB_SDL_PATH}
)
# Load source and header files
set(SOURCES
${SRC_DIR}/main.cpp
)
set(HEADERS
)
# Load ImGUI src files
set(
IMGUI_LIB_SRC
${IMGUI_SRC_DIR}/imgui.cpp
${IMGUI_SRC_DIR}/imgui_draw.cpp
${IMGUI_SRC_DIR}/imgui_tables.cpp
${IMGUI_SRC_DIR}/imgui_widgets.cpp
${IMGUI_SRC_DIR}/imgui_impl_sdl.cpp
)
# Include directories
include_directories(
${LIB_DIR}
${INCLUDE_DIR}
)
# Executable
add_executable(
${CMAKE_PROJECT_NAME}
${SOURCES}
${HEADERS}
${IMGUI_LIB_SRC}
)
# Include directory to target
target_include_directories(
${CMAKE_PROJECT_NAME} PRIVATE
${IMGUI_SRC_DIR}
)
# Link libraries to target
target_link_libraries(
${CMAKE_PROJECT_NAME} PRIVATE SDL2
)