1
"""distutils_extra.command.build_kdeui
3
Implement DistutilsExtra's 'build_kdeui' command.
6
# Created by Martin Pitt
10
import distutils.dir_util
12
class build_kdeui(distutils.cmd.Command):
14
description = "compile KDE .ui files to .py with pykdeuic4"
16
user_options= [('ui-files=', 'u', '.ui files that should be built'),
17
('ui-package=', 'p', 'Python package name for the generated .py files'),
20
def initialize_options(self):
22
self.ui_package = None
24
def finalize_options(self):
27
if self.ui_package is None:
28
self.ui_package = '%s.kdeui' % self.distribution.get_name()
30
self.destdir = os.path.join('build', 'kdeui', *self.ui_package.split('.'))
31
if self.distribution.package_dir is None:
32
self.distribution.package_dir = {}
33
self.distribution.package_dir[self.ui_package] = self.destdir
34
self.distribution.packages.append(self.ui_package)
40
distutils.dir_util.mkpath(self.destdir)
41
init = os.path.join(self.destdir, '__init__.py')
42
if not os.path.exists(init):
43
open(init, 'w').close()
45
for f in eval(self.ui_files):
46
dest = os.path.join(self.destdir,
47
os.path.splitext(os.path.basename(f))[0] + '.py')
48
print 'kdeui: %s -> %s' % (f, dest)
49
result = subprocess.call(['python', '/usr/bin/pykdeuic4', '-o', dest, f])
51
raise SystemError('The KDE .ui file %s can not be converted' % f)