def t_cpp_obj(target, source_list, CXXFLAGS, CPPPATH): inc_dirs = set() if len(source_list) > 1: combine_opt=['-combine'] else: combine_opt=[] for source in source_list: inc_dirs.add("-I" + os.path.dirname(source)) if not os.path.exists(str(source)): Mem.instance().fail("%s does not exist" % source) mem.add_dep(util.convert_to_file(source)) mem.add_deps([nodes.File(f) for f in make_depends(target, source_list, CFLAGS=CXXFLAGS, CPPPATH=CPPPATH, inc_dirs = list(inc_dirs))]) includes = ["-I" + path for path in CPPPATH] args = util.convert_cmd(["g++"] + CXXFLAGS + includes + target_inc_flag(target, source_list) + list(inc_dirs) + combine_opt + ["-c", "-o", target] + source_list) util.ensure_file_dir(target) if util.run("Compiling", source_list, args) != 0: Mem.instance().fail() return nodes.File(target)
def _build_python_obj(target, source, CC, CFLAGS, CPPPATH): includes = ["-I" + path for path in CPPPATH] if os.path.dirname(source) != '': includes.append("-I" + os.path.dirname(source)) includes.append("-I" + get_config_var("CONFINCLUDEPY")) # Check for header dependencies mem = Mem.instance() mem.add_deps([nodes.File(f) for f in gcc.make_depends(target, [source], CC=CC, CFLAGS=CFLAGS, CPPPATH=CPPPATH, inc_dirs=includes ) ]) cargs = get_config_var('BLDSHARED').split(' ') args = util.convert_cmd([cargs[0]] + cargs[1:] + CFLAGS + includes + gcc.target_inc_flag(target, [ source ]) + list(includes) + ["-c", "-o", target] + [ source ]) util.ensure_file_dir(target) if util.run("GCC (Python Extension)", source, args) != 0: Mem.instance().fail() return [ nodes.File(target) ]
def t_prog(target, objs, CFLAGS, LIBS, LIBPATH, LINKFLAGS): mem.add_deps(objs) npaths = map(lambda a: "-L" + str(a), LIBPATH) nlibs = map(lambda a: "-l" + str(a), LIBS) args = util.convert_cmd(["gcc", "-o", target] + CFLAGS + LINKFLAGS + npaths + objs + nlibs) util.ensure_file_dir(target) if util.run("Linking", target, args) != 0: Mem.instance().fail() return nodes.File(target)
def t_prog(target, objs, CC, CFLAGS, LIBS, LIBPATH, LINKFLAGS): mem.add_deps(objs) npaths = map(lambda a: "-L" + str(a), LIBPATH) nlibs = [] for l in LIBS: if type(l) is tuple: assert l[1] == 'static' nlibs.extend(["-Wl,-Bstatic", "-l" + l[0], "-Wl,-Bdynamic"]) else: nlibs.append("-l" + l) args = util.convert_cmd([CC, "-o", target] + CFLAGS + LINKFLAGS + npaths + objs + nlibs) util.ensure_file_dir(target) if util.run("Linking", target, args) != 0: Mem.instance().fail() return nodes.File(target)