1# Copyright (c) 2021-2025 Huawei Device Co., Ltd. 2# Licensed under the Apache License, Version 2.0 (the "License"); 3# you may not use this file except in compliance with the License. 4# You may obtain a copy of the License at 5# 6# http://www.apache.org/licenses/LICENSE-2.0 7# 8# Unless required by applicable law or agreed to in writing, software 9# distributed under the License is distributed on an "AS IS" BASIS, 10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11# See the License for the specific language governing permissions and 12# limitations under the License. 13 14import("//build/ohos.gni") 15import("//build/ohos_var.gni") 16import( 17 "//foundation/distributedhardware/distributed_hardware_fwk/distributedhardwarefwk.gni") 18 19ohos_shared_library("distributedhardwarefwksvr") { 20 sanitize = { 21 boundary_sanitize = true 22 integer_overflow = true 23 ubsan = true 24 cfi = true 25 cfi_cross_dso = true 26 debug = false 27 } 28 branch_protector_ret = "pac_ret" 29 include_dirs = [ 30 "include", 31 "include/accessmanager", 32 "${av_center_svc_path}/include", 33 "${av_center_svc_path}/include/ipc", 34 "${av_trans_path}/common/include", 35 "${av_trans_path}/interface", 36 "${innerkits_path}/include", 37 "${innerkits_path}/include/ipc", 38 "${common_path}/log/include", 39 "${common_path}/utils/include", 40 "${utils_path}/include", 41 "include/componentloader", 42 "include/versionmanager", 43 "include/componentmanager", 44 "include/task", 45 "include/transport", 46 "include/utils", 47 "include/localhardwaremanager", 48 "include/publisher", 49 "include/resourcemanager", 50 "include/hidumphelper", 51 "include/ipc", 52 "include/lowlatency", 53 "include/hdfoperate", 54 ] 55 56 sources = [ 57 "${av_center_svc_path}/src/av_sync_manager.cpp", 58 "${av_center_svc_path}/src/av_trans_control_center.cpp", 59 "${av_trans_path}/common/src/av_sync_utils.cpp", 60 "${av_trans_path}/common/src/av_trans_message.cpp", 61 "${av_trans_path}/common/src/softbus_channel_adapter.cpp", 62 "src/accessmanager/access_manager.cpp", 63 "src/componentloader/component_loader.cpp", 64 "src/componentmanager/component_disable.cpp", 65 "src/componentmanager/component_enable.cpp", 66 "src/componentmanager/component_manager.cpp", 67 "src/componentmanager/component_monitor.cpp", 68 "src/componentmanager/component_privacy.cpp", 69 "src/componentmanager/dh_data_sync_trigger_listener.cpp", 70 "src/componentmanager/dh_state_listener.cpp", 71 "src/distributed_hardware_manager.cpp", 72 "src/distributed_hardware_manager_factory.cpp", 73 "src/distributed_hardware_service.cpp", 74 "src/distributed_hardware_stub.cpp", 75 "src/hdfoperate/hdf_operate.cpp", 76 "src/hidumphelper/enabled_comps_dump.cpp", 77 "src/hidumphelper/hidump_helper.cpp", 78 "src/ipc/get_dh_descriptors_callback_proxy.cpp", 79 "src/ipc/hardware_status_listener_proxy.cpp", 80 "src/ipc/publisher_listener_proxy.cpp", 81 "src/localhardwaremanager/local_hardware_manager.cpp", 82 "src/localhardwaremanager/plugin_listener_impl.cpp", 83 "src/lowlatency/low_latency.cpp", 84 "src/lowlatency/low_latency_listener.cpp", 85 "src/lowlatency/low_latency_timer.cpp", 86 "src/publisher/publisher.cpp", 87 "src/publisher/publisher_item.cpp", 88 "src/resourcemanager/capability_info.cpp", 89 "src/resourcemanager/capability_info_manager.cpp", 90 "src/resourcemanager/capability_utils.cpp", 91 "src/resourcemanager/db_adapter.cpp", 92 "src/resourcemanager/local_capability_info_manager.cpp", 93 "src/resourcemanager/meta_capability_info.cpp", 94 "src/resourcemanager/meta_info_manager.cpp", 95 "src/resourcemanager/version_info.cpp", 96 "src/resourcemanager/version_info_manager.cpp", 97 "src/task/disable_task.cpp", 98 "src/task/enable_task.cpp", 99 "src/task/exit_dfwk_task.cpp", 100 "src/task/meta_disable_task.cpp", 101 "src/task/meta_enable_task.cpp", 102 "src/task/offline_task.cpp", 103 "src/task/online_task.cpp", 104 "src/task/task.cpp", 105 "src/task/task_board.cpp", 106 "src/task/task_executor.cpp", 107 "src/task/task_factory.cpp", 108 "src/transport/dh_comm_tool.cpp", 109 "src/transport/dh_transport.cpp", 110 "src/transport/dh_transport_obj.cpp", 111 "src/utils/dh_context.cpp", 112 "src/utils/dh_modem_context_ext.cpp", 113 "src/utils/dh_timer.cpp", 114 "src/versionmanager/version_manager.cpp", 115 ] 116 117 deps = [ 118 "${utils_path}:distributedhardwareutils", 119 "${innerkits_path}:dhfwk_idl_hardware_source", 120 ] 121 122 defines = [ 123 "HI_LOG_ENABLE", 124 "DH_LOG_TAG=\"dhfwksvr\"", 125 "LOG_DOMAIN=0xD004100", 126 ] 127 128 cflags = [ 129 "-fstack-protector-strong", 130 "-D_FORTIFY_SOURCE=2", 131 "-O2", 132 ] 133 134 cflags_cc = cflags 135 136 ldflags = [ 137 "-fpie", 138 "-Wl,-z,relro", 139 "-Wl,-z,now", 140 ] 141 142 if (distributed_hardware_fwk_low_latency) { 143 defines += [ "DHARDWARE_LOW_LATENCY" ] 144 } 145 146 if (!distributed_hardware_fwk_low_latency) { 147 defines += [ "DHARDWARE_OPEN_SOURCE" ] 148 } 149 150 if (distributed_hardware_fwk_low_latency) { 151 defines += [ "DHARDWARE_CHECK_RESOURCE" ] 152 } 153 154 external_deps = [ 155 "ability_base:want", 156 "ability_runtime:ability_manager", 157 "access_token:libaccesstoken_sdk", 158 "access_token:libtokenid_sdk", 159 "access_token:libtokensetproc_shared", 160 "cJSON:cjson", 161 "c_utils:utils", 162 "config_policy:configpolicy_util", 163 "device_manager:devicemanagersdk", 164 "dsoftbus:softbus_client", 165 "eventhandler:libeventhandler", 166 "ffrt:libffrt", 167 "hilog:libhilog", 168 "hisysevent:libhisysevent", 169 "hitrace:hitrace_meter", 170 "init:libbegetutil", 171 "ipc:ipc_core", 172 "kv_store:distributeddata_inner", 173 "resource_schedule_service:ressched_client", 174 "safwk:system_ability_fwk", 175 "samgr:samgr_proxy", 176 ] 177 178 if (dhfwk_os_account) { 179 external_deps += [ 180 "os_account:libaccountkits", 181 "os_account:os_account_innerkits", 182 ] 183 } 184 185 if (dhfwk_os_account) { 186 defines += [ "OS_ACCOUNT_PART" ] 187 } 188 189 subsystem_name = "distributedhardware" 190 191 part_name = "distributed_hardware_fwk" 192 193 public_configs = [ "${innerkits_path}:dhfwk_idl_hardware_config" ] 194} 195