build fat binary for ios

pull/16109/head
Jan Tattermusch 6 years ago
parent 527d87add5
commit 5aa2a0e376
  1. 65
      src/csharp/experimental/build_native_ext_for_ios.sh
  2. 2
      tools/run_tests/artifacts/build_artifact_csharp_ios.sh

@ -19,27 +19,44 @@ set -ex
cd "$(dirname "$0")/../../.."
# <iphoneos|iphonesimulator>
SDK="iphoneos"
# <arm64|x86_64|...>
ARCH="arm64"
PATH_AR="$(xcrun --sdk $SDK --find ar)"
PATH_CC="$(xcrun --sdk $SDK --find clang)"
PATH_CXX="$(xcrun --sdk $SDK --find clang++)"
# TODO(jtattermusch): add -mios-version-min=6.0 and -Wl,ios_version_min=6.0
CPPFLAGS="-O2 -Wframe-larger-than=16384 -arch $ARCH -isysroot $(xcrun --sdk $SDK --show-sdk-path) -DPB_NO_PACKED_STRUCTS=1"
LDFLAGS="-arch $ARCH -isysroot $(xcrun --sdk $SDK --show-sdk-path)"
# TODO(jtattermusch): revisit the build arguments
make -j4 static_csharp \
VALID_CONFIG_ios_$ARCH="1" \
CC_ios_$ARCH="$PATH_CC" \
CXX_ios_$ARCH="$PATH_CXX" \
LD_ios_$ARCH="$PATH_CC" \
LDXX_ios_$ARCH="$PATH_CXX" \
CPPFLAGS_ios_$ARCH="$CPPFLAGS" \
LDFLAGS_ios_$ARCH="$LDFLAGS" \
DEFINES_ios_$ARCH="NDEBUG" \
CONFIG="ios_$ARCH"
# Usage: build <iphoneos|iphonesimulator> <arm64|x86_64|...>
function build {
SDK="$1"
ARCH="$2"
PATH_AR="$(xcrun --sdk $SDK --find ar)"
PATH_CC="$(xcrun --sdk $SDK --find clang)"
PATH_CXX="$(xcrun --sdk $SDK --find clang++)"
# TODO(jtattermusch): add -mios-version-min=6.0 and -Wl,ios_version_min=6.0
CPPFLAGS="-O2 -Wframe-larger-than=16384 -arch $ARCH -isysroot $(xcrun --sdk $SDK --show-sdk-path) -DPB_NO_PACKED_STRUCTS=1"
LDFLAGS="-arch $ARCH -isysroot $(xcrun --sdk $SDK --show-sdk-path)"
# TODO(jtattermusch): revisit the build arguments
make -j4 static_csharp \
VALID_CONFIG_ios_$ARCH="1" \
CC_ios_$ARCH="$PATH_CC" \
CXX_ios_$ARCH="$PATH_CXX" \
LD_ios_$ARCH="$PATH_CC" \
LDXX_ios_$ARCH="$PATH_CXX" \
CPPFLAGS_ios_$ARCH="$CPPFLAGS" \
LDFLAGS_ios_$ARCH="$LDFLAGS" \
DEFINES_ios_$ARCH="NDEBUG" \
CONFIG="ios_$ARCH"
}
# Usage: fatten <grpc_csharp_ext|...>
function fatten {
LIB_NAME="$1"
mkdir -p libs/ios
lipo -create -output libs/ios/lib$LIB_NAME.a \
libs/ios_arm64/lib$LIB_NAME.a \
libs/ios_x86_64/lib$LIB_NAME.a
}
build iphoneos arm64
build iphonesimulator x86_64
fatten grpc
fatten grpc_csharp_ext

@ -20,4 +20,4 @@ cd "$(dirname "$0")/../../.."
src/csharp/experimental/build_native_ext_for_ios.sh
mkdir -p "${ARTIFACTS_OUT}"
cp libs/ios_arm64/libgrpc_csharp_ext.a libs/ios_arm64/libgrpc.a "${ARTIFACTS_OUT}"
cp libs/ios/libgrpc_csharp_ext.a libs/ios/libgrpc.a "${ARTIFACTS_OUT}"

Loading…
Cancel
Save