Implement independent hardening and regression coverage. Keep #105 open for final feature and environment coverage after #106–#110; document the completion boundary and resume order.
39 lines
1.7 KiB
Kotlin
39 lines
1.7 KiB
Kotlin
import groovy.json.JsonSlurper
|
|
import java.io.File
|
|
|
|
pluginManagement {
|
|
repositories {
|
|
google()
|
|
mavenCentral()
|
|
gradlePluginPortal()
|
|
}
|
|
}
|
|
dependencyResolutionManagement {
|
|
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
|
|
repositories {
|
|
google()
|
|
mavenCentral()
|
|
// The official verifier JVM support is shipped in the checksum-pinned Cargo crate.
|
|
val cargo = providers.environmentVariable("CARGO").orElse(
|
|
providers.environmentVariable("PATH").map { path ->
|
|
path.split(File.pathSeparatorChar).map { File(it, "cargo") }
|
|
.firstOrNull { it.isFile && it.canExecute() }?.absolutePath
|
|
?: error("Cargo is required for the Android TLS verifier")
|
|
}
|
|
)
|
|
val metadata = providers.exec {
|
|
workingDir = file("..")
|
|
commandLine(cargo.get(), "+1.97.1", "metadata", "--locked", "--offline", "--format-version", "1", "--filter-platform", "aarch64-linux-android")
|
|
}.standardOutput.asText
|
|
val packages = (JsonSlurper().parseText(metadata.get()) as Map<*, *>)["packages"] as List<*>
|
|
val verifier = packages.map { it as Map<*, *> }.single { it["name"] == "rustls-platform-verifier-android" }
|
|
check(verifier["version"] == "0.1.1") { "Update the verifier catalog pin with its Cargo component" }
|
|
maven {
|
|
url = uri(File(verifier["manifest_path"] as String).parentFile.resolve("maven"))
|
|
content { includeModule("rustls", "rustls-platform-verifier") }
|
|
}
|
|
}
|
|
}
|
|
rootProject.name = "IronStorage"
|
|
include(":performance", ":app", ":features", ":core", ":platform", ":rust-bridge")
|