summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin Jagieniak <justin@jagieniak.net>2021-04-14 10:17:16 +0200
committerDaniel Black <daniel@mariadb.org>2021-04-15 10:07:50 +1000
commit1715fef107b2b0fab2b1e2dbac062b3ac7a9c6b2 (patch)
tree8ba25346b5a2da7330db85769fa2dc3aa844bfbf
parentd1f2001ee6a184cf34005a1aa81c2179308cf537 (diff)
downloadmariadb-git-1715fef107b2b0fab2b1e2dbac062b3ac7a9c6b2.tar.gz
Fix cross-compile to consider CMAKE_CROSSCOMPILING_EMULATORbb-10.5-danielblack-pr1805-cross-compile
When CMAKE_CROSSCOMPILING_EMULATOR is defined, a cross-compile can be made, however with native (emulated) execution possible. This commit takes those points in the build system that execute built targets natively and allow these to be executed in a crosscompile if CMAKE_CROSSCOMPILING_EMULATOR is defined. Closes #1805
-rw-r--r--CMakeLists.txt4
-rw-r--r--configure.cmake8
-rw-r--r--dbug/CMakeLists.txt2
-rw-r--r--extra/CMakeLists.txt2
-rw-r--r--scripts/CMakeLists.txt4
-rw-r--r--sql/CMakeLists.txt4
-rw-r--r--storage/mroonga/vendor/groonga/CMakeLists.txt2
7 files changed, 13 insertions, 13 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7452509d0d9..4763c48ec13 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -393,7 +393,7 @@ CHECK_PCRE()
CHECK_SYSTEMD()
-IF(CMAKE_CROSSCOMPILING)
+IF(CMAKE_CROSSCOMPILING AND NOT DEFINED CMAKE_CROSSCOMPILING_EMULATOR)
SET(IMPORT_EXECUTABLES "IMPORTFILE-NOTFOUND" CACHE FILEPATH "Path to import_executables.cmake from a native build")
INCLUDE(${IMPORT_EXECUTABLES})
ENDIF()
@@ -475,7 +475,7 @@ ADD_SUBDIRECTORY(scripts)
ADD_SUBDIRECTORY(support-files)
ADD_SUBDIRECTORY(extra/aws_sdk)
-IF(NOT CMAKE_CROSSCOMPILING)
+IF(NOT CMAKE_CROSSCOMPILING OR DEFINED CMAKE_CROSSCOMPILING_EMULATOR)
SET(EXPORTED comp_err comp_sql factorial)
IF(NOT WITHOUT_SERVER)
SET(EXPORTED ${EXPORTED} gen_lex_hash gen_lex_token)
diff --git a/configure.cmake b/configure.cmake
index 8cff10a24ac..0bcf81d8c64 100644
--- a/configure.cmake
+++ b/configure.cmake
@@ -670,10 +670,10 @@ int main()
" HAVE_PTHREAD_YIELD_ZERO_ARG)
IF(NOT STACK_DIRECTION)
- IF(CMAKE_CROSSCOMPILING)
- MESSAGE(FATAL_ERROR
- "STACK_DIRECTION is not defined. Please specify -DSTACK_DIRECTION=1 "
- "or -DSTACK_DIRECTION=-1 when calling cmake.")
+ IF(CMAKE_CROSSCOMPILING AND NOT DEFINED CMAKE_CROSSCOMPILING_EMULATOR)
+ MESSAGE(FATAL_ERROR
+ "STACK_DIRECTION is not defined. Please specify -DSTACK_DIRECTION=1 "
+ "or -DSTACK_DIRECTION=-1 when calling cmake.")
ELSE()
TRY_RUN(STACKDIR_RUN_RESULT STACKDIR_COMPILE_RESULT
${CMAKE_BINARY_DIR}
diff --git a/dbug/CMakeLists.txt b/dbug/CMakeLists.txt
index 842099f03f3..d45401be290 100644
--- a/dbug/CMakeLists.txt
+++ b/dbug/CMakeLists.txt
@@ -25,7 +25,7 @@ MAYBE_DISABLE_IPO(dbug)
ADD_EXECUTABLE(tests tests.c)
TARGET_LINK_LIBRARIES(tests dbug)
-IF(NOT CMAKE_CROSSCOMPILING)
+IF(NOT CMAKE_CROSSCOMPILING OR DEFINED CMAKE_CROSSCOMPILING_EMULATOR)
ADD_EXECUTABLE(factorial my_main.c factorial.c)
TARGET_LINK_LIBRARIES(factorial dbug)
ENDIF()
diff --git a/extra/CMakeLists.txt b/extra/CMakeLists.txt
index 8f4c434ed34..71c9d60afb0 100644
--- a/extra/CMakeLists.txt
+++ b/extra/CMakeLists.txt
@@ -18,7 +18,7 @@ INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include ${ZLIB_INCLUDE_DIR})
# Default install component for the files is Server here
SET(MYSQL_INSTALL_COMPONENT Server)
-IF(NOT CMAKE_CROSSCOMPILING)
+IF(NOT CMAKE_CROSSCOMPILING OR DEFINED CMAKE_CROSSCOMPILING_EMULATOR)
ADD_EXECUTABLE(comp_err comp_err.c)
TARGET_LINK_LIBRARIES(comp_err mysys)
ENDIF()
diff --git a/scripts/CMakeLists.txt b/scripts/CMakeLists.txt
index 833a9b8da6a..923b3110af7 100644
--- a/scripts/CMakeLists.txt
+++ b/scripts/CMakeLists.txt
@@ -28,14 +28,14 @@ MACRO(INSTALL_LINK old new destination component)
)
ENDMACRO()
-IF(NOT CMAKE_CROSSCOMPILING)
+IF(NOT CMAKE_CROSSCOMPILING OR DEFINED CMAKE_CROSSCOMPILING_EMULATOR)
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
ADD_EXECUTABLE(comp_sql comp_sql.c)
TARGET_LINK_LIBRARIES(comp_sql)
ENDIF()
# Build mysql_fix_privilege_tables.sql (concatenate 3 sql scripts)
-IF(NOT WIN32 OR CMAKE_CROSSCOMPILING)
+IF(NOT WIN32 OR (CMAKE_CROSSCOMPILING AND NOT DEFINED CMAKE_CROSSCOMPILING_EMULATOR))
FIND_PROGRAM(CAT_EXECUTABLE cat DOC "path to the executable")
MARK_AS_ADVANCED(CAT_EXECUTABLE)
ENDIF()
diff --git a/sql/CMakeLists.txt b/sql/CMakeLists.txt
index b9cd418f295..bff01ca817e 100644
--- a/sql/CMakeLists.txt
+++ b/sql/CMakeLists.txt
@@ -356,7 +356,7 @@ ELSE()
COMPILE_FLAGS "-p ORA")
ENDIF()
-IF(NOT CMAKE_CROSSCOMPILING)
+IF(NOT CMAKE_CROSSCOMPILING OR DEFINED CMAKE_CROSSCOMPILING_EMULATOR)
ADD_EXECUTABLE(gen_lex_token gen_lex_token.cc
${CMAKE_CURRENT_BINARY_DIR}/sql_yacc.hh)
ADD_EXECUTABLE(gen_lex_hash gen_lex_hash.cc)
@@ -406,7 +406,7 @@ ADD_CUSTOM_TARGET(distclean
)
# Install initial database (default on windows, optional target elsewhere)
-IF(TARGET mariadbd AND NOT CMAKE_CROSSCOMPILING)
+IF(TARGET mariadbd AND (NOT CMAKE_CROSSCOMPILING OR DEFINED CMAKE_CROSSCOMPILING_EMULATOR))
IF(GENERATOR_IS_MULTI_CONFIG)
SET (CONFIG_PARAM -DCONFIG=${CMAKE_CFG_INTDIR})
ENDIF()
diff --git a/storage/mroonga/vendor/groonga/CMakeLists.txt b/storage/mroonga/vendor/groonga/CMakeLists.txt
index d271d4c4eb9..ebb8b6906ec 100644
--- a/storage/mroonga/vendor/groonga/CMakeLists.txt
+++ b/storage/mroonga/vendor/groonga/CMakeLists.txt
@@ -405,7 +405,7 @@ if(NOT ${GRN_WITH_MECAB} STREQUAL "no")
set(MECAB_LIBRARIES libmecab)
else()
set(GRN_MECAB_CONFIG "mecab-config" CACHE FILEPATH "mecab-config path")
- if(NOT CMAKE_CROSSCOMPILING)
+ if(NOT CMAKE_CROSSCOMPILING OR DEFINED CMAKE_CROSSCOMPILING_EMULATOR)
find_program(GRN_MECAB_CONFIG_ABSOLUTE_PATH "${GRN_MECAB_CONFIG}")
endif()
if(EXISTS "${GRN_MECAB_CONFIG_ABSOLUTE_PATH}")