From cdf541ac4ad66a4d8da6807f02f69623a1823f9a Mon Sep 17 00:00:00 2001 From: Chris White Date: Wed, 13 Jul 2022 07:32:48 -0700 Subject: Cppcheck: fix install and convert to cmake build system (#31488) * fix cppcheck install and convert to cmake build system * add white238 as a maintainer --- .../repos/builtin/packages/cppcheck/package.py | 23 ++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/cppcheck/package.py b/var/spack/repos/builtin/packages/cppcheck/package.py index ff7d9ed87e..fd521386e4 100644 --- a/var/spack/repos/builtin/packages/cppcheck/package.py +++ b/var/spack/repos/builtin/packages/cppcheck/package.py @@ -6,11 +6,13 @@ from spack.package import * -class Cppcheck(MakefilePackage): +class Cppcheck(CMakePackage): """A tool for static C/C++ code analysis.""" homepage = "http://cppcheck.sourceforge.net/" url = "https://downloads.sourceforge.net/project/cppcheck/cppcheck/1.78/cppcheck-1.78.tar.bz2" + maintainers = ['white238'] + version('2.8', sha256='a5ed97a99173d2952cd93fcb028a3405a7b3b992e7168e2ae9d527b991770203') version('2.7', sha256='ac74c0973c46a052760f4ff7ca6a84616ca5795510542d195a6f122c53079291') version('2.1', sha256='ab26eeef039e5b58aac01efb8cb664f2cc16bf9879c61bc93cd00c95be89a5f7') @@ -24,17 +26,26 @@ class Cppcheck(MakefilePackage): version('1.72', sha256='9460b184ff2d8dd15344f3e2f42f634c86e4dd3303e1e9b3f13dc67536aab420') version('1.68', sha256='add6e5e12b05ca02b356cd0ec7420ae0dcafddeaef183b4dfbdef59c617349b1') + 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('py-pygments', when='+htmlreport', type='run') - def build(self, spec, prefix): - make('CFGDIR={0}'.format(prefix.cfg)) + def cmake_args(self): + args = [] + + if self.run_tests is False: + args.append('-DBUILD_TESTS=OFF') + else: + args.append('-DBUILD_TESTS=ON') + + args.append(self.define_from_variant('HAVE_RULES', 'rules')) + + return args def install(self, spec, prefix): + super(Cppcheck, self).install(spec, prefix) # Manually install the final cppcheck binary - mkdirp(prefix.bin) - install('cppcheck', prefix.bin) - install_tree('cfg', prefix.cfg) if spec.satisfies('+htmlreport'): install('htmlreport/cppcheck-htmlreport', prefix.bin) -- cgit v1.2.3-70-g09d2