Beispiel #1
0
    return task


cxx_str = '${CXX} ${CXXFLAGS} ${CPPFLAGS} ${_CXXINCFLAGS} ${_CXXDEFFLAGS} ${CXX_SRC_F}${SRC} ${CXX_TGT_F}${TGT}'
cls = Task.simple_task_type('cxx',
                            cxx_str,
                            color='GREEN',
                            ext_out='.o',
                            ext_in='.cxx',
                            shell=False)
cls.scan = ccroot.scan
cls.vars.append('CXXDEPS')
link_str = '${LINK_CXX} ${CXXLNK_SRC_F}${SRC} ${CXXLNK_TGT_F}${TGT[0].abspath(env)} ${LINKFLAGS}'
cls = Task.simple_task_type('cxx_link',
                            link_str,
                            color='YELLOW',
                            ext_in='.o',
                            ext_out='.bin',
                            shell=False)
cls.maxjobs = 1
cls.install = Utils.nada

feature('cxx')(init_cxx)
before('apply_type_vars')(init_cxx)
after('default_cc')(init_cxx)
feature('cxx')(apply_obj_vars_cxx)
after('apply_incpaths')(apply_obj_vars_cxx)
feature('cxx')(apply_defines_cxx)
after('apply_lib_vars')(apply_defines_cxx)
extension(EXT_CXX)(cxx_hook)
Beispiel #2
0
    task.inputs = [node]
    task.outputs = [node.change_ext(obj_ext)]
    self.compiled_tasks.append(task)
    self.meths.append('asm_incflags')


def asm_incflags(self):
    if self.env['ASINCFLAGS']: self.env['_ASINCFLAGS'] = self.env['ASINCFLAGS']
    if 'cxx' in self.features:
        self.env['_ASINCFLAGS'] = self.env['_CXXINCFLAGS']
    else:
        self.env['_ASINCFLAGS'] = self.env['_CCINCFLAGS']


def detect(conf):
    comp = conf.environ.get('AS', '')
    if not comp: comp = conf.env['AS']
    if not comp: comp = conf.find_program('as', var='AS')
    if not comp: comp = conf.find_program('gas', var='AS')
    if not comp: comp = conf.env['CC']
    if not comp: return
    v = conf.env
    v['ASFLAGS'] = ''


extension(EXT_ASM)(asm_hook)
taskgen(asm_incflags)
after('apply_obj_vars_cc')(asm_incflags)
after('apply_obj_vars_cxx')(asm_incflags)
before('apply_link')(asm_incflags)
	conf.env['POCOM']=pocom
	intltool=conf.find_program('intltool-merge',var='INTLTOOL')
	if not intltool:
		if Options.platform=='win32':
			perl=conf.find_program('perl',var='PERL')
			if not perl:
				conf.fatal('The program perl (required by intltool) could not be found')
			intltooldir=Configure.find_file('intltool-merge',os.environ['PATH'].split(os.pathsep))
			if not intltooldir:
				conf.fatal('The program intltool-merge (intltool, gettext-devel) is mandatory!')
			conf.env['INTLTOOL']=Utils.to_list(conf.env['PERL'])+[intltooldir+os.sep+'intltool-merge']
			conf.check_message('intltool','',True,' '.join(conf.env['INTLTOOL']))
		else:
			conf.fatal('The program intltool-merge (intltool, gettext-devel) is mandatory!')
	def getstr(varname):
		return getattr(Options.options,varname,'')
	prefix=conf.env['PREFIX']
	datadir=getstr('datadir')
	if not datadir:datadir=os.path.join(prefix,'share')
	conf.define('LOCALEDIR',os.path.join(datadir,'locale'))
	conf.define('DATADIR',datadir)
	if conf.env['CC']or conf.env['CXX']:
		conf.check(header_name='locale.h')
def set_options(opt):
	opt.add_option('--want-rpath',type='int',default=1,dest='want_rpath',help='set rpath to 1 or 0 [Default 1]')
	opt.add_option('--datadir',type='string',default='',dest='datadir',help='read-only application data')

before('apply_core')(iapply_intltool_in_f)
feature('intltool_in')(iapply_intltool_in_f)
feature('intltool_po')(apply_intltool_po)
Beispiel #4
0
        kw['env'] = env
    return self.generator.bld.exec_command(*k, **kw)


for k in 'cc cxx winrc cc_link cxx_link static_link qxx'.split():
    cls = Task.TaskBase.classes.get(k, None)
    if cls:
        cls.exec_command = exec_command_msvc

conf(get_msvc_version)
conf(gather_wsdk_versions)
conf(gather_msvc_versions)
conf(gather_icl_versions)
conf(get_msvc_versions)
conf(print_all_msvc_detected)
conf(find_lt_names_msvc)
conf(libname_msvc)
conf(check_lib_msvc)
conf(check_libs_msvc)
conftest(no_autodetect)
conftest(autodetect)
conftest(find_msvc)
conftest(msvc_common_flags)
after('apply_link')(apply_flags_msvc)
feature('cc', 'cxx')(apply_flags_msvc)
feature('cprogram', 'cshlib', 'cstaticlib')(apply_obj_vars_msvc)
after('apply_lib_vars')(apply_obj_vars_msvc)
before('apply_obj_vars')(apply_obj_vars_msvc)
feature('cprogram', 'cshlib')(apply_manifest)
after('apply_link')(apply_manifest)
Beispiel #5
0
        )
    conf.env['OCAMLC'] = occ
    conf.env['OCAMLOPT'] = opt
    conf.env['OCAMLLEX'] = conf.find_program('ocamllex', var='OCAMLLEX')
    conf.env['OCAMLYACC'] = conf.find_program('ocamlyacc', var='OCAMLYACC')
    conf.env['OCAMLFLAGS'] = ''
    conf.env['OCAMLLIB'] = Utils.cmd_output(conf.env['OCAMLC'] +
                                            ' -where').strip() + os.sep
    conf.env['LIBPATH_OCAML'] = Utils.cmd_output(conf.env['OCAMLC'] +
                                                 ' -where').strip() + os.sep
    conf.env['CPPPATH_OCAML'] = Utils.cmd_output(conf.env['OCAMLC'] +
                                                 ' -where').strip() + os.sep
    conf.env['LIB_OCAML'] = 'camlrun'


feature('ocaml')(init_ml)
feature('ocaml')(init_envs_ml)
after('init_ml')(init_envs_ml)
feature('ocaml')(apply_incpaths_ml)
before('apply_vars_ml')(apply_incpaths_ml)
after('init_envs_ml')(apply_incpaths_ml)
feature('ocaml')(apply_vars_ml)
before('apply_core')(apply_vars_ml)
feature('ocaml')(apply_link_ml)
after('apply_core')(apply_link_ml)
extension(EXT_MLL)(mll_hook)
extension(EXT_MLY)(mly_hook)
extension(EXT_MLI)(mli_hook)
extension(EXT_MLC)(mlc_hook)
extension(EXT_ML)(ml_hook)
Beispiel #6
0
        os.chmod(tgt, task.chmod)
    return 0


def apply_tar(self):
    Utils.def_attrs(self, fun=tar_up)
    self.default_install_path = 0
    lst = self.to_list(self.source)
    self.meths.remove("apply_core")
    self.dict = getattr(self, "dict", {})
    out = self.path.find_or_declare(self.target)
    ins = []
    for x in Utils.to_list(self.source):
        node = self.path.find_resource(x)
        if not node:
            raise Utils.WafError("cannot find input file %s for processing" % x)
        ins.append(node)
    tsk = self.create_task("tar", ins, out)
    tsk.fun = self.fun
    tsk.dict = self.dict
    tsk.install_path = self.install_path
    tsk.chmod = self.chmod
    if not tsk.env:
        tsk.debug()
        raise Utils.WafError("task without an environment")


Task.task_type_from_func("tar", func=tar_up)
feature("tar")(apply_tar)
before("apply_core")(apply_tar)
Beispiel #7
0
		z.addfile(ti,fileobj=f)
		f.close()
	z.close()
	if task.chmod: os.chmod(tgt,task.chmod)
	return 0

def apply_tar(self):
	Utils.def_attrs(self,fun=tar_up)
	self.default_install_path=0
	lst=self.to_list(self.source)
	self.meths.remove('apply_core')
	self.dict=getattr(self,'dict',{})
	out = self.path.find_or_declare(self.target)
	ins = []
	for x in Utils.to_list(self.source):
		node = self.path.find_resource(x)
		if not node:raise Utils.WafError('cannot find input file %s for processing'%x)
		ins.append(node)
	tsk=self.create_task('tar',ins,out)
	tsk.fun=self.fun
	tsk.dict=self.dict
	tsk.install_path=self.install_path
	tsk.chmod=self.chmod
	if not tsk.env:
		tsk.debug()
		raise Utils.WafError('task without an environment')

