diff -Nru pkgbinarymangler-135/debian/changelog pkgbinarymangler-136/debian/changelog --- pkgbinarymangler-135/debian/changelog 2018-02-27 11:47:26.000000000 +0000 +++ pkgbinarymangler-136/debian/changelog 2018-04-06 17:36:55.000000000 +0100 @@ -1,3 +1,9 @@ +pkgbinarymangler (136) UNRELEASED; urgency=medium + + * dh_translations: Add support for meson / ninja projects. (LP: #1751820) + + -- Iain Lane Fri, 06 Apr 2018 17:36:55 +0100 + pkgbinarymangler (135) bionic; urgency=medium [ Colin Watson ] diff -Nru pkgbinarymangler-135/debian/control pkgbinarymangler-136/debian/control --- pkgbinarymangler-135/debian/control 2018-02-27 11:47:26.000000000 +0000 +++ pkgbinarymangler-136/debian/control 2018-04-06 17:36:55.000000000 +0100 @@ -3,6 +3,7 @@ Priority: optional Build-Depends: debhelper (>= 11), perl, + libfile-which-perl, dh-buildinfo, python3, fakeroot, @@ -39,7 +40,9 @@ Architecture: all Depends: ${misc:Depends}, debhelper, - intltool + intltool, + jq, + libfile-which-perl Description: debhelper extension for translation support This package provides a debhelper extension to perform common translation related operations during package build: diff -Nru pkgbinarymangler-135/debian/rules pkgbinarymangler-136/debian/rules --- pkgbinarymangler-135/debian/rules 2018-02-27 11:47:26.000000000 +0000 +++ pkgbinarymangler-136/debian/rules 2018-04-06 17:36:55.000000000 +0100 @@ -2,6 +2,8 @@ VERSION=$(shell dpkg-parsechangelog | sed -n '/^Version:/ { s/^Version: //; p}') +export DH_VERBOSE=1 + # do not mangle ourselves, in case the previous version caused FTBFS export NO_PKG_MANGLE=1 diff -Nru pkgbinarymangler-135/dh_translations pkgbinarymangler-136/dh_translations --- pkgbinarymangler-135/dh_translations 2018-02-07 11:10:56.000000000 +0000 +++ pkgbinarymangler-136/dh_translations 2018-04-06 17:36:55.000000000 +0100 @@ -9,6 +9,7 @@ use strict; use File::Find; +use File::Which; use Debian::Debhelper::Dh_Lib; =head1 SYNOPSIS @@ -37,7 +38,7 @@ =cut -my ($domain, $use_intltool); +my ($domain, $use_intltool, $meson_builddir); # figure out intltool usage and domain sub check_buildsystem { @@ -91,7 +92,33 @@ } } - verbose_print "check_buildsystem: got domain '$domain', using intltool: $use_intltool"; + if (-e "meson.build" && which 'meson') { + my @dirs=(); + find( + sub { + return unless $_ eq "build.ninja"; + push @dirs, $File::Find::dir; + }, + "." + ); + + if ($#dirs > 1) { + warning "more than one build.ninja file found, don't know which one to use"; + return; + } + + $meson_builddir = File::Spec->rel2abs($dirs[0]); + + $domain = qx_cmd ("meson introspect '$meson_builddir' --targets | jq -r -M '.[].name | select(endswith(\"-pot\")) | sub(\"-pot\"; \"\")'"); + + chomp $domain; + } + + if ($domain) { + verbose_print "check_buildsystem: got domain '$domain', using intltool: $use_intltool"; + } else { + warning "could not determine domain"; + } } # Try to build a POT @@ -105,6 +132,8 @@ } else { @cmd=('/usr/bin/intltool-update', '-p', '--verbose'); } + } elsif ($meson_builddir && $domain) { + @cmd=('/usr/bin/ninja', '-C', $meson_builddir, "$domain-pot"); } else { return unless -e 'po/Makefile'; if ($domain) {