2016-08-29 02:16:18 +08:00
|
|
|
include(AddLLVM) # for add_lit_testsuite
|
2014-07-10 10:20:11 +08:00
|
|
|
macro(pythonize_bool var)
|
|
|
|
if (${var})
|
|
|
|
set(${var} True)
|
|
|
|
else()
|
|
|
|
set(${var} False)
|
|
|
|
endif()
|
|
|
|
endmacro()
|
|
|
|
|
2016-04-19 20:47:38 +08:00
|
|
|
if (NOT DEFINED LIBCXX_ENABLE_SHARED)
|
|
|
|
set(LIBCXX_ENABLE_SHARED ON)
|
|
|
|
endif()
|
|
|
|
|
2016-06-02 10:18:31 +08:00
|
|
|
pythonize_bool(LIBCXXABI_BUILD_32_BITS)
|
2016-04-19 20:47:38 +08:00
|
|
|
pythonize_bool(LIBCXX_ENABLE_SHARED)
|
2014-07-10 10:20:11 +08:00
|
|
|
pythonize_bool(LIBCXXABI_ENABLE_SHARED)
|
2014-11-25 06:42:03 +08:00
|
|
|
pythonize_bool(LIBCXXABI_ENABLE_THREADS)
|
2016-05-31 20:01:32 +08:00
|
|
|
pythonize_bool(LIBCXXABI_ENABLE_EXCEPTIONS)
|
2014-07-11 23:36:02 +08:00
|
|
|
pythonize_bool(LIBCXXABI_USE_LLVM_UNWINDER)
|
2019-02-05 12:44:03 +08:00
|
|
|
pythonize_bool(LIBCXXABI_USE_COMPILER_RT)
|
2017-01-09 19:57:21 +08:00
|
|
|
pythonize_bool(LIBCXXABI_BUILD_EXTERNAL_THREAD_LIBRARY)
|
2019-08-08 20:43:20 +08:00
|
|
|
pythonize_bool(LIBCXX_ENABLE_PARALLEL_ALGORITHMS)
|
[libcxxabi] Allow tests to link with static libc++abi/libc++ even if the shared version is present
Summary:
Right now the only way to force libc++abi tests to link with the static version of libc++abi is to set `LIBCXXABI_ENABLE_SHARED` to `OFF`. However, this doesn't work when libc++abi is built as standalone project because of [this](https://github.com/llvm/llvm-project/blob/54c522420347e58aa7bae1892cf5c5672b57c875/libcxxabi/CMakeLists.txt#L503-L519).
This change allows specifying the version of the library for tests to link with.
This is useful for remote testing, for example, with `SSHExecutor`, where we _have_ to link with libc++abi statically.
Two new CMake options are introduced here: `LIBCXXABI_LINK_TESTS_WITH_SHARED_LIBCXXABI` and `LIBCXXABI_LINK_TESTS_WITH_SHARED_LIBCXX`. They can be set to `OFF` to tell the test utility to link tests with the static libraries.
It shouldn't break anything, because the default values of these options are set such that the test utility will behave the same way.
Reviewers: EricWF, mclow.lists, phosek, mehdi_amini, ldionne, jroelofs, bcraig
Subscribers: mgorny, christof, ldionne, libcxx-commits
Tags: #libc
Differential Revision: https://reviews.llvm.org/D71894
2019-12-26 17:28:39 +08:00
|
|
|
pythonize_bool(LIBCXXABI_LINK_TESTS_WITH_SHARED_LIBCXX)
|
|
|
|
pythonize_bool(LIBCXXABI_LINK_TESTS_WITH_SHARED_LIBCXXABI)
|
2015-02-26 23:55:01 +08:00
|
|
|
set(LIBCXXABI_TARGET_INFO "libcxx.test.target_info.LocalTI" CACHE STRING
|
|
|
|
"TargetInfo to use when setting up test environment.")
|
|
|
|
set(LIBCXXABI_EXECUTOR "None" CACHE STRING
|
|
|
|
"Executor to use when running tests.")
|
2014-07-10 10:20:11 +08:00
|
|
|
|
|
|
|
set(AUTO_GEN_COMMENT "## Autogenerated by libcxxabi configuration.\n# Do not edit!")
|
|
|
|
|
2016-04-19 20:47:38 +08:00
|
|
|
if (LIBCXXABI_ENABLE_SHARED)
|
|
|
|
set(LIBCXXABI_TEST_DEPS cxxabi_shared)
|
|
|
|
else()
|
|
|
|
set(LIBCXXABI_TEST_DEPS cxxabi_static)
|
|
|
|
endif()
|
|
|
|
|
2017-01-09 19:57:21 +08:00
|
|
|
if (LIBCXXABI_BUILD_EXTERNAL_THREAD_LIBRARY)
|
2017-01-03 20:58:34 +08:00
|
|
|
list(APPEND LIBCXXABI_TEST_DEPS cxx_external_threads)
|
|
|
|
endif()
|
|
|
|
|
2016-08-29 02:16:18 +08:00
|
|
|
if (NOT LIBCXXABI_STANDALONE_BUILD)
|
2014-07-10 10:20:11 +08:00
|
|
|
list(APPEND LIBCXXABI_TEST_DEPS cxx)
|
2016-08-09 06:09:54 +08:00
|
|
|
if (LIBCXXABI_USE_LLVM_UNWINDER)
|
|
|
|
list(APPEND LIBCXXABI_TEST_DEPS unwind)
|
|
|
|
endif()
|
2014-07-11 23:36:02 +08:00
|
|
|
endif()
|
|
|
|
|
2018-01-18 06:07:09 +08:00
|
|
|
|
|
|
|
configure_lit_site_cfg(
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg)
|
|
|
|
|
2016-08-29 02:28:51 +08:00
|
|
|
add_lit_testsuite(check-cxxabi "Running libcxxabi tests"
|
2014-07-10 10:20:11 +08:00
|
|
|
${CMAKE_CURRENT_BINARY_DIR}
|
|
|
|
DEPENDS ${LIBCXXABI_TEST_DEPS}
|
|
|
|
)
|
2016-08-29 02:28:51 +08:00
|
|
|
|
|
|
|
# TODO: This is a legacy target name and should be removed at some point.
|
|
|
|
add_custom_target(check-libcxxabi DEPENDS check-cxxabi)
|