xref: /llvm-project/clang/lib/Interpreter/CMakeLists.txt (revision a174aa1e416c4e27945f5a8c646b119126dc8441)
1set(LLVM_LINK_COMPONENTS
2   core
3   native
4   MC
5   Option
6   OrcJit
7   OrcDebugging
8   OrcShared
9   OrcTargetProcess
10   Support
11   Target
12   TargetParser
13   TransformUtils
14   )
15
16if (EMSCRIPTEN AND "lld" IN_LIST LLVM_ENABLE_PROJECTS)
17  set(WASM_SRC Wasm.cpp)
18  set(WASM_LINK lldWasm)
19  set(COMMON_LINK lldCommon)
20endif()
21
22add_clang_library(clangInterpreter
23  DeviceOffload.cpp
24  CodeCompletion.cpp
25  IncrementalExecutor.cpp
26  IncrementalParser.cpp
27  Interpreter.cpp
28  InterpreterValuePrinter.cpp
29  InterpreterUtils.cpp
30  Value.cpp
31  ${WASM_SRC}
32  PARTIAL_SOURCES_INTENDED
33
34  DEPENDS
35  intrinsics_gen
36  ClangDriverOptions
37
38  LINK_LIBS
39  clangAST
40  clangAnalysis
41  clangBasic
42  clangCodeGen
43  clangDriver
44  clangFrontend
45  clangFrontendTool
46  clangLex
47  clangParse
48  clangSema
49  clangSerialization
50  ${WASM_LINK}
51  ${COMMON_LINK}
52  )
53
54if ((MINGW OR CYGWIN) AND BUILD_SHARED_LIBS)
55  # The DLLs are supposed to export all symbols (except for ones that are
56  # explicitly hidden). Normally, this is what happens anyway, but if there
57  # are symbols that are marked explicitly as dllexport, we'd only export them
58  # and nothing else. The Interpreter contains a few cases of such dllexports
59  # (for symbols that need to be exported even from standalone exe files);
60  # therefore, add --export-all-symbols to make sure we export all symbols
61  # despite potential dllexports.
62  target_link_options(clangInterpreter PRIVATE LINKER:--export-all-symbols)
63endif()
64