def cc_load_tools(conf): conf.check_tool('cc') def cxx_load_tools(conf): conf.check_tool('cxx') conf(ret_msg) conf(validate_cfg) conf(cmd_and_log) conf(exec_cfg) conf(check_cfg) conf(validate_c) conf(post_check) conf(check) 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) conftest(find_cpp) conftest(cc_add_flags) conftest(cxx_add_flags) conftest(link_add_flags) conftest(cc_load_tools) conftest(cxx_load_tools)
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)
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)
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) after('apply_core')(apply_link) feature('cc', 'cxx')(apply_lib_vars) after('apply_link', 'init_cc', 'init_cxx', 'apply_core')(apply_lib_vars) feature('cprogram', 'cstaticlib', 'cshlib')(apply_objdeps) after('init_cc', 'init_cxx', 'apply_link')(apply_objdeps) feature('cprogram', 'cshlib', 'cstaticlib')(apply_obj_vars) after('apply_lib_vars')(apply_obj_vars) after('apply_link')(process_obj_files) taskgen(add_obj_file) feature('cc', 'cxx')(add_extra_flags) before('init_cxx', 'init_cc')(add_extra_flags) before('apply_lib_vars', 'apply_obj_vars', 'apply_incpaths', 'init_cc')(add_extra_flags) feature('cshlib')(apply_implib) after('apply_link', 'default_cc')(apply_implib) before('apply_lib_vars', 'apply_objdeps', 'default_link_install')(apply_implib) feature('cshlib')(apply_vnum) after('apply_link')(apply_vnum) before('apply_lib_vars', 'default_link_install')(apply_vnum) conftest(add_as_needed)
#! /usr/bin/env python # encoding: utf-8 import os,sys import Configure,Options,Utils import ccroot,ar,gxx from Configure import conftest def find_icpc(conf): if sys.platform=='cygwin': conf.fatal('The Intel compiler does not work on Cygwin') v=conf.env cxx=None if v['CXX']:cxx=v['CXX'] elif'CXX'in conf.environ:cxx=conf.environ['CXX'] if not cxx:cxx=conf.find_program('icpc',var='CXX') if not cxx:conf.fatal('Intel C++ Compiler (icpc) was not found') cxx=conf.cmd_to_list(cxx) ccroot.get_cc_version(conf,cxx,icc=True) v['CXX']=cxx v['CXX_NAME']='icc' detect=''' find_icpc find_ar gxx_common_flags gxx_modifier_darwin cxx_load_tools cxx_add_flags ''' conftest(find_icpc)
v['STATICLIB_ST'] = '-l%s' v['STATICLIBPATH_ST'] = '-L%s' v['RPATH_ST'] = '-Wl,-rpath,%s' v['CCDEFINES_ST'] = '-D%s' v['SONAME_ST'] = '' v['SHLIB_MARKER'] = '' v['STATICLIB_MARKER'] = '' v['FULLSTATIC_MARKER'] = '-static' v['program_LINKFLAGS'] = ['-Wl,-brtl'] v['program_PATTERN'] = '%s' v['shlib_CCFLAGS'] = ['-fPIC', '-DPIC'] v['shlib_LINKFLAGS'] = ['-G', '-Wl,-brtl,-bexpfull'] v['shlib_PATTERN'] = 'lib%s.so' v['staticlib_LINKFLAGS'] = '' v['staticlib_PATTERN'] = 'lib%s.a' def detect(conf): conf.find_xlc() conf.find_cpp() conf.find_ar() conf.xlc_common_flags() conf.cc_load_tools() conf.cc_add_flags() conf.link_add_flags() conftest(find_xlc) conftest(find_cpp) conftest(xlc_common_flags)
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) after('apply_core')(apply_link) feature('cc','cxx')(apply_lib_vars) after('apply_link','init_cc','init_cxx','apply_core')(apply_lib_vars) feature('cprogram','cstaticlib','cshlib')(apply_objdeps) after('init_cc','init_cxx','apply_link')(apply_objdeps) feature('cprogram','cshlib','cstaticlib')(apply_obj_vars) after('apply_lib_vars')(apply_obj_vars) after('apply_link')(process_obj_files) taskgen(add_obj_file) feature('cc','cxx')(add_extra_flags) before('init_cxx','init_cc')(add_extra_flags) before('apply_lib_vars','apply_obj_vars','apply_incpaths','init_cc')(add_extra_flags) feature('cshlib')(apply_implib) after('apply_link','default_cc')(apply_implib) before('apply_lib_vars','apply_objdeps','default_link_install')(apply_implib) feature('cshlib')(apply_vnum) after('apply_link')(apply_vnum) before('apply_lib_vars','default_link_install')(apply_vnum) conftest(add_as_needed)
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' def check_dlibrary(conf): ret=conf.check_cc(features='d dprogram',fragment=DLIB,mandatory=True,compile_filename='test.d',execute=True) conf.env.DLIBRARY=ret.strip() 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_vars')(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) conftest(check_dlibrary)
#! /usr/bin/env python # encoding: utf-8 import os,sys import Task,Utils from Configure import conftest ar_str='${AR} ${ARFLAGS} ${AR_TGT_F}${TGT} ${AR_SRC_F}${SRC}' cls=Task.simple_task_type('static_link',ar_str,color='YELLOW',ext_in='.o',ext_out='.bin',shell=False) cls.maxjobs=1 cls.install=Utils.nada old=cls.run def wrap(self): try:os.remove(self.outputs[0].abspath(self.env)) except OSError:pass return old(self) setattr(cls,'run',wrap) def detect(conf): conf.find_program('ar',var='AR') conf.find_program('ranlib',var='RANLIB') conf.env.ARFLAGS='rcs' def find_ar(conf): v=conf.env conf.check_tool('ar') if not v['AR']:conf.fatal('ar is required for static libraries - not found') conftest(find_ar)
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)
v['CXXLNK_TGT_F']=['-o',''] v['LIB_ST']='-l%s' v['LIBPATH_ST']='-L%s' v['STATICLIB_ST']='-l%s' v['STATICLIBPATH_ST']='-L%s' v['RPATH_ST']='-Wl,-rpath,%s' v['CXXDEFINES_ST']='-D%s' v['SONAME_ST']='' v['SHLIB_MARKER']='' v['STATICLIB_MARKER']='' v['FULLSTATIC_MARKER']='-static' v['program_LINKFLAGS']=['-Wl,-brtl'] v['program_PATTERN']='%s' v['shlib_CXXFLAGS']=['-fPIC','-DPIC'] v['shlib_LINKFLAGS']=['-G','-Wl,-brtl,-bexpfull'] v['shlib_PATTERN']='lib%s.so' v['staticlib_LINKFLAGS']='' v['staticlib_PATTERN']='lib%s.a' def detect(conf): conf.find_xlcxx() conf.find_cpp() conf.find_ar() conf.xlcxx_common_flags() conf.cxx_load_tools() conf.cxx_add_flags() conf.link_add_flags() conftest(find_xlcxx) conftest(find_cpp) conftest(xlcxx_common_flags)
v=conf.env v['shlib_CXXFLAGS']=['-fPIC','-compatibility_version','1','-current_version','1'] v['shlib_LINKFLAGS']=['-dynamiclib'] v['shlib_PATTERN']='lib%s.dylib' v['staticlib_LINKFLAGS']=[] v['SHLIB_MARKER']='' v['STATICLIB_MARKER']='' def gxx_modifier_aix5(conf): v=conf.env v['program_LINKFLAGS']=['-Wl,-brtl'] v['shlib_LINKFLAGS']=['-shared','-Wl,-brtl,-bexpfull'] v['SHLIB_MARKER']='' def detect(conf): conf.find_gxx() conf.find_cpp() conf.find_ar() conf.gxx_common_flags() target_platform=conf.env['TARGET_PLATFORM']or sys.platform gxx_modifier_func=globals().get('gxx_modifier_'+target_platform) if gxx_modifier_func: gxx_modifier_func(conf) conf.cxx_load_tools() conf.cxx_add_flags() conftest(find_gxx) conftest(gxx_common_flags) conftest(gxx_modifier_win32) conftest(gxx_modifier_cygwin) conftest(gxx_modifier_darwin) conftest(gxx_modifier_aix5)
v['CCLNK_SRC_F']='' v['CCLNK_TGT_F']=['-o',''] v['LIB_ST']='-l%s' v['LIBPATH_ST']='-L%s' v['STATICLIB_ST']='-l%s' v['STATICLIBPATH_ST']='-L%s' v['RPATH_ST']='-Wl,-rpath,%s' v['CCDEFINES_ST']='-D%s' v['SONAME_ST']='' v['SHLIB_MARKER']='' v['STATICLIB_MARKER']='' v['FULLSTATIC_MARKER']='-static' v['program_LINKFLAGS']=['-Wl,-brtl'] v['program_PATTERN']='%s' v['shlib_CCFLAGS']=['-fPIC','-DPIC'] v['shlib_LINKFLAGS']=['-G','-Wl,-brtl,-bexpfull'] v['shlib_PATTERN']='lib%s.so' v['staticlib_LINKFLAGS']='' v['staticlib_PATTERN']='lib%s.a' def detect(conf): conf.find_xlc() conf.find_cpp() conf.find_ar() conf.xlc_common_flags() conf.cc_load_tools() conf.cc_add_flags() conftest(find_xlc) conftest(find_cpp) conftest(xlc_common_flags)
if not ret:self.fatal("no shared libs") lib_obj=Configure.check_data() lib_obj.code="int k = 3;\n" lib_obj.env=v lib_obj.build_type="staticlib" lib_obj.force_compiler=kind ret=self.run_check(lib_obj) self.check_message('compiler could create','static libs',not(ret is False)) if not ret:self.fatal("no static libs") def cxx_check_features(self): return cc_check_features(self,kind='cpp') conf(validate_cfg) conf(exec_cfg) conf(check_cfg) conf(validate_c) conf(post_check) conf(check) 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) conftest(cc_check_features) conftest(cxx_check_features)
import Configure, Options, Utils import ccroot, ar, gxx from Configure import conftest def find_icpc(conf): if sys.platform == 'cygwin': conf.fatal('The Intel compiler does not work on Cygwin') v = conf.env cxx = None if v['CXX']: cxx = v['CXX'] elif 'CXX' in conf.environ: cxx = conf.environ['CXX'] if not cxx: cxx = conf.find_program('icpc', var='CXX') if not cxx: conf.fatal('Intel C++ Compiler (icpc) was not found') cxx = conf.cmd_to_list(cxx) ccroot.get_cc_version(conf, cxx, icc=True) v['CXX'] = cxx v['CXX_NAME'] = 'icc' detect = ''' find_icpc find_ar gxx_common_flags gxx_modifier_platform cxx_load_tools cxx_add_flags ''' conftest(find_icpc)
import os,sys import Configure,Options,Utils import ccroot,ar,gcc from Configure import conftest def find_icc(conf): if sys.platform=='cygwin': conf.fatal('The Intel compiler does not work on Cygwin') v=conf.env cc=None if v['CC']:cc=v['CC'] elif'CC'in conf.environ:cc=conf.environ['CC'] if not cc:cc=conf.find_program('icc',var='CC') if not cc:cc=conf.find_program('ICL',var='CC') if not cc:conf.fatal('Intel C Compiler (icc) was not found') cc=conf.cmd_to_list(cc) ccroot.get_cc_version(conf,cc,icc=True) v['CC']=cc v['CC_NAME']='icc' detect=''' find_icc find_ar gcc_common_flags gcc_modifier_platform cc_load_tools cc_add_flags link_add_flags ''' conftest(find_icc)
try: v['CC_NAME']='icc' v['CPPFLAGS'].remove('/errorReport:prompt') except ValueError: pass if sys.platform=='win32': detect=''' find_icc find_msvc msvc_common_flags icc_modifier_win32 cc_load_tools cc_add_flags ''' elif sys.platform=='cygwin': conf.fatal("ICC module is not supported for cygwin. Try under native Win32") else: detect=''' find_icc find_ar gcc_common_flags gcc_modifier_darwin cc_load_tools cc_add_flags ''' conftest(find_icc) conftest(find_icc_win32) conftest(find_icc_other) conftest(icc_modifier_win32)
for x in "OPTIMIZED RELEASE DEBUG ULTRADEBUG".split(): v.append_unique("CCFLAGS_" + x, "-Wall") try: debug_level = Options.options.debug_level.upper() except AttributeError: debug_level = ccroot.DEBUG_LEVELS.CUSTOM v.append_value("CCFLAGS", v["CCFLAGS_" + debug_level]) v.append_value("LINKFLAGS", v["LINKFLAGS_" + debug_level]) detect = """ find_gcc find_cpp find_ar gcc_common_flags gcc_modifier_win32 gcc_modifier_cygwin gcc_modifier_darwin gcc_modifier_aix5 cc_load_tools cc_add_flags """ conftest(find_gcc) conftest(gcc_common_flags) conftest(gcc_modifier_win32) conftest(gcc_modifier_cygwin) conftest(gcc_modifier_darwin) conftest(gcc_modifier_aix5) conftest(gcc_modifier_debug)
v = conf.env v['program_LINKFLAGS'] = ['-Wl,-brtl'] v['shlib_LINKFLAGS'] = ['-shared', '-Wl,-brtl,-bexpfull'] v['SHLIB_MARKER'] = '' def gxx_modifier_platform(conf): dest_os = conf.env['DEST_OS'] or Utils.unversioned_sys_platform() gxx_modifier_func = globals().get('gxx_modifier_' + dest_os) if gxx_modifier_func: gxx_modifier_func(conf) def detect(conf): conf.find_gxx() conf.find_cpp() conf.find_ar() conf.gxx_common_flags() conf.gxx_modifier_platform() conf.cxx_load_tools() conf.cxx_add_flags() conftest(find_gxx) conftest(gxx_common_flags) conftest(gxx_modifier_win32) conftest(gxx_modifier_cygwin) conftest(gxx_modifier_darwin) conftest(gxx_modifier_aix) conftest(gxx_modifier_platform)
# encoding: utf-8 import os,sys import Configure,Options,Utils import ccroot,ar,gcc from Configure import conftest def find_icc(conf): if sys.platform=='cygwin': conf.fatal('The Intel compiler does not work on Cygwin') v=conf.env cc=None if v['CC']:cc=v['CC'] elif'CC'in conf.environ:cc=conf.environ['CC'] if not cc:cc=conf.find_program('icc',var='CC') if not cc:cc=conf.find_program('ICL',var='CC') if not cc:conf.fatal('Intel C Compiler (icc) was not found') cc=conf.cmd_to_list(cc) ccroot.get_cc_version(conf,cc,icc=True) v['CC']=cc v['CC_NAME']='icc' detect=''' find_icc find_ar gcc_common_flags gcc_modifier_platform cc_load_tools cc_add_flags ''' conftest(find_icc)
v['CXX_TGT_F']=['-c','-o',''] v['CPPPATH_ST']='-I%s' if not v['LINK_CXX']:v['LINK_CXX']=v['CXX'] v['CXXLNK_SRC_F']='' v['CXXLNK_TGT_F']=['-o',''] v['LIB_ST']='-l%s' v['LIBPATH_ST']='-L%s' v['STATICLIB_ST']='-l%s' v['STATICLIBPATH_ST']='-L%s' v['CXXDEFINES_ST']='-D%s' v['SONAME_ST']='-Wl,-h -Wl,%s' v['SHLIB_MARKER']='-Bdynamic' v['STATICLIB_MARKER']='-Bstatic' v['program_PATTERN']='%s' v['shlib_CXXFLAGS']=['-Kpic','-DPIC'] v['shlib_LINKFLAGS']=['-G'] v['shlib_PATTERN']='lib%s.so' v['staticlib_LINKFLAGS']=['-Bstatic'] v['staticlib_PATTERN']='lib%s.a' detect=''' find_sxx find_cpp find_ar sxx_common_flags cxx_load_tools cxx_add_flags ''' conftest(find_sxx) conftest(sxx_common_flags)
v['D_staticlib_PATTERN'] = 'lib%s.a' def check_dlibrary(conf): ret = conf.check_cc(features='d dprogram', fragment=DLIB, mandatory=True, compile_filename='test.d', execute=True) conf.env.DLIBRARY = ret.strip() 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_vars')(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) conftest(check_dlibrary)
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)
v['CC_TGT_F']=['-c','-o',''] v['CPPPATH_ST']='-I%s' if not v['LINK_CC']:v['LINK_CC']=v['CC'] v['CCLNK_SRC_F']='' v['CCLNK_TGT_F']=['-o',''] v['LIB_ST']='-l%s' v['LIBPATH_ST']='-L%s' v['STATICLIB_ST']='-l%s' v['STATICLIBPATH_ST']='-L%s' v['CCDEFINES_ST']='-D%s' v['SONAME_ST']='-Wl,-h -Wl,%s' v['SHLIB_MARKER']='-Bdynamic' v['STATICLIB_MARKER']='-Bstatic' v['program_PATTERN']='%s' v['shlib_CCFLAGS']=['-Kpic','-DPIC'] v['shlib_LINKFLAGS']=['-G'] v['shlib_PATTERN']='lib%s.so' v['staticlib_LINKFLAGS']=['-Bstatic'] v['staticlib_PATTERN']='lib%s.a' detect=''' find_scc find_cpp find_ar scc_common_flags cc_load_tools cc_add_flags ''' conftest(find_scc) conftest(scc_common_flags)
cls.maxjobs = 1 cls.install = Utils.nada old = cls.run def wrap(self): try: os.remove(self.outputs[0].abspath(self.env)) except OSError: pass return old(self) setattr(cls, 'run', wrap) def detect(conf): conf.find_program('ar', var='AR') conf.find_program('ranlib', var='RANLIB') conf.env.ARFLAGS = 'rcs' def find_ar(conf): v = conf.env conf.check_tool('ar') if not v['AR']: conf.fatal('ar is required for static libraries - not found') conftest(find_ar)
if not v['LINK_CXX']: v['LINK_CXX'] = v['CXX'] v['CXXLNK_SRC_F'] = '' v['CXXLNK_TGT_F'] = ['-o', ''] v['LIB_ST'] = '-l%s' v['LIBPATH_ST'] = '-L%s' v['STATICLIB_ST'] = '-l%s' v['STATICLIBPATH_ST'] = '-L%s' v['CXXDEFINES_ST'] = '-D%s' v['SONAME_ST'] = '-Wl,-h -Wl,%s' v['SHLIB_MARKER'] = '-Bdynamic' v['STATICLIB_MARKER'] = '-Bstatic' v['program_PATTERN'] = '%s' v['shlib_CXXFLAGS'] = ['-Kpic', '-DPIC'] v['shlib_LINKFLAGS'] = ['-G'] v['shlib_PATTERN'] = 'lib%s.so' v['staticlib_LINKFLAGS'] = ['-Bstatic'] v['staticlib_PATTERN'] = 'lib%s.a' detect = ''' find_sxx find_cpp find_ar sxx_common_flags cxx_load_tools cxx_add_flags ''' conftest(find_sxx) conftest(sxx_common_flags)
v['shlib_PATTERN']='lib%s.dylib' v['staticlib_LINKFLAGS']=[] v['SHLIB_MARKER']='' v['STATICLIB_MARKER']='' def gcc_modifier_aix(conf): v=conf.env v['program_LINKFLAGS']=['-Wl,-brtl'] v['shlib_LINKFLAGS']=['-shared','-Wl,-brtl,-bexpfull'] v['SHLIB_MARKER']='' def gcc_modifier_platform(conf): dest_os=conf.env['DEST_OS']or Utils.unversioned_sys_platform() gcc_modifier_func=globals().get('gcc_modifier_'+dest_os) if gcc_modifier_func: gcc_modifier_func(conf) def detect(conf): conf.find_gcc() conf.find_cpp() conf.find_ar() conf.gcc_common_flags() conf.gcc_modifier_platform() conf.cc_load_tools() conf.cc_add_flags() conftest(find_gcc) conftest(gcc_common_flags) conftest(gcc_modifier_win32) conftest(gcc_modifier_cygwin) conftest(gcc_modifier_darwin) conftest(gcc_modifier_aix) conftest(gcc_modifier_platform)
v["CCLNK_SRC_F"] = "" v["CCLNK_TGT_F"] = ["-o", ""] v["LIB_ST"] = "-l%s" v["LIBPATH_ST"] = "-L%s" v["STATICLIB_ST"] = "-l%s" v["STATICLIBPATH_ST"] = "-L%s" v["CCDEFINES_ST"] = "-D%s" v["SONAME_ST"] = "-Wl,-h -Wl,%s" v["SHLIB_MARKER"] = "-Bdynamic" v["STATICLIB_MARKER"] = "-Bstatic" v["program_PATTERN"] = "%s" v["shlib_CCFLAGS"] = ["-Kpic", "-DPIC"] v["shlib_LINKFLAGS"] = ["-G"] v["shlib_PATTERN"] = "lib%s.so" v["staticlib_LINKFLAGS"] = ["-Bstatic"] v["staticlib_PATTERN"] = "lib%s.a" detect = """ find_scc find_cpp find_ar scc_common_flags cc_load_tools cc_add_flags link_add_flags """ conftest(find_scc) conftest(scc_common_flags)
v = conf.env v["CXXFLAGS"] = [""] if conf.check_flags("-O2", kind=kind): v["CXXFLAGS_OPTIMIZED"] = ["-O2"] v["CXXFLAGS_RELEASE"] = ["-O2"] if conf.check_flags("-g -DDEBUG", kind=kind): v["CXXFLAGS_DEBUG"] = ["-g", "-DDEBUG"] if conf.check_flags("-g3 -O0 -DDEBUG", kind=kind): v["CXXFLAGS_ULTRADEBUG"] = ["-g3", "-O0", "-DDEBUG"] try: debug_level = Options.options.debug_level.upper() except AttributeError: debug_level = ccroot.DEBUG_LEVELS.CUSTOM v.append_value("CXXFLAGS", v["CXXFLAGS_" + debug_level]) detect = """ find_sxx find_cpp find_ar sxx_common_flags cxx_load_tools cxx_check_features sxx_modifier_debug cxx_add_flags """ conftest(find_sxx) conftest(sxx_common_flags) conftest(sxx_modifier_debug)
def find_gdc(conf): conf.find_program('gdc',var='D_COMPILER',mandatory=True) def common_flags_gdc(conf): v=conf.env v['DFLAGS']=[] v['D_SRC_F']='' v['D_TGT_F']=['-c','-o',''] v['DPATH_ST']='-I%s' v['D_LINKER']=v['D_COMPILER'] v['DLNK_SRC_F']='' v['DLNK_TGT_F']=['-o',''] v['DLIB_ST']='-l%s' v['DLIBPATH_ST']='-L%s' v['DLINKFLAGS']=[] v['DFLAGS_OPTIMIZED']=['-O3'] v['DFLAGS_DEBUG']=['-O0'] v['DFLAGS_ULTRADEBUG']=['-O0'] v['D_shlib_DFLAGS']=[] v['D_shlib_LINKFLAGS']=['-shared'] v['DHEADER_ext']='.di' v['D_HDR_F']='-fintfc -fintfc-file=' def detect(conf): conf.find_gdc() conf.check_tool('ar') conf.check_tool('d') conf.common_flags_gdc() conf.d_platform_flags() conftest(find_gdc) conftest(common_flags_gdc)
v['SHLIB_MARKER'] = '' v['STATICLIB_MARKER'] = '' def gcc_modifier_aix5(conf): v = conf.env v['program_LINKFLAGS'] = ['-Wl,-brtl'] v['shlib_LINKFLAGS'] = ['-shared', '-Wl,-brtl,-bexpfull'] v['SHLIB_MARKER'] = '' def detect(conf): conf.find_gcc() conf.find_cpp() conf.find_ar() conf.gcc_common_flags() target_platform = conf.env['TARGET_PLATFORM'] or sys.platform gcc_modifier_func = globals().get('gcc_modifier_' + target_platform) if gcc_modifier_func: gcc_modifier_func(conf) conf.cc_load_tools() conf.cc_add_flags() conftest(find_gcc) conftest(gcc_common_flags) conftest(gcc_modifier_win32) conftest(gcc_modifier_cygwin) conftest(gcc_modifier_darwin) conftest(gcc_modifier_aix5)
v['staticlib_PATTERN']='lib%s.a' def scc_modifier_debug(conf): v=conf.env v['CCFLAGS']=['-O'] if conf.check_flags('-O2'): v['CCFLAGS_OPTIMIZED']=['-O2'] v['CCFLAGS_RELEASE']=['-O2'] if conf.check_flags('-g -DDEBUG'): v['CCFLAGS_DEBUG']=['-g','-DDEBUG'] if conf.check_flags('-g3 -O0 -DDEBUG'): v['CCFLAGS_ULTRADEBUG']=['-g3','-O0','-DDEBUG'] try: debug_level=Options.options.debug_level.upper() except AttributeError: debug_level=ccroot.DEBUG_LEVELS.CUSTOM v.append_value('CCFLAGS',v['CCFLAGS_'+debug_level]) detect=''' find_scc find_cpp find_ar scc_common_flags cc_load_tools cc_check_features gcc_modifier_debug cc_add_flags ''' conftest(find_scc) conftest(scc_common_flags) conftest(scc_modifier_debug)
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)
v=conf.env v['DFLAGS']=['-version=Posix'] v['D_SRC_F']='' v['D_TGT_F']=['-c','-of'] v['DPATH_ST']='-I%s' v['D_LINKER']=v['D_COMPILER'] v['DLNK_SRC_F']='' v['DLNK_TGT_F']='-of' v['DLIB_ST']='-L-l%s' v['DLIBPATH_ST']='-L-L%s' v['DFLAGS_OPTIMIZED']=['-O'] v['DFLAGS_DEBUG']=['-g','-debug'] v['DFLAGS_ULTRADEBUG']=['-g','-debug'] v['DLINKFLAGS']=['-quiet'] v['D_shlib_DFLAGS']=['-fPIC'] v['D_shlib_LINKFLAGS']=['-L-shared'] v['DHEADER_ext']='.di' v['D_HDR_F']=['-H','-Hf'] def detect(conf): conf.find_dmd() conf.check_tool('ar') conf.check_tool('d') conf.common_flags_dmd() conf.d_platform_flags() if conf.env.D_COMPILER.find('ldc')>-1: conf.common_flags_ldc() conftest(find_dmd) conftest(common_flags_ldc) conftest(common_flags_dmd)