| // Copyright 2013 The Flutter Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // To use, run: |
| // $ gradle updateDependencies |
| // |
| // This script downloads the embedding dependencies into a lib/ directory, |
| // extract jar files from AARs, so they can be used in gn. |
| def destinationDir = "lib" |
| |
| buildscript { |
| repositories { |
| google() |
| jcenter() |
| } |
| dependencies { |
| classpath "com.android.tools.build:gradle:3.5.0" |
| } |
| } |
| |
| allprojects { |
| repositories { |
| google() |
| jcenter() |
| } |
| } |
| |
| apply plugin: "com.android.application" |
| |
| configurations { |
| // Use this configuration for dependencies required by the embedding. |
| embedding |
| // Use any of these configurations for dependencies required for testing the embedding. |
| embeddingTesting |
| embeddingTesting_v16 |
| } |
| |
| android { |
| compileSdkVersion 30 |
| |
| dependencies { |
| embedding "androidx.annotation:annotation:1.1.0" |
| embedding "androidx.fragment:fragment:1.1.0" |
| |
| def lifecycle_version = "2.2.0" |
| embedding "androidx.lifecycle:lifecycle-runtime:$lifecycle_version" |
| embedding "androidx.lifecycle:lifecycle-common:$lifecycle_version" |
| embedding "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version" |
| |
| // This dependency is here to allow linking to Play core in tests, but |
| // is not used in a default Flutter app. This dependency should be manually |
| // added to the user's app gradle in order to opt into using split AOT |
| // dynamic features. |
| embedding "com.google.android.play:core:1.8.0" |
| |
| // Testing |
| // TODO(xster): remove these android-all compile time dependencies. |
| // Use https://github.com/robolectric/robolectric/blob/master/robolectric/src/main/java/org/robolectric/plugins/LegacyDependencyResolver.java#L24 |
| // and specify them as runtime dependencies. |
| embeddingTesting "org.robolectric:android-all:9-robolectric-4913185-2" |
| // Get robolectric shadows for SDK=16 used by PlatformPluginTest. |
| embeddingTesting_v16 "org.robolectric:android-all:4.1.2_r1-robolectric-r1" |
| embeddingTesting "androidx.fragment:fragment-testing:1.1.0" |
| embeddingTesting "org.mockito:mockito-all:1.10.19" |
| embeddingTesting ("org.robolectric:robolectric:4.3") { |
| // org.hamcrest is added by org.mockito:mockito-all |
| exclude group: "org.hamcrest", module:"hamcrest-core" |
| } |
| embeddingTesting ("junit:junit:4.13") { |
| // org.hamcrest is added by org.mockito:mockito-all |
| exclude group: "org.hamcrest", module:"hamcrest-core" |
| } |
| } |
| } |
| |
| task updateDependencies() { |
| delete destinationDir |
| // Copy the dependencies from the compileOnly configuration into |
| // the destination directory. |
| copy { |
| from configurations.embedding |
| from configurations.embeddingTesting |
| from configurations.embeddingTesting_v16 |
| into destinationDir |
| } |
| doLast { |
| // Extract classes.jar from aar and rename it as the dependency name .jar |
| // since javac doesn't support AARs. |
| fileTree(destinationDir) |
| .filter { it.name.endsWith(".aar") } |
| .collect { aarDependency -> |
| def dependencyName = "${aarDependency.name.take(aarDependency.name.lastIndexOf('.'))}"; |
| copy { |
| into destinationDir |
| from(zipTree(aarDependency)) { |
| include "classes.jar" |
| } |
| rename "classes.jar", "${dependencyName}.jar" |
| } |
| delete aarDependency |
| } |
| } |
| doLast { |
| fileTree(destinationDir) |
| .collect { dependency -> |
| println "\"//third_party/robolectric/lib/${dependency.name}\"," |
| } |
| } |
| } |