• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (C) 2021-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/config/components/memory_utils/purgeable_mem_config.gni")
15import("//build/ohos.gni")
16import("//foundation/multimedia/media_library/media_library.gni")
17
18config("media_library_manager_config") {
19  include_dirs =
20      [ "${MEDIALIB_INTERFACES_PATH}/inner_api/media_library_helper/include" ]
21}
22
23ohos_shared_library("media_library_manager") {
24  install_enable = true
25
26  sources = [
27    "./media_library_manager.cpp",
28    "./src/media_library_tab_old_photos_client.cpp",
29  ]
30
31  include_dirs = [
32    "./include",
33    "${MEDIALIB_UTILS_PATH}/include",
34    "${MEDIALIB_INNERKITS_PATH}/media_library_helper/include",
35    "${MEDIALIB_INTERFACES_PATH}/kits/js/include",
36    "${MEDIALIB_SERVICES_PATH}/media_thumbnail/include",
37    "${MEDIALIB_INNERKITS_PATH}/medialibrary_data_extension/include",
38  ]
39
40  user_ipc_client_include_dirs = [
41    "${MEDIALIB_INNERKITS_PATH}/medialibrary_data_extension/include/ipc",
42    "${MEDIALIB_INNERKITS_PATH}/medialibrary_data_extension/include/ipc/util",
43    "${MEDIALIB_INNERKITS_PATH}/medialibrary_data_extension/include/ipc/vo",
44    "${MEDIALIB_BUSINESS_PATH}/media_assets_manager/include/vo",
45    "${MEDIALIB_BUSINESS_PATH}/media_albums_manager/include/vo",
46    "${MEDIALIB_BUSINESS_PATH}/media_assets_manager/include/dto",
47  ]
48
49  media_albums_manager_vo_source = [
50    "${MEDIALIB_BUSINESS_PATH}/media_albums_manager/src/vo/get_albums_lpath_by_ids_vo.cpp",
51    "${MEDIALIB_BUSINESS_PATH}/media_albums_manager/src/vo/query_albums_vo.cpp",
52  ]
53
54  media_assets_manager_vo_source = [
55    "${MEDIALIB_BUSINESS_PATH}/media_assets_manager/src/vo/add_visit_count_vo.cpp",
56    "${MEDIALIB_BUSINESS_PATH}/media_assets_manager/src/vo/create_asset_vo.cpp",
57    "${MEDIALIB_BUSINESS_PATH}/media_assets_manager/src/vo/get_result_set_from_db_vo.cpp",
58    "${MEDIALIB_BUSINESS_PATH}/media_assets_manager/src/vo/get_moving_photo_date_modified_vo.cpp",
59    "${MEDIALIB_BUSINESS_PATH}/media_assets_manager/src/vo/get_result_set_from_photos_extend_vo.cpp",
60    "${MEDIALIB_BUSINESS_PATH}/media_assets_manager/src/vo/get_uri_from_filepath_vo.cpp",
61    "${MEDIALIB_BUSINESS_PATH}/media_assets_manager/src/vo/get_filepath_from_uri_vo.cpp",
62    "${MEDIALIB_BUSINESS_PATH}/media_assets_manager/src/vo/close_asset_vo.cpp",
63    "${MEDIALIB_BUSINESS_PATH}/media_assets_manager/src/vo/get_uris_by_old_uris_inner_vo.cpp",
64    "${MEDIALIB_BUSINESS_PATH}/media_assets_manager/src/vo/retain_cloud_media_asset_vo.cpp",
65  ]
66
67  user_ipc_client_source = [ "${MEDIALIB_INNERKITS_PATH}/medialibrary_data_extension/src/ipc/util/user_inner_ipc_client.cpp" ]
68
69  include_dirs += user_ipc_client_include_dirs
70  sources += media_albums_manager_vo_source
71  sources += media_assets_manager_vo_source
72  sources += user_ipc_client_source
73
74  public_configs = [ ":media_library_manager_config" ]
75
76  deps = [ "${MEDIALIB_INNERKITS_PATH}/media_library_helper:media_library" ]
77
78  external_deps = [
79    "ability_base:want",
80    "ability_base:zuri",
81    "ability_runtime:ability_manager",
82    "ability_runtime:abilitykit_native",
83    "access_token:libaccesstoken_sdk",
84    "access_token:libprivacy_sdk",
85    "access_token:libtokenid_sdk",
86    "app_file_service:fileuri_native",
87    "bundle_framework:appexecfwk_base",
88    "bundle_framework:appexecfwk_core",
89    "c_utils:utils",
90    "common_event_service:cesfwk_innerkits",
91    "data_share:datashare_common",
92    "data_share:datashare_consumer",
93    "hilog:libhilog",
94    "hitrace:hitrace_meter",
95    "image_framework:image_native",
96    "ipc:ipc_core",
97    "kv_store:distributeddata_inner",
98    "relational_store:rdb_data_share_adapter",
99    "samgr:samgr_proxy",
100  ]
101
102  ldflags = [ "-Wl,--gc-sections" ]
103
104  cflags = [
105    "-fdata-sections",
106    "-ffunction-sections",
107    "-Os",
108  ]
109
110  cflags_cc = [ "-Os" ]
111
112  if (!media_library_link_opt) {
113    sanitize = {
114      cfi = true
115      cfi_cross_dso = true
116      debug = false
117      integer_overflow = true
118      ubsan = true
119      boundary_sanitize = true
120      stack_protector_ret = true
121    }
122  }
123
124  defines = []
125  defines += [ "MEDIALIBRARY_COMPATIBILITY=1" ]
126
127  if (memory_utils_purgeable_ashmem_enable && defined(global_parts_info) &&
128      defined(global_parts_info.resourceschedule_memmgr_override)) {
129    defines += [ "IMAGE_PURGEABLE_PIXELMAP" ]
130    external_deps += [
131      "ffrt:libffrt",
132      "memmgr_override:libpurgeablemem_plugin",
133      "memmgr_override:purgeable_pixelmap_builder",
134    ]
135  }
136
137  part_name = "media_library"
138  subsystem_name = "multimedia"
139}
140
141ohos_shared_library("media_library_extend_manager") {
142  install_enable = true
143
144  sources = [ "./media_library_extend_manager.cpp" ]
145
146  include_dirs = [
147    "${MEDIALIB_UTILS_PATH}/include",
148    "${MEDIALIB_INNERKITS_PATH}/media_library_helper/include",
149    "${MEDIALIB_INTERFACES_PATH}/kits/js/include",
150  ]
151
152  user_ipc_client_include_dirs = [
153    "${MEDIALIB_INNERKITS_PATH}/medialibrary_data_extension/include/ipc",
154    "${MEDIALIB_INNERKITS_PATH}/medialibrary_data_extension/include/ipc/util",
155    "${MEDIALIB_INNERKITS_PATH}/medialibrary_data_extension/include/ipc/vo",
156    "${MEDIALIB_BUSINESS_PATH}/media_assets_manager/include/vo",
157    "${MEDIALIB_BUSINESS_PATH}/media_albums_manager/include/vo",
158    "${MEDIALIB_BUSINESS_PATH}/media_assets_manager/include/dto",
159  ]
160
161  media_albums_manager_vo_source = []
162
163  media_assets_manager_vo_source = [
164    "${MEDIALIB_BUSINESS_PATH}/media_assets_manager/src/vo/get_result_set_from_db_vo.cpp",
165    "${MEDIALIB_BUSINESS_PATH}/media_assets_manager/src/vo/get_result_set_from_photos_extend_vo.cpp",
166    "${MEDIALIB_BUSINESS_PATH}/media_assets_manager/src/vo/cancel_photo_uri_permission_inner_vo.cpp",
167    "${MEDIALIB_BUSINESS_PATH}/media_assets_manager/src/vo/grant_photo_uri_permission_inner_vo.cpp",
168    "${MEDIALIB_BUSINESS_PATH}/media_assets_manager/src/vo/check_photo_uri_permission_inner_vo.cpp",
169  ]
170
171  user_ipc_client_source = [ "${MEDIALIB_INNERKITS_PATH}/medialibrary_data_extension/src/ipc/util/user_inner_ipc_client.cpp" ]
172
173  include_dirs += user_ipc_client_include_dirs
174  sources += media_albums_manager_vo_source
175  sources += media_assets_manager_vo_source
176  sources += user_ipc_client_source
177
178  public_configs = [ ":media_library_manager_config" ]
179
180  deps = [ "${MEDIALIB_INNERKITS_PATH}/media_library_helper:media_library" ]
181
182  external_deps = [
183    "ability_base:want",
184    "ability_base:zuri",
185    "ability_runtime:ability_manager",
186    "ability_runtime:abilitykit_native",
187    "access_token:libaccesstoken_sdk",
188    "access_token:libprivacy_sdk",
189    "access_token:libtokenid_sdk",
190    "app_file_service:fileuri_native",
191    "bundle_framework:appexecfwk_base",
192    "bundle_framework:appexecfwk_core",
193    "c_utils:utils",
194    "common_event_service:cesfwk_innerkits",
195    "data_share:datashare_common",
196    "data_share:datashare_consumer",
197    "hilog:libhilog",
198    "hitrace:hitrace_meter",
199    "ipc:ipc_core",
200    "os_account:os_account_innerkits",
201    "samgr:samgr_proxy",
202  ]
203
204  ldflags = [ "-Wl,--gc-sections" ]
205
206  cflags = [
207    "-fdata-sections",
208    "-ffunction-sections",
209    "-Os",
210  ]
211
212  cflags_cc = [ "-Os" ]
213
214  if (!media_library_link_opt) {
215    sanitize = {
216      cfi = true
217      cfi_cross_dso = true
218      debug = false
219      integer_overflow = true
220      ubsan = true
221      boundary_sanitize = true
222      stack_protector_ret = true
223    }
224  }
225
226  defines = []
227  defines += [ "MEDIALIBRARY_COMPATIBILITY=1" ]
228
229  part_name = "media_library"
230  subsystem_name = "multimedia"
231}
232
233ohos_shared_library("media_library_custom_restore") {
234  install_enable = true
235
236  sources = [
237    "./media_library_custom_restore.cpp",
238    "./src/medialibrary_custom_restore_observer_manager.cpp",
239  ]
240
241  include_dirs = [
242    "./include",
243    "${MEDIALIB_UTILS_PATH}/include",
244    "${MEDIALIB_INNERKITS_PATH}/media_library_helper/include",
245    "${MEDIALIB_INNERKITS_PATH}/medialibrary_data_extension/include",
246  ]
247
248  user_ipc_client_include_dirs = [
249    "${MEDIALIB_INNERKITS_PATH}/medialibrary_data_extension/include/ipc",
250    "${MEDIALIB_INNERKITS_PATH}/medialibrary_data_extension/include/ipc/util",
251    "${MEDIALIB_INNERKITS_PATH}/medialibrary_data_extension/include/ipc/vo",
252    "${MEDIALIB_BUSINESS_PATH}/media_assets_manager/include/vo",
253    "${MEDIALIB_BUSINESS_PATH}/media_albums_manager/include/vo",
254  ]
255
256  media_albums_manager_vo_source = []
257
258  media_assets_manager_vo_source = [
259    "${MEDIALIB_BUSINESS_PATH}/media_assets_manager/src/vo/restore_vo.cpp",
260    "${MEDIALIB_BUSINESS_PATH}/media_assets_manager/src/vo/stop_restore_vo.cpp",
261  ]
262
263  user_ipc_client_source = [ "${MEDIALIB_INNERKITS_PATH}/medialibrary_data_extension/src/ipc/util/user_inner_ipc_client.cpp" ]
264
265  include_dirs += user_ipc_client_include_dirs
266  sources += media_albums_manager_vo_source
267  sources += media_assets_manager_vo_source
268  sources += user_ipc_client_source
269
270  public_configs = [ ":media_library_manager_config" ]
271
272  deps = [ "${MEDIALIB_INNERKITS_PATH}/media_library_helper:media_library" ]
273
274  external_deps = [
275    "c_utils:utils",
276    "data_share:datashare_common",
277    "data_share:datashare_consumer",
278    "hilog:libhilog",
279    "hisysevent:libhisysevent",
280    "hitrace:hitrace_meter",
281    "ipc:ipc_core",
282    "samgr:samgr_proxy",
283  ]
284
285  ldflags = [ "-Wl,--gc-sections" ]
286
287  cflags = [
288    "-fdata-sections",
289    "-ffunction-sections",
290    "-Os",
291  ]
292
293  cflags_cc = [ "-Os" ]
294
295  if (!media_library_link_opt) {
296    sanitize = {
297      cfi = true
298      cfi_cross_dso = true
299      debug = false
300      integer_overflow = true
301      ubsan = true
302      boundary_sanitize = true
303      stack_protector_ret = true
304    }
305  }
306
307  part_name = "media_library"
308  subsystem_name = "multimedia"
309}
310