diff --git a/buildSrc/build.gradle.kts.182 b/buildSrc/build.gradle.kts.182 new file mode 100644 index 00000000000..2935ee603e3 --- /dev/null +++ b/buildSrc/build.gradle.kts.182 @@ -0,0 +1,94 @@ + +buildscript { + val buildSrcKotlinVersion: String by extra(findProperty("buildSrc.kotlin.version")?.toString() ?: embeddedKotlinVersion) + val buildSrcKotlinRepo: String? by extra(findProperty("buildSrc.kotlin.repo") as String?) + extra["versions.shadow"] = "2.0.2" + extra["versions.native-platform"] = "0.14" + + repositories { + buildSrcKotlinRepo?.let { + maven(url = it) + } + } + + dependencies { + classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$buildSrcKotlinVersion") + classpath("org.jetbrains.kotlin:kotlin-sam-with-receiver:$buildSrcKotlinVersion") + } +} + +logger.info("buildSrcKotlinVersion: " + extra["buildSrcKotlinVersion"]) +logger.info("buildSrc kotlin compiler version: " + org.jetbrains.kotlin.config.KotlinCompilerVersion.VERSION) +logger.info("buildSrc stdlib version: " + KotlinVersion.CURRENT) + +apply { + plugin("kotlin") + plugin("kotlin-sam-with-receiver") +} + +plugins { + `kotlin-dsl` + `java-gradle-plugin` +} + +gradlePlugin { + (plugins) { + "jps-compatible-base" { + id = "jps-compatible-base" + implementationClass = "org.jetbrains.kotlin.pill.JpsCompatibleBasePlugin" + } + "jps-compatible" { + id = "jps-compatible" + implementationClass = "org.jetbrains.kotlin.pill.JpsCompatiblePlugin" + } + } +} + +fun Project.getBooleanProperty(name: String): Boolean? = this.findProperty(name)?.let { + val v = it.toString() + if (v.isBlank()) true + else v.toBoolean() +} + +rootProject.apply { + from(rootProject.file("../versions.gradle.kts")) +} + +val isTeamcityBuild = project.hasProperty("teamcity") || System.getenv("TEAMCITY_VERSION") != null +val intellijUltimateEnabled by extra(project.getBooleanProperty("intellijUltimateEnabled") ?: isTeamcityBuild) +val intellijSeparateSdks by extra(project.getBooleanProperty("intellijSeparateSdks") ?: false) + +extra["intellijRepo"] = "https://www.jetbrains.com/intellij-repository" +extra["intellijReleaseType"] = "snapshots" // or "snapshots" +extra["versions.androidDxSources"] = "5.0.0_r2" + +extra["customDepsOrg"] = "kotlin.build.custom.deps" + +repositories { + extra["buildSrcKotlinRepo"]?.let { + maven(url = it) + } + maven(url = "https://repo.gradle.org/gradle/libs-releases-local") // for native-platform + jcenter() +} + +dependencies { + compile("net.rubygrapefruit:native-platform:${property("versions.native-platform")}") + compile("net.rubygrapefruit:native-platform-windows-amd64:${property("versions.native-platform")}") + compile("net.rubygrapefruit:native-platform-windows-i386:${property("versions.native-platform")}") + compile("com.jakewharton.dex:dex-method-list:3.0.0") + // TODO: adding the dep to the plugin breaks the build unexpectedly, resolve and uncomment +// compile("org.jetbrains.kotlin:kotlin-gradle-plugin:${rootProject.extra["bootstrap_kotlin_version"]}") + // Shadow plugin is used in many projects of the main build. Once it's no longer used in buildSrc, please move this dependency to the root project + compile("com.github.jengelman.gradle.plugins:shadow:${property("versions.shadow")}") + compile("org.ow2.asm:asm-all:6.0_BETA") +} + +samWithReceiver { + annotation("org.gradle.api.HasImplicitReceiver") +} + +fun Project.`samWithReceiver`(configure: org.jetbrains.kotlin.samWithReceiver.gradle.SamWithReceiverExtension.() -> Unit): Unit = + extensions.configure("samWithReceiver", configure) + +tasks["build"].dependsOn(":prepare-deps:android-dx:build", ":prepare-deps:intellij-sdk:build") diff --git a/buildSrc/prepare-deps/intellij-sdk/build.gradle.kts.182 b/buildSrc/prepare-deps/intellij-sdk/build.gradle.kts.182 index be5e63548ef..0947f92f302 100644 --- a/buildSrc/prepare-deps/intellij-sdk/build.gradle.kts.182 +++ b/buildSrc/prepare-deps/intellij-sdk/build.gradle.kts.182 @@ -97,7 +97,7 @@ dependencies { } } sources("com.jetbrains.intellij.idea:ideaIC:$intellijVersion:sources@jar") - `asm-shaded-sources`("asmsources:asm-src:$platformBaseVersion@zip") + `asm-shaded-sources`("asmsources:asm-src:181@zip") `jps-standalone`("com.jetbrains.intellij.idea:jps-standalone:$intellijVersion") `jps-build-test`("com.jetbrains.intellij.idea:jps-build-test:$intellijVersion") `intellij-core`("com.jetbrains.intellij.idea:intellij-core:$intellijVersion")