summaryrefslogtreecommitdiff
path: root/scripts/package_ios.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/package_ios.sh')
-rwxr-xr-xscripts/package_ios.sh75
1 files changed, 75 insertions, 0 deletions
diff --git a/scripts/package_ios.sh b/scripts/package_ios.sh
new file mode 100755
index 0000000000..89aac5ee79
--- /dev/null
+++ b/scripts/package_ios.sh
@@ -0,0 +1,75 @@
+#!/usr/bin/env bash
+
+set -e
+set -o pipefail
+set -u
+
+NAME=MapboxGL
+OUTPUT=build/ios/pkg
+IOS_SDK_VERSION=8.1
+LIBUV_VERSION=0.10.28
+
+function step { >&2 echo -e "\033[1m\033[36m* $@\033[0m"; }
+function finish { >&2 echo -en "\033[0m"; }
+trap finish EXIT
+
+
+rm -rf ${OUTPUT}
+mkdir -p "${OUTPUT}"/static
+
+
+step "Recording library version..."
+VERSION="${OUTPUT}"/static/version.txt
+echo -n "https://github.com/mapbox/mapbox-gl-native/commit/" > ${VERSION}
+HASH=`git log | head -1 | awk '{ print $2 }' | cut -c 1-10` && true
+echo -n "mapbox-gl-native "
+echo ${HASH}
+echo ${HASH} >> ${VERSION}
+
+
+step "Creating build files..."
+export MASON_PLATFORM=ios
+export BUILDTYPE=${BUILDTYPE:-Release}
+export HOST=ios
+make Xcode/mbgl
+
+step "Building iOS targets..."
+xcodebuild -sdk iphoneos${IOS_SDK_VERSION} \
+ ARCHS="arm64 armv7 armv7s" \
+ -project ./build/ios/mbgl.xcodeproj \
+ -configuration ${BUILDTYPE} \
+ -target everything \
+ -jobs `sysctl -n hw.ncpu` | xcpretty -c
+
+
+step "Building iOS Simulator targets..."
+xcodebuild -sdk iphonesimulator${IOS_SDK_VERSION} \
+ ARCHS="x86_64 i386" \
+ -project ./build/ios/mbgl.xcodeproj \
+ -configuration ${BUILDTYPE} \
+ -target everything \
+ -jobs `sysctl -n hw.ncpu` | xcpretty -c
+
+
+step "Building static library..."
+LIBS=(core.a platform-ios.a asset-fs.a cache-sqlite.a http-nsurl.a)
+libtool -static -no_warning_for_no_symbols \
+ -o ${OUTPUT}/static/lib${NAME}.a \
+ ${LIBS[@]/#/build/${BUILDTYPE}-iphoneos/libmbgl-} \
+ ${LIBS[@]/#/build/${BUILDTYPE}-iphonesimulator/libmbgl-} \
+ `find mason_packages/ios-${IOS_SDK_VERSION} -type f -name libuv.a`
+echo "Created ${OUTPUT}/static/lib${NAME}.a"
+
+
+step "Copying Headers..."
+mkdir -p "${OUTPUT}/static/Headers"
+cp -pv include/mbgl/ios/* "${OUTPUT}/static/Headers"
+
+
+# Manually create resource bundle. We don't use a GYP target here because of
+# complications between faked GYP bundles-as-executables, device build
+# dependencies, and code signing.
+step "Copying Resources..."
+mkdir -p "${OUTPUT}/static/${NAME}.bundle"
+cp -pv platform/ios/resources/* "${OUTPUT}/static/${NAME}.bundle"
+cp -prv styles/styles "${OUTPUT}/static/${NAME}.bundle/styles"