diff options
Diffstat (limited to 'dev-util/cppcheck')
-rw-r--r-- | dev-util/cppcheck/Manifest | 1 | ||||
-rw-r--r-- | dev-util/cppcheck/cppcheck-1.85.ebuild | 113 | ||||
-rw-r--r-- | dev-util/cppcheck/cppcheck-9999.ebuild | 40 | ||||
-rw-r--r-- | dev-util/cppcheck/files/cppcheck-1.75-tinyxml2.patch | 14 | ||||
-rw-r--r-- | dev-util/cppcheck/files/cppcheck-1.85-ldflags.patch | 24 |
5 files changed, 168 insertions, 24 deletions
diff --git a/dev-util/cppcheck/Manifest b/dev-util/cppcheck/Manifest index af044e6035f2..8a3615a68445 100644 --- a/dev-util/cppcheck/Manifest +++ b/dev-util/cppcheck/Manifest @@ -1,2 +1,3 @@ DIST cppcheck-1.81.tar.bz2 1514741 BLAKE2B 2f23dfe4bdb26e203411f0bf9bc569303a4d59f96911b32a8a5f9cc9a6a7fa75e5d87c328cb0bf8cc46bd8f38747a4663c33243b8385355cc5630e1fcf6c891f SHA512 22e7b63c35e71b2784065faca06aec8c286e3173f182ac10995073cc3d61fd0bfaf353c51ad9207d3bd2c6134ab1a3990a37668709505b657c2816d561f8af92 DIST cppcheck-1.84.tar.gz 2051244 BLAKE2B 8e4b4c71da969addec6d1cb2919c39625054797ae730c85555695e872f87295c20e4564db2eadf536a762ca018882285d5d329f9a5789608e14ef17f1069753d SHA512 7f971f9097db6d2fee7483634afc697bddff499a7b09c4be0bfdc3f8e502d47202a8d4f4fc1a330d0fb1d34a7772065b96419b4b4f4f1467b997e62459304526 +DIST cppcheck-1.85.tar.gz 2150637 BLAKE2B 73a1d4e1fb0770103c8163f35b9e710a5863561df66e46e319b9246ed14e3c5d4d73511db6e70275de4f4510866d7e1888b0fd6b49e5b01fc4f08d081119b36c SHA512 cc984c751d87150839782e96b3762dbf918d9e3687562eabaff6473e48e3254995dd3bffe8605842f867d7ad76845ca2248a53bbd54b5c367281db8a1c1c7fad diff --git a/dev-util/cppcheck/cppcheck-1.85.ebuild b/dev-util/cppcheck/cppcheck-1.85.ebuild new file mode 100644 index 000000000000..87931e60c7b6 --- /dev/null +++ b/dev-util/cppcheck/cppcheck-1.85.ebuild @@ -0,0 +1,113 @@ +# Copyright 1999-2018 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 +PYTHON_COMPAT=( python{2_7,3_4,3_5,3_6} ) +inherit distutils-r1 qmake-utils toolchain-funcs + +DESCRIPTION="Static analyzer of C/C++ code" +HOMEPAGE="http://cppcheck.sourceforge.net" +SRC_URI="https://github.com/danmar/cppcheck/archive/${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="GPL-3+" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc64 ~sparc ~x86" +IUSE="htmlreport pcre qt5" + +RDEPEND=" + dev-libs/tinyxml2:= + htmlreport? ( dev-python/pygments[${PYTHON_USEDEP}] ) + pcre? ( dev-libs/libpcre ) + qt5? ( + dev-qt/qtcore:5 + dev-qt/qtgui:5 + dev-qt/qtprintsupport:5 + ) +" +DEPEND="${RDEPEND} + app-text/docbook-xsl-stylesheets + dev-libs/libxslt + virtual/pkgconfig +" +PATCHES=( + "${FILESDIR}"/${PN}-1.75-tinyxml2.patch + "${FILESDIR}"/${PN}-1.85-ldflags.patch +) + +src_prepare() { + default + + rm -r externals/tinyxml || die +} + +src_configure() { + tc-export CXX PKG_CONFIG + export LIBS="$(${PKG_CONFIG} --libs tinyxml2)" + + emake dmake + ./dmake || die + + if use pcre ; then + sed -e '/HAVE_RULES=/s:=no:=yes:' \ + -i Makefile || die + fi + + if use qt5 ; then + pushd gui || die + eqmake5 + popd || die + fi +} + +src_compile() { + emake ${PN} man \ + CFGDIR="${EROOT}/usr/share/${PN}/cfg" \ + DB2MAN="${EROOT}/usr/share/sgml/docbook/xsl-stylesheets/manpages/docbook.xsl" + + if use qt5 ; then + pushd gui || die + emake + popd || die + fi + + if use htmlreport ; then + pushd htmlreport || die + distutils-r1_src_compile + popd || die + fi +} + +src_test() { + # safe final version + mv -v ${PN}{,.final} || die + mv -v lib/library.o{,.final} || die + mv -v cli/cppcheckexecutor.o{,.final} || die + #trigger recompile with CFGDIR inside ${S} + emake check CFGDIR="${S}/cfg" + # restore + mv -v ${PN}{.final,} || die + mv -v lib/library.o{.final,} || die + mv -v cli/cppcheckexecutor.o{.final,} || die +} + +src_install() { + # it's not autotools-based, so "${ED}" here, not "${D}", bug 531760 + emake install DESTDIR="${ED}" + + insinto "/usr/share/${PN}/cfg" + doins cfg/*.cfg + if use qt5 ; then + dobin gui/${PN}-gui + dodoc gui/{projectfile.txt,gui.${PN}} + fi + if use htmlreport ; then + pushd htmlreport || die + distutils-r1_src_install + popd || die + find "${D}" -name "*.egg-info" -delete + else + rm "${ED}/usr/bin/cppcheck-htmlreport" || die + fi + doman ${PN}.1 + dodoc -r triage +} diff --git a/dev-util/cppcheck/cppcheck-9999.ebuild b/dev-util/cppcheck/cppcheck-9999.ebuild index 38d6d57ecc24..9d9977873aa9 100644 --- a/dev-util/cppcheck/cppcheck-9999.ebuild +++ b/dev-util/cppcheck/cppcheck-9999.ebuild @@ -1,15 +1,13 @@ -# Copyright 1999-2018 Gentoo Foundation +# Copyright 1999-2018 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=6 - +EAPI=7 PYTHON_COMPAT=( python{2_7,3_4,3_5,3_6} ) - -inherit distutils-r1 flag-o-matic qmake-utils toolchain-funcs git-r3 +inherit distutils-r1 git-r3 qmake-utils toolchain-funcs DESCRIPTION="Static analyzer of C/C++ code" HOMEPAGE="http://cppcheck.sourceforge.net" -EGIT_REPO_URI="https://github.com/danmar/cppcheck.git" +EGIT_REPO_URI="https://github.com/danmar/cppcheck" LICENSE="GPL-3+" SLOT="0" @@ -31,39 +29,47 @@ DEPEND="${RDEPEND} dev-libs/libxslt virtual/pkgconfig " - -PATCHES=( "${FILESDIR}"/${PN}-1.75-tinyxml2.patch ) +PATCHES=( + "${FILESDIR}"/${PN}-1.75-tinyxml2.patch + "${FILESDIR}"/${PN}-1.85-ldflags.patch +) src_prepare() { default - append-cxxflags -std=c++0x - # Drop bundled libs, patch Makefile generator and re-run it rm -r externals/tinyxml || die - tc-export CXX - emake dmake - ./dmake || die } src_configure() { + tc-export CXX PKG_CONFIG + export LIBS="$(${PKG_CONFIG} --libs tinyxml2)" + + emake dmake + ./dmake || die + if use pcre ; then sed -e '/HAVE_RULES=/s:=no:=yes:' \ -i Makefile || die fi + + if use qt5 ; then + pushd gui || die + eqmake5 + popd || die + fi } src_compile() { - export LIBS="$(pkg-config --libs tinyxml2)" emake ${PN} man \ - CFGDIR="${EROOT}usr/share/${PN}/cfg" \ - DB2MAN="${EROOT}usr/share/sgml/docbook/xsl-stylesheets/manpages/docbook.xsl" + CFGDIR="${EROOT}/usr/share/${PN}/cfg" \ + DB2MAN="${EROOT}/usr/share/sgml/docbook/xsl-stylesheets/manpages/docbook.xsl" if use qt5 ; then pushd gui || die - eqmake5 emake popd || die fi + if use htmlreport ; then pushd htmlreport || die distutils-r1_src_compile diff --git a/dev-util/cppcheck/files/cppcheck-1.75-tinyxml2.patch b/dev-util/cppcheck/files/cppcheck-1.75-tinyxml2.patch index 9d8558466595..67e4ac65a410 100644 --- a/dev-util/cppcheck/files/cppcheck-1.75-tinyxml2.patch +++ b/dev-util/cppcheck/files/cppcheck-1.75-tinyxml2.patch @@ -1,15 +1,15 @@ ---- cppcheck-9999/gui/gui.pro -+++ cppcheck-9999/gui/gui.pro +--- a/gui/gui.pro ++++ b/gui/gui.pro @@ -19,6 +19,7 @@ DEFINES += CPPCHECKLIB_IMPORT } LIBS += -L$$PWD/../externals -+LIBS += `pkg-config --libs tinyxml2` ++LIBS += $(shell $(PKG_CONFIG) --libs tinyxml2) DESTDIR = . RCC_DIR = temp ---- cppcheck-9999/tools/dmake.cpp -+++ cppcheck-9999/tools/dmake.cpp +--- a/tools/dmake.cpp ++++ b/tools/dmake.cpp @@ -123,7 +123,6 @@ std::vector<std::string> extfiles; @@ -39,8 +39,8 @@ fout << "BIN=$(DESTDIR)$(PREFIX)/bin\n\n"; fout << "# For 'make man': sudo apt-get install xsltproc docbook-xsl docbook-xml on Linux\n"; ---- cppcheck-9999/externals/externals.pri -+++ cppcheck-9999/externals/externals.pri +--- a/externals/externals.pri ++++ b/externals/externals.pri @@ -1,8 +1,5 @@ -INCLUDEPATH += $${PWD}/simplecpp \
- $${PWD}/tinyxml
diff --git a/dev-util/cppcheck/files/cppcheck-1.85-ldflags.patch b/dev-util/cppcheck/files/cppcheck-1.85-ldflags.patch new file mode 100644 index 000000000000..84e892827125 --- /dev/null +++ b/dev-util/cppcheck/files/cppcheck-1.85-ldflags.patch @@ -0,0 +1,24 @@ +--- a/tools/dmake.cpp ++++ b/tools/dmake.cpp +@@ -363,10 +363,10 @@ + fout << ".PHONY: run-dmake tags\n\n"; + fout << "\n###### Targets\n\n"; + fout << "cppcheck: $(LIBOBJ) $(CLIOBJ) $(EXTOBJ)\n"; +- fout << "\t$(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ $^ $(LIBS) $(LDFLAGS) $(RDYNAMIC)\n\n"; ++ fout << "\t$(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ $^ $(LDFLAGS) $(RDYNAMIC) $(LIBS)\n\n"; + fout << "all:\tcppcheck testrunner\n\n"; + fout << "testrunner: $(TESTOBJ) $(LIBOBJ) $(EXTOBJ) cli/threadexecutor.o cli/cmdlineparser.o cli/cppcheckexecutor.o cli/filelister.o\n"; +- fout << "\t$(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ $^ $(LIBS) $(LDFLAGS) $(RDYNAMIC)\n\n"; ++ fout << "\t$(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ $^ $(LDFLAGS) $(RDYNAMIC) $(LIBS)\n\n"; + fout << "test:\tall\n"; + fout << "\t./testrunner\n\n"; + fout << "check:\tall\n"; +@@ -380,7 +380,7 @@ + fout << "generate_cfg_tests: tools/generate_cfg_tests.o $(EXTOBJ)\n"; + fout << "\tg++ -Iexternals/tinyxml -o generate_cfg_tests tools/generate_cfg_tests.o $(EXTOBJ)\n"; + fout << "reduce:\ttools/reduce.o $(LIBOBJ) $(EXTOBJ)\n"; +- fout << "\t$(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ $^ $(LIBS) $(LDFLAGS) $(RDYNAMIC)\n\n"; ++ fout << "\t$(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ $^ $(LDFLAGS) $(RDYNAMIC) $(LIBS)\n\n"; + fout << "clean:\n"; + fout << "\trm -f build/*.o lib/*.o cli/*.o test/*.o tools/*.o externals/*/*.o testrunner reduce dmake cppcheck cppcheck.1\n\n"; + fout << "man:\tman/cppcheck.1\n\n"; |