diff --git a/CMakeLists.txt b/CMakeLists.txt index c068fa011..08b3649ba 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1412,6 +1412,16 @@ if(USE_GCC_PCH) add_precompiled_header(openclonk src/C4Include.h) endif() +# When cross-compiling, import c4group from a native build +IF(CMAKE_CROSSCOMPILING) + SET(IMPORT_NATIVE_TOOLS "IMPORT_NATIVE_TOOLS-NOTFOUND" CACHE FILEPATH "Export file from a native build") + INCLUDE(${IMPORT_NATIVE_TOOLS}) + SET(native_c4group native-c4group) +ELSE() + SET(native_c4group c4group) +ENDIF() + + ############################################################################ # installation ############################################################################ @@ -1483,26 +1493,26 @@ foreach(group ${OC_C4GROUPS}) if (CMAKE_GENERATOR STREQUAL Xcode) add_custom_command(TARGET openclonk POST_BUILD COMMAND "/bin/sh" "${CMAKE_CURRENT_SOURCE_DIR}/tools/osx_pack_gamedata.sh" - "$" + "$" "${CMAKE_CURRENT_SOURCE_DIR}/planet/${group}" # leave out third parameter here so the script can figure out Xcode-ish paths as usual - DEPENDS c4group + DEPENDS "${native_c4group}" ) else() add_custom_command(TARGET openclonk POST_BUILD COMMAND "/bin/sh" "${CMAKE_CURRENT_SOURCE_DIR}/tools/osx_pack_gamedata.sh" - "$" + "$" "${CMAKE_CURRENT_SOURCE_DIR}/planet/${group}" "${CMAKE_CURRENT_BINARY_DIR}/openclonk.app/Contents/Resources" - DEPENDS c4group + DEPENDS "${native_c4group}" ) endif() else() add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${group} - COMMAND c4group ARGS "${CMAKE_CURRENT_SOURCE_DIR}/planet/${group}" -t "${CMAKE_CURRENT_BINARY_DIR}/${group}" + COMMAND "${native_c4group}" ARGS "${CMAKE_CURRENT_SOURCE_DIR}/planet/${group}" -t "${CMAKE_CURRENT_BINARY_DIR}/${group}" MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/planet/${group} - DEPENDS c4group + DEPENDS "${native_c4group}" VERBATIM ) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${group} DESTINATION share/games/openclonk) @@ -1530,6 +1540,11 @@ else() ) endif() +# Export native tools for later use in cross-compile builds +IF(NOT CMAKE_CROSSCOMPILING) + EXPORT(TARGETS c4group FILE ${CMAKE_BINARY_DIR}/NativeToolsExport.cmake NAMESPACE native- ) +ENDIF() + ############################################################################ # setup_openclonk.exe ############################################################################