diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-app-gradle-kotlin-dsl/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-app-gradle-kotlin-dsl/build.gradle.kts new file mode 100644 index 00000000000..e0c2dc0884b --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-app-gradle-kotlin-dsl/build.gradle.kts @@ -0,0 +1,29 @@ +plugins { + id("org.jetbrains.kotlin.multiplatform").version("") + id("maven-publish") +} + +group = "com.example" +version = "1.0" + +repositories { + mavenLocal() + jcenter() + maven { setUrl("https://dl.bintray.com/kotlin/kotlinx.html/") } +} + +kotlin { + val nodeJs = js("nodeJs") + sourceSets { + val commonMain by getting { + dependencies { + implementation("com.example:sample-lib:1.0") + } + } + nodeJs.compilations["main"].defaultSourceSet { + dependencies { + implementation("org.jetbrains.kotlin:kotlin-stdlib-js") + } + } + } +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-app-gradle-kotlin-dsl/gradle.properties b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-app-gradle-kotlin-dsl/gradle.properties new file mode 100644 index 00000000000..e69de29bb2d diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-app-gradle-kotlin-dsl/settings.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-app-gradle-kotlin-dsl/settings.gradle.kts new file mode 100644 index 00000000000..d11803c590e --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-app-gradle-kotlin-dsl/settings.gradle.kts @@ -0,0 +1,11 @@ +rootProject.name = "sample-app" + +enableFeaturePreview("GRADLE_METADATA") + +pluginManagement { + repositories { + mavenLocal() + jcenter() + gradlePluginPortal() + } +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-app-gradle-kotlin-dsl/src/commonMain/kotlin/A.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-app-gradle-kotlin-dsl/src/commonMain/kotlin/A.kt new file mode 100644 index 00000000000..94505710b06 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-app-gradle-kotlin-dsl/src/commonMain/kotlin/A.kt @@ -0,0 +1,10 @@ +package com.example.app + +import com.example.lib.expectedFun +import com.example.lib.id + +fun idUsage(x: Int): Int = id(x) + +fun main(args: Array) { + expectedFun() +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-app-gradle-kotlin-dsl/src/nodeJsMain/kotlin/KotlinJsUsage.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-app-gradle-kotlin-dsl/src/nodeJsMain/kotlin/KotlinJsUsage.kt new file mode 100644 index 00000000000..a2849540a93 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-app-gradle-kotlin-dsl/src/nodeJsMain/kotlin/KotlinJsUsage.kt @@ -0,0 +1,10 @@ +import com.example.lib.expectedFun +import com.example.lib.id +import com.example.lib.idUsage +import kotlin.js.Console + +external val console: Console + +fun nodeJsMain(args: Array) { + console.info(id(123), idUsage(), expectedFun()) +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-app/build.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-app/build.gradle new file mode 100644 index 00000000000..318ec299ec6 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-app/build.gradle @@ -0,0 +1,35 @@ +buildscript { + repositories { + mavenLocal() + jcenter() + } + dependencies { + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + } +} + +apply plugin: 'kotlin-multiplatform' + +repositories { + mavenLocal() + jcenter() + // NB: Build of this module depends on 'sample-lib' publication. You need to add the local + // repository where 'sample-lib' artifacts are published. +} + +kotlin { + js('nodeJs', '') + + sourceSets { + commonMain { + dependencies { + implementation 'com.example:sample-lib:1.0' + } + } + nodeJsMain { + dependencies { + implementation 'org.jetbrains.kotlin:kotlin-stdlib-js' + } + } + } +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-app/gradle.properties b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-app/gradle.properties new file mode 100644 index 00000000000..e69de29bb2d diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-app/settings.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-app/settings.gradle new file mode 100644 index 00000000000..9dddddd9eb7 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-app/settings.gradle @@ -0,0 +1 @@ +enableFeaturePreview('GRADLE_METADATA') \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-app/src/commonMain/kotlin/A.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-app/src/commonMain/kotlin/A.kt new file mode 100644 index 00000000000..94505710b06 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-app/src/commonMain/kotlin/A.kt @@ -0,0 +1,10 @@ +package com.example.app + +import com.example.lib.expectedFun +import com.example.lib.id + +fun idUsage(x: Int): Int = id(x) + +fun main(args: Array) { + expectedFun() +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-app/src/nodeJsMain/kotlin/KotlinJsUsage.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-app/src/nodeJsMain/kotlin/KotlinJsUsage.kt new file mode 100644 index 00000000000..a2849540a93 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-app/src/nodeJsMain/kotlin/KotlinJsUsage.kt @@ -0,0 +1,10 @@ +import com.example.lib.expectedFun +import com.example.lib.id +import com.example.lib.idUsage +import kotlin.js.Console + +external val console: Console + +fun nodeJsMain(args: Array) { + console.info(id(123), idUsage(), expectedFun()) +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-lib-gradle-kotlin-dsl/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-lib-gradle-kotlin-dsl/build.gradle.kts new file mode 100644 index 00000000000..1094250e50a --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-lib-gradle-kotlin-dsl/build.gradle.kts @@ -0,0 +1,44 @@ +plugins { + id("org.jetbrains.kotlin.multiplatform").version("") + id("maven-publish") +} + +group = "com.example" +version = "1.0" + +repositories { + mavenLocal() + jcenter() + maven { setUrl("https://dl.bintray.com/kotlin/kotlinx.html/") } +} + +kotlin { + val js = js("nodeJs") + + targets.all { + mavenPublication(Action { + pom.withXml(Action { + asNode().appendNode("name", "Sample MPP library") + }) + }) + } + + sourceSets { + val commonMain by getting { + dependencies { + api(kotlin("stdlib-common")) + } + } + js.compilations["main"].defaultSourceSet { + dependencies { + api(kotlin("stdlib-js")) + } + } + } +} + +publishing { + repositories { + maven { setUrl("file://${projectDir.absolutePath.replace('\\', '/')}/repo") } + } +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-lib-gradle-kotlin-dsl/gradle.properties b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-lib-gradle-kotlin-dsl/gradle.properties new file mode 100644 index 00000000000..e69de29bb2d diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-lib-gradle-kotlin-dsl/settings.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-lib-gradle-kotlin-dsl/settings.gradle.kts new file mode 100644 index 00000000000..2ac661e9d62 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-lib-gradle-kotlin-dsl/settings.gradle.kts @@ -0,0 +1,11 @@ +rootProject.name = "sample-lib" + +enableFeaturePreview("GRADLE_METADATA") + +pluginManagement { + repositories { + mavenLocal() + jcenter() + gradlePluginPortal() + } +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-lib-gradle-kotlin-dsl/src/commonMain/kotlin/Common.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-lib-gradle-kotlin-dsl/src/commonMain/kotlin/Common.kt new file mode 100644 index 00000000000..140f108c9a9 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-lib-gradle-kotlin-dsl/src/commonMain/kotlin/Common.kt @@ -0,0 +1,5 @@ +package com.example.lib + +fun id(t: T): T = t + +expect fun expectedFun(): Unit \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-lib-gradle-kotlin-dsl/src/commonMain/resources/commonMainResource.txt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-lib-gradle-kotlin-dsl/src/commonMain/resources/commonMainResource.txt new file mode 100644 index 00000000000..d2c4f080510 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-lib-gradle-kotlin-dsl/src/commonMain/resources/commonMainResource.txt @@ -0,0 +1 @@ +resource \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-lib-gradle-kotlin-dsl/src/nodeJsMain/kotlin/Main.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-lib-gradle-kotlin-dsl/src/nodeJsMain/kotlin/Main.kt new file mode 100644 index 00000000000..2ba51995481 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-lib-gradle-kotlin-dsl/src/nodeJsMain/kotlin/Main.kt @@ -0,0 +1,9 @@ +package com.example.lib + +fun idUsage() = id("123") + +actual fun expectedFun() = Unit + +fun main(args: Array) { + expectedFun() +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-lib-gradle-kotlin-dsl/src/nodeJsMain/resources/nodeJsMainResource.txt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-lib-gradle-kotlin-dsl/src/nodeJsMain/resources/nodeJsMainResource.txt new file mode 100644 index 00000000000..d2c4f080510 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-lib-gradle-kotlin-dsl/src/nodeJsMain/resources/nodeJsMainResource.txt @@ -0,0 +1 @@ +resource \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-lib/build.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-lib/build.gradle new file mode 100644 index 00000000000..252d8a6f6c7 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-lib/build.gradle @@ -0,0 +1,57 @@ +group 'com.example' +version '1.0' + +buildscript { + repositories { + mavenLocal() + jcenter() + } + dependencies { + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + } +} + +apply plugin: 'kotlin-multiplatform' + +repositories { + mavenLocal() + jcenter() + maven { url "https://dl.bintray.com/kotlin/kotlinx.html/" } +} + +kotlin { + js('nodeJs', '') + + targets { + all { + mavenPublication { + pom.withXml { + asNode().appendNode('name', 'Sample MPP library') + } + } + } + } + + sourceSets { + commonMain { + dependencies { + api 'org.jetbrains.kotlin:kotlin-stdlib-common' + } + } + nodeJsMain { + dependencies { + api 'org.jetbrains.kotlin:kotlin-stdlib-js' + } + } + } +} + +kotlin.sourceSets.each { println it.kotlin.srcDirs } + +apply plugin: 'maven-publish' + +publishing { + repositories { + maven { url "file://${projectDir.absolutePath.replace('\\', '/')}/repo" } + } +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-lib/gradle.properties b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-lib/gradle.properties new file mode 100644 index 00000000000..e69de29bb2d diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-lib/settings.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-lib/settings.gradle new file mode 100644 index 00000000000..9dddddd9eb7 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-lib/settings.gradle @@ -0,0 +1 @@ +enableFeaturePreview('GRADLE_METADATA') \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-lib/src/commonMain/kotlin/Common.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-lib/src/commonMain/kotlin/Common.kt new file mode 100644 index 00000000000..a5a482b1e47 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-lib/src/commonMain/kotlin/Common.kt @@ -0,0 +1,9 @@ +package com.example.lib + +fun id(t: T): T = t + +expect fun expectedFun(): Unit + +fun main() { + println(">>> Common.kt >>> main()") +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-lib/src/commonMain/resources/commonMainResource.txt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-lib/src/commonMain/resources/commonMainResource.txt new file mode 100644 index 00000000000..d2c4f080510 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-lib/src/commonMain/resources/commonMainResource.txt @@ -0,0 +1 @@ +resource \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-lib/src/nodeJsMain/kotlin/Main.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-lib/src/nodeJsMain/kotlin/Main.kt new file mode 100644 index 00000000000..2ba51995481 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-lib/src/nodeJsMain/kotlin/Main.kt @@ -0,0 +1,9 @@ +package com.example.lib + +fun idUsage() = id("123") + +actual fun expectedFun() = Unit + +fun main(args: Array) { + expectedFun() +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-lib/src/nodeJsMain/resources/nodeJsMainResource.txt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-lib/src/nodeJsMain/resources/nodeJsMainResource.txt new file mode 100644 index 00000000000..d2c4f080510 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/both-js-lib-and-app/sample-lib/src/nodeJsMain/resources/nodeJsMainResource.txt @@ -0,0 +1 @@ +resource \ No newline at end of file