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
15filegroup {
16    name: "aconfigd_protos",
17    srcs: ["aconfigd.proto"],
18}
19
20rust_protobuf {
21    name: "libaconfigd_rust_proto",
22    crate_name: "aconfigd_rust_proto",
23    source_stem: "aconfigd_rust_proto_source",
24    protos: [
25        "aconfigd.proto",
26    ],
27    host_supported: true,
28    min_sdk_version: "34",
29    apex_available: [
30        "//apex_available:anyapex",
31        "//apex_available:platform",
32    ],
33}
34
35rust_defaults {
36    name: "aconfigd_protos.defaults",
37    edition: "2021",
38    clippy_lints: "android",
39    lints: "android",
40    srcs: ["src/lib.rs"],
41    rustlibs: [
42        "libaconfigd_rust_proto",
43        "libanyhow",
44        "libprotobuf",
45    ],
46    proc_macros: [
47        "libpaste",
48    ],
49    min_sdk_version: "34",
50}
51
52rust_library {
53    name: "libaconfigd_protos_rust",
54    crate_name: "aconfigd_protos",
55    defaults: ["aconfigd_protos.defaults"],
56    host_supported: true,
57    apex_available: [
58        "//apex_available:anyapex",
59        "//apex_available:platform",
60    ],
61}
62
63cc_library_static {
64    name: "libaconfigd_protos_cc",
65    proto: {
66        export_proto_headers: true,
67        type: "lite",
68    },
69    srcs: ["aconfigd.proto"],
70    min_sdk_version: "34",
71    visibility: [
72        "//system/server_configurable_flags/aconfigd",
73    ],
74    apex_available: [
75        "//apex_available:anyapex",
76        "//apex_available:platform",
77    ],
78}
79
80java_library {
81    name: "aconfigd_java_proto_lib",
82    host_supported: true,
83    srcs: ["aconfigd.proto"],
84    proto: {
85        type: "stream",
86    },
87    sdk_version: "current",
88    min_sdk_version: "UpsideDownCake",
89    apex_available: [
90        "//apex_available:anyapex",
91        "//apex_available:platform",
92    ],
93}
94
95java_library {
96    name: "aconfigd_java_proto_lite_lib",
97    host_supported: true,
98    srcs: ["aconfigd.proto"],
99    proto: {
100        type: "lite",
101    },
102    sdk_version: "core_current",
103    min_sdk_version: "UpsideDownCake",
104    apex_available: [
105        "//apex_available:anyapex",
106        "//apex_available:platform",
107    ],
108}
109