forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			30 lines
		
	
	
		
			936 B
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			936 B
		
	
	
	
		
			Python
		
	
	
	
from __future__ import absolute_import
 | 
						|
from __future__ import print_function
 | 
						|
 | 
						|
# System modules
 | 
						|
import os
 | 
						|
import re
 | 
						|
 | 
						|
 | 
						|
GMODULES_SUPPORT_MAP = {}
 | 
						|
GMODULES_HELP_REGEX = re.compile(r"\s-gmodules\s")
 | 
						|
 | 
						|
 | 
						|
def is_compiler_clang_with_gmodules(compiler_path):
 | 
						|
    # Before computing the result, check if we already have it cached.
 | 
						|
    if compiler_path in GMODULES_SUPPORT_MAP:
 | 
						|
        return GMODULES_SUPPORT_MAP[compiler_path]
 | 
						|
 | 
						|
    def _gmodules_supported_internal():
 | 
						|
        compiler = os.path.basename(compiler_path)
 | 
						|
        if "clang" not in compiler:
 | 
						|
            return False
 | 
						|
        else:
 | 
						|
            # Check the compiler help for the -gmodules option.
 | 
						|
            clang_help = os.popen("%s --help" % compiler_path).read()
 | 
						|
            return GMODULES_HELP_REGEX.search(
 | 
						|
                clang_help, re.DOTALL) is not None
 | 
						|
 | 
						|
    GMODULES_SUPPORT_MAP[compiler_path] = _gmodules_supported_internal()
 | 
						|
    return GMODULES_SUPPORT_MAP[compiler_path]
 |