Skip to content

Commit

Permalink
Switch to Gradle 5.1
Browse files Browse the repository at this point in the history
  • Loading branch information
ilmat192 committed Feb 22, 2019
1 parent ce1e839 commit a576ee4
Show file tree
Hide file tree
Showing 33 changed files with 179 additions and 153 deletions.
2 changes: 1 addition & 1 deletion backend.native/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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"
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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))
Expand Down
2 changes: 1 addition & 1 deletion extracted/konan.metadata/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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"
}
}

Expand Down
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
@@ -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
2 changes: 1 addition & 1 deletion samples/gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -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
4 changes: 2 additions & 2 deletions tools/kotlin-native-gradle-plugin/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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"
}
}
Expand Down Expand Up @@ -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')
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -60,8 +60,7 @@ abstract class AbstractKotlinNativeBinary(
private val name: String,
private val baseName: Provider<String>,
override val component: AbstractKotlinNativeComponent,
val identity: KotlinNativeVariantIdentity,
val projectLayout: ProjectLayout,
val variant: KotlinNativeVariant,
override val kind: CompilerOutputKind,
objects: ObjectFactory,
componentDependencies: KotlinNativeDependenciesImpl,
Expand All @@ -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

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -62,8 +62,8 @@ abstract class AbstractKotlinNativeComponent @Inject constructor(
private val baseName: Property<String> = objectFactory.property(String::class.java).apply { set(name) }
fun getBaseName(): Property<String> = baseName

override val konanTargets: LockableSetProperty<KonanTarget> =
LockableSetProperty(objectFactory.setProperty(KonanTarget::class.java)).apply {
override val konanTargets: SetProperty<KonanTarget> =
objectFactory.setProperty(KonanTarget::class.java).apply {
set(mutableSetOf(HostManager.host))
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -31,17 +29,15 @@ open class KotlinNativeDynamicImpl @Inject constructor(
baseName: Provider<String>,
componentDependencies: KotlinNativeDependenciesImpl,
component: KotlinNativeMainComponent,
identity: KotlinNativeVariantIdentity,
projectLayout: ProjectLayout,
variant: KotlinNativeVariant,
objects: ObjectFactory,
configurations: ConfigurationContainer,
fileOperations: FileOperations
) : AbstractKotlinNativeBinary(
name,
baseName,
component,
identity,
projectLayout,
variant,
CompilerOutputKind.DYNAMIC,
objects,
componentDependencies,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,16 +40,15 @@ open class KotlinNativeExecutableImpl @Inject constructor(
baseName: Provider<String>,
componentDependencies: KotlinNativeDependenciesImpl,
component: KotlinNativeMainComponent,
identity: KotlinNativeVariantIdentity,
variant: KotlinNativeVariant,
objects: ObjectFactory,
projectLayout: ProjectLayout,
configurations: ConfigurationContainer,
fileOperations: FileOperations
) : AbstractKotlinNativeBinary(name,
baseName,
component,
identity,
projectLayout,
variant,
CompilerOutputKind.PROGRAM,
objects,
componentDependencies,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -37,17 +36,15 @@ open class KotlinNativeFrameworkImpl @Inject constructor(
baseName: Provider<String>,
componentDependencies: KotlinNativeDependenciesImpl,
component: KotlinNativeMainComponent,
identity: KotlinNativeVariantIdentity,
projectLayout: ProjectLayout,
variant: KotlinNativeVariant,
objects: ObjectFactory,
configurations: ConfigurationContainer,
fileOperations: FileOperations
) : AbstractKotlinNativeBinary(
name,
baseName,
component,
identity,
projectLayout,
variant,
CompilerOutputKind.FRAMEWORK,
objects,
componentDependencies,
Expand All @@ -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 {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,16 +40,15 @@ open class KotlinNativeLibraryImpl @Inject constructor(
baseName: Provider<String>,
componentDependencies: KotlinNativeDependenciesImpl,
component: KotlinNativeMainComponent,
identity: KotlinNativeVariantIdentity,
variant: KotlinNativeVariant,
projectLayout: ProjectLayout,
objects: ObjectFactory,
configurations: ConfigurationContainer,
fileOperations: FileOperations
) : AbstractKotlinNativeBinary(name,
baseName,
component,
identity,
projectLayout,
variant,
CompilerOutputKind.LIBRARY,
objects,
componentDependencies,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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<OutputKind> = objectFactory.setProperty(OutputKind::class.java).apply {
set(mutableSetOf(OutputKind.KLIBRARY))
}

Expand All @@ -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<KotlinNativeBinary> =
objectFactory.property(KotlinNativeBinary::class.java)

override fun getDevelopmentBinary() = developmentBinaryProperty

private fun <T : KotlinNativeBinary> addBinary(type: Class<T>, identity: NativeVariantIdentity): T =
objectFactory.newInstance(
type,
"$name${identity.name.capitalize()}",
baseName,
dependencies,
this,
identity
).apply {
binaries.add(this)
}
private fun <T : KotlinNativeBinary> addBinary(type: Class<T>, 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 <reified T : KotlinNativeBinary> addBinary(identity: NativeVariantIdentity): T =
addBinary(T::class.java, identity)
private inline fun <reified T : KotlinNativeBinary> addBinary(variant: KotlinNativeVariant): T =
addBinary(T::class.java, variant)

fun addExecutable(identity: NativeVariantIdentity) = addBinary<KotlinNativeExecutableImpl>(identity)
fun addLibrary(identity: NativeVariantIdentity) = addBinary<KotlinNativeLibraryImpl>(identity)
fun addFramework(identity: NativeVariantIdentity) = addBinary<KotlinNativeFrameworkImpl>(identity)
fun addExecutable(variant: KotlinNativeVariant) = addBinary<KotlinNativeExecutableImpl>(variant)
fun addLibrary(variant: KotlinNativeVariant) = addBinary<KotlinNativeLibraryImpl>(variant)
fun addFramework(variant: KotlinNativeVariant) = addBinary<KotlinNativeFrameworkImpl>(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<SoftwareComponent>()
override fun getVariants() = variants
private val variants = WrapUtil.toDomainObjectSet(SoftwareComponent::class.java)
override fun getVariants(): MutableSet<SoftwareComponent> = variants

override fun getName(): String = this@KotlinNativeMainComponent.name

Expand Down
Loading

0 comments on commit a576ee4

Please sign in to comment.