Skip to content

Commit d9cf829

Browse files
Daniel Hwangmvanotti
authored andcommitted
Create install targets for scan-build-py.
A new revision identical to https://reviews.llvm.org/D101139 The parent revision of aforementioned revision seems to cause pre-merge checks to fail opaquely. Seeing if creating a new revision will work. Reviewed By: phosek Differential Revision: https://reviews.llvm.org/D104138
1 parent e2c2124 commit d9cf829

31 files changed

+1328
-656
lines changed

clang/cmake/caches/Fuchsia-stage2.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -291,6 +291,7 @@ set(LLVM_TOOLCHAIN_TOOLS
291291
llvm-symbolizer
292292
llvm-xray
293293
sancov
294+
scan-build-py
294295
CACHE STRING "")
295296

296297
set(LLVM_DISTRIBUTION_COMPONENTS

clang/tools/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ if(CLANG_ENABLE_STATIC_ANALYZER)
3232
add_clang_subdirectory(clang-check)
3333
add_clang_subdirectory(clang-extdef-mapping)
3434
add_clang_subdirectory(scan-build)
35+
add_clang_subdirectory(scan-build-py)
3536
add_clang_subdirectory(scan-view)
3637
endif()
3738

Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
1+
set (BinFiles
2+
"analyze-build"
3+
"intercept-build"
4+
"scan-build")
5+
6+
set (LibExecs
7+
"analyze-c++"
8+
"analyze-cc"
9+
"intercept-c++"
10+
"intercept-cc")
11+
12+
set (LibScanbuild
13+
"__init__.py"
14+
"analyze.py"
15+
"arguments.py"
16+
"clang.py"
17+
"compilation.py"
18+
"intercept.py"
19+
"report.py"
20+
"shell.py")
21+
22+
set (LibScanbuildResources
23+
"scanview.css"
24+
"selectable.js"
25+
"sorttable.js")
26+
27+
# libear is compiled dynamically in build_libear using the specified cc
28+
# compiler.
29+
set (LibEar
30+
"__init__.py"
31+
"config.h.in"
32+
"ear.c")
33+
34+
foreach(BinFile ${BinFiles})
35+
if ("${BinFile}" STREQUAL "scan-build")
36+
# Need to rename scan-build to scan-build-py to prevent overwriting
37+
# scan-build Perl implementation.
38+
add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/bin/scan-build-py
39+
COMMAND ${CMAKE_COMMAND} -E make_directory
40+
${CMAKE_BINARY_DIR}/bin
41+
COMMAND ${CMAKE_COMMAND} -E copy
42+
${CMAKE_CURRENT_SOURCE_DIR}/bin/scan-build
43+
${CMAKE_BINARY_DIR}/bin/scan-build-py
44+
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bin/scan-build)
45+
install (PROGRAMS "bin/scan-build"
46+
DESTINATION bin
47+
RENAME scan-build-py
48+
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_directory
53+
${CMAKE_BINARY_DIR}/bin
54+
COMMAND ${CMAKE_COMMAND} -E copy
55+
${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 bin
60+
COMPONENT scan-build-py)
61+
list(APPEND Depends ${CMAKE_BINARY_DIR}/bin/${BinFile})
62+
endif()
63+
endforeach()
64+
65+
foreach(lib ${LibExecs})
66+
add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/libexec/${lib}
67+
COMMAND ${CMAKE_COMMAND} -E make_directory
68+
${CMAKE_BINARY_DIR}/libexec
69+
COMMAND ${CMAKE_COMMAND} -E copy
70+
${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 libexec
76+
COMPONENT scan-build-py)
77+
endforeach()
78+
79+
foreach(lib ${LibScanbuild})
80+
add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/lib/libscanbuild/${lib}
81+
COMMAND ${CMAKE_COMMAND} -E make_directory
82+
${CMAKE_BINARY_DIR}/lib
83+
COMMAND ${CMAKE_COMMAND} -E make_directory
84+
${CMAKE_BINARY_DIR}/lib/libscanbuild
85+
COMMAND ${CMAKE_COMMAND} -E copy
86+
${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(PROGRAMS lib/libscanbuild/${lib}
91+
DESTINATION lib/libscanbuild
92+
COMPONENT scan-build-py)
93+
endforeach()
94+
95+
foreach(resource ${LibScanbuildResources})
96+
add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/lib/libscanbuild/resources/${resource}
97+
COMMAND ${CMAKE_COMMAND} -E make_directory
98+
${CMAKE_BINARY_DIR}/lib
99+
COMMAND ${CMAKE_COMMAND} -E make_directory
100+
${CMAKE_BINARY_DIR}/lib/libscanbuild
101+
COMMAND ${CMAKE_COMMAND} -E make_directory
102+
${CMAKE_BINARY_DIR}/lib/libscanbuild/resources
103+
COMMAND ${CMAKE_COMMAND} -E copy
104+
${CMAKE_CURRENT_SOURCE_DIR}/lib/libscanbuild/resources/${resource}
105+
${CMAKE_BINARY_DIR}/lib/libscanbuild/resources
106+
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/lib/libscanbuild/resources/${resource})
107+
list(APPEND Depends ${CMAKE_BINARY_DIR}/lib/libscanbuild/resources/${resource})
108+
install(PROGRAMS lib/libscanbuild/resources/${resource}
109+
DESTINATION lib/libscanbuild/resources
110+
COMPONENT scan-build-py)
111+
endforeach()
112+
113+
foreach(lib ${LibEar})
114+
add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/lib/libear/${lib}
115+
COMMAND ${CMAKE_COMMAND} -E make_directory
116+
${CMAKE_BINARY_DIR}/lib
117+
COMMAND ${CMAKE_COMMAND} -E make_directory
118+
${CMAKE_BINARY_DIR}/lib/libear
119+
COMMAND ${CMAKE_COMMAND} -E copy
120+
${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(PROGRAMS lib/libear/${lib}
125+
DESTINATION lib/libear
126+
COMPONENT scan-build-py)
127+
endforeach()
128+
129+
add_custom_target(scan-build-py ALL DEPENDS ${Depends})
130+
add_llvm_install_targets("install-scan-build-py"
131+
DEPENDS scan-build-py
132+
COMPONENT scan-build-py)

clang/tools/scan-build-py/bin/analyze-build

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import multiprocessing
88
import sys
99
import os.path
1010
this_dir = os.path.dirname(os.path.realpath(__file__))
11-
sys.path.append(os.path.dirname(this_dir))
11+
sys.path.append(os.path.join(os.path.dirname(this_dir), 'lib'))
1212

1313
from libscanbuild.analyze import analyze_build
1414

clang/tools/scan-build-py/bin/intercept-build

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import multiprocessing
88
import sys
99
import os.path
1010
this_dir = os.path.dirname(os.path.realpath(__file__))
11-
sys.path.append(os.path.dirname(this_dir))
11+
sys.path.append(os.path.join(os.path.dirname(this_dir), 'lib'))
1212

1313
from libscanbuild.intercept import intercept_build
1414

clang/tools/scan-build-py/bin/scan-build

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import multiprocessing
88
import sys
99
import os.path
1010
this_dir = os.path.dirname(os.path.realpath(__file__))
11-
sys.path.append(os.path.dirname(this_dir))
11+
sys.path.append(os.path.join(os.path.dirname(this_dir), 'lib'))
1212

1313
from libscanbuild.analyze import scan_build
1414

0 commit comments

Comments
 (0)