X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=CMake%2F_Include.cmake;h=901375d70e7fddd431aa0ccadec5d82c1405bfa6;hb=643ac7a069265b26b0ba6ab0c11caa8b8d3a9977;hp=90ebc261b471b98ad893a62bc44d3219ef7132b0;hpb=d180295a76d7e43b357765a8a6434fdf5f7d3abd;p=awesomized%2Flibmemcached diff --git a/CMake/_Include.cmake b/CMake/_Include.cmake index 90ebc261..901375d7 100644 --- a/CMake/_Include.cmake +++ b/CMake/_Include.cmake @@ -1,8 +1,11 @@ -list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/CMake") - 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() @@ -34,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() @@ -45,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() @@ -56,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() @@ -67,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() @@ -78,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) @@ -102,12 +116,21 @@ 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) endif() endif() @@ -136,8 +159,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)