1 add_library(libwatchmanclient INTERFACE)
3 include(ExternalProject)
7 get_target_property(BOOST_INCLUDE_DIR boost INTERFACE_INCLUDE_DIRECTORIES)
8 get_target_property(DOUBLE_CONVERSION_INCLUDE_DIR double-conversion INTERFACE_INCLUDE_DIRECTORIES)
9 get_target_property(FMT_INCLUDE_DIR fmt INTERFACE_INCLUDE_DIRECTORIES)
10 get_target_property(FOLLY_INCLUDE_DIR folly INTERFACE_INCLUDE_DIRECTORIES)
11 get_target_property(JEMALLOC_INCLUDE_DIR jemalloc INTERFACE_INCLUDE_DIRECTORIES)
13 set(WATCHMAN_DEPS folly boost fmt jemalloc double-conversion)
17 SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src/
20 "${CMAKE_COMMAND}" -E copy
21 "${CMAKE_CURRENT_SOURCE_DIR}/cppclient-CMakeLists.txt"
22 "watchman/cppclient/CMakeLists.txt"
23 SOURCE_SUBDIR watchman/cppclient
25 -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
26 -DCMAKE_INSTALL_INCLUDEDIR=include
27 -DCMAKE_INSTALL_LIBDIR=lib
29 -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
30 -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
31 -DCMAKE_OSX_SYSROOT=${CMAKE_OSX_SYSROOT}
32 -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
33 -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
35 "-DCMAKE_OSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET}"
36 "-DBOOST_INCLUDE_DIR=${BOOST_INCLUDE_DIR}"
37 "-DDOUBLE_CONVERSION_INCLUDE_DIR=${DOUBLE_CONVERSION_INCLUDE_DIR}"
38 "-DFMT_INCLUDE_DIR=${FMT_INCLUDE_DIR}"
39 "-DFOLLY_INCLUDE_DIR=${FOLLY_INCLUDE_DIR}"
40 "-DGLOG_INCLUDE_DIR=${GLOG_INCLUDE_DIR}"
41 "-DJEMALLOC_INCLUDE_DIR=${JEMALLOC_INCLUDE_DIR}"
42 "-DLIBEVENT_INCLUDE_DIR=${LIBEVENT_INCLUDE_DIR}"
43 "-DOPENSSL_INCLUDE_DIR=${OPENSSL_INCLUDE_DIR}"
44 DEPENDS ${WATCHMAN_DEPS}
48 find_package(libWatchmanClient)
49 if(WATCHMANCLIENT_INCLUDE_DIRS AND WATCHMANCLIENT_LIBRARIES)
50 target_include_directories(libwatchmanclient INTERFACE "${WATCHMANCLIENT_INCLUDE_DIRS}")
51 target_link_libraries(libwatchmanclient INTERFACE "${WATCHMANCLIENT_LIBRARIES}")
53 add_dependencies(libwatchmanclient bundled_watchman)
54 ExternalProject_Get_Property(bundled_watchman INSTALL_DIR)
55 target_include_directories(libwatchmanclient INTERFACE "${INSTALL_DIR}/include")
56 add_library(watchman_deps INTERFACE)
57 target_link_libraries(watchman_deps INTERFACE ${WATCHMAN_DEPS})
58 target_link_libraries(
61 "${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}watchmanclient${CMAKE_STATIC_LIBRARY_SUFFIX}"