about summary refs log tree commit diff homepage
path: root/tools
diff options
context:
space:
mode:
authorMartin Nowack <m.nowack@imperial.ac.uk>2023-02-23 21:47:53 +0000
committerCristian Cadar <c.cadar@imperial.ac.uk>2023-03-17 22:38:16 +0000
commit3ef5c9d0cd51babb7c4ec2d7bb76d0cb7e47a65c (patch)
treea2cb9e4c193d674b4f49634d0f546b65ce547860 /tools
parent7a4a9b9b47d2fe9b90cee95d68d89faa24a118d4 (diff)
downloadklee-3ef5c9d0cd51babb7c4ec2d7bb76d0cb7e47a65c.tar.gz
[cmake] Use LLVM's CMake functionality only
LLVM became more complex, use LLVM's CMake functionality directly instead
of replicating this behaviour in KLEE's build system.

Use the correct build flags provided by LLVM itself.
This is influenced by the way LLVM is built in the first place.

Remove older CMake support (< 3.0).
Diffstat (limited to 'tools')
-rw-r--r--tools/kleaver/CMakeLists.txt12
-rw-r--r--tools/klee-replay/CMakeLists.txt1
-rw-r--r--tools/klee/CMakeLists.txt4
-rw-r--r--tools/ktest-gen/CMakeLists.txt1
-rw-r--r--tools/ktest-randgen/CMakeLists.txt1
5 files changed, 15 insertions, 4 deletions
diff --git a/tools/kleaver/CMakeLists.txt b/tools/kleaver/CMakeLists.txt
index c079c2a4..acc681e5 100644
--- a/tools/kleaver/CMakeLists.txt
+++ b/tools/kleaver/CMakeLists.txt
@@ -10,10 +10,14 @@ add_executable(kleaver
   main.cpp
 )
 
-set(KLEE_LIBS
-  kleaverSolver
-)
+llvm_map_components_to_libnames(llvm_libs core support)
+
+target_link_libraries(kleaver kleaverSolver ${llvm_libs})
+target_include_directories(kleaver PRIVATE ${KLEE_INCLUDE_DIRS} ${LLVM_INCLUDE_DIRS})
+target_compile_options(kleaver PRIVATE ${KLEE_COMPONENT_CXX_FLAGS})
+target_compile_definitions(kleaver PRIVATE ${KLEE_COMPONENT_CXX_DEFINES})
+
+target_compile_definitions(kleaver PRIVATE ${KLEE_COMPONENT_CXX_DEFINES})
 
-target_link_libraries(kleaver ${KLEE_LIBS})
 
 install(TARGETS kleaver RUNTIME DESTINATION bin)
diff --git a/tools/klee-replay/CMakeLists.txt b/tools/klee-replay/CMakeLists.txt
index aeb90845..83fddaeb 100644
--- a/tools/klee-replay/CMakeLists.txt
+++ b/tools/klee-replay/CMakeLists.txt
@@ -15,6 +15,7 @@ if (HAVE_PTY_H OR HAVE_UTIL_H OR HAVE_LIBUTIL_H)
   )
 
   target_link_libraries(klee-replay PRIVATE kleeBasic)
+  target_include_directories(klee-replay PRIVATE ${KLEE_INCLUDE_DIRS})
 
   if(LIBCAP_LIBRARIES)
     target_link_libraries(klee-replay PRIVATE ${LIBCAP_LIBRARIES})
diff --git a/tools/klee/CMakeLists.txt b/tools/klee/CMakeLists.txt
index 8b05c357..cabdfdfc 100644
--- a/tools/klee/CMakeLists.txt
+++ b/tools/klee/CMakeLists.txt
@@ -15,6 +15,10 @@ set(KLEE_LIBS
 )
 
 target_link_libraries(klee ${KLEE_LIBS})
+target_include_directories(klee PRIVATE ${KLEE_INCLUDE_DIRS} ${LLVM_INCLUDE_DIRS})
+target_compile_options(klee PRIVATE ${KLEE_COMPONENT_CXX_FLAGS})
+target_compile_definitions(klee PRIVATE ${KLEE_COMPONENT_CXX_DEFINES})
+
 
 install(TARGETS klee RUNTIME DESTINATION bin)
 
diff --git a/tools/ktest-gen/CMakeLists.txt b/tools/ktest-gen/CMakeLists.txt
index 084d551d..2bd9af6b 100644
--- a/tools/ktest-gen/CMakeLists.txt
+++ b/tools/ktest-gen/CMakeLists.txt
@@ -13,5 +13,6 @@ add_executable(ktest-gen
 set(KLEE_LIBS kleeBasic)
 
 target_link_libraries(ktest-gen ${KLEE_LIBS})
+target_include_directories(ktest-gen PRIVATE ${KLEE_INCLUDE_DIRS})
 
 install(TARGETS ktest-gen RUNTIME DESTINATION bin)
diff --git a/tools/ktest-randgen/CMakeLists.txt b/tools/ktest-randgen/CMakeLists.txt
index 8b15c275..48b23485 100644
--- a/tools/ktest-randgen/CMakeLists.txt
+++ b/tools/ktest-randgen/CMakeLists.txt
@@ -13,5 +13,6 @@ add_executable(ktest-randgen
 set(KLEE_LIBS kleeBasic)
 
 target_link_libraries(ktest-randgen ${KLEE_LIBS})
+target_include_directories(ktest-randgen PRIVATE ${KLEE_INCLUDE_DIRS})
 
 install(TARGETS ktest-randgen RUNTIME DESTINATION bin)