blob: 5d893261031585e5973111c98e737338dae3b44f [file] [log] [blame]
# Copyright 2019 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/config/android/config.gni")
import(
"//chrome/android/features/autofill_assistant/autofill_assistant_module.gni")
import("//chrome/android/features/dev_ui/dev_ui_module.gni")
import("//chrome/android/features/tab_ui/tab_ui_module.gni")
import("//chrome/android/modules/buildflags.gni")
import(
"//chrome/android/modules/cablev2_authenticator/cablev2_authenticator_module.gni")
import("//chrome/android/modules/extra_icu/extra_icu_module.gni")
import("//chrome/android/modules/stack_unwinder/stack_unwinder_module.gni")
import("//chrome/android/modules/test_dummy/test_dummy_module.gni")
import("//device/vr/buildflags/buildflags.gni")
import("//weblayer/variables.gni")
import("//weblayer/weblayer_module.gni")
if (enable_vr) {
import("//chrome/android/features/vr/vr_module.gni")
}
if (enable_arcore) {
import("//chrome/android/features/ar/ar_module.gni")
}
# List of feature module descs for each Chrome flavor. These lists are used to
# autogenerate the relevant module targets and bundles. A feature module desc
# is a GN scope with the following fields:
# name: Name of feature module.
# java_deps: Java libraries and resources going into module.
# android_manifest: AndroidManifest.xml of module.
# android_manifest_dep: (Optional) Target that generates AndroidManifest.xml.
# native_deps: (Optional) Native code going into module.
# native_entrypoints: (Optional) File with list of exposed symbols from native
# feature module library.
# loadable_modules_32_bit: (Optional) List of additional 32-bit shared
# library files going into module if the module is executed in 32 bit.
# loadable_modules_64_bit: (Optional) List of additional 64-bit shared
# library files going into module if the module is executed in 64 bit.
# pak_deps: (Optional) Grit or repack targets of PAKs going into module.
# paks: (Optional) PAKs going into module.
# Each new module needs to add a desc to one of the lists below.
# Modules shipped in Chrome Modern (Android L+).
chrome_modern_module_descs = [
test_dummy_module_desc,
extra_icu_module_desc,
stack_unwinder_module_desc,
]
if (enable_vr) {
chrome_modern_module_descs += [ vr_module_desc ]
}
if (dfmify_dev_ui) {
chrome_modern_module_descs += [ dev_ui_module_desc ]
}
# Modules shipped in Monochrome (Android N+).
monochrome_module_descs = chrome_modern_module_descs
if (false) { # AR DFM is currently disabled
monochrome_module_descs += [ ar_module_desc ]
}
if (!disable_tab_ui_dfm) {
monochrome_module_descs += [ tab_ui_module_desc ]
}
monochrome_module_descs += [ cablev2_authenticator_module_desc ]
# Modules shipped in Trichrome (Android Q+).
trichrome_module_descs = monochrome_module_descs
# Add this after we assign trichrome_module_descs, since WebLayer should only be
# part of Monochrome.
if (enable_chrome_module && webview_includes_weblayer) {
monochrome_module_descs += [ weblayer_module_desc ]
}
# Add a slightly different autofill_assistant module desc for trichrome compared
# to monochrome.
if (!disable_autofill_assistant_dfm) {
monochrome_module_descs += [ autofill_assistant_module_desc ]
trichrome_module_descs += [ autofill_assistant_module_trichrome_desc ]
}