FindOpenSSL.cmake 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. # - Try to find the OpenSSL library
  2. # Once done this will define
  3. #
  4. # OpenSSL_FOUND - system has the OpenSSL library
  5. # OpenSSL_INCLUDE_DIRS - Include paths needed
  6. # OpenSSL_LIBRARY_DIRS - Linker paths needed
  7. # OpenSSL_LIBRARIES - Libraries needed
  8. # Copyright (c) 2010, Ambroz Bizjak, <ambrop7@gmail.com>
  9. #
  10. # Redistribution and use is allowed according to the terms of the BSD license.
  11. # For details see the accompanying COPYING-CMAKE-SCRIPTS file.
  12. include(FindLibraryWithDebug)
  13. if (OpenSSL_LIBRARIES)
  14. set(OpenSSL_FIND_QUIETLY TRUE)
  15. endif ()
  16. set(OpenSSL_FOUND FALSE)
  17. if (WIN32)
  18. find_path(OpenSSL_FIND_INCLUDE_DIR openssl/ssl.h)
  19. if (OpenSSL_FIND_INCLUDE_DIR)
  20. # look for libraries built with GCC
  21. find_library(OpenSSL_FIND_LIBRARIES_SSL NAMES ssl)
  22. find_library(OpenSSL_FIND_LIBRARIES_CRYPTO NAMES crypto)
  23. if (OpenSSL_FIND_LIBRARIES_SSL AND OpenSSL_FIND_LIBRARIES_CRYPTO)
  24. set(OpenSSL_FOUND TRUE)
  25. set(OpenSSL_LIBRARY_DIRS "" CACHE STRING "OpenSSL library dirs")
  26. set(OpenSSL_LIBRARIES "${OpenSSL_FIND_LIBRARIES_SSL};${OpenSSL_FIND_LIBRARIES_CRYPTO}" CACHE STRING "OpenSSL libraries")
  27. else ()
  28. # look for libraries built with MSVC
  29. FIND_LIBRARY_WITH_DEBUG(OpenSSL_FIND_LIBRARIES_SSL WIN32_DEBUG_POSTFIX d NAMES ssl ssleay ssleay32 libssleay32 ssleay32MD)
  30. FIND_LIBRARY_WITH_DEBUG(OpenSSL_FIND_LIBRARIES_EAY WIN32_DEBUG_POSTFIX d NAMES eay libeay libeay32 libeay32MD)
  31. if (OpenSSL_FIND_LIBRARIES_SSL AND OpenSSL_FIND_LIBRARIES_EAY)
  32. set(OpenSSL_FOUND TRUE)
  33. set(OpenSSL_LIBRARY_DIRS "" CACHE STRING "OpenSSL library dirs")
  34. set(OpenSSL_LIBRARIES "${OpenSSL_FIND_LIBRARIES_SSL};${OpenSSL_FIND_LIBRARIES_EAY}" CACHE STRING "OpenSSL libraries")
  35. endif ()
  36. endif ()
  37. if (OpenSSL_FOUND)
  38. set(OpenSSL_INCLUDE_DIRS "${OpenSSL_FIND_INCLUDE_DIR}" CACHE STRING "OpenSSL include dirs")
  39. endif ()
  40. endif ()
  41. else ()
  42. find_package(PkgConfig REQUIRED)
  43. pkg_check_modules(OpenSSL_PC openssl)
  44. if (OpenSSL_PC_FOUND)
  45. set(OpenSSL_FOUND TRUE)
  46. set(OpenSSL_INCLUDE_DIRS "${OpenSSL_PC_INCLUDE_DIRS}" CACHE STRING "OpenSSL include dirs")
  47. set(OpenSSL_LIBRARY_DIRS "${OpenSSL_PC_LIBRARY_DIRS}" CACHE STRING "OpenSSL library dirs")
  48. set(OpenSSL_LIBRARIES "${OpenSSL_PC_LIBRARIES}" CACHE STRING "OpenSSL libraries")
  49. endif ()
  50. endif ()
  51. if (OpenSSL_FOUND)
  52. if (NOT OpenSSL_FIND_QUIETLY)
  53. MESSAGE(STATUS "Found OpenSSL: ${OpenSSL_INCLUDE_DIRS} ${OpenSSL_LIBRARY_DIRS} ${OpenSSL_LIBRARIES}")
  54. endif ()
  55. else ()
  56. if (OpenSSL_FIND_REQUIRED)
  57. message(FATAL_ERROR "Could NOT find OpenSSL")
  58. endif ()
  59. endif ()
  60. mark_as_advanced(OpenSSL_INCLUDE_DIRS OpenSSL_LIBRARY_DIRS OpenSSL_LIBRARIES)