Merge pull request #188970 from sheepforce/openmm

openmm: init at 7.7.0

authored by markuskowa and committed by GitHub d0ac2bea 3ea73da2

+98
+91
pkgs/development/libraries/science/chemistry/openmm/default.nix
···
··· 1 + { stdenv 2 + , lib 3 + , fetchFromGitHub 4 + , cmake 5 + , gfortran 6 + , fftwSinglePrec 7 + , doxygen 8 + , swig 9 + , python3Packages, enablePython ? false 10 + , opencl-headers, ocl-icd, enableOpencl ? false 11 + , clang, enableClang ? true 12 + , cudatoolkit, enableCuda ? false 13 + }: 14 + 15 + stdenv.mkDerivation rec { 16 + pname = "openmm"; 17 + version = "7.7.0"; 18 + 19 + src = fetchFromGitHub { 20 + owner = "openmm"; 21 + repo = pname; 22 + rev = version; 23 + hash = "sha256-2PYUGTMVQ5qVDeeABrwR45U3JIgo2xMXKlD6da7y3Dw="; 24 + }; 25 + 26 + # "This test is stochastic and may occassionally fail". It does. 27 + postPatch = '' 28 + rm \ 29 + platforms/*/tests/Test*BrownianIntegrator.* \ 30 + platforms/*/tests/Test*LangevinIntegrator.* \ 31 + serialization/tests/TestSerializeIntegrator.cpp 32 + ''; 33 + 34 + nativeBuildInputs = [ cmake gfortran swig doxygen python3Packages.python ]; 35 + 36 + buildInputs = [ fftwSinglePrec ] 37 + ++ lib.optionals enableOpencl [ ocl-icd opencl-headers ] 38 + ++ lib.optional enableCuda cudatoolkit; 39 + 40 + propagatedBuildInputs = lib.optionals enablePython (with python3Packages; [ 41 + python 42 + numpy 43 + cython 44 + ]); 45 + 46 + cmakeFlags = [ 47 + "-DBUILD_TESTING=ON" 48 + "-DOPENMM_BUILD_AMOEBA_PLUGIN=ON" 49 + "-DOPENMM_BUILD_CPU_LIB=ON" 50 + "-DOPENMM_BUILD_C_AND_FORTRAN_WRAPPERS=ON" 51 + "-DOPENMM_BUILD_DRUDE_PLUGIN=ON" 52 + "-DOPENMM_BUILD_PME_PLUGIN=ON" 53 + "-DOPENMM_BUILD_RPMD_PLUGIN=ON" 54 + "-DOPENMM_BUILD_SHARED_LIB=ON" 55 + ] ++ lib.optionals enablePython [ 56 + "-DOPENMM_BUILD_PYTHON_WRAPPERS=ON" 57 + ] ++ lib.optionals enableClang [ 58 + "-DCMAKE_C_COMPILER=${clang}/bin/clang" 59 + "-DCMAKE_CXX_COMPILER=${clang}/bin/clang++" 60 + ] ++ lib.optionals enableOpencl [ 61 + "-DOPENMM_BUILD_OPENCL_LIB=ON" 62 + "-DOPENMM_BUILD_AMOEBA_OPENCL_LIB=ON" 63 + "-DOPENMM_BUILD_DRUDE_OPENCL_LIB=ON" 64 + "-DOPENMM_BUILD_RPMD_OPENCL_LIB=ON" 65 + ] ++ lib.optionals enableCuda [ 66 + "-DCUDA_SDK_ROOT_DIR=${cudatoolkit}" 67 + "-DOPENMM_BUILD_AMOEBA_CUDA_LIB=ON" 68 + "-DOPENMM_BUILD_CUDA_LIB=ON" 69 + "-DOPENMM_BUILD_DRUDE_CUDA_LIB=ON" 70 + "-DOPENMM_BUILD_RPMD_CUDA_LIB=ON" 71 + "-DCMAKE_LIBRARY_PATH=${cudatoolkit}/lib64/stubs" 72 + ]; 73 + 74 + postInstall = lib.strings.optionalString enablePython '' 75 + export OPENMM_LIB_PATH=$out/lib 76 + export OPENMM_INCLUDE_PATH=$out/include 77 + cd python 78 + ${python3Packages.python.interpreter} setup.py build 79 + ${python3Packages.python.interpreter} setup.py install --prefix=$out 80 + ''; 81 + 82 + doCheck = true; 83 + 84 + meta = with lib; { 85 + description = "Toolkit for molecular simulation using high performance GPU code"; 86 + homepage = "https://openmm.org/"; 87 + license = with licenses; [ gpl3Plus lgpl3Plus mit ]; 88 + platforms = platforms.linux; 89 + maintainers = [ maintainers.sheepforce ]; 90 + }; 91 + }
+2
pkgs/top-level/all-packages.nix
··· 30286 30287 open-policy-agent = callPackage ../development/tools/open-policy-agent { }; 30288 30289 openshift = callPackage ../applications/networking/cluster/openshift { }; 30290 30291 opsdroid = callPackage ../applications/networking/opsdroid { };
··· 30286 30287 open-policy-agent = callPackage ../development/tools/open-policy-agent { }; 30288 30289 + openmm = callPackage ../development/libraries/science/chemistry/openmm { }; 30290 + 30291 openshift = callPackage ../applications/networking/cluster/openshift { }; 30292 30293 opsdroid = callPackage ../applications/networking/opsdroid { };
+5
pkgs/top-level/python-packages.nix
··· 6536 6537 openidc-client = callPackage ../development/python-modules/openidc-client { }; 6538 6539 openpyxl = callPackage ../development/python-modules/openpyxl { }; 6540 6541 openrazer = callPackage ../development/python-modules/openrazer/pylib.nix { };
··· 6536 6537 openidc-client = callPackage ../development/python-modules/openidc-client { }; 6538 6539 + openmm = toPythonModule (pkgs.openmm.override { 6540 + python3Packages = self; 6541 + enablePython = true; 6542 + }); 6543 + 6544 openpyxl = callPackage ../development/python-modules/openpyxl { }; 6545 6546 openrazer = callPackage ../development/python-modules/openrazer/pylib.nix { };