WIP: Build ios #39

Closed
ineiti wants to merge 3 commits from (deleted):ios_build into trunk
5 changed files with 44 additions and 6 deletions

1
.gitignore vendored
View File

@ -4,3 +4,4 @@ cwtch.aar
libCwtch.h
libCwtch.so
libCwtch.dll
ios/

View File

@ -1,3 +1,5 @@
IOS_OUT := ./ios
.PHONY: all clean linux android
DEFAULT_GOAL: linux
@ -24,3 +26,24 @@ libCwtch.dll: lib.go
clean:
rm -f cwtch.aar cwtch_go.apk libCwtch.h libCwtch.so cwtch-sources.jar libCwtch.dll
ios-arm64:
CGO_ENABLED=1 \
GOOS=darwin \
GOARCH=arm64 \
SDK=iphoneos \
CGO_CFLAGS="-fembed-bitcode" \
CC=$(PWD)/clangwrap.sh \
go build -buildmode=c-archive -tags ios -o $(IOS_OUT)/arm64.a .
ios-x86_64:
CGO_ENABLED=1 \
GOOS=darwin \
GOARCH=amd64 \
SDK=iphonesimulator \
CC=$(PWD)/clangwrap.sh \
go build -buildmode=c-archive -tags ios -o $(IOS_OUT)/x86_64.a .
ios: ios-arm64 ios-x86_64
lipo $(IOS_OUT)/x86_64.a $(IOS_OUT)/arm64.a -create -output $(IOS_OUT)/cwtch.a
cp $(IOS_OUT)/arm64.h $(IOS_OUT)/cwtch.h

14
clangwrap.sh Executable file
View File

@ -0,0 +1,14 @@
#!/bin/sh
# go/clangwrap.sh
SDK_PATH=`xcrun --sdk $SDK --show-sdk-path`
CLANG=`xcrun --sdk $SDK --find clang`
if [ "$GOARCH" == "amd64" ]; then
CARCH="x86_64"
elif [ "$GOARCH" == "arm64" ]; then
CARCH="arm64"
fi
exec $CLANG -arch $CARCH -isysroot $SDK_PATH -mios-version-min=10.0 "$@"

View File

@ -1,5 +1,5 @@
#!/bin/sh
sed -i "s/^package cwtch/\/\/package cwtch/" lib.go
sed -i "s/^\/\/package main/package main/" lib.go
sed -i "s/^\/\/func main()/func main()/" lib.go
perl -pi -e "s/^package cwtch/\/\/package cwtch/" lib.go
ineiti marked this conversation as resolved
Review

nice, should be good!
but if you're doing this, should change switch-gomobile.sh to match :)

nice, should be good! but if you're doing this, should change switch-gomobile.sh to match :)
perl -pi -e "s/^\/\/package main/package main/" lib.go
perl -pi -e "s/^\/\/func main()/func main()/" lib.go

View File

@ -1,5 +1,5 @@
#!/bin/sh
sed -i "s/^\/\/package cwtch/package cwtch/" lib.go
sed -i "s/^package main/\/\/package main/" lib.go
sed -i "s/^func main()/\/\/func main()/" lib.go
perl -pi -e "s/^\/\/package cwtch/package cwtch/" lib.go
perl -pi -e "s/^package main/\/\/package main/" lib.go
perl -pi -e "s/^func main()/\/\/func main()/" lib.go