diff options
| -rw-r--r-- | CMakeLists.txt | 34 | ||||
| -rw-r--r-- | LibreSSLConfig.cmake.in | 33 | ||||
| -rw-r--r-- | Makefile.am | 2 | ||||
| -rw-r--r-- | crypto/CMakeLists.txt | 32 | ||||
| -rw-r--r-- | ssl/CMakeLists.txt | 32 | ||||
| -rw-r--r-- | tls/CMakeLists.txt | 32 |
6 files changed, 154 insertions, 11 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 991f60c..8e26e47 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt | |||
| @@ -39,6 +39,7 @@ option(ENABLE_ASM "Enable assembly" ON) | |||
| 39 | option(ENABLE_EXTRATESTS "Enable extra tests that may be unreliable on some platforms" OFF) | 39 | option(ENABLE_EXTRATESTS "Enable extra tests that may be unreliable on some platforms" OFF) |
| 40 | option(ENABLE_NC "Enable installing TLS-enabled nc(1)" OFF) | 40 | option(ENABLE_NC "Enable installing TLS-enabled nc(1)" OFF) |
| 41 | set(OPENSSLDIR ${OPENSSLDIR} CACHE PATH "Set the default openssl directory" FORCE) | 41 | set(OPENSSLDIR ${OPENSSLDIR} CACHE PATH "Set the default openssl directory" FORCE) |
| 42 | set(LIBRESSL_INSTALL_CMAKEDIR "${CMAKE_INSTALL_LIBDIR}/cmake" CACHE STRING "Installation directory for the CMake targets") | ||
| 42 | 43 | ||
| 43 | option(USE_STATIC_MSVC_RUNTIMES "Use /MT instead of /MD in MSVC" OFF) | 44 | option(USE_STATIC_MSVC_RUNTIMES "Use /MT instead of /MD in MSVC" OFF) |
| 44 | if(USE_STATIC_MSVC_RUNTIMES) | 45 | if(USE_STATIC_MSVC_RUNTIMES) |
| @@ -439,6 +440,38 @@ if (BUILD_APPLE_XCFRAMEWORK) | |||
| 439 | endif(ENABLE_LIBRESSL_INSTALL) | 440 | endif(ENABLE_LIBRESSL_INSTALL) |
| 440 | endif(BUILD_APPLE_XCFRAMEWORK) | 441 | endif(BUILD_APPLE_XCFRAMEWORK) |
| 441 | 442 | ||
| 443 | file(STRINGS "VERSION" VERSION LIMIT_COUNT 1) | ||
| 444 | include(CMakePackageConfigHelpers) | ||
| 445 | write_basic_package_version_file( | ||
| 446 | "LibreSSLConfigVersion.cmake" | ||
| 447 | VERSION "${VERSION}" | ||
| 448 | COMPATIBILITY SameMajorVersion | ||
| 449 | ) | ||
| 450 | |||
| 451 | set(INCLUDE_DIRECTORY "${CMAKE_BINARY_DIR}/include") | ||
| 452 | configure_package_config_file( | ||
| 453 | "${CMAKE_CURRENT_LIST_DIR}/LibreSSLConfig.cmake.in" | ||
| 454 | "${CMAKE_CURRENT_BINARY_DIR}/LibreSSLConfig.cmake" | ||
| 455 | PATH_VARS INCLUDE_DIRECTORY | ||
| 456 | INSTALL_DESTINATION "${CMAKE_CURRENT_BINARY_DIR}" | ||
| 457 | INSTALL_PREFIX "${CMAKE_CURRENT_BINARY_DIR}" | ||
| 458 | ) | ||
| 459 | |||
| 460 | if(ENABLE_LIBRESSL_INSTALL) | ||
| 461 | set(INCLUDE_DIRECTORY "${CMAKE_INSTALL_INCLUDEDIR}") | ||
| 462 | configure_package_config_file( | ||
| 463 | "${CMAKE_CURRENT_LIST_DIR}/LibreSSLConfig.cmake.in" | ||
| 464 | "${CMAKE_CURRENT_BINARY_DIR}/install-config/LibreSSLConfig.cmake" | ||
| 465 | PATH_VARS INCLUDE_DIRECTORY | ||
| 466 | INSTALL_DESTINATION "${LIBRESSL_INSTALL_CMAKEDIR}/LibreSSL" | ||
| 467 | ) | ||
| 468 | install(FILES | ||
| 469 | "${CMAKE_BINARY_DIR}/install-config/LibreSSLConfig.cmake" | ||
| 470 | "${CMAKE_BINARY_DIR}/LibreSSLConfigVersion.cmake" | ||
| 471 | DESTINATION "${LIBRESSL_INSTALL_CMAKEDIR}/LibreSSL" | ||
| 472 | ) | ||
| 473 | endif() | ||
| 474 | |||
| 442 | if(ENABLE_LIBRESSL_INSTALL) | 475 | if(ENABLE_LIBRESSL_INSTALL) |
| 443 | if(NOT MSVC) | 476 | if(NOT MSVC) |
| 444 | # Create pkgconfig files. | 477 | # Create pkgconfig files. |
| @@ -449,7 +482,6 @@ if(ENABLE_LIBRESSL_INSTALL) | |||
| 449 | if(PLATFORM_LIBS) | 482 | if(PLATFORM_LIBS) |
| 450 | string(REGEX REPLACE ";" " -l" PLATFORM_LDADD ";${PLATFORM_LIBS}") | 483 | string(REGEX REPLACE ";" " -l" PLATFORM_LDADD ";${PLATFORM_LIBS}") |
| 451 | endif() | 484 | endif() |
| 452 | file(STRINGS "VERSION" VERSION LIMIT_COUNT 1) | ||
| 453 | file(GLOB OPENSSL_PKGCONFIGS "*.pc.in") | 485 | file(GLOB OPENSSL_PKGCONFIGS "*.pc.in") |
| 454 | foreach(file ${OPENSSL_PKGCONFIGS}) | 486 | foreach(file ${OPENSSL_PKGCONFIGS}) |
| 455 | get_filename_component(filename ${file} NAME) | 487 | get_filename_component(filename ${file} NAME) |
diff --git a/LibreSSLConfig.cmake.in b/LibreSSLConfig.cmake.in new file mode 100644 index 0000000..d6fbe3b --- /dev/null +++ b/LibreSSLConfig.cmake.in | |||
| @@ -0,0 +1,33 @@ | |||
| 1 | @PACKAGE_INIT@ | ||
| 2 | |||
| 3 | set(LIBRESSL_VERSION @VERSION@) | ||
| 4 | set_and_check(LIBRESSL_INCLUDE_DIR @PACKAGE_INCLUDE_DIRECTORY@) | ||
| 5 | |||
| 6 | if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/LibreSSL-Crypto.cmake") | ||
| 7 | include("${CMAKE_CURRENT_LIST_DIR}/LibreSSL-Crypto.cmake") | ||
| 8 | set(LIBRESSL_CRYPTO_LIBRARY LibreSSL::Crypto) | ||
| 9 | endif() | ||
| 10 | |||
| 11 | if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/LibreSSL-SSL.cmake") | ||
| 12 | include("${CMAKE_CURRENT_LIST_DIR}/LibreSSL-SSL.cmake") | ||
| 13 | set(LIBRESSL_SSL_LIBRARY LibreSSL::SSL) | ||
| 14 | endif() | ||
| 15 | |||
| 16 | if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/LibreSSL-TLS.cmake") | ||
| 17 | include("${CMAKE_CURRENT_LIST_DIR}/LibreSSL-TLS.cmake") | ||
| 18 | set(LIBRESSL_TLS_LIBRARY LibreSSL::TLS) | ||
| 19 | endif() | ||
| 20 | |||
| 21 | set(LIBRESSL_LIBRARIES | ||
| 22 | ${LIBRESSL_CRYPTO_LIBRARY} | ||
| 23 | ${LIBRESSL_SSL_LIBRARY} | ||
| 24 | ${LIBRESSL_TLS_LIBRARY} | ||
| 25 | ) | ||
| 26 | |||
| 27 | check_required_components( | ||
| 28 | Crypto | ||
| 29 | SSL | ||
| 30 | TLS | ||
| 31 | ) | ||
| 32 | |||
| 33 | set(LIBRESSL_FOUND TRUE) | ||
diff --git a/Makefile.am b/Makefile.am index d28692a..2edef0d 100644 --- a/Makefile.am +++ b/Makefile.am | |||
| @@ -11,7 +11,7 @@ pkgconfig_DATA += libcrypto.pc libssl.pc openssl.pc | |||
| 11 | endif | 11 | endif |
| 12 | 12 | ||
| 13 | EXTRA_DIST = README.md README.windows VERSION config scripts | 13 | EXTRA_DIST = README.md README.windows VERSION config scripts |
| 14 | EXTRA_DIST += CMakeLists.txt cmake_export_symbol.cmake cmake_uninstall.cmake.in FindLibreSSL.cmake | 14 | EXTRA_DIST += CMakeLists.txt cmake_export_symbol.cmake cmake_uninstall.cmake.in FindLibreSSL.cmake LibreSSLConfig.cmake.in |
| 15 | EXTRA_DIST += cert.pem openssl.cnf x509v3.cnf | 15 | EXTRA_DIST += cert.pem openssl.cnf x509v3.cnf |
| 16 | 16 | ||
| 17 | .PHONY: install_sw | 17 | .PHONY: install_sw |
diff --git a/crypto/CMakeLists.txt b/crypto/CMakeLists.txt index 1e73e88..597ffef 100644 --- a/crypto/CMakeLists.txt +++ b/crypto/CMakeLists.txt | |||
| @@ -990,9 +990,29 @@ if (WIN32) | |||
| 990 | endif() | 990 | endif() |
| 991 | set_target_properties(crypto PROPERTIES | 991 | set_target_properties(crypto PROPERTIES |
| 992 | OUTPUT_NAME crypto${CRYPTO_POSTFIX} | 992 | OUTPUT_NAME crypto${CRYPTO_POSTFIX} |
| 993 | ARCHIVE_OUTPUT_NAME crypto${CRYPTO_POSTFIX}) | 993 | ARCHIVE_OUTPUT_NAME crypto${CRYPTO_POSTFIX} |
| 994 | set_target_properties(crypto PROPERTIES VERSION | 994 | EXPORT_NAME Crypto |
| 995 | ${CRYPTO_VERSION} SOVERSION ${CRYPTO_MAJOR_VERSION}) | 995 | VERSION ${CRYPTO_VERSION} |
| 996 | SOVERSION ${CRYPTO_MAJOR_VERSION} | ||
| 997 | ) | ||
| 998 | |||
| 999 | target_include_directories( | ||
| 1000 | crypto | ||
| 1001 | PUBLIC | ||
| 1002 | $<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/include> | ||
| 1003 | $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}> | ||
| 1004 | ) | ||
| 1005 | |||
| 1006 | install( | ||
| 1007 | TARGETS crypto | ||
| 1008 | EXPORT Crypto-target | ||
| 1009 | ) | ||
| 1010 | |||
| 1011 | export( | ||
| 1012 | EXPORT Crypto-target | ||
| 1013 | FILE "${LibreSSL_BINARY_DIR}/LibreSSL-Crypto.cmake" | ||
| 1014 | NAMESPACE LibreSSL:: | ||
| 1015 | ) | ||
| 996 | 1016 | ||
| 997 | if(ENABLE_LIBRESSL_INSTALL) | 1017 | if(ENABLE_LIBRESSL_INSTALL) |
| 998 | install( | 1018 | install( |
| @@ -1001,6 +1021,12 @@ if(ENABLE_LIBRESSL_INSTALL) | |||
| 1001 | LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} | 1021 | LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} |
| 1002 | RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} | 1022 | RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} |
| 1003 | ) | 1023 | ) |
| 1024 | install( | ||
| 1025 | EXPORT Crypto-target | ||
| 1026 | FILE "LibreSSL-Crypto.cmake" | ||
| 1027 | NAMESPACE LibreSSL:: | ||
| 1028 | DESTINATION "${LIBRESSL_INSTALL_CMAKEDIR}/LibreSSL" | ||
| 1029 | ) | ||
| 1004 | endif(ENABLE_LIBRESSL_INSTALL) | 1030 | endif(ENABLE_LIBRESSL_INSTALL) |
| 1005 | 1031 | ||
| 1006 | # build static library for regression test | 1032 | # build static library for regression test |
diff --git a/ssl/CMakeLists.txt b/ssl/CMakeLists.txt index 3d5b5df..16ef277 100644 --- a/ssl/CMakeLists.txt +++ b/ssl/CMakeLists.txt | |||
| @@ -91,9 +91,29 @@ if (WIN32) | |||
| 91 | endif() | 91 | endif() |
| 92 | set_target_properties(ssl PROPERTIES | 92 | set_target_properties(ssl PROPERTIES |
| 93 | OUTPUT_NAME ssl${SSL_POSTFIX} | 93 | OUTPUT_NAME ssl${SSL_POSTFIX} |
| 94 | ARCHIVE_OUTPUT_NAME ssl${SSL_POSTFIX}) | 94 | ARCHIVE_OUTPUT_NAME ssl${SSL_POSTFIX} |
| 95 | set_target_properties(ssl PROPERTIES VERSION ${SSL_VERSION} | 95 | EXPORT_NAME SSL |
| 96 | SOVERSION ${SSL_MAJOR_VERSION}) | 96 | VERSION ${SSL_VERSION} |
| 97 | SOVERSION ${SSL_MAJOR_VERSION} | ||
| 98 | ) | ||
| 99 | |||
| 100 | target_include_directories( | ||
| 101 | ssl | ||
| 102 | PUBLIC | ||
| 103 | $<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/include> | ||
| 104 | $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}> | ||
| 105 | ) | ||
| 106 | |||
| 107 | install( | ||
| 108 | TARGETS ssl | ||
| 109 | EXPORT SSL-target | ||
| 110 | ) | ||
| 111 | |||
| 112 | export( | ||
| 113 | EXPORT SSL-target | ||
| 114 | FILE "${LibreSSL_BINARY_DIR}/LibreSSL-SSL.cmake" | ||
| 115 | NAMESPACE LibreSSL:: | ||
| 116 | ) | ||
| 97 | 117 | ||
| 98 | if(ENABLE_LIBRESSL_INSTALL) | 118 | if(ENABLE_LIBRESSL_INSTALL) |
| 99 | install( | 119 | install( |
| @@ -102,6 +122,12 @@ if(ENABLE_LIBRESSL_INSTALL) | |||
| 102 | LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} | 122 | LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} |
| 103 | RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} | 123 | RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} |
| 104 | ) | 124 | ) |
| 125 | install( | ||
| 126 | EXPORT SSL-target | ||
| 127 | FILE "LibreSSL-SSL.cmake" | ||
| 128 | NAMESPACE LibreSSL:: | ||
| 129 | DESTINATION "${LIBRESSL_INSTALL_CMAKEDIR}/LibreSSL" | ||
| 130 | ) | ||
| 105 | endif(ENABLE_LIBRESSL_INSTALL) | 131 | endif(ENABLE_LIBRESSL_INSTALL) |
| 106 | 132 | ||
| 107 | # build static library for regression test | 133 | # build static library for regression test |
diff --git a/tls/CMakeLists.txt b/tls/CMakeLists.txt index 2a90192..a8f29af 100644 --- a/tls/CMakeLists.txt +++ b/tls/CMakeLists.txt | |||
| @@ -58,9 +58,29 @@ if (WIN32) | |||
| 58 | endif() | 58 | endif() |
| 59 | set_target_properties(tls PROPERTIES | 59 | set_target_properties(tls PROPERTIES |
| 60 | OUTPUT_NAME tls${TLS_POSTFIX} | 60 | OUTPUT_NAME tls${TLS_POSTFIX} |
| 61 | ARCHIVE_OUTPUT_NAME tls${TLS_POSTFIX}) | 61 | ARCHIVE_OUTPUT_NAME tls${TLS_POSTFIX} |
| 62 | set_target_properties(tls PROPERTIES VERSION ${TLS_VERSION} | 62 | EXPORT_NAME TLS |
| 63 | SOVERSION ${TLS_MAJOR_VERSION}) | 63 | VERSION ${TLS_VERSION} |
| 64 | SOVERSION ${TLS_MAJOR_VERSION} | ||
| 65 | ) | ||
| 66 | |||
| 67 | target_include_directories( | ||
| 68 | tls | ||
| 69 | PUBLIC | ||
| 70 | $<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/include> | ||
| 71 | $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}> | ||
| 72 | ) | ||
| 73 | |||
| 74 | install( | ||
| 75 | TARGETS tls | ||
| 76 | EXPORT TLS-target | ||
| 77 | ) | ||
| 78 | |||
| 79 | export( | ||
| 80 | EXPORT TLS-target | ||
| 81 | FILE "${LibreSSL_BINARY_DIR}/LibreSSL-TLS.cmake" | ||
| 82 | NAMESPACE LibreSSL:: | ||
| 83 | ) | ||
| 64 | 84 | ||
| 65 | if(ENABLE_LIBRESSL_INSTALL) | 85 | if(ENABLE_LIBRESSL_INSTALL) |
| 66 | install( | 86 | install( |
| @@ -69,6 +89,12 @@ if(ENABLE_LIBRESSL_INSTALL) | |||
| 69 | LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} | 89 | LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} |
| 70 | RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} | 90 | RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} |
| 71 | ) | 91 | ) |
| 92 | install( | ||
| 93 | EXPORT TLS-target | ||
| 94 | FILE "LibreSSL-TLS.cmake" | ||
| 95 | NAMESPACE LibreSSL:: | ||
| 96 | DESTINATION "${LIBRESSL_INSTALL_CMAKEDIR}/LibreSSL" | ||
| 97 | ) | ||
| 72 | endif(ENABLE_LIBRESSL_INSTALL) | 98 | endif(ENABLE_LIBRESSL_INSTALL) |
| 73 | 99 | ||
| 74 | # build static library for regression test | 100 | # build static library for regression test |
