• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 import org.apache.tools.ant.taskdefs.condition.Os
2 import org.gradle.api.file.DirectoryProperty
3 import org.gradle.api.file.RegularFile
4 import org.gradle.api.tasks.AbstractExecTask
5 import org.gradle.api.tasks.Input
6 import org.gradle.api.tasks.InputFile
7 import org.gradle.api.tasks.OutputDirectory
8 import java.io.File
9 import javax.inject.Inject
10 
11 /**
12  * Runs java-event-log-tags.py to generate a java class containing constants for each of the event
13  * log tags in the given input file.
14  */
15 abstract class CreateEventLogTask
16 @Inject constructor() : AbstractExecTask<CreateEventLogTask>(CreateEventLogTask::class.java) {
17 
18     @get:OutputDirectory
19     abstract val outputFolder: DirectoryProperty
20 
21     @get:Input
22     abstract var androidBuildTop: String
23 
24     @get:Input
25     abstract var outputFileName: String
26 
27     @get:InputFile
28     abstract var logtagsFile: RegularFile
29 
execnull30     override fun exec() {
31         workingDir = File("$androidBuildTop/build/make/tools")
32 
33         val outputFile = File(outputFolder.get().asFile, "$outputFileName")
34 
35         val platform = if (Os.isFamily(Os.FAMILY_MAC)) "darwin" else "linux"
36         commandLine(
37                 "$androidBuildTop/prebuilts/build-tools/path/$platform-x86/python3",
38                 "java-event-log-tags.py",
39                 "-o", outputFile, logtagsFile
40         )
41         println("commandLine = $commandLine")
42         super.exec()
43         println("Tags file created at $outputFile")
44     }
45 }
46