diff options
-rw-r--r-- | cmake/Functions.cmake | 32 | ||||
-rw-r--r-- | configure.cmake | 4 | ||||
-rw-r--r-- | src/CMakeLists.txt | 2 | ||||
-rw-r--r-- | src/core/CMakeLists.txt | 4 | ||||
-rw-r--r-- | src/core/api/CMakeLists.txt | 3 | ||||
-rw-r--r-- | src/core/tools/CMakeLists.txt | 2 | ||||
-rw-r--r-- | src/pdf/CMakeLists.txt | 3 |
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) |