diff --git a/build.gradle.kts b/build.gradle.kts index 45e30ad1584..0b3379bab92 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -185,14 +185,13 @@ if (!project.hasProperty("versions.kotlin-native")) { extra["versions.kotlin-native"] = "1.3-dev-9780" } -val isTeamcityBuild = project.hasProperty("teamcity") || System.getenv("TEAMCITY_VERSION") != null -val intellijUltimateEnabled = project.getBooleanProperty("intellijUltimateEnabled") ?: isTeamcityBuild +val isTeamcityBuild = project.kotlinBuildProperties.isTeamcityBuild +val intellijUltimateEnabled by extra(project.kotlinBuildProperties.intellijUltimateEnabled) val effectSystemEnabled by extra(project.getBooleanProperty("kotlin.compiler.effectSystemEnabled") ?: false) val newInferenceEnabled by extra(project.getBooleanProperty("kotlin.compiler.newInferenceEnabled") ?: false) val intellijSeparateSdks = project.getBooleanProperty("intellijSeparateSdks") ?: false -extra["intellijUltimateEnabled"] = intellijUltimateEnabled extra["intellijSeparateSdks"] = intellijSeparateSdks extra["IntellijCoreDependencies"] = diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index b1b5473ccb6..dc6804addbd 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -1,3 +1,5 @@ +import java.util.Properties + extra["versions.shadow"] = "4.0.3" extra["versions.native-platform"] = "0.14" @@ -64,8 +66,10 @@ rootProject.apply { from(rootProject.file("../gradle/versions.gradle.kts")) } -val isTeamcityBuild = project.hasProperty("teamcity") || System.getenv("TEAMCITY_VERSION") != null -val intellijUltimateEnabled by extra(project.getBooleanProperty("intellijUltimateEnabled") ?: isTeamcityBuild) +val flags = LocalBuildProperties(project) + +val isTeamcityBuild = flags.isTeamcityBuild +val intellijUltimateEnabled by extra(flags.intellijUltimateEnabled) val intellijSeparateSdks by extra(project.getBooleanProperty("intellijSeparateSdks") ?: false) val verifyDependencyOutput by extra( getBooleanProperty("kotlin.build.dependency.output.verification") ?: isTeamcityBuild) @@ -116,4 +120,31 @@ allprojects { afterEvaluate { apply(from = "$rootDir/../gradle/cacheRedirector.gradle.kts") } -} \ No newline at end of file +} + +// TODO: These classes should be omitted once Gradle plugin supports local.properties +class LocalBuildPropertiesProvider(private val project: Project) { + private val localProperties: Properties = Properties() + + val rootProjectDir: File = project.rootProject.rootDir.parentFile + + init { + rootProjectDir.resolve("local.properties").takeIf { it.isFile }?.let { + it.reader().use(localProperties::load) + } + } + + fun getString(name: String): String? = project.findProperty(name)?.toString() ?: localProperties[name]?.toString() + + fun getBoolean(name: String): Boolean = getString(name)?.toBoolean() == true +} + +class LocalBuildProperties(project: Project) { + val propertiesProvider = LocalBuildPropertiesProvider(project) + + val isTeamcityBuild = propertiesProvider.getString("teamcity") != null || System.getenv("TEAMCITY_VERSION") != null + + val intellijUltimateEnabled = + (propertiesProvider.getBoolean("intellijUltimateEnabled") || isTeamcityBuild) + && propertiesProvider.rootProjectDir.resolve("kotlin-ultimate").exists() +} diff --git a/buildSrc/src/main/kotlin/buildProperties.kt b/buildSrc/src/main/kotlin/buildProperties.kt index 1a54cb15591..c6a17614cab 100644 --- a/buildSrc/src/main/kotlin/buildProperties.kt +++ b/buildSrc/src/main/kotlin/buildProperties.kt @@ -56,8 +56,13 @@ class KotlinBuildProperties( val useBootstrapStdlib: Boolean get() = isInJpsBuildIdeaSync - val includeCidrPlugins: Boolean = - getBoolean("cidrPluginsEnabled") && propertiesProvider.rootProjectDir.resolve("kotlin-ultimate").exists() + val kotlinUltimateExists: Boolean = propertiesProvider.rootProjectDir.resolve("kotlin-ultimate").exists() + + val includeCidrPlugins: Boolean = kotlinUltimateExists && getBoolean("cidrPluginsEnabled") + + val isTeamcityBuild: Boolean = getBoolean("teamcity") || System.getenv("TEAMCITY_VERSION") != null + + val intellijUltimateEnabled: Boolean = kotlinUltimateExists && (getBoolean("intellijUltimateEnabled") || isTeamcityBuild) } private const val extensionName = "kotlinBuildFlags" diff --git a/buildSrc/src/main/kotlin/localDependencies.kt b/buildSrc/src/main/kotlin/localDependencies.kt index 53cc01abbd4..73af2c20f52 100644 --- a/buildSrc/src/main/kotlin/localDependencies.kt +++ b/buildSrc/src/main/kotlin/localDependencies.kt @@ -31,7 +31,7 @@ private fun Project.kotlinBuildLocalRepoDir() = File("${project.rootDir.absolute private fun Project.ideModuleName() = when (IdeVersionConfigurator.currentIde.kind) { Ide.Kind.AndroidStudio -> "android-studio-ide" Ide.Kind.IntelliJ -> { - if (getBooleanProperty("intellijUltimateEnabled") == true) "ideaIU" else "ideaIC" + if (kotlinBuildProperties.intellijUltimateEnabled) "ideaIU" else "ideaIC" } } diff --git a/settings.gradle b/settings.gradle index b53a7d5b965..ab3999a962a 100644 --- a/settings.gradle +++ b/settings.gradle @@ -237,12 +237,14 @@ if (flags.includeCidrPlugins) { } def isTeamcityBuild = hasProperty("teamcity") || System.getenv("TEAMCITY_VERSION") != null -def includeUltimate = hasProperty("intellijUltimateEnabled") && intellijUltimateEnabled != 'false' -if (isTeamcityBuild || includeUltimate) { +if (flags.kotlinUltimateExists && (isTeamcityBuild || flags.intellijUltimateEnabled)) { include( - ":ultimate", - ":ultimate:ultimate-runner" + ":kotlin-ultimate:ultimate", + ":kotlin-ultimate:ultimate:ultimate-runner" ) + logger.info("Including extension for IJ Ultimate in settings.gradle") +} else { + logger.info("NOT including extension for IJ Ultimate in settings.gradle") } if (flags.inJpsBuildIdeaSync) {