Task.task_type_from_func('tar',func=tar_up)
feature('tar')(apply_tar)
before('apply_core')(apply_tar)
Beispiel #8
0
cls = Task.task_type_from_func('vnum',
                               func=exec_vnum_link,
                               ext_in='.bin',
                               color='CYAN')
cls.quiet = 1


def add_as_needed(conf):
    if conf.env.DEST_BINFMT == 'elf' and 'gcc' in (conf.env.CXX_NAME,
                                                   conf.env.CC_NAME):
        conf.env.append_unique('LINKFLAGS', '--as-needed')


feature('cc', 'cxx')(default_cc)
before('apply_core')(default_cc)
feature('cprogram', 'dprogram', 'cstaticlib', 'dstaticlib', 'cshlib',
        'dshlib')(apply_verif)
feature('cprogram', 'dprogram')(vars_target_cprogram)
after('default_cc')(vars_target_cprogram)
before('apply_core')(vars_target_cprogram)
after('default_cc')(vars_target_cshlib)
feature('cshlib', 'dshlib')(vars_target_cshlib)
before('apply_core')(vars_target_cshlib)
feature('cprogram', 'dprogram', 'cstaticlib', 'dstaticlib', 'cshlib',
        'dshlib')(default_link_install)
after('apply_link', 'vars_target_cprogram',
      'vars_target_cshlib')(default_link_install)
feature('cc', 'cxx')(apply_incpaths)
after('apply_type_vars', 'apply_lib_vars', 'apply_core')(apply_incpaths)
feature('cc', 'cxx')(apply_type_vars)
Beispiel #9
0
    v = conf.env
    binfmt = v.DEST_BINFMT or Utils.unversioned_sys_platform_to_binary_format(
        v.DEST_OS or Utils.unversioned_sys_platform()
    )
    if binfmt == "pe":
        v["D_program_PATTERN"] = "%s.exe"
        v["D_shlib_PATTERN"] = "lib%s.dll"
        v["D_staticlib_PATTERN"] = "lib%s.a"
    else:
        v["D_program_PATTERN"] = "%s"
        v["D_shlib_PATTERN"] = "lib%s.so"
        v["D_staticlib_PATTERN"] = "lib%s.a"


feature("d")(init_d)
before("apply_type_vars")(init_d)
feature("d")(init_d)
before("apply_d_libs")(init_d)
feature("d")(apply_d_libs)
after("apply_d_link", "init_d")(apply_d_libs)
before("apply_vnum")(apply_d_libs)
feature("dprogram", "dshlib", "dstaticlib")(apply_d_link)
after("apply_core")(apply_d_link)
feature("d")(apply_d_vars)
after("apply_core")(apply_d_vars)
feature("dshlib")(add_shlib_d_flags)
after("apply_d_vars")(add_shlib_d_flags)
extension(EXT_D)(d_hook)
taskgen(generate_header)
before("apply_core")(process_header)
conftest(d_platform_flags)
Beispiel #10
0
    if isinstance(filt, str):
        (pat, _, _) = filt.partition('.')
        if pat == '*':
            return True
        return pat == targ
    return False


def test_remover(self):
    if not Options.options.check and not Options.options.checkall and self.target != Options.options.checkone and not match_filter(
            Options.options.checkfilter, self.target):
        self.meths[:] = []


feature('testt', 'gtest')(test_remover)
before('apply_core')(test_remover)


def make_test(self):
    if not 'cprogram' in self.features:
        Logs.error('test cannot be executed %s' % self)
        return
    self.default_install_path = None
    self.create_task('utest', self.link_task.outputs)


feature('testt', 'gtest')(make_test)
after('apply_link', 'vars_target_cprogram')(make_test)


def gtest_attach(self):
Beispiel #11
0
Datei: tex.py Projekt: NKSG/ns3
			if'ps'in outs:
				tsk=self.create_task('dvips',task.outputs,node.change_ext('.ps'))
				tsk.env.env={'TEXINPUTS':node.parent.abspath()+':'+self.path.abspath()+':'+self.path.abspath(self.env)}
			if'pdf'in outs:
				tsk=self.create_task('dvipdf',task.outputs,node.change_ext('.pdf'))
				tsk.env.env={'TEXINPUTS':node.parent.abspath()+':'+self.path.abspath()+':'+self.path.abspath(self.env)}
		elif self.type=='pdflatex':
			if'ps'in outs:
				self.create_task('pdf2ps',task.outputs,node.change_ext('.ps'))
	self.source=[]
def detect(conf):
	v=conf.env
	for p in'tex latex pdflatex bibtex dvips dvipdf ps2pdf makeindex pdf2ps'.split():
		conf.find_program(p,var=p.upper())
		v[p.upper()+'FLAGS']=''
	v['DVIPSFLAGS']='-Ppdf'
b=Task.simple_task_type
b('tex','${TEX} ${TEXFLAGS} ${SRC}',color='BLUE',shell=False)
b('bibtex','${BIBTEX} ${BIBTEXFLAGS} ${SRC}',color='BLUE',shell=False)
b('dvips','${DVIPS} ${DVIPSFLAGS} ${SRC} -o ${TGT}',color='BLUE',after="latex pdflatex tex bibtex",shell=False)
b('dvipdf','${DVIPDF} ${DVIPDFFLAGS} ${SRC} ${TGT}',color='BLUE',after="latex pdflatex tex bibtex",shell=False)
b('pdf2ps','${PDF2PS} ${PDF2PSFLAGS} ${SRC} ${TGT}',color='BLUE',after="dvipdf pdflatex",shell=False)
b=Task.task_type_from_func
cls=b('latex',latex_build,vars=latex_vardeps)
cls.scan=scan
cls=b('pdflatex',pdflatex_build,vars=pdflatex_vardeps)
cls.scan=scan

feature('tex')(apply_tex)
before('apply_core')(apply_tex)
Beispiel #12
0
    self.env['_ASSEMBLIES'] += assemblies_flags
    for i in self.to_list(self.resources):
        self.env['_RESOURCES'].append('/resource:' + i)
    self.env['_FLAGS'] += self.to_list(self.flags) + self.env['FLAGS']
    curnode = self.path
    nodes = []
    for i in self.to_list(self.source):
        nodes.append(curnode.find_resource(i))
    task = self.create_task('mcs')
    task.inputs = nodes
    task.set_outputs(self.path.find_or_declare(self.target))


Task.simple_task_type(
    'mcs',
    '${MCS} ${SRC} /out:${TGT} ${_FLAGS} ${_ASSEMBLIES} ${_RESOURCES}',
    color='YELLOW')


def detect(conf):
    mcs = conf.find_program('mcs', var='MCS')
    if not mcs: mcs = conf.find_program('gmcs', var='MCS')


feature('cs')(init_cs)
feature('cs')(apply_uselib_cs)
after('init_cs')(apply_uselib_cs)
feature('cs')(apply_cs)
after('apply_uselib_cs')(apply_cs)
before('apply_core')(apply_cs)
Beispiel #13
0
    self.dbus_lst.append([filename, prefix, mode])


def process_dbus(self):
    for filename, prefix, mode in getattr(self, 'dbus_lst', []):
        env = self.env.copy()
        node = self.path.find_resource(filename)
        if not node:
            raise Utils.WafError('file not found ' + filename)
        env['DBUS_BINDING_TOOL_PREFIX'] = prefix
        env['DBUS_BINDING_TOOL_MODE'] = mode
        task = self.create_task('dbus_binding_tool', env)
        task.set_inputs(node)
        task.set_outputs(node.change_ext('.h'))


Task.simple_task_type(
    'dbus_binding_tool',
    '${DBUS_BINDING_TOOL} --prefix=${DBUS_BINDING_TOOL_PREFIX} --mode=${DBUS_BINDING_TOOL_MODE} --output=${TGT} ${SRC}',
    color='BLUE',
    before='cc')


def detect(conf):
    dbus_binding_tool = conf.find_program('dbus-binding-tool',
                                          var='DBUS_BINDING_TOOL')


taskgen(add_dbus_file)
before('apply_core')(process_dbus)
Beispiel #14
0
    return 0


def plist_build(task):
    env = task.env
    f = open(task.outputs[0].abspath(env), "w")
    f.write(task.mac_plist)
    f.close()
    return 0


Task.task_type_from_func("macapp", vars=[], func=app_build, after="cxx_link cc_link static_link")
Task.task_type_from_func("macplist", vars=[], func=plist_build, after="cxx_link cc_link static_link")

