From f305cacc9c442358acd2c604817206cf7eeaabe0 Mon Sep 17 00:00:00 2001
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Date: Tue, 11 Jun 2024 14:55:37 +0300
Subject: meson: Group libipa and libipa_includes in a dependency object

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: Kieran Bingham <kieran.bingham@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 66c39843..e76f97c0 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 7ce885da..b663afc7 100644
--- a/src/ipa/libipa/meson.build
+++ b/src/ipa/libipa/meson.build
@@ -25,3 +25,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 cf05cdb2..e8b266f1 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 590e9197..63fc5925 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 44b5f1d7..33d1c96a 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 264a2d9a..d0b63edd 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 dc956284..fe21ca58 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 5ffc5dd6..5b08e293 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')
-- 
cgit v1.2.1