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(":app", ":features", ":core", ":platform", ":rust-bridge")