[Polly][CMake] Use the CMake Package instead of llvm-config in out-of-tree builds
authorPhilip Pfaffe <philip.pfaffe@gmail.com>
Tue, 11 Jul 2017 11:24:25 +0000 (11:24 +0000)
committerPhilip Pfaffe <philip.pfaffe@gmail.com>
Tue, 11 Jul 2017 11:24:25 +0000 (11:24 +0000)
commitd99c406e3d39b747566f6a5b4bd30f71cf46759a
treef75fcfa454dc49c14b2c045013df2abd564ed75e
parentb4d500f1fbcc64e43b25631c3d7dac273099284f
[Polly][CMake] Use the CMake Package instead of llvm-config in out-of-tree builds

Summary:
As of now, Polly uses llvm-config to set up LLVM dependencies in an out-of-tree build.

This is problematic for two reasons:
1) Right now, in-tree and out-of-tree builds in fact do different things. E.g., in an in-tree build, libPolly depends on a handful of LLVM libraries, while in an out-of-tree build it depends on all of them. This means that we often need to treat both paths seperately.
2) I'm specifically unhappy with the way libPolly is linked right now, because it just blindly links against all the LLVM libs. That doesn't make a lot of sense. For instance, one of these libs is LLVMTableGen, which contains a command line definition of a -o option. This means that I can not link an out-of-tree libPolly into a tool which might want to offer a -o option as well.

This patch (mostly) drop the use of llvm-config  in favor of LLVMs exported cmake package. However, building Polly with unittests requires access to the gtest sources (in the LLVM source tree). If we're building against an LLVM installation, this source tree is unavailable and must specified. I'm using llvm-config to provide a default in this case.

Reviewers: Meinersbur, grosser

Reviewed By: grosser

Subscribers: tstellar, bollu, chapuni, mgorny, pollydev, llvm-commits

Differential Revision: https://reviews.llvm.org/D33299

llvm-svn: 307650
polly/CMakeLists.txt
polly/cmake/CMakeLists.txt
polly/lib/CMakeLists.txt
polly/test/CMakeLists.txt
polly/test/lit.cfg
polly/test/lit.site.cfg.in