diff options
author | iarspider <iarspider@gmail.com> | 2021-02-25 14:13:04 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-25 14:13:04 +0100 |
commit | 22539f443eccece2a94c41c7314efe3b976b23ef (patch) | |
tree | 30d3d716a7378895d6e5636b5fa95fe8c9683d0a | |
parent | 3c26084d2e7cf7b8381d5f1b3a73433bd429ea41 (diff) | |
download | spack-22539f443eccece2a94c41c7314efe3b976b23ef.tar.gz spack-22539f443eccece2a94c41c7314efe3b976b23ef.tar.bz2 spack-22539f443eccece2a94c41c7314efe3b976b23ef.tar.xz spack-22539f443eccece2a94c41c7314efe3b976b23ef.zip |
Fix recipe for evtgen 2.0; add variant for hepmc3 (#21814)
-rw-r--r-- | var/spack/repos/builtin/packages/evtgen/package.py | 63 |
1 files changed, 53 insertions, 10 deletions
diff --git a/var/spack/repos/builtin/packages/evtgen/package.py b/var/spack/repos/builtin/packages/evtgen/package.py index bdc32196fb..b827a36fd9 100644 --- a/var/spack/repos/builtin/packages/evtgen/package.py +++ b/var/spack/repos/builtin/packages/evtgen/package.py @@ -6,37 +6,68 @@ from spack import * -class Evtgen(AutotoolsPackage): +class Evtgen(CMakePackage): """ EvtGen is a Monte Carlo event generator that simulates the decays of heavy flavour particles, primarily B and D mesons. """ homepage = "https://evtgen.hepforge.org/" - url = "http://lcgpackages.web.cern.ch/lcgpackages/tarFiles/sources/MCGeneratorsTarFiles/evtgen-R01-07-00.tar.gz" + url = "https://evtgen.hepforge.org/downloads?f=EvtGen-02.00.00.tar.gz" tags = ['hep'] maintainers = ['vvolkl'] - version('02-00-00', sha256='02372308e1261b8369d10538a3aa65fe60728ab343fcb64b224dac7313deb719') - version('01-07-00', sha256='2648f1e2be5f11568d589d2079f22f589c283a2960390bbdb8d9d7f71bc9c014', preferred=True) + version('02.00.00', sha256='02372308e1261b8369d10538a3aa65fe60728ab343fcb64b224dac7313deb719') + # switched to cmake in 02.00.00 + version('01.07.00', sha256='2648f1e2be5f11568d589d2079f22f589c283a2960390bbdb8d9d7f71bc9c014', deprecated=True) variant('pythia8', default=True, description='Build with pythia8') variant('tauola', default=False, description='Build with tauola') variant('photos', default=False, description='Build with photos') + variant('hepmc3', default=False, description='Link with hepmc3 (instead of hepmc)') - patch("g2c.patch") + patch("g2c.patch", when='@01.07.00') - depends_on('hepmc@:2.99.99') + depends_on('hepmc', when='~hepmc3') + depends_on('hepmc3', when='+hepmc3') depends_on("pythia8", when="+pythia8") - depends_on("tauola", when="+tauola") - depends_on("photos", when="+photos") + depends_on("tauola~hepmc3", when="+tauola~hepmc3") + depends_on("photos~hepmc3", when="+photos~hepmc3") + depends_on("tauola+hepmc3", when="+tauola+hepmc3") + depends_on("photos+hepmc3", when="+photos+hepmc3") conflicts("^pythia8+evtgen", when="+pythia8", msg="Building pythia with evtgen bindings and " "evtgen with pythia bindings results in a circular dependency " "that cannot be resolved at the moment! " "Use evtgen+pythia8^pythia8~evtgen.") + conflicts('+hepmc3', when='@:01.99.99', + msg='hepmc3 support was added in 02.00.00') + def cmake_args(self): + args = [] + + args.append(self.define_from_variant('EVTGEN_PYTHIA', 'pythia8')) + args.append(self.define_from_variant('EVTGEN_TAUOLA', 'tauola')) + args.append(self.define_from_variant('EVTGEN_PHOTOS', 'photos')) + args.append(self.define_from_variant('EVTGEN_HEPMC3', 'hepmc3')) + + return args + + # Taken from AutotoolsPackage + def configure(self, spec, prefix): + """Runs configure with the arguments specified in + :py:meth:`~.AutotoolsPackage.configure_args` + and an appropriately set prefix. + """ + options = getattr(self, 'configure_flag_args', []) + options += ['--prefix={0}'.format(prefix)] + options += self.configure_args() + + with working_dir(self.build_directory, create=True): + inspect.getmodule(self).configure(*options) + + @when('@:01.99.99') def configure_args(self): args = [] @@ -50,11 +81,23 @@ class Evtgen(AutotoolsPackage): return args + @when('@:01.99.99') + def cmake(self, spec, prefix): + pass + + @when('@:01.99.99') def build(self, spec, prefix): + self.configure(spec, prefix) # avoid parallel compilation errors # due to libext_shared depending on lib_shared - make('lib_shared') - make('all') + with working_dir(self.build_directory): + make('lib_shared') + make('all') + + @when('@:01.99.99') + def install(self, spec, prefix): + with working_dir(self.build_directory): + make('install') def setup_run_environment(self, env): env.set("EVTGEN", self.prefix.share) |