meson: Group libipa and libipa_includes in a dependency object
diff mbox series

Message ID 20240611124205.18093-1-laurent.pinchart@ideasonboard.com
State Accepted
Commit f305cacc9c442358acd2c604817206cf7eeaabe0
Headers show
Series
  • meson: Group libipa and libipa_includes in a dependency object
Related show

Commit Message

Laurent Pinchart June 11, 2024, 12:42 p.m. UTC
Many build targets link with libipa and need libipa_includes. Group them
in a libipa_dep dependency object to simplify the users.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 src/ipa/ipu3/meson.build    | 5 ++---
 src/ipa/libipa/meson.build  | 4 ++++
 src/ipa/rkisp1/meson.build  | 5 ++---
 src/ipa/rpi/vc4/meson.build | 4 +---
 src/ipa/simple/meson.build  | 5 ++---
 src/ipa/vimc/meson.build    | 5 ++---
 test/ipa/meson.build        | 6 +++---
 test/ipa/rkisp1/meson.build | 6 +++---
 8 files changed, 19 insertions(+), 21 deletions(-)


base-commit: f3caea0ff7e63b529c9464f911162aa457e9b858

Comments

Kieran Bingham June 11, 2024, 1:21 p.m. UTC | #1
Quoting Laurent Pinchart (2024-06-11 13:42:05)
> Many build targets link with libipa and need libipa_includes. Group them
> in a libipa_dep dependency object to simplify the users.
> 
> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

I've been through, it seems reasonable to me.


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

