diff --git a/build_scripts/build.sh b/build_scripts/build.sh index 8898241bb97b03e000f0057baceec2809ce2b1a6..2d3de9ec93f6d8634c330930a1893f67c71386ff 100755 --- a/build_scripts/build.sh +++ b/build_scripts/build.sh @@ -207,12 +207,12 @@ function build_sdk() { mv $i $full_api_version/ fi done - echo -e "$full_api_version" - echo -e "$api_version" - if [ "$full_api_version" != "$api_version" ]; then - cp -r $full_api_version $api_version - fi - mv $api_version/ets/ets1.1/* $api_version/ets + pushd $api_version/ets/ > /dev/null + for dir in ./ets1.1/*/; do + dir_name=$(basename "$dir") + ln -s "./ets1.1/$dir_name" "$dir_name" + done + popd > /dev/null popd > /dev/null popd > /dev/null } diff --git a/hb/util/system_util.py b/hb/util/system_util.py index 498fec11d0e43a3f1baf71d50eadf8f6d7c37f0f..d29955675c7bd30a47415e26974bdd898672fa31 100755 --- a/hb/util/system_util.py +++ b/hb/util/system_util.py @@ -112,6 +112,7 @@ class SystemUtil(metaclass=NoInstance): stderr=subprocess.STDOUT, encoding='utf-8', env=exec_env, + errors="ignore", **kwargs) for line in iter(process.stdout.readline, ''): keep_deal, new_line = HandleKwargs.handle_line(line, raw_kwargs) diff --git a/ohos/app/app.gni b/ohos/app/app.gni index 32a1300459b781b40960187d0f621f92cb2504a1..a88fb9724dabe6ccb394ec46fb889cf14d5e7736 100644 --- a/ohos/app/app.gni +++ b/ohos/app/app.gni @@ -255,6 +255,7 @@ template("ohos_app") { "install_images", "module_install_dir", "relative_install_dir", + "nodejs_path", ]) if (defined(invoker.hvigor_home) || defined(invoker.sdk_home)) { _check_target = "${target_name}__hap_check" @@ -297,6 +298,9 @@ template("ohos_app") { _abs_path = get_path_info("./", "abspath") _hap_out_dir = "${target_out_dir}/${target_name}" + if (defined(invoker.nodejs_path)) { + _nodejs_path = invoker.nodejs_path + } if (defined(invoker.hap_out_dir)) { _hap_out_dir = invoker.hap_out_dir } @@ -428,6 +432,9 @@ template("ohos_app") { _compile_app_target = "${target_name}_compile_app" compile_app(_compile_app_target) { + if (defined(_nodejs_path)) { + nodejs_path = _nodejs_path + } build_mode = _js_build_mode cwd = _abs_path unsigned_hap_path_list = _unsigned_hap_path_list diff --git a/ohos/app/app_internal.gni b/ohos/app/app_internal.gni index 0c29ac46ecfce1a60eed2df77d60a82aade9ee69..236414919a5873e04e3cce522f054c7ba72082e9 100644 --- a/ohos/app/app_internal.gni +++ b/ohos/app/app_internal.gni @@ -575,15 +575,23 @@ template("app_sign") { } template("compile_app") { - forward_variables_from(invoker, [ "testonly" ]) - nodejs_version = "v16.20.2" - if (host_os == "mac") { - _nodejs = "//prebuilts/build-tools/common/nodejs/node-${nodejs_version}-darwin-x64/bin/node" - } else if (host_os == "linux" && host_os == "arm64") { - _nodejs = "//prebuilts/build-tools/common/nodejs/node-${nodejs_version}-linux-aarch64/bin/node" + forward_variables_from(invoker, + [ + "testonly", + "nodejs_path", + ]) + if (defined(nodejs_path) && nodejs_path != "") { + _nodejs = nodejs_path } else { - _nodejs = "//prebuilts/build-tools/common/nodejs/node-${nodejs_version}-${host_os}-x64/bin/node" + if (host_os == "mac") { + _nodejs = "//prebuilts/build-tools/common/nodejs/node-${default_hvigor_nodejs_version}-darwin-x64/bin/node" + } else if (host_os == "linux" && host_os == "arm64") { + _nodejs = "//prebuilts/build-tools/common/nodejs/node-${default_hvigor_nodejs_version}-linux-aarch64/bin/node" + } else { + _nodejs = "//prebuilts/build-tools/common/nodejs/node-${default_hvigor_nodejs_version}-${host_os}-x64/bin/node" + } } + action(target_name) { forward_variables_from(invoker, [ diff --git a/ohos_var.gni b/ohos_var.gni index 0f166245a046e87b7021a26117f69bf51e9ab1e0..bb2379fa38b2e10d61dd45b3e4b3b350ed6d0295 100755 --- a/ohos_var.gni +++ b/ohos_var.gni @@ -368,7 +368,7 @@ if (ohos_indep_compiler_enable) { hap_packing_tool = "${root_out_dir}/obj/developtools/packing_tool/jar/app_packing_tool.jar" } - +default_hvigor_nodejs_version = "v16.20.2" nodejs = "//prebuilts/build-tools/common/nodejs/current/bin/node" npm = "//prebuilts/build-tools/common/nodejs/current/bin/npm" diff --git a/prebuilts_download_config.json b/prebuilts_download_config.json index 6b7d9df17f6487b98d8e2a2cea21e17843db4cea..3595124d19a0ba3a428a1ac104b30843393de1ef 100644 --- a/prebuilts_download_config.json +++ b/prebuilts_download_config.json @@ -297,6 +297,11 @@ "unzip_dir": "prebuilts/build-tools/common/nodejs", "file_path": "/nodejs/v16.20.2/node-v16.20.2-linux-x64.tar.gz", "unzip_filename": "node-v16.20.2-linux-x64" + }, + { + "unzip_dir": "prebuilts/build-tools/common/nodejs", + "file_path": "/nodejs/v18.20.1/node-v18.20.1-linux-x64.tar.gz", + "unzip_filename": "node-v18.20.1-linux-x64" } ], "copy_config": [ @@ -473,9 +478,9 @@ "unzip_filename": "rustc-x86_64-windows-std" }, { - "unzip_dir": "prebuilts/hc_gen", - "file_path": "/openharmony/compiler/hc-gen/linux/hc-gen-20240926.tar.gz", - "unzip_filename": "hc-gen" + "unzip_dir": "prebuilts/hvigor/5.14.2-td-rc.515/command-line-tools", + "file_path": "/openharmony/compiler/hvigor/5.14.2-td-rc.515/command-line-tools.tar", + "unzip_filename": "command-line-tools" } ], "install": [ @@ -543,6 +548,11 @@ "unzip_dir": "prebuilts/build-tools/common/nodejs", "file_path": "/nodejs/v16.20.2/node-v16.20.2-darwin-x64.tar.gz", "unzip_filename": "node-v16.20.2-darwin-x64" + }, + { + "unzip_dir": "prebuilts/build-tools/common/nodejs", + "file_path": "/nodejs/v18.20.1/node-v18.20.1-darwin-x64.tar.gz", + "unzip_filename": "node-v18.20.1-darwin-x64" } ], "arm64": { diff --git a/scripts/compile_app.py b/scripts/compile_app.py index 47dadaf20d3fe074d2c70b96e16f7d3f09333108..8464b42e8e9ad80337a5e7b415cae7576589a5ba 100755 --- a/scripts/compile_app.py +++ b/scripts/compile_app.py @@ -222,11 +222,8 @@ def hvigor_write_log(cmd, cwd, env): def build_hvigor_cmd(cwd: str, model_version: str, options): cmd = ['bash'] hvigor_version = get_hvigor_version(cwd) - if hvigor_version: - if options.hvigor_home: - cmd.extend([f'{os.path.abspath(options.hvigor_home)}/hvigorw']) - else: - cmd.extend(['hvigorw']) + if options.hvigor_home: + cmd.extend([f'{os.path.abspath(options.hvigor_home)}/bin/hvigorw']) elif model_version: code_home = os.path.dirname(os.path.dirname(options.sdk_home)) hvigor_home = f"{code_home}/tool/command-line-tools/bin" @@ -324,7 +321,10 @@ def hvigor_build(cwd: str, options): print("[0/0] Hvigor clean start") env = os.environ.copy() env['CI'] = 'true' - + env['PATH'] = f"{os.path.dirname(os.path.abspath(options.nodejs))}:{os.environ.get('PATH')}" + env['NODE_HOME'] = os.path.dirname(os.path.dirname(os.path.abspath(options.nodejs))) + library_path = os.path.join(os.path.abspath(options.sdk_home), '20/ets/ets1.2/build-tools/ets2panda/lib/') + env['LD_LIBRARY_PATH'] = library_path set_sdk_path(cwd, model_version, options, env) hvigor_sync(cwd, model_version, env)