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