[libcxx-commits] [PATCH] D71894: [libcxxabi] Allow tests to link with static libc++abi/libc++ even if the shared version is present
Sergej Jaskiewicz via Phabricator via libcxx-commits
libcxx-commits at lists.llvm.org
Thu Jan 9 08:02:55 PST 2020
This revision was automatically updated to reflect the committed changes.
Closed by commit rGfb76c7934dce: [libcxxabi] Allow tests to link with static libc++abi/libc++ even if the shared… (authored by broadwaylamb).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D71894/new/
https://reviews.llvm.org/D71894
Files:
libcxxabi/CMakeLists.txt
libcxxabi/test/CMakeLists.txt
libcxxabi/test/lit.site.cfg.in
Index: libcxxabi/test/lit.site.cfg.in
===================================================================
--- libcxxabi/test/lit.site.cfg.in
+++ libcxxabi/test/lit.site.cfg.in
@@ -16,8 +16,8 @@
config.enable_32bit = @LIBCXXABI_BUILD_32_BITS@
config.target_info = "@LIBCXXABI_TARGET_INFO@"
config.executor = "@LIBCXXABI_EXECUTOR@"
-config.libcxxabi_shared = @LIBCXXABI_ENABLE_SHARED@
-config.enable_shared = @LIBCXX_ENABLE_SHARED@
+config.libcxxabi_shared = @LIBCXXABI_LINK_TESTS_WITH_SHARED_LIBCXXABI@
+config.enable_shared = @LIBCXXABI_LINK_TESTS_WITH_SHARED_LIBCXX@
config.enable_exceptions = @LIBCXXABI_ENABLE_EXCEPTIONS@
config.host_triple = "@LLVM_HOST_TRIPLE@"
config.target_triple = "@TARGET_TRIPLE@"
Index: libcxxabi/test/CMakeLists.txt
===================================================================
--- libcxxabi/test/CMakeLists.txt
+++ libcxxabi/test/CMakeLists.txt
@@ -20,6 +20,8 @@
pythonize_bool(LIBCXXABI_USE_COMPILER_RT)
pythonize_bool(LIBCXXABI_BUILD_EXTERNAL_THREAD_LIBRARY)
pythonize_bool(LIBCXX_ENABLE_PARALLEL_ALGORITHMS)
+pythonize_bool(LIBCXXABI_LINK_TESTS_WITH_SHARED_LIBCXX)
+pythonize_bool(LIBCXXABI_LINK_TESTS_WITH_SHARED_LIBCXXABI)
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
Index: libcxxabi/CMakeLists.txt
===================================================================
--- libcxxabi/CMakeLists.txt
+++ libcxxabi/CMakeLists.txt
@@ -92,6 +92,14 @@
option(LIBCXXABI_ENABLE_SHARED "Build libc++abi as a shared library." ON)
option(LIBCXXABI_ENABLE_STATIC "Build libc++abi as a static library." ON)
+option(LIBCXXABI_LINK_TESTS_WITH_SHARED_LIBCXXABI
+ "Whether the libc++abi tests should link with the shared libc++abi library"
+ ${LIBCXXABI_ENABLE_SHARED})
+
+option(LIBCXXABI_LINK_TESTS_WITH_SHARED_LIBCXX
+ "Whether the libc++abi tests should link with the shared libc++ library"
+ ${LIBCXX_ENABLE_SHARED})
+
cmake_dependent_option(LIBCXXABI_INSTALL_STATIC_LIBRARY
"Install the static libc++abi library." ON
"LIBCXXABI_ENABLE_STATIC;LIBCXXABI_INSTALL_LIBRARY" OFF)
@@ -115,6 +123,26 @@
message(FATAL_ERROR "libc++abi must be built as either a shared or static library.")
endif()
+if(LIBCXXABI_LINK_TESTS_WITH_SHARED_LIBCXXABI AND NOT LIBCXXABI_ENABLE_SHARED)
+ message(FATAL_ERROR "LIBCXXABI_LINK_TESTS_WITH_SHARED_LIBCXXABI being ON requires LIBCXXABI_ENABLE_SHARED to be ON")
+endif()
+
+if(NOT LIBCXXABI_LINK_TESTS_WITH_SHARED_LIBCXXABI AND NOT LIBCXXABI_ENABLE_STATIC)
+ message(FATAL_ERROR "LIBCXXABI_LINK_TESTS_WITH_SHARED_LIBCXXABI being OFF requires LIBCXXABI_ENABLE_STATIC to be ON")
+endif()
+
+if(DEFINED LIBCXX_ENABLE_SHARED
+ AND LIBCXXABI_LINK_TESTS_WITH_SHARED_LIBCXX
+ AND NOT LIBCXX_ENABLE_SHARED)
+ message(FATAL_ERROR "LIBCXXABI_LINK_TESTS_WITH_SHARED_LIBCXX being ON requires LIBCXX_ENABLE_SHARED to be ON")
+endif()
+
+if(DEFINED LIBCXX_ENABLE_STATIC
+ AND NOT LIBCXXABI_LINK_TESTS_WITH_SHARED_LIBCXX
+ AND NOT LIBCXX_ENABLE_STATIC)
+ message(FATAL_ERROR "LIBCXXABI_LINK_TESTS_WITH_SHARED_LIBCXX being OFF requires LIBCXX_ENABLE_STATIC to be ON")
+endif()
+
if (LLVM_EXTERNAL_LIBCXX_SOURCE_DIR)
set(LIBCXXABI_LIBCXX_SRC_DIRS ${LLVM_EXTERNAL_LIBCXX_SOURCE_DIR})
else()
@@ -209,7 +237,7 @@
# directory.
if (NOT LIBCXXABI_LIBCXX_LIBRARY_PATH)
set(LIBCXXABI_LIBCXX_LIBRARY_PATH "${LIBCXXABI_LIBRARY_DIR}" CACHE PATH
- "The path to libc++ library.")
+ "The path to libc++ library." FORCE)
endif()
# Check that we can build with 32 bits if requested.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D71894.237087.patch
Type: text/x-patch
Size: 3735 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20200109/3f4aa056/attachment-0001.bin>
More information about the libcxx-commits
mailing list