144 строки
4.3 KiB
Bash
Executable File
144 строки
4.3 KiB
Bash
Executable File
#!/bin/bash
|
|
# script to build AOSP.
|
|
|
|
ndk=
|
|
arch=x86
|
|
build=MinSizeRel
|
|
version=19
|
|
sdk=
|
|
sdkver=24
|
|
dataCompressionLib=NDK_libz
|
|
bundle=off
|
|
xmlparser=javaxml
|
|
validationParser=off
|
|
samples=on
|
|
tests=on
|
|
|
|
usage()
|
|
{
|
|
echo "usage: makeaosp [options]"
|
|
echo $'\t' "-ndk ndk_path Path to Android NDK. Default $ANDROID_NDK_ROOT or $ANDROID_NDK"
|
|
echo $'\t' "-ndkver ndk_version Android NDK version. Default/minimum 19."
|
|
echo $'\t' "-sdk sdk_path Path to Android SDK. Default $ANDROID_HOME."
|
|
echo $'\t' "-sdkver sdk_version Android SDK version. Default/minimum 24."
|
|
echo $'\t' "-arch arch Architecture ABI. Default x86"
|
|
echo $'\t' "-b build_type Default MinSizeRel"
|
|
echo $'\t' "-xzlib Use MSIX SDK Zlib instead of inbox libz.so"
|
|
echo $'\t' "-parser-xerces Use xerces xml parser instead of default javaxml"
|
|
echo $'\t' "-sb Skip bundle support."
|
|
echo $'\t' "--validation-parser|-vp Enable XML schema validation."
|
|
echo $'\t' "--skip-samples Skip building samples."
|
|
echo $'\t' "--skip-tests Skip building tests."
|
|
}
|
|
|
|
printsetup()
|
|
{
|
|
echo "NDK Path:" $ndk
|
|
echo "NDK Version:" $version
|
|
echo "SDK Path:" $sdk
|
|
echo "SDK Version:" $sdkver
|
|
echo "Architecture:" $arch
|
|
echo "Build Type:" $build
|
|
echo "Zlib:" $dataCompressionLib
|
|
echo "parser:" $xmlparser
|
|
echo "Skip bundle support:" $bundle
|
|
echo "Validation parser:" $validationParser
|
|
echo "Build samples:" $samples
|
|
echo "Build tests:" $tests
|
|
}
|
|
|
|
while [ "$1" != "" ]; do
|
|
case $1 in
|
|
-ndk ) shift
|
|
ndk=$1
|
|
;;
|
|
-arch ) shift
|
|
arch=$1
|
|
;;
|
|
-b ) shift
|
|
build=$1
|
|
;;
|
|
-ndkver ) shift
|
|
version=$1
|
|
;;
|
|
-h ) usage
|
|
exit
|
|
;;
|
|
-xzlib ) dataCompressionLib=MSIX_SDK_zlib
|
|
zlib="-DUSE_MSIX_SDK_ZLIB=on"
|
|
;;
|
|
-parser-xerces )
|
|
xmlparser=xerces
|
|
;;
|
|
-sdk ) shift
|
|
sdk=$1
|
|
;;
|
|
-sdkver ) shift
|
|
sdkver=$1
|
|
;;
|
|
-sb ) bundle="on"
|
|
;;
|
|
--validation-parser ) validationParser=on
|
|
;;
|
|
-vp ) validationParser=on
|
|
;;
|
|
--skip-samples ) samples=off
|
|
;;
|
|
--skip-tests ) tests=off
|
|
;;
|
|
* ) usage
|
|
exit 1
|
|
esac
|
|
shift
|
|
done
|
|
|
|
if [ -z "$sdk" ] && [ -n "$ANDROID_HOME" ]; then
|
|
sdk="$ANDROID_HOME"
|
|
elif [ -z "$sdk" ]; then
|
|
echo "Android SDK not found"
|
|
exit 1
|
|
fi
|
|
|
|
if [ -z "$ndk" ] && [ -n "$ANDROID_NDK_ROOT" ]; then
|
|
ndk="$ANDROID_NDK_ROOT"
|
|
elif [ -z "$ndk" ] && [ -n "$ANDROID_ROOT"]; then
|
|
ndk="$ANDROID_ROOT"
|
|
fi
|
|
|
|
# If we find the sdk and ndk is still empty lets just hope they have it
|
|
# installed in the default location.
|
|
# Note: don't elif this to the block above as I've seen ANDROID_NDK_ROOT or
|
|
# ANDROID_ROOT set but empty.
|
|
if [ -z "$ndk" ]; then
|
|
ndk="$ANDROID_HOME/ndk-bundle"
|
|
fi
|
|
|
|
printsetup
|
|
|
|
mkdir .vs
|
|
cd .vs
|
|
|
|
# clean up any old builds of msix modules
|
|
find . -name *msix* -d | xargs rm -r
|
|
|
|
echo "cmake -DCMAKE_SYSTEM_NAME=Android -DCMAKE_ANDROID_NDK="$ndk "-DCMAKE_SYSTEM_VERSION="$version "-DANDROID_SDK="$sdk
|
|
echo "-DANDROID_SDK_VERSION="$sdkver "-DCMAKE_ANDROID_ARCH_ABI="$arch "-DCMAKE_ANDROID_NDK_TOOLCHAIN_VERSION=clang"
|
|
echo "-DCMAKE_ANDROID_STL_TYPE=c++_shared -DCMAKE_BUILD_TYPE="$build "-DSKIP_BUNDLES="$bundle "-DXML_PARSER="$xmlparser
|
|
echo "-DUSE_VALIDATION_PARSER="$validationParser $zlib "-DMSIX_SAMPLES="$samples "-DMSIX_TESTS="$tests "-DAOSP=on .."
|
|
cmake -DCMAKE_SYSTEM_NAME=Android \
|
|
-DCMAKE_ANDROID_NDK="$ndk" \
|
|
-DCMAKE_SYSTEM_VERSION="$version" \
|
|
-DANDROID_SDK="$sdk" \
|
|
-DANDROID_SDK_VERSION="$sdkver" \
|
|
-DCMAKE_ANDROID_ARCH_ABI="$arch" \
|
|
-DCMAKE_ANDROID_NDK_TOOLCHAIN_VERSION=clang \
|
|
-DCMAKE_ANDROID_STL_TYPE=c++_shared \
|
|
-DCMAKE_BUILD_TYPE="$build" \
|
|
-DSKIP_BUNDLES=$bundle \
|
|
-DXML_PARSER=$xmlparser \
|
|
-DUSE_VALIDATION_PARSER=$validationParser \
|
|
-DMSIX_SAMPLES=$samples \
|
|
-DMSIX_TESTS=$tests \
|
|
$zlib -DAOSP=on ..
|
|
make
|