[libcamera-devel] [PATCH 04/16] libcamera: Rename libcamera pkg-config generation

Kieran Bingham kieran.bingham at ideasonboard.com
Fri Jun 25 11:04:45 CEST 2021


Hi Laurent,

On 25/06/2021 04:18, Laurent Pinchart wrote:
> Hi Kieran,
> 
> Thank you for the patch.
> 
> On Fri, Jun 25, 2021 at 02:35:27AM +0100, Kieran Bingham wrote:
>> The libcamera library is moved to the first positional argument of the
>> pkg-config generator to automatically populate the name and filebase
>> values for the package.
>>
>> As part of this, the shared library name is adjusted to the full library
>> name 'libcamera', without relying upon the automatic 'lib' prefix which
>> better represents the component and naming of the library.
>>
>> As a result of this, the pkgconfig file is now named 'libcamera.pc' as
>> opposed to 'camera.pc', and applications desiring to reference libcamera
>> will need to search for 'libcamera' as a dependency rather than
>> 'camera'.
>>
>> The library itself is still created and installed as 'libcamera.so'.
>>
>> An example meson.build file would need to be adjusted as the following:
>>
>> -      dependency('camera', required : true),
>> +      dependency('libcamera', required : true),
>>
>> Signed-off-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
>> ---
>>  src/libcamera/meson.build | 7 +++----
>>  1 file changed, 3 insertions(+), 4 deletions(-)
>>
>> diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build
>> index e4c60e736697..387d20843203 100644
>> --- a/src/libcamera/meson.build
>> +++ b/src/libcamera/meson.build
>> @@ -135,8 +135,9 @@ libcamera_deps = [
>>  # runtime if the library is running from an installed location by checking
>>  # for the presence or abscence of the dynamic tag.
>>  
>> -libcamera = shared_library('camera',
>> +libcamera = shared_library('libcamera',
>>                             libcamera_sources,
>> +                           name_prefix : '',
> 
> While I like the end-result for pkg-config, I'm not too fond of this
> particular change as we work around the normal usage of shared_library()
> here to change the name of the .pc file. Could we keep this unchanged,
> and set filebase to 'libcamera' below instead ?

But ... it's the same principle on the shared-library too.

Our project is called 'libcamera' ... not 'camera'...

I can update the commit message to say "Rename the shared library to
maintain the correct and intentional naming of the project" if you prefer?


We still create a shared library called 'libcamera.so' ... the /only/
place where this differs is in the linker command where it becomes
-lcamera ... but that's not really user facing, thanks to the pkg-config
... (and neither is the definition here I guess).




> Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> 
>>                             install : true,
>>                             include_directories : includes,
>>                             build_rpath : '/',
>> @@ -157,10 +158,8 @@ libcamera_dep = declare_dependency(sources : [
>>                                     link_with : libcamera)
>>  
>>  pkg_mod = import('pkgconfig')
>> -pkg_mod.generate(libraries: libcamera,
>> +pkg_mod.generate(libcamera,
>>                   version : '1.0',
>> -                 name : 'libcamera',
>> -                 filebase : 'camera',
>>                   description : 'Complex Camera Support Library',
>>                   subdirs : 'libcamera')
>>  
> 


More information about the libcamera-devel mailing list