• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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