Index: clang/cmake/caches/Fuchsia-stage2.cmake =================================================================== --- clang/cmake/caches/Fuchsia-stage2.cmake +++ clang/cmake/caches/Fuchsia-stage2.cmake @@ -278,6 +278,7 @@ llvm-symbolizer llvm-xray sancov + scan-build-py CACHE STRING "") set(LLVM_DISTRIBUTION_COMPONENTS Index: clang/tools/CMakeLists.txt =================================================================== --- clang/tools/CMakeLists.txt +++ clang/tools/CMakeLists.txt @@ -31,6 +31,7 @@ add_clang_subdirectory(clang-check) add_clang_subdirectory(clang-extdef-mapping) add_clang_subdirectory(scan-build) + add_clang_subdirectory(scan-build-py) add_clang_subdirectory(scan-view) endif() Index: clang/tools/scan-build-py/CMakeLists.txt =================================================================== --- /dev/null +++ clang/tools/scan-build-py/CMakeLists.txt @@ -0,0 +1,42 @@ +set (bin + "bin/analyze-build" + "bin/analyze-c++" + "bin/analyze-cc" + "bin/intercept-build" + "bin/intercept-c++" + "bin/intercept-cc" + "bin/scan-build") + +set (libscanbuild + "lib/libscanbuild/__init__.py" + "lib/libscanbuild/analyze.py" + "lib/libscanbuild/arguments.py" + "lib/libscanbuild/clang.py" + "lib/libscanbuild/compilation.py" + "lib/libscanbuild/intercept.py" + "lib/libscanbuild/report.py" + "lib/libscanbuild/shell.py") + +# libear is compiled dynamically in build_libear using the specified cc +# compiler. +set (libear + "lib/libear/__init__.py" + "lib/libear/config.h.in" + "lib/libear/ear.c") + +install(PROGRAMS ${bin} + DESTINATION bin + COMPONENT scan-build-py) + +install(FILES ${libscanbuild} + DESTINATION lib/libscanbuild + COMPONENT scan-build-py) + +install(FILES ${libear} + DESTINATION lib/libear + COMPONENT scan-build-py) + +add_custom_target(scan-build-py DEPENDS ${bin} ${libscanbuild} ${libear}) +add_llvm_install_targets("install-scan-build-py" + DEPENDS scan-build-py + COMPONENT scan-build-py) Index: clang/tools/scan-build-py/bin/analyze-build =================================================================== --- clang/tools/scan-build-py/bin/analyze-build +++ clang/tools/scan-build-py/bin/analyze-build @@ -8,7 +8,7 @@ import sys import os.path this_dir = os.path.dirname(os.path.realpath(__file__)) -sys.path.append(os.path.dirname(this_dir)) +sys.path.append(os.path.join(os.path.dirname(this_dir)), 'lib') from libscanbuild.analyze import analyze_build Index: clang/tools/scan-build-py/bin/analyze-c++ =================================================================== --- clang/tools/scan-build-py/bin/analyze-c++ +++ clang/tools/scan-build-py/bin/analyze-c++ @@ -7,7 +7,8 @@ import sys import os.path this_dir = os.path.dirname(os.path.realpath(__file__)) -sys.path.append(os.path.dirname(this_dir)) +sys.path.append(os.path.join(os.path.dirname(this_dir), 'lib')) + from libscanbuild.analyze import analyze_compiler_wrapper sys.exit(analyze_compiler_wrapper()) Index: clang/tools/scan-build-py/bin/analyze-cc =================================================================== --- clang/tools/scan-build-py/bin/analyze-cc +++ clang/tools/scan-build-py/bin/analyze-cc @@ -7,7 +7,7 @@ import sys import os.path this_dir = os.path.dirname(os.path.realpath(__file__)) -sys.path.append(os.path.dirname(this_dir)) +sys.path.append(os.path.join(os.path.dirname(this_dir), 'lib')) from libscanbuild.analyze import analyze_compiler_wrapper sys.exit(analyze_compiler_wrapper()) Index: clang/tools/scan-build-py/bin/intercept-build =================================================================== --- clang/tools/scan-build-py/bin/intercept-build +++ clang/tools/scan-build-py/bin/intercept-build @@ -8,7 +8,7 @@ import sys import os.path this_dir = os.path.dirname(os.path.realpath(__file__)) -sys.path.append(os.path.dirname(this_dir)) +sys.path.append(os.path.join(os.path.dirname(this_dir), 'lib')) from libscanbuild.intercept import intercept_build Index: clang/tools/scan-build-py/bin/intercept-c++ =================================================================== --- clang/tools/scan-build-py/bin/intercept-c++ +++ clang/tools/scan-build-py/bin/intercept-c++ @@ -7,7 +7,7 @@ import sys import os.path this_dir = os.path.dirname(os.path.realpath(__file__)) -sys.path.append(os.path.dirname(this_dir)) +sys.path.append(os.path.join(os.path.dirname(this_dir), 'lib')) from libscanbuild.intercept import intercept_compiler_wrapper sys.exit(intercept_compiler_wrapper()) Index: clang/tools/scan-build-py/bin/intercept-cc =================================================================== --- clang/tools/scan-build-py/bin/intercept-cc +++ clang/tools/scan-build-py/bin/intercept-cc @@ -7,7 +7,7 @@ import sys import os.path this_dir = os.path.dirname(os.path.realpath(__file__)) -sys.path.append(os.path.dirname(this_dir)) +sys.path.append(os.path.join(os.path.dirname(this_dir), 'lib')) from libscanbuild.intercept import intercept_compiler_wrapper sys.exit(intercept_compiler_wrapper()) Index: clang/tools/scan-build-py/bin/scan-build =================================================================== --- clang/tools/scan-build-py/bin/scan-build +++ clang/tools/scan-build-py/bin/scan-build @@ -8,7 +8,7 @@ import sys import os.path this_dir = os.path.dirname(os.path.realpath(__file__)) -sys.path.append(os.path.dirname(this_dir)) +sys.path.append(os.path.join(os.path.dirname(this_dir), 'lib')) from libscanbuild.analyze import scan_build