Added interactive font selection and update
[ugit.git] / buildutils / po2qm.py
blob089e84b21a2ee245d55e1eceefceeca1535865a8
1 #!/usr/bin/env python
2 import os
3 import Action
4 import Object
5 import Params
6 import Utils
7 import Common
9 "Converts .po files to the Qt .qm format"
11 NAME='po2qm'
12 class po2qm_obj(Object.genobj):
14 s_default_ext = ['.po']
15 def __init__(self):
16 Object.genobj.__init__(self, 'other')
17 self.inst_var = 'QMDIR'
18 self.inst_dir = ''
19 self.chmod = 0644
21 def apply(self):
22 # create the nodes corresponding to the sources
23 for filename in self.to_list(self.source):
25 base, ext = os.path.splitext(filename)
26 if not ext in self.s_default_ext:
27 Params.fatal("unknown file " + filename)
29 split_filename = Utils.split_path(filename)
30 node = self.path.find_source_lst(split_filename)
32 task = self.create_task(NAME, self.env, 101)
33 task.set_inputs(node)
34 task.set_outputs(node.change_ext('.qm'))
36 def install(self):
37 for i in self.m_tasks:
38 current = Params.g_build.m_curdirnode
39 lst=[a.relpath_gen(current) for a in i.m_outputs]
40 Common.install_files(self.inst_var, self.inst_dir, lst, chmod=self.chmod)
42 def setup(env):
43 Object.register(NAME, po2qm_obj)
44 Action.simple_action(NAME, '${MSGFMT} ${MSGFMT_FLAGS} -o ${TGT} ${SRC}', color='YELLOW')
46 def detect(conf):
47 if not conf.find_program('msgfmt', var='MSGFMT'):
48 Params.fatal('Error: missing msgfmt executable.')
49 return False
50 conf.env['MSGFMT_FLAGS'] = '--qt'
51 conf.env['MSGFMT_EXT'] = ['.po']
52 conf.env['QMDIR'] = os.path.join(
53 conf.env['PREFIX'], 'share',
54 Utils.g_module.APPNAME, 'qm')
55 return True