Alien-Base-ModuleBuild
view release on metacpan or search on metacpan
- Alien::Base::ModuleBuild::File
- Alien::Base::ModuleBuild::Repository.*
- Alien::Base::ModuleBuild::Utils
# these are just overriden methods
- Alien::Base::ModuleBuild#new
- Alien::Base::ModuleBuild#do_system
- Alien::Base::ModuleBuild#process_share_dir_files
# these are just private methods that probably should have had a prefix
- Alien::Base::ModuleBuild#alien_validate_repo
- Alien::Base::ModuleBuild#alien_configure
- Alien::Base::ModuleBuild#alien_create_repositories
- Alien::Base::ModuleBuild#alien_detect_blib_scheme
- Alien::Base::ModuleBuild#alien_exec_prefix
- Alien::Base::ModuleBuild#alien_find_lib_paths
- Alien::Base::ModuleBuild#alien_generate_manual_pkgconfig
- Alien::Base::ModuleBuild#alien_init_temp_dir
- Alien::Base::ModuleBuild#alien_library_destination
- Alien::Base::ModuleBuild#alien_load_pkgconfig
- Alien::Base::ModuleBuild#alien_refresh_manual_pkgconfig
lib/Alien/Base/ModuleBuild.pm view on Meta::CPAN
if ($repo->{protocol} eq $var_protocol) {
$repo->{$var_key} = $ENV{$var};
}
}
push @repos, $self->alien_repository_class($repo->{protocol} || 'default')->new( $repo );
}
# check validation, including c compiler for src type
@repos =
grep { $self->alien_validate_repo($_) }
@repos;
unless (@repos) {
croak "No valid repositories available";
}
return @repos;
}
sub alien_validate_repo {
my $self = shift;
my ($repo) = @_;
my $platform = $repo->{platform};
# return true if platform is undefined
return 1 unless defined $platform;
# if $valid is src, check for c compiler
if ($platform eq 'src') {
return !$repo->{c_compiler_required} || $self->have_c_compiler;
t/alien_base_modulebuild.t view on Meta::CPAN
subtest 'validation' => sub {
local $CWD = _new_temp();
my $builder = builder(
module_name => 'My::Test::Module',
dist_version => '1.234.567',
);
ok( $builder->alien_validate_repo( {platform => undef} ), "undef validates to true");
subtest 'windows test' => sub {
skip_all "Windows test" unless $builder->is_windowsish();
ok( $builder->alien_validate_repo( {platform => 'Windows'} ), "platform Windows on Windows");
ok( ! $builder->alien_validate_repo( {platform => 'Unix'} ), "platform Unix on Windows is false");
};
subtest 'unix test' => sub {
skip_all "Unix test" unless $builder->is_unixish();
ok( $builder->alien_validate_repo( {platform => 'Unix'} ), "platform Unix on Unix");
ok( ! $builder->alien_validate_repo( {platform => 'Windows'} ), "platform Windows on Unix is false");
};
subtest 'need c compiler' => sub {
skip_all "Needs c compiler" unless $builder->have_c_compiler();
ok( $builder->alien_validate_repo( {platform => 'src'} ), "platform src");
};
};
subtest 'basic interpolation' => sub {
my $builder = builder();
is( $builder->alien_interpolate('%phello'), $builder->alien_exec_prefix . 'hello', 'prefix interpolation');
is( $builder->alien_interpolate('%%phello'), '%phello', 'no prefix interpolation with escape');
( run in 0.502 second using v1.01-cache-2.11-cpan-a5abf4f5562 )