Fix `llvm-config` to adapt to the install environment.

Authored by DiamondLovesYou on Nov 9 2015, 3:15 PM.


Fix llvm-config to adapt to the install environment.

This patch does a couple of things:

  • Adds a new argument --shared-mode which accepts a list of components and prints whether or not the provided components need to be linked statically or shared.
  • Fixes --libnames when CMake BUILD_SHARED_LIBS is used.
  • Fixes --libnames, --libs, and --libfiles for dylib when static components aren't installed.
  • Fixes --libnames, --libs, --libfiles, and --components to use LLVM_DYLIB_COMPONENTS as the component manifest for dylib linking.
  • Uses the host platform's usual convention for filename extensions and such, instead of always defaulting to Unix-izms.

Because I don't own a Mac, I am not able to test the Mac platform dependent stuff locally. If someone would be willing to run a build for me on their machine (unless there's a better option), I'd appreciate it.

Reviewers: jfb, brad.king, whitequark, beanz

Subscribers: beanz, jauhien, llvm-commits

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

llvm-svn: 252532