llvm/cmake/modules
Rafael Espindola b3963d680c Pass PRIVATE to target_link_libraries if using shared libraries.
A shared library (unlike a .a), has its dependencies recorded in the library and
we can pass PRIVATE to target_link_libraries.

This patch then removes some bogus dependencies when using
BUILD_SHARED_LIBS=ON. For example, we go from

build lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/AggressiveAntiDepBreaker.cpp.o:
CXX_COMPILER /home/espindola/llvm/llvm/lib/CodeGen/AggressiveAntiDepBreaker.cpp
|| include/llvm/IR/intrinsics_gen lib/libLLVMSupport.so
lib/libLLVMCore.so lib/libLLVMBitReader.so
lib/libLLVMTransformUtils.so lib/libLLVMInstCombine.so
lib/libLLVMScalarOpts.so lib/libLLVMipa.so lib/libLLVMAnalysis.so
lib/libLLVMMCParser.so lib/libLLVMMC.so lib/libLLVMObject.so
lib/libLLVMTarget.so lib/libLLVMProfileData.so

to

build lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/AggressiveAntiDepBreaker.cpp.o:
CXX_COMPILER /home/espindola/llvm/llvm/lib/CodeGen/AggressiveAntiDepBreaker.cpp
|| include/llvm/IR/intrinsics_gen lib/libLLVMSupport.so
lib/libLLVMCore.so lib/libLLVMTransformUtils.so
lib/libLLVMScalarOpts.so lib/libLLVMAnalysis.so lib/libLLVMMC.so
lib/libLLVMTarget.so

In fact, build.ninja goes from 5231028 bytes to 4896759 bytes.

With this, old verisons of bfd ld (2.24 is OK, 2.23 warns) will print a bogus
warning when building with BUILD_SHARED_LIBS.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@221530 91177308-0d34-0410-b5e6-96231b3b80d8
2014-11-07 15:33:56 +00:00
..
AddLLVM.cmake Pass PRIVATE to target_link_libraries if using shared libraries. 2014-11-07 15:33:56 +00:00
AddLLVMDefinitions.cmake cmake/*: Add svn:eol-style=native and fix CRLF. 2011-02-03 11:41:27 +00:00
AddSphinxTarget.cmake Make message about building sphinx documentation with CMake more 2014-08-14 11:57:16 +00:00
CheckAtomic.cmake Add CMake check for libatomic. 2014-09-12 11:08:59 +00:00
ChooseMSVCCRT.cmake [CMake] Untabify. 2014-02-02 16:46:35 +00:00
CMakeLists.txt Add LLVM_TOOLS_BINARY_DIR variable to LLVMConfig.cmake so clients 2014-07-22 17:48:51 +00:00
CrossCompile.cmake Enabling LLVM & Clang to be cross-compiled using CMake from a single configuration command line 2014-09-03 23:21:18 +00:00
FindSphinx.cmake Add SPHINX_WARNINGS_AS_ERRORS CMake option to allow warnings to not be 2014-08-14 11:57:13 +00:00
GetHostTriple.cmake Undo an over zealous rename. This bit of the CMake build really is 2012-01-24 18:00:44 +00:00
GetSVN.cmake Reverts commit r190808 and r190556. 2013-10-01 17:40:47 +00:00
HandleLLVMOptions.cmake Add a LLVM_BUILD_STATIC option to cmake. 2014-11-05 14:03:58 +00:00
HandleLLVMStdlib.cmake [CMake] Move -stdlib=libc++ handling into its own file. 2014-02-05 00:02:37 +00:00
LLVM-Config.cmake Fix misinterpretation of CMake rule found by a CMake warning (related to CMP0054). 2014-09-26 21:33:05 +00:00
LLVMConfig.cmake.in Add LLVM_TOOLS_BINARY_DIR variable to LLVMConfig.cmake so clients 2014-07-22 17:48:51 +00:00
LLVMConfigVersion.cmake.in Teach LLVMConfigVersion.cmake to behave as find_package() expects. 2014-04-16 23:15:31 +00:00
LLVMParseArguments.cmake Add the PARSE_ARGUMENTS CMake macro to LLVM so I can use it to clean 2011-02-19 18:01:15 +00:00
LLVMProcessSources.cmake cmake: Don't reject unknown cpp files that start with . 2014-09-02 20:20:43 +00:00
Makefile Don't attempt to run llvm-config in cmake/modules/Makefile when doing 2014-09-10 11:09:23 +00:00
TableGen.cmake Enabling LLVM & Clang to be cross-compiled using CMake from a single configuration command line 2014-09-03 23:21:18 +00:00
VersionFromVCS.cmake CMake: Don't run 'git svn' if there is no .git/svn directory. 2012-12-10 19:03:37 +00:00