Add Maven Publish to MPP library wizards (in progress) #KT-27201 Fixed

This commit is contained in:
Mikhail Glukhikh
2018-09-27 17:21:55 +03:00
parent e7100838d0
commit ca4547c40a
3 changed files with 32 additions and 0 deletions
@@ -46,6 +46,19 @@ abstract class KotlinGradleAbstractMultiplatformModuleBuilder(
return moduleDir
}
private fun enableGradleMetadataPreview(rootDir: VirtualFile) {
val settingsGradle = rootDir.findOrCreateChildData(null, "settings.gradle")
val previousText = settingsGradle.inputStream.bufferedReader().use { it.readText() }
settingsGradle.bufferedWriter().use {
it.write(previousText)
if (previousText.isNotEmpty()) {
it.newLine()
}
it.write("enableFeaturePreview('GRADLE_METADATA')")
it.newLine()
}
}
override fun setupModule(module: Module) {
try {
module.gradleModuleBuilder = this
@@ -58,6 +71,9 @@ abstract class KotlinGradleAbstractMultiplatformModuleBuilder(
}
val builder = BuildScriptDataBuilder(buildGradle)
builder.setupAdditionalDependencies()
if (shouldEnableGradleMetadataPreview) {
enableGradleMetadataPreview(rootDir)
}
val buildGradleText = if (!mppInApplication) {
GradleKotlinMPPFrameworkSupportProvider().addSupport(builder, module, sdk = null, specifyPluginVersionIfNeeded = true)
builder.buildConfigurationPart() + builder.buildMainPart() + buildMultiPlatformPart()
@@ -119,6 +135,8 @@ abstract class KotlinGradleAbstractMultiplatformModuleBuilder(
protected open val notImportedCommonSourceSets = false
protected open val shouldEnableGradleMetadataPreview = false
protected val defaultNativeTarget by lazy {
try {
HostManager.host
@@ -22,6 +22,8 @@ class KotlinGradleMobileSharedMultiplatformModuleBuilder : KotlinGradleAbstractM
private val nativeSourceName get() = "$nativeTargetName$productionSuffix"
private val nativeTestName get() = "$nativeTargetName$testSuffix"
override val shouldEnableGradleMetadataPreview: Boolean = true
override fun getBuilderId() = "kotlin.gradle.multiplatform.mobileshared"
override fun getPresentableName() = "Kotlin (Mobile Shared Library)"
@@ -138,6 +140,11 @@ class KotlinGradleMobileSharedMultiplatformModuleBuilder : KotlinGradleAbstractM
override fun buildMultiPlatformPart(): String {
return """
group 'com.example'
version '0.0.1'
apply plugin: 'maven-publish'
kotlin {
targets {
fromPreset(presets.jvm, '$jvmTargetName')
@@ -26,6 +26,8 @@ class KotlinGradleSharedMultiplatformModuleBuilder : KotlinGradleAbstractMultipl
private val nativeSourceName get() = "$nativeTargetName$productionSuffix"
private val nativeTestName get() = "$nativeTargetName$testSuffix"
override val shouldEnableGradleMetadataPreview: Boolean = true
override fun getBuilderId() = "kotlin.gradle.multiplatform.shared"
override fun getPresentableName() = "Kotlin (Multiplatform Library)"
@@ -174,6 +176,11 @@ class KotlinGradleSharedMultiplatformModuleBuilder : KotlinGradleAbstractMultipl
override fun buildMultiPlatformPart(): String {
return """
group 'com.example'
version '0.0.1'
apply plugin: 'maven-publish'
kotlin {
targets {
fromPreset(presets.jvm, '$jvmTargetName')