• 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
15cc_defaults {
16    name: "wificond_defaults",
17
18    cppflags: [
19        "-Wall",
20        "-Werror",
21        "-Wno-unused-parameter",
22    ],
23    include_dirs: ["system/connectivity"],
24}
25
26//
27// wificond daemon.
28//
29cc_binary {
30    name: "wificond",
31    defaults: ["wificond_defaults"],
32    init_rc: ["wificond.rc"],
33    srcs: [
34	"main.cpp",
35	"wifi_keystore_hal_connector.cpp"
36    ],
37    include_dirs: ["system/security/keystore/include"],
38
39    shared_libs: [
40        "libbinder",
41        "libbase",
42        "libcrypto",
43        "libcutils",
44        "libhidlbase",
45        "libkeystore_aidl",
46        "libkeystore_binder",
47        "libkeystore_parcelables",
48        "libminijail",
49        "libssl",
50        "libutils",
51        "libwifi-system-iface",
52        "android.system.wifi.keystore@1.0",
53    ],
54    static_libs: [
55        "libwificond", // Wificond daemon
56        "libwifikeystorehal"  // Wifi Keystore HAL service
57    ],
58}
59
60//
61// wificond static library
62//
63cc_library_static {
64    name: "libwificond",
65    defaults: ["wificond_defaults"],
66    srcs: [
67        "ap_interface_binder.cpp",
68        "ap_interface_impl.cpp",
69        "client_interface_binder.cpp",
70        "client_interface_impl.cpp",
71        "device_wiphy_capabilities.cpp",
72        "logging_utils.cpp",
73        "client/native_wifi_client.cpp",
74        "scanning/channel_settings.cpp",
75        "scanning/hidden_network.cpp",
76        "scanning/pno_network.cpp",
77        "scanning/pno_settings.cpp",
78        "scanning/radio_chain_info.cpp",
79        "scanning/scan_result.cpp",
80        "scanning/single_scan_settings.cpp",
81        "scanning/scan_utils.cpp",
82        "scanning/scanner_impl.cpp",
83        "server.cpp",
84    ],
85
86    shared_libs: [
87        "libbase",
88        "libutils",
89        "libwifi-system-iface",
90    ],
91    whole_static_libs: [
92        "libwificond_ipc",
93        "libwificond_nl",
94        "libwificond_event_loop",
95    ],
96}
97
98//
99// wificond netlink library
100//
101cc_library_static {
102    name: "libwificond_nl",
103    defaults: ["wificond_defaults"],
104    srcs: [
105        "net/mlme_event.cpp",
106        "net/netlink_manager.cpp",
107        "net/netlink_utils.cpp",
108        "net/nl80211_attribute.cpp",
109        "net/nl80211_packet.cpp",
110    ],
111    shared_libs: ["libbase"],
112
113}
114
115//
116// wificond event loop library
117//
118cc_library_static {
119    name: "libwificond_event_loop",
120    defaults: ["wificond_defaults"],
121    srcs: ["looper_backed_event_loop.cpp"],
122    whole_static_libs: [
123        "liblog",
124        "libbase",
125        "libutils",
126    ],
127
128}
129
130//
131// wificond IPC interface library
132//
133cc_library_static {
134    name: "libwificond_ipc",
135    defaults: ["wificond_defaults"],
136    aidl: {
137        local_include_dirs: ["aidl"],
138        export_aidl_headers: true,
139    },
140    srcs: [
141        "ipc_constants.cpp",
142        ":libwificond_ipc_aidl",
143        "client/native_wifi_client.cpp",
144        "device_wiphy_capabilities.cpp",
145        "scanning/channel_settings.cpp",
146        "scanning/hidden_network.cpp",
147        "scanning/pno_network.cpp",
148        "scanning/pno_settings.cpp",
149        "scanning/radio_chain_info.cpp",
150        "scanning/scan_result.cpp",
151        "scanning/single_scan_settings.cpp",
152    ],
153    shared_libs: ["libbinder"],
154}
155
156filegroup {
157    name: "libwificond_ipc_aidl",
158    srcs: [
159        "aidl/android/net/wifi/nl80211/IApInterface.aidl",
160        "aidl/android/net/wifi/nl80211/IApInterfaceEventCallback.aidl",
161        "aidl/android/net/wifi/nl80211/IClientInterface.aidl",
162        "aidl/android/net/wifi/nl80211/IInterfaceEventCallback.aidl",
163        "aidl/android/net/wifi/nl80211/IPnoScanEvent.aidl",
164        "aidl/android/net/wifi/nl80211/IScanEvent.aidl",
165        "aidl/android/net/wifi/nl80211/ISendMgmtFrameEvent.aidl",
166        "aidl/android/net/wifi/nl80211/IWificond.aidl",
167        "aidl/android/net/wifi/nl80211/IWifiScannerImpl.aidl",
168    ],
169    path: "aidl",
170}
171
172//
173// test util library
174//
175cc_library_static {
176    name: "libwificond_test_utils",
177    defaults: ["wificond_defaults"],
178    srcs: [
179        "tests/integration/process_utils.cpp",
180        "tests/shell_utils.cpp",
181    ],
182    shared_libs: ["libbase"],
183
184    whole_static_libs: [
185        "libwificond_ipc",
186        "libwificond_event_loop",
187    ],
188}
189
190//
191// wificond unit tests.
192//
193cc_test {
194    name: "wificond_unit_test",
195    defaults: ["wificond_defaults"],
196    test_suites: ["device-tests"],
197    srcs: [
198        "tests/ap_interface_impl_unittest.cpp",
199        "tests/client_interface_impl_unittest.cpp",
200        "tests/looper_backed_event_loop_unittest.cpp",
201        "tests/main.cpp",
202        "tests/mock_client_interface_impl.cpp",
203        "tests/mock_netlink_manager.cpp",
204        "tests/mock_netlink_utils.cpp",
205        "tests/mock_scan_utils.cpp",
206        "tests/native_wifi_client_unittest.cpp",
207        "tests/netlink_manager_unittest.cpp",
208        "tests/netlink_utils_unittest.cpp",
209        "tests/nl80211_attribute_unittest.cpp",
210        "tests/nl80211_packet_unittest.cpp",
211        "tests/scanner_unittest.cpp",
212        "tests/scan_result_unittest.cpp",
213        "tests/scan_settings_unittest.cpp",
214        "tests/scan_utils_unittest.cpp",
215        "tests/server_unittest.cpp",
216    ],
217
218    static_libs: [
219        "libgmock",
220        "libgtest",
221        "libwifi-system-iface-test",
222        "libwificond",
223        "libwificond_nl",
224    ],
225    shared_libs: [
226        "libbase",
227        "libbinder",
228        "libcutils",
229        "liblog",
230        "libutils",
231        "libwifi-system-iface",
232    ],
233}
234
235//
236// wificond device integration tests.
237//
238cc_test {
239    name: "wificond_integration_test",
240    defaults: ["wificond_defaults"],
241    srcs: [
242        "tests/integration/ap_interface_test.cpp",
243        "tests/integration/client_interface_test.cpp",
244        "tests/integration/life_cycle_test.cpp",
245        "tests/integration/scanner_test.cpp",
246        "tests/main.cpp",
247        "tests/shell_unittest.cpp",
248    ],
249    shared_libs: [
250        "libbase",
251        "libbinder",
252        "libcutils",
253        "libutils",
254        "libwifi-system-iface",
255    ],
256    static_libs: [
257        "libgmock",
258        "libwificond_ipc",
259        "libwificond_test_utils",
260    ],
261}
262