All Downloads are FREE. Search and download functionalities are using the official Maven repository.

godot.gradle.tasks.android.packageBootstrapDexJarTask.kt Maven / Gradle / Ivy

There is a newer version: 0.11.0-4.3
Show newest version
package godot.gradle.tasks.android

import godot.gradle.projectExt.godotJvmExtension
import org.gradle.api.Project
import org.gradle.api.Task
import org.gradle.api.tasks.Exec
import org.gradle.api.tasks.TaskProvider
import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform
import java.io.File

fun Project.packageBootstrapDexJarTask(
    checkAndroidJarAccessibleTask: TaskProvider,
    checkD8ToolAccessibleTask: TaskProvider,
    packageBootstrapJarTask: TaskProvider
): TaskProvider {
    return tasks.register("packageBootstrapDexJar", Exec::class.java) {
        with(it) {
            group = "godot-kotlin-jvm"
            description =
                "Converts the godot-bootstrap.jar to an android compatible version. Needed for android builds only"

            dependsOn(checkD8ToolAccessibleTask, checkAndroidJarAccessibleTask, packageBootstrapJarTask)

            doFirst {
                val libsDir = project.buildDir.resolve("libs")
                val godotBootstrapJar = File(libsDir, "godot-bootstrap.jar")

                workingDir = libsDir
                if (DefaultNativePlatform.getCurrentOperatingSystem().isWindows) {
                    commandLine(
                        "cmd",
                        "/c",
                        godotJvmExtension.d8ToolPath.get().asFile.absolutePath,
                        godotBootstrapJar.absolutePath,
                        "--output",
                        "godot-bootstrap-dex.jar",
                        "--lib",
                        "${godotJvmExtension.androidCompileSdkDir.get().asFile.absolutePath}${File.separator}android.jar",
                        "--min-api",
                        godotJvmExtension.androidMinApi.get(),
                    )
                } else {
                    commandLine(
                        godotJvmExtension.d8ToolPath.get().asFile.absolutePath,
                        godotBootstrapJar.absolutePath,
                        "--output",
                        "godot-bootstrap-dex.jar",
                        "--lib",
                        "${godotJvmExtension.androidCompileSdkDir.get().asFile.absolutePath}/android.jar",
                        "--min-api",
                        godotJvmExtension.androidMinApi.get(),
                    )
                }
            }
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy