[PATCH v4 1/4] meson: libcamera: Split public and internal source arrays

Laurent Pinchart laurent.pinchart at ideasonboard.com
Sun Aug 4 18:02:00 CEST 2024


On Wed, Jul 31, 2024 at 02:51:58PM +0100, Daniel Scally wrote:
> Meson array variables hold lists of libcamera's source files. To help
> facilitate the splitting of Doxygen generated documentation into
> distinct public and internal versions, split those arrays to separate
> public and internal variables.
> 
> Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> Signed-off-by: Daniel Scally <dan.scally at ideasonboard.com>
> ---
> Changes in v4:
> 
> 	- Missing comma
> 
> Changes in v3:
> 
> 	- Didn't swap span.h to private array
> 	- dropped _publically from array name
> 
> Changes in v2:
> 
> 	- New patch
> 
>  include/libcamera/internal/meson.build | 21 +++++++++++----
>  src/libcamera/base/meson.build         | 24 +++++++++++------
>  src/libcamera/meson.build              | 36 ++++++++++++++++----------
>  src/libcamera/sensor/meson.build       |  5 ++++
>  4 files changed, 59 insertions(+), 27 deletions(-)
> 
> diff --git a/include/libcamera/internal/meson.build b/include/libcamera/internal/meson.build
> index 9713ea1c..76c939bf 100644
> --- a/include/libcamera/internal/meson.build
> +++ b/include/libcamera/internal/meson.build
> @@ -9,13 +9,21 @@ libcamera_tracepoint_header = custom_target(
>      command : [gen_tracepoints_header, include_build_dir, '@OUTPUT@', '@INPUT@'],
>  )
>  
> -libcamera_internal_headers = files([
> +# Where libcamera's public API classes have Extensible::Private counterparts we
> +# need to include them in doxygen's public API run or it will complain that the
> +# functions defined in the "public" source are undeclared.
> +libcamera_internal_headers_documented = files([
> +    'camera.h',
> +    'camera_manager.h',
> +    'framebuffer.h',
> +    'request.h',
> +])
> +
> +libcamera_internal_headers_undocumented = files([
>      'bayer_format.h',
>      'byte_stream_buffer.h',
> -    'camera.h',
>      'camera_controls.h',
>      'camera_lens.h',
> -    'camera_manager.h',
>      'camera_sensor.h',
>      'camera_sensor_properties.h',
>      'control_serializer.h',
> @@ -27,7 +35,6 @@ libcamera_internal_headers = files([
>      'device_enumerator_udev.h',
>      'dma_buf_allocator.h',
>      'formats.h',
> -    'framebuffer.h',
>      'ipa_manager.h',
>      'ipa_module.h',
>      'ipa_proxy.h',
> @@ -38,7 +45,6 @@ libcamera_internal_headers = files([
>      'pipeline_handler.h',
>      'process.h',
>      'pub_key.h',
> -    'request.h',
>      'shared_mem_object.h',
>      'source_paths.h',
>      'sysfs.h',
> @@ -49,5 +55,10 @@ libcamera_internal_headers = files([
>      'yaml_parser.h',
>  ])
>  
> +libcamera_internal_headers = [
> +    libcamera_internal_headers_documented,
> +    libcamera_internal_headers_undocumented,
> +]
> +
>  subdir('converter')
>  subdir('software_isp')
> diff --git a/src/libcamera/base/meson.build b/src/libcamera/base/meson.build
> index 7a7fd7e4..523c5885 100644
> --- a/src/libcamera/base/meson.build
> +++ b/src/libcamera/base/meson.build
> @@ -1,27 +1,35 @@
>  # SPDX-License-Identifier: CC0-1.0
>  
> -libcamera_base_sources = files([
> -    'backtrace.cpp',
> -    'class.cpp',
> +libcamera_base_public_sources = files([
>      'bound_method.cpp',
> +    'class.cpp',
> +    'flags.cpp',
> +    'object.cpp',
> +    'shared_fd.cpp',
> +    'signal.cpp',
> +    'unique_fd.cpp',
> +])
> +
> +libcamera_base_internal_sources = files([
> +    'backtrace.cpp',
>      'event_dispatcher.cpp',
>      'event_dispatcher_poll.cpp',
>      'event_notifier.cpp',
>      'file.cpp',
> -    'flags.cpp',
>      'log.cpp',
>      'message.cpp',
>      'mutex.cpp',
> -    'object.cpp',
>      'semaphore.cpp',
> -    'shared_fd.cpp',
> -    'signal.cpp',
>      'thread.cpp',
>      'timer.cpp',
> -    'unique_fd.cpp',
>      'utils.cpp',
>  ])
>  
> +libcamera_base_sources = [
> +	libcamera_base_public_sources,
> +	libcamera_base_internal_sources

Wrong indentation, should be 4 spaces, not a tab.

> +]
> +
>  libdw = dependency('libdw', required : false)
>  libunwind = dependency('libunwind', required : false)
>  
> diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build
> index 89504cee..9c74241d 100644
> --- a/src/libcamera/meson.build
> +++ b/src/libcamera/meson.build
> @@ -1,14 +1,26 @@
>  # SPDX-License-Identifier: CC0-1.0
>  
> -libcamera_sources = files([
> -    'bayer_format.cpp',
> -    'byte_stream_buffer.cpp',
> +libcamera_public_sources = files([
>      'camera.cpp',
> -    'camera_controls.cpp',
> -    'camera_lens.cpp',
>      'camera_manager.cpp',
>      'color_space.cpp',
>      'controls.cpp',
> +    'fence.cpp',
> +    'framebuffer.cpp',
> +    'framebuffer_allocator.cpp',
> +    'geometry.cpp',
> +    'orientation.cpp',
> +    'pixel_format.cpp',
> +    'request.cpp',
> +    'stream.cpp',
> +    'transform.cpp',
> +])
> +
> +libcamera_internal_sources = files([
> +    'bayer_format.cpp',
> +    'byte_stream_buffer.cpp',
> +    'camera_controls.cpp',
> +    'camera_lens.cpp',
>      'control_serializer.cpp',
>      'control_validator.cpp',
>      'converter.cpp',
> @@ -16,11 +28,7 @@ libcamera_sources = files([
>      'device_enumerator.cpp',
>      'device_enumerator_sysfs.cpp',
>      'dma_buf_allocator.cpp',
> -    'fence.cpp',
>      'formats.cpp',
> -    'framebuffer.cpp',
> -    'framebuffer_allocator.cpp',
> -    'geometry.cpp',
>      'ipa_controls.cpp',
>      'ipa_data_serializer.cpp',
>      'ipa_interface.cpp',
> @@ -33,17 +41,12 @@ libcamera_sources = files([
>      'mapped_framebuffer.cpp',
>      'media_device.cpp',
>      'media_object.cpp',
> -    'orientation.cpp',
>      'pipeline_handler.cpp',
> -    'pixel_format.cpp',
>      'process.cpp',
>      'pub_key.cpp',
> -    'request.cpp',
>      'shared_mem_object.cpp',
>      'source_paths.cpp',
> -    'stream.cpp',
>      'sysfs.cpp',
> -    'transform.cpp',
>      'v4l2_device.cpp',
>      'v4l2_pixelformat.cpp',
>      'v4l2_subdevice.cpp',
> @@ -51,6 +54,11 @@ libcamera_sources = files([
>      'yaml_parser.cpp',
>  ])
>  
> +libcamera_sources = [
> +	libcamera_public_sources,
> +	libcamera_internal_sources

Same here.

> +]
> +
>  libcamera_sources += libcamera_public_headers
>  libcamera_sources += libcamera_generated_ipa_headers
>  libcamera_sources += libcamera_tracepoint_header
> diff --git a/src/libcamera/sensor/meson.build b/src/libcamera/sensor/meson.build
> index bf4b131a..1c1fc5a4 100644
> --- a/src/libcamera/sensor/meson.build
> +++ b/src/libcamera/sensor/meson.build
> @@ -1,5 +1,10 @@
>  # SPDX-License-Identifier: CC0-1.0
>  
> +libcamera_internal_sources += files([
> +    'camera_sensor.cpp',
> +    'camera_sensor_properties.cpp',
> +])
> +
>  libcamera_sources += files([
>      'camera_sensor.cpp',
>      'camera_sensor_properties.cpp',

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list