forked from OSchip/llvm-project
[libc++] Check clang-tidy version
Reviewed By: ldionne, #libc Spies: libcxx-commits, arichardson Differential Revision: https://reviews.llvm.org/D120087
This commit is contained in:
parent
ef9816e43c
commit
b324798fc8
|
@ -217,6 +217,21 @@ def runScriptExitCode(config, script):
|
|||
_, _, exitCode, _ = _executeScriptInternal(test, script)
|
||||
return exitCode
|
||||
|
||||
@_memoizeExpensiveOperation(lambda c, s: (c.substitutions, c.environment, s))
|
||||
def commandOutput(config, command):
|
||||
"""
|
||||
Runs the given script as a Lit test, and returns the output.
|
||||
If the exit code isn't 0 an exception is raised.
|
||||
|
||||
The script must be a list of commands, each of which being something that
|
||||
could appear on the right-hand-side of a `RUN:` keyword.
|
||||
"""
|
||||
with _makeConfigTest(config) as test:
|
||||
out, _, exitCode, _ = _executeScriptInternal(test, command)
|
||||
if exitCode != 0:
|
||||
raise ConfigurationRuntimeError()
|
||||
return out
|
||||
|
||||
@_memoizeExpensiveOperation(lambda c, l: (c.substitutions, c.environment, l))
|
||||
def hasAnyLocale(config, locales):
|
||||
"""
|
||||
|
|
|
@ -18,6 +18,13 @@ _isGCC = lambda cfg: '__GNUC__' in compilerMacros(cfg) and '__clang__' no
|
|||
_isMSVC = lambda cfg: '_MSC_VER' in compilerMacros(cfg)
|
||||
_msvcVersion = lambda cfg: (int(compilerMacros(cfg)['_MSC_VER']) // 100, int(compilerMacros(cfg)['_MSC_VER']) % 100)
|
||||
|
||||
def _hasSuitableClangTidy(cfg):
|
||||
try:
|
||||
return int(re.search('[0-9]+', commandOutput(cfg, ['clang-tidy --version'])).group()) >= 13
|
||||
except ConfigurationRuntimeError:
|
||||
return False
|
||||
|
||||
|
||||
DEFAULT_FEATURES = [
|
||||
Feature(name='fcoroutines-ts',
|
||||
when=lambda cfg: hasCompileFlag(cfg, '-fcoroutines-ts') and
|
||||
|
@ -109,7 +116,7 @@ DEFAULT_FEATURES = [
|
|||
Feature(name='executor-has-no-bash',
|
||||
when=lambda cfg: runScriptExitCode(cfg, ['%{exec} bash -c \'bash --version\'']) != 0),
|
||||
Feature(name='has-clang-tidy',
|
||||
when=lambda cfg: runScriptExitCode(cfg, ['clang-tidy --version']) == 0),
|
||||
when=_hasSuitableClangTidy),
|
||||
|
||||
Feature(name='apple-clang', when=_isAppleClang),
|
||||
Feature(name=lambda cfg: 'apple-clang-{__clang_major__}'.format(**compilerMacros(cfg)), when=_isAppleClang),
|
||||
|
|
Loading…
Reference in New Issue