diff options
author | Kieran Bingham <kieran.bingham@ideasonboard.com> | 2021-06-15 15:23:09 +0100 |
---|---|---|
committer | Kieran Bingham <kieran.bingham@ideasonboard.com> | 2021-06-25 16:10:58 +0100 |
commit | 86eaa6c5e10dde632f17b900ea0e3aa4d61cb3b3 (patch) | |
tree | 3a3734822d82720e928f42296dd6b023e7ad3fd2 | |
parent | b96ab21cdbf49eef43c428b6e13b6e32bfb28f87 (diff) |
libcamera/base: Introduce new base library
The libcamera-base.so will feature internal support functionality
that is utilised by libcamera, and can be shared in other places.
This new library provides a layer beneath libcamera which provides
common abstractions to internal objects.
A pkg-config file is generated and named libcamera-base.pc which allows
components such as external IPA modules to link directly to this library
if they need. Normal applications will reference this library through
the Requires: statement provided by the libcamera.pc package
configuration, and linkage will be handled automatically through the
pkg-config mechanisms.
No code is moved to this library yet, this patch only introduces the
framework, construction and linkage.
Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>
Reviewed-by: Hirokazu Honda <hiroh@chromium.org>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
-rw-r--r-- | Documentation/meson.build | 2 | ||||
-rw-r--r-- | include/libcamera/base/meson.build | 9 | ||||
-rw-r--r-- | include/libcamera/meson.build | 1 | ||||
-rw-r--r-- | src/libcamera/base/meson.build | 26 | ||||
-rw-r--r-- | src/libcamera/meson.build | 4 |
5 files changed, 42 insertions, 0 deletions
diff --git a/Documentation/meson.build b/Documentation/meson.build index 9ecf4dfc..c4bd3c7f 100644 --- a/Documentation/meson.build +++ b/Documentation/meson.build @@ -22,6 +22,8 @@ if doxygen.found() and dot.found() custom_target('doxygen', input : [ doxyfile, + libcamera_base_headers, + libcamera_base_sources, libcamera_internal_headers, libcamera_ipa_headers, libcamera_ipa_interfaces, diff --git a/include/libcamera/base/meson.build b/include/libcamera/base/meson.build new file mode 100644 index 00000000..0a7a57b8 --- /dev/null +++ b/include/libcamera/base/meson.build @@ -0,0 +1,9 @@ +# SPDX-License-Identifier: CC0-1.0 + +libcamera_base_include_dir = libcamera_include_dir / 'base' + +libcamera_base_headers = files([ +]) + +install_headers(libcamera_base_headers, + subdir: libcamera_base_include_dir) diff --git a/include/libcamera/meson.build b/include/libcamera/meson.build index 086c958b..4ac864b7 100644 --- a/include/libcamera/meson.build +++ b/include/libcamera/meson.build @@ -23,6 +23,7 @@ libcamera_public_headers = files([ include_dir = libcamera_include_dir / 'libcamera' +subdir('base') subdir('internal') subdir('ipa') diff --git a/src/libcamera/base/meson.build b/src/libcamera/base/meson.build new file mode 100644 index 00000000..e8384602 --- /dev/null +++ b/src/libcamera/base/meson.build @@ -0,0 +1,26 @@ +# SPDX-License-Identifier: CC0-1.0 + +libcamera_base_sources = files([ +]) + +libcamera_base_deps = [ +] + +libcamera_base_lib = shared_library('libcamera-base', + [libcamera_base_sources, libcamera_base_headers], + name_prefix : '', + install : true, + include_directories : libcamera_includes, + dependencies : libcamera_base_deps) + +libcamera_base = declare_dependency(sources : [ + libcamera_base_headers, + ], + include_directories : libcamera_includes, + link_with : libcamera_base_lib) + +pkg_mod = import('pkgconfig') +pkg_mod.generate(libcamera_base_lib, + version : '1.0', + description : 'Camera support base utility library', + subdirs : 'libcamera') diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build index 693008d5..655c0c16 100644 --- a/src/libcamera/meson.build +++ b/src/libcamera/meson.build @@ -67,6 +67,7 @@ includes = [ libcamera_includes, ] +subdir('base') subdir('ipa') subdir('pipeline') subdir('proxy') @@ -124,6 +125,7 @@ endif libcamera_deps = [ libatomic, + libcamera_base, libdl, libgnutls, liblttng, @@ -156,10 +158,12 @@ libcamera_dep = declare_dependency(sources : [ libcamera_generated_ipa_headers, ], include_directories : libcamera_includes, + dependencies: libcamera_base, link_with : libcamera) pkg_mod = import('pkgconfig') pkg_mod.generate(libcamera, + libraries : libcamera_base_lib, version : '1.0', description : 'Complex Camera Support Library', subdirs : 'libcamera') |