xref: /aosp_15_r20/hardware/interfaces/wifi/aidl/default/Android.bp (revision 4d7e907c777eeecc4c5bd7cf640a754fac206ff7)
1// Copyright (C) 2022 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_team: "trendy_team_fwk_wifi_hal",
17    default_applicable_licenses: ["hardware_interfaces_license"],
18}
19
20soong_config_module_type {
21    name: "wifi_hal_cc_defaults",
22    module_type: "cc_defaults",
23    config_namespace: "wifi",
24    bool_variables: [
25        "hidl_feature_aware", // WIFI_HIDL_FEATURE_AWARE
26        "hidl_feature_dual_interface", // WIFI_HIDL_FEATURE_DUAL_INTERFACE
27        "hidl_feature_disable_ap", // WIFI_HIDL_FEATURE_DISABLE_AP
28        "hidl_feature_disable_ap_mac_randomization", // WIFI_HIDL_FEATURE_DISABLE_AP_MAC_RANDOMIZATION
29        "avoid_iface_reset_mac_change", // WIFI_AVOID_IFACE_RESET_MAC_CHANGE
30        "wifi_skip_state_toggle_off_on_for_nan", // WIFI_SKIP_STATE_TOGGLE_OFF_ON_FOR_NAN
31    ],
32    value_variables: [
33        "hal_interface_combinations", // WIFI_HAL_INTERFACE_COMBINATIONS
34    ],
35    properties: [
36        "cppflags",
37    ],
38}
39
40wifi_hal_cc_defaults {
41    name: "android.hardware.wifi-service-cppflags-defaults",
42    soong_config_variables: {
43        hidl_feature_aware: {
44            cppflags: ["-DWIFI_HIDL_FEATURE_AWARE"],
45        },
46        hidl_feature_dual_interface: {
47            cppflags: ["-DWIFI_HIDL_FEATURE_DUAL_INTERFACE"],
48        },
49        hidl_feature_disable_ap: {
50            cppflags: ["-DWIFI_HIDL_FEATURE_DISABLE_AP"],
51        },
52        hidl_feature_disable_ap_mac_randomization: {
53            cppflags: ["-DWIFI_HIDL_FEATURE_DISABLE_AP_MAC_RANDOMIZATION"],
54        },
55        avoid_iface_reset_mac_change: {
56            cppflags: ["-DWIFI_AVOID_IFACE_RESET_MAC_CHANGE"],
57        },
58        wifi_skip_state_toggle_off_on_for_nan: {
59            cppflags: ["-DWIFI_SKIP_STATE_TOGGLE_OFF_ON_FOR_NAN"],
60        },
61        hal_interface_combinations: {
62            cppflags: ["-DWIFI_HAL_INTERFACE_COMBINATIONS=%s"],
63        },
64    },
65}
66
67cc_library_static {
68    name: "android.hardware.wifi-service-lib",
69    defaults: ["android.hardware.wifi-service-cppflags-defaults"],
70    proprietary: true,
71    compile_multilib: "first",
72    cppflags: [
73        "-Wall",
74        "-Werror",
75        "-Wextra",
76    ],
77    // Allow implicit fallthroughs in wifi_legacy_hal.cpp until they are fixed.
78    cflags: ["-Wno-error=implicit-fallthrough"],
79    srcs: [
80        "aidl_struct_util.cpp",
81        "aidl_sync_util.cpp",
82        "ringbuffer.cpp",
83        "wifi.cpp",
84        "wifi_ap_iface.cpp",
85        "wifi_chip.cpp",
86        "wifi_feature_flags.cpp",
87        "wifi_iface_util.cpp",
88        "wifi_legacy_hal.cpp",
89        "wifi_legacy_hal_factory.cpp",
90        "wifi_legacy_hal_stubs.cpp",
91        "wifi_mode_controller.cpp",
92        "wifi_nan_iface.cpp",
93        "wifi_p2p_iface.cpp",
94        "wifi_rtt_controller.cpp",
95        "wifi_sta_iface.cpp",
96        "wifi_status_util.cpp",
97    ],
98
99    shared_libs: [
100        "libbase",
101        "libbinder_ndk",
102        "libcutils",
103        "liblog",
104        "libnl",
105        "libutils",
106        "libwifi-hal",
107        "libwifi-system-iface",
108        "libxml2",
109        "android.hardware.wifi-V3-ndk",
110    ],
111
112    export_include_dirs: ["."],
113}
114
115vintf_fragment {
116    name: "android.hardware.wifi-service.xml",
117    src: "android.hardware.wifi-service.xml",
118    vendor: true,
119}
120
121cc_binary {
122    name: "android.hardware.wifi-service",
123    relative_install_path: "hw",
124    proprietary: true,
125    cppflags: [
126        "-Wall",
127        "-Werror",
128        "-Wextra",
129    ],
130    srcs: ["service.cpp"],
131    shared_libs: [
132        "libbase",
133        "libbinder_ndk",
134        "libcutils",
135        "liblog",
136        "libnl",
137        "libutils",
138        "libwifi-hal",
139        "libwifi-system-iface",
140        "libxml2",
141        "android.hardware.wifi-V3-ndk",
142    ],
143    static_libs: ["android.hardware.wifi-service-lib"],
144    init_rc: ["android.hardware.wifi-service.rc"],
145    vintf_fragment_modules: ["android.hardware.wifi-service.xml"],
146}
147
148cc_binary {
149    name: "android.hardware.wifi-service-lazy",
150    overrides: ["android.hardware.wifi-service"],
151    cflags: ["-DLAZY_SERVICE"],
152    relative_install_path: "hw",
153    proprietary: true,
154    cppflags: [
155        "-Wall",
156        "-Werror",
157        "-Wextra",
158    ],
159    srcs: ["service.cpp"],
160    shared_libs: [
161        "libbase",
162        "libbinder_ndk",
163        "libcutils",
164        "liblog",
165        "libnl",
166        "libutils",
167        "libwifi-hal",
168        "libwifi-system-iface",
169        "libxml2",
170        "android.hardware.wifi-V3-ndk",
171    ],
172    static_libs: ["android.hardware.wifi-service-lib"],
173    init_rc: ["android.hardware.wifi-service-lazy.rc"],
174    vintf_fragment_modules: ["android.hardware.wifi-service.xml"],
175}
176
177cc_test {
178    name: "android.hardware.wifi-service-tests",
179    proprietary: true,
180    compile_multilib: "first",
181    cppflags: [
182        "-Wall",
183        "-Werror",
184        "-Wextra",
185    ],
186    srcs: [
187        "tests/aidl_struct_util_unit_tests.cpp",
188        "tests/main.cpp",
189        "tests/mock_interface_tool.cpp",
190        "tests/mock_wifi_feature_flags.cpp",
191        "tests/mock_wifi_iface_util.cpp",
192        "tests/mock_wifi_legacy_hal.cpp",
193        "tests/mock_wifi_mode_controller.cpp",
194        "tests/ringbuffer_unit_tests.cpp",
195        "tests/wifi_nan_iface_unit_tests.cpp",
196        "tests/wifi_chip_unit_tests.cpp",
197        "tests/wifi_iface_util_unit_tests.cpp",
198    ],
199    static_libs: [
200        "libgmock",
201        "libgtest",
202        "android.hardware.wifi-V3-ndk",
203        "android.hardware.wifi.common-V2-ndk",
204        "android.hardware.wifi-service-lib",
205    ],
206    shared_libs: [
207        "libbase",
208        "libbinder_ndk",
209        "libcutils",
210        "liblog",
211        "libnl",
212        "libutils",
213        "libwifi-hal",
214        "libwifi-system-iface",
215    ],
216}
217
218filegroup {
219    name: "default-android.hardware.wifi-service.rc",
220    srcs: ["android.hardware.wifi-service.rc"],
221}
222
223filegroup {
224    name: "default-android.hardware.wifi-service.xml",
225    srcs: ["android.hardware.wifi-service.xml"],
226}
227
228filegroup {
229    name: "default-android.hardware.wifi-service-lazy.rc",
230    srcs: ["android.hardware.wifi-service-lazy.rc"],
231}
232