summaryrefslogtreecommitdiff
path: root/scripts/standalone.sh
diff options
context:
space:
mode:
authorKonstantin Käfer <mail@kkaefer.com>2018-08-23 12:15:09 +0200
committerKonstantin Käfer <mail@kkaefer.com>2018-09-11 11:43:54 +0200
commit2fccdecfb1ae720682276c0342e1c3902d8c9873 (patch)
tree7de62d938f0691b91681bca1c510a89f07eda067 /scripts/standalone.sh
parentbc9b2249169276987af4ed91b29bf8a2fd65e15e (diff)
downloadqtlocation-mapboxgl-2fccdecfb1ae720682276c0342e1c3902d8c9873.tar.gz
[build] add script to generate a standalone version of Mapbox GL
Diffstat (limited to 'scripts/standalone.sh')
-rwxr-xr-xscripts/standalone.sh78
1 files changed, 78 insertions, 0 deletions
diff --git a/scripts/standalone.sh b/scripts/standalone.sh
new file mode 100755
index 0000000000..80b9ac6931
--- /dev/null
+++ b/scripts/standalone.sh
@@ -0,0 +1,78 @@
+#!/usr/bin/env bash
+
+set -e
+set -o pipefail
+
+cd "$(dirname "${BASH_SOURCE[0]}")/.."
+
+function usage {
+ echo "Usage: $0 <args> [target]"
+ echo ""
+ echo " -c, --clean-target Removes all files in the target directory instead of overwriting them"
+ echo " -s, --skip [name] Skips vendoring the given dependency"
+ exit 1
+}
+
+CLEAN_TARGET=false
+
+ARGS=()
+while [[ $# -gt 0 ]] ; do case "$1" in
+ -c|--clean-target) CLEAN_TARGET=true ; shift ;;
+ -s|--skip) shift ; DEP="$1" ; shift ; declare SKIP_$DEP=true ;;
+ *) ARGS+=("$1") ; shift ;;
+esac ; done
+set -- "${ARGS[@]}"
+
+if [ -z "$1" ]; then usage ; fi
+TARGET="$1"
+
+if [ "$CLEAN_TARGET" = true ] ; then
+ echo ">> Cleaning target directory..."
+ rm -rf "$TARGET"
+fi
+
+echo ">> Creating target directory..."
+mkdir -p "$TARGET"
+TARGET=$(cd "`pwd`/$TARGET"; pwd)
+
+echo ">> Creating file lists..."
+cat cmake/core-files.txt cmake/filesource-files.txt > "$TARGET/files.txt"
+mkdir -p "$TARGET/platform/android"
+cat platform/android/*-files.txt > "$TARGET/platform/android/files.txt"
+
+echo ">> Copying source files..."
+rsync -rR $(git ls-files \
+ "include" \
+ "src" \
+ "platform/default" \
+ "platform/android/mbgl" \
+ "platform/android/src" \
+ "platform/linux/src" \
+ "platform/android/MapboxGLAndroidSDK/src/main" \
+) "$TARGET"
+
+echo ">> Copying vendored files..."
+rsync -rR $(git ls-files \
+ "vendor/expected" \
+ "vendor/icu" \
+ "vendor/nunicode" \
+ "vendor/sqlite" \
+) "$TARGET"
+
+echo ">> Copying Mason dependencies..."
+cmake -P scripts/standalone.cmake 2>&1 | while read DEPENDENCY ; do
+ DEPENDENCY=($DEPENDENCY)
+ if [ "[Mason]" = "${DEPENDENCY[0]}" ]; then
+ echo "${DEPENDENCY[@]}"
+ continue
+ fi
+ SKIP=SKIP_${DEPENDENCY[0]}
+ if [ "${!SKIP:-false}" = true ]; then continue ; fi
+ DESTINATION="$TARGET/vendor/${DEPENDENCY[0]}"
+ mkdir -p "$DESTINATION"
+ echo " - ${DEPENDENCY[0]}"
+ cp -r "${DEPENDENCY[1]}/" "$DESTINATION"
+ rm "$DESTINATION/mason.ini"
+ (cd "${DEPENDENCY[1]}" && find include -type f -name "*.hpp" -o -name "*.h") > "$DESTINATION/files.txt"
+ echo "${DEPENDENCY[2]}" > "$DESTINATION/version.txt"
+done