• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright (C) 2016 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: ["system_connectivity_wificond_license"],
17}
18
19// Added automatically by a large-scale-change that took the approach of
20// 'apply every license found to every target'. While this makes sure we respect
21// every license restriction, it may not be entirely correct.
22//
23// e.g. GPL in an MIT project might only apply to the contrib/ directory.
24//
25// Please consider splitting the single license below into multiple licenses,
26// taking care not to lose any license_kind information, and overriding the
27// default license using the 'licenses: [...]' property on targets as needed.
28//
29// For unused files, consider creating a 'filegroup' with "//visibility:private"
30// to attach the license to, and including a comment whether the files may be
31// used in the current project.
32// http://go/android-license-faq
33license {
34    name: "system_connectivity_wificond_license",
35    visibility: [":__subpackages__"],
36    license_kinds: [
37        "SPDX-license-identifier-Apache-2.0",
38        "SPDX-license-identifier-ISC",
39    ],
40    license_text: [
41        "NOTICE",
42    ],
43}
44
45cc_defaults {
46    name: "wificond_defaults",
47
48    cppflags: [
49        "-Wall",
50        "-Werror",
51        "-Wno-unused-parameter",
52    ],
53    include_dirs: ["system/connectivity"],
54}
55
56//
57// wificond daemon.
58//
59cc_binary {
60    name: "wificond",
61    defaults: [
62        "keystore2_use_latest_aidl_ndk_shared",
63        "wificond_defaults",
64    ],
65    init_rc: ["wificond.rc"],
66    srcs: [
67	"main.cpp",
68	"wifi_keystore_hal_connector.cpp"
69    ],
70    include_dirs: ["system/security/keystore/include"],
71
72    shared_libs: [
73        "android.hardware.net.nlinterceptor-V1-ndk",
74        "android.security.legacykeystore-ndk",
75        "libbinder",
76        "libbinder_ndk",
77        "libbase",
78        "libcrypto",
79        "libcutils",
80        "libhidlbase",
81        "libminijail",
82        "libssl",
83        "libutils",
84        "libwifi-system-iface",
85        "android.system.wifi.keystore@1.0",
86    ],
87    static_libs: [
88        "libnlinterceptor",
89        "libwificond", // Wificond daemon
90        "libwifikeystorehal"  // Wifi Keystore HAL service
91    ],
92}
93
94//
95// wificond static library
96//
97cc_library_static {
98    name: "libwificond",
99    defaults: ["wificond_defaults"],
100    srcs: [
101        "ap_interface_binder.cpp",
102        "ap_interface_impl.cpp",
103        "client_interface_binder.cpp",
104        "client_interface_impl.cpp",
105        "device_wiphy_capabilities.cpp",
106        "logging_utils.cpp",
107        "client/native_wifi_client.cpp",
108        "scanning/channel_settings.cpp",
109        "scanning/hidden_network.cpp",
110        "scanning/pno_network.cpp",
111        "scanning/pno_settings.cpp",
112        "scanning/radio_chain_info.cpp",
113        "scanning/scan_result.cpp",
114        "scanning/single_scan_settings.cpp",
115        "scanning/scan_utils.cpp",
116        "scanning/scanner_impl.cpp",
117        "server.cpp",
118    ],
119
120    shared_libs: [
121        "android.hardware.net.nlinterceptor-V1-ndk",
122        "libbase",
123        "libutils",
124        "libwifi-system-iface",
125    ],
126    whole_static_libs: [
127        "libnlinterceptor",
128        "libwificond_ipc",
129        "libwificond_nl",
130        "libwificond_event_loop",
131    ],
132}
133
134//
135// wificond netlink library
136//
137cc_library_static {
138    name: "libwificond_nl",
139    defaults: ["wificond_defaults"],
140    srcs: [
141        "net/mlme_event.cpp",
142        "net/netlink_manager.cpp",
143        "net/netlink_utils.cpp",
144        "net/nl80211_attribute.cpp",
145        "net/nl80211_packet.cpp",
146    ],
147    shared_libs: [
148        "android.hardware.net.nlinterceptor-V1-ndk",
149        "libbinder_ndk",
150        "libbase",
151    ],
152    whole_static_libs: [
153        "libnlinterceptor",
154        "android.hardware.automotive.can@libnetdevice",
155        "libnl++",
156    ],
157}
158
159//
160// wificond event loop library
161//
162cc_library_static {
163    name: "libwificond_event_loop",
164    defaults: ["wificond_defaults"],
165    srcs: ["looper_backed_event_loop.cpp"],
166    whole_static_libs: [
167        "liblog",
168        "libbase",
169    ],
170
171}
172
173//
174// wificond IPC interface library
175//
176cc_library_static {
177    name: "libwificond_ipc",
178    defaults: ["wificond_defaults"],
179    aidl: {
180        local_include_dirs: ["aidl"],
181        export_aidl_headers: true,
182    },
183    srcs: [
184        "ipc_constants.cpp",
185        ":libwificond_ipc_aidl",
186        "client/native_wifi_client.cpp",
187        "device_wiphy_capabilities.cpp",
188        "scanning/channel_settings.cpp",
189        "scanning/hidden_network.cpp",
190        "scanning/pno_network.cpp",
191        "scanning/pno_settings.cpp",
192        "scanning/radio_chain_info.cpp",
193        "scanning/scan_result.cpp",
194        "scanning/single_scan_settings.cpp",
195    ],
196    shared_libs: [
197        "android.hardware.net.nlinterceptor-V1-ndk",
198        "libbinder",
199    ],
200    static_libs: ["libnlinterceptor"],
201}
202
203filegroup {
204    name: "libwificond_ipc_aidl",
205    srcs: [
206        "aidl/android/net/wifi/nl80211/IApInterface.aidl",
207        "aidl/android/net/wifi/nl80211/IApInterfaceEventCallback.aidl",
208        "aidl/android/net/wifi/nl80211/IClientInterface.aidl",
209        "aidl/android/net/wifi/nl80211/IInterfaceEventCallback.aidl",
210        "aidl/android/net/wifi/nl80211/IPnoScanEvent.aidl",
211        "aidl/android/net/wifi/nl80211/IScanEvent.aidl",
212        "aidl/android/net/wifi/nl80211/ISendMgmtFrameEvent.aidl",
213        "aidl/android/net/wifi/nl80211/IWificond.aidl",
214        "aidl/android/net/wifi/nl80211/IWificondEventCallback.aidl",
215        "aidl/android/net/wifi/nl80211/IWifiScannerImpl.aidl",
216    ],
217    path: "aidl",
218}
219
220//
221// test util library
222//
223cc_library_static {
224    name: "libwificond_test_utils",
225    defaults: ["wificond_defaults"],
226    srcs: [
227        "tests/integration/process_utils.cpp",
228        "tests/shell_utils.cpp",
229    ],
230    shared_libs: ["libbase"],
231
232    whole_static_libs: [
233        "libwificond_ipc",
234        "libwificond_event_loop",
235    ],
236}
237
238//
239// wificond unit tests.
240//
241cc_test {
242    name: "wificond_unit_test",
243    defaults: ["wificond_defaults"],
244    test_suites: ["device-tests"],
245    tidy_timeout_srcs: [
246        "tests/client_interface_impl_unittest.cpp",
247        "tests/netlink_utils_unittest.cpp",
248        "tests/scanner_unittest.cpp",
249        "tests/scan_utils_unittest.cpp",
250        "tests/server_unittest.cpp",
251    ],
252    srcs: [
253        "tests/ap_interface_impl_unittest.cpp",
254        "tests/client_interface_impl_unittest.cpp",
255        "tests/looper_backed_event_loop_unittest.cpp",
256        "tests/main.cpp",
257        "tests/mock_client_interface_impl.cpp",
258        "tests/mock_netlink_manager.cpp",
259        "tests/mock_netlink_utils.cpp",
260        "tests/mock_scan_utils.cpp",
261        "tests/native_wifi_client_unittest.cpp",
262        "tests/netlink_manager_unittest.cpp",
263        "tests/netlink_utils_unittest.cpp",
264        "tests/nl80211_attribute_unittest.cpp",
265        "tests/nl80211_packet_unittest.cpp",
266        "tests/scanner_unittest.cpp",
267        "tests/scan_result_unittest.cpp",
268        "tests/scan_settings_unittest.cpp",
269        "tests/scan_utils_unittest.cpp",
270        "tests/server_unittest.cpp",
271    ],
272
273    static_libs: [
274        "libgmock",
275        "libgtest",
276        "libnlinterceptor",
277        "libwifi-system-iface-test",
278        "libwificond",
279        "libwificond_nl",
280    ],
281    shared_libs: [
282        "android.hardware.net.nlinterceptor-V1-ndk",
283        "libbase",
284        "libbinder",
285        "libbinder_ndk",
286        "libcutils",
287        "liblog",
288        "libutils",
289        "libwifi-system-iface",
290    ],
291}
292
293//
294// wificond device integration tests.
295//
296cc_test {
297    name: "wificond_integration_test",
298    defaults: ["wificond_defaults"],
299    srcs: [
300        "tests/integration/ap_interface_test.cpp",
301        "tests/integration/client_interface_test.cpp",
302        "tests/integration/life_cycle_test.cpp",
303        "tests/integration/scanner_test.cpp",
304        "tests/main.cpp",
305        "tests/shell_unittest.cpp",
306    ],
307    shared_libs: [
308        "libbase",
309        "libbinder",
310        "libcutils",
311        "libutils",
312        "libwifi-system-iface",
313    ],
314    static_libs: [
315        "libgmock",
316        "libwificond_ipc",
317        "libwificond_test_utils",
318    ],
319}
320