couchbase
Version:
The official Couchbase Node.js Client Library.
84 lines (74 loc) • 2.52 kB
Plain Text
include(CheckLibraryExists)
check_library_exists(m ceil "" HAVE_LIBM)
check_library_exists(rt clock_gettime "" HAVE_LIBRT)
if (HDR_LOG_ENABLED)
set(HDR_LOG_IMPLEMENTATION hdr_histogram_log.c)
set(HDR_ZLIB ZLIB::ZLIB)
else()
set(HDR_LOG_IMPLEMENTATION hdr_histogram_log_no_op.c)
set(HDR_ZLIB "")
endif()
set(HDR_HISTOGRAM_SOURCES
hdr_encoding.c
hdr_histogram.c
${HDR_LOG_IMPLEMENTATION}
hdr_interval_recorder.c
hdr_thread.c
hdr_time.c
hdr_writer_reader_phaser.c)
set(HDR_HISTOGRAM_PRIVATE_HEADERS
hdr_atomic.h
hdr_encoding.h
hdr_endian.h
hdr_tests.h
hdr_malloc.h)
set(HDR_HISTOGRAM_PUBLIC_HEADERS
hdr_histogram.h
hdr_histogram_log.h
hdr_interval_recorder.h
hdr_thread.h
hdr_time.h
hdr_writer_reader_phaser.h)
function(hdr_histogram_add_library NAME LIBRARY_TYPE DO_INSTALL)
add_library(${NAME} ${LIBRARY_TYPE}
${HDR_HISTOGRAM_SOURCES}
${HDR_HISTOGRAM_PRIVATE_HEADERS}
${HDR_HISTOGRAM_PUBLIC_HEADERS})
target_link_libraries(${NAME}
PRIVATE
# ZLIB::ZLIB
${HDR_ZLIB}
# $<$<BOOL:${ZLIB_FOUND}>ZLIB::ZLIB>
Threads::Threads
$<$<BOOL:${HAVE_LIBM}>:m>
$<$<BOOL:${HAVE_LIBRT}>:rt>
$<$<BOOL:${WIN32}>:ws2_32>)
target_include_directories(${NAME}
PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
if(DO_INSTALL)
install(
TARGETS ${NAME}
EXPORT ${PROJECT_NAME}-targets
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
endif()
endfunction()
option(HDR_HISTOGRAM_BUILD_SHARED "Build shared library" ON)
option(HDR_HISTOGRAM_INSTALL_SHARED "Install shared library" ON)
if(HDR_HISTOGRAM_BUILD_SHARED)
hdr_histogram_add_library(hdr_histogram SHARED ${HDR_HISTOGRAM_INSTALL_SHARED})
set_target_properties(hdr_histogram PROPERTIES
VERSION ${HDR_VERSION}
SOVERSION ${HDR_SOVERSION})
endif()
option(HDR_HISTOGRAM_BUILD_STATIC "Build static library" ON)
option(HDR_HISTOGRAM_INSTALL_STATIC "Install static library" ON)
if(HDR_HISTOGRAM_BUILD_STATIC)
hdr_histogram_add_library(hdr_histogram_static STATIC ${HDR_HISTOGRAM_INSTALL_STATIC})
endif()
install(
FILES ${HDR_HISTOGRAM_PUBLIC_HEADERS}
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/hdr)