From 4662406a46fa3626938bf1e02780ab3b83b44ee0 Mon Sep 17 00:00:00 2001 From: Pino Toscano Date: Sat, 15 Feb 2014 16:39:09 +0100 Subject: debcontrol2cmake.pl: filter out binaries not belonging to build arch --- cmake/debcontrol2cmake.pl | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'cmake') diff --git a/cmake/debcontrol2cmake.pl b/cmake/debcontrol2cmake.pl index fc160de..5496342 100755 --- a/cmake/debcontrol2cmake.pl +++ b/cmake/debcontrol2cmake.pl @@ -20,6 +20,20 @@ use warnings; use Dpkg::Control::Info; use Dpkg::Control; +use Dpkg::Arch; + +sub samearch { + my $arch = shift; + my @archlist = split(/\s+/, shift); + + foreach my $a (@archlist) { + if (system("dpkg-architecture", "-a$arch", "-i$a") == 0) { + return 1; + } + } + + return 0; +} # Parse command line arguments my @fields; @@ -36,11 +50,14 @@ for (my $i = 0; $i < @ARGV; $i++) { } } +my $arch = Dpkg::Arch::get_build_arch(); + # Retrieve requested fields and generate set statements my $control = Dpkg::Control::Info->new("debian/control"); foreach my $pkg ($control->{source}, @{$control->{packages}}) { my $pkgok; my $pkgname = ($pkg->get_type() == CTRL_INFO_SRC) ? "Source" : $pkg->{Package}; + next if $pkg->get_type() == CTRL_INFO_PKG && !samearch($arch, $pkg->{"Architecture"}); foreach my $field (@fields) { my $val; if (exists $pkg->{$field}) { -- cgit v1.2.3