@@ -5,39 +5,51 @@ SPDX-FileCopyrightText: Copyright 2024 msclock
55
66# configure VCPKG_CHAINLOAD_TOOLCHAIN_FILE based on VCPKG_TARGET_TRIPLET and
77# VCPKG_TARGET_ARCHITECTURE
8- function (_vcpkg_chainload_toolchain )
9- if (NOT DEFINED VCPKG_TARGET_TRIPLET OR NOT DEFINED VCPKG_TARGET_ARCHITECTURE)
10- message (
11- FATAL_ERROR
12- "VCPKG_TARGET_TRIPLET and VCPKG_TARGET_ARCHITECTURE must be set before calling _vcpkg_chainload_toolchain()"
13- )
14- endif ()
8+ macro (_vcpkg_chainload_toolchain )
9+ if (NOT DEFINED VCPKG_CHAINLOAD_TOOLCHAIN_FILE)
10+ if (NOT DEFINED VCPKG_TARGET_TRIPLET OR NOT DEFINED
11+ VCPKG_TARGET_ARCHITECTURE)
12+ message (
13+ FATAL_ERROR
14+ "VCPKG_TARGET_TRIPLET and VCPKG_TARGET_ARCHITECTURE must be set before calling _vcpkg_chainload_toolchain()"
15+ )
16+ endif ()
17+
18+ # Load toolchain variables from triplet and architecture
1519
16- # Load toolchain variables from triplet and architecture
20+ string (LENGTH "${VCPKG_TARGET_ARCHITECTURE} -" _prefix_len)
21+ string (SUBSTRING ${VCPKG_TARGET_TRIPLET} ${_prefix_len} -1 _stripped_string)
22+ string (REPLACE "-" ";" _triplet_parts "${_stripped_string} " )
23+ list (GET _triplet_parts 0 _chainload_toolchain_name)
1724
18- string (LENGTH "${VCPKG_TARGET_ARCHITECTURE} -" _prefix_len)
19- string (SUBSTRING ${VCPKG_TARGET_TRIPLET} ${_prefix_len} -1 _stripped_string)
20- string (REPLACE "-" ";" _triplet_parts "${_stripped_string} " )
21- list (GET _triplet_parts 0 _chainload_toolchain_name)
25+ set (_toolchain "scripts/toolchains/${_chainload_toolchain_name} .cmake" )
2226
23- set (_toolchain "scripts/toolchains/${_chainload_toolchain_name} .cmake" )
27+ if (EXISTS "${CMAKE_CURRENT_LIST_DIR} /${_toolchain} " )
28+ set (VCPKG_CHAINLOAD_TOOLCHAIN_FILE
29+ "${CMAKE_CURRENT_LIST_DIR} /${_toolchain} "
30+ CACHE INTERNAL "vcpkg chainload" )
31+ elseif (EXISTS "${_VCPKG_ROOT} /${_toolchain} " )
32+ set (VCPKG_CHAINLOAD_TOOLCHAIN_FILE
33+ "${_VCPKG_ROOT} /${_toolchain} "
34+ CACHE INTERNAL "vcpkg chainload" )
2435
25- if ( EXISTS " ${CMAKE_CURRENT_LIST_DIR} / ${_toolchain} " )
26- set (VCPKG_CHAINLOAD_TOOLCHAIN_FILE
27- " ${CMAKE_CURRENT_LIST_DIR} / ${_toolchain} "
28- CACHE INTERNAL "vcpkg chainload")
29- elseif ( EXISTS " ${_VCPKG_ROOT} / ${_toolchain} " )
30- set (VCPKG_CHAINLOAD_TOOLCHAIN_FILE
31- " ${_VCPKG_ROOT} / ${_toolchain} "
32- CACHE INTERNAL "vcpkg chainload" )
33- else ( )
36+ else ( )
37+ message (
38+ WARNING
39+ "Could not find toolchain file for ${_chainload_toolchain_name} , skipping chainload"
40+ )
41+ endif ()
42+ endif ()
43+
44+ if ( EXISTS " ${VCPKG_CHAINLOAD_TOOLCHAIN_FILE} " )
3445 message (
35- FATAL_ERROR
36- "Could not find toolchain file for ${_chainload_toolchain_name} , skipping chainload"
46+ STATUS "vcpkg_chainload_toolchain_file: ${VCPKG_CHAINLOAD_TOOLCHAIN_FILE} "
3747 )
48+ include (${VCPKG_CHAINLOAD_TOOLCHAIN_FILE} )
3849 endif ()
39-
40- message (
41- STATUS "vcpkg_chainload_toolchain_file: ${VCPKG_CHAINLOAD_TOOLCHAIN_FILE} " )
42- include (${VCPKG_CHAINLOAD_TOOLCHAIN_FILE} )
43- endfunction ()
50+ unset (_chainload_toolchain_name)
51+ unset (_triplet_parts)
52+ unset (_toolchain)
53+ unset (_prefix_len)
54+ unset (_stripped_string)
55+ endmacro ()
0 commit comments