diff --git a/apps/fsearch/meson.build b/apps/fsearch/meson.build
index 9dc41f5cd371ce8b35e49e38a193e21a98c557d1..68a9fd104a57380a525bb2171d2fc5a071682cfc 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