def output_file(self, name, context={}, lang='c++', mode=None, extra={}): compiler = getattr(self.env.builder(lang), mode or self.mode) context = AttrDict(**context) output = compiler.output_file(name, context) public_output = compiler.post_build(self.build, [], output, context) result = [i for i in listify(public_output or output) if not i.private] for i in result: for k, v in iteritems(extra): setattr(i, k, v) return unlistify(result)
def output_file(self, name, step={}, lang='c++', mode=None, extra={}): compiler = getattr(self.env.builder(lang), mode or self.mode) step = AttrDict(**step) output = compiler.output_file(name, step) public_output = compiler.post_output(self.build, [], output, step) result = [i for i in listify(public_output or output) if not i.private] for i in result: for k, v in extra.items(): setattr(i, k, v) return unlistify(result)
def output_file(self, name, context={}, lang='c++', mode=None, extra={}): linker = self.env.builder(lang).linker(mode or self.mode) context_args = {'langs': [lang]} context_args.update(context) context = AttrDict(**context_args) output = linker.output_file(name, context) public_output = linker.post_build(self.build, [], output, context) result = [i for i in listify(public_output or output) if not i.private] for i in result: for k, v in iteritems(extra): setattr(i, k, v) return unlistify(result)
def output_file(self, name, step={}, lang='c++', mode=None, extra={}): linker = self.env.builder(lang).linker(mode or self.mode) step_args = {'langs': [lang]} step_args.update(step) step = AttrDict(**step_args) output = linker.output_file(name, step) public_output = linker.post_build(self.context, [], output, step) result = [i for i in listify(public_output or output) if not i.private] for i in result: for k, v in extra.items(): setattr(i, k, v) return unlistify(result)
def output_file(self, name, step={}, lang=None, input_langs=['c++'], mode=None, extra={}): linker = self.linker(lang or input_langs[0], mode) step_args = {'langs': [lang] if lang else input_langs, 'input_langs': input_langs} step_args.update(step) step = AttrDict(**step_args) output = linker.output_file(name, step) public_output = linker.post_output(self.context, [], output, step) result = [i for i in listify(public_output or output) if not i.private] for i in result: for k, v in extra.items(): setattr(i, k, v) return unlistify(result)
def test_many(self): x = ['foo', 'bar'] res = iterutils.unlistify(x) self.assertEqual(res, x) self.assertTrue(x is res)
def test_one(self): self.assertEqual(iterutils.unlistify(['foo']), 'foo')
def test_none(self): self.assertEqual(iterutils.unlistify([]), None)
def output_file(self, compiler, name, context): output = compiler.output_file(name, context) public_output = compiler.post_build(self.build, [], output, context) return unlistify([i for i in listify(public_output or output) if not i.private])