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        "libregex",
30    ],
31}
32
33rust_library {
34    name: "libaconfig_device_paths",
35    crate_name: "aconfig_device_paths",
36    host_supported: true,
37    defaults: ["libaconfig_device_paths.defaults"],
38}
39
40genrule {
41    name: "libaconfig_java_device_paths_src",
42    srcs: ["src/DeviceProtosTemplate.java"],
43    out: ["DeviceProtos.java"],
44    tool_files: ["partition_aconfig_flags_paths.txt"],
45    cmd: "sed -e '/TEMPLATE/{r$(location partition_aconfig_flags_paths.txt)' -e 'd}' $(in) > $(out)",
46}
47
48java_library {
49    name: "aconfig_device_paths_java",
50    srcs: [":libaconfig_java_device_paths_src"],
51    static_libs: [
52        "libaconfig_java_proto_nano",
53    ],
54    sdk_version: "core_platform",
55    apex_available: [
56        "//apex_available:platform",
57    ],
58}
59
60genrule {
61    name: "libaconfig_java_host_device_paths_src",
62    srcs: ["src/HostDeviceProtosTemplate.java"],
63    out: ["HostDeviceProtos.java"],
64    tool_files: [
65        "partition_aconfig_flags_paths.txt",
66        "mainline_aconfig_flags_paths.txt",
67    ],
68    cmd: "sed -e '/TEMPLATE/{r$(location partition_aconfig_flags_paths.txt)' -e 'd}' $(in) > $(out).tmp && " +
69    "sed -e '/MAINLINE_T/{r$(location mainline_aconfig_flags_paths.txt)' -e 'd}' $(out).tmp > $(out)",
70}
71
72java_library_host {
73    name: "aconfig_host_device_paths_java",
74    srcs: [":libaconfig_java_host_device_paths_src"],
75}
76