use 5.006001; use strict; use lib 'lib'; # use our self to install # 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', 'File::Spec' => '0.82', 'File::Copy' => 0, 'File::Basename' => 0, 'File::Path' => 0, }, # KEEP 'requires' as low as possible and target Build/test/install # Requirements for authors should be implemented as optional features requires => { 'perl' => '5.006001', '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, 'TAP::Harness' => 3.29, '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 ($^O eq 'MSWin32' ? ('ExtUtils::PL2Bat' => 0) : ()) }, test_requires => { 'File::Temp' => 0.15, # tmpdir() + fixes 'Test::More' => 0.49, 'TAP::Harness' => 3.29, # TAP::Harness::Env 'Parse::CPAN::Meta' => '1.4401', 'CPAN::Meta::YAML' => 0.003, }, 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