-
Notifications
You must be signed in to change notification settings - Fork 8
/
settings.gradle.kts
129 lines (121 loc) · 4.56 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
121
122
123
124
125
126
127
128
129
/*
* Copyright 2022-2024 New Vector Ltd.
*
* SPDX-License-Identifier: AGPL-3.0-only
* Please see LICENSE in the repository root for full details.
*/
import java.net.URI
fun getLocalProperty(key: String, file: String = "local.properties"): Any? {
val properties = java.util.Properties()
val localProperties = File(file)
if (localProperties.isFile) {
java.io.InputStreamReader(java.io.FileInputStream(localProperties), Charsets.UTF_8).use { reader ->
properties.load(reader)
}
} else null
return try { properties.getProperty(key) } catch (e: Exception) { null }
}
pluginManagement {
repositories {
includeBuild("plugins")
gradlePluginPortal()
google()
mavenCentral()
}
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
maven {
url = URI("https://jitpack.io")
content {
includeModule("com.github.sergio-sastre.ComposablePreviewScanner", "android")
includeModule("com.github.sergio-sastre.ComposablePreviewScanner", "core")
}
}
// Snapshot versions
maven {
url = URI("https://s01.oss.sonatype.org/content/repositories/snapshots")
content {
includeModule("org.matrix.rustcomponents", "sdk-android")
includeModule("io.element.android", "wysiwyg")
includeModule("io.element.android", "wysiwyg-compose")
}
}
// To have immediate access to Rust SDK versions without a sync with Maven Central
maven {
url = URI("https://s01.oss.sonatype.org/content/repositories/releases")
content {
includeModule("org.matrix.rustcomponents", "sdk-android")
}
}
google()
mavenCentral()
maven {
url = URI("https://www.jitpack.io")
content {
includeModule("com.github.UnifiedPush", "android-connector")
includeModule("com.github.UnifiedPush", "android-foss_embedded_fcm_distributor")
includeModule("com.github.matrix-org", "matrix-analytics-events")
includeModule("com.github.SchildiChat", "element-compound-android")
}
}
// SC forks of upstream Rust projects
maven {
url = URI("https://maven.pkg.github.com/SchildiChat/matrix-rust-components-kotlin")
content {
includeModule("chat.schildi.rustcomponents", "sdk-android")
}
credentials {
username = getLocalProperty("gpr.user") as String? ?: System.getenv("GPR_USER")
password = getLocalProperty("gpr.token") as String? ?: System.getenv("GPR_TOKEN")
}
}
maven {
url = URI("https://maven.pkg.github.com/SchildiChat/matrix-rich-text-editor")
content {
includeModule("chat.schildi", "wysiwyg")
includeModule("chat.schildi", "wysiwyg-compose")
}
credentials {
username = getLocalProperty("gpr.user") as String? ?: System.getenv("GPR_USER")
password = getLocalProperty("gpr.token") as String? ?: System.getenv("GPR_TOKEN")
}
}
// SC forks end
flatDir {
dirs("libraries/matrix/libs")
}
}
}
enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS")
rootProject.name = "SchildiNext"
include(":app")
include(":appnav")
include(":appconfig")
include(":appicon:element")
include(":appicon:enterprise")
include(":tests:konsist")
include(":tests:uitests")
include(":tests:testutils")
include(":anvilannotations")
include(":anvilcodegen")
fun includeProjects(directory: File, path: String, maxDepth: Int = 1) {
directory.listFiles().orEmpty().also { it.sort() }.forEach { file ->
if (file.isDirectory) {
val newPath = "$path:${file.name}"
val buildFile = File(file, "build.gradle.kts")
if (buildFile.exists()) {
include(newPath)
logger.lifecycle("Included project: $newPath")
} else if (maxDepth > 0) {
includeProjects(file, newPath, maxDepth - 1)
}
}
}
}
includeProjects(File(rootDir, "enterprise"), ":enterprise", maxDepth = 2)
includeProjects(File(rootDir, "features"), ":features")
includeProjects(File(rootDir, "libraries"), ":libraries")
includeProjects(File(rootDir, "services"), ":services")
includeProjects(File(rootDir, "schildi"), ":schildi")