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