Files
element-x-android/settings.gradle.kts
T
Jorge Martin Espinosa c3f128b6f0 Use patched Konsist version (forked, 0.18.0) (#7719)
* Use a patched fork of Konsist

The patch contains code to ignore hidden folders in the root project: by default, Konsist scans *every single file* in the root directory except for a few exceptions, and hidden folders were not a part of that.

That means `.git`, `.github`, etc. would be scanned to for no good reason and even worse,  hidden folders used for worktrees would get scanned too, so Konsist would end up scanning the same project with small variations several times and OOMing / taking ages to finish.

* Make `Immutable/Stable` annotation check more performant. Also, fix case that was previously not found
2026-09-16 11:27:44 +02:00

96 lines
3.2 KiB
Kotlin

/*
* Copyright (c) 2025 Element Creations Ltd.
* Copyright 2022-2025 New Vector Ltd.
*
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial.
* Please see LICENSE files in the repository root for full details.
*/
pluginManagement {
repositories {
includeBuild("plugins")
gradlePluginPortal()
google()
mavenCentral()
}
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
maven {
url = uri("https://www.jitpack.io")
content {
includeModule("com.github.matrix-org", "matrix-analytics-events")
// Required transitively by androidx.media3:media3-exoplayer-midi for MIDI playback.
includeModule("com.github.philburk", "jsyn")
// This is a fork of Konsist that skips hidden folders and files, which otherwise can cause performance issues.
includeModule("com.github.jmartinesp", "konsist")
}
}
// Check for official Android-related packages only in Google's maven repo
exclusiveContent {
forRepository {
google()
}
filter {
includeGroupByRegex("android\\..*")
includeGroupByRegex("androidx\\..*")
includeGroupByRegex("com\\.android\\.tools.*")
includeGroupByRegex("com\\.google\\.firebase.*")
includeGroupByRegex("com\\.google\\.android.*")
}
}
mavenCentral()
maven {
url = uri("https://repo1.maven.org/maven2/")
}
flatDir {
dirs("libraries/matrix/libs")
}
}
}
enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS")
rootProject.name = "ElementX"
include(":app")
include(":appnav")
include(":appconfig")
include(":appicon:element")
include(":appicon:enterprise")
include(":tests:detekt-rules")
include(":tests:konsist")
include(":tests:uitests")
include(":tests:testutils")
include(":annotations")
include(":codegen")
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")
// Uncomment to include the compound-android module as a local dependency so you can work on it locally.
// You will also need to clone it in the specified folder.
// includeBuild("checkouts/compound-android") {
// dependencySubstitution {
// // substitute remote dependency with local module
// substitute(module("io.element.android:compound-android")).using(project(":compound"))
// }
// }