blob: d9eba79bd439a830dac464dad5b63bb80bca7075 [file] [log] [blame]
import org.gradle.api.tasks.InputFile
import org.gradle.api.tasks.InputFiles
import org.gradle.api.tasks.JavaExec
import org.gradle.api.tasks.OutputDirectory
import org.gradle.api.tasks.bundling.Zip
import org.gradle.kotlin.dsl.get
import org.gradle.kotlin.dsl.named
import java.io.File
/*
* Task used by our ui/android tests to test minification results
* and keep track of size of the binary.
* TODO move back to kotlinx-coroutines-android when it's migrated to the kts
*/
open class RunR8 : JavaExec() {
@OutputDirectory
lateinit var outputDex: File
@InputFile
lateinit var inputConfig: File
@InputFile
val inputConfigCommon: File = File("testdata/r8-test-common.pro")
@InputFiles
val jarFile: File = project.tasks.named<Zip>("jar").get().archivePath
init {
classpath = project.configurations["r8"]
main = "com.android.tools.r8.R8"
}
override fun exec() {
// Resolve classpath only during execution
val arguments = mutableListOf(
"--release",
"--no-desugaring",
"--output", outputDex.absolutePath,
"--pg-conf", inputConfig.absolutePath
)
arguments.addAll(project.configurations["runtimeClasspath"].files.map { it.absolutePath })
arguments.add(jarFile.absolutePath)
args = arguments
project.delete(outputDex)
outputDex.mkdirs()
super.exec()
}
}