1# Copyright (c) 2025 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/ets_frontend/ets2abc_config.gni") 15import("//build/ohos.gni") 16import("//foundation/multimedia/media_library/media_library.gni") 17 18group("media_library_ani") { 19 deps = [ 20 ":photo_access_helper_ani", 21 ":photo_access_helper_etc", 22 ] 23} 24 25ohos_shared_library("photo_access_helper_ani") { 26 include_dirs = [ 27 "src/include", 28 "${MEDIALIB_INNERKITS_PATH}/media_library_helper/include", 29 "${MEDIALIB_INTERFACES_PATH}/kits/c", 30 "${MEDIALIB_SERVICES_PATH}/media_thumbnail/include", 31 "${MEDIALIB_UTILS_PATH}/include", 32 "${MEDIALIB_NATIVE_PATH}/c_api/common", 33 ] 34 35 sources = [ 36 "src/cpp/ani_error.cpp", 37 "src/cpp/ani_module_ohos_photoaccess_helper.cpp", 38 "src/cpp/cloud_enhancement_ani.cpp", 39 "src/cpp/fetch_result_ani.cpp", 40 "src/cpp/file_asset_ani.cpp", 41 "src/cpp/file_asset_info_ani.cpp", 42 "src/cpp/media_album_change_request_ani.cpp", 43 "src/cpp/media_ani_native_impl.cpp", 44 "src/cpp/media_asset_change_request_ani.cpp", 45 "src/cpp/media_assets_change_request_ani.cpp", 46 "src/cpp/media_change_request_ani.cpp", 47 "src/cpp/media_library_ani.cpp", 48 "src/cpp/media_library_enum_ani.cpp", 49 "src/cpp/medialibrary_ani_utils.cpp", 50 "src/cpp/moving_photo_ani.cpp", 51 "src/cpp/photo_album_ani.cpp", 52 "src/cpp/photo_proxy_ani.cpp", 53 "src/cpp/thumbnail_manager_ani.cpp", 54 "src/cpp/userfile_client.cpp", 55 ] 56 57 deps = [ 58 "${MEDIALIB_INNERKITS_PATH}/media_library_helper:media_library", 59 "${MEDIALIB_INTERFACES_PATH}/kits/js:medialibrary_nutils", 60 ] 61 62 use_exceptions = true 63 64 external_deps = [ 65 "ability_runtime:ability_context_native", 66 "ability_runtime:ability_manager", 67 "ability_runtime:ability_runtime", 68 "ability_runtime:abilitykit_native", 69 "ability_runtime:ani_base_context", 70 "access_token:libaccesstoken_sdk", 71 "access_token:libprivacy_sdk", 72 "access_token:libtokenid_sdk", 73 "app_file_service:fileuri_native", 74 "bundle_framework:appexecfwk_core", 75 "c_utils:utils", 76 "data_share:datashare_common", 77 "data_share:datashare_consumer", 78 "hilog:libhilog", 79 "hitrace:hitrace_meter", 80 "i18n:intl_util", 81 "image_framework:image_native", 82 "image_framework:ohimage", 83 "ipc:ipc_core", 84 "player_framework:media_client", 85 "relational_store:native_rdb", 86 "relational_store:rdb_data_share_adapter", 87 "resource_management:librawfile", 88 "runtime_core:ani", 89 "runtime_core:libarkruntime", 90 "samgr:samgr_proxy", 91 "window_manager:libwm", 92 ] 93 94 if (!media_library_link_opt) { 95 sanitize = { 96 cfi = true 97 cfi_cross_dso = true 98 debug = false 99 integer_overflow = true 100 ubsan = true 101 boundary_sanitize = true 102 stack_protector_ret = true 103 } 104 } 105 106 subsystem_name = "multimedia" 107 part_name = "media_library" 108 output_extension = "so" 109} 110 111generate_static_abc("photo_access_helper") { 112 base_url = "./ets" 113 files = [ "./ets/@ohos.file.photoAccessHelper.ets" ] 114 is_boot_abc = "True" 115 device_dst_file = "/system/framework/photo_access_helper.abc" 116} 117 118ohos_prebuilt_etc("photo_access_helper_etc") { 119 source = "$target_out_dir/photo_access_helper.abc" 120 module_install_dir = "framework" 121 subsystem_name = "multimedia" 122 part_name = "media_library" 123 deps = [ ":photo_access_helper" ] 124} 125