• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1set( 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
13add_clang_executable(clang
14  driver.cpp
15  cc1_main.cpp
16  cc1as_main.cpp
17  )
18
19target_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
41set_target_properties(clang PROPERTIES VERSION ${CLANG_EXECUTABLE_VERSION})
42
43add_dependencies(clang clang-headers)
44
45if(UNIX)
46  set(CLANGXX_LINK_OR_COPY create_symlink)
47# Create a relative symlink
48  set(clang_binary "clang${CMAKE_EXECUTABLE_SUFFIX}")
49else()
50  set(CLANGXX_LINK_OR_COPY copy)
51  set(clang_binary "${LLVM_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/clang${CMAKE_EXECUTABLE_SUFFIX}")
52endif()
53
54# Create the clang++ symlink in the build directory.
55set(clang_pp "${LLVM_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/clang++${CMAKE_EXECUTABLE_SUFFIX}")
56add_custom_command(TARGET clang POST_BUILD
57    COMMAND ${CMAKE_COMMAND} -E ${CLANGXX_LINK_OR_COPY} "${clang_binary}" "${clang_pp}")
58
59set_property(DIRECTORY APPEND
60  PROPERTY ADDITIONAL_MAKE_CLEAN_FILES ${clang_pp})
61
62install(TARGETS clang
63  RUNTIME DESTINATION bin)
64
65# Create the clang++ symlink at installation time.
66install(SCRIPT clang_symlink.cmake -DCMAKE_INSTALL_PREFIX=\"${CMAKE_INSTALL_PREFIX}\")
67