1*7594170eSAndroid Build Coastguard Worker# Copyright (C) 2022 The Android Open Source Project 2*7594170eSAndroid Build Coastguard Worker# 3*7594170eSAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License"); 4*7594170eSAndroid Build Coastguard Worker# you may not use this file except in compliance with the License. 5*7594170eSAndroid Build Coastguard Worker# You may obtain a copy of the License at 6*7594170eSAndroid Build Coastguard Worker# 7*7594170eSAndroid Build Coastguard Worker# http://www.apache.org/licenses/LICENSE-2.0 8*7594170eSAndroid Build Coastguard Worker# 9*7594170eSAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software 10*7594170eSAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS, 11*7594170eSAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*7594170eSAndroid Build Coastguard Worker# See the License for the specific language governing permissions and 13*7594170eSAndroid Build Coastguard Worker# limitations under the License. 14*7594170eSAndroid Build Coastguard Worker 15*7594170eSAndroid Build Coastguard Worker# TODO(b/240466571): Introduce property owner 16*7594170eSAndroid Build Coastguard WorkerSyspropGenInfo = provider(fields = ["srcs"]) 17*7594170eSAndroid Build Coastguard Worker 18*7594170eSAndroid Build Coastguard Workerdef _sysprop_library_impl(ctx): 19*7594170eSAndroid Build Coastguard Worker return [SyspropGenInfo(srcs = ctx.attr.srcs)] 20*7594170eSAndroid Build Coastguard Worker 21*7594170eSAndroid Build Coastguard Worker# TODO(b/240466571): Add Java to the documentation once the rules/macros are created 22*7594170eSAndroid Build Coastguard Worker# TODO(b/240463568): Implement API checks 23*7594170eSAndroid Build Coastguard Workersysprop_library = rule( 24*7594170eSAndroid Build Coastguard Worker implementation = _sysprop_library_impl, 25*7594170eSAndroid Build Coastguard Worker doc = """Defines a library of sysprop files which may be used across 26*7594170eSAndroid Build Coastguard Worker the platform from either c++ or Java code. a `sysprop_library` may be 27*7594170eSAndroid Build Coastguard Worker listed in the `dep` clause of `cc_sysprop_library_shared` or 28*7594170eSAndroid Build Coastguard Worker `cc_sysprop_library_static` targets. Java is not yet supported""", 29*7594170eSAndroid Build Coastguard Worker attrs = { 30*7594170eSAndroid Build Coastguard Worker "srcs": attr.label_list( 31*7594170eSAndroid Build Coastguard Worker allow_files = [".sysprop"], 32*7594170eSAndroid Build Coastguard Worker mandatory = True, 33*7594170eSAndroid Build Coastguard Worker ), 34*7594170eSAndroid Build Coastguard Worker }, 35*7594170eSAndroid Build Coastguard Worker provides = [SyspropGenInfo], 36*7594170eSAndroid Build Coastguard Worker) 37