forked from gradle/gradle
-
Notifications
You must be signed in to change notification settings - Fork 1
/
settings.gradle.kts
87 lines (71 loc) · 2.7 KB
/
settings.gradle.kts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
/*
* Copyright 2016 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
pluginManagement {
repositories {
maven {
name = "kotlin-eap"
url = uri("https://dl.bintray.com/kotlin/kotlin-eap")
}
gradlePluginPortal()
}
}
apply(from = "../gradle/shared-with-buildSrc/build-cache-configuration.settings.gradle.kts")
apply(from = "../gradle/shared-with-buildSrc/mirrors.settings.gradle.kts")
val upperCaseLetters = "\\p{Upper}".toRegex()
fun String.toKebabCase() =
replace(upperCaseLetters) { "-${it.value.toLowerCase()}" }
rootProject.name = "buildSrc"
// Please preserve alphabetical order
include("binaryCompatibility")
include("build")
include("buildquality")
include("cleanup")
include("configuration")
include("docs")
include("ide")
include("integrationTesting")
include("kotlinDsl")
include("uberPlugins")
include("packaging")
include("plugins")
include("profiling")
include("performance")
include("versioning")
include("buildPlatform")
fun buildFileNameFor(projectDirName: String) =
"$projectDirName.gradle.kts"
for (project in rootProject.children) {
val projectDirName = project.name.toKebabCase()
project.projectDir = file("subprojects/$projectDirName")
project.buildFileName = buildFileNameFor(projectDirName)
assert(project.projectDir.isDirectory)
assert(project.buildFile.isFile)
}
fun remoteBuildCacheEnabled(settings: Settings) = settings.buildCache.remote?.isEnabled == true
fun isOpenJDK() = true == System.getProperty("java.vm.name")?.contains("OpenJDK")
fun isOpenJDK11() = isOpenJDK() && JavaVersion.current().isJava11
fun getBuildJavaHome() = System.getProperty("java.home")
gradle.settingsEvaluated {
if ("true" == System.getProperty("org.gradle.ignoreBuildJavaVersionCheck")) {
return@settingsEvaluated
}
if (remoteBuildCacheEnabled(this) && !isOpenJDK11()) {
throw GradleException("Remote cache is enabled, which requires OpenJDK 11 to perform this build. It's currently ${getBuildJavaHome()}.")
}
if (!JavaVersion.current().isJava9Compatible) {
throw GradleException("JDK 9+ is required to perform this build. It's currently ${getBuildJavaHome()}.")
}
}