-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: Fs <[email protected]>
- Loading branch information
Showing
3 changed files
with
235 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,188 @@ | ||
# Generated by Fsu0413/openssl-externalCMake | ||
# Most of original file copied from OpenSSL | ||
|
||
# Commands may need to know the format version. | ||
set(CMAKE_IMPORT_FILE_VERSION 1) | ||
|
||
# Avoid duplicate find_package() | ||
set(_ossl_expected_targets OpenSSL::Crypto OpenSSL::SSL | ||
) | ||
set(_ossl_defined_targets) | ||
set(_ossl_undefined_targets) | ||
foreach(t IN LISTS _ossl_expected_targets) | ||
if(TARGET "${t}") | ||
LIST(APPEND _ossl_defined_targets "${t}") | ||
else() | ||
LIST(APPEND _ossl_undefined_targets "${t}") | ||
endif() | ||
endforeach() | ||
message(DEBUG "_ossl_expected_targets = ${_ossl_expected_targets}") | ||
message(DEBUG "_ossl_defined_targets = ${_ossl_defined_targets}") | ||
message(DEBUG "_ossl_undefined_targets = ${_ossl_undefined_targets}") | ||
if(NOT _ossl_undefined_targets) | ||
# All targets are defined, we're good, just undo everything and return | ||
unset(_ossl_expected_targets) | ||
unset(_ossl_defined_targets) | ||
unset(_ossl_undefined_targets) | ||
unset(CMAKE_IMPORT_FILE_VERSION) | ||
return() | ||
endif() | ||
if(_ossl_defined_targets) | ||
# We have a mix of defined and undefined targets. This is hard to reconcile, | ||
# and probably the result of another config, or FindOpenSSL.cmake having been | ||
# called, or whatever. Therefore, the best course of action is to quit with a | ||
# hard error. | ||
message(FATAL_ERROR "Some targets defined, others not:\nNot defined: ${_ossl_undefined_targets}\nDefined: ${_ossl_defined_targets}") | ||
endif() | ||
unset(_ossl_expected_targets) | ||
unset(_ossl_defined_targets) | ||
unset(_ossl_undefined_targets) | ||
|
||
# Set up the import path, so all other import paths are made relative this file | ||
get_filename_component(_ossl_prefix "${CMAKE_CURRENT_LIST_FILE}" PATH) | ||
get_filename_component(_ossl_prefix "${_ossl_prefix}" PATH) | ||
get_filename_component(_ossl_prefix "${_ossl_prefix}" PATH) | ||
get_filename_component(_ossl_prefix "${_ossl_prefix}" PATH) | ||
|
||
if(_ossl_prefix STREQUAL "/") | ||
set(_ossl_prefix "") | ||
endif() | ||
|
||
# Fsu0413/openssl-externalCMake modification start: | ||
# Original logic of OpenSSL judges here using OPENSSL_USE_STATIC_LIBS | ||
# Since our CMake project builds only either of shared and static library, we should judge OPENSSL_USE_STATIC_LIBS with the built version | ||
# So the logic here should be modified | ||
|
||
set (OPENSSL_EXTERNALCMAKE_BUILD_SHARED_LIBS @BUILD_SHARED_LIBS@) | ||
if (OPENSSL_EXTERNALCMAKE_BUILD_SHARED_LIBS) | ||
set(_ossl_use_static_libs false) | ||
else() | ||
set(_ossl_use_static_libs True) | ||
endif() | ||
unset(OPENSSL_EXTERNALCMAKE_BUILD_SHARED_LIBS) | ||
|
||
if (DEFINED OPENSSL_USE_STATIC_LIBS) | ||
if ( ( OPENSSL_USE_STATIC_LIBS ) AND ( _ossl_use_static_libs ) ) | ||
elseif ( ( NOT OPENSSL_USE_STATIC_LIBS ) AND ( NOT _ossl_use_static_libs ) ) | ||
else() | ||
# OPENSSL_USE_STATIC_LIBS is explicitly different than _ossl_use_static_libs, indicating | ||
# the required library variant is not available. The best course of action is to simply | ||
# return and leave it to CMake to use another OpenSSL config. | ||
unset(_ossl_use_static_libs) | ||
unset(CMAKE_IMPORT_FILE_VERSION) | ||
return() | ||
endif() | ||
endif() | ||
# Fsu0413/openssl-externalCMake modification end | ||
|
||
# Version, copied from what find_package() gives, for compatibility with FindOpenSSL.cmake | ||
set(OPENSSL_VERSION "${OpenSSL_VERSION}") | ||
set(OPENSSL_VERSION_MAJOR "${OpenSSL_VERSION_MAJOR}") | ||
set(OPENSSL_VERSION_MINOR "${OpenSSL_VERSION_MINOR}") | ||
set(OPENSSL_VERSION_FIX "${OpenSSL_VERSION_PATCH}") | ||
set(OPENSSL_FOUND YES) | ||
|
||
# Directories and names | ||
set(OPENSSL_INCLUDE_DIR "${_ossl_prefix}/@CMAKE_INSTALL_INCLUDEDIR@") | ||
set(OPENSSL_LIBRARY_DIR "${_ossl_prefix}/@CMAKE_INSTALL_LIBDIR@") | ||
set(OPENSSL_ENGINES_DIR "${_ossl_prefix}/@CMAKE_INSTALL_LIBDIR@/engines-3") | ||
set(OPENSSL_MODULES_DIR "${_ossl_prefix}/@CMAKE_INSTALL_LIBDIR@/ossl-modules") | ||
set(OPENSSL_RUNTIME_DIR "${_ossl_prefix}/@CMAKE_INSTALL_BINDIR@") | ||
|
||
set(OPENSSL_PROGRAM "${OPENSSL_RUNTIME_DIR}/openssl") | ||
|
||
# Set up the imported targets | ||
# Fsu0413/openssl-externalCMake notes: Way for disabling outputs during configure is nonexistant. | ||
# So instead of disabling output using the following "if" (which exists on original OpenSSL project) only for judging if static library is used seems enough | ||
if(_ossl_use_static_libs) | ||
|
||
add_library(OpenSSL::Crypto STATIC IMPORTED) | ||
add_library(OpenSSL::SSL STATIC IMPORTED) | ||
|
||
set(OPENSSL_LIBCRYPTO_STATIC "${OPENSSL_LIBRARY_DIR}/@CMAKE_STATIC_LIBRARY_PREFIX@@OPENSSL_EXTERNALCMAKE_CRYPTO_ARCHIVE_OUTPUT_NAME@@CMAKE_STATIC_LIBRARY_SUFFIX@") | ||
set(OPENSSL_LIBCRYPTO_DEPENDENCIES ) | ||
set_target_properties(OpenSSL::Crypto PROPERTIES | ||
IMPORTED_LINK_INTERFACE_LANGUAGES "C" | ||
IMPORTED_LOCATION ${OPENSSL_LIBCRYPTO_STATIC}) | ||
set_property(TARGET OpenSSL::Crypto | ||
PROPERTY INTERFACE_LINK_LIBRARIES ${OPENSSL_LIBCRYPTO_DEPENDENCIES}) | ||
|
||
set(OPENSSL_LIBSSL_STATIC "${OPENSSL_LIBRARY_DIR}/@CMAKE_STATIC_LIBRARY_PREFIX@@OPENSSL_EXTERNALCMAKE_SSL_ARCHIVE_OUTPUT_NAME@@CMAKE_STATIC_LIBRARY_SUFFIX@") | ||
set(OPENSSL_LIBSSL_DEPENDENCIES OpenSSL::Crypto) | ||
set_target_properties(OpenSSL::SSL PROPERTIES | ||
IMPORTED_LINK_INTERFACE_LANGUAGES "C" | ||
IMPORTED_LOCATION ${OPENSSL_LIBSSL_STATIC}) | ||
set_property(TARGET OpenSSL::SSL | ||
PROPERTY INTERFACE_LINK_LIBRARIES ${OPENSSL_LIBSSL_DEPENDENCIES}) | ||
|
||
# Directories and names compatible with CMake's FindOpenSSL.cmake | ||
set(OPENSSL_CRYPTO_LIBRARY ${OPENSSL_LIBCRYPTO_STATIC}) | ||
set(OPENSSL_CRYPTO_LIBRARIES ${OPENSSL_CRYPTO_LIBRARY} ${OPENSSL_LIBCRYPTO_DEPENDENCIES}) | ||
set(OPENSSL_SSL_LIBRARY ${OPENSSL_LIBSSL_STATIC}) | ||
set(OPENSSL_SSL_LIBRARIES ${OPENSSL_SSL_LIBRARY} ${OPENSSL_LIBSSL_DEPENDENCIES}) | ||
set(OPENSSL_LIBRARIES ${OPENSSL_SSL_LIBRARY} ${OPENSSL_LIBSSL_DEPENDENCIES} ${OPENSSL_LIBCRYPTO_DEPENDENCIES}) | ||
|
||
else() | ||
|
||
add_library(OpenSSL::Crypto SHARED IMPORTED) | ||
add_library(OpenSSL::SSL SHARED IMPORTED) | ||
|
||
# Fsu0413/openssl-externalCMake modification: judging if export library needed by querying the target platform | ||
if (WIN32 OR CYGWIN) | ||
set(OPENSSL_LIBCRYPTO_SHARED "${OPENSSL_RUNTIME_DIR}/@CMAKE_SHARED_LIBRARY_PREFIX@@OPENSSL_EXTERNALCMAKE_CRYPTO_LIBRARY_OUTPUT_NAME@@CMAKE_SHARED_LIBRARY_SUFFIX@") | ||
set(OPENSSL_LIBCRYPTO_IMPORT "${OPENSSL_LIBRARY_DIR}/@CMAKE_IMPORT_LIBRARY_PREFIX@@OPENSSL_EXTERNALCMAKE_CRYPTO_ARCHIVE_OUTPUT_NAME@@CMAKE_IMPORT_LIBRARY_SUFFIX@") | ||
set(OPENSSL_LIBCRYPTO_DEPENDENCIES ) | ||
set_target_properties(OpenSSL::Crypto PROPERTIES | ||
IMPORTED_LINK_INTERFACE_LANGUAGES "C" | ||
IMPORTED_IMPLIB ${OPENSSL_LIBCRYPTO_IMPORT} | ||
IMPORTED_LOCATION ${OPENSSL_LIBCRYPTO_SHARED}) | ||
set_property(TARGET OpenSSL::Crypto | ||
PROPERTY INTERFACE_LINK_LIBRARIES ${OPENSSL_LIBCRYPTO_DEPENDENCIES}) | ||
|
||
set(OPENSSL_LIBSSL_SHARED "${OPENSSL_RUNTIME_DIR}/@CMAKE_SHARED_LIBRARY_PREFIX@@OPENSSL_EXTERNALCMAKE_SSL_LIBRARY_OUTPUT_NAME@@CMAKE_SHARED_LIBRARY_SUFFIX@") | ||
set(OPENSSL_LIBSSL_IMPORT "${OPENSSL_LIBRARY_DIR}/@CMAKE_IMPORT_LIBRARY_PREFIX@@OPENSSL_EXTERNALCMAKE_SSL_ARCHIVE_OUTPUT_NAME@@CMAKE_IMPORT_LIBRARY_SUFFIX@") | ||
set(OPENSSL_LIBSSL_DEPENDENCIES OpenSSL::Crypto ) | ||
set_target_properties(OpenSSL::SSL PROPERTIES | ||
IMPORTED_LINK_INTERFACE_LANGUAGES "C" | ||
IMPORTED_IMPLIB ${OPENSSL_LIBSSL_IMPORT} | ||
IMPORTED_LOCATION ${OPENSSL_LIBSSL_SHARED}) | ||
set_property(TARGET OpenSSL::SSL | ||
PROPERTY INTERFACE_LINK_LIBRARIES ${OPENSSL_LIBSSL_DEPENDENCIES}) | ||
|
||
# Directories and names compatible with CMake's FindOpenSSL.cmake | ||
set(OPENSSL_CRYPTO_LIBRARY ${OPENSSL_LIBCRYPTO_IMPORT}) | ||
set(OPENSSL_CRYPTO_LIBRARIES ${OPENSSL_CRYPTO_LIBRARY} ${OPENSSL_LIBCRYPTO_DEPENDENCIES}) | ||
set(OPENSSL_SSL_LIBRARY ${OPENSSL_LIBSSL_IMPORT}) | ||
set(OPENSSL_SSL_LIBRARIES ${OPENSSL_SSL_LIBRARY} ${OPENSSL_LIBSSL_DEPENDENCIES}) | ||
set(OPENSSL_LIBRARIES ${OPENSSL_SSL_LIBRARY} ${OPENSSL_LIBSSL_DEPENDENCIES} ${OPENSSL_LIBCRYPTO_DEPENDENCIES}) | ||
else() | ||
# Dependencies are assumed to be implied in the shared libraries | ||
set(OPENSSL_LIBCRYPTO_SHARED "${OPENSSL_LIBRARY_DIR}/@CMAKE_SHARED_LIBRARY_PREFIX@@OPENSSL_EXTERNALCMAKE_CRYPTO_LIBRARY_OUTPUT_NAME@@CMAKE_SHARED_LIBRARY_SUFFIX@") | ||
set_target_properties(OpenSSL::Crypto PROPERTIES | ||
IMPORTED_LINK_INTERFACE_LANGUAGES "C" | ||
IMPORTED_LOCATION ${OPENSSL_LIBCRYPTO_SHARED}) | ||
|
||
set(OPENSSL_LIBSSL_SHARED "${OPENSSL_LIBRARY_DIR}/@CMAKE_SHARED_LIBRARY_PREFIX@@OPENSSL_EXTERNALCMAKE_SSL_LIBRARY_OUTPUT_NAME@@CMAKE_SHARED_LIBRARY_SUFFIX@") | ||
set_target_properties(OpenSSL::SSL PROPERTIES | ||
IMPORTED_LINK_INTERFACE_LANGUAGES "C" | ||
IMPORTED_LOCATION ${OPENSSL_LIBSSL_SHARED}) | ||
|
||
# Directories and names compatible with CMake's FindOpenSSL.cmake | ||
set(OPENSSL_CRYPTO_LIBRARY ${OPENSSL_LIBCRYPTO_SHARED}) | ||
set(OPENSSL_CRYPTO_LIBRARIES ${OPENSSL_CRYPTO_LIBRARY}) | ||
set(OPENSSL_SSL_LIBRARY ${OPENSSL_LIBSSL_SHARED}) | ||
set(OPENSSL_SSL_LIBRARIES ${OPENSSL_SSL_LIBRARY}) | ||
set(OPENSSL_LIBRARIES ${OPENSSL_SSL_LIBRARIES}) | ||
endif() | ||
|
||
endif() | ||
|
||
set_target_properties(OpenSSL::Crypto PROPERTIES | ||
INTERFACE_INCLUDE_DIRECTORIES "${OPENSSL_INCLUDE_DIR}") | ||
set_target_properties(OpenSSL::SSL PROPERTIES | ||
INTERFACE_INCLUDE_DIRECTORIES "${OPENSSL_INCLUDE_DIR}") | ||
|
||
|
||
|
||
unset(_ossl_prefix) | ||
unset(_ossl_use_static_libs) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
# Generated by OpenSSL | ||
|
||
set(PACKAGE_VERSION @OpenSSL_VERSION@) | ||
|
||
if(NOT PACKAGE_FIND_VERSION) | ||
# find_package() was called without any version information. This is assumed to | ||
# mean that the caller accepts whatever they get. | ||
set(PACKAGE_VERSION_COMPATIBLE 1) | ||
elseif(PACKAGE_FIND_VERSION_MAJOR LESS @OpenSSL_VERSION_MAJOR@ | ||
OR PACKAGE_FIND_VERSION VERSION_GREATER @OpenSSL_VERSION@) | ||
set(PACKAGE_VERSION_UNSUITABLE 1) | ||
else() | ||
set(PACKAGE_VERSION_COMPATIBLE 1) | ||
if(PACKAGE_FIND_VERSION VERSION_EQUAL @OpenSSL_VERSION@) | ||
set(PACKAGE_VERSION_EXACT 1) | ||
endif() | ||
endif() |