xref: /aosp_15_r20/build/bazel/rules/hidl/hidl_interface.bzl (revision 7594170e27e0732bc44b93d1440d87a54b6ffe7c)
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 Workerload("//build/bazel/rules/cc:cc_hidl_library.bzl", "cc_hidl_library")
16*7594170eSAndroid Build Coastguard Workerload("//build/bazel/rules/hidl:hidl_library.bzl", "hidl_library")
17*7594170eSAndroid Build Coastguard Worker
18*7594170eSAndroid Build Coastguard WorkerINTERFACE_SUFFIX = "_interface"
19*7594170eSAndroid Build Coastguard Worker
20*7594170eSAndroid Build Coastguard Workerdef hidl_interface(
21*7594170eSAndroid Build Coastguard Worker        name,
22*7594170eSAndroid Build Coastguard Worker        srcs = [],
23*7594170eSAndroid Build Coastguard Worker        deps = [],
24*7594170eSAndroid Build Coastguard Worker        root = "",
25*7594170eSAndroid Build Coastguard Worker        min_sdk_version = "",
26*7594170eSAndroid Build Coastguard Worker        tags = []):
27*7594170eSAndroid Build Coastguard Worker    "Bazel macro to correspond with the hidl_interface Soong module."
28*7594170eSAndroid Build Coastguard Worker
29*7594170eSAndroid Build Coastguard Worker    interface_name = name + INTERFACE_SUFFIX
30*7594170eSAndroid Build Coastguard Worker    interface_deps = [dep + INTERFACE_SUFFIX for dep in deps]
31*7594170eSAndroid Build Coastguard Worker
32*7594170eSAndroid Build Coastguard Worker    hidl_library(
33*7594170eSAndroid Build Coastguard Worker        name = interface_name,
34*7594170eSAndroid Build Coastguard Worker        srcs = srcs,
35*7594170eSAndroid Build Coastguard Worker        deps = interface_deps,
36*7594170eSAndroid Build Coastguard Worker        fq_name = name,
37*7594170eSAndroid Build Coastguard Worker        root = root,
38*7594170eSAndroid Build Coastguard Worker    )
39*7594170eSAndroid Build Coastguard Worker
40*7594170eSAndroid Build Coastguard Worker    native.filegroup(
41*7594170eSAndroid Build Coastguard Worker        name = name + "_hal",
42*7594170eSAndroid Build Coastguard Worker        srcs = srcs,
43*7594170eSAndroid Build Coastguard Worker    )
44*7594170eSAndroid Build Coastguard Worker
45*7594170eSAndroid Build Coastguard Worker    cc_hidl_library(
46*7594170eSAndroid Build Coastguard Worker        name = name,
47*7594170eSAndroid Build Coastguard Worker        interface = interface_name,
48*7594170eSAndroid Build Coastguard Worker        dynamic_deps = deps,
49*7594170eSAndroid Build Coastguard Worker        min_sdk_version = min_sdk_version,
50*7594170eSAndroid Build Coastguard Worker        tags = tags,
51*7594170eSAndroid Build Coastguard Worker    )
52