Alien-MariaDB

 view release on metacpan or  search on metacpan

alienfile  view on Meta::CPAN

        ],
        ['%{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.843 second using v1.01-cache-2.11-cpan-e1769b4cff6 )