pebble/tools/svg2png/wscript
2025-01-27 11:38:16 -08:00

55 lines
2.8 KiB
Python

import sys
def build(bld):
bdist_base = bld.path.get_bld().make_node('build')
dist_dir = bld.path.get_bld().make_node('dist')
pdc_gen = bld.path.find_node('../generate_pdcs/pdc_gen.py')
image_routines = bld.path.find_node('../pebble_image_routines.py')
pbi2png_script = bld.path.find_node('../pbi2png.py')
setup = bld.path.find_node('setup.py')
pdc2png = bld.path.get_bld().parent.parent.make_node('pdc2png')
def py2app(task):
template = "python {} py2app --bdist-base={} --dist-dir={} --extra-scripts={},{},{} --packages=PIL,ctypes"
ctx = task.generator.bld
try:
ctx.cmd_and_log(template.format(task.inputs[0].abspath(),
task.outputs[0].abspath(),
task.outputs[1].abspath(),
task.inputs[1].abspath(),
task.inputs[2].abspath(),
task.inputs[3].abspath()))
except Exception as e:
# catch macholib bug and give user the diff to fix it
if e.stderr.find("dyld_find() got an unexpected keyword argument 'loader'") > 0:
raise Exception("You have a bugged version of macholib. Until it's updated, apply the following patch:\n"
"--- a/usr/local/lib/python2.7/site-packages/macholib/MachOGraph.py\n"
"+++ a/usr/local/lib/python2.7/site-packages/macholib/MachOGraph.py\n"
"@@ -46,7 +46,7 @@ class MachOGraph(ObjectGraph):\n"
" try:\n"
" fn = dyld_find(filename, env=self.env,\n"
" executable_path=self.executable_path,\n"
"- loader=loader.filename)\n"
"+ loader_path=loader.filename)\n"
" self.trans_table[(loader.filename, filename)] = fn\n"
" except ValueError:\n"
" return None\n\n"
)
else:
raise Exception(e)
bld(name='py2app',
rule=py2app,
source=[setup, pdc_gen, image_routines, pbi2png_script],
target=[bdist_base, dist_dir])
app = dist_dir.make_node('/svg2png.app')
pdc2png_copy = dist_dir.make_node('/svg2png.app/Contents/Resources').make_node('pdc2png')
bld(rule="cp ${SRC} ${TGT}", source=pdc2png, target=pdc2png_copy, after='py2app')
# vim:filetype=python