[libcamera-devel] libcamera: pipelines: Print enabled pipelines

Message ID 20200901140752.49347-1-kieran.bingham@ideasonboard.com
State Superseded
Delegated to: Kieran Bingham
Headers show
Series
  • [libcamera-devel] libcamera: pipelines: Print enabled pipelines
Related show

Commit Message

Kieran Bingham Sept. 1, 2020, 2:07 p.m. UTC
Report the enabled pipelines when configuring the meson build hierarchy.

This helps clarify what pipelines are used when building, and is useful
when looking back through build-traces to see what was actually
configured.

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

This helps report enabled pipelines with the following examples visible
during configuration phase:

...
Configuring version.h using configuration
Dependency libjpeg found: YES 2.0.3 (cached)
Program openssl found: YES (/usr/bin/openssl)
Message: Enabling pipeline: ipu3
Message: Enabling pipeline: raspberrypi
Message: Enabling pipeline: rkisp1
Message: Enabling pipeline: simple
Message: Enabling pipeline: uvcvideo
Message: Enabling pipeline: vimc
Library atomic found: YES
Library dl found: YES
...

 src/libcamera/pipeline/meson.build | 1 +
 1 file changed, 1 insertion(+)

Comments

Laurent Pinchart Sept. 1, 2020, 6:15 p.m. UTC | #1
Hi Kieran,

Thank you for the patch.

On Tue, Sep 01, 2020 at 03:07:52PM +0100, Kieran Bingham wrote:
> Report the enabled pipelines when configuring the meson build hierarchy.
> 
> This helps clarify what pipelines are used when building, and is useful
> when looking back through build-traces to see what was actually
> configured.
> 
> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
> ---
> 
> This helps report enabled pipelines with the following examples visible
> during configuration phase:
> 
> ...
> Configuring version.h using configuration
> Dependency libjpeg found: YES 2.0.3 (cached)
> Program openssl found: YES (/usr/bin/openssl)
> Message: Enabling pipeline: ipu3
> Message: Enabling pipeline: raspberrypi
> Message: Enabling pipeline: rkisp1
> Message: Enabling pipeline: simple
> Message: Enabling pipeline: uvcvideo
> Message: Enabling pipeline: vimc

