llvm-project/llvm/cmake
Andrew Wilkins bb6d95fc3a [cmake] rework LLVM_LINK_LLVM_DYLIB option handling
Summary:
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.

Reviewers: beanz

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D12590

llvm-svn: 246918
2015-09-05 08:27:33 +00:00
..
modules [cmake] rework LLVM_LINK_LLVM_DYLIB option handling 2015-09-05 08:27:33 +00:00
platforms Doing some cleanup to the iOS toolchain. 2015-03-12 16:19:16 +00:00
Makefile Provide CMake package modules in install tree 2014-02-09 16:37:02 +00:00
README
config-ix.cmake Remove the configure and cmake checks for sys/wait.h 2015-08-04 06:29:58 +00:00
nsis_icon.ico Win installer: provide a pretty icon 2014-03-27 20:48:37 +00:00
nsis_logo.bmp CMake: polish the Windows packaging rules 2013-08-15 23:44:31 +00:00

README

See docs/CMake.html for instructions on how to build LLVM with CMake.