[libcxx-commits] [libcxx] r352688 - [CMake] Use correct visibility for linked libraries in CMake
Petr Hosek via libcxx-commits
libcxx-commits at lists.llvm.org
Wed Jan 30 15:18:05 PST 2019
Author: phosek
Date: Wed Jan 30 15:18:05 2019
New Revision: 352688
URL: http://llvm.org/viewvc/llvm-project?rev=352688&view=rev
Log:
[CMake] Use correct visibility for linked libraries in CMake
When linking library dependencies, we shouldn't need to export linked
libraries to dependents. We should be explicit about this in
target_link_libraries, otherwise other targets that depend on these such
as sanitizers get repeated (and possibly even conflicting) dependencies.
Differential Revision: https://reviews.llvm.org/D57456
Modified:
libcxx/trunk/benchmarks/CMakeLists.txt
libcxx/trunk/lib/CMakeLists.txt
Modified: libcxx/trunk/benchmarks/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/benchmarks/CMakeLists.txt?rev=352688&r1=352687&r2=352688&view=diff
==============================================================================
--- libcxx/trunk/benchmarks/CMakeLists.txt (original)
+++ libcxx/trunk/benchmarks/CMakeLists.txt Wed Jan 30 15:18:05 2019
@@ -137,6 +137,7 @@ function(add_benchmark_test name source_
add_executable(${libcxx_target} EXCLUDE_FROM_ALL ${source_file})
add_dependencies(${libcxx_target} cxx cxx-headers google-benchmark-libcxx)
add_dependencies(cxx-benchmarks ${libcxx_target})
+ target_link_libraries(${libcxx_target} ${LIBCXX_LIBRARIES})
if (LIBCXX_ENABLE_SHARED)
target_link_libraries(${libcxx_target} cxx_shared)
else()
Modified: libcxx/trunk/lib/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/lib/CMakeLists.txt?rev=352688&r1=352687&r2=352688&view=diff
==============================================================================
--- libcxx/trunk/lib/CMakeLists.txt (original)
+++ libcxx/trunk/lib/CMakeLists.txt Wed Jan 30 15:18:05 2019
@@ -241,7 +241,7 @@ if (LIBCXX_ENABLE_SHARED)
if(COMMAND llvm_setup_rpath)
llvm_setup_rpath(cxx_shared)
endif()
- target_link_libraries(cxx_shared ${LIBCXX_LIBRARIES})
+ target_link_libraries(cxx_shared PRIVATE ${LIBCXX_LIBRARIES})
set_target_properties(cxx_shared
PROPERTIES
LINK_FLAGS "${LIBCXX_LINK_FLAGS}"
@@ -265,7 +265,7 @@ endif()
# Build the static library.
if (LIBCXX_ENABLE_STATIC)
add_library(cxx_static STATIC ${cxx_static_sources})
- target_link_libraries(cxx_static ${LIBCXX_LIBRARIES})
+ target_link_libraries(cxx_static PRIVATE ${LIBCXX_LIBRARIES})
set(CMAKE_STATIC_LIBRARY_PREFIX "lib")
set_target_properties(cxx_static
PROPERTIES
@@ -461,3 +461,8 @@ if (NOT CMAKE_CONFIGURATION_TYPES AND (L
-P "${LIBCXX_BINARY_DIR}/cmake_install.cmake")
add_custom_target(install-libcxx DEPENDS install-cxx)
endif()
+
+# TODO: This is needed by cxx-benchmarks but this variable isn't
+# available outside of the scope of this file so we need to export
+# it. This is not necessarily the cleanest solution.
+set(LIBCXX_LIBRARIES ${LIBCXX_LIBRARIES} PARENT_SCOPE)
More information about the libcxx-commits
mailing list