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