CrossCompiling-BOTH.cmake 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. cmake_policy(SET CMP0190 NEW)
  2. enable_language(C)
  3. # Search for host Interpreter
  4. set(${PYTHON}_ARTIFACTS_PREFIX "_HOST")
  5. find_package(${PYTHON} ${Python_REQUESTED_VERSION} REQUIRED COMPONENTS Interpreter)
  6. unset(${PYTHON}_ARTIFACTS_PREFIX)
  7. # Search cross-compilation artifacts
  8. ## First, built an pseudo-emulator
  9. set(PSEUDO_EMULATOR_DIR "${CMAKE_CURRENT_BINARY_DIR}/pseudo_emulator")
  10. file(MAKE_DIRECTORY "${PSEUDO_EMULATOR_DIR}")
  11. execute_process(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" -DCMAKE_BUILD_TYPE=Release
  12. -S "${CMAKE_CURRENT_SOURCE_DIR}/pseudo_emulator"
  13. -B "${PSEUDO_EMULATOR_DIR}"
  14. COMMAND_ERROR_IS_FATAL ANY)
  15. execute_process(COMMAND "${CMAKE_COMMAND}" --build "${PSEUDO_EMULATOR_DIR}"
  16. COMMAND_ERROR_IS_FATAL ANY)
  17. ## Now, configure this pseudo-emulator
  18. set(CMAKE_CROSSCOMPILING TRUE)
  19. set(CMAKE_CROSSCOMPILING_EMULATOR "${PSEUDO_EMULATOR_DIR}/pseudo_emulator")
  20. find_package(${PYTHON} ${Python_REQUESTED_VERSION} REQUIRED COMPONENTS Interpreter Development)