summaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/groovy/FlycheckAndroidExperimentalInitPlugin.groovy3
-rw-r--r--src/main/groovy/FlycheckAndroidExperimentalPlugin.groovy2
-rw-r--r--src/main/groovy/FlycheckAndroidKotlinTask.groovy65
3 files changed, 70 insertions, 0 deletions
diff --git a/src/main/groovy/FlycheckAndroidExperimentalInitPlugin.groovy b/src/main/groovy/FlycheckAndroidExperimentalInitPlugin.groovy
index 7fd37cc..67340e9 100644
--- a/src/main/groovy/FlycheckAndroidExperimentalInitPlugin.groovy
+++ b/src/main/groovy/FlycheckAndroidExperimentalInitPlugin.groovy
@@ -12,6 +12,9 @@ class FlycheckAndroidExperimentalInitPlugin implements Plugin<Gradle> {
|| plugin.class.name == 'com.android.build.gradle.LibraryPlugin') {
project.task('flycheckAndroidJava',
type: FlycheckAndroidJavaTask)
+ } else if (plugin.class.name == 'org.jetbrains.kotlin.gradle.plugin.KotlinAndroidPluginWrapper') {
+ project.task('flycheckAndroidKotlin',
+ type: FlycheckAndroidKotlinTask)
}
}
}
diff --git a/src/main/groovy/FlycheckAndroidExperimentalPlugin.groovy b/src/main/groovy/FlycheckAndroidExperimentalPlugin.groovy
index 6493812..0252e37 100644
--- a/src/main/groovy/FlycheckAndroidExperimentalPlugin.groovy
+++ b/src/main/groovy/FlycheckAndroidExperimentalPlugin.groovy
@@ -7,5 +7,7 @@ class FlycheckAndroidExperimentalPlugin implements Plugin<Project> {
void apply(Project project) {
project.task('flycheckAndroidJava',
type: FlycheckAndroidJavaTask)
+ project.task('flycheckAndroidKotlin',
+ type: FlycheckAndroidKotlinTask)
}
}
diff --git a/src/main/groovy/FlycheckAndroidKotlinTask.groovy b/src/main/groovy/FlycheckAndroidKotlinTask.groovy
new file mode 100644
index 0000000..df5856d
--- /dev/null
+++ b/src/main/groovy/FlycheckAndroidKotlinTask.groovy
@@ -0,0 +1,65 @@
+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 == 'BaseAppModuleExtension_Decorated')) {
+ variants = android.applicationVariants.collect { it.name }
+ } else if (android && android.class.simpleName == 'LibraryExtension_Decorated') {
+ variants = android.libraryVariants.collect { it.name }
+ } else {
+ def buildTypes = project.extensions.buildTypes.names
+ if (buildTypes.isEmpty()) buildTypes = ['debug', 'release']
+ def flavors = project.extensions.flavors.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
+ }
+ }
+ }
+}