jroelofs updated this revision to Diff 39529.
jroelofs added a comment.

Forgot to `svn add` after rebasing the patch on top of upstream.


http://reviews.llvm.org/D14403

Files:
  tools/CMakeLists.txt
  tools/Makefile
  tools/scan-build/CMakeLists.txt
  tools/scan-build/Makefile
  tools/scan-build/scan-build
  tools/scan-view/CMakeLists.txt
  tools/scan-view/Makefile
  tools/scan-view/Reporter.py
  tools/scan-view/ScanView.py
  www/analyzer/installation.html

Index: www/analyzer/installation.html
===================================================================
--- www/analyzer/installation.html
+++ www/analyzer/installation.html
@@ -100,11 +100,8 @@
 <li>The locations of the <tt>scan-build</tt> and <tt>scan-view</tt>
 programs.
 
-<p>Currently these are not installed using <tt>make install</tt>, and
-are located in <tt>$(SRCDIR)/tools/clang/tools/scan-build</tt> and
-<tt>$(SRCDIR)/tools/clang/tools/scan-view</tt> respectively (where
-<tt>$(SRCDIR)</tt> is the root LLVM source directory).  These locations
-are subject to change.</p></li>
+<p>These are installed via <tt>make install</tt> into the bin directory
+when clang is built.</p></li>
 
 </ul>
 </div>
Index: tools/scan-view/ScanView.py
===================================================================
--- tools/scan-view/ScanView.py
+++ tools/scan-view/ScanView.py
@@ -73,7 +73,7 @@
 ###
 # Other simple parameters
 
-kResources = posixpath.join(posixpath.dirname(__file__), 'Resources')
+kResources = posixpath.join(posixpath.dirname(__file__), '../share/scan-view')
 kConfigPath = os.path.expanduser('~/.scanview.cfg')
 
 ###
Index: tools/scan-view/Reporter.py
===================================================================
--- tools/scan-view/Reporter.py
+++ tools/scan-view/Reporter.py
@@ -175,7 +175,7 @@
     @staticmethod
     def isAvailable():
         # FIXME: Find this .scpt better
-        path = os.path.join(os.path.dirname(__file__),'Resources/GetRadarVersion.scpt')
+        path = os.path.join(os.path.dirname(__file__),'../share/scan-view/GetRadarVersion.scpt')
         try:
           p = subprocess.Popen(['osascript',path], 
           stdout=subprocess.PIPE, stderr=subprocess.PIPE)
@@ -206,7 +206,7 @@
         if not componentVersion.strip():
             componentVersion = 'X'
 
-        script = os.path.join(os.path.dirname(__file__),'Resources/FileRadar.scpt')
+        script = os.path.join(os.path.dirname(__file__),'../share/scan-view/FileRadar.scpt')
         args = ['osascript', script, component, componentVersion, classification, personID, report.title,
                 report.description, diagnosis, config] + map(os.path.abspath, report.files)
 #        print >>sys.stderr, args
Index: tools/scan-view/Makefile
===================================================================
--- tools/scan-view/Makefile
+++ tools/scan-view/Makefile
@@ -0,0 +1,33 @@
+##===- tools/scan-view/Makefile ----------------------------*- Makefile -*-===##
+# 
+#                     The LLVM Compiler Infrastructure
+#
+# This file is distributed under the University of Illinois Open Source
+# License. See LICENSE.TXT for details.
+# 
+##===----------------------------------------------------------------------===##
+
+CLANG_LEVEL := ../..
+
+include $(CLANG_LEVEL)/../../Makefile.config
+include $(CLANG_LEVEL)/Makefile
+
+InstallTargets := $(ToolDir)/Reporter.py \
+                  $(ToolDir)/ScanView.py \
+                  $(ToolDir)/scan-view \
+                  $(ToolDir)/startfile.py \
+                  $(ShareDir)/scan-view/FileRadar.scpt \
+                  $(ShareDir)/scan-view/GetRadarVersion.scpt \
+                  $(ShareDir)/scan-view/bugcatcher.ico
+
+all:: $(InstallTargets)
+
+$(ToolDir)/%: % Makefile $(ToolDir)/.dir
+	$(Echo) "Copying $(notdir $<) to the 'bin' directory..."
+	$(Verb)cp $< $@
+	$(Verb)chmod +x $@
+
+$(ShareDir)/scan-view/%: Resources/% Makefile $(ShareDir)/scan-view/.dir
+	$(Echo) "Copying $(notdir $<) to the 'share' directory..."
+	$(Verb)cp $< $@
+
Index: tools/scan-view/CMakeLists.txt
===================================================================
--- tools/scan-view/CMakeLists.txt
+++ tools/scan-view/CMakeLists.txt
@@ -0,0 +1,30 @@
+add_custom_target(scan-view ALL)
+
+set(BinFiles
+      Reporter.py
+      ScanView.py
+      scan-view
+      startfile.py)
+
+file(GLOB ResourceFiles Resources/*)
+
+foreach(BinFile ${BinFiles})
+  add_custom_command(TARGET scan-view PRE_BUILD
+                     COMMAND ${CMAKE_COMMAND} -E make_directory
+                       ${CMAKE_BINARY_DIR}/bin
+                     COMMAND ${CMAKE_COMMAND} -E copy
+                       ${CMAKE_CURRENT_SOURCE_DIR}/${BinFile}
+                       ${CMAKE_BINARY_DIR}/bin/)
+  install(PROGRAMS ${BinFile} DESTINATION bin)
+endforeach()
+
+foreach(ResourceFile ${ResourceFiles})
+  add_custom_command(TARGET scan-view PRE_BUILD
+                     COMMAND ${CMAKE_COMMAND} -E make_directory
+                       ${CMAKE_BINARY_DIR}/share/scan-view
+                     COMMAND ${CMAKE_COMMAND} -E copy
+                       ${ResourceFile}
+                       ${CMAKE_BINARY_DIR}/share/scan-view/)
+  install(FILES ${ResourceFile} DESTINATION share/scan-view)
+endforeach()
+
Index: tools/scan-build/scan-build
===================================================================
--- tools/scan-build/scan-build
+++ tools/scan-build/scan-build
@@ -1737,8 +1737,8 @@
 
 # Determine the location of ccc-analyzer.
 my $AbsRealBin = Cwd::realpath($RealBin);
-my $Cmd = "$AbsRealBin/libexec/ccc-analyzer";
-my $CmdCXX = "$AbsRealBin/libexec/c++-analyzer";
+my $Cmd = "$AbsRealBin/../libexec/ccc-analyzer";
+my $CmdCXX = "$AbsRealBin/../libexec/c++-analyzer";
 
 # Portability: use less strict but portable check -e (file exists) instead of
 # non-portable -x (file is executable). On some windows ports -x just checks
Index: tools/scan-build/Makefile
===================================================================
--- tools/scan-build/Makefile
+++ tools/scan-build/Makefile
@@ -0,0 +1,49 @@
+##===- tools/scan-build/Makefile ---------------------------*- Makefile -*-===##
+# 
+#                     The LLVM Compiler Infrastructure
+#
+# This file is distributed under the University of Illinois Open Source
+# License. See LICENSE.TXT for details.
+# 
+##===----------------------------------------------------------------------===##
+
+CLANG_LEVEL := ../..
+
+include $(CLANG_LEVEL)/../../Makefile.config
+include $(CLANG_LEVEL)/Makefile
+
+ifeq ($(HOST_OS),MingW)
+  Suffix := .bat
+endif
+
+InstallTargets := $(ToolDir)/scan-build$(Suffix) \
+                  $(LibexecDir)/c++-analyzer$(Suffix) \
+                  $(LibexecDir)/ccc-analyzer$(Suffix) \
+                  $(ShareDir)/scan-build/scanview.css \
+                  $(ShareDir)/scan-build/sorttable.js \
+                  $(ShareDir)/man/man1/scan-build.1
+
+ifeq ($(HOST_OS),Darwin)
+  InstallTargets := $(InstallTargets) $(ToolDir)/set-xcode-analyzer
+endif
+
+all:: $(InstallTargets)
+
+$(ToolDir)/%: % Makefile $(ToolDir)/.dir
+	$(Echo) "Copying $(notdir $<) to the 'bin' directory..."
+	$(Verb)cp $< $@
+	$(Verb)chmod +x $@
+
+$(LibexecDir)/%: % Makefile $(LibexecDir)/.dir
+	$(Echo) "Copying $(notdir $<) to the 'libexec' directory..."
+	$(Verb)cp $< $@
+	$(Verb)chmod +x $@
+
+$(ShareDir)/man/man1/%: % Makefile $(ShareDir)/man/man1/.dir
+	$(Echo) "Copying $(notdir $<) to the 'share' directory..."
+	$(Verb)cp $< $@
+
+$(ShareDir)/scan-build/%: % Makefile $(ShareDir)/scan-build/.dir
+	$(Echo) "Copying $(notdir $<) to the 'share' directory..."
+	$(Verb)cp $< $@
+
Index: tools/scan-build/CMakeLists.txt
===================================================================
--- tools/scan-build/CMakeLists.txt
+++ tools/scan-build/CMakeLists.txt
@@ -0,0 +1,66 @@
+add_custom_target(scan-build ALL)
+
+if (WIN32 AND NOT CYGWIN)
+  set(BinFiles
+        scan-build.bat)
+  set(LibexecFiles
+        ccc-analyzer.bat
+        c++-analyzer.bat)
+else()
+  set(BinFiles
+        scan-build)
+  set(LibexecFiles
+        ccc-analyzer
+        c++-analyzer)
+  if (APPLE)
+    set(BinFiles ${BinFiles}
+         set-xcode-analyzer)
+  endif()
+endif()
+
+set(ManPages
+      scan-build.1)
+
+set(ResourceFiles
+      scanview.css
+      sorttable.js)
+
+foreach(BinFile ${BinFiles})
+  add_custom_command(TARGET scan-build PRE_BUILD
+                     COMMAND ${CMAKE_COMMAND} -E make_directory
+                       ${CMAKE_BINARY_DIR}/bin
+                     COMMAND ${CMAKE_COMMAND} -E copy
+                       ${CMAKE_CURRENT_SOURCE_DIR}/${BinFile}
+                       ${CMAKE_BINARY_DIR}/bin/)
+  install(PROGRAMS ${BinFile} DESTINATION bin)
+endforeach()
+
+foreach(LibexecFile ${LibexecFiles})
+  add_custom_command(TARGET scan-build PRE_BUILD
+                     COMMAND ${CMAKE_COMMAND} -E make_directory
+                       ${CMAKE_BINARY_DIR}/libexec
+                     COMMAND ${CMAKE_COMMAND} -E copy
+                       ${CMAKE_CURRENT_SOURCE_DIR}/${LibexecFile}
+                       ${CMAKE_BINARY_DIR}/libexec/)
+  install(PROGRAMS ${LibexecFile} DESTINATION libexec)
+endforeach()
+
+foreach(ManPage ${ManPages})
+  add_custom_command(TARGET scan-build PRE_BUILD
+                     COMMAND ${CMAKE_COMMAND} -E make_directory
+                       ${CMAKE_BINARY_DIR}/share/man/man1
+                     COMMAND ${CMAKE_COMMAND} -E copy
+                       ${CMAKE_CURRENT_SOURCE_DIR}/${ManPage}
+                       ${CMAKE_BINARY_DIR}/share/man/man1/)
+  install(PROGRAMS scan-build.1 DESTINATION share/man/man1)
+endforeach()
+
+foreach(ResourceFile ${ResourceFiles})
+  add_custom_command(TARGET scan-build PRE_BUILD
+                     COMMAND ${CMAKE_COMMAND} -E make_directory
+                       ${CMAKE_BINARY_DIR}/bin
+                     COMMAND ${CMAKE_COMMAND} -E copy
+                       ${CMAKE_CURRENT_SOURCE_DIR}/${ResourceFile}
+                       ${CMAKE_BINARY_DIR}/bin/)
+  install(FILES ${ResourceFile} DESTINATION bin)
+endforeach()
Index: tools/Makefile
===================================================================
--- tools/Makefile
+++ tools/Makefile
@@ -15,7 +15,7 @@
 PARALLEL_DIRS := clang-format driver diagtool
 
 ifeq ($(ENABLE_CLANG_STATIC_ANALYZER), 1)
-  PARALLEL_DIRS += clang-check
+  PARALLEL_DIRS += clang-check scan-build scan-view
 endif
 
 ifeq ($(ENABLE_CLANG_ARCMT), 1)
Index: tools/CMakeLists.txt
===================================================================
--- tools/CMakeLists.txt
+++ tools/CMakeLists.txt
@@ -5,6 +5,8 @@
 add_clang_subdirectory(clang-format)
 add_clang_subdirectory(clang-format-vs)
 add_clang_subdirectory(clang-fuzzer)
+add_clang_subdirectory(scan-build)
+add_clang_subdirectory(scan-view)
 
 add_clang_subdirectory(c-index-test)
 add_clang_subdirectory(libclang)
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to