apply plugin: 'com.android.library'
apply plugin: 'de.undercouch.download'

android {
	compileSdkVersion 29
	buildToolsVersion '30.0.3'
	ndkVersion '22.0.7026061'
	defaultConfig {
		minSdkVersion 16
		targetSdkVersion 29
		externalNativeBuild {
			ndkBuild {
				arguments '-j' + Runtime.getRuntime().availableProcessors(),
						"versionMajor=${versionMajor}",
						"versionMinor=${versionMinor}",
						"versionPatch=${versionPatch}",
						"versionExtra=${versionExtra}"
			}
		}
	}

	externalNativeBuild {
		ndkBuild {
			path file('jni/Android.mk')
		}
	}

	// supported architectures
	splits {
		abi {
			enable true
			reset()
			include 'armeabi-v7a', 'arm64-v8a'//, 'x86'
		}
	}

	buildTypes {
		release {
			externalNativeBuild {
				ndkBuild {
					arguments 'NDEBUG=1'
				}
			}
		}
	}
}

// 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))
		}
	}
}

// get sqlite
def sqlite_ver = '3340000'
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
