mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-04-01 12:43:47 +00:00
[libc++] Simplify how we select modules flavors in the test suite (#66385)
This gets rid of the separate parameter enable_modules_lsv in favor of adding a named option to the enable_modules parameter. The patch also removes the getModuleFlag helper, which was just a really complicated way of hardcoding "none".
This commit is contained in:
parent
06f9ffa050
commit
d4d8f214a3
@ -1,2 +1,2 @@
|
||||
set(LIBCXX_TEST_PARAMS "enable_modules=clang;enable_modules_lsv=True" CACHE STRING "")
|
||||
set(LIBCXX_TEST_PARAMS "enable_modules=clang-lsv" CACHE STRING "")
|
||||
set(LIBCXXABI_TEST_PARAMS "${LIBCXX_TEST_PARAMS}" CACHE STRING "")
|
||||
|
@ -87,15 +87,6 @@ def getStdFlag(cfg, std):
|
||||
return None
|
||||
|
||||
|
||||
_allModules = ["none", "clang"]
|
||||
|
||||
|
||||
def getModuleFlag(cfg, enable_modules):
|
||||
if enable_modules in _allModules:
|
||||
return enable_modules
|
||||
return None
|
||||
|
||||
|
||||
# fmt: off
|
||||
DEFAULT_PARAMETERS = [
|
||||
Parameter(
|
||||
@ -128,32 +119,25 @@ DEFAULT_PARAMETERS = [
|
||||
),
|
||||
Parameter(
|
||||
name="enable_modules",
|
||||
choices=_allModules,
|
||||
choices=["none", "clang", "clang-lsv"],
|
||||
type=str,
|
||||
help="Whether to build the test suite with modules enabled. Select "
|
||||
"`clang` for Clang modules",
|
||||
default=lambda cfg: next(s for s in _allModules if getModuleFlag(cfg, s)),
|
||||
actions=lambda enable_modules: [
|
||||
AddFeature("clang-modules-build"),
|
||||
AddCompileFlag("-fmodules"),
|
||||
AddCompileFlag("-fcxx-modules"), # AppleClang disregards -fmodules entirely when compiling C++. This enables modules for C++.
|
||||
help="Whether to build the test suite with modules enabled. "
|
||||
"Select `clang` for Clang modules, and 'clang-lsv' for Clang modules with Local Submodule Visibility.",
|
||||
default="none",
|
||||
actions=lambda modules: filter(None, [
|
||||
AddFeature("clang-modules-build") if modules in ("clang", "clang-lsv") else None,
|
||||
|
||||
# Note: AppleClang disregards -fmodules entirely when compiling C++, so we also pass -fcxx-modules
|
||||
# to enable modules for C++.
|
||||
AddCompileFlag("-fmodules -fcxx-modules") if modules in ("clang", "clang-lsv") else None,
|
||||
|
||||
# Note: We use a custom modules cache path to make sure that we don't reuse
|
||||
# the default one, which can be shared across CI builds with different
|
||||
# configurations.
|
||||
AddCompileFlag(lambda cfg: f"-fmodules-cache-path={cfg.test_exec_root}/ModuleCache"),
|
||||
]
|
||||
if enable_modules == "clang"
|
||||
else [],
|
||||
),
|
||||
Parameter(
|
||||
name="enable_modules_lsv",
|
||||
choices=[True, False],
|
||||
type=bool,
|
||||
default=False,
|
||||
help="Whether to enable Local Submodule Visibility in the Modules build.",
|
||||
actions=lambda lsv: [] if not lsv else [
|
||||
AddCompileFlag("-Xclang -fmodules-local-submodule-visibility"),
|
||||
],
|
||||
AddCompileFlag(lambda cfg: f"-fmodules-cache-path={cfg.test_exec_root}/ModuleCache") if modules in ("clang", "clang-lsv") else None,
|
||||
|
||||
AddCompileFlag("-Xclang -fmodules-local-submodule-visibility") if modules == "clang-lsv" else None,
|
||||
])
|
||||
),
|
||||
Parameter(
|
||||
name="enable_exceptions",
|
||||
|
Loading…
x
Reference in New Issue
Block a user