Merge pull request #3 from viklund/master
[bioperl-run.git] / Build.PL
blob531f52446c58f141c7f29508d1196206f0eab1e9
1 #!/usr/bin/perl -w
3 # This is a Module::Build script for BioPerl-Run installation.
4 # See http://search.cpan.org/~kwilliams/Module-Build/lib/Module/Build.pm
6 use strict;
7 use warnings;
8 use Module::Build;
10 my $build = Module::Build->new(
11 dist_name => 'BioPerl-Run',
12 dist_version => '1.006900',
13 module_name => 'Bio::Run',
14 dist_author => 'BioPerl Team <bioperl-l@bioperl.org>',
15 dist_abstract => 'BioPerl-Run - wrapper toolkit',
16 license => 'perl',
17 requires => {
18 'perl' => '5.6.1',
19 'Bio::Root::Version' => '1.006900'
21 recommends => {
22 'Algorithm::Diff' => 0, # generating consensus protein family descriptions: Bio::Tools::Run::TribeMCL
23 'IPC::Run' => 0, # Glimmer and Genemark application wrappers: Bio::Tools::Run::Glimmer Bio::Tools::Run::Genemark
24 'IO::String' => 0, # generating Bio::Tree::Tree from strings: Bio::Tools::Run::Phylo::Phylip::Consense
25 'XML::Twig' => 0, # processing XML data: Bio::Tools::Run::EMBOSSacd
26 'File::Sort' => 0, # BEDTools
27 'Config::Any' => 0 # MCS, Match
29 get_options => {
30 accept => { },
31 network => { },
32 install_scripts => { }
34 auto_features => {
35 Network => {
36 description => "Enable tests that need an internet connection",
37 requires => { 'LWP::UserAgent' => 0 }
40 dynamic_config => 1,
41 #create_makefile_pl => 'passthrough'
44 my $accept = $build->args->{accept};
46 # Optionally have script files installed.
47 if ($build->args('install_scripts') or $accept ? 0 : $build->y_n("Install scripts? y/n", 'n')) {
48 my $files = $build->_find_file_by_type('PLS', 'scripts');
50 my $script_build = File::Spec->catdir($build->blib, 'script');
52 my @tobp;
53 while (my ($file, $dest) = each %$files) {
54 $dest = 'bp_'.File::Basename::basename($dest);
55 $dest =~ s/PLS$/pl/;
56 $dest = File::Spec->catfile($script_build, $dest);
57 $build->copy_if_modified(from => $file, to => $dest);
58 push @tobp, $dest;
61 $build->script_files(\@tobp);
64 # Do network tests?
65 my $do_network_tests = 0;
66 if ($build->args('network')) {
67 $do_network_tests = $build->feature('Network');
69 elsif ($build->feature('Network')) {
70 $do_network_tests = $accept ? 0 : $build->y_n("Do you want to run tests that require connection to servers across the internet\n(likely to cause some failures)? y/n", 'n');
73 if ($do_network_tests) {
74 $build->notes(network => 1);
75 $build->log_info(" - will run internet-requiring tests\n");
76 my $use_email = $build->y_n("Do you want to run tests requiring a valid email address? y/n",'n');
77 if ($use_email) {
78 my $address = $build->prompt("Enter email address:");
79 $build->notes(email => $address);
82 else {
83 $build->notes(network => 0);
84 $build->log_info(" - will not run internet-requiring tests\n");
87 # Create the build script and exit
88 $build->create_build_script;
90 exit;