aboutsummaryrefslogtreecommitdiff
path: root/dep/efsw
diff options
context:
space:
mode:
Diffstat (limited to 'dep/efsw')
-rw-r--r--dep/efsw/CMakeLists.txt215
1 files changed, 122 insertions, 93 deletions
diff --git a/dep/efsw/CMakeLists.txt b/dep/efsw/CMakeLists.txt
index 555f1b303a0..2e6da4168ea 100644
--- a/dep/efsw/CMakeLists.txt
+++ b/dep/efsw/CMakeLists.txt
@@ -1,121 +1,150 @@
-if (BUILD_SHARED_LIBS)
- set(EFSW_CPP_SOURCE
- src/efsw/Atomic.hpp
- src/efsw/base.hpp
+add_library(efsw STATIC)
+
+if(WIN32)
+ set(efsw_platform_dir "win")
+else()
+ set(efsw_platform_dir "posix")
+endif()
+
+target_sources(efsw
+ PRIVATE
src/efsw/Debug.cpp
- src/efsw/Debug.hpp
src/efsw/DirectorySnapshot.cpp
- src/efsw/DirectorySnapshot.hpp
src/efsw/DirectorySnapshotDiff.cpp
- src/efsw/DirectorySnapshotDiff.hpp
src/efsw/DirWatcherGeneric.cpp
- src/efsw/DirWatcherGeneric.hpp
src/efsw/FileInfo.cpp
- src/efsw/FileInfo.hpp
src/efsw/FileSystem.cpp
- src/efsw/FileSystem.hpp
src/efsw/FileWatcher.cpp
src/efsw/FileWatcherCWrapper.cpp
src/efsw/FileWatcherGeneric.cpp
- src/efsw/FileWatcherGeneric.hpp
src/efsw/FileWatcherImpl.cpp
- src/efsw/FileWatcherImpl.hpp
- src/efsw/Lock.hpp
src/efsw/Log.cpp
- src/efsw/Mutex.hpp
- src/efsw/sophist.h
src/efsw/String.cpp
- src/efsw/String.hpp
src/efsw/System.cpp
- src/efsw/System.hpp
- src/efsw/Thread.hpp
- src/efsw/Utf.hpp
src/efsw/Watcher.cpp
- src/efsw/Watcher.hpp
src/efsw/WatcherGeneric.cpp
- src/efsw/WatcherGeneric.hpp
- src/efsw/platform/platformimpl.hpp
- )
+ src/efsw/platform/${efsw_platform_dir}/FileSystemImpl.cpp
+ src/efsw/platform/${efsw_platform_dir}/SystemImpl.cpp)
- if (WIN32)
- list (APPEND EFSW_CPP_SOURCE
- src/efsw/platform/win/FileSystemImpl.cpp
- src/efsw/platform/win/FileSystemImpl.hpp
- src/efsw/platform/win/SystemImpl.cpp
- src/efsw/platform/win/SystemImpl.hpp)
- else ()
- list (APPEND EFSW_CPP_SOURCE
- src/efsw/platform/posix/FileSystemImpl.cpp
- src/efsw/platform/posix/FileSystemImpl.hpp
- src/efsw/platform/posix/SystemImpl.cpp
- src/efsw/platform/posix/SystemImpl.hpp)
- endif()
+target_sources(efsw
+ PUBLIC
+ FILE_SET HEADERS
+ BASE_DIRS include
+ FILES
+ include/efsw/efsw.h
+ include/efsw/efsw.hpp)
- if (APPLE)
- list (APPEND EFSW_CPP_SOURCE
+target_sources(efsw
+ PRIVATE
+ FILE_SET efsw_private_headers
+ TYPE HEADERS
+ BASE_DIRS src
+ FILES
+ src/efsw/Atomic.hpp
+ src/efsw/base.hpp
+ src/efsw/Debug.hpp
+ src/efsw/DirectorySnapshot.hpp
+ src/efsw/DirectorySnapshotDiff.hpp
+ src/efsw/DirWatcherGeneric.hpp
+ src/efsw/FileInfo.hpp
+ src/efsw/FileSystem.hpp
+ src/efsw/FileWatcherGeneric.hpp
+ src/efsw/FileWatcherImpl.hpp
+ src/efsw/Lock.hpp
+ src/efsw/Mutex.hpp
+ src/efsw/sophist.h
+ src/efsw/String.hpp
+ src/efsw/System.hpp
+ src/efsw/Thread.hpp
+ src/efsw/Utf.hpp
+ src/efsw/Watcher.hpp
+ src/efsw/WatcherGeneric.hpp
+ src/efsw/platform/platformimpl.hpp
+ src/efsw/platform/${efsw_platform_dir}/FileSystemImpl.hpp
+ src/efsw/platform/${efsw_platform_dir}/SystemImpl.hpp)
+
+if (APPLE)
+ target_sources(efsw
+ PRIVATE
src/efsw/FileWatcherFSEvents.cpp
- src/efsw/FileWatcherFSEvents.hpp
src/efsw/FileWatcherKqueue.cpp
- src/efsw/FileWatcherKqueue.hpp
src/efsw/WatcherFSEvents.cpp
- src/efsw/WatcherFSEvents.hpp
- src/efsw/WatcherKqueue.cpp
- src/efsw/WatcherKqueue.hpp)
- set(OPTIONAL_LINK_LIBRARIES "-framework CoreFoundation" "-framework CoreServices")
- elseif (WIN32)
- list (APPEND EFSW_CPP_SOURCE
+ src/efsw/WatcherKqueue.cpp)
+ target_sources(efsw
+ PRIVATE
+ FILE_SET efsw_private_headers
+ TYPE HEADERS
+ BASE_DIRS src
+ FILES
+ src/efsw/FileWatcherFSEvents.hpp
+ src/efsw/FileWatcherKqueue.hpp
+ src/efsw/WatcherFSEvents.hpp
+ src/efsw/WatcherKqueue.hpp)
+ target_link_libraries(efsw
+ PRIVATE
+ $<LINK_LIBRARY:FRAMEWORK,CoreFoundation>
+ $<LINK_LIBRARY:FRAMEWORK,CoreServices>)
+elseif (WIN32)
+ target_sources(efsw
+ PRIVATE
src/efsw/FileWatcherWin32.cpp
- src/efsw/FileWatcherWin32.hpp
- src/efsw/WatcherWin32.cpp
- src/efsw/WatcherWin32.hpp)
- elseif (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
- list (APPEND EFSW_CPP_SOURCE
+ src/efsw/WatcherWin32.cpp)
+ target_sources(efsw
+ PRIVATE
+ FILE_SET efsw_private_headers
+ TYPE HEADERS
+ BASE_DIRS src
+ FILES
+ src/efsw/FileWatcherWin32.hpp
+ src/efsw/WatcherWin32.hpp)
+elseif (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+ target_sources(efsw
+ PRIVATE
src/efsw/FileWatcherInotify.cpp
- src/efsw/FileWatcherInotify.hpp
- src/efsw/WatcherInotify.cpp
- src/efsw/WatcherInotify.hpp)
- find_path(EFSW_INOTIFY_H
- NAMES
- sys/inotify.h
- NO_CACHE
- )
- if (EFSW_INOTIFY_H STREQUAL "EFSW_INOTIFY_H-NOTFOUND")
- list (APPEND EFSW_CPP_SOURCE
- src/efsw/inotify-nosys.h
- )
- set(OPTIONAL_COMPILE_DEFINITIONS "-DEFSW_INOTIFY_NOSYS")
- endif()
- elseif (${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD")
+ src/efsw/WatcherInotify.cpp)
+ target_sources(efsw
+ PRIVATE
+ FILE_SET efsw_private_headers
+ TYPE HEADERS
+ BASE_DIRS src
+ FILES
+ src/efsw/FileWatcherInotify.hpp
+ src/efsw/WatcherInotify.hpp)
+ find_path(EFSW_INOTIFY_H
+ NAMES
+ sys/inotify.h
+ NO_CACHE
+ )
+ if (EFSW_INOTIFY_H STREQUAL "EFSW_INOTIFY_H-NOTFOUND")
list (APPEND EFSW_CPP_SOURCE
- src/efsw/FileWatcherKqueue.cpp
- src/efsw/FileWatcherKqueue.hpp
- src/efsw/WatcherKqueue.cpp
- src/efsw/WatcherKqueue.hpp)
+ src/efsw/inotify-nosys.h
+ )
+ target_compile_definitions(efsw
+ PRIVATE
+ EFSW_INOTIFY_NOSYS)
endif()
-
- add_library(efsw STATIC ${EFSW_CPP_SOURCE})
-
- target_include_directories(efsw
- PUBLIC
- ${CMAKE_CURRENT_SOURCE_DIR}/include
+elseif (${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD")
+ target_sources(efsw
PRIVATE
- ${CMAKE_CURRENT_SOURCE_DIR}/src)
-
- target_compile_definitions(efsw
+ src/efsw/FileWatcherKqueue.cpp
+ src/efsw/WatcherKqueue.cpp)
+ target_sources(efsw
PRIVATE
- ${OPTIONAL_COMPILE_DEFINITIONS})
+ FILE_SET efsw_private_headers
+ TYPE HEADERS
+ BASE_DIRS src
+ FILES
+ src/efsw/FileWatcherKqueue.hpp
+ src/efsw/WatcherKqueue.hpp)
+endif()
- target_link_libraries(efsw
- PRIVATE
- trinity-dependency-interface
- PUBLIC
- threads
- ${OPTIONAL_LINK_LIBRARIES})
+target_link_libraries(efsw
+ PRIVATE
+ trinity-dependency-interface
+ PUBLIC
+ threads)
- set_target_properties(efsw
- PROPERTIES
- FOLDER
- "dep")
-else ()
- add_library(efsw INTERFACE IMPORTED GLOBAL)
-endif ()
+set_target_properties(efsw
+ PROPERTIES
+ FOLDER
+ "dep")