summaryrefslogtreecommitdiffstats
path: root/Tests/RunCMake/FindPython/CrossCompiling-BOTH.cmake
blob: 3f7cfee25ad4e236e3dbdac2f56694746de58ceb (plain)
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
cmake_policy(SET CMP0190 NEW)

enable_language(C)


# Search for host Interpreter
set(${PYTHON}_ARTIFACTS_PREFIX "_HOST")

find_package(${PYTHON} ${Python_REQUESTED_VERSION} REQUIRED COMPONENTS Interpreter)

unset(${PYTHON}_ARTIFACTS_PREFIX)


# Search cross-compilation artifacts
## First, built an pseudo-emulator
set(PSEUDO_EMULATOR_DIR "${CMAKE_CURRENT_BINARY_DIR}/pseudo_emulator")

file(MAKE_DIRECTORY "${PSEUDO_EMULATOR_DIR}")

execute_process(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" -DCMAKE_BUILD_TYPE=Release
                                           -S "${CMAKE_CURRENT_SOURCE_DIR}/pseudo_emulator"
                                           -B "${PSEUDO_EMULATOR_DIR}"
                COMMAND_ERROR_IS_FATAL ANY)

execute_process(COMMAND "${CMAKE_COMMAND}" --build "${PSEUDO_EMULATOR_DIR}"
                COMMAND_ERROR_IS_FATAL ANY)

## Now, configure this pseudo-emulator
set(CMAKE_CROSSCOMPILING TRUE)
set(CMAKE_CROSSCOMPILING_EMULATOR "${PSEUDO_EMULATOR_DIR}/pseudo_emulator")


find_package(${PYTHON} ${Python_REQUESTED_VERSION} REQUIRED COMPONENTS Interpreter Development)