OpenSSLConfig.cmake 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  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-3_4_0.msi")
  11. set (MSRT MD)
  12. if (OPENSSL_MSVC_STATIC_RT)
  13. set (MSRT MT)
  14. endif()
  15. if (NOT CMAKE_SIZEOF_VOID_P EQUAL 8)
  16. message ( FATAL_ERROR "32-bit build is not available" )
  17. endif ()
  18. message (NOTICE "Configure ssl installed from from https://slproweb.com/download/Win64OpenSSL-3_4_0.msi")
  19. set (_IMPORT_PREFIX "${_IMPORT_PREFIX}/OpenSSL-Win64")
  20. set (_ssl "libssl")
  21. set (_cr "libcrypto")
  22. set (_ssldll "libssl-3-x64.dll")
  23. set (_crdll "libcrypto-3-x64.dll")
  24. if (OPENSSL_USE_STATIC_LIBS)
  25. # Create imported target OpenSSL::SSL static
  26. add_library (OpenSSL::SSL STATIC IMPORTED)
  27. set_target_properties (OpenSSL::SSL PROPERTIES
  28. INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include"
  29. INTERFACE_LINK_LIBRARIES "OpenSSL::Crypto;ws2_32;crypt32"
  30. IMPORTED_CONFIGURATIONS "RELEASE;DEBUG"
  31. IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "C"
  32. IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C"
  33. IMPORTED_LOCATION_DEBUG "${_IMPORT_PREFIX}/lib/VC/x64/${MSRT}d/${_ssl}_static.lib"
  34. IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/VC/x64/${MSRT}/${_ssl}_static.lib"
  35. MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release
  36. MAP_IMPORTED_CONFIG_MINSIZEREL Release
  37. )
  38. # Create imported target OpenSSL::Crypto static
  39. add_library (OpenSSL::Crypto STATIC IMPORTED)
  40. set_target_properties (OpenSSL::Crypto PROPERTIES
  41. INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include"
  42. IMPORTED_CONFIGURATIONS "RELEASE;DEBUG"
  43. IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "C"
  44. IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C"
  45. IMPORTED_LOCATION_DEBUG "${_IMPORT_PREFIX}/lib/VC/x64/${MSRT}d/${_cr}_static.lib"
  46. IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/VC/x64/${MSRT}/${_cr}_static.lib"
  47. MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release
  48. MAP_IMPORTED_CONFIG_MINSIZEREL Release
  49. )
  50. else ()
  51. # Create imported target OpenSSL::SSL shared
  52. add_library (OpenSSL::SSL SHARED IMPORTED)
  53. set_target_properties (OpenSSL::SSL PROPERTIES
  54. INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include"
  55. INTERFACE_LINK_LIBRARIES "OpenSSL::Crypto"
  56. IMPORTED_CONFIGURATIONS "RELEASE;DEBUG"
  57. IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "C"
  58. IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C"
  59. IMPORTED_IMPLIB_DEBUG "${_IMPORT_PREFIX}/lib/VC/x64/${MSRT}d/${_ssl}.lib"
  60. IMPORTED_IMPLIB_RELEASE "${_IMPORT_PREFIX}/lib/VC/x64/${MSRT}/${_ssl}.lib"
  61. IMPORTED_LOCATION "${_IMPORT_PREFIX}/${_ssldll}"
  62. MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release
  63. MAP_IMPORTED_CONFIG_MINSIZEREL Release
  64. )
  65. # Create imported target OpenSSL::Crypto shared
  66. add_library (OpenSSL::Crypto SHARED IMPORTED)
  67. set_target_properties (OpenSSL::Crypto PROPERTIES
  68. INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include"
  69. IMPORTED_CONFIGURATIONS "RELEASE;DEBUG"
  70. IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "C"
  71. IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C"
  72. IMPORTED_IMPLIB_DEBUG "${_IMPORT_PREFIX}/lib/VC/x64/${MSRT}d/${_cr}.lib"
  73. IMPORTED_IMPLIB_RELEASE "${_IMPORT_PREFIX}/lib/VC/x64/${MSRT}/${_cr}.lib"
  74. IMPORTED_LOCATION "${_IMPORT_PREFIX}/${_crdll}"
  75. MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release
  76. MAP_IMPORTED_CONFIG_MINSIZEREL Release
  77. )
  78. endif()
  79. # Create imported target OpenSSL::applink
  80. add_library (OpenSSL::applink INTERFACE IMPORTED)
  81. set_target_properties (OpenSSL::applink PROPERTIES INTERFACE_SOURCES "${_IMPORT_PREFIX}/include/openssl/applink.c")
  82. if (CMAKE_VERSION VERSION_LESS 3.1.0)
  83. message (FATAL_ERROR "This file relies on consumers using CMake 3.1.0 or greater.")
  84. endif ()
  85. # Cleanup temporary variables.
  86. set (_IMPORT_PREFIX)
  87. cmake_policy (POP)