feature("cc", "cxx")(set_macosx_deployment_target)
before("apply_lib_vars")(set_macosx_deployment_target)
feature("cc", "cxx")(apply_framework)
after("apply_lib_vars")(apply_framework)
taskgen(create_bundle_dirs)
taskgen(create_task_macapp)
after("apply_link")(create_task_macapp)
feature("cprogram")(create_task_macapp)
after("apply_link")(create_task_macplist)
feature("cprogram")(create_task_macplist)
after("apply_link")(apply_link_osx)
feature("cshlib")(apply_link_osx)
before("apply_link", "apply_lib_vars")(apply_bundle)
feature("cc", "cxx")(apply_bundle)
after("apply_link")(apply_bundle_remove_dynamiclib)
feature("cshlib")(apply_bundle_remove_dynamiclib)
Beispiel #15
0
	self.obj_files.append(file)
def make_objects_available(self):
	self.out_nodes=[]
	app=self.out_nodes.append
	for t in self.compiled_tasks:app(t.outputs[0])
c_attrs={'cxxflag':'CXXFLAGS','cflag':'CCFLAGS','ccflag':'CCFLAGS','linkflag':'LINKFLAGS','ldflag':'LINKFLAGS','lib':'LIB','libpath':'LIBPATH','staticlib':'STATICLIB','staticlibpath':'STATICLIBPATH','rpath':'RPATH',}
def add_extra_flags(self):
	for x in self.__dict__.keys():
		y=x.lower()
		if y[-1]=='s':
			y=y[:-1]
		if c_attrs.get(y,None):
			self.env.append_unique(c_attrs[y],getattr(self,x))

feature('cc','cxx')(default_cc)
before('init_cc','init_cxx')(default_cc)
feature('cprogram','dprogram','cstaticlib','dstaticlib','cshlib','dshlib')(apply_verif)
feature('cprogram','dprogram')(vars_target_cprogram)
before('apply_core')(vars_target_cprogram)
feature('cstaticlib','dstaticlib','cshlib','dshlib')(vars_target_cstaticlib)
before('apply_core')(vars_target_cstaticlib)
feature('cprogram','dprogram','cstaticlib','dstaticlib','cshlib','dshlib')(install_target_cstaticlib)
after('apply_objdeps','apply_link')(install_target_cstaticlib)
feature('cshlib','dshlib')(install_target_cshlib)
after('apply_objdeps','apply_link')(install_target_cshlib)
feature('cc','cxx')(apply_incpaths)
after('apply_type_vars')(apply_incpaths)
feature('cc','cxx')(apply_type_vars)
taskgen(apply_link)
feature('cprogram','cshlib','cstaticlib')(apply_link)
after('apply_core')(apply_link)
Beispiel #16
0

def asm_incflags(self):
    if self.env["ASINCFLAGS"]:
        self.env["_ASINCFLAGS"] = self.env["ASINCFLAGS"]
    if "cxx" in self.features:
        self.env["_ASINCFLAGS"] = self.env["_CXXINCFLAGS"]
    else:
        self.env["_ASINCFLAGS"] = self.env["_CCINCFLAGS"]


def detect(conf):
    comp = os.environ.get("AS", "")
    if not comp:
        comp = conf.find_program("as", var="AS")
    if not comp:
        comp = conf.find_program("gas", var="AS")
    if not comp:
        comp = conf.env["CC"]
    if not comp:
        return
    v = conf.env
    v["ASFLAGS"] = ""


extension(EXT_ASM)(asm_hook)
taskgen(asm_incflags)
after("apply_obj_vars_cc")(asm_incflags)
after("apply_obj_vars_cxx")(asm_incflags)
before("apply_link")(asm_incflags)
Beispiel #17
0
		debug_level=Options.options.debug_level.upper()
	except AttributeError:
		debug_level=ccroot.DEBUG_LEVELS.CUSTOM
	v['CCFLAGS']+=v['CCFLAGS_'+debug_level]
	v['CXXFLAGS']+=v['CXXFLAGS_'+debug_level]
	v['LINKFLAGS']+=v['LINKFLAGS_'+debug_level]
	v['shlib_CCFLAGS']=['']
	v['shlib_CXXFLAGS']=['']
	v['shlib_LINKFLAGS']=['/DLL']
	v['shlib_PATTERN']='%s.dll'
	v['staticlib_LINKFLAGS']=['']
	v['staticlib_PATTERN']='%s.lib'
	v['program_PATTERN']='%s.exe'
def set_options(opt):
	opt.add_option('-d','--debug-level',action='store',default=ccroot.DEBUG_LEVELS.DEBUG,help="Specify the debug level, does nothing if CFLAGS is set in the environment. [Allowed Values: '%s']"%"', '".join(ccroot.DEBUG_LEVELS.ALL),choices=ccroot.DEBUG_LEVELS.ALL,dest='debug_level')

taskgen(apply_msvc_obj_vars)
feature('cc','cxx')(apply_msvc_obj_vars)
after('apply_obj_vars_cc')(apply_msvc_obj_vars)
after('apply_obj_vars_cxx')(apply_msvc_obj_vars)
taskgen(apply_link_msvc)
feature('cc','cxx')(apply_link_msvc)
after('apply_core')(apply_link_msvc)
before('apply_obj_vars_cc')(apply_link_msvc)
before('apply_obj_vars_cxx')(apply_link_msvc)
taskgen(init_msvc)
feature('cc','cxx')(init_msvc)
before('apply_core')(init_msvc)
conftest(find_msvc)
conftest(msvc_common_flags)
Beispiel #18
0
            if enum[param]:
                options.append('%s %r' % (option, enum[param]))
        env['GLIB_MKENUMS_OPTIONS'] = ' '.join(options)
        task.set_inputs(inputs)
        task.set_outputs(tgt_node)


Task.task_type_from_func('glib_genmarshal',
                         func=genmarshal_func,
                         vars=['GLIB_GENMARSHAL_PREFIX', 'GLIB_GENMARSHAL'],
                         color='BLUE',
                         before='cc')
Task.simple_task_type(
    'glib_mkenums',
    '${GLIB_MKENUMS} ${GLIB_MKENUMS_OPTIONS} ${GLIB_MKENUMS_SOURCE} > ${GLIB_MKENUMS_TARGET}',
    color='PINK',
    before='cc')


def detect(conf):
    glib_genmarshal = conf.find_program('glib-genmarshal',
                                        var='GLIB_GENMARSHAL')
    mk_enums_tool = conf.find_program('glib-mkenums', var='GLIB_MKENUMS')


taskgen(add_marshal_file)
before('apply_core')(process_marshal)
taskgen(add_enums_from_template)
taskgen(add_enums)
before('apply_core')(process_enums)
Beispiel #19
0
def nasm_file(self, node):
    try:
        obj_ext = self.obj_ext
    except AttributeError:
        obj_ext = '_%d.o' % self.idx
    task = self.create_task('nasm')
    task.inputs = [node]
    task.outputs = [node.change_ext(obj_ext)]
    self.compiled_tasks.append(task)
    self.meths.append('apply_nasm_vars')


Task.simple_task_type('nasm',
                      nasm_str,
                      color='BLUE',
                      ext_out='.o',
                      shell=False)


def detect(conf):
    nasm = conf.find_program('nasm', var='NASM')
    if not nasm: nasm = conf.find_program('yasm', var='NASM')
    if not nasm:
        conf.fatal(
            'could not find nasm (or yasm), install it or set PATH env var')


before('apply_link')(apply_nasm_vars)
extension(EXT_NASM)(nasm_file)
Beispiel #20
0
def d_platform_flags(conf):
    v = conf.env
    binfmt = v.DEST_BINFMT or Utils.unversioned_sys_platform_to_binary_format(
        v.DEST_OS or Utils.unversioned_sys_platform())
    if binfmt == 'pe':
        v['D_program_PATTERN'] = '%s.exe'
        v['D_shlib_PATTERN'] = 'lib%s.dll'
        v['D_staticlib_PATTERN'] = 'lib%s.a'
    else:
        v['D_program_PATTERN'] = '%s'
        v['D_shlib_PATTERN'] = 'lib%s.so'
        v['D_staticlib_PATTERN'] = 'lib%s.a'


feature('d')(init_d)
before('apply_type_vars')(init_d)
feature('d')(init_d)
before('apply_d_libs')(init_d)
feature('d')(apply_d_libs)
after('apply_d_link', 'init_d')(apply_d_libs)
before('apply_vnum')(apply_d_libs)
feature('dprogram', 'dshlib', 'dstaticlib')(apply_d_link)
after('apply_core')(apply_d_link)
feature('d')(apply_d_vars)
after('apply_core')(apply_d_vars)
feature('dshlib')(add_shlib_d_flags)
after('apply_d_vars')(add_shlib_d_flags)
extension(EXT_D)(d_hook)
taskgen(generate_header)
before('apply_core')(process_header)
conftest(d_platform_flags)
Beispiel #21
0
        'print "$Config{privlib}/ExtUtils/xsubpp$Config{exe_ext}"')
    conf.env.EXTUTILS_TYPEMAP = read_out(
        'print "$Config{privlib}/ExtUtils/typemap"')
    conf.env.perlext_PATTERN = '%s.' + read_out('print $Config{dlext}')[0]
    if getattr(Options.options, 'perlarchdir', None):
        conf.env.ARCHDIR_PERL = Options.options.perlarchdir
    else:
        conf.env.ARCHDIR_PERL = read_out('print $Config{sitearch}')[0]


