blob: 0f7753d861f6dd95faf46bb14d57ca43549938d0 [file] [log] [blame]
Jonathan Roelofse9614322015-11-09 16:12:56 +00001add_custom_target(scan-build ALL)
2
3option(CLANG_INSTALL_SCANBUILD "Install the scan-build tool" ON)
4
5if (WIN32 AND NOT CYGWIN)
6 set(BinFiles
7 scan-build.bat)
8 set(LibexecFiles
9 ccc-analyzer.bat
10 c++-analyzer.bat)
11else()
12 set(BinFiles
13 scan-build)
14 set(LibexecFiles
15 ccc-analyzer
16 c++-analyzer)
17 if (APPLE)
18 set(BinFiles ${BinFiles}
19 set-xcode-analyzer)
20 endif()
21endif()
22
23set(ManPages
24 scan-build.1)
25
26set(ResourceFiles
27 scanview.css
28 sorttable.js)
29
30
31if(CLANG_INSTALL_SCANBUILD)
32 foreach(BinFile ${BinFiles})
33 add_custom_command(TARGET scan-build PRE_BUILD
34 COMMAND ${CMAKE_COMMAND} -E make_directory
35 ${CMAKE_BINARY_DIR}/bin
36 COMMAND ${CMAKE_COMMAND} -E copy
37 ${CMAKE_CURRENT_SOURCE_DIR}/${BinFile}
38 ${CMAKE_BINARY_DIR}/bin/)
39 install(PROGRAMS ${BinFile} DESTINATION bin)
40 endforeach()
41
42 foreach(LibexecFile ${LibexecFiles})
43 add_custom_command(TARGET scan-build PRE_BUILD
44 COMMAND ${CMAKE_COMMAND} -E make_directory
45 ${CMAKE_BINARY_DIR}/libexec
46 COMMAND ${CMAKE_COMMAND} -E copy
47 ${CMAKE_CURRENT_SOURCE_DIR}/${LibexecFile}
48 ${CMAKE_BINARY_DIR}/libexec/)
49 install(PROGRAMS ${LibexecFile} DESTINATION libexec)
50 endforeach()
51
52 foreach(ManPage ${ManPages})
53 add_custom_command(TARGET scan-build PRE_BUILD
54 COMMAND ${CMAKE_COMMAND} -E make_directory
55 ${CMAKE_BINARY_DIR}/share/man/man1
56 COMMAND ${CMAKE_COMMAND} -E copy
57 ${CMAKE_CURRENT_SOURCE_DIR}/${ManPage}
58 ${CMAKE_BINARY_DIR}/share/man/man1/)
59 install(PROGRAMS scan-build.1 DESTINATION share/man/man1)
60 endforeach()
61
62 foreach(ResourceFile ${ResourceFiles})
63 add_custom_command(TARGET scan-build PRE_BUILD
64 COMMAND ${CMAKE_COMMAND} -E make_directory
65 ${CMAKE_BINARY_DIR}/bin
66 COMMAND ${CMAKE_COMMAND} -E copy
67 ${CMAKE_CURRENT_SOURCE_DIR}/${ResourceFile}
68 ${CMAKE_BINARY_DIR}/bin/)
69 install(FILES ${ResourceFile} DESTINATION bin)
70 endforeach()
71endif()