X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Debian%2FDebhelper%2FDh_Lib.pm;h=5a7c3e4a696172de077ba3f387241d0fa162517b;hb=cf88cb54bfc44e8a48eacc3bd6e852d7413780f7;hp=51b53d3e600b158223f6b32ec68eab16abb4556e;hpb=9a43d7dbf76c71949b98522f0a80f05e1115a3d6;p=debhelper.git diff --git a/Debian/Debhelper/Dh_Lib.pm b/Debian/Debhelper/Dh_Lib.pm index 51b53d3..5a7c3e4 100644 --- a/Debian/Debhelper/Dh_Lib.pm +++ b/Debian/Debhelper/Dh_Lib.pm @@ -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