> ---
>  src/ipa/ipu3/meson.build    | 5 ++---
>  src/ipa/libipa/meson.build  | 4 ++++
>  src/ipa/rkisp1/meson.build  | 5 ++---
>  src/ipa/rpi/vc4/meson.build | 4 +---
>  src/ipa/simple/meson.build  | 5 ++---
>  src/ipa/vimc/meson.build    | 5 ++---
>  test/ipa/meson.build        | 6 +++---
>  test/ipa/rkisp1/meson.build | 6 +++---
>  8 files changed, 19 insertions(+), 21 deletions(-)
> 
> diff --git a/src/ipa/ipu3/meson.build b/src/ipa/ipu3/meson.build
> index 66c398432d43..e76f97c07c87 100644
> --- a/src/ipa/ipu3/meson.build
> +++ b/src/ipa/ipu3/meson.build
> @@ -15,9 +15,8 @@ ipu3_ipa_sources += ipu3_ipa_algorithms
>  mod = shared_module(ipa_name,
>                      [ipu3_ipa_sources, libcamera_generated_ipa_headers],
>                      name_prefix : '',
> -                    include_directories : [ipa_includes, libipa_includes],
> -                    dependencies : libcamera_private,
> -                    link_with : libipa,
> +                    include_directories : [ipa_includes],
> +                    dependencies : [libcamera_private, libipa_dep],
>                      install : true,
>                      install_dir : ipa_install_dir)
>  
> diff --git a/src/ipa/libipa/meson.build b/src/ipa/libipa/meson.build
> index 8ec9c7847348..7f038c90cd87 100644
> --- a/src/ipa/libipa/meson.build
> +++ b/src/ipa/libipa/meson.build
> @@ -27,3 +27,7 @@ libipa_includes = include_directories('..')
>  libipa = static_library('ipa', [libipa_sources, libipa_headers],
>                          include_directories : ipa_includes,
>                          dependencies : libcamera_private)
> +
> +libipa_dep = declare_dependency(sources : libipa_headers,
> +                                include_directories : libipa_includes,
> +                                link_with : libipa)
> diff --git a/src/ipa/rkisp1/meson.build b/src/ipa/rkisp1/meson.build
> index cf05cdb27943..e8b266f1ccca 100644
> --- a/src/ipa/rkisp1/meson.build
> +++ b/src/ipa/rkisp1/meson.build
> @@ -16,9 +16,8 @@ rkisp1_ipa_sources += rkisp1_ipa_algorithms
>  mod = shared_module(ipa_name,
>                      [rkisp1_ipa_sources, libcamera_generated_ipa_headers],
>                      name_prefix : '',
> -                    include_directories : [ipa_includes, libipa_includes],
> -                    dependencies : libcamera_private,
> -                    link_with : libipa,
> +                    include_directories : [ipa_includes],
> +                    dependencies : [libcamera_private, libipa_dep],
>                      install : true,
>                      install_dir : ipa_install_dir)
>  
> diff --git a/src/ipa/rpi/vc4/meson.build b/src/ipa/rpi/vc4/meson.build
> index 590e9197756d..63fc5925b06c 100644
> --- a/src/ipa/rpi/vc4/meson.build
> +++ b/src/ipa/rpi/vc4/meson.build
> @@ -15,7 +15,6 @@ vc4_ipa_libs = [
>  
>  vc4_ipa_includes = [
>      ipa_includes,
> -    libipa_includes,
>  ]
>  
>  vc4_ipa_sources = files([
> @@ -28,8 +27,7 @@ mod = shared_module(ipa_name,
>                      [vc4_ipa_sources, libcamera_generated_ipa_headers],
>                      name_prefix : '',
>                      include_directories : vc4_ipa_includes,
> -                    dependencies : vc4_ipa_deps,
> -                    link_with : libipa,
> +                    dependencies : [vc4_ipa_deps, libipa_dep],
>                      link_whole : vc4_ipa_libs,
>                      install : true,
>                      install_dir : ipa_install_dir)
> diff --git a/src/ipa/simple/meson.build b/src/ipa/simple/meson.build
> index 44b5f1d70cd3..33d1c96aa4f2 100644
> --- a/src/ipa/simple/meson.build
> +++ b/src/ipa/simple/meson.build
> @@ -10,9 +10,8 @@ soft_simple_sources = files([
>  mod = shared_module(ipa_name,
>                      [soft_simple_sources, libcamera_generated_ipa_headers],
>                      name_prefix : '',
> -                    include_directories : [ipa_includes, libipa_includes],
> -                    dependencies : libcamera_private,
> -                    link_with : libipa,
> +                    include_directories : [ipa_includes],
> +                    dependencies : [libcamera_private, libipa_dep],
>                      install : true,
>                      install_dir : ipa_install_dir)
>  
> diff --git a/src/ipa/vimc/meson.build b/src/ipa/vimc/meson.build
> index 264a2d9a8964..d0b63eddd5f6 100644
> --- a/src/ipa/vimc/meson.build
> +++ b/src/ipa/vimc/meson.build
> @@ -5,9 +5,8 @@ ipa_name = 'ipa_vimc'
>  mod = shared_module(ipa_name,
>                      ['vimc.cpp', libcamera_generated_ipa_headers],
>                      name_prefix : '',
> -                    include_directories : [ipa_includes, libipa_includes],
> -                    dependencies : libcamera_private,
> -                    link_with : libipa,
> +                    include_directories : [ipa_includes],
> +                    dependencies : [libcamera_private, libipa_dep],
>                      install : true,
>                      install_dir : ipa_install_dir)
>  
> diff --git a/test/ipa/meson.build b/test/ipa/meson.build
> index dc956284c4b1..fe21ca58b64f 100644
> --- a/test/ipa/meson.build
> +++ b/test/ipa/meson.build
> @@ -9,9 +9,9 @@ ipa_test = [
>  
>  foreach test : ipa_test
>      exe = executable(test['name'], test['sources'], libcamera_generated_ipa_headers,
> -                     dependencies : libcamera_private,
> -                     link_with : [libipa, test_libraries],
> -                     include_directories : [libipa_includes, test_includes_internal])
> +                     dependencies : [libcamera_private, libipa_dep],
> +                     link_with : [test_libraries],
> +                     include_directories : [test_includes_internal])
>  
>      test(test['name'], exe, suite : 'ipa')
>  endforeach
> diff --git a/test/ipa/rkisp1/meson.build b/test/ipa/rkisp1/meson.build
> index 5ffc5dd607b6..5b08e2939ce6 100644
> --- a/test/ipa/rkisp1/meson.build
> +++ b/test/ipa/rkisp1/meson.build
> @@ -6,9 +6,9 @@ rkisp1_ipa_test = [
>  
>  foreach test : rkisp1_ipa_test
>      exe = executable(test['name'], test['sources'], libcamera_generated_ipa_headers,
> -                     dependencies : libcamera_private,
> -                     link_with : [libipa, test_libraries],
> -                     include_directories : [libipa_includes, test_includes_internal,
> +                     dependencies : [libcamera_private, libipa_dep],
> +                     link_with : [test_libraries],
> +                     include_directories : [test_includes_internal,
>                                              '../../../src/ipa/rkisp1/'])
>  
>      test(test['name'], exe, suite : 'ipa')
> 
> base-commit: f3caea0ff7e63b529c9464f911162aa457e9b858
> -- 
> Regards,
> 
> Laurent Pinchart
>
Paul Elder June 11, 2024, 1:35 p.m. UTC | #2
On Tue, Jun 11, 2024 at 03:42:05PM +0300, Laurent Pinchart wrote:
> Many build targets link with libipa and need libipa_includes. Group them
> in a libipa_dep dependency object to simplify the users.
> 
> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>

> ---
>  src/ipa/ipu3/meson.build    | 5 ++---
>  src/ipa/libipa/meson.build  | 4 ++++
>  src/ipa/rkisp1/meson.build  | 5 ++---
>  src/ipa/rpi/vc4/meson.build | 4 +---
>  src/ipa/simple/meson.build  | 5 ++---
>  src/ipa/vimc/meson.build    | 5 ++---
>  test/ipa/meson.build        | 6 +++---
>  test/ipa/rkisp1/meson.build | 6 +++---
>  8 files changed, 19 insertions(+), 21 deletions(-)
> 
> diff --git a/src/ipa/ipu3/meson.build b/src/ipa/ipu3/meson.build
> index 66c398432d43..e76f97c07c87 100644
> --- a/src/ipa/ipu3/meson.build
> +++ b/src/ipa/ipu3/meson.build
> @@ -15,9 +15,8 @@ ipu3_ipa_sources += ipu3_ipa_algorithms
>  mod = shared_module(ipa_name,
>                      [ipu3_ipa_sources, libcamera_generated_ipa_headers],
>                      name_prefix : '',
> -                    include_directories : [ipa_includes, libipa_includes],
> -                    dependencies : libcamera_private,
> -                    link_with : libipa,
> +                    include_directories : [ipa_includes],
> +                    dependencies : [libcamera_private, libipa_dep],
>                      install : true,
>                      install_dir : ipa_install_dir)
>  
> diff --git a/src/ipa/libipa/meson.build b/src/ipa/libipa/meson.build
> index 8ec9c7847348..7f038c90cd87 100644
> --- a/src/ipa/libipa/meson.build
> +++ b/src/ipa/libipa/meson.build
> @@ -27,3 +27,7 @@ libipa_includes = include_directories('..')
>  libipa = static_library('ipa', [libipa_sources, libipa_headers],
>                          include_directories : ipa_includes,
>                          dependencies : libcamera_private)
> +
> +libipa_dep = declare_dependency(sources : libipa_headers,
> +                                include_directories : libipa_includes,
> +                                link_with : libipa)
> diff --git a/src/ipa/rkisp1/meson.build b/src/ipa/rkisp1/meson.build
> index cf05cdb27943..e8b266f1ccca 100644
> --- a/src/ipa/rkisp1/meson.build
> +++ b/src/ipa/rkisp1/meson.build
> @@ -16,9 +16,8 @@ rkisp1_ipa_sources += rkisp1_ipa_algorithms
>  mod = shared_module(ipa_name,
>                      [rkisp1_ipa_sources, libcamera_generated_ipa_headers],
>                      name_prefix : '',
> -                    include_directories : [ipa_includes, libipa_includes],
> -                    dependencies : libcamera_private,
> -                    link_with : libipa,
> +                    include_directories : [ipa_includes],
> +                    dependencies : [libcamera_private, libipa_dep],
>                      install : true,
>                      install_dir : ipa_install_dir)
>  
> diff --git a/src/ipa/rpi/vc4/meson.build b/src/ipa/rpi/vc4/meson.build
> index 590e9197756d..63fc5925b06c 100644
> --- a/src/ipa/rpi/vc4/meson.build
> +++ b/src/ipa/rpi/vc4/meson.build
> @@ -15,7 +15,6 @@ vc4_ipa_libs = [
>  
>  vc4_ipa_includes = [
>      ipa_includes,
> -    libipa_includes,
>  ]
>  
>  vc4_ipa_sources = files([
> @@ -28,8 +27,7 @@ mod = shared_module(ipa_name,
>                      [vc4_ipa_sources, libcamera_generated_ipa_headers],
>                      name_prefix : '',
>                      include_directories : vc4_ipa_includes,
> -                    dependencies : vc4_ipa_deps,
> -                    link_with : libipa,
> +                    dependencies : [vc4_ipa_deps, libipa_dep],
>                      link_whole : vc4_ipa_libs,
>                      install : true,
>                      install_dir : ipa_install_dir)
> diff --git a/src/ipa/simple/meson.build b/src/ipa/simple/meson.build
> index 44b5f1d70cd3..33d1c96aa4f2 100644
> --- a/src/ipa/simple/meson.build
> +++ b/src/ipa/simple/meson.build
> @@ -10,9 +10,8 @@ soft_simple_sources = files([
>  mod = shared_module(ipa_name,
>                      [soft_simple_sources, libcamera_generated_ipa_headers],
>                      name_prefix : '',
> -                    include_directories : [ipa_includes, libipa_includes],
> -                    dependencies : libcamera_private,
> -                    link_with : libipa,
> +                    include_directories : [ipa_includes],
> +                    dependencies : [libcamera_private, libipa_dep],
>                      install : true,
>                      install_dir : ipa_install_dir)
>  
> diff --git a/src/ipa/vimc/meson.build b/src/ipa/vimc/meson.build
> index 264a2d9a8964..d0b63eddd5f6 100644
> --- a/src/ipa/vimc/meson.build
> +++ b/src/ipa/vimc/meson.build
> @@ -5,9 +5,8 @@ ipa_name = 'ipa_vimc'
>  mod = shared_module(ipa_name,
>                      ['vimc.cpp', libcamera_generated_ipa_headers],
>                      name_prefix : '',
> -                    include_directories : [ipa_includes, libipa_includes],
> -                    dependencies : libcamera_private,
> -                    link_with : libipa,
> +                    include_directories : [ipa_includes],
> +                    dependencies : [libcamera_private, libipa_dep],
>                      install : true,
>                      install_dir : ipa_install_dir)
>  
> diff --git a/test/ipa/meson.build b/test/ipa/meson.build
> index dc956284c4b1..fe21ca58b64f 100644
> --- a/test/ipa/meson.build
> +++ b/test/ipa/meson.build
> @@ -9,9 +9,9 @@ ipa_test = [
>  
>  foreach test : ipa_test
>      exe = executable(test['name'], test['sources'], libcamera_generated_ipa_headers,
> -                     dependencies : libcamera_private,
> -                     link_with : [libipa, test_libraries],
> -                     include_directories : [libipa_includes, test_includes_internal])
> +                     dependencies : [libcamera_private, libipa_dep],
> +                     link_with : [test_libraries],
> +                     include_directories : [test_includes_internal])
>  
>      test(test['name'], exe, suite : 'ipa')
>  endforeach
> diff --git a/test/ipa/rkisp1/meson.build b/test/ipa/rkisp1/meson.build
> index 5ffc5dd607b6..5b08e2939ce6 100644
> --- a/test/ipa/rkisp1/meson.build
> +++ b/test/ipa/rkisp1/meson.build
> @@ -6,9 +6,9 @@ rkisp1_ipa_test = [
>  
>  foreach test : rkisp1_ipa_test
>      exe = executable(test['name'], test['sources'], libcamera_generated_ipa_headers,
> -                     dependencies : libcamera_private,
> -                     link_with : [libipa, test_libraries],
> -                     include_directories : [libipa_includes, test_includes_internal,
> +                     dependencies : [libcamera_private, libipa_dep],
> +                     link_with : [test_libraries],
> +                     include_directories : [test_includes_internal,
>                                              '../../../src/ipa/rkisp1/'])
>  
>      test(test['name'], exe, suite : 'ipa')
> 
> base-commit: f3caea0ff7e63b529c9464f911162aa457e9b858
> -- 
> Regards,
> 
> Laurent Pinchart
>
Barnabás Pőcze June 11, 2024, 1:40 p.m. UTC | #3
Hi


2024. június 11., kedd 14:42 keltezéssel, Laurent Pinchart <laurent.pinchart@ideasonboard.com> írta:

> Many build targets link with libipa and need libipa_includes. Group them
> in a libipa_dep dependency object to simplify the users.
> 
> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> ---
>  src/ipa/ipu3/meson.build    | 5 ++---
>  src/ipa/libipa/meson.build  | 4 ++++
>  src/ipa/rkisp1/meson.build  | 5 ++---
>  src/ipa/rpi/vc4/meson.build | 4 +---
>  src/ipa/simple/meson.build  | 5 ++---
>  src/ipa/vimc/meson.build    | 5 ++---
>  test/ipa/meson.build        | 6 +++---
>  test/ipa/rkisp1/meson.build | 6 +++---
>  8 files changed, 19 insertions(+), 21 deletions(-)
> 
> diff --git a/src/ipa/ipu3/meson.build b/src/ipa/ipu3/meson.build
> index 66c398432d43..e76f97c07c87 100644
> --- a/src/ipa/ipu3/meson.build
> +++ b/src/ipa/ipu3/meson.build
> @@ -15,9 +15,8 @@ ipu3_ipa_sources += ipu3_ipa_algorithms
>  mod = shared_module(ipa_name,
>                      [ipu3_ipa_sources, libcamera_generated_ipa_headers],
>                      name_prefix : '',
> -                    include_directories : [ipa_includes, libipa_includes],
> -                    dependencies : libcamera_private,
> -                    link_with : libipa,
> +                    include_directories : [ipa_includes],
> +                    dependencies : [libcamera_private, libipa_dep],
>                      install : true,
>                      install_dir : ipa_install_dir)
> 
> diff --git a/src/ipa/libipa/meson.build b/src/ipa/libipa/meson.build
> index 8ec9c7847348..7f038c90cd87 100644
> --- a/src/ipa/libipa/meson.build
> +++ b/src/ipa/libipa/meson.build
> @@ -27,3 +27,7 @@ libipa_includes = include_directories('..')
>  libipa = static_library('ipa', [libipa_sources, libipa_headers],
>                          include_directories : ipa_includes,
>                          dependencies : libcamera_private)
> +
> +libipa_dep = declare_dependency(sources : libipa_headers,

Is this `sources` argument necessary?


Regards,
Barnabás Pőcze


> +                                include_directories : libipa_includes,
> +                                link_with : libipa)
> [...]
Laurent Pinchart June 11, 2024, 2:25 p.m. UTC | #4
On Tue, Jun 11, 2024 at 01:40:55PM +0000, Barnabás Pőcze wrote:
> 2024. június 11., kedd 14:42 keltezéssel, Laurent Pinchart írta:
> 
> > Many build targets link with libipa and need libipa_includes. Group them
> > in a libipa_dep dependency object to simplify the users.
> > 
> > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> > ---
> >  src/ipa/ipu3/meson.build    | 5 ++---
> >  src/ipa/libipa/meson.build  | 4 ++++
> >  src/ipa/rkisp1/meson.build  | 5 ++---
> >  src/ipa/rpi/vc4/meson.build | 4 +---
> >  src/ipa/simple/meson.build  | 5 ++---
> >  src/ipa/vimc/meson.build    | 5 ++---
> >  test/ipa/meson.build        | 6 +++---
> >  test/ipa/rkisp1/meson.build | 6 +++---
> >  8 files changed, 19 insertions(+), 21 deletions(-)
> > 
> > diff --git a/src/ipa/ipu3/meson.build b/src/ipa/ipu3/meson.build
> > index 66c398432d43..e76f97c07c87 100644
> > --- a/src/ipa/ipu3/meson.build
> > +++ b/src/ipa/ipu3/meson.build
> > @@ -15,9 +15,8 @@ ipu3_ipa_sources += ipu3_ipa_algorithms
> >  mod = shared_module(ipa_name,
> >                      [ipu3_ipa_sources, libcamera_generated_ipa_headers],
> >                      name_prefix : '',
> > -                    include_directories : [ipa_includes, libipa_includes],
> > -                    dependencies : libcamera_private,
> > -                    link_with : libipa,
> > +                    include_directories : [ipa_includes],
> > +                    dependencies : [libcamera_private, libipa_dep],
> >                      install : true,
> >                      install_dir : ipa_install_dir)
> > 
> > diff --git a/src/ipa/libipa/meson.build b/src/ipa/libipa/meson.build
> > index 8ec9c7847348..7f038c90cd87 100644
> > --- a/src/ipa/libipa/meson.build
> > +++ b/src/ipa/libipa/meson.build
> > @@ -27,3 +27,7 @@ libipa_includes = include_directories('..')
> >  libipa = static_library('ipa', [libipa_sources, libipa_headers],
> >                          include_directories : ipa_includes,
> >                          dependencies : libcamera_private)
> > +
> > +libipa_dep = declare_dependency(sources : libipa_headers,
> 
> Is this `sources` argument necessary?

Probably not, as we don't generate any of those headers. They shouldn't
hurt though, as the dependency on sources and headers is already there
implicitly, through 'link_with: libipa'. Should I drop the sources here
or keep them to be ready for code generation in the future ?  :-)

> > +                                include_directories : libipa_includes,
> > +                                link_with : libipa)
> > [...]
Barnabás Pőcze June 11, 2024, 9:24 p.m. UTC | #5
2024. június 11., kedd 16:25 keltezéssel, Laurent Pinchart <laurent.pinchart@ideasonboard.com> írta:

> On Tue, Jun 11, 2024 at 01:40:55PM +0000, Barnabás Pőcze wrote:
> > 2024. június 11., kedd 14:42 keltezéssel, Laurent Pinchart írta:
> >
> > > Many build targets link with libipa and need libipa_includes. Group them
> > > in a libipa_dep dependency object to simplify the users.
> > >
> > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> > > ---
> > >  src/ipa/ipu3/meson.build    | 5 ++---
> > >  src/ipa/libipa/meson.build  | 4 ++++
> > >  src/ipa/rkisp1/meson.build  | 5 ++---
> > >  src/ipa/rpi/vc4/meson.build | 4 +---
> > >  src/ipa/simple/meson.build  | 5 ++---
> > >  src/ipa/vimc/meson.build    | 5 ++---
> > >  test/ipa/meson.build        | 6 +++---
> > >  test/ipa/rkisp1/meson.build | 6 +++---
> > >  8 files changed, 19 insertions(+), 21 deletions(-)
> > >
> > > diff --git a/src/ipa/ipu3/meson.build b/src/ipa/ipu3/meson.build
> > > index 66c398432d43..e76f97c07c87 100644
> > > --- a/src/ipa/ipu3/meson.build
> > > +++ b/src/ipa/ipu3/meson.build
> > > @@ -15,9 +15,8 @@ ipu3_ipa_sources += ipu3_ipa_algorithms
> > >  mod = shared_module(ipa_name,
> > >                      [ipu3_ipa_sources, libcamera_generated_ipa_headers],
> > >                      name_prefix : '',
> > > -                    include_directories : [ipa_includes, libipa_includes],
> > > -                    dependencies : libcamera_private,
> > > -                    link_with : libipa,
> > > +                    include_directories : [ipa_includes],
> > > +                    dependencies : [libcamera_private, libipa_dep],
> > >                      install : true,
> > >                      install_dir : ipa_install_dir)
> > >
> > > diff --git a/src/ipa/libipa/meson.build b/src/ipa/libipa/meson.build
> > > index 8ec9c7847348..7f038c90cd87 100644
> > > --- a/src/ipa/libipa/meson.build
> > > +++ b/src/ipa/libipa/meson.build
> > > @@ -27,3 +27,7 @@ libipa_includes = include_directories('..')
> > >  libipa = static_library('ipa', [libipa_sources, libipa_headers],
> > >                          include_directories : ipa_includes,
> > >                          dependencies : libcamera_private)
> > > +
> > > +libipa_dep = declare_dependency(sources : libipa_headers,
> >
> > Is this `sources` argument necessary?
> 
> Probably not, as we don't generate any of those headers. They shouldn't
> hurt though, as the dependency on sources and headers is already there
> implicitly, through 'link_with: libipa'. Should I drop the sources here
> or keep them to be ready for code generation in the future ?  :-)

It was just unexpected for me to see it because I hadn't seen anything that
would necessitate it, so I would omit it. But as you said, it does not change anything now.


Regards,
Barnabás Pőcze

> 
> > > +                                include_directories : libipa_includes,
> > > +                                link_with : libipa)
> > > [...]
> 
> --
> Regards,
> 
> Laurent Pinchart
Barnabás Pőcze June 11, 2024, 9:28 p.m. UTC | #6
2024. június 11., kedd 23:24 keltezéssel, Barnabás Pőcze <pobrn@protonmail.com> írta:

> 2024. június 11., kedd 16:25 keltezéssel, Laurent Pinchart <laurent.pinchart@ideasonboard.com> írta:
> 
> > On Tue, Jun 11, 2024 at 01:40:55PM +0000, Barnabás Pőcze wrote:
> > > 2024. június 11., kedd 14:42 keltezéssel, Laurent Pinchart írta:
> > >
> > > > Many build targets link with libipa and need libipa_includes. Group them
> > > > in a libipa_dep dependency object to simplify the users.
> > > >
> > > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> > > > [...]
> > > > diff --git a/src/ipa/libipa/meson.build b/src/ipa/libipa/meson.build
> > > > index 8ec9c7847348..7f038c90cd87 100644
> > > > --- a/src/ipa/libipa/meson.build
> > > > +++ b/src/ipa/libipa/meson.build
> > > > @@ -27,3 +27,7 @@ libipa_includes = include_directories('..')
> > > >  libipa = static_library('ipa', [libipa_sources, libipa_headers],
> > > >                          include_directories : ipa_includes,
> > > >                          dependencies : libcamera_private)
> > > > +
> > > > +libipa_dep = declare_dependency(sources : libipa_headers,
> > >
> > > Is this `sources` argument necessary?
> >
> > Probably not, as we don't generate any of those headers. They shouldn't
> > hurt though, as the dependency on sources and headers is already there
> > implicitly, through 'link_with: libipa'. Should I drop the sources here
> > or keep them to be ready for code generation in the future ?  :-)
> 
> It was just unexpected for me to see it because I hadn't seen anything that
> would necessitate it, so I would omit it. But as you said, it does not change anything now.
> [...]

Oops, never mind, I haven't noticed this change had already been merged.


Regards,
Barnabás Pőcze
Laurent Pinchart June 11, 2024, 9:30 p.m. UTC | #7
On Tue, Jun 11, 2024 at 09:28:52PM +0000, Barnabás Pőcze wrote:
> 2024. június 11., kedd 23:24 keltezéssel, Barnabás Pőcze <pobrn@protonmail.com> írta:
> 
> > 2024. június 11., kedd 16:25 keltezéssel, Laurent Pinchart <laurent.pinchart@ideasonboard.com> írta:
> > 
> > > On Tue, Jun 11, 2024 at 01:40:55PM +0000, Barnabás Pőcze wrote:
> > > > 2024. június 11., kedd 14:42 keltezéssel, Laurent Pinchart írta:
> > > >
> > > > > Many build targets link with libipa and need libipa_includes. Group them
> > > > > in a libipa_dep dependency object to simplify the users.
> > > > >
> > > > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> > > > > [...]
> > > > > diff --git a/src/ipa/libipa/meson.build b/src/ipa/libipa/meson.build
> > > > > index 8ec9c7847348..7f038c90cd87 100644
> > > > > --- a/src/ipa/libipa/meson.build
> > > > > +++ b/src/ipa/libipa/meson.build
> > > > > @@ -27,3 +27,7 @@ libipa_includes = include_directories('..')
> > > > >  libipa = static_library('ipa', [libipa_sources, libipa_headers],
> > > > >                          include_directories : ipa_includes,
> > > > >                          dependencies : libcamera_private)
> > > > > +
> > > > > +libipa_dep = declare_dependency(sources : libipa_headers,
> > > >
> > > > Is this `sources` argument necessary?
> > >
> > > Probably not, as we don't generate any of those headers. They shouldn't
> > > hurt though, as the dependency on sources and headers is already there
> > > implicitly, through 'link_with: libipa'. Should I drop the sources here
> > > or keep them to be ready for code generation in the future ?  :-)
> > 
> > It was just unexpected for me to see it because I hadn't seen anything that
> > would necessitate it, so I would omit it. But as you said, it does not change anything now.
> > [...]
> 
> Oops, never mind, I haven't noticed this change had already been merged.

I can still send a fix on top :-) Your reviews are appreciated, even
after patches get merged.

Patch
diff mbox series

diff --git a/src/ipa/ipu3/meson.build b/src/ipa/ipu3/meson.build
index 66c398432d43..e76f97c07c87 100644
--- a/src/ipa/ipu3/meson.build
+++ b/src/ipa/ipu3/meson.build
@@ -15,9 +15,8 @@  ipu3_ipa_sources += ipu3_ipa_algorithms
 mod = shared_module(ipa_name,
                     [ipu3_ipa_sources, libcamera_generated_ipa_headers],
                     name_prefix : '',
-                    include_directories : [ipa_includes, libipa_includes],
-                    dependencies : libcamera_private,
-                    link_with : libipa,
+                    include_directories : [ipa_includes],
+                    dependencies : [libcamera_private, libipa_dep],
                     install : true,
                     install_dir : ipa_install_dir)
 
diff --git a/src/ipa/libipa/meson.build b/src/ipa/libipa/meson.build
index 8ec9c7847348..7f038c90cd87 100644
--- a/src/ipa/libipa/meson.build
+++ b/src/ipa/libipa/meson.build
@@ -27,3 +27,7 @@  libipa_includes = include_directories('..')
 libipa = static_library('ipa', [libipa_sources, libipa_headers],
                         include_directories : ipa_includes,
                         dependencies : libcamera_private)
+
+libipa_dep = declare_dependency(sources : libipa_headers,
+                                include_directories : libipa_includes,
+                                link_with : libipa)
diff --git a/src/ipa/rkisp1/meson.build b/src/ipa/rkisp1/meson.build
index cf05cdb27943..e8b266f1ccca 100644
--- a/src/ipa/rkisp1/meson.build
+++ b/src/ipa/rkisp1/meson.build
@@ -16,9 +16,8 @@  rkisp1_ipa_sources += rkisp1_ipa_algorithms
 mod = shared_module(ipa_name,
                     [rkisp1_ipa_sources, libcamera_generated_ipa_headers],
                     name_prefix : '',
-                    include_directories : [ipa_includes, libipa_includes],
-                    dependencies : libcamera_private,
-                    link_with : libipa,
+                    include_directories : [ipa_includes],
+                    dependencies : [libcamera_private, libipa_dep],
                     install : true,
                     install_dir : ipa_install_dir)
 
diff --git a/src/ipa/rpi/vc4/meson.build b/src/ipa/rpi/vc4/meson.build
index 590e9197756d..63fc5925b06c 100644
--- a/src/ipa/rpi/vc4/meson.build
+++ b/src/ipa/rpi/vc4/meson.build
@@ -15,7 +15,6 @@  vc4_ipa_libs = [
 
 vc4_ipa_includes = [
     ipa_includes,
-    libipa_includes,
 ]
 
 vc4_ipa_sources = files([
@@ -28,8 +27,7 @@  mod = shared_module(ipa_name,
                     [vc4_ipa_sources, libcamera_generated_ipa_headers],
                     name_prefix : '',
                     include_directories : vc4_ipa_includes,
-                    dependencies : vc4_ipa_deps,
-                    link_with : libipa,
+                    dependencies : [vc4_ipa_deps, libipa_dep],
                     link_whole : vc4_ipa_libs,
                     install : true,
                     install_dir : ipa_install_dir)
diff --git a/src/ipa/simple/meson.build b/src/ipa/simple/meson.build
index 44b5f1d70cd3..33d1c96aa4f2 100644
--- a/src/ipa/simple/meson.build
+++ b/src/ipa/simple/meson.build
@@ -10,9 +10,8 @@  soft_simple_sources = files([
 mod = shared_module(ipa_name,
                     [soft_simple_sources, libcamera_generated_ipa_headers],
                     name_prefix : '',
-                    include_directories : [ipa_includes, libipa_includes],
-                    dependencies : libcamera_private,
-                    link_with : libipa,
+                    include_directories : [ipa_includes],
+                    dependencies : [libcamera_private, libipa_dep],
                     install : true,
                     install_dir : ipa_install_dir)
 
diff --git a/src/ipa/vimc/meson.build b/src/ipa/vimc/meson.build
index 264a2d9a8964..d0b63eddd5f6 100644
--- a/src/ipa/vimc/meson.build
+++ b/src/ipa/vimc/meson.build
@@ -5,9 +5,8 @@  ipa_name = 'ipa_vimc'
 mod = shared_module(ipa_name,
                     ['vimc.cpp', libcamera_generated_ipa_headers],
                     name_prefix : '',
-                    include_directories : [ipa_includes, libipa_includes],
-                    dependencies : libcamera_private,
-                    link_with : libipa,
+                    include_directories : [ipa_includes],
+                    dependencies : [libcamera_private, libipa_dep],
                     install : true,
                     install_dir : ipa_install_dir)
 
diff --git a/test/ipa/meson.build b/test/ipa/meson.build
index dc956284c4b1..fe21ca58b64f 100644
--- a/test/ipa/meson.build
+++ b/test/ipa/meson.build
@@ -9,9 +9,9 @@  ipa_test = [
 
 foreach test : ipa_test
     exe = executable(test['name'], test['sources'], libcamera_generated_ipa_headers,
-                     dependencies : libcamera_private,
-                     link_with : [libipa, test_libraries],
-                     include_directories : [libipa_includes, test_includes_internal])
+                     dependencies : [libcamera_private, libipa_dep],
+                     link_with : [test_libraries],
+                     include_directories : [test_includes_internal])
 
     test(test['name'], exe, suite : 'ipa')
 endforeach
diff --git a/test/ipa/rkisp1/meson.build b/test/ipa/rkisp1/meson.build
index 5ffc5dd607b6..5b08e2939ce6 100644
--- a/test/ipa/rkisp1/meson.build
+++ b/test/ipa/rkisp1/meson.build
@@ -6,9 +6,9 @@  rkisp1_ipa_test = [
 
 foreach test : rkisp1_ipa_test
     exe = executable(test['name'], test['sources'], libcamera_generated_ipa_headers,
-                     dependencies : libcamera_private,
-                     link_with : [libipa, test_libraries],
-                     include_directories : [libipa_includes, test_includes_internal,
+                     dependencies : [libcamera_private, libipa_dep],
+                     link_with : [test_libraries],
+                     include_directories : [test_includes_internal,
                                             '../../../src/ipa/rkisp1/'])
 
     test(test['name'], exe, suite : 'ipa')