blob: 3564c89732b194c5056ffa5e063c063e737deb29 [file] [log] [blame]
Jonathan Roelofse9614322015-11-09 16:12:56 +00001option(CLANG_INSTALL_SCANBUILD "Install the scan-build tool" ON)
2
3if (WIN32 AND NOT CYGWIN)
4 set(BinFiles
5 scan-build.bat)
6 set(LibexecFiles
7 ccc-analyzer.bat
8 c++-analyzer.bat)
9else()
10 set(BinFiles
11 scan-build)
12 set(LibexecFiles
13 ccc-analyzer
14 c++-analyzer)
15 if (APPLE)
Jonathan Roelofs1ff9c632015-11-10 22:48:11 +000016 list(APPEND BinFiles
17 set-xcode-analyzer)
Jonathan Roelofse9614322015-11-09 16:12:56 +000018 endif()
19endif()
20
21set(ManPages
22 scan-build.1)
23
Jonathan Roelofs2ec2acb2015-11-13 00:32:54 +000024set(ShareFiles
Jonathan Roelofse9614322015-11-09 16:12:56 +000025 scanview.css
26 sorttable.js)
27
28
29if(CLANG_INSTALL_SCANBUILD)
30 foreach(BinFile ${BinFiles})
Jonathan Roelofs467ab052015-11-10 22:38:59 +000031 add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/bin/${BinFile}
Jonathan Roelofse9614322015-11-09 16:12:56 +000032 COMMAND ${CMAKE_COMMAND} -E make_directory
33 ${CMAKE_BINARY_DIR}/bin
34 COMMAND ${CMAKE_COMMAND} -E copy
35 ${CMAKE_CURRENT_SOURCE_DIR}/${BinFile}
Jonathan Roelofs2a439a12015-11-10 20:01:22 +000036 ${CMAKE_BINARY_DIR}/bin/
37 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${BinFile})
Jonathan Roelofs1ff9c632015-11-10 22:48:11 +000038 list(APPEND Depends ${CMAKE_BINARY_DIR}/bin/${BinFile})
Jonathan Roelofse9614322015-11-09 16:12:56 +000039 install(PROGRAMS ${BinFile} DESTINATION bin)
40 endforeach()
41
42 foreach(LibexecFile ${LibexecFiles})
Jonathan Roelofs467ab052015-11-10 22:38:59 +000043 add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/libexec/${LibexecFile}
Jonathan Roelofse9614322015-11-09 16:12:56 +000044 COMMAND ${CMAKE_COMMAND} -E make_directory
45 ${CMAKE_BINARY_DIR}/libexec
46 COMMAND ${CMAKE_COMMAND} -E copy
47 ${CMAKE_CURRENT_SOURCE_DIR}/${LibexecFile}
Jonathan Roelofs2a439a12015-11-10 20:01:22 +000048 ${CMAKE_BINARY_DIR}/libexec/
49 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${LibexecFile})
Jonathan Roelofs1ff9c632015-11-10 22:48:11 +000050 list(APPEND Depends ${CMAKE_BINARY_DIR}/libexec/${LibexecFile})
Jonathan Roelofse9614322015-11-09 16:12:56 +000051 install(PROGRAMS ${LibexecFile} DESTINATION libexec)
52 endforeach()
53
54 foreach(ManPage ${ManPages})
Jonathan Roelofs467ab052015-11-10 22:38:59 +000055 add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/share/man/man1/${ManPage}
Jonathan Roelofse9614322015-11-09 16:12:56 +000056 COMMAND ${CMAKE_COMMAND} -E make_directory
57 ${CMAKE_BINARY_DIR}/share/man/man1
58 COMMAND ${CMAKE_COMMAND} -E copy
59 ${CMAKE_CURRENT_SOURCE_DIR}/${ManPage}
Jonathan Roelofs2a439a12015-11-10 20:01:22 +000060 ${CMAKE_BINARY_DIR}/share/man/man1/
61 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${ManPage})
Jonathan Roelofs1ff9c632015-11-10 22:48:11 +000062 list(APPEND Depends ${CMAKE_BINARY_DIR}/share/man/man1/${ManPage})
Jonathan Roelofs9c0d3f52015-11-09 16:47:09 +000063 install(PROGRAMS ${ManPage} DESTINATION share/man/man1)
Jonathan Roelofse9614322015-11-09 16:12:56 +000064 endforeach()
65
Jonathan Roelofs2ec2acb2015-11-13 00:32:54 +000066 foreach(ShareFile ${ShareFiles})
67 add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/share/scan-view/${ShareFile}
Jonathan Roelofse9614322015-11-09 16:12:56 +000068 COMMAND ${CMAKE_COMMAND} -E make_directory
Jonathan Roelofs2ec2acb2015-11-13 00:32:54 +000069 ${CMAKE_BINARY_DIR}/share/scan-view
Jonathan Roelofse9614322015-11-09 16:12:56 +000070 COMMAND ${CMAKE_COMMAND} -E copy
Jonathan Roelofs2ec2acb2015-11-13 00:32:54 +000071 ${CMAKE_CURRENT_SOURCE_DIR}/share/${ShareFile}
72 ${CMAKE_BINARY_DIR}/share/scan-view/
73 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/share/${ShareFile})
74 list(APPEND Depends ${CMAKE_BINARY_DIR}/share/scan-view/${ShareFile})
75 install(FILES ${ShareFile} DESTINATION share/scan-view)
Jonathan Roelofse9614322015-11-09 16:12:56 +000076 endforeach()
Jonathan Roelofs467ab052015-11-10 22:38:59 +000077
78 add_custom_target(scan-build ALL DEPENDS ${Depends})
Aaron Ballman8f3f6342015-11-11 18:13:42 +000079 set_target_properties(scan-build PROPERTIES FOLDER "Misc")
Jonathan Roelofse9614322015-11-09 16:12:56 +000080endif()
Jonathan Roelofs467ab052015-11-10 22:38:59 +000081