summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/geant4-data/package.py
diff options
context:
space:
mode:
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