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