| @AUTO_GEN_COMMENT@ |
| |
| @SERIALIZED_LIT_PARAMS@ |
| |
| # |
| # This file performs the bridge between the CMake configuration and the Lit |
| # configuration files by setting up the LitConfig object and various Lit |
| # substitutions from CMake variables. |
| # |
| # Individual configuration files can take advantage of this bridge by |
| # loading the file and then setting up the remaining Lit substitutions. |
| # |
| |
| import os, site |
| site.addsitedir(os.path.join('@LIBUNWIND_LIBCXX_PATH@', 'utils')) |
| import libcxx.test.format |
| from lit.util import which |
| import re as _re |
| |
| # Basic configuration of the test suite |
| config.name = os.path.basename('@LIBUNWIND_TEST_CONFIG@') |
| config.test_source_root = os.path.join('@LIBUNWIND_SOURCE_DIR@', 'test') |
| config.test_format = libcxx.test.format.CxxStandardLibraryTest() |
| config.recursiveExpansionLimit = 10 |
| config.test_exec_root = os.path.join('@LIBUNWIND_BINARY_DIR@', 'test') |
| |
| # Add a few features that are common to all the configurations |
| if @LIBUNWIND_USES_ARM_EHABI@: |
| config.available_features.add('libunwind-arm-ehabi') |
| if not @LIBUNWIND_ENABLE_THREADS@: |
| config.available_features.add('libunwind-no-threads') |
| |
| # Apple uses "arm64" and "arm64e" in target triples where the canonical LLVM |
| # name is "aarch64". REQUIRES directives like `REQUIRES: target={{aarch64-.+}}` |
| # would otherwise never match on any Apple AArch64 target. Add a normalised |
| # alias so those directives work correctly. |
| _norm_triple = _re.sub(r'^arm64([^-]*)', 'aarch64', config.target_triple) |
| if _norm_triple != config.target_triple: |
| config.available_features.add('target={}'.format(_norm_triple)) |
| |
| # Add substitutions for bootstrapping the test suite configuration |
| config.substitutions.append(('%{install-prefix}', '@LIBUNWIND_TESTING_INSTALL_PREFIX@')) |
| config.substitutions.append(('%{include}', '@LIBUNWIND_TESTING_INSTALL_PREFIX@/include')) |
| config.substitutions.append(('%{lib}', '@LIBUNWIND_TESTING_INSTALL_PREFIX@/@LIBUNWIND_INSTALL_LIBRARY_DIR@')) |
| config.substitutions.append(('%{benchmark_flags}', '')) |
| |
| # Check for objcopy tools |
| objcopy_path = which('llvm-objcopy', '@LLVM_BUILD_BINARY_DIR@/bin') |
| if not objcopy_path: |
| objcopy_path = which('llvm-objcopy') |
| if not objcopy_path: |
| objcopy_path = which('objcopy') |
| if objcopy_path: |
| config.substitutions.append(('%{objcopy}', objcopy_path)) |
| config.available_features.add('objcopy-available') |