cppcheck: add latest, deprecate older versions (#49445)
This commit is contained in:
parent
a45d09abcd
commit
cf804c4ea8
@ -9,12 +9,15 @@ class Cppcheck(CMakePackage):
|
|||||||
"""A tool for static C/C++ code analysis."""
|
"""A tool for static C/C++ code analysis."""
|
||||||
|
|
||||||
homepage = "https://cppcheck.sourceforge.net/"
|
homepage = "https://cppcheck.sourceforge.net/"
|
||||||
url = "https://downloads.sourceforge.net/project/cppcheck/cppcheck/1.78/cppcheck-1.78.tar.bz2"
|
url = "https://github.com/danmar/cppcheck/archive/2.17.0.tar.gz"
|
||||||
|
|
||||||
maintainers("white238")
|
maintainers("white238")
|
||||||
|
|
||||||
license("GPL-3.0-or-later")
|
license("GPL-3.0-or-later")
|
||||||
|
|
||||||
|
version("2.17.1", sha256="bfd681868248ec03855ca7c2aea7bcb1f39b8b18860d76aec805a92a967b966c")
|
||||||
|
|
||||||
|
with default_args(deprecated=True):
|
||||||
version("2.9", sha256="d89f3282c70814fa66669e1ea0323c0484563b3f8249c7a2dcaac2ad07651dc7")
|
version("2.9", sha256="d89f3282c70814fa66669e1ea0323c0484563b3f8249c7a2dcaac2ad07651dc7")
|
||||||
version("2.8", sha256="a5ed97a99173d2952cd93fcb028a3405a7b3b992e7168e2ae9d527b991770203")
|
version("2.8", sha256="a5ed97a99173d2952cd93fcb028a3405a7b3b992e7168e2ae9d527b991770203")
|
||||||
version("2.7", sha256="ac74c0973c46a052760f4ff7ca6a84616ca5795510542d195a6f122c53079291")
|
version("2.7", sha256="ac74c0973c46a052760f4ff7ca6a84616ca5795510542d195a6f122c53079291")
|
||||||
@ -29,29 +32,26 @@ class Cppcheck(CMakePackage):
|
|||||||
version("1.72", sha256="9460b184ff2d8dd15344f3e2f42f634c86e4dd3303e1e9b3f13dc67536aab420")
|
version("1.72", sha256="9460b184ff2d8dd15344f3e2f42f634c86e4dd3303e1e9b3f13dc67536aab420")
|
||||||
version("1.68", sha256="add6e5e12b05ca02b356cd0ec7420ae0dcafddeaef183b4dfbdef59c617349b1")
|
version("1.68", sha256="add6e5e12b05ca02b356cd0ec7420ae0dcafddeaef183b4dfbdef59c617349b1")
|
||||||
|
|
||||||
depends_on("c", type="build") # generated
|
def url_for_version(self, version):
|
||||||
depends_on("cxx", type="build") # generated
|
if version <= Version("2.9"):
|
||||||
|
return f"https://downloads.sourceforge.net/project/cppcheck/cppcheck/{version}/cppcheck-{version}.tar.bz2"
|
||||||
|
return f"https://github.com/danmar/cppcheck/archive/{version}.tar.gz"
|
||||||
|
|
||||||
|
depends_on("c", type="build")
|
||||||
|
depends_on("cxx", type="build")
|
||||||
|
|
||||||
variant("rules", default=False, description="Enable rules (requires PCRE)")
|
variant("rules", default=False, description="Enable rules (requires PCRE)")
|
||||||
variant("htmlreport", default=False, description="Install cppcheck-htmlreport")
|
|
||||||
|
|
||||||
depends_on("pcre", when="+rules", type="build")
|
depends_on("pcre", when="+rules", type="build")
|
||||||
depends_on("py-pygments", when="+htmlreport", type="run")
|
depends_on("py-pygments", type="run")
|
||||||
|
extends("python")
|
||||||
|
|
||||||
def cmake_args(self):
|
def cmake_args(self):
|
||||||
args = []
|
return [
|
||||||
|
self.define("BUILD_TESTS", self.run_tests),
|
||||||
|
self.define_from_variant("HAVE_RULES", "rules"),
|
||||||
|
]
|
||||||
|
|
||||||
if self.run_tests is False:
|
@run_after("install", when="@:2.9")
|
||||||
args.append("-DBUILD_TESTS=OFF")
|
def install_cppcheck_htmlreport(self):
|
||||||
else:
|
install("htmlreport/cppcheck-htmlreport", self.prefix.bin)
|
||||||
args.append("-DBUILD_TESTS=ON")
|
|
||||||
|
|
||||||
args.append(self.define_from_variant("HAVE_RULES", "rules"))
|
|
||||||
|
|
||||||
return args
|
|
||||||
|
|
||||||
def install(self, spec, prefix):
|
|
||||||
super().install(spec, prefix)
|
|
||||||
# Manually install the final cppcheck binary
|
|
||||||
if spec.satisfies("+htmlreport"):
|
|
||||||
install("htmlreport/cppcheck-htmlreport", prefix.bin)
|
|
||||||
|
Loading…
Reference in New Issue
Block a user