This creates an install directory under the top level source directory. The install contains a CMake config file that produces variables and targets compatible with FindOpenSSL, or the directory can be scanned by FindOpenSSL via -DOPEN_SSL_ROOT. This allows using BoringSSL with third-party dependencies that find an SSL implementation via CMake. Change-Id: Iffeac64b9cced027d549486c98a6cd9721415454 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/52205 Reviewed-by: Adam Langley <agl@google.com> Commit-Queue: Adam Langley <agl@google.com>
33 lines
1.2 KiB
CMake
33 lines
1.2 KiB
CMake
include(${CMAKE_CURRENT_LIST_DIR}/OpenSSLTargets.cmake)
|
|
|
|
# Recursively collect dependency locations for the imported targets.
|
|
macro(_openssl_config_libraries libraries target)
|
|
get_property(_DEPS TARGET ${target} PROPERTY INTERFACE_LINK_LIBRARIES)
|
|
foreach(_DEP ${_DEPS})
|
|
if(TARGET ${_DEP})
|
|
_openssl_config_libraries(${libraries} ${_DEP})
|
|
else()
|
|
list(APPEND ${libraries} ${_DEP})
|
|
endif()
|
|
endforeach()
|
|
get_property(_LOC TARGET ${target} PROPERTY LOCATION)
|
|
list(APPEND ${libraries} ${_LOC})
|
|
endmacro()
|
|
|
|
set(OPENSSL_FOUND YES)
|
|
get_property(OPENSSL_INCLUDE_DIR TARGET OpenSSL::SSL PROPERTY INTERFACE_INCLUDE_DIRECTORIES)
|
|
get_property(OPENSSL_CRYPTO_LIBRARY TARGET OpenSSL::Crypto PROPERTY LOCATION)
|
|
_openssl_config_libraries(OPENSSL_CRYPTO_LIBRARIES OpenSSL::Crypto)
|
|
list(REMOVE_DUPLICATES OPENSSL_CRYPTO_LIBRARIES)
|
|
|
|
get_property(OPENSSL_SSL_LIBRARY TARGET OpenSSL::Crypto PROPERTY LOCATION)
|
|
_openssl_config_libraries(OPENSSL_SSL_LIBRARIES OpenSSL::SSL)
|
|
list(REMOVE_DUPLICATES OPENSSL_SSL_LIBRARIES)
|
|
|
|
set(OPENSSL_LIBRARIES ${OPENSSL_CRYPTO_LIBRARIES} ${OPENSSL_SSL_LIBRARIES})
|
|
list(REMOVE_DUPLICATES OPENSSL_LIBRARIES)
|
|
|
|
set(_DEP)
|
|
set(_DEPS)
|
|
set(_LOC)
|