Alien-MariaDB
view release on metacpan or search on metacpan
],
['%{cmake}', '--build', '.'],
['%{cmake}', '--install', '.', '--prefix', '%{.install.prefix}'],
sub {
my $build = shift;
return unless $^O eq 'darwin';
my $prefix = $build->install_prop->{prefix};
my $destdir = $ENV{DESTDIR} // '';
my $lib = "$destdir$prefix/lib";
for my $dylib (glob "$lib/libmariadb*.dylib") {
next if -l $dylib;
(my $name = $dylib) =~ s{.*/}{};
system('install_name_tool', '-id', "\@rpath/$name", $dylib) == 0
or die "install_name_tool failed on $dylib";
}
},
];
};
sub _vercmp {
t/01-basic.t view on Meta::CPAN
# On macOS share installs, the dylib uses @rpath install name but
# Test::Alien's xs_ok doesn't pass -Wl,-rpath to the linker.
# Temporarily set the install name to the absolute blib path so
# dlopen can find the library, then restore @rpath afterward.
my @_fixup;
if ($^O eq 'darwin' && Alien::MariaDB->install_type eq 'share') {
like(Alien::MariaDB->libs, qr/-Wl,-rpath/, 'darwin share libs includes rpath');
if (Alien::MariaDB->libs =~ /-L(\S+)/) {
my $libdir = $1;
for my $dylib (glob "$libdir/libmariadb*.dylib") {
next if -l $dylib;
(my $name = $dylib) =~ s{.*/}{};
if (system('install_name_tool', '-id', $dylib, $dylib) == 0) {
push @_fixup, [$dylib, $name];
diag "fixup: $name -> $dylib";
}
}
}
}
( run in 0.825 second using v1.01-cache-2.11-cpan-e1769b4cff6 )