mirror of https://github.com/grpc/grpc.git
Merge pull request #16109 from jtattermusch/xamarin_ios_pieces
Xamarin iOS: Add libgrpc_csharp_ext.a for iOS into Grpc.Core nuget.pull/16121/head
commit
3fd4267777
7 changed files with 130 additions and 0 deletions
@ -0,0 +1,15 @@ |
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
||||
|
||||
<ItemGroup> |
||||
<NativeReference Include="$(MSBuildThisFileDirectory)..\..\runtimes\ios\native\libgrpc_csharp_ext.a"> |
||||
<Kind>Static</Kind> |
||||
<ForceLoad>True</ForceLoad> |
||||
</NativeReference> |
||||
<NativeReference Include="$(MSBuildThisFileDirectory)..\..\runtimes\ios\native\libgrpc.a"> |
||||
<Kind>Static</Kind> |
||||
<ForceLoad>True</ForceLoad> |
||||
</NativeReference> |
||||
</ItemGroup> |
||||
|
||||
</Project> |
@ -0,0 +1,62 @@ |
||||
#!/bin/sh |
||||
# Copyright 2018 The gRPC Authors |
||||
# |
||||
# Licensed under the Apache License, Version 2.0 (the "License"); |
||||
# you may not use this file except in compliance with the License. |
||||
# You may obtain a copy of the License at |
||||
# |
||||
# http://www.apache.org/licenses/LICENSE-2.0 |
||||
# |
||||
# Unless required by applicable law or agreed to in writing, software |
||||
# distributed under the License is distributed on an "AS IS" BASIS, |
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
# See the License for the specific language governing permissions and |
||||
# limitations under the License. |
||||
|
||||
# Helper script to crosscompile grpc_csharp_ext native extension for Android. |
||||
|
||||
set -ex |
||||
|
||||
cd "$(dirname "$0")/../../.." |
||||
|
||||
# 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 |
@ -0,0 +1,23 @@ |
||||
#!/bin/bash |
||||
# Copyright 2018 The gRPC Authors |
||||
# |
||||
# Licensed under the Apache License, Version 2.0 (the "License"); |
||||
# you may not use this file except in compliance with the License. |
||||
# You may obtain a copy of the License at |
||||
# |
||||
# http://www.apache.org/licenses/LICENSE-2.0 |
||||
# |
||||
# Unless required by applicable law or agreed to in writing, software |
||||
# distributed under the License is distributed on an "AS IS" BASIS, |
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
# See the License for the specific language governing permissions and |
||||
# limitations under the License. |
||||
|
||||
set -ex |
||||
|
||||
cd "$(dirname "$0")/../../.." |
||||
|
||||
src/csharp/experimental/build_native_ext_for_ios.sh |
||||
|
||||
mkdir -p "${ARTIFACTS_OUT}" |
||||
cp libs/ios/libgrpc_csharp_ext.a libs/ios/libgrpc.a "${ARTIFACTS_OUT}" |
Loading…
Reference in new issue