1*67e74705SXin Lioption(CLANG_INSTALL_SCANBUILD "Install the scan-build tool" ON) 2*67e74705SXin Li 3*67e74705SXin Liinclude(GNUInstallDirs) 4*67e74705SXin Li 5*67e74705SXin Liif (WIN32 AND NOT CYGWIN) 6*67e74705SXin Li set(BinFiles 7*67e74705SXin Li scan-build.bat) 8*67e74705SXin Li set(LibexecFiles 9*67e74705SXin Li ccc-analyzer.bat 10*67e74705SXin Li c++-analyzer.bat) 11*67e74705SXin Lielse() 12*67e74705SXin Li set(BinFiles 13*67e74705SXin Li scan-build) 14*67e74705SXin Li set(LibexecFiles 15*67e74705SXin Li ccc-analyzer 16*67e74705SXin Li c++-analyzer) 17*67e74705SXin Li if (APPLE) 18*67e74705SXin Li list(APPEND BinFiles 19*67e74705SXin Li set-xcode-analyzer) 20*67e74705SXin Li endif() 21*67e74705SXin Liendif() 22*67e74705SXin Li 23*67e74705SXin Liset(ManPages 24*67e74705SXin Li scan-build.1) 25*67e74705SXin Li 26*67e74705SXin Liset(ShareFiles 27*67e74705SXin Li scanview.css 28*67e74705SXin Li sorttable.js) 29*67e74705SXin Li 30*67e74705SXin Li 31*67e74705SXin Liif(CLANG_INSTALL_SCANBUILD) 32*67e74705SXin Li foreach(BinFile ${BinFiles}) 33*67e74705SXin Li add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/bin/${BinFile} 34*67e74705SXin Li COMMAND ${CMAKE_COMMAND} -E make_directory 35*67e74705SXin Li ${CMAKE_BINARY_DIR}/bin 36*67e74705SXin Li COMMAND ${CMAKE_COMMAND} -E copy 37*67e74705SXin Li ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile} 38*67e74705SXin Li ${CMAKE_BINARY_DIR}/bin/ 39*67e74705SXin Li DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile}) 40*67e74705SXin Li list(APPEND Depends ${CMAKE_BINARY_DIR}/bin/${BinFile}) 41*67e74705SXin Li install(PROGRAMS bin/${BinFile} DESTINATION bin) 42*67e74705SXin Li endforeach() 43*67e74705SXin Li 44*67e74705SXin Li foreach(LibexecFile ${LibexecFiles}) 45*67e74705SXin Li add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/libexec/${LibexecFile} 46*67e74705SXin Li COMMAND ${CMAKE_COMMAND} -E make_directory 47*67e74705SXin Li ${CMAKE_BINARY_DIR}/libexec 48*67e74705SXin Li COMMAND ${CMAKE_COMMAND} -E copy 49*67e74705SXin Li ${CMAKE_CURRENT_SOURCE_DIR}/libexec/${LibexecFile} 50*67e74705SXin Li ${CMAKE_BINARY_DIR}/libexec/ 51*67e74705SXin Li DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/libexec/${LibexecFile}) 52*67e74705SXin Li list(APPEND Depends ${CMAKE_BINARY_DIR}/libexec/${LibexecFile}) 53*67e74705SXin Li install(PROGRAMS libexec/${LibexecFile} DESTINATION libexec) 54*67e74705SXin Li endforeach() 55*67e74705SXin Li 56*67e74705SXin Li foreach(ManPage ${ManPages}) 57*67e74705SXin Li add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_MANDIR}/man1/${ManPage} 58*67e74705SXin Li COMMAND ${CMAKE_COMMAND} -E make_directory 59*67e74705SXin Li ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_MANDIR}/man1 60*67e74705SXin Li COMMAND ${CMAKE_COMMAND} -E copy 61*67e74705SXin Li ${CMAKE_CURRENT_SOURCE_DIR}/man/${ManPage} 62*67e74705SXin Li ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_MANDIR}/man1/ 63*67e74705SXin Li DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/man/${ManPage}) 64*67e74705SXin Li list(APPEND Depends ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_MANDIR}/man1/${ManPage}) 65*67e74705SXin Li install(PROGRAMS man/${ManPage} DESTINATION ${CMAKE_INSTALL_MANDIR}/man1) 66*67e74705SXin Li endforeach() 67*67e74705SXin Li 68*67e74705SXin Li foreach(ShareFile ${ShareFiles}) 69*67e74705SXin Li add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/share/scan-build/${ShareFile} 70*67e74705SXin Li COMMAND ${CMAKE_COMMAND} -E make_directory 71*67e74705SXin Li ${CMAKE_BINARY_DIR}/share/scan-build 72*67e74705SXin Li COMMAND ${CMAKE_COMMAND} -E copy 73*67e74705SXin Li ${CMAKE_CURRENT_SOURCE_DIR}/share/scan-build/${ShareFile} 74*67e74705SXin Li ${CMAKE_BINARY_DIR}/share/scan-build/ 75*67e74705SXin Li DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/share/scan-build/${ShareFile}) 76*67e74705SXin Li list(APPEND Depends ${CMAKE_BINARY_DIR}/share/scan-build/${ShareFile}) 77*67e74705SXin Li install(FILES share/scan-build/${ShareFile} DESTINATION share/scan-build) 78*67e74705SXin Li endforeach() 79*67e74705SXin Li 80*67e74705SXin Li add_custom_target(scan-build ALL DEPENDS ${Depends}) 81*67e74705SXin Li set_target_properties(scan-build PROPERTIES FOLDER "Misc") 82*67e74705SXin Liendif() 83