blob: 2545610477f239510a0aa13300070a00d87c730c [file] [log] [blame]
Chandler Carruth28969b42012-06-21 01:30:21 +00001set( 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
Peter Collingbournef1d76db2011-10-30 17:30:44 +000020 clangFrontendTool
Jeffrey Yasskinc4988782011-02-11 23:46:38 +000021 clangAST
22 clangAnalysis
23 clangBasic
Daniel Dunbarf72bdf72009-12-11 22:20:12 +000024 clangCodeGen
Jeffrey Yasskinc4988782011-02-11 23:46:38 +000025 clangDriver
Ted Kremenekf7639e12012-03-06 20:06:33 +000026 clangEdit
Jeffrey Yasskinc4988782011-02-11 23:46:38 +000027 clangFrontend
Jeffrey Yasskinc4988782011-02-11 23:46:38 +000028 clangLex
John McCall8b0666c2010-08-20 18:27:03 +000029 clangParse
Ted Kremenekf7639e12012-03-06 20:06:33 +000030 clangEdit
John McCalld70fb982011-06-15 23:25:17 +000031 clangARCMigrate
Ted Kremenekcdf81492012-09-01 05:09:24 +000032 clangRewriteCore
33 clangRewriteFrontend
Chandler Carruth7e6c0fc2010-01-29 10:03:42 +000034 clangSema
Jeffrey Yasskinc4988782011-02-11 23:46:38 +000035 clangSerialization
Argyrios Kyrtzidisecd33342011-02-14 18:13:01 +000036 clangStaticAnalyzerFrontend
Ted Kremenekd99bd552010-12-23 19:38:26 +000037 clangStaticAnalyzerCheckers
38 clangStaticAnalyzerCore
Daniel Dunbar3db73ab2009-03-24 02:52:57 +000039 )
40
Douglas Gregorbe8705b2011-02-25 19:24:02 +000041set_target_properties(clang PROPERTIES VERSION ${CLANG_EXECUTABLE_VERSION})
42
NAKAMURA Takumie6c562c2012-07-20 16:40:09 +000043add_dependencies(clang clang-headers)
44
Douglas Gregor45959e52009-11-19 16:42:34 +000045if(UNIX)
46 set(CLANGXX_LINK_OR_COPY create_symlink)
Dylan Noblesmith93458132012-02-09 20:02:46 +000047# Create a relative symlink
48 set(clang_binary "clang${CMAKE_EXECUTABLE_SUFFIX}")
Douglas Gregor45959e52009-11-19 16:42:34 +000049else()
50 set(CLANGXX_LINK_OR_COPY copy)
Dylan Noblesmith93458132012-02-09 20:02:46 +000051 set(clang_binary "${LLVM_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/clang${CMAKE_EXECUTABLE_SUFFIX}")
Douglas Gregor45959e52009-11-19 16:42:34 +000052endif()
53
Douglas Gregor564d41f2009-11-19 05:46:45 +000054# Create the clang++ symlink in the build directory.
Oscar Fuentesced88362011-02-06 15:33:08 +000055set(clang_pp "${LLVM_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/clang++${CMAKE_EXECUTABLE_SUFFIX}")
Peter Collingbourne17a7bbb2011-11-21 00:00:48 +000056add_custom_command(TARGET clang POST_BUILD
Dylan Noblesmith93458132012-02-09 20:02:46 +000057 COMMAND ${CMAKE_COMMAND} -E ${CLANGXX_LINK_OR_COPY} "${clang_binary}" "${clang_pp}")
Douglas Gregorbe8705b2011-02-25 19:24:02 +000058
Oscar Fuentes1b6a38e2011-02-05 21:37:37 +000059set_property(DIRECTORY APPEND
60 PROPERTY ADDITIONAL_MAKE_CLEAN_FILES ${clang_pp})
Douglas Gregor564d41f2009-11-19 05:46:45 +000061
Douglas Gregor33870d92009-08-23 05:28:29 +000062install(TARGETS clang
63 RUNTIME DESTINATION bin)
Douglas Gregor564d41f2009-11-19 05:46:45 +000064
65# Create the clang++ symlink at installation time.
Oscar Fuentes95b6f042010-10-17 16:10:32 +000066install(SCRIPT clang_symlink.cmake -DCMAKE_INSTALL_PREFIX=\"${CMAKE_INSTALL_PREFIX}\")