# Try pkg-config first, fall back to find_library if(PkgConfig_FOUND) pkg_check_modules(LIBGCRYPT QUIET IMPORTED_TARGET libgcrypt>=1.7.0) if(LIBGCRYPT_FOUND AND NOT TARGET Gcrypt::Gcrypt) add_library(Gcrypt::Gcrypt ALIAS PkgConfig::LIBGCRYPT) endif() endif() if(NOT LIBGCRYPT_FOUND) find_library(LIBGCRYPT_LIBRARIES gcrypt QUIET) if(LIBGCRYPT_LIBRARIES) find_path(LIBGCRYPT_INCLUDE_DIR gcrypt.h HINTS /usr/include /usr/local/include) if(LIBGCRYPT_INCLUDE_DIR) file(STRINGS ${LIBGCRYPT_INCLUDE_DIR}/gcrypt.h GCSTR REGEX "^#define GCRYPT_VERSION ") string(REGEX REPLACE "^#define GCRYPT_VERSION \"(.*)\".*$" "\\1" LIBGCRYPT_VERSION "${GCSTR}") if(NOT LIBGCRYPT_VERSION VERSION_LESS "1.7.0") set(LIBGCRYPT_FOUND TRUE) if(NOT TARGET Gcrypt::Gcrypt) add_library(Gcrypt::Gcrypt UNKNOWN IMPORTED) set_target_properties(Gcrypt::Gcrypt PROPERTIES IMPORTED_LOCATION "${LIBGCRYPT_LIBRARIES}" INTERFACE_INCLUDE_DIRECTORIES "${LIBGCRYPT_INCLUDE_DIR}") endif() endif() endif() endif() endif() if(LIBGCRYPT_FOUND) set(DISABLE_LIBGCRYPT FALSE CACHE BOOL "Disable libgcrypt support") if(NOT DISABLE_LIBGCRYPT) if(LIBGCRYPT_VERSION) message(STATUS "libgcrypt support enabled (version ${LIBGCRYPT_VERSION})") else() message(STATUS "libgcrypt support enabled") endif() set(HAVE_LIBGCRYPT TRUE CACHE INTERNAL "libgcrypt cryptography support available") else() message(STATUS "libgcrypt support disabled by user") unset(HAVE_LIBGCRYPT CACHE) endif() else() message(STATUS "Install libgcrypt >= 1.7.0 to enable libgcrypt support") unset(HAVE_LIBGCRYPT CACHE) endif() if(NOT HAVE_LIBGCRYPT) set(LIBGCRYPT_LIBRARIES "") set(LIBGCRYPT_INCLUDE_DIR "") endif() mark_as_advanced(LIBGCRYPT_LIBRARIES LIBGCRYPT_INCLUDE_DIR)