]> git.saurik.com Git - apt.git/commit - CMake/Translations.cmake
CMake: Translations: Avoid rebuilding .mo if .pot did not change
authorJulian Andres Klode <jak@debian.org>
Tue, 9 Aug 2016 11:10:28 +0000 (13:10 +0200)
committerJulian Andres Klode <jak@debian.org>
Wed, 10 Aug 2016 14:11:16 +0000 (16:11 +0200)
commite164341c20625f62a44be16e6f3fbab66334f130
treecaf82754b6dc3c55d94aca79a01b83fd855710aa
parentddf40a42f5a699086466990f85d86e6c4977524a
CMake: Translations: Avoid rebuilding .mo if .pot did not change

Use the witness/byproducts approach to build the translations. A
byproduct of a command is like an output, but may be older than the
input.

Here, we generate a normal template with headers in the normal way
as a witness (and for Launchpad translations), but we also generate
a .pot-tmp0 template file without a header that gets copied to a
.pot-tmp byproduct only if it changed. This way, the .pot-tmp is
only updated if an actual string translation changed. We also
create a custom target for the .pot file that we'll depend on
later in the overall target creating the mo files to ensure that
the template is build before we try to build mo files.

Then we make the msgmerge depend on the .pot-tmp instead of the .pot
file, which means that msgmerge and msgfmt only get re-run if a string
change occured.

Gbp-Dch: ignore
CMake/Translations.cmake