OpenSSLConfig.cmake 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. if ("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.5)
  2. message (FATAL_ERROR "CMake >= 2.6.0 required")
  3. endif ()
  4. cmake_policy (PUSH)
  5. cmake_policy (VERSION 2.6...3.18)
  6. # Compute the installation prefix relative to this file.
  7. get_filename_component (_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH)
  8. message (STATUS "Using config for configuring openssl - ${_IMPORT_PREFIX}/OpenSSLConfig.cmake")
  9. # url is https://slproweb.com/products/Win32OpenSSL.html
  10. #message (NOTICE "Configure ssl installed from from https://slproweb.com/download/Win64OpenSSL-1_1_1k.msi")
  11. set (MSRT MD)
  12. if (OPENSSL_MSVC_STATIC_RT)
  13. set (MSRT MT)
  14. endif()
  15. set (newdistr ON)
  16. if (CMAKE_SIZEOF_VOID_P EQUAL 8)
  17. if (newdistr)
  18. message (NOTICE "Configure ssl installed from from https://slproweb.com/download/Win64OpenSSL-1_1_1k.msi")
  19. set (_IMPORT_PREFIX "${_IMPORT_PREFIX}/OpenSSL-Win64")
  20. set (_ssl "libssl64")
  21. set (_cr "libcrypto64")
  22. set (_ssldll "libssl-1_1-x64")
  23. set (_crdll "libcrypto-1_1-x64")
  24. else()
  25. message (STATUS "Consider to use fresh ssl from https://slproweb.com/download/Win64OpenSSL-1_1_1k.msi")
  26. set (_IMPORT_PREFIX "${_IMPORT_PREFIX}/openssl-x64")
  27. set (_ssl "ssleay32")
  28. set (_cr "libeay32")
  29. set (_ssldll "ssleay32")
  30. set (_crdll "libeay32")
  31. endif()
  32. else()
  33. set (_IMPORT_PREFIX "${_IMPORT_PREFIX}/openssl-x32")
  34. set (_ssl "libssl32")
  35. set (_cr "libcrypto32")
  36. set (_ssldll "libssl-1_1")
  37. set (_crdll "libcrypto-1_1")
  38. endif ()
  39. if (OPENSSL_USE_STATIC_LIBS)
  40. # Create imported target OpenSSL::SSL static
  41. add_library (OpenSSL::SSL STATIC IMPORTED)
  42. set_target_properties (OpenSSL::SSL PROPERTIES
  43. INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include"
  44. INTERFACE_LINK_LIBRARIES "OpenSSL::Crypto"
  45. IMPORTED_CONFIGURATIONS "RELEASE;DEBUG"
  46. IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "C"
  47. IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C"
  48. IMPORTED_LOCATION_DEBUG "${_IMPORT_PREFIX}/lib/VC/static/${_ssl}${MSRT}d.lib"
  49. IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/VC/static/${_ssl}${MSRT}.lib"
  50. MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release
  51. MAP_IMPORTED_CONFIG_MINSIZEREL Release
  52. )
  53. # Create imported target OpenSSL::Crypto static
  54. add_library (OpenSSL::Crypto STATIC IMPORTED)
  55. set_target_properties (OpenSSL::Crypto PROPERTIES
  56. INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include"
  57. IMPORTED_CONFIGURATIONS "RELEASE;DEBUG"
  58. IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "C"
  59. IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C"
  60. IMPORTED_LOCATION_DEBUG "${_IMPORT_PREFIX}/lib/VC/static/${_cr}${MSRT}d.lib"
  61. IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/VC/static/${_cr}${MSRT}.lib"
  62. MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release
  63. MAP_IMPORTED_CONFIG_MINSIZEREL Release
  64. )
  65. else ()
  66. # Create imported target OpenSSL::SSL shared
  67. add_library (OpenSSL::SSL SHARED IMPORTED)
  68. set_target_properties (OpenSSL::SSL PROPERTIES
  69. INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include"
  70. INTERFACE_LINK_LIBRARIES "OpenSSL::Crypto"
  71. IMPORTED_CONFIGURATIONS "RELEASE;DEBUG"
  72. IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "C"
  73. IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C"
  74. IMPORTED_IMPLIB_DEBUG "${_IMPORT_PREFIX}/lib/VC/${_ssl}${MSRT}d.lib"
  75. IMPORTED_IMPLIB_RELEASE "${_IMPORT_PREFIX}/lib/VC/${_ssl}${MSRT}.lib"
  76. IMPORTED_LOCATION "${_IMPORT_PREFIX}/${_ssldll}.dll"
  77. MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release
  78. MAP_IMPORTED_CONFIG_MINSIZEREL Release
  79. )
  80. # Create imported target OpenSSL::Crypto shared
  81. add_library (OpenSSL::Crypto SHARED IMPORTED)
  82. set_target_properties (OpenSSL::Crypto PROPERTIES
  83. INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include"
  84. IMPORTED_CONFIGURATIONS "RELEASE;DEBUG"
  85. IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "C"
  86. IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C"
  87. IMPORTED_IMPLIB_DEBUG "${_IMPORT_PREFIX}/lib/VC/${_cr}${MSRT}d.lib"
  88. IMPORTED_IMPLIB_RELEASE "${_IMPORT_PREFIX}/lib/VC/${_cr}${MSRT}.lib"
  89. IMPORTED_LOCATION "${_IMPORT_PREFIX}/${_crdll}.dll"
  90. MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release
  91. MAP_IMPORTED_CONFIG_MINSIZEREL Release
  92. )
  93. endif()
  94. # Create imported target OpenSSL::applink
  95. add_library (OpenSSL::applink INTERFACE IMPORTED)
  96. set_target_properties (OpenSSL::applink PROPERTIES INTERFACE_SOURCES "${_IMPORT_PREFIX}/include/openssl/applink.c")
  97. if (CMAKE_VERSION VERSION_LESS 3.1.0)
  98. message (FATAL_ERROR "This file relies on consumers using CMake 3.1.0 or greater.")
  99. endif ()
  100. # Cleanup temporary variables.
  101. set (_IMPORT_PREFIX)
  102. cmake_policy (POP)