[PATCH v2 2/3] utils: codegen: Make users depend on `controls.py` in meson
Kieran Bingham
kieran.bingham at ideasonboard.com
Fri May 2 12:16:43 CEST 2025
Quoting Barnabás Pőcze (2025-05-01 10:58:17)
> Currently, modifying `controls.py` does not make those build targets dirty
> that use a script that includes it (e.g. `gen-controls.py`) because meson
> has no knowledge of this dependency. Add `depend_files` to each
> `custom_target()` invocation to fix this.
>
> Ideally it would be possible to attach this dependency to `gen_controls`,
> `gen_gst_controls`, etc. objects themselves, so that repetition is
> avoided, but this does not seem possible at the moment.
I'm fine with that.
Acked-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
Maybe a possible future meson extension to optimise setting extra
dependencies ;-) But that wouldn't help us 'now' anyway.
> Signed-off-by: Barnabás Pőcze <barnabas.pocze at ideasonboard.com>
> ---
> include/libcamera/meson.build | 1 +
> src/gstreamer/meson.build | 1 +
> src/libcamera/meson.build | 1 +
> src/py/libcamera/meson.build | 2 ++
> utils/codegen/meson.build | 2 ++
> 5 files changed, 7 insertions(+)
>
> diff --git a/include/libcamera/meson.build b/include/libcamera/meson.build
> index 9297f3fa3..30ea76f94 100644
> --- a/include/libcamera/meson.build
> +++ b/include/libcamera/meson.build
> @@ -90,6 +90,7 @@ foreach mode, entry : controls_map
> command : [gen_controls, '-o', '@OUTPUT@',
> '--mode', mode, '-t', template_file,
> '-r', ranges_file, '@INPUT@'],
> + depend_files : [py_mod_controls],
> env : py_build_env,
> install : true,
> install_dir : libcamera_headers_install_dir)
> diff --git a/src/gstreamer/meson.build b/src/gstreamer/meson.build
> index 6b7e53b55..fd83e073d 100644
> --- a/src/gstreamer/meson.build
> +++ b/src/gstreamer/meson.build
> @@ -33,6 +33,7 @@ libcamera_gst_sources += custom_target('gstlibcamera-controls.cpp',
> output : 'gstlibcamera-controls.cpp',
> command : [gen_gst_controls, '-o', '@OUTPUT@',
> '-t', gen_gst_controls_template, '@INPUT@'],
> + depend_files : [py_mod_controls],
> env : py_build_env)
>
> libcamera_gst_cpp_args = [
> diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build
> index 800d40807..202db1efe 100644
> --- a/src/libcamera/meson.build
> +++ b/src/libcamera/meson.build
> @@ -156,6 +156,7 @@ foreach mode, inout_files : controls_mode_files
> command : [gen_controls, '-o', '@OUTPUT@',
> '--mode', mode, '-t', template_file,
> '-r', ranges_file, '@INPUT@'],
> + depend_files : [py_mod_controls],
> env : py_build_env)
> endforeach
>
> diff --git a/src/py/libcamera/meson.build b/src/py/libcamera/meson.build
> index 596a203ca..456ee7932 100644
> --- a/src/py/libcamera/meson.build
> +++ b/src/py/libcamera/meson.build
> @@ -36,6 +36,7 @@ pycamera_sources += custom_target('py_gen_controls',
> output : ['py_controls_generated.cpp'],
> command : [gen_py_controls, '--mode', 'controls', '-o', '@OUTPUT@',
> '-t', gen_py_controls_template, '@INPUT@'],
> + depend_files : [py_mod_controls],
> env : py_build_env)
>
> pycamera_sources += custom_target('py_gen_properties',
> @@ -43,6 +44,7 @@ pycamera_sources += custom_target('py_gen_properties',
> output : ['py_properties_generated.cpp'],
> command : [gen_py_controls, '--mode', 'properties', '-o', '@OUTPUT@',
> '-t', gen_py_controls_template, '@INPUT@'],
> + depend_files : [py_mod_controls],
> env : py_build_env)
>
> # Generate formats
> diff --git a/utils/codegen/meson.build b/utils/codegen/meson.build
> index 904dd66d1..8d1c69086 100644
> --- a/utils/codegen/meson.build
> +++ b/utils/codegen/meson.build
> @@ -16,4 +16,6 @@ gen_header = files('gen-header.sh')
> gen_ipa_pub_key = files('gen-ipa-pub-key.py')
> gen_tracepoints = files('gen-tp-header.py')
>
> +py_mod_controls = files('controls.py')
> +
> subdir('ipc')
> --
> 2.49.0
>
More information about the libcamera-devel
mailing list