1// Copyright (C) 2022 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_team: "trendy_team_fwk_wifi_hal", 17 default_applicable_licenses: ["hardware_interfaces_license"], 18} 19 20soong_config_module_type { 21 name: "wifi_hal_cc_defaults", 22 module_type: "cc_defaults", 23 config_namespace: "wifi", 24 bool_variables: [ 25 "hidl_feature_aware", // WIFI_HIDL_FEATURE_AWARE 26 "hidl_feature_dual_interface", // WIFI_HIDL_FEATURE_DUAL_INTERFACE 27 "hidl_feature_disable_ap", // WIFI_HIDL_FEATURE_DISABLE_AP 28 "hidl_feature_disable_ap_mac_randomization", // WIFI_HIDL_FEATURE_DISABLE_AP_MAC_RANDOMIZATION 29 "avoid_iface_reset_mac_change", // WIFI_AVOID_IFACE_RESET_MAC_CHANGE 30 "wifi_skip_state_toggle_off_on_for_nan", // WIFI_SKIP_STATE_TOGGLE_OFF_ON_FOR_NAN 31 ], 32 value_variables: [ 33 "hal_interface_combinations", // WIFI_HAL_INTERFACE_COMBINATIONS 34 ], 35 properties: [ 36 "cppflags", 37 ], 38} 39 40wifi_hal_cc_defaults { 41 name: "android.hardware.wifi-service-cppflags-defaults", 42 soong_config_variables: { 43 hidl_feature_aware: { 44 cppflags: ["-DWIFI_HIDL_FEATURE_AWARE"], 45 }, 46 hidl_feature_dual_interface: { 47 cppflags: ["-DWIFI_HIDL_FEATURE_DUAL_INTERFACE"], 48 }, 49 hidl_feature_disable_ap: { 50 cppflags: ["-DWIFI_HIDL_FEATURE_DISABLE_AP"], 51 }, 52 hidl_feature_disable_ap_mac_randomization: { 53 cppflags: ["-DWIFI_HIDL_FEATURE_DISABLE_AP_MAC_RANDOMIZATION"], 54 }, 55 avoid_iface_reset_mac_change: { 56 cppflags: ["-DWIFI_AVOID_IFACE_RESET_MAC_CHANGE"], 57 }, 58 wifi_skip_state_toggle_off_on_for_nan: { 59 cppflags: ["-DWIFI_SKIP_STATE_TOGGLE_OFF_ON_FOR_NAN"], 60 }, 61 hal_interface_combinations: { 62 cppflags: ["-DWIFI_HAL_INTERFACE_COMBINATIONS=%s"], 63 }, 64 }, 65} 66 67cc_library_static { 68 name: "android.hardware.wifi-service-lib", 69 defaults: ["android.hardware.wifi-service-cppflags-defaults"], 70 proprietary: true, 71 compile_multilib: "first", 72 cppflags: [ 73 "-Wall", 74 "-Werror", 75 "-Wextra", 76 ], 77 // Allow implicit fallthroughs in wifi_legacy_hal.cpp until they are fixed. 78 cflags: ["-Wno-error=implicit-fallthrough"], 79 srcs: [ 80 "aidl_struct_util.cpp", 81 "aidl_sync_util.cpp", 82 "ringbuffer.cpp", 83 "wifi.cpp", 84 "wifi_ap_iface.cpp", 85 "wifi_chip.cpp", 86 "wifi_feature_flags.cpp", 87 "wifi_iface_util.cpp", 88 "wifi_legacy_hal.cpp", 89 "wifi_legacy_hal_factory.cpp", 90 "wifi_legacy_hal_stubs.cpp", 91 "wifi_mode_controller.cpp", 92 "wifi_nan_iface.cpp", 93 "wifi_p2p_iface.cpp", 94 "wifi_rtt_controller.cpp", 95 "wifi_sta_iface.cpp", 96 "wifi_status_util.cpp", 97 ], 98 99 shared_libs: [ 100 "libbase", 101 "libbinder_ndk", 102 "libcutils", 103 "liblog", 104 "libnl", 105 "libutils", 106 "libwifi-hal", 107 "libwifi-system-iface", 108 "libxml2", 109 "android.hardware.wifi-V3-ndk", 110 ], 111 112 export_include_dirs: ["."], 113} 114 115vintf_fragment { 116 name: "android.hardware.wifi-service.xml", 117 src: "android.hardware.wifi-service.xml", 118 vendor: true, 119} 120 121cc_binary { 122 name: "android.hardware.wifi-service", 123 relative_install_path: "hw", 124 proprietary: true, 125 cppflags: [ 126 "-Wall", 127 "-Werror", 128 "-Wextra", 129 ], 130 srcs: ["service.cpp"], 131 shared_libs: [ 132 "libbase", 133 "libbinder_ndk", 134 "libcutils", 135 "liblog", 136 "libnl", 137 "libutils", 138 "libwifi-hal", 139 "libwifi-system-iface", 140 "libxml2", 141 "android.hardware.wifi-V3-ndk", 142 ], 143 static_libs: ["android.hardware.wifi-service-lib"], 144 init_rc: ["android.hardware.wifi-service.rc"], 145 vintf_fragment_modules: ["android.hardware.wifi-service.xml"], 146} 147 148cc_binary { 149 name: "android.hardware.wifi-service-lazy", 150 overrides: ["android.hardware.wifi-service"], 151 cflags: ["-DLAZY_SERVICE"], 152 relative_install_path: "hw", 153 proprietary: true, 154 cppflags: [ 155 "-Wall", 156 "-Werror", 157 "-Wextra", 158 ], 159 srcs: ["service.cpp"], 160 shared_libs: [ 161 "libbase", 162 "libbinder_ndk", 163 "libcutils", 164 "liblog", 165 "libnl", 166 "libutils", 167 "libwifi-hal", 168 "libwifi-system-iface", 169 "libxml2", 170 "android.hardware.wifi-V3-ndk", 171 ], 172 static_libs: ["android.hardware.wifi-service-lib"], 173 init_rc: ["android.hardware.wifi-service-lazy.rc"], 174 vintf_fragment_modules: ["android.hardware.wifi-service.xml"], 175} 176 177cc_test { 178 name: "android.hardware.wifi-service-tests", 179 proprietary: true, 180 compile_multilib: "first", 181 cppflags: [ 182 "-Wall", 183 "-Werror", 184 "-Wextra", 185 ], 186 srcs: [ 187 "tests/aidl_struct_util_unit_tests.cpp", 188 "tests/main.cpp", 189 "tests/mock_interface_tool.cpp", 190 "tests/mock_wifi_feature_flags.cpp", 191 "tests/mock_wifi_iface_util.cpp", 192 "tests/mock_wifi_legacy_hal.cpp", 193 "tests/mock_wifi_mode_controller.cpp", 194 "tests/ringbuffer_unit_tests.cpp", 195 "tests/wifi_nan_iface_unit_tests.cpp", 196 "tests/wifi_chip_unit_tests.cpp", 197 "tests/wifi_iface_util_unit_tests.cpp", 198 ], 199 static_libs: [ 200 "libgmock", 201 "libgtest", 202 "android.hardware.wifi-V3-ndk", 203 "android.hardware.wifi.common-V2-ndk", 204 "android.hardware.wifi-service-lib", 205 ], 206 shared_libs: [ 207 "libbase", 208 "libbinder_ndk", 209 "libcutils", 210 "liblog", 211 "libnl", 212 "libutils", 213 "libwifi-hal", 214 "libwifi-system-iface", 215 ], 216} 217 218filegroup { 219 name: "default-android.hardware.wifi-service.rc", 220 srcs: ["android.hardware.wifi-service.rc"], 221} 222 223filegroup { 224 name: "default-android.hardware.wifi-service.xml", 225 srcs: ["android.hardware.wifi-service.xml"], 226} 227 228filegroup { 229 name: "default-android.hardware.wifi-service-lazy.rc", 230 srcs: ["android.hardware.wifi-service-lazy.rc"], 231} 232