diff --git a/backend.native/build.gradle b/backend.native/build.gradle index eab2e091f5f..1bcf9858a98 100644 --- a/backend.native/build.gradle +++ b/backend.native/build.gradle @@ -9,7 +9,7 @@ buildscript { apply plugin: 'project-report' dependencies { - classpath "com.google.protobuf:protobuf-gradle-plugin:0.8.0" + classpath "com.google.protobuf:protobuf-gradle-plugin:0.8.8" } } diff --git a/buildSrc/plugins/src/main/groovy/org/jetbrains/kotlin/NativeInteropPlugin.groovy b/buildSrc/plugins/src/main/groovy/org/jetbrains/kotlin/NativeInteropPlugin.groovy index 13b287b3748..0c9c4a98a64 100644 --- a/buildSrc/plugins/src/main/groovy/org/jetbrains/kotlin/NativeInteropPlugin.groovy +++ b/buildSrc/plugins/src/main/groovy/org/jetbrains/kotlin/NativeInteropPlugin.groovy @@ -127,7 +127,7 @@ class NamedNativeInteropConfig implements Named { dependsOn(task) final Project prj; - final String taskName; + String taskName; int index = task.lastIndexOf(':') if (index != -1) { prj = project.project(task.substring(0, index)) diff --git a/extracted/konan.metadata/build.gradle b/extracted/konan.metadata/build.gradle index dee5f19a071..4a19c6d652d 100644 --- a/extracted/konan.metadata/build.gradle +++ b/extracted/konan.metadata/build.gradle @@ -7,7 +7,7 @@ buildscript { apply from: "$rootBuildDirectory/gradle/kotlinGradlePlugin.gradle" dependencies { - classpath "com.google.protobuf:protobuf-gradle-plugin:0.8.0" + classpath "com.google.protobuf:protobuf-gradle-plugin:0.8.8" } } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index d76b502e226..10cb99e61a7 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-5.1-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/samples/androidNativeActivity/gradle/wrapper/gradle-wrapper.properties b/samples/androidNativeActivity/gradle/wrapper/gradle-wrapper.properties index ee671127ffa..6b3851a8ad2 100644 --- a/samples/androidNativeActivity/gradle/wrapper/gradle-wrapper.properties +++ b/samples/androidNativeActivity/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.0-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-5.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/samples/calculator/gradle/wrapper/gradle-wrapper.properties b/samples/calculator/gradle/wrapper/gradle-wrapper.properties index e6a30918ef8..6b3851a8ad2 100644 --- a/samples/calculator/gradle/wrapper/gradle-wrapper.properties +++ b/samples/calculator/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.7-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-5.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/samples/gradle/wrapper/gradle-wrapper.properties b/samples/gradle/wrapper/gradle-wrapper.properties index e6a30918ef8..6b3851a8ad2 100644 --- a/samples/gradle/wrapper/gradle-wrapper.properties +++ b/samples/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.7-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-5.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/tools/kotlin-native-gradle-plugin/build.gradle b/tools/kotlin-native-gradle-plugin/build.gradle index 71085e4b240..00877fdf338 100644 --- a/tools/kotlin-native-gradle-plugin/build.gradle +++ b/tools/kotlin-native-gradle-plugin/build.gradle @@ -37,7 +37,7 @@ buildscript { dependencies { classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.4' - classpath 'com.github.jengelman.gradle.plugins:shadow:4.0.0' + classpath 'com.github.jengelman.gradle.plugins:shadow:4.0.4' classpath "com.gradle.publish:plugin-publish-plugin:0.9.10" } } @@ -119,7 +119,7 @@ dependencies { shadowJar { from sourceSets.main.output configurations = [project.configurations.bundleDependencies] - classifier = null + archiveClassifier.set(null) relocate('org.jetbrains.kotlinx', 'shadow.org.jetbrains.kotlinx') relocate('org.jetbrains.kotlin.compilerRunner', 'shadow.org.jetbrains.kotlin.compilerRunner') relocate('org.jetbrains.kotlin.konan', 'shadow.org.jetbrains.kotlin.konan') 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 0169312b662..9764d78c0ca 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 @@ -21,7 +21,6 @@ import org.gradle.api.artifacts.ConfigurationContainer import org.gradle.api.attributes.Usage import org.gradle.api.file.ConfigurableFileCollection import org.gradle.api.file.FileCollection -import org.gradle.api.file.ProjectLayout import org.gradle.api.internal.file.FileOperations import org.gradle.api.model.ObjectFactory import org.gradle.api.provider.Property @@ -30,6 +29,7 @@ import org.gradle.language.ComponentDependencies import org.gradle.language.ComponentWithDependencies import org.gradle.language.ComponentWithOutputs import org.gradle.language.cpp.CppBinary +import org.gradle.language.cpp.internal.NativeVariantIdentity import org.gradle.language.internal.DefaultComponentDependencies import org.gradle.language.nativeplatform.internal.ComponentWithNames import org.gradle.language.nativeplatform.internal.Names @@ -60,8 +60,7 @@ abstract class AbstractKotlinNativeBinary( private val name: String, private val baseName: Provider, override val component: AbstractKotlinNativeComponent, - val identity: KotlinNativeVariantIdentity, - val projectLayout: ProjectLayout, + val variant: KotlinNativeVariant, override val kind: CompilerOutputKind, objects: ObjectFactory, componentDependencies: KotlinNativeDependenciesImpl, @@ -80,14 +79,16 @@ abstract class AbstractKotlinNativeBinary( override fun getName(): String = name override val konanTarget: KonanTarget - get() = identity.konanTarget + get() = variant.konanTarget - override fun getTargetPlatform(): KotlinNativePlatform = identity.targetPlatform + val identity: NativeVariantIdentity = variant.identity + + override fun getTargetPlatform(): KotlinNativePlatform = variant.targetPlatform val sourceSet: KotlinNativeSourceSet get() = component.sources - val buildType: KotlinNativeBuildType get() = identity.buildType + val buildType: KotlinNativeBuildType get() = variant.buildType open val debuggable: Boolean get() = identity.isDebuggable open val optimized: Boolean get() = identity.isOptimized diff --git a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/AbstractKotlinNativeComponent.kt b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/AbstractKotlinNativeComponent.kt index 07e32a08655..9a56c9d0521 100644 --- a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/AbstractKotlinNativeComponent.kt +++ b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/AbstractKotlinNativeComponent.kt @@ -22,9 +22,9 @@ import org.gradle.api.Named import org.gradle.api.Project import org.gradle.api.artifacts.Configuration import org.gradle.api.internal.file.FileOperations -import org.gradle.api.internal.provider.LockableSetProperty import org.gradle.api.model.ObjectFactory import org.gradle.api.provider.Property +import org.gradle.api.provider.SetProperty import org.gradle.api.publish.maven.MavenPom import org.gradle.language.internal.DefaultBinaryCollection import org.gradle.language.nativeplatform.internal.ComponentWithNames @@ -62,8 +62,8 @@ abstract class AbstractKotlinNativeComponent @Inject constructor( private val baseName: Property = objectFactory.property(String::class.java).apply { set(name) } fun getBaseName(): Property = baseName - override val konanTargets: LockableSetProperty = - LockableSetProperty(objectFactory.setProperty(KonanTarget::class.java)).apply { + override val konanTargets: SetProperty = + objectFactory.setProperty(KonanTarget::class.java).apply { set(mutableSetOf(HostManager.host)) } diff --git a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/KotlinNativeDynamicImpl.kt b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/KotlinNativeDynamicImpl.kt index 702b0dbbaa5..31641c5af96 100644 --- a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/KotlinNativeDynamicImpl.kt +++ b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/KotlinNativeDynamicImpl.kt @@ -16,9 +16,7 @@ package org.jetbrains.kotlin.gradle.plugin.experimental.internal -import org.gradle.api.artifacts.Configuration import org.gradle.api.artifacts.ConfigurationContainer -import org.gradle.api.file.ProjectLayout import org.gradle.api.internal.file.FileOperations import org.gradle.api.model.ObjectFactory import org.gradle.api.provider.Provider @@ -31,8 +29,7 @@ open class KotlinNativeDynamicImpl @Inject constructor( baseName: Provider, componentDependencies: KotlinNativeDependenciesImpl, component: KotlinNativeMainComponent, - identity: KotlinNativeVariantIdentity, - projectLayout: ProjectLayout, + variant: KotlinNativeVariant, objects: ObjectFactory, configurations: ConfigurationContainer, fileOperations: FileOperations @@ -40,8 +37,7 @@ open class KotlinNativeDynamicImpl @Inject constructor( name, baseName, component, - identity, - projectLayout, + variant, CompilerOutputKind.DYNAMIC, objects, componentDependencies, diff --git a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/KotlinNativeExecutableImpl.kt b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/KotlinNativeExecutableImpl.kt index 73bae613141..55b83d9ea98 100644 --- a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/KotlinNativeExecutableImpl.kt +++ b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/KotlinNativeExecutableImpl.kt @@ -40,7 +40,7 @@ open class KotlinNativeExecutableImpl @Inject constructor( baseName: Provider, componentDependencies: KotlinNativeDependenciesImpl, component: KotlinNativeMainComponent, - identity: KotlinNativeVariantIdentity, + variant: KotlinNativeVariant, objects: ObjectFactory, projectLayout: ProjectLayout, configurations: ConfigurationContainer, @@ -48,8 +48,7 @@ open class KotlinNativeExecutableImpl @Inject constructor( ) : AbstractKotlinNativeBinary(name, baseName, component, - identity, - projectLayout, + variant, CompilerOutputKind.PROGRAM, objects, componentDependencies, diff --git a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/KotlinNativeFrameworkImpl.kt b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/KotlinNativeFrameworkImpl.kt index cc9f45a38e0..022a48abb76 100644 --- a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/KotlinNativeFrameworkImpl.kt +++ b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/KotlinNativeFrameworkImpl.kt @@ -18,7 +18,6 @@ package org.jetbrains.kotlin.gradle.plugin.experimental.internal import org.gradle.api.artifacts.ConfigurationContainer import org.gradle.api.attributes.Usage -import org.gradle.api.file.ProjectLayout import org.gradle.api.internal.file.FileOperations import org.gradle.api.model.ObjectFactory import org.gradle.api.provider.Provider @@ -37,8 +36,7 @@ open class KotlinNativeFrameworkImpl @Inject constructor( baseName: Provider, componentDependencies: KotlinNativeDependenciesImpl, component: KotlinNativeMainComponent, - identity: KotlinNativeVariantIdentity, - projectLayout: ProjectLayout, + variant: KotlinNativeVariant, objects: ObjectFactory, configurations: ConfigurationContainer, fileOperations: FileOperations @@ -46,8 +44,7 @@ open class KotlinNativeFrameworkImpl @Inject constructor( name, baseName, component, - identity, - projectLayout, + variant, CompilerOutputKind.FRAMEWORK, objects, componentDependencies, @@ -72,6 +69,7 @@ open class KotlinNativeFrameworkImpl @Inject constructor( getImplementationDependencies().extendsFrom(this) } + // TODO: Fix embedding override var embedBitcode: BitcodeEmbeddingMode = if (konanTarget.family == Family.IOS) { buildType.iosEmbedBitcode } else { diff --git a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/KotlinNativeLibraryImpl.kt b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/KotlinNativeLibraryImpl.kt index 1862a05a207..9dcddaf66a1 100644 --- a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/KotlinNativeLibraryImpl.kt +++ b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/KotlinNativeLibraryImpl.kt @@ -40,7 +40,7 @@ open class KotlinNativeLibraryImpl @Inject constructor( baseName: Provider, componentDependencies: KotlinNativeDependenciesImpl, component: KotlinNativeMainComponent, - identity: KotlinNativeVariantIdentity, + variant: KotlinNativeVariant, projectLayout: ProjectLayout, objects: ObjectFactory, configurations: ConfigurationContainer, @@ -48,8 +48,7 @@ open class KotlinNativeLibraryImpl @Inject constructor( ) : AbstractKotlinNativeBinary(name, baseName, component, - identity, - projectLayout, + variant, CompilerOutputKind.LIBRARY, objects, componentDependencies, diff --git a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/KotlinNativeMainComponent.kt b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/KotlinNativeMainComponent.kt index 63b76d42524..c34b617b855 100644 --- a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/KotlinNativeMainComponent.kt +++ b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/KotlinNativeMainComponent.kt @@ -23,15 +23,14 @@ import org.gradle.api.component.SoftwareComponent import org.gradle.api.internal.component.SoftwareComponentInternal import org.gradle.api.internal.component.UsageContext import org.gradle.api.internal.file.FileOperations -import org.gradle.api.internal.provider.LockableSetProperty import org.gradle.api.model.ObjectFactory import org.gradle.api.provider.Property +import org.gradle.api.provider.SetProperty import org.gradle.internal.Describables import org.gradle.internal.DisplayName import org.gradle.language.ProductionComponent -import org.gradle.language.cpp.internal.NativeVariantIdentity import org.gradle.language.nativeplatform.internal.PublicationAwareComponent -import org.jetbrains.kotlin.gradle.plugin.EXPECTED_BY_CONFIG_NAME +import org.gradle.util.WrapUtil import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType import org.jetbrains.kotlin.gradle.plugin.experimental.KotlinNativeBinary import org.jetbrains.kotlin.gradle.plugin.experimental.sourcesets.KotlinNativeSourceSetImpl @@ -50,7 +49,7 @@ open class KotlinNativeMainComponent @Inject constructor( override fun getDisplayName(): DisplayName = Describables.withTypeAndName("Kotlin/Native component", name) - val outputKinds = LockableSetProperty(objectFactory.setProperty(OutputKind::class.java)).apply { + val outputKinds: SetProperty = objectFactory.setProperty(OutputKind::class.java).apply { set(mutableSetOf(OutputKind.KLIBRARY)) } @@ -61,42 +60,37 @@ open class KotlinNativeMainComponent @Inject constructor( extendsFrom(getImplementationDependencies()) } - private val mainPublication = KotlinNativeVariant() + private val mainPublication = KotlinNativePublicationVariants() - override fun getMainPublication(): KotlinNativeVariant = mainPublication + override fun getMainPublication(): KotlinNativePublicationVariants = mainPublication private val developmentBinaryProperty: Property = objectFactory.property(KotlinNativeBinary::class.java) override fun getDevelopmentBinary() = developmentBinaryProperty - private fun addBinary(type: Class, identity: NativeVariantIdentity): T = - objectFactory.newInstance( - type, - "$name${identity.name.capitalize()}", - baseName, - dependencies, - this, - identity - ).apply { - binaries.add(this) - } + private fun addBinary(type: Class, variant: KotlinNativeVariant): T { + val name = "$name${variant.identity.name.capitalize()}" + return objectFactory.newInstance(type, name, baseName, dependencies, this, variant).apply { + binaries.add(this) + } + } - private inline fun addBinary(identity: NativeVariantIdentity): T = - addBinary(T::class.java, identity) + private inline fun addBinary(variant: KotlinNativeVariant): T = + addBinary(T::class.java, variant) - fun addExecutable(identity: NativeVariantIdentity) = addBinary(identity) - fun addLibrary(identity: NativeVariantIdentity) = addBinary(identity) - fun addFramework(identity: NativeVariantIdentity) = addBinary(identity) + fun addExecutable(variant: KotlinNativeVariant) = addBinary(variant) + fun addLibrary(variant: KotlinNativeVariant) = addBinary(variant) + fun addFramework(variant: KotlinNativeVariant) = addBinary(variant) - fun addBinary(kind: OutputKind, identity: NativeVariantIdentity) = addBinary(kind.binaryClass, identity) + fun addBinary(kind: OutputKind, variant: KotlinNativeVariant) = addBinary(kind.binaryClass, variant) - // region Kotlin/Native variant + // region Kotlin/Native component passed to Gradle to determine publication variants // TODO: SoftwareComponentInternal will be replaced with ComponentWithVariants by Gradle - inner class KotlinNativeVariant: ComponentWithVariants, SoftwareComponentInternal { + inner class KotlinNativePublicationVariants: ComponentWithVariants, SoftwareComponentInternal { - private val variants = mutableSetOf() - override fun getVariants() = variants + private val variants = WrapUtil.toDomainObjectSet(SoftwareComponent::class.java) + override fun getVariants(): MutableSet = variants override fun getName(): String = this@KotlinNativeMainComponent.name diff --git a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/KotlinNativePlatform.kt b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/KotlinNativePlatform.kt index 4bf91762850..2d271ea9a6b 100644 --- a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/KotlinNativePlatform.kt +++ b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/KotlinNativePlatform.kt @@ -16,11 +16,18 @@ package org.jetbrains.kotlin.gradle.plugin.experimental.internal +import org.gradle.api.Project +import org.gradle.api.internal.component.UsageContext +import org.gradle.api.internal.project.ProjectInternal import org.gradle.api.model.ObjectFactory +import org.gradle.api.provider.Provider import org.gradle.internal.os.OperatingSystem +import org.gradle.language.cpp.internal.NativeVariantIdentity import org.gradle.nativeplatform.OperatingSystemFamily +import org.gradle.nativeplatform.TargetMachineFactory import org.gradle.nativeplatform.platform.NativePlatform import org.gradle.nativeplatform.platform.internal.* +import org.jetbrains.kotlin.gradle.utils.isGradleVersionAtLeast import org.jetbrains.kotlin.konan.target.KonanTarget import org.jetbrains.kotlin.konan.util.visibleName @@ -51,4 +58,55 @@ class DefaultKotlinNativePlatform(name: String, override val target: KonanTarget override fun operatingSystem(name: String?) = notImplemented() override fun withArchitecture(architecture: ArchitectureInternal?) = notImplemented() override fun architecture(name: String?) = notImplemented() -} \ No newline at end of file +} + +// NativeVariantIdentity constructor was changed in Gradle 5.1 +// So we have to use reflection to create instance of this class in earlier versions. +internal fun compatibleVariantIdentity( + project: Project, + name: String, + baseName: Provider, + group: Provider, + version: Provider, + debuggable: Boolean, + optimized: Boolean, + target: KonanTarget, + linkUsage: UsageContext?, + runtimeUsage: UsageContext? +): NativeVariantIdentity = + if (isGradleVersionAtLeast(5, 1)) { + val targetMachineFactory = (project as ProjectInternal).services.get(TargetMachineFactory::class.java) + NativeVariantIdentity( + name, + baseName, + group, + version, + debuggable, + optimized, + targetMachineFactory.os(target.family.name), + linkUsage, + runtimeUsage + ) + } else { + NativeVariantIdentity::class.java.getConstructor( + String::class.java, + Provider::class.java, + Provider::class.java, + Provider::class.java, + Boolean::class.javaPrimitiveType, + Boolean::class.javaPrimitiveType, + OperatingSystemFamily::class.java, + UsageContext::class.java, + UsageContext::class.java + ).newInstance( + name, + baseName, + group, + version, + debuggable, + optimized, + target.getGradleOSFamily(project.objects), + linkUsage, + runtimeUsage + ) + } diff --git a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/KotlinNativeStaticImpl.kt b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/KotlinNativeStaticImpl.kt index 1f592c091ec..5ba1339fa29 100644 --- a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/KotlinNativeStaticImpl.kt +++ b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/KotlinNativeStaticImpl.kt @@ -16,9 +16,7 @@ package org.jetbrains.kotlin.gradle.plugin.experimental.internal -import org.gradle.api.artifacts.Configuration import org.gradle.api.artifacts.ConfigurationContainer -import org.gradle.api.file.ProjectLayout import org.gradle.api.internal.file.FileOperations import org.gradle.api.model.ObjectFactory import org.gradle.api.provider.Provider @@ -32,8 +30,7 @@ open class KotlinNativeStaticImpl @Inject constructor( baseName: Provider, componentDependencies: KotlinNativeDependenciesImpl, component: KotlinNativeMainComponent, - identity: KotlinNativeVariantIdentity, - projectLayout: ProjectLayout, + variant: KotlinNativeVariant, objects: ObjectFactory, configurations: ConfigurationContainer, fileOperations: FileOperations @@ -41,8 +38,7 @@ open class KotlinNativeStaticImpl @Inject constructor( name, baseName, component, - identity, - projectLayout, + variant, CompilerOutputKind.STATIC, objects, componentDependencies, diff --git a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/KotlinNativeTestExecutableImpl.kt b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/KotlinNativeTestExecutableImpl.kt index 0da9e65c453..b3e74653c12 100644 --- a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/KotlinNativeTestExecutableImpl.kt +++ b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/KotlinNativeTestExecutableImpl.kt @@ -17,10 +17,8 @@ package org.jetbrains.kotlin.gradle.plugin.experimental.internal import org.gradle.api.Task -import org.gradle.api.artifacts.Configuration import org.gradle.api.artifacts.ConfigurationContainer import org.gradle.api.file.FileCollection -import org.gradle.api.file.ProjectLayout import org.gradle.api.internal.file.FileOperations import org.gradle.api.model.ObjectFactory import org.gradle.api.provider.Property @@ -37,16 +35,14 @@ open class KotlinNativeTestExecutableImpl @Inject constructor( componentDependencies: KotlinNativeDependenciesImpl, val testComponent: KotlinNativeTestSuite, val mainSources: KotlinNativeSourceSet, - identity: KotlinNativeVariantIdentity, + variant: KotlinNativeVariant, objects: ObjectFactory, - projectLayout: ProjectLayout, configurations: ConfigurationContainer, fileOperations: FileOperations ) : AbstractKotlinNativeBinary(name, baseName, testComponent, - identity, - projectLayout, + variant, CompilerOutputKind.PROGRAM, objects, componentDependencies, diff --git a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/KotlinNativeTestSuite.kt b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/KotlinNativeTestSuite.kt index 52947be7c7e..70a3516af32 100644 --- a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/KotlinNativeTestSuite.kt +++ b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/KotlinNativeTestSuite.kt @@ -51,15 +51,15 @@ open class KotlinNativeTestSuite @Inject constructor( override fun getTestBinary() = testBinaryProperty - fun addTestExecutable(identity: NativeVariantIdentity): KotlinNativeTestExecutable = + fun addTestExecutable(variant: KotlinNativeVariant): KotlinNativeTestExecutable = objectFactory.newInstance( KotlinNativeTestExecutableImpl::class.java, - "$name${identity.name.capitalize()}", + "$name${variant.identity.name.capitalize()}", getBaseName(), dependencies, this, testedComponent.sources, - identity + variant ).apply { binaries.add(this) } diff --git a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/KotlinNativeVariantIdentity.kt b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/KotlinNativeVariantIdentity.kt index 95e4b6519ef..79ad3b7e595 100644 --- a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/KotlinNativeVariantIdentity.kt +++ b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/experimental/internal/KotlinNativeVariantIdentity.kt @@ -16,13 +16,13 @@ package org.jetbrains.kotlin.gradle.plugin.experimental.internal +import org.gradle.api.Project import org.gradle.api.internal.component.UsageContext -import org.gradle.api.model.ObjectFactory import org.gradle.api.provider.Provider import org.gradle.language.cpp.internal.NativeVariantIdentity import org.jetbrains.kotlin.konan.target.KonanTarget -open class KotlinNativeVariantIdentity( +class KotlinNativeVariant( name: String, baseName: Provider, group: Provider, @@ -31,17 +31,21 @@ open class KotlinNativeVariantIdentity( val buildType: KotlinNativeBuildType, linkUsage: UsageContext?, runtimeUsage: UsageContext?, - objects: ObjectFactory -) : NativeVariantIdentity( - name, - baseName, - group, - version, - buildType.debuggable, - buildType.optimized, - konanTarget.getGradleOSFamily(objects), - linkUsage, - runtimeUsage + project: Project ) { + + val identity: NativeVariantIdentity = compatibleVariantIdentity( + project, + name, + baseName, + group, + version, + buildType.debuggable, + buildType.optimized, + konanTarget, + linkUsage, + runtimeUsage + ) + val targetPlatform = DefaultKotlinNativePlatform(konanTarget) } \ No newline at end of file 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 0b363eb8c6d..53a4ce98b47 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 @@ -38,6 +38,7 @@ import org.jetbrains.kotlin.gradle.plugin.experimental.internal.* import org.jetbrains.kotlin.gradle.plugin.experimental.internal.OutputKind.Companion.getDevelopmentKind import org.jetbrains.kotlin.gradle.plugin.experimental.sourcesets.KotlinNativeSourceSetFactory import org.jetbrains.kotlin.gradle.plugin.experimental.sourcesets.KotlinNativeSourceSetImpl +import org.jetbrains.kotlin.gradle.utils.isGradleVersionAtLeast import org.jetbrains.kotlin.konan.target.HostManager import org.jetbrains.kotlin.konan.target.KonanTarget import javax.inject.Inject @@ -77,14 +78,18 @@ class KotlinNativePlugin @Inject constructor(val attributesFactory: ImmutableAtt } private fun AbstractKotlinNativeComponent.getAndLockTargets(): Set { - konanTargets.lockNow() + if (isGradleVersionAtLeast(5, 0)) { + konanTargets.finalizeValue() + } return konanTargets.get().also { require(it.isNotEmpty()) { "A Kotlin/Native target needs to be specified for the component." } } } private fun KotlinNativeMainComponent.getAndLockOutputKinds(): Set { - outputKinds.lockNow() + if (isGradleVersionAtLeast(5, 0)) { + konanTargets.finalizeValue() + } return outputKinds.get().also { require(it.isNotEmpty()) { "An output kind needs to be specified for the component." } } @@ -124,18 +129,18 @@ class KotlinNativePlugin @Inject constructor(val attributesFactory: ImmutableAtt } // TODO: Do we need something like klibUsageContext? - val variantIdentity = KotlinNativeVariantIdentity( + val variant = KotlinNativeVariant( variantName, component.baseName, group, version, target, buildType, linkUsageContext, runtimeUsageContext, - objects + project ) if (hostManager.isEnabled(target)) { - val binary = component.addBinary(kind, variantIdentity) + val binary = component.addBinary(kind, variant) if (kind == developmentKind && buildType == KotlinNativeBuildType.DEBUG && @@ -151,7 +156,7 @@ class KotlinNativePlugin @Inject constructor(val attributesFactory: ImmutableAtt if (kind.publishable) { // Known but not buildable. // It allows us to publish different parts of a multitarget library from differnt hosts. - component.mainPublication.variants.add(variantIdentity) + component.mainPublication.variants.add(variant.identity) } } } @@ -171,18 +176,18 @@ class KotlinNativePlugin @Inject constructor(val attributesFactory: ImmutableAtt val targetSuffix = createDimensionSuffix(target.name, targets) val variantName = "${buildTypeSuffix}${targetSuffix}" - val variantIdentity = KotlinNativeVariantIdentity( + val variant = KotlinNativeVariant( variantName, component.getBaseName(), group, version, target, buildType, null, null, - objects + project ) if (hostManager.isEnabled(target)) { - val binary = component.addTestExecutable(variantIdentity) + val binary = component.addTestExecutable(variant) if (target == HostManager.host) { component.testBinary.set(binary) } diff --git a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/KonanArtifactContainer.kt b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/KonanArtifactContainer.kt index 4bea2cfab81..81638b8a86a 100644 --- a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/KonanArtifactContainer.kt +++ b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/KonanArtifactContainer.kt @@ -37,7 +37,7 @@ open class KonanArtifactContainer(val project: ProjectInternal) var targets: Iterable = emptyList() override fun create(name: String?): T = - instantiator.newInstance(configClass.java, name, project, instantiator, targets) + instantiator.newInstance(configClass.java, name, project, targets) } private val factories = mutableMapOf>, KonanBuildingConfigFactory<*>>() diff --git a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/KonanBuildingConfig.kt b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/KonanBuildingConfig.kt index 698f1c61b97..4eb2a300bcb 100644 --- a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/KonanBuildingConfig.kt +++ b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/KonanBuildingConfig.kt @@ -17,27 +17,23 @@ package org.jetbrains.kotlin.gradle.plugin.konan import groovy.lang.Closure -import org.gradle.api.Action -import org.gradle.api.InvalidUserDataException -import org.gradle.api.Named -import org.gradle.api.Task -import org.gradle.api.internal.DefaultNamedDomainObjectSet +import org.gradle.api.* import org.gradle.api.internal.project.ProjectInternal import org.gradle.api.plugins.BasePlugin +import org.gradle.api.plugins.ExtensionAware import org.gradle.api.publish.maven.MavenPom -import org.gradle.internal.reflect.Instantiator import org.gradle.util.ConfigureUtil +import org.gradle.util.WrapUtil import org.jetbrains.kotlin.gradle.plugin.tasks.KonanBuildingTask import org.jetbrains.kotlin.konan.target.KonanTarget import java.io.File /** Base class for all Kotlin/Native artifacts. */ abstract class KonanBuildingConfig(private val name_: String, - type: Class, + val type: Class, val project: ProjectInternal, - instantiator: Instantiator, val targets: Iterable) - : KonanBuildingSpec, Named, DefaultNamedDomainObjectSet(type, instantiator, { it.konanTarget.visibleName }) { + : KonanBuildingSpec, Named, DomainObjectSet by WrapUtil.toDomainObjectSet(type) { internal val mainVariant = KonanSoftwareComponent(project) override fun getName() = name_ @@ -63,7 +59,13 @@ abstract class KonanBuildingConfig(private val name_: Stri project.logger.info("The target ${targetName} is not supported by the artifact $name") continue } - if (this[konanTarget] == null) super.add(createTask(konanTarget)) + if (this[konanTarget] == null) { + val task = createTask(konanTarget) + add(task) + targetToTask[konanTarget] = task + // Allow accessing targets just by their names in Groovy DSL. + (this as? ExtensionAware)?.extensions?.add(konanTarget.visibleName, task) + } if (targetName != konanTarget.visibleName) { createTargetAliasTaskIfDeclared(targetName) @@ -89,13 +91,6 @@ abstract class KonanBuildingConfig(private val name_: Stri protected open fun targetIsSupported(target: KonanTarget): Boolean = true - override fun didAdd(toAdd: T) { - super.didAdd(toAdd) - - assert(toAdd.konanTarget !in targetToTask) - targetToTask[toAdd.konanTarget] = toAdd - } - data class OutputPlacement(val destinationDir: File, val artifactName: String) // There are two options for output placement. diff --git a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/KonanCompileConfig.kt b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/KonanCompileConfig.kt index 812ba61a27f..0ba242b82b3 100644 --- a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/KonanCompileConfig.kt +++ b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/KonanCompileConfig.kt @@ -20,7 +20,6 @@ import groovy.lang.Closure import org.gradle.api.Task import org.gradle.api.file.FileCollection import org.gradle.api.internal.project.ProjectInternal -import org.gradle.internal.reflect.Instantiator import org.jetbrains.kotlin.gradle.plugin.tasks.* import org.jetbrains.kotlin.konan.target.Family import org.jetbrains.kotlin.konan.target.KonanTarget @@ -30,9 +29,8 @@ import java.io.File abstract class KonanCompileConfig(name: String, type: Class, project: ProjectInternal, - instantiator: Instantiator, targets: Iterable) - : KonanBuildingConfig(name, type, project, instantiator, targets), KonanCompileSpec { + : KonanBuildingConfig(name, type, project, targets), KonanCompileSpec { protected abstract val typeForDescription: String @@ -76,12 +74,10 @@ abstract class KonanCompileConfig(name: String, open class KonanProgram(name: String, project: ProjectInternal, - instantiator: Instantiator, targets: Iterable = project.konanExtension.targets ) : KonanCompileConfig(name, KonanCompileProgramTask::class.java, project, - instantiator, targets ) { override val typeForDescription: String @@ -93,12 +89,10 @@ open class KonanProgram(name: String, open class KonanDynamic(name: String, project: ProjectInternal, - instantiator: Instantiator, targets: Iterable = project.konanExtension.targets) : KonanCompileConfig(name, KonanCompileDynamicTask::class.java, project, - instantiator, targets ) { override val typeForDescription: String @@ -112,12 +106,10 @@ open class KonanDynamic(name: String, open class KonanFramework(name: String, project: ProjectInternal, - instantiator: Instantiator, targets: Iterable = project.konanExtension.targets) : KonanCompileConfig(name, KonanCompileFrameworkTask::class.java, project, - instantiator, targets ) { override val typeForDescription: String @@ -132,12 +124,10 @@ open class KonanFramework(name: String, open class KonanLibrary(name: String, project: ProjectInternal, - instantiator: Instantiator, targets: Iterable = project.konanExtension.targets) : KonanCompileConfig(name, KonanCompileLibraryTask::class.java, project, - instantiator, targets ) { override val typeForDescription: String @@ -149,12 +139,10 @@ open class KonanLibrary(name: String, open class KonanBitcode(name: String, project: ProjectInternal, - instantiator: Instantiator, targets: Iterable = project.konanExtension.targets) : KonanCompileConfig(name, KonanCompileBitcodeTask::class.java, project, - instantiator, targets ) { override val typeForDescription: String diff --git a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/KonanInteropLibrary.kt b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/KonanInteropLibrary.kt index 7801e828a40..f5b87da03f1 100644 --- a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/KonanInteropLibrary.kt +++ b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/KonanInteropLibrary.kt @@ -21,7 +21,6 @@ import org.gradle.api.Action import org.gradle.api.Task import org.gradle.api.file.FileCollection import org.gradle.api.internal.project.ProjectInternal -import org.gradle.internal.reflect.Instantiator import org.gradle.util.ConfigureUtil import org.jetbrains.kotlin.gradle.plugin.konan.KonanInteropSpec.IncludeDirectoriesSpec import org.jetbrains.kotlin.gradle.plugin.tasks.KonanInteropTask @@ -29,9 +28,8 @@ import java.io.File open class KonanInteropLibrary(name: String, project: ProjectInternal, - instantiator: Instantiator, targets: Iterable = project.konanExtension.targets -) : KonanBuildingConfig(name, KonanInteropTask::class.java, project, instantiator, targets), +) : KonanBuildingConfig(name, KonanInteropTask::class.java, project, targets), KonanInteropSpec { diff --git a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/tasks/KonanBaseTasks.kt b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/tasks/KonanBaseTasks.kt index 3d469ebb769..11db47e0eeb 100644 --- a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/tasks/KonanBaseTasks.kt +++ b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/tasks/KonanBaseTasks.kt @@ -30,10 +30,9 @@ import org.gradle.api.internal.tasks.DefaultTaskDependency import org.gradle.api.tasks.* import org.gradle.language.cpp.CppBinary import org.gradle.language.cpp.internal.DefaultUsageContext -import org.gradle.language.cpp.internal.NativeVariantIdentity import org.gradle.nativeplatform.Linkage -import org.gradle.nativeplatform.OperatingSystemFamily import org.gradle.util.ConfigureUtil +import org.jetbrains.kotlin.gradle.plugin.experimental.internal.compatibleVariantIdentity import org.jetbrains.kotlin.gradle.plugin.konan.* import org.jetbrains.kotlin.konan.target.HostManager import org.jetbrains.kotlin.konan.target.KonanTarget @@ -128,16 +127,20 @@ abstract class KonanArtifactTask: KonanTargetableTask(), KonanArtifactSpec { override fun getAttributes(): AttributeContainer = platformConfiguration.attributes override fun getGlobalExcludes(): Set = emptySet() }, platformConfiguration.allArtifacts, platformConfiguration) - konanSoftwareComponent.addVariant(NativeVariantIdentity( + konanSoftwareComponent.addVariant( + compatibleVariantIdentity( + project, variantName, project.provider{ artifactName }, project.provider{ project.group.toString() }, project.provider{ project.version.toString() }, false, false, - target.asOperatingSystemFamily(), + target, context, - null)) + null + ) + ) } } @@ -154,9 +157,6 @@ abstract class KonanArtifactTask: KonanTargetableTask(), KonanArtifactSpec { fun destinationDir(dir: Any) { destinationDir = project.file(dir) } - - private fun KonanTarget.asOperatingSystemFamily(): OperatingSystemFamily = project.objects.named(OperatingSystemFamily::class.java, family.name) - } /** Task building an artifact with libraries */ diff --git a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/tasks/KonanCompileTask.kt b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/tasks/KonanCompileTask.kt index 89a5205a279..d6d0edea0ff 100644 --- a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/tasks/KonanCompileTask.kt +++ b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/tasks/KonanCompileTask.kt @@ -134,6 +134,7 @@ abstract class KonanCompileTask: KonanBuildingTask(), KonanCompileSpec { addKey("-opt", enableOptimizations) addKey("-ea", enableAssertions) addKey("-Xtime", measureTime) + addKey("-Xprofile-phases", measureTime) addKey("-nodefaultlibs", noDefaultLibs) addKey("-Xmulti-platform", enableMultiplatform) diff --git a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/tasks/KonanCompilerDownloadTask.kt b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/tasks/KonanCompilerDownloadTask.kt index d8694ddb4bd..ee3d9256916 100644 --- a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/tasks/KonanCompilerDownloadTask.kt +++ b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/tasks/KonanCompilerDownloadTask.kt @@ -21,7 +21,6 @@ import org.gradle.api.GradleScriptException import org.gradle.api.tasks.Internal import org.gradle.api.tasks.TaskAction import org.jetbrains.kotlin.gradle.plugin.konan.* -import org.jetbrains.kotlin.konan.KonanVersion import org.jetbrains.kotlin.konan.MetaVersion import org.jetbrains.kotlin.konan.util.DependencyProcessor import org.jetbrains.kotlin.konan.util.DependencySource diff --git a/tools/kotlin-native-gradle-plugin/src/test/groovy/org/jetbrains/kotlin/gradle/plugin/test/IncrementalSpecification.groovy b/tools/kotlin-native-gradle-plugin/src/test/groovy/org/jetbrains/kotlin/gradle/plugin/test/IncrementalSpecification.groovy index 50ab9d0f3d5..170b19f0d38 100644 --- a/tools/kotlin-native-gradle-plugin/src/test/groovy/org/jetbrains/kotlin/gradle/plugin/test/IncrementalSpecification.groovy +++ b/tools/kotlin-native-gradle-plugin/src/test/groovy/org/jetbrains/kotlin/gradle/plugin/test/IncrementalSpecification.groovy @@ -20,10 +20,6 @@ import org.gradle.testkit.runner.BuildResult import org.gradle.testkit.runner.TaskOutcome import spock.lang.Unroll -import java.nio.file.Files -import java.nio.file.Path -import java.nio.file.Paths - class IncrementalSpecification extends BaseKonanSpecification { Tuple buildTwice(KonanProject project, String task = 'build', Closure change) { diff --git a/tools/kotlin-native-gradle-plugin/src/test/groovy/org/jetbrains/kotlin/gradle/plugin/test/TaskSpecification.groovy b/tools/kotlin-native-gradle-plugin/src/test/groovy/org/jetbrains/kotlin/gradle/plugin/test/TaskSpecification.groovy index 67cf688d75d..99e251bd2b4 100644 --- a/tools/kotlin-native-gradle-plugin/src/test/groovy/org/jetbrains/kotlin/gradle/plugin/test/TaskSpecification.groovy +++ b/tools/kotlin-native-gradle-plugin/src/test/groovy/org/jetbrains/kotlin/gradle/plugin/test/TaskSpecification.groovy @@ -18,8 +18,8 @@ package org.jetbrains.kotlin.gradle.plugin.test import org.gradle.testkit.runner.BuildResult import org.gradle.testkit.runner.TaskOutcome -import org.jetbrains.kotlin.konan.target.KonanTarget import org.jetbrains.kotlin.konan.target.HostManager +import org.jetbrains.kotlin.konan.target.KonanTarget import spock.lang.Requires import spock.lang.Unroll @@ -50,8 +50,8 @@ class TaskSpecification extends BaseKonanSpecification { def result = project.createRunner().withArguments('build').build() then: - result.output.findAll(~/FRONTEND:\s+\d+\s+msec/).size() == 1 - result.output.findAll(~/BACKEND:\s+\d+\s+msec/).size() == 1 + result.output.findAll(~/Frontend builds AST:\s+\d+\s+msec/).size() == 1 + result.output.findAll(~/IR Lowering:\s+\d+\s+msec/).size() == 1 } @Unroll('Plugin should support #option option for cinterop') diff --git a/tools/kotlin-native-gradle-plugin/src/test/kotlin/CompatibilityTests.kt b/tools/kotlin-native-gradle-plugin/src/test/kotlin/CompatibilityTests.kt index fe75aca5666..19c2f800293 100644 --- a/tools/kotlin-native-gradle-plugin/src/test/kotlin/CompatibilityTests.kt +++ b/tools/kotlin-native-gradle-plugin/src/test/kotlin/CompatibilityTests.kt @@ -20,7 +20,8 @@ import org.junit.Rule import org.junit.rules.TemporaryFolder import java.io.File import java.net.URI -import kotlin.test.* +import kotlin.test.Test +import kotlin.test.assertTrue open class CompatibilityTests { val tmpFolder = TemporaryFolder() diff --git a/tools/kotlin-native-gradle-plugin/src/test/kotlin/PropertiesAsEnvVariablesTest.kt b/tools/kotlin-native-gradle-plugin/src/test/kotlin/PropertiesAsEnvVariablesTest.kt index ef625dd1e0c..32c464ff03a 100644 --- a/tools/kotlin-native-gradle-plugin/src/test/kotlin/PropertiesAsEnvVariablesTest.kt +++ b/tools/kotlin-native-gradle-plugin/src/test/kotlin/PropertiesAsEnvVariablesTest.kt @@ -24,7 +24,7 @@ import org.junit.rules.TemporaryFolder import org.junit.runner.RunWith import org.tools4j.spockito.Spockito import java.io.File -import kotlin.test.* +import kotlin.test.Test @RunWith(Spockito::class) open class PropertiesAsEnvVariablesTest { diff --git a/tools/kotlin-native-gradle-plugin/src/test/kotlin/TaskTests.kt b/tools/kotlin-native-gradle-plugin/src/test/kotlin/TaskTests.kt index c4814278ca1..a7fd5685fc9 100644 --- a/tools/kotlin-native-gradle-plugin/src/test/kotlin/TaskTests.kt +++ b/tools/kotlin-native-gradle-plugin/src/test/kotlin/TaskTests.kt @@ -19,7 +19,9 @@ package org.jetbrains.kotlin.gradle.plugin.test import org.junit.Rule import org.junit.rules.TemporaryFolder import java.io.File -import kotlin.test.* +import kotlin.test.Test +import kotlin.test.assertFalse +import kotlin.test.assertTrue class TaskTests { val tmpFolder = TemporaryFolder()