-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
72 lines (57 loc) · 2.12 KB
/
CMakeLists.txt
File metadata and controls
72 lines (57 loc) · 2.12 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
# Root CMakeLists.txt
# Assisted by ChatGPT, because I'm a beginner to CMake
# Also assisted by Search Assist
cmake_minimum_required(VERSION 3.16)
include(CMake/setup_vcpkg.cmake)
# Now force toolchain
if(NOT DEFINED CMAKE_TOOLCHAIN_FILE)
set(CMAKE_TOOLCHAIN_FILE "${VCPKG_TOOLCHAIN_FILE}" CACHE STRING "" FORCE)
endif()
project(Harbour VERSION 0.1.0 LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(SDL2 CONFIG REQUIRED)
find_package(glad CONFIG REQUIRED)
find_package(freetype CONFIG REQUIRED)
find_package(CURL CONFIG REQUIRED)
add_executable(Harbour
Harbour/src/main.cpp
Harbour/src/App.cpp
Harbour/src/GameCard.cpp
Harbour/src/utils/FileManager.cpp
Harbour/include/MenuScreen.h
Harbour/src/MenuScreen.cpp
Harbour/include/utils/LoadImage.h
Harbour/src/utils/LoadImage.cpp
)
target_include_directories(Harbour PRIVATE
Harbour/include
external
)
add_subdirectory(external/imgui)
target_link_libraries(imgui PRIVATE freetype)
target_link_libraries(Harbour PRIVATE SDL2::SDL2 glad::glad CURL::libcurl)
target_link_libraries(Harbour PRIVATE imgui)
# add_subdirectory(external/11Zip)
# set_property(TARGET minizip PROPERTY INTERFACE_LINK_DIRECTORIES "")
# target_link_libraries(Harbour PRIVATE elzip)
add_custom_command(
TARGET ${PROJECT_NAME} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E make_directory $<TARGET_FILE_DIR:${PROJECT_NAME}>/library
COMMAND ${CMAKE_COMMAND} -E copy_if_different
${CMAKE_CURRENT_SOURCE_DIR}/Harbour/allGames.json
$<TARGET_FILE_DIR:${PROJECT_NAME}>/library/allGames.json
)
add_custom_command(
TARGET ${PROJECT_NAME} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E make_directory $<TARGET_FILE_DIR:${PROJECT_NAME}>/library
COMMAND ${CMAKE_COMMAND} -E copy_if_different
${CMAKE_CURRENT_SOURCE_DIR}/Harbour/myGames.json
$<TARGET_FILE_DIR:${PROJECT_NAME}>/library/myGames.json
)
add_custom_command(
TARGET ${PROJECT_NAME} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_directory
${CMAKE_CURRENT_SOURCE_DIR}/assets
$<TARGET_FILE_DIR:${PROJECT_NAME}>/assets
)