From cfb4f8c5fbc6fd8ad06bcfc6f91926b6d55d3766 Mon Sep 17 00:00:00 2001 From: Vedant Kumar Date: Thu, 23 Apr 2020 10:20:01 -0700 Subject: [PATCH] [DirectoryWatcher] Do not use FSEvents on non-macOS platforms The FSEvents APIs are available on iOS6+: however, the DirectoryWatcher code isn't wired up to really use FSEvents on embedded platforms. I've duplicated code from DirectoryWatcher-not-implemented.cpp here and used TargetConditionals instead of adding cmakery to check try_compile; I couldn't get that to work properly. --- .../mac/DirectoryWatcher-mac.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/clang/lib/DirectoryWatcher/mac/DirectoryWatcher-mac.cpp b/clang/lib/DirectoryWatcher/mac/DirectoryWatcher-mac.cpp index 7864fb76d160..bdc389516289 100644 --- a/clang/lib/DirectoryWatcher/mac/DirectoryWatcher-mac.cpp +++ b/clang/lib/DirectoryWatcher/mac/DirectoryWatcher-mac.cpp @@ -14,10 +14,13 @@ #include "llvm/Support/Error.h" #include "llvm/Support/Path.h" #include +#include using namespace llvm; using namespace clang; +#if TARGET_OS_OSX + static void stopFSEventStream(FSEventStreamRef); namespace { @@ -249,3 +252,17 @@ llvm::Expected> clang::DirectoryWatcher::creat return Result; } + +#else // TARGET_OS_OSX + +llvm::Expected> +clang::DirectoryWatcher::create( + StringRef Path, + std::function, bool)> Receiver, + bool WaitForInitialSync) { + return llvm::make_error( + "DirectoryWatcher is not implemented for this platform!", + llvm::inconvertibleErrorCode()); +} + +#endif // TARGET_OS_OSX