macOS: Build universal Qt for macOS

Build a universal macOS targeting Intel x86_64 and Apple Silicon
arm64 using the fat library technique. It will be our new Packaging
configuration for macOS.

Rename the Id of the configuration to
'macos-latest-xcode-universal-packaging-build'.

x86_64 is the main config test architecture.

The arm64 slice of the Qt build lacks certain functionality:
 - no qdoc, lupdate, etc due to missing arm64 llvm packages
 - no postgresql and odbc sql plugins due to missing
   arm64 3rd party libraries
 - no openssl due to missing arm64 library
 - no JIT support in QtQml, due to limitations in the current fork
   of the javascript engine

Task-number: QTBUG-85447
Change-Id: If2a70f192a54d6f98137e05e5b938d118b6d1d1d
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
This commit is contained in:
Alexandru Croitor
2021-03-24 17:05:26 +01:00
parent c9eba7d99f
commit 1306da8f92
3 changed files with 11 additions and 10 deletions

View File

@@ -106,7 +106,7 @@ Configurations:
Target arch: 'arm64'
Compiler: 'Clang'
Target compiler: 'Clang'
Platform dependency: 'macos-latest-xcode-x86_64-packaging-build'
Platform dependency: 'macos-latest-xcode-universal-packaging-build'
Features: ['Packaging', 'Sccache', 'DebugAndRelease']
Environment variables: ['TARGET_CONFIGURE_ARGS=-G"Ninja Multi-Config" -DCMAKE_CONFIGURATION_TYPES="Release;Debug" -DQT_BUILD_EXAMPLES=OFF -DCMAKE_SYSTEM_NAME=iOS', 'NON_QTBASE_TARGET_CONFIGURE_ARGS=']
-

View File

@@ -6,7 +6,7 @@ Configurations:
Target arch: 'arm64'
Compiler: 'Clang'
Target compiler: 'Clang'
Platform dependency: 'macos-latest-xcode-x86_64-packaging-build'
Platform dependency: 'macos-latest-xcode-universal-packaging-build'
Features: ['Packaging', 'Sccache', 'DisableTests']
Environment variables: [
'TARGET_CONFIGURE_ARGS=-DQT_BUILD_EXAMPLES=OFF -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_TOOLCHAIN_FILE={{.Env.ANDROID_NDK_ROOT}}/build/cmake/android.toolchain.cmake -DANDROID_SDK_ROOT={{.Env.ANDROID_SDK_HOME}} -DANDROID_ABI=arm64-v8a -DCMAKE_C_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_CXX_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache',
@@ -17,7 +17,7 @@ Configurations:
Target arch: 'armv7'
Compiler: 'Clang'
Target compiler: 'Clang'
Platform dependency: 'macos-latest-xcode-x86_64-packaging-build'
Platform dependency: 'macos-latest-xcode-universal-packaging-build'
Features: ['Packaging', 'Sccache', 'DisableTests']
Environment variables: [
'TARGET_CONFIGURE_ARGS=-DQT_BUILD_EXAMPLES=OFF -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_TOOLCHAIN_FILE={{.Env.ANDROID_NDK_ROOT}}/build/cmake/android.toolchain.cmake -DANDROID_SDK_ROOT={{.Env.ANDROID_SDK_HOME}} -DANDROID_ABI=armeabi-v7a -DCMAKE_C_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_CXX_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache',
@@ -28,7 +28,7 @@ Configurations:
Target arch: 'x86'
Compiler: 'Clang'
Target compiler: 'Clang'
Platform dependency: 'macos-latest-xcode-x86_64-packaging-build'
Platform dependency: 'macos-latest-xcode-universal-packaging-build'
Features: ['Packaging', 'Sccache', 'DisableTests']
Environment variables: [
'TARGET_CONFIGURE_ARGS=-DQT_BUILD_EXAMPLES=OFF -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_TOOLCHAIN_FILE={{.Env.ANDROID_NDK_ROOT}}/build/cmake/android.toolchain.cmake -DANDROID_SDK_ROOT={{.Env.ANDROID_SDK_HOME}} -DANDROID_ABI=x86 -DCMAKE_C_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_CXX_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache',
@@ -39,7 +39,7 @@ Configurations:
Target arch: 'x86_64'
Compiler: 'Clang'
Target compiler: 'Clang'
Platform dependency: 'macos-latest-xcode-x86_64-packaging-build'
Platform dependency: 'macos-latest-xcode-universal-packaging-build'
Features: ['Packaging', 'Sccache', 'DisableTests']
Environment variables: [
'TARGET_CONFIGURE_ARGS=-DQT_BUILD_EXAMPLES=OFF -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_TOOLCHAIN_FILE={{.Env.ANDROID_NDK_ROOT}}/build/cmake/android.toolchain.cmake -DANDROID_SDK_ROOT={{.Env.ANDROID_SDK_HOME}} -DANDROID_ABI=x86_64 -DCMAKE_C_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_CXX_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache',

View File

@@ -2,11 +2,12 @@ Version: 2
Configurations:
# Build with latest Xcode
-
Id: 'macos-latest-xcode-x86_64-packaging-build'
# This is a universal build containing both x86_64 and arm64 architectures
Id: 'macos-latest-xcode-universal-packaging-build'
Template: 'qtci-macos-11.0-x86_64-102'
Compiler: 'Clang'
Features: ['Packaging', 'Sccache', 'DoNotRunTests']
Configure arguments: '-DQT_BUILD_EXAMPLES=OFF -DCMAKE_BUILD_TYPE=RelWithDebInfo -DFEATURE_separate_debug_info=ON -DFEATURE_headersclean=ON -DFEATURE_framework=ON -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache -DODBC_ROOT=/usr/local/opt/libiodbc -DPostgreSQL_ROOT={{.Env.POSTGRESQLBINPATH}}/..'
Configure arguments: '-DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DQT_BUILD_EXAMPLES=OFF -DCMAKE_BUILD_TYPE=RelWithDebInfo -DFEATURE_separate_debug_info=ON -DFEATURE_headersclean=ON -DFEATURE_framework=ON -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache -DODBC_ROOT=/usr/local/opt/libiodbc -DPostgreSQL_ROOT={{.Env.POSTGRESQLBINPATH}}/..'
Environment variables: [
'NON_QTBASE_CONFIGURE_ARGS=-DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache',
'TEST_CONFIGURE_ARGS=-DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache'
@@ -18,19 +19,19 @@ Configurations:
Template: 'qtci-macos-10.14-x86_64'
Compiler: 'Clang'
Features: ['Sccache', 'TestOnly']
Platform dependency: 'macos-latest-xcode-x86_64-packaging-build'
Platform dependency: 'macos-latest-xcode-universal-packaging-build'
-
Id: 'macos-10.15-x86_64-tests'
Template: 'qtci-macos-10.15-x86_64-102'
Compiler: 'Clang'
Features: ['Sccache', 'TestOnly']
Platform dependency: 'macos-latest-xcode-x86_64-packaging-build'
Platform dependency: 'macos-latest-xcode-universal-packaging-build'
-
Id: 'macos-11-x86_64-tests'
Template: 'qtci-macos-11.0-x86_64-102'
Compiler: 'Clang'
Features: ['Sccache', 'TestOnly']
Platform dependency: 'macos-latest-xcode-x86_64-packaging-build'
Platform dependency: 'macos-latest-xcode-universal-packaging-build'
# Build developer builds for all modules, but only run tests for qtbase and declarative.
# See macos-developer-build-tests.yaml for the tests