示例#1
0
    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)
示例#2
0
    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)
示例#3
0
    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)
示例#4
0
    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)
示例#5
0
    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)
示例#6
0
 def test_many(self):
     x = ['foo', 'bar']
     res = iterutils.unlistify(x)
     self.assertEqual(res, x)
     self.assertTrue(x is res)
示例#7
0
 def test_one(self):
     self.assertEqual(iterutils.unlistify(['foo']), 'foo')
示例#8
0
 def test_none(self):
     self.assertEqual(iterutils.unlistify([]), None)
示例#9
0
 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])