VirtualBox

source: vbox/trunk/src/libs/openssl-3.3.2/exporters/cmake/OpenSSLConfig.cmake.in@ 108403

最後變更 在這個檔案從108403是 108206,由 vboxsync 提交於 5 週 前

openssl-3.3.2: Exported all files to OSE and removed .scm-settings ​bugref:10757

  • 屬性 svn:eol-style 設為 native
  • 屬性 svn:keywords 設為 Author Date Id Revision
檔案大小: 11.2 KB
 
1# Generated by OpenSSL
2{-
3 use lib catdir($config{sourcedir}, 'Configurations');
4 use platform;
5 use Data::Dumper;
6
7 our %lib_info = (
8 map { my %x = ();
9 my $lib_static = platform->staticlib($_);
10 my $lib_shared =
11 (platform->can("sharedlib_simple")
12 ? platform->sharedlib_simple($_)
13 : undef)
14 // platform->sharedlib($_);
15 $x{static} = $lib_static if $lib_static;
16 $x{shared} = $lib_shared if $lib_shared;
17 if (platform->can("sharedlib_import")) {
18 my $lib_shared_import = platform->sharedlib_import($_);
19 $x{shared_import} = $lib_shared_import if $lib_shared_import;
20 }
21 %x ? ( $_ => \%x ) : () }
22 grep { !$unified_info{attributes}->{libraries}->{$_}->{noinst} }
23 @{$unified_info{libraries}}
24 );
25 our $no_static = !$disabled{shared} && !$lib_info{libcrypto}->{static};
26 our $no_shared = $disabled{shared};
27
28 # Unixifying of paths, because that's what CMake understands.
29 # This assumes that the given path is absolute.
30 sub unixify {
31 use File::Spec;
32 use File::Spec::Unix;
33
34 my $path = shift;
35 my $no_file = shift;
36 (my $volume, $directories, $file) = File::Spec->splitpath($path, $no_file // ());
37 $directories = File::Spec::Unix->catdir(File::Spec->splitdir($directories));
38
39 # We know that $volume is ignored by File::Spec::Unix, so we handle it specially
40 # according to the conventions of the platform.
41 $volume =~ s|^(.*?):$|/$1| if $^O eq "vms"; # On VMS, DEV: -> /DEV
42
43 return $volume . File::Spec::Unix->catpath('', $directories, $no_file ? () : $file);
44 }
45 ""
46-}
47# Commands may need to know the format version.
48set(CMAKE_IMPORT_FILE_VERSION 1)
49
50# Avoid duplicate find_package()
51set(_ossl_expected_targets OpenSSL::Crypto OpenSSL::SSL
52 {- output_off() if $disabled{uplink}; "" -}OpenSSL::applink{- output_on() if $disabled{uplink}; "" -})
53set(_ossl_defined_targets)
54set(_ossl_undefined_targets)
55foreach(t IN LISTS _ossl_expected_targets)
56 if(TARGET "${t}")
57 LIST(APPEND _ossl_defined_targets "${t}")
58 else()
59 LIST(APPEND _ossl_undefined_targets "${t}")
60 endif()
61endforeach()
62message(DEBUG "_ossl_expected_targets = ${_ossl_expected_targets}")
63message(DEBUG "_ossl_defined_targets = ${_ossl_defined_targets}")
64message(DEBUG "_ossl_undefined_targets = ${_ossl_undefined_targets}")
65if(NOT _ossl_undefined_targets)
66 # All targets are defined, we're good, just undo everything and return
67 unset(_ossl_expected_targets)
68 unset(_ossl_defined_targets)
69 unset(_ossl_undefined_targets)
70 unset(CMAKE_IMPORT_FILE_VERSION)
71 return()
72endif()
73if(_ossl_defined_targets)
74 # We have a mix of defined and undefined targets. This is hard to reconcile,
75 # and probably the result of another config, or FindOpenSSL.cmake having been
76 # called, or whatever. Therefore, the best course of action is to quit with a
77 # hard error.
78 message(FATAL_ERROR "Some targets defined, others not:\nNot defined: ${_ossl_undefined_targets}\nDefined: ${_ossl_defined_targets}")
79endif()
80unset(_ossl_expected_targets)
81unset(_ossl_defined_targets)
82unset(_ossl_undefined_targets)
83
84{-
85 # It can be argued that 'cmake_path' would be the better choice here. However,
86 # cmake_path is relatively new, while get_filename_component has been around
87 # since before CMake 3.0
88-}
89# Set up the import path, so all other import paths are made relative this file
90get_filename_component(_ossl_prefix "${CMAKE_CURRENT_LIST_FILE}" PATH)
91{-
92 # For each component in $OpenSSL::safe::installdata::CMAKECONFIGDIR[0] relative to
93 # $OpenSSL::safe::installdata::PREFIX[0], have CMake figure out the parent directory.
94 my $d = join('/', unixify(catdir($OpenSSL::safe::installdata::LIBDIR_REL_PREFIX[0],
95 $OpenSSL::safe::installdata::CMAKECONFIGDIR_REL_LIBDIR[0]), 1));
96 $OUT = '';
97 if ($d ne '.') {
98 $OUT .= 'get_filename_component(_ossl_prefix "${_ossl_prefix}" PATH)' . "\n"
99 foreach (split '/', $d);
100 }
101-}
102if(_ossl_prefix STREQUAL "/")
103 set(_ossl_prefix "")
104endif()
105
106{- output_off() unless $disabled{shared}; "" -}
107set(_ossl_use_static_libs True)
108{- output_on() unless $disabled{shared}; "" -}
109if(OPENSSL_USE_STATIC_LIBS)
110 set(_ossl_use_static_libs True)
111elseif(DEFINED OPENSSL_USE_STATIC_LIBS)
112 # We know OPENSSL_USE_STATIC_LIBS is defined and False
113 if(_ossl_use_static_libs)
114 # OPENSSL_USE_STATIC_LIBS is explicitly false, indicating that shared libraries are
115 # required. However, _ossl_use_static_libs indicates that no shared libraries are
116 # available. The best course of action is to simply return and leave it to CMake to
117 # use another OpenSSL config.
118 unset(_ossl_use_static_libs)
119 unset(CMAKE_IMPORT_FILE_VERSION)
120 return()
121 endif()
122endif()
123
124# Version, copied from what find_package() gives, for compatibility with FindOpenSSL.cmake
125set(OPENSSL_VERSION "${OpenSSL_VERSION}")
126set(OPENSSL_VERSION_MAJOR "${OpenSSL_VERSION_MAJOR}")
127set(OPENSSL_VERSION_MINOR "${OpenSSL_VERSION_MINOR}")
128set(OPENSSL_VERSION_FIX "${OpenSSL_VERSION_PATCH}")
129set(OPENSSL_FOUND YES)
130
131# Directories and names
132set(OPENSSL_LIBRARY_DIR "${_ossl_prefix}/{- unixify($OpenSSL::safe::installdata::LIBDIR_REL_PREFIX[0], 1); -}")
133set(OPENSSL_INCLUDE_DIR{- $OUT = '';
134 $OUT .= ' "${_ossl_prefix}/' . $_ . '"'
135 foreach (@OpenSSL::safe::installdata::INCLUDEDIR_REL_PREFIX); -})
136set(OPENSSL_ENGINES_DIR "${_ossl_prefix}/{- unixify($OpenSSL::safe::installdata::LIBDIR_REL_PREFIX[0], 1); -}/{- unixify($OpenSSL::safe::installdata::ENGINESDIR_REL_LIBDIR[0], 1); -}")
137set(OPENSSL_MODULES_DIR "${_ossl_prefix}/{- unixify($OpenSSL::safe::installdata::LIBDIR_REL_PREFIX[0], 1); -}/{- unixify($OpenSSL::safe::installdata::MODULESDIR_REL_LIBDIR[0], 1); -}")
138set(OPENSSL_RUNTIME_DIR "${_ossl_prefix}/{- unixify($OpenSSL::safe::installdata::BINDIR_REL_PREFIX[0], 1); -}")
139{- output_off() if $disabled{uplink}; "" -}
140set(OPENSSL_APPLINK_SOURCE "${_ossl_prefix}/{- unixify($OpenSSL::safe::installdata::APPLINKDIR_REL_PREFIX[0], 1); -}/applink.c")
141{- output_on() if $disabled{uplink}; "" -}
142set(OPENSSL_PROGRAM "${OPENSSL_RUNTIME_DIR}/{- platform->bin('openssl') -}")
143
144# Set up the imported targets
145if(_ossl_use_static_libs)
146{- output_off() unless $no_static; "" -}
147 # Static libraries are UNSUPPORTED in this configuration
148{- output_on() unless $no_static; output_off() if $no_static; "" -}
149 add_library(OpenSSL::Crypto STATIC IMPORTED)
150 add_library(OpenSSL::SSL STATIC IMPORTED)
151
152 set(OPENSSL_LIBCRYPTO_STATIC "${OPENSSL_LIBRARY_DIR}/{- $lib_info{libcrypto}->{static} -}")
153 set(OPENSSL_LIBCRYPTO_DEPENDENCIES {- join(' ', @OpenSSL::safe::installdata::LDLIBS) -})
154 set_target_properties(OpenSSL::Crypto PROPERTIES
155 IMPORTED_LINK_INTERFACE_LANGUAGES "C"
156 IMPORTED_LOCATION ${OPENSSL_LIBCRYPTO_STATIC})
157 set_property(TARGET OpenSSL::Crypto
158 PROPERTY INTERFACE_LINK_LIBRARIES ${OPENSSL_LIBCRYPTO_DEPENDENCIES})
159
160 set(OPENSSL_LIBSSL_STATIC "${OPENSSL_LIBRARY_DIR}/{- $lib_info{libssl}->{static} -}")
161 set(OPENSSL_LIBSSL_DEPENDENCIES OpenSSL::Crypto)
162 set_target_properties(OpenSSL::SSL PROPERTIES
163 IMPORTED_LINK_INTERFACE_LANGUAGES "C"
164 IMPORTED_LOCATION ${OPENSSL_LIBSSL_STATIC})
165 set_property(TARGET OpenSSL::SSL
166 PROPERTY INTERFACE_LINK_LIBRARIES ${OPENSSL_LIBSSL_DEPENDENCIES})
167
168 # Directories and names compatible with CMake's FindOpenSSL.cmake
169 set(OPENSSL_CRYPTO_LIBRARY ${OPENSSL_LIBCRYPTO_STATIC})
170 set(OPENSSL_CRYPTO_LIBRARIES ${OPENSSL_CRYPTO_LIBRARY} ${OPENSSL_LIBCRYPTO_DEPENDENCIES})
171 set(OPENSSL_SSL_LIBRARY ${OPENSSL_LIBSSL_STATIC})
172 set(OPENSSL_SSL_LIBRARIES ${OPENSSL_SSL_LIBRARY} ${OPENSSL_LIBSSL_DEPENDENCIES})
173 set(OPENSSL_LIBRARIES ${OPENSSL_SSL_LIBRARY} ${OPENSSL_LIBSSL_DEPENDENCIES} ${OPENSSL_LIBCRYPTO_DEPENDENCIES})
174{- output_on(); "" -}
175else()
176{- output_off() unless $no_shared; "" -}
177 # Shared libraries are UNSUPPORTED in this configuration
178{- output_on() unless $no_shared;
179 output_off() if $no_shared; "" -}
180 add_library(OpenSSL::Crypto SHARED IMPORTED)
181 add_library(OpenSSL::SSL SHARED IMPORTED)
182{- output_off() unless $lib_info{libcrypto}->{shared_import}; "" -}
183 set(OPENSSL_LIBCRYPTO_SHARED "${OPENSSL_RUNTIME_DIR}/{- $lib_info{libcrypto}->{shared} -}")
184 set(OPENSSL_LIBCRYPTO_IMPORT "${OPENSSL_LIBRARY_DIR}/{- $lib_info{libcrypto}->{shared_import} -}")
185 set(OPENSSL_LIBCRYPTO_DEPENDENCIES {- join(' ', @LDLIBS) -})
186 set_target_properties(OpenSSL::Crypto PROPERTIES
187 IMPORTED_LINK_INTERFACE_LANGUAGES "C"
188 IMPORTED_IMPLIB ${OPENSSL_LIBCRYPTO_IMPORT}
189 IMPORTED_LOCATION ${OPENSSL_LIBCRYPTO_SHARED})
190 set_property(TARGET OpenSSL::Crypto
191 PROPERTY INTERFACE_LINK_LIBRARIES ${OPENSSL_LIBCRYPTO_DEPENDENCIES})
192
193 set(OPENSSL_LIBSSL_SHARED "${OPENSSL_RUNTIME_DIR}/{- $lib_info{libssl}->{shared} -}")
194 set(OPENSSL_LIBSSL_IMPORT "${OPENSSL_LIBRARY_DIR}/{- $lib_info{libssl}->{shared_import} -}")
195 set(OPENSSL_LIBSSL_DEPENDENCIES OpenSSL::Crypto {- join(' ', @LDLIBS) -})
196 set_target_properties(OpenSSL::SSL PROPERTIES
197 IMPORTED_LINK_INTERFACE_LANGUAGES "C"
198 IMPORTED_IMPLIB ${OPENSSL_LIBSSL_IMPORT}
199 IMPORTED_LOCATION ${OPENSSL_LIBSSL_SHARED})
200 set_property(TARGET OpenSSL::SSL
201 PROPERTY INTERFACE_LINK_LIBRARIES ${OPENSSL_LIBSSL_DEPENDENCIES})
202
203 # Directories and names compatible with CMake's FindOpenSSL.cmake
204 set(OPENSSL_CRYPTO_LIBRARY ${OPENSSL_LIBCRYPTO_IMPORT})
205 set(OPENSSL_CRYPTO_LIBRARIES ${OPENSSL_CRYPTO_LIBRARY} ${OPENSSL_LIBCRYPTO_DEPENDENCIES})
206 set(OPENSSL_SSL_LIBRARY ${OPENSSL_LIBSSL_IMPORT})
207 set(OPENSSL_SSL_LIBRARIES ${OPENSSL_SSL_LIBRARY} ${OPENSSL_LIBSSL_DEPENDENCIES})
208 set(OPENSSL_LIBRARIES ${OPENSSL_SSL_LIBRARY} ${OPENSSL_LIBSSL_DEPENDENCIES} ${OPENSSL_LIBCRYPTO_DEPENDENCIES})
209{- output_on() unless $lib_info{libcrypto}->{shared_import};
210 output_off() if $lib_info{libcrypto}->{shared_import}; "" -}
211 # Dependencies are assumed to be implied in the shared libraries
212 set(OPENSSL_LIBCRYPTO_SHARED "${OPENSSL_LIBRARY_DIR}/{- $lib_info{libcrypto}->{shared} -}")
213 set_target_properties(OpenSSL::Crypto PROPERTIES
214 IMPORTED_LINK_INTERFACE_LANGUAGES "C"
215 IMPORTED_LOCATION ${OPENSSL_LIBCRYPTO_SHARED})
216
217 set(OPENSSL_LIBSSL_SHARED "${OPENSSL_LIBRARY_DIR}/{- $lib_info{libssl}->{shared} -}")
218 set_target_properties(OpenSSL::SSL PROPERTIES
219 IMPORTED_LINK_INTERFACE_LANGUAGES "C"
220 IMPORTED_LOCATION ${OPENSSL_LIBSSL_SHARED})
221
222 # Directories and names compatible with CMake's FindOpenSSL.cmake
223 set(OPENSSL_CRYPTO_LIBRARY ${OPENSSL_LIBCRYPTO_SHARED})
224 set(OPENSSL_CRYPTO_LIBRARIES ${OPENSSL_CRYPTO_LIBRARY})
225 set(OPENSSL_SSL_LIBRARY ${OPENSSL_LIBSSL_SHARED})
226 set(OPENSSL_SSL_LIBRARIES ${OPENSSL_SSL_LIBRARY})
227 set(OPENSSL_LIBRARIES ${OPENSSL_SSL_LIBRARIES})
228{- output_on() if $lib_info{libcrypto}->{shared_import}; "" -}
229{- output_on() if $no_shared; "" -}
230endif()
231
232set_target_properties(OpenSSL::Crypto PROPERTIES
233 INTERFACE_INCLUDE_DIRECTORIES "${OPENSSL_INCLUDE_DIR}")
234set_target_properties(OpenSSL::SSL PROPERTIES
235 INTERFACE_INCLUDE_DIRECTORIES "${OPENSSL_INCLUDE_DIR}")
236
237{- output_off() if $disabled{uplink}; "" -}
238add_library(OpenSSL::applink INTERFACE IMPORTED)
239set_property(TARGET OpenSSL::applink PROPERTY
240 INTERFACE_SOURCES "${OPENSSL_APPLINK_SOURCE}")
241{- output_on() if $disabled{uplink}; "" -}
242
243unset(_ossl_prefix)
244unset(_ossl_use_static_libs)
注意: 瀏覽 TracBrowser 來幫助您使用儲存庫瀏覽器

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette