pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/lang/clang Add option for installing the static analyzer.



details:   https://anonhg.NetBSD.org/pkgsrc/rev/71b1cc7eea54
branches:  trunk
changeset: 639918:71b1cc7eea54
user:      wiz <wiz%pkgsrc.org@localhost>
date:      Wed Oct 01 09:41:02 2014 +0000

description:
Add option for installing the static analyzer.
Default off since it depends on perl AND python.

diffstat:

 lang/clang/Makefile                                              |   4 +-
 lang/clang/PLIST.static-analyzer                                 |  15 +++
 lang/clang/distinfo                                              |   3 +-
 lang/clang/options.mk                                            |  40 +++++++++
 lang/clang/patches/patch-tools_clang_tools_scan-build_scan-build |  44 ++++++++++
 5 files changed, 104 insertions(+), 2 deletions(-)

diffs (143 lines):

diff -r 804b9c614cbb -r 71b1cc7eea54 lang/clang/Makefile
--- a/lang/clang/Makefile       Wed Oct 01 09:40:13 2014 +0000
+++ b/lang/clang/Makefile       Wed Oct 01 09:41:02 2014 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.30 2014/09/06 07:37:14 adam Exp $
+# $NetBSD: Makefile,v 1.31 2014/10/01 09:41:02 wiz Exp $
 
 DISTNAME=      clang-3.5.0
 CATEGORIES=    lang
@@ -84,6 +84,8 @@
 .  endif
 .endif
 
+.include "options.mk"
+
 post-extract:
        mv ${WRKDIR}/libcxx-${PKGVERSION_NOREV}.src ${WRKSRC}/projects/libcxx
        mv ${WRKDIR}/compiler-rt-${PKGVERSION_NOREV}.src ${WRKSRC}/projects/compiler-rt
diff -r 804b9c614cbb -r 71b1cc7eea54 lang/clang/PLIST.static-analyzer
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/lang/clang/PLIST.static-analyzer  Wed Oct 01 09:41:02 2014 +0000
@@ -0,0 +1,15 @@
+@comment $NetBSD: PLIST.static-analyzer,v 1.1 2014/10/01 09:41:02 wiz Exp $
+bin/scan-build
+bin/scan-view
+libexec/c++-analyzer
+libexec/ccc-analyzer
+man/man1/scan-build.1
+share/llvm/static-analyzer/Reporter.py
+share/llvm/static-analyzer/Resources/FileRadar.scpt
+share/llvm/static-analyzer/Resources/GetRadarVersion.scpt
+share/llvm/static-analyzer/Resources/bugcatcher.ico
+share/llvm/static-analyzer/ScanView.py
+share/llvm/static-analyzer/scan-view
+share/llvm/static-analyzer/scanview.css
+share/llvm/static-analyzer/sorttable.js
+share/llvm/static-analyzer/startfile.py
diff -r 804b9c614cbb -r 71b1cc7eea54 lang/clang/distinfo
--- a/lang/clang/distinfo       Wed Oct 01 09:40:13 2014 +0000
+++ b/lang/clang/distinfo       Wed Oct 01 09:41:02 2014 +0000
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.26 2014/09/06 07:37:14 adam Exp $
+$NetBSD: distinfo,v 1.27 2014/10/01 09:41:02 wiz Exp $
 
 SHA1 (cfe-3.5.0.src.tar.xz) = 834cee2ed8dc6638a486d8d886b6dce3db675ffa
 RMD160 (cfe-3.5.0.src.tar.xz) = 695592b5ef12ed602a4dd78f2dc2681058ca8253
@@ -16,3 +16,4 @@
 SHA1 (patch-ac) = 0f0cc98d443ec957fc5374fb491809d27e4f9d4e
 SHA1 (patch-ad) = ad1f6720e4c73e57fce10ba968b03637a133602d
 SHA1 (patch-include_llvm_Support_Host.h) = 545f9542cd2aaa6cea58d3653902b4e1a9e7189a
