[Gradle, JS] Add fish for js only lib-app test

This commit is contained in:
Ilya Goncharov
2020-02-18 18:17:18 +03:00
parent 16eb23c6b1
commit ae89507736
24 changed files with 265 additions and 0 deletions
@@ -0,0 +1,29 @@
plugins {
id("org.jetbrains.kotlin.multiplatform").version("<pluginMarkerVersion>")
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")
}
}
}
}
@@ -0,0 +1,11 @@
rootProject.name = "sample-app"
enableFeaturePreview("GRADLE_METADATA")
pluginManagement {
repositories {
mavenLocal()
jcenter()
gradlePluginPortal()
}
}
@@ -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<String>) {
expectedFun()
}
@@ -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<String>) {
console.info(id(123), idUsage(), expectedFun())
}
@@ -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', '<js-compiler-type>')
sourceSets {
commonMain {
dependencies {
implementation 'com.example:sample-lib:1.0'
}
}
nodeJsMain {
dependencies {
implementation 'org.jetbrains.kotlin:kotlin-stdlib-js'
}
}
}
}
@@ -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<String>) {
expectedFun()
}
@@ -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<String>) {
console.info(id(123), idUsage(), expectedFun())
}
@@ -0,0 +1,44 @@
plugins {
id("org.jetbrains.kotlin.multiplatform").version("<pluginMarkerVersion>")
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<MavenPublication> {
pom.withXml(Action<XmlProvider> {
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") }
}
}
@@ -0,0 +1,11 @@
rootProject.name = "sample-lib"
enableFeaturePreview("GRADLE_METADATA")
pluginManagement {
repositories {
mavenLocal()
jcenter()
gradlePluginPortal()
}
}
@@ -0,0 +1,5 @@
package com.example.lib
fun <T> id(t: T): T = t
expect fun expectedFun(): Unit
@@ -0,0 +1,9 @@
package com.example.lib
fun idUsage() = id("123")
actual fun expectedFun() = Unit
fun main(args: Array<String>) {
expectedFun()
}
@@ -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', '<js-compiler-type>')
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" }
}
}
@@ -0,0 +1,9 @@
package com.example.lib
fun <T> id(t: T): T = t
expect fun expectedFun(): Unit
fun main() {
println(">>> Common.kt >>> main()")
}
@@ -0,0 +1,9 @@
package com.example.lib
fun idUsage() = id("123")
actual fun expectedFun() = Unit
fun main(args: Array<String>) {
expectedFun()
}