mirror of
https://github.com/google/pebble.git
synced 2025-03-15 16:51:21 +00:00
55 lines
2.8 KiB
Python
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
|