def useRemoteBuildCache = System.getenv("USE_ANDROIDX_REMOTE_BUILD_CACHE") == "true"

if (useRemoteBuildCache) {
    gradle.settingsEvaluated { settings ->
        settings.buildCache {
            remote(HttpBuildCache) {
                def osName = System.getProperty("os.name").toLowerCase()
                switch (osName) {
                    case { it.contains("mac os x") }:
                    case { it.contains("darwin") }:
                    case { it.contains("osx") }:
                        url = "http://gradle-remote-cache.uplink2.goog:999/cache/"
                        break
                    default:
                        url = "http://gradle-remote-cache.uplink.goog:999/cache/"
                        break
                }
                allowInsecureProtocol = true
                push = true
            }
        }
    }
} else {
    def uplinkLinux = new File("/usr/bin/uplink-helper")
    def uplinkMac = new File("/usr/local/bin/uplink-helper")
    if (uplinkLinux.exists() || uplinkMac.exists()) {
        logger.warn("\u001B[31m\nIt looks like you are a Googler running without remote build "
                + "cache. Enable it for faster builds, see " +
                "http://go/androidx-dev#remote-build-cache\u001B[0m\n")
    }
}
