package org.thejk import org.gradle.api.DefaultTask import org.gradle.api.tasks.TaskAction import org.gradle.api.tasks.compile.JavaCompile class FlycheckAndroidKotlinTask extends DefaultTask { FlycheckAndroidKotlinTask() { } @TaskAction def action() { def variants = [] def android = project.extensions.findByName('android') if (android && (android.class.simpleName == 'AppExtension_Decorated' || android.class.simpleName == 'DynamicFeatureExtension_Decorated' || android.class.simpleName == 'BaseAppModuleExtension_Decorated')) { variants = android.applicationVariants.collect { it.name } } else if (android && android.class.simpleName == 'LibraryExtension_Decorated') { variants = android.libraryVariants.collect { it.name } } else { def buildTypesExt = project.extensions.findByName('buildTypes') def flavorsExt = project.extensions.findByName('flavors') def buildTypes = buildTypesExt ? buildTypesExt.names : [] if (buildTypes.isEmpty()) buildTypes = ['debug', 'release'] def flavors = flavorsExt ? flavorsExt.names : [] if (flavors.isEmpty()) { variants = buildTypes } else { flavors.each { flavor -> buildTypes.each { buildType -> variants.add(flavor + buildType.capitalize()) } } } } variants = variants.sort() def configurations = ['', 'UnitTest'] variants.each { variant -> configurations.each { configuration -> def name = 'compile' name += variant.capitalize() name += configuration.capitalize() + 'Kotlin' def compile = project.tasks.findByName(name) if (compile) { try { def cp = compile.classpath.asPath println '***' println 'variant=' + variant println 'args=' + compile.defaultSerializedCompilerArguments println 'cp=' + cp println 'files=' + compile.inputs.files.asPath println 'output=' + compile.destinationDirectory.get() } catch (Throwable t) { } } } def name = 'generate' name += variant.capitalize() + 'Sources' def generate = project.tasks.findByName(name) if (generate != null) { println '!!!' println generate.path } } } }