| if(EMSCRIPTEN) | 
 | set(LLVM_COMPONENTS_TO_LINK | 
 |   "" | 
 |   ) | 
 | set(LLVM_LIBS_TO_LINK | 
 |   "" | 
 |   ) | 
 | set(CLANG_LIBS_TO_LINK | 
 |   clangInterpreter | 
 |   ) | 
 | else() | 
 | set(LLVM_COMPONENTS_TO_LINK | 
 |   ${LLVM_TARGETS_TO_BUILD} | 
 |   Core | 
 |   MC | 
 |   OrcJIT | 
 |   Support | 
 |   TargetParser | 
 |   ) | 
 | set(LLVM_LIBS_TO_LINK | 
 |   LLVMTestingSupport | 
 |   ) | 
 | set(CLANG_LIBS_TO_LINK | 
 |   clangAST | 
 |   clangBasic | 
 |   clangInterpreter | 
 |   clangFrontend | 
 |   clangSema | 
 |   ) | 
 | endif() | 
 |  | 
 | add_distinct_clang_unittest(ClangReplInterpreterTests | 
 |   IncrementalCompilerBuilderTest.cpp | 
 |   IncrementalProcessingTest.cpp | 
 |   InterpreterTest.cpp | 
 |   InterpreterExtensionsTest.cpp | 
 |   CodeCompletionTest.cpp | 
 |  | 
 |   EXPORT_SYMBOLS | 
 |  | 
 |   CLANG_LIBS | 
 |   ${CLANG_LIBS_TO_LINK} | 
 |  | 
 |   LINK_LIBS | 
 |   ${LLVM_LIBS_TO_LINK} | 
 |  | 
 |   LLVM_COMPONENTS | 
 |   ${LLVM_COMPONENTS_TO_LINK} | 
 |   ) | 
 |  | 
 | if(EMSCRIPTEN) | 
 | # Without the above you try to link to LLVMSupport twice, and end | 
 | # up with a duplicate symbol error when creating the main module | 
 | get_target_property(LINKED_LIBS ClangReplInterpreterTests LINK_LIBRARIES) | 
 | list(REMOVE_ITEM LINKED_LIBS LLVMSupport) | 
 | set_target_properties(ClangReplInterpreterTests PROPERTIES LINK_LIBRARIES "${LINKED_LIBS}") | 
 | target_link_options(ClangReplInterpreterTests | 
 |   PUBLIC "SHELL: -s MAIN_MODULE=1" | 
 |   PUBLIC "SHELL: -s ALLOW_MEMORY_GROWTH=1" | 
 |   PUBLIC "SHELL: -s STACK_SIZE=32mb" | 
 |   PUBLIC "SHELL: -s INITIAL_MEMORY=128mb" | 
 |   PUBLIC "SHELL: --emrun" | 
 |   PUBLIC "SHELL: -Wl,--export=__clang_Interpreter_SetValueWithAlloc" | 
 |   PUBLIC "SHELL: -Wl,--export=__clang_Interpreter_SetValueNoAlloc" | 
 |   PUBLIC "SHELL: -Wl,--export=_ZnwmPv26__clang_Interpreter_NewTag" | 
 |   PUBLIC "SHELL: -Wl,--export=_Z9getGlobalv" | 
 |   PUBLIC "SHELL: -Wl,--export=_Z9setGlobali" | 
 | ) | 
 | set_target_properties(ClangReplInterpreterTests PROPERTIES | 
 |   SUFFIX ".html" | 
 | ) | 
 | endif() | 
 |  | 
 | # Exceptions on Windows are not yet supported. | 
 | if(NOT WIN32) | 
 |   add_subdirectory(ExceptionTests) | 
 | endif() | 
 |  | 
 | if(MSVC) | 
 |   set_target_properties(ClangReplInterpreterTests PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS 1) | 
 |  | 
 |   # RTTI/C++ symbols | 
 |   set(ClangReplInterpreterTests_exports ${ClangReplInterpreterTests_exports} ??_7type_info@@6B@ | 
 |     ?__type_info_root_node@@3U__type_info_node@@A | 
 |     ?nothrow@std@@3Unothrow_t@1@B | 
 |   ) | 
 |  | 
 |   # Compiler added symbols for static variables. NOT for VStudio < 2015 | 
 |   set(ClangReplInterpreterTests_exports ${ClangReplInterpreterTests_exports} _Init_thread_abort _Init_thread_epoch | 
 |     _Init_thread_footer _Init_thread_header _tls_index | 
 |   ) | 
 |  | 
 |   if(CMAKE_SIZEOF_VOID_P EQUAL 8) | 
 |     # new/delete variants needed when linking to static msvc runtime (esp. Debug) | 
 |     set(ClangReplInterpreterTests_exports ${ClangReplInterpreterTests_exports} | 
 |       ??2@YAPEAX_K@Z | 
 |       ??3@YAXPEAX@Z | 
 |       ??_U@YAPEAX_K@Z | 
 |       ??_V@YAXPEAX@Z | 
 |       ??3@YAXPEAX_K@Z | 
 |     ) | 
 |   else() | 
 |     set(ClangReplInterpreterTests_exports ${ClangReplInterpreterTests_exports} | 
 |       ??2@YAPAXI@Z | 
 |       ??3@YAXPAX@Z | 
 |       ??3@YAXPAXI@Z | 
 |       ??_U@YAPAXI@Z | 
 |       ??_V@YAXPAX@Z | 
 |       ??_V@YAXPAXI@Z | 
 |     ) | 
 |   endif() | 
 |  | 
 |   # List to '/EXPORT:sym0 /EXPORT:sym1 /EXPORT:sym2 ...' | 
 |   list(TRANSFORM ClangReplInterpreterTests_exports PREPEND "LINKER:/EXPORT:") | 
 |   set_property(TARGET ClangReplInterpreterTests APPEND PROPERTY LINK_OPTIONS ${ClangReplInterpreterTests_exports}) | 
 |  | 
 | endif(MSVC) |