Beispiel #1
0
def go_local_libs(self):
	names = self.to_list(getattr(self, 'use', []))
	#print ('== go-local-libs == [%s] == use: %s' % (self.name, names))
	for name in names:
		tg = self.bld.get_tgen_by_name(name)
		if not tg:
			raise Utils.WafError('no target of name %r necessary for %r in go uselib local' % (name, self))
		tg.post()
		#print ("-- tg[%s]: %s" % (self.name,name))
		lnk_task = getattr(tg, 'link_task', None)
		if lnk_task:
			for tsk in self.tasks:
				if isinstance(tsk, (go, gopackage, cgopackage)):
					tsk.set_run_after(lnk_task)
					tsk.dep_nodes.extend(lnk_task.outputs)
			path = lnk_task.outputs[0].parent.abspath()
			if isinstance(lnk_task, (go, gopackage)):
				# handle hierarchical packages
				path = lnk_task.generator.path.get_bld().abspath()
			elif isinstance(lnk_task, (cgopackage,)):
				# handle hierarchical cgopackages
				cgo_obj_dir = lnk_task.outputs[1].find_or_declare('_obj')
				path = cgo_obj_dir.abspath()
			# recursively add parent GOCFLAGS...
			self.env.append_unique('GOCFLAGS',
			 getattr(lnk_task.env, 'GOCFLAGS',[]))
			# ditto for GOLFLAGS...
			self.env.append_unique('GOLFLAGS',
			 getattr(lnk_task.env, 'GOLFLAGS',[]))
			self.env.append_unique('GOCFLAGS', ['-I%s' % path])
			self.env.append_unique('GOLFLAGS', ['-L%s' % path])
		for n in getattr(tg, 'includes_nodes', []):
			self.env.append_unique('GOCFLAGS', ['-I%s' % n.abspath()])
		pass
	pass
Beispiel #2
0
def configure(conf):
    cc = conf.env['COMPILER_CC'] or None
    cxx = conf.env['COMPILER_CXX'] or None
    if not (cc or cxx):
        raise Utils.WafError(
            "neither COMPILER_CC nor COMPILER_CXX are defined; "
            "maybe the compiler_cc or compiler_cxx tool has not been configured yet?"
        )

    try:
        compiler = compiler_mapping[cc]
    except KeyError:
        try:
            compiler = compiler_mapping[cxx]
        except KeyError:
            Logs.warn("No compiler flags support for compiler %r or %r" %
                      (cc, cxx))
            return

    opt_level, warn_level, dbg_level = profiles[Options.options.build_profile]

    optimizations = compiler.get_optimization_flags(opt_level)
    debug, debug_defs = compiler.get_debug_flags(dbg_level)
    warnings = compiler.get_warnings_flags(warn_level)

    if cc and not conf.env['CCFLAGS']:
        conf.env.append_value('CCFLAGS', optimizations)
        conf.env.append_value('CCFLAGS', debug)
        conf.env.append_value('CCFLAGS', warnings)
        conf.env.append_value('CCDEFINES', debug_defs)
    if cxx and not conf.env['CXXFLAGS']:
        conf.env.append_value('CXXFLAGS', optimizations)
        conf.env.append_value('CXXFLAGS', debug)
        conf.env.append_value('CXXFLAGS', warnings)
        conf.env.append_value('CXXDEFINES', debug_defs)
Beispiel #3
0
def go_local_libs(self):
    names = self.to_list(getattr(self, 'use', []))
    for name in names:
	tg = self.bld.get_tgen_by_name(name)
	if not tg:
	    raise Utils.WafError('no target of name %r necessary for %r in go uselib local' % (name, self))
	tg.post()
	for tsk in self.tasks:
	    if isinstance(tsk, go):
		tsk.set_run_after(tg.link_task)
		tsk.dep_nodes.extend(tg.link_task.outputs)
	path = tg.link_task.outputs[0].parent.abspath()
	self.env.append_unique('GOCFLAGS', ['-I%s' % path])
	self.env.append_unique('GOLFLAGS', ['-L%s' % path])