1094332d3Sopenharmony_ci# Copyright (c) 2021-2023 Huawei Device Co., Ltd. 2094332d3Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License"); 3094332d3Sopenharmony_ci# you may not use this file except in compliance with the License. 4094332d3Sopenharmony_ci# You may obtain a copy of the License at 5094332d3Sopenharmony_ci# 6094332d3Sopenharmony_ci# http://www.apache.org/licenses/LICENSE-2.0 7094332d3Sopenharmony_ci# 8094332d3Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software 9094332d3Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS, 10094332d3Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11094332d3Sopenharmony_ci# See the License for the specific language governing permissions and 12094332d3Sopenharmony_ci# limitations under the License. 13094332d3Sopenharmony_ci 14094332d3Sopenharmony_ciimport("//build/config/components/hdi/hdi.gni") 15094332d3Sopenharmony_ciimport("//build/ohos.gni") 16094332d3Sopenharmony_ciimport("./../usb.gni") 17094332d3Sopenharmony_ci 18094332d3Sopenharmony_cigroup("libusb_core") { 19094332d3Sopenharmony_ci deps = [ 20094332d3Sopenharmony_ci ":libusb_ddk_device", 21094332d3Sopenharmony_ci ":libusb_ddk_host", 22094332d3Sopenharmony_ci ":libusb_pnp_manager", 23094332d3Sopenharmony_ci ] 24094332d3Sopenharmony_ci} 25094332d3Sopenharmony_ci 26094332d3Sopenharmony_ciohos_shared_library("libusb_ddk_host") { 27094332d3Sopenharmony_ci sanitize = { 28094332d3Sopenharmony_ci integer_overflow = true 29094332d3Sopenharmony_ci ubsan = true 30094332d3Sopenharmony_ci boundary_sanitize = true 31094332d3Sopenharmony_ci cfi = true 32094332d3Sopenharmony_ci cfi_cross_dso = true 33094332d3Sopenharmony_ci debug = false 34094332d3Sopenharmony_ci } 35094332d3Sopenharmony_ci branch_protector_ret = "pac_ret" 36094332d3Sopenharmony_ci 37094332d3Sopenharmony_ci include_dirs = [ 38094332d3Sopenharmony_ci "device/include", 39094332d3Sopenharmony_ci "//drivers/hdf_core/framework/model/usb/include", 40094332d3Sopenharmony_ci "host/include", 41094332d3Sopenharmony_ci "./../interfaces/ddk/common", 42094332d3Sopenharmony_ci "./../interfaces/ddk/device", 43094332d3Sopenharmony_ci "./../interfaces/ddk/host", 44094332d3Sopenharmony_ci "./../utils/include", 45094332d3Sopenharmony_ci ] 46094332d3Sopenharmony_ci sources = [ 47094332d3Sopenharmony_ci "host/src/linux_adapter.c", 48094332d3Sopenharmony_ci "host/src/usb_interface_pool.c", 49094332d3Sopenharmony_ci "host/src/usb_io_manage.c", 50094332d3Sopenharmony_ci "host/src/usb_protocol.c", 51094332d3Sopenharmony_ci "host/src/usb_raw_api.c", 52094332d3Sopenharmony_ci "host/src/usb_raw_api_library.c", 53094332d3Sopenharmony_ci ] 54094332d3Sopenharmony_ci 55094332d3Sopenharmony_ci if (drivers_peripheral_usb_feature_linux_native_model) { 56094332d3Sopenharmony_ci if (defined(defines)) { 57094332d3Sopenharmony_ci defines += [ "USB_EVENT_NOTIFY_LINUX_NATIVE_MODE" ] 58094332d3Sopenharmony_ci } else { 59094332d3Sopenharmony_ci defines = [ "USB_EVENT_NOTIFY_LINUX_NATIVE_MODE" ] 60094332d3Sopenharmony_ci } 61094332d3Sopenharmony_ci } 62094332d3Sopenharmony_ci 63094332d3Sopenharmony_ci if (is_standard_system) { 64094332d3Sopenharmony_ci external_deps = [ 65094332d3Sopenharmony_ci "hdf_core:libhdf_host", 66094332d3Sopenharmony_ci "hdf_core:libhdf_utils", 67094332d3Sopenharmony_ci "hilog:libhilog", 68094332d3Sopenharmony_ci ] 69094332d3Sopenharmony_ci 70094332d3Sopenharmony_ci if (usb_c_utils_enable) { 71094332d3Sopenharmony_ci external_deps += [ "c_utils:utils" ] 72094332d3Sopenharmony_ci } 73094332d3Sopenharmony_ci } else { 74094332d3Sopenharmony_ci external_deps = [ "hilog:libhilog" ] 75094332d3Sopenharmony_ci } 76094332d3Sopenharmony_ci 77094332d3Sopenharmony_ci install_images = [ chipset_base_dir ] 78094332d3Sopenharmony_ci subsystem_name = "hdf" 79094332d3Sopenharmony_ci part_name = "drivers_peripheral_usb" 80094332d3Sopenharmony_ci} 81094332d3Sopenharmony_ci 82094332d3Sopenharmony_ciconfig("public_headers") { 83094332d3Sopenharmony_ci include_dirs = [ "//drivers/hdf_core/framework/model/usb/include" ] 84094332d3Sopenharmony_ci} 85094332d3Sopenharmony_ci 86094332d3Sopenharmony_ciohos_shared_library("libusb_pnp_manager") { 87094332d3Sopenharmony_ci sanitize = { 88094332d3Sopenharmony_ci integer_overflow = true 89094332d3Sopenharmony_ci ubsan = true 90094332d3Sopenharmony_ci boundary_sanitize = true 91094332d3Sopenharmony_ci cfi = true 92094332d3Sopenharmony_ci cfi_cross_dso = true 93094332d3Sopenharmony_ci debug = false 94094332d3Sopenharmony_ci } 95094332d3Sopenharmony_ci branch_protector_ret = "pac_ret" 96094332d3Sopenharmony_ci 97094332d3Sopenharmony_ci include_dirs = [ 98094332d3Sopenharmony_ci "host/include", 99094332d3Sopenharmony_ci "device/include", 100094332d3Sopenharmony_ci "./../utils/include", 101094332d3Sopenharmony_ci ] 102094332d3Sopenharmony_ci public_configs = [ ":public_headers" ] 103094332d3Sopenharmony_ci sources = [ 104094332d3Sopenharmony_ci "//drivers/hdf_core/framework/model/usb/src/usb_ddk_pnp_loader.c", 105094332d3Sopenharmony_ci "//drivers/hdf_core/framework/model/usb/src/usb_wrapper.cpp", 106094332d3Sopenharmony_ci "device/src/usbfn_uevent_handle.c", 107094332d3Sopenharmony_ci "host/src/ddk_device_manager.c", 108094332d3Sopenharmony_ci "host/src/ddk_pnp_listener_mgr.c", 109094332d3Sopenharmony_ci "host/src/ddk_sysfs_device.c", 110094332d3Sopenharmony_ci "host/src/ddk_uevent_handle.c", 111094332d3Sopenharmony_ci "host/src/usb_pnp_manager.c", 112094332d3Sopenharmony_ci ] 113094332d3Sopenharmony_ci 114094332d3Sopenharmony_ci if (drivers_peripheral_usb_feature_linux_native_model) { 115094332d3Sopenharmony_ci if (defined(defines)) { 116094332d3Sopenharmony_ci defines += [ "USB_EVENT_NOTIFY_LINUX_NATIVE_MODE" ] 117094332d3Sopenharmony_ci } else { 118094332d3Sopenharmony_ci defines = [ "USB_EVENT_NOTIFY_LINUX_NATIVE_MODE" ] 119094332d3Sopenharmony_ci } 120094332d3Sopenharmony_ci sources += [ "host/src/ddk_uevent_queue.cpp" ] 121094332d3Sopenharmony_ci } 122094332d3Sopenharmony_ci 123094332d3Sopenharmony_ci if (drivers_peripheral_usb_feature_emulator_mode) { 124094332d3Sopenharmony_ci if (defined(defines)) { 125094332d3Sopenharmony_ci defines += [ "USB_EMULATOR_MODE" ] 126094332d3Sopenharmony_ci } else { 127094332d3Sopenharmony_ci defines = [ "USB_EMULATOR_MODE" ] 128094332d3Sopenharmony_ci } 129094332d3Sopenharmony_ci } 130094332d3Sopenharmony_ci 131094332d3Sopenharmony_ci if (is_standard_system) { 132094332d3Sopenharmony_ci external_deps = [ 133094332d3Sopenharmony_ci "hdf_core:libhdf_host", 134094332d3Sopenharmony_ci "hdf_core:libhdf_utils", 135094332d3Sopenharmony_ci "hilog:libhilog", 136094332d3Sopenharmony_ci ] 137094332d3Sopenharmony_ci 138094332d3Sopenharmony_ci if (usb_hisysevent_enable) { 139094332d3Sopenharmony_ci external_deps += [ "hisysevent:libhisysevent" ] 140094332d3Sopenharmony_ci 141094332d3Sopenharmony_ci if (defined(defines)) { 142094332d3Sopenharmony_ci defines += [ "USB_ENABLE_HISYSEVENT" ] 143094332d3Sopenharmony_ci } else { 144094332d3Sopenharmony_ci defines = [ "USB_ENABLE_HISYSEVENT" ] 145094332d3Sopenharmony_ci } 146094332d3Sopenharmony_ci } 147094332d3Sopenharmony_ci if (usb_c_utils_enable) { 148094332d3Sopenharmony_ci external_deps += [ "c_utils:utils" ] 149094332d3Sopenharmony_ci } 150094332d3Sopenharmony_ci } else { 151094332d3Sopenharmony_ci external_deps = [ "hilog:libhilog" ] 152094332d3Sopenharmony_ci } 153094332d3Sopenharmony_ci 154094332d3Sopenharmony_ci install_images = [ chipset_base_dir ] 155094332d3Sopenharmony_ci subsystem_name = "hdf" 156094332d3Sopenharmony_ci part_name = "drivers_peripheral_usb" 157094332d3Sopenharmony_ci} 158094332d3Sopenharmony_ci 159094332d3Sopenharmony_ciohos_shared_library("libusb_ddk_device") { 160094332d3Sopenharmony_ci sanitize = { 161094332d3Sopenharmony_ci integer_overflow = true 162094332d3Sopenharmony_ci ubsan = true 163094332d3Sopenharmony_ci boundary_sanitize = true 164094332d3Sopenharmony_ci cfi = true 165094332d3Sopenharmony_ci cfi_cross_dso = true 166094332d3Sopenharmony_ci debug = false 167094332d3Sopenharmony_ci } 168094332d3Sopenharmony_ci branch_protector_ret = "pac_ret" 169094332d3Sopenharmony_ci 170094332d3Sopenharmony_ci include_dirs = [ 171094332d3Sopenharmony_ci "device/include", 172094332d3Sopenharmony_ci "host/include", 173094332d3Sopenharmony_ci "./../interfaces/ddk/common", 174094332d3Sopenharmony_ci "./../interfaces/ddk/device", 175094332d3Sopenharmony_ci "./../interfaces/ddk/host", 176094332d3Sopenharmony_ci "./../utils/include", 177094332d3Sopenharmony_ci ] 178094332d3Sopenharmony_ci 179094332d3Sopenharmony_ci sources = [ 180094332d3Sopenharmony_ci "device/src/adapter_if.c", 181094332d3Sopenharmony_ci "device/src/usbfn_cfg_mgr.c", 182094332d3Sopenharmony_ci "device/src/usbfn_dev_mgr.c", 183094332d3Sopenharmony_ci "device/src/usbfn_io_mgr.c", 184094332d3Sopenharmony_ci "device/src/usbfn_sdk_if.c", 185094332d3Sopenharmony_ci ] 186094332d3Sopenharmony_ci 187094332d3Sopenharmony_ci if (is_standard_system) { 188094332d3Sopenharmony_ci external_deps = [ 189094332d3Sopenharmony_ci "hdf_core:libhdf_utils", 190094332d3Sopenharmony_ci "hilog:libhilog", 191094332d3Sopenharmony_ci ] 192094332d3Sopenharmony_ci if (usb_c_utils_enable) { 193094332d3Sopenharmony_ci external_deps += [ "c_utils:utils" ] 194094332d3Sopenharmony_ci } 195094332d3Sopenharmony_ci } else { 196094332d3Sopenharmony_ci external_deps = [ "hilog:libhilog" ] 197094332d3Sopenharmony_ci } 198094332d3Sopenharmony_ci 199094332d3Sopenharmony_ci if (drivers_peripheral_usb_feature_linux_native_model) { 200094332d3Sopenharmony_ci if (defined(defines)) { 201094332d3Sopenharmony_ci defines += [ "USB_EVENT_NOTIFY_LINUX_NATIVE_MODE" ] 202094332d3Sopenharmony_ci } else { 203094332d3Sopenharmony_ci defines = [ "USB_EVENT_NOTIFY_LINUX_NATIVE_MODE" ] 204094332d3Sopenharmony_ci } 205094332d3Sopenharmony_ci } 206094332d3Sopenharmony_ci 207094332d3Sopenharmony_ci install_images = [ chipset_base_dir ] 208094332d3Sopenharmony_ci subsystem_name = "hdf" 209094332d3Sopenharmony_ci part_name = "drivers_peripheral_usb" 210094332d3Sopenharmony_ci} 211