[libcamera-devel] [PATCH v6 3/9] utils: ipc: add generator script

Paul Elder paul.elder at ideasonboard.com
Thu Dec 24 09:15:28 CET 2020


We want to avoid changing our copy of mojo to make updates easier. Some
parameters in the mojo generator script needs to be changed though; add
a wrapper script that sets these parameters.

Signed-off-by: Paul Elder <paul.elder at ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>

---
No change in v6

No change in v5

No change in v4

Changes in v3:
- add SPDX and copyright and file description block
- add todo for sys.pycache_prefix for python3.8+

Changes in v2:
- add descriptions to python setup
- disable pycache
---
 utils/ipc/generate.py | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)
 create mode 100755 utils/ipc/generate.py

diff --git a/utils/ipc/generate.py b/utils/ipc/generate.py
new file mode 100755
index 00000000..8771e0a6
--- /dev/null
+++ b/utils/ipc/generate.py
@@ -0,0 +1,29 @@
+#!/usr/bin/env python3
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright (C) 2020, Google Inc.
+#
+# Author: Paul Elder <paul.elder at ideasonboard.com>
+#
+# generate.py - Run mojo code generator for generating libcamera IPC files
+
+import os
+import sys
+
+# TODO set sys.pycache_prefix for >= python3.8
+sys.dont_write_bytecode = True
+
+import mojo.public.tools.bindings.mojom_bindings_generator as generator
+
+def _GetModulePath(path, output_dir):
+  return os.path.join(output_dir, path.relative_path())
+
+# Override the mojo code generator's generator list to only contain our
+# libcamera generator
+generator._BUILTIN_GENERATORS = {'libcamera': 'mojom_libcamera_generator'}
+
+# Override the mojo code generator's _GetModulePath method to not add
+# the '-module' suffix when searching for mojo modules, so that we can
+# pass the path to the mojom module without having to trim the '-module' suffix
+generator._GetModulePath = _GetModulePath
+
+generator.main()
-- 
2.27.0



More information about the libcamera-devel mailing list