mirror of https://github.com/google/pebble
				
				
				
			
		
			
				
	
	
		
			71 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
from os import path
 | 
						|
 | 
						|
def options(opt):
 | 
						|
    opt.load('compiler_cxx')
 | 
						|
    opt.add_option('--checker', action='store', default='all')
 | 
						|
 | 
						|
def configure(conf):
 | 
						|
    conf.env.CXX = 'clang++'
 | 
						|
    conf.load('compiler_cxx')
 | 
						|
 | 
						|
    conf.env.append_value('DEFINES', ['__STDC_CONSTANT_MACROS',
 | 
						|
                                      '__STDC_LIMIT_MACROS'])
 | 
						|
 | 
						|
    conf.check_cfg(msg='Checking for llvm config',
 | 
						|
                   path='llvm-config',
 | 
						|
                   package='',
 | 
						|
                   args='--cxxflags --ldflags --libs --system-libs',
 | 
						|
                   uselib_store='LLVM')
 | 
						|
 | 
						|
    clang_libs = ['clang',
 | 
						|
                  'clangARCMigrate',
 | 
						|
                  'clangAST',
 | 
						|
                  'clangASTMatchers',
 | 
						|
                  'clangAnalysis',
 | 
						|
                  'clangApplyReplacements',
 | 
						|
                  'clangBasic',
 | 
						|
                  'clangCodeGen',
 | 
						|
                  'clangDriver',
 | 
						|
                  'clangDynamicASTMatchers',
 | 
						|
                  'clangEdit',
 | 
						|
                  'clangFormat',
 | 
						|
                  'clangFrontend',
 | 
						|
                  'clangFrontendTool',
 | 
						|
                  'clangIndex',
 | 
						|
                  'clangLex',
 | 
						|
                  'clangParse',
 | 
						|
                  'clangQuery',
 | 
						|
                  'clangRename',
 | 
						|
                  'clangRewrite',
 | 
						|
                  'clangRewriteFrontend',
 | 
						|
                  'clangSema',
 | 
						|
                  'clangSerialization',
 | 
						|
                  'clangStaticAnalyzerCheckers',
 | 
						|
                  'clangStaticAnalyzerCore',
 | 
						|
                  'clangStaticAnalyzerFrontend',
 | 
						|
                  'clangTooling',
 | 
						|
                  'clangToolingCore']
 | 
						|
 | 
						|
    conf.check_cxx(msg='Checking for clang++',
 | 
						|
                   uselib_store='CLANG',
 | 
						|
                   use=['LLVM'],
 | 
						|
                   lib=clang_libs)
 | 
						|
 | 
						|
def build(bld):
 | 
						|
    checkers = []
 | 
						|
 | 
						|
    if bld.options.checker == 'all':
 | 
						|
        checkers = bld.path.ant_glob('*.cpp')
 | 
						|
    else:
 | 
						|
        checkers = [ bld.path.make_node(bld.options.checker) ]
 | 
						|
 | 
						|
    for checker in checkers:
 | 
						|
        source = [ checker ]
 | 
						|
        target = checker.change_ext('.dylib')
 | 
						|
        bld.shlib(source=source,
 | 
						|
                  target=target,
 | 
						|
                  use=['CLANG', 'LLVM'],
 | 
						|
                  cppflags=['-fno-rtti', '-std=c++11', '-fPIC'])
 | 
						|
 | 
						|
# vim:filetype=python
 |