diff options
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/standalone.cmake | 18 | ||||
-rwxr-xr-x | scripts/standalone.sh | 78 |
2 files changed, 96 insertions, 0 deletions
diff --git a/scripts/standalone.cmake b/scripts/standalone.cmake new file mode 100644 index 0000000000..b8bcbfa03f --- /dev/null +++ b/scripts/standalone.cmake @@ -0,0 +1,18 @@ +include(cmake/mason.cmake) + +# include once for every platform to get all dependency defines +set(MBGL_PLATFORM "android") +include(cmake/mason-dependencies.cmake) +set(MBGL_PLATFORM "ios") +include(cmake/mason-dependencies.cmake) + +get_cmake_property(_VARS VARIABLES) +foreach (_VAR ${_VARS}) + if (_VAR MATCHES "^MASON_PACKAGE_.+_NAME$") + set(_PACKAGE "${${_VAR}}") + if (MASON_PACKAGE_${_PACKAGE}_HEADER_ONLY) + file(RELATIVE_PATH _PREFIX "${CMAKE_CURRENT_LIST_DIR}/.." "${MASON_PACKAGE_${_PACKAGE}_PREFIX}") + message("${_PACKAGE} ${_PREFIX} ${MASON_PACKAGE_${_PACKAGE}_VERSION}") + endif() + endif() +endforeach() 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 |