When B<--compat-version> (B<-b>) is present the generated tests will use
C<Test::More> rather than C<Test> which is the default for versions before
-5.7.2 . C<Test::More> will be added to PREREQ_PM in the generated
+5.6.2. C<Test::More> will be added to PREREQ_PM in the generated
C<Makefile.PL>.
=item B<--use-old-tests>
$sub ? sprintf("%d.%03d%02d",$maj,$min,$sub) :
sprintf("%d.%03d", $maj,$min);
} else {
- $compat_version =
- $sub ? sprintf("%d.%03d%03d",$maj,$min,$sub) :
- sprintf("%d.%03d", $maj,$min);
+ $compat_version = sprintf("%d.%03d%03d",$maj,$min,$sub);
}
} else {
my ($maj,$min,$sub) = $compat_version =~ /(\d+)\.(\d\d\d)(\d*)/;
# Remove C and C++ comments
$src =~ s#/\*[^*]*\*+([^/*][^*]*\*+)*/|("(\\.|[^"\\])*"|'(\\.|[^'\\])*'|.[^/"'\\]*)#$2#gs;
+ $src =~ s#//.*$##gm;
while ($src =~ /\benum\s*([\w_]*)\s*\{\s([^}]+)\}/gsc) {
my ($enum_name, $enum_body) = ($1, $2);
my ($key, $declared_val) = $item =~ /(\w+)\s*(?:=\s*(.*))?/;
$val = defined($declared_val) && length($declared_val) ? $declared_val : 1 + $val;
$seen_define{$key} = $val;
- $const_names{$key}++;
+ $const_names{$key} = { name => $key, macro => 1 };
}
} # while (...)
} # if (!defined $opt_e or $opt_e)
}
}
}
-my @const_names = sort keys %const_names;
+my (@const_specs, @const_names);
+
+for (sort(keys(%const_names))) {
+ my $v = $const_names{$_};
+
+ push(@const_specs, ref($v) ? $v : $_);
+ push(@const_names, $_);
+}
-d $modpmdir || mkpath([$modpmdir], 0, 0775);
open(PM, ">$modpmname") || die "Can't create $ext$modpname/$modpmname: $!\n";
XS_FILE => $xsfallback,
DEFAULT_TYPE => $opt_t,
NAME => $module,
- NAMES => \@const_names,
+ NAMES => \@const_specs,
);
print XS "#include \"$constscfname\"\n";
}
my $prereq_pm = '';
-if ( $compat_version < 5.00702 and $new_test )
+if ( $compat_version < 5.006002 and $new_test )
{
$prereq_pm .= q%'Test::More' => 0, %;
}
+elsif ( $compat_version < 5.006002 )
+{
+ $prereq_pm .= q%'Test' => 0, %;
+}
-if ( $compat_version < 5.00600 and !$opt_X and $use_xsloader)
+if ( $compat_version < 5.006 and !$opt_X and $use_xsloader)
{
- $prereq_pm .= q%'XSLoader' => 0, %;
+ $prereq_pm .= q%'XSLoader' => 0, %;
}
print PL <<"END";
XS_FILE => $constsxsfname,
DEFAULT_TYPE => $opt_t,
NAME => $module,
- NAMES => \@const_names,
+ NAMES => \@const_specs,
);
print PL <<"END";
if (eval {require ExtUtils::Constant; 1}) {
my $rm_prereq;
-if ( $compat_version < 5.00702 and $new_test )
+if ( $compat_version < 5.006002 and $new_test )
{
- $rm_prereq = 'Test::More';
+ $rm_prereq = 'Test::More';
+}
+elsif ( $compat_version < 5.006002 )
+{
+ $rm_prereq = 'Test';
}
else
{
- $rm_prereq = 'blah blah blah';
+ $rm_prereq = 'blah blah blah';
}
print RM <<_RMEND_;
# change 'tests => $tests' to 'tests => last_test_to_print';
+use strict;
+use warnings;
+
_END_
my $test_mod = 'Test::More';
-if ( $old_test or ($compat_version < 5.007 and not $new_test ))
+if ( $old_test or ($compat_version < 5.006002 and not $new_test ))
{
my $test_mod = 'Test';