File: generate.py

package info (click to toggle)
libcamera 0.5.2-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 14,380 kB
  • sloc: cpp: 81,540; python: 18,107; ansic: 12,608; sh: 1,258; makefile: 56
file content (36 lines) | stat: -rwxr-xr-x 1,300 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/usr/bin/env python3
# SPDX-License-Identifier: BSD-3-Clause
# Copyright (C) 2020, Google Inc.
#
# Author: Paul Elder <paul.elder@ideasonboard.com>
#
# Run mojo code generator for generating libcamera IPC files

import os
import sys

sys.path.insert(0, f'{os.path.dirname(__file__)}/mojo/public/tools/bindings')

import mojo.public.tools.bindings.mojom_bindings_generator as generator

def _GetModulePath(path, output_dir):
    return os.path.join(output_dir, path.relative_path())


# Disable the attribute checker to support our custom attributes. Ideally we
# should add the attributes to the list of allowed attributes in
# utils/ipc/mojo/public/tools/bindings/checks/mojom_attributes_check.py, but
# we're trying hard to use the upstream mojom as-is.
if hasattr(generator, '_BUILTIN_CHECKS'):
    del generator._BUILTIN_CHECKS['attributes']

# 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()