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

Kieran Bingham kieran.bingham at ideasonboard.com
Wed Sep 29 10:06:20 CEST 2021



On 28/09/2021 18:12, Laurent Pinchart wrote:
> 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

Either of those options is fine with me.

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

--
Kieran



> 
>>>  #
>>>  # 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)
> 


More information about the libcamera-devel mailing list