Don't hardcode build-tools version

This commit is contained in:
Deve 2017-08-06 23:15:08 +02:00
parent bc6ff38b22
commit b6df36fc39
3 changed files with 32 additions and 10 deletions

View File

@ -48,9 +48,8 @@ Android NDK r12b.
You need to create proper "android-sdk" and "android-ndk" symlinks in the You need to create proper "android-sdk" and "android-ndk" symlinks in the
directory with Android project, so that the compilation script will have access directory with Android project, so that the compilation script will have access
to the SDK and NDK. to the SDK and NDK. These paths can be also set in SDK_PATH and NDK_PATH
environmental variables.
These paths can be also set in SDK_PATH and NDK_PATH environmental variables.
Before running the compilation, run the generate_assets script, so that Before running the compilation, run the generate_assets script, so that
selected assets will be copied to "assets" directory, and then included in the selected assets will be copied to "assets" directory, and then included in the
@ -78,9 +77,10 @@ you have to manually sign the apk with your key and run zipalign.
Additionally you can choose the build tool by setting BUILD_TOOL environment Additionally you can choose the build tool by setting BUILD_TOOL environment
variable to "gradle" or "ant". Note that ant has been already removed from variable to "gradle" or "ant". Note that ant has been already removed from
Android SDK, so you have to use SDK <= 25.2.5 for building with ant. By default Android SDK, so you have to use SDK <= 25.2.5 for building with ant. By default
the BUILD_TOOL is set to "gradle". It has hardcoded version of SDK build-tools the BUILD_TOOL is set to "gradle".
that are set to "25.0.3", so you have to use this particular version (or you can
edit build.gradle file). You can override the SDK build-tools version by setting the BUILD_TOOLS_VER
environment variable.
Basically if all dependencies are installed in the system, it should be enough Basically if all dependencies are installed in the system, it should be enough
to just run: to just run:

View File

@ -15,8 +15,8 @@ apply plugin: 'com.android.application'
android android
{ {
compileSdkVersion sdkVersion.toInteger() compileSdkVersion sdk_version.toInteger()
buildToolsVersion "25.0.3" buildToolsVersion build_tools_ver
sourceSets sourceSets
{ {

View File

@ -155,6 +155,24 @@ if [ ! -d "$SDK_PATH" ]; then
exit exit
fi fi
# Find newest build-tools version
if [ -z "$BUILD_TOOLS_VER" ]; then
BUILD_TOOLS_DIRS=`ls -1 "$SDK_PATH/build-tools" | sort -V -r`
for DIR in $BUILD_TOOLS_DIRS; do
if [ "$DIR" = `echo $DIR | sed 's/[^0-9,.]//g'` ]; then
BUILD_TOOLS_VER="$DIR"
break
fi
done
fi
if [ -z "$BUILD_TOOLS_VER" ] || [ ! -d "$SDK_PATH/build-tools/$BUILD_TOOLS_VER" ]; then
echo "Error: Couldn't detect build-tools version."
exit
fi
# Standalone toolchain # Standalone toolchain
if [ ! -f "$DIRNAME/obj/make_standalone_toolchain.stamp" ]; then if [ ! -f "$DIRNAME/obj/make_standalone_toolchain.stamp" ]; then
echo "Creating standalone toolchain" echo "Creating standalone toolchain"
@ -326,9 +344,13 @@ echo "Building APK"
if [ "$BUILD_TOOL" = "gradle" ]; then if [ "$BUILD_TOOL" = "gradle" ]; then
export ANDROID_HOME="$SDK_PATH" export ANDROID_HOME="$SDK_PATH"
gradle -PsdkVersion=$SDK_VERSION $GRADLE_BUILD_TYPE gradle -Psdk_version=$SDK_VERSION \
-Pbuild_tools_ver="$BUILD_TOOLS_VER" \
$GRADLE_BUILD_TYPE
elif [ "$BUILD_TOOL" = "ant" ]; then elif [ "$BUILD_TOOL" = "ant" ]; then
ant $ANT_BUILD_TYPE -Dsdk.dir="$SDK_PATH" -Dtarget=$NDK_PLATFORM ant -Dsdk.dir="$SDK_PATH" \
-Dtarget=$NDK_PLATFORM \
$ANT_BUILD_TYPE
fi fi
check_error check_error