@AUTO_GEN_COMMENT@

@SERIALIZED_LIT_PARAMS@

import os
import site

config.cxx_under_test           = "@CMAKE_CXX_COMPILER@"
config.project_obj_root         = "@CMAKE_BINARY_DIR@"
config.install_root             = "@CMAKE_BINARY_DIR@"
config.libcxxabi_hdr_root       = "@LIBCXXABI_HEADER_DIR@"
config.libcxxabi_src_root       = "@LIBCXXABI_SOURCE_DIR@"
config.libcxxabi_obj_root       = "@LIBCXXABI_BINARY_DIR@"
config.abi_library_root         = "@LIBCXXABI_LIBRARY_DIR@"
config.libcxx_src_root          = "@LIBCXXABI_LIBCXX_PATH@"
config.cxx_headers              = "@LIBCXXABI_LIBCXX_INCLUDES@"
config.libunwind_headers        = "@LIBCXXABI_LIBUNWIND_INCLUDES_INTERNAL@"
config.cxx_library_root         = "@LIBCXXABI_LIBCXX_LIBRARY_PATH@"
config.llvm_unwinder            = @LIBCXXABI_USE_LLVM_UNWINDER@
config.builtins_library         = "@LIBCXXABI_BUILTINS_LIBRARY@"
config.enable_threads           = @LIBCXXABI_ENABLE_THREADS@
config.target_info              = "@LIBCXXABI_TARGET_INFO@"
config.executor                 = "@LIBCXXABI_EXECUTOR@"
config.libcxxabi_shared         = @LIBCXXABI_LINK_TESTS_WITH_SHARED_LIBCXXABI@
config.enable_shared            = @LIBCXXABI_LINK_TESTS_WITH_SHARED_LIBCXX@
config.host_triple              = "@LLVM_HOST_TRIPLE@"
config.sysroot                  = "@CMAKE_SYSROOT@"
config.gcc_toolchain            = "@CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN@"
config.cxx_ext_threads          = @LIBCXXABI_BUILD_EXTERNAL_THREAD_LIBRARY@

config.pstl_src_root            = "@ParallelSTL_SOURCE_DIR@" if @LIBCXX_ENABLE_PARALLEL_ALGORITHMS@ else None
config.pstl_obj_root            = "@ParallelSTL_BINARY_DIR@" if @LIBCXX_ENABLE_PARALLEL_ALGORITHMS@ else None

# Code signing
config.llvm_codesign_identity   = "@LLVM_CODESIGNING_IDENTITY@"

site.addsitedir(os.path.join(config.libcxxabi_src_root, 'test'))
site.addsitedir(os.path.join(config.libcxx_src_root, 'utils'))

# name: The name of this test suite.
config.name = 'libc++abi'

# suffixes: A list of file extensions to treat as test files.
config.suffixes = ['.cpp', '.s']

# test_source_root: The root path where tests are located.
config.test_source_root = os.path.join(config.libcxxabi_src_root, 'test')

# Allow expanding substitutions that are based on other substitutions
config.recursiveExpansionLimit = 10

# Infer the test_exec_root from the build directory.
config.test_exec_root = os.path.join(config.libcxxabi_obj_root, 'test')

import libcxx.test.format
config.test_format = libcxx.test.format.CxxStandardLibraryTest()

lit_config.note('Using configuration variant: libcxxabi')
import libcxxabi.test.config
configuration = libcxxabi.test.config.Configuration(lit_config, config)
configuration.configure()
configuration.print_config_info()

lit_config.warning("This is a legacy testing configuration which will be removed in LLVM 16. "
                   "Please use one of the configurations in libcxxabi/test/configs or define your own.")
