• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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