option(CLANG_INSTALL_SCANBUILD "Install the scan-build tool" ON) include(GNUInstallDirs) if (WIN32 AND NOT CYGWIN) set(BinFiles scan-build scan-build.bat ) set(LibexecFiles ccc-analyzer c++-analyzer ccc-analyzer.bat c++-analyzer.bat ) else() set(BinFiles scan-build ) set(LibexecFiles ccc-analyzer c++-analyzer ) if (APPLE) list(APPEND BinFiles set-xcode-analyzer ) endif() endif() set(ManPages scan-build.1) set(ShareFiles scanview.css sorttable.js) if(CLANG_INSTALL_SCANBUILD) foreach(BinFile ${BinFiles}) add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/bin/${BinFile} COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/bin COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile} ${CMAKE_BINARY_DIR}/bin/ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile}) list(APPEND Depends ${CMAKE_BINARY_DIR}/bin/${BinFile}) install(PROGRAMS bin/${BinFile} DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT scan-build) endforeach() foreach(LibexecFile ${LibexecFiles}) add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/libexec/${LibexecFile} COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/libexec COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/libexec/${LibexecFile} ${CMAKE_BINARY_DIR}/libexec/ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/libexec/${LibexecFile}) list(APPEND Depends ${CMAKE_BINARY_DIR}/libexec/${LibexecFile}) install(PROGRAMS libexec/${LibexecFile} DESTINATION "${CMAKE_INSTALL_LIBEXECDIR}" COMPONENT scan-build) endforeach() foreach(ManPage ${ManPages}) add_custom_command(OUTPUT "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_MANDIR}/man1/${ManPage}" COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_MANDIR}/man1" COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_SOURCE_DIR}/man/${ManPage}" "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_MANDIR}/man1/" DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/man/${ManPage}) list(APPEND Depends "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_MANDIR}/man1/${ManPage}") install(FILES man/${ManPage} DESTINATION "${CMAKE_INSTALL_MANDIR}/man1" COMPONENT scan-build) endforeach() foreach(ShareFile ${ShareFiles}) add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/share/scan-build/${ShareFile} COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/share/scan-build COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/share/scan-build/${ShareFile} ${CMAKE_BINARY_DIR}/share/scan-build/ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/share/scan-build/${ShareFile}) list(APPEND Depends ${CMAKE_BINARY_DIR}/share/scan-build/${ShareFile}) install(FILES share/scan-build/${ShareFile} DESTINATION "${CMAKE_INSTALL_DATADIR}/scan-build" COMPONENT scan-build) endforeach() add_custom_target(scan-build ALL DEPENDS ${Depends}) set_target_properties(scan-build PROPERTIES FOLDER "Misc") if(NOT LLVM_ENABLE_IDE) add_llvm_install_targets("install-scan-build" DEPENDS scan-build COMPONENT scan-build) endif() endif()