BuildOptions.pm 669 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  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. while ($env =~ s/(noopt|nostrip|nocheck),?//i) {
  10. $opts{lc $1} = '';
  11. }
  12. while ($env =~ s/(parallel)=(-?\d+),?//i) {
  13. $opts{lc $1} = $2;
  14. }
  15. return \%opts;
  16. }
  17. sub set {
  18. my ($opts, $overwrite) = @_;
  19. my $env = $overwrite ? '' : $ENV{DEB_BUILD_OPTIONS}||'';
  20. if ($env) { $env .= ',' }
  21. while (my ($k, $v) = each %$opts) {
  22. if ($v) {
  23. $env .= "$k=$v,";
  24. } else {
  25. $env .= "$k,";
  26. }
  27. }
  28. $ENV{DEB_BUILD_OPTIONS} = $env if $env;
  29. return $env;
  30. }
  31. 1;