• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (C) 2021-2023 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/multimedia/media_library/media_library.gni")
16
17ohos_prebuilt_etc("userfilemanager_mimetypes.json") {
18  module_install_dir = "etc/userfilemanager"
19
20  source = "${MEDIALIB_UTILS_PATH}/configs/userfilemanager_mimetypes.json"
21
22  subsystem_name = "multimedia"
23  part_name = "media_library"
24}
25
26config("media_data_extension_public_config") {
27  include_fileext = [ "${MEDIALIB_SERVICES_PATH}/media_file_extension/include" ]
28  include_fuse = [ "${MEDIALIB_SERVICES_PATH}/media_fuse/include" ]
29  include_distributed = [
30    "${MEDIALIB_SERVICES_PATH}/media_distributed/include/database_manage",
31    "${MEDIALIB_SERVICES_PATH}/media_distributed/include/device_manage",
32    "${MEDIALIB_SERVICES_PATH}/media_distributed/include/devices_info_interact",
33  ]
34  include_scanner = [
35    "${MEDIALIB_SERVICES_PATH}/media_scanner/include/callback",
36    "${MEDIALIB_SERVICES_PATH}/media_scanner/include/scanner",
37  ]
38
39  include_multistages_capture = [
40    "${MEDIALIB_SERVICES_PATH}/media_multistages_capture/include",
41    "${MEDIALIB_SERVICES_PATH}/media_multistages_capture/include/deferred_processing",
42    "${MEDIALIB_SERVICES_PATH}/media_multistages_capture/include/dfx",
43    "${MEDIALIB_SERVICES_PATH}/media_multistages_capture/include/utils",
44  ]
45
46  include_dfx = [ "${MEDIALIB_SERVICES_PATH}/media_dfx/include" ]
47
48  include_cloud_asset_download = [
49    "${MEDIALIB_SERVICES_PATH}/media_cloud_sync/include/cloud_sync_utils",
50    "${MEDIALIB_SERVICES_PATH}/media_cloud_sync/include/media_cloud_asset_download",
51  ]
52
53  include_cloud_dirty_handle = [
54    "${MEDIALIB_SERVICES_PATH}/media_cloud_sync/include/cloud_dirty_handle",
55  ]
56
57  include_albums_refresh =
58      [ "${MEDIALIB_SERVICES_PATH}/media_albums_refresh/include" ]
59
60  include_dirs = [
61    "${MEDIALIB_INTERFACES_PATH}/innerkits/native/include",
62    "${MEDIALIB_INTERFACES_PATH}/inner_api/media_library_helper/include",
63    "${MEDIALIB_INNERKITS_PATH}/media_library_helper/include",
64    "${MEDIALIB_UTILS_PATH}/include",
65    "${MEDIALIB_INNERKITS_PATH}/medialibrary_data_extension/include/config",
66    "${MEDIALIB_INNERKITS_PATH}/medialibrary_data_extension/include/event_handler",
67    "${MEDIALIB_INNERKITS_PATH}/medialibrary_data_extension/include/operation",
68    "${MEDIALIB_INNERKITS_PATH}/medialibrary_data_extension/include/photo_album_operation",
69    "${MEDIALIB_INNERKITS_PATH}/medialibrary_data_extension/include/po",
70    "${MEDIALIB_INNERKITS_PATH}/medialibrary_data_extension/include",
71    "${MEDIALIB_SERVICES_PATH}/media_analysis_extension/include",
72    "${MEDIALIB_SERVICES_PATH}/media_async_worker/include",
73    "${MEDIALIB_SERVICES_PATH}/media_thumbnail/include",
74    "${MEDIALIB_SERVICES_PATH}/media_cloud_sync_notify_handle/include",
75    "${MEDIALIB_SERVICES_PATH}/media_permission/include",
76    "${MEDIALIB_SERVICES_PATH}/media_power_efficiency/include",
77
78    "../../../../../bundlemanager/bundle_framework/interfaces/kits/js/common",
79  ]
80  include_dirs += include_fileext
81  include_dirs += include_fuse
82  include_dirs += include_distributed
83  include_dirs += include_scanner
84  include_dirs += include_multistages_capture
85  include_dirs += include_dfx
86  include_dirs += include_cloud_asset_download
87  include_dirs += include_cloud_dirty_handle
88  include_dirs += include_albums_refresh
89
90  if (media_library_feature_cloud_enhancement) {
91    include_cloud_enhancement = [
92      "${MEDIALIB_SERVICES_PATH}/media_cloud_enhancement/include",
93      "${MEDIALIB_SERVICES_PATH}/media_cloud_enhancement/include/enhancement_service",
94      "${MEDIALIB_SERVICES_PATH}/media_cloud_enhancement/include/utils",
95      "${MEDIALIB_SERVICES_PATH}/media_cloud_enhancement/include/dfx",
96    ]
97    include_dirs += include_cloud_enhancement
98  }
99
100  if (defined(global_parts_info) &&
101      defined(
102          global_parts_info.device_cloud_gateway_media_cloud_enhance_service) &&
103      media_library_feature_cloud_enhancement) {
104    include_dirs += [ "${MEDIALIB_CLOUD_ENHANCEMENT_SERVICE_PATH}/interfaces/inner_api/include/c_api" ]
105  }
106
107  ldflags = [ "-Wl,--gc-sections" ]
108
109  cflags = [
110    "-fvisibility=hidden",
111    "-fdata-sections",
112    "-ffunction-sections",
113    "-Os",
114  ]
115
116  cflags_cc = [
117    "-fvisibility-inlines-hidden",
118    "-Os",
119  ]
120
121  if (target_cpu == "arm") {
122    cflags += [ "-DBINDER_IPC_32BIT" ]
123  }
124}
125
126ohos_hap("medialibrary_ext_hap") {
127  hap_profile = "MediaLibraryExt/entry/src/main/module.json"
128  deps = [
129    ":MediaLibStage_js_assets",
130    ":MediaLibStage_resources",
131  ]
132  shared_libraries = [ "${MEDIALIB_INNERKITS_PATH}/medialibrary_data_extension:medialibrary_data_extension" ]
133  certificate_profile = "${MEDIALIB_INNERKITS_PATH}/signature/medialib.p7b"
134  hap_name = "Media_Library_Ext"
135  part_name = "media_library"
136  subsystem_name = "multimedia"
137  module_install_dir = "app/com.ohos.medialibrary.MediaLibraryData"
138  publicity_file = "../../../publicity.xml"
139  if (defined(sign_hap_py_path)) {
140    certificate_profile =
141        "${MEDIALIB_INNERKITS_PATH}/signature/medialib_new.p7b"
142    key_alias = "medialibrarydata"
143    private_key_path = "medialibrarydata"
144    compatible_version = "9"
145  }
146}
147
148ohos_js_assets("MediaLibStage_js_assets") {
149  hap_profile = "MediaLibraryExt/entry/src/main/module.json"
150  ets2abc = true
151  source_dir = "MediaLibraryExt/entry/src/main/ets"
152}
153
154ohos_app_scope("MediaLibStage_app_profile") {
155  app_profile = "MediaLibraryExt/AppScope/app.json"
156  sources = [ "MediaLibraryExt/AppScope/resources" ]
157}
158
159ohos_resources("MediaLibStage_resources") {
160  sources = [ "MediaLibraryExt/entry/src/main/resources" ]
161  deps = [ ":MediaLibStage_app_profile" ]
162  hap_profile = "MediaLibraryExt/entry/src/main/module.json"
163}
164
165ohos_shared_library("medialibrary_data_extension") {
166  install_enable = true
167
168  media_scan_source = [
169    "${MEDIALIB_SERVICES_PATH}/media_scanner/src/scanner/media_scan_executor.cpp",
170    "${MEDIALIB_SERVICES_PATH}/media_scanner/src/scanner/media_scanner.cpp",
171    "${MEDIALIB_SERVICES_PATH}/media_scanner/src/scanner/media_scanner_manager.cpp",
172    "${MEDIALIB_SERVICES_PATH}/media_scanner/src/scanner/media_scanner_db.cpp",
173    "${MEDIALIB_SERVICES_PATH}/media_scanner/src/scanner/metadata.cpp",
174    "${MEDIALIB_SERVICES_PATH}/media_scanner/src/scanner/metadata_extractor.cpp",
175    "${MEDIALIB_SERVICES_PATH}/media_scanner/src/scanner/scanner_utils.cpp",
176  ]
177
178  media_fuse_source = [
179    "${MEDIALIB_SERVICES_PATH}/media_fuse/src/media_fuse_daemon.cpp",
180    "${MEDIALIB_SERVICES_PATH}/media_fuse/src/media_fuse_manager.cpp",
181  ]
182
183  media_thumbnail_source = [
184    "${MEDIALIB_SERVICES_PATH}/media_thumbnail/src/cloud_thumbnail_observer.cpp",
185    "${MEDIALIB_SERVICES_PATH}/media_thumbnail/src/ithumbnail_helper.cpp",
186    "${MEDIALIB_SERVICES_PATH}/media_thumbnail/src/thumbnail_aging_helper.cpp",
187    "${MEDIALIB_SERVICES_PATH}/media_thumbnail/src/thumbnail_generate_helper.cpp",
188    "${MEDIALIB_SERVICES_PATH}/media_thumbnail/src/thumbnail_generate_worker.cpp",
189    "${MEDIALIB_SERVICES_PATH}/media_thumbnail/src/thumbnail_generate_worker_manager.cpp",
190    "${MEDIALIB_SERVICES_PATH}/media_thumbnail/src/thumbnail_image_framework_utils.cpp",
191    "${MEDIALIB_SERVICES_PATH}/media_thumbnail/src/thumbnail_service.cpp",
192    "${MEDIALIB_SERVICES_PATH}/media_thumbnail/src/thumbnail_source_loading.cpp",
193    "${MEDIALIB_SERVICES_PATH}/media_thumbnail/src/thumbnail_uri_utils.cpp",
194    "${MEDIALIB_SERVICES_PATH}/media_thumbnail/src/thumbnail_utils.cpp",
195  ]
196
197  media_cloud_sync_source = [
198    "${MEDIALIB_CLOUD_SYNC_PATH}/src/cloud_sync_helper.cpp",
199    "${MEDIALIB_CLOUD_SYNC_PATH}/src/cloud_sync_switch_observer.cpp",
200  ]
201
202  media_rdb_utils_source = [
203    "src/medialibrary_rdb_utils.cpp",
204    "src/medialibrary_rdb_transaction.cpp",
205  ]
206
207  media_multistages_capture_source = [
208    "${MEDIALIB_SERVICES_PATH}/media_multistages_capture/src/deferred_processing/deferred_photo_proc_adapter.cpp",
209    "${MEDIALIB_SERVICES_PATH}/media_multistages_capture/src/deferred_processing/deferred_video_proc_adapter.cpp",
210    "${MEDIALIB_SERVICES_PATH}/media_multistages_capture/src/dfx/multistages_capture_dfx_first_visit.cpp",
211    "${MEDIALIB_SERVICES_PATH}/media_multistages_capture/src/dfx/multistages_capture_dfx_request_policy.cpp",
212    "${MEDIALIB_SERVICES_PATH}/media_multistages_capture/src/dfx/multistages_capture_dfx_result.cpp",
213    "${MEDIALIB_SERVICES_PATH}/media_multistages_capture/src/dfx/multistages_capture_dfx_total_time.cpp",
214    "${MEDIALIB_SERVICES_PATH}/media_multistages_capture/src/dfx/multistages_capture_dfx_trigger_ratio.cpp",
215    "${MEDIALIB_SERVICES_PATH}/media_multistages_capture/src/utils/database_adapter.cpp",
216    "${MEDIALIB_SERVICES_PATH}/media_multistages_capture/src/utils/exif_utils.cpp",
217    "${MEDIALIB_SERVICES_PATH}/media_multistages_capture/src/utils/file_utils.cpp",
218    "${MEDIALIB_SERVICES_PATH}/media_multistages_capture/src/utils/multistages_capture_request_task_manager.cpp",
219    "${MEDIALIB_SERVICES_PATH}/media_multistages_capture/src/multistages_capture_manager.cpp",
220    "${MEDIALIB_SERVICES_PATH}/media_multistages_capture/src/multistages_photo_capture_manager.cpp",
221    "${MEDIALIB_SERVICES_PATH}/media_multistages_capture/src/multistages_video_capture_manager.cpp",
222    "${MEDIALIB_SERVICES_PATH}/media_multistages_capture/src/multistages_moving_photo_capture_manager.cpp",
223  ]
224
225  media_dfx_source = [
226    "${MEDIALIB_SERVICES_PATH}/media_dfx/src/dfx_analyzer.cpp",
227    "${MEDIALIB_SERVICES_PATH}/media_dfx/src/dfx_collector.cpp",
228    "${MEDIALIB_SERVICES_PATH}/media_dfx/src/dfx_manager.cpp",
229    "${MEDIALIB_SERVICES_PATH}/media_dfx/src/dfx_reporter.cpp",
230    "${MEDIALIB_SERVICES_PATH}/media_dfx/src/dfx_timer.cpp",
231    "${MEDIALIB_SERVICES_PATH}/media_dfx/src/dfx_transaction.cpp",
232    "${MEDIALIB_SERVICES_PATH}/media_dfx/src/dfx_worker.cpp",
233    "${MEDIALIB_SERVICES_PATH}/media_dfx/src/dfx_utils.cpp",
234    "${MEDIALIB_SERVICES_PATH}/media_dfx/src/dfx_database_utils.cpp",
235  ]
236
237  media_cloud_sync_notify_handle_source = [
238    "${MEDIALIB_SERVICES_PATH}/media_cloud_sync_notify_handle/src/analysis_handler.cpp",
239    "${MEDIALIB_SERVICES_PATH}/media_cloud_sync_notify_handle/src/cloud_album_handler.cpp",
240    "${MEDIALIB_SERVICES_PATH}/media_cloud_sync_notify_handle/src/uri_convert_handler.cpp",
241    "${MEDIALIB_SERVICES_PATH}/media_cloud_sync_notify_handle/src/notify_handler.cpp",
242    "${MEDIALIB_SERVICES_PATH}/media_cloud_sync_notify_handle/src/cloud_sync_observer.cpp",
243    "${MEDIALIB_SERVICES_PATH}/media_cloud_sync_notify_handle/src/cloud_sync_notify_handler.cpp",
244    "${MEDIALIB_SERVICES_PATH}/media_cloud_sync_notify_handle/src/notify_responsibility_chain_factory.cpp",
245  ]
246
247  media_permission_source = [
248    "${MEDIALIB_SERVICES_PATH}/media_permission/src/abs_permission_handler.cpp",
249    "${MEDIALIB_SERVICES_PATH}/media_permission/src/db_permission_handler.cpp",
250    "${MEDIALIB_SERVICES_PATH}/media_permission/src/grant_permission_handler.cpp",
251    "${MEDIALIB_SERVICES_PATH}/media_permission/src/media_tool_permission_handler.cpp",
252    "${MEDIALIB_SERVICES_PATH}/media_permission/src/pemission_common.cpp",
253    "${MEDIALIB_SERVICES_PATH}/media_permission/src/read_write_permission_handler.cpp",
254    "${MEDIALIB_SERVICES_PATH}/media_permission/src/system_api_check_handler.cpp",
255  ]
256
257  media_power_efficiency_source = [
258    "${MEDIALIB_SERVICES_PATH}/media_power_efficiency/src/power_efficiency_manager.cpp",
259    "${MEDIALIB_SERVICES_PATH}/media_power_efficiency/src/medialibrary_standby_service_subscriber.cpp",
260  ]
261
262  media_cloud_asset_download_source = [
263    "${MEDIALIB_SERVICES_PATH}/media_cloud_sync/src/cloud_sync_utils/cloud_sync_utils.cpp",
264    "${MEDIALIB_SERVICES_PATH}/media_cloud_sync/src/media_cloud_asset_download/cloud_media_asset_callback.cpp",
265    "${MEDIALIB_SERVICES_PATH}/media_cloud_sync/src/media_cloud_asset_download/cloud_media_asset_download_operation.cpp",
266    "${MEDIALIB_SERVICES_PATH}/media_cloud_sync/src/media_cloud_asset_download/cloud_media_asset_manager.cpp",
267    "${MEDIALIB_SERVICES_PATH}/media_cloud_sync/src/media_cloud_asset_download/cloud_media_asset_observer.cpp",
268  ]
269
270  media_cloud_dirty_handle_source = [ "${MEDIALIB_SERVICES_PATH}/media_cloud_sync/src/cloud_dirty_handle/cloud_upload_checker.cpp" ]
271
272  media_albums_refresh_source = [
273    "${MEDIALIB_SERVICES_PATH}/media_albums_refresh/src/albums_refresh_manager.cpp",
274    "${MEDIALIB_SERVICES_PATH}/media_albums_refresh/src/albums_refresh_notify.cpp",
275    "${MEDIALIB_SERVICES_PATH}/media_albums_refresh/src/albums_refresh_worker.cpp",
276  ]
277
278  sources = [
279    "${MEDIALIB_SERVICES_PATH}/media_analysis_extension/src/media_analysis_callback_stub.cpp",
280    "${MEDIALIB_SERVICES_PATH}/media_analysis_extension/src/media_analysis_helper.cpp",
281    "${MEDIALIB_SERVICES_PATH}/media_analysis_extension/src/media_analysis_proxy.cpp",
282    "${MEDIALIB_UTILS_PATH}/src/common_event_utils.cpp",
283    "${MEDIALIB_UTILS_PATH}/src/cpu_utils.cpp",
284    "${MEDIALIB_UTILS_PATH}/src/media_privacy_manager.cpp",
285    "src/background_cloud_file_download_callback.cpp",
286    "src/background_cloud_file_processor.cpp",
287    "src/event_handler/album_plugin_table_event_handler.cpp",
288    "src/event_handler/tab_facard_photos_table_event_handler.cpp",
289    "src/event_handler/tab_old_photos_table_event_handler.cpp",
290    "src/foreground_analysis_meta.cpp",
291    "src/hi_audit.cpp",
292    "src/media_datashare_ext_ability.cpp",
293    "src/media_datashare_stub_impl.cpp",
294    "src/medialibrary_album_fusion_utils.cpp",
295    "src/medialibrary_album_operations.cpp",
296    "src/medialibrary_album_refresh.cpp",
297    "src/medialibrary_all_album_refresh_processor.cpp",
298    "src/medialibrary_analysis_album_operations.cpp",
299    "src/medialibrary_app_uri_permission_operations.cpp",
300    "src/medialibrary_app_uri_sensitive_operations.cpp",
301    "src/medialibrary_appstate_observer.cpp",
302    "src/medialibrary_asset_operations.cpp",
303    "src/medialibrary_astc_stat.cpp",
304    "src/medialibrary_audio_operations.cpp",
305    "src/medialibrary_bundle_manager.cpp",
306    "src/medialibrary_command.cpp",
307    "src/medialibrary_data_manager.cpp",
308    "src/medialibrary_data_manager_utils.cpp",
309    "src/medialibrary_dir_operations.cpp",
310    "src/medialibrary_facard_operations.cpp",
311    "src/medialibrary_file_operations.cpp",
312    "src/medialibrary_formmap_operations.cpp",
313    "src/medialibrary_inotify.cpp",
314    "src/medialibrary_location_operations.cpp",
315    "src/medialibrary_meta_recovery.cpp",
316    "src/medialibrary_notify.cpp",
317    "src/medialibrary_object_utils.cpp",
318    "src/medialibrary_photo_operations.cpp",
319    "src/medialibrary_rdbstore.cpp",
320    "src/medialibrary_restore.cpp",
321    "src/medialibrary_search_operations.cpp",
322    "src/medialibrary_smartalbum_map_operations.cpp",
323    "src/medialibrary_smartalbum_operations.cpp",
324    "src/medialibrary_story_operations.cpp",
325    "src/medialibrary_subscriber.cpp",
326    "src/medialibrary_tab_old_photos_operations.cpp",
327    "src/medialibrary_uripermission_operations.cpp",
328    "src/medialibrary_urisensitive_operations.cpp",
329    "src/medialibrary_vision_operations.cpp",
330    "src/moving_photo_processor.cpp",
331    "src/operation/display_name_info.cpp",
332    "src/operation/duplicate_photo_operation.cpp",
333    "src/operation/medialibrary_custom_restore_notify.cpp",
334    "src/operation/photo_album_copy_meta_data_operation.cpp",
335    "src/operation/photo_asset_copy_operation.cpp",
336    "src/operation/photo_burst_operation.cpp",
337    "src/operation/photo_custom_restore_operation.cpp",
338    "src/operation/photo_day_month_year_operation.cpp",
339    "src/operation/photo_displayname_operation.cpp",
340    "src/operation/photo_file_operation.cpp",
341    "src/operation/photo_mimetype_operation.cpp",
342    "src/operation/photo_other_album_trans_operation.cpp",
343    "src/operation/photo_owner_album_id_operation.cpp",
344    "src/operation/photo_source_path_operation.cpp",
345    "src/photo_album_operation/photo_album_lpath_operation.cpp",
346    "src/photo_album_operation/photo_album_merge_operation.cpp",
347    "src/photo_album_operation/photo_album_update_date_modified_operation.cpp",
348    "src/photo_map_operations.cpp",
349    "src/picture_data_operations.cpp",
350    "src/picture_handle_service.cpp",
351    "src/picture_manager_thread.cpp",
352    "src/trash_async_worker.cpp",
353    "src/video_composition_callback_imp.cpp",
354    "src/zip_util.cpp",
355  ]
356  sources += media_scan_source
357  sources += media_fuse_source
358  sources += media_thumbnail_source
359  sources += media_cloud_sync_source
360  sources += media_rdb_utils_source
361  sources += media_multistages_capture_source
362  sources += media_dfx_source
363  sources += media_cloud_sync_notify_handle_source
364  sources += media_permission_source
365  sources += media_power_efficiency_source
366  sources += media_cloud_asset_download_source
367  sources += media_cloud_dirty_handle_source
368  sources += media_albums_refresh_source
369
370  if (media_library_feature_cloud_enhancement) {
371    media_cloud_enhancement_source = [
372      "${MEDIALIB_SERVICES_PATH}/media_cloud_enhancement/src/enhancement_service/enhancement_service_adapter.cpp",
373      "${MEDIALIB_SERVICES_PATH}/media_cloud_enhancement/src/utils/enhancement_database_operations.cpp",
374      "${MEDIALIB_SERVICES_PATH}/media_cloud_enhancement/src/utils/dynamic_loader.cpp",
375      "${MEDIALIB_SERVICES_PATH}/media_cloud_enhancement/src/utils/enhancement_thread_manager.cpp",
376      "${MEDIALIB_SERVICES_PATH}/media_cloud_enhancement/src/utils/settings_monitor.cpp",
377      "${MEDIALIB_SERVICES_PATH}/media_cloud_enhancement/src/utils/cloud_enhancement_checker.cpp",
378      "${MEDIALIB_SERVICES_PATH}/media_cloud_enhancement/src/enhancement_task_manager.cpp",
379      "${MEDIALIB_SERVICES_PATH}/media_cloud_enhancement/src/enhancement_manager.cpp",
380      "${MEDIALIB_SERVICES_PATH}/media_cloud_enhancement/src/dfx/cloud_enhancement_dfx_get_count.cpp",
381    ]
382    sources += media_cloud_enhancement_source
383  }
384
385  public_configs = [ ":media_data_extension_public_config" ]
386
387  deps = [
388    "${MEDIALIB_INNERKITS_PATH}/media_library_helper:media_library",
389    "${MEDIALIB_SERVICES_PATH}/media_async_worker:medialibrary_async_worker",
390    "${MEDIALIB_UTILS_PATH}:medialibrary_common_utils",
391    "${MEDIALIB_UTILS_PATH}:permission_utils",
392    "${MEDIALIB_UTILS_PATH}:post_event_utils",
393  ]
394
395  include_dirs = [
396    "${MEDIALIB_CLOUD_SYNC_PATH}/include",
397    "${MEDIALIB_SERVICES_PATH}/media_async_worker/include",
398  ]
399
400  if (media_library_feature_mtp) {
401    include_dirs += [ "${MEDIALIB_SERVICES_PATH}/media_mtp/include" ]
402    deps += [ "${MEDIALIB_SERVICES_PATH}/media_mtp:media_mtp" ]
403  }
404
405  external_deps = [
406    "ability_base:base",
407    "ability_base:want",
408    "ability_base:zuri",
409    "ability_runtime:ability_manager",
410    "ability_runtime:app_context",
411    "ability_runtime:app_manager",
412    "ability_runtime:dataobs_manager",
413    "ability_runtime:extensionkit_native",
414    "ability_runtime:runtime",
415    "ability_runtime:uri_permission_mgr",
416    "access_token:libaccesstoken_sdk",
417    "access_token:libprivacy_sdk",
418    "app_file_service:sandbox_helper_native",
419    "background_task_mgr:bgtaskmgr_innerkits",
420    "bundle_framework:appexecfwk_core",
421    "c_utils:utils",
422    "common_event_service:cesfwk_innerkits",
423    "data_share:datashare_common",
424    "data_share:datashare_consumer",
425    "data_share:datashare_provider",
426    "dfs_service:cloudsync_kit_inner",
427    "drivers_interface_display:display_commontype_idl_headers",
428    "eventhandler:libeventhandler",
429    "ffrt:libffrt",
430    "file_api:filemgmt_libn",
431    "hilog:libhilog",
432    "hisysevent:libhisysevent",
433    "hitrace:hitrace_meter",
434    "image_framework:image_native",
435    "init:libbeget_proxy",
436    "init:libbegetutil",
437    "ipc:ipc_core",
438    "ipc:ipc_single",
439    "kv_store:distributeddata_inner",
440    "libexif:libexif",
441    "libfuse:libfuse",
442    "napi:ace_napi",
443    "os_account:os_account_innerkits",
444    "player_framework:media_client",
445    "player_framework:video_editor",
446    "preferences:native_preferences",
447    "relational_store:native_rdb",
448    "relational_store:rdb_data_share_adapter",
449    "safwk:system_ability_fwk",
450    "samgr:samgr_proxy",
451    "storage_service:storage_manager_sa_proxy",
452    "window_manager:libdm",
453    "zlib:shared_libz",
454  ]
455
456  public_external_deps = [ "e2fsprogs:libext2_uuid" ]
457
458  defines = []
459  if (defined(global_parts_info) &&
460      defined(global_parts_info.filemanagement_dfs_service)) {
461    defines += [ "CLOUD_SYNC_MANAGER" ]
462    external_deps += [ "dfs_service:cloudsync_kit_inner" ]
463  }
464  defines += [ "MEDIALIBRARY_COMPATIBILITY=1" ]
465  if (media_library_feature_mtp) {
466    defines += [ "MEDIALIBRARY_MTP_ENABLE=1" ]
467  }
468  defines += [ "META_RECOVERY_SUPPORT=1" ]
469
470  if (!defined(global_parts_info) ||
471      defined(global_parts_info.security_security_component_manager)) {
472    defines += [ "MEDIALIBRARY_SECURITY_OPEN=1" ]
473    external_deps += [ "security_component_manager:libsecurity_component_sdk" ]
474  }
475
476  if (defined(global_parts_info) && defined(
477          global_parts_info.device_cloud_gateway_media_cloud_enhance_service) &&
478      media_library_feature_cloud_enhancement && !factory) {
479    defines += [ "ABILITY_CLOUD_ENHANCEMENT_SUPPORT" ]
480    sources += [ "${MEDIALIB_SERVICES_PATH}/media_cloud_enhancement/src/enhancement_service/enhancement_service_callback.cpp" ]
481  }
482
483  if (defined(global_parts_info) &&
484      defined(global_parts_info.multimedia_camera_framework) &&
485      global_parts_info.multimedia_camera_framework) {
486    defines += [ "ABILITY_CAMERA_SUPPORT" ]
487    external_deps += [ "camera_framework:camera_framework" ]
488    sources += [
489      "${MEDIALIB_SERVICES_PATH}/media_multistages_capture/src/deferred_processing/multistages_capture_deferred_photo_proc_session_callback.cpp",
490      "${MEDIALIB_SERVICES_PATH}/media_multistages_capture/src/deferred_processing/multistages_capture_deferred_video_proc_session_callback.cpp",
491    ]
492  }
493
494  if (media_library_feature_cloud_enhancement) {
495    defines += [ "MEDIALIBRARY_FEATURE_CLOUD_ENHANCEMENT" ]
496  }
497
498  if (!media_library_link_opt) {
499    sanitize = {
500      cfi = true
501      cfi_cross_dso = true
502      debug = false
503      integer_overflow = true
504      ubsan = true
505      boundary_sanitize = true
506      stack_protector_ret = true
507    }
508  }
509
510  cflags_cc = [
511    "-fvisibility-inlines-hidden",
512    "-Os",
513  ]
514
515  if (defined(global_parts_info) &&
516      defined(global_parts_info.powermgr_battery_manager)) {
517    external_deps += [ "battery_manager:batterysrv_client" ]
518    cflags_cc += [ "-DHAS_BATTERY_MANAGER_PART" ]
519  }
520
521  if (defined(global_parts_info) &&
522      defined(global_parts_info.powermgr_power_manager)) {
523    external_deps += [ "power_manager:powermgr_client" ]
524    cflags_cc += [ "-DHAS_POWER_MANAGER_PART" ]
525  }
526
527  if (defined(global_parts_info) &&
528      defined(global_parts_info.powermgr_thermal_manager)) {
529    external_deps += [ "thermal_manager:thermalsrv_client" ]
530    cflags_cc += [ "-DHAS_THERMAL_MANAGER_PART" ]
531  }
532
533  if (defined(global_parts_info) &&
534      defined(global_parts_info.communication_wifi)) {
535    external_deps += [ "wifi:wifi_sdk" ]
536    cflags_cc += [ "-DHAS_WIFI_MANAGER_PART" ]
537  }
538
539  if (resourceschedule_device_standby) {
540    external_deps += [ "device_standby:standby_innerkits" ]
541    defines += [ "DEVICE_STANDBY_ENABLE" ]
542  }
543
544  if (defined(global_parts_info) &&
545      defined(global_parts_info.resourceschedule_efficiency_manager)) {
546    defines += [ "EFFICIENCY_MANAGER_ENABLE" ]
547  }
548
549  if (is_emulator) {
550    defines += [ "MEDIALIBRARY_EMULATOR" ]
551  }
552
553  subsystem_name = "multimedia"
554  part_name = "media_library"
555}
556