From cd5439fb97518d8bce0eb2af3f9562d6fd593acf Mon Sep 17 00:00:00 2001
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Date: Thu, 20 Oct 2022 01:11:57 +0300
Subject: apps: Move libevent dependency to src/apps/meson.build

libevent is a shared dependency between cam and lc-compliance, move it to
src/apps/. The shared dependency will be used to condition compilation
of source files in an upcoming application static library.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
---
 src/apps/cam/meson.build           |  4 +---
 src/apps/lc-compliance/meson.build |  3 +--
 src/apps/meson.build               | 10 ++++++++++
 3 files changed, 12 insertions(+), 5 deletions(-)

(limited to 'src/apps')

diff --git a/src/apps/cam/meson.build b/src/apps/cam/meson.build
index 06dbea06..4b6099dd 100644
--- a/src/apps/cam/meson.build
+++ b/src/apps/cam/meson.build
@@ -1,8 +1,6 @@
 # SPDX-License-Identifier: CC0-1.0
 
-libevent = dependency('libevent_pthreads', required : get_option('cam'))
-
-if not libevent.found()
+if opt_cam.disabled() or not libevent.found()
     cam_enabled = false
     subdir_done()
 endif
diff --git a/src/apps/lc-compliance/meson.build b/src/apps/lc-compliance/meson.build
index 8b57474b..05d622be 100644
--- a/src/apps/lc-compliance/meson.build
+++ b/src/apps/lc-compliance/meson.build
@@ -1,10 +1,9 @@
 # SPDX-License-Identifier: CC0-1.0
 
-libevent = dependency('libevent_pthreads', required : get_option('lc-compliance'))
 libgtest = dependency('gtest', required : get_option('lc-compliance'),
                       fallback : ['gtest', 'gtest_dep'])
 
-if not (libevent.found() and libgtest.found())
+if opt_lc_compliance.disabled() or not libevent.found() or not libgtest.found()
     lc_compliance_enabled = false
     subdir_done()
 endif
diff --git a/src/apps/meson.build b/src/apps/meson.build
index 9e4388bd..62cff67e 100644
--- a/src/apps/meson.build
+++ b/src/apps/meson.build
@@ -1,5 +1,15 @@
 # SPDX-License-Identifier: CC0-1.0
 
+opt_cam = get_option('cam')
+opt_lc_compliance = get_option('lc-compliance')
+
+# libevent is needed by cam and lc-compliance. As they are both feature options,
+# they can't be combined with simple boolean logic.
+libevent = dependency('libevent_pthreads', required : opt_cam)
+if not libevent.found()
+    libevent = dependency('libevent_pthreads', required : opt_lc_compliance)
+endif
+
 subdir('lc-compliance')
 
 subdir('cam')
-- 
cgit v1.2.1