Commit 23608875 authored by Nicolas Dossou-gbete's avatar Nicolas Dossou-gbete Committed by Commit Bot

🔧 Add GN flag to switch the source of the support lib

Setting enable_android_deps_repository to true will let the build
use the dependencies defined in //third_party/android_deps, that will
be added by https://crrev.com/c/819771.
By default this flag is disabled.

Bug: 807641
Change-Id: If75f7bbac38d2dc807ae35cdd8de0f229bcf6545
Reviewed-on: https://chromium-review.googlesource.com/895691
Commit-Queue: Nicolas Dossou-Gbété <dgn@chromium.org>
Reviewed-by: default avataragrieve <agrieve@chromium.org>
Cr-Commit-Position: refs/heads/master@{#534024}
parent 09f600fb
...@@ -188,6 +188,11 @@ if (is_android) { ...@@ -188,6 +188,11 @@ if (is_android) {
# When true, updates all android_aar_prebuilt() .info files during gn gen. # When true, updates all android_aar_prebuilt() .info files during gn gen.
# Refer to android_aar_prebuilt() for more details. # Refer to android_aar_prebuilt() for more details.
update_android_aar_prebuilts = false update_android_aar_prebuilts = false
# When true, uses the third party libraries from //third_party/android_deps
# over the ones in other places. (instead of the support library from
# android_tools for example)
enable_android_deps_repository = false
} }
# We need a second declare_args block to make sure we are using the overridden # We need a second declare_args block to make sure we are using the overridden
......
...@@ -3305,3 +3305,44 @@ if (enable_java_templates) { ...@@ -3305,3 +3305,44 @@ if (enable_java_templates) {
} }
} }
} }
# Compatibility wrapper to toggle android_deps usage for a dependency.
#
# This target creates a wrapper for a dependency allowing it to be loaded
# either from //third_party/android_deps or from an existing //third_party
# (or other) target.
#
# Variables
# fallback_target: Target to use when the android_deps repo is not enabled.
# android_deps_target_name: Name of the target from the android_deps repo to
# use when the repo is enabled. Is not set, the wrapper's target name will
# be used instead.
#
# Example
# prebuilt_wrapper("android_support_multidex_java") {
# android_deps_target_name = "com_android_support_multidex_java"
# fallback_target = "$android_support_library_package:$target_name"
# }
template("prebuilt_wrapper") {
if (defined(invoker.android_deps_target_name)) {
_resolved_android_deps_target_name = invoker.android_deps_target_name
} else {
_resolved_android_deps_target_name = target_name
}
if (enable_android_deps_repository) {
_resolved_target =
"//third_party/android_deps:${_resolved_android_deps_target_name}"
assert(invoker.fallback_target != "") # Mark as used.
} else {
_resolved_target = "${invoker.fallback_target}"
assert(_resolved_android_deps_target_name != "") # Mark as used.
}
java_group(target_name) {
forward_variables_from(invoker, [ "testonly" ])
deps = [
_resolved_target,
]
}
}
...@@ -46,35 +46,61 @@ support_lib_alias("android_gcm_java") { ...@@ -46,35 +46,61 @@ support_lib_alias("android_gcm_java") {
} }
support_lib_alias("emma_device_java") { support_lib_alias("emma_device_java") {
} }
support_lib_alias("android_arch_lifecycle_common_java") { prebuilt_wrapper("android_arch_lifecycle_common_java") {
fallback_target = "$android_support_library_package:$target_name"
} }
support_lib_alias("android_arch_lifecycle_runtime_java") { prebuilt_wrapper("android_arch_lifecycle_runtime_java") {
fallback_target = "$android_support_library_package:$target_name"
} }
support_lib_alias("android_support_multidex_java") { prebuilt_wrapper("android_support_multidex_java") {
android_deps_target_name = "com_android_support_multidex_java"
fallback_target = "$android_support_library_package:$target_name"
} }
support_lib_alias("android_support_annotations_java") { prebuilt_wrapper("android_support_annotations_java") {
android_deps_target_name = "com_android_support_support_annotations_java"
fallback_target = "$android_support_library_package:$target_name"
} }
support_lib_alias("android_support_cardview_java") { prebuilt_wrapper("android_support_cardview_java") {
android_deps_target_name = "com_android_support_cardview_v7_java"
fallback_target = "$android_support_library_package:$target_name"
} }
support_lib_alias("android_support_compat_java") { prebuilt_wrapper("android_support_compat_java") {
android_deps_target_name = "com_android_support_support_compat_java"
fallback_target = "$android_support_library_package:$target_name"
} }
support_lib_alias("android_support_core_ui_java") { prebuilt_wrapper("android_support_core_ui_java") {
android_deps_target_name = "com_android_support_support_core_ui_java"
fallback_target = "$android_support_library_package:$target_name"
} }
support_lib_alias("android_support_core_utils_java") { prebuilt_wrapper("android_support_core_utils_java") {
android_deps_target_name = "com_android_support_support_core_utils_java"
fallback_target = "$android_support_library_package:$target_name"
} }
support_lib_alias("android_support_design_java") { prebuilt_wrapper("android_support_design_java") {
android_deps_target_name = "com_android_support_design_java"
fallback_target = "$android_support_library_package:$target_name"
} }
support_lib_alias("android_support_v4_java") { prebuilt_wrapper("android_support_v4_java") {
fallback_target = "$android_support_library_package:$target_name"
} }
support_lib_alias("android_support_v7_appcompat_java") { prebuilt_wrapper("android_support_v7_appcompat_java") {
fallback_target = "$android_support_library_package:$target_name"
} }
support_lib_alias("android_support_v7_gridlayout_java") { prebuilt_wrapper("android_support_v7_gridlayout_java") {
android_deps_target_name = "com_android_support_gridlayout_v7_java"
fallback_target = "$android_support_library_package:$target_name"
} }
support_lib_alias("android_support_v7_mediarouter_java") { prebuilt_wrapper("android_support_v7_mediarouter_java") {
android_deps_target_name = "com_android_support_mediarouter_v7_java"
fallback_target = "$android_support_library_package:$target_name"
} }
support_lib_alias("android_support_v7_recyclerview_java") { prebuilt_wrapper("android_support_v7_recyclerview_java") {
android_deps_target_name = "com_android_support_recyclerview_v7_java"
fallback_target = "$android_support_library_package:$target_name"
} }
support_lib_alias("android_support_v13_java") { prebuilt_wrapper("android_support_v13_java") {
android_deps_target_name = "com_android_support_support_v13_java"
fallback_target = "$android_support_library_package:$target_name"
} }
# TODO(dgn): Use the POM files instead of hardcoding the dependencies. # TODO(dgn): Use the POM files instead of hardcoding the dependencies.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment