1*e5dd7070Spatrickinclude(CheckIncludeFiles) 2*e5dd7070Spatrick 3*e5dd7070Spatrickset(LLVM_LINK_COMPONENTS support) 4*e5dd7070Spatrick 5*e5dd7070Spatrickset(DIRECTORY_WATCHER_SOURCES DirectoryScanner.cpp) 6*e5dd7070Spatrickset(DIRECTORY_WATCHER_LINK_LIBS "") 7*e5dd7070Spatrick 8*e5dd7070Spatrickif(APPLE) 9*e5dd7070Spatrick check_include_files("CoreServices/CoreServices.h" HAVE_CORESERVICES) 10*e5dd7070Spatrick if(HAVE_CORESERVICES) 11*e5dd7070Spatrick list(APPEND DIRECTORY_WATCHER_SOURCES mac/DirectoryWatcher-mac.cpp) 12*e5dd7070Spatrick set(DIRECTORY_WATCHER_LINK_LIBS "-framework CoreServices") 13*e5dd7070Spatrick endif() 14*e5dd7070Spatrickelseif(CMAKE_SYSTEM_NAME MATCHES "Linux") 15*e5dd7070Spatrick check_include_files("sys/inotify.h" HAVE_INOTIFY) 16*e5dd7070Spatrick if(HAVE_INOTIFY) 17*e5dd7070Spatrick list(APPEND DIRECTORY_WATCHER_SOURCES linux/DirectoryWatcher-linux.cpp) 18*e5dd7070Spatrick find_package(Threads REQUIRED) 19*e5dd7070Spatrick endif() 20*e5dd7070Spatrickelseif(CMAKE_SYSTEM_NAME MATCHES "Windows") 21*e5dd7070Spatrick list(APPEND DIRECTORY_WATCHER_SOURCES windows/DirectoryWatcher-windows.cpp) 22*e5dd7070Spatrickelse() 23*e5dd7070Spatrick list(APPEND DIRECTORY_WATCHER_SOURCES default/DirectoryWatcher-not-implemented.cpp) 24*e5dd7070Spatrickendif() 25*e5dd7070Spatrick 26*e5dd7070Spatrickadd_clang_library(clangDirectoryWatcher 27*e5dd7070Spatrick ${DIRECTORY_WATCHER_SOURCES} 28*e5dd7070Spatrick ) 29*e5dd7070Spatrick 30*e5dd7070Spatricktarget_link_libraries(clangDirectoryWatcher PUBLIC ${CMAKE_THREAD_LIBS_INIT}) 31*e5dd7070Spatricktarget_link_libraries(clangDirectoryWatcher PRIVATE ${DIRECTORY_WATCHER_LINK_LIBS}) 32