opt.add_option('--want-rpath', action='store_true', default=False, dest='want_rpath', help='enable the rpath for qt libraries') opt.add_option('--header-ext', type='string', default='', help='header extension for moc files', dest='qt_header_ext') for i in 'qtdir qtbin qtlibs'.split(): opt.add_option('--' + i, type='string', default='', dest=i) if sys.platform == "darwin": opt.add_option('--no-qt4-framework', action="store_false", help='do not use the framework version of Qt4 in OS X', dest='use_qt4_osxframework', default=True) opt.add_option('--translate', action="store_true", help="collect translation strings", dest="trans_qt4", default=False) extension(*EXT_RCC)(create_rcc_task) extension(*EXT_UI)(create_uic_task) extension('.ts')(add_lang) feature('qt4')(apply_qt4) after('apply_link')(apply_qt4) extension(*EXT_QT4)(cxx_hook)
conf.env['CC_VERSION']=(k['__GNUC__'],k['__GNUC_MINOR__'],k['__GNUC_PATCHLEVEL__']) return k def add_as_needed(self): if self.env.DEST_BINFMT=='elf'and'gcc'in(self.env.CXX_NAME,self.env.CC_NAME): self.env.append_unique('LINKFLAGS','--as-needed') conf(parse_flags) conf(ret_msg) conf(validate_cfg) conf(exec_cfg) conf(check_cfg) conf(validate_c) conf(post_check) conf(check) feature('test_exec')(test_exec_fun) after('apply_link')(test_exec_fun) conf(run_c_code) conf(check_cxx) conf(check_cc) conf(define) conf(undefine) conf(define_cond) conf(is_defined) conf(get_define) conf(have_define) conf(write_config_header) conf(get_config_header) conf(cc_add_flags) conf(cxx_add_flags) conf(link_add_flags) conf(cc_load_tools)
self.env.ARCHDIR_RUBY = read_config('sitearchdir')[0] if Options.options.rubylibdir: self.env.LIBDIR_RUBY = Options.options.rubylibdir else: self.env.LIBDIR_RUBY = read_config('sitelibdir')[0] def 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_lib_vars', 'apply_bundle', 'apply_link')(init_rubyext) after('vars_target_cshlib')(init_rubyext) feature('rubyext')(apply_ruby_so_name) before('apply_link', 'propagate_uselib')(apply_ruby_so_name) conf(check_ruby_version) conf(check_ruby_ext_devel)
self.env.INCLUDES_RUBYEXT=cpppath self.env.CFLAGS_RUBYEXT=read_config('CCDLFLAGS') self.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:] self.env.LINKFLAGS_RUBYEXT=flags self.env.LINKFLAGS_RUBYEXT+=read_config('LIBS') self.env.LINKFLAGS_RUBYEXT+=read_config('LIBRUBYARG_SHARED') if Options.options.rubyarchdir: self.env.ARCHDIR_RUBY=Options.options.rubyarchdir else: self.env.ARCHDIR_RUBY=read_config('sitearchdir')[0] if Options.options.rubylibdir: self.env.LIBDIR_RUBY=Options.options.rubylibdir else: self.env.LIBDIR_RUBY=read_config('sitelibdir')[0] def 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_lib_vars','apply_bundle','apply_link')(init_rubyext) after('vars_target_cshlib')(init_rubyext) feature('rubyext')(apply_ruby_so_name) before('apply_link','propagate_uselib')(apply_ruby_so_name) conf(check_ruby_version) conf(check_ruby_ext_devel)
except (OSError, IOError): self.fatal('could not read %s' % fname) txt = txt.replace('\\\n', '\n') fu = re.compile('#(.*)\n') txt = fu.sub('', txt) setregexp = re.compile('([sS][eE][tT]\s*\()\s*([^\s]+)\s+\"([^"]+)\"\)') found = setregexp.findall(txt) for (_, key, val) in found: self.env[key] = val self.env['LIB_KDECORE'] = ['kdecore'] self.env['LIB_KDEUI'] = ['kdeui'] self.env['LIB_KIO'] = ['kio'] self.env['LIB_KHTML'] = ['khtml'] self.env['LIB_KPARTS'] = ['kparts'] self.env['LIBPATH_KDECORE'] = [self.env['KDE4_LIB_INSTALL_DIR']] self.env['INCLUDES_KDECORE'] = [self.env['KDE4_INCLUDE_INSTALL_DIR']] self.env.append_value( 'INCLUDES_KDECORE', [self.env['KDE4_INCLUDE_INSTALL_DIR'] + os.sep + 'KDE']) self.find_program('msgfmt', var='MSGFMT') class msgfmt(Task.Task): color = 'BLUE' run_str = '${MSGFMT} ${SRC} -o ${TGT}' feature('msgfmt')(init_msgfmt) feature('msgfmt')(apply_msgfmt) after('init_msgfmt')(apply_msgfmt)
incDirs = [x.parent.abspath() for x in f] dir = conf.root.find_dir(conf.env.JAVA_HOME[0]) f = dir.ant_glob("**/*jvm.(so|dll)") 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("javac")(apply_java) before("process_source")(apply_java) feature("javac")(use_javac_files) after("apply_java")(use_javac_files) feature("jar")(jar_files) after("apply_java", "use_javac_files")(jar_files) before("process_source")(jar_files) feature("jar")(use_jar_files) after("jar_files")(use_jar_files) conf(check_java_class) conf(check_jni_headers)
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] dir=conf.root.find_dir(conf.env.JAVA_HOME[0]+'/include') f=dir.ant_glob('**/(jni|jni_md).h') incDirs=[x.parent.abspath()for x in f] dir=conf.root.find_dir(conf.env.JAVA_HOME[0]) f=dir.ant_glob('**/*jvm.(so|dll)') 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('javac')(apply_java) before('process_source')(apply_java) feature('javac')(use_javac_files) after('apply_java')(use_javac_files) feature('javac')(set_classpath) after('apply_java','propagate_uselib_vars','use_javac_files')(set_classpath) feature('jar')(jar_files) after('apply_java','use_javac_files')(jar_files) before('process_source')(jar_files) feature('jar')(use_jar_files) after('jar_files')(use_jar_files) conf(check_java_class) conf(check_jni_headers)
finally: testlock.release() def summary(bld): lst = getattr(bld, 'utest_results', []) if lst: Logs.pprint('CYAN', 'execution summary') total = len(lst) tfail = len([x for x in lst if x[1]]) Logs.pprint('CYAN', ' tests that pass %d/%d' % (total - tfail, total)) for (f, code, out, err) in lst: if not code: Logs.pprint('CYAN', ' %s' % f) Logs.pprint('CYAN', ' tests that fail %d/%d' % (tfail, total)) for (f, code, out, err) in lst: if code: Logs.pprint('CYAN', ' %s' % f) def options(opt): opt.add_option('--alltests', action='store_true', default=False, help='Exec all unit tests', dest='all_tests') feature('test')(make_test) after('apply_link')(make_test)
if node: node.sig = Utils.h_file(node.abspath()) break else: continue break else: raise Errors.WafError('could not find library %r' % self.name) self.link_task = self.create_task('fake_%s' % self.lib_type, [], [node]) self.target = self.name taskgen_method(create_compiled_task) taskgen_method(to_incnodes) feature('c', 'cxx', 'd', 'go', 'asm', 'fc', 'includes')(apply_incpaths) after('propagate_uselib_vars', 'process_source')(apply_incpaths) feature('c', 'cxx', 'd', 'go', 'fc', 'asm')(apply_link) after('process_source')(apply_link) taskgen_method(use_rec) feature('c', 'cxx', 'd', 'use', 'fc')(process_use) before('apply_incpaths', 'propagate_uselib_vars')(process_use) after('apply_link', 'process_source')(process_use) taskgen_method(get_uselib_vars) feature('c', 'cxx', 'd', 'fc', 'javac', 'cs', 'uselib')(propagate_uselib_vars) after('process_use')(propagate_uselib_vars) feature('cshlib', 'cxxshlib')(apply_implib) after('apply_link')(apply_implib) feature('cshlib', 'cxxshlib', 'dshlib', 'fcshlib', 'vnum')(apply_vnum) after('apply_link')(apply_vnum) conf(read_shlib) conf(read_stlib)
""" for some obscure reason, the precompiled header will not be taken if all.h is in the same directory as main.cpp we recommend to add the header to compile in a separate directory without any sources Note: the #warning will come once when the .h is compiled, it will not come when the .cpp is compiled Note: do not forget to set the include paths (include=...) """ from waflib.TaskGen import feature, after from waflib.Task import Task from waflib.Tools import c_preproc #@feature('cxx') <- python >= 2.4 #@after('apply_link') def process_pch(self): if getattr(self, 'pch', ''): nodes = self.to_nodes(self.pch) for x in nodes: self.create_task('gchx', x, x.change_ext('.gch')) feature('cxx')(process_pch) after('apply_link')(process_pch) class gchx(Task): run_str = '${CXX} ${CXXFLAGS} ${FRAMEWORKPATH_ST:FRAMEWORKPATH} ${CPPPATH_ST:INCPATHS} ${DEFINES_ST:DEFINES} ${CXX_SRC_F}${SRC} ${CXX_TGT_F}${TGT}' scan = c_preproc.scan ext_out = ['.h'] color = 'BLUE'
fname='%s/share/kde4/apps/cmake/modules/KDELibsDependencies.cmake'%prefix try:os.stat(fname) except OSError:self.fatal('could not open %s'%fname) try: txt=Utils.readf(fname) except(OSError,IOError): self.fatal('could not read %s'%fname) txt=txt.replace('\\\n','\n') fu=re.compile('#(.*)\n') txt=fu.sub('',txt) setregexp=re.compile('([sS][eE][tT]\s*\()\s*([^\s]+)\s+\"([^"]+)\"\)') found=setregexp.findall(txt) for(_,key,val)in found: self.env[key]=val self.env['LIB_KDECORE']=['kdecore'] self.env['LIB_KDEUI']=['kdeui'] self.env['LIB_KIO']=['kio'] self.env['LIB_KHTML']=['khtml'] self.env['LIB_KPARTS']=['kparts'] self.env['LIBPATH_KDECORE']=[self.env['KDE4_LIB_INSTALL_DIR']] self.env['INCLUDES_KDECORE']=[self.env['KDE4_INCLUDE_INSTALL_DIR']] self.env.append_value('INCLUDES_KDECORE',[self.env['KDE4_INCLUDE_INSTALL_DIR']+os.sep+'KDE']) self.find_program('msgfmt',var='MSGFMT') class msgfmt(Task.Task): color='BLUE' run_str='${MSGFMT} ${SRC} -o ${TGT}' feature('msgfmt')(init_msgfmt) feature('msgfmt')(apply_msgfmt) after('init_msgfmt')(apply_msgfmt)
if Options.options.want_rpath: def process_rpath(vars_,coreval): for d in vars_: var=d.upper() value=env['LIBPATH_'+var] if value: core=env[coreval] accu=[] for lib in value: if var!='QTCORE': if lib in core: continue accu.append('-Wl,--rpath='+lib) env['RPATH_'+var]=accu process_rpath(vars,'LIBPATH_QTCORE') process_rpath(vars_debug,'LIBPATH_QTCORE_DEBUG') def options(opt): opt.add_option('--want-rpath',action='store_true',default=False,dest='want_rpath',help='enable the rpath for qt libraries') opt.add_option('--header-ext',type='string',default='',help='header extension for moc files',dest='qt_header_ext') for i in'qtdir qtbin qtlibs'.split(): opt.add_option('--'+i,type='string',default='',dest=i) if sys.platform=="darwin": opt.add_option('--no-qt4-framework',action="store_false",help='do not use the framework version of Qt4 in OS X',dest='use_qt4_osxframework',default=True) opt.add_option('--translate',action="store_true",help="collect translation strings",dest="trans_qt4",default=False) extension(*EXT_RCC)(create_rcc_task) extension(*EXT_UI)(create_uic_task) extension('.ts')(add_lang) feature('qt4')(apply_qt4) after('apply_link')(apply_qt4) extension(*EXT_QT4)(cxx_hook)
conf.env.CS_NAME = 'mono' def options(opt): opt.add_option('--with-csc-binary', type='string', dest='cscbinary') class fake_csshlib(Task.Task): color = 'YELLOW' inst_to = None def runnable_status(self): for x in self.outputs: x.sig = Utils.h_file(x.abspath()) return Task.SKIP_ME def read_csshlib(self, name, paths=[]): return self(name=name, features='fake_lib', lib_paths=paths, lib_type='csshlib') feature('cs')(apply_cs) before('process_source')(apply_cs) feature('cs')(use_cs) after('apply_cs')(use_cs) feature('cs')(debug_cs) after('apply_cs', 'use_cs')(debug_cs) conf(read_csshlib)
def add_as_needed(self): if self.env.DEST_BINFMT == "elf" and "gcc" in (self.env.CXX_NAME, self.env.CC_NAME): self.env.append_unique("LINKFLAGS", "--as-needed") conf(parse_flags) conf(ret_msg) conf(validate_cfg) conf(exec_cfg) conf(check_cfg) conf(validate_c) conf(post_check) conf(check) feature("test_exec")(test_exec_fun) after("apply_link")(test_exec_fun) conf(run_c_code) conf(check_cxx) conf(check_cc) conf(define) conf(undefine) conf(define_cond) conf(is_defined) conf(get_define) conf(have_define) conf(write_config_header) conf(get_config_header) conf(cc_add_flags) conf(cxx_add_flags) conf(link_add_flags) conf(cc_load_tools)
ctx.fatal('Could not run junit from %r' % val) ctx.env.CLASSPATH_JUNIT = cp #@feature('junit') #@after('apply_java', 'use_javac_files') def make_test(self): """make the unit test task""" if not getattr(self, 'junitsrc', None): return junit_task = self.create_task('junit_test') try: junit_task.set_run_after(self.javac_task) except AttributeError: pass feature('junit')(make_test) after('apply_java', 'use_javac_files')(make_test) class junit_test(Task.Task): color = 'YELLOW' vars = ['JUNIT_EXEC_FLAGS', 'JUNIT_RUNNER'] def runnable_status(self): """ Only run if --junit was set as an option """ for t in self.run_after: if not t.hasrun: return Task.ASK_LATER n = self.generator.path.find_dir(self.generator.junitsrc) if not n:
pass app_dirs = ['Contents', 'Contents/MacOS', 'Contents/Resources'] class macapp(Task.Task): color = 'PINK' def run(self): shutil.copy2(self.inputs[0].srcpath(), self.outputs[0].abspath()) class macplist(Task.Task): color = 'PINK' ext_in = ['.bin'] def run(self): self.outputs[0].write(self.mac_plist) feature('c', 'cxx')(set_macosx_deployment_target) taskgen_method(create_bundle_dirs) feature('cprogram', 'cxxprogram')(create_task_macapp) after('apply_link')(create_task_macapp) feature('cprogram', 'cxxprogram')(create_task_macplist) after('apply_link')(create_task_macplist) feature('c', 'cxx')(apply_bundle) before('apply_link', 'propagate_uselib_vars')(apply_bundle) feature('cshlib', 'cxxshlib')(apply_bundle_remove_dynamiclib) after('apply_link')(apply_bundle_remove_dynamiclib)
if not'MACBUNDLE'in uselib: uselib.append('MACBUNDLE') def apply_bundle_remove_dynamiclib(self): if self.env['MACBUNDLE']or getattr(self,'mac_bundle',False): if not getattr(self,'vnum',None): try: self.env['LINKFLAGS'].remove('-dynamiclib') except ValueError: pass app_dirs=['Contents','Contents/MacOS','Contents/Resources'] class macapp(Task.Task): color='PINK' def run(self): shutil.copy2(self.inputs[0].srcpath(),self.outputs[0].abspath(self.env)) class macplist(Task.Task): color='PINK' ext_in=['.bin'] def run(self): self.outputs[0].write(self.mac_plist) feature('c','cxx')(set_macosx_deployment_target) before('apply_lib_vars')(set_macosx_deployment_target) taskgen_method(create_bundle_dirs) feature('cprogram','cxxprogram')(create_task_macapp) after('apply_link')(create_task_macapp) feature('cprogram','cxxprogram')(create_task_macplist) after('apply_link')(create_task_macplist) feature('c','cxx')(apply_bundle) before('apply_link','propagate_uselib_vars')(apply_bundle) feature('cshlib','cxxshlib')(apply_bundle_remove_dynamiclib) after('apply_link')(apply_bundle_remove_dynamiclib)
node=x.find_node(y) if node: node.sig=Utils.h_file(node.abspath()) break else: continue break else: raise Errors.WafError('could not find library %r'%self.name) self.link_task=self.create_task('fake_%s'%self.lib_type,[],[node]) self.target=self.name taskgen_method(create_compiled_task) taskgen_method(to_incnodes) feature('c','cxx','d','go','asm','fc','includes')(apply_incpaths) after('propagate_uselib_vars','process_source')(apply_incpaths) feature('c','cxx','d','go','fc','asm')(apply_link) after('process_source')(apply_link) taskgen_method(use_rec) feature('c','cxx','d','use','fc')(process_use) before('apply_incpaths','propagate_uselib_vars')(process_use) after('apply_link','process_source')(process_use) taskgen_method(get_uselib_vars) feature('c','cxx','d','fc','javac','cs','uselib')(propagate_uselib_vars) after('process_use')(propagate_uselib_vars) feature('cshlib','cxxshlib')(apply_implib) after('apply_link')(apply_implib) feature('cshlib','cxxshlib','dshlib','fcshlib','vnum')(apply_vnum) after('apply_link')(apply_vnum) conf(read_shlib) conf(read_stlib)
self.generator.utest_result=tup testlock.acquire() try: bld=self.generator.bld Logs.debug("ut: %r",tup) try: bld.utest_results.append(tup) except AttributeError: bld.utest_results=[tup] finally: testlock.release() def summary(bld): lst=getattr(bld,'utest_results',[]) if lst: Logs.pprint('CYAN','execution summary') total=len(lst) tfail=len([x for x in lst if x[1]]) Logs.pprint('CYAN',' tests that pass %d/%d'%(total-tfail,total)) for(f,code,out,err)in lst: if not code: Logs.pprint('CYAN',' %s'%f) Logs.pprint('CYAN',' tests that fail %d/%d'%(tfail,total)) for(f,code,out,err)in lst: if code: Logs.pprint('CYAN',' %s'%f) def options(opt): opt.add_option('--alltests',action='store_true',default=False,help='Exec all unit tests',dest='all_tests') feature('test')(make_test) after('apply_link')(make_test)
#@feature('junit') #@after('apply_java', 'use_javac_files') def make_test(self): """make the unit test task""" if not getattr(self, 'junitsrc', None): return junit_task = self.create_task('junit_test') try: junit_task.set_run_after(self.javac_task) except AttributeError: pass feature('junit')(make_test) after('apply_java', 'use_javac_files')(make_test) class junit_test(Task.Task): color = 'YELLOW' vars = ['JUNIT_EXEC_FLAGS', 'JUNIT_RUNNER'] def runnable_status(self): """ Only run if --junit was set as an option """ for t in self.run_after: if not t.hasrun: return Task.ASK_LATER n = self.generator.path.find_dir(self.generator.junitsrc)
bld.cwd=kw['cwd']=bld.variant_dir ret=self.exec_response_command(k[0],**kw) if not ret and getattr(self,'do_manifest',None): ret=self.exec_mf() return ret for k in'c cxx winrc cprogram cxxprogram cshlib cxxshlib cstlib cxxstlib qxx'.split(): cls=Task.classes.get(k,None) if cls: cls.exec_command=exec_command_msvc cls.exec_response_command=exec_response_command cls.quote_response_command=quote_response_command cls.exec_mf=exec_mf 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) conf(no_autodetect) conf(autodetect) conf(find_msvc) conf(msvc_common_flags) after('apply_link')(apply_flags_msvc) feature('c','cxx')(apply_flags_msvc) feature('cprogram','cshlib','cxxprogram','cxxshlib')(apply_manifest) after('apply_link')(apply_manifest)
color='YELLOW' run_str='${MCS} ${CSTYPE} ${CSFLAGS} ${ASS_ST:ASSEMBLIES} ${RES_ST:RESOURCES} ${OUT} ${SRC}' def configure(conf): csc=getattr(Options.options,'cscbinary',None) if csc: conf.env.MCS=csc conf.find_program(['csc','mcs','gmcs'],var='MCS') conf.env.ASS_ST='/r:%s' conf.env.RES_ST='/resource:%s' conf.env.CS_NAME='csc' if str(conf.env.MCS).lower().find('mcs')>-1: conf.env.CS_NAME='mono' def options(opt): opt.add_option('--with-csc-binary',type='string',dest='cscbinary') class fake_csshlib(Task.Task): color='YELLOW' inst_to=None def runnable_status(self): for x in self.outputs: x.sig=Utils.h_file(x.abspath()) return Task.SKIP_ME def read_csshlib(self,name,paths=[]): return self(name=name,features='fake_lib',lib_paths=paths,lib_type='csshlib') feature('cs')(apply_cs) before('process_source')(apply_cs) feature('cs')(use_cs) after('apply_cs')(use_cs) feature('cs')(debug_cs) after('apply_cs','use_cs')(debug_cs) conf(read_csshlib)
for x in tasks: if x.hasrun!=Task.SUCCESS: self.end_msg(kw.get('errmsg','no'),color='YELLOW') self.fatal(kw.get('fatalmsg',None)or'One of the tests has failed, see the config.log for more information') self.end_msg('ok') conf(parse_flags) conf(ret_msg) conf(validate_cfg) conf(exec_cfg) conf(check_cfg) conf(validate_c) conf(post_check) conf(check) feature('test_exec')(test_exec_fun) after('apply_link')(test_exec_fun) conf(run_c_code) conf(check_cxx) conf(check_cc) conf(define) conf(undefine) conf(define_cond) conf(is_defined) conf(get_define) conf(have_define) conf(write_config_header) conf(get_config_header) conf(cc_add_flags) conf(cxx_add_flags) conf(link_add_flags) conf(cc_load_tools)
def options(opt): opt.add_option( "--want-rpath", action="store_true", default=False, dest="want_rpath", help="enable the rpath for qt libraries" ) opt.add_option( "--header-ext", type="string", default="", help="header extension for moc files", dest="qt_header_ext" ) for i in "qtdir qtbin qtlibs".split(): opt.add_option("--" + i, type="string", default="", dest=i) if sys.platform == "darwin": opt.add_option( "--no-qt4-framework", action="store_false", help="do not use the framework version of Qt4 in OS X", dest="use_qt4_osxframework", default=True, ) opt.add_option( "--translate", action="store_true", help="collect translation strings", dest="trans_qt4", default=False ) extension(*EXT_RCC)(create_rcc_task) extension(*EXT_UI)(create_uic_task) extension(".ts")(add_lang) feature("qt4")(apply_qt4) after("apply_link")(apply_qt4) extension(*EXT_QT4)(cxx_hook)