-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
93 lines (74 loc) · 2.29 KB
/
Copy pathCMakeLists.txt
File metadata and controls
93 lines (74 loc) · 2.29 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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
cmake_minimum_required(VERSION 3.24)
project(Paragraph) # ##### RENAME ME! #####
# Workaround for CLang and RayLib's compound literals
# See: https://github.com/raysan5/raylib/issues/1343
set(CMAKE_CXX_STANDARD 17)
if(MINGW)
set(CMAKE_EXE_LINKER_FLAGS
"${CMAKE_EXE_LINKER_FLAGS} -static -static-libgcc -static-libstdc++")
endif()
# ===== Dependencies =====
include(FetchContent)
include(cmake/raylib.cmake)
include(cmake/imgui.cmake)
include(cmake/rlimgui.cmake)
include_directories(include)
option(BUILD_TESTS "Build tests" ON)
if(BUILD_TESTS)
add_subdirectory(tests)
endif()
# ===== Our Project =====
set(SOURCE_FILES
src/main.cpp
src/core/backend.cpp
src/core/backend_areas.cpp
src/core/backend_projects.cpp
src/core/backend_tasks.cpp
src/core/backend_resources.cpp
src/core/backend_graph.cpp
src/core/utils.cpp
src/gui/menubar.cpp
src/gui/router.cpp
src/gui/page_projects.cpp
src/gui/page_resources.cpp
src/gui/page_areas.cpp
src/gui/page_tasks.cpp
src/gui/page_details/page_details.cpp
src/gui/page_details/details_area.cpp
src/gui/page_details/details_project.cpp
src/gui/page_details/details_resource.cpp
src/gui/page_details/details_task.cpp
src/gui/page_workspace.cpp
src/gui/page_graph.cpp
src/gui/page_settings.cpp
src/lib/imgui_stdlib.cpp
src/lib/imnodes.cpp
src/lib/imguidatechooser.cpp
src/lib/sqlite3.c
)
add_executable(${PROJECT_NAME} WIN32 ${SOURCE_FILES} data/resource.rc)
target_link_libraries(${PROJECT_NAME} rlimgui)
# Checks if OSX and links appropriate frameworks (Only required on MacOS)
if (APPLE)
target_link_libraries(${PROJECT_NAME} "-framework IOKit")
target_link_libraries(${PROJECT_NAME} "-framework Cocoa")
target_link_libraries(${PROJECT_NAME} "-framework OpenGL")
endif()
# Copy the data files
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_directory
"${CMAKE_SOURCE_DIR}/data"
"$<TARGET_FILE_DIR:${PROJECT_NAME}>/data")
# installation
include(GNUInstallDirs)
install(TARGETS Paragraph
RUNTIME DESTINATION .
)
install(DIRECTORY data
DESTINATION .
)
set(CPACK_GENERATOR ZIP)
set(CPACK_PACKAGE_NAME "Paragraph")
set(CPACK_PACKAGE_VENDOR "Yang Tuan Anh")
set(CPACK_PACKAGE_VERSION "0.1.0")
include(CPack)