1 set( LLVM_LINK_COMPONENTS 2 ${LLVM_TARGETS_TO_BUILD} 3 asmparser 4 bitreader 5 bitwriter 6 codegen 7 instrumentation 8 ipo 9 linker 10 selectiondag 11 ) 12 13 add_clang_executable(clang 14 driver.cpp 15 cc1_main.cpp 16 cc1as_main.cpp 17 ) 18 19 target_link_libraries(clang 20 clangFrontendTool 21 clangAST 22 clangAnalysis 23 clangBasic 24 clangCodeGen 25 clangDriver 26 clangEdit 27 clangFrontend 28 clangLex 29 clangParse 30 clangEdit 31 clangARCMigrate 32 clangRewriteCore 33 clangRewriteFrontend 34 clangSema 35 clangSerialization 36 clangStaticAnalyzerFrontend 37 clangStaticAnalyzerCheckers 38 clangStaticAnalyzerCore 39 ) 40 41 set_target_properties(clang PROPERTIES VERSION ${CLANG_EXECUTABLE_VERSION}) 42 43 add_dependencies(clang clang-headers) 44 45 if(UNIX) 46 set(CLANGXX_LINK_OR_COPY create_symlink) 47 # Create a relative symlink 48 set(clang_binary "clang${CMAKE_EXECUTABLE_SUFFIX}") 49 else() 50 set(CLANGXX_LINK_OR_COPY copy) 51 set(clang_binary "${LLVM_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/clang${CMAKE_EXECUTABLE_SUFFIX}") 52 endif() 53 54 # Create the clang++ symlink in the build directory. 55 set(clang_pp "${LLVM_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/clang++${CMAKE_EXECUTABLE_SUFFIX}") 56 add_custom_command(TARGET clang POST_BUILD 57 COMMAND ${CMAKE_COMMAND} -E ${CLANGXX_LINK_OR_COPY} "${clang_binary}" "${clang_pp}") 58 59 set_property(DIRECTORY APPEND 60 PROPERTY ADDITIONAL_MAKE_CLEAN_FILES ${clang_pp}) 61 62 install(TARGETS clang 63 RUNTIME DESTINATION bin) 64 65 # Create the clang++ symlink at installation time. 66 install(SCRIPT clang_symlink.cmake -DCMAKE_INSTALL_PREFIX=\"${CMAKE_INSTALL_PREFIX}\") 67