about summary refs log tree commit diff homepage
path: root/lib/Module/CMakeLists.txt
blob: 71e1d40c09c2a20e711f730c289d318a9a0b767a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#===------------------------------------------------------------------------===#
#
#                     The KLEE Symbolic Virtual Machine
#
# This file is distributed under the University of Illinois Open Source
# License. See LICENSE.TXT for details.
#
#===------------------------------------------------------------------------===#
set(KLEE_MODULE_COMPONENT_SRCS
  Checks.cpp
  FunctionAlias.cpp
  InstructionInfoTable.cpp
  InstructionOperandTypeCheckPass.cpp
  IntrinsicCleaner.cpp
  KInstruction.cpp
  KModule.cpp
  LowerSwitch.cpp
  ModuleUtil.cpp
  OptNone.cpp
  PhiCleaner.cpp
  RaiseAsm.cpp
)

if ("${LLVM_VERSION_MAJOR}" LESS 17)
  LIST(APPEND KLEE_MODULE_COMPONENT_SRCS
          InstrumentLegacy.cpp
          OptimizeLegacy.cpp
  )
else ()
  LIST(APPEND KLEE_MODULE_COMPONENT_SRCS
          Instrument.cpp
          Optimize.cpp
  )
endif ()


add_library(kleeModule
  ${KLEE_MODULE_COMPONENT_SRCS}
)

llvm_config(kleeModule "${USE_LLVM_SHARED}"
  bitreader
  bitwriter
  codegen
  ipo
  irreader
  linker
  support
  scalaropts
  instcombine
  transformutils
  analysis
  object
  mc
  binaryformat
  )

target_link_libraries(kleeModule PRIVATE
  kleeSupport
)
target_include_directories(kleeModule PRIVATE ${KLEE_INCLUDE_DIRS} ${LLVM_INCLUDE_DIRS})
target_compile_options(kleeModule PRIVATE ${KLEE_COMPONENT_CXX_FLAGS})
target_compile_definitions(kleeModule PRIVATE ${KLEE_COMPONENT_CXX_DEFINES})