1set (BinFiles 2 "analyze-build" 3 "intercept-build" 4 "scan-build") 5 6set (LibExecs 7 "analyze-c++" 8 "analyze-cc" 9 "intercept-c++" 10 "intercept-cc") 11 12set (LibScanbuild 13 "__init__.py" 14 "analyze.py" 15 "arguments.py" 16 "clang.py" 17 "compilation.py" 18 "intercept.py" 19 "report.py" 20 "shell.py") 21 22set (LibScanbuildResources 23 "scanview.css" 24 "selectable.js" 25 "sorttable.js") 26 27# libear is compiled dynamically in build_libear using the specified cc 28# compiler. 29set (LibEar 30 "__init__.py" 31 "config.h.in" 32 "ear.c") 33 34foreach(BinFile ${BinFiles}) 35 if ("${BinFile}" STREQUAL "scan-build") 36 # Need to rename scan-build to scan-build-py to prevent overwriting 37 # scan-build Perl implementation. 38 add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/bin/scan-build-py 39 COMMAND ${CMAKE_COMMAND} -E make_directory 40 ${CMAKE_BINARY_DIR}/bin 41 COMMAND ${CMAKE_COMMAND} -E copy 42 ${CMAKE_CURRENT_SOURCE_DIR}/bin/scan-build 43 ${CMAKE_BINARY_DIR}/bin/scan-build-py 44 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bin/scan-build) 45 install (PROGRAMS "bin/scan-build" 46 DESTINATION bin 47 RENAME scan-build-py 48 COMPONENT scan-build-py) 49 list(APPEND Depends ${CMAKE_BINARY_DIR}/bin/scan-build-py) 50 else() 51 add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/bin/${BinFile} 52 COMMAND ${CMAKE_COMMAND} -E make_directory 53 ${CMAKE_BINARY_DIR}/bin 54 COMMAND ${CMAKE_COMMAND} -E copy 55 ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile} 56 ${CMAKE_BINARY_DIR}/bin/ 57 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile}) 58 install(PROGRAMS bin/${BinFile} 59 DESTINATION bin 60 COMPONENT scan-build-py) 61 list(APPEND Depends ${CMAKE_BINARY_DIR}/bin/${BinFile}) 62 endif() 63endforeach() 64 65foreach(lib ${LibExecs}) 66 add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/libexec/${lib} 67 COMMAND ${CMAKE_COMMAND} -E make_directory 68 ${CMAKE_BINARY_DIR}/libexec 69 COMMAND ${CMAKE_COMMAND} -E copy 70 ${CMAKE_CURRENT_SOURCE_DIR}/libexec/${lib} 71 ${CMAKE_BINARY_DIR}/libexec/ 72 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/libexec/${lib}) 73 list(APPEND Depends ${CMAKE_BINARY_DIR}/libexec/${lib}) 74 install(PROGRAMS libexec/${lib} 75 DESTINATION libexec 76 COMPONENT scan-build-py) 77endforeach() 78 79foreach(lib ${LibScanbuild}) 80 add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/lib/libscanbuild/${lib} 81 COMMAND ${CMAKE_COMMAND} -E make_directory 82 ${CMAKE_BINARY_DIR}/lib 83 COMMAND ${CMAKE_COMMAND} -E make_directory 84 ${CMAKE_BINARY_DIR}/lib/libscanbuild 85 COMMAND ${CMAKE_COMMAND} -E copy 86 ${CMAKE_CURRENT_SOURCE_DIR}/lib/libscanbuild/${lib} 87 ${CMAKE_BINARY_DIR}/lib/libscanbuild/ 88 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/lib/libscanbuild/${lib}) 89 list(APPEND Depends ${CMAKE_BINARY_DIR}/lib/libscanbuild/${lib}) 90 install(PROGRAMS lib/libscanbuild/${lib} 91 DESTINATION lib/libscanbuild 92 COMPONENT scan-build-py) 93endforeach() 94 95foreach(resource ${LibScanbuildResources}) 96 add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/lib/libscanbuild/resources/${resource} 97 COMMAND ${CMAKE_COMMAND} -E make_directory 98 ${CMAKE_BINARY_DIR}/lib 99 COMMAND ${CMAKE_COMMAND} -E make_directory 100 ${CMAKE_BINARY_DIR}/lib/libscanbuild 101 COMMAND ${CMAKE_COMMAND} -E make_directory 102 ${CMAKE_BINARY_DIR}/lib/libscanbuild/resources 103 COMMAND ${CMAKE_COMMAND} -E copy 104 ${CMAKE_CURRENT_SOURCE_DIR}/lib/libscanbuild/resources/${resource} 105 ${CMAKE_BINARY_DIR}/lib/libscanbuild/resources 106 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/lib/libscanbuild/resources/${resource}) 107 list(APPEND Depends ${CMAKE_BINARY_DIR}/lib/libscanbuild/resources/${resource}) 108 install(PROGRAMS lib/libscanbuild/resources/${resource} 109 DESTINATION lib/libscanbuild/resources 110 COMPONENT scan-build-py) 111endforeach() 112 113foreach(lib ${LibEar}) 114 add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/lib/libear/${lib} 115 COMMAND ${CMAKE_COMMAND} -E make_directory 116 ${CMAKE_BINARY_DIR}/lib 117 COMMAND ${CMAKE_COMMAND} -E make_directory 118 ${CMAKE_BINARY_DIR}/lib/libear 119 COMMAND ${CMAKE_COMMAND} -E copy 120 ${CMAKE_CURRENT_SOURCE_DIR}/lib/libear/${lib} 121 ${CMAKE_BINARY_DIR}/lib/libear/ 122 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/lib/libear/${lib}) 123 list(APPEND Depends ${CMAKE_BINARY_DIR}/lib/libear/${lib}) 124 install(PROGRAMS lib/libear/${lib} 125 DESTINATION lib/libear 126 COMPONENT scan-build-py) 127endforeach() 128 129add_custom_target(scan-build-py ALL DEPENDS ${Depends}) 130add_llvm_install_targets("install-scan-build-py" 131 DEPENDS scan-build-py 132 COMPONENT scan-build-py) 133