56 lines
No EOL
2.4 KiB
Text
56 lines
No EOL
2.4 KiB
Text
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
|
|
|
// Top-level build file where you can add configuration options common to all sub-projects/modules.
|
|
plugins {
|
|
alias(libs.plugins.android.application) apply false
|
|
alias(libs.plugins.android.library) apply false
|
|
alias(libs.plugins.compose.compiler) apply false
|
|
alias(libs.plugins.kotlin.serialization) apply false
|
|
alias(libs.plugins.kotlin.parcelize) apply false
|
|
alias(libs.plugins.ksp) apply false
|
|
alias(libs.plugins.aboutlibraries) apply false
|
|
alias(libs.plugins.aboutlibraries.multiplatform) apply false
|
|
alias(libs.plugins.room) apply false
|
|
alias(libs.plugins.sentry.gradle) apply false
|
|
alias(libs.plugins.android.lint) apply false
|
|
alias(libs.plugins.compose.multiplatform) apply false
|
|
alias(libs.plugins.kotlin.multiplatform) apply false
|
|
alias(libs.plugins.android.kotlin.multiplatform.library) apply false
|
|
alias(libs.plugins.jetbrains.kotlin.jvm) apply false
|
|
alias(libs.plugins.build.config) apply false
|
|
alias(libs.plugins.osdetector) apply false
|
|
alias(libs.plugins.conveyor) apply false
|
|
alias(libs.plugins.compose.hotReload) apply false
|
|
}
|
|
|
|
tasks.register<Delete>("Clean") {
|
|
delete(rootProject.layout.buildDirectory)
|
|
}
|
|
|
|
subprojects {
|
|
tasks.withType<KotlinCompile>().configureEach {
|
|
compilerOptions {
|
|
if (project.findProperty("enableComposeCompilerReports") == "true") {
|
|
arrayOf("reports", "metrics").forEach {
|
|
freeCompilerArgs.addAll(
|
|
listOf(
|
|
"-P",
|
|
"plugin:androidx.compose.compiler.plugins.kotlin:${it}Destination=${layout.buildDirectory.asFile.get().absolutePath}/compose_metrics",
|
|
),
|
|
)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// PipePipe and Brave both depend on com.github.TeamNewPipe:nanojson with different commit
|
|
// hashes. Gradle's default resolver picks PipePipe's older 1d9e1aea... commit which lacks
|
|
// JsonArray.streamAsJsonObjects(), causing NoSuchMethodError when Brave's fallback runs at
|
|
// runtime. Force the latest upstream commit (newer than both libs ship) across every module
|
|
// so the merged APK/JAR carries a nanojson with the API both extractors expect.
|
|
configurations.all {
|
|
resolutionStrategy {
|
|
force("com.github.TeamNewPipe:nanojson:c7a6c1c08d16b6d5ecded34758e6415e07be2166")
|
|
}
|
|
}
|
|
} |