-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcmake.toml
More file actions
125 lines (111 loc) · 3.75 KB
/
Copy pathcmake.toml
File metadata and controls
125 lines (111 loc) · 3.75 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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
[cmake]
version = "3.31"
cmkr-include = "cmkr.cmake"
[project]
name = "SaveManager"
description = "The swiss army knife of save management."
version = "1.8.1"
languages = ["C", "CXX"]
msvc-runtime = "dynamic"
[variables]
CMAKE_EXPORT_COMPILE_COMMANDS = true
APP_VERSION = "1.8.1"
[find-package.CURL]
required = true
[find-package.glad]
required = true
[find-package.glfw3]
required = true
[find-package.libzip]
required = true
[find-package.OpenSSL]
required = true
[find-package.Libssh2]
required = true
[find-package.imgui]
required = true
[find-package.nlohmann_json]
required = true
[find-package.stb]
required = true
[find-package.sol2]
required = true
[find-package.spdlog]
required = true
[find-package.yaml-cpp]
required = true
[find-package.CLI11]
required = true
[target.savemanager-core]
type = "static"
sources = ["lib/src/**.cpp"]
include-directories = ["lib/include"]
link-libraries = ["CURL::libcurl", "libzip::zip", "Libssh2::libssh2", "OpenSSL::Crypto", "nlohmann_json::nlohmann_json", "stb::stb", "sol2::sol2", "spdlog::spdlog", "yaml-cpp::yaml-cpp"]
compile-features = ["cxx_std_23"]
precompile-headers = ["lib/include/pch.hpp"]
cmake-after = """
target_include_directories(savemanager-core PUBLIC lib/include)
"""
[target.savemanager-core.windows]
link-libraries = ["ws2_32"]
[target.savemanager]
type = "executable"
sources = ["gui/src/**.cpp", "gui/vendor/imgui/imgui_stdlib.cpp"]
include-directories = ["gui/src", "gui/vendor/imgui"]
link-libraries = ["savemanager-core", "glfw", "imgui::imgui", "glad::glad", "nfd::nfd"]
compile-features = ["cxx_std_23"]
precompile-headers = ["gui/src/pch.hpp"]
cmake-before = """
add_subdirectory(gui/vendor/nativefiledialog-extended)
execute_process(
COMMAND git rev-parse HEAD
OUTPUT_VARIABLE GIT_COMMIT
OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_QUIET
)
string(TIMESTAMP BUILD_DATE "%Y-%m-%d %H:%M UTC")
"""
cmake-after = """
find_path(IMGUI_INCLUDE_DIR imgui.h REQUIRED)
cmake_path(GET IMGUI_INCLUDE_DIR PARENT_PATH IMGUI_ROOT_DIR)
target_include_directories(savemanager PRIVATE "${IMGUI_ROOT_DIR}/res/bindings")
target_sources(savemanager PRIVATE
"${IMGUI_ROOT_DIR}/res/bindings/imgui_impl_glfw.cpp"
"${IMGUI_ROOT_DIR}/res/bindings/imgui_impl_opengl3.cpp"
)
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/lib/include/version.cpp.in
${CMAKE_CURRENT_BINARY_DIR}/lib/include/version.cpp
@ONLY
)
target_sources(savemanager PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/lib/include/version.cpp)
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/Info.plist.in
${CMAKE_CURRENT_BINARY_DIR}/SaveManager.app/Contents/Info.plist
)
# Create .app bundle and copy binary
add_custom_command(TARGET savemanager POST_BUILD
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/SaveManager.app/Contents/MacOS
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/SaveManager.app/Contents/Resources
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:savemanager> ${CMAKE_CURRENT_BINARY_DIR}/SaveManager.app/Contents/MacOS/SaveManager
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/SaveManager.app/Contents/Info.plist ${CMAKE_CURRENT_BINARY_DIR}/SaveManager.app/Contents/Info.plist
)
endif()
"""
[target.savemanager.windows]
link-libraries = ["shell32"]
[target.savemgr]
type = "executable"
sources = ["cli/src/**.cpp"]
include-directories = ["cli/src"]
link-libraries = ["savemanager-core", "CLI11::CLI11"]
compile-features = ["cxx_std_23"]
precompile-headers = ["lib/include/pch.hpp"]
[target.savemanager-daemon]
type = "executable"
sources = ["daemon/src/**.cpp"]
include-directories = ["daemon/src"]
link-libraries = ["savemanager-core"]
compile-features = ["cxx_std_23"]
precompile-headers = ["lib/include/pch.hpp"]