1
cmake_minimum_required(VERSION 3.5)
3
# load settings in case of "try compile"
4
set(TOOLCHAIN_CONFIG_FILE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/toolchain.config.cmake")
5
get_property(__IN_TRY_COMPILE GLOBAL PROPERTY IN_TRY_COMPILE)
7
include("${CMAKE_CURRENT_SOURCE_DIR}/../toolchain.config.cmake" OPTIONAL) # CMAKE_BINARY_DIR is different
8
macro(toolchain_save_config)
12
macro(toolchain_save_config)
13
set(__config "#message(\"Load TOOLCHAIN config...\")\n")
14
get_cmake_property(__variableNames VARIABLES)
15
set(__vars_list ${ARGN})
16
list(APPEND __vars_list
17
${TOOLCHAIN_CONFIG_VARS}
20
CMAKE_SYSTEM_PROCESSOR
25
CMAKE_SHARED_LINKER_FLAGS
26
CMAKE_MODULE_LINKER_FLAGS
27
CMAKE_EXE_LINKER_FLAGS
32
foreach(__var ${__variableNames})
33
foreach(_v ${__vars_list})
34
if("x${__var}" STREQUAL "x${_v}")
35
if(${__var} MATCHES " ")
36
set(__config "${__config}set(${__var} \"${${__var}}\")\n")
38
set(__config "${__config}set(${__var} ${${__var}})\n")
43
if(EXISTS "${TOOLCHAIN_CONFIG_FILE}")
44
file(READ "${TOOLCHAIN_CONFIG_FILE}" __config_old)
46
if("${__config_old}" STREQUAL "${__config}")
49
#message("Update TOOLCHAIN config: ${__config}")
50
file(WRITE "${TOOLCHAIN_CONFIG_FILE}" "${__config}")
55
unset(__variableNames)
57
endif() # IN_TRY_COMPILE
59
if(NOT CMAKE_FIND_ROOT_PATH_MODE_LIBRARY)
60
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
63
if(NOT CMAKE_FIND_ROOT_PATH_MODE_INCLUDE)
64
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
67
if(NOT CMAKE_FIND_ROOT_PATH_MODE_PACKAGE)
68
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
71
if(NOT CMAKE_FIND_ROOT_PATH_MODE_PROGRAM)
72
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
75
macro(__cmake_find_root_save_and_reset)
77
CMAKE_FIND_ROOT_PATH_MODE_LIBRARY
78
CMAKE_FIND_ROOT_PATH_MODE_INCLUDE
79
CMAKE_FIND_ROOT_PATH_MODE_PACKAGE
80
CMAKE_FIND_ROOT_PATH_MODE_PROGRAM
82
set(__save_${v} ${${v}})
87
macro(__cmake_find_root_restore)
89
CMAKE_FIND_ROOT_PATH_MODE_LIBRARY
90
CMAKE_FIND_ROOT_PATH_MODE_INCLUDE
91
CMAKE_FIND_ROOT_PATH_MODE_PACKAGE
92
CMAKE_FIND_ROOT_PATH_MODE_PROGRAM
94
set(${v} ${__save_${v}})
100
# macro to find programs on the host OS
101
macro(find_host_program)
102
__cmake_find_root_save_and_reset()
106
elseif(CMAKE_HOST_APPLE)
110
find_program(${ARGN})
114
__cmake_find_root_restore()
117
# macro to find packages on the host OS
118
macro(find_host_package)
119
__cmake_find_root_save_and_reset()
123
elseif(CMAKE_HOST_APPLE)
127
find_package(${ARGN})
131
__cmake_find_root_restore()
134
set(CMAKE_SKIP_RPATH TRUE CACHE BOOL "If set, runtime paths are not added when using shared libraries.")