X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=CMake%2F_Include.cmake;h=7466b4cab006a29244b316b50c24ab5d7d642016;hb=refs%2Fheads%2Ftest%2Fpoll_timeout;hp=39442dc2901cfc5cd8b6499d85a0de5f64e06088;hpb=c6685a90ef02e4a1689cccd7baad48fdb0769563;p=awesomized%2Flibmemcached diff --git a/CMake/_Include.cmake b/CMake/_Include.cmake index 39442dc2..7466b4ca 100644 --- a/CMake/_Include.cmake +++ b/CMake/_Include.cmake @@ -1,6 +1,11 @@ include(_Configure) configure_init(${CMAKE_BINARY_DIR}/mem_config.h) +add_compile_definitions(${GLOBAL_DEFINITIONS}) +# list(TRANSFORM) requires >=3.12 +string(REPLACE ";" " -D" GLOBAL_DEFINITION_FLAGS "${GLOBAL_DEFINITIONS}") +set(GLOBAL_DEFINITION_FLAGS -D${GLOBAL_DEFINITION_FLAGS}) + if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME) include(CTest) endif() @@ -32,6 +37,7 @@ macro(check_symbol NAME HEADER) if(${ARGC} GREATER 1) string(APPEND CMAKE_REQUIRED_FLAGS " ${ARGV2}") endif() + list(APPEND CMAKE_REQUIRED_DEFINITIONS ${GLOBAL_DEFINITION_FLAGS}) check_symbol_exists(${NAME} ${HEADER} ${HAVE}) cmake_pop_check_state() endmacro() @@ -43,6 +49,7 @@ macro(check_cxx_symbol NAME HEADER) if(${ARGC} GREATER 1) string(APPEND CMAKE_REQUIRED_FLAGS " ${ARGN}") endif() + list(APPEND CMAKE_REQUIRED_DEFINITIONS ${GLOBAL_DEFINITION_FLAGS}) check_cxx_symbol_exists(${NAME} ${HEADER} ${HAVE}) cmake_pop_check_state() endmacro() @@ -54,6 +61,7 @@ macro(check_include HEADER) if(${ARGC} GREATER 1) string(APPEND CMAKE_REQUIRED_FLAGS " ${ARGN}") endif() + list(APPEND CMAKE_REQUIRED_DEFINITIONS ${GLOBAL_DEFINITION_FLAGS}) check_include_file(${HEADER} ${HAVE}) cmake_pop_check_state() endmacro() @@ -65,6 +73,7 @@ macro(check_cxx_include HEADER) if(${ARGC} GREATER 1) string(APPEND CMAKE_REQUIRED_FLAGS " ${ARGN}") endif() + list(APPEND CMAKE_REQUIRED_DEFINITIONS ${GLOBAL_DEFINITION_FLAGS}) check_include_file_cxx(${HEADER} ${HAVE}) cmake_pop_check_state() endmacro() @@ -76,18 +85,25 @@ macro(check_type TYPE) if(${ARGC} GREATER 1) list(APPEND CMAKE_EXTRA_INCLUDE_FILES ${ARGN}) endif() + list(APPEND CMAKE_REQUIRED_DEFINITIONS ${GLOBAL_DEFINITION_FLAGS}) check_type_size(${TYPE} ${HAVE}) cmake_pop_check_state() endmacro() include(CheckCSourceCompiles) macro(check_c_source SOURCE HAVE) configure_define(${HAVE}) + cmake_push_check_state() + list(APPEND CMAKE_REQUIRED_DEFINITIONS ${GLOBAL_DEFINITION_FLAGS}) check_c_source_compiles("${SOURCE}" ${HAVE}) + cmake_pop_check_state() endmacro() include(CheckCXXSourceCompiles) macro(check_cxx_source SOURCE HAVE) configure_define(${HAVE}) + cmake_push_check_state() + list(APPEND CMAKE_REQUIRED_DEFINITIONS ${GLOBAL_DEFINITION_FLAGS}) check_cxx_source_compiles("${SOURCE}" ${HAVE}) + cmake_pop_check_state() endmacro() include(CheckBacktrace) @@ -100,12 +116,26 @@ include(CheckThreads) include(CheckVisibility) include(InstallPublicHeaders) +function(pkgconfig_export VAR VAL) + get_property(PREV GLOBAL PROPERTY PKGCONFIG_${VAR}) + set_property(GLOBAL PROPERTY PKGCONFIG_${VAR} "${PREV} ${VAL}") +endfunction() +macro(pkgconfig_import VAR) + get_property(PKGCONFIG_${VAR} GLOBAL PROPERTY PKGCONFIG_${VAR}) +endmacro() + ## sasl configure_define_01(LIBMEMCACHED_WITH_SASL_SUPPORT) if(ENABLE_SASL) check_dependency(LIBSASL sasl2) if(HAVE_LIBSASL) set(LIBMEMCACHED_WITH_SASL_SUPPORT 1) + pkgconfig_export(REQUIRES libsasl2) + cmake_push_check_state() + set(CMAKE_REQUIRED_INCLUDES "${LIBSASL_INCLUDEDIR}") + set(CMAKE_REQUIRED_LIBRARIES "${LIBSASL_LIBRARIES}") + check_symbol(sasl_client_done sasl/sasl.h) + cmake_pop_check_state() endif() endif() @@ -134,8 +164,11 @@ check_type(in_port_t netinet/in.h) check_type(pid_t sys/types.h) check_type(ssize_t sys/types.h) check_type("struct msghdr" sys/socket.h) +check_type("struct timespec" time.h) check_cxx_symbol(abi::__cxa_demangle cxxabi.h) +check_symbol(CLOCK_MONOTONIC time.h) +check_symbol(clock_gettime time.h) check_symbol(ERESTART errno.h) check_symbol(fcntl fcntl.h) check_symbol(gettimeofday sys/time.h)