def set_options(opt):
    opt.add_option("--with-perl-binary",
                   type="string",
                   dest="perlbinary",
                   help='Specify alternate perl binary',
                   default=None)
    opt.add_option(
        "--with-perl-archdir",
        type="string",
        dest="perlarchdir",
        help='Specify directory where to install arch specific files',
        default=None)


before('apply_incpaths', 'apply_type_vars', 'apply_lib_vars')(init_perlext)
feature('perlext')(init_perlext)
extension(EXT_XS)(xsubpp_file)
conf(check_perl_version)
conf(check_perl_module)
conf(check_perl_ext_devel)
Beispiel #22
0
	task.outputs=[node.change_ext(obj_ext)]
	try:
		self.compiled_tasks.append(task)
	except AttributeError:
		raise Utils.WafError('Have you forgotten to set the feature "cxx" on %s?'%str(self))
	return task
cxx_str='${CXX} ${CXXFLAGS} ${CPPFLAGS} ${_CXXINCFLAGS} ${_CXXDEFFLAGS} ${CXX_SRC_F}${SRC} ${CXX_TGT_F}${TGT}'
cls=Task.simple_task_type('cxx',cxx_str,color='GREEN',ext_out='.o',ext_in='.cxx',shell=False)
cls.scan=ccroot.scan
cls.vars.append('CXXDEPS')
link_str='${LINK_CXX} ${CXXLNK_SRC_F}${SRC} ${CXXLNK_TGT_F}${TGT} ${LINKFLAGS}'
cls=Task.simple_task_type('cxx_link',link_str,color='YELLOW',ext_in='.o',shell=False)
cls.maxjobs=1
cls2=Task.task_type_from_func('vnum_cxx_link',ccroot.link_vnum,cls.vars,color='CYAN',ext_in='.o')
cls2.maxjobs=1
link_str='${LINK_CXX} ${CXXLNK_SRC_F}${SRC} ${CXXLNK_TGT_F}${TGT[0].abspath(env)} ${LINKFLAGS}'
cls=Task.simple_task_type('dll_cxx_link',link_str,color='YELLOW',ext_in='.o',shell=False)
cls.maxjobs=1
old=cls.run
def run(self):return old(self)or ccroot.post_dll_link(self)
cls.run=run

feature('cxx')(init_cxx)
before('apply_type_vars')(init_cxx)
after('default_cc')(init_cxx)
feature('cxx')(apply_obj_vars_cxx)
after('apply_incpaths')(apply_obj_vars_cxx)
feature('cxx')(apply_defines_cxx)
after('apply_lib_vars')(apply_defines_cxx)
extension(EXT_CXX)(cxx_hook)
    ltf = libtool_config(args[0])
    if options.debug:
        print(ltf)
    if options.atleast_version:
        if ltf >= options.atleast_version: return 0
        sys.exit(1)
    if options.exact_version:
        if ltf == options.exact_version: return 0
        sys.exit(1)
    if options.max_version:
        if ltf <= options.max_version: return 0
        sys.exit(1)

    def p(x):
        print(" ".join(x))

    if options.libs: p(ltf.get_libs())
    elif options.libs_only_l: p(ltf.get_libs_only_l())
    elif options.libs_only_L: p(ltf.get_libs_only_L())
    elif options.libs_only_other: p(ltf.get_libs_only_other())
    return 0


if __name__ == '__main__':
    useCmdLine()

feature("libtool")(apply_link_libtool)
after('apply_link')(apply_link_libtool)
feature("libtool")(apply_libtool)
before('apply_core')(apply_libtool)
Beispiel #24
0
        dep.post()
        for dep_task in dep.tasks:
            task.set_run_after(dep_task)
    if not task.inputs:
        task.runnable_status = type(Task.TaskBase.run)(runnable_status, task,
                                                       task.__class__)
        task.post_run = type(Task.TaskBase.run)(post_run, task, task.__class__)


def post_run(self):
    for x in self.outputs:
        h = Utils.h_file(x.abspath(self.env))
        self.generator.bld.node_sigs[self.env.variant()][x.id] = h


def runnable_status(self):
    return Constants.RUN_ME


Task.task_type_from_func('copy', vars=[], func=action_process_file_func)
TaskGen.task_gen.classes['command-output'] = cmd_output_taskgen

feature('cmd')(apply_cmd)
feature('copy')(apply_copy)
before('apply_core')(apply_copy)
feature('subst')(apply_subst)
before('apply_core')(apply_subst)
feature('command-output')(init_cmd_output)
feature('command-output')(apply_cmd_output)
after('init_cmd_output')(apply_cmd_output)
Beispiel #25
0
Datei: ruby.py Projekt: NKSG/ns3
	conf.env.CCFLAGS_RUBYEXT=read_config("CCDLFLAGS")
	conf.env.rubyext_PATTERN='%s.'+read_config('DLEXT')[0]
	flags=read_config('LDSHARED')
	while flags and flags[0][0]!='-':
		flags=flags[1:]
	if len(flags)>1 and flags[1]=="ppc":
		flags=flags[2:]
	conf.env.LINKFLAGS_RUBYEXT=flags
	conf.env.LINKFLAGS_RUBYEXT+=read_config("LIBS")
	conf.env.LINKFLAGS_RUBYEXT+=read_config("LIBRUBYARG_SHARED")
	if Options.options.rubyarchdir:
		conf.env.ARCHDIR_RUBY=Options.options.rubyarchdir
	else:
		conf.env.ARCHDIR_RUBY=read_config('sitearchdir')[0]
	if Options.options.rubylibdir:
		conf.env.LIBDIR_RUBY=Options.options.rubylibdir
	else:
		conf.env.LIBDIR_RUBY=read_config('sitelibdir')[0]
def set_options(opt):
	opt.add_option('--with-ruby-archdir',type='string',dest='rubyarchdir',help='Specify directory where to install arch specific files')
	opt.add_option('--with-ruby-libdir',type='string',dest='rubylibdir',help='Specify alternate ruby library path')
	opt.add_option('--with-ruby-binary',type='string',dest='rubybinary',help='Specify alternate ruby binary')

feature('rubyext')(init_rubyext)
before('apply_incpaths','apply_type_vars','apply_lib_vars','apply_bundle')(init_rubyext)
after('default_cc','vars_target_cshlib')(init_rubyext)
feature('rubyext')(apply_ruby_so_name)
before('apply_link')(apply_ruby_so_name)
conf(check_ruby_version)
conf(check_ruby_ext_devel)
Beispiel #26
0
            )

    def getstr(varname):
        return getattr(Options.options, varname, '')

    prefix = conf.env['PREFIX']
    datadir = getstr('datadir')
    if not datadir: datadir = os.path.join(prefix, 'share')
    conf.define('LOCALEDIR', os.path.join(datadir, 'locale'))
    conf.define('DATADIR', datadir)
    if conf.env['CC'] or conf.env['CXX']:
        conf.check(header_name='locale.h')


def set_options(opt):
    opt.add_option('--want-rpath',
                   type='int',
                   default=1,
                   dest='want_rpath',
                   help='set rpath to 1 or 0 [Default 1]')
    opt.add_option('--datadir',
                   type='string',
                   default='',
                   dest='datadir',
                   help='read-only application data')


before('apply_core')(iapply_intltool_in_f)
feature('intltool_in')(iapply_intltool_in_f)
feature('intltool_po')(apply_intltool_po)
Beispiel #27
0
			val=self.env[v+'_'+var]
			if val:self.env.append_value(v,val)
def apply_cs(self):
	try:self.meths.remove('apply_core')
	except ValueError:pass
	assemblies_flags=[]
	for i in self.to_list(self.assemblies)+self.env['ASSEMBLIES']:
		assemblies_flags+='/r:'+i
	self.env['_ASSEMBLIES']+=assemblies_flags
	for i in self.to_list(self.resources):
		self.env['_RESOURCES'].append('/resource:'+i)
	self.env['_FLAGS']+=self.to_list(self.flags)+self.env['FLAGS']
	curnode=self.path
	nodes=[]
	for i in self.to_list(self.source):
		nodes.append(curnode.find_resource(i))
	task=self.create_task('mcs')
	task.inputs=nodes
	task.set_outputs(self.path.find_or_declare(self.target))
Task.simple_task_type('mcs','${MCS} ${SRC} /out:${TGT} ${_FLAGS} ${_ASSEMBLIES} ${_RESOURCES}',color='YELLOW')
def detect(conf):
	mcs=conf.find_program('mcs',var='MCS')
	if not mcs:mcs=conf.find_program('gmcs',var='MCS')

