summaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake')
-rwxr-xr-xcmake/debcontrol2cmake.pl17
1 files changed, 17 insertions, 0 deletions
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}) {