-
Notifications
You must be signed in to change notification settings - Fork 0
/
Setup.cmake
76 lines (68 loc) · 2.76 KB
/
Setup.cmake
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
# ###############################################
set (CMAKE_CONFIGURATION_TYPES ${CPF_CONFIGURATION_TYPES} CACHE STRING "" FORCE)
set (HUNTER_CONFIGURATION_TYPES ${CPF_CONFIGURATION_TYPES} CACHE STRING "" FORCE)
# ###############################################
if (NOT EXISTS "${CMAKE_CURRENT_LIST_DIR}/HunterGate.cmake"
OR NOT CPF_CONFIGURATION_COMPLETE)
file (DOWNLOAD
"${CPF_HUNTER_GATE_FILE}"
"${CMAKE_CURRENT_LIST_DIR}/HunterGate.cmake"
)
message ("Downloaded hunter gate.")
endif ()
if (NOT EXISTS "${CMAKE_CURRENT_LIST_DIR}/Config.cmake"
OR NOT CPF_CONFIGURATION_COMPLETE)
file (DOWNLOAD
"${CPF_HUNTER_CONFIG_FILE}"
"${CMAKE_CURRENT_LIST_DIR}/Config.cmake"
)
message ("Downloaded config.")
endif ()
# ###############################################
set_property (GLOBAL PROPERTY USE_FOLDERS ON)
# ###############################################
if (NOT CPF_CONFIG)
set (CPF_CONFIG "${CMAKE_CURRENT_LIST_DIR}/Config.cmake")
endif ()
# ###############################################
# Helper to download a release zip and decompress it.
macro (cpf_download_release project version)
if (EXISTS "${CMAKE_CURRENT_LIST_DIR}/${project}-v${version}.zip")
message ("${project} already downloaded.")
else ()
message ("Downloading ${project}.")
file (DOWNLOAD
"https://github.com/All8Up/${project}/archive/v${version}.zip"
"${CMAKE_CURRENT_LIST_DIR}/${project}-v${version}.zip"
)
message ("Unzipping ${project}.")
execute_process (
COMMAND ${CMAKE_COMMAND} -E tar "x" "${CMAKE_CURRENT_LIST_DIR}/${project}-v${version}.zip" --format=zip
WORKING_DIRECTORY "${CMAKE_CURRENT_LIST_DIR}"
)
file (REMOVE_RECURSE "${CMAKE_CURRENT_LIST_DIR}/${project}")
file (RENAME
"${CMAKE_CURRENT_LIST_DIR}/${project}-${version}"
"${CMAKE_CURRENT_LIST_DIR}/${project}"
)
endif ()
endmacro ()
# ###############################################
# Get the toolchains project.
cpf_download_release (cpf_toolchains ${CPF_TOOLCHAINS_VERSION})
# ###############################################
option (CPF_BUILD_SHARED "Build libraries as shared." OFF)
if (CPF_BUILD_SHARED)
set (BUILD_SHARED_LIBS ON CACHE STRING "Build shared libraries." FORCE)
endif ()
# ###############################################
set (CPF_CONFIGURATION_COMPLETE ON CACHE STRING "CPF Configured." FORCE)
# ###############################################
set (HUNTER_KEEP_PACKAGE_SOURCES ON)
include ("${CMAKE_CURRENT_LIST_DIR}/HunterGate.cmake")
HunterGate(
URL "https://github.com/ruslo/hunter/archive/v0.23.165.tar.gz"
SHA1 "5a73f91df5f6109c0bb1104d0c0ee423f7bece79"
FILEPATH "${CPF_CONFIG}"
)
include (hunter_protected_sources)