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: ["wificond_defaults"], 62 init_rc: ["wificond.rc"], 63 srcs: [ 64 "main.cpp", 65 "wifi_keystore_hal_connector.cpp" 66 ], 67 include_dirs: ["system/security/keystore/include"], 68 69 shared_libs: [ 70 "android.system.keystore2-V1-ndk_platform", 71 "android.security.legacykeystore-ndk_platform", 72 "libbinder", 73 "libbinder_ndk", 74 "libbase", 75 "libcrypto", 76 "libcutils", 77 "libhidlbase", 78 "libminijail", 79 "libssl", 80 "libutils", 81 "libwifi-system-iface", 82 "android.system.wifi.keystore@1.0", 83 ], 84 static_libs: [ 85 "libwificond", // Wificond daemon 86 "libwifikeystorehal" // Wifi Keystore HAL service 87 ], 88} 89 90// 91// wificond static library 92// 93cc_library_static { 94 name: "libwificond", 95 defaults: ["wificond_defaults"], 96 srcs: [ 97 "ap_interface_binder.cpp", 98 "ap_interface_impl.cpp", 99 "client_interface_binder.cpp", 100 "client_interface_impl.cpp", 101 "device_wiphy_capabilities.cpp", 102 "logging_utils.cpp", 103 "client/native_wifi_client.cpp", 104 "scanning/channel_settings.cpp", 105 "scanning/hidden_network.cpp", 106 "scanning/pno_network.cpp", 107 "scanning/pno_settings.cpp", 108 "scanning/radio_chain_info.cpp", 109 "scanning/scan_result.cpp", 110 "scanning/single_scan_settings.cpp", 111 "scanning/scan_utils.cpp", 112 "scanning/scanner_impl.cpp", 113 "server.cpp", 114 ], 115 116 shared_libs: [ 117 "libbase", 118 "libutils", 119 "libwifi-system-iface", 120 ], 121 whole_static_libs: [ 122 "libwificond_ipc", 123 "libwificond_nl", 124 "libwificond_event_loop", 125 ], 126} 127 128// 129// wificond netlink library 130// 131cc_library_static { 132 name: "libwificond_nl", 133 defaults: ["wificond_defaults"], 134 srcs: [ 135 "net/mlme_event.cpp", 136 "net/netlink_manager.cpp", 137 "net/netlink_utils.cpp", 138 "net/nl80211_attribute.cpp", 139 "net/nl80211_packet.cpp", 140 ], 141 shared_libs: ["libbase"], 142 143} 144 145// 146// wificond event loop library 147// 148cc_library_static { 149 name: "libwificond_event_loop", 150 defaults: ["wificond_defaults"], 151 srcs: ["looper_backed_event_loop.cpp"], 152 whole_static_libs: [ 153 "liblog", 154 "libbase", 155 "libutils", 156 ], 157 158} 159 160// 161// wificond IPC interface library 162// 163cc_library_static { 164 name: "libwificond_ipc", 165 defaults: ["wificond_defaults"], 166 aidl: { 167 local_include_dirs: ["aidl"], 168 export_aidl_headers: true, 169 }, 170 srcs: [ 171 "ipc_constants.cpp", 172 ":libwificond_ipc_aidl", 173 "client/native_wifi_client.cpp", 174 "device_wiphy_capabilities.cpp", 175 "scanning/channel_settings.cpp", 176 "scanning/hidden_network.cpp", 177 "scanning/pno_network.cpp", 178 "scanning/pno_settings.cpp", 179 "scanning/radio_chain_info.cpp", 180 "scanning/scan_result.cpp", 181 "scanning/single_scan_settings.cpp", 182 ], 183 shared_libs: ["libbinder"], 184} 185 186filegroup { 187 name: "libwificond_ipc_aidl", 188 srcs: [ 189 "aidl/android/net/wifi/nl80211/IApInterface.aidl", 190 "aidl/android/net/wifi/nl80211/IApInterfaceEventCallback.aidl", 191 "aidl/android/net/wifi/nl80211/IClientInterface.aidl", 192 "aidl/android/net/wifi/nl80211/IInterfaceEventCallback.aidl", 193 "aidl/android/net/wifi/nl80211/IPnoScanEvent.aidl", 194 "aidl/android/net/wifi/nl80211/IScanEvent.aidl", 195 "aidl/android/net/wifi/nl80211/ISendMgmtFrameEvent.aidl", 196 "aidl/android/net/wifi/nl80211/IWificond.aidl", 197 "aidl/android/net/wifi/nl80211/IWificondEventCallback.aidl", 198 "aidl/android/net/wifi/nl80211/IWifiScannerImpl.aidl", 199 ], 200 path: "aidl", 201} 202 203// 204// test util library 205// 206cc_library_static { 207 name: "libwificond_test_utils", 208 defaults: ["wificond_defaults"], 209 srcs: [ 210 "tests/integration/process_utils.cpp", 211 "tests/shell_utils.cpp", 212 ], 213 shared_libs: ["libbase"], 214 215 whole_static_libs: [ 216 "libwificond_ipc", 217 "libwificond_event_loop", 218 ], 219} 220 221// 222// wificond unit tests. 223// 224cc_test { 225 name: "wificond_unit_test", 226 defaults: ["wificond_defaults"], 227 test_suites: ["device-tests"], 228 srcs: [ 229 "tests/ap_interface_impl_unittest.cpp", 230 "tests/client_interface_impl_unittest.cpp", 231 "tests/looper_backed_event_loop_unittest.cpp", 232 "tests/main.cpp", 233 "tests/mock_client_interface_impl.cpp", 234 "tests/mock_netlink_manager.cpp", 235 "tests/mock_netlink_utils.cpp", 236 "tests/mock_scan_utils.cpp", 237 "tests/native_wifi_client_unittest.cpp", 238 "tests/netlink_manager_unittest.cpp", 239 "tests/netlink_utils_unittest.cpp", 240 "tests/nl80211_attribute_unittest.cpp", 241 "tests/nl80211_packet_unittest.cpp", 242 "tests/scanner_unittest.cpp", 243 "tests/scan_result_unittest.cpp", 244 "tests/scan_settings_unittest.cpp", 245 "tests/scan_utils_unittest.cpp", 246 "tests/server_unittest.cpp", 247 ], 248 249 static_libs: [ 250 "libgmock", 251 "libgtest", 252 "libwifi-system-iface-test", 253 "libwificond", 254 "libwificond_nl", 255 ], 256 shared_libs: [ 257 "libbase", 258 "libbinder", 259 "libcutils", 260 "liblog", 261 "libutils", 262 "libwifi-system-iface", 263 ], 264} 265 266// 267// wificond device integration tests. 268// 269cc_test { 270 name: "wificond_integration_test", 271 defaults: ["wificond_defaults"], 272 srcs: [ 273 "tests/integration/ap_interface_test.cpp", 274 "tests/integration/client_interface_test.cpp", 275 "tests/integration/life_cycle_test.cpp", 276 "tests/integration/scanner_test.cpp", 277 "tests/main.cpp", 278 "tests/shell_unittest.cpp", 279 ], 280 shared_libs: [ 281 "libbase", 282 "libbinder", 283 "libcutils", 284 "libutils", 285 "libwifi-system-iface", 286 ], 287 static_libs: [ 288 "libgmock", 289 "libwificond_ipc", 290 "libwificond_test_utils", 291 ], 292} 293