[libc++] Translate compiler-identification Lit features to the new DSL
This commit is contained in:
parent
b6f1bad630
commit
db015fdd20
|
|
@ -221,16 +221,6 @@ class Configuration(object):
|
|||
'(e.g., --param=cxx_under_test=clang++)')
|
||||
self.cxx = CXXCompiler(self, cxx) if not self.cxx_is_clang_cl else \
|
||||
self._configure_clang_cl(cxx)
|
||||
cxx_type = self.cxx.type
|
||||
if cxx_type is not None:
|
||||
assert self.cxx.version is not None
|
||||
maj_v, min_v, patch_v = self.cxx.version
|
||||
self.config.available_features.add(cxx_type)
|
||||
self.config.available_features.add('%s-%s' % (cxx_type, maj_v))
|
||||
self.config.available_features.add('%s-%s.%s' % (
|
||||
cxx_type, maj_v, min_v))
|
||||
self.config.available_features.add('%s-%s.%s.%s' % (
|
||||
cxx_type, maj_v, min_v, patch_v))
|
||||
self.cxx.compile_env = dict(os.environ)
|
||||
# 'CCACHE_CPP2' prevents ccache from stripping comments while
|
||||
# preprocessing. This is required to prevent stripping of '-verify'
|
||||
|
|
|
|||
|
|
@ -9,6 +9,10 @@
|
|||
from libcxx.test.dsl import *
|
||||
import sys
|
||||
|
||||
_isClang = lambda cfg: '__clang__' in compilerMacros(cfg) and '__apple_build_version__' not in compilerMacros(cfg)
|
||||
_isAppleClang = lambda cfg: '__apple_build_version__' in compilerMacros(cfg)
|
||||
_isGCC = lambda cfg: '__GNUC__' in compilerMacros(cfg) and '__clang__' not in compilerMacros(cfg)
|
||||
|
||||
features = [
|
||||
Feature(name='fcoroutines-ts', compileFlag='-fcoroutines-ts',
|
||||
when=lambda cfg: hasCompileFlag(cfg, '-fcoroutines-ts') and
|
||||
|
|
@ -27,4 +31,19 @@ features = [
|
|||
sys.platform.lower().strip() == 'darwin'), # TODO: this doesn't handle cross-compiling to Apple platforms.
|
||||
Feature(name='objective-c++', when=lambda cfg: hasCompileFlag(cfg, '-xobjective-c++ -fobjc-arc')),
|
||||
Feature(name='diagnose-if-support', when=lambda cfg: hasCompileFlag(cfg, '-Wuser-defined-warnings'), compileFlag='-Wuser-defined-warnings'),
|
||||
|
||||
Feature(name='apple-clang', when=_isAppleClang),
|
||||
Feature(name=lambda cfg: 'apple-clang-{__clang_major__}'.format(**compilerMacros(cfg)), when=_isAppleClang),
|
||||
Feature(name=lambda cfg: 'apple-clang-{__clang_major__}.{__clang_minor__}'.format(**compilerMacros(cfg)), when=_isAppleClang),
|
||||
Feature(name=lambda cfg: 'apple-clang-{__clang_major__}.{__clang_minor__}.{__clang_patchlevel__}'.format(**compilerMacros(cfg)), when=_isAppleClang),
|
||||
|
||||
Feature(name='clang', when=_isClang),
|
||||
Feature(name=lambda cfg: 'clang-{__clang_major__}'.format(**compilerMacros(cfg)), when=_isClang),
|
||||
Feature(name=lambda cfg: 'clang-{__clang_major__}.{__clang_minor__}'.format(**compilerMacros(cfg)), when=_isClang),
|
||||
Feature(name=lambda cfg: 'clang-{__clang_major__}.{__clang_minor__}.{__clang_patchlevel__}'.format(**compilerMacros(cfg)), when=_isClang),
|
||||
|
||||
Feature(name='gcc', when=_isGCC),
|
||||
Feature(name=lambda cfg: 'gcc-{__GNUC__}'.format(**compilerMacros(cfg)), when=_isGCC),
|
||||
Feature(name=lambda cfg: 'gcc-{__GNUC__}.{__GNUC_MINOR__}'.format(**compilerMacros(cfg)), when=_isGCC),
|
||||
Feature(name=lambda cfg: 'gcc-{__GNUC__}.{__GNUC_MINOR__}.{__GNUC_PATCHLEVEL__}'.format(**compilerMacros(cfg)), when=_isGCC),
|
||||
]
|
||||
|
|
|
|||
Loading…
Reference in New Issue