summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmake/Functions.cmake32
-rw-r--r--configure.cmake4
-rw-r--r--src/CMakeLists.txt2
-rw-r--r--src/core/CMakeLists.txt4
-rw-r--r--src/core/api/CMakeLists.txt3
-rw-r--r--src/core/tools/CMakeLists.txt2
-rw-r--r--src/pdf/CMakeLists.txt3
7 files changed, 27 insertions, 23 deletions
diff --git a/cmake/Functions.cmake b/cmake/Functions.cmake
index cc6f609f6..44313d8cf 100644
--- a/cmake/Functions.cmake
+++ b/cmake/Functions.cmake
@@ -1033,18 +1033,26 @@ endfunction()
function(get_configs result)
if(QT_GENERATOR_IS_MULTI_CONFIG)
- set(${result} ${CMAKE_CONFIGURATION_TYPES} PARENT_SCOPE)
+ set(${result} ${CMAKE_CONFIGURATION_TYPES})
else()
- set(${result} ${CMAKE_BUILD_TYPE} PARENT_SCOPE)
+ set(${result} ${CMAKE_BUILD_TYPE})
+ endif()
+ if(NOT ${result})
+ message(FATAL_ERROR "No valid configurations found !")
endif()
+ set(${result} ${${result}} PARENT_SCOPE)
endfunction()
function(get_architectures result)
- if(QT_IS_MACOS_UNIVERSAL OR IOS)
- set(${result} ${CMAKE_OSX_ARCHITECTURES} PARENT_SCOPE)
+ if(CMAKE_OSX_ARCHITECTURES)
+ set(${result} ${CMAKE_OSX_ARCHITECTURES})
else()
- set(${result} ${CMAKE_SYSTEM_PROCESSOR} PARENT_SCOPE)
+ set(${result} ${CMAKE_SYSTEM_PROCESSOR})
endif()
+ if(NOT ${result})
+ message(FATAL_ERROR "No valid architectures found. In case of cross-compiling make sure you have CMAKE_SYSTEM_PROCESSOR in your toolchain file.")
+ endif()
+ set(${result} ${${result}} PARENT_SCOPE)
endfunction()
function(add_gn_build_aritfacts_to_target cmakeTarget ninjaTarget module buildDir completeStatic)
@@ -1053,14 +1061,9 @@ function(add_gn_build_aritfacts_to_target cmakeTarget ninjaTarget module buildDi
# the minimum cmake we support
get_configs(configs)
get_architectures(archs)
- if(NOT configs)
- message(FATAL_ERROR "No valid configurations found !")
- endif()
- if(NOT archs)
- message(FATAL_ERROR "No valid architectures found. In case of cross-compiling make sure you have CMAKE_SYSTEM_PROCESSOR in your toolchain file.")
- endif()
foreach(config ${configs})
foreach(arch ${archs})
+
set(target ${ninjaTarget}_${config}_${arch})
add_ninja_target(${target} ${cmakeTarget} ${ninjaTarget} ${config} ${arch} ${buildDir})
add_ninja_command(
@@ -1080,15 +1083,14 @@ function(add_gn_build_aritfacts_to_target cmakeTarget ninjaTarget module buildDi
else()
extend_cmake_target(${target} ${buildDir}/${config}/${arch} ${completeStatic})
endif()
+ unset(target)
endforeach()
+ list(GET archs 0 arch)
+ set(target ${ninjaTarget}_${config}_${arch})
if(QT_IS_MACOS_UNIVERSAL)
- set(arch ${CMAKE_SYSTEM_PROCESSOR})
- set(target ${ninjaTarget}_${config}_${arch})
add_lipo_command(${target} ${buildDir}/${config})
endif()
if(IOS)
- list(GET archs 0 arch)
- set(target ${ninjaTarget}_${config}_${arch})
add_ios_lipo_command(${target} ${buildDir}/${config})
endif()
endforeach()
diff --git a/configure.cmake b/configure.cmake
index aa2e2d0cf..64d3d4270 100644
--- a/configure.cmake
+++ b/configure.cmake
@@ -441,12 +441,12 @@ assertTargets(
)
add_check_for_support(
MODULES QtWebEngine
- CONDITION LINUX OR (WIN32 AND NOT WIN_ARM_64) OR (MACOS AND NOT CMAKE_CROSSCOMPILING)
+ CONDITION LINUX OR (WIN32 AND NOT WIN_ARM_64) OR MACOS
MESSAGE "Build can be done only on Linux, Windows or macOS."
)
add_check_for_support(
MODULES QtPdf
- CONDITION LINUX OR (WIN32 AND NOT WIN_ARM_64) OR (MACOS AND NOT CMAKE_CROSSCOMPILING) OR IOS
+ CONDITION LINUX OR (WIN32 AND NOT WIN_ARM_64) OR MACOS OR IOS
MESSAGE "Build can be done only on Linux, Windows, macOS or iOS."
)
if(LINUX AND CMAKE_CROSSCOMPILING)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 31123d06c..921871bee 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -151,7 +151,7 @@ endif()
# HOST PROJECT
##
-if(CMAKE_CROSSCOMPILING AND NOT IOS)
+if(CMAKE_CROSSCOMPILING AND NOT IOS AND NOT MACOS)
if(NOT Gn_FOUND)
message(FATAL_ERROR "\nHost gn not found - cross compilation not possible")
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}/$<CONFIG>/${arch}/gen
${buildDir}/$<CONFIG>/${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"
diff --git a/src/pdf/CMakeLists.txt b/src/pdf/CMakeLists.txt
index 51e9c6045..ae2f71120 100644
--- a/src/pdf/CMakeLists.txt
+++ b/src/pdf/CMakeLists.txt
@@ -201,7 +201,8 @@ endforeach()
# PDF SETUP
##
-set(arch ${CMAKE_SYSTEM_PROCESSOR})
+get_architectures(archs)
+list(GET archs 0 arch)
target_include_directories(Pdf PRIVATE ${buildDir}/$<CONFIG>/${arch}/gen)
add_gn_build_aritfacts_to_target(Pdf QtPdf pdf ${buildDir} TRUE)
add_dependencies(Pdf run_pdf_NinjaDone)