CMakeLists.txt revision 1.1 1 option(CLANG_INSTALL_SCANBUILD "Install the scan-build tool" ON)
2
3 include(GNUInstallDirs)
4
5 if (WIN32 AND NOT CYGWIN)
6 set(BinFiles
7 scan-build
8 scan-build.bat)
9 set(LibexecFiles
10 ccc-analyzer
11 c++-analyzer
12 ccc-analyzer.bat
13 c++-analyzer.bat)
14 else()
15 set(BinFiles
16 scan-build)
17 set(LibexecFiles
18 ccc-analyzer
19 c++-analyzer)
20 if (APPLE)
21 list(APPEND BinFiles
22 set-xcode-analyzer)
23 endif()
24 endif()
25
26 set(ManPages
27 scan-build.1)
28
29 set(ShareFiles
30 scanview.css
31 sorttable.js)
32
33
34 if(CLANG_INSTALL_SCANBUILD)
35 foreach(BinFile ${BinFiles})
36 add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/bin/${BinFile}
37 COMMAND ${CMAKE_COMMAND} -E make_directory
38 ${CMAKE_BINARY_DIR}/bin
39 COMMAND ${CMAKE_COMMAND} -E copy
40 ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile}
41 ${CMAKE_BINARY_DIR}/bin/
42 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile})
43 list(APPEND Depends ${CMAKE_BINARY_DIR}/bin/${BinFile})
44 install(PROGRAMS bin/${BinFile}
45 DESTINATION bin
46 COMPONENT scan-build)
47 endforeach()
48
49 foreach(LibexecFile ${LibexecFiles})
50 add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/libexec/${LibexecFile}
51 COMMAND ${CMAKE_COMMAND} -E make_directory
52 ${CMAKE_BINARY_DIR}/libexec
53 COMMAND ${CMAKE_COMMAND} -E copy
54 ${CMAKE_CURRENT_SOURCE_DIR}/libexec/${LibexecFile}
55 ${CMAKE_BINARY_DIR}/libexec/
56 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/libexec/${LibexecFile})
57 list(APPEND Depends ${CMAKE_BINARY_DIR}/libexec/${LibexecFile})
58 install(PROGRAMS libexec/${LibexecFile}
59 DESTINATION libexec
60 COMPONENT scan-build)
61 endforeach()
62
63 foreach(ManPage ${ManPages})
64 add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_MANDIR}/man1/${ManPage}
65 COMMAND ${CMAKE_COMMAND} -E make_directory
66 ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_MANDIR}/man1
67 COMMAND ${CMAKE_COMMAND} -E copy
68 ${CMAKE_CURRENT_SOURCE_DIR}/man/${ManPage}
69 ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_MANDIR}/man1/
70 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/man/${ManPage})
71 list(APPEND Depends ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_MANDIR}/man1/${ManPage})
72 install(PROGRAMS man/${ManPage}
73 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1
74 COMPONENT scan-build)
75 endforeach()
76
77 foreach(ShareFile ${ShareFiles})
78 add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/share/scan-build/${ShareFile}
79 COMMAND ${CMAKE_COMMAND} -E make_directory
80 ${CMAKE_BINARY_DIR}/share/scan-build
81 COMMAND ${CMAKE_COMMAND} -E copy
82 ${CMAKE_CURRENT_SOURCE_DIR}/share/scan-build/${ShareFile}
83 ${CMAKE_BINARY_DIR}/share/scan-build/
84 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/share/scan-build/${ShareFile})
85 list(APPEND Depends ${CMAKE_BINARY_DIR}/share/scan-build/${ShareFile})
86 install(FILES share/scan-build/${ShareFile}
87 DESTINATION share/scan-build
88 COMPONENT scan-build)
89 endforeach()
90
91 add_custom_target(scan-build ALL DEPENDS ${Depends})
92 set_target_properties(scan-build PROPERTIES FOLDER "Misc")
93
94 if(NOT LLVM_ENABLE_IDE)
95 add_llvm_install_targets("install-scan-build"
96 DEPENDS scan-build
97 COMPONENT scan-build)
98 endif()
99 endif()
100