+SHA1 (patch-tools_clang_tools_scan-build_scan-build) = a671f1e513fb43ddc0e73751a78235ab39aeaf9d
diff -r 804b9c614cbb -r 71b1cc7eea54 lang/clang/options.mk
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/lang/clang/options.mk     Wed Oct 01 09:41:02 2014 +0000
@@ -0,0 +1,40 @@
+# $NetBSD: options.mk,v 1.1 2014/10/01 09:41:02 wiz Exp $
+
+PKG_OPTIONS_VAR=       PKG_OPTIONS.clang
+PKG_SUPPORTED_OPTIONS= clang-static-analyzer
+PKG_SUGGESTED_OPTIONS= # clang-static-analyzer disabled since it needs python and perl
+
+.include "../../mk/bsd.options.mk"
+
+.if !empty(PKG_OPTIONS:Mclang-static-analyzer)
+PLIST_SRC+=    PLIST PLIST.static-analyzer
+
+INSTALLATION_DIRS+=    bin
+INSTALLATION_DIRS+=    libexec
+INSTALLATION_DIRS+=    ${PKGMANDIR}/man1
+INSTALLATION_DIRS+=    share/llvm/static-analyzer
+INSTALLATION_DIRS+=    share/llvm/static-analyzer/Resources
+
+USE_TOOLS+=    perl:run
+REPLACE_PERL+= tools/clang/tools/scan-build/c++-analyzer
+REPLACE_PERL+= tools/clang/tools/scan-build/ccc-analyzer
+REPLACE_PERL+= tools/clang/tools/scan-build/scan-build
+
+REPLACE_PYTHON+=               tools/clang/tools/scan-view/scan-view
+PYTHON_VERSIONS_INCOMPATIBLE=  33 34 # not yet ported as of 3.5
+.include "../../lang/python/application.mk"
+
+post-build:
+       ${ECHO} '#!/bin/sh' > ${WRKSRC}/scan-view
+       ${ECHO} "${PREFIX}/share/llvm/static-analyzer/scan-view "'"$$@"' >> ${WRKSRC}/scan-view
+post-install:
+       cd ${WRKSRC}/tools/clang/tools/scan-build && \
+               ${INSTALL_SCRIPT} scan-build ${DESTDIR}${PREFIX}/bin; \
+               ${INSTALL_SCRIPT} c++-analyzer ccc-analyzer ${DESTDIR}${PREFIX}/libexec; \
+               ${INSTALL_DATA} scan-build.1 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man1; \
+               ${INSTALL_DATA} scanview.css sorttable.js ${DESTDIR}${PREFIX}/share/llvm/static-analyzer
+       cd ${WRKSRC}/tools/clang/tools/scan-view && \
+               ${INSTALL_DATA} Resources/* ${DESTDIR}${PREFIX}/share/llvm/static-analyzer/Resources; \
+               ${INSTALL_SCRIPT} scan-view *.py ${DESTDIR}${PREFIX}/share/llvm/static-analyzer
+       ${INSTALL_SCRIPT} ${WRKSRC}/scan-view ${DESTDIR}${PREFIX}/bin
+.endif
diff -r 804b9c614cbb -r 71b1cc7eea54 lang/clang/patches/patch-tools_clang_tools_scan-build_scan-build
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/lang/clang/patches/patch-tools_clang_tools_scan-build_scan-build  Wed Oct 01 09:41:02 2014 +0000
@@ -0,0 +1,44 @@
+$NetBSD: patch-tools_clang_tools_scan-build_scan-build,v 1.1 2014/10/01 09:41:02 wiz Exp $
+
+Adapt paths for pkgsrc installation.
+
+--- tools/clang/tools/scan-build/scan-build.orig       2014-07-17 08:40:35.000000000 +0000
++++ tools/clang/tools/scan-build/scan-build
+@@ -437,7 +437,7 @@ sub CopyFiles {
+ 
+   my $Dir = shift;
+ 
+-  my $JS = Cwd::realpath("$RealBin/sorttable.js");
++  my $JS = Cwd::realpath("$RealBin/../share/llvm/static-analyzer/sorttable.js");
+ 
+   DieDiag("Cannot find 'sorttable.js'.\n")
+     if (! -r $JS);
+@@ -447,7 +447,7 @@ sub CopyFiles {
+   DieDiag("Could not copy 'sorttable.js' to '$Dir'.\n")
+     if (! -r "$Dir/sorttable.js");
+ 
+-  my $CSS = Cwd::realpath("$RealBin/scanview.css");
++  my $CSS = Cwd::realpath("$RealBin/../share/llvm/static-analyzer/scanview.css");
+ 
+   DieDiag("Cannot find 'scanview.css'.\n")
+     if (! -r $CSS);
+@@ -1657,8 +1657,8 @@ $HtmlDir = GetHTMLRunDir($HtmlDir);
+ 
+ # 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
+@@ -1726,7 +1726,7 @@ if (defined $OutputFormat) {
+     if ($ViewResults and -r "$HtmlDir/index.html") {
+       Diag "Analysis run complete.\n";
+       Diag "Viewing analysis results in '$HtmlDir' using scan-view.\n";
+-      my $ScanView = Cwd::realpath("$RealBin/scan-view");
++      my $ScanView = Cwd::realpath("$RealBin/../share/llvm/static-analyzer/scan-view");
+       if (! -x $ScanView) { $ScanView = "scan-view"; }
+       exec $ScanView, "$HtmlDir";
+     }



Home | Main Index | Thread Index | Old Index