From 6f5db32d147166ab1617c66844e3297eededc704 Mon Sep 17 00:00:00 2001 From: Gabriele Contini <gcontini@users.noreply.github.com> Date: ćšć, 19 9æ 2019 20:20:18 +0800 Subject: [PATCH] Feature/mingw cross compile (#51) --- src/tools/bootstrap/CMakeLists.txt | 38 +++++++++++++++++++++++++++----------- 1 files changed, 27 insertions(+), 11 deletions(-) diff --git a/src/tools/bootstrap/CMakeLists.txt b/src/tools/bootstrap/CMakeLists.txt index 8ea8f08..6bdf996 100644 --- a/src/tools/bootstrap/CMakeLists.txt +++ b/src/tools/bootstrap/CMakeLists.txt @@ -1,10 +1,9 @@ add_executable( bootstrap - Main.cpp + bootstrap.cpp ) - -SET_TARGET_PROPERTIES(bootstrap PROPERTIES LINK_SEARCH_START_STATIC ON) +#SET_TARGET_PROPERTIES(bootstrap PROPERTIES LINK_SEARCH_START_STATIC ON) SET_TARGET_PROPERTIES(bootstrap PROPERTIES LINK_SEARCH_END_STATIC OFF) target_link_libraries( bootstrap @@ -12,15 +11,32 @@ ${EXTERNAL_LIBS} ) -# add the command to generate the source code -add_custom_command ( - OUTPUT "${CMAKE_BINARY_DIR}/src/tools/license-generator/private-key.h" "${CMAKE_BINARY_DIR}/src/library/base/public-key.h" - COMMAND bootstrap "${CMAKE_BINARY_DIR}/src/tools/license-generator/private-key.h" "${CMAKE_BINARY_DIR}/src/library/base/public-key.h" - DEPENDS bootstrap -) +if(MINGW) + #Cross compiling from linux host to windows + IF( ( CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux") AND CMAKE_CROSSCOMPILING) + #this is to avoid to install binfmt_misc (for builds in docker, or LXC) + add_custom_command ( + OUTPUT "${CMAKE_BINARY_DIR}/private-key.h" "${CMAKE_BINARY_DIR}/public-key.h" + COMMAND wine ${CMAKE_CURRENT_BINARY_DIR}/bootstrap.exe "${CMAKE_BINARY_DIR}/private-key.h" "${CMAKE_BINARY_DIR}/public-key.h" + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + DEPENDS bootstrap) + ELSE() + add_custom_command ( + OUTPUT "${CMAKE_BINARY_DIR}/private-key.h" "${CMAKE_BINARY_DIR}/public-key.h" + COMMAND ./bootstrap.exe "${CMAKE_BINARY_DIR}/private-key.h" "${CMAKE_BINARY_DIR}/public-key.h" + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + DEPENDS bootstrap) + ENDIF() +else(MINGW) + add_custom_command ( + OUTPUT "${CMAKE_BINARY_DIR}/private-key.h" "${CMAKE_BINARY_DIR}/public-key.h" + COMMAND bootstrap "${CMAKE_BINARY_DIR}/private-key.h" "${CMAKE_BINARY_DIR}/public-key.h" + WORKING_DIRECTORY ${CMAKE_BINARY_DIR} + DEPENDS bootstrap) +endif(MINGW) -add_custom_target(private_key DEPENDS "${CMAKE_BINARY_DIR}/src/tools/license-generator/private-key.h") -add_custom_target(public_key DEPENDS "${CMAKE_BINARY_DIR}/src/library/base/public-key.h") +add_custom_target(private_key DEPENDS "${CMAKE_BINARY_DIR}/private-key.h") +add_custom_target(public_key DEPENDS "${CMAKE_BINARY_DIR}/public-key.h") # add the command to generate the source code -- Gitblit v1.9.1