mirror of
https://github.com/CHN-beta/nixos.git
synced 2024-10-24 13:18:45 +08:00
65 lines
1.8 KiB
Nix
65 lines
1.8 KiB
Nix
|
{ stdenv, fetchurl, requireFile, autoPatchelfHook, makeWrapper, python3, attrsToList, gnused }:
|
||
|
let
|
||
|
potcar = requireFile
|
||
|
{
|
||
|
name = "POTCAR";
|
||
|
sha256 = "01adpp9amf27dd39m8svip3n6ax822vsyhdi6jn5agj13lis0ln3";
|
||
|
hashMode = "recursive";
|
||
|
message = "POTCAR not found.";
|
||
|
};
|
||
|
unwrapped = stdenv.mkDerivation
|
||
|
{
|
||
|
pname = "vaspkit-unwrapped";
|
||
|
version = "1.4.1";
|
||
|
buildInputs = [ autoPatchelfHook stdenv.cc.cc ];
|
||
|
src = fetchurl
|
||
|
{
|
||
|
url = "mirror://sourceforge/vaspkit/Binaries/vaspkit.1.4.1.linux.x64.tar.gz";
|
||
|
sha256 = "0i5m7nbvqk7hzxisyydjvs2l8lnvj9vsxa170783kv9zmp51lnvs";
|
||
|
};
|
||
|
installPhase =
|
||
|
''
|
||
|
runHook preInstall
|
||
|
mkdir -p $out
|
||
|
cp -r * $out
|
||
|
runHook postInstall
|
||
|
'';
|
||
|
};
|
||
|
python = python3.withPackages (pythonPackages: with pythonPackages; [ numpy scipy matplotlib ]);
|
||
|
envirmentVariables =
|
||
|
{
|
||
|
LDA_PATH = "${potcar}/PAW_LDA";
|
||
|
PBE_PATH = "${potcar}/PAW_PBE";
|
||
|
GGA_PATH = "${potcar}/PAW_PW91";
|
||
|
VASPKIT_UTILITIES_PATH = "${unwrapped}/utilities";
|
||
|
PYTHON_BIN = "${python}/bin/python";
|
||
|
AUTO_PLOT = ".TRUE.";
|
||
|
};
|
||
|
in
|
||
|
stdenv.mkDerivation rec
|
||
|
{
|
||
|
pname = "vaspkit";
|
||
|
inherit (unwrapped) version;
|
||
|
phases = [ "installPhase" ];
|
||
|
buildInputs = [ makeWrapper ];
|
||
|
nativeBuildInputs = [ gnused ];
|
||
|
replaceEnv = builtins.concatStringsSep "" (map
|
||
|
(variable: ''sed 's|\(${variable.name}\s*=\s*\)\(\S\+\)|\1${variable.value}|g' -i $out/.vaspkit'' + "\n")
|
||
|
(attrsToList envirmentVariables));
|
||
|
installPhase =
|
||
|
''
|
||
|
runHook preInstall
|
||
|
|
||
|
# setup ~/.vaspkit
|
||
|
mkdir -p $out
|
||
|
cp ${unwrapped}/how_to_set_environment_variables $out/.vaspkit
|
||
|
|
||
|
# setup wrapper
|
||
|
makeWrapper ${unwrapped}/bin/vaspkit $out/bin/vaspkit --set HOME $out;
|
||
|
''
|
||
|
+ replaceEnv
|
||
|
+ ''
|
||
|
runHook postInstall
|
||
|
'';
|
||
|
}
|