Better handling of missing executable pyrcc4, used to compile resource

python setup.py build_ui wasn't very explicit when run without installed pyrcc4,
messages are now better.

Use distutils.spawn instead of subprocess.call
This commit is contained in:
Laurent Monin
2014-10-20 10:48:57 +02:00
parent a5faf52f38
commit f10324501a

View File

@@ -1,9 +1,9 @@
#!/usr/bin/env python
import os.path
import subprocess
from distutils import log
from distutils.dep_util import newer
from distutils.spawn import find_executable, spawn, DistutilsExecError
def main():
@@ -12,8 +12,17 @@ def main():
pyfile = os.path.join(topdir, "picard", "resources.py")
qrcfile = os.path.join(topdir, "resources", "picard.qrc")
if newer(qrcfile, pyfile):
log.info("compiling %s -> %s", qrcfile, pyfile)
subprocess.call(["pyrcc4", qrcfile, "-o", pyfile])
pyrcc = 'pyrcc4'
pyrcc_path = find_executable(pyrcc)
if pyrcc_path is None:
log.error("%s command not found, cannot build resource file !", pyrcc)
else:
cmd = [pyrcc_path, qrcfile, "-o", pyfile]
try:
spawn(cmd, search_path=0)
except DistutilsExecError as e:
log.error(e)
if __name__ == "__main__":
log.set_verbosity(1)