def Action(self): """ parse all Source objects, link flags and libs """ Target.Action(self) # if local flags is empty, use global flags of module(env) if not self.link_options: self.link_options = self.env.LDFlags().V() self.builder = Builder.BinBuilder(self.outfile, self.objects, self.libs, self.link_options, self.compiler, self.env.Workspace())
def test_BinBuilder(self): """ test BinBuilder """ obj = 'broc_out/a/b/c/test' dep_objs = ['a/b/c/fun.o', 'a/b/c/util.o'] dep_libs = [ 'broc_out/a/b/d/output/lib/libfun.a', 'broc_out/a/b/d/output/lib/libutil.a' ] dep_links = ['-DBROC', '-Werror', '-Wpublick=private'] compiler = '/usr/bin/g++' right_cmd = "mkdir -p broc_out/a/b/c && /usr/bin/g++ \\\n\t-DBROC \\\n\t-o \ \\\n\tbroc_out/a/b/c/test \\\n\ta/b/c/fun.o \\\n\ta/b/c/util.o \\\n\t-DBROC \\\n\t-Werror \ \\\n\t-Wpublick=private \\\n\t-Xlinker \\\n\t\"-(\" \\\n\t\tbroc_out/a/b/d/output/lib/libfun.a \ \\\n\t\tbroc_out/a/b/d/output/lib/libutil.a \\\n\t-Xlinker \\\n\t\"-)\"" builder = Builder.BinBuilder(obj, dep_objs, dep_libs, dep_links, compiler, '.') self.assertEqual(right_cmd, builder.GetBuildCmd())