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