-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
79 lines (69 loc) · 2.13 KB
/
CMakeLists.txt
File metadata and controls
79 lines (69 loc) · 2.13 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
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
79
cmake_minimum_required(VERSION 3.21)
project(AlgViz LANGUAGES CXX)
include(FetchContent)
FetchContent_Declare(SFML
GIT_REPOSITORY https://github.com/SFML/SFML.git
GIT_TAG 2.6.x)
FetchContent_MakeAvailable(SFML)
# set source directory
set(SOURCE_DIR ${CMAKE_SOURCE_DIR}/src)
# set include directory
set(INCLUDE_DIR ${CMAKE_SOURCE_DIR}/include)
# set include files
set(INCLUDE_FILES
${INCLUDE_DIR}/Mouse.h
${INCLUDE_DIR}/Search.h
${INCLUDE_DIR}/App.h
${INCLUDE_DIR}/Button.h
${INCLUDE_DIR}/Sort.h
${INCLUDE_DIR}/State.h
${INCLUDE_DIR}/Animation.h
${INCLUDE_DIR}/Maze.h
${INCLUDE_DIR}/MazeBox.h
${INCLUDE_DIR}/Window.h
${INCLUDE_DIR}/SearchWindow.h
${INCLUDE_DIR}/SearchSpace.h
${INCLUDE_DIR}/HomeWindow.h
${INCLUDE_DIR}/SortWindow.h
${INCLUDE_DIR}/SortSpace.h
${INCLUDE_DIR}/ThreadPool.h
)
# set source files
set(SOURCE_FILES_GG
${SOURCE_DIR}/main.cpp
${SOURCE_DIR}/Mouse.cpp
${SOURCE_DIR}/Animation.cpp
${SOURCE_DIR}/Maze.cpp
${SOURCE_DIR}/MazeBox.cpp
${SOURCE_DIR}/Window.cpp
${SOURCE_DIR}/SearchWindow.cpp
${SOURCE_DIR}/Button.cpp
${SOURCE_DIR}/Search.cpp
${SOURCE_DIR}/State.cpp
${SOURCE_DIR}/SearchSpace.cpp
${SOURCE_DIR}/App.cpp
${SOURCE_DIR}/HomeWindow.cpp
${SOURCE_DIR}/SortWindow.cpp
${SOURCE_DIR}/SortSpace.cpp
${SOURCE_DIR}/Sort.cpp
${SOURCE_DIR}/ThreadPool.cpp
)
add_executable(AlgViz
${INCLUDE_FILES}
${SOURCE_FILES_GG}
)
include_directories(${INCLUDE_DIR})
target_link_libraries(AlgViz PRIVATE sfml-graphics)
target_compile_features(AlgViz PRIVATE cxx_std_20)
# if linux, add include_directories(/usr/include/freetype2)
if (UNIX)
include_directories(/usr/include/freetype2)
endif()
if (WIN32 AND BUILD_SHARED_LIBS)
add_custom_command(TARGET AlgViz POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_RUNTIME_DLLS:AlgViz> $<TARGET_FILE_DIR:AlgViz> COMMAND_EXPAND_LISTS)
endif()
# copy Public folder to build directory
add_custom_command(TARGET AlgViz POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/Public $<TARGET_FILE_DIR:AlgViz>/Public)
install(TARGETS AlgViz)