build: target older macos

This commit is contained in:
Bruno Alexandre Rosa 2025-10-02 18:25:28 -03:00
parent 30e6b52783
commit f2645eb35d
3 changed files with 42 additions and 13 deletions

View file

@ -11,6 +11,7 @@
# --debug or --release sets the build type ie CMAKE_BUILD_TYPE
# --ccache [<size>] uses ccache and shows stats, optionally provide size
# --dir <dir> sets the name of the build dir, default is "build"
# --x86-macos
# uses env: BUILDTYPE MAKE_INSTALL MAKE_PACKAGE PACKAGE_TYPE PACKAGE_SUFFIX MAKE_SERVER MAKE_TEST USE_CCACHE CCACHE_SIZE BUILD_DIR CMAKE_GENERATOR
# (correspond to args: --debug/--release --install --package <package type> --suffix <suffix> --server --test --ccache <ccache_size> --dir <dir>)
# exitcode: 1 for failure, 3 for invalid arguments
@ -75,6 +76,15 @@ while [[ $# != 0 ]]; do
BUILD_DIR="$1"
shift
;;
'--x86-macos')
shift
if [[ $# == 0 ]]; then
echo "::error file=$0::--x86-macos expects an argument"
exit 3
fi
x86_MACOS="$1"
shift
;;
*)
echo "::error file=$0::unrecognized option: $1"
exit 3
@ -116,6 +126,11 @@ fi
if [[ $PACKAGE_TYPE ]]; then
flags+=("-DCPACK_GENERATOR=$PACKAGE_TYPE")
fi
if [[ $x86_MACOS == true ]]; then
flags+=("-DCMAKE_OSX_DEPLOYMENT_TARGET=13.0")
flags+=("-DVCPKG_TARGET_TRIPLET=x64-osx-13")
flags+=("-DVCPKG_OVERLAY_TRIPLETS=../cmake/triplets")
fi
# Add cmake --build flags
buildflags=(--config "$BUILDTYPE")

View file

@ -232,8 +232,8 @@ jobs:
include:
- target: 13
soc: Intel
os: macos-13
xcode: "14.3.1"
os: macos-15-intel
xcode: "16.4"
type: Release
make_package: 1
@ -272,6 +272,15 @@ jobs:
DEVELOPER_DIR:
/Applications/Xcode_${{matrix.xcode}}.app/Contents/Developer
CMAKE_GENERATOR: 'Ninja'
BUILDTYPE: '${{matrix.type}}'
MAKE_PACKAGE: '${{matrix.make_package}}'
PACKAGE_SUFFIX: '-macOS${{matrix.target}}_${{matrix.soc}}'
MACOS_CERTIFICATE: ${{ secrets.PROD_MACOS_CERTIFICATE }}
MACOS_CERTIFICATE_PWD: ${{ secrets.PROD_MACOS_CERTIFICATE_PWD }}
MACOS_CERTIFICATE_NAME: ${{ secrets.PROD_MACOS_CERTIFICATE_NAME }}
MACOS_CI_KEYCHAIN_PWD: ${{ secrets.PROD_MACOS_CI_KEYCHAIN_PWD }}
VCPKG_DISABLE_METRICS: 1
VCPKG_BUILD_TYPE: 'release'
steps:
- name: Checkout
@ -293,7 +302,7 @@ jobs:
- name: Install Qt ${{env.QT_VERSION}}
uses: jurplel/install-qt-action@v4
with:
cache: false # qt caches take too much space for macOS (1.1Gi)
cache: true # qt caches take too much space for macOS (1.1Gi)
version: ${{env.QT_VERSION}}
arch: ${{env.QT_ARCH}}
modules: ${{env.QT_MODULES}}
@ -308,17 +317,9 @@ jobs:
shell: bash
id: build
env:
BUILDTYPE: '${{matrix.type}}'
MAKE_PACKAGE: '${{matrix.make_package}}'
PACKAGE_SUFFIX: '-macOS${{matrix.target}}_${{matrix.soc}}'
MACOS_CERTIFICATE: ${{ secrets.PROD_MACOS_CERTIFICATE }}
MACOS_CERTIFICATE_PWD: ${{ secrets.PROD_MACOS_CERTIFICATE_PWD }}
MACOS_CERTIFICATE_NAME: ${{ secrets.PROD_MACOS_CERTIFICATE_NAME }}
MACOS_CI_KEYCHAIN_PWD: ${{ secrets.PROD_MACOS_CI_KEYCHAIN_PWD }}
CMAKE_GENERATOR: '${{env.CMAKE_GENERATOR}}'
VCPKG_DISABLE_METRICS: 1
VCPKG_BINARY_SOURCES: 'clear;files,${{ steps.vcpkg-cache.outputs.path }},readwrite'
run: .ci/compile.sh --server --test --ccache "$CCACHE_SIZE"
VCPKG_OSX_DEPLOYMENT_TARGET: ${{ matrix.soc == 'Intel' && '13.0' || '' }}
run: .ci/compile.sh --server --test --ccache "$CCACHE_SIZE" --x86-macos ${{ matrix.soc == 'Intel' }}
- name: Sign app bundle
if: matrix.make_package && (github.ref == 'refs/heads/master' || needs.configure.outputs.tag != null)
@ -455,6 +456,7 @@ jobs:
CMAKE_GENERATOR_PLATFORM: 'x64'
QTDIR: '${{github.workspace}}\Qt\${{matrix.qt_version}}\win64_${{matrix.qt_arch}}'
VCPKG_DISABLE_METRICS: 1
VCPKG_BUILD_TYPE: 'release'
VCPKG_BINARY_SOURCES: 'clear;files,${{ steps.vcpkg-cache.outputs.path }},readwrite'
# No need for --parallel flag, MTT is added in the compile script to let cmake/msbuild manage core count,
# project and process parallelism: https://devblogs.microsoft.com/cppblog/improved-parallelism-in-msbuild/

View file

@ -0,0 +1,12 @@
# copied from vcpkg/triplets/x64-osx.cmake
set(VCPKG_TARGET_ARCHITECTURE x64)
set(VCPKG_CRT_LINKAGE dynamic)
set(VCPKG_LIBRARY_LINKAGE static)
set(VCPKG_CMAKE_SYSTEM_NAME Darwin)
set(VCPKG_OSX_ARCHITECTURES x86_64)
# end of copied code
# Set the minimum macOS version for all dependencies
set(VCPKG_CMAKE_SYSTEM_VERSION 13.0)
set(VCPKG_OSX_DEPLOYMENT_TARGET 13.0)