• 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_distributed = [
29    "${MEDIALIB_SERVICES_PATH}/media_distributed/include/database_manage",
30    "${MEDIALIB_SERVICES_PATH}/media_distributed/include/device_manage",
31    "${MEDIALIB_SERVICES_PATH}/media_distributed/include/devices_info_interact",
32  ]
33  include_scanner = [
34    "${MEDIALIB_SERVICES_PATH}/media_scanner/include/callback",
35    "${MEDIALIB_SERVICES_PATH}/media_scanner/include/scanner",
36  ]
37
38  include_dirs = [
39    "${MEDIALIB_INTERFACES_PATH}/innerkits/native/include",
40    "${MEDIALIB_INTERFACES_PATH}/inner_api/media_library_helper/include",
41    "${MEDIALIB_INNERKITS_PATH}/media_library_helper/include",
42    "${MEDIALIB_UTILS_PATH}/include",
43    "${MEDIALIB_INNERKITS_PATH}/medialibrary_data_extension/include",
44    "${MEDIALIB_SERVICES_PATH}/media_async_worker/include",
45    "${MEDIALIB_SERVICES_PATH}/media_thumbnail/include",
46
47    "../../../../../bundlemanager/bundle_framework/interfaces/kits/js/common",
48  ]
49  include_dirs += include_fileext
50  include_dirs += include_distributed
51  include_dirs += include_scanner
52
53  if (target_cpu == "arm") {
54    cflags = [ "-DBINDER_IPC_32BIT" ]
55  }
56}
57
58ohos_hap("medialibrary_ext_hap") {
59  hap_profile = "MediaLibraryExt/entry/src/main/module.json"
60  deps = [
61    ":MediaLibStage_js_assets",
62    ":MediaLibStage_resources",
63  ]
64  shared_libraries = [ "${MEDIALIB_INNERKITS_PATH}/medialibrary_data_extension:medialibrary_data_extension" ]
65  certificate_profile = "${MEDIALIB_INNERKITS_PATH}/signature/medialib.p7b"
66  hap_name = "Media_Library_Ext"
67  part_name = "prebuilt_hap"
68  subsystem_name = "applications"
69  module_install_dir = "app/com.ohos.medialibrary.MediaLibraryData"
70}
71
72ohos_js_assets("MediaLibStage_js_assets") {
73  hap_profile = "MediaLibraryExt/entry/src/main/module.json"
74  ets2abc = true
75  source_dir = "MediaLibraryExt/entry/src/main/ets"
76}
77
78ohos_app_scope("MediaLibStage_app_profile") {
79  app_profile = "MediaLibraryExt/AppScope/app.json"
80  sources = [ "MediaLibraryExt/AppScope/resources" ]
81}
82
83ohos_resources("MediaLibStage_resources") {
84  sources = [ "MediaLibraryExt/entry/src/main/resources" ]
85  deps = [ ":MediaLibStage_app_profile" ]
86  hap_profile = "MediaLibraryExt/entry/src/main/module.json"
87}
88
89ohos_shared_library("medialibrary_data_extension") {
90  install_enable = true
91
92  media_fileext_source = [
93    "${MEDIALIB_SERVICES_PATH}/media_file_extension/src/media_file_ext_ability.cpp",
94    "${MEDIALIB_SERVICES_PATH}/media_file_extension/src/media_file_extention_utils.cpp",
95  ]
96
97  media_scan_source = [
98    "${MEDIALIB_SERVICES_PATH}/media_scanner/src/scanner/media_scan_executor.cpp",
99    "${MEDIALIB_SERVICES_PATH}/media_scanner/src/scanner/media_scanner.cpp",
100    "${MEDIALIB_SERVICES_PATH}/media_scanner/src/scanner/media_scanner_manager.cpp",
101    "${MEDIALIB_SERVICES_PATH}/media_scanner/src/scanner/media_scanner_db.cpp",
102    "${MEDIALIB_SERVICES_PATH}/media_scanner/src/scanner/metadata.cpp",
103    "${MEDIALIB_SERVICES_PATH}/media_scanner/src/scanner/metadata_extractor.cpp",
104    "${MEDIALIB_SERVICES_PATH}/media_scanner/src/scanner/scanner_utils.cpp",
105  ]
106
107  media_thumbnail_source = [
108    "${MEDIALIB_SERVICES_PATH}/media_thumbnail/src/default_thumbnail_helper.cpp",
109    "${MEDIALIB_SERVICES_PATH}/media_thumbnail/src/ithumbnail_helper.cpp",
110    "${MEDIALIB_SERVICES_PATH}/media_thumbnail/src/lcd_thumbnail_helper.cpp",
111    "${MEDIALIB_SERVICES_PATH}/media_thumbnail/src/thumbnail_aging_helper.cpp",
112    "${MEDIALIB_SERVICES_PATH}/media_thumbnail/src/thumbnail_datashare_bridge.cpp",
113    "${MEDIALIB_SERVICES_PATH}/media_thumbnail/src/thumbnail_generate_helper.cpp",
114    "${MEDIALIB_SERVICES_PATH}/media_thumbnail/src/thumbnail_helper_factory.cpp",
115    "${MEDIALIB_SERVICES_PATH}/media_thumbnail/src/thumbnail_service.cpp",
116    "${MEDIALIB_SERVICES_PATH}/media_thumbnail/src/thumbnail_uri_utils.cpp",
117    "${MEDIALIB_SERVICES_PATH}/media_thumbnail/src/thumbnail_utils.cpp",
118  ]
119
120  media_cloud_sync_source =
121      [ "${MEDIALIB_CLOUD_SYNC_PATH}/src/cloud_sync_helper.cpp" ]
122
123  sources = [
124    "${MEDIALIB_UTILS_PATH}/src/media_privacy_manager.cpp",
125    "src/media_datashare_ext_ability.cpp",
126    "src/media_datashare_stub_impl.cpp",
127    "src/medialibrary_album_operations.cpp",
128    "src/medialibrary_asset_operations.cpp",
129    "src/medialibrary_audio_operations.cpp",
130    "src/medialibrary_bundle_manager.cpp",
131    "src/medialibrary_command.cpp",
132    "src/medialibrary_data_manager.cpp",
133    "src/medialibrary_data_manager_utils.cpp",
134    "src/medialibrary_dir_operations.cpp",
135    "src/medialibrary_file_operations.cpp",
136    "src/medialibrary_inotify.cpp",
137    "src/medialibrary_notify.cpp",
138    "src/medialibrary_object_utils.cpp",
139    "src/medialibrary_photo_operations.cpp",
140    "src/medialibrary_rdbstore.cpp",
141    "src/medialibrary_smartalbum_map_operations.cpp",
142    "src/medialibrary_smartalbum_operations.cpp",
143    "src/medialibrary_subscriber.cpp",
144    "src/medialibrary_uripermission_operations.cpp",
145    "src/photo_map_operations.cpp",
146    "src/trash_async_worker.cpp",
147  ]
148  sources += media_fileext_source
149  sources += media_scan_source
150  sources += media_thumbnail_source
151  sources += media_cloud_sync_source
152
153  public_configs = [ ":media_data_extension_public_config" ]
154
155  deps = [
156    "${MEDIALIB_INNERKITS_PATH}/media_library_helper:media_library",
157    "${MEDIALIB_SERVICES_PATH}/media_async_worker:medialibrary_async_worker",
158    "${MEDIALIB_UTILS_PATH}:medialibrary_common_utils",
159    "${MEDIALIB_UTILS_PATH}:permission_utils",
160  ]
161
162  include_dirs = [ "${MEDIALIB_CLOUD_SYNC_PATH}/include" ]
163
164  external_deps = [
165    "ability_base:want",
166    "ability_base:zuri",
167    "ability_runtime:ability_manager",
168    "ability_runtime:app_context",
169    "ability_runtime:app_manager",
170    "ability_runtime:dataobs_manager",
171    "ability_runtime:extensionkit_native",
172    "ability_runtime:runtime",
173    "ability_runtime:uri_permission_mgr",
174    "access_token:libaccesstoken_sdk",
175    "c_utils:utils",
176    "common_event_service:cesfwk_innerkits",
177    "data_share:datashare_common",
178    "data_share:datashare_consumer",
179    "data_share:datashare_provider",
180    "dfs_service:cloudsync_kit_inner",
181    "eventhandler:libeventhandler",
182    "file_api:filemgmt_libn",
183    "hilog:libhilog",
184    "hitrace:hitrace_meter",
185    "image_framework:image_native",
186    "init:libbegetutil",
187    "ipc:ipc_core",
188    "kv_store:distributeddata_inner",
189    "napi:ace_napi",
190    "player_framework:media_client",
191    "relational_store:native_rdb",
192    "relational_store:rdb_data_share_adapter",
193    "safwk:system_ability_fwk",
194    "samgr:samgr_proxy",
195    "user_file_service:file_access_extension_ability_kit",
196    "window_manager:libdm",
197  ]
198
199  defines = []
200  defines += [ "MEDIALIBRARY_COMPATIBILITY=1" ]
201
202  if (!defined(global_parts_info) ||
203      defined(global_parts_info.security_security_component_manager)) {
204    defines += [ "MEDIALIBRARY_SECURITY_OPEN=1" ]
205    external_deps += [ "security_component_manager:libsecurity_component_sdk" ]
206  }
207
208  sanitize = {
209    cfi = true
210    cfi_cross_dso = true
211    debug = false
212    blocklist = "./extension_blocklist.txt"
213  }
214
215  cflags_cc = [
216    "-fvisibility-inlines-hidden",
217    "-Os",
218  ]
219
220  subsystem_name = "multimedia"
221  part_name = "media_library"
222}
223