aboutsummaryrefslogtreecommitdiffstats
path: root/cmake/Modules/FindNettle.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/Modules/FindNettle.cmake')
-rw-r--r--cmake/Modules/FindNettle.cmake70
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()