|
@@ -0,0 +1,237 @@
|
|
|
+# Generated by OpenSSL
|
|
|
+{-
|
|
|
+ use lib catdir($config{sourcedir}, 'Configurations');
|
|
|
+ use platform;
|
|
|
+ use Data::Dumper;
|
|
|
+
|
|
|
+ our %lib_info = (
|
|
|
+ map { my %x = ();
|
|
|
+ my $lib_static = platform->staticlib($_);
|
|
|
+ my $lib_shared =
|
|
|
+ (platform->can("sharedlib_simple")
|
|
|
+ ? platform->sharedlib_simple($_)
|
|
|
+ : undef)
|
|
|
+ // platform->sharedlib($_);
|
|
|
+ my $lib_shared_import = platform->sharedlib_import($_);
|
|
|
+ $x{static} = $lib_static if $lib_static;
|
|
|
+ $x{shared} = $lib_shared if $lib_shared;
|
|
|
+ $x{shared_import} = $lib_shared_import if $lib_shared_import;
|
|
|
+ %x ? ( $_ => \%x ) : () }
|
|
|
+ grep { !$unified_info{attributes}->{libraries}->{$_}->{noinst} }
|
|
|
+ @{$unified_info{libraries}}
|
|
|
+ );
|
|
|
+ our $no_static = !$disabled{shared} && !$lib_info{libcrypto}->{static};
|
|
|
+ our $no_shared = $disabled{shared};
|
|
|
+
|
|
|
+ # Unixifying of paths, because that's what CMake understands.
|
|
|
+ # This assumes that the given path is absolute.
|
|
|
+ sub unixify {
|
|
|
+ use File::Spec;
|
|
|
+ use File::Spec::Unix;
|
|
|
+
|
|
|
+ my $path = shift;
|
|
|
+ my $no_file = shift;
|
|
|
+ (my $volume, $directories, $file) = File::Spec->splitpath($path, $no_file // ());
|
|
|
+ $directories = File::Spec::Unix->catdir(File::Spec->splitdir($directories));
|
|
|
+
|
|
|
+ # We know that $volume is ignored by File::Spec::Unix, so we handle it specially
|
|
|
+ # according to the conventions of the platform.
|
|
|
+ $volume =~ s|^(.*?):$|/$1| if $^O eq "vms"; # On VMS, DEV: -> /DEV
|
|
|
+
|
|
|
+ return $volume . File::Spec::Unix->catpath('', $directories, $no_file ? () : $file);
|
|
|
+ }
|
|
|
+ ""
|
|
|
+-}
|
|
|
+# 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
|
|
|
+ {- output_off() if $disabled{uplink}; "" -}OpenSSL::applink{- output_on() if $disabled{uplink}; "" -})
|
|
|
+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)
|
|
|
+
|
|
|
+{-
|
|
|
+ # It can be argued that 'cmake_path' would be the better choice here. However,
|
|
|
+ # cmake_path is relatively new, while get_filename_component has been around
|
|
|
+ # since before CMake 3.0
|
|
|
+-}
|
|
|
+# 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)
|
|
|
+{-
|
|
|
+ # For each component in $OpenSSL::safe::installdata::CMAKECONFIGDIR_REL, have CMake
|
|
|
+ # out the parent directory.
|
|
|
+ my $d = unixify($OpenSSL::safe::installdata::CMAKECONFIGDIR_REL);
|
|
|
+ $OUT = '';
|
|
|
+ $OUT .= 'get_filename_component(_ossl_prefix "${_ossl_prefix}" PATH)' . "\n"
|
|
|
+ foreach (split '/', $d);
|
|
|
+-}
|
|
|
+if(_ossl_prefix STREQUAL "/")
|
|
|
+ set(_ossl_prefix "")
|
|
|
+endif()
|
|
|
+
|
|
|
+{- output_off() unless $disabled{shared}; "" -}
|
|
|
+set(_ossl_use_static_libs True)
|
|
|
+{- output_on() unless $disabled{shared}; "" -}
|
|
|
+if(OPENSSL_USE_STATIC_LIBS)
|
|
|
+ set(_ossl_use_static_libs True)
|
|
|
+elseif(DEFINED OPENSSL_USE_STATIC_LIBS)
|
|
|
+ # We know OPENSSL_USE_STATIC_LIBS is defined and False
|
|
|
+ if(_ossl_use_static_libs)
|
|
|
+ # OPENSSL_USE_STATIC_LIBS is explicitly false, indicating that shared libraries are
|
|
|
+ # required. However, _ossl_use_static_libs indicates that no shared libraries are
|
|
|
+ # 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()
|
|
|
+
|
|
|
+# 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}/{- unixify($OpenSSL::safe::installdata::INCLUDEDIR_REL, 1); -}")
|
|
|
+set(OPENSSL_LIBRARY_DIR "${_ossl_prefix}/{- unixify($OpenSSL::safe::installdata::LIBDIR_REL, 1); -}")
|
|
|
+set(OPENSSL_ENGINES_DIR "${_ossl_prefix}/{- unixify($OpenSSL::safe::installdata::ENGINESDIR_REL, 1); -}")
|
|
|
+set(OPENSSL_MODULES_DIR "${_ossl_prefix}/{- unixify($OpenSSL::safe::installdata::MODULESDIR_REL, 1); -}")
|
|
|
+set(OPENSSL_RUNTIME_DIR "${_ossl_prefix}/{- unixify($OpenSSL::safe::installdata::BINDIR_REL, 1); -}")
|
|
|
+{- output_off() if $disabled{uplink}; "" -}
|
|
|
+set(OPENSSL_APPLINK_SOURCE "${_ossl_prefix}/{- unixify($OpenSSL::safe::installdata::APPLINKDIR_REL, 1); -}/applink.c")
|
|
|
+{- output_on() if $disabled{uplink}; "" -}
|
|
|
+set(OPENSSL_PROGRAM "${OPENSSL_RUNTIME_DIR}/{- platform->bin('openssl') -}")
|
|
|
+
|
|
|
+# Set up the imported targets
|
|
|
+if(_ossl_use_static_libs)
|
|
|
+{- output_off() unless $no_static; "" -}
|
|
|
+ # Static libraries are UNSUPPORTED in this configuration
|
|
|
+{- output_on() unless $no_static; output_off() if $no_static; "" -}
|
|
|
+ add_library(OpenSSL::Crypto STATIC IMPORTED)
|
|
|
+ add_library(OpenSSL::SSL STATIC IMPORTED)
|
|
|
+
|
|
|
+ set(OPENSSL_LIBCRYPTO_STATIC "${OPENSSL_LIBRARY_DIR}/{- $lib_info{libcrypto}->{static} -}")
|
|
|
+ set(OPENSSL_LIBCRYPTO_DEPENDENCIES {- join(' ', @OpenSSL::safe::installdata::LDLIBS) -})
|
|
|
+ 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}/{- $lib_info{libssl}->{static} -}")
|
|
|
+ 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})
|
|
|
+{- output_on(); "" -}
|
|
|
+else()
|
|
|
+{- output_off() unless $no_shared; "" -}
|
|
|
+ # Shared libraries are UNSUPPORTED in this configuration
|
|
|
+{- output_on() unless $no_shared;
|
|
|
+ output_off() if $no_shared; "" -}
|
|
|
+ add_library(OpenSSL::Crypto SHARED IMPORTED)
|
|
|
+ add_library(OpenSSL::SSL SHARED IMPORTED)
|
|
|
+{- output_off() unless $lib_info{libcrypto}->{shared_import}; "" -}
|
|
|
+ set(OPENSSL_LIBCRYPTO_SHARED "${OPENSSL_RUNTIME_DIR}/{- $lib_info{libcrypto}->{shared} -}")
|
|
|
+ set(OPENSSL_LIBCRYPTO_IMPORT "${OPENSSL_LIBRARY_DIR}/{- $lib_info{libcrypto}->{shared_import} -}")
|
|
|
+ set(OPENSSL_LIBCRYPTO_DEPENDENCIES {- join(' ', @LDLIBS) -})
|
|
|
+ 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}/{- $lib_info{libssl}->{shared} -}")
|
|
|
+ set(OPENSSL_LIBSSL_IMPORT "${OPENSSL_LIBRARY_DIR}/{- $lib_info{libssl}->{shared_import} -}")
|
|
|
+ set(OPENSSL_LIBSSL_DEPENDENCIES OpenSSL::Crypto {- join(' ', @LDLIBS) -})
|
|
|
+ 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})
|
|
|
+{- output_on() unless $lib_info{libcrypto}->{shared_import};
|
|
|
+ output_off() if $lib_info{libcrypto}->{shared_import}; "" -}
|
|
|
+ # Dependencies are assumed to be implied in the shared libraries
|
|
|
+ set(OPENSSL_LIBCRYPTO_SHARED "${OPENSSL_LIBRARY_DIR}/{- $lib_info{libcrypto}->{shared} -}")
|
|
|
+ set_target_properties(OpenSSL::Crypto PROPERTIES
|
|
|
+ IMPORTED_LINK_INTERFACE_LANGUAGES "C"
|
|
|
+ IMPORTED_LOCATION ${OPENSSL_LIBCRYPTO_SHARED})
|
|
|
+
|
|
|
+ set(OPENSSL_LIBSSL_SHARED "${OPENSSL_LIBRARY_DIR}/{- $lib_info{libssl}->{shared} -}")
|
|
|
+ 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})
|
|
|
+{- output_on() if $lib_info{libcrypto}->{shared_import}; "" -}
|
|
|
+{- output_on() if $no_shared; "" -}
|
|
|
+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}")
|
|
|
+
|
|
|
+{- output_off() if $disabled{uplink}; "" -}
|
|
|
+add_library(OpenSSL::applink INTERFACE IMPORTED)
|
|
|
+set_property(TARGET OpenSSL::applink PROPERTY
|
|
|
+ INTERFACE_SOURCES "${OPENSSL_APPLINK_SOURCE}")
|
|
|
+{- output_on() if $disabled{uplink}; "" -}
|
|
|
+
|
|
|
+unset(_ossl_prefix)
|
|
|
+unset(_ossl_use_static_libs)
|