blob: b1e5d148b6452f39ac569a5b0ecc98e2abf9f92b [file] [log] [blame]
Avi Drissman04c79e102022-10-06 18:59:021# Copyright 2019 The Chromium Authors
Peter Wen22bc3ec2019-03-28 22:18:022# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5import("//build/config/android/rules.gni")
6
Peter Wen22bc3ec2019-03-28 22:18:027if (enable_java_templates) {
8 android_system_java_prebuilt("public_framework_system_java") {
Joanna Wang681bd3a2024-08-16 16:58:329 jar_path = "//third_party/android_system_sdk/cipd/android_system.jar"
Peter Wen22bc3ec2019-03-28 22:18:0210 }
11
12 android_system_java_prebuilt("android_sdk_java") {
13 jar_path = android_sdk_jar
14 }
15
Andrew Grieve31253c02023-08-28 16:31:2616 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 Wen22bc3ec2019-03-28 22:18:0222 jinja_template(_manifest_target) {
Peter Wen22bc3ec2019-03-28 22:18:0223 input = "//third_party/android_sdk/AndroidManifest.xml.jinja2"
Andrew Grieve31253c02023-08-28 16:31:2624 output = _manifest_path
Andrew Grievee29e1902024-03-07 17:02:0925 if (defined(invoker.runtime_library_name)) {
26 _library_name = invoker.runtime_library_name
Andrew Grieve2e9bdbf2025-02-21 20:44:3427 } else {
28 _library_name = invoker.library_name
Andrew Grievee29e1902024-03-07 17:02:0929 }
30 variables = [
31 "library_name=$_library_name",
32 "required=${invoker.required}",
33 ]
Peter Wen22bc3ec2019-03-28 22:18:0234 }
Peter Wen22bc3ec2019-03-28 22:18:0235 java_group(target_name) {
Andrew Grieve70a1f51e2024-01-02 18:10:5736 forward_variables_from(invoker, [ "jar_deps" ])
Andrew Grieve31253c02023-08-28 16:31:2637 deps = [ ":$_manifest_target" ]
Andrew Grieve70a1f51e2024-01-02 18:10:5738 if (defined(invoker.deps)) {
39 deps += invoker.deps
40 }
Andrew Grieve31253c02023-08-28 16:31:2641
42 # Makes the .jar appear in the classpath for compile steps.
Andrew Grieve70a1f51e2024-01-02 18:10:5743 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 Grieve31253c02023-08-28 16:31:2649
50 # Adds the <uses-library> tag to the manifest.
51 mergeable_android_manifests = [ _manifest_path ]
Peter Wen22bc3ec2019-03-28 22:18:0252 }
53 }
54
Andrew Grieve31253c02023-08-28 16:31:2655 android_sdk_optional_library("android_test_mock_java") {
56 testonly = true
Andrew Grievee29e1902024-03-07 17:02:0957 required = true
Andrew Grieve31253c02023-08-28 16:31:2658 library_name = "android.test.mock"
Andrew Grievee29e1902024-03-07 17:02:0959 runtime_library_name = "android.test.runner"
Andrew Grieve31253c02023-08-28 16:31:2660 }
61 android_sdk_optional_library("android_car_java") {
62 library_name = "android.car"
Andrew Grievee29e1902024-03-07 17:02:0963 required = false
Peter Wen22bc3ec2019-03-28 22:18:0264 }
Andrew Grieve2e9bdbf2025-02-21 20:44:3465 android_sdk_optional_library("android_xr_extensions_java") {
66 runtime_library_name = "com.android.extensions.xr"
Andrew Grievedd0bdae2025-04-15 18:06:0467 input_jars_paths = [ "xr_extensions/com.android.extensions.xr.jar" ]
Andrew Grieve2e9bdbf2025-02-21 20:44:3468 required = false
69 }
Andrew Grieveead49fe2024-01-05 03:22:2070 if (!limit_android_deps) {
71 android_sdk_optional_library("android_window_extensions_java") {
72 library_name = "androidx.window.extensions"
Andrew Grievee29e1902024-03-07 17:02:0973 required = false
Andrew Grieveead49fe2024-01-05 03:22:2074 jar_deps = [ "//third_party/android_sdk/window_extensions:androidx_window_extensions" ]
75 deps =
76 [ "//third_party/androidx:androidx_annotation_annotation_jvm_java" ]
Andrew Grievedd0bdae2025-04-15 18:06:0477 input_jars_paths = [ "$root_build_dir/obj/third_party/android_sdk/window_extensions/androidx_window_extensions_java.turbine.jar" ]
Andrew Grieveead49fe2024-01-05 03:22:2078 }
Andrew Grieve70a1f51e2024-01-02 18:10:5779 }
Peter Wen22bc3ec2019-03-28 22:18:0280}
Sam Maierff131382025-05-01 14:58:2381
Sam Maierbc835c52025-05-22 18:47:0382if (android_ndk_api_level >= 29) {
Sam Maierff131382025-05-01 14:58:2383 config("libbinder_include") {
84 include_dirs = [ "$android_sdk/optional/libbinder_ndk_cpp/" ]
85 }
86}