summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Wray <jason@mapbox.com>2018-10-02 19:07:14 -0400
committerJason Wray <jason@mapbox.com>2018-10-02 19:07:14 -0400
commit39343001250d4a9a19b1faac3e262aa32c2f1167 (patch)
treed7ad1ea66955543cd3a60f31498a24d99830e571
parent86791b1b68798abbc3a2c75930c6f744246be53e (diff)
downloadqtlocation-mapboxgl-39343001250d4a9a19b1faac3e262aa32c2f1167.tar.gz
[ios, build] Check symbol namespacing for mapbox-events-iosupstream/fb-check-events-symbols
-rw-r--r--Makefile4
-rw-r--r--circle.yml3
-rwxr-xr-xplatform/ios/scripts/check-events-symbols.sh35
3 files changed, 42 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index cff9a28e8d..02ed977f0e 100644
--- a/Makefile
+++ b/Makefile
@@ -252,6 +252,10 @@ ios-sanitize-address: $(IOS_PROJ_PATH)
ios-static-analyzer: $(IOS_PROJ_PATH)
set -o pipefail && $(IOS_XCODEBUILD_SIM) analyze -scheme 'CI' test $(XCPRETTY)
+.PHONY: ios-check-events-symbols
+ios-check-events-symbols:
+ ./platform/ios/scripts/check-events-symbols.sh
+
.PHONY: ipackage
ipackage: ipackage*
ipackage%:
diff --git a/circle.yml b/circle.yml
index 1def734e60..5cf3a4575d 100644
--- a/circle.yml
+++ b/circle.yml
@@ -854,6 +854,9 @@ jobs:
name: Lint plist files
command: make ios-lint
- run:
+ name: Check symbol namespacing for mapbox-events-ios
+ command: make ios-check-events-symbols
+ - run:
name: Nitpick Darwin code generation
command: scripts/nitpick/generated-code.js darwin
- save-dependencies
diff --git a/platform/ios/scripts/check-events-symbols.sh b/platform/ios/scripts/check-events-symbols.sh
new file mode 100755
index 0000000000..0eefd19c49
--- /dev/null
+++ b/platform/ios/scripts/check-events-symbols.sh
@@ -0,0 +1,35 @@
+#!/usr/bin/env bash
+
+set -e
+set -o pipefail
+set -u
+
+function step { >&2 echo -e "\033[1m\033[36m* $@\033[0m"; }
+function finish { >&2 echo -en "\033[0m"; }
+trap finish EXIT
+
+FRAMEWORK=build/ios/pkg/dynamic/Mapbox.framework/Mapbox
+
+step "Looking for Mapbox.framework…"
+
+if [ -f ${FRAMEWORK} ]; then
+ echo "Found framework: ${FRAMEWORK}"
+else
+ echo "No framework found — building dynamic Mapbox.framework…"
+ make iframework BUILD_DEVICE=false
+fi
+
+step "Checking for un-namespaced symbols from mapbox-events-ios…"
+
+# Symbols from mapbox-events-ios are prefixed MME. To avoid duplicate symbol
+# warnings when multiple copes of mapbox-events-ios are included in a project,
+# the maps SDK prefixes these symbols with MGL_.
+SYMBOLS=$( nm ${FRAMEWORK} | grep \$_MME || true )
+
+if [ -z "${SYMBOLS}" ]; then
+ echo "✅ Found no un-namespaced symbols."
+else
+ echo "❗️ Found un-namespaced symbols:"
+ echo "${SYMBOLS}"
+ exit 1
+fi