[libcamera-devel] [PATCH v1 5/6] meson: Generate a helper .so containing libcamera's internal headers

Umang Jain umang.jain at ideasonboard.com
Fri May 14 09:58:07 CEST 2021


The IPU3 closed source IPA shall live externally(out-of-tree) however,
it needs access to some of the internal libcamera headers. These headers
are not typically intended for public usage hence, shouldn't be placed
as  headers in $includedir. In order to solve this issue, generate a
helper shared library, which can be used to link with, by the external
IPU3 closed source IPA.

Signed-off-by: Umang Jain <umang.jain at ideasonboard.com>
---
 include/libcamera/internal/meson.build | 6 ++++++
 meson.build                            | 7 +++++++
 src/libcamera/meson.build              | 6 ++++++
 3 files changed, 19 insertions(+)

diff --git a/include/libcamera/internal/meson.build b/include/libcamera/internal/meson.build
index 6cff1b90..fcbf4212 100644
--- a/include/libcamera/internal/meson.build
+++ b/include/libcamera/internal/meson.build
@@ -49,3 +49,9 @@ libcamera_internal_headers = files([
     'v4l2_subdevice.h',
     'v4l2_videodevice.h',
 ])
+
+libcamera_helpers = files ([
+    'buffer.h',
+    'file.h',
+    'log.h',
+])
diff --git a/meson.build b/meson.build
index b89797f3..c48c5a66 100644
--- a/meson.build
+++ b/meson.build
@@ -160,6 +160,13 @@ pkg_mod.generate(libraries : libcamera,
                  description : 'Complex Camera Support Library',
                  subdirs : 'libcamera')
 
+# \todo Bikeshedding on camera_helper naming
+pkg_mod.generate(libraries : libcamera_helper_lib,
+                 version : '0.0',
+                 name : 'libcamera_helper_lib',
+                 filebase : 'camera_helper',
+                 description : 'libcamera internal helper library')
+
 # Check for python installation and modules.
 py_mod = import('python')
 py_mod.find_installation('python3', modules: py_modules)
diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build
index 7bc59b84..788b767d 100644
--- a/src/libcamera/meson.build
+++ b/src/libcamera/meson.build
@@ -162,4 +162,10 @@ libcamera_dep = declare_dependency(sources : [
                                    include_directories : libcamera_includes,
                                    link_with : libcamera)
 
+# libcamera helper shared library
+libcamera_helper_lib = shared_library('camera_helper', [libcamera_helpers],
+                                      install: true,
+                                      install_dir: libcamera_libdir,
+                                      dependencies: libcamera_dep)
+
 subdir('proxy/worker')
-- 
2.26.2



More information about the libcamera-devel mailing list