From 0d3a5ecb231956876009ea2332d9ca13fd20c7f9 Mon Sep 17 00:00:00 2001
From: Florian Fischer <florian.fl.fischer@fau.de>
Date: Mon, 22 Feb 2021 17:00:54 +0100
Subject: [PATCH] [meson] only build fsearch if walk_dir compiles and links

---
 apps/fsearch/meson.build | 27 +++++++++++++++++----------
 1 file changed, 17 insertions(+), 10 deletions(-)

diff --git a/apps/fsearch/meson.build b/apps/fsearch/meson.build
index 9dc41f5c..68a9fd10 100644
--- a/apps/fsearch/meson.build
+++ b/apps/fsearch/meson.build
@@ -1,11 +1,18 @@
-fsearch_exe = executable(
-  'fsearch',
-  'fsearch.cpp',
-  dependencies: emper_dep,
-)
+walk_dir_code = '''#include <filesystem>
+int main() { auto it = std::filesystem::recursive_directory_iterator("."); }
+'''
 
-fsearch_callback_exe = executable(
-  'fsearch_callback',
-  'fsearch_callback.cpp',
-  dependencies: emper_dep,
-)
+does_link = cpp_compiler.links(walk_dir_code, args: '--std=c++2a', name : 'walk_dir')
+if does_link
+	fsearch_exe = executable(
+	  'fsearch',
+	  'fsearch.cpp',
+	  dependencies: emper_dep,
+	)
+
+	fsearch_callback_exe = executable(
+	  'fsearch_callback',
+	  'fsearch_callback.cpp',
+	  dependencies: emper_dep,
+	)
+endif
-- 
GitLab