BuildOptions.pm 602 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. package Dpkg::BuildOptions;
  2. use strict;
  3. use warnings;
  4. sub parse {
  5. my ($env) = @_;
  6. $env ||= $ENV{DEB_BUILD_OPTIONS};
  7. unless ($env) { return {}; }
  8. my %opts;
  9. if ($env =~ s/(noopt|nostrip|nocheck),?//ig) {
  10. $opts{lc $1} = '';
  11. } elsif ($env =~ s/(parallel)=(-?\d+),?//ig) {
  12. $opts{lc $1} = $2;
  13. }
  14. return \%opts;
  15. }
  16. sub set {
  17. my ($opts, $overwrite) = @_;
  18. my $env = $overwrite ? '' : $ENV{DEB_BUILD_OPTIONS}||'';
  19. if ($env) { $env .= ',' }
  20. while (my ($k, $v) = each %$opts) {
  21. if ($v) {
  22. $env .= "$k=$v,";
  23. } else {
  24. $env .= "$k,";
  25. }
  26. }
  27. }
  28. 1;