Skip to content

Commit

Permalink
GHA: Promote macOS-arm64 cross-compilation job to full native job
Browse files Browse the repository at this point in the history
  • Loading branch information
kinke committed Apr 13, 2024
1 parent d2498cc commit 1f637ab
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 24 deletions.
8 changes: 6 additions & 2 deletions .github/actions/1-setup/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -121,8 +121,12 @@ runs:
run: |
set -euxo pipefail
python3 --version
python3 -m pip install --user setuptools wheel
python3 -m pip install --user lit
if [[ '${{ runner.os }}-${{ inputs.arch }}' == 'macOS-arm64' ]]; then
brew install lit python-setuptools
else
python3 -m pip install --user setuptools wheel
python3 -m pip install --user lit
fi
python3 -c "import lit.main; lit.main.main();" --version . | head -n 1
# the druntime tests require GNU make
Expand Down
40 changes: 18 additions & 22 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,19 @@ jobs:
-DEXTRA_CXXFLAGS=-flto=full
with_pgo: true

- job_name: macOS arm64
os: macos-14
arch: arm64
bootstrap_cmake_flags: >-
-DBUILD_LTO_LIBS=ON
-DD_COMPILER_FLAGS=-gcc=/usr/bin/c++
extra_cmake_flags: >-
-DBUILD_LTO_LIBS=ON
-DD_COMPILER_FLAGS="-gcc=/usr/bin/c++ -O -flto=full -defaultlib=phobos2-ldc-lto,druntime-ldc-lto -L-exported_symbol '-L__*' -L-w"
# FIXME: 'LLVM ERROR: Unsupported stack probing method' when extending LTO to C++ parts and trying to link ldc2
# -DEXTRA_CXXFLAGS=-flto=full
with_pgo: false # FIXME: ldc2-unittest hangs at runtime (at least sometimes?) with LTO+PGO

- job_name: Windows x64
os: windows-2022
arch: x64
Expand All @@ -76,12 +89,15 @@ jobs:
runs-on: ${{ matrix.os }}
timeout-minutes: 90
env:
MACOSX_DEPLOYMENT_TARGET: 10.12
MACOSX_DEPLOYMENT_TARGET: ${{ matrix.arch == 'arm64' && '11.0' || '10.12' }}
steps:
- uses: actions/checkout@v3
with:
submodules: true
fetch-depth: 50
- name: 'macOS 14: Switch to Xcode v15.3'
if: matrix.os == 'macos-14'
run: sudo xcode-select -switch /Applications/Xcode_15.3.app
- name: Install prerequisites
uses: ./.github/actions/1-setup
with:
Expand Down Expand Up @@ -160,18 +176,6 @@ jobs:
matrix:
include:

- job_name: macOS arm64
host_os: macos-11
os: osx
arch: arm64
bootstrap_cmake_flags: -DD_COMPILER_FLAGS=-gcc=/usr/bin/c++
# see native macOS job comment for extra flags (https://github.com/ldc-developers/ldc/issues/4462)
extra_cmake_flags: >-
-DBUILD_LTO_LIBS=ON
-DD_COMPILER_FLAGS="-O -flto=full -defaultlib=phobos2-ldc-lto,druntime-ldc-lto -L-exported_symbol '-L__*' -L-w"
-DEXTRA_CXXFLAGS=-flto=full
with_pgo: true

- job_name: Android armv7a
host_os: ubuntu-20.04
os: android
Expand All @@ -191,7 +195,6 @@ jobs:
runs-on: ${{ matrix.host_os }}
timeout-minutes: 60
env:
MACOSX_DEPLOYMENT_TARGET: 11.0
LLVM_VERSION: 17.0.6 # TODO
steps:
- uses: actions/checkout@v4
Expand Down Expand Up @@ -226,11 +229,6 @@ jobs:
uses: ./.github/actions/5-install
with:
cross_compiling: true
- name: 'macOS: Cross-compile iOS libraries, copy to install dir & extend ldc2.conf'
if: matrix.os == 'osx'
uses: ./.github/actions/5a-ios
with:
arch: ${{ matrix.arch }}
- name: 'Android: Cross-compile ${{ matrix.android_x86_arch }} libraries & copy to install dir'
if: matrix.os == 'android'
uses: ./.github/actions/5a-android-x86
Expand All @@ -249,9 +247,7 @@ jobs:
name: macOS universal
runs-on: macos-latest
timeout-minutes: 30
needs:
- build-native
- build-cross
needs: build-native
steps:
- uses: actions/checkout@v4
- name: Merge x86_64 & arm64 packages to universal one
Expand Down

0 comments on commit 1f637ab

Please sign in to comment.