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