[v4,1/4] meson: libcamera: Split public and internal source arrays
diff mbox series

Message ID 20240731135201.2866145-2-dan.scally@ideasonboard.com
State Superseded
Headers show
Series
  • Improve libcamera documentation
Related show

Commit Message

Dan Scally July 31, 2024, 1:51 p.m. UTC
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@ideasonboard.com>
Signed-off-by: Daniel Scally <dan.scally@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(-)

Comments

Kieran Bingham July 31, 2024, 3:27 p.m. UTC | #1
Quoting Daniel Scally (2024-07-31 14:51:58)
> 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@ideasonboard.com>


Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>

> Signed-off-by: Daniel Scally <dan.scally@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
> +]
> +
>  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
> +]
> +
>  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',
> -- 
> 2.34.1
>
Laurent Pinchart Aug. 4, 2024, 4:02 p.m. UTC | #2
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@ideasonboard.com>
> Signed-off-by: Daniel Scally <dan.scally@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',

Patch
diff mbox series

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
+]
+
 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
+]
+
 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',