summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorent Le Coz <louiz@louiz.org>2013-12-08 15:31:20 +0100
committerFlorent Le Coz <louiz@louiz.org>2013-12-08 15:57:06 +0100
commit2c9680bc0392a33d32b90723228ec60753070a9f (patch)
treecf9016ef3fb0def9cf20168830e87162da694b37
parente2117bcb0abfde30ad503b99da58699cf0f2a95b (diff)
downloadbiboumi-2c9680bc0392a33d32b90723228ec60753070a9f.tar.gz
biboumi-2c9680bc0392a33d32b90723228ec60753070a9f.tar.bz2
biboumi-2c9680bc0392a33d32b90723228ec60753070a9f.tar.xz
biboumi-2c9680bc0392a33d32b90723228ec60753070a9f.zip
Rewrite the FindCryptopp cmake module cleanly
-rw-r--r--CMakeLists.txt2
-rw-r--r--cmake/Modules/FindCryptopp.cmake84
2 files changed, 52 insertions, 34 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ea51db7..81ecaaf 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -26,7 +26,7 @@ include_directories(${EXPAT_INCLUDE_DIRS})
include_directories(${ICONV_INCLUDE_DIR})
# the SYSTEM flag tells the compiler that we don't care about warnings
# coming from these headers.
-include_directories(SYSTEM ${CRYPTO++_INCLUDE_DIR})
+include_directories(SYSTEM ${CRYPTO++_INCLUDE_DIRS})
set(POLLER "POLL" CACHE STRING
"Choose the poller between POLL and EPOLL (Linux-only)")
diff --git a/cmake/Modules/FindCryptopp.cmake b/cmake/Modules/FindCryptopp.cmake
index 7a8ac31..9835b6f 100644
--- a/cmake/Modules/FindCryptopp.cmake
+++ b/cmake/Modules/FindCryptopp.cmake
@@ -1,35 +1,53 @@
# - Find Crypto++
+# Find the Crypto++ library
+#
+# This module defines the following variables:
+# CRYPTO++_FOUND - True if library and include directory are found
+# If set to TRUE, the following are also defined:
+# CRYPTO++_LIBRARIES - Where to find the library file
+# CRYPTO++_INCLUDE_DIRS - The directory where to find the header files
+#
+# For conveniance, these variables are also set. They have the same values
+# than the variables above. The user can thus choose his/her prefered way
+# to way to write them.
+#
+# CRYPTOPP_FOUND
+#
+# CRYPTO++_LIBRARY
+# CRYPTOPP_LIBRARY
+# CRYPTOPP_LIBRARIES
+#
+# CRYPTO++_INCLUDE_DIR
+# CRYPTOPP_INCLUDE_DIRS
+# CRYPTOPP_INCLUDE_DIR
+#
+# This file is in the public domain.
+
+find_path(CRYPTO++_INCLUDE_DIRS NAMES cryptlib.h
+ PATH_SUFFIXES "crypto++" "cryptopp"
+ DOC "The Crypto++ include directory")
+
+find_library(CRYPTO++_LIBRARIES NAMES cryptopp
+ DOC "The Crypto++ library")
+
+# Use some standard module to handle the QUIETLY and REQUIRED arguments, and
+# set CRYPTO++_FOUND to TRUE if these two variables are set.
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(Crypto++ REQUIRED_VARS CRYPTO++_LIBRARIES CRYPTO++_INCLUDE_DIRS)
+
+# Compatibility for all the ways of writing these variables
+if(CRYPTO++_FOUND)
+ set(CRYPTOPP_FOUND ${CRYPTO++_FOUND})
+
+ set(CRYPTO++_LIBRARY ${CRYPTO++_LIBRARIES})
+ set(CRYPTOPP_LIBRARY ${CRYPTO++_LIBRARIES})
+ set(CRYPTOPP_LIBRARIES ${CRYPTO++_LIBRARIES})
+
+ set(CRYPTO++_INCLUDE_DIR ${CRYPTO++_INCLUDE_DIRS})
+ set(CRYPTOPP_INCLUDE_DIR ${CRYPTO++_INCLUDE_DIRS})
+ set(CRYPTOPP_INCLUDE_DIRS ${CRYPTO++_INCLUDE_DIRS})
+endif()
+
+mark_as_advanced(CRYPTO++_INCLUDE_DIRS CRYPTO++_LIBRARIES)
+
-if(CRYPTO++_INCLUDE_DIR AND CRYPTO++_LIBRARIES)
- set(CRYPTO++_FOUND TRUE)
-
-else(CRYPTO++_INCLUDE_DIR AND CRYPTO++_LIBRARIES)
- find_path(CRYPTO++_INCLUDE_DIR cryptlib.h
- /usr/include/crypto++
- /usr/include/cryptopp
- /usr/local/include/crypto++
- /usr/local/include/cryptopp
- /opt/local/include/crypto++
- /opt/local/include/cryptopp
- $ENV{SystemDrive}/Crypto++/include
- )
-
- find_library(CRYPTO++_LIBRARIES NAMES cryptopp
- PATHS
- /usr/lib
- /usr/local/lib
- /opt/local/lib
- $ENV{SystemDrive}/Crypto++/lib
- )
-
- if(CRYPTO++_INCLUDE_DIR AND CRYPTO++_LIBRARIES)
- set(CRYPTO++_FOUND TRUE)
- message(STATUS "Found Crypto++: ${CRYPTO++_INCLUDE_DIR}, ${CRYPTO++_LIBRARIES}")
- else(CRYPTO++_INCLUDE_DIR AND CRYPTO++_LIBRARIES)
- set(CRYPTO++_FOUND FALSE)
- message(STATUS "Crypto++ not found.")
- endif(CRYPTO++_INCLUDE_DIR AND CRYPTO++_LIBRARIES)
-
- mark_as_advanced(CRYPTO++_INCLUDE_DIR CRYPTO++_LIBRARIES)
-
-endif(CRYPTO++_INCLUDE_DIR AND CRYPTO++_LIBRARIES)