[build] add script to generate a standalone version of Mapbox GL
This commit is contained in:
@@ -21,7 +21,7 @@ mason_use(vector-tile VERSION 1.0.2 HEADER_ONLY)
|
||||
if(MBGL_PLATFORM STREQUAL "android")
|
||||
mason_use(jni.hpp VERSION 4.0.0 HEADER_ONLY)
|
||||
elseif(MBGL_PLATFORM STREQUAL "ios")
|
||||
mason_use(icu VERSION 58.1-min-size)
|
||||
# noop
|
||||
elseif(MBGL_PLATFORM STREQUAL "linux")
|
||||
mason_use(glfw VERSION 2018-06-27-0be4f3f)
|
||||
mason_use(libuv VERSION 1.9.1)
|
||||
|
||||
@@ -208,8 +208,8 @@ endif()
|
||||
|
||||
mason_detect_platform()
|
||||
|
||||
# Execute commands if CMake is run in command mode
|
||||
if (CMAKE_ARGC)
|
||||
# Execute commands if CMake is run in command mode\
|
||||
if (CMAKE_ARGC AND "${CMAKE_SCRIPT_MODE_FILE}" STREQUAL "${CMAKE_CURRENT_LIST_DIR}/mason.cmake")
|
||||
# Collect remaining arguments for passing to mason_use
|
||||
set(_MASON_ARGS)
|
||||
foreach(I RANGE 4 ${CMAKE_ARGC})
|
||||
|
||||
@@ -213,3 +213,6 @@ platform/android/src/java_types.hpp
|
||||
# Main entry point
|
||||
platform/android/src/jni.hpp
|
||||
platform/android/src/jni.cpp
|
||||
|
||||
# GL
|
||||
platform/android/mbgl/gl/gl_impl.hpp
|
||||
|
||||
18
scripts/standalone.cmake
Normal file
18
scripts/standalone.cmake
Normal file
@@ -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()
|
||||
78
scripts/standalone.sh
Executable file
78
scripts/standalone.sh
Executable file
@@ -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
|
||||
Reference in New Issue
Block a user