From 13afb2e45e6e47b5a65cfc3913147a57587dc905 Mon Sep 17 00:00:00 2001 From: "nataliya.valtman" Date: Mon, 27 Jan 2020 12:44:26 +0300 Subject: [PATCH] Make kotlin build version for buildSrc the same as for kotlin project --- build.gradle.kts | 4 ++- buildSrc/build.gradle.kts | 18 +++++----- buildSrc/settings.gradle | 2 +- buildSrc/src/main/kotlin/dependencies.kt | 2 -- .../build.gradle.kts | 2 +- .../src}/Bootstrap.kt | 36 +++++++++---------- .../src/BuildProperties.kt | 18 ++++++++-- gradle.properties | 3 ++ gradle.properties.as35 | 1 + gradle.properties.as36 | 1 + gradle.properties.as40 | 1 + settings.gradle | 2 +- 12 files changed, 54 insertions(+), 36 deletions(-) rename {buildSrc/src/main/kotlin => dependencies/kotlin-build-gradle-plugin/src}/Bootstrap.kt (77%) diff --git a/build.gradle.kts b/build.gradle.kts index c35668853b5..34e35adbf1b 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -8,12 +8,13 @@ buildscript { extra["defaultSnapshotVersion"] = "1.4-SNAPSHOT" val cacheRedirectorEnabled = findProperty("cacheRedirectorEnabled")?.toString()?.toBoolean() == true - kotlinBootstrapFrom(BootstrapOption.BintrayBootstrap("1.4.0-dev-1075", cacheRedirectorEnabled)) + kotlinBootstrapFrom(BootstrapOption.BintrayBootstrap(kotlinBuildProperties.kotlinBootstrapVersion!!, cacheRedirectorEnabled)) repositories { bootstrapKotlinRepo?.let(::maven) if (cacheRedirectorEnabled) { + maven("https://cache-redirector.jetbrains.com/jcenter.bintray.com") maven("https://cache-redirector.jetbrains.com/plugins.gradle.org/m2") } else { maven("https://plugins.gradle.org/m2") @@ -28,6 +29,7 @@ buildscript { dependencies { bootstrapCompilerClasspath(kotlin("compiler-embeddable", bootstrapKotlinVersion)) + classpath("org.jetbrains.kotlin:kotlin-build-gradle-plugin:0.0.10") classpath("com.gradle.publish:plugin-publish-plugin:0.9.7") classpath(kotlin("gradle-plugin", bootstrapKotlinVersion)) classpath("net.sf.proguard:proguard-gradle:6.1.0") diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 6b442e7626c..80cb955fe20 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -1,10 +1,10 @@ extra["versions.native-platform"] = "0.14" buildscript { + val cacheRedirectorEnabled = findProperty("cacheRedirectorEnabled")?.toString()?.toBoolean() == true - val buildSrcKotlinVersion: String by extra(findProperty("buildSrc.kotlin.version")?.toString() ?: embeddedKotlinVersion) - val buildSrcKotlinRepo: String? by extra(findProperty("buildSrc.kotlin.repo") as String?) + kotlinBootstrapFrom(BootstrapOption.BintrayBootstrap(kotlinBuildProperties.kotlinBootstrapVersion!!, cacheRedirectorEnabled)) repositories { if (cacheRedirectorEnabled) { @@ -15,21 +15,21 @@ buildscript { maven("https://kotlin.bintray.com/kotlin-dependencies") } - buildSrcKotlinRepo?.let { + project.bootstrapKotlinRepo?.let { maven(url = it) } } dependencies { - classpath("org.jetbrains.kotlin:kotlin-build-gradle-plugin:0.0.8") - classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$buildSrcKotlinVersion") - classpath("org.jetbrains.kotlin:kotlin-sam-with-receiver:$buildSrcKotlinVersion") + classpath("org.jetbrains.kotlin:kotlin-build-gradle-plugin:0.0.10") + classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:${project.bootstrapKotlinVersion}") + classpath("org.jetbrains.kotlin:kotlin-sam-with-receiver:${project.bootstrapKotlinVersion}") } } val cacheRedirectorEnabled = findProperty("cacheRedirectorEnabled")?.toString()?.toBoolean() == true -logger.info("buildSrcKotlinVersion: " + extra["buildSrcKotlinVersion"]) +logger.info("buildSrcKotlinVersion: " + extra["bootstrapKotlinVersion"]) logger.info("buildSrc kotlin compiler version: " + org.jetbrains.kotlin.config.KotlinCompilerVersion.VERSION) logger.info("buildSrc stdlib version: " + KotlinVersion.CURRENT) @@ -83,14 +83,14 @@ repositories { maven("https://kotlin.bintray.com/kotlin-dependencies") gradlePluginPortal() - extra["buildSrcKotlinRepo"]?.let { + extra["bootstrapKotlinRepo"]?.let { maven(url = it) } } dependencies { implementation(kotlin("stdlib", embeddedKotlinVersion)) - implementation("org.jetbrains.kotlin:kotlin-build-gradle-plugin:0.0.8") + implementation("org.jetbrains.kotlin:kotlin-build-gradle-plugin:0.0.10") implementation("net.rubygrapefruit:native-platform:${property("versions.native-platform")}") implementation("net.rubygrapefruit:native-platform-windows-amd64:${property("versions.native-platform")}") diff --git a/buildSrc/settings.gradle b/buildSrc/settings.gradle index 2da8b73f47c..7d725388042 100644 --- a/buildSrc/settings.gradle +++ b/buildSrc/settings.gradle @@ -20,7 +20,7 @@ buildscript { } } dependencies { - classpath("org.jetbrains.kotlin:kotlin-build-gradle-plugin:0.0.8") + classpath("org.jetbrains.kotlin:kotlin-build-gradle-plugin:0.0.10") } } diff --git a/buildSrc/src/main/kotlin/dependencies.kt b/buildSrc/src/main/kotlin/dependencies.kt index f05a08d431f..c1c9b8c2355 100644 --- a/buildSrc/src/main/kotlin/dependencies.kt +++ b/buildSrc/src/main/kotlin/dependencies.kt @@ -2,14 +2,12 @@ // usages in build scripts are not tracked properly -import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar import org.gradle.api.GradleException import org.gradle.api.Project import org.gradle.api.artifacts.ProjectDependency import org.gradle.api.artifacts.dsl.DependencyHandler import org.gradle.api.file.ConfigurableFileCollection import org.gradle.api.file.FileCollection -import org.gradle.api.tasks.AbstractCopyTask import org.gradle.kotlin.dsl.extra import org.gradle.kotlin.dsl.project import java.io.File diff --git a/dependencies/kotlin-build-gradle-plugin/build.gradle.kts b/dependencies/kotlin-build-gradle-plugin/build.gradle.kts index dc3d7442b2d..8893c07993a 100644 --- a/dependencies/kotlin-build-gradle-plugin/build.gradle.kts +++ b/dependencies/kotlin-build-gradle-plugin/build.gradle.kts @@ -4,7 +4,7 @@ plugins { } group = "org.jetbrains.kotlin" -version = "0.0.8" +version = "0.0.10" repositories { mavenCentral() diff --git a/buildSrc/src/main/kotlin/Bootstrap.kt b/dependencies/kotlin-build-gradle-plugin/src/Bootstrap.kt similarity index 77% rename from buildSrc/src/main/kotlin/Bootstrap.kt rename to dependencies/kotlin-build-gradle-plugin/src/Bootstrap.kt index 3d42e2111c0..1fbdc1fce0c 100644 --- a/buildSrc/src/main/kotlin/Bootstrap.kt +++ b/dependencies/kotlin-build-gradle-plugin/src/Bootstrap.kt @@ -1,20 +1,20 @@ -@file:Suppress("unused") // usages in build scripts are not tracked properly - +/* + * Copyright 2010-2020 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. + */ import org.gradle.api.Project -import org.gradle.kotlin.dsl.* import java.net.URI - var Project.bootstrapKotlinVersion: String - get() = this.property("bootstrapKotlinVersion") as String + get() = property("bootstrapKotlinVersion") as String private set(value) { - this.extra["bootstrapKotlinVersion"] = value + extensions.extraProperties.set("bootstrapKotlinVersion", value) } var Project.bootstrapKotlinRepo: String? - get() = this.property("bootstrapKotlinRepo") as String? + get() = property("bootstrapKotlinRepo") as String? private set(value) { - this.extra["bootstrapKotlinRepo"] = value + extensions.extraProperties.set("bootstrapKotlinRepo", value) } val Project.internalKotlinRepo: String? @@ -22,16 +22,16 @@ val Project.internalKotlinRepo: String? "branch:default:any/artifacts/content/internal/repo" fun Project.kotlinBootstrapFrom(defaultSource: BootstrapOption) { - val customVersion = project.findProperty("bootstrap.kotlin.version") as String? - val customRepo = project.findProperty("bootstrap.kotlin.repo") as String? - val teamCityVersion = project.findProperty("bootstrap.teamcity.kotlin.version") as String? - val teamCityBuild = project.findProperty("bootstrap.teamcity.build.number") as String? - val teamCityProject = project.findProperty("bootstrap.teamcity.project") as String? + val customVersion = findProperty("bootstrap.kotlin.version") as String? + val customRepo = findProperty("bootstrap.kotlin.repo") as String? + val teamCityVersion = findProperty("bootstrap.teamcity.kotlin.version") as String? + val teamCityBuild = findProperty("bootstrap.teamcity.build.number") as String? + val teamCityProject = findProperty("bootstrap.teamcity.project") as String? val bootstrapSource = when { - project.hasProperty("bootstrap.local") -> BootstrapOption.Local( - project.findProperty("bootstrap.local.version") as String?, - project.findProperty("bootstrap.local.path") as String? + hasProperty("bootstrap.local") -> BootstrapOption.Local( + findProperty("bootstrap.local.version") as String?, + findProperty("bootstrap.local.path") as String? ) teamCityVersion != null -> BootstrapOption.TeamCity( teamCityVersion, @@ -43,8 +43,8 @@ fun Project.kotlinBootstrapFrom(defaultSource: BootstrapOption) { else -> defaultSource } - bootstrapSource.applyToProject(project) - project.logger.lifecycle("Using kotlin bootstrap version $bootstrapKotlinVersion from repo $bootstrapKotlinRepo") + bootstrapSource.applyToProject(this) + logger.lifecycle("Using kotlin bootstrap version $bootstrapKotlinVersion from repo $bootstrapKotlinRepo") } sealed class BootstrapOption { diff --git a/dependencies/kotlin-build-gradle-plugin/src/BuildProperties.kt b/dependencies/kotlin-build-gradle-plugin/src/BuildProperties.kt index 0fae1aa2f6b..f4853b5091c 100644 --- a/dependencies/kotlin-build-gradle-plugin/src/BuildProperties.kt +++ b/dependencies/kotlin-build-gradle-plugin/src/BuildProperties.kt @@ -19,16 +19,24 @@ class KotlinBuildProperties( private val propertiesProvider: PropertiesProvider ) { private val localProperties: Properties = Properties() + private val rootProperties: Properties = Properties() init { - val localPropertiesFile = propertiesProvider.rootProjectDir.resolve("local.properties") - if (localPropertiesFile.isFile) { - localPropertiesFile.reader().use(localProperties::load) + loadPropertyFile("local.properties", localProperties) + loadPropertyFile("gradle.properties", rootProperties) + } + + private fun loadPropertyFile(fileName: String, propertiesDestination: Properties) { + val propertiesFile = propertiesProvider.rootProjectDir.resolve(fileName) + if (propertiesFile.isFile) { + propertiesFile.reader().use(propertiesDestination::load) } } private operator fun get(key: String): Any? = localProperties.getProperty(key) ?: propertiesProvider.getProperty(key) + private fun getLocalOrRoot(key: String): Any? = get(key) ?: rootProperties.getProperty(key) + private fun getBoolean(key: String, default: Boolean = false): Boolean = this[key]?.toString()?.trim()?.toBoolean() ?: default @@ -94,6 +102,10 @@ class KotlinBuildProperties( val buildCacheUser: String? = get("kotlin.build.cache.user") as String? val buildCachePassword: String? = get("kotlin.build.cache.password") as String? + + val kotlinBootstrapVersion: String? = getLocalOrRoot("kotlin.build.version") as String? + + val kotlinBootstrapLocalRepo: String? = get("kotlin.build.local.repo") as String? } private const val extensionName = "kotlinBuildProperties" diff --git a/gradle.properties b/gradle.properties index bd0786dd919..50599f76eea 100644 --- a/gradle.properties +++ b/gradle.properties @@ -7,7 +7,10 @@ kotlin.compiler.newInferenceEnabled=true #maven.repository.mirror=http://repository.jetbrains.com/remote-repos/ #bootstrap.kotlin.repo=https://dl.bintray.com/kotlin/kotlin-dev #bootstrap.kotlin.version=1.1.50-dev-1451 +kotlin.build.version=1.4.0-dev-1075 + #signingRequired=true +#org.gradle.debug=true ## The following properties can be added to your local.properties file to customize the build: diff --git a/gradle.properties.as35 b/gradle.properties.as35 index a14f118a680..240ea61f552 100644 --- a/gradle.properties.as35 +++ b/gradle.properties.as35 @@ -7,6 +7,7 @@ kotlin.compiler.newInferenceEnabled=true #maven.repository.mirror=http://repository.jetbrains.com/remote-repos/ #bootstrap.kotlin.repo=https://dl.bintray.com/kotlin/kotlin-dev #bootstrap.kotlin.version=1.1.50-dev-1451 +kotlin.build.version=1.4.0-dev-1075 #signingRequired=true intellijUltimateEnabled=false diff --git a/gradle.properties.as36 b/gradle.properties.as36 index a14f118a680..240ea61f552 100644 --- a/gradle.properties.as36 +++ b/gradle.properties.as36 @@ -7,6 +7,7 @@ kotlin.compiler.newInferenceEnabled=true #maven.repository.mirror=http://repository.jetbrains.com/remote-repos/ #bootstrap.kotlin.repo=https://dl.bintray.com/kotlin/kotlin-dev #bootstrap.kotlin.version=1.1.50-dev-1451 +kotlin.build.version=1.4.0-dev-1075 #signingRequired=true intellijUltimateEnabled=false diff --git a/gradle.properties.as40 b/gradle.properties.as40 index a14f118a680..240ea61f552 100644 --- a/gradle.properties.as40 +++ b/gradle.properties.as40 @@ -7,6 +7,7 @@ kotlin.compiler.newInferenceEnabled=true #maven.repository.mirror=http://repository.jetbrains.com/remote-repos/ #bootstrap.kotlin.repo=https://dl.bintray.com/kotlin/kotlin-dev #bootstrap.kotlin.version=1.1.50-dev-1451 +kotlin.build.version=1.4.0-dev-1075 #signingRequired=true intellijUltimateEnabled=false diff --git a/settings.gradle b/settings.gradle index ffbeb7b936f..5b796d4200e 100644 --- a/settings.gradle +++ b/settings.gradle @@ -27,7 +27,7 @@ buildscript { } } dependencies { - classpath("org.jetbrains.kotlin:kotlin-build-gradle-plugin:0.0.8") + classpath("org.jetbrains.kotlin:kotlin-build-gradle-plugin:0.0.10") } }