]> git.donarmstrong.com Git - debhelper.git/blobdiff - Debian/Debhelper/Dh_Lib.pm
dpkg-buildflags is only used to set environment in v9
[debhelper.git] / Debian / Debhelper / Dh_Lib.pm
index 51b53d3e600b158223f6b32ec68eab16abb4556e..5a7c3e4a696172de077ba3f387241d0fa162517b 100644 (file)
@@ -18,7 +18,7 @@ use vars qw(@ISA @EXPORT %dh);
            &inhibit_log &load_log &write_log &commit_override_log
            &dpkg_architecture_value &sourcepackage
            &is_make_jobserver_unavailable &clean_jobserver_makeflags
-           &cross_command);
+           &cross_command &set_buildflags);
 
 my $max_compat=9;
 
@@ -900,4 +900,26 @@ sub cross_command {
        }
 }
 
+# Sets environment variables from dpkg-buildflags. Avoids changing
+# any existing environment variables.
+sub set_buildflags {
+       return if $ENV{DH_INTERNAL_BUILDFLAGS} || compat(8);
+       $ENV{DH_INTERNAL_BUILDFLAGS}=1;
+
+       eval "use Dpkg::BuildFlags";
+       if ($@) {
+               warning "unable to load build flags: $@";
+               return;
+       }
+
+       my $buildflags = Dpkg::BuildFlags->new();
+       $buildflags->load_config();
+       foreach my $flag ($buildflags->list()) {
+               next unless $flag =~ /^[A-Z]/; # Skip flags starting with lowercase
+               if (! exists $ENV{$flag}) {
+                       $ENV{$flag} = $buildflags->get($flag);
+               }
+       }
+}
+
 1