Reland "Android: Add a GN target for android.car" This reverts commit 30d5b1ee39d0143e20ca71ac9d0cf77f9816e149. Reason for reland: Fixed java_group to not omit the dep Original change's description: > Revert "Android: Add a GN target for android.car" > > This reverts commit 1a3240eee7e762c4c24aa838dd98b4dece850ae8. > > Reason for revert: 1475805 > > Original change's description: > > Android: Add a GN target for android.car > > > > Bug: None > > Change-Id: Ic7560fcb8d37fc2206a0a0e1c75d0746394b152a > > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4809315 > > Commit-Queue: Sam Maier <smaier@chromium.org> > > Auto-Submit: Andrew Grieve <agrieve@chromium.org> > > Reviewed-by: Sam Maier <smaier@chromium.org> > > Cr-Commit-Position: refs/heads/main@{#1187885} > > Bug: None > Change-Id: Idfe18ba49188b23c6d93a848215e755c42880c4e > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4811459 > Auto-Submit: Sam Maier <smaier@chromium.org> > Commit-Queue: Patrick Noland <pnoland@chromium.org> > Reviewed-by: Patrick Noland <pnoland@chromium.org> > Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> > Owners-Override: Patrick Noland <pnoland@chromium.org> > Cr-Commit-Position: refs/heads/main@{#1188023} Bug: None Change-Id: I14f524426f2e9d3a8c010644302e518cefed09b3 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4817606 Reviewed-by: Sam Maier <smaier@chromium.org> Auto-Submit: Andrew Grieve <agrieve@chromium.org> Commit-Queue: Sam Maier <smaier@chromium.org> Commit-Queue: Andrew Grieve <agrieve@chromium.org> Cr-Commit-Position: refs/heads/main@{#1189006} NOKEYCHECK=True GitOrigin-RevId: 31253c0568c8f01d2d87944cba5fee12a14cb14b
diff --git a/AndroidManifest.xml.jinja2 b/AndroidManifest.xml.jinja2 index 5fc823f..0743507 100644 --- a/AndroidManifest.xml.jinja2 +++ b/AndroidManifest.xml.jinja2
@@ -5,12 +5,9 @@ found in the LICENSE file. --> -<!-- package name must be unique --> <manifest xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:tools="http://schemas.android.com/tools" - package="com.android.test_{{ library_name }}"> + package="sdk.optional.{{library_name}}"> <application> - <uses-library android:name="android.test.{{ library_name }}" - android:required="false" /> + <uses-library android:name="{{library_name}}" android:required="false" /> </application> </manifest>
diff --git a/BUILD.gn b/BUILD.gn index bd5419d..14af04e 100644 --- a/BUILD.gn +++ b/BUILD.gn
@@ -18,45 +18,42 @@ output_name = "android.privacy-sandbox.jar" } - template("android_test_jar_with_manifest") { - _manifest_output_path = "$target_gen_dir/$target_name/AndroidManifest.xml" - _manifest_target = "${target_name}__manifest" + template("android_sdk_optional_library") { + forward_variables_from(invoker, [ "testonly" ]) + _manifest_path = "$target_gen_dir/$target_name/AndroidManifest.xml" + + # String replace to prevent dep from being treated as a java library. + _manifest_target = string_replace(target_name, "_java", "_J") + "__manifest" jinja_template(_manifest_target) { - testonly = true input = "//third_party/android_sdk/AndroidManifest.xml.jinja2" - output = _manifest_output_path + output = _manifest_path variables = [ "library_name=${invoker.library_name}" ] } - - _resources_target = "${target_name}__resources" - android_resources(_resources_target) { - testonly = true - sources = [] - android_manifest = _manifest_output_path - android_manifest_dep = ":$_manifest_target" - } - java_group(target_name) { - testonly = true - deps = [ ":$_resources_target" ] - input_jars_paths = [ "${android_sdk}/optional/${invoker.jar_name}" ] + deps = [ ":$_manifest_target" ] + + # Makes the .jar appear in the classpath for compile steps. + input_jars_paths = + [ "${android_sdk}/optional/${invoker.library_name}.jar" ] + + # Adds the <uses-library> tag to the manifest. + mergeable_android_manifests = [ _manifest_path ] } } - # The android test libraries below are part of the main SDK jar - # and are linked by default on O and below. Starting in P, they - # exist in their own libraries that are present on device and are - # available to be linked against but aren't linked by default. - android_test_jar_with_manifest("android_test_base_java") { - library_name = "base" - jar_name = "android.test.base.jar" + android_sdk_optional_library("android_test_base_java") { + testonly = true + library_name = "android.test.base" } - android_test_jar_with_manifest("android_test_mock_java") { - library_name = "mock" - jar_name = "android.test.mock.jar" + android_sdk_optional_library("android_test_mock_java") { + testonly = true + library_name = "android.test.mock" } - android_test_jar_with_manifest("android_test_runner_java") { - library_name = "runner" - jar_name = "android.test.runner.jar" + android_sdk_optional_library("android_test_runner_java") { + testonly = true + library_name = "android.test.runner" + } + android_sdk_optional_library("android_car_java") { + library_name = "android.car" } }