[libcamera-devel] [PATCH v1 2/2] libcamera: Simplify header install paths with shortcut variables

Laurent Pinchart laurent.pinchart at ideasonboard.com
Tue Sep 28 19:12:02 CEST 2021


Hi Kieran,

On Tue, Sep 28, 2021 at 05:55:05PM +0100, Kieran Bingham wrote:
> On Sun, Sep 26, 2021 at 07:45:54PM +0300, Laurent Pinchart wrote:
> > Create local install_dir meson variable to store the full path to the
> > installation directory for the libcamera and ipa headers. This shortens
> > lines and avoids duplicating calls to get_option('includedir').
> > 
> > Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> > ---
> >  include/libcamera/ipa/meson.build |  6 ++++--
> >  include/libcamera/meson.build     | 10 ++++++----
> >  2 files changed, 10 insertions(+), 6 deletions(-)
> > 
> > diff --git a/include/libcamera/ipa/meson.build b/include/libcamera/ipa/meson.build
> > index 81fb69f0b681..c36a6fadc3f1 100644
> > --- a/include/libcamera/ipa/meson.build
> > +++ b/include/libcamera/ipa/meson.build
> > @@ -13,6 +13,8 @@ install_headers(libcamera_ipa_headers,
> >  
> >  libcamera_generated_ipa_headers = []
> >  
> > +install_dir = get_option('includedir') / libcamera_ipa_include_dir
> > +
> 
> I'm pretty sure I tried to do something like this, and you called it out
> as a potential namespace conflict against the meson variables.
> 
> Meson doesn't have local namespaces though so that install_dir becomes
> 'globally' accessible through out meson.
> 
> Should it be ipa_install_dir?
> 
> Otherwise perhaps at least a comment above it saying this variable is
> local to this meson.build?

The lack of local variables is indeed a bit annoying. I've essentially
treated install_dir as a local variable here and in
include/libcamera/meson.build. If we wanted to avoid using the same
name, they should be named ipa_headers_install_dir and
libcamera_headers_install_dir. Would you prefer that, or comments here
and below to state those variables are local ?

# include_dir is a local variable

> >  #
> >  # Prepare IPA/IPC generation components
> >  #
> > @@ -34,7 +36,7 @@ libcamera_generated_ipa_headers += custom_target('core_ipa_interface_h',
> >                    output : 'core_ipa_interface.h',
> >                    depends : mojom_templates,
> >                    install : true,
> > -                  install_dir : get_option('includedir') / libcamera_ipa_include_dir,
> > +                  install_dir : install_dir,
> >                    command : [
> >                        mojom_generator, 'generate',
> >                        '-g', 'libcamera',
> > @@ -98,7 +100,7 @@ foreach file : ipa_mojom_files
> >                             output : name + '_ipa_interface.h',
> >                             depends : mojom_templates,
> >                             install : true,
> > -                           install_dir : get_option('includedir') / libcamera_ipa_include_dir,
> > +                           install_dir : install_dir,
> >                             command : [
> >                                 mojom_generator, 'generate',
> >                                 '-g', 'libcamera',
> > diff --git a/include/libcamera/meson.build b/include/libcamera/meson.build
> > index 567782a66ba3..c5a639d50356 100644
> > --- a/include/libcamera/meson.build
> > +++ b/include/libcamera/meson.build
> > @@ -29,6 +29,8 @@ install_headers(libcamera_public_headers,
> >  # Generate headers from templates.
> >  #
> >  
> > +install_dir = get_option('includedir') / libcamera_include_dir
> > +
> >  # control_ids.h and property_ids.h
> >  control_source_files = [
> >      'control_ids',
> > @@ -44,7 +46,7 @@ foreach header : control_source_files
> >                                       output : header + '.h',
> >                                       command : [gen_controls, '-o', '@OUTPUT@', '@INPUT@'],
> >                                       install : true,
> > -                                     install_dir : get_option('includedir') / libcamera_include_dir)
> > +                                     install_dir : install_dir)
> >  endforeach
> >  
> >  libcamera_public_headers += control_headers
> > @@ -59,7 +61,7 @@ formats_h = custom_target('formats_h',
> >                            output : 'formats.h',
> >                            command : [gen_formats, '-o', '@OUTPUT@', '@INPUT@'],
> >                            install : true,
> > -                          install_dir : get_option('includedir') / libcamera_include_dir)
> > +                          install_dir : install_dir)
> >  libcamera_public_headers += formats_h
> >  
> >  # libcamera.h
> > @@ -68,7 +70,7 @@ libcamera_h = custom_target('gen-header',
> >                              output : 'libcamera.h',
> >                              command : [gen_header, meson.current_source_dir(), '@OUTPUT@'],
> >                              install : true,
> > -                            install_dir : get_option('includedir') / libcamera_include_dir)
> > +                            install_dir : install_dir)
> >  
> >  libcamera_public_headers += libcamera_h
> >  
> > @@ -82,4 +84,4 @@ libcamera_version_config.set('LIBCAMERA_VERSION_PATCH', version[2])
> >  configure_file(input : 'version.h.in',
> >                 output : 'version.h',
> >                 configuration : libcamera_version_config,
> > -               install_dir : get_option('includedir') / libcamera_include_dir)
> > +               install_dir : install_dir)

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list