From a06fe8e8a7d749f1fbd08102a9516acd51171b24 Mon Sep 17 00:00:00 2001 From: glx22 Date: Wed, 1 Jul 2020 02:52:32 +0200 Subject: Fix: [CMake] cross-compiling requires native tools --- src/lang/CMakeLists.txt | 4 ++++ src/settingsgen/CMakeLists.txt | 25 +++++++++++++++---------- src/strgen/CMakeLists.txt | 30 +++++++++++++++++------------- src/table/CMakeLists.txt | 4 ++++ 4 files changed, 40 insertions(+), 23 deletions(-) (limited to 'src') diff --git a/src/lang/CMakeLists.txt b/src/lang/CMakeLists.txt index d9243b531..75d06f530 100644 --- a/src/lang/CMakeLists.txt +++ b/src/lang/CMakeLists.txt @@ -59,6 +59,10 @@ set(LANG_SOURCE_FILES set(LANG_BINARY_DIR ${CMAKE_BINARY_DIR}/lang) +if (HOST_BINARY_DIR) + include(${HOST_BINARY_DIR}/strgen.cmake) +endif() + # Walk over all the (finished) language files, and generate a command to compile them foreach(LANG_SOURCE_FILE IN LISTS LANG_SOURCE_FILES) get_filename_component(LANG_SOURCE_FILE_NAME_WE ${LANG_SOURCE_FILE} NAME_WE) diff --git a/src/settingsgen/CMakeLists.txt b/src/settingsgen/CMakeLists.txt index e17b8ad6b..69b209201 100644 --- a/src/settingsgen/CMakeLists.txt +++ b/src/settingsgen/CMakeLists.txt @@ -1,13 +1,18 @@ cmake_minimum_required(VERSION 3.5) -project(settingsgen) +if (NOT HOST_BINARY_DIR) + project(settingsgen) -set(sourcefiles - settingsgen.cpp - ../core/alloc_func.cpp - ../misc/getoptdata.cpp - ../ini_load.cpp - ../string.cpp -) -add_definitions(-DSETTINGSGEN) -add_executable(settingsgen ${sourcefiles}) + set(sourcefiles + settingsgen.cpp + ../core/alloc_func.cpp + ../misc/getoptdata.cpp + ../ini_load.cpp + ../string.cpp + ) + add_definitions(-DSETTINGSGEN) + add_executable(settingsgen ${sourcefiles}) + + export(TARGETS settingsgen FILE ${CMAKE_BINARY_DIR}/settingsgen.cmake) + add_dependencies(tools settingsgen) +endif() diff --git a/src/strgen/CMakeLists.txt b/src/strgen/CMakeLists.txt index b8f61cde3..c638b5c6e 100644 --- a/src/strgen/CMakeLists.txt +++ b/src/strgen/CMakeLists.txt @@ -1,22 +1,26 @@ cmake_minimum_required(VERSION 3.5) -project(strgen) +if (NOT HOST_BINARY_DIR) + project(strgen) -set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/../../cmake") + set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/../../cmake") -set(sourcefiles - strgen.cpp - strgen_base.cpp - ../core/alloc_func.cpp - ../misc/getoptdata.cpp - ../string.cpp -) -add_definitions(-DSTRGEN) -add_executable(strgen ${sourcefiles}) + set(sourcefiles + strgen.cpp + strgen_base.cpp + ../core/alloc_func.cpp + ../misc/getoptdata.cpp + ../string.cpp + ) + add_definitions(-DSTRGEN) + add_executable(strgen ${sourcefiles}) -include(Endian) -add_endian_definition() + include(Endian) + add_endian_definition() + export(TARGETS strgen FILE ${CMAKE_BINARY_DIR}/strgen.cmake) + add_dependencies(tools strgen) +endif() # Source Files add_files(strgen_base.cpp) diff --git a/src/table/CMakeLists.txt b/src/table/CMakeLists.txt index 23b4724e3..e63337b8a 100644 --- a/src/table/CMakeLists.txt +++ b/src/table/CMakeLists.txt @@ -11,6 +11,10 @@ set(TABLE_INI_SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/window_settings.ini ) +if (HOST_BINARY_DIR) + include(${HOST_BINARY_DIR}/settingsgen.cmake) +endif() + # Generate a command and target to create the settings table add_custom_command_timestamp(OUTPUT ${TABLE_BINARY_DIR}/settings.h COMMAND ${CMAKE_COMMAND} -E make_directory ${TABLE_BINARY_DIR} -- cgit v1.2.3-70-g09d2