diff --git a/pkgs/by-name/mp/mpb/package.nix b/pkgs/by-name/mp/mpb/package.nix new file mode 100644 index 000000000000..e6eaedf90bcd --- /dev/null +++ b/pkgs/by-name/mp/mpb/package.nix @@ -0,0 +1,67 @@ +{ + stdenv, + lib, + fetchFromGitHub, + autoreconfHook, + gfortran, + pkg-config, + blas, + lapack, + fftw, + hdf5, + libctl, + guile, + perl, +}: + +assert !blas.isILP64; +assert !lapack.isILP64; + +stdenv.mkDerivation rec { + pname = "mpb"; + version = "1.11.1"; + + src = fetchFromGitHub { + owner = "NanoComp"; + repo = pname; + rev = "refs/tags/v${version}"; + hash = "sha256-+2cMjZSGdfngtGoAeZRPRPBDvflTEIOWO8Se0W6jv9k="; + }; + + nativeBuildInputs = [ + autoreconfHook + gfortran + pkg-config + ]; + + buildInputs = [ + blas + lapack + fftw + hdf5 + libctl + guile + perl + ]; + + enableParallelBuilding = true; + + configureFlags = [ + "--with-libctl=yes" + "--with-libctl=${libctl}" + "--enable-maintainer-mode" + "--disable-dependency-tracking" + ] ++ lib.optional (!stdenv.hostPlatform.isStatic) "--enable-shared"; + + doCheck = true; + + meta = { + description = "MIT Photonic-Bands: computation of photonic band structures in periodic media"; + homepage = "https://mpb.readthedocs.io/en/latest/"; + license = lib.licenses.gpl2Only; + platforms = lib.platforms.linux; + maintainers = with lib.maintainers; [ + sheepforce + ]; + }; +} diff --git a/pkgs/development/python-modules/meep/default.nix b/pkgs/development/python-modules/meep/default.nix index ab8e238dc6d0..6bd726428989 100644 --- a/pkgs/development/python-modules/meep/default.nix +++ b/pkgs/development/python-modules/meep/default.nix @@ -19,6 +19,7 @@ libctl, libGDSII, guile, + mpb, python, numpy, scipy, @@ -72,6 +73,7 @@ buildPythonPackage rec { libGDSII guile gsl + mpb ]; propagatedBuildInputs = @@ -124,6 +126,9 @@ buildPythonPackage rec { nativeCheckInputs = [ mpiCheckPhaseHook ]; + pythonImportCheck = [ + "meep.mpb" + ]; checkPhase = '' runHook preCheck @@ -154,12 +159,12 @@ buildPythonPackage rec { runHook postCheck ''; - meta = with lib; { + meta = { description = "Free finite-difference time-domain (FDTD) software for electromagnetic simulations"; homepage = "https://meep.readthedocs.io/en/latest/"; - license = licenses.gpl2Only; - platforms = platforms.linux; - maintainers = with maintainers; [ + license = lib.licenses.gpl2Only; + platforms = lib.platforms.linux; + maintainers = with lib.maintainers; [ sheepforce markuskowa ];