[PATCH] D12590: [cmake] rework LLVM_LINK_LLVM_DYLIB option handling
Andrew Wilkins via llvm-commits
llvm-commits at lists.llvm.org
Thu Sep 3 00:32:16 PDT 2015
axw created this revision.
axw added a reviewer: beanz.
axw added a subscriber: llvm-commits.
This diff attempts to address the concerns raised in
http://reviews.llvm.org/D12488.
We introduce a new USE_SHARED option to llvm_config,
which, if set, causes the target to be linked against
libLLVM.
add_llvm_utility now uniformly disables linking against
libLLVM. These utilities are not intended for distribution,
and this keeps the option handling more centralised.
llvm-shlib is now processes before any other "tools"
subdirectories, ensuring the libLLVM target is defined
before its dependents.
One main difference from what was requested: llvm_config
does not prune LLVM_DYLIB_COMPONENTS from the components
passed into explicit_llvm_config. This is because the "all"
component does something special, adding additional
libraries (namely libLTO). Adding the component libraries
after libLLVM should not be a problem, as symbols will be
resolved in libLLVM first.
Finally, I'm not really happy with the
DISABLE_LLVM_LINK_LLVM option, but I'm not sure of a
better way to get the following:
- link all tools and shared libraries to libLLVM if
LLVM_LINK_LLVM_DYLIB is set
- some way of explicitly *not* doing so for utilities
and libLLVM itself
Suggestions for improvement here are particularly welcome.
http://reviews.llvm.org/D12590
Files:
CMakeLists.txt
cmake/modules/AddLLVM.cmake
cmake/modules/LLVM-Config.cmake
cmake/modules/TableGen.cmake
tools/CMakeLists.txt
tools/llvm-shlib/CMakeLists.txt
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D12590.33905.patch
Type: text/x-patch
Size: 6230 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150903/aad40ee2/attachment.bin>
More information about the llvm-commits
mailing list