From 2c9680bc0392a33d32b90723228ec60753070a9f Mon Sep 17 00:00:00 2001 From: Florent Le Coz Date: Sun, 8 Dec 2013 15:31:20 +0100 Subject: Rewrite the FindCryptopp cmake module cleanly --- CMakeLists.txt | 2 +- cmake/Modules/FindCryptopp.cmake | 84 ++++++++++++++++++++++++---------------- 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) -- cgit v1.2.3