summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/geant4-data/package.py
diff options
context:
space:
mode:
authorPatrick Gartung <gartung@fnal.gov>2019-02-13 22:51:26 -0600
committerGitHub <noreply@github.com>2019-02-13 22:51:26 -0600
commit0748a32b2d33292f37e07820262a19bdbb92bdbc (patch)
tree8089ccb6a94baa19e688b915103271a2ff92b303 /var/spack/repos/builtin/packages/geant4-data/package.py
parent6971f8ae32c7baf6aedae3de6acee8996040e847 (diff)
downloadspack-0748a32b2d33292f37e07820262a19bdbb92bdbc.tar.gz
spack-0748a32b2d33292f37e07820262a19bdbb92bdbc.tar.bz2
spack-0748a32b2d33292f37e07820262a19bdbb92bdbc.tar.xz
spack-0748a32b2d33292f37e07820262a19bdbb92bdbc.zip
Updated Geant4 and dependencies clhep and vecgeom to use cxxstd= variant (#10518)
* Updated Geant4 and dependencies clhep and vecgeom to use cxxstd= variant so that it is applied consistently. * Make standalone geant4 data packages that are used when data is not installed with geant4. This allows installing the data files are externals that can be common to many compiler version. * move geant4 data package dependencies to umbrella package geant4-data
Diffstat (limited to 'var/spack/repos/builtin/packages/geant4-data/package.py')
-rw-r--r--var/spack/repos/builtin/packages/geant4-data/package.py95
1 files changed, 95 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/geant4-data/package.py b/var/spack/repos/builtin/packages/geant4-data/package.py
new file mode 100644
index 0000000000..d93b111434
--- /dev/null
+++ b/var/spack/repos/builtin/packages/geant4-data/package.py
@@ -0,0 +1,95 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+import os
+import glob
+
+
+class Geant4Data(Package):
+ """An umbrella package to hold Geant4 data packages"""
+
+ homepage = "http://geant4.cern.ch"
+ url = "http://geant4-data.web.cern.ch/geant4-data/ReleaseNotes/ReleaseNotes4.10.3.html"
+
+ version('10.03.p03', '2248ad436613897d9fad93bdb99d9446', expand=False)
+ version('10.04', 'c49194b96e65ed4527d34d22a9860972', expand=False)
+
+ # geant4@10.03.p03
+ depends_on("g4abla@3.0", when='@10.03.p03 ')
+ depends_on("g4emlow@6.50", when='@10.03.p03 ')
+ depends_on("g4ndl@4.5", when='@10.03.p03 ')
+ depends_on("g4neutronxs@1.4", when='@10.03.p03 ')
+ depends_on("g4saiddata@1.1", when='@10.03.p03 ')
+ depends_on("g4ensdfstate@2.1", when='@10.03.p03 ')
+ depends_on("g4photonevaporation@4.3.2", when='@10.03.p03 ')
+ depends_on("g4pii@1.3", when='@10.03.p03 ')
+ depends_on("g4radioactivedecay@5.1.1", when='@10.03.p03 ')
+ depends_on("g4realsurface@1.0", when='@10.03.p03 ')
+ depends_on("g4tendl@1.3", when='@10.03.p03 ')
+ # geant4@10.04
+ depends_on("g4abla@3.1", when='@10.04 ')
+ depends_on("g4emlow@7.3", when='@10.04 ')
+ depends_on("g4ndl@4.5", when='@10.04 ')
+ depends_on("g4neutronxs@1.4", when='@10.04 ')
+ depends_on("g4saiddata@1.1", when='@10.04 ')
+ depends_on("g4ensdfstate@2.2", when='@10.04 ')
+ depends_on("g4photonevaporation@5.2", when='@10.04 ')
+ depends_on("g4pii@1.3", when='@10.04 ')
+ depends_on("g4radioactivedecay@5.2", when='@10.04 ')
+ depends_on("g4realsurface@2.1", when='@10.04 ')
+ depends_on("g4tendl@1.3.2", when='@10.04 ')
+
+ def install(self, spec, prefix):
+ spec = self.spec
+ version = self.version
+ major = version[0]
+ minor = version[1]
+ if len(version) > 2:
+ patch = version[-1]
+ else:
+ patch = 0
+ data = 'Geant4-%s.%s.%s/data' % (major, minor, patch)
+ datadir = join_path(spec.prefix.share, data)
+ with working_dir(datadir, create=True):
+ for d in glob.glob('%s/share/data/*' %
+ spec['g4abla'].prefix):
+ os.symlink(d, os.path.basename(d))
+ for d in glob.glob('%s/share/data/*' %
+ spec['g4emlow'].prefix):
+ os.symlink(d, os.path.basename(d))
+ for d in glob.glob('%s/share/data/*' %
+ spec['g4ndl'].prefix):
+ os.symlink(d, os.path.basename(d))
+ for d in glob.glob('%s/share/data/*' %
+ spec['g4saiddata'].prefix):
+ os.symlink(d, os.path.basename(d))
+ for d in glob.glob('%s/share/data/*' %
+ spec['g4neutronxs'].prefix):
+ os.symlink(d, os.path.basename(d))
+ for d in glob.glob('%s/share/data/*' %
+ spec['g4ensdfstate'].prefix):
+ os.symlink(d, os.path.basename(d))
+ for d in glob.glob('%s/share/data/*' %
+ spec['g4photonevaporation'].prefix):
+ os.symlink(d, os.path.basename(d))
+ for d in glob.glob('%s/share/data/*' %
+ spec['g4pii'].prefix):
+ os.symlink(d, os.path.basename(d))
+ for d in glob.glob('%s/share/data/*' %
+ spec['g4radioactivedecay'].prefix):
+ os.symlink(d, os.path.basename(d))
+ for d in glob.glob('%s/share/data/*' %
+ spec['g4realsurface'].prefix):
+ os.symlink(d, os.path.basename(d))
+ for d in glob.glob('%s/share/data/*' %
+ spec['g4tendl'].prefix):
+ os.symlink(d, os.path.basename(d))
+
+ def url_for_version(self, version):
+ """Handle version string."""
+ url = 'http://geant4-data.web.cern.ch/geant4-data/ReleaseNotes/'
+ url = url + 'ReleaseNotes4.{0}.{1}.html'.format(version[0], version[1])
+ return url