aboutsummaryrefslogtreecommitdiff
path: root/backends.py
diff options
context:
space:
mode:
Diffstat (limited to 'backends.py')
-rw-r--r--backends.py15
1 files changed, 14 insertions, 1 deletions
diff --git a/backends.py b/backends.py
index fe92a46..11083c2 100644
--- a/backends.py
+++ b/backends.py
@@ -312,6 +312,9 @@ class NinjaBackend(Backend):
self.generate_rules(outfile)
outfile.write('# Build rules for targets\n\n')
[self.generate_target(t, outfile) for t in self.build.get_targets().values()]
+ if len(self.build.pot) > 0:
+ outfile.write('# Build rules for localisation.\n\n')
+ self.generate_po(outfile)
outfile.write('# Test rules\n\n')
self.generate_tests(outfile)
outfile.write('# Install rules\n\n')
@@ -326,6 +329,16 @@ class NinjaBackend(Backend):
outfile.close()
os.replace(tempfilename, outfilename)
+ def generate_po(self, outfile):
+ for p in self.build.pot:
+ (packagename, languages, subdir) = p
+ input_file = os.path.join(subdir, 'POTFILES')
+ elem = NinjaBuildElement('pot', 'GEN_POT', [])
+ elem.add_item('OUTFILE', packagename + '.pot')
+ elem.add_item('FILELIST', os.path.join(self.environment.get_source_dir(), input_file))
+ elem.add_item('OUTDIR', os.path.join(self.environment.get_source_dir(), subdir))
+ elem.write(outfile)
+
def generate_coverage_rules(self, outfile):
(gcovr_exe, lcov_exe, genhtml_exe) = environment.find_coverage_tools()
added_rule = False
@@ -510,7 +523,7 @@ class NinjaBackend(Backend):
def generate_gettext_rules(self, outfile):
rule = 'rule GEN_POT\n'
- command = " command = xgettext -p '$OUTDIR' -D '%s' -k_ -o '$OUTFILE'\n" % \
+ command = " command = xgettext -p $OUTDIR -f $FILELIST -D '%s' -k_ -o $OUTFILE\n" % \
self.environment.get_source_dir()
outfile.write(rule)
outfile.write(command)