summaryrefslogtreecommitdiff
path: root/scripts/ios/package.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/ios/package.sh')
-rwxr-xr-xscripts/ios/package.sh78
1 files changed, 78 insertions, 0 deletions
diff --git a/scripts/ios/package.sh b/scripts/ios/package.sh
new file mode 100755
index 0000000000..07e568faa1
--- /dev/null
+++ b/scripts/ios/package.sh
@@ -0,0 +1,78 @@
+#!/usr/bin/env bash
+
+set -e
+set -o pipefail
+set -u
+
+NAME=MapboxGL
+OUTPUT=build/ios/pkg
+IOS_SDK_VERSION=`xcrun --sdk iphoneos --show-sdk-version`
+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/ios
+
+step "Building iOS device targets..."
+xcodebuild -sdk iphoneos${IOS_SDK_VERSION} \
+ ARCHS="arm64 armv7 armv7s" \
+ ONLY_ACTIVE_ARCH=NO \
+ -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" \
+ ONLY_ACTIVE_ARCH=NO \
+ -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..."
+cp -pv LICENSE.md "${OUTPUT}/static"
+mkdir -p "${OUTPUT}/static/${NAME}.bundle"
+cp -pv platform/ios/resources/* "${OUTPUT}/static/${NAME}.bundle"
+cp -prv styles/styles "${OUTPUT}/static/${NAME}.bundle/styles"