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