[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.
This commit is contained in:
Vedant Kumar 2020-04-23 10:20:01 -07:00
parent 517f0f14bf
commit cfb4f8c5fb
1 changed files with 17 additions and 0 deletions

View File

@ -14,10 +14,13 @@
#include "llvm/Support/Error.h"
#include "llvm/Support/Path.h"
#include <CoreServices/CoreServices.h>
#include <TargetConditionals.h>
using namespace llvm;
using namespace clang;
#if TARGET_OS_OSX
static void stopFSEventStream(FSEventStreamRef);
namespace {
@ -249,3 +252,17 @@ llvm::Expected<std::unique_ptr<DirectoryWatcher>> clang::DirectoryWatcher::creat
return Result;
}
#else // TARGET_OS_OSX
llvm::Expected<std::unique_ptr<DirectoryWatcher>>
clang::DirectoryWatcher::create(
StringRef Path,
std::function<void(llvm::ArrayRef<DirectoryWatcher::Event>, bool)> Receiver,
bool WaitForInitialSync) {
return llvm::make_error<llvm::StringError>(
"DirectoryWatcher is not implemented for this platform!",
llvm::inconvertibleErrorCode());
}
#endif // TARGET_OS_OSX