51
51
-DEXTRA_CXXFLAGS=-flto=full
52
52
with_pgo : true
53
53
54
+ - job_name : macOS arm64
55
+ os : macos-14
56
+ arch : arm64
57
+ bootstrap_cmake_flags : >-
58
+ -DBUILD_LTO_LIBS=ON
59
+ -DD_COMPILER_FLAGS=-gcc=/usr/bin/c++
60
+ extra_cmake_flags : >-
61
+ -DBUILD_LTO_LIBS=ON
62
+ -DD_COMPILER_FLAGS="-gcc=/usr/bin/c++ -O -flto=full -defaultlib=phobos2-ldc-lto,druntime-ldc-lto -L-exported_symbol '-L__*' -L-w"
63
+ -DEXTRA_CXXFLAGS=-flto=full
64
+ with_pgo : true
65
+ llvm_version : 17.0.6 # FIXME: sporadic 'libc++abi: Pure virtual function called!' compiler crashes with LLVM 18 (see https://github.com/ldc-developers/ldc/pull/4604, https://github.com/ldc-developers/ldc/pull/4541)
66
+
54
67
- job_name : Windows x64
55
68
os : windows-2022
56
69
arch : x64
@@ -76,17 +89,20 @@ jobs:
76
89
runs-on : ${{ matrix.os }}
77
90
timeout-minutes : 90
78
91
env :
79
- MACOSX_DEPLOYMENT_TARGET : 10.12
92
+ MACOSX_DEPLOYMENT_TARGET : ${{ matrix.arch == 'arm64' && '11.0' || ' 10.12' }}
80
93
steps :
81
94
- uses : actions/checkout@v4
82
95
with :
83
96
submodules : true
84
97
fetch-depth : 50
98
+ - name : ' macOS 14: Switch to Xcode v14.3.1'
99
+ if : matrix.os == 'macos-14'
100
+ run : sudo xcode-select -switch /Applications/Xcode_14.3.1.app
85
101
- name : Install prerequisites
86
102
uses : ./.github/actions/1-setup
87
103
with :
88
104
clang_version : ${{ runner.os == 'Windows' && '18.1.5' || env.CLANG_VERSION }}
89
- llvm_version : ${{ env.LLVM_VERSION }}
105
+ llvm_version : ${{ matrix.llvm_version || env.LLVM_VERSION }}
90
106
arch : ${{ matrix.arch }}
91
107
- name : Build bootstrap LDC
92
108
uses : ./.github/actions/2-build-bootstrap
@@ -160,19 +176,6 @@ jobs:
160
176
matrix :
161
177
include :
162
178
163
- - job_name : macOS arm64
164
- host_os : macos-11
165
- os : osx
166
- arch : arm64
167
- bootstrap_cmake_flags : -DD_COMPILER_FLAGS=-gcc=/usr/bin/c++
168
- # see native macOS job comment for extra flags (https://github.com/ldc-developers/ldc/issues/4462)
169
- extra_cmake_flags : >-
170
- -DBUILD_LTO_LIBS=ON
171
- -DD_COMPILER_FLAGS="-O -flto=full -defaultlib=phobos2-ldc-lto,druntime-ldc-lto -L-exported_symbol '-L__*' -L-w"
172
- -DEXTRA_CXXFLAGS=-flto=full
173
- with_pgo : true
174
- llvm_version : 17.0.6 # TODO
175
-
176
179
- job_name : Android armv7a
177
180
host_os : ubuntu-20.04
178
181
os : android
@@ -191,8 +194,6 @@ jobs:
191
194
name : ${{ matrix.job_name }}
192
195
runs-on : ${{ matrix.host_os }}
193
196
timeout-minutes : 60
194
- env :
195
- MACOSX_DEPLOYMENT_TARGET : 11.0
196
197
steps :
197
198
- uses : actions/checkout@v4
198
199
with :
@@ -202,7 +203,7 @@ jobs:
202
203
uses : ./.github/actions/1-setup
203
204
with :
204
205
clang_version : ${{ env.CLANG_VERSION }}
205
- llvm_version : ${{ matrix.llvm_version || env.LLVM_VERSION }}
206
+ llvm_version : ${{ env.LLVM_VERSION }}
206
207
arch : x86_64
207
208
- name : Build bootstrap LDC
208
209
uses : ./.github/actions/2-build-bootstrap
@@ -218,19 +219,14 @@ jobs:
218
219
with :
219
220
arch : ${{ matrix.arch }}
220
221
os : ${{ matrix.os }}
221
- llvm_version : ${{ matrix.llvm_version || env.LLVM_VERSION }}
222
+ llvm_version : ${{ env.LLVM_VERSION }}
222
223
cmake_flags : ${{ matrix.extra_cmake_flags }}
223
224
with_pgo : ${{ matrix.with_pgo }}
224
225
225
226
- name : Install LDC & make portable
226
227
uses : ./.github/actions/5-install
227
228
with :
228
229
cross_compiling : true
229
- - name : ' macOS: Cross-compile iOS libraries, copy to install dir & extend ldc2.conf'
230
- if : matrix.os == 'osx'
231
- uses : ./.github/actions/5a-ios
232
- with :
233
- arch : ${{ matrix.arch }}
234
230
- name : ' Android: Cross-compile ${{ matrix.android_x86_arch }} libraries & copy to install dir'
235
231
if : matrix.os == 'android'
236
232
uses : ./.github/actions/5a-android-x86
@@ -249,9 +245,7 @@ jobs:
249
245
name : macOS universal
250
246
runs-on : macos-latest
251
247
timeout-minutes : 30
252
- needs :
253
- - build-native
254
- - build-cross
248
+ needs : build-native
255
249
steps :
256
250
- uses : actions/checkout@v4
257
251
- name : Merge x86_64 & arm64 packages to universal one
0 commit comments