diff --git a/build.gradle.kts b/build.gradle.kts index b2a5580044f..a5b22f42de3 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -27,7 +27,7 @@ buildscript { dependencies { bootstrapCompilerClasspath(kotlin("compiler-embeddable", bootstrapKotlinVersion)) - classpath("org.jetbrains.kotlin:kotlin-build-gradle-plugin:0.0.15") + classpath("org.jetbrains.kotlin:kotlin-build-gradle-plugin:0.0.16") classpath("com.gradle.publish:plugin-publish-plugin:0.9.7") classpath(kotlin("gradle-plugin", bootstrapKotlinVersion)) classpath("org.jetbrains.dokka:dokka-gradle-plugin:0.9.17") diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 01f58abe269..6ccfc61f46f 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -22,7 +22,7 @@ buildscript { } dependencies { - classpath("org.jetbrains.kotlin:kotlin-build-gradle-plugin:0.0.15") + classpath("org.jetbrains.kotlin:kotlin-build-gradle-plugin:0.0.16") classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:${project.bootstrapKotlinVersion}") classpath("org.jetbrains.kotlin:kotlin-sam-with-receiver:${project.bootstrapKotlinVersion}") } @@ -93,7 +93,7 @@ repositories { dependencies { implementation(kotlin("stdlib", embeddedKotlinVersion)) - implementation("org.jetbrains.kotlin:kotlin-build-gradle-plugin:0.0.15") + implementation("org.jetbrains.kotlin:kotlin-build-gradle-plugin:0.0.16") 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 d7276275db2..a2cd5e29201 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.15") + classpath("org.jetbrains.kotlin:kotlin-build-gradle-plugin:0.0.16") } } diff --git a/dependencies/kotlin-build-gradle-plugin/build.gradle.kts b/dependencies/kotlin-build-gradle-plugin/build.gradle.kts index ecf96d77e03..8f1f962b87b 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.15" +version = "0.0.16" repositories { mavenCentral() diff --git a/dependencies/kotlin-build-gradle-plugin/src/Bootstrap.kt b/dependencies/kotlin-build-gradle-plugin/src/Bootstrap.kt index ebb76abafdb..08c5ba7664e 100644 --- a/dependencies/kotlin-build-gradle-plugin/src/Bootstrap.kt +++ b/dependencies/kotlin-build-gradle-plugin/src/Bootstrap.kt @@ -22,24 +22,23 @@ val Project.internalKotlinRepo: String? "branch:default:any/artifacts/content/internal/repo" fun Project.kotlinBootstrapFrom(defaultSource: BootstrapOption) { - 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 teamCityBootstrapVersion = kotlinBuildProperties.teamCityBootstrapVersion + val customBootstrapVersion = kotlinBuildProperties.customBootstrapVersion val bootstrapSource = when { - hasProperty("bootstrap.local") -> BootstrapOption.Local( - findProperty("bootstrap.local.version") as String?, - findProperty("bootstrap.local.path") as String? + kotlinBuildProperties.localBootstrap -> BootstrapOption.Local( + kotlinBuildProperties.localBootstrapVersion, + kotlinBuildProperties.localBootstrapPath ) - teamCityVersion != null -> BootstrapOption.TeamCity( - teamCityVersion, - teamCityBuild, - projectExtId = teamCityProject, + teamCityBootstrapVersion != null -> BootstrapOption.TeamCity( + teamCityBootstrapVersion, + kotlinBuildProperties.teamCityBootstrapBuildNumber, + projectExtId = kotlinBuildProperties.teamCityBootstrapProject, onlySuccessBootstrap = false ) - customVersion != null -> BootstrapOption.Custom(kotlinVersion = customVersion, repo = customRepo) + customBootstrapVersion != null -> BootstrapOption.Custom( + kotlinVersion = customBootstrapVersion, + repo = kotlinBuildProperties.customBootstrapRepo + ) else -> defaultSource } @@ -103,10 +102,11 @@ sealed class BootstrapOption { */ class Local(val kotlinVersion: String? = null, val localPath: String? = null) : BootstrapOption() { override fun applyToProject(project: Project) { + val rootProjectDir = project.kotlinBuildProperties.rootProjectDir val repoPath = if (localPath != null) - project.projectDir.resolve(localPath).canonicalFile + rootProjectDir.resolve(localPath).canonicalFile else - project.buildDir.resolve("repo") + rootProjectDir.resolve("build").resolve("repo") project.bootstrapKotlinRepo = repoPath.toURI().toString() project.bootstrapKotlinVersion = kotlinVersion ?: project.property("defaultSnapshotVersion") as String diff --git a/dependencies/kotlin-build-gradle-plugin/src/BuildProperties.kt b/dependencies/kotlin-build-gradle-plugin/src/BuildProperties.kt index 7a78efbe561..f437d1c1846 100644 --- a/dependencies/kotlin-build-gradle-plugin/src/BuildProperties.kt +++ b/dependencies/kotlin-build-gradle-plugin/src/BuildProperties.kt @@ -33,13 +33,14 @@ class KotlinBuildProperties( } } - 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 operator fun get(key: String): Any? = + localProperties.getProperty(key) ?: propertiesProvider.getProperty(key) ?: rootProperties.getProperty(key) private fun getBoolean(key: String, default: Boolean = false): Boolean = this[key]?.toString()?.trim()?.toBoolean() ?: default + private fun hasProperty(key: String): Boolean = get(key) != null + val isJpsBuildEnabled: Boolean = getBoolean("jpsBuild") val isInIdeaSync: Boolean = run { @@ -105,9 +106,27 @@ class KotlinBuildProperties( val buildCachePassword: String? = get("kotlin.build.cache.password") as String? - val kotlinBootstrapVersion: String? = getLocalOrRoot("bootstrap.kotlin.default.version") as String? + val kotlinBootstrapVersion: String? = get("bootstrap.kotlin.default.version") as String? - val defaultSnapshotVersion: String? = getLocalOrRoot("defaultSnapshotVersion") as String? + val defaultSnapshotVersion: String? = get("defaultSnapshotVersion") as String? + + val customBootstrapVersion: String? = get("bootstrap.kotlin.version") as String? + + val customBootstrapRepo: String? = get("bootstrap.kotlin.repo") as String? + + val localBootstrap: Boolean = hasProperty("bootstrap.local") + + val localBootstrapVersion: String? = get("bootstrap.local.version") as String? + + val localBootstrapPath: String? = get("bootstrap.local.path") as String? + + val teamCityBootstrapVersion: String? = get("bootstrap.teamcity.kotlin.version") as String? + + val teamCityBootstrapBuildNumber: String? = get("bootstrap.teamcity.build.number") as String? + + val teamCityBootstrapProject: String? = get("bootstrap.teamcity.project") as String? + + val rootProjectDir: File = propertiesProvider.rootProjectDir } private const val extensionName = "kotlinBuildProperties" diff --git a/settings.gradle b/settings.gradle index 4d8eb52a62a..979a2c7965f 100644 --- a/settings.gradle +++ b/settings.gradle @@ -27,7 +27,7 @@ buildscript { } } dependencies { - classpath("org.jetbrains.kotlin:kotlin-build-gradle-plugin:0.0.15") + classpath("org.jetbrains.kotlin:kotlin-build-gradle-plugin:0.0.16") } }