Made all unit tests pass again.

pull/15/head
Jussi Pakkanen 10 years ago
parent bae8507753
commit af0ca6751a
  1. 7
      build.py
  2. 10
      ninjabackend.py

@ -637,8 +637,11 @@ class CustomTarget:
self.dependencies.append(c) self.dependencies.append(c)
# GIR scanner will attempt to execute this binary but # GIR scanner will attempt to execute this binary but
# it assumes that it is in path, so always give it a full path. # it assumes that it is in path, so always give it a full path.
totarget = os.path.join('.', c.get_subdir(), c.get_filename()) tmp = c.get_filename()
final_cmd.append(totarget) if isinstance(tmp, str):
tmp =[tmp]
totarget = [os.path.join('.', c.get_subdir(), i) for i in tmp]
final_cmd += totarget
elif isinstance(c, list): elif isinstance(c, list):
# Hackety hack, only supports one level of flattening. Should really # Hackety hack, only supports one level of flattening. Should really
# work to arbtrary depth. # work to arbtrary depth.

@ -136,9 +136,15 @@ class NinjaBackend(backends.Backend):
outfile.close() outfile.close()
os.replace(tempfilename, outfilename) os.replace(tempfilename, outfilename)
def hackety_hack(self, hack):
if isinstance(hack, list):
return hack[0]
return hack
def generate_custom_target(self, target, outfile): def generate_custom_target(self, target, outfile):
ofilenames = [os.path.join(target.subdir, i) for i in target.output] ofilenames = [os.path.join(target.subdir, i) for i in target.output]
deps = [os.path.join(i.get_subdir(), i.get_filename()) for i in target.get_dependencies()] # FIXME, should not grab element at zero but rather expand all.
deps = [os.path.join(i.get_subdir(), self.hackety_hack(i.get_filename())) for i in target.get_dependencies()]
srcs = [os.path.join(self.build_to_src, target.subdir, i) for i in target.sources] srcs = [os.path.join(self.build_to_src, target.subdir, i) for i in target.sources]
deps += srcs deps += srcs
elem = NinjaBuildElement(ofilenames, 'CUSTOM_COMMAND', deps) elem = NinjaBuildElement(ofilenames, 'CUSTOM_COMMAND', deps)
@ -147,7 +153,7 @@ class NinjaBackend(backends.Backend):
if i == '@INPUT@': if i == '@INPUT@':
cmd += srcs cmd += srcs
elif i == '@OUTPUT@': elif i == '@OUTPUT@':
cmd.append += ofilenames cmd += ofilenames
else: else:
cmd.append(i) cmd.append(i)
elem.add_item('COMMAND', cmd) elem.add_item('COMMAND', cmd)

Loading…
Cancel
Save