1# Copyright (C) 2024 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("//foundation/filemanagement/dfs_service/distributedfile.gni") 16config("optimize-size") { 17 cflags = [ 18 "-fdata-sections", 19 "-ffunction-sections", 20 "-Oz", 21 ] 22 cflags_cc = [ 23 "-fvisibility-inlines-hidden", 24 "-Oz", 25 ] 26} 27ohos_shared_library("cloudsync_sa") { 28 branch_protector_ret = "pac_ret" 29 configs = [ ":optimize-size" ] 30 sanitize = { 31 integer_overflow = true 32 ubsan = true 33 boundary_sanitize = true 34 cfi = true 35 cfi_cross_dso = true 36 debug = false 37 } 38 include_dirs = [ 39 "include", 40 "include/cycle_task", 41 "include/cycle_task/tasks", 42 "include/transport", 43 "include/transport/softbus", 44 "${services_path}/cloudfiledaemon/include/cloud_disk", 45 "${innerkits_native_path}/cloudsync_kit_inner", 46 ] 47 48 cycle_task = [ 49 "src/cycle_task/cycle_task.cpp", 50 "src/cycle_task/cycle_task_runner.cpp", 51 "src/cycle_task/tasks/optimize_storage_task.cpp", 52 "src/cycle_task/tasks/periodic_check_task.cpp", 53 "src/cycle_task/tasks/report_statistics_task.cpp", 54 "src/cycle_task/tasks/save_subscription_task.cpp", 55 "src/cycle_task/tasks/database_backup_task.cpp", 56 ] 57 58 transport = [ 59 "src/transport/file_transfer_manager.cpp", 60 "src/transport/message_handler.cpp", 61 "src/transport/softbus/session_manager.cpp", 62 "src/transport/softbus/softbus_adapter.cpp", 63 "src/transport/softbus/softbus_session.cpp", 64 ] 65 66 sources = [ 67 "${distributedfile_path}/frameworks/native/cloudsync_kit_inner/src/cloud_sync_common.cpp", 68 "src/ipc/cloud_sync_service.cpp", 69 "src/ipc/cloud_sync_service_stub.cpp", 70 "src/ipc/download_asset_callback_manager.cpp", 71 "src/ipc/download_asset_callback_proxy.cpp", 72 "src/sync_rule/battery_status_listener.cpp", 73 "src/sync_rule/package_status_listener.cpp", 74 "src/sync_rule/screen_status_listener.cpp", 75 "src/sync_rule/user_status_listener.cpp", 76 ] 77 78 sources += cycle_task 79 sources += transport 80 81 defines = [ 82 "LOG_DOMAIN=0xD004307", 83 "LOG_TAG=\"CLOUDSYNC_SA\"", 84 ] 85 86 deps = [ 87 "${clouddisk_database_path}:clouddisk_database", 88 "${innerkits_native_path}/cloud_file_kit_inner:cloudfile_kit", 89 "${utils_path}:libdistributedfiledentry", 90 "${utils_path}:libdistributedfileutils", 91 ] 92 93 external_deps = [ 94 "ability_base:want", 95 "ability_base:zuri", 96 "ability_runtime:ability_manager", 97 "app_file_service:sandbox_helper_native", 98 "c_utils:utils", 99 "common_event_service:cesfwk_innerkits", 100 "dsoftbus:softbus_client", 101 "ffrt:libffrt", 102 "hilog:libhilog", 103 "hitrace:hitrace_meter", 104 "init:libbegetutil", 105 "ipc:ipc_single", 106 "libfuse:libfuse", 107 "netmanager_base:net_conn_manager_if", 108 "os_account:os_account_innerkits", 109 "preferences:native_preferences", 110 "safwk:system_ability_fwk", 111 "samgr:samgr_proxy", 112 ] 113 114 if (cloudsync_service_hicollie_enable) { 115 external_deps += [ "hicollie:libhicollie" ] 116 defines += [ "HICOLLIE_ENABLE" ] 117 } 118 119 if (cloudsync_service_resource_schedule) { 120 external_deps += [ "resource_schedule_service:ressched_client" ] 121 } 122 123 use_exceptions = true 124 part_name = "dfs_service" 125 subsystem_name = "filemanagement" 126} 127 128ohos_static_library("cloudsync_sa_static") { 129 branch_protector_ret = "pac_ret" 130 sanitize = { 131 integer_overflow = true 132 ubsan = true 133 boundary_sanitize = true 134 cfi = true 135 cfi_cross_dso = true 136 debug = false 137 } 138 include_dirs = [ 139 "include", 140 "include/cycle_task", 141 "include/cycle_task/tasks", 142 "include/transport", 143 "include/transport/softbus", 144 "${clouddisk_database_path}/include", 145 "${services_path}/cloudfiledaemon/include/cloud_disk", 146 "${innerkits_native_path}/cloudsync_kit_inner", 147 "${media_library_path}/frameworks/innerkitsimpl/media_library_helper/include", 148 "${media_library_path}/interfaces/inner_api/media_library_helper/include", 149 "${media_library_path}/frameworks/services/media_thumbnail/include", 150 "${media_library_path}/frameworks/utils/include", 151 "${distributedfile_path}/test/unittests/cloudsync_sa/mock/", 152 "//third_party/e2fsprogs/e2fsprogs/lib", 153 ] 154 155 cycle_task = [ 156 "src/cycle_task/cycle_task.cpp", 157 "src/cycle_task/cycle_task_runner.cpp", 158 "src/cycle_task/tasks/optimize_storage_task.cpp", 159 "src/cycle_task/tasks/periodic_check_task.cpp", 160 "src/cycle_task/tasks/report_statistics_task.cpp", 161 "src/cycle_task/tasks/save_subscription_task.cpp", 162 "src/cycle_task/tasks/database_backup_task.cpp", 163 ] 164 165 transport = [ 166 "src/transport/file_transfer_manager.cpp", 167 "src/transport/message_handler.cpp", 168 "src/transport/softbus/session_manager.cpp", 169 "src/transport/softbus/softbus_adapter.cpp", 170 "src/transport/softbus/softbus_session.cpp", 171 ] 172 173 sources = [ 174 "${distributedfile_path}/frameworks/native/cloudsync_kit_inner/src/cloud_sync_common.cpp", 175 "${media_library_path}/frameworks/innerkitsimpl/media_library_helper/src/base_column.cpp", 176 "${media_library_path}/frameworks/innerkitsimpl/media_library_helper/src/media_column.cpp", 177 "${media_library_path}/frameworks/innerkitsimpl/media_library_helper/src/medialibrary_business_record_column.cpp", 178 "${media_library_path}/frameworks/innerkitsimpl/media_library_helper/src/photo_album_column.cpp", 179 "${media_library_path}/frameworks/innerkitsimpl/media_library_helper/src/photo_map_column.cpp", 180 "src/ipc/cloud_sync_service.cpp", 181 "src/ipc/cloud_sync_service_stub.cpp", 182 "src/ipc/download_asset_callback_manager.cpp", 183 "src/ipc/download_asset_callback_proxy.cpp", 184 "src/sync_rule/battery_status_listener.cpp", 185 "src/sync_rule/package_status_listener.cpp", 186 "src/sync_rule/screen_status_listener.cpp", 187 "src/sync_rule/user_status_listener.cpp", 188 ] 189 190 sources += cycle_task 191 sources += transport 192 193 defines = [ 194 "LOG_DOMAIN=0xD004307", 195 "LOG_TAG=\"CLOUDSYNC_SA\"", 196 ] 197 198 deps = [ 199 "${clouddisk_database_path}:clouddisk_database", 200 "${innerkits_native_path}/cloud_file_kit_inner:cloudfile_kit", 201 "${utils_path}:libdistributedfiledentry", 202 "${utils_path}:libdistributedfileutils", 203 "//third_party/e2fsprogs:libext2_uuid", 204 ] 205 206 external_deps = [ 207 "ability_base:want", 208 "ability_base:zuri", 209 "ability_runtime:ability_manager", 210 "ability_runtime:dataobs_manager", 211 "app_file_service:sandbox_helper_native", 212 "c_utils:utils", 213 "common_event_service:cesfwk_innerkits", 214 "dsoftbus:softbus_client", 215 "eventhandler:libeventhandler", 216 "ffrt:libffrt", 217 "hilog:libhilog", 218 "hitrace:hitrace_meter", 219 "init:libbegetutil", 220 "ipc:ipc_single", 221 "libfuse:libfuse", 222 "netmanager_base:net_conn_manager_if", 223 "os_account:os_account_innerkits", 224 "power_manager:powermgr_client", 225 "preferences:native_preferences", 226 "relational_store:native_rdb", 227 "safwk:system_ability_fwk", 228 "samgr:samgr_proxy", 229 ] 230 231 if (cloudsync_service_hicollie_enable) { 232 external_deps += [ "hicollie:libhicollie" ] 233 defines += [ "HICOLLIE_ENABLE" ] 234 } 235 236 deps += 237 [ "${distributedfile_path}/adapter/cloud_adapter_example:cloud_adapter" ] 238 239 if (cloudsync_service_resource_schedule) { 240 external_deps += [ "resource_schedule_service:ressched_client" ] 241 defines += [ "CLOUDSYNC_SERVICE_RESOURCE_SCHEDULE" ] 242 } 243 244 if (cloudsync_service_power) { 245 external_deps += [ "battery_manager:batterysrv_client" ] 246 247 defines += [ "SUPPORT_POWER" ] 248 } 249 250 if (is_emulator) { 251 defines += [ "EMULATOR" ] 252 } 253 254 use_exceptions = true 255 part_name = "dfs_service" 256 subsystem_name = "filemanagement" 257} 258