1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155
|
use inc::Module::Install 1.00;
use File::Spec;
$|=1;
name 'HTML-FormFu';
perl_version '5.008001';
# required for legacy check below
include_deps 'IO::Interactive' => '0.04';
{
# check for old non-Moose version
eval { require HTML::FormFu::Element::_Field };
if ( !$@ ) {
my $path = $INC{'HTML/FormFu/Element/_Field.pm'};
my ( $volume, $dir, $file ) = File::Spec->splitpath( $path );
my @dirs = File::Spec->splitdir( $dir );
# get rid of HTML/FormFu/Element
splice @dirs, -4;
my $lib_dir = File::Spec->catdir( @dirs );
my $lib_path = File::Spec->catpath( $volume, $lib_dir );
my $msg = <<ERROR;
Files from an older, pre-0.09000 version of HTML-FormFu have been detected
in directory: '$lib_path'.
This will cause problems if you use HTML::FormFu::Preload, and will also
cause spurious warnings during the test suite run.
We strongly recommend you manually remove old HTML-FormFu files before
continuing.
ERROR
eval { require IO::Interactive };
if ( IO::Interactive::is_interactive() ) {
warn <<WARN;
***Warning***
$msg
Continue?
WARN
chomp( my $answer = <STDIN> );
if ( $answer !~ /y/i ) {
die "Remove old HTML-FormFu files and retry\n";
}
}
else {
die <<ERROR;
***Error***
$msg
Will not continue non-interactively
ERROR
}
}
}
if ( -e 'MANIFEST.SKIP' ) {
system( 'pod2text lib/HTML/FormFu.pm > README' );
}
all_from 'lib/HTML/FormFu.pm';
repository 'git://github.com/fireartist/HTML-FormFu.git';
# this is the lowest version of Exporter I can identify that exports import()
# it's bundled with perl 5.83
# version 5.567 that ships with perl 5.82 is no good
requires 'Exporter' => '5.57';
requires 'Captcha::reCAPTCHA' => 0.93;
requires 'Carp';
requires 'Class::Accessor::Chained::Fast';
requires 'Class::MOP::Method';
requires 'Clone' => '0.31';
requires 'Config::Any' => '0.18'; # 0.10 - supports multi-doc config files
# 0.18 - prefers YAML::XS for YAML
requires 'Crypt::CBC';
requires 'Crypt::DES';
requires 'Cwd';
requires 'Data::Visitor' => 0.26; # when it dumped Any::Moose for Moose
requires 'Data::Visitor::Callback';
requires 'Date::Calc';
requires 'DateTime' => '0.54'; # required for string overloading
requires 'DateTime::Format::Strptime' => '1.2000';
requires 'DateTime::Format::Builder' => '0.7901'; # fixes memory leaks
requires 'DateTime::Format::Natural';
requires 'DateTime::Format::Strptime';
requires 'DateTime::Locale' => '0.45';
requires 'Email::Valid';
requires 'Encode';
requires 'Fatal';
requires 'File::Copy';
requires 'File::Find';
requires 'File::ShareDir';
requires 'File::Spec';
requires 'File::Temp';
requires 'Hash::Flatten';
requires 'HTML::Scrubber';
requires 'HTML::TokeParser::Simple' => '3.14';
requires 'HTTP::Headers' => '1.64';
requires 'IO::File';
requires 'List::MoreUtils';
requires 'List::Util';
requires 'Locale::Maketext';
requires 'Module::Pluggable';
requires 'Moose' => '1.00'; # Reasonable default until we get test results
requires 'Moose::Role';
requires 'Moose::Util';
requires 'MooseX::Aliases';
requires 'MooseX::Attribute::Chained' => '1.0.1';
requires 'MooseX::SetOnce';
requires 'Number::Format';
requires 'Readonly';
requires 'Regexp::Common';
requires 'Path::Class::File';
requires 'Scalar::Util';
requires 'Storable';
requires 'Task::Weaken'; # to ensure Scalar::Util was built with weaken()
requires 'Template'; # form->start and ->end still require TT
# so does t/elements/render_method
requires 'YAML::XS' => '0.32';
test_requires 'CGI' => '3.37'; # for file POST tests
test_requires 'POSIX';
test_requires 'Test::More' => '0.92';
eval "require Test::Aggregate::Nested";
$^O eq 'MSWin32' || $@ ? tests_recursive 't' : tests 't/*.t';
no_index directory => 'examples';
install_script('bin/html_formfu_deploy.pl');
install_script('bin/html_formfu_dumpconf.pl');
install_share();
# Developers on MS Windows must have Module::Install::PerlTar installed
# This fixes the problem of tar files having world-writable files,
# which causes PAUSE to choke
eval {
use_ptar() if author_context && $^O =~/(?:ms|cyg)win/i;
};
if ($@) {
die "Module::Install::PerlTar must be installed when Makefile.PL is run by an author on MS Windows\n";
}
&WriteAll;
|