blob: 6110956e01a24d6ccbe281aa376a7722a68ceaf8 [file]
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinUsages
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsCompilerAttribute
description = "JavaScript Plain Objects Compiler Plugin"
plugins {
kotlin("jvm")
id("java-test-fixtures")
id("d8-configuration")
id("project-tests-convention")
id("test-inputs-check")
}
val jsoIrRuntimeForTests by configurations.creating {
attributes {
attribute(KotlinPlatformType.attribute, KotlinPlatformType.js)
attribute(KotlinJsCompilerAttribute.jsCompilerAttribute, KotlinJsCompilerAttribute.ir)
attribute(Usage.USAGE_ATTRIBUTE, objects.named(KotlinUsages.KOTLIN_RUNTIME))
}
}
dependencies {
embedded(project(":plugins:js-plain-objects:compiler-plugin:js-plain-objects.common")) { isTransitive = false }
embedded(project(":plugins:js-plain-objects:compiler-plugin:js-plain-objects.k2")) { isTransitive = false }
embedded(project(":plugins:js-plain-objects:compiler-plugin:js-plain-objects.backend")) { isTransitive = false }
embedded(project(":plugins:js-plain-objects:compiler-plugin:js-plain-objects.cli")) { isTransitive = false }
testFixturesApi(testFixtures(project(":compiler:tests-common-new")))
testFixturesApi(testFixtures(project(":js:js.tests")))
testFixturesImplementation(project(":plugins:js-plain-objects:compiler-plugin:js-plain-objects.cli"))
testFixturesImplementation(testFixtures(project(":generators:test-generator")))
testFixturesApi(libs.junit.jupiter.api)
testImplementation(platform(libs.junit.bom))
testRuntimeOnly(libs.junit.jupiter.engine)
jsoIrRuntimeForTests(project(":plugins:js-plain-objects:runtime")) { isTransitive = false }
embedded(project(":plugins:js-plain-objects:runtime")) {
attributes {
attribute(KotlinPlatformType.attribute, KotlinPlatformType.js)
attribute(KotlinJsCompilerAttribute.jsCompilerAttribute, KotlinJsCompilerAttribute.ir)
attribute(Usage.USAGE_ATTRIBUTE, objects.named(KotlinUsages.KOTLIN_RUNTIME))
}
isTransitive = false
}
}
optInToExperimentalCompilerApi()
sourceSets {
"main" { none() }
"test" { projectDefault() }
"testFixtures" { projectDefault() }
}
publish {
artifactId = "kotlinx-js-plain-objects-compiler-plugin"
}
runtimeJar()
sourcesJar()
javadocJar()
testsJar()
projectTests {
testTask(jUnitMode = JUnitMode.JUnit5) {
useJsIrBoxTests(buildDir = layout.buildDirectory)
addClasspathProperty(jsoIrRuntimeForTests, "jso.runtime.path")
}
testGenerator("org.jetbrains.kotlinx.jspo.TestGeneratorKt", generateTestsInBuildDirectory = true)
withJsRuntime()
testData(project(":js:js.translator").isolated, "testData/_commonFiles")
testData(project(":plugins:js-plain-objects:compiler-plugin").isolated, "testData")
}