Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(326)

Unified Diff: webrtc/build/ios/build_ios_framework.sh

Issue 1829783003: Build dynamic framework with podspec for Objective-C API. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Import Foundation instead of UIKit Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/build/ios/SDK/WebRTC.podspec ('k') | webrtc/build/ios/export_headers » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « webrtc/build/ios/SDK/WebRTC.podspec ('k') | webrtc/build/ios/export_headers » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698