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