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