<lambda>null1import org.apache.tools.ant.taskdefs.condition.Os 2 import org.gradle.api.file.ConfigurableFileCollection 3 import org.gradle.api.file.DirectoryProperty 4 import org.gradle.api.tasks.AbstractExecTask 5 import org.gradle.api.tasks.Input 6 import org.gradle.api.tasks.InputFiles 7 import org.gradle.api.tasks.OutputDirectory 8 import javax.inject.Inject 9 10 abstract class GenerateJavaAidlDependencies 11 @Inject constructor() : AbstractExecTask<GenerateJavaAidlDependencies>(GenerateJavaAidlDependencies::class.java) { 12 13 @get:OutputDirectory 14 abstract val outputFolder: DirectoryProperty 15 16 @get:Input 17 abstract var androidBuildTop: String 18 19 @get:InputFiles 20 abstract val aidlSrcDirs: ConfigurableFileCollection 21 22 @get:InputFiles 23 abstract val aidlIncludeDirs: ConfigurableFileCollection 24 25 override fun exec() { 26 val platform = if (Os.isFamily(Os.FAMILY_MAC)) "darwin" else "linux" 27 commandLine("$androidBuildTop/prebuilts/build-tools/${platform}-x86/bin/aidl") 28 args("--lang=java", "--stability=vintf", "-v", "1", "--hash=1", "--structured") 29 30 aidlIncludeDirs.files.forEach { includeDir -> 31 args("-I", includeDir) 32 } 33 args("--out", outputFolder.get()) 34 35 // Recursively list all the aidl files in the src directories 36 aidlSrcDirs.files.forEach { srcDir -> 37 args(project.fileTree(srcDir) { 38 include("**/*.aidl") 39 }.files) 40 } 41 42 CommandLineUtils.debugPrintCommandLineArgs(this) 43 super.exec() 44 } 45 } 46