Skip to content

Commit 9b2044b

Browse files
committed
feat: add macOS Universal Binary build support
- Add cross-compilation files and build script for macOS arm64/x86_64
1 parent 287c2e3 commit 9b2044b

3 files changed

Lines changed: 51 additions & 7 deletions

File tree

cross/macos_arm64.txt

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# build for macOS Apple Silicon
2+
3+
[binaries]
4+
cpp = ['clang++', '-arch', 'arm64', '-isysroot', '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk']
5+
ar = 'ar'
6+
strip = 'strip'
7+
8+
[properties]
9+
root = '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer'
10+
has_function_printf = true
11+
12+
[built-in options]
13+
cpp_args = ['-mmacosx-version-min=10.14']
14+
cpp_link_args = ['-mmacosx-version-min=10.14']
15+
16+
[host_machine]
17+
system = 'darwin'
18+
subsystem = 'macos'
19+
kernel = 'xnu'
20+
cpu_family = 'aarch64'
21+
cpu = 'aarch64'
22+
endian = 'little'
23+

cross/macos_x86_64.txt

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# build for macOS Intel
2+
3+
[binaries]
4+
cpp = ['clang++', '-arch', 'x86_64', '-isysroot', '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk']
5+
ar = 'ar'
6+
strip = 'strip'
7+
8+
[properties]
9+
root = '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer'
10+
has_function_printf = true
11+
12+
[built-in options]
13+
cpp_args = ['-mmacosx-version-min=10.14']
14+
cpp_link_args = ['-mmacosx-version-min=10.14']
15+
16+
[host_machine]
17+
system = 'darwin'
18+
subsystem = 'macos'
19+
kernel = 'xnu'
20+
cpu_family = 'x86_64'
21+
cpu = 'x86_64'
22+
endian = 'little'
23+

lottie/flutter_build.macos.sh

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,32 +6,30 @@ rm -rf build_flutter_macos
66
rm -rf build_flutter_aarch64 libthorvg.a
77
mkdir build_flutter_aarch64
88

9-
cd ../thorvg
10-
meson setup -Db_lto=true -Ddefault_library=static -Dloaders="lottie, png, jpg" -Dthreads=false --cross-file ../thorvg/cross/macos_arm64.txt ../lottie/build_flutter_aarch64
9+
meson setup -Db_lto=true -Ddefault_library=static -Dloaders="lottie, png, jpg" -Dthreads=false --cross-file ../cross/macos_arm64.txt ../thorvg build_flutter_aarch64
1110

1211
cd ../lottie
1312
ninja -C build_flutter_aarch64
1413

1514
cp build_flutter_aarch64/src/libthorvg.a libthorvg.a
1615
rm -rf build_flutter_aarch64/
1716

18-
meson setup -Db_lto=true -Ddefault_library=static --cross-file ../thorvg/cross/macos_arm64.txt build_flutter_aarch64
17+
meson setup -Db_lto=true -Ddefault_library=static --cross-file ../cross/macos_arm64.txt build_flutter_aarch64
1918
ninja -C build_flutter_aarch64/
2019

2120
# Build for x86_64 (Intel)
2221
rm -rf build_flutter_x86_64 libthorvg.a
2322
mkdir build_flutter_x86_64
2423

25-
cd ../thorvg
26-
meson setup -Db_lto=true -Ddefault_library=static -Dloaders="lottie, png, jpg" -Dthreads=false --cross-file ../thorvg/cross/macos_x86_64.txt ../lottie/build_flutter_x86_64
24+
meson setup -Db_lto=true -Ddefault_library=static -Dloaders="lottie, png, jpg" -Dthreads=false --cross-file ../cross/macos_x86_64.txt ../thorvg build_flutter_x86_64
2725

2826
cd ../lottie
2927
ninja -C build_flutter_x86_64
3028

3129
cp build_flutter_x86_64/src/libthorvg.a libthorvg.a
3230
rm -rf build_flutter_x86_64/
3331

34-
meson setup -Db_lto=true -Ddefault_library=static --cross-file ../thorvg/cross/macos_x86_64.txt build_flutter_x86_64
32+
meson setup -Db_lto=true -Ddefault_library=static --cross-file ../cross/macos_x86_64.txt build_flutter_x86_64
3533
ninja -C build_flutter_x86_64/
3634

3735
rm -rf libthorvg.a
@@ -44,4 +42,4 @@ build_flutter_aarch64/libthorvg.dylib \
4442
-output build_flutter_macos/libthorvg.dylib -create
4543

4644
mkdir -p ../macos/Frameworks
47-
cp build_flutter_macos/libthorvg.dylib ../macos/Frameworks/
45+
cp build_flutter_macos/libthorvg.dylib ../macos/Frameworks/

0 commit comments

Comments
 (0)