diff --git a/build.gradle.kts b/build.gradle.kts index ea3b00d36..49592b0d7 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,3 +1,5 @@ +import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinMultiplatformPlugin + val kmathVersion by extra("0.1.2-dev-1") allprojects { @@ -16,20 +18,19 @@ subprojects { //apply artifactory configuration apply(plugin = "artifactory-config") - - plugins.withId("org.jetbrains.kotlin.multiplatform") { - apply(plugin = "multiplatform-config") - } - } - // dokka { -// outputFormat = "html" -// outputDirectory = javadoc.destinationDir -// } + + plugins.withType { + apply(plugin = "multiplatform-config") +// dokka { +// outputFormat = "html" +// outputDirectory = javadoc.destinationDir +// } // -// task dokkaJar (type: Jar, dependsOn: dokka) { -// from javadoc . destinationDir -// classifier = "javadoc" +// task dokkaJar (type: Jar, dependsOn: dokka) { +// from javadoc . destinationDir +// classifier = "javadoc" // } + } } \ No newline at end of file diff --git a/buildSrc/src/main/kotlin/js-test.gradle.kts b/buildSrc/src/main/kotlin/js-test.gradle.kts index ce408e2ec..1f49b2c3b 100644 --- a/buildSrc/src/main/kotlin/js-test.gradle.kts +++ b/buildSrc/src/main/kotlin/js-test.gradle.kts @@ -1,6 +1,7 @@ +import com.moowork.gradle.node.NodeExtension import com.moowork.gradle.node.npm.NpmTask import com.moowork.gradle.node.task.NodeTask -import org.gradle.kotlin.dsl.* +import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension import org.jetbrains.kotlin.gradle.tasks.Kotlin2JsCompile plugins { @@ -8,42 +9,45 @@ plugins { kotlin("multiplatform") } -node { +configure { nodeModulesDir = file("$buildDir/node_modules") } val compileKotlinJs by tasks.getting(Kotlin2JsCompile::class) val compileTestKotlinJs by tasks.getting(Kotlin2JsCompile::class) -val populateNodeModules by tasks.registering(Copy::class) { - dependsOn(compileKotlinJs) - from(compileKotlinJs.destinationDir) - - kotlin.js().compilations["test"].runtimeDependencyFiles.forEach { - if (it.exists() && !it.isDirectory) { - from(zipTree(it.absolutePath).matching { include("*.js") }) - } - } - - into("$buildDir/node_modules") -} - -val installMocha by tasks.registering { - setWorkingDir(buildDir) - setArgs(listOf("install", "mocha")) -} - - inline fun TaskContainer.registering( crossinline action: T.() -> Unit ): RegisteringDomainObjectDelegateProviderWithTypeAndAction = RegisteringDomainObjectDelegateProviderWithTypeAndAction.of(this, T::class, { action() }) -val runMocha by tasks.registering(NodeTask::class) { - dependsOn(compileTestKotlinJs, populateNodeModules, installMocha) - setScript(file("$buildDir/node_modules/mocha/bin/mocha")) - setArgs(listOf(compileTestKotlinJs.outputFile)) +configure { + + val populateNodeModules by tasks.registering(Copy::class) { + dependsOn(compileKotlinJs) + from(compileKotlinJs.destinationDir) + + js().compilations["test"].runtimeDependencyFiles.forEach { + if (it.exists() && !it.isDirectory) { + from(zipTree(it.absolutePath).matching { include("*.js") }) + } + } + + into("$buildDir/node_modules") + } + + val installMocha by tasks.registering { + setWorkingDir(buildDir) + setArgs(listOf("install", "mocha")) + } + + val runMocha by tasks.registering(NodeTask::class) { + dependsOn(compileTestKotlinJs, populateNodeModules, installMocha) + setScript(file("$buildDir/node_modules/mocha/bin/mocha")) + setArgs(listOf(compileTestKotlinJs.outputFile)) + } + + tasks["jsTest"].dependsOn(runMocha) } -tasks["jsTest"].dependsOn(runMocha)