diff --git a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/KotlinNativeBinaries.kt b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/KotlinNativeBinaries.kt index 17872b3311b..e056692a14c 100644 --- a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/KotlinNativeBinaries.kt +++ b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/KotlinNativeBinaries.kt @@ -77,7 +77,7 @@ interface KotlinNativeBinary : ComponentWithDependencies, BuildableComponent, Co val linkerOpts: List companion object { - val KONAN_TARGET_ATTRIBUTE = Attribute.of("org.gradle.native.kotlin.platform", String::class.java) + val KONAN_TARGET_ATTRIBUTE = Attribute.of("org.jetbrains.kotlin.native.target", String::class.java) } } diff --git a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/AbstractKotlinNativeBinary.kt b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/AbstractKotlinNativeBinary.kt index 632729b3bee..9db6925b9b7 100644 --- a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/AbstractKotlinNativeBinary.kt +++ b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/AbstractKotlinNativeBinary.kt @@ -35,6 +35,7 @@ import org.gradle.language.nativeplatform.internal.ComponentWithNames import org.gradle.language.nativeplatform.internal.Names import org.gradle.nativeplatform.OperatingSystemFamily import org.gradle.nativeplatform.toolchain.NativeToolChain +import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType import org.jetbrains.kotlin.gradle.plugin.experimental.ComponentWithBaseName import org.jetbrains.kotlin.gradle.plugin.experimental.KotlinNativeBinary import org.jetbrains.kotlin.gradle.plugin.experimental.sourcesets.KotlinNativeSourceSet @@ -105,9 +106,10 @@ abstract class AbstractKotlinNativeBinary( // A configuration containing klibs. override val klibs = configurations.create(names.withPrefix("klibs")).apply { isCanBeConsumed = false - attributes.attribute(Usage.USAGE_ATTRIBUTE, objects.named(Usage::class.java, KotlinNativeUsage.KLIB)) + attributes.attribute(Usage.USAGE_ATTRIBUTE, objects.named(Usage::class.java, Usage.JAVA_API)) attributes.attribute(CppBinary.DEBUGGABLE_ATTRIBUTE, debuggable) attributes.attribute(CppBinary.OPTIMIZED_ATTRIBUTE, optimized) + attributes.attribute(KotlinPlatformType.attribute, KotlinPlatformType.native) attributes.attribute(KotlinNativeBinary.KONAN_TARGET_ATTRIBUTE, konanTarget.name) attributes.attribute(OperatingSystemFamily.OPERATING_SYSTEM_ATTRIBUTE, konanTarget.getGradleOSFamily(objects)) extendsFrom(getImplementationDependencies()) diff --git a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/OutputKind.kt b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/OutputKind.kt index 2efa7921d24..0669248654e 100644 --- a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/OutputKind.kt +++ b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/OutputKind.kt @@ -42,7 +42,9 @@ enum class OutputKind( KotlinNativeLibraryImpl::class.java, 1, null, - KotlinNativeUsage.KLIB + // Use JAVA_API here because the MPP plugin uses this usage for all artifacts in 1.3-RC. + // TODO: Change to KOTLIN_API with such change is merged into big Kotlin's 1.3. + Usage.JAVA_API ), FRAMEWORK( CompilerOutputKind.FRAMEWORK, diff --git a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/cinterop/CInteropSettingsImpl.kt b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/cinterop/CInteropSettingsImpl.kt index ad35215f7d9..72b70a607a1 100644 --- a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/cinterop/CInteropSettingsImpl.kt +++ b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/cinterop/CInteropSettingsImpl.kt @@ -27,6 +27,7 @@ import org.gradle.language.cpp.CppBinary import org.gradle.language.internal.DefaultComponentDependencies import org.gradle.nativeplatform.OperatingSystemFamily import org.gradle.util.ConfigureUtil +import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType import org.jetbrains.kotlin.gradle.plugin.experimental.CInteropSettings import org.jetbrains.kotlin.gradle.plugin.experimental.CInteropSettings.IncludeDirectories import org.jetbrains.kotlin.gradle.plugin.experimental.KotlinNativeBinary @@ -81,9 +82,10 @@ open class CInteropSettingsImpl @Inject constructor( val objects = project.objects isCanBeConsumed = false isCanBeResolved = true - attributes.attribute(Usage.USAGE_ATTRIBUTE, objects.named(Usage::class.java, KotlinNativeUsage.KLIB)) + attributes.attribute(Usage.USAGE_ATTRIBUTE, objects.named(Usage::class.java, Usage.JAVA_API)) attributes.attribute(CppBinary.DEBUGGABLE_ATTRIBUTE, KotlinNativeBuildType.DEBUG.debuggable) attributes.attribute(CppBinary.OPTIMIZED_ATTRIBUTE, KotlinNativeBuildType.DEBUG.optimized) + attributes.attribute(KotlinPlatformType.attribute, KotlinPlatformType.native) attributes.attribute(KotlinNativeBinary.KONAN_TARGET_ATTRIBUTE, konanTarget.name) attributes.attribute( OperatingSystemFamily.OPERATING_SYSTEM_ATTRIBUTE, diff --git a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/plugins/KotlinNativePlugin.kt b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/plugins/KotlinNativePlugin.kt index 04c6a88a596..0b363eb8c6d 100644 --- a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/plugins/KotlinNativePlugin.kt +++ b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/plugins/KotlinNativePlugin.kt @@ -32,6 +32,7 @@ import org.gradle.language.cpp.CppBinary.DEBUGGABLE_ATTRIBUTE import org.gradle.language.cpp.CppBinary.OPTIMIZED_ATTRIBUTE import org.gradle.language.cpp.internal.DefaultUsageContext import org.gradle.nativeplatform.test.plugins.NativeTestingBasePlugin +import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType import org.jetbrains.kotlin.gradle.plugin.experimental.KotlinNativeBinary.Companion.KONAN_TARGET_ATTRIBUTE import org.jetbrains.kotlin.gradle.plugin.experimental.internal.* import org.jetbrains.kotlin.gradle.plugin.experimental.internal.OutputKind.Companion.getDevelopmentKind @@ -69,6 +70,7 @@ class KotlinNativePlugin @Inject constructor(val attributesFactory: ImmutableAtt attribute(Usage.USAGE_ATTRIBUTE, usage) attribute(DEBUGGABLE_ATTRIBUTE, buildType.debuggable) attribute(OPTIMIZED_ATTRIBUTE, buildType.optimized) + attribute(KotlinPlatformType.attribute, KotlinPlatformType.native) attribute(KONAN_TARGET_ATTRIBUTE, target.name) } return DefaultUsageContext(variantName + usageContextSuffix, usage, attributes) @@ -101,7 +103,11 @@ class KotlinNativePlugin @Inject constructor(val attributesFactory: ImmutableAtt val hostManager = HostManager() for (kind in outputKinds) { - for (buildType in KotlinNativeBuildType.DEFAULT_BUILD_TYPES) { + val buildTypes = if (kind == OutputKind.KLIBRARY) + listOf(KotlinNativeBuildType.DEBUG) + else + KotlinNativeBuildType.DEFAULT_BUILD_TYPES + for (buildType in buildTypes) { for (target in targets.filter { kind.availableFor(it) }) { val buildTypeSuffix = buildType.name