Add vcpkg provisioning on macos platforms

Change-Id: Iee721367772f64a956bf421a8564845506138c33
Reviewed-by: Simo Fält <simo.falt@qt.io>
Reviewed-by: Alexey Edelev <semlanik@gmail.com>
This commit is contained in:
Alexey Edelev
2025-08-06 14:50:18 +02:00
committed by Joerg Bornemann
parent 5579337dde
commit 9a13282256
18 changed files with 147 additions and 1 deletions

View File

@@ -17,6 +17,8 @@ Configurations:
Environment variables: [
'CMAKE_ARGS=-DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_DIR}}',
'NON_QTBASE_CMAKE_ARGS=-DFEATURE_gds=OFF -DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE -DINPUT_headersclean=ON -DQT_FEATURE_open62541_security=OFF',
'VCPKG_HOST_TRIPLET=universal-osx-qt',
'VCPKG_TARGET_TRIPLET=universal-osx-qt',
]
# Test on all supported macOS versions (deployment targets)
@@ -91,6 +93,8 @@ Configurations:
Environment variables: [
'CMAKE_ARGS=-DOPENSSL_ROOT_DIR={{.Env.OPENSSL_DIR}}',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE',
'VCPKG_HOST_TRIPLET=universal-osx-qt',
'VCPKG_TARGET_TRIPLET=universal-osx-qt',
]
-
Id: 'macos-26-x86_64-developer-build'
@@ -111,6 +115,8 @@ Configurations:
Environment variables: [
'CMAKE_ARGS=-DOPENSSL_ROOT_DIR={{.Env.OPENSSL_DIR}}',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE',
'VCPKG_HOST_TRIPLET=universal-osx-qt',
'VCPKG_TARGET_TRIPLET=universal-osx-qt',
]
-
Id: 'macos-26-arm64-developer-build'
@@ -121,6 +127,8 @@ Configurations:
Environment variables: [
'CMAKE_ARGS=-DOPENSSL_ROOT_DIR={{.Env.OPENSSL_DIR}}',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE',
'VCPKG_HOST_TRIPLET=arm64-osx-qt',
'VCPKG_TARGET_TRIPLET=arm64-osx-qt',
]
# Test on all supported macOS versions (deployment targets)

View File

@@ -0,0 +1,13 @@
set(VCPKG_CMAKE_SYSTEM_NAME Darwin)
set(VCPKG_OSX_ARCHITECTURES arm64)
set(VCPKG_TARGET_ARCHITECTURE arm64)
# Default settings of the triplet from the official vcpkg registry
set(VCPKG_CRT_LINKAGE dynamic)
set(VCPKG_LIBRARY_LINKAGE static)
# Qt custom per-port customizations
if(PORT MATCHES "openssl")
set(VCPKG_LIBRARY_LINKAGE dynamic)
set(VCPKG_FIXUP_ELF_RPATH ON)
endif()

View File

@@ -0,0 +1,13 @@
set(VCPKG_CMAKE_SYSTEM_NAME Darwin)
set(VCPKG_OSX_ARCHITECTURES x86_64)
set(VCPKG_TARGET_ARCHITECTURE x64)
# Default settings of the triplet from the official vcpkg registry
set(VCPKG_CRT_LINKAGE dynamic)
set(VCPKG_LIBRARY_LINKAGE static)
# Qt custom per-port customizations
if(PORT MATCHES "openssl")
set(VCPKG_LIBRARY_LINKAGE dynamic)
set(VCPKG_FIXUP_ELF_RPATH ON)
endif()

View File

@@ -10,8 +10,9 @@ echo "Installing vcpkg ports"
pushd "${BASH_SOURCE%/*}/../shared/vcpkg" || exit
install_root=$1-tmp
vcpkg_extra_args=$2
"$VCPKG_ROOT/vcpkg" install --triplet $1 --x-install-root $install_root --debug
"$VCPKG_ROOT/vcpkg" install --triplet $1 --x-install-root $install_root --debug $vcpkg_extra_args
cmake "-DVCPKG_EXECUTABLE=$VCPKG_ROOT/vcpkg"\
"-DVCPKG_INSTALL_ROOT=$PWD/$install_root"\

View File

@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -ex
BASEDIR=$(dirname "$0")
"$BASEDIR/../common/unix/install-vcpkg.sh"

View File

@@ -0,0 +1,10 @@
#!/usr/bin/env bash
set -ex
BASEDIR=$(dirname "$0")
"$BASEDIR/../common/unix/install-vcpkg-ports.sh" arm64-osx-qt --host-triplet=arm64-osx
"$BASEDIR/../common/unix/install-vcpkg-ports.sh" x64-osx-qt --host-triplet=x64-osx
python3 -m lipomerge $VCPKG_ROOT/installed/arm64-osx-qt $VCPKG_ROOT/installed/x64-osx-qt $VCPKG_ROOT/installed/universal-osx-qt
find $VCPKG_ROOT/installed/universal-osx-qt -name '*.cmake' -exec sed -i .bak -E 's,/(arm64|x64)-osx(-qt)?/,/universal-osx-qt/,g' '{}' \;

View File

@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -ex
BASEDIR=$(dirname "$0")
"$BASEDIR/../common/unix/install-vcpkg.sh"

