]> git.lizzy.rs Git - minetest.git/commitdiff
Fix task ordering and more in Gradle Android build
authorsfan5 <sfan5@live.de>
Thu, 23 Feb 2023 10:32:42 +0000 (11:32 +0100)
committerSmallJoker <SmallJoker@users.noreply.github.com>
Thu, 2 Mar 2023 18:57:18 +0000 (19:57 +0100)
android/app/build.gradle
android/build.gradle
android/native/build.gradle

index 0c7884e7207bac9a1e91b006e544d5b77114c648..b268dd3cb1b3f44f2a3d84f21c643482736015e1 100644 (file)
@@ -53,51 +53,59 @@ android {
 
 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
index cbe01c56fa8c7f2abb9a655a855b480f9e9794b2..ca27dcb535f4e6839ffc1106d512950432ee74a8 100644 (file)
@@ -33,5 +33,4 @@ allprojects {
 
 task clean(type: Delete) {
        delete rootProject.buildDir
-       delete 'native/deps'
 }
index 6caec137971d8378af209533f3204868ea291676..4520051646fee5377c1892c02a6b37ebab61ffcb 100644 (file)
@@ -52,18 +52,23 @@ android {
 
 // 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')
+}