14d6c458bSopenharmony_ci# Copyright (c) 2022 Huawei Device Co., Ltd. 24d6c458bSopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License"); 34d6c458bSopenharmony_ci# you may not use this file except in compliance with the License. 44d6c458bSopenharmony_ci# You may obtain a copy of the License at 54d6c458bSopenharmony_ci# 64d6c458bSopenharmony_ci# http://www.apache.org/licenses/LICENSE-2.0 74d6c458bSopenharmony_ci# 84d6c458bSopenharmony_ci# Unless required by applicable law or agreed to in writing, software 94d6c458bSopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS, 104d6c458bSopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 114d6c458bSopenharmony_ci# See the License for the specific language governing permissions and 124d6c458bSopenharmony_ci# limitations under the License. 134d6c458bSopenharmony_ci 144d6c458bSopenharmony_ciimport("//build/config/components/ets_frontend/es2abc_config.gni") 154d6c458bSopenharmony_ciimport("//build/ohos.gni") 164d6c458bSopenharmony_ciimport("//build/ohos/ace/ace.gni") 174d6c458bSopenharmony_ciimport("//commonlibrary/ets_utils/ets_utils_config.gni") 184d6c458bSopenharmony_ciimport("//foundation/arkui/ace_engine/ace_config.gni") 194d6c458bSopenharmony_ci 204d6c458bSopenharmony_ci# shall be moved to "//build/ohos/ace/ace.gni" in the future 214d6c458bSopenharmony_ciimport("//foundation/arkui/ace_engine/build/ace_gen_obj.gni") 224d6c458bSopenharmony_ci 234d6c458bSopenharmony_ci# compile .ts to .js. 244d6c458bSopenharmony_ciaction("build_ts_js") { 254d6c458bSopenharmony_ci script = "${ets_util_path}/js_api_module/build_ts_js.py" 264d6c458bSopenharmony_ci 274d6c458bSopenharmony_ci outFile_Path = target_out_dir + "/" + current_cpu 284d6c458bSopenharmony_ci args = [ 294d6c458bSopenharmony_ci "--dst-file", 304d6c458bSopenharmony_ci rebase_path(target_out_dir + "/js_convertxml.js"), 314d6c458bSopenharmony_ci "--module-path", 324d6c458bSopenharmony_ci rebase_path("/commonlibrary/ets_utils/js_api_module/convertxml"), 334d6c458bSopenharmony_ci "--out-file", 344d6c458bSopenharmony_ci rebase_path(outFile_Path + "/js_convertxml.js"), 354d6c458bSopenharmony_ci "--out-filePath", 364d6c458bSopenharmony_ci rebase_path(outFile_Path), 374d6c458bSopenharmony_ci "--relative-path", 384d6c458bSopenharmony_ci rebase_path("//", root_build_dir), 394d6c458bSopenharmony_ci ] 404d6c458bSopenharmony_ci outputs = [ target_out_dir + "/js_convertxml.js" ] 414d6c458bSopenharmony_ci} 424d6c458bSopenharmony_cibase_output_path = get_label_info(":js_convertxml", "target_out_dir") 434d6c458bSopenharmony_ciif (use_ios || use_mac || use_mingw_win || use_linux) { 444d6c458bSopenharmony_ci js_xml_obj_path = base_output_path + "/convertxml.c" 454d6c458bSopenharmony_ci} else { 464d6c458bSopenharmony_ci js_xml_obj_path = base_output_path + "/convertxml.o" 474d6c458bSopenharmony_ci} 484d6c458bSopenharmony_cigen_obj("js_convertxml") { 494d6c458bSopenharmony_ci input = "$target_out_dir/js_convertxml.js" 504d6c458bSopenharmony_ci output = js_xml_obj_path 514d6c458bSopenharmony_ci snapshot_dep = [ ":build_ts_js" ] 524d6c458bSopenharmony_ci} 534d6c458bSopenharmony_ci 544d6c458bSopenharmony_ci# compile .js to .abc. 554d6c458bSopenharmony_cies2abc_gen_abc("gen_convertxml_abc") { 564d6c458bSopenharmony_ci extra_visibility = [ ":*" ] 574d6c458bSopenharmony_ci src_js = rebase_path(target_out_dir + "/js_convertxml.js") 584d6c458bSopenharmony_ci dst_file = rebase_path(target_out_dir + "/convertxml.abc") 594d6c458bSopenharmony_ci in_puts = [ target_out_dir + "/js_convertxml.js" ] 604d6c458bSopenharmony_ci out_puts = [ target_out_dir + "/convertxml.abc" ] 614d6c458bSopenharmony_ci extra_args = [ "--module" ] 624d6c458bSopenharmony_ci extra_dependencies = [ ":build_ts_js" ] 634d6c458bSopenharmony_ci} 644d6c458bSopenharmony_ci 654d6c458bSopenharmony_ciabc_output_path = get_label_info(":convertxml_abc", "target_out_dir") 664d6c458bSopenharmony_ciif (use_ios || use_mac || use_mingw_win || use_linux) { 674d6c458bSopenharmony_ci convertxml_abc_obj_path = abc_output_path + "/convertxml_abc.c" 684d6c458bSopenharmony_ci} else { 694d6c458bSopenharmony_ci convertxml_abc_obj_path = abc_output_path + "/convertxml_abc.o" 704d6c458bSopenharmony_ci} 714d6c458bSopenharmony_cigen_obj("convertxml_abc") { 724d6c458bSopenharmony_ci input = "$target_out_dir/convertxml.abc" 734d6c458bSopenharmony_ci output = convertxml_abc_obj_path 744d6c458bSopenharmony_ci snapshot_dep = [ ":gen_convertxml_abc" ] 754d6c458bSopenharmony_ci} 764d6c458bSopenharmony_ci 774d6c458bSopenharmony_ciohos_shared_library("convertxml") { 784d6c458bSopenharmony_ci branch_protector_ret = "pac_ret" 794d6c458bSopenharmony_ci sanitize = { 804d6c458bSopenharmony_ci cfi = true 814d6c458bSopenharmony_ci cfi_cross_dso = true 824d6c458bSopenharmony_ci debug = false 834d6c458bSopenharmony_ci } 844d6c458bSopenharmony_ci deps = [ ":convertxml_static" ] 854d6c458bSopenharmony_ci external_deps = [ "hilog:libhilog" ] 864d6c458bSopenharmony_ci subsystem_name = "commonlibrary" 874d6c458bSopenharmony_ci part_name = "ets_utils" 884d6c458bSopenharmony_ci 894d6c458bSopenharmony_ci relative_install_dir = "module" 904d6c458bSopenharmony_ci} 914d6c458bSopenharmony_ci 924d6c458bSopenharmony_ciohos_source_set("convertxml_static") { 934d6c458bSopenharmony_ci branch_protector_ret = "pac_ret" 944d6c458bSopenharmony_ci sanitize = { 954d6c458bSopenharmony_ci cfi = true 964d6c458bSopenharmony_ci cfi_cross_dso = true 974d6c458bSopenharmony_ci debug = false 984d6c458bSopenharmony_ci } 994d6c458bSopenharmony_ci include_dirs = [ 1004d6c458bSopenharmony_ci "include", 1014d6c458bSopenharmony_ci "//third_party/icu/icu4c/source/common", 1024d6c458bSopenharmony_ci "//third_party/node/src", 1034d6c458bSopenharmony_ci ets_util_path, 1044d6c458bSopenharmony_ci ] 1054d6c458bSopenharmony_ci 1064d6c458bSopenharmony_ci sources = [ 1074d6c458bSopenharmony_ci "js_convertxml.cpp", 1084d6c458bSopenharmony_ci "native_module_convertxml.cpp", 1094d6c458bSopenharmony_ci ] 1104d6c458bSopenharmony_ci 1114d6c458bSopenharmony_ci deps = [ 1124d6c458bSopenharmony_ci ":gen_obj_src_convertxml_abc", 1134d6c458bSopenharmony_ci ":gen_obj_src_js_convertxml", 1144d6c458bSopenharmony_ci ] 1154d6c458bSopenharmony_ci 1164d6c458bSopenharmony_ci if (defined(is_arkui_x) && is_arkui_x) { 1174d6c458bSopenharmony_ci include_dirs += [ 1184d6c458bSopenharmony_ci "$plugins_root/hilog/include", 1194d6c458bSopenharmony_ci "$plugins_root/interfaces", 1204d6c458bSopenharmony_ci "//base/hiviewdfx/hilog/interfaces/native/innerkits/include", 1214d6c458bSopenharmony_ci ] 1224d6c458bSopenharmony_ci deps += [ 1234d6c458bSopenharmony_ci "$plugins_root/interfaces/native:plugin_log", 1244d6c458bSopenharmony_ci "//third_party/libxml2:libxml2", 1254d6c458bSopenharmony_ci ] 1264d6c458bSopenharmony_ci if (target_os == "android") { 1274d6c458bSopenharmony_ci deps += [ "$plugins_root/interfaces/native:ace_plugin_util_android" ] 1284d6c458bSopenharmony_ci defines = [ "ANDROID_PLATFORM" ] 1294d6c458bSopenharmony_ci } 1304d6c458bSopenharmony_ci deps += [ 1314d6c458bSopenharmony_ci "$plugins_root/libs/icu:icu_${target_os}", 1324d6c458bSopenharmony_ci "$plugins_root/libs/napi:napi_${target_os}", 1334d6c458bSopenharmony_ci "$plugins_root/libs/securec:sec_${target_os}", 1344d6c458bSopenharmony_ci ] 1354d6c458bSopenharmony_ci } else { 1364d6c458bSopenharmony_ci external_deps = [ "napi:ace_napi" ] 1374d6c458bSopenharmony_ci if (is_standard_system) { 1384d6c458bSopenharmony_ci external_deps += [ "hilog:libhilog" ] 1394d6c458bSopenharmony_ci } else { 1404d6c458bSopenharmony_ci external_deps += [ 1414d6c458bSopenharmony_ci "c_utils:utils", 1424d6c458bSopenharmony_ci "hilog:libhilog", 1434d6c458bSopenharmony_ci ] 1444d6c458bSopenharmony_ci } 1454d6c458bSopenharmony_ci deps += [ 1464d6c458bSopenharmony_ci "//third_party/icu/icu4c:shared_icuuc", 1474d6c458bSopenharmony_ci "//third_party/libxml2:static_libxml2", 1484d6c458bSopenharmony_ci ] 1494d6c458bSopenharmony_ci } 1504d6c458bSopenharmony_ci 1514d6c458bSopenharmony_ci subsystem_name = "commonlibrary" 1524d6c458bSopenharmony_ci part_name = "ets_utils" 1534d6c458bSopenharmony_ci} 1544d6c458bSopenharmony_ci 1554d6c458bSopenharmony_cigroup("convertxml_packages") { 1564d6c458bSopenharmony_ci deps = [ ":convertxml" ] 1574d6c458bSopenharmony_ci} 158