def setup_llvm_toolchain(conf, target, path_list=None): env = conf.env compiler = 'clang' env.stash() try: env['MACHINE'] = target if target: env['GNU_BINUTILS_PREFIX'] = "%s-" % target else: env['GNU_BINUTILS_PREFIX'] = "" conf.setup_gnu_binutils(path_list) config = conf.find_program('llvm-config', var='LLVM_CONFIG', path_list=path_list) env['LLVM_CONFIG'] = conf.cmd_to_list(config) cc = conf.find_program(compiler, var='CC', path_list=path_list) cc = conf.cmd_to_list(cc) + ['-target', target] env['CC_NAME'] = compiler env['CXX_NAME'] = compiler env['CC_VERSION'] = conf.cmd_and_log(env.LLVM_CONFIG + ["--version"]).strip().split('.') env.CC = cc env['CXX'] = cc env.AS = cc env.ARFLAGS = 'rcs' env['LINK_CC'] = env['CC'] env['LINK_CXX'] = env['CC'] conf.clang_common_flags() f = env.append_value f('INCLUDES', conf.cmd_and_log(env.LLVM_CONFIG + ["--includedir"]).splitlines()) f('LIBPATH', conf.cmd_and_log(env.LLVM_CONFIG + ["--libdir"]).splitlines()) conf.env.AS_TGT_F = ['-c', '-o'] conf.cc_add_flags() conf.link_add_flags() # we have to use gnu99 because we use some non standard gnu extensions conditionally # when __GNUC__ is defined env.append_value('CFLAGS_standard_c99', [ "-std=gnu99" ]) #env.stash() #try: # conf.env.prepend_value('LINKFLAGS', ['-v']) # conf.env.prepend_value('CFLAGS', ['-v']) # conf.check_cc(lib='c', msg = 'Checking if clang supports target %s' % target, okmsg='Yes', errmsg='No') #finally: # env.revert() except conf.errors.ConfigurationError: env.revert() raise
def configure(conf): """ Configuration for clang """ conf.find_clang() conf.find_ar() conf.clang_common_flags() conf.clang_modifier_platform() conf.cc_load_tools() conf.cc_add_flags() conf.link_add_flags()
def configure(conf): conf.find_clang() conf.clang_common_flags() conf.cxx_load_tools() conf.cxx_add_flags()