diff --git a/packages/flutter_tools/gradle/resolve_dependencies.gradle b/packages/flutter_tools/gradle/resolve_dependencies.gradle deleted file mode 100644 index 65b53fdbd3..0000000000 --- a/packages/flutter_tools/gradle/resolve_dependencies.gradle +++ /dev/null @@ -1,67 +0,0 @@ -// This script is used to warm the Gradle cache by downloading the Flutter dependencies -// used during the build. This script is invoked when `flutter precache` is run. -// -// Command: -// gradle -b packages/flutter_tools/gradle/resolve_dependencies.gradle -// resolveDependencies -// -// This way, Gradle can run with the `--offline` flag later on to eliminate any -// network request during the build process. -// -// This includes: -// 1. The embedding -// 2. libflutter.so - -import java.nio.file.Paths - -String storageUrl = System.getenv('FLUTTER_STORAGE_BASE_URL') ?: "https://storage.googleapis.com" - -String engineRealm = Paths.get(flutterRoot.absolutePath, "bin", "internal", "engine.realm") - .toFile().text.trim() -if (engineRealm) { - engineRealm += "/" -} - -repositories { - google() - mavenCentral() - maven { - url "$storageUrl/${engineRealm}download.flutter.io" - } -} - -File flutterRoot = projectDir.parentFile.parentFile.parentFile - -assert flutterRoot.isDirectory() -String engineVersion = Paths.get(flutterRoot.absolutePath, "bin", "internal", "engine.version") - .toFile().text.trim() - -configurations { - flutterRelease.extendsFrom releaseImplementation - flutterDebug.extendsFrom debugImplementation - flutterProfile.extendsFrom debugImplementation -} - -dependencies { - flutterRelease "io.flutter:flutter_embedding_release:1.0.0-$engineVersion" - flutterRelease "io.flutter:armeabi_v7a_release:1.0.0-$engineVersion" - flutterRelease "io.flutter:arm64_v8a_release:1.0.0-$engineVersion" - - flutterProfile "io.flutter:flutter_embedding_profile:1.0.0-$engineVersion" - flutterProfile "io.flutter:armeabi_v7a_profile:1.0.0-$engineVersion" - flutterProfile "io.flutter:arm64_v8a_profile:1.0.0-$engineVersion" - - flutterDebug "io.flutter:flutter_embedding_debug:1.0.0-$engineVersion" - flutterDebug "io.flutter:armeabi_v7a_debug:1.0.0-$engineVersion" - flutterDebug "io.flutter:arm64_v8a_debug:1.0.0-$engineVersion" - flutterDebug "io.flutter:x86_debug:1.0.0-$engineVersion" - flutterDebug "io.flutter:x86_64_debug:1.0.0-$engineVersion" -} - -tasks.register('resolveDependencies') { - configurations.each { configuration -> - if (configuration.name.startsWith("flutter")) { - configuration.resolve() - } - } -} diff --git a/packages/flutter_tools/gradle/resolve_dependencies.gradle.kts b/packages/flutter_tools/gradle/resolve_dependencies.gradle.kts new file mode 100644 index 0000000000..8f67e1eff1 --- /dev/null +++ b/packages/flutter_tools/gradle/resolve_dependencies.gradle.kts @@ -0,0 +1,94 @@ +import java.nio.file.Paths + +// This script is used to warm the Gradle cache by downloading the Flutter dependencies +// used during the build. This script is invoked when `flutter precache` is run. +// +// Command: +// gradle -b packages/flutter_tools/gradle/resolve_dependencies.gradle.kts +// resolveDependencies +// +// This way, Gradle can run with the `--offline` flag later on to eliminate any +// network request during the build process. +// +// This includes: +// 1. The embedding +// 2. libflutter.so + +val storageUrl: String = System.getenv("FLUTTER_STORAGE_BASE_URL") ?: "https://storage.googleapis.com" + +val flutterRoot = projectDir.parentFile?.parentFile?.parentFile +requireNotNull(flutterRoot) { "Flutter root directory not found!" } + +require(flutterRoot.isDirectory) { "Flutter root is not a valid directory!" } + +val engineVersion = + Paths.get( + flutterRoot.absolutePath, + "bin", + "internal", + "engine.version" + ) + .toFile() + .readText() + .trim() + +var engineRealm = + Paths.get( + flutterRoot.absolutePath, + "bin", + "internal", + "engine.realm" + ) + .toFile() + .readText() + .trim() + +if (engineRealm.isNotEmpty()) { + engineRealm += "/" +} + +repositories { + google() + mavenCentral() + maven { + url = uri("$storageUrl/${engineRealm}download.flutter.io") + } +} + +configurations { + create("flutterRelease") { + extendsFrom(configurations.getByName("releaseImplementation")) + } + create("flutterDebug") { + extendsFrom(configurations.getByName("debugImplementation")) + } + create("flutterProfile") { + extendsFrom(configurations.getByName("debugImplementation")) + } +} + +dependencies { + "flutterRelease"("io.flutter:flutter_embedding_release:1.0.0-$engineVersion") + "flutterRelease"("io.flutter:armeabi_v7a_release:1.0.0-$engineVersion") + "flutterRelease"("io.flutter:arm64_v8a_release:1.0.0-$engineVersion") + + "flutterProfile"("io.flutter:flutter_embedding_profile:1.0.0-$engineVersion") + "flutterProfile"("io.flutter:armeabi_v7a_profile:1.0.0-$engineVersion") + "flutterProfile"("io.flutter:arm64_v8a_profile:1.0.0-$engineVersion") + + "flutterDebug"("io.flutter:flutter_embedding_debug:1.0.0-$engineVersion") + "flutterDebug"("io.flutter:armeabi_v7a_debug:1.0.0-$engineVersion") + "flutterDebug"("io.flutter:arm64_v8a_debug:1.0.0-$engineVersion") + "flutterDebug"("io.flutter:x86_debug:1.0.0-$engineVersion") + "flutterDebug"("io.flutter:x86_64_debug:1.0.0-$engineVersion") +} + +tasks.register("resolveDependencies") { + doLast { + configurations.forEach { configuration -> + if (configuration.name.startsWith("flutter")) { + configuration.resolve() + } + } + } +} diff --git a/packages/flutter_tools/lib/src/flutter_cache.dart b/packages/flutter_tools/lib/src/flutter_cache.dart index df67547ae4..04f3d0b17b 100644 --- a/packages/flutter_tools/lib/src/flutter_cache.dart +++ b/packages/flutter_tools/lib/src/flutter_cache.dart @@ -403,7 +403,7 @@ class AndroidMavenArtifacts extends ArtifactSet { 'packages', 'flutter_tools', 'gradle', - 'resolve_dependencies.gradle', + 'resolve_dependencies.gradle.kts', ), '--project-cache-dir', tempDir.path, diff --git a/packages/flutter_tools/test/general.shard/cache_test.dart b/packages/flutter_tools/test/general.shard/cache_test.dart index c6f510be2d..6449af6f09 100644 --- a/packages/flutter_tools/test/general.shard/cache_test.dart +++ b/packages/flutter_tools/test/general.shard/cache_test.dart @@ -1229,7 +1229,7 @@ void main() { command: [ '/bin/cache/flutter_gradle_wrapper.rand0/gradlew', '-b', - 'packages/flutter_tools/gradle/resolve_dependencies.gradle', + 'packages/flutter_tools/gradle/resolve_dependencies.gradle.kts', '--project-cache-dir', '/bin/cache/flutter_gradle_wrapper.rand0', 'resolveDependencies',