xref: /openbsd-src/gnu/llvm/clang/lib/DirectoryWatcher/CMakeLists.txt (revision e5dd70708596ae51455a0ffa086a00c5b29f8583)
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