[libcxxabi] Allow tests to link with static libc++abi/libc++ even if the shared versi...
authorSergej Jaskiewicz <jaskiewiczs@icloud.com>
Thu, 26 Dec 2019 09:28:39 +0000 (12:28 +0300)
committerSergej Jaskiewicz <jaskiewiczs@icloud.com>
Thu, 9 Jan 2020 16:01:57 +0000 (19:01 +0300)
commitfb76c7934dce2ede7e04097edb455eba58f6ebfd
treed3b964020833ae4930baa7b0a1deaa5f982fae67
parent6c04ef472a8739a60a7935f77edfbacd2f50eb73
[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
libcxxabi/CMakeLists.txt
libcxxabi/test/CMakeLists.txt
libcxxabi/test/lit.site.cfg.in