• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.
13import("//build/ohos.gni")
14import("//build/ohos/ace/ace.gni")
15import("//commonlibrary/memory_utils/purgeable_mem_config.gni")
16import("//foundation/ability/ability_runtime/ability_runtime.gni")
17import("//foundation/multimedia/media_library/media_library.gni")
18import("../../../../../../arkcompiler/ets_frontend/es2panda/es2abc_config.gni")
19import("../../../../../../foundation/arkui/ace_engine/ace_config.gni")
20
21js_declaration("medialibrary_js") {
22  part_name = "media_library"
23  sources = [ "./@ohos.multimedia.mediaLibrary.d.ts" ]
24}
25
26# compile .js to .abc.
27action("gen_medialibraryinf_abc") {
28  visibility = [ ":*" ]
29  script = "../../../../../../arkcompiler/ets_frontend/es2panda/scripts/generate_js_bytecode.py"
30
31  args = [
32    "--src-js",
33    rebase_path("${MEDIALIB_JS_PATH}/src/medialibraryinf.js"),
34    "--dst-file",
35    rebase_path(target_out_dir + "/medialibraryinf.abc"),
36    "--frontend-tool-path",
37    rebase_path("${es2abc_build_path}"),
38    "--module",
39  ]
40  deps =
41      [ "../../../../../../arkcompiler/ets_frontend/es2panda:es2panda_build" ]
42
43  inputs = [ "${MEDIALIB_JS_PATH}/src/medialibraryinf.js" ]
44  outputs = [ target_out_dir + "/medialibraryinf.abc" ]
45}
46
47base_output_path = get_label_info(":medialibraryinf_js", "target_out_dir")
48medialibraryinf_obj_path = base_output_path + "/medialibraryinf.o"
49gen_js_obj("medialibraryinf_js") {
50  input = "${MEDIALIB_JS_PATH}/src/medialibraryinf.js"
51  output = medialibraryinf_obj_path
52  dep = ":gen_medialibraryinf_abc"
53}
54
55abc_output_path = get_label_info(":medialibraryinf_abc", "target_out_dir")
56medialibraryinf_abc_obj_path = abc_output_path + "/medialibraryinf_abc.o"
57gen_js_obj("medialibraryinf_abc") {
58  input = "$target_out_dir/medialibraryinf.abc"
59  output = medialibraryinf_abc_obj_path
60  dep = ":gen_medialibraryinf_abc"
61}
62
63config("napi_config") {
64  include_dirs = [
65    "${MEDIALIB_INNERKITS_PATH}/medialibrary_data_extension/include",
66    "${MEDIALIB_INNERKITS_PATH}/media_library_helper/include",
67    "${MEDIALIB_SERVICES_PATH}/media_scanner/include/callback",
68    "${MEDIALIB_SERVICES_PATH}/media_thumbnail/include",
69    "${MEDIALIB_UTILS_PATH}/include",
70    "${MEDIALIB_INTERFACES_PATH}/inner_api/media_library_helper/include",
71    "${MEDIALIB_INTERFACES_PATH}/kits/js/include",
72    "${MEDIALIB_MTP_PATH}/include",
73    "${MEDIALIB_INTERFACES_PATH}/innerkits/native/include",
74    "${MEDIALIB_UTILS_PATH}/include",
75    "${MEDIALIB_SERVICES_PATH}/media_library/include",
76    "../../../../../distributedhardware/device_manager/interfaces/inner_kits/native_cpp/include",
77  ]
78
79  ldflags = [ "-Wl" ]
80}
81
82ohos_shared_library("medialibrary") {
83  configs = [ ":napi_config" ]
84
85  version_script = "libmedialibrary.map"
86
87  sources = [
88    "${MEDIALIB_INNERKITS_PATH}/media_library_helper/src/media_thumbnail_helper.cpp",
89    "${MEDIALIB_INNERKITS_PATH}/medialibrary_data_extension/src/medialibrary_data_manager_utils.cpp",
90    "${MEDIALIB_JS_PATH}/src/album_napi.cpp",
91    "${MEDIALIB_JS_PATH}/src/fetch_file_result_napi.cpp",
92    "${MEDIALIB_JS_PATH}/src/file_asset_napi.cpp",
93    "${MEDIALIB_JS_PATH}/src/media_library_napi.cpp",
94    "${MEDIALIB_JS_PATH}/src/media_scanner_napi.cpp",
95    "${MEDIALIB_JS_PATH}/src/medialibrary_napi_utils.cpp",
96    "${MEDIALIB_JS_PATH}/src/napi_error.cpp",
97    "${MEDIALIB_JS_PATH}/src/native_module_ohos_medialibrary.cpp",
98    "${MEDIALIB_JS_PATH}/src/photo_album_napi.cpp",
99    "${MEDIALIB_JS_PATH}/src/smart_album_napi.cpp",
100    "${MEDIALIB_JS_PATH}/src/userfile_client.cpp",
101  ]
102
103  deps = [
104    ":medialibraryinf_abc",
105    ":medialibraryinf_js",
106    "${MEDIALIB_INNERKITS_PATH}/media_library_helper:media_library",
107    "${MEDIALIB_UTILS_PATH}:permission_utils",
108  ]
109
110  external_deps = [
111    "ability_base:want",
112    "ability_base:zuri",
113    "ability_runtime:ability_manager",
114    "ability_runtime:abilitykit_native",
115    "ability_runtime:dataobs_manager",
116    "ability_runtime:napi_base_context",
117    "access_token:libtokenid_sdk",
118    "c_utils:utils",
119    "common_event_service:cesfwk_innerkits",
120    "data_share:datashare_common",
121    "data_share:datashare_consumer",
122    "hilog:libhilog",
123    "hitrace:hitrace_meter",
124    "image_framework:image",
125    "ipc:ipc_core",
126    "ipc_js:rpc",
127    "kv_store:distributeddata_inner",
128    "napi:ace_napi",
129    "player_framework:media_client",
130    "relational_store:native_rdb",
131  ]
132
133  defines = []
134  defines += [ "MEDIALIBRARY_COMPATIBILITY=1" ]
135
136  sanitize = {
137    cfi = true
138    cfi_cross_dso = true
139    debug = false
140  }
141
142  if (purgeable_ashmem_enable) {
143    defines += [ "IMAGE_PURGEABLE_PIXELMAP" ]
144    external_deps += [
145      "memory_utils:libpurgeablemem",
146      "memory_utils:pixelmap_builder",
147    ]
148  }
149
150  if (ability_runtime_graphics) {
151    external_deps += [ "image_framework:image_native" ]
152  }
153
154  relative_install_dir = "module/multimedia"
155  subsystem_name = "multimedia"
156  part_name = "media_library"
157}
158
159ohos_shared_library("userfilemanager") {
160  configs = [ ":napi_config" ]
161
162  sources = [
163    "${MEDIALIB_INNERKITS_PATH}/media_library_helper/src/media_thumbnail_helper.cpp",
164    "${MEDIALIB_INNERKITS_PATH}/medialibrary_data_extension/src/medialibrary_data_manager_utils.cpp",
165    "${MEDIALIB_JS_PATH}/src/album_napi.cpp",
166    "${MEDIALIB_JS_PATH}/src/fetch_file_result_napi.cpp",
167    "${MEDIALIB_JS_PATH}/src/file_asset_napi.cpp",
168    "${MEDIALIB_JS_PATH}/src/media_library_napi.cpp",
169    "${MEDIALIB_JS_PATH}/src/media_scanner_napi.cpp",
170    "${MEDIALIB_JS_PATH}/src/medialibrary_napi_utils.cpp",
171    "${MEDIALIB_JS_PATH}/src/napi_error.cpp",
172    "${MEDIALIB_JS_PATH}/src/native_module_ohos_userfile_manager.cpp",
173    "${MEDIALIB_JS_PATH}/src/photo_album_napi.cpp",
174    "${MEDIALIB_JS_PATH}/src/smart_album_napi.cpp",
175    "${MEDIALIB_JS_PATH}/src/userfile_client.cpp",
176  ]
177
178  deps = [
179    "${MEDIALIB_INNERKITS_PATH}/media_library_helper:media_library",
180    "${MEDIALIB_UTILS_PATH}:permission_utils",
181  ]
182
183  external_deps = [
184    "ability_base:want",
185    "ability_base:zuri",
186    "ability_runtime:ability_manager",
187    "ability_runtime:abilitykit_native",
188    "ability_runtime:dataobs_manager",
189    "ability_runtime:napi_base_context",
190    "access_token:libtokenid_sdk",
191    "c_utils:utils",
192    "common_event_service:cesfwk_innerkits",
193    "data_share:datashare_common",
194    "data_share:datashare_consumer",
195    "hilog:libhilog",
196    "hitrace:hitrace_meter",
197    "image_framework:image",
198    "ipc:ipc_core",
199    "ipc_js:rpc",
200    "kv_store:distributeddata_inner",
201    "napi:ace_napi",
202    "player_framework:media_client",
203    "relational_store:native_dataability",
204    "relational_store:native_rdb",
205  ]
206
207  defines = []
208  defines += [ "MEDIALIBRARY_COMPATIBILITY=1" ]
209
210  sanitize = {
211    cfi = true
212    cfi_cross_dso = true
213    debug = false
214  }
215
216  if (purgeable_ashmem_enable) {
217    defines += [ "IMAGE_PURGEABLE_PIXELMAP" ]
218    external_deps += [
219      "memory_utils:libpurgeablemem",
220      "memory_utils:pixelmap_builder",
221    ]
222  }
223
224  if (ability_runtime_graphics) {
225    external_deps += [ "image_framework:image_native" ]
226  }
227
228  relative_install_dir = "module/filemanagement"
229  subsystem_name = "multimedia"
230  part_name = "media_library"
231}
232
233js_declaration("photoaccesshelper_js") {
234  part_name = "media_library"
235  sources = [ "./@ohos.file.photoAccessHelper.d.ts" ]
236}
237
238# compile .js to .abc.
239action("gen_photoaccesshelperinf_abc") {
240  visibility = [ ":*" ]
241  script = "../../../../../../arkcompiler/ets_frontend/es2panda/scripts/generate_js_bytecode.py"
242
243  args = [
244    "--src-js",
245    rebase_path("${MEDIALIB_JS_PATH}/src/photoaccesshelperinf.js"),
246    "--dst-file",
247    rebase_path(target_out_dir + "/photoaccesshelperinf.abc"),
248    "--frontend-tool-path",
249    rebase_path("${es2abc_build_path}"),
250    "--module",
251  ]
252  deps =
253      [ "../../../../../../arkcompiler/ets_frontend/es2panda:es2panda_build" ]
254
255  inputs = [ "${MEDIALIB_JS_PATH}/src/photoaccesshelperinf.js" ]
256  outputs = [ target_out_dir + "/photoaccesshelperinf.abc" ]
257}
258
259base_output_path = get_label_info(":photoaccesshelperinf_js", "target_out_dir")
260photoaccesshelperinf_obj_path = base_output_path + "/photoaccesshelperinf.o"
261gen_js_obj("photoaccesshelperinf_js") {
262  input = "${MEDIALIB_JS_PATH}/src/photoaccesshelperinf.js"
263  output = photoaccesshelperinf_obj_path
264  dep = ":gen_photoaccesshelperinf_abc"
265}
266
267abc_output_path = get_label_info(":photoaccesshelperinf_abc", "target_out_dir")
268photoaccesshelperinf_abc_obj_path =
269    abc_output_path + "/photoaccesshelperinf_abc.o"
270gen_js_obj("photoaccesshelperinf_abc") {
271  input = "$target_out_dir/photoaccesshelperinf.abc"
272  output = photoaccesshelperinf_abc_obj_path
273  dep = ":gen_photoaccesshelperinf_abc"
274}
275
276ohos_shared_library("photoaccesshelper") {
277  configs = [ ":napi_config" ]
278
279  sources = [
280    "${MEDIALIB_INNERKITS_PATH}/media_library_helper/src/media_thumbnail_helper.cpp",
281    "${MEDIALIB_INNERKITS_PATH}/medialibrary_data_extension/src/medialibrary_data_manager_utils.cpp",
282    "${MEDIALIB_JS_PATH}/src/album_napi.cpp",
283    "${MEDIALIB_JS_PATH}/src/fetch_file_result_napi.cpp",
284    "${MEDIALIB_JS_PATH}/src/file_asset_napi.cpp",
285    "${MEDIALIB_JS_PATH}/src/media_library_napi.cpp",
286    "${MEDIALIB_JS_PATH}/src/media_scanner_napi.cpp",
287    "${MEDIALIB_JS_PATH}/src/medialibrary_napi_utils.cpp",
288    "${MEDIALIB_JS_PATH}/src/napi_error.cpp",
289    "${MEDIALIB_JS_PATH}/src/native_module_ohos_photoaccess_helper.cpp",
290    "${MEDIALIB_JS_PATH}/src/photo_album_napi.cpp",
291    "${MEDIALIB_JS_PATH}/src/smart_album_napi.cpp",
292    "${MEDIALIB_JS_PATH}/src/userfile_client.cpp",
293  ]
294
295  deps = [
296    ":photoaccesshelperinf_abc",
297    ":photoaccesshelperinf_js",
298    "${MEDIALIB_INNERKITS_PATH}/media_library_helper:media_library",
299    "${MEDIALIB_UTILS_PATH}:permission_utils",
300  ]
301
302  external_deps = [
303    "ability_base:want",
304    "ability_base:zuri",
305    "ability_runtime:ability_manager",
306    "ability_runtime:abilitykit_native",
307    "ability_runtime:dataobs_manager",
308    "ability_runtime:napi_base_context",
309    "access_token:libtokenid_sdk",
310    "c_utils:utils",
311    "common_event_service:cesfwk_innerkits",
312    "data_share:datashare_common",
313    "data_share:datashare_consumer",
314    "hilog:libhilog",
315    "hitrace:hitrace_meter",
316    "image_framework:image",
317    "ipc:ipc_core",
318    "ipc_js:rpc",
319    "kv_store:distributeddata_inner",
320    "napi:ace_napi",
321    "player_framework:media_client",
322    "relational_store:native_dataability",
323    "relational_store:native_rdb",
324  ]
325
326  defines = []
327  defines += [ "MEDIALIBRARY_COMPATIBILITY=1" ]
328
329  sanitize = {
330    cfi = true
331    cfi_cross_dso = true
332    debug = false
333  }
334
335  if (purgeable_ashmem_enable) {
336    defines += [ "IMAGE_PURGEABLE_PIXELMAP" ]
337    external_deps += [
338      "memory_utils:libpurgeablemem",
339      "memory_utils:pixelmap_builder",
340    ]
341  }
342
343  if (ability_runtime_graphics) {
344    external_deps += [ "image_framework:image_native" ]
345  }
346
347  relative_install_dir = "module/file"
348  subsystem_name = "multimedia"
349  part_name = "media_library"
350}
351