feature('cs')(init_cs)
feature('cs')(apply_uselib_cs)
after('init_cs')(apply_uselib_cs)
feature('cs')(apply_cs)
after('apply_uselib_cs')(apply_cs)
before('apply_core')(apply_cs)
Beispiel #28
0
    self.meths.remove('apply_core')
    self.dict = getattr(self, 'dict', {})
    out = self.path.find_or_declare(self.target)
    ins = []
    for x in Utils.to_list(self.source):
        node = self.path.find_resource(x)
        if not node:
            raise Utils.WafError('cannot find input file %s for processing' %
                                 x)
        ins.append(node)
    if self.dict and not self.env['DICT_HASH']:
        self.env = self.env.copy()
        keys = list(self.dict.keys())
        keys.sort()
        lst = [self.dict[x] for x in keys]
        self.env['DICT_HASH'] = str(Utils.h_list(lst))
    tsk = self.create_task('iso', ins, out)
    tsk.fun = self.fun
    tsk.dict = self.dict
    tsk.dep_vars = ['DICT_HASH']
    tsk.install_path = self.install_path
    tsk.chmod = self.chmod
    if not tsk.env:
        tsk.debug()
        raise Utils.WafError('task without an environment')


Task.task_type_from_func('iso', func=iso_up)
feature('iso')(apply_iso)
before('apply_core')(apply_iso)
Beispiel #29
0
#!/usr/bin/env python2
# encoding: utf-8

import Task,Utils
from TaskGen import taskgen,before,after,feature
def add_dbus_file(self,filename,prefix,mode):
	if not hasattr(self,'dbus_lst'):
		self.dbus_lst=[]
	self.meths.append('process_dbus')
	self.dbus_lst.append([filename,prefix,mode])
def process_dbus(self):
	for filename,prefix,mode in getattr(self,'dbus_lst',[]):
		node=self.path.find_resource(filename)
		if not node:
			raise Utils.WafError('file not found '+filename)
		tsk=self.create_task('dbus_binding_tool',node,node.change_ext('.h'))
		tsk.env.DBUS_BINDING_TOOL_PREFIX=prefix
		tsk.env.DBUS_BINDING_TOOL_MODE=mode
Task.simple_task_type('dbus_binding_tool','${DBUS_BINDING_TOOL} --prefix=${DBUS_BINDING_TOOL_PREFIX} --mode=${DBUS_BINDING_TOOL_MODE} --output=${TGT} ${SRC}',color='BLUE',before='cc')
def detect(conf):
	dbus_binding_tool=conf.find_program('dbus-binding-tool',var='DBUS_BINDING_TOOL')

taskgen(add_dbus_file)
before('apply_core')(process_dbus)
	tsk.set_outputs(node.parent.find_or_declare(name2))
def exec_vnum_link(self):
	path=self.inputs[0].parent.abspath(self.env)
	try:
		os.remove(self.outputs[0].abspath())
	except OSError,e:
		pass
	try:
		os.symlink(self.inputs[0].name,self.outputs[0].abspath(self.env))
	except Exception,e:
		return 1
cls=Task.task_type_from_func('vnum',func=exec_vnum_link,ext_in='.bin',color='CYAN')
cls.quiet=1

feature('cc','cxx')(default_cc)
before('apply_core')(default_cc)
feature('cprogram','dprogram','cstaticlib','dstaticlib','cshlib','dshlib')(apply_verif)
feature('cprogram','dprogram')(vars_target_cprogram)
after('default_cc')(vars_target_cprogram)
before('apply_core')(vars_target_cprogram)
after('default_cc')(vars_target_cshlib)
feature('cshlib','dshlib')(vars_target_cshlib)
before('apply_core')(vars_target_cshlib)
feature('cprogram','dprogram','cstaticlib','dstaticlib','cshlib','dshlib')(default_link_install)
after('apply_link','vars_target_cprogram','vars_target_cshlib')(default_link_install)
feature('cc','cxx')(apply_incpaths)
after('apply_type_vars','apply_lib_vars','apply_core')(apply_incpaths)
feature('cc','cxx')(apply_type_vars)
after('init_cc','init_cxx')(apply_type_vars)
before('apply_lib_vars')(apply_type_vars)
feature('cprogram','cshlib','cstaticlib')(apply_link)
Beispiel #31
0
        "--nopyc",
        action="store_false",
        default=1,
        help="Do not install bytecode compiled .pyc files (configuration) [Default:install]",
        dest="pyc",
    )
    opt.add_option(
        "--nopyo",
        action="store_false",
        default=1,
        help="Do not install optimised compiled .pyo files (configuration) [Default:install]",
        dest="pyo",
    )


before("apply_incpaths", "apply_lib_vars", "apply_type_vars")(init_pyext)
feature("pyext")(init_pyext)
before("apply_bundle")(init_pyext)
before("apply_link", "apply_lib_vars", "apply_type_vars")(pyext_shlib_ext)
after("apply_bundle")(pyext_shlib_ext)
feature("pyext")(pyext_shlib_ext)
before("apply_incpaths", "apply_lib_vars", "apply_type_vars")(init_pyembed)
feature("pyembed")(init_pyembed)
extension(EXT_PY)(process_py)
before("apply_core")(init_py)
after("vars_target_cprogram", "vars_target_cshlib")(init_py)
feature("py")(init_py)
conf(check_python_headers)
conf(check_python_version)
conf(check_python_module)
Beispiel #32
0
    if not conf.env.JAVA_HOME:
        conf.fatal('set JAVA_HOME in the system environment')
    javaHome = conf.env['JAVA_HOME'][0]
    b = Build.BuildContext()
    b.load_dirs(conf.srcdir, conf.blddir)
    dir = b.root.find_dir(conf.env.JAVA_HOME[0] + '/include')
    f = dir.ant_glob('**/(jni|jni_md).h', flat=False)
    incDirs = [x.parent.abspath() for x in f]
    dir = b.root.find_dir(conf.env.JAVA_HOME[0])
    f = dir.ant_glob('**/*jvm.(so|dll)', flat=False)
    libDirs = [x.parent.abspath() for x in f] or [javaHome]
    for i, d in enumerate(libDirs):
        if conf.check(header_name='jni.h',
                      define_name='HAVE_JNI_H',
                      lib='jvm',
                      libpath=d,
                      includes=incDirs,
                      uselib_store='JAVA',
                      uselib='JAVA'):
            break
    else:
        conf.fatal('could not find lib jvm in %r (see config.log)' % libDirs)


feature('jar')(jar_files)
before('apply_core')(jar_files)
feature('javac')(apply_java)
before('apply_core')(apply_java)
conf(check_java_class)
conf(check_jni_headers)
		parser.error("incorrect number of arguments")
	if options.versionNumber:
		print("libtool-config version %s"%REVISION)
		return 0
	ltf=libtool_config(args[0])
	if options.debug:
		print(ltf)
	if options.atleast_version:
		if ltf>=options.atleast_version:return 0
		sys.exit(1)
	if options.exact_version:
		if ltf==options.exact_version:return 0
		sys.exit(1)
	if options.max_version:
		if ltf<=options.max_version:return 0
		sys.exit(1)
	def p(x):
		print(" ".join(x))
	if options.libs:p(ltf.get_libs())
	elif options.libs_only_l:p(ltf.get_libs_only_l())
	elif options.libs_only_L:p(ltf.get_libs_only_L())
	elif options.libs_only_other:p(ltf.get_libs_only_other())
	return 0
if __name__=='__main__':
	useCmdLine()

feature("libtool")(apply_link_libtool)
after('apply_link')(apply_link_libtool)
feature("libtool")(apply_libtool)
before('apply_core')(apply_libtool)
Beispiel #34
0
	nums=task.vnum.split('.')
	path=self.install_path
	libname=task.outputs[0].name
	name3=libname.replace('.dylib','.%s.dylib'%task.vnum)
	name2=libname.replace('.dylib','.%s.dylib'%nums[0])
	name1=libname
	filename=task.outputs[0].abspath(task.env)
	bld=task.outputs[0].__class__.bld
	bld.install_as(path+name3,filename,env=task.env)
	bld.symlink_as(path+name2,name3)
	bld.symlink_as(path+name1,name3)
def install_target_osx_cshlib(self):
	if not self.bld.is_install:return
	if getattr(self,'vnum','')and sys.platform!='win32':
		self.link_task.install=install_shlib
Task.task_type_from_func('macapp',vars=[],func=app_build,after="cxx_link cc_link ar_link_static")

