diff --git a/BUILD.gn b/BUILD.gn index 0577cdaf0e58654fe802af9d023ac85d7be6e716..1f34a79abbd20d3db4b91b17297086e26d11d7fb 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -13,6 +13,13 @@ import("//build/ohos.gni") import("//build/ohos/ace/ace.gni") +import("//developtools/hapsigner/hapsigner_build.gni") + +action_package_jar("hap_build"){ + _target_label = get_label_info(":${target_name}", "label_with_toolchain") + var = get_label_info(_target_label, "target_out_dir") + outputs = [ "${target_out_dir}/lib/jar/hap-sign-tool.jar" ] +} ohos_copy("lib") { if (build_public_version) { @@ -22,10 +29,7 @@ ohos_copy("lib") { "dist/OpenHarmonyProfileRelease.pem", "dist/UnsgnedDebugProfileTemplate.json", "dist/UnsgnedReleasedProfileTemplate.json", - "dist/hap-sign-tool.jar", ] - } else { - sources = "dist/hap-sign-tool.jar" } outputs = [ target_out_dir + "/$target_name/{{source_file_part}}" ] } diff --git a/build_hap.sh b/build_hap.sh new file mode 100644 index 0000000000000000000000000000000000000000..e68a07b2c4000ddf36ac10ce3bf479bf9c67fe1f --- /dev/null +++ b/build_hap.sh @@ -0,0 +1,15 @@ +#!/bin/bash +set -e +var=$1 +get_build_catalogue="cd ../../developtools/hapsigner/hapsigntool" +eval ${get_build_catalogue} +build_command="gradle build" +eval ${build_command} +cp_command="cp hap_sign_tool/build/libs/hap-sign-tool.jar ../../../${var:2}/lib/jar/hap-sign-tool.jar" +eval ${cp_command} + + + + + + diff --git a/hapsigner_build.gni b/hapsigner_build.gni new file mode 100644 index 0000000000000000000000000000000000000000..d89afd3527e9fa15abfdcd6e038b325dcedc102f --- /dev/null +++ b/hapsigner_build.gni @@ -0,0 +1,16 @@ +template("action_package_jar") { + _target_label = get_label_info(":${target_name}", "label_with_toolchain") + var = get_label_info(_target_label, "target_out_dir") + action(target_name) { + forward_variables_from( + invoker, + [ + "outputs" + ]) + script = "//developtools/hapsigner/build_hap.sh" + args = [ + var, + rebase_path(outputs[0], root_out_dir), + ] + } +}