Index: webrtc/build/ios/build_ios_framework.sh |
diff --git a/webrtc/build/ios/build_ios_framework.sh b/webrtc/build/ios/build_ios_framework.sh |
new file mode 100755 |
index 0000000000000000000000000000000000000000..35ec552798ce711f2f5f6b3c9912fddc283100ee |
--- /dev/null |
+++ b/webrtc/build/ios/build_ios_framework.sh |
@@ -0,0 +1,85 @@ |
+#!/bin/bash |
+ |
+# Copyright 2015 The WebRTC project authors. All Rights Reserved. |
+# |
+# Use of this source code is governed by a BSD-style license |
+# that can be found in the LICENSE file in the root of the source |
+# tree. An additional intellectual property rights grant can be found |
+# in the file PATENTS. All contributing project authors may |
+# be found in the AUTHORS file in the root of the source tree. |
+ |
+# Generates dynamic FAT framework for iOS in out_ios_framework. |
+ |
+# Check for Darwin. |
+if [[ ! $(uname) = "Darwin" ]]; then |
+ echo "OS X required." >&2 |
+fi |
+ |
+# Check for iOS library build script. |
+SCRIPT_DIR=$(dirname $0) |
+WEBRTC_BASE_DIR=${SCRIPT_DIR}/../../.. |
+BUILD_WEBRTC_SCRIPT=${WEBRTC_BASE_DIR}/webrtc/build/ios/build_ios_libs.sh |
+if [[ ! -x ${BUILD_WEBRTC_SCRIPT} ]]; then |
+ echo "Failed to find iOS library build script." >&2 |
+ exit 1 |
+fi |
+# Check for flatten iOS headers script. |
+FLATTEN_HEADERS_SCRIPT=${WEBRTC_BASE_DIR}/webrtc/build/ios/flatten_ios_headers |
+if [[ ! -x ${FLATTEN_HEADERS_SCRIPT} ]]; then |
+ echo "Failed to find flatten iOS headers script." >&2 |
+ exit 1 |
+fi |
+ |
+pushd ${WEBRTC_BASE_DIR} |
+LIB_BASE_DIR=out_ios_libs |
+FRAMEWORK_BASE_DIR=out_ios_framework |
+ |
+# Build static libraries for iOS. |
+${BUILD_WEBRTC_SCRIPT} |
+if [ $? -ne 0 ]; then |
+ echo "Failed to build iOS static libraries." >&2 |
+ exit 1 |
+fi |
+ |
+# Flatten the directory structure for iOS headers. |
+${FLATTEN_HEADERS_SCRIPT} ${LIB_BASE_DIR} ${FRAMEWORK_BASE_DIR} |
+if [ $? -ne 0 ]; then |
+ echo "Failed to flatten iOS headers." >&2 |
+ exit 1 |
+fi |
+ |
+# Replace full paths for headers with framework paths. |
+SED_PATTERN=' |
+ s/(\#import )\"webrtc\/api\/objc\/(.*)\"/\1<WebRTC\/\2>/g; |
+ s/(\#import )\"webrtc\/base\/objc\/(.*)\"/\1<WebRTC\/\2>/g; |
+ s/(\#include )\"webrtc\/base\/objc\/(.*)\"/\1<WebRTC\/\2>/g; |
+' |
+sed -E -i '' "$SED_PATTERN" ${FRAMEWORK_BASE_DIR}/include/*.h |
+ |
+SDK_DIR=webrtc/build/ios/SDK |
+PROJECT_DIR=${SDK_DIR}/Framework |
+# Build the framework. |
+pushd ${PROJECT_DIR} |
+xcodebuild -project WebRTC.xcodeproj -scheme WebRTC -configuration Release \ |
+ build CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO |
+xcodebuild -project WebRTC.xcodeproj -scheme WebRTC -configuration Release \ |
+ build -destination 'platform=iOS Simulator,name=iPhone 6' |
+popd |
+ |
+# Copy podspec, framework, dSYM and LICENSE to FRAMEWORK_BASE_DIR |
+DEVICE_BUILD_DIR=${PROJECT_DIR}/build/Release-iphoneos |
+cp ${SDK_DIR}/WebRTC.podspec ${FRAMEWORK_BASE_DIR}/ |
+cp -R ${DEVICE_BUILD_DIR}/WebRTC.framework ${FRAMEWORK_BASE_DIR}/ |
+cp -R ${DEVICE_BUILD_DIR}/WebRTC.framework.dSYM ${FRAMEWORK_BASE_DIR}/ |
+cp -R webrtc/LICENSE ${FRAMEWORK_BASE_DIR}/ |
+ |
+# Combine multiple architectures |
+SIMULATOR_BUILD_DIR=${PROJECT_DIR}/build/Release-iphonesimulator |
+DYLIB_PATH=WebRTC.framework/WebRTC |
+DWARF_PATH=WebRTC.framework.dSYM/Contents/Resources/DWARF/WebRTC |
+lipo ${FRAMEWORK_BASE_DIR}/${DYLIB_PATH} ${SIMULATOR_BUILD_DIR}/${DYLIB_PATH} \ |
+ -create -output ${FRAMEWORK_BASE_DIR}/${DYLIB_PATH} |
+lipo ${FRAMEWORK_BASE_DIR}/${DWARF_PATH} ${SIMULATOR_BUILD_DIR}/${DWARF_PATH} \ |
+ -create -output ${FRAMEWORK_BASE_DIR}/${DWARF_PATH} |
+ |
+popd |