diff --git a/libraries/tools/kotlin-gradle-plugin-idea/src/main/kotlin/org/jetbrains/kotlin/gradle/idea/tcs/extras/KlibExtra.kt b/libraries/tools/kotlin-gradle-plugin-idea/src/main/kotlin/org/jetbrains/kotlin/gradle/idea/tcs/extras/KlibExtra.kt new file mode 100644 index 00000000000..18a52f33bbc --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-idea/src/main/kotlin/org/jetbrains/kotlin/gradle/idea/tcs/extras/KlibExtra.kt @@ -0,0 +1,31 @@ +/* + * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.gradle.idea.tcs.extras + +import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinBinaryDependency +import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinExtra +import org.jetbrains.kotlin.tooling.core.extrasKeyOf +import org.jetbrains.kotlin.tooling.core.getValue +import org.jetbrains.kotlin.tooling.core.setValue +import java.io.Serializable + +var IdeaKotlinBinaryDependency.klibExtra by KlibExtra.key + +@IdeaKotlinExtra +data class KlibExtra( + val builtInsPlatform: String?, + val uniqueName: String?, + val shortName: String?, + val packageFqName: String?, + val nativeTargets: List?, + val commonizerTarget: String?, + val isInterop: Boolean? +) : Serializable { + companion object { + private const val serialVersionUID = 0L + val key = extrasKeyOf() + } +} diff --git a/libraries/tools/kotlin-gradle-plugin-idea/src/main/kotlin/org/jetbrains/kotlin/gradle/idea/tcs/extras/isIdeaProjectLevel.kt b/libraries/tools/kotlin-gradle-plugin-idea/src/main/kotlin/org/jetbrains/kotlin/gradle/idea/tcs/extras/isIdeaProjectLevel.kt new file mode 100644 index 00000000000..5e5d524e0ae --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-idea/src/main/kotlin/org/jetbrains/kotlin/gradle/idea/tcs/extras/isIdeaProjectLevel.kt @@ -0,0 +1,19 @@ +/* + * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.gradle.idea.tcs.extras + +import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinBinaryDependency +import org.jetbrains.kotlin.tooling.core.extrasKeyOf +import org.jetbrains.kotlin.tooling.core.getValue +import org.jetbrains.kotlin.tooling.core.setValue + +val isIdeaProjectLevelKey = extrasKeyOf("IdeaKotlinBinaryDependency.isIdeaProjectLevel") + +/** + * Marks any binary dependency as Global in the sense of "this library is considered + * the same, no matter in which Gradle project / IntelliJ module it will be used + */ +var IdeaKotlinBinaryDependency.isIdeaProjectLevel by isIdeaProjectLevelKey