gn2bp: Support merging genrule
Test: ./update_results.sh
Change-Id: I2551ec2f333805820eca6c85bbbde4be28787d04
diff --git a/tools/gn2bp/gen_android_bp b/tools/gn2bp/gen_android_bp
index d75392d..dc18f3b 100755
--- a/tools/gn2bp/gen_android_bp
+++ b/tools/gn2bp/gen_android_bp
@@ -1095,7 +1095,7 @@
target.args = new_args
return create_action_module(blueprint, target, 'cc_genrule')
-def create_action_module(blueprint, target, type, arch=None):
+def create_action_module_internal(target, type, arch=None):
sanitizer = get_action_sanitizer(target, type, arch)
sanitizer.sanitize()
@@ -1107,7 +1107,6 @@
module.srcs = sanitizer.get_srcs()
module.tool_files = sanitizer.get_tool_files()
- blueprint.add_module(module)
return module
def get_cmd_condition(arch):
@@ -1166,6 +1165,22 @@
merged_module.cmd = merge_cmd(modules, genrule_type)
return merged_module
+def create_action_module(blueprint, target, genrule_type):
+ '''
+ Create module for action target and add to the blueprint. If target has arch specific attributes
+ this function merge them and create a single module.
+ :param blueprint:
+ :param target: target which is converted to the module.
+ :param genrule_type: cc_genrule or java_genrule
+ :return: created module
+ '''
+ modules = {arch_name: create_action_module_internal(target, genrule_type, arch)
+ for arch_name, arch in target.arch.items()}
+ module = merge_modules(modules, genrule_type)
+ blueprint.add_module(module)
+ return module
+
+
def _get_cflags(cflags, defines):
cflags = {flag for flag in cflags if flag in cflag_allowlist}
# Consider proper allowlist or denylist if needed