[libcamera-devel,04/13] pipeline: meson: Allow nested pipeline handler directory structures
diff mbox series

Message ID 20230503122035.32026-5-naush@raspberrypi.com
State Accepted
Headers show
Series
  • Raspberry Pi: Code refactoring
Related show

Commit Message

Naushir Patuck May 3, 2023, 12:20 p.m. UTC
The current pipeline handler build files require a flat directory
struture for each pipeline handler. Modify the build files to remove
this restriction and allow a directory structure such as:

src/libcamera/pipeline/
  |- raspberrypi
      |- common
      |- vc4
  |- rkisp1
  |- ipu3

where each subdir (e.g. raspberrypi/common, raspberrypi/vc4) has its own
meson.build file. Such a directory structure will be introduced for the
Raspberry Pi pipeline handler in a future commit.

Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
---
 src/libcamera/pipeline/meson.build | 9 +++++++++
 1 file changed, 9 insertions(+)

Comments

Naushir Patuck May 4, 2023, 7:56 a.m. UTC | #1
Hi all,

On Wed, 3 May 2023 at 13:20, Naushir Patuck <naush@raspberrypi.com> wrote:
>
> The current pipeline handler build files require a flat directory
> struture for each pipeline handler. Modify the build files to remove
> this restriction and allow a directory structure such as:
>
> src/libcamera/pipeline/
>   |- raspberrypi
>       |- common
>       |- vc4
>   |- rkisp1
>   |- ipu3
>
> where each subdir (e.g. raspberrypi/common, raspberrypi/vc4) has its own
> meson.build file. Such a directory structure will be introduced for the
> Raspberry Pi pipeline handler in a future commit.
>
> Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
> ---
>  src/libcamera/pipeline/meson.build | 9 +++++++++
>  1 file changed, 9 insertions(+)
>
> diff --git a/src/libcamera/pipeline/meson.build b/src/libcamera/pipeline/meson.build
> index f14869f3a3c0..059c68bb964f 100644
> --- a/src/libcamera/pipeline/meson.build
> +++ b/src/libcamera/pipeline/meson.build
> @@ -3,6 +3,15 @@
>  # Location of pipeline specific configuration files
>  pipeline_data_dir = libcamera_datadir / 'pipeline'
>
> +# Allow multi-level directory structuring for the pipeline handlers if needed.
> +subdirs = []
> +
>  foreach pipeline : pipelines
> +    pipeline = pipeline.split('/')[0]
> +    if pipeline in subdirs
> +        continue
> +    endif
> +
>      subdir(pipeline)
> +    subdirs += [pipeline]

Like the pipeline handler case, this should be:

    subdirs += pipeline

Regards,
Naush

>  endforeach
> --
> 2.34.1
>
Jacopo Mondi May 4, 2023, 9:55 a.m. UTC | #2
Hi Naush

On Wed, May 03, 2023 at 01:20:26PM +0100, Naushir Patuck via libcamera-devel wrote:
> The current pipeline handler build files require a flat directory
> struture for each pipeline handler. Modify the build files to remove
> this restriction and allow a directory structure such as:
>
> src/libcamera/pipeline/
>   |- raspberrypi
>       |- common
>       |- vc4
>   |- rkisp1
>   |- ipu3
>
> where each subdir (e.g. raspberrypi/common, raspberrypi/vc4) has its own
> meson.build file. Such a directory structure will be introduced for the
> Raspberry Pi pipeline handler in a future commit.
>
> Signed-off-by: Naushir Patuck <naush@raspberrypi.com>

With your comment fixed
Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>

Thanks
  j

> ---
>  src/libcamera/pipeline/meson.build | 9 +++++++++
>  1 file changed, 9 insertions(+)
>
> diff --git a/src/libcamera/pipeline/meson.build b/src/libcamera/pipeline/meson.build
> index f14869f3a3c0..059c68bb964f 100644
> --- a/src/libcamera/pipeline/meson.build
> +++ b/src/libcamera/pipeline/meson.build
> @@ -3,6 +3,15 @@
>  # Location of pipeline specific configuration files
>  pipeline_data_dir = libcamera_datadir / 'pipeline'
>
> +# Allow multi-level directory structuring for the pipeline handlers if needed.
> +subdirs = []
> +
>  foreach pipeline : pipelines
> +    pipeline = pipeline.split('/')[0]
> +    if pipeline in subdirs
> +        continue
> +    endif
> +
>      subdir(pipeline)
> +    subdirs += [pipeline]
>  endforeach
> --
> 2.34.1
>
Laurent Pinchart May 4, 2023, 11:11 a.m. UTC | #3
Hi Naush,

Thank you for the patch.

On Thu, May 04, 2023 at 08:56:14AM +0100, Naushir Patuck via libcamera-devel wrote:
> On Wed, 3 May 2023 at 13:20, Naushir Patuck wrote:
> >
> > The current pipeline handler build files require a flat directory
> > struture for each pipeline handler. Modify the build files to remove
> > this restriction and allow a directory structure such as:
> >
> > src/libcamera/pipeline/
> >   |- raspberrypi
> >       |- common
> >       |- vc4
> >   |- rkisp1
> >   |- ipu3
> >
> > where each subdir (e.g. raspberrypi/common, raspberrypi/vc4) has its own
> > meson.build file. Such a directory structure will be introduced for the
> > Raspberry Pi pipeline handler in a future commit.
> >
> > Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
> > ---
> >  src/libcamera/pipeline/meson.build | 9 +++++++++
> >  1 file changed, 9 insertions(+)
> >
> > diff --git a/src/libcamera/pipeline/meson.build b/src/libcamera/pipeline/meson.build
> > index f14869f3a3c0..059c68bb964f 100644
> > --- a/src/libcamera/pipeline/meson.build
> > +++ b/src/libcamera/pipeline/meson.build
> > @@ -3,6 +3,15 @@
> >  # Location of pipeline specific configuration files
> >  pipeline_data_dir = libcamera_datadir / 'pipeline'
> >
> > +# Allow multi-level directory structuring for the pipeline handlers if needed.
> > +subdirs = []
> > +
> >  foreach pipeline : pipelines
> > +    pipeline = pipeline.split('/')[0]
> > +    if pipeline in subdirs
> > +        continue
> > +    endif
> > +
> >      subdir(pipeline)
> > +    subdirs += [pipeline]
> 
> Like the pipeline handler case, this should be:
> 
>     subdirs += pipeline

I'll fix this when applying.

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

> >  endforeach

Patch
diff mbox series

diff --git a/src/libcamera/pipeline/meson.build b/src/libcamera/pipeline/meson.build
index f14869f3a3c0..059c68bb964f 100644
--- a/src/libcamera/pipeline/meson.build
+++ b/src/libcamera/pipeline/meson.build
@@ -3,6 +3,15 @@ 
 # Location of pipeline specific configuration files
 pipeline_data_dir = libcamera_datadir / 'pipeline'
 
+# Allow multi-level directory structuring for the pipeline handlers if needed.
+subdirs = []
+
 foreach pipeline : pipelines
+    pipeline = pipeline.split('/')[0]
+    if pipeline in subdirs
+        continue
+    endif
+
     subdir(pipeline)
+    subdirs += [pipeline]
 endforeach