[libcamera-devel] [RFC PATCH] ipa: meson: Install mojom generated headers to include paths

Umang Jain umang.jain at ideasonboard.com
Thu Apr 29 08:57:40 CEST 2021


Hi Kieran,

On 4/28/21 7:49 PM, Kieran Bingham wrote:
> Hi Umang,
>
> On 28/04/2021 14:33, Umang Jain wrote:
>> Generated IPA headers from mojom files need to be installed sy
>> $INCLUDE_PATH in order to be available system-wide. Without this,
>> out-of-tree IPAs won't be able to link and build themselves.
>>
>> Signed-off-by: Umang Jain <umang.jain at ideasonboard.com>
>> ---
>> Marked as RFC to discuss:
>> - Whether it makes sense to provide -ipa_serializer.h
>>    and -ipa_proxy.h system-wide too? I am not 100%s sure yet.
> I don't think it makes sense to install the serializer and proxy
> headers. Those are used as part of the IPC internals I believe.
>
>
>
>> ---
>>   include/libcamera/ipa/meson.build | 12 ++++++++++++
>>   1 file changed, 12 insertions(+)
>>
>> diff --git a/include/libcamera/ipa/meson.build b/include/libcamera/ipa/meson.build
>> index 2d72c1fc..096bd4dd 100644
>> --- a/include/libcamera/ipa/meson.build
>> +++ b/include/libcamera/ipa/meson.build
>> @@ -11,6 +11,8 @@ install_headers(libcamera_ipa_headers,
>>   
>>   libcamera_generated_ipa_headers = []
>>   
>> +generated_ipa_headers_include_path = join_paths(get_option('prefix'),'include',
>> +                                                libcamera_include_dir, 'ipa')
> Where possible, this should be factored out so the common parts are
> shared with the installation of the libcamera_ipa_headers.
>
> However that uses install_headers() which we can't use directly on the
> custom_target it seems.
>
> I would create at the top of the file
>
> libcamera_ipa_include_dir = libcamera_include_dir / 'ipa'
>
> and use that for the install_headers.
>
> Somewhat frustratingly we likely then have to use the following for the
> install_dir, as 'install_headers' would otherwise have prefixed 'include':
>
> 	install : true,
> 	install_dir : 'include' / libcamera_ipa_include_dir
We need to add prefix too, no? I am sending a new RFC soon, please take 
a look if that looks on the right path
>
>
>>   #
>>   # Prepare IPA/IPC generation components
>>   #
>> @@ -31,6 +33,8 @@ libcamera_generated_ipa_headers += custom_target('core_ipa_interface_h',
>>                     input : ipa_mojom_core,
>>                     output : 'core_ipa_interface.h',
>>                     depends : mojom_templates,
>> +                  install: true,
>> +                  install_dir: generated_ipa_headers_include_path,
>>                     command : [
>>                         mojom_generator, 'generate',
>>                         '-g', 'libcamera',
>> @@ -45,6 +49,8 @@ libcamera_generated_ipa_headers += custom_target('core_ipa_serializer_h',
>>                     input : ipa_mojom_core,
>>                     output : 'core_ipa_serializer.h',
>>                     depends : mojom_templates,
>> +                  install: true,
>> +                  install_dir: generated_ipa_headers_include_path,
>>                     command : [
>>                         mojom_generator, 'generate',
>>                         '-g', 'libcamera',
>> @@ -93,6 +99,8 @@ foreach file : ipa_mojom_files
>>                              input : mojom,
>>                              output : name + '_ipa_interface.h',
>>                              depends : mojom_templates,
>> +                           install: true,
>> +                           install_dir: generated_ipa_headers_include_path,
>
> Make sure you have a space around both sides of the ':' to match the
> existing styles.
>
> Presumably, this is the only header that needs to actually be installed now?
> But it will need checking.
>
> --
> Kieran
>
>
>>                              command : [
>>                                  mojom_generator, 'generate',
>>                                  '-g', 'libcamera',
>> @@ -107,6 +115,8 @@ foreach file : ipa_mojom_files
>>                                  input : mojom,
>>                                  output : name + '_ipa_serializer.h',
>>                                  depends : mojom_templates,
>> +                               install: true,
>> +                               install_dir: generated_ipa_headers_include_path,
>>                                  command : [
>>                                      mojom_generator, 'generate',
>>                                      '-g', 'libcamera',
>> @@ -121,6 +131,8 @@ foreach file : ipa_mojom_files
>>                                    input : mojom,
>>                                    output : name + '_ipa_proxy.h',
>>                                    depends : mojom_templates,
>> +                                 install: true,
>> +                                 install_dir: generated_ipa_headers_include_path,
>>                                    command : [
>>                                        mojom_generator, 'generate',
>>                                        '-g', 'libcamera',
>>



More information about the libcamera-devel mailing list