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