New issue
Advanced search Search tips

Issue 865108 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Aug 3
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 1
Type: Task

Blocking:
issue 862694
issue 863063



Sign in to add a comment

DFMs: Add separate base module targets

Project Member Reported by tiborg@chromium.org, Jul 18

Issue description

In order to facilitate transitioning to AABs, add module versions of the Chrome APK targets - e.g. chrome_public_base_module could be the module version of chrome_public_apk. This lets us configure the non-bundle Chrome APKs to contain the DFMs while the base modules don't contain the DFMs. By doing so, the Chrome APKs keep being fully functional while we can develop the AABs and feature modules. 

As a second benefit, that lets us prevent to build a module on it's own in release mode, which would be incompatible due to synchronized proguarding (see  issue 862696 ).
 
Blocking: 863063
Blocking: 862694
Landed af230902dc50673782e6789dd87775a3c8a8b1ee, which splits APKs and bundle targets. Some more refactor is necessary so that changes to public base modules are automatically reflected in the internal base modules.
Project Member

Comment 4 by bugdroid1@chromium.org, Aug 3

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/90944747cb1f2fb8b73a0db4c3e820104170f590

commit 90944747cb1f2fb8b73a0db4c3e820104170f590
Author: David 'Digit' Turner <digit@google.com>
Date: Fri Aug 03 13:22:08 2018

android: build: Simplify chrome/monochrome GN templates.

This CL simplifies and refactors a bit the GN templates
used to build the [mono]chrome[_modern]_public_XXX templates
(including APKs and bundles).

- Add build/android/docs/android_app_bundles.md to better
  explain what is going on here.

- Unsynchronized proguarding of application bundles was
  broken by the CL that introduced synchronized proguarding.
  This CL fixes it by simply making synchronized proguarding
  the default for all app bundles (when proguard_enabled is
  true). It doesn't really make sense to support regular
  proguarding, since the chances that something wrong will
  happen are too high.

  This also reduces the number of build state variants that
  need to be supported for an individual bundle module.

- The chrome_public_apk_tmpl_shared() GN template defined in
  chrome/android/BUILD.gn was not very useful and only serves
  to add some dependencies. Remove it and adjust all callers
  to add the equivalent dependency list to their |deps|
  variable instead, to simplify things.

- Remove chrome_modern_public_apk_or_module_tmpl() entirely.
  Instead, add an |is_modern| variable to
  chrome_public_apk_or_module_tmpl() that takes care of adding
  the necessary declarations corresponding to modern builds
  to the template.

- Hard-code version_name to chrome_version in
  chrome_public_apk_or_module_tmpl() since all callers define
  it to |chrome_version| anyway.

- rules.gni: Add missing variable forward, required for
  the clank/ targets only.

- Rename chrome_public_apk_tmpl() to
  chrome_public_common_apk_or_module_tmpl() to match its
  intended usage. Note that chrome_public_apk_tmpl()
  wrappers are still available to ensure the clank/ build
  doesn't break.

  Similarly, define monochrome_public_common_apk_or_module_tmpl()
  (yes, a bit long, but really only internal).

- Add documentation to various intermediate GN templates to
  make it easier to understand what's going on.

BUG= 865108 
R=agrieve@chromium.org, tiborg@chromium.org, yfriedman@chromium.org

Change-Id: Ia4f79429a8e32c97630c90ce126362eb7534252c
Reviewed-on: https://chromium-review.googlesource.com/1154979
Commit-Queue: David Turner <digit@chromium.org>
Reviewed-by: agrieve <agrieve@chromium.org>
Reviewed-by: Tibor Goldschwendt <tiborg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#580522}
[add] https://crrev.com/90944747cb1f2fb8b73a0db4c3e820104170f590/build/android/docs/android_app_bundles.md
[modify] https://crrev.com/90944747cb1f2fb8b73a0db4c3e820104170f590/build/android/gyp/write_build_config.py
[modify] https://crrev.com/90944747cb1f2fb8b73a0db4c3e820104170f590/build/config/android/internal_rules.gni
[modify] https://crrev.com/90944747cb1f2fb8b73a0db4c3e820104170f590/build/config/android/rules.gni
[modify] https://crrev.com/90944747cb1f2fb8b73a0db4c3e820104170f590/chrome/android/BUILD.gn
[modify] https://crrev.com/90944747cb1f2fb8b73a0db4c3e820104170f590/chrome/android/chrome_public_apk_tmpl.gni
[modify] https://crrev.com/90944747cb1f2fb8b73a0db4c3e820104170f590/docs/README.md

Status: Fixed (was: Started)
Project Member

Comment 6 by bugdroid1@chromium.org, Aug 9

The following revision refers to this bug:
  https://chrome-internal.googlesource.com/clank/internal/apps/+/43239a4951600d1dbbd40e294e85527ee3429600

commit 43239a4951600d1dbbd40e294e85527ee3429600
Author: David 'Digit' Turner <digit@google.com>
Date: Thu Aug 09 10:52:19 2018

Project Member

Comment 7 by bugdroid1@chromium.org, Aug 9

The following revision refers to this bug:
  https://chrome-internal.googlesource.com/clank/internal/apps/+/6b0c96e919dfdd60305111b40c9a1e6459057e62

commit 6b0c96e919dfdd60305111b40c9a1e6459057e62
Author: Ted Choc <tedchoc@google.com>
Date: Thu Aug 09 23:10:38 2018

Project Member

Comment 8 by bugdroid1@chromium.org, Aug 10

The following revision refers to this bug:
  https://chrome-internal.googlesource.com/clank/internal/apps/+/5c3cc6dac0d7d6ffa810c5e3f575c79ce6f52fc9

commit 5c3cc6dac0d7d6ffa810c5e3f575c79ce6f52fc9
Author: David 'Digit' Turner <digit@google.com>
Date: Fri Aug 10 17:14:47 2018

Sign in to add a comment