aboutsummaryrefslogtreecommitdiff
path: root/build/android/app/build.gradle
blob: fccb7b3b4a923c76653b8224758b0307d70386fd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# Test Nodes

This mod contains a bunch of basic nodes to test development stuff.
Most nodes are kept as minimal as possible in order to show off one particular feature of the engine, to make testing stuff easier.

This mod includes tests for:

* drawtypes
* paramtype2's
* node properties such as damage, drowning, falling, etc.
* other random stuff
f='#n43'>43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
apply plugin: 'com.android.application'
android {
	compileSdkVersion 29
	buildToolsVersion '30.0.2'
	ndkVersion '21.3.6528147'
	defaultConfig {
		applicationId 'net.minetest.minetest'
		minSdkVersion 16
		targetSdkVersion 29
		versionName "${versionMajor}.${versionMinor}.${versionPatch}"
		versionCode project.versionCode
	}

	// load properties
	Properties props = new Properties()
	def propfile = file('../local.properties')
	if (propfile.exists())
		props.load(new FileInputStream(propfile))

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

		buildTypes {
			release {
				minifyEnabled true
				signingConfig signingConfigs.release
			}
		}
	}

	// for multiple APKs
	splits {
		abi {
			enable true
			reset()
			include 'armeabi-v7a', 'arm64-v8a'
		}
	}

	compileOptions {
		sourceCompatibility JavaVersion.VERSION_1_8
		targetCompatibility JavaVersion.VERSION_1_8
	}
}

task prepareAssets() {
	def assetsFolder = "build/assets"
	def projRoot = "../../.."
	def gameToCopy = "minetest_game"

	copy {
		from "${projRoot}/minetest.conf.example", "${projRoot}/README.md" into assetsFolder
	}
	copy {
		from "${projRoot}/doc/lgpl-2.1.txt" into "${assetsFolder}"
	}
	copy {
		from "${projRoot}/builtin" into "${assetsFolder}/builtin"
	}
	copy {
		from "${projRoot}/client/shaders" into "${assetsFolder}/client/shaders"
	}
	copy {
		from "../native/deps/Android/Irrlicht/shaders" into "${assetsFolder}/client/shaders/Irrlicht"
	}
	copy {
		from "${projRoot}/fonts" include "*.ttf" into "${assetsFolder}/fonts"
	}
	copy {
		from "${projRoot}/games/${gameToCopy}" into "${assetsFolder}/games/${gameToCopy}"
	}
	/*copy {
		// ToDo: fix broken locales
		from "${projRoot}/po" into "${assetsFolder}/po"
	}*/
	copy {
		from "${projRoot}/textures" into "${assetsFolder}/textures"
	}

	file("${assetsFolder}/.nomedia").text = "";

	task zipAssets(type: Zip) {
		archiveName "Minetest.zip"
		from "${assetsFolder}"
		destinationDir file("src/main/assets")
	}
}

preBuild.dependsOn zipAssets

// Map for the version code that gives each ABI a value.
import com.android.build.OutputFile

def abiCodes = ['armeabi-v7a': 0, 'arm64-v8a': 1]
android.applicationVariants.all { variant ->
	variant.outputs.each {
		output ->
			def abiName = output.getFilter(OutputFile.ABI)
			output.versionCodeOverride = abiCodes.get(abiName, 0) + variant.versionCode
	}
}

dependencies {
	implementation project(':native')
	implementation 'androidx.appcompat:appcompat:1.2.0'
}