diff --git a/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/buildFileGeneration/android/expected/android/build.gradle b/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/buildFileGeneration/android/expected/android/build.gradle index e1d9c72e876..6356185f740 100644 --- a/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/buildFileGeneration/android/expected/android/build.gradle +++ b/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/buildFileGeneration/android/expected/android/build.gradle @@ -15,9 +15,8 @@ repositories { dependencies { implementation 'androidx.appcompat:appcompat:1.1.0' implementation 'androidx.core:core-ktx:1.1.0' - implementation kotlin('stdlib-jdk7') implementation 'androidx.constraintlayout:constraintlayout:1.1.3' - implementation kotlin('stdlib-jdk8') + implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk7' } android { compileSdkVersion 29 diff --git a/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/buildFileGeneration/kotlinJvm/build.gradle b/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/buildFileGeneration/kotlinJvm/build.gradle index dd2c24156e0..8b356266462 100644 --- a/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/buildFileGeneration/kotlinJvm/build.gradle +++ b/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/buildFileGeneration/kotlinJvm/build.gradle @@ -8,5 +8,5 @@ repositories { mavenCentral() } dependencies { - implementation kotlin('stdlib-jdk8') + implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8' } \ No newline at end of file diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/ir/buildsystem/DependencyIR.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/ir/buildsystem/DependencyIR.kt index 9ab8653d901..cc1a5ec98fb 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/ir/buildsystem/DependencyIR.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/ir/buildsystem/DependencyIR.kt @@ -113,6 +113,8 @@ abstract class KotlinLibraryDependencyIR( override val version: Version, override val dependencyType: DependencyType ) : LibraryDependencyIR { + abstract val isInMppModule: Boolean + override val artifact: LibraryArtifact get() = MavenArtifact( MAVEN_CENTRAL, @@ -123,9 +125,13 @@ abstract class KotlinLibraryDependencyIR( override fun BuildFilePrinter.render() { when (this) { is GradlePrinter -> call(dependencyType.gradleName) { - +"kotlin(" - +artifactName.quotified - +")" + if (GradlePrinter.GradleDsl.KOTLIN == dsl || isInMppModule) { + +"kotlin(" + +artifactName.quotified + +")" + } else { + +"org.jetbrains.kotlin:kotlin-$artifactName".quotified + } } is MavenPrinter -> node("dependency") { singleLineNode("groupId") { +"org.jetbrains.kotlin" } @@ -144,6 +150,7 @@ abstract class KotlinLibraryDependencyIR( data class KotlinStdlibDependencyIR( val type: StdlibType, + override val isInMppModule: Boolean, override val version: Version, override val dependencyType: DependencyType ) : KotlinLibraryDependencyIR(type.artifact, version, dependencyType) { @@ -152,6 +159,7 @@ data class KotlinStdlibDependencyIR( data class KotlinArbitraryDependencyIR( val name: String, + override val isInMppModule: Boolean, override val version: Version, override val dependencyType: DependencyType ) : KotlinLibraryDependencyIR(name, version, dependencyType) { diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/kotlin/ModulesToIRsConverter.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/kotlin/ModulesToIRsConverter.kt index 90d4212ebed..ac81f7bdc52 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/kotlin/ModulesToIRsConverter.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/kotlin/ModulesToIRsConverter.kt @@ -105,7 +105,12 @@ class ModulesToIRsConverter( +configurator.createModuleIRs(data, module) addIfNotNull( configurator.createStdlibType(data, module)?.let { stdlibType -> - KotlinStdlibDependencyIR(stdlibType, kotlinVersion, DependencyType.MAIN) + KotlinStdlibDependencyIR( + type = stdlibType, + isInMppModule = false, + version = kotlinVersion, + dependencyType = DependencyType.MAIN + ) } ) } @@ -179,7 +184,12 @@ class ModulesToIRsConverter( if (sourceset.sourcesetType == SourcesetType.main) { addIfNotNull( target.configurator.createStdlibType(data, target)?.let { stdlibType -> - KotlinStdlibDependencyIR(stdlibType, data.kotlinVersion, DependencyType.MAIN) + KotlinStdlibDependencyIR( + type = stdlibType, + isInMppModule = true, + version = data.kotlinVersion, + dependencyType = DependencyType.MAIN + ) } ) } diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/templates/KotlinTestTemplate.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/templates/KotlinTestTemplate.kt index b85e3e47a9a..8d3e59a0903 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/templates/KotlinTestTemplate.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/templates/KotlinTestTemplate.kt @@ -10,6 +10,7 @@ import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.* import org.jetbrains.kotlin.tools.projectWizard.phases.GenerationPhase import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.KotlinPlugin import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ModuleType +import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.ModuleKind import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.SourcesetType class KotlinTestTemplate : Template() { @@ -29,6 +30,8 @@ class KotlinTestTemplate : Template() { framework.reference.settingValue.dependencyNames.map { dependencyName -> KotlinArbitraryDependencyIR( dependencyName, + isInMppModule = sourceset.original.parent?.kind + ?.let { it == ModuleKind.multiplatform || it == ModuleKind.target } != false, version = KotlinPlugin::version.settingValue, dependencyType = DependencyType.MAIN )