From fd37f2388398923de30cc63dc5ab183490eb2bfc Mon Sep 17 00:00:00 2001 From: Caoruihong Date: Wed, 10 Nov 2021 09:52:39 +0800 Subject: [PATCH] feat(build): support hc-gen specified output name Signed-off-by: Caoruihong Change-Id: I06b3bebab4f30353167c8fa220cc87359012873e --- tools/hc-gen/hc_gen.gni | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/tools/hc-gen/hc_gen.gni b/tools/hc-gen/hc_gen.gni index 9a842baa..225ab42f 100644 --- a/tools/hc-gen/hc_gen.gni +++ b/tools/hc-gen/hc_gen.gni @@ -6,7 +6,19 @@ template("hc_gen") { assert(defined(invoker.sources), "sources are must") - action_foreach(target_name) { + if (defined(invoker.outputs)) { + foreach(o, invoker.outputs) { + if (o == string_replace(o, "{{", "")) { + specified_output_name = true + } + } + } + if (defined(specified_output_name) && specified_output_name) { + target_type = "action" + } else { + target_type = "action_foreach" + } + target(target_type, target_name) { deps = [ "//drivers/framework/tools/hc-gen:build_hc_gen" ] script = "/usr/bin/env" if (defined(ohos_lite)) { @@ -35,19 +47,20 @@ template("hc_gen") { outputs = [ "$target_gen_dir/{{source_name_part}}$output_suffix" ] } if (defined(output_suffix2)) { - outputs += [ "$target_gen_dir/{{source_name_part}}$output_suffix2" ] + outputs += [ string_replace(outputs[0], output_suffix, output_suffix2) ] + } + if (target_type == "action") { + src = rebase_path(sources[0], root_build_dir) + } else { + src = "{{source}}" } - assert(get_path_info(outputs[0], "file") == - "{{source_name_part}}$output_suffix", - "unexpected outputs: " + outputs[0]) - output_dir = get_path_info(outputs[0], "dir") args = [ rebase_path(get_path_info("//drivers/framework/tools/hc-gen/", "out_dir") + "/hc-gen") ] args += hc_flags args += [ "-o", - rebase_path("$output_dir/{{source_name_part}}"), - "{{source}}", + rebase_path(string_replace(outputs[0], output_suffix, "")), + src, ] } }