buildscript {
	repositories {
		google()
		jcenter()
	}
	dependencies {
		classpath 'com.android.tools.build:gradle:3.4.2'
	}
}

allprojects {
	repositories {
		google()
		jcenter()
	}
}

def curl_version = "7.60.0"
def irrlicht_revision = "5150"
def openal_version = "1.18.2"
def openssl_version = "1.0.2n"
def sqlite3_version = "3240000"

apply plugin: "com.android.application"

android {
	compileSdkVersion 28

	defaultConfig {
		versionCode 24
		versionName "${System.env.VERSION_STR}.${versionCode}"
		minSdkVersion 14
		targetSdkVersion 28
		applicationId "net.minetest.minetest"
		manifestPlaceholders = [package: "net.minetest.minetest", project: project.name]
		ndk {
			// Specifies the ABI configurations of your native
			// libraries Gradle should build and package with your APK.
			// abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
			abiFilters 'armeabi-v7a', 'x86'
		}
	}

	lintOptions {
		disable "OldTargetApi", "GoogleAppIndexingWarning"
	}

	Properties props = new Properties()
	props.load(new FileInputStream(file("local.properties")))

	if (props.getProperty("keystore") != null) {
		signingConfigs {
			release {
				storeFile file(props["keystore"])
				storePassword props["keystore.password"]
				keyAlias props["key"]
				keyPassword props["key.password"]
			}
		}

		buildTypes {
			release {
				signingConfig signingConfigs.release
			}
		}
	}
}

task cleanAssets(type: Delete) {
	delete 'src/main/assets'
}

task copyAssets {
	dependsOn 'cleanAssets'
	mkdir "src/main/assets"

	def mtAssetsFolder = "src/main/assets/Minetest"
	def projRoot = "../.."
	def gameToCopy = "minetest_game"

	doLast {
		mkdir "${mtAssetsFolder}"
		mkdir "${mtAssetsFolder}/client"
		mkdir "${mtAssetsFolder}/fonts"
		mkdir "${mtAssetsFolder}/games"
		mkdir "${mtAssetsFolder}/media"

		copy {
			from "${projRoot}/minetest.conf.example", "${projRoot}/README.md" into mtAssetsFolder
		}
		copy {
			from "${projRoot}/doc/lgpl-2.1.txt" into "${mtAssetsFolder}/LICENSE.txt"
		}
		copy {
			from "${projRoot}/builtin" into "${mtAssetsFolder}/builtin"
		}
		copy {
			from "${projRoot}/client/shaders" into "${mtAssetsFolder}/client/shaders"
		}
		copy {
			from "${projRoot}/fonts" include "*.ttf" into "${mtAssetsFolder}/fonts"
		}
		copy {
			from "${projRoot}/games/${gameToCopy}" into "${mtAssetsFolder}/games/${gameToCopy}"
		}
		copy {
			from "${projRoot}/po" into "${mtAssetsFolder}/po"
		}
		copy {
			from "${projRoot}/textures" into "${mtAssetsFolder}/textures"
		}
	}
}

task cleanIconv(type: Delete) {
	delete 'deps/libiconv'
}

task cleanIrrlicht(type: Delete) {
	delete 'deps/irrlicht'
}

task cleanLevelDB(type: Delete) {
	delete 'deps/leveldb'
}

task cleanCURL(type: Delete) {
	delete 'deps/curl'
	delete 'deps/curl-' + curl_version
}

task cleanOpenSSL(type: Delete) {
	delete 'deps/openssl'
	delete 'deps/openssl-' + openssl_version
	delete 'deps/openssl-' + openssl_version + '.tar.gz'
}

task cleanOpenAL(type: Delete) {
	delete 'deps/openal-soft'
}

task cleanFreetype(type: Delete) {
	delete 'deps/freetype2-android'
}

task cleanOgg(type: Delete) {
	delete 'deps/libvorbis-libogg-android'
}

task cleanSQLite3(type: Delete) {
	delete 'deps/sqlite-amalgamation-' + sqlite3_version
	delete 'deps/sqlite-amalgamation-' + sqlite3_version + '.zip'
}

task cleanAll(type: Delete, dependsOn: [clean, cleanAssets, cleanIconv,
		cleanFreetype, cleanIrrlicht, cleanLevelDB, cleanSQLite3, cleanCURL,
		cleanOpenSSL, cleanOpenAL, cleanOgg]) {
	delete 'deps'
	delete 'gen'
	delete 'libs'
	delete 'obj'
	delete 'bin'
	delete 'Debug'
	delete 'and_env'
}

dependencies {
	implementation 'com.android.support:support-v4:28.0.0'
}
