1# Copyright (C) 2021 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 17config("media_data_extension_public_config") { 18 include_fileext = [ "${MEDIA_FILEEXT_SOURCE_DIR}/include" ] 19 include_scanner = [ 20 "${MEDIA_SCANNER_SOURCE_DIR}/include/callback", 21 "${MEDIA_SCANNER_SOURCE_DIR}/include/scanner", 22 ] 23 24 include_dirs = [ 25 "./include/distributed_media_library/device_manage", 26 "./include/distributed_media_library/database_manage", 27 "./include/distributed_media_library/devices_info_interact", 28 "${ABILITY_RUNTIME_INNER_API_PATH}/ability_manager/include", 29 "${ABILITY_RUNTIME_PATH}/interfaces/kits/native/ability/native", 30 "${ABILITY_RUNTIME_INNER_API_PATH}/dataobs_manager/include", 31 "${ABILITY_RUNTIME_INNER_API_PATH}/app_manager/include/appmgr", 32 "${ABILITY_RUNTIME_SERVICES_PATH}/common/include", 33 "${MEDIA_LIB_BASE_DIR}/interfaces/innerkits/native/include", 34 "${MEDIA_LIB_BASE_DIR}/interfaces/inner_api/media_library_helper/include", 35 "${MEDIA_LIB_INNERKITS_DIR}/media_library_helper/include", 36 "${MEDIA_LIB_COMMON_UTILS_DIR}/include", 37 "${MEDIA_LIB_INNERKITS_DIR}/medialibrary_data_extension/include", 38 "${MEDIA_LIB_SERVICES_DIR}/media_thumbnail/include", 39 "//base/security/device_auth/interfaces/innerkits", 40 "//foundation/appexecfwk/standard/interfaces/innerkits/appexecfwk_core/include/appmgr", 41 "//foundation/appexecfwk/standard/interfaces/innerkits/appexecfwk_base/include", 42 "//foundation/bundlemanager/bundle_framework/interfaces/kits/js/common", 43 "//foundation/communication/ipc/interfaces/innerkits/ipc_core/include", 44 "//foundation/distributeddatamgr/kv_store/interfaces/innerkits/distributeddata/include/", 45 "//foundation/appexecfwk/standard/interfaces/innerkits/libeventhandler/include", 46 "//foundation/communication/dsoftbus/interfaces/kits/bus_center", 47 "//foundation/communication/dsoftbus/interfaces/kits/common", 48 "//foundation/filemanager/user_file_service/frameworks/innerkits/file_access/include/", 49 "//foundation/systemabilitymgr/safwk/services/safwk/include", 50 "//foundation/multimedia/player_framework/interfaces/inner_api/native", 51 "//commonlibrary/c_utils/base/include", 52 "//utils/system/safwk/native/include", 53 "//third_party/json/include", 54 "//base/notification/common_event_service/interfaces/innerkits/native/include", 55 "//foundation/distributeddatamgr/distributedfile/interfaces/kits/js/src/common", 56 ] 57 include_dirs += include_fileext 58 include_dirs += include_scanner 59 60 if (target_cpu == "arm") { 61 cflags = [ "-DBINDER_IPC_32BIT" ] 62 } 63} 64 65ohos_hap("medialibrary_ext_hap") { 66 hap_profile = "MediaLibraryExt/entry/src/main/module.json" 67 deps = [ 68 ":MediaLibStage_js_assets", 69 ":MediaLibStage_resources", 70 ] 71 shared_libraries = [ "//foundation/multimedia/media_library/frameworks/innerkitsimpl/medialibrary_data_extension:medialibrary_data_extension" ] 72 certificate_profile = "$MEDIA_LIB_INNERKITS_DIR/signature/medialib.p7b" 73 hap_name = "Media_Library_Ext" 74 part_name = "prebuilt_hap" 75 subsystem_name = "applications" 76 module_install_dir = "app/com.ohos.medialibrary.MediaLibraryData" 77} 78 79ohos_js_assets("MediaLibStage_js_assets") { 80 hap_profile = "MediaLibraryExt/entry/src/main/module.json" 81 ets2abc = true 82 source_dir = "MediaLibraryExt/entry/src/main/ets" 83} 84 85ohos_app_scope("MediaLibStage_app_profile") { 86 app_profile = "MediaLibraryExt/AppScope/app.json" 87 sources = [ "MediaLibraryExt/AppScope/resources" ] 88} 89 90ohos_resources("MediaLibStage_resources") { 91 sources = [ "MediaLibraryExt/entry/src/main/resources" ] 92 deps = [ ":MediaLibStage_app_profile" ] 93 hap_profile = "MediaLibraryExt/entry/src/main/module.json" 94} 95 96ohos_shared_library("medialibrary_data_extension") { 97 install_enable = true 98 99 media_fileext_source = [ 100 "${MEDIA_FILEEXT_SOURCE_DIR}/src/media_file_ext_ability.cpp", 101 "${MEDIA_FILEEXT_SOURCE_DIR}/src/media_file_extention_utils.cpp", 102 ] 103 104 media_scan_source = [ 105 "${MEDIA_SCANNER_SOURCE_DIR}/src/scanner/media_scan_executor.cpp", 106 "${MEDIA_SCANNER_SOURCE_DIR}/src/scanner/media_scanner.cpp", 107 "${MEDIA_SCANNER_SOURCE_DIR}/src/scanner/media_scanner_manager.cpp", 108 "${MEDIA_SCANNER_SOURCE_DIR}/src/scanner/media_scanner_db.cpp", 109 "${MEDIA_SCANNER_SOURCE_DIR}/src/scanner/metadata.cpp", 110 "${MEDIA_SCANNER_SOURCE_DIR}/src/scanner/metadata_extractor.cpp", 111 "${MEDIA_SCANNER_SOURCE_DIR}/src/scanner/scanner_utils.cpp", 112 ] 113 114 sources = [ 115 "${MEDIA_LIB_COMMON_UTILS_DIR}/src/media_privacy_manager.cpp", 116 "src/distributed_media_library/database_manage/medialibrary_device_db.cpp", 117 "src/distributed_media_library/database_manage/medialibrary_device_operations.cpp", 118 "src/distributed_media_library/database_manage/medialibrary_sync_table.cpp", 119 "src/distributed_media_library/device_manage/device_permission_verification.cpp", 120 "src/distributed_media_library/device_manage/medialibrary_device.cpp", 121 "src/distributed_media_library/devices_info_interact/devices_info_interact.cpp", 122 "src/media_datashare_ext_ability.cpp", 123 "src/media_datashare_stub_impl.cpp", 124 "src/medialibrary_album_operations.cpp", 125 "src/medialibrary_command.cpp", 126 "src/medialibrary_data_manager.cpp", 127 "src/medialibrary_data_manager_utils.cpp", 128 "src/medialibrary_dir_db.cpp", 129 "src/medialibrary_dir_operations.cpp", 130 "src/medialibrary_file_operations.cpp", 131 "src/medialibrary_object_utils.cpp", 132 "src/medialibrary_rdbstore.cpp", 133 "src/medialibrary_smartalbum_db.cpp", 134 "src/medialibrary_smartalbum_map_db.cpp", 135 "src/medialibrary_smartalbum_map_operations.cpp", 136 "src/medialibrary_smartalbum_operations.cpp", 137 "src/medialibrary_subscriber.cpp", 138 "src/medialibrary_uripermission_operations.cpp", 139 "src/uri_helper.cpp", 140 ] 141 sources += media_fileext_source 142 sources += media_scan_source 143 144 public_configs = [ ":media_data_extension_public_config" ] 145 146 deps = [ 147 "${ABILITY_RUNTIME_INNER_API_PATH}/dataobs_manager:dataobs_manager", 148 "${ABILITY_RUNTIME_PATH}/frameworks/native/ability/native:abilitykit_native", 149 "${MEDIA_LIB_BASE_DIR}/frameworks/services/media_thumbnail:medialibrary_thumbnail", 150 "${MEDIA_LIB_COMMON_UTILS_DIR}:medialibrary_common_utils", 151 "${MEDIA_LIB_COMMON_UTILS_DIR}:permission_utils", 152 "${MEDIA_LIB_INNERKITS_DIR}/media_library_helper:media_library", 153 "//base/security/device_auth/services:deviceauth_sdk", 154 "//foundation/distributedhardware/device_manager/interfaces/inner_kits/native_cpp:devicemanagersdk", 155 "//foundation/filemanagement/user_file_service/frameworks/innerkits/file_access:file_access_extension_ability_kit", 156 ] 157 158 external_deps = [ 159 "ability_base:want", 160 "ability_base:zuri", 161 "ability_runtime:app_context", 162 "ability_runtime:runtime", 163 "c_utils:utils", 164 "common_event_service:cesfwk_innerkits", 165 "data_share:datashare_common", 166 "data_share:datashare_provider", 167 "device_auth:deviceauth_sdk", 168 "device_manager:devicemanagersdk", 169 "device_security_level:dslm_sdk", 170 "eventhandler:libeventhandler", 171 "hitrace_native:hitrace_meter", 172 "hiviewdfx_hilog_native:libhilog", 173 "init:libbegetutil", 174 "ipc:ipc_core", 175 "kv_store:distributeddata_inner", 176 "multimedia_image_framework:image_native", 177 "multimedia_player_framework:media_client", 178 "relational_store:native_rdb", 179 "relational_store:rdb_data_share_adapter", 180 ] 181 182 sanitize = { 183 cfi = true 184 debug = false 185 blocklist = "./extension_blocklist.txt" 186 } 187 188 subsystem_name = "multimedia" 189 part_name = "media_library" 190} 191