~singpolyma/biboumi

2c9680bc0392a33d32b90723228ec60753070a9f — Florent Le Coz 10 years ago e2117bc
Rewrite the FindCryptopp cmake module cleanly
2 files changed, 52 insertions(+), 34 deletions(-)

M CMakeLists.txt
M cmake/Modules/FindCryptopp.cmake
M CMakeLists.txt => CMakeLists.txt +1 -1
@@ 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)")

M cmake/Modules/FindCryptopp.cmake => cmake/Modules/FindCryptopp.cmake +51 -33
@@ 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)