diff options
| author | Dan Liew <daniel.liew@imperial.ac.uk> | 2016-11-18 18:18:58 +0000 |
|---|---|---|
| committer | Dan Liew <delcypher@gmail.com> | 2016-11-18 21:01:20 +0000 |
| commit | dda296e09ee53ed85ccf1c3f08e7e809adce612e (patch) | |
| tree | c53130ee61c9b65b95d8507a8e5902aff56151a9 /lib/Basic | |
| parent | 82ab37990126ac9501d5775c2257ae4314986016 (diff) | |
| download | klee-dda296e09ee53ed85ccf1c3f08e7e809adce612e.tar.gz | |
[CMake] Re-express LLVM and KLEE library dependencies as
transitive dependencies on KLEE's libraries rather than on the final
binaries. This is better because it means we can build
other tools that use KLEE's libraries and not need to express the
needed LLVM dependencies.
It also makes it clearer what the dependencies are between KLEE
libraries. This has illustrated a problem with the `kleeBasic`
library. It contains `ConstructSolverChain.cpp` which clearly
belongs in `kleaverSolver` not in `kleeBasic`. This will be fixed
later.
Diffstat (limited to 'lib/Basic')
| -rw-r--r-- | lib/Basic/CMakeLists.txt | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/lib/Basic/CMakeLists.txt b/lib/Basic/CMakeLists.txt index 13f76d42..988a564e 100644 --- a/lib/Basic/CMakeLists.txt +++ b/lib/Basic/CMakeLists.txt @@ -12,3 +12,18 @@ klee_add_component(kleeBasic KTest.cpp Statistics.cpp ) +set(LLVM_COMPONENTS + support +) + +klee_get_llvm_libs(LLVM_LIBS ${LLVM_COMPONENTS}) +target_link_libraries(kleeBasic PUBLIC ${LLVM_LIBS}) + +target_link_libraries(kleeBasic PRIVATE + # FIXME: THIS IS STUPID. + # `ConstructSolverChain.cpp` should be in + # `kleaverSolver` not in in `kleeBasic`. + # We are creating a circular dependency because + # of this because `kleaverSolver` depends on `kleeBasic`. + kleaverSolver +) |
