xref: /llvm-project/libunwind/test/configs/llvm-libunwind-merged.cfg.in (revision b32aac4358c1f6639de7c453656cd74fbab75d71)
1#
2# Configuration file for running the libunwind tests against a libc++ shared library
3# into which the unwinder was merged.
4#
5
6lit_config.load_config(config, '@CMAKE_CURRENT_BINARY_DIR@/cmake-bridge.cfg')
7
8compile_flags = []
9link_flags = []
10
11if @LIBUNWIND_ENABLE_CET@:
12    compile_flags.append('-fcf-protection=full')
13
14if @LIBUNWIND_ENABLE_GCS@:
15    compile_flags.append('-mbranch-protection=standard')
16
17# On ELF platforms, link tests with -Wl,--export-dynamic if supported by the linker.
18if len('@CMAKE_EXE_EXPORTS_CXX_FLAG@'):
19    link_flags.append('@CMAKE_EXE_EXPORTS_CXX_FLAG@')
20
21if '@CMAKE_DL_LIBS@':
22    link_flags.append('-l@CMAKE_DL_LIBS@')
23
24# Stack unwinding tests need unwinding tables and these are not generated by default on all targets.
25compile_flags.append('-funwind-tables')
26
27local_sysroot = '@CMAKE_OSX_SYSROOT@' or '@CMAKE_SYSROOT@'
28config.substitutions.append(('%{flags}',
29    '-isysroot {}'.format(local_sysroot) if local_sysroot else ''
30))
31config.substitutions.append(('%{compile_flags}',
32    '-nostdinc++ -I %{{include}} {}'.format(' '.join(compile_flags))
33))
34config.substitutions.append(('%{link_flags}',
35    '-L %{{lib}} -Wl,-rpath,%{{lib}} -lc++ {}'.format(' '.join(link_flags))
36))
37config.substitutions.append(('%{exec}',
38    '%{executor} --execdir %T -- '
39))
40
41import os, site
42site.addsitedir(os.path.join('@LIBUNWIND_LIBCXX_PATH@', 'utils'))
43import libcxx.test.params, libcxx.test.config
44libcxx.test.config.configure(
45    libcxx.test.params.DEFAULT_PARAMETERS,
46    libcxx.test.features.DEFAULT_FEATURES,
47    config,
48    lit_config
49)
50