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