17
17
jobs :
18
18
macOS :
19
19
# See: https://docs.github.com/en/actions/configuring-and-managing-workflows/configuring-a-workflow#configuring-a-build-matrix
20
- runs-on : macos-latest
20
+ runs-on : macos-11.0
21
21
env :
22
22
TARGET_OS : ' macOS'
23
+ TARGET_ARCH : ${{ matrix.arch }}
23
24
strategy :
24
25
fail-fast : false
25
26
matrix :
26
27
config : [RelWithDebInfo]
28
+ arch : [x86_64, arm64]
27
29
steps :
28
30
- uses : actions/checkout@v2
29
31
- name : Checkout source
34
36
fetch-depth : 1
35
37
token : ${{ secrets.CLONE_PAT }}
36
38
submodules : ' recursive'
39
+ - name : Setup Xcode
40
+ run : sudo xcode-select -s /Applications/Xcode_12.2.app
37
41
- name : ' Restore External Dep cache'
38
42
id : external-dep-cache
39
43
uses : actions/cache@v2
@@ -53,13 +57,20 @@ jobs:
53
57
run : ./tools/ci-before-build.sh
54
58
55
59
- name : Configure CMake
60
+ if : ${{ matrix.arch == 'x86_64' }}
56
61
# Use a bash shell so we can use the same syntax for environment variable
57
62
# access regardless of the host operating system
58
63
shell : bash
59
64
working-directory : mdk
60
65
run : |
61
66
pwd
62
67
cmake -GNinja -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -H. -Bbuild/${TARGET_OS} -DCMAKE_VERBOSE_MAKEFILE=1 -DCMAKE_BUILD_TYPE=${{ matrix.config }} -DCMAKE_INSTALL_PREFIX=$PWD/mdk-sdk # no dSYM for lto, dsymutil: no debug symbols in executable (-arch x86_64)
68
+ - name : Configure CMake
69
+ if : ${{ startsWith(matrix.arch, 'arm64') }} # arm64, arm64e
70
+ shell : bash
71
+ working-directory : mdk
72
+ run : |
73
+ cmake -GNinja -DCMAKE_OSX_ARCHITECTURES=${{ matrix.arch }} -DCMAKE_OSX_DEPLOYMENT_TARGET=11.0 -H. -Bbuild/${TARGET_OS} -DCMAKE_VERBOSE_MAKEFILE=1 -DCMAKE_BUILD_TYPE=${{ matrix.config }} -DCMAKE_INSTALL_PREFIX=$PWD/mdk-sdk # no dSYM for lto, dsymutil: no debug symbols in executable (-arch x86_64)
63
74
- name : Build
64
75
shell : bash
65
76
working-directory : mdk
@@ -69,18 +80,17 @@ jobs:
69
80
working-directory : mdk
70
81
run : |
71
82
./tools/ci-after-build.sh
72
- mv mdk-sdk*.tar.xz mdk-sdk*.zip ..
83
+ mv mdk-sdk*.tar.xz ../ mdk-sdk-${{ env.TARGET_OS }}-${{ matrix.arch }}.tar.xz
73
84
- name : Archieve SDK
74
85
uses : actions/upload-artifact@v2
75
86
with :
76
- name : mdk-sdk-${{ env.TARGET_OS }}-${{ matrix.config }}
77
- path : mdk-sdk-${{ env.TARGET_OS }}.tar.xz
87
+ name : mdk-sdk-${{ env.TARGET_OS }}-${{ matrix.arch}}-${{ matrix. config }}
88
+ path : mdk-sdk-${{ env.TARGET_OS }}-${{ matrix.arch}} .tar.xz
78
89
- name : Upload to SourceForge
79
- if : ${{ matrix.config == 'RelWithDebInfo' }}
90
+ if : ${{ matrix.config == 'RelWithDebInfo' && matrix.arch == 'x86_64' }}
80
91
shell : bash
81
92
run : |
82
- sshpass -p ${SF_PW} scp -o StrictHostKeyChecking=no mdk-sdk-${TARGET_OS}.tar.xz ${SF_USER}@frs.sourceforge.net:/home/frs/project/mdk-sdk/nightly/
83
- sshpass -p ${SF_PW} scp -o StrictHostKeyChecking=no mdk-sdk-${TARGET_OS}.zip ${SF_USER}@frs.sourceforge.net:/home/frs/project/mdk-sdk/nightly/
93
+ sshpass -p ${SF_PW} scp -o StrictHostKeyChecking=no mdk-sdk-${TARGET_OS}-${{ matrix.arch }}.tar.xz ${SF_USER}@frs.sourceforge.net:/home/frs/project/mdk-sdk/nightly/
84
94
85
95
86
96
iOS :
@@ -109,7 +119,7 @@ jobs:
109
119
- name : Configure CMake
110
120
shell : bash
111
121
working-directory : mdk
112
- run : cmake -GNinja -DCMAKE_TOOLCHAIN_FILE=$PWD/cmake/tools/ios.cmake -DIOS_DEPLOYMENT_TARGET=6.0 -DIOS_ARCH="arm64;armv7" -DIOS_BITCODE=1 -DIOS_BITCODE_MARKER=1 -H. -Bbuild/${TARGET_OS} -DCMAKE_BUILD_TYPE=${{ matrix.config }} -DCMAKE_INSTALL_PREFIX=$PWD/mdk-sdk -DCMAKE_VERBOSE_MAKEFILE=1
122
+ run : cmake -GNinja -DCMAKE_TOOLCHAIN_FILE=$PWD/cmake/tools/ios.cmake -DIOS_DEPLOYMENT_TARGET=6.0 -DIOS_ARCH="arm64;armv7" -DIOS_BITCODE=1 -DIOS_BITCODE_MARKER=1 -H. -Bbuild/${TARGET_OS} -DCMAKE_BUILD_TYPE=${{ matrix.config }} -DCMAKE_INSTALL_PREFIX=$PWD/mdk-sdk -DCMAKE_VERBOSE_MAKEFILE=1 -DFFMPEG_EMBED=0 # FFMPEG_EMBED=0 to copy libffmpeg.4.dylib
113
123
- name : Build
114
124
shell : bash
115
125
working-directory : mdk
@@ -140,7 +150,11 @@ jobs:
140
150
- name : Download macOS sdk
141
151
uses : actions/download-artifact@v2
142
152
with :
143
- name : mdk-sdk-macOS-RelWithDebInfo
153
+ name : mdk-sdk-macOS-x86_64-RelWithDebInfo
154
+ - name : Download macOS sdk
155
+ uses : actions/download-artifact@v2
156
+ with :
157
+ name : mdk-sdk-macOS-arm64-RelWithDebInfo
144
158
- name : Download iOS sdk
145
159
uses : actions/download-artifact@v2
146
160
with :
@@ -152,10 +166,18 @@ jobs:
152
166
shell : bash
153
167
run : |
154
168
export XZ_OPT="-9e --threads=`getconf _NPROCESSORS_ONLN`"
155
- mkdir -p macOS iOS mdk-sdk/lib
156
- tar Jxf mdk-sdk-macOS.tar.xz -C macOS
169
+ mkdir -p macOS iOS mdk-sdk/lib macOS-arm64 macOS-x86_64
170
+ tar Jxf mdk-sdk-macOS-x86_64.tar.xz -C macOS-x86_64
171
+ tar Jxf mdk-sdk-macOS-arm64.tar.xz -C macOS-arm64
157
172
tar Jxf mdk-sdk-iOS.tar.xz -C iOS
158
173
find .
174
+ cp -af macOS-x86_64/mdk-sdk macOS/ # libffmpeg is already fat
175
+ lipo -create macOS-{arm,x86_}64/mdk-sdk/lib/mdk.framework/mdk -output macOS/mdk-sdk/lib/mdk.framework/Versions/Current/mdk
176
+ lipo -create macOS-{arm,x86_}64/mdk-sdk/lib/mdk.framework.dSYM/Contents/Resources/DWARF/mdk -output macOS/mdk-sdk/lib/mdk.framework.dSYM/Contents/Resources/DWARF/mdk
177
+ cp -fRv macOS/mdk-sdk/lib/mdk.framework/Versions/{Current,A} # codesign may requires version A
178
+ for b in `ls macOS-arm64/mdk-sdk/bin`; do # exes exist in both archs
179
+ lipo -create macOS-{arm,x86_}64/mdk-sdk/bin/$b -output macOS/mdk-sdk/bin/$b
180
+ done
159
181
mv macOS/mdk-sdk/lib/libffmpeg*.dylib macOS/mdk-sdk/lib/cmake mdk-sdk/lib/
160
182
mv macOS/mdk-sdk/{bin,doc,include,*.sh} mdk-sdk
161
183
mv macOS/mdk-sdk/README.md mdk-sdk/README-macOS.md
@@ -166,7 +188,15 @@ jobs:
166
188
ln -sf ${binfw/mdk-sdk/..}/mdk.framework mdk-sdk/bin
167
189
tar Jcvf mdk-sdk-apple.tar.xz mdk-sdk
168
190
7z a mdk-sdk-apple.zip mdk-sdk
169
- - name : Archieve SDK
191
+ tar Jcvf mdk-sdk-macOS.tar.xz -C macOS .
192
+ cd macOS
193
+ 7z a ../mdk-sdk-macOS.zip mdk-sdk
194
+ - name : Archieve XCFramework SDK
195
+ uses : actions/upload-artifact@v2
196
+ with :
197
+ name : mdk-sdk-apple
198
+ path : mdk-sdk-apple.tar.xz
199
+ - name : Archieve macOS SDK
170
200
uses : actions/upload-artifact@v2
171
201
with :
172
202
name : mdk-sdk-apple
@@ -176,6 +206,8 @@ jobs:
176
206
run : |
177
207
sshpass -p ${SF_PW} scp -o StrictHostKeyChecking=no mdk-sdk-apple.tar.xz ${SF_USER}@frs.sourceforge.net:/home/frs/project/mdk-sdk/nightly/
178
208
sshpass -p ${SF_PW} scp -o StrictHostKeyChecking=no mdk-sdk-apple.zip ${SF_USER}@frs.sourceforge.net:/home/frs/project/mdk-sdk/nightly/
209
+ sshpass -p ${SF_PW} scp -o StrictHostKeyChecking=no mdk-sdk-macOS.tar.xz ${SF_USER}@frs.sourceforge.net:/home/frs/project/mdk-sdk/nightly/
210
+ sshpass -p ${SF_PW} scp -o StrictHostKeyChecking=no mdk-sdk-macOS.zip ${SF_USER}@frs.sourceforge.net:/home/frs/project/mdk-sdk/nightly/
179
211
180
212
181
213
RaspberryPi_libcxx :
0 commit comments