[FIR plugin] Compile annotations in plugin sandbox to jvm and js
This is needed for further testing of plugins with JS backend
This commit is contained in:
committed by
Space Team
parent
a0f7656d2b
commit
fd670d33cb
@@ -62,6 +62,7 @@ build/
|
|||||||
.idea/artifacts/kotlin_test_wasm_*
|
.idea/artifacts/kotlin_test_wasm_*
|
||||||
.idea/artifacts/kotlinx_atomicfu_runtime_*
|
.idea/artifacts/kotlinx_atomicfu_runtime_*
|
||||||
.idea/artifacts/kotlinx_cli_jvm_*
|
.idea/artifacts/kotlinx_cli_jvm_*
|
||||||
|
.idea/artifacts/plugin_annotations_*.xml
|
||||||
.idea/jarRepositories.xml
|
.idea/jarRepositories.xml
|
||||||
.idea/csv-plugin.xml
|
.idea/csv-plugin.xml
|
||||||
.idea/libraries-with-intellij-classes.xml
|
.idea/libraries-with-intellij-classes.xml
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import org.gradle.api.Project
|
|||||||
import org.gradle.api.Task
|
import org.gradle.api.Task
|
||||||
import org.gradle.api.artifacts.Configuration
|
import org.gradle.api.artifacts.Configuration
|
||||||
import org.gradle.api.artifacts.ProjectDependency
|
import org.gradle.api.artifacts.ProjectDependency
|
||||||
|
import org.gradle.api.attributes.Usage
|
||||||
import org.gradle.api.file.FileCollection
|
import org.gradle.api.file.FileCollection
|
||||||
import org.gradle.api.file.FileSystemOperations
|
import org.gradle.api.file.FileSystemOperations
|
||||||
import org.gradle.api.internal.tasks.testing.filter.DefaultTestFilter
|
import org.gradle.api.internal.tasks.testing.filter.DefaultTestFilter
|
||||||
@@ -19,6 +20,8 @@ import org.gradle.api.tasks.TaskProvider
|
|||||||
import org.gradle.api.tasks.testing.Test
|
import org.gradle.api.tasks.testing.Test
|
||||||
import org.gradle.kotlin.dsl.*
|
import org.gradle.kotlin.dsl.*
|
||||||
import org.gradle.kotlin.dsl.support.serviceOf
|
import org.gradle.kotlin.dsl.support.serviceOf
|
||||||
|
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
|
||||||
|
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinUsages
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.lang.Character.isLowerCase
|
import java.lang.Character.isLowerCase
|
||||||
import java.lang.Character.isUpperCase
|
import java.lang.Character.isUpperCase
|
||||||
@@ -374,17 +377,26 @@ fun Task.acceptAndroidSdkLicenses() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun Project.confugureFirPluginAnnotationsDependency(testTask: TaskProvider<Test>) {
|
fun Project.confugureFirPluginAnnotationsDependency(testTask: TaskProvider<Test>) {
|
||||||
val firPluginAnnotations: Configuration by configurations.creating
|
val firPluginJvmAnnotations: Configuration by configurations.creating
|
||||||
|
val firPluginJsAnnotations: Configuration by configurations.creating {
|
||||||
|
attributes {
|
||||||
|
attribute(Usage.USAGE_ATTRIBUTE, objects.named(org.jetbrains.kotlin.gradle.plugin.mpp.KotlinUsages.KOTLIN_RUNTIME))
|
||||||
|
attribute(org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType.attribute, org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType.js)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
firPluginAnnotations(project(":plugins:fir-plugin-prototype:plugin-annotations")) { isTransitive = false }
|
firPluginJvmAnnotations(project(":plugins:fir-plugin-prototype:plugin-annotations")) { isTransitive = false }
|
||||||
|
firPluginJsAnnotations(project(":plugins:fir-plugin-prototype:plugin-annotations")) { isTransitive = false }
|
||||||
}
|
}
|
||||||
|
|
||||||
testTask.configure {
|
testTask.configure {
|
||||||
dependsOn(firPluginAnnotations)
|
dependsOn(firPluginJvmAnnotations, firPluginJsAnnotations)
|
||||||
val localFirPluginAnnotations: FileCollection = firPluginAnnotations
|
val localFirPluginJvmAnnotations: FileCollection = firPluginJvmAnnotations
|
||||||
|
val localFirPluginJsAnnotations: FileCollection = firPluginJsAnnotations
|
||||||
doFirst {
|
doFirst {
|
||||||
systemProperty("firPluginAnnotations.path", localFirPluginAnnotations.singleFile.canonicalPath)
|
systemProperty("firPluginAnnotations.jvm.path", localFirPluginJvmAnnotations.singleFile.canonicalPath)
|
||||||
|
systemProperty("firPluginAnnotations.js.path", localFirPluginJsAnnotations.singleFile.canonicalPath)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ projectTest(parallel = true, jUnitMode = JUnitMode.JUnit4, maxHeapSizeMb = 3072)
|
|||||||
workingDir = rootDir
|
workingDir = rootDir
|
||||||
useJUnitPlatform()
|
useJUnitPlatform()
|
||||||
dependsOn(":plugins:fir-plugin-prototype:jar")
|
dependsOn(":plugins:fir-plugin-prototype:jar")
|
||||||
dependsOn(":plugins:fir-plugin-prototype:plugin-annotations:jar")
|
dependsOn(":plugins:fir-plugin-prototype:plugin-annotations:distAnnotations")
|
||||||
}
|
}
|
||||||
|
|
||||||
testsJar()
|
testsJar()
|
||||||
|
|||||||
@@ -1,10 +1,31 @@
|
|||||||
plugins {
|
plugins {
|
||||||
kotlin("jvm")
|
kotlin("multiplatform")
|
||||||
id("jps-compatible")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
kotlin {
|
||||||
api(kotlinStdlib())
|
jvm()
|
||||||
|
js {
|
||||||
|
binaries.executable()
|
||||||
|
}
|
||||||
|
|
||||||
|
sourceSets {
|
||||||
|
val commonMain by getting {
|
||||||
|
dependencies {
|
||||||
|
implementation(kotlin("stdlib-common"))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
val jvmMain by getting {
|
||||||
|
dependencies {1
|
||||||
|
implementation(kotlin("stdlib-jdk8"))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
val jsMain by getting {
|
||||||
|
dependencies {
|
||||||
|
implementation(kotlin("stdlib-js"))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sourceSets {
|
sourceSets {
|
||||||
@@ -12,4 +33,6 @@ sourceSets {
|
|||||||
"test" { none() }
|
"test" { none() }
|
||||||
}
|
}
|
||||||
|
|
||||||
runtimeJar()
|
tasks.register("distAnnotations") {
|
||||||
|
dependsOn("jvmJar", "jsJar")
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user