summaryrefslogtreecommitdiff
path: root/utils/ipc/generators
diff options
context:
space:
mode:
authorPaul Elder <paul.elder@ideasonboard.com>2022-08-26 11:50:55 -0500
committerPaul Elder <paul.elder@ideasonboard.com>2022-10-18 18:52:52 +0900
commit4e9ed14311c0b17cb77854bfd4a0288e790725e7 (patch)
tree142edc11f8ba2b551d38e5783d9126d283c3bee5 /utils/ipc/generators
parent3b54b56a2d0228f879fb2502706a00dd67f84989 (diff)
utils: ipc: Allow the skipHeader attribute on enums
Currently, enums that are passed between pipeline handlers and their IPA must be defined in a mojom file. However, there is a use case for enum/flags to be defined in a C++ header, such that the enum can be used in a component other than the pipeline handler and its IPA. To support this, add support for the skipHeader attribute for enums. Like structs, it is only allowed in core.mojom. Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'utils/ipc/generators')
-rw-r--r--utils/ipc/generators/libcamera_templates/core_ipa_interface.h.tmpl2
-rw-r--r--utils/ipc/generators/mojom_libcamera_generator.py2
2 files changed, 2 insertions, 2 deletions
diff --git a/utils/ipc/generators/libcamera_templates/core_ipa_interface.h.tmpl b/utils/ipc/generators/libcamera_templates/core_ipa_interface.h.tmpl
index a565b59a..c60b99b8 100644
--- a/utils/ipc/generators/libcamera_templates/core_ipa_interface.h.tmpl
+++ b/utils/ipc/generators/libcamera_templates/core_ipa_interface.h.tmpl
@@ -26,7 +26,7 @@ namespace libcamera {
static const {{const.kind|name}} {{const.mojom_name}} = {{const.value}};
{% endfor %}
-{% for enum in enums %}
+{% for enum in enums_gen_header %}
{{funcs.define_enum(enum)}}
{% endfor %}
diff --git a/utils/ipc/generators/mojom_libcamera_generator.py b/utils/ipc/generators/mojom_libcamera_generator.py
index 442f797c..1a629f9d 100644
--- a/utils/ipc/generators/mojom_libcamera_generator.py
+++ b/utils/ipc/generators/mojom_libcamera_generator.py
@@ -483,7 +483,7 @@ class Generator(generator.Generator):
def _GetJinjaExportsForCore(self):
return {
'consts': self.module.constants,
- 'enums': self.module.enums,
+ 'enums_gen_header': [x for x in self.module.enums if x.attributes is None or 'skipHeader' not in x.attributes],
'has_array': len([x for x in self.module.kinds.keys() if x[0] == 'a']) > 0,
'has_map': len([x for x in self.module.kinds.keys() if x[0] == 'm']) > 0,
'structs_gen_header': [x for x in self.module.structs if x.attributes is None or 'skipHeader' not in x.attributes],