-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
53 lines (41 loc) · 1.77 KB
/
CMakeLists.txt
File metadata and controls
53 lines (41 loc) · 1.77 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
cmake_minimum_required(VERSION 3.13)
include(Utils.cmake)
project(GameFramework C CXX)
# ------------------ options and settings --------------
option(BUILD_EXAMPLES "Build example programs" ON)
set(SOURCE_DIR ${PROJECT_SOURCE_DIR}/Source)
set (CMAKE_CXX_STANDARD 20)
set (CMAKE_C_STANDATD 17)
cmake_policy(SET CMP0060 NEW)
include (${SOURCE_DIR}/assets.cmake)
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
set(CMAKE_INSTALL_PREFIX "${PROJECT_SOURCE_DIR}/Build/${CMAKE_BUILD_TYPE}" CACHE PATH "Installation directory" FORCE)
endif()
message(STATUS "Install directory is ${CMAKE_INSTALL_PREFIX}")
# -------------------- Install conan packages ----------------------
if(NOT EXISTS "${CMAKE_BINARY_DIR}/conanfile.txt")
message(STATUS "Copy conanfile.txt into CMake cache")
configure_file("${PROJECT_SOURCE_DIR}/conanfile.txt" "${CMAKE_BINARY_DIR}/conanfile.txt" COPYONLY)
endif()
include(${SOURCE_DIR}/conan.cmake)
conan_cmake_autodetect(settings RUNTIME static)
message(status ${settings})
conan_cmake_install(PATH_OR_REFERENCE .
BUILD missing
REMOTE conancenter
SETTINGS ${settings}
OUTPUT_FOLDER ${PROJECT_BINARY_DIR}/ConanResult
)
# TODO: do not find conan_toolchain, make it with CMakePresets
file(GLOB_RECURSE ToolchainFile
"${PROJECT_BINARY_DIR}/ConanResult/**/conan_toolchain.cmake"
)
get_filename_component(GeneratorsFolder ${ToolchainFile} DIRECTORY)
list(APPEND CMAKE_MODULE_PATH ${GeneratorsFolder})
list(APPEND CMAKE_PREFIX_PATH ${GeneratorsFolder})
# ------------------------- Build projects ------------------------------
add_subdirectory(ThirdParty)
add_subdirectory(Source)
if(${BUILD_EXAMPLES})
add_subdirectory(Examples)
endif()