diff options
Diffstat (limited to 'cmake/Modules/FindNettle.cmake')
-rw-r--r-- | cmake/Modules/FindNettle.cmake | 70 |
1 files changed, 56 insertions, 14 deletions
diff --git a/cmake/Modules/FindNettle.cmake b/cmake/Modules/FindNettle.cmake index f5acf6ac..cdad9754 100644 --- a/cmake/Modules/FindNettle.cmake +++ b/cmake/Modules/FindNettle.cmake @@ -1,21 +1,63 @@ -find_package(Gmp) -find_package(PkgConfig) +#[=======================================================================[.rst: +FindNettle +---------- -if (PKG_CONFIG_FOUND) - pkg_check_modules(NETTLE nettle>=3.0) - pkg_check_modules(HOGWEED hogweed) +Find the Nettle and Hogweed libraries + +Result variables +^^^^^^^^^^^^^^^^ + +This module will set the following variables if found: + +``NETTLE_INCLUDE_DIRS`` + where to find nettle/eax.h, etc. +``NETTLE_LIBRARIES`` + the libraries to link against to use Nettle. +``HOGWEED_LIBRARIES`` + the libraries to link against to use Hogweed. +``NETTLE_FOUND`` + TRUE if found + +#]=======================================================================] + +if(Nettle_FIND_REQUIRED) + find_package(GMP QUIET REQUIRED) else() - find_path(NETTLE_INCLUDE_DIRS NAMES eax.h PATH_SUFFIXES nettle) - find_library(NETTLE_LIBRARIES NAMES nettle) - find_package_handle_standard_args(NETTLE DEFAULT_MSG NETTLE_LIBRARIES NETTLE_INCLUDE_DIRS) - find_library(HOGWEED_LIBRARIES NAMES hogweed) - find_package_handle_standard_args(HOGWEED DEFAULT_MSG HOGWEED_LIBRARIES) + find_package(GMP QUIET) endif() -if (NOT HOGWEED_FOUND OR NOT GMP_FOUND) - set(NETTLE_FOUND 0) +find_package(PkgConfig QUIET) +if(PKG_CONFIG_FOUND) + pkg_check_modules(PC_Nettle QUIET nettle) + pkg_check_modules(PC_Hogweed QUIET hogweed) endif() -if(Nettle_FIND_REQUIRED AND NOT NETTLE_FOUND) - message(FATAL_ERROR "Could not find Nettle") +find_path(Nettle_INCLUDE_DIR NAMES nettle/eax.h + HINTS + ${PC_Nettle_INCLUDE_DIRS} +) +mark_as_advanced(Nettle_INCLUDE_DIR) + +find_library(Nettle_LIBRARY NAMES nettle + HINTS + ${PC_Nettle_LIBRARY_DIRS} +) +mark_as_advanced(Nettle_LIBRARY) + +find_library(Hogweed_LIBRARY NAMES hogweed + HINTS + ${PC_Hogweed_LIBRARY_DIRS} +) +mark_as_advanced(Hogweed_LIBRARY) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(Nettle + REQUIRED_VARS + Nettle_LIBRARY Nettle_INCLUDE_DIR Hogweed_LIBRARY +) + +if(Nettle_FOUND) + set(NETTLE_INCLUDE_DIRS ${Nettle_INCLUDE_DIR} ${GMP_INCLUDE_DIRS}) + set(NETTLE_LIBRARIES ${Nettle_LIBRARY}) + set(HOGWEED_LIBRARIES ${Hogweed_LIBRARY} ${GMP_LIBRARIES}) endif() |