]> git.donarmstrong.com Git - debhelper.git/commitdiff
refactor --parallel processing
authorJoey Hess <joey@gnu.kitenet.net>
Wed, 28 Oct 2009 21:46:45 +0000 (17:46 -0400)
committerJoey Hess <joey@gnu.kitenet.net>
Wed, 28 Oct 2009 21:46:45 +0000 (17:46 -0400)
Use a function to set the value rather than post-processing.

Debian/Debhelper/Dh_Buildsystems.pm

index 3908145850627160805fd72023844cfafef6b60a..b0e0a568a7d5d00c9505b2206a1423e632c996af 100644 (file)
@@ -127,46 +127,38 @@ sub buildsystems_init {
            "l" => \$opt_list,
            "list" => \$opt_list,
 
-           "j:i" => \$opt_parallel,
-           "parallel:i" => \$opt_parallel,
+           "j:i" => \&set_parallel,
+           "parallel:i" => \&set_parallel,
        );
        $args{options}{$_} = $options{$_} foreach keys(%options);
        Debian::Debhelper::Dh_Lib::init(%args);
+}
 
-       # Post-process parallel building option. Initially $opt_parallel may have
-       # such values:
-       # * undef - no --parallel option was specified. This tells buildsystem class
-       #   not to mess with MAKEFLAGS (with the exception of cleaning MAKEFLAGS
-       #   from pointless unavailable jobserver options to avoid warnings) nor
-       #   enable parallel.
-       # * 1 - --parallel=1 option was specified, hence the package should never be
-       #   built in parallel mode. Cleans MAKEFLAGS if needed.
-       # * 0 - --parallel was specified without interger argument meaning package
-       #   does not want to enforce limit on maximum number of parallel processes.
-       # * N > 1 - --parallel=N was specified where N is the maximum number parallel
-       #   processes the package wants to enforce.
-       # Taken DEB_BUILD_OPTIONS and all this into account, set $opt_parallel to the
-       # number of parallel processes to be used for *this* build.
-       if (defined $opt_parallel) {
-               if ($opt_parallel >= 0 && exists $ENV{DEB_BUILD_OPTIONS}) {
-                       # Parse parallel=n tag
-                       my $n;
-                       foreach my $opt (split(/\s+/, $ENV{DEB_BUILD_OPTIONS})) {
-                               $n = $1 if $opt =~ /^parallel=(\d+)$/;
-                       }
-                       if (defined $n && $n > 0) {
-                               $opt_parallel = $n if $opt_parallel == 0 || $n < $opt_parallel;
+sub set_parallel {
+       my ($option, $value)=@_;
+
+       if ($value >= 0 && exists $ENV{DEB_BUILD_OPTIONS}) {
+               # Parse parallel=n tag
+               my $n;
+               foreach my $opt (split(/\s+/, $ENV{DEB_BUILD_OPTIONS})) {
+                       $n = $1 if $opt =~ /^parallel=(\d+)$/;
+               }
+               if (defined $n && $n > 0) {
+                       if ($value == 0 || $n < $value) {
+                               $opt_parallel = $n;
                        }
                        else {
-                               # Invalid value in the parallel tag. Disable.
-                               $opt_parallel = 1;
+                               $opt_parallel = $value;
                        }
                }
                else {
-                       # In case invalid number was passed
+                       # Invalid value in the parallel tag. Disable.
                        $opt_parallel = 1;
                }
        }
+       else {
+               $opt_parallel = 1;
+       }
 }
 
 sub buildsystems_list {