feature('cc','cxx')(set_macosx_deployment_target)
before('apply_lib_vars')(set_macosx_deployment_target)
feature('cc','cxx')(apply_framework)
after('apply_lib_vars')(apply_framework)
taskgen(create_task_macapp)
after('apply_link')(apply_link_osx)
feature('cc','cxx')(apply_link_osx)
before('apply_link','apply_lib_vars')(apply_bundle)
feature('cc','cxx')(apply_bundle)
after('apply_link')(apply_bundle_remove_dynamiclib)
feature('cshlib')(apply_bundle_remove_dynamiclib)
feature('osx')(install_target_osx_cshlib)
after('install_target_cshlib')(install_target_osx_cshlib)
	Utils.copy_attrs(self,task,'before after ext_in ext_out',only_if_set=True)
	self.tasks.append(task)
	task.inputs=inputs
	task.outputs=outputs
	task.dep_vars=self.to_list(self.dep_vars)
	for dep in self.dependencies:
		assert dep is not self
		dep.post()
		for dep_task in dep.tasks:
			task.set_run_after(dep_task)
	if not task.inputs:
		task.runnable_status=type(Task.TaskBase.run)(runnable_status,task,task.__class__)
		task.post_run=type(Task.TaskBase.run)(post_run,task,task.__class__)
def post_run(self):
	for x in self.outputs:
		h=Utils.h_file(x.abspath(self.env))
		self.generator.bld.node_sigs[self.env.variant()][x.id]=h
def runnable_status(self):
	return Constants.RUN_ME
Task.task_type_from_func('copy',vars=[],func=action_process_file_func)
TaskGen.task_gen.classes['command-output']=cmd_output_taskgen

feature('cmd')(apply_cmd)
feature('copy')(apply_copy)
before('apply_core')(apply_copy)
feature('subst')(apply_subst)
before('apply_core')(apply_subst)
feature('command-output')(init_cmd_output)
feature('command-output')(apply_cmd_output)
after('init_cmd_output')(apply_cmd_output)
Beispiel #36
0
Datei: d.py Projekt: NKSG/ns3
d_header_str='${D_COMPILER} ${D_HEADER} ${SRC}'
Task.simple_task_type('d_header',d_header_str,color='BLUE',shell=False)
def d_platform_flags(conf):
	v=conf.env
	binfmt=v.DEST_BINFMT or Utils.unversioned_sys_platform_to_binary_format(v.DEST_OS or Utils.unversioned_sys_platform())
	if binfmt=='pe':
		v['D_program_PATTERN']='%s.exe'
		v['D_shlib_PATTERN']='lib%s.dll'
		v['D_staticlib_PATTERN']='lib%s.a'
	else:
		v['D_program_PATTERN']='%s'
		v['D_shlib_PATTERN']='lib%s.so'
		v['D_staticlib_PATTERN']='lib%s.a'

feature('d')(init_d)
before('apply_type_vars')(init_d)
feature('d')(init_d)
before('apply_d_libs')(init_d)
feature('d')(apply_d_libs)
after('apply_d_link','init_d')(apply_d_libs)
before('apply_vnum')(apply_d_libs)
feature('dprogram','dshlib','dstaticlib')(apply_d_link)
after('apply_core')(apply_d_link)
feature('d')(apply_d_vars)
after('apply_core')(apply_d_vars)
feature('dshlib')(add_shlib_d_flags)
after('apply_d_vars')(add_shlib_d_flags)
extension(EXT_D)(d_hook)
taskgen(generate_header)
before('apply_core')(process_header)
conftest(d_platform_flags)
Beispiel #37
0
#! /usr/bin/env python
# encoding: utf-8

import os,sys
import Task
from TaskGen import extension,taskgen,after,before
EXT_ASM=['.s','.S','.asm','.ASM','.spp','.SPP']
as_str='${AS} ${ASFLAGS} ${_ASINCFLAGS} ${SRC} -o ${TGT}'
Task.simple_task_type('asm',as_str,'PINK',ext_out='.o',shell=False)
def asm_hook(self,node):
	try:obj_ext=self.obj_ext
	except AttributeError:obj_ext='_%d.o'%self.idx
	task=self.create_task('asm',node,node.change_ext(obj_ext))
	self.compiled_tasks.append(task)
	self.meths.append('asm_incflags')
def asm_incflags(self):
	if self.env['ASINCFLAGS']:self.env['_ASINCFLAGS']=self.env['ASINCFLAGS']
	if'cxx'in self.features:self.env['_ASINCFLAGS']=self.env['_CXXINCFLAGS']
	else:self.env['_ASINCFLAGS']=self.env['_CCINCFLAGS']
def detect(conf):
	conf.find_program(['gas','as'],var='AS')
	if not conf.env.AS:conf.env.AS=conf.env.CC

extension(EXT_ASM)(asm_hook)
taskgen(asm_incflags)
after('apply_obj_vars_cc')(asm_incflags)
after('apply_obj_vars_cxx')(asm_incflags)
before('apply_link')(asm_incflags)
		env=dict(os.environ)
		env.update(PATH=';'.join(self.env['PATH']))
		kw['env']=env
	return self.generator.bld.exec_command(*k,**kw)
for k in'cc cxx winrc cc_link cxx_link static_link'.split():
	cls=Task.TaskBase.classes.get(k,None)
	if cls:
		cls.exec_command=exec_command_msvc

conf(get_msvc_version)
conf(gather_wsdk_versions)
conf(gather_msvc_versions)
conf(gather_icl_versions)
conf(get_msvc_versions)
conf(print_all_msvc_detected)
conf(find_lt_names_msvc)
conf(libname_msvc)
conf(check_lib_msvc)
conf(check_libs_msvc)
conftest(no_autodetect)
conftest(autodetect)
conftest(find_msvc)
conftest(msvc_common_flags)
after('apply_link')(apply_flags_msvc)
feature('cc','cxx')(apply_flags_msvc)
feature('cprogram','cshlib','cstaticlib')(apply_obj_vars_msvc)
after('apply_lib_vars')(apply_obj_vars_msvc)
before('apply_obj_vars')(apply_obj_vars_msvc)
feature('cprogram','cshlib')(apply_manifest)
after('apply_link')(apply_manifest)
Beispiel #39
0
Datei: osx.py Projekt: NKSG/ns3
app_dirs=['Contents','Contents/MacOS','Contents/Resources']
def app_build(task):
	env=task.env
	shutil.copy2(task.inputs[0].srcpath(env),task.outputs[0].abspath(env))
	return 0
def plist_build(task):
	env=task.env
	f=open(task.outputs[0].abspath(env),"w")
	f.write(task.mac_plist)
	f.close()
	return 0
Task.task_type_from_func('macapp',vars=[],func=app_build,after="cxx_link cc_link static_link")
Task.task_type_from_func('macplist',vars=[],func=plist_build,after="cxx_link cc_link static_link")

feature('cc','cxx')(set_macosx_deployment_target)
before('apply_lib_vars')(set_macosx_deployment_target)
feature('cc','cxx')(apply_framework)
after('apply_lib_vars')(apply_framework)
taskgen(create_bundle_dirs)
taskgen(create_task_macapp)
after('apply_link')(create_task_macapp)
feature('cprogram')(create_task_macapp)
after('apply_link')(create_task_macplist)
feature('cprogram')(create_task_macplist)
after('apply_link')(apply_link_osx)
feature('cshlib')(apply_link_osx)
before('apply_link','apply_lib_vars')(apply_bundle)
feature('cc','cxx')(apply_bundle)
after('apply_link')(apply_bundle_remove_dynamiclib)
feature('cshlib')(apply_bundle_remove_dynamiclib)
Beispiel #40
0
                   help = 'Execute unit tests sprcified by pattern')

def match_filter(filt, targ):
    if isinstance(filt, str):
        (pat, _, _) = filt.partition('.')
        if pat == '*':
            return True
        return pat == targ
    return False

def test_remover(self):
    if not Options.options.check and not Options.options.checkall and self.target != Options.options.checkone and not match_filter(Options.options.checkfilter, self.target):
        self.meths[:] = []

feature('testt', 'gtest')(test_remover)
before('apply_core')(test_remover)

def make_test(self):
    if not 'cprogram' in self.features:
        Logs.error('test cannot be executed %s'%self)
        return
    self.default_install_path = None
    self.create_task('utest', self.link_task.outputs)

feature('testt', 'gtest')(make_test)
after('apply_link', 'vars_target_cprogram')(make_test)

def gtest_attach(self):
    if not self.env.HAVE_GTEST:
        Logs.error('gtest is not found')
        self.meths[:] = []
Beispiel #41
0
        env["GLIB_MKENUMS_OPTIONS"] = " ".join(options)
        task.set_inputs(inputs)
        task.set_outputs(tgt_node)


Task.task_type_from_func(
    "glib_genmarshal",
    func=genmarshal_func,
    vars=["GLIB_GENMARSHAL_PREFIX", "GLIB_GENMARSHAL"],
    color="BLUE",
    before="cc cxx",
)
Task.simple_task_type(
    "glib_mkenums",
    "${GLIB_MKENUMS} ${GLIB_MKENUMS_OPTIONS} ${GLIB_MKENUMS_SOURCE} > ${GLIB_MKENUMS_TARGET}",
    color="PINK",
    before="cc cxx",
)


