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