set( LLVM_LINK_COMPONENTS ${LLVM_TARGETS_TO_BUILD} asmparser bitreader bitwriter irreader codegen instrumentation ipo linker selectiondag ) add_clang_executable(clang driver.cpp cc1_main.cpp cc1as_main.cpp ) target_link_libraries(clang clangFrontendTool clangAST clangAnalysis clangBasic clangCodeGen clangDriver clangEdit clangFrontend clangLex clangParse clangEdit clangSema clangSerialization ) if(CLANG_ENABLE_STATIC_ANALYZER) target_link_libraries(clang clangStaticAnalyzerFrontend clangStaticAnalyzerCheckers clangStaticAnalyzerCore ) endif() if(CLANG_ENABLE_ARCMT) target_link_libraries(clang clangARCMigrate ) endif() if(CLANG_ENABLE_REWRITER) target_link_libraries(clang clangRewriteCore clangRewriteFrontend ) endif() set_target_properties(clang PROPERTIES VERSION ${CLANG_EXECUTABLE_VERSION}) set_target_properties(clang PROPERTIES ENABLE_EXPORTS 1) add_dependencies(clang clang-headers) if(UNIX) set(CLANGXX_LINK_OR_COPY create_symlink) # Create a relative symlink set(clang_binary "clang${CMAKE_EXECUTABLE_SUFFIX}") else() set(CLANGXX_LINK_OR_COPY copy) set(clang_binary "${LLVM_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/clang${CMAKE_EXECUTABLE_SUFFIX}") endif() # Create the clang++ symlink in the build directory. set(clang_pp "${LLVM_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/clang++${CMAKE_EXECUTABLE_SUFFIX}") add_custom_command(TARGET clang POST_BUILD COMMAND ${CMAKE_COMMAND} -E ${CLANGXX_LINK_OR_COPY} "${clang_binary}" "${clang_pp}") set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES ${clang_pp}) # Create the clang-cl symlink in the build directory. set(clang_cl "${LLVM_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/clang-cl${CMAKE_EXECUTABLE_SUFFIX}") add_custom_command(TARGET clang POST_BUILD COMMAND ${CMAKE_COMMAND} -E ${CLANGXX_LINK_OR_COPY} "${clang_binary}" "${clang_cl}") set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES ${clang_cl}) install(TARGETS clang RUNTIME DESTINATION bin) # Create the clang++ and clang-cl symlinks at installation time. install(SCRIPT clang_symlink.cmake -DCMAKE_INSTALL_PREFIX=\"${CMAKE_INSTALL_PREFIX}\")