include(FindPackageHandleStandardArgs) include(SelectLibraryConfigurations) find_path(GCRYPT_INCLUDE_DIRS NAMES gcrypt.h) mark_as_advanced(GCRYPT_INCLUDE_DIRS) find_library(GCRYPT_LIBRARY_DEBUG NAMES gcryptd) find_library(GCRYPT_LIBRARY_RELEASE NAMES gcrypt) select_library_configurations(GCRYPT) if(GCRYPT_INCLUDE_DIRS AND EXISTS "${GCRYPT_INCLUDE_DIRS}/gcrypt.h") file(STRINGS "${GCRYPT_INCLUDE_DIRS}/gcrypt.h" _GCRYPT_VERSION_DEFINE REGEX "#define[\t ]+GCRYPT_VERSION[\t ]+\"[^\"]*\".*") string(REGEX REPLACE "#define[\t ]+GCRYPT_VERSION[\t ]+\"([^\"]*)\".*" "\\1" GCRYPT_VERSION "${_GCRYPT_VERSION_DEFINE}") unset(_GCRYPT_VERSION_DEFINE) endif() find_package_handle_standard_args( Gcrypt FOUND_VAR GCRYPT_FOUND REQUIRED_VARS GCRYPT_INCLUDE_DIRS GCRYPT_LIBRARIES VERSION_VAR GCRYPT_VERSION ) if(GCRYPT_FOUND AND NOT TARGET Gcrypt::Gcrypt) add_library(Gcrypt::Gcrypt UNKNOWN IMPORTED) if(GCRYPT_LIBRARY_RELEASE) set_property(TARGET Gcrypt::Gcrypt APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) set_target_properties(Gcrypt::Gcrypt PROPERTIES IMPORTED_LOCATION_RELEASE "${GCRYPT_LIBRARY_RELEASE}") endif() if(GCRYPT_LIBRARY_DEBUG) set_property(TARGET Gcrypt::Gcrypt APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) set_target_properties(Gcrypt::Gcrypt PROPERTIES IMPORTED_LOCATION_DEBUG "${GCRYPT_LIBRARY_DEBUG}") endif() set_target_properties( Gcrypt::Gcrypt PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${GCRYPT_INCLUDE_DIRS}" ) endif()