| 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("com.autonomousapps.dependency-analysis") | |
| kotlin("jvm") | |
| id("java-test-fixtures") | |
| id("d8-configuration") | |
| id("test-inputs-check") | |
| } | |
| val jsoIrRuntimeForTests = configurations.create("jsoIrRuntimeForTests") { | |
| 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() | |
| projectTests { | |
| testTask { | |
| 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") | |
| } |