Alien-Build
view release on metacpan or search on metacpan
corpus/lib/Alien/Foo1/ConfigData.pm view on Meta::CPAN
sub config_names { keys %$config }
sub write {
my $me = __FILE__;
# Can't use Module::Build::Dumper here because M::B is only a
# build-time prereq of this module
require Data::Dumper;
my $mode_orig = (stat $me)[2] & 07777;
chmod($mode_orig | 0222, $me); # Make it writeable
open(my $fh, '+<', $me) or die "Can't rewrite $me: $!";
seek($fh, 0, 0);
while (<$fh>) {
last if /^__DATA__$/;
}
die "Couldn't find __DATA__ token in $me" if eof($fh);
seek($fh, tell($fh), 0);
my $data = [$config, $features, $auto_features];
print($fh 'do{ my '
. Data::Dumper->new([$data],['x'])->Purity(1)->Dump()
. '$x; }' );
truncate($fh, tell($fh));
close $fh;
chmod($mode_orig, $me)
or warn "Couldn't restore permissions on $me: $!";
}
sub feature {
my ($package, $key) = @_;
return $features->{$key} if exists $features->{$key};
my $info = $auto_features->{$key} or return 0;
# Under perl 5.005, each(%$foo) isn't working correctly when $foo
corpus/lib/Alien/Foo2/ConfigData.pm view on Meta::CPAN
sub config_names { keys %$config }
sub write {
my $me = __FILE__;
# Can't use Module::Build::Dumper here because M::B is only a
# build-time prereq of this module
require Data::Dumper;
my $mode_orig = (stat $me)[2] & 07777;
chmod($mode_orig | 0222, $me); # Make it writeable
open(my $fh, '+<', $me) or die "Can't rewrite $me: $!";
seek($fh, 0, 0);
while (<$fh>) {
last if /^__DATA__$/;
}
die "Couldn't find __DATA__ token in $me" if eof($fh);
seek($fh, tell($fh), 0);
my $data = [$config, $features, $auto_features];
print($fh 'do{ my '
. Data::Dumper->new([$data],['x'])->Purity(1)->Dump()
. '$x; }' );
truncate($fh, tell($fh));
close $fh;
chmod($mode_orig, $me)
or warn "Couldn't restore permissions on $me: $!";
}
sub feature {
my ($package, $key) = @_;
return $features->{$key} if exists $features->{$key};
my $info = $auto_features->{$key} or return 0;
# Under perl 5.005, each(%$foo) isn't working correctly when $foo
lib/Alien/Build/Util.pm view on Meta::CPAN
}
# TODO: rmtree if a directory?
if(-e "$dst")
{ unlink "$dst" }
Alien::Build->log("cp $src $dst") if $opt->{verbose};
File::Copy::cp("$src", "$dst") || die "copy error $src => $dst: $!";
if($] < 5.012 && -x "$src" && $^O ne 'MSWin32')
{
# apparently Perl 5.8 and 5.10 do not preserver perms
my $mode = [stat "$src"]->[2] & oct(777);
eval { chmod $mode, "$dst" };
}
}
},
no_chdir => 1,
}, "$src_root");
();
}
sub _dump
t/alien_build_plugin_build_copy.t view on Meta::CPAN
plugin 'Test::Mock',
probe => 'share',
download => 1;
share {
extract sub {
my $bin = Path::Tiny->new('.')->absolute->child('bin')->child('mycommand');
log "bin=$bin";
$bin->parent->mkpath;
$bin->touch;
$bin->chmod(0755) if $^O ne 'MSWin32';
my $include = Path::Tiny->new('.')->absolute->child('include')->child('foo.h');
$include->parent->mkpath;
$include->touch;
};
plugin 'Build::Copy';
};
};
alien_build_ok 'builds okay';
t/alien_build_util.t view on Meta::CPAN
skip_all 'test requires diff' unless which 'diff';
my $tmp1 = Path::Tiny->tempdir("mirror_src_XXXX");
ok -d $tmp1, 'created source directory';
$tmp1->child($_)->mkpath foreach qw( bin etc lib lib/pkgconfig an/empty/one/as/well );
my $bin = $tmp1->child('bin/foomake');
$bin->spew("#!/bin/sh\necho hi\n");
eval { chmod 0755, $bin };
$tmp1->child('etc/foorc')->spew("# example\nfoo = 1\n");
my $lib = $tmp1->child('lib/libfoo.so.1.2.3');
$lib->spew('XYZ');
$tmp1->child('lib/pkgconfig/foo.pc')->spew('name=foo');
if($Config{d_symlink})
{
foreach my $new (map { $tmp1->child("lib/libfoo$_") } qw( .so.1.2 .so.1 .so ))
{
( run in 0.528 second using v1.01-cache-2.11-cpan-496ff517765 )