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