aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Interpreter/CMakeLists.txt
blob: 70de4a2aaa541792d33dca66338a9e40d336d5bc (plain)
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
64
65
set(LLVM_LINK_COMPONENTS
   core
   native
   MC
   Option
   OrcJit
   OrcDebugging
   OrcShared
   OrcTargetProcess
   Support
   Target
   TargetParser
   TransformUtils
   )

if (EMSCRIPTEN AND "lld" IN_LIST LLVM_ENABLE_PROJECTS)
  set(WASM_SRC Wasm.cpp)
  set(WASM_LINK lldWasm)
  set(COMMON_LINK lldCommon)
endif()

add_clang_library(clangInterpreter
  DeviceOffload.cpp
  CodeCompletion.cpp
  IncrementalExecutor.cpp
  IncrementalParser.cpp
  Interpreter.cpp
  InterpreterValuePrinter.cpp
  InterpreterUtils.cpp
  RemoteJITUtils.cpp
  Value.cpp
  InterpreterValuePrinter.cpp
  ${WASM_SRC}
  PARTIAL_SOURCES_INTENDED

  DEPENDS
  intrinsics_gen
  ClangDriverOptions

  LINK_LIBS
  clangAST
  clangAnalysis
  clangBasic
  clangCodeGen
  clangDriver
  clangFrontend
  clangFrontendTool
  clangLex
  clangParse
  clangSema
  clangSerialization
  ${WASM_LINK}
  ${COMMON_LINK}
  )

if ((MINGW OR CYGWIN) AND BUILD_SHARED_LIBS)
  # The DLLs are supposed to export all symbols (except for ones that are
  # explicitly hidden). Normally, this is what happens anyway, but if there
  # are symbols that are marked explicitly as dllexport, we'd only export them
  # and nothing else. The Interpreter contains a few cases of such dllexports
  # (for symbols that need to be exported even from standalone exe files);
  # therefore, add --export-all-symbols to make sure we export all symbols
  # despite potential dllexports.
  target_link_options(clangInterpreter PRIVATE LINKER:--export-all-symbols)
endif()