Integrate serialization plugin into big Kotlin plugin
Split import handlers into multiple files Add empty Maven handler for Android Studio Add testRuntime dependency on kx-serialization-plugin for all modules which require compiler plugins in test classpath
This commit is contained in:
@@ -16,10 +16,16 @@
|
||||
<kotlin.version>1.2-SNAPSHOT</kotlin.version>
|
||||
</properties>
|
||||
|
||||
<groupId>org.jetbrains.kotlinx</groupId>
|
||||
<parent>
|
||||
<groupId>org.jetbrains.kotlin</groupId>
|
||||
<artifactId>kotlin-project</artifactId>
|
||||
<version>1.3-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<artifactId>kotlinx-maven-serialization-plugin</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<version>0.7.0-eap-1</version>
|
||||
|
||||
<description>Serialization plugin for Maven</description>
|
||||
|
||||
<repositories>
|
||||
@@ -138,14 +144,4 @@
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
|
||||
<distributionManagement>
|
||||
<repository>
|
||||
<id>bintray-repo</id>
|
||||
<url>https://api.bintray.com/maven/kotlin/kotlinx/kotlinx.serialization.plugin/</url>
|
||||
</repository>
|
||||
</distributionManagement>
|
||||
|
||||
|
||||
</project>
|
||||
|
||||
@@ -3,9 +3,6 @@ apply plugin: 'kotlin'
|
||||
configureJvmProject(project)
|
||||
configurePublishing(project)
|
||||
|
||||
group = 'org.jetbrains.kotlinx'
|
||||
version = project(':kotlinx-gradle-serialization-plugin').version
|
||||
|
||||
compileJava {
|
||||
sourceCompatibility = 1.8
|
||||
targetCompatibility = 1.8
|
||||
@@ -23,15 +20,10 @@ dependencies {
|
||||
|
||||
compileOnly project(':kotlin-stdlib')
|
||||
compileOnly project(path: ':kotlin-compiler-embeddable', configuration: 'runtimeJar')
|
||||
compileOnly project(':kotlin-allopen-compiler-plugin')
|
||||
|
||||
compileOnly 'org.jetbrains.kotlin:gradle-api:1.6'
|
||||
}
|
||||
|
||||
processResources {
|
||||
expand(project.properties)
|
||||
}
|
||||
|
||||
evaluationDependsOn(":kotlinx-serialization-compiler-plugin")
|
||||
|
||||
jar {
|
||||
@@ -40,6 +32,8 @@ jar {
|
||||
manifestAttributes(manifest, project)
|
||||
}
|
||||
|
||||
ArtifactsKt.runtimeJar(project, jar, {})
|
||||
|
||||
artifacts {
|
||||
archives sourcesJar
|
||||
archives javadocJar
|
||||
|
||||
@@ -1,18 +1,8 @@
|
||||
plugins {
|
||||
id "com.jfrog.bintray" version "1.7.3"
|
||||
}
|
||||
|
||||
apply plugin: 'kotlin'
|
||||
|
||||
configureJvmProject(project)
|
||||
configurePublishing(project)
|
||||
|
||||
group = 'org.jetbrains.kotlinx'
|
||||
version = '0.7.0'
|
||||
if (!project.hasProperty("deploy")) {
|
||||
version = "$version-eap-1"
|
||||
}
|
||||
|
||||
compileJava {
|
||||
sourceCompatibility = 1.8
|
||||
targetCompatibility = 1.8
|
||||
@@ -37,10 +27,6 @@ dependencies {
|
||||
|
||||
evaluationDependsOn(":kotlinx-serialization-compiler-plugin")
|
||||
|
||||
processResources {
|
||||
expand(project.properties)
|
||||
}
|
||||
|
||||
jar {
|
||||
from(project(":kotlinx-serialization-compiler-plugin").sourceSets.main.output.classesDirs)
|
||||
from(project(":kotlinx-serialization-compiler-plugin").sourceSets.main.output.resourcesDir)
|
||||
@@ -53,26 +39,3 @@ artifacts {
|
||||
archives sourcesJar
|
||||
archives javadocJar
|
||||
}
|
||||
|
||||
bintray {
|
||||
user = project.hasProperty('bintrayUser') ? project.property('bintrayUser') : System.getenv('BINTRAY_USER')
|
||||
key = project.hasProperty('bintrayApiKey') ? project.property('bintrayApiKey') : System.getenv('BINTRAY_API_KEY')
|
||||
configurations = ['archives']
|
||||
if (!project.hasProperty("deploy")) {
|
||||
dryRun = true
|
||||
}
|
||||
pkg {
|
||||
repo = 'kotlinx'
|
||||
name = 'kotlinx.serialization.plugin'
|
||||
userOrg = 'kotlin'
|
||||
licenses = ['Apache-2.0']
|
||||
vcsUrl = 'https://github.com/JetBrains/kotlin/tree/rr/kotlinx.serialization/libraries'
|
||||
websiteUrl = 'https://github.com/Kotlin/kotlinx.serialization'
|
||||
issueTrackerUrl = 'https://github.com/Kotlin/kotlinx.serialization/issues'
|
||||
|
||||
githubRepo = 'JetBrains/kotlin'
|
||||
version {
|
||||
name = project.version
|
||||
}
|
||||
}
|
||||
}
|
||||
+3
-31
@@ -18,17 +18,12 @@ package org.jetbrains.kotlinx.serialization.gradle
|
||||
|
||||
import org.gradle.api.Plugin
|
||||
import org.gradle.api.Project
|
||||
import org.gradle.api.logging.Logger
|
||||
import org.gradle.api.logging.Logging
|
||||
import org.gradle.api.tasks.SourceSet
|
||||
import org.gradle.api.tasks.compile.AbstractCompile
|
||||
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
|
||||
import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile
|
||||
import java.io.FileNotFoundException
|
||||
import java.util.*
|
||||
|
||||
class SerializationGradleSubplugin : Plugin<Project> {
|
||||
companion object {
|
||||
@@ -42,13 +37,11 @@ class SerializationGradleSubplugin : Plugin<Project> {
|
||||
|
||||
class SerializationKotlinGradleSubplugin : KotlinGradleSubplugin<AbstractCompile> {
|
||||
companion object {
|
||||
const val SERIALIZATION_GROUP_NAME = "org.jetbrains.kotlinx"
|
||||
const val SERIALIZATION_GROUP_NAME = "org.jetbrains.kotlin"
|
||||
const val SERIALIZATION_ARTIFACT_NAME = "kotlinx-gradle-serialization-plugin"
|
||||
const val SERIALIZATION_ARTIFACT_UNSHADED_NAME = "kotlinx-gradle-serialization-plugin-unshaded"
|
||||
}
|
||||
|
||||
private val log = Logging.getLogger(this.javaClass)
|
||||
private val pluginVersion = "0.7.0-eap-1"
|
||||
private var useUnshaded = false
|
||||
|
||||
override fun isApplicable(project: Project, task: AbstractCompile): Boolean {
|
||||
@@ -65,36 +58,15 @@ class SerializationKotlinGradleSubplugin : KotlinGradleSubplugin<AbstractCompile
|
||||
variantData: Any?,
|
||||
androidProjectHandler: Any?,
|
||||
kotlinCompilation: KotlinCompilation?
|
||||
)
|
||||
: List<SubpluginOption> {
|
||||
): List<SubpluginOption> {
|
||||
return emptyList()
|
||||
}
|
||||
|
||||
|
||||
override fun getPluginArtifact(): SubpluginArtifact {
|
||||
val artifact = if (useUnshaded) SERIALIZATION_ARTIFACT_UNSHADED_NAME else SERIALIZATION_ARTIFACT_NAME
|
||||
return SubpluginArtifact(SERIALIZATION_GROUP_NAME, artifact, pluginVersion)
|
||||
return SubpluginArtifact(SERIALIZATION_GROUP_NAME, artifact)
|
||||
}
|
||||
|
||||
override fun getCompilerPluginId() = "org.jetbrains.kotlinx.serialization"
|
||||
}
|
||||
|
||||
// taken from KotlinPluginWrapper.kt
|
||||
internal fun Logger.kotlinDebug(message: String) {
|
||||
this.debug("[KOTLIN] $message")
|
||||
}
|
||||
|
||||
private fun Any.findPluginVersion(log: Logger): String {
|
||||
log.kotlinDebug("Loading version information about kotlinx.serialization")
|
||||
val props = Properties()
|
||||
val propFileName = "plugin.properties"
|
||||
val loader = javaClass.classLoader!!
|
||||
val inputStream = loader.getResourceAsStream(propFileName)
|
||||
?: throw FileNotFoundException("property file '$propFileName' not found in the classpath")
|
||||
|
||||
props.load(inputStream)
|
||||
|
||||
val pluginVersion = props["plugin.version"] as String
|
||||
log.kotlinDebug("Found plugin version [$pluginVersion]")
|
||||
return pluginVersion
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
plugin.version=${project.version}
|
||||
Reference in New Issue
Block a user