forked from mamoe/mirai
-
Notifications
You must be signed in to change notification settings - Fork 0
/
settings.gradle.kts
120 lines (99 loc) · 4.47 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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
/*
* Copyright 2019-2021 Mamoe Technologies and contributors.
*
* 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证.
* Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link.
*
* https://github.com/mamoe/mirai/blob/master/LICENSE
*/
pluginManagement {
repositories {
if (System.getProperty("use.maven.local") == "true") {
mavenLocal()
}
gradlePluginPortal()
mavenCentral()
google()
}
}
val allProjects = mutableListOf<ProjectDescriptor>()
rootProject.name = "mirai"
fun includeProject(projectPath: String, dir: String? = null) {
include(projectPath)
if (dir != null) project(projectPath).projectDir = file(dir)
allProjects.add(project(projectPath))
}
includeProject(":mirai-core-utils")
includeProject(":mirai-core-api")
includeProject(":mirai-core")
includeProject(":mirai-core-all")
includeProject(":mirai-bom")
includeProject(":mirai-dokka")
//includeProject(":binary-compatibility-validator")
//includeProject(":binary-compatibility-validator-android", "binary-compatibility-validator/android")
includeProject(":mirai-logging-log4j2", "logging/mirai-logging-log4j2")
includeProject(":mirai-logging-slf4j", "logging/mirai-logging-slf4j")
includeProject(":mirai-logging-slf4j-simple", "logging/mirai-logging-slf4j-simple")
includeProject(":mirai-logging-slf4j-logback", "logging/mirai-logging-slf4j-logback")
val disableOldFrontEnds = true
fun includeConsoleProject(projectPath: String, dir: String? = null) =
includeProject(projectPath, "mirai-console/$dir")
includeConsoleProject(":mirai-console-compiler-annotations", "tools/compiler-annotations")
includeConsoleProject(":mirai-console", "backend/mirai-console")
includeConsoleProject(":mirai-console.codegen", "backend/codegen")
includeConsoleProject(":mirai-console-terminal", "frontend/mirai-console-terminal")
// region mirai-console.integration-test
includeConsoleProject(":mirai-console.integration-test", "backend/integration-test")
val consoleIntegrationTestSubPluginBuildGradleKtsTemplate by lazy {
rootProject.projectDir
.resolve("mirai-console/backend/integration-test/testers")
.resolve("tester.template.gradle.kts")
.readText()
}
@Suppress("SimpleRedundantLet")
fun includeConsoleITPlugin(prefix: String, path: File) {
path.resolve("build.gradle.kts").takeIf { !it.isFile }?.let { initScript ->
initScript.writeText(consoleIntegrationTestSubPluginBuildGradleKtsTemplate)
}
val projectPath = "$prefix${path.name}"
include(projectPath)
project(projectPath).projectDir = path
path.listFiles()?.asSequence().orEmpty()
.filter { it.isDirectory }
.filter { it.resolve(".nested-module.txt").exists() }
.forEach { includeConsoleITPlugin("${projectPath}:", it) }
}
rootProject.projectDir
.resolve("mirai-console/backend/integration-test/testers")
.listFiles()?.asSequence().orEmpty()
.filter { it.isDirectory }
.forEach { includeConsoleITPlugin(":mirai-console.integration-test:", it) }
// endregion
includeConsoleProject(":mirai-console-compiler-common", "tools/compiler-common")
includeConsoleProject(":mirai-console-intellij", "tools/intellij-plugin")
includeConsoleProject(":mirai-console-gradle", "tools/gradle-plugin")
@Suppress("ConstantConditionIf")
if (!disableOldFrontEnds) {
includeConsoleProject(":mirai-console-terminal", "frontend/mirai-console-terminal")
println("JDK version: ${JavaVersion.current()}")
if (JavaVersion.current() >= JavaVersion.VERSION_1_9) {
includeConsoleProject(":mirai-console-graphical", "frontend/mirai-console-graphical")
} else {
println("当前使用的 JDK 版本为 ${System.getProperty("java.version")}, 请使用 JDK 9 以上版本引入模块 `:mirai-console-graphical`\n")
}
}
includeProject(":ci-release-helper")
val result = mutableListOf<ProjectDescriptor>()
for (project in allProjects) {
val validationDir = project.projectDir.resolve("compatibility-validation")
if (!validationDir.exists()) continue
validationDir.listFiles().orEmpty<File>().forEach { dir ->
if (dir.resolve("build.gradle.kts").isFile) {
val path = ":validator" + project.path + ":${dir.name}"
include(path)
project(path).projectDir = dir
// project(path).name = "${project.name}-validator-${dir.name}"
result.add(project(path))
}
}
}