From 55419547206c2be326503a220575d6a124ea16cc Mon Sep 17 00:00:00 2001
From: Gabriele Contini <contini.mailing@gmail.com>
Date: 周六, 21 9月 2019 01:34:22 +0800
Subject: [PATCH] Merge branch 'develop' of https://github.com/open-license-manager/open-license-manager into develop

---
 src/tools/bootstrap/CMakeLists.txt |   36 +++++++++++++++++++++---------------
 1 files changed, 21 insertions(+), 15 deletions(-)

diff --git a/src/tools/bootstrap/CMakeLists.txt b/src/tools/bootstrap/CMakeLists.txt
index 856fc5f..6bdf996 100644
--- a/src/tools/bootstrap/CMakeLists.txt
+++ b/src/tools/bootstrap/CMakeLists.txt
@@ -3,8 +3,7 @@
  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,22 +11,29 @@
      ${EXTERNAL_LIBS}
 )
 
-# add the command to generate the source code
-
 if(MINGW)
-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)
+	#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)
+	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}/private-key.h")
 add_custom_target(public_key DEPENDS "${CMAKE_BINARY_DIR}/public-key.h")

--
Gitblit v1.9.1