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