def detect(conf):
    glib_genmarshal = conf.find_program("glib-genmarshal", var="GLIB_GENMARSHAL")
    mk_enums_tool = conf.find_program("glib-mkenums", var="GLIB_MKENUMS")


taskgen(add_marshal_file)
before("apply_core")(process_marshal)
taskgen(add_enums_from_template)
taskgen(add_enums)
before("apply_core")(process_enums)
Beispiel #42
0
		env['GLIB_MKENUMS_SOURCE']=[k.srcpath(env)for k in source_list]
		if not enum['target']:
			raise Utils.WafError('missing target '+str(enum))
		tgt_node=self.path.find_or_declare(enum['target'])
		if tgt_node.name.endswith('.c'):
			self.allnodes.append(tgt_node)
		env['GLIB_MKENUMS_TARGET']=tgt_node.abspath(env)
		options=[]
		if enum['template']:
			template_node=self.path.find_resource(enum['template'])
			options.append('--template %s'%(template_node.abspath(env)))
			inputs.append(template_node)
		params={'file-head':'--fhead','file-prod':'--fprod','file-tail':'--ftail','enum-prod':'--eprod','value-head':'--vhead','value-prod':'--vprod','value-tail':'--vtail','comments':'--comments'}
		for param,option in params.iteritems():
			if enum[param]:
				options.append('%s %r'%(option,enum[param]))
		env['GLIB_MKENUMS_OPTIONS']=' '.join(options)
		task.set_inputs(inputs)
		task.set_outputs(tgt_node)
Task.task_type_from_func('glib_genmarshal',func=genmarshal_func,vars=['GLIB_GENMARSHAL_PREFIX','GLIB_GENMARSHAL'],color='BLUE',before='cc cxx')
Task.simple_task_type('glib_mkenums','${GLIB_MKENUMS} ${GLIB_MKENUMS_OPTIONS} ${GLIB_MKENUMS_SOURCE} > ${GLIB_MKENUMS_TARGET}',color='PINK',before='cc cxx')
def detect(conf):
	glib_genmarshal=conf.find_program('glib-genmarshal',var='GLIB_GENMARSHAL')
	mk_enums_tool=conf.find_program('glib-mkenums',var='GLIB_MKENUMS')

taskgen(add_marshal_file)
before('apply_core')(process_marshal)
taskgen(add_enums_from_template)
taskgen(add_enums)
before('apply_core')(process_enums)
Beispiel #43
0
    if Options.options.rubylibdir:
        conf.env.LIBDIR_RUBY = Options.options.rubylibdir
    else:
        conf.env.LIBDIR_RUBY = read_config('sitelibdir')[0]


def set_options(opt):
    opt.add_option(
        '--with-ruby-archdir',
        type='string',
        dest='rubyarchdir',
        help='Specify directory where to install arch specific files')
    opt.add_option('--with-ruby-libdir',
                   type='string',
                   dest='rubylibdir',
                   help='Specify alternate ruby library path')
    opt.add_option('--with-ruby-binary',
                   type='string',
                   dest='rubybinary',
                   help='Specify alternate ruby binary')


feature('rubyext')(init_rubyext)
before('apply_incpaths', 'apply_type_vars', 'apply_lib_vars',
       'apply_bundle')(init_rubyext)
after('default_cc', 'vars_target_cshlib')(init_rubyext)
feature('rubyext')(apply_ruby_so_name)
before('apply_link')(apply_ruby_so_name)
conf(check_ruby_version)
conf(check_ruby_ext_devel)
Beispiel #44
0
Datei: perl.py Projekt: NKSG/ns3
def check_perl_module(conf,module):
	cmd=[conf.env['PERL'],'-e','use %s'%module]
	r=Utils.pproc.call(cmd,stdout=Utils.pproc.PIPE,stderr=Utils.pproc.PIPE)==0
	conf.check_message("perl module %s"%module,"",r)
	return r
def check_perl_ext_devel(conf):
	if not conf.env.PERL:
		conf.fatal('perl detection is required first')
	def read_out(cmd):
		return Utils.to_list(Utils.cmd_output([conf.env.PERL,'-MConfig','-e',cmd]))
	conf.env.LINKFLAGS_PERLEXT=read_out('print $Config{lddlflags}')
	conf.env.CPPPATH_PERLEXT=read_out('print "$Config{archlib}/CORE"')
	conf.env.CCFLAGS_PERLEXT=read_out('print "$Config{ccflags} $Config{cccdlflags}"')
	conf.env.XSUBPP=read_out('print "$Config{privlib}/ExtUtils/xsubpp$Config{exe_ext}"')
	conf.env.EXTUTILS_TYPEMAP=read_out('print "$Config{privlib}/ExtUtils/typemap"')
	conf.env.perlext_PATTERN='%s.'+read_out('print $Config{dlext}')[0]
	if getattr(Options.options,'perlarchdir',None):
		conf.env.ARCHDIR_PERL=Options.options.perlarchdir
	else:
		conf.env.ARCHDIR_PERL=read_out('print $Config{sitearch}')[0]
def set_options(opt):
	opt.add_option("--with-perl-binary",type="string",dest="perlbinary",help='Specify alternate perl binary',default=None)
	opt.add_option("--with-perl-archdir",type="string",dest="perlarchdir",help='Specify directory where to install arch specific files',default=None)

before('apply_incpaths','apply_type_vars','apply_lib_vars')(init_perlext)
feature('perlext')(init_perlext)
extension(EXT_XS)(xsubpp_file)
conf(check_perl_version)
conf(check_perl_module)
conf(check_perl_ext_devel)
def detect(conf):
	opt=conf.find_program('ocamlopt',var='OCAMLOPT')
	occ=conf.find_program('ocamlc',var='OCAMLC')
	if(not opt)or(not occ):
		conf.fatal('The objective caml compiler was not found:\ninstall it or make it available in your PATH')
	conf.env['OCAMLC']=occ
	conf.env['OCAMLOPT']=opt
	conf.env['OCAMLLEX']=conf.find_program('ocamllex',var='OCAMLLEX')
	conf.env['OCAMLYACC']=conf.find_program('ocamlyacc',var='OCAMLYACC')
	conf.env['OCAMLFLAGS']=''
	conf.env['OCAMLLIB']=Utils.cmd_output(conf.env['OCAMLC']+' -where').strip()+os.sep
	conf.env['LIBPATH_OCAML']=Utils.cmd_output(conf.env['OCAMLC']+' -where').strip()+os.sep
	conf.env['CPPPATH_OCAML']=Utils.cmd_output(conf.env['OCAMLC']+' -where').strip()+os.sep
	conf.env['LIB_OCAML']='camlrun'

feature('ocaml')(init_ml)
feature('ocaml')(init_envs_ml)
after('init_ml')(init_envs_ml)
feature('ocaml')(apply_incpaths_ml)
before('apply_vars_ml')(apply_incpaths_ml)
after('init_envs_ml')(apply_incpaths_ml)
feature('ocaml')(apply_vars_ml)
before('apply_core')(apply_vars_ml)
feature('ocaml')(apply_link_ml)
after('apply_core')(apply_link_ml)
extension(EXT_MLL)(mll_hook)
extension(EXT_MLY)(mly_hook)
extension(EXT_MLI)(mli_hook)
extension(EXT_MLC)(mlc_hook)
extension(EXT_ML)(ml_hook)
Beispiel #46
0
    v['shlib_PATTERN'] = '%s.dll'
    v['implib_PATTERN'] = '%s.lib'
    v['IMPLIB_ST'] = '/IMPLIB:%s'
    v['staticlib_LINKFLAGS'] = ['']
    v['staticlib_PATTERN'] = 'lib%s.lib'
    v['program_PATTERN'] = '%s.exe'


conf(get_msvc_version)
conf(gather_wsdk_versions)
conf(gather_msvc_versions)
conf(gather_icl_versions)
conf(get_msvc_versions)
conf(print_all_msvc_detected)
conf(find_lt_names_msvc)
conf(libname_msvc)
conf(check_lib_msvc)
conf(check_libs_msvc)
feature('cprogram', 'cshlib', 'cstaticlib')(apply_obj_vars_msvc)
after('apply_lib_vars')(apply_obj_vars_msvc)
before('apply_obj_vars')(apply_obj_vars_msvc)
feature('cprogram', 'cshlib', 'cstaticlib')(apply_link_msvc)
before('apply_link')(apply_link_msvc)
feature('cc', 'cxx')(init_msvc)
after('init_cc', 'init_cxx')(init_msvc)
before('apply_type_vars', 'apply_core')(init_msvc)
conftest(no_autodetect)
conftest(autodetect)
conftest(find_msvc)
conftest(msvc_common_flags)
Beispiel #47
0
	Utils.def_attrs(self,fun=iso_up)
	self.default_install_path=0
	lst=self.to_list(self.source)
	self.meths.remove('apply_core')
	self.dict=getattr(self,'dict',{})
	out = self.path.find_or_declare(self.target)
	ins = []
	for x in Utils.to_list(self.source):
		node = self.path.find_resource(x)
		if not node:raise Utils.WafError('cannot find input file %s for processing'%x)
		ins.append(node)
	if self.dict and not self.env['DICT_HASH']:
		self.env=self.env.copy()
		keys=list(self.dict.keys())
		keys.sort()
		lst=[self.dict[x]for x in keys]
		self.env['DICT_HASH']=str(Utils.h_list(lst))
	tsk=self.create_task('iso',ins,out)
	tsk.fun=self.fun
	tsk.dict=self.dict
	tsk.dep_vars=['DICT_HASH']
	tsk.install_path=self.install_path
	tsk.chmod=self.chmod
	if not tsk.env:
		tsk.debug()
		raise Utils.WafError('task without an environment')

