xref: /llvm-project/libcxx/test/configs/llvm-libc++-shared-no-vcruntime-clangcl.cfg.in (revision 0e8208eca1c316b7302de7803ab0d85a1dd77076)
1# This testing configuration handles running the test suite against LLVM's libc++
2# using a DLL, with Clang-cl on Windows. This variant sets _HAS_EXCEPTIONS = 0
3# which removes exception class definitions from the vcruntime.
4
5lit_config.load_config(config, '@CMAKE_CURRENT_BINARY_DIR@/cmake-bridge.cfg')
6
7dbg_include = ''
8runtime_library = '@CMAKE_MSVC_RUNTIME_LIBRARY@'
9if runtime_library == '' or runtime_library.endswith('DLL'):
10    fms_runtime_lib = 'dll'
11    cxx_lib = 'msvcprt'
12else:
13    fms_runtime_lib = 'static'
14    cxx_lib = 'libcpmt'
15
16if '@CMAKE_BUILD_TYPE@'.upper() == 'DEBUG':
17    dbg_include = ' -D_DEBUG -include set_windows_crt_report_mode.h'
18    fms_runtime_lib += '_dbg'
19    cxx_lib += 'd'
20
21config.substitutions.append(('%{flags}', '--driver-mode=g++'))
22config.substitutions.append(('%{compile_flags}',
23    '-fms-runtime-lib=' + fms_runtime_lib + ' -nostdinc++ -I %{include-dir} -I %{target-include-dir} -I %{libcxx-dir}/test/support -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_STDIO_ISO_WIDE_SPECIFIERS -DNOMINMAX -D_HAS_EXCEPTIONS=0' + dbg_include
24))
25config.substitutions.append(('%{link_flags}',
26    '-nostdlib -L %{lib-dir} -lc++ -l' + cxx_lib
27))
28config.substitutions.append(('%{exec}',
29    '%{executor} --execdir %T --prepend_env PATH=%{install-prefix}/bin -- '
30))
31
32import os, site
33site.addsitedir(os.path.join('@LIBCXX_SOURCE_DIR@', 'utils'))
34import libcxx.test.params, libcxx.test.config
35libcxx.test.config.configure(
36    libcxx.test.params.DEFAULT_PARAMETERS,
37    libcxx.test.features.DEFAULT_FEATURES,
38    config,
39    lit_config
40)
41