133 lines · plain
1set (BinFiles2 "analyze-build"3 "intercept-build"4 "scan-build")5 6set (LibExecs7 "analyze-c++"8 "analyze-cc"9 "intercept-c++"10 "intercept-cc")11 12set (LibScanbuild13 "__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 (LibScanbuildResources23 "scanview.css"24 "selectable.js"25 "sorttable.js")26 27# libear is compiled dynamically in build_libear using the specified cc28# compiler.29set (LibEar30 "__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 overwriting37 # scan-build Perl implementation.38 add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/bin/scan-build-py39 COMMAND ${CMAKE_COMMAND} -E make_directory40 ${CMAKE_BINARY_DIR}/bin41 COMMAND ${CMAKE_COMMAND} -E copy42 ${CMAKE_CURRENT_SOURCE_DIR}/bin/scan-build43 ${CMAKE_BINARY_DIR}/bin/scan-build-py44 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bin/scan-build)45 install (PROGRAMS "bin/scan-build"46 DESTINATION "${CMAKE_INSTALL_BINDIR}"47 RENAME scan-build-py48 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_directory53 ${CMAKE_BINARY_DIR}/bin54 COMMAND ${CMAKE_COMMAND} -E copy55 ${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 "${CMAKE_INSTALL_BINDIR}"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_directory68 ${CMAKE_BINARY_DIR}/libexec69 COMMAND ${CMAKE_COMMAND} -E copy70 ${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 "${CMAKE_INSTALL_LIBEXECDIR}"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_directory82 ${CMAKE_BINARY_DIR}/lib83 COMMAND ${CMAKE_COMMAND} -E make_directory84 ${CMAKE_BINARY_DIR}/lib/libscanbuild85 COMMAND ${CMAKE_COMMAND} -E copy86 ${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(FILES lib/libscanbuild/${lib}91 DESTINATION lib/libscanbuild92 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_directory98 ${CMAKE_BINARY_DIR}/lib99 COMMAND ${CMAKE_COMMAND} -E make_directory100 ${CMAKE_BINARY_DIR}/lib/libscanbuild101 COMMAND ${CMAKE_COMMAND} -E make_directory102 ${CMAKE_BINARY_DIR}/lib/libscanbuild/resources103 COMMAND ${CMAKE_COMMAND} -E copy104 ${CMAKE_CURRENT_SOURCE_DIR}/lib/libscanbuild/resources/${resource}105 ${CMAKE_BINARY_DIR}/lib/libscanbuild/resources106 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/lib/libscanbuild/resources/${resource})107 list(APPEND Depends ${CMAKE_BINARY_DIR}/lib/libscanbuild/resources/${resource})108 install(FILES lib/libscanbuild/resources/${resource}109 DESTINATION lib/libscanbuild/resources110 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_directory116 ${CMAKE_BINARY_DIR}/lib117 COMMAND ${CMAKE_COMMAND} -E make_directory118 ${CMAKE_BINARY_DIR}/lib/libear119 COMMAND ${CMAKE_COMMAND} -E copy120 ${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(FILES lib/libear/${lib}125 DESTINATION lib/libear126 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-py132 COMPONENT scan-build-py)133