gmodules.py
936 Bytes
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]