summaryrefslogtreecommitdiff
path: root/src/libcamera/proxy
diff options
context:
space:
mode:
authorPaul Elder <paul.elder@ideasonboard.com>2020-12-05 19:30:51 +0900
committerPaul Elder <paul.elder@ideasonboard.com>2021-02-16 19:21:39 +0900
commite6722b86eef7c88358d4b4535d75ac3415c12004 (patch)
tree325d27622294e78fb4af99d174e473aad72eb903 /src/libcamera/proxy
parent4000ed4d8d9ec6bcf9177872604b6b6e23bc22ee (diff)
meson: ipa, proxy: Generate headers and proxy with mojo
Run mojo from meson to generate the header, serializer, and proxy files for every pipeline's mojom data definition file. Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Diffstat (limited to 'src/libcamera/proxy')
-rw-r--r--src/libcamera/proxy/meson.build18
-rw-r--r--src/libcamera/proxy/worker/meson.build19
2 files changed, 35 insertions, 2 deletions
diff --git a/src/libcamera/proxy/meson.build b/src/libcamera/proxy/meson.build
index bd804750..5c4365e7 100644
--- a/src/libcamera/proxy/meson.build
+++ b/src/libcamera/proxy/meson.build
@@ -4,3 +4,21 @@ libcamera_sources += files([
'ipa_proxy_linux.cpp',
'ipa_proxy_thread.cpp',
])
+
+# generate {pipeline}_ipa_proxy.cpp
+foreach mojom : ipa_mojoms
+ proxy = custom_target(mojom['name'] + '_proxy_cpp',
+ input : mojom['mojom'],
+ output : mojom['name'] + '_ipa_proxy.cpp',
+ depends : mojom_templates,
+ command : [
+ mojom_generator, 'generate',
+ '-g', 'libcamera',
+ '--bytecode_path', mojom_templates_dir,
+ '--libcamera_generate_proxy_cpp',
+ '--libcamera_output_path=@OUTPUT@',
+ './' + '@INPUT@'
+ ])
+
+ libcamera_sources += proxy
+endforeach
diff --git a/src/libcamera/proxy/worker/meson.build b/src/libcamera/proxy/worker/meson.build
index ac0310a7..0fd26fd8 100644
--- a/src/libcamera/proxy/worker/meson.build
+++ b/src/libcamera/proxy/worker/meson.build
@@ -6,8 +6,23 @@ ipa_proxy_sources = [
proxy_install_dir = join_paths(get_option('libexecdir'), 'libcamera')
-foreach t : ipa_proxy_sources
- proxy = executable(t[0], t[1],
+# generate {pipeline}_ipa_proxy_worker.cpp
+foreach mojom : ipa_mojoms
+ worker = custom_target(mojom['name'] + '_proxy_worker',
+ input : mojom['mojom'],
+ output : mojom['name'] + '_ipa_proxy_worker.cpp',
+ depends : mojom_templates,
+ command : [
+ mojom_generator, 'generate',
+ '-g', 'libcamera',
+ '--bytecode_path', mojom_templates_dir,
+ '--libcamera_generate_proxy_worker',
+ '--libcamera_output_path=@OUTPUT@',
+ './' + '@INPUT@'
+ ])
+
+ proxy = executable(mojom['name'] + '_ipa_proxy',
+ [worker, libcamera_generated_ipa_headers],
install : true,
install_dir : proxy_install_dir,
dependencies : libcamera_dep)