include(SafeString)
include(CheckHeader)
+function(check_dependency_basic NAME LIB HEADER)
+ set(FOUND 1)
+ message("-- Checking for library '${LIB}' with header '${HEADER}' ...")
+ find_library(LIB${LIB} NAMES ${LIB})
+ if(NOT LIB${LIB})
+ set(FOUND 0)
+ endif()
+ if(HEADER)
+ safe_string(${HEADER} HEADER_CONST)
+ check_header(${HEADER})
+ if(NOT HAVE_${HEADER_CONST})
+ set(FOUND 0)
+ else()
+ find_path(${HEADER_CONST}_ROOT ${HEADER})
+ if(NOT ${HEADER_CONST}_ROOT)
+ set(FOUND 0)
+ endif()
+ endif()
+ endif()
+ if(FOUND)
+ message("-- Found library '${LIB${LIB}}'")
+ message("-- Found include '${${HEADER_CONST}_ROOT}'")
+ else()
+ message("-- No library '${LIB}' found")
+ endif()
+ set(${NAME} ${FOUND} PARENT_SCOPE)
+ set(${NAME}_LIBRARIES ${LIB${LIB}} PARENT_SCOPE)
+ set(${NAME}_INCLUDEDIR ${${HEADER_CONST}_ROOT} PARENT_SCOPE)
+endfunction()
+
function(check_dependency NAME LIB HEADER)
if(PKG_CONFIG_FOUND)
pkg_check_modules(${NAME} lib${LIB}${ARGN})
if(NOT ${NAME}_FOUND)
pkg_check_modules(${NAME} ${LIB}${ARGN})
endif()
- set(${NAME} ${${NAME}_FOUND} PARENT_SCOPE)
- set(${NAME}_LIBRARIES ${${NAME}_LDFLAGS} PARENT_SCOPE)
- set(${NAME}_INCLUDEDIR ${${NAME}_INCLUDEDIR} PARENT_SCOPE)
+ if(NOT ${NAME}_FOUND)
+ check_dependency_basic(${NAME} ${LIB} ${HEADER})
+ else()
+ set(${NAME} ${${NAME}_FOUND} PARENT_SCOPE)
+ set(${NAME}_LIBRARIES ${${NAME}_LDFLAGS} PARENT_SCOPE)
+ set(${NAME}_INCLUDEDIR ${${NAME}_INCLUDEDIR} PARENT_SCOPE)
- safe_string(${LIB} LIB_CONST)
- set(HAVE_${NAME} ${${NAME}_FOUND} PARENT_SCOPE)
- safe_string(${HEADER} HEADER_CONST)
- find_path(HAVE_${HEADER_CONST} ${HEADER} PATHS ${${NAME}_INCLUDEDIR})
+ safe_string(${LIB} LIB_CONST)
+ set(HAVE_${NAME} ${${NAME}_FOUND} PARENT_SCOPE)
+ safe_string(${HEADER} HEADER_CONST)
+ find_path(HAVE_${HEADER_CONST} ${HEADER} PATHS ${${NAME}_INCLUDEDIR})
+ endif()
else()
- set(FOUND 1)
- find_library(LIB${LIB} NAMES ${LIB})
- if(NOT LIB${LIB})
- set(FOUND 0)
- endif()
- if(HEADER)
- safe_string(${HEADER} HEADER_CONST)
- check_header(${HEADER})
- if(NOT HAVE_${HEADER_CONST})
- set(FOUND 0)
- else()
- find_path(${HEADER_CONST}_ROOT ${HEADER})
- if(NOT ${HEADER_CONST}_ROOT)
- set(FOUND 0)
- endif()
- endif()
- endif()
- set(${NAME} ${FOUND} PARENT_SCOPE)
- set(${NAME}_LIBRARIES ${LIB${LIB}} PARENT_SCOPE)
- set(${NAME}_INCLUDEDIR ${${HEADER_CONST}_ROOT} PARENT_SCOPE)
+ check_dependency_basic(${NAME} ${LIB} ${HEADER})
endif()
endfunction()
SOVERSION ${LIBMEMCACHEDPROTOCOL_SO_VERSION}
VERSION v${LIBMEMCACHEDPROTOCOL_VERSION})
target_compile_definitions(libmemcachedprotocol PRIVATE -DBUILDING_LIBMEMCACHED)
+if(CMAKE_CXX_COMPILER_ID STREQUAL AppleClang)
+ set_target_properties(libmemcachedprotocol PROPERTIES
+ LINK_FLAGS "-Wl,-undefined,dynamic_lookup"
+ )
+endif()
target_link_libraries(libmemcachedprotocol PUBLIC Threads::Threads)
target_include_directories(libmemcachedprotocol PRIVATE
${CMAKE_SOURCE_DIR}/src
SOVERSION ${LIBMEMCACHEDUTIL_SO_VERSION}
VERSION v${LIBMEMCACHEDUTIL_VERSION})
target_compile_definitions(libmemcachedutil PRIVATE -DBUILDING_LIBMEMCACHED)
+if(CMAKE_CXX_COMPILER_ID STREQUAL AppleClang)
+ set_target_properties(libmemcachedutil PROPERTIES
+ LINK_FLAGS "-Wl,-undefined,dynamic_lookup"
+ )
+endif()
target_link_libraries(libmemcachedutil PUBLIC Threads::Threads)
target_include_directories(libmemcachedutil PRIVATE
${CMAKE_SOURCE_DIR}/src