67 lines
2 KiB
Perl
67 lines
2 KiB
Perl
#! /usr/bin/env perl
|
|
#
|
|
# CC0 license applied, see LICENSE.md
|
|
|
|
package WrapOpenSSL;
|
|
use strict;
|
|
use warnings;
|
|
|
|
use File::Basename;
|
|
use File::Spec::Functions;
|
|
|
|
sub load {
|
|
my ($class, $p) = @_;
|
|
my $app = $p->{app_prove};
|
|
|
|
# turn on verbosity
|
|
my $verbose = $ENV{CTEST_INTERACTIVE_DEBUG_MODE} || $app->verbose();
|
|
$app->verbose( $verbose );
|
|
|
|
my $openssl_libdir = dirname($ENV{OPENSSL_CRYPTO_LIBRARY})
|
|
if $ENV{OPENSSL_CRYPTO_LIBRARY};
|
|
my $openssl_bindir = dirname($ENV{OPENSSL_PROGRAM})
|
|
if $ENV{OPENSSL_PROGRAM};
|
|
my $openssl_rootdir = $ENV{OPENSSL_ROOT_DIR};
|
|
my $openssl_rootdir_is_buildtree =
|
|
$openssl_rootdir && -d catdir($openssl_rootdir, 'configdata.pm');
|
|
|
|
unless ($openssl_libdir) {
|
|
$openssl_libdir = $openssl_rootdir_is_buildtree
|
|
? $openssl_rootdir
|
|
: catdir($openssl_rootdir, 'lib');
|
|
}
|
|
unless ($openssl_bindir) {
|
|
$openssl_bindir = $openssl_rootdir_is_buildtree
|
|
? catdir($openssl_rootdir, 'apps')
|
|
: catdir($openssl_rootdir, 'bin');
|
|
}
|
|
|
|
if ($openssl_libdir) {
|
|
# Variants of library paths
|
|
$ENV{$_} = join(':', $openssl_libdir, $ENV{$_} // ())
|
|
foreach (
|
|
'LD_LIBRARY_PATH', # Linux, ELF HP-UX
|
|
'DYLD_LIBRARY_PATH', # MacOS X
|
|
'LIBPATH', # AIX, OS/2
|
|
);
|
|
if ($verbose) {
|
|
print STDERR "Added $openssl_libdir to:\n";
|
|
print STDERR " LD_LIBRARY_PATH, DYLD_LIBRARY_PATH, LIBPATH\n";
|
|
}
|
|
}
|
|
|
|
if ($openssl_bindir) {
|
|
# Binary path, works the same everywhere
|
|
$ENV{PATH} = join(':', $openssl_bindir, $ENV{PATH});
|
|
if ($verbose) {
|
|
print STDERR "Added $openssl_bindir to:\n";
|
|
print STDERR " PATH\n";
|
|
}
|
|
}
|
|
if ($verbose) {
|
|
print STDERR "$_=", $ENV{$_} // '', "\n"
|
|
foreach qw(LD_LIBRARY_PATH DYLD_LIBRARY_PATH LIBPATH PATH);
|
|
}
|
|
}
|
|
|
|
1;
|