From 05436fb551bb22b0a9c1d9f176a6891aa82d9cb2 Mon Sep 17 00:00:00 2001 From: Maksim Date: Sun, 24 May 2020 12:55:48 +0200 Subject: [PATCH] Android: get deps as a zip archive and sqlite3 from official source --- build/android/app/build.gradle | 2 +- build/android/build.gradle | 5 +- .../gradle/wrapper/gradle-wrapper.properties | 4 +- build/android/native/build.gradle | 63 +++++++++++++++---- 4 files changed, 57 insertions(+), 17 deletions(-) diff --git a/build/android/app/build.gradle b/build/android/app/build.gradle index e3619af17..8e87424b5 100644 --- a/build/android/app/build.gradle +++ b/build/android/app/build.gradle @@ -2,7 +2,7 @@ apply plugin: 'com.android.application' android { compileSdkVersion 29 buildToolsVersion '29.0.3' - ndkVersion '21.1.6352462' + ndkVersion '21.2.6472646' defaultConfig { applicationId 'net.minetest.minetest' minSdkVersion 16 diff --git a/build/android/build.gradle b/build/android/build.gradle index 8707b563c..4cde1c3d6 100644 --- a/build/android/build.gradle +++ b/build/android/build.gradle @@ -15,8 +15,8 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:3.6.3' - classpath 'org.ajoberstar.grgit:grgit-gradle:4.0.2' + classpath 'com.android.tools.build:gradle:4.0.0' + classpath 'de.undercouch:gradle-download-task:4.0.4' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } @@ -31,4 +31,5 @@ allprojects { task clean(type: Delete) { delete rootProject.buildDir + delete 'native/deps' } diff --git a/build/android/gradle/wrapper/gradle-wrapper.properties b/build/android/gradle/wrapper/gradle-wrapper.properties index d612cf333..59a00ebac 100644 --- a/build/android/gradle/wrapper/gradle-wrapper.properties +++ b/build/android/gradle/wrapper/gradle-wrapper.properties @@ -1,2 +1,2 @@ -#Mon Apr 06 00:06:16 CEST 2020 -distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-all.zip +#Fri Jun 05 19:18:07 CEST 2020 +distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-all.zip diff --git a/build/android/native/build.gradle b/build/android/native/build.gradle index cbd50db6a..b072766b0 100644 --- a/build/android/native/build.gradle +++ b/build/android/native/build.gradle @@ -1,16 +1,16 @@ apply plugin: 'com.android.library' -import org.ajoberstar.grgit.Grgit +apply plugin: 'de.undercouch.download' android { compileSdkVersion 29 buildToolsVersion '29.0.3' - ndkVersion '21.1.6352462' + ndkVersion '21.2.6472646' defaultConfig { minSdkVersion 16 targetSdkVersion 29 externalNativeBuild { ndkBuild { - arguments '-j8', + arguments '-j' + Runtime.getRuntime().availableProcessors(), "versionMajor=${versionMajor}", "versionMinor=${versionMinor}", "versionPatch=${versionPatch}", @@ -45,15 +45,54 @@ android { } } -task cloneGitRepo() { - def destination = file('deps') - if(!destination.exists()) { - def grgit = Grgit.clone( - dir: destination, - uri: 'https://github.com/minetest/minetest_android_deps_binaries' - ) - grgit.close() +// get precompiled deps +def folder = 'minetest_android_deps_binaries' + +task downloadDeps(type: Download) { + src 'https://github.com/minetest/' + folder + '/archive/master.zip' + dest new File(buildDir, 'deps.zip') + overwrite false +} + +task getDeps(dependsOn: downloadDeps, type: Copy) { + def deps = file('deps') + def f = file("$buildDir/" + folder + "-master") + + if (!deps.exists() && !f.exists()) { + from zipTree(downloadDeps.dest) + into buildDir + } + + doLast { + if (!deps.exists()) { + file(f).renameTo(file(deps)) + } } } -preBuild.dependsOn cloneGitRepo +// get sqlite +def sqlite_ver = '3320200' +task downloadSqlite(dependsOn: getDeps, type: Download) { + src 'https://www.sqlite.org/2020/sqlite-amalgamation-' + sqlite_ver + '.zip' + dest new File(buildDir, 'sqlite.zip') + overwrite false +} + +task getSqlite(dependsOn: downloadSqlite, type: Copy) { + def sqlite = file('deps/Android/sqlite') + def f = file("$buildDir/sqlite-amalgamation-" + sqlite_ver) + + if (!sqlite.exists() && !f.exists()) { + from zipTree(downloadSqlite.dest) + into buildDir + } + + doLast { + if (!sqlite.exists()) { + file(f).renameTo(file(sqlite)) + } + } +} + +preBuild.dependsOn getDeps +preBuild.dependsOn getSqlite