Skip to content

Commit dad939b

Browse files
authored
Ios variants, catalyst support (#40)
* chore: test * chore: testing ios with catalyst support * chore: add lfflags
1 parent 6626408 commit dad939b

File tree

2 files changed

+49
-21
lines changed

2 files changed

+49
-21
lines changed

Makefile.ios

+36-17
Original file line numberDiff line numberDiff line change
@@ -7,45 +7,64 @@ binding_ios: binding_ios_arm64 binding_ios_x86_64_sim
77
cp $(IOS_BINDING_OUTPUT)/arm64/*.h $(IOS_BINDING_OUTPUT)
88
rm -rf $(IOS_BINDING_OUTPUT)/arm64 $(IOS_BINDING_OUTPUT)/x86_64_sim $(IOS_BINDING_OUTPUT)/armv7
99

10-
binding_ios_test: binding_ios_arm64 binding_ios_x86_64_sim binding_ios_arm64_sim
11-
mkdir -p $(IOS_BINDING_OUTPUT)/sim
12-
lipo $(IOS_BINDING_OUTPUT)/x86_64_sim/$(IOS_BINDING_NAME) $(IOS_BINDING_OUTPUT)/arm64_sim/$(IOS_BINDING_NAME) -create -output $(IOS_BINDING_OUTPUT)/sim/$(IOS_BINDING_NAME)
13-
lipo $(IOS_BINDING_OUTPUT)/sim/$(IOS_BINDING_NAME) $(IOS_BINDING_OUTPUT)/arm64/$(IOS_BINDING_NAME) -create -output $(IOS_BINDING_OUTPUT)/$(IOS_BINDING_NAME)
14-
cp $(IOS_BINDING_OUTPUT)/arm64/*.h $(IOS_BINDING_OUTPUT)
15-
rm -rf $(IOS_BINDING_OUTPUT)/arm64 $(IOS_BINDING_OUTPUT)/x86_64_sim $(IOS_BINDING_OUTPUT)/arm64_sim
16-
17-
binding_ios_xcframework: binding_ios_arm64 binding_ios_x86_64_sim binding_ios_arm64_sim
18-
mkdir -p $(IOS_BINDING_OUTPUT)/sim
19-
lipo $(IOS_BINDING_OUTPUT)/x86_64_sim/$(IOS_BINDING_NAME) $(IOS_BINDING_OUTPUT)/arm64_sim/$(IOS_BINDING_NAME) -create -output $(IOS_BINDING_OUTPUT)/sim/$(IOS_BINDING_NAME)
10+
binding_ios_xcframework: binding_ios_all_iphone binding_ios_all_sim binding_ios_all_catalyst
2011
mkdir -p $(IOS_BINDING_OUTPUT)/headers
2112
cp $(IOS_BINDING_OUTPUT)/arm64/*.h $(IOS_BINDING_OUTPUT)/headers
2213
rm -rf $(IOS_BINDING_OUTPUT)/Openpgp.xcframework
2314
xcodebuild -create-xcframework \
2415
-library $(IOS_BINDING_OUTPUT)/arm64/$(IOS_BINDING_NAME) -headers $(IOS_BINDING_OUTPUT)/headers \
2516
-library $(IOS_BINDING_OUTPUT)/sim/$(IOS_BINDING_NAME) -headers $(IOS_BINDING_OUTPUT)/headers \
17+
-library $(IOS_BINDING_OUTPUT)/catalyst/$(IOS_BINDING_NAME) -headers $(IOS_BINDING_OUTPUT)/headers \
2618
-output $(IOS_BINDING_OUTPUT)/Openpgp.xcframework
27-
rm -rf $(IOS_BINDING_OUTPUT)/arm64 $(IOS_BINDING_OUTPUT)/x86_64_sim $(IOS_BINDING_OUTPUT)/arm64_sim $(IOS_BINDING_OUTPUT)/sim $(IOS_BINDING_OUTPUT)/headers
19+
rm -rf $(IOS_BINDING_OUTPUT)/arm64 $(IOS_BINDING_OUTPUT)/sim $(IOS_BINDING_OUTPUT)/catalyst $(IOS_BINDING_OUTPUT)/headers
2820

29-
binding_ios_arm64:
30-
BINDING_FILE=$(IOS_OUTPUT)/arm64/$(IOS_BINDING_NAME) BUILD_MODE="c-archive" \
31-
SDK=iphoneos CC=$(PWD)/clangwrap.sh CGO_CFLAGS="-fembed-bitcode" \
32-
GOOS=ios GOARCH=arm64 CGO_ENABLED=1 \
21+
binding_ios_all_iphone: binding_ios_arm64
22+
23+
binding_ios_all_sim: binding_ios_x86_64_sim binding_ios_arm64_sim
24+
mkdir -p $(IOS_BINDING_OUTPUT)/sim
25+
lipo $(IOS_BINDING_OUTPUT)/x86_64_sim/$(IOS_BINDING_NAME) $(IOS_BINDING_OUTPUT)/arm64_sim/$(IOS_BINDING_NAME) -create -output $(IOS_BINDING_OUTPUT)/sim/$(IOS_BINDING_NAME)
26+
rm -rf $(IOS_BINDING_OUTPUT)/x86_64_sim $(IOS_BINDING_OUTPUT)/arm64_sim
27+
28+
binding_ios_all_catalyst: binding_ios_x86_64_catalyst binding_ios_arm64_catalyst
29+
mkdir -p $(IOS_BINDING_OUTPUT)/catalyst
30+
lipo $(IOS_BINDING_OUTPUT)/x86_64_catalyst/$(IOS_BINDING_NAME) $(IOS_BINDING_OUTPUT)/arm64_catalyst/$(IOS_BINDING_NAME) -create -output $(IOS_BINDING_OUTPUT)/catalyst/$(IOS_BINDING_NAME)
31+
rm -rf $(IOS_BINDING_OUTPUT)/x86_64_catalyst $(IOS_BINDING_OUTPUT)/arm64_catalyst
32+
33+
binding_ios_x86_64_catalyst:
34+
CGO_LDFLAGS="-target x86_64-apple-ios14-macabi" \
35+
BINDING_FILE=$(IOS_OUTPUT)/x86_64_catalyst/$(IOS_BINDING_NAME) BUILD_MODE="c-archive" \
36+
SDK=macosx CC=$(PWD)/clangwrap.sh \
37+
GOOS=darwin GOARCH=amd64 CGO_ENABLED=1 \
38+
make binding
39+
40+
binding_ios_arm64_catalyst:
41+
CGO_LDFLAGS="-target arm64-apple-ios14-macabi -fembed-bitcode" \
42+
BINDING_FILE=$(IOS_OUTPUT)/arm64_catalyst/$(IOS_BINDING_NAME) BUILD_MODE="c-archive" \
43+
SDK=macosx CC=$(PWD)/clangwrap.sh \
44+
GOOS=darwin GOARCH=arm64 CGO_ENABLED=1 \
3345
make binding
3446

3547
binding_ios_x86_64_sim:
36-
CGO_LDFLAGS="-target arm64-apple-ios10-simulator" \
48+
CGO_LDFLAGS="-target x86_64-apple-ios10-simulator -fembed-bitcode" \
3749
BINDING_FILE=$(IOS_OUTPUT)/x86_64_sim/$(IOS_BINDING_NAME) BUILD_MODE="c-archive" \
3850
SDK=iphonesimulator CC=$(PWD)/clangwrap.sh \
3951
GOOS=ios GOARCH=amd64 CGO_ENABLED=1 \
4052
make binding
4153

4254
binding_ios_arm64_sim:
43-
CGO_LDFLAGS="-target arm64-apple-ios10-simulator" \
55+
CGO_LDFLAGS="-target arm64-apple-ios10-simulator -fembed-bitcode" \
4456
BINDING_FILE=$(IOS_OUTPUT)/arm64_sim/$(IOS_BINDING_NAME) BUILD_MODE="c-archive" \
4557
SDK=iphonesimulator CC=$(PWD)/clangwrap.sh \
4658
GOOS=ios GOARCH=arm64 CGO_ENABLED=1 \
4759
make binding
4860

61+
binding_ios_arm64:
62+
CGO_LDFLAGS="-target arm64-apple-ios10 -fembed-bitcode" \
63+
BINDING_FILE=$(IOS_OUTPUT)/arm64/$(IOS_BINDING_NAME) BUILD_MODE="c-archive" \
64+
SDK=iphoneos CC=$(PWD)/clangwrap.sh \
65+
GOOS=ios GOARCH=arm64 CGO_ENABLED=1 \
66+
make binding
67+
4968
binding_ios_armv7:
5069
BINDING_FILE=$(IOS_OUTPUT)/armv7/$(IOS_BINDING_NAME) BUILD_MODE="c-archive" \
5170
SDK=iphoneos CC=$(PWD)/clangwrap.sh CGO_CFLAGS="-fembed-bitcode" \

clangwrap.sh

+13-4
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44

55
SDK_PATH=`xcrun --sdk $SDK --show-sdk-path`
66
CLANG=`xcrun --sdk $SDK --find clang`
7-
MIN_VERSION=10
7+
IOS_TARGET=10
8+
EXTRA_ARGS=""
89

910
if [ "$GOARCH" == "amd64" ]; then
1011
CARCH="x86_64"
@@ -17,9 +18,17 @@ elif [ "$GOARCH" == "386" ]; then
1718
fi
1819

1920
if [ "$SDK" = "iphoneos" ]; then
20-
TARGET="$CARCH-apple-ios$MIN_VERSION"
21+
EXTRA_ARGS="-fembed-bitcode -miphoneos-version-min==$IOS_TARGET"
22+
TARGET="$CARCH-apple-ios$IOS_TARGET"
2123
elif [ "$SDK" = "iphonesimulator" ]; then
22-
TARGET="$CARCH-apple-ios$MIN_VERSION-simulator"
24+
EXTRA_ARGS="-fembed-bitcode -mios-simulator-version-min=$IOS_TARGET"
25+
TARGET="$CARCH-apple-ios$IOS_TARGET-simulator"
26+
elif [ "$SDK" = "macosx" ]; then
27+
IOS_TARGET=14
28+
TARGET="$CARCH-apple-ios$IOS_TARGET-macabi"
29+
if [ "$GOARCH" == "arm64" ]; then
30+
EXTRA_ARGS="-fembed-bitcode"
31+
fi
2332
fi
2433

25-
exec $CLANG -arch $CARCH -target $TARGET -isysroot $SDK_PATH "$@"
34+
exec $CLANG -target $TARGET $EXTRA_ARGS -isysroot $SDK_PATH "$@"

0 commit comments

Comments
 (0)