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