blob: ecb044b65b131a87f5784280e4386976f369747d [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 {
id("common-configuration")
id("test-federation-convention")
id("com.autonomousapps.dependency-analysis")
kotlin("jvm")
id("java-test-fixtures")
id("d8-configuration")
id("project-tests-convention")
id("test-inputs-check-v2")
}
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")
}