task prepareAssets() {
def assetsFolder = "build/assets"
- def projRoot = "../.."
+ def projRoot = rootDir.parent
def gameToCopy = "minetest_game"
- copy {
- from "${projRoot}/minetest.conf.example", "${projRoot}/README.md" into assetsFolder
+ doFirst {
+ logger.lifecycle('Preparing assets at {}', 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/armeabi-v7a/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}"
- }
- fileTree("${projRoot}/po").include("**/*.po").forEach { poFile ->
- def moPath = "${assetsFolder}/locale/${poFile.parentFile.name}/LC_MESSAGES/"
- file(moPath).mkdirs()
- exec {
- commandLine 'msgfmt', '-o', "${moPath}/minetest.mo", poFile
+ doLast {
+ 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/armeabi-v7a/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 {
+ from "${projRoot}/textures" into "${assetsFolder}/textures"
}
- }
- copy {
- from "${projRoot}/textures" into "${assetsFolder}/textures"
- }
- file("${assetsFolder}/.nomedia").text = ""
+ // compile translations
+ fileTree("${projRoot}/po").include("**/*.po").forEach { poFile ->
+ def moPath = "${assetsFolder}/locale/${poFile.parentFile.name}/LC_MESSAGES/"
+ file(moPath).mkdirs()
+ exec {
+ commandLine 'msgfmt', '-o', "${moPath}/minetest.mo", poFile
+ }
+ }
+
+ file("${assetsFolder}/.nomedia").text = ""
+ }
- task zipAssets(type: Zip) {
+ task zipAssets(dependsOn: prepareAssets, type: Zip) {
archiveFileName = "Minetest.zip"
- from "${assetsFolder}"
+ from assetsFolder
destinationDirectory = file("src/main/assets")
}
}
preBuild.dependsOn zipAssets
+prepareAssets.dependsOn ':native:getDeps'
// Map for the version code that gives each ABI a value.
import com.android.build.OutputFile
// get precompiled deps
task downloadDeps(type: Download) {
+ def depsDir = new File(buildDir.parent, 'deps')
+ def depsZip = new File(buildDir, 'deps.zip')
+
src 'https://github.com/minetest/minetest_android_deps/releases/download/latest/deps.zip'
- dest new File(buildDir, 'deps.zip')
+ dest depsZip
overwrite false
-}
-task getDeps(dependsOn: downloadDeps, type: Copy) {
- def deps = new File(buildDir.parent, 'deps')
- if (!deps.exists()) {
- deps.mkdir()
- from zipTree(downloadDeps.dest)
- into deps
+ task getDeps(dependsOn: downloadDeps, type: Copy) {
+ depsDir.mkdir()
+ from zipTree(depsZip)
+ into depsDir
+ doFirst { logger.lifecycle('Extracting to {}', depsDir) }
}
}
preBuild.dependsOn getDeps
+
+clean {
+ delete new File(buildDir.parent, 'deps')
+}