Avi Drissman | 04c79e10 | 2022-10-06 18:59:02 | [diff] [blame] | 1 | # Copyright 2019 The Chromium Authors |
Peter Wen | 22bc3ec | 2019-03-28 22:18:02 | [diff] [blame] | 2 | # Use of this source code is governed by a BSD-style license that can be |
| 3 | # found in the LICENSE file. |
| 4 | |
| 5 | import("//build/config/android/rules.gni") |
| 6 | |
Peter Wen | 22bc3ec | 2019-03-28 22:18:02 | [diff] [blame] | 7 | if (enable_java_templates) { |
| 8 | android_system_java_prebuilt("public_framework_system_java") { |
Joanna Wang | 681bd3a | 2024-08-16 16:58:32 | [diff] [blame] | 9 | jar_path = "//third_party/android_system_sdk/cipd/android_system.jar" |
Peter Wen | 22bc3ec | 2019-03-28 22:18:02 | [diff] [blame] | 10 | } |
| 11 | |
| 12 | android_system_java_prebuilt("android_sdk_java") { |
| 13 | jar_path = android_sdk_jar |
| 14 | } |
| 15 | |
Andrew Grieve | 31253c0 | 2023-08-28 16:31:26 | [diff] [blame] | 16 | template("android_sdk_optional_library") { |
| 17 | forward_variables_from(invoker, [ "testonly" ]) |
| 18 | _manifest_path = "$target_gen_dir/$target_name/AndroidManifest.xml" |
| 19 | |
| 20 | # String replace to prevent dep from being treated as a java library. |
| 21 | _manifest_target = string_replace(target_name, "_java", "_J") + "__manifest" |
Peter Wen | 22bc3ec | 2019-03-28 22:18:02 | [diff] [blame] | 22 | jinja_template(_manifest_target) { |
Peter Wen | 22bc3ec | 2019-03-28 22:18:02 | [diff] [blame] | 23 | input = "//third_party/android_sdk/AndroidManifest.xml.jinja2" |
Andrew Grieve | 31253c0 | 2023-08-28 16:31:26 | [diff] [blame] | 24 | output = _manifest_path |
Andrew Grieve | e29e190 | 2024-03-07 17:02:09 | [diff] [blame] | 25 | if (defined(invoker.runtime_library_name)) { |
| 26 | _library_name = invoker.runtime_library_name |
Andrew Grieve | 2e9bdbf | 2025-02-21 20:44:34 | [diff] [blame] | 27 | } else { |
| 28 | _library_name = invoker.library_name |
Andrew Grieve | e29e190 | 2024-03-07 17:02:09 | [diff] [blame] | 29 | } |
| 30 | variables = [ |
| 31 | "library_name=$_library_name", |
| 32 | "required=${invoker.required}", |
| 33 | ] |
Peter Wen | 22bc3ec | 2019-03-28 22:18:02 | [diff] [blame] | 34 | } |
Peter Wen | 22bc3ec | 2019-03-28 22:18:02 | [diff] [blame] | 35 | java_group(target_name) { |
Andrew Grieve | 70a1f51e | 2024-01-02 18:10:57 | [diff] [blame] | 36 | forward_variables_from(invoker, [ "jar_deps" ]) |
Andrew Grieve | 31253c0 | 2023-08-28 16:31:26 | [diff] [blame] | 37 | deps = [ ":$_manifest_target" ] |
Andrew Grieve | 70a1f51e | 2024-01-02 18:10:57 | [diff] [blame] | 38 | if (defined(invoker.deps)) { |
| 39 | deps += invoker.deps |
| 40 | } |
Andrew Grieve | 31253c0 | 2023-08-28 16:31:26 | [diff] [blame] | 41 | |
| 42 | # Makes the .jar appear in the classpath for compile steps. |
Andrew Grieve | 70a1f51e | 2024-01-02 18:10:57 | [diff] [blame] | 43 | if (defined(invoker.input_jars_paths)) { |
| 44 | input_jars_paths = invoker.input_jars_paths |
| 45 | } else { |
| 46 | input_jars_paths = |
| 47 | [ "${android_sdk}/optional/${invoker.library_name}.jar" ] |
| 48 | } |
Andrew Grieve | 31253c0 | 2023-08-28 16:31:26 | [diff] [blame] | 49 | |
| 50 | # Adds the <uses-library> tag to the manifest. |
| 51 | mergeable_android_manifests = [ _manifest_path ] |
Peter Wen | 22bc3ec | 2019-03-28 22:18:02 | [diff] [blame] | 52 | } |
| 53 | } |
| 54 | |
Andrew Grieve | 31253c0 | 2023-08-28 16:31:26 | [diff] [blame] | 55 | android_sdk_optional_library("android_test_mock_java") { |
| 56 | testonly = true |
Andrew Grieve | e29e190 | 2024-03-07 17:02:09 | [diff] [blame] | 57 | required = true |
Andrew Grieve | 31253c0 | 2023-08-28 16:31:26 | [diff] [blame] | 58 | library_name = "android.test.mock" |
Andrew Grieve | e29e190 | 2024-03-07 17:02:09 | [diff] [blame] | 59 | runtime_library_name = "android.test.runner" |
Andrew Grieve | 31253c0 | 2023-08-28 16:31:26 | [diff] [blame] | 60 | } |
| 61 | android_sdk_optional_library("android_car_java") { |
| 62 | library_name = "android.car" |
Andrew Grieve | e29e190 | 2024-03-07 17:02:09 | [diff] [blame] | 63 | required = false |
Peter Wen | 22bc3ec | 2019-03-28 22:18:02 | [diff] [blame] | 64 | } |
Andrew Grieve | 2e9bdbf | 2025-02-21 20:44:34 | [diff] [blame] | 65 | android_sdk_optional_library("android_xr_extensions_java") { |
| 66 | runtime_library_name = "com.android.extensions.xr" |
Andrew Grieve | dd0bdae | 2025-04-15 18:06:04 | [diff] [blame] | 67 | input_jars_paths = [ "xr_extensions/com.android.extensions.xr.jar" ] |
Andrew Grieve | 2e9bdbf | 2025-02-21 20:44:34 | [diff] [blame] | 68 | required = false |
| 69 | } |
Andrew Grieve | ead49fe | 2024-01-05 03:22:20 | [diff] [blame] | 70 | if (!limit_android_deps) { |
| 71 | android_sdk_optional_library("android_window_extensions_java") { |
| 72 | library_name = "androidx.window.extensions" |
Andrew Grieve | e29e190 | 2024-03-07 17:02:09 | [diff] [blame] | 73 | required = false |
Andrew Grieve | ead49fe | 2024-01-05 03:22:20 | [diff] [blame] | 74 | jar_deps = [ "//third_party/android_sdk/window_extensions:androidx_window_extensions" ] |
| 75 | deps = |
| 76 | [ "//third_party/androidx:androidx_annotation_annotation_jvm_java" ] |
Andrew Grieve | dd0bdae | 2025-04-15 18:06:04 | [diff] [blame] | 77 | input_jars_paths = [ "$root_build_dir/obj/third_party/android_sdk/window_extensions/androidx_window_extensions_java.turbine.jar" ] |
Andrew Grieve | ead49fe | 2024-01-05 03:22:20 | [diff] [blame] | 78 | } |
Andrew Grieve | 70a1f51e | 2024-01-02 18:10:57 | [diff] [blame] | 79 | } |
Peter Wen | 22bc3ec | 2019-03-28 22:18:02 | [diff] [blame] | 80 | } |
Sam Maier | ff13138 | 2025-05-01 14:58:23 | [diff] [blame] | 81 | |
Sam Maier | bc835c5 | 2025-05-22 18:47:03 | [diff] [blame] | 82 | if (android_ndk_api_level >= 29) { |
Sam Maier | ff13138 | 2025-05-01 14:58:23 | [diff] [blame] | 83 | config("libbinder_include") { |
| 84 | include_dirs = [ "$android_sdk/optional/libbinder_ndk_cpp/" ] |
| 85 | } |
| 86 | } |