summaryrefslogtreecommitdiff
path: root/src/libcamera/base
diff options
context:
space:
mode:
authorKieran Bingham <kieran.bingham@ideasonboard.com>2021-06-19 00:27:42 +0100
committerKieran Bingham <kieran.bingham@ideasonboard.com>2021-06-25 16:11:11 +0100
commite228c290c956ac7823fb9347be8ea957cf6d6172 (patch)
treee60e343876c9a86568a5a1c178c6fbda73cdc554 /src/libcamera/base
parentb71e8c2f39d823891aab4c681cccab9af5a49406 (diff)
libcamera/base: Validate internal headers as private
Headers which must not be exposed as part of the public libcamera API should include base/private.h. Any interface which includes the private.h header will only be able to build if the libcamera_private dependency is used (or the libcamera_base_private dependency directly). Build targets which are intended to use the private API's will use the libcamera_private to handle the automatic definition of the inclusion guard. Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Diffstat (limited to 'src/libcamera/base')
-rw-r--r--src/libcamera/base/meson.build8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/libcamera/base/meson.build b/src/libcamera/base/meson.build
index a8b04cfc..87172157 100644
--- a/src/libcamera/base/meson.build
+++ b/src/libcamera/base/meson.build
@@ -21,10 +21,15 @@ libcamera_base_deps = [
dependency('threads'),
]
+# Internal components must use the libcamera_base_private dependency to enable
+# the use of headers which must not be exposed to the libcamera public api.
+libcamera_base_args = [ '-DLIBCAMERA_BASE_PRIVATE' ]
+
libcamera_base_lib = shared_library('libcamera-base',
[libcamera_base_sources, libcamera_base_headers],
name_prefix : '',
install : true,
+ cpp_args : libcamera_base_args,
include_directories : libcamera_includes,
dependencies : libcamera_base_deps)
@@ -39,3 +44,6 @@ pkg_mod.generate(libcamera_base_lib,
version : '1.0',
description : 'Camera support base utility library',
subdirs : 'libcamera')
+
+libcamera_base_private = declare_dependency(dependencies : libcamera_base,
+ compile_args : libcamera_base_args)