From ba74eaba11b2df9d6c2b23f7595e7bb1a03e911e Mon Sep 17 00:00:00 2001 From: Michal Klocek Date: Wed, 20 Apr 2022 08:48:02 +0200 Subject: Support cross-compilation on macOS So far we only supported a cross-compiling with universal builds, however qmake also supports 'regular' cross compilation (by setting '-device-option'). This is semi-supported with qt-cmake as we need to provide additional configure defines like: * CMAKE_OSX_ARCHITECTURES=arm64 * CMAKE_SYSTEM_NAME=Darwin * CMAKE_OSX_DEPLOYMENT_TARGET=10.14 It might seem to be a far fetched issue, however in case of webengine doing the cross compilation for only one architecture allows to save compile times when testing only arm64 builds. Note we do not need to create gn toolchains for that case, however unlike universal builds it requires host qt build for tools. Pick-to: 6.3 6.2 Change-Id: Ica8470fdd4cad4866c1470e0403ffd019eaf39a6 Reviewed-by: Alexandru Croitor --- src/core/CMakeLists.txt | 4 ++-- src/core/api/CMakeLists.txt | 3 ++- src/core/tools/CMakeLists.txt | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) (limited to 'src/core') diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index d0c64a848..15152af7f 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt @@ -461,7 +461,7 @@ endforeach() # WEBENGINECORE SETUP ## -set(arch ${CMAKE_SYSTEM_PROCESSOR}) +list(GET archs 0 arch) target_include_directories(WebEngineCore PRIVATE ${buildDir}/$/${arch}/gen ${buildDir}/$/${arch}/gen/third_party/perfetto @@ -503,7 +503,7 @@ endif() # WEBENGINECORE DICT TOOL SETUP ## -if(QT_FEATURE_webengine_spellchecker) +if(QT_FEATURE_webengine_spellchecker AND NOT CMAKE_CROSSCOMPILING) qt_get_tool_target_name(dict_target_name qwebengine_convert_dict) target_include_directories(${dict_target_name} PRIVATE ../3rdparty/chromium diff --git a/src/core/api/CMakeLists.txt b/src/core/api/CMakeLists.txt index 803cd43c9..e46c95be3 100644 --- a/src/core/api/CMakeLists.txt +++ b/src/core/api/CMakeLists.txt @@ -95,7 +95,6 @@ add_dependencies(generate_docs_WebEngineCore generate_chromium_attributions) # WEBENGINECORE RESOURCES ## -set(arch ${CMAKE_SYSTEM_PROCESSOR}) #TODO: use simply filter / globbing-expressions set(localeList am ar bg bn ca cs da de el en-GB en-US es-419 es et fa fi fil fr gu he hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk @@ -107,6 +106,8 @@ set(resourceList qtwebengine_resources.pak qtwebengine_devtools_resources.pak) get_install_config(config) +get_architectures(archs) +list(GET archs 0 arch) foreach(loc ${localeList}) get_filename_component(locSourcePath ${buildDir}/${config}/${arch}/qtwebengine_locales/${loc}.pak REALPATH) diff --git a/src/core/tools/CMakeLists.txt b/src/core/tools/CMakeLists.txt index 733c124e4..5f14c6ebd 100644 --- a/src/core/tools/CMakeLists.txt +++ b/src/core/tools/CMakeLists.txt @@ -3,7 +3,7 @@ # WEBENGINECORE DICT CONVERT TOOL ## -if(QT_FEATURE_webengine_spellchecker) +if(QT_FEATURE_webengine_spellchecker AND NOT CMAKE_CROSSCOMPILING) qt_get_tool_target_name(dict_target_name qwebengine_convert_dict) qt_internal_add_tool(${dict_target_name} TARGET_DESCRIPTION "QtWebEngine Dictionary Conversion Tool" -- cgit v1.2.3