diff options
author | Lorry Tar Creator <lorry-tar-importer@lorry> | 2015-06-11 22:32:06 +0000 |
---|---|---|
committer | Lorry Tar Creator <lorry-tar-importer@lorry> | 2015-06-11 22:32:06 +0000 |
commit | 467298a34215401cdcbb1dded51bc2aba5f1f41c (patch) | |
tree | 1923f32fbc9cf8f0b4ab291d1eb9fad5ab872d68 /Build.PL | |
download | Module-Build-tarball-master.tar.gz |
Module-Build-0.4214HEADModule-Build-0.4214master
Diffstat (limited to 'Build.PL')
-rw-r--r-- | Build.PL | 148 |
1 files changed, 148 insertions, 0 deletions
diff --git a/Build.PL b/Build.PL new file mode 100644 index 0000000..21ec0b3 --- /dev/null +++ b/Build.PL @@ -0,0 +1,148 @@ +use 5.006001; +use strict; + +BEGIN { + die "CPANPLUS::Dist::Build version 0.08 or later is required to install Module::Build\n" + if $INC{'CPANPLUS/Dist/Build.pm'} && CPANPLUS::Dist::Build->VERSION lt '0.08'; +} + +# On some platforms (*ahem*, MacPerl 5.6.1) "use lib qw(lib);" doesn't +# find the local "lib" directory, so we use File::Spec to do it properly. +use File::Spec 0.82; +use lib File::Spec->catdir('lib'); # use our self to install +# XXX This doesn't carry over to sub processes +use lib File::Spec->catdir('t', 'bundled'); # use bundled modules +use lib File::Spec->catdir('t', 'lib'); # our utilities + +# bootstrap configure_requires prereqs +BEGIN { do 'inc/bootstrap.pl' } + +# We use Module::Build to test & install itself. +use Module::Build; + +# + +my $build = Module::Build->new( + module_name => 'Module::Build', + license => 'perl', + configure_requires => { + 'CPAN::Meta' => '2.142060', + 'Perl::OSType' => 1, + 'Module::Metadata' => '1.000002', + 'version' => '0.87', + }, + build_requires => { + 'File::Temp' => 0.15, # tmpdir() + fixes + 'Test::More' => 0.49, + 'Test::Harness' => 3.16, # PERL5LIB fixes + 'Parse::CPAN::Meta' => '1.4401', + 'CPAN::Meta::YAML' => 0.003, + }, + # KEEP 'requires' as low as possible and target Build/test/install + # Requirements for authors should be implemented as optional features + requires => { + 'perl' => '5.008000', + 'Data::Dumper' => 0, + 'File::Basename' => 0, + 'File::Compare' => 0, + 'File::Copy' => 0, + 'File::Find' => 0, + 'File::Path' => 0, + 'File::Spec' => ($^O eq 'MSWin32' ? 3.30 : '0.82'), # rel2abs() + 'ExtUtils::CBuilder' => 0.27, # major platform fixes + 'ExtUtils::Install' => 0, + 'ExtUtils::Manifest' => 0, + 'ExtUtils::Mkbootstrap' => 0, + 'ExtUtils::ParseXS' => 2.21, # various bug fixes + 'Cwd' => 0, + 'Text::Abbrev' => 0, + 'Text::ParseWords' => 0, + 'Getopt::Long' => 0, + 'Test::Harness' => 0, + 'CPAN::Meta' => '2.142060', + 'Perl::OSType' => ( $^O eq 'bitrig' ? 1.004 : 1 ), # needs 1.0 API + 'version' => 0.87, # No longer requires M::B + 'Module::Metadata' => 1.000002, # uses version.pm + 'Pod::Man' => 2.17, # utf8 support + }, + recommends => { + 'ExtUtils::Install' => 0.30, + 'ExtUtils::Manifest' => 1.54, # public maniskip() + }, + recursive_test_files => 1, + sign => 0, + create_readme => 1, + create_license => 1, + + # overwrite the M::B that shipped in core + installdirs => ($] >= 5.009004 && $] < 5.011 ? 'core' : 'site'), + + # Some CPANPLUS::Dist::Build versions need to allow mismatches + # On logic: thanks to Module::Install, CPAN.pm must set both keys, but + # CPANPLUS sets only the one + allow_mb_mismatch => ( + $ENV{PERL5_CPANPLUS_IS_RUNNING} && ! $ENV{PERL5_CPAN_IS_RUNNING} ? 1 : 0 + ), + + auto_features => { + dist_authoring => { + description => "Create new distributions", + requires => { + 'Archive::Tar' => 1.09, + }, + recommends => { + 'Pod::Readme' => 0.04, + 'Module::Signature' => 0.21, + }, + }, + license_creation => { + description => "Create licenses automatically in distributions", + requires => { + 'Software::License' => 0.103009 + }, + }, + PPM_support => { + description => "Generate PPM files for distributions", + }, + inc_bundling_support => { + description => "Bundle Module::Build in inc/", + requires => { + 'inc::latest' => 0.500, # split out from Module::Build + 'ExtUtils::Install' => 1.54, # also gets us ExtUtils::Installed 1.999_001 + 'ExtUtils::Installed' => 1.999, # technically 1.999_001 is what's available + }, + }, + manpage_support => { + description => "Create Unix man pages", + requires => {'Pod::Man' => 0 }, + }, + HTML_support => { + description => "Create HTML documentation", + requires => {'Pod::Html' => 0}, + }, + }, + + add_to_cleanup => ['t/Sample/pod2htm*'], + script_files => ['bin/config_data'], + meta_merge => { + resources => { + MailingList => 'mailto:module-build@perl.org', + repository => 'https://github.com/Perl-Toolchain-Gang/Module-Build', + IRC => 'irc://irc.perl.org/#toolchain', + } + }, +); + +$build->create_build_script; +if (-f "META.yml" && ! -f "MYMETA.yml") { # fallback if we don't have CPAN::Meta + require File::Copy; + File::Copy::copy("META.yml", "MYMETA.yml") or warn "Error: $!\n"; + if ( -f 'MYMETA.yml' ) { + warn "Copied META.yml to MYMETA.yml for bootstrapping\n"; + } + else { + warn "Could not copy META.yml to MYMETA.yml. That's odd!\n"; + } +} + +# vim:ts=2:sw=2:et:sta |