• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright (C) 2024 The Android Open Source Project
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//      http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15package {
16    default_applicable_licenses: ["Android-Apache-2.0"],
17}
18
19rust_defaults {
20    name: "libaconfig_device_paths.defaults",
21    edition: "2021",
22    clippy_lints: "android",
23    lints: "android",
24    srcs: ["src/lib.rs"],
25    rustlibs: [
26        "libaconfig_protos",
27        "libanyhow",
28        "libprotobuf",
29    ],
30}
31
32rust_library {
33    name: "libaconfig_device_paths",
34    crate_name: "aconfig_device_paths",
35    host_supported: true,
36    defaults: ["libaconfig_device_paths.defaults"],
37    apex_available: [
38        "//apex_available:platform",
39        "com.android.configinfrastructure",
40    ],
41    min_sdk_version: "34",
42}
43
44genrule {
45    name: "libaconfig_java_device_paths_src",
46    srcs: ["src/DeviceProtosTemplate.java"],
47    out: ["DeviceProtos.java"],
48    tool_files: ["partition_aconfig_flags_paths.txt"],
49    cmd: "sed -e '/TEMPLATE/{r$(location partition_aconfig_flags_paths.txt)' -e 'd}' $(in) > $(out)",
50}
51
52java_library {
53    name: "aconfig_device_paths_java",
54    srcs: [":libaconfig_java_device_paths_src"],
55    static_libs: [
56        "libaconfig_java_proto_nano",
57    ],
58    sdk_version: "core_platform",
59    apex_available: [
60        "//apex_available:platform",
61        "com.android.configinfrastructure",
62    ],
63    min_sdk_version: "34",
64}
65
66genrule {
67    name: "libaconfig_java_host_device_paths_src",
68    srcs: ["src/HostDeviceProtosTemplate.java"],
69    out: ["HostDeviceProtos.java"],
70    tool_files: [
71        "partition_aconfig_flags_paths.txt",
72        "mainline_aconfig_flags_paths.txt",
73    ],
74    cmd: "sed -e '/TEMPLATE/{r$(location partition_aconfig_flags_paths.txt)' -e 'd}' $(in) > $(out).tmp && " +
75    "sed -e '/MAINLINE_T/{r$(location mainline_aconfig_flags_paths.txt)' -e 'd}' $(out).tmp > $(out)",
76}
77
78java_library_host {
79    name: "aconfig_host_device_paths_java",
80    srcs: [":libaconfig_java_host_device_paths_src"],
81}
82
83genrule {
84    name: "java_device_paths_test_util_src",
85    srcs: ["src/DeviceProtosTestUtilTemplate.java"],
86    out: ["DeviceProtosTestUtil.java"],
87    tool_files: ["partition_aconfig_flags_paths.txt"],
88    cmd: "sed -e '/TEMPLATE/{r$(location partition_aconfig_flags_paths.txt)' -e 'd}' $(in) > $(out)",
89}
90
91java_library {
92    name: "aconfig_device_paths_java_util",
93    srcs: [":java_device_paths_test_util_src"],
94    static_libs: [
95        "libaconfig_java_proto_nano",
96    ],
97    sdk_version: "core_platform",
98    apex_available: [
99        "//apex_available:platform",
100    ],
101}
102