aboutsummaryrefslogtreecommitdiff
path: root/gradle-plugin/src/main/kotlin/moe/nea/mcautotranslations/gradle/MCAutoTranslationsGradlePlugin.kt
blob: 0e8004aee05e11424300b59128355debb27aa41b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package moe.nea.mcautotranslations.gradle

import moe.nea.mcautotranslation.`gradle-plugin`.BuildConfig
import org.gradle.api.Project
import org.gradle.api.provider.Provider
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilerPluginSupportPlugin
import org.jetbrains.kotlin.gradle.plugin.SubpluginArtifact
import org.jetbrains.kotlin.gradle.plugin.SubpluginOption

class MCAutoTranslationsGradlePlugin : KotlinCompilerPluginSupportPlugin {
	override fun apply(target: Project) {
		println("Applying plugin to project")
		target.extensions.create("mcAutoTranslations", MCAutoTranslationsExtension::class.java)
	}

	override fun applyToCompilation(kotlinCompilation: KotlinCompilation<*>): Provider<List<SubpluginOption>> {
		val project = kotlinCompilation.target.project
		val extension = project.extensions.getByType(MCAutoTranslationsExtension::class.java)
		kotlinCompilation.dependencies {
			compileOnly(BuildConfig.ANNOTATIONS_GROUP + ":" + BuildConfig.ANNOTATIONS_ARTIFACT + ":" + BuildConfig.ANNOTATIONS_VERSION)
		}
		return project.provider {
			listOf() // TODO: add plugin options from extension in here
		}
	}

	override fun getCompilerPluginId(): String {
		return BuildConfig.KOTLIN_PLUGIN_ID
	}

	override fun getPluginArtifact(): SubpluginArtifact = SubpluginArtifact(
		groupId = BuildConfig.KOTLIN_PLUGIN_GROUP,
		artifactId = BuildConfig.KOTLIN_PLUGIN_ARTIFACT,
		version = BuildConfig.KOTLIN_PLUGIN_VERSION,
	)

	override fun isApplicable(kotlinCompilation: KotlinCompilation<*>): Boolean {
		return true
	}
}