Alien-pkgconf
view release on metacpan or search on metacpan
Makefile.PL view on Meta::CPAN
'File::ShareDir' => '1.102',
},
META_MERGE => {
'meta-spec' => { version => 2 },
resources => {
repository => {
type => 'git',
url => "http://github.com/PerlAlien/Alien-pkgconf.git",
web => "http://github.com/PerlAlien/Alien-pkgconf",
},
bugtracker => {
web => 'https://github.com/PerlAlien/Alien-pkgconf/issues',
},
x_IRC => "irc://irc.perl.org/#native",
},
dynamic_config => 1,
},
);
if($^O eq 'cygwin' || $^O eq 'solaris')
{
$args{BUILD_REQUIRES}->{'Alien::patch'} = '0.09';
}
my($dll) = eval {
require FFI::CheckLib;
FFI::CheckLib::find_lib_or_die(
lib => 'pkgconf',
);
};
my $install_type = 'share';
rmtree '_alien', 0, 0 if -d '_alien';
eval {
die "ALIEN_FORCE" if $ENV{ALIEN_FORCE};
die "ALIEN_INSTALL_TYPE" if defined $ENV{ALIEN_INSTALL_TYPE}
&& $ENV{ALIEN_INSTALL_TYPE} eq 'share';
system 'pkgconf', '--atleast-version=1.5.2', '--max-version=1.8.0', 'libpkgconf';
die "no pkgconf" if $?;
my $cflags = `pkgconf --cflags libpkgconf`;
die "getting cflags" if $?;
chomp $cflags;
my $libs = `pkgconf --libs libpkgconf`;
die "getting libs" if $?;
chomp $libs;
my $version = `pkgconf --modversion libpkgconf`;
die "getting version" if $?;
chomp $version;
require File::Spec;
require JSON::PP;
my $status_filename = File::Spec->catfile('_alien', '05stage.json');
mkdir '_alien' unless -d '_alien';
open my $fh, '>', $status_filename;
print $fh JSON::PP->new->utf8->canonical->encode({
cflags => $cflags,
libs => $libs,
install_type => 'system',
version => $version,
($dll ? (dll => $dll ) : ()),
});
close $fh;
$install_type = 'system';
};
my $error = $@;
if(defined $ENV{ALIEN_INSTALL_TYPE})
{
if($ENV{ALIEN_INSTALL_TYPE} ne $install_type)
{
warn $error if $error;
die "requested install type $ENV{ALIEN_INSTALL_TYPE}, but could not be accomidated";
}
}
print "install type: $install_type\n";
if($install_type eq 'system')
{
delete $args{BUILD_REQUIRES}->{$_} for qw( HTTP::Tiny Archive::Tar Alien::xz );
}
elsif($install_type eq 'share')
{
$args{BUILD_REQUIRES}->{'IO::Socket::SSL'} = 1.56;
$args{BUILD_REQUIRES}->{'Net::SSLeay'} = 1.49;
}
if($^O eq 'MSWin32' && $install_type eq 'share')
{
$args{BUILD_REQUIRES}->{'Alien::MSYS'} = '0.07';
}
my %fallback = (
%{ $args{TEST_REQUIRES} },
%{ $args{BUILD_REQUIRES} },
%{ $args{PREREQ_PM} },
);
unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) {
$args{PREREQ_PM} = \%fallback;
delete $args{TEST_REQUIRES};
delete $args{BUILD_REQUIRES};
}
delete $args{CONFIGURE_REQUIRES}
unless eval { ExtUtils::MakeMaker->VERSION(6.52) };
WriteMakefile(%args);
sub MY::postamble {
$install_type eq 'share'
( run in 1.034 second using v1.01-cache-2.11-cpan-119454b85a5 )