This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Fix typos (spelling errors) in cpan/CPANPLUS-Dist-Build/*.
[perl5.git] / cpan / CPANPLUS-Dist-Build / lib / CPANPLUS / Dist / Build.pm
index a42e10a..3add025 100644 (file)
@@ -30,7 +30,7 @@ use Locale::Maketext::Simple    Class => 'CPANPLUS', Style => 'gettext';
 
 local $Params::Check::VERBOSE = 1;
 
-$VERSION = '0.40';
+$VERSION = '0.50';
 
 =pod
 
@@ -98,7 +98,7 @@ BOOL indicating if the C<Build test> command was successful.
 
 =item C<prepared ()>
 
-BOOL indicating if the C<prepare> call exited succesfully
+BOOL indicating if the C<prepare> call exited successfully
 This gets set after C<perl Build.PL>
 
 =item C<distdir ()>
@@ -108,7 +108,7 @@ set after a call to C<prepare>.
 
 =item C<created ()>
 
-BOOL indicating if the C<create> call exited succesfully. This gets
+BOOL indicating if the C<create> call exited successfully. This gets
 set after C<Build> and C<Build test>.
 
 =item C<installed ()>
@@ -192,7 +192,7 @@ The variable C<PERL5_CPANPLUS_IS_EXECUTING> will be set to the full path
 of the C<Build.PL> that is being executed. This enables any code inside
 the C<Build.PL> to know that it is being installed via CPANPLUS.
 
-After a succcesfull C<prepare> you may call C<create> to create the
+After a successful C<prepare> you may call C<create> to create the
 distribution, followed by C<install> to actually install it.
 
 Returns true on success and false on failure.
@@ -275,9 +275,9 @@ sub prepare {
         ### we resolve 'configure requires' here, so we can run the 'perl
         ### Makefile.PL' command
         ### XXX for tests: mock f_c_r to something that *can* resolve and
-        ### something that *doesnt* resolve. Check the error log for ok
+        ### something that *doesn't* resolve. Check the error log for ok
         ### on this step or failure
-        ### XXX make a seperate tarball to test for this scenario: simply
+        ### XXX make a separate tarball to test for this scenario: simply
         ### containing a makefile.pl/build.pl for test purposes?
         my $safe_ver = version->new('0.85_01');
         if ( version->new($CPANPLUS::Internals::VERSION) >= $safe_ver )
@@ -375,47 +375,57 @@ sub _find_prereqs {
 
     my $prereqs = {};
 
-    my $safe_ver = version->new('0.31_03');
+    $prereqs = $dist->find_mymeta_requires()
+       if $dist->can('find_mymeta_requires');
 
-    my $content;
-
-    if ( version->new( $Module::Build::VERSION ) >= $safe_ver and IPC::Cmd->can_capture_buffer ) {
-        my @buildflags = $dist->_buildflags_as_list( $buildflags );
+    if ( keys %$prereqs ) {
+        # Ugly hack
+    }
+    else {
+      my $safe_ver = version->new('0.31_03');
+      my $content;
+      PREREQS: {
+        if ( version->new( $Module::Build::VERSION ) >= $safe_ver and IPC::Cmd->can_capture_buffer ) {
+          my @buildflags = $dist->_buildflags_as_list( $buildflags );
 
-        # Use the new Build action 'prereq_data'
-        my $run_perl    = $conf->get_program('perlwrapper');
+          # Use the new Build action 'prereq_data'
+          my $run_perl    = $conf->get_program('perlwrapper');
 
-        unless ( scalar run(    command => [$perl, $run_perl, BUILD->($dir), 'prereq_data', @buildflags],
+          unless ( scalar run(    command => [$perl, $run_perl, BUILD->($dir), 'prereq_data', @buildflags],
                                 buffer  => \$content,
                                 verbose => 0 ) 
-        ) {
+          ) {
             error( loc( "Build 'prereq_data' failed: %1 %2", $!, $content ) );
-            return;
+            #return;
+          }
+          else {
+            last PREREQS;
+          }
+
         }
 
-    }
-    else {
         my $file = File::Spec->catfile( $dir, '_build', 'prereqs' );
         return unless -f $file;
 
         my $fh = FileHandle->new();
 
         unless( $fh->open( $file ) ) {
-           error( loc( "Cannot open '%1': %2", $file, $! ) );
-           return;
+          error( loc( "Cannot open '%1': %2", $file, $! ) );
+          return;
         }
         
         $content = do { local $/; <$fh> };
-    }
 
-    return unless $content;
-    my $bphash = eval $content;
-    return unless $bphash and ref $bphash eq 'HASH';
-    foreach my $type ('requires', 'build_requires') {
-       next unless $bphash->{$type} and ref $bphash->{$type} eq 'HASH';
-       $prereqs->{$_} = $bphash->{$type}->{$_} for keys %{ $bphash->{$type} };
-    }
+      }
 
+      return unless $content;
+      my $bphash = eval $content;
+      return unless $bphash and ref $bphash eq 'HASH';
+      foreach my $type ('requires', 'build_requires') {
+        next unless $bphash->{$type} and ref $bphash->{$type} eq 'HASH';
+        $prereqs->{$_} = $bphash->{$type}->{$_} for keys %{ $bphash->{$type} };
+      }
+    }
     # Temporary fix
     delete $prereqs->{'perl'};