[PATCH] D63881: [cmake] Fix build with BUILD_SHARED_LIBS=ON
Cristian Adam via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Jun 27 08:31:30 PDT 2019
cristian.adam created this revision.
cristian.adam added a reviewer: compnerd.
cristian.adam added a project: LLVM.
Herald added subscribers: llvm-commits, mgorny.
On Windows a build with BUILD_SHARED_LIBS=ON needs to store the dependencies between libraries, due to the import libraries that (.a/.lib) that Windows needs to have for DLL files.
The dependencies will also be available in the cmake files.
llvm\unittests\Passes needs "Core" as LLVM_LINK_COMPONENTS, otherwise it won't link.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D63881
Files:
llvm/cmake/modules/AddLLVM.cmake
llvm/unittests/Passes/CMakeLists.txt
Index: llvm/unittests/Passes/CMakeLists.txt
===================================================================
--- llvm/unittests/Passes/CMakeLists.txt
+++ llvm/unittests/Passes/CMakeLists.txt
@@ -14,17 +14,17 @@
export_executable_symbols(PluginsTests)
target_link_libraries(PluginsTests PRIVATE LLVMTestingSupport)
-set(LLVM_LINK_COMPONENTS)
+set(LLVM_LINK_COMPONENTS Core)
add_llvm_library(TestPlugin MODULE BUILDTREE_ONLY
TestPlugin.cpp
)
# Put plugin next to the unit test executable.
set_output_directory(TestPlugin
BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}
LIBRARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}
)
set_target_properties(TestPlugin PROPERTIES FOLDER "Tests")
add_dependencies(TestPlugin intrinsics_gen)
add_dependencies(PluginsTests TestPlugin)
Index: llvm/cmake/modules/AddLLVM.cmake
===================================================================
--- llvm/cmake/modules/AddLLVM.cmake
+++ llvm/cmake/modules/AddLLVM.cmake
@@ -573,16 +573,16 @@
if(ARG_STATIC)
set(libtype INTERFACE)
else()
- # We can use PRIVATE since SO knows its dependent libs.
- set(libtype PRIVATE)
+ # Use public to have the dependencies in the exported targets
+ set(libtype PUBLIC)
endif()
target_link_libraries(${name} ${libtype}
${ARG_LINK_LIBS}
${lib_deps}
${llvm_libs}
)
if(LLVM_COMMON_DEPENDS)
add_dependencies(${name} ${LLVM_COMMON_DEPENDS})
# Add dependencies also to objlibs.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D63881.206871.patch
Type: text/x-patch
Size: 1505 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190627/8a18acd5/attachment.bin>
More information about the llvm-commits
mailing list