• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (C) 2021-2022 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("//arkcompiler/ets_frontend/ts2panda/ts2abc_config.gni")
14import("//build/ohos.gni")
15import("//build/ohos/ace/ace.gni")
16import("//foundation/arkui/ace_engine/ace_config.gni")
17import("//foundation/multimedia/media_library/media_library.gni")
18
19js_declaration("medialibrary_js") {
20  part_name = "media_library"
21  sources = [ "./@ohos.multimedia.mediaLibrary.d.ts" ]
22}
23
24ohos_copy("medialibrary_declaration") {
25  sources = [ "./@ohos.multimedia.mediaLibrary.d.ts" ]
26  outputs = [ target_out_dir + "/$target_name/" ]
27  module_source_dir = target_out_dir + "/$target_name"
28  module_install_name = ""
29}
30
31# compile .js to .abc.
32action("gen_medialibraryinf_abc") {
33  visibility = [ ":*" ]
34  script = "//arkcompiler/ets_frontend/ts2panda/scripts/generate_js_bytecode.py"
35
36  args = [
37    "--src-js",
38    rebase_path(
39        "//foundation/multimedia/media_library/frameworks/js/src/medialibraryinf.js"),
40    "--dst-file",
41    rebase_path(target_out_dir + "/medialibraryinf.abc"),
42    "--node",
43    rebase_path("${node_path}"),
44    "--frontend-tool-path",
45    rebase_path("${ts2abc_build_path}"),
46    "--node-modules",
47    rebase_path("${node_modules}"),
48    "--module",
49  ]
50  deps = [ "//arkcompiler/ets_frontend/ts2panda:ark_ts2abc_build" ]
51
52  inputs = [ "//foundation/multimedia/media_library/frameworks/js/src/medialibraryinf.js" ]
53  outputs = [ target_out_dir + "/medialibraryinf.abc" ]
54}
55
56base_output_path = get_label_info(":medialibraryinf_js", "target_out_dir")
57medialibraryinf_obj_path = base_output_path + "/medialibraryinf.o"
58gen_js_obj("medialibraryinf_js") {
59  input = "//foundation/multimedia/media_library/frameworks/js/src/medialibraryinf.js"
60  output = medialibraryinf_obj_path
61  dep = ":gen_medialibraryinf_abc"
62}
63
64abc_output_path = get_label_info(":medialibraryinf_abc", "target_out_dir")
65medialibraryinf_abc_obj_path = abc_output_path + "/medialibraryinf_abc.o"
66gen_js_obj("medialibraryinf_abc") {
67  input = "$target_out_dir/medialibraryinf.abc"
68  output = medialibraryinf_abc_obj_path
69  dep = ":gen_medialibraryinf_abc"
70}
71
72config("napi_config") {
73  include_dirs = [
74    "//drivers/peripheral/display/interfaces/include",
75    "//drivers/peripheral/base",
76    "//foundation/multimedia/player_framework/interfaces/inner_api/native",
77    "//foundation/multimedia/media_library/frameworks/innerkitsimpl/medialibrary_data_extension/include",
78    "//foundation/multimedia/media_library/frameworks/innerkitsimpl/media_library_helper/include",
79    "//foundation/multimedia/media_library/frameworks/services/media_scanner/include/callback",
80    "//foundation/multimedia/media_library/frameworks/services/media_thumbnail/include",
81    "//foundation/multimedia/media_library/frameworks/utils/include",
82    "//foundation/multimedia/media_library/interfaces/inner_api/media_library_helper/include",
83    "//foundation/multimedia/media_library/interfaces/kits/js/include",
84    "//foundation/multimedia/media_library/medialibrary_data_extension/include",
85    "//third_party/node/src",
86    "//foundation/arkui/napi/interfaces/kits",
87    "//foundation/multimedia/media_library/interfaces/innerkits/native/include",
88    "${ABILITY_RUNTIME_PATH}/interfaces/kits/native/ability/native",
89    "${ABILITY_RUNTIME_INNER_API_PATH}/dataobs_manager/include",
90    "${MEDIA_LIB_COMMON_UTILS_DIR}/include",
91    "${MEDIA_LIB_SERVICES_DIR}/media_library/include",
92    "//foundation/multimedia/image_framework/interfaces/innerkits/include",
93    "//foundation/multimedia/image_framework/interfaces/kits/js/common/include",
94    "//foundation/distributedhardware/device_manager/interfaces/inner_kits/native_cpp/include",
95  ]
96
97  ldflags = [ "-Wl" ]
98}
99
100ohos_shared_library("medialibrary") {
101  configs = [ ":napi_config" ]
102
103  sources = [
104    "//foundation/multimedia/media_library/frameworks/innerkitsimpl/media_library_helper/src/media_thumbnail_helper.cpp",
105    "//foundation/multimedia/media_library/frameworks/innerkitsimpl/medialibrary_data_extension/src/medialibrary_data_manager_utils.cpp",
106    "//foundation/multimedia/media_library/frameworks/js/src/album_napi.cpp",
107    "//foundation/multimedia/media_library/frameworks/js/src/fetch_file_result_napi.cpp",
108    "//foundation/multimedia/media_library/frameworks/js/src/file_asset_napi.cpp",
109    "//foundation/multimedia/media_library/frameworks/js/src/media_library_napi.cpp",
110    "//foundation/multimedia/media_library/frameworks/js/src/media_scanner_napi.cpp",
111    "//foundation/multimedia/media_library/frameworks/js/src/medialibrary_napi_utils.cpp",
112    "//foundation/multimedia/media_library/frameworks/js/src/napi_error.cpp",
113    "//foundation/multimedia/media_library/frameworks/js/src/native_module_ohos_medialibrary.cpp",
114    "//foundation/multimedia/media_library/frameworks/js/src/smart_album_napi.cpp",
115    "//foundation/multimedia/media_library/frameworks/js/src/userfile_client.cpp",
116  ]
117
118  deps = [
119    ":medialibraryinf_abc",
120    ":medialibraryinf_js",
121    "${ABILITY_RUNTIME_INNER_API_PATH}/dataobs_manager:dataobs_manager",
122    "${ABILITY_RUNTIME_PATH}/frameworks/native/ability/native:abilitykit_native",
123    "//foundation/multimedia/media_library/frameworks/innerkitsimpl/media_library_helper:media_library",
124  ]
125
126  external_deps = [
127    "ability_base:want",
128    "ability_base:zuri",
129    "ability_runtime:ability_manager",
130    "ability_runtime:napi_base_context",
131    "c_utils:utils",
132    "data_share:datashare_common",
133    "data_share:datashare_consumer",
134    "hitrace_native:hitrace_meter",
135    "hiviewdfx_hilog_native:libhilog",
136    "ipc:ipc_core",
137    "ipc_js:rpc",
138    "multimedia_image_framework:image",
139    "multimedia_player_framework:media_client",
140    "napi:ace_napi",
141    "relational_store:native_rdb",
142  ]
143
144  sanitize = {
145    cfi = true
146    debug = false
147  }
148
149  relative_install_dir = "module/multimedia"
150  subsystem_name = "multimedia"
151  part_name = "media_library"
152}
153
154ohos_shared_library("userfilemanager") {
155  configs = [ ":napi_config" ]
156
157  sources = [ "//foundation/multimedia/media_library/frameworks/js/src/native_module_ohos_userfile_manager.cpp" ]
158
159  deps = [
160    ":medialibrary",
161    "${ABILITY_RUNTIME_PATH}/frameworks/native/ability/native:abilitykit_native",
162  ]
163
164  external_deps = [
165    "ability_runtime:napi_base_context",
166    "c_utils:utils",
167    "data_share:datashare_consumer",
168    "hitrace_native:hitrace_meter",
169    "ipc_js:rpc",
170    "multimedia_image_framework:image",
171    "multimedia_player_framework:media_client",
172    "napi:ace_napi",
173    "relational_store:native_dataability",
174    "relational_store:native_rdb",
175  ]
176
177  sanitize = {
178    cfi = true
179    debug = false
180  }
181
182  relative_install_dir = "module/filemanagement"
183  subsystem_name = "multimedia"
184  part_name = "media_library"
185}
186