Should we print this on a single line ? It would prepare for using
summary() (https://mesonbuild.com/Reference-manual.html#summary), which
is available in meson 0.53 and newer.

Speaking of meson version, the latest Ubuntu LTS ships meson 0.53.2, and
Debian stable backports are currently at 0.52.1. We could upgrade to
0.52 (or 0.51 if we want to support Ubuntu 19.10), which gives us the
ability to check for Python modules. Worth it ?

> Library atomic found: YES
> Library dl found: YES
> ...
> 
>  src/libcamera/pipeline/meson.build | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/src/libcamera/pipeline/meson.build b/src/libcamera/pipeline/meson.build
> index 46424493aa37..9eb66af59d79 100644
> --- a/src/libcamera/pipeline/meson.build
> +++ b/src/libcamera/pipeline/meson.build
> @@ -1,5 +1,6 @@
>  # SPDX-License-Identifier: CC0-1.0
>  
>  foreach pipeline : get_option('pipelines')
> +    message('Enabling pipeline: ' + pipeline)
>      subdir(pipeline)
>  endforeach
Kieran Bingham Sept. 3, 2020, 6:30 p.m. UTC | #2
Hi Laurent,

On 01/09/2020 19:15, Laurent Pinchart wrote:
> Hi Kieran,
> 
> Thank you for the patch.
> 
> On Tue, Sep 01, 2020 at 03:07:52PM +0100, Kieran Bingham wrote:
>> Report the enabled pipelines when configuring the meson build hierarchy.
>>
>> This helps clarify what pipelines are used when building, and is useful
>> when looking back through build-traces to see what was actually
>> configured.
>>
>> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
>> ---
>>
>> This helps report enabled pipelines with the following examples visible
>> during configuration phase:
>>
>> ...
>> Configuring version.h using configuration
>> Dependency libjpeg found: YES 2.0.3 (cached)
>> Program openssl found: YES (/usr/bin/openssl)
>> Message: Enabling pipeline: ipu3
>> Message: Enabling pipeline: raspberrypi
>> Message: Enabling pipeline: rkisp1
>> Message: Enabling pipeline: simple
>> Message: Enabling pipeline: uvcvideo
>> Message: Enabling pipeline: vimc
> 
> Should we print this on a single line ? It would prepare for using
> summary() (https://mesonbuild.com/Reference-manual.html#summary), which
> is available in meson 0.53 and newer.

I tried that, but couldn't easily print a list - therefore this was the
easiest option I had.

> Speaking of meson version, the latest Ubuntu LTS ships meson 0.53.2, and
> Debian stable backports are currently at 0.52.1. We could upgrade to
> 0.52 (or 0.51 if we want to support Ubuntu 19.10), which gives us the
> ability to check for Python modules. Worth it ?

I'm already running on the latest meson, and we detail in the README.rst
how to upgrade meson using pip

(pip3 install --user --upgrade meson) easily on distributions which are
using an out of date meson.


But that summary() looks very helpful indeed, and is essentially what
this patch was trying to convey.

If you find a way to easily print on a single line, I can update this
patch, or should I skip it until we think we can move forwards with
summary()?


> 
>> Library atomic found: YES
>> Library dl found: YES
>> ...
>>
>>  src/libcamera/pipeline/meson.build | 1 +
>>  1 file changed, 1 insertion(+)
>>
>> diff --git a/src/libcamera/pipeline/meson.build b/src/libcamera/pipeline/meson.build
>> index 46424493aa37..9eb66af59d79 100644
>> --- a/src/libcamera/pipeline/meson.build
>> +++ b/src/libcamera/pipeline/meson.build
>> @@ -1,5 +1,6 @@
>>  # SPDX-License-Identifier: CC0-1.0
>>  
>>  foreach pipeline : get_option('pipelines')
>> +    message('Enabling pipeline: ' + pipeline)
>>      subdir(pipeline)
>>  endforeach
>
Laurent Pinchart Sept. 3, 2020, 10:23 p.m. UTC | #3
Hi Kieran,

On Thu, Sep 03, 2020 at 07:30:47PM +0100, Kieran Bingham wrote:
> On 01/09/2020 19:15, Laurent Pinchart wrote:
> > On Tue, Sep 01, 2020 at 03:07:52PM +0100, Kieran Bingham wrote:
> >> Report the enabled pipelines when configuring the meson build hierarchy.
> >>
> >> This helps clarify what pipelines are used when building, and is useful
> >> when looking back through build-traces to see what was actually
> >> configured.
> >>
> >> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
> >> ---
> >>
> >> This helps report enabled pipelines with the following examples visible
> >> during configuration phase:
> >>
> >> ...
> >> Configuring version.h using configuration
> >> Dependency libjpeg found: YES 2.0.3 (cached)
> >> Program openssl found: YES (/usr/bin/openssl)
> >> Message: Enabling pipeline: ipu3
> >> Message: Enabling pipeline: raspberrypi
> >> Message: Enabling pipeline: rkisp1
> >> Message: Enabling pipeline: simple
> >> Message: Enabling pipeline: uvcvideo
> >> Message: Enabling pipeline: vimc
> > 
> > Should we print this on a single line ? It would prepare for using
> > summary() (https://mesonbuild.com/Reference-manual.html#summary), which
> > is available in meson 0.53 and newer.
> 
> I tried that, but couldn't easily print a list - therefore this was the
> easiest option I had.

', '.join(get_option('pipelines')) ?

> > Speaking of meson version, the latest Ubuntu LTS ships meson 0.53.2, and
> > Debian stable backports are currently at 0.52.1. We could upgrade to
> > 0.52 (or 0.51 if we want to support Ubuntu 19.10), which gives us the
> > ability to check for Python modules. Worth it ?
> 
> I'm already running on the latest meson, and we detail in the README.rst
> how to upgrade meson using pip
> 
> (pip3 install --user --upgrade meson) easily on distributions which are
> using an out of date meson.
> 
> 
> But that summary() looks very helpful indeed, and is essentially what
> this patch was trying to convey.
> 
> If you find a way to easily print on a single line, I can update this
> patch, or should I skip it until we think we can move forwards with
> summary()?

Up to you :-) I think the feature is useful. Let's however group such
messages at the bottom of the top-level meson.build, to ease transition
to summary().

> >> Library atomic found: YES
> >> Library dl found: YES
> >> ...
> >>
> >>  src/libcamera/pipeline/meson.build | 1 +
> >>  1 file changed, 1 insertion(+)
> >>
> >> diff --git a/src/libcamera/pipeline/meson.build b/src/libcamera/pipeline/meson.build
> >> index 46424493aa37..9eb66af59d79 100644
> >> --- a/src/libcamera/pipeline/meson.build
> >> +++ b/src/libcamera/pipeline/meson.build
> >> @@ -1,5 +1,6 @@
> >>  # SPDX-License-Identifier: CC0-1.0
> >>  
> >>  foreach pipeline : get_option('pipelines')
> >> +    message('Enabling pipeline: ' + pipeline)
> >>      subdir(pipeline)
> >>  endforeach
Kieran Bingham Sept. 3, 2020, 11:13 p.m. UTC | #4
Hi Laurent,

On 03/09/2020 23:23, Laurent Pinchart wrote:
> Hi Kieran,
> 
> On Thu, Sep 03, 2020 at 07:30:47PM +0100, Kieran Bingham wrote:
>> On 01/09/2020 19:15, Laurent Pinchart wrote:
>>> On Tue, Sep 01, 2020 at 03:07:52PM +0100, Kieran Bingham wrote:
>>>> Report the enabled pipelines when configuring the meson build hierarchy.
>>>>
>>>> This helps clarify what pipelines are used when building, and is useful
>>>> when looking back through build-traces to see what was actually
>>>> configured.
>>>>
>>>> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
>>>> ---
>>>>
>>>> This helps report enabled pipelines with the following examples visible
>>>> during configuration phase:
>>>>
>>>> ...
>>>> Configuring version.h using configuration
>>>> Dependency libjpeg found: YES 2.0.3 (cached)
>>>> Program openssl found: YES (/usr/bin/openssl)
>>>> Message: Enabling pipeline: ipu3
>>>> Message: Enabling pipeline: raspberrypi
>>>> Message: Enabling pipeline: rkisp1
>>>> Message: Enabling pipeline: simple
>>>> Message: Enabling pipeline: uvcvideo
>>>> Message: Enabling pipeline: vimc
>>>
>>> Should we print this on a single line ? It would prepare for using
>>> summary() (https://mesonbuild.com/Reference-manual.html#summary), which
>>> is available in meson 0.53 and newer.
>>
>> I tried that, but couldn't easily print a list - therefore this was the
>> easiest option I had.
> 
> ', '.join(get_option('pipelines')) ?

Well, sure but that's clearly .. overly uhm complex, and too many
additional lines and ... errmmm ... uh ...

Ok so it works ;-)

V2 tomorrow with this instead:

message('Enabled pipelines: ' +  ', '.join(get_option('pipelines')) )

> Configuring config.h using configuration
> Message: Enabled pipelines: ipu3, raspberrypi, rkisp1, simple, uvcvideo, vimc
> Build targets in project: 86




> 
>>> Speaking of meson version, the latest Ubuntu LTS ships meson 0.53.2, and
>>> Debian stable backports are currently at 0.52.1. We could upgrade to
>>> 0.52 (or 0.51 if we want to support Ubuntu 19.10), which gives us the
>>> ability to check for Python modules. Worth it ?
>>
>> I'm already running on the latest meson, and we detail in the README.rst
>> how to upgrade meson using pip
>>
>> (pip3 install --user --upgrade meson) easily on distributions which are
>> using an out of date meson.
>>
>>
>> But that summary() looks very helpful indeed, and is essentially what
>> this patch was trying to convey.
>>
>> If you find a way to easily print on a single line, I can update this
>> patch, or should I skip it until we think we can move forwards with
>> summary()?
> 
> Up to you :-) I think the feature is useful. Let's however group such
> messages at the bottom of the top-level meson.build, to ease transition
> to summary().

Agreed.

>>>> Library atomic found: YES
>>>> Library dl found: YES
>>>> ...
>>>>
>>>>  src/libcamera/pipeline/meson.build | 1 +
>>>>  1 file changed, 1 insertion(+)
>>>>
>>>> diff --git a/src/libcamera/pipeline/meson.build b/src/libcamera/pipeline/meson.build
>>>> index 46424493aa37..9eb66af59d79 100644
>>>> --- a/src/libcamera/pipeline/meson.build
>>>> +++ b/src/libcamera/pipeline/meson.build
>>>> @@ -1,5 +1,6 @@
>>>>  # SPDX-License-Identifier: CC0-1.0
>>>>  
>>>>  foreach pipeline : get_option('pipelines')
>>>> +    message('Enabling pipeline: ' + pipeline)
>>>>      subdir(pipeline)
>>>>  endforeach
>

Patch

diff --git a/src/libcamera/pipeline/meson.build b/src/libcamera/pipeline/meson.build
index 46424493aa37..9eb66af59d79 100644
--- a/src/libcamera/pipeline/meson.build
+++ b/src/libcamera/pipeline/meson.build
@@ -1,5 +1,6 @@ 
 # SPDX-License-Identifier: CC0-1.0
 
 foreach pipeline : get_option('pipelines')
+    message('Enabling pipeline: ' + pipeline)
     subdir(pipeline)
 endforeach