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