Просмотр исходного кода

Merge pull request #548 from mirokuratczyk/master

Vendor clangwrap.sh
Rod Hynes 6 лет назад
Родитель
Сommit
25acdaef17
2 измененных файлов с 28 добавлено и 7 удалено
  1. 8 7
      ClientLibrary/build-darwin.sh
  2. 20 0
      ClientLibrary/clangwrap.sh

+ 8 - 7
ClientLibrary/build-darwin.sh

@@ -6,6 +6,10 @@ set -e -u -x
 if [ -z ${2+x} ]; then BUILD_TAGS=""; else BUILD_TAGS="$2"; fi
 
 # Modify this value as we use newer Go versions.
+# Note:
+#   clangwrap.sh needs to be updated when the Go version changes.
+#   The last version was:
+#   https://github.com/golang/go/blob/go1.13.7/misc/ios/clangwrap.sh.
 GO_VERSION_REQUIRED="1.13.7"
 
 BASE_DIR=$(cd "$(dirname "$0")" ; pwd -P)
@@ -108,17 +112,14 @@ build_for_ios () {
 
   prepare_build darwin
 
-  curl https://raw.githubusercontent.com/golang/go/master/misc/ios/clangwrap.sh -o ${TEMP_DIR}/clangwrap.sh
-  chmod 555 ${TEMP_DIR}/clangwrap.sh
-
-  CC=${TEMP_DIR}/clangwrap.sh \
-  CXX=${TEMP_DIR}/clangwrap.sh \
+  CC=${BASE_DIR}/clangwrap.sh \
+  CXX=${BASE_DIR}/clangwrap.sh \
   CGO_LDFLAGS="-arch armv7 -isysroot $(xcrun --sdk iphoneos --show-sdk-path)" \
   CGO_CFLAGS=-isysroot$(xcrun --sdk iphoneos --show-sdk-path) \
   CGO_ENABLED=1 GOOS=darwin GOARCH=arm GOARM=7 go build -buildmode=c-archive -ldflags "$LDFLAGS" -tags "${BUILD_TAGS}" -o ${IOS_BUILD_DIR}/arm7/libpsiphontunnel.a PsiphonTunnel.go
 
-  CC=${TEMP_DIR}/clangwrap.sh \
-  CXX=${TEMP_DIR}/clangwrap.sh \
+  CC=${BASE_DIR}/clangwrap.sh \
+  CXX=${BASE_DIR}/clangwrap.sh \
   CGO_LDFLAGS="-arch arm64 -isysroot $(xcrun --sdk iphoneos --show-sdk-path)" \
   CGO_CFLAGS=-isysroot$(xcrun --sdk iphoneos --show-sdk-path) \
   CGO_ENABLED=1 GOOS=darwin GOARCH=arm64 go build -buildmode=c-archive -ldflags "$LDFLAGS" -tags "${BUILD_TAGS}" -o ${IOS_BUILD_DIR}/arm64/libpsiphontunnel.a PsiphonTunnel.go

+ 20 - 0
ClientLibrary/clangwrap.sh

@@ -0,0 +1,20 @@
+#!/bin/sh
+# This uses the latest available iOS SDK, which is recommended.
+# To select a specific SDK, run 'xcodebuild -showsdks'
+# to see the available SDKs and replace iphoneos with one of them.
+SDK=iphoneos
+SDK_PATH=`xcrun --sdk $SDK --show-sdk-path`
+export IPHONEOS_DEPLOYMENT_TARGET=5.1
+# cmd/cgo doesn't support llvm-gcc-4.2, so we have to use clang.
+CLANG=`xcrun --sdk $SDK --find clang`
+
+if [ "$GOARCH" == "arm" ]; then
+	CLANGARCH="armv7"
+elif [ "$GOARCH" == "arm64" ]; then
+	CLANGARCH="arm64"
+else
+	echo "unknown GOARCH=$GOARCH" >&2
+	exit 1
+fi
+
+exec $CLANG -arch $CLANGARCH -isysroot $SDK_PATH -mios-version-min=6.0 "$@"