Add test dependencies when creating multiplatform projects
This commit is contained in:
+20
-9
@@ -83,11 +83,23 @@ abstract class GradleKotlinFrameworkSupportProvider(val frameworkTypeId: String,
|
|||||||
.addRepositoriesDefinition("mavenCentral()")
|
.addRepositoriesDefinition("mavenCentral()")
|
||||||
|
|
||||||
.addBuildscriptPropertyDefinition("ext.kotlin_version = '$kotlinVersion'")
|
.addBuildscriptPropertyDefinition("ext.kotlin_version = '$kotlinVersion'")
|
||||||
.addDependencyNotation(getRuntimeLibrary(sdk))
|
|
||||||
.addBuildscriptDependencyNotation(KotlinWithGradleConfigurator.CLASSPATH)
|
for (dependency in getDependencies(sdk)) {
|
||||||
|
buildScriptData.addDependencyNotation(KotlinWithGradleConfigurator.getGroovyDependencySnippet(dependency))
|
||||||
|
}
|
||||||
|
for (dependency in getTestDependencies()) {
|
||||||
|
buildScriptData.addDependencyNotation(
|
||||||
|
if (":" in dependency)
|
||||||
|
"testCompile \"$dependency\""
|
||||||
|
else
|
||||||
|
KotlinWithGradleConfigurator.getGroovyDependencySnippet(dependency, "testCompile")
|
||||||
|
)
|
||||||
|
}
|
||||||
|
buildScriptData.addBuildscriptDependencyNotation(KotlinWithGradleConfigurator.CLASSPATH)
|
||||||
}
|
}
|
||||||
|
|
||||||
protected abstract fun getRuntimeLibrary(sdk: Sdk?): String
|
protected abstract fun getDependencies(sdk: Sdk?): List<String>
|
||||||
|
protected open fun getTestDependencies(): List<String> = listOf()
|
||||||
|
|
||||||
protected abstract fun getPluginId(): String
|
protected abstract fun getPluginId(): String
|
||||||
|
|
||||||
@@ -100,8 +112,7 @@ open class GradleKotlinJavaFrameworkSupportProvider(frameworkTypeId: String = "K
|
|||||||
|
|
||||||
override fun getPluginId() = KotlinGradleModuleConfigurator.KOTLIN
|
override fun getPluginId() = KotlinGradleModuleConfigurator.KOTLIN
|
||||||
|
|
||||||
override fun getRuntimeLibrary(sdk: Sdk?) =
|
override fun getDependencies(sdk: Sdk?) = listOf(getStdlibArtifactId(sdk, bundledRuntimeVersion()))
|
||||||
KotlinWithGradleConfigurator.getGroovyDependencySnippet(getStdlibArtifactId(sdk, bundledRuntimeVersion()))
|
|
||||||
|
|
||||||
override fun addSupport(module: Module, rootModel: ModifiableRootModel, modifiableModelsProvider: ModifiableModelsProvider, buildScriptData: BuildScriptDataBuilder) {
|
override fun addSupport(module: Module, rootModel: ModifiableRootModel, modifiableModelsProvider: ModifiableModelsProvider, buildScriptData: BuildScriptDataBuilder) {
|
||||||
super.addSupport(module, rootModel, modifiableModelsProvider, buildScriptData)
|
super.addSupport(module, rootModel, modifiableModelsProvider, buildScriptData)
|
||||||
@@ -121,8 +132,7 @@ open class GradleKotlinJSFrameworkSupportProvider(frameworkTypeId: String = "KOT
|
|||||||
|
|
||||||
override fun getPluginId() = KotlinJsGradleModuleConfigurator.KOTLIN_JS
|
override fun getPluginId() = KotlinJsGradleModuleConfigurator.KOTLIN_JS
|
||||||
|
|
||||||
override fun getRuntimeLibrary(sdk: Sdk?) =
|
override fun getDependencies(sdk: Sdk?) = listOf(MAVEN_JS_STDLIB_ID)
|
||||||
KotlinWithGradleConfigurator.getGroovyDependencySnippet(MAVEN_JS_STDLIB_ID)
|
|
||||||
|
|
||||||
override fun getDescription() = "A Kotlin library or application targeting JavaScript"
|
override fun getDescription() = "A Kotlin library or application targeting JavaScript"
|
||||||
}
|
}
|
||||||
@@ -131,8 +141,8 @@ open class GradleKotlinMPPCommonFrameworkSupportProvider :
|
|||||||
GradleKotlinFrameworkSupportProvider("KOTLIN_MPP_COMMON", "Kotlin (Multiplatform - Common)", KotlinIcons.SMALL_LOGO) {
|
GradleKotlinFrameworkSupportProvider("KOTLIN_MPP_COMMON", "Kotlin (Multiplatform - Common)", KotlinIcons.SMALL_LOGO) {
|
||||||
override fun getPluginId() = "kotlin-platform-common"
|
override fun getPluginId() = "kotlin-platform-common"
|
||||||
|
|
||||||
override fun getRuntimeLibrary(sdk: Sdk?) =
|
override fun getDependencies(sdk: Sdk?) = listOf(MAVEN_COMMON_STDLIB_ID)
|
||||||
KotlinWithGradleConfigurator.getGroovyDependencySnippet(MAVEN_COMMON_STDLIB_ID)
|
override fun getTestDependencies() = listOf(MAVEN_COMMON_TEST_ID)
|
||||||
|
|
||||||
override fun getDescription() = "Shared code for a Kotlin multiplatform project (targeting JVM and JS)"
|
override fun getDescription() = "Shared code for a Kotlin multiplatform project (targeting JVM and JS)"
|
||||||
}
|
}
|
||||||
@@ -142,6 +152,7 @@ class GradleKotlinMPPJavaFrameworkSupportProvider
|
|||||||
|
|
||||||
override fun getPluginId() = "kotlin-platform-jvm"
|
override fun getPluginId() = "kotlin-platform-jvm"
|
||||||
override fun getDescription() = "JVM-specific code for a Kotlin multiplatform project"
|
override fun getDescription() = "JVM-specific code for a Kotlin multiplatform project"
|
||||||
|
override fun getTestDependencies() = listOf(MAVEN_TEST_ID, MAVEN_TEST_JUNIT_ID, "junit:junit:4.12")
|
||||||
}
|
}
|
||||||
|
|
||||||
class GradleKotlinMPPJSFrameworkSupportProvider
|
class GradleKotlinMPPJSFrameworkSupportProvider
|
||||||
|
|||||||
+2
-1
@@ -248,7 +248,8 @@ abstract class KotlinWithGradleConfigurator : KotlinProjectConfigurator {
|
|||||||
|
|
||||||
private val KOTLIN_BUILD_SCRIPT_NAME = "build.gradle.kts"
|
private val KOTLIN_BUILD_SCRIPT_NAME = "build.gradle.kts"
|
||||||
|
|
||||||
fun getGroovyDependencySnippet(artifactName: String) = "compile \"org.jetbrains.kotlin:$artifactName:\$kotlin_version\""
|
fun getGroovyDependencySnippet(artifactName: String, scope: String = "compile") =
|
||||||
|
"$scope \"org.jetbrains.kotlin:$artifactName:\$kotlin_version\""
|
||||||
|
|
||||||
fun getGroovyApplyPluginDirective(pluginName: String) = "apply plugin: '$pluginName'"
|
fun getGroovyApplyPluginDirective(pluginName: String) = "apply plugin: '$pluginName'"
|
||||||
|
|
||||||
|
|||||||
@@ -364,4 +364,7 @@ val MAVEN_STDLIB_ID_JRE8 = "kotlin-stdlib-jre8"
|
|||||||
val MAVEN_JS_STDLIB_ID = "kotlin-stdlib-js"
|
val MAVEN_JS_STDLIB_ID = "kotlin-stdlib-js"
|
||||||
val MAVEN_OLD_JS_STDLIB_ID = "kotlin-js-library"
|
val MAVEN_OLD_JS_STDLIB_ID = "kotlin-js-library"
|
||||||
val MAVEN_COMMON_STDLIB_ID = "kotlin-stdlib-common" // TODO: KotlinCommonMavenConfigurator
|
val MAVEN_COMMON_STDLIB_ID = "kotlin-stdlib-common" // TODO: KotlinCommonMavenConfigurator
|
||||||
|
val MAVEN_TEST_ID = "kotlin-test"
|
||||||
|
val MAVEN_TEST_JUNIT_ID = "kotlin-test-junit"
|
||||||
|
val MAVEN_COMMON_TEST_ID = "kotlin-test-common"
|
||||||
val LOG = Logger.getInstance("org.jetbrains.kotlin.idea.versions.KotlinRuntimeLibraryUtilKt")
|
val LOG = Logger.getInstance("org.jetbrains.kotlin.idea.versions.KotlinRuntimeLibraryUtilKt")
|
||||||
Reference in New Issue
Block a user