2022-08-09 16:04:41 +00:00
|
|
|
package com.lagradost.cloudstream3.gradle.tasks
|
|
|
|
|
|
|
|
import com.android.build.gradle.BaseExtension
|
|
|
|
import org.gradle.api.file.DirectoryProperty
|
|
|
|
import org.gradle.api.file.RegularFileProperty
|
|
|
|
import org.gradle.api.tasks.*
|
|
|
|
import org.gradle.internal.os.OperatingSystem
|
|
|
|
import java.io.File
|
|
|
|
|
|
|
|
abstract class CompileResourcesTask : Exec() {
|
|
|
|
@get:InputDirectory
|
|
|
|
@get:SkipWhenEmpty
|
|
|
|
@get:IgnoreEmptyDirectories
|
|
|
|
abstract val input: DirectoryProperty
|
|
|
|
|
|
|
|
@get:InputFile
|
|
|
|
abstract val manifestFile: RegularFileProperty
|
|
|
|
|
|
|
|
@get:OutputFile
|
|
|
|
abstract val outputFile: RegularFileProperty
|
|
|
|
|
|
|
|
override fun exec() {
|
|
|
|
val android = project.extensions.getByName("android") as BaseExtension
|
|
|
|
|
|
|
|
val aaptExecutable = android.sdkDirectory.resolve("build-tools")
|
|
|
|
.resolve(android.buildToolsVersion)
|
|
|
|
.resolve(if (OperatingSystem.current().isWindows) "aapt2.exe" else "aapt2")
|
|
|
|
|
|
|
|
val tmpRes = File.createTempFile("res", ".zip")
|
|
|
|
|
|
|
|
execActionFactory.newExecAction().apply {
|
|
|
|
executable = aaptExecutable.path
|
|
|
|
args("compile")
|
|
|
|
args("--dir", input.asFile.get().path)
|
|
|
|
args("-o", tmpRes.path)
|
|
|
|
execute()
|
|
|
|
}
|
|
|
|
|
|
|
|
execActionFactory.newExecAction().apply {
|
|
|
|
executable = aaptExecutable.path
|
|
|
|
args("link")
|
|
|
|
args(
|
|
|
|
"-I",
|
|
|
|
android.sdkDirectory
|
|
|
|
.resolve("platforms")
|
|
|
|
.resolve(android.compileSdkVersion!!)
|
|
|
|
.resolve("android.jar")
|
|
|
|
)
|
|
|
|
args("-R", tmpRes.path)
|
|
|
|
args("--manifest", manifestFile.asFile.get().path)
|
2022-08-17 19:12:06 +00:00
|
|
|
args("--auto-add-overlay")
|
2022-08-09 16:04:41 +00:00
|
|
|
args("-o", outputFile.asFile.get().path)
|
|
|
|
execute()
|
|
|
|
}
|
|
|
|
|
|
|
|
tmpRes.delete()
|
|
|
|
}
|
2022-08-17 19:12:06 +00:00
|
|
|
}
|