diff --git a/glicid-non-free/packages/chemistry.scm b/glicid-non-free/packages/chemistry.scm new file mode 100644 index 0000000..256b465 --- /dev/null +++ b/glicid-non-free/packages/chemistry.scm @@ -0,0 +1,77 @@ +(define-module (glicid-nonfree packages chemistry) + #:use-module (guix packages) + #:use-module (guix download) +#:use-module (guix gexp) +#:use-module (guix utils) +#:use-module (guix build-system cmake) +#:use-module ((guix licenses) #:prefix license:) +#:use-module (gnu packages) +#:use-module (gnu packages algebra) +#:use-module (gnu packages mpi) +#:use-module (gnu packages maths) +#:use-module (gnu packages perl) +#:use-module (gnu packages xml) +#:use-module (gnu packages chemistry) +#:use-module (gnu packages documentation) +#:use-module (gnu packages graphviz) +#:use-module (gnu packages pkg-config) +#:use-module (gnu packages python) +#:use-module (gnu packages python-xyz) +#:use-module (gnu packages sphinx) +#:use-module (gnu packages check) +#:use-module (gnu packages gcc) +#:use-module (non-free cuda) +) + +(define-public gromacs+cuda + (package + (inherit gromacs) + (name "gromacs+cuda") + (arguments + (list #:configure-flags + #~(list "-DGMX_DEVELOPER_BUILD=on" ; Needed to run tests + ;; Unbundling + "-DGMX_USE_LMFIT=EXTERNAL" + "-DGMX_BUILD_OWN_FFTW=off" + "-DGMX_EXTERNAL_BLAS=on" + "-DGMX_EXTERNAL_LAPACK=on" + "-DGMX_EXTERNAL_TNG=on" + "-DGMX_EXTERNAL_ZLIB=on" + "-DGMX_GPU=CUDA" + (string-append "-DCUDA_TOOLKIT_ROOT_DIR=" #$(this-package-input "cuda-toolkit")) + "-DGMX_EXTERNAL_TINYXML2=on" + (string-append "-DTinyXML2_DIR=" + #$(this-package-input "tinyxml2")) + ;; Workaround for cmake/FindSphinx.cmake version parsing that does + ;; not understand the guix-wrapped `sphinx-build --version' answer + (string-append "-DSPHINX_EXECUTABLE_VERSION=" + #$(package-version python-sphinx))) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fixes + (lambda* (#:key inputs #:allow-other-keys) + ;; Still bundled: part of gromacs, source behind registration + ;; but free software anyways + ;;(delete-file-recursively "src/external/vmd_molfile") + ;; Still bundled: threads-based OpenMPI-compatible fallback + ;; designed to be bundled like that + ;;(delete-file-recursively "src/external/thread_mpi") + ;; Unbundling + (delete-file-recursively "src/external/lmfit") + (delete-file-recursively "src/external/clFFT") + (delete-file-recursively "src/external/fftpack") + (delete-file-recursively "src/external/build-fftw") + (delete-file-recursively "src/external/tng_io") + (delete-file-recursively "src/external/tinyxml2") + (delete-file-recursively "src/external/googletest") + (copy-recursively #$(package-source googletest) + "src/external/googletest") + ;; This test warns about the build host hardware, disable + (substitute* "src/gromacs/hardware/tests/hardwaretopology.cpp" + (("TEST\\(HardwareTopologyTest, HwlocExecute\\)") + "void __guix_disabled()"))))))) + + (propagated-inputs + (modify-inputs (package-propagated-inputs gromacs) + (append cuda hwloc)))) +)