xref: /aosp_15_r20/external/clang/tools/scan-build/CMakeLists.txt (revision 67e74705e28f6214e480b399dd47ea732279e315)
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