diff --git a/tools/gn2bp/gen_android_bp b/tools/gn2bp/gen_android_bp index 2ab52ac6f5..19911737fe 100755 --- a/tools/gn2bp/gen_android_bp +++ b/tools/gn2bp/gen_android_bp @@ -749,6 +749,13 @@ class BaseActionSanitizer(): def get_inputs(self): return self.target.inputs + def get_srcs(self): + # gn treats inputs and sources for actions equally. + # soong only supports source files inside srcs, non-source files are added as + # tool_files dependency. + files = self.target.sources.union(self.target.inputs) + return {gn_utils.label_to_path(file) for file in files if is_supported_source_file(file)} + def _sanitize_args(self): # Handle passing parameters via response file by piping them into the script # and reading them from /dev/stdin. @@ -938,6 +945,7 @@ def create_action_module(blueprint, target, type): if sanitizer.is_header_generated(): module.genrule_headers.add(module.name) target.inputs = sanitizer.get_inputs() + module.srcs = sanitizer.get_srcs() if target.script == '//base/android/jni_generator/jni_generator.py': # android_jar.classes should be part of the tools as it list implicit classes @@ -960,9 +968,7 @@ def create_action_module(blueprint, target, type): # soong only supports source files inside srcs, non-source files are added as # tool_files dependency. for it in target.sources.union(target.inputs): - if is_supported_source_file(it): - module.srcs.add(gn_utils.label_to_path(it)) - else: + if not is_supported_source_file(it): module.tool_files.add(gn_utils.label_to_path(it)) blueprint.add_module(module)