Updating the Embedding Dependencies

The instructions in this README explain how to create a CIPD package that contains the build-time dependencies of the Android embedding of the Engine, and the dependencies of the in-tree testing framework. The Android embedder is shipped to Flutter end-users, but these build-time dependencies are not. Therefore, the license script can skip over the destination of the CIPD package in an Engine checkout at src/third_party/android_embedding_dependencies. Even so, the CIPD package should contain a LICENSE file, and the instructions below explain how to fetch the license information for the dependencies.

Requirements

  1. If you have a flutter/engine checkout, then you should already have Depot tools on your path.
  2. You should have a copy of gradle in a flutter/engine checkout under src/third_party/gradle/bin/gradle.

Steps

  1. Update src/flutter/tools/androidx/files.json. (This file includes the Maven dependencies used to build Flutter apps).
  2. cd into this directory: src/flutter/tools/cipd/android_embedding_bundle.
  3. Run gradle downloadLicenses
  4. Run gradle updateDependencies
  5. Examine the file ./build/reports/license/license-dependency.xml. If it contains licenses other than “The Apache License, Version 2.0” or something very similar, STOP. Ask Hixie for adivce on how to proceed.
  6. Copy or move the lib/ directory to src/third_party/android_embedding_dependencies/, overwriting its contents, and ensure the Android build still works.
  7. Run cipd create --pkg-def cipd.yaml -tag last_updated:"$version_tag" where $version_tag is the output of date +%Y-%m-%dT%T%z.
  8. Update the DEPS file entry for android_embedding_dependencies with the new tag: last_updated:"$version_tag".
  9. Update the GN list embedding_dependencies_jars in src/flutter/shell/platform/android/BUILD.gn.