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/Module | |
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/Module')
-rw-r--r-- | lib/Module/CMakeLists.txt | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/lib/Module/CMakeLists.txt b/lib/Module/CMakeLists.txt index a952ed17..4d993047 100644 --- a/lib/Module/CMakeLists.txt +++ b/lib/Module/CMakeLists.txt @@ -18,3 +18,18 @@ klee_add_component(kleeModule PhiCleaner.cpp RaiseAsm.cpp ) + +set(LLVM_COMPONENTS + bitreader + bitwriter + ipo + linker + support +) + +if ("${LLVM_PACKAGE_VERSION}" VERSION_EQUAL "3.3" OR + "${LLVM_PACKAGE_VERSION}" VERSION_GREATER "3.3") + list(APPEND LLVM_COMPONENTS irreader) +endif() +klee_get_llvm_libs(LLVM_LIBS ${LLVM_COMPONENTS}) +target_link_libraries(kleeModule PUBLIC ${LLVM_LIBS}) |