summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Müller <mueller@kip.uni-heidelberg.de>2022-12-07 20:44:26 +0100
committerGitHub <noreply@github.com>2022-12-07 11:44:26 -0800
commit35aa87576279226f7f3169819c28ed69c9f689f1 (patch)
treed2797538ecba61636c407ec78de9ed896e1dcc21
parent9b0e79fcab1d4cc88db9d298b114d8ebc8da666f (diff)
downloadspack-35aa87576279226f7f3169819c28ed69c9f689f1.tar.gz
spack-35aa87576279226f7f3169819c28ed69c9f689f1.tar.bz2
spack-35aa87576279226f7f3169819c28ed69c9f689f1.tar.xz
spack-35aa87576279226f7f3169819c28ed69c9f689f1.zip
meep: add new versions and additional variants incl. dependencies (#34242)
* libctl: add new version Change-Id: I16f91cfab198c66b60407ab5bb2cb3ebeac6bc19 * New package: libgdsii Change-Id: I34b52260ab68ecc857ddf8cc63b124adc2689a51 * New package: mpb Change-Id: I6fdf5321c33d6bdbcaa1569026139a8483a3bcf8 * meep: add new version and variants Change-Id: I0b60a9a4d9a329f7bde9027514467e17376e6a39 * meep: use with_or_without Change-Id: I05584cb13df8ee153ed385e77d367cb34e39777e
-rw-r--r--var/spack/repos/builtin/packages/libctl/package.py1
-rw-r--r--var/spack/repos/builtin/packages/libgdsii/package.py30
-rw-r--r--var/spack/repos/builtin/packages/meep/package.py26
-rw-r--r--var/spack/repos/builtin/packages/mpb/package.py34
4 files changed, 78 insertions, 13 deletions
diff --git a/var/spack/repos/builtin/packages/libctl/package.py b/var/spack/repos/builtin/packages/libctl/package.py
index bcc57e2919..c164ec90de 100644
--- a/var/spack/repos/builtin/packages/libctl/package.py
+++ b/var/spack/repos/builtin/packages/libctl/package.py
@@ -14,6 +14,7 @@ class Libctl(AutotoolsPackage):
git = "https://github.com/NanoComp/libctl.git"
url = "https://github.com/NanoComp/libctl/releases/download/v4.2.0/libctl-4.2.0.tar.gz"
+ version("4.5.0", sha256="621e46a238c4d5e8ce0866183f8e04abac6e1a94d90932af0d56ee61370ea153")
version("4.2.0", sha256="0341ad6ea260ecda2efb3d4b679abb3d05ca6211792381979b036177a9291975")
version(
"3.2.2",
diff --git a/var/spack/repos/builtin/packages/libgdsii/package.py b/var/spack/repos/builtin/packages/libgdsii/package.py
new file mode 100644
index 0000000000..3217015d31
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libgdsii/package.py
@@ -0,0 +1,30 @@
+# Copyright 2013-2022 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.package import *
+
+
+class Libgdsii(AutotoolsPackage):
+ """libGDSII is a C++ library for working with GDSII binary data files,
+ intended primarily for use with the computational electromagnetism codes
+ scuff-em and meep but sufficiently general-purpose to allow other uses as
+ well."""
+
+ homepage = "https://github.com/HomerReid/libGDSII"
+ url = "https://github.com/HomerReid/libGDSII/archive/refs/tags/v0.21.tar.gz"
+
+ version("0.21", sha256="1adc571c6b53df4c08d108f9ac4f4a7fd6fbefd4bc56f74e0b7b2801353671b8")
+
+ depends_on("autoconf", type="build")
+ depends_on("automake", type="build")
+ depends_on("libtool", type="build")
+
+ @run_before("autoreconf")
+ def custom_prepare(self):
+ mkdirp("m4")
+ touch("ChangeLog")
+
+ def configure_args(self):
+ return ["--enable-maintainer-mode"]
diff --git a/var/spack/repos/builtin/packages/meep/package.py b/var/spack/repos/builtin/packages/meep/package.py
index 5f8124e473..2c6a88fc9a 100644
--- a/var/spack/repos/builtin/packages/meep/package.py
+++ b/var/spack/repos/builtin/packages/meep/package.py
@@ -16,6 +16,7 @@ class Meep(AutotoolsPackage):
version("master", branch="master")
+ version("1.25.0", sha256="3e5d6c6ef69a8cc7810bdd6d681ae494bfe7a4e91041abe5494f5c8a82d02e6f")
version("1.21.0", sha256="71911cd2f38b15bdafe9a27ad111f706f24717894d5f9b6f9f19c6c10a0d5896")
version(
"1.3",
@@ -43,10 +44,13 @@ class Meep(AutotoolsPackage):
variant("gsl", default=True, description="Enable GSL support")
variant("python", default=True, description="Enable Python support")
variant("single", default=False, description="Enable Single Precision")
+ variant("libgdsii", default=True, description="Enable libGDSII support")
+ variant("mpb", default=True, description="Enable MPB support")
+ variant("openmp", default=True, description="Enable OpenMP support")
- depends_on("autoconf", type="build", when="@1.21.0")
- depends_on("automake", type="build", when="@1.21.0")
- depends_on("libtool", type="build", when="@1.21.0")
+ depends_on("autoconf", type="build", when="@1.21.0:")
+ depends_on("automake", type="build", when="@1.21.0:")
+ depends_on("libtool", type="build", when="@1.21.0:")
depends_on("blas", when="+blas")
depends_on("lapack", when="+lapack")
@@ -64,6 +68,8 @@ class Meep(AutotoolsPackage):
depends_on("py-numpy")
depends_on("swig")
depends_on("py-mpi4py", when="+mpi")
+ depends_on("libgdsii", when="+libgdsii")
+ depends_on("mpb", when="+mpb")
def configure_args(self):
spec = self.spec
@@ -87,16 +93,6 @@ class Meep(AutotoolsPackage):
else:
config_args.append("--without-libctl")
- if "+mpi" in spec:
- config_args.append("--with-mpi")
- else:
- config_args.append("--without-mpi")
-
- if "+hdf5" in spec:
- config_args.append("--with-hdf5")
- else:
- config_args.append("--without-hdf5")
-
if "+python" in spec:
config_args.append("--with-python")
else:
@@ -106,6 +102,10 @@ class Meep(AutotoolsPackage):
if "+single" in spec:
config_args.append("--enable-single")
+ config_args.extend(self.with_or_without("mpi"))
+ config_args.extend(self.with_or_without("hdf5"))
+ config_args.extend(self.with_or_without("openmp"))
+
if spec.satisfies("@1.21.0:"):
config_args.append("--enable-maintainer-mode")
diff --git a/var/spack/repos/builtin/packages/mpb/package.py b/var/spack/repos/builtin/packages/mpb/package.py
new file mode 100644
index 0000000000..2ca80e7e14
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mpb/package.py
@@ -0,0 +1,34 @@
+# Copyright 2013-2022 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.package import *
+
+
+class Mpb(AutotoolsPackage):
+ """MPB is a free and open-source software package for computing
+ electromagnetic band structures and modes."""
+
+ homepage = "https://github.com/NanoComp/mpb"
+ url = "https://github.com/NanoComp/mpb/archive/refs/tags/v1.11.1.tar.gz"
+
+ version("1.11.1", sha256="7311fc525214c1184cad3e0626b8540c0b53b3c31c28e61ce6ec2860088eca46")
+
+ depends_on("autoconf", type="build")
+ depends_on("automake", type="build")
+ depends_on("libtool", type="build")
+
+ depends_on("blas")
+ depends_on("fftw-api")
+ depends_on("guile")
+ depends_on("hdf5")
+ depends_on("libctl")
+
+ def configure_args(self):
+ spec = self.spec
+ config_args = ["--enable-shared", "--enable-maintainer-mode"]
+ config_args.append(
+ "--with-libctl={0}".format(join_path(spec["libctl"].prefix.share, "libctl"))
+ )
+ return config_args