aboutsummaryrefslogtreecommitdiff
path: root/kvision-modules/kvision-gradle-plugin/src/main/kotlin/pl/treksoft
diff options
context:
space:
mode:
authorRobert Jaros <rjaros@finn.pl>2019-10-17 14:30:10 +0200
committerRobert Jaros <rjaros@finn.pl>2019-10-17 14:31:12 +0200
commitcb01930ae5174070aad9d1d7297e91b897340230 (patch)
tree320e6f7dece8161eab6a983199d2e88857f60d20 /kvision-modules/kvision-gradle-plugin/src/main/kotlin/pl/treksoft
parent1830797fbe4a7fda6958b4a13d46acf121a5288d (diff)
downloadkvision-cb01930ae5174070aad9d1d7297e91b897340230.tar.gz
kvision-cb01930ae5174070aad9d1d7297e91b897340230.tar.bz2
kvision-cb01930ae5174070aad9d1d7297e91b897340230.zip
Kotlin compiler plugin and gradle plugin
Diffstat (limited to 'kvision-modules/kvision-gradle-plugin/src/main/kotlin/pl/treksoft')
-rw-r--r--kvision-modules/kvision-gradle-plugin/src/main/kotlin/pl/treksoft/kvision/gradle/KVisionGradlePlugin.kt30
-rw-r--r--kvision-modules/kvision-gradle-plugin/src/main/kotlin/pl/treksoft/kvision/gradle/KVisionGradleSubplugin.kt57
2 files changed, 87 insertions, 0 deletions
diff --git a/kvision-modules/kvision-gradle-plugin/src/main/kotlin/pl/treksoft/kvision/gradle/KVisionGradlePlugin.kt b/kvision-modules/kvision-gradle-plugin/src/main/kotlin/pl/treksoft/kvision/gradle/KVisionGradlePlugin.kt
new file mode 100644
index 00000000..ec2dd7f4
--- /dev/null
+++ b/kvision-modules/kvision-gradle-plugin/src/main/kotlin/pl/treksoft/kvision/gradle/KVisionGradlePlugin.kt
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2017-present Robert Jaros
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+package pl.treksoft.kvision.gradle
+
+import org.gradle.api.Project
+
+open class KVisionGradlePlugin : org.gradle.api.Plugin<Project> {
+ override fun apply(project: Project) {
+
+ }
+}
diff --git a/kvision-modules/kvision-gradle-plugin/src/main/kotlin/pl/treksoft/kvision/gradle/KVisionGradleSubplugin.kt b/kvision-modules/kvision-gradle-plugin/src/main/kotlin/pl/treksoft/kvision/gradle/KVisionGradleSubplugin.kt
new file mode 100644
index 00000000..5ecfc3e9
--- /dev/null
+++ b/kvision-modules/kvision-gradle-plugin/src/main/kotlin/pl/treksoft/kvision/gradle/KVisionGradleSubplugin.kt
@@ -0,0 +1,57 @@
+/*
+ * Copyright (c) 2017-present Robert Jaros
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+package pl.treksoft.kvision.gradle
+
+import com.google.auto.service.AutoService
+import org.gradle.api.Project
+import org.gradle.api.tasks.compile.AbstractCompile
+import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions
+import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
+import org.jetbrains.kotlin.gradle.plugin.KotlinGradleSubplugin
+import org.jetbrains.kotlin.gradle.plugin.SubpluginArtifact
+import org.jetbrains.kotlin.gradle.plugin.SubpluginOption
+
+@AutoService(KotlinGradleSubplugin::class)
+class KVisionGradleSubplugin : KotlinGradleSubplugin<AbstractCompile> {
+ override fun apply(
+ project: Project,
+ kotlinCompile: AbstractCompile,
+ javaCompile: AbstractCompile?,
+ variantData: Any?,
+ androidProjectHandler: Any?,
+ kotlinCompilation: KotlinCompilation<KotlinCommonOptions>?
+ ): List<SubpluginOption> {
+ return emptyList()
+ }
+
+ override fun isApplicable(project: Project, task: AbstractCompile) =
+ project.plugins.hasPlugin(KVisionGradlePlugin::class.java)
+
+ override fun getCompilerPluginId(): String = "KVisionPlugin"
+
+ override fun getPluginArtifact(): SubpluginArtifact = SubpluginArtifact(
+ groupId = "pl.treksoft",
+ artifactId = "kvision-compiler-plugin",
+ version = "2.0.0-SNAPSHOT"
+ )
+
+}