[ Mini Kiebo ]
Server: Windows NT DESKTOP-5B8S0D4 6.2 build 9200 (Windows 8 Professional Edition) i586
Path:
D:
/
0xampp
/
perl
/
lib
/
Module
/
CPANTS
/
Kwalitee
/
[
Home
]
File: NeedsCompiler.pm
package Module::CPANTS::Kwalitee::NeedsCompiler; use warnings; use strict; our $VERSION = '1.01'; $VERSION =~ s/_//; ## no critic sub order { 200 } ################################################################## # Analyse ################################################################## sub analyse { my $class = shift; my $me = shift; my $files = $me->d->{files_array}; foreach my $f (@$files) { if ($f =~ /\.[hc]$/i or $f =~ /\.xs$/i) { $me->d->{needs_compiler} = 1; return; } } if (defined ref($me->d->{prereq}) and ref($me->d->{prereq}) eq 'ARRAY') { for my $m (@{ $me->d->{prereq} }) { if ($m->{requires} =~ /^Inline::/ or $m->{requires} eq 'ExtUtils::CBuilder' or $m->{requires} eq 'ExtUtils::ParseXS') { $me->d->{needs_compiler} = 1; return; } } } return; } ################################################################## # Kwalitee Indicators ################################################################## sub kwalitee_indicators{ return [ ]; } q{Favourite compiler: gcc}; __END__ =encoding UTF-8 =head1 NAME Module::CPANTS::Kwalitee::NeedsCompiler - Checks if the module needs a (probably C) compiler =head1 SYNOPSIS Checks if there is some indication in the module that it needs a C compiler to build and install =head1 DESCRIPTION =head2 Methods =head3 order Defines the order in which Kwalitee tests should be run. Returns C<200>. =head3 analyse Checks for file with F<.c>, F<.h> or F<.xs> extensions. Check is the module depends on any of the Inline:: modules or on ExtUtils::CBuilder or ExtUtils::ParseXS. =head3 TODO: How to recognize cases such as https://metacpan.org/release/GAAS/Perl-API-0.01/ and https://metacpan.org/release/Term-Size-Perl that generate the .c files during installation In addition there are modules that can work without their XS part. E.g. Scalar-List-Utils, Net-DNS, Template-Toolkit For our purposes these all should be marked as "need C compiler" as they need it for their full functionality and speed. =head3 kwalitee_indicators No Kwalitee Indicator. =head1 SEE ALSO L<Module::CPANTS::Analyse> =head1 AUTHOR L<Gábor Szabó|https://metacpan.org/author/szabgab> =head1 COPYRIGHT AND LICENSE Copyright © 2006–2008 L<Gábor Szabó|https://metacpan.org/author/szabgab> You may use and distribute this module according to the same terms that Perl is distributed under.