View File

@@ -0,0 +1,10 @@
#!/usr/bin/env bash
set -ex
BASEDIR=$(dirname "$0")
"$BASEDIR/../common/unix/install-vcpkg-ports.sh" arm64-osx-qt --host-triplet=arm64-osx
"$BASEDIR/../common/unix/install-vcpkg-ports.sh" x64-osx-qt --host-triplet=x64-osx
python3 -m lipomerge $VCPKG_ROOT/installed/arm64-osx-qt $VCPKG_ROOT/installed/x64-osx-qt $VCPKG_ROOT/installed/universal-osx-qt
find $VCPKG_ROOT/installed/universal-osx-qt -name '*.cmake' -exec sed -i .bak -E 's,/(arm64|x64)-osx(-qt)?/,/universal-osx-qt/,g' '{}' \;

View File

@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -ex
BASEDIR=$(dirname "$0")
"$BASEDIR/../common/unix/install-vcpkg.sh"

View File

@@ -0,0 +1,10 @@
#!/usr/bin/env bash
set -ex
BASEDIR=$(dirname "$0")
"$BASEDIR/../common/unix/install-vcpkg-ports.sh" arm64-osx-qt --host-triplet=arm64-osx
"$BASEDIR/../common/unix/install-vcpkg-ports.sh" x64-osx-qt --host-triplet=x64-osx
python3 -m lipomerge $VCPKG_ROOT/installed/arm64-osx-qt $VCPKG_ROOT/installed/x64-osx-qt $VCPKG_ROOT/installed/universal-osx-qt
find $VCPKG_ROOT/installed/universal-osx-qt -name '*.cmake' -exec sed -i .bak -E 's,/(arm64|x64)-osx(-qt)?/,/universal-osx-qt/,g' '{}' \;

View File

@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -ex
BASEDIR=$(dirname "$0")
"$BASEDIR/../common/unix/install-vcpkg.sh"

View File

@@ -0,0 +1,10 @@
#!/usr/bin/env bash
set -ex
BASEDIR=$(dirname "$0")
"$BASEDIR/../common/unix/install-vcpkg-ports.sh" arm64-osx-qt --host-triplet=arm64-osx
"$BASEDIR/../common/unix/install-vcpkg-ports.sh" x64-osx-qt --host-triplet=x64-osx
python3 -m lipomerge $VCPKG_ROOT/installed/arm64-osx-qt $VCPKG_ROOT/installed/x64-osx-qt $VCPKG_ROOT/installed/universal-osx-qt
find $VCPKG_ROOT/installed/universal-osx-qt -name '*.cmake' -exec sed -i .bak -E 's,/(arm64|x64)-osx(-qt)?/,/universal-osx-qt/,g' '{}' \;

View File

@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -ex
BASEDIR=$(dirname "$0")
"$BASEDIR/../common/unix/install-vcpkg.sh"

View File

@@ -0,0 +1,10 @@
#!/usr/bin/env bash
set -ex
BASEDIR=$(dirname "$0")
"$BASEDIR/../common/unix/install-vcpkg-ports.sh" arm64-osx-qt --host-triplet=arm64-osx
"$BASEDIR/../common/unix/install-vcpkg-ports.sh" x64-osx-qt --host-triplet=x64-osx
python3 -m lipomerge $VCPKG_ROOT/installed/arm64-osx-qt $VCPKG_ROOT/installed/x64-osx-qt $VCPKG_ROOT/installed/universal-osx-qt
find $VCPKG_ROOT/installed/universal-osx-qt -name '*.cmake' -exec sed -i .bak -E 's,/(arm64|x64)-osx(-qt)?/,/universal-osx-qt/,g' '{}' \;

View File

@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -ex
BASEDIR=$(dirname "$0")
"$BASEDIR/../common/unix/install-vcpkg.sh"

View File

@@ -0,0 +1,10 @@
#!/usr/bin/env bash
set -ex
BASEDIR=$(dirname "$0")
"$BASEDIR/../common/unix/install-vcpkg-ports.sh" arm64-osx-qt --host-triplet=arm64-osx
"$BASEDIR/../common/unix/install-vcpkg-ports.sh" x64-osx-qt --host-triplet=x64-osx
python3 -m lipomerge $VCPKG_ROOT/installed/arm64-osx-qt $VCPKG_ROOT/installed/x64-osx-qt $VCPKG_ROOT/installed/universal-osx-qt
find $VCPKG_ROOT/installed/universal-osx-qt -name '*.cmake' -exec sed -i .bak -E 's,/(arm64|x64)-osx(-qt)?/,/universal-osx-qt/,g' '{}' \;

View File

@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -ex
BASEDIR=$(dirname "$0")
"$BASEDIR/../common/unix/install-vcpkg.sh"

View File

@@ -0,0 +1,9 @@
#!/usr/bin/env bash
set -ex
BASEDIR=$(dirname "$0")
"$BASEDIR/../common/unix/install-vcpkg-ports.sh" arm64-osx-qt
# Create an alias for arm64-osx-qt, because the built package references this triplet.
ln -s arm64-osx-qt $VCPKG_ROOT/installed/universal-osx-qt