78 lines
2.1 KiB
Bash
Executable File
78 lines
2.1 KiB
Bash
Executable File
#!/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/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
|