Task.task_type_from_func('iso',func=iso_up)
feature('iso')(apply_iso)
before('apply_core')(apply_iso)
Beispiel #48
0
	if not conf.env.PYTHON:
		conf.env.PYTHON=sys.executable
	python=conf.find_program('python',var='PYTHON')
	if not python:
		conf.fatal('Could not find the path of the python executable')
	v=conf.env
	v['PYCMD']='"import sys, py_compile;py_compile.compile(sys.argv[1], sys.argv[2])"'
	v['PYFLAGS']=''
	v['PYFLAGS_OPT']='-O'
	v['PYC']=getattr(Options.options,'pyc',1)
	v['PYO']=getattr(Options.options,'pyo',1)
def set_options(opt):
	opt.add_option('--nopyc',action='store_false',default=1,help='Do not install bytecode compiled .pyc files (configuration) [Default:install]',dest='pyc')
	opt.add_option('--nopyo',action='store_false',default=1,help='Do not install optimised compiled .pyo files (configuration) [Default:install]',dest='pyo')

before('apply_incpaths','apply_lib_vars','apply_type_vars')(init_pyext)
feature('pyext')(init_pyext)
before('apply_bundle')(init_pyext)
before('apply_link','apply_lib_vars','apply_type_vars')(pyext_shlib_ext)
after('apply_bundle')(pyext_shlib_ext)
feature('pyext')(pyext_shlib_ext)
before('apply_incpaths','apply_lib_vars','apply_type_vars')(init_pyembed)
feature('pyembed')(init_pyembed)
extension(EXT_PY)(process_py)
before('apply_core')(init_py)
after('vars_target_cprogram','vars_target_cshlib')(init_py)
feature('py')(init_py)
conf(check_python_headers)
conf(check_python_version)
conf(check_python_module)
	found=Utils.exec_command(cmd,shell=False,log=self.log)
	self.check_message('Java class %s'%classname,"",not found)
	shutil.rmtree(javatestdir,True)
	return found
def check_jni_headers(conf):
	if not conf.env.CC_NAME and not conf.env.CXX_NAME:
		conf.fatal('load a compiler first (gcc, g++, ..)')
	if not conf.env.JAVA_HOME:
		conf.fatal('set JAVA_HOME in the system environment')
	javaHome=conf.env['JAVA_HOME'][0]
	b=Build.BuildContext()
	b.load_dirs(conf.srcdir,conf.blddir)
	dir=b.root.find_dir(conf.env.JAVA_HOME[0]+'/include')
	f=dir.ant_glob('**/(jni|jni_md).h',flat=False)
	incDirs=[x.parent.abspath()for x in f]
	dir=b.root.find_dir(conf.env.JAVA_HOME[0])
	f=dir.ant_glob('**/*jvm.(so|dll)',flat=False)
	libDirs=[x.parent.abspath()for x in f]or[javaHome]
	for i,d in enumerate(libDirs):
		if conf.check(header_name='jni.h',define_name='HAVE_JNI_H',lib='jvm',libpath=d,includes=incDirs,uselib_store='JAVA',uselib='JAVA'):
			break
	else:
		conf.fatal('could not find lib jvm in %r (see config.log)'%libDirs)

feature('jar')(jar_files)
before('apply_core')(jar_files)
feature('javac')(apply_java)
before('apply_core')(apply_java)
conf(check_java_class)
conf(check_jni_headers)
Beispiel #50
0
        v[p.upper() + 'FLAGS'] = ''
    v['DVIPSFLAGS'] = '-Ppdf'


b = Task.simple_task_type
b('tex', '${TEX} ${TEXFLAGS} ${SRC}', color='BLUE', shell=False)
b('bibtex', '${BIBTEX} ${BIBTEXFLAGS} ${SRC}', color='BLUE', shell=False)
b('dvips',
  '${DVIPS} ${DVIPSFLAGS} ${SRC} -o ${TGT}',
  color='BLUE',
  after="latex pdflatex tex bibtex",
  shell=False)
b('dvipdf',
  '${DVIPDF} ${DVIPDFFLAGS} ${SRC} ${TGT}',
  color='BLUE',
  after="latex pdflatex tex bibtex",
  shell=False)
b('pdf2ps',
  '${PDF2PS} ${PDF2PSFLAGS} ${SRC} ${TGT}',
  color='BLUE',
  after="dvipdf pdflatex",
  shell=False)
b = Task.task_type_from_func
cls = b('latex', latex_build, vars=latex_vardeps)
cls.scan = scan
cls = b('pdflatex', pdflatex_build, vars=pdflatex_vardeps)
cls.scan = scan

feature('tex')(apply_tex)
before('apply_core')(apply_tex)
Beispiel #51
0
        '--nopyc',
        action='store_false',
        default=1,
        help=
        'Do not install bytecode compiled .pyc files (configuration) [Default:install]',
        dest='pyc')
    opt.add_option(
        '--nopyo',
        action='store_false',
        default=1,
        help=
        'Do not install optimised compiled .pyo files (configuration) [Default:install]',
        dest='pyo')


before('apply_incpaths', 'apply_lib_vars', 'apply_type_vars')(init_pyext)
feature('pyext')(init_pyext)
before('apply_bundle')(init_pyext)
before('apply_link', 'apply_lib_vars', 'apply_type_vars')(pyext_shlib_ext)
after('apply_bundle')(pyext_shlib_ext)
feature('pyext')(pyext_shlib_ext)
before('apply_incpaths', 'apply_lib_vars', 'apply_type_vars')(init_pyembed)
feature('pyembed')(init_pyembed)
extension(EXT_PY)(process_py)
feature('py')(byte_compile_py)
before('apply_core')(init_py)
after('vars_target_cprogram', 'vars_target_cstaticlib')(init_py)
feature('py')(init_py)
conf(check_python_headers)
conf(check_python_version)
conf(check_python_module)
Beispiel #52
0
					for name,value in cmd.env_vars.iteritems():
						env_vars[name]=self._subst_arg(value,None,namespace)
					cmd.env_vars=env_vars
			elif isinstance(cmd,shellcmd.Chdir):
				cmd.dir=self._subst_arg(cmd.dir,None,namespace)
		return pipeline.run(verbose=(Options.options.verbose>0))
def init_command(self):
	Utils.def_attrs(self,variables=None)
def apply_command(self):
	self.meths.remove('apply_core')
	task=self.create_task('command')
	setattr(task,"dep_vars",getattr(self,"dep_vars",None))
	inputs=[]
	for src in self.to_list(self.source):
		node=self.path.find_resource(src)
		if node is None:
			raise Utils.WafError("source %s not found"%src)
		inputs.append(node)
	task.set_inputs(inputs)
	task.set_outputs([self.path.find_or_declare(tgt)for tgt in self.to_list(self.target)])
class command_taskgen(task_gen):
	def __init__(self,*k,**kw):
		task_gen.__init__(self,*k,**kw)
		self.features.append('command')

taskgen(init_command)
feature('command')(init_command)
taskgen(apply_command)
feature('command')(apply_command)
before('apply_core')(apply_command)
Beispiel #53
0
    return 0


def apply_tar(self):
    Utils.def_attrs(self, fun=tar_up)
    self.default_install_path = 0
    lst = self.to_list(self.source)
    self.meths.remove('apply_core')
    self.dict = getattr(self, 'dict', {})
    out = self.path.find_or_declare(self.target)
    ins = []
    for x in Utils.to_list(self.source):
        node = self.path.find_resource(x)
        if not node:
            raise Utils.WafError('cannot find input file %s for processing' %
                                 x)
        ins.append(node)
    tsk = self.create_task('tar', ins, out)
    tsk.fun = self.fun
    tsk.dict = self.dict
    tsk.install_path = self.install_path
    tsk.chmod = self.chmod
    if not tsk.env:
        tsk.debug()
        raise Utils.WafError('task without an environment')


Task.task_type_from_func('tar', func=tar_up)
feature('tar')(apply_tar)
before('apply_core')(apply_tar)