Loading pkgs/applications/science/molecular-dynamics/gromacs/default.nix +99 −72 Original line number Diff line number Diff line { lib , stdenv , fetchurl , cmake , hwloc , fftw , perl , blas , lapack , llvmPackages , mpi , cudaPackages , plumed , singlePrec ? true , config , enableCuda ? config.cudaSupport , enableMpi ? false , enablePlumed ? false , cpuAcceleration ? null { lib, stdenv, fetchurl, cmake, hwloc, fftw, perl, blas, lapack, llvmPackages, mpi, cudaPackages, plumed, singlePrec ? true, config, enableCuda ? config.cudaSupport, enableMpi ? false, enablePlumed ? false, cpuAcceleration ? null, }: # CUDA is only implemented for single precission assert enableCuda -> singlePrec; Loading @@ -30,11 +30,19 @@ let # The possible values are defined in CMakeLists.txt: # AUTO None SSE2 SSE4.1 AVX_128_FMA AVX_256 AVX2_256 # AVX2_128 AVX_512 AVX_512_KNL MIC ARM_NEON ARM_NEON_ASIMD SIMD = x: if (cpuAcceleration != null) then x else if stdenv.hostPlatform.system == "i686-linux" then "SSE2" else if stdenv.hostPlatform.system == "x86_64-linux" then "SSE4.1" else if stdenv.hostPlatform.system == "x86_64-darwin" then "SSE4.1" else if stdenv.hostPlatform.system == "aarch64-linux" then "ARM_NEON_ASIMD" else SIMD = x: if (cpuAcceleration != null) then x else if stdenv.hostPlatform.system == "i686-linux" then "SSE2" else if stdenv.hostPlatform.system == "x86_64-linux" then "SSE4.1" else if stdenv.hostPlatform.system == "x86_64-darwin" then "SSE4.1" else if stdenv.hostPlatform.system == "aarch64-linux" then "ARM_NEON_ASIMD" else "None"; source = Loading @@ -45,11 +53,12 @@ let } else { version = "2024.5"; hash = "sha256-/s8GsYbN25Qs+0LujaXz6yuZk+aswKLxjRSsCwFEJPM="; version = "2025.0"; hash = "sha256-onrTWmRilbvsEpq+aE2dA9Hi4L12sNYl6QVXRqrvroI="; }; in stdenv.mkDerivation rec { in stdenv.mkDerivation rec { pname = "gromacs"; version = source.version; Loading @@ -58,58 +67,73 @@ in stdenv.mkDerivation rec { inherit (source) hash; }; patches = [ ./pkgconfig.patch ]; patches = [ (if enablePlumed then ./pkgconfig-2024.patch else ./pkgconfig-2025.patch) ]; postPatch = lib.optionalString enablePlumed '' plumed patch -p -e gromacs-${source.version} ''; outputs = [ "out" "dev" "man" ]; outputs = [ "out" "dev" "man" ]; nativeBuildInputs = [ cmake ] ++ lib.optional enablePlumed plumed ++ lib.optionals enableCuda [ cudaPackages.cuda_nvcc ]; buildInputs = [ buildInputs = [ fftw perl hwloc blas lapack ] ++ lib.optional enableMpi mpi ] ++ lib.optional enableMpi mpi ++ lib.optionals enableCuda [ cudaPackages.cuda_cccl cudaPackages.cuda_cudart cudaPackages.libcufft cudaPackages.cuda_profiler_api ] ++ lib.optional stdenv.hostPlatform.isDarwin llvmPackages.openmp; ] ++ lib.optional stdenv.hostPlatform.isDarwin llvmPackages.openmp; propagatedBuildInputs = lib.optional enableMpi mpi; propagatedUserEnvPkgs = lib.optional enableMpi mpi; cmakeFlags = [ cmakeFlags = [ (lib.cmakeBool "GMX_HWLOC" true) "-DGMX_SIMD:STRING=${SIMD cpuAcceleration}" "-DGMX_OPENMP:BOOL=TRUE" "-DBUILD_SHARED_LIBS=ON" ] ++ ( if singlePrec then [ ] ++ ( if singlePrec then [ "-DGMX_DOUBLE=OFF" ] else [ ] else [ "-DGMX_DOUBLE=ON" "-DGMX_DEFAULT_SUFFIX=OFF" ] ) ++ ( if enableMpi then [ ) ++ ( if enableMpi then [ "-DGMX_MPI:BOOL=TRUE" "-DGMX_THREAD_MPI:BOOL=FALSE" ] else [ else [ "-DGMX_MPI:BOOL=FALSE" ] ) ++ lib.optionals enableCuda [ ) ++ lib.optionals enableCuda [ "-DGMX_GPU=CUDA" (lib.cmakeFeature "CMAKE_CUDA_ARCHITECTURES" cmakeCudaArchitecturesString) Loading Loading @@ -145,6 +169,9 @@ in stdenv.mkDerivation rec { See: https://www.gromacs.org/about.html for details. ''; platforms = platforms.unix; maintainers = with maintainers; [ sheepforce markuskowa ]; maintainers = with maintainers; [ sheepforce markuskowa ]; }; } pkgs/applications/science/molecular-dynamics/gromacs/pkgconfig.patch→pkgs/applications/science/molecular-dynamics/gromacs/pkgconfig-2024.patch +0 −0 File moved. View file pkgs/applications/science/molecular-dynamics/gromacs/pkgconfig-2025.patch 0 → 100644 +36 −0 Original line number Diff line number Diff line diff --git a/src/external/muparser/muparser.pc.in b/src/external/muparser/muparser.pc.in index 646787cb53..d26e84de8f 100644 --- a/src/external/muparser/muparser.pc.in +++ b/src/external/muparser/muparser.pc.in @@ -1,11 +1,9 @@ -prefix=@CMAKE_INSTALL_PREFIX@ -exec_prefix=${prefix} -libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@ -includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@ - -Name: @PACKAGE_NAME@ -Description: Mathematical expressions parser library -Version: @MUPARSER_VERSION@ -Requires: -Libs: -L${libdir} -lmuparser -Cflags: -I${includedir} @PKG_CONFIG_FLAGS@ +libdir=@CMAKE_INSTALL_FULL_LIBDIR@ +includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ + +Name: @PACKAGE_NAME@ +Description: Mathematical expressions parser library +Version: @MUPARSER_VERSION@ +Requires: +Libs: -L${libdir} -lmuparser +Cflags: -I${includedir} @PKG_CONFIG_FLAGS@ diff --git a/src/gromacs/libgromacs.pc.cmakein b/src/gromacs/libgromacs.pc.cmakein index af9b5a6dc0..5f58d549bf 100644 --- a/src/gromacs/libgromacs.pc.cmakein +++ b/src/gromacs/libgromacs.pc.cmakein @@ -1,5 +1,4 @@ -prefix=@CMAKE_INSTALL_PREFIX@ -libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@ +libdir=@CMAKE_INSTALL_FULL_LIBDIR Name: libgromacs@GMX_LIBS_SUFFIX@ Description: Gromacs library Loading
pkgs/applications/science/molecular-dynamics/gromacs/default.nix +99 −72 Original line number Diff line number Diff line { lib , stdenv , fetchurl , cmake , hwloc , fftw , perl , blas , lapack , llvmPackages , mpi , cudaPackages , plumed , singlePrec ? true , config , enableCuda ? config.cudaSupport , enableMpi ? false , enablePlumed ? false , cpuAcceleration ? null { lib, stdenv, fetchurl, cmake, hwloc, fftw, perl, blas, lapack, llvmPackages, mpi, cudaPackages, plumed, singlePrec ? true, config, enableCuda ? config.cudaSupport, enableMpi ? false, enablePlumed ? false, cpuAcceleration ? null, }: # CUDA is only implemented for single precission assert enableCuda -> singlePrec; Loading @@ -30,11 +30,19 @@ let # The possible values are defined in CMakeLists.txt: # AUTO None SSE2 SSE4.1 AVX_128_FMA AVX_256 AVX2_256 # AVX2_128 AVX_512 AVX_512_KNL MIC ARM_NEON ARM_NEON_ASIMD SIMD = x: if (cpuAcceleration != null) then x else if stdenv.hostPlatform.system == "i686-linux" then "SSE2" else if stdenv.hostPlatform.system == "x86_64-linux" then "SSE4.1" else if stdenv.hostPlatform.system == "x86_64-darwin" then "SSE4.1" else if stdenv.hostPlatform.system == "aarch64-linux" then "ARM_NEON_ASIMD" else SIMD = x: if (cpuAcceleration != null) then x else if stdenv.hostPlatform.system == "i686-linux" then "SSE2" else if stdenv.hostPlatform.system == "x86_64-linux" then "SSE4.1" else if stdenv.hostPlatform.system == "x86_64-darwin" then "SSE4.1" else if stdenv.hostPlatform.system == "aarch64-linux" then "ARM_NEON_ASIMD" else "None"; source = Loading @@ -45,11 +53,12 @@ let } else { version = "2024.5"; hash = "sha256-/s8GsYbN25Qs+0LujaXz6yuZk+aswKLxjRSsCwFEJPM="; version = "2025.0"; hash = "sha256-onrTWmRilbvsEpq+aE2dA9Hi4L12sNYl6QVXRqrvroI="; }; in stdenv.mkDerivation rec { in stdenv.mkDerivation rec { pname = "gromacs"; version = source.version; Loading @@ -58,58 +67,73 @@ in stdenv.mkDerivation rec { inherit (source) hash; }; patches = [ ./pkgconfig.patch ]; patches = [ (if enablePlumed then ./pkgconfig-2024.patch else ./pkgconfig-2025.patch) ]; postPatch = lib.optionalString enablePlumed '' plumed patch -p -e gromacs-${source.version} ''; outputs = [ "out" "dev" "man" ]; outputs = [ "out" "dev" "man" ]; nativeBuildInputs = [ cmake ] ++ lib.optional enablePlumed plumed ++ lib.optionals enableCuda [ cudaPackages.cuda_nvcc ]; buildInputs = [ buildInputs = [ fftw perl hwloc blas lapack ] ++ lib.optional enableMpi mpi ] ++ lib.optional enableMpi mpi ++ lib.optionals enableCuda [ cudaPackages.cuda_cccl cudaPackages.cuda_cudart cudaPackages.libcufft cudaPackages.cuda_profiler_api ] ++ lib.optional stdenv.hostPlatform.isDarwin llvmPackages.openmp; ] ++ lib.optional stdenv.hostPlatform.isDarwin llvmPackages.openmp; propagatedBuildInputs = lib.optional enableMpi mpi; propagatedUserEnvPkgs = lib.optional enableMpi mpi; cmakeFlags = [ cmakeFlags = [ (lib.cmakeBool "GMX_HWLOC" true) "-DGMX_SIMD:STRING=${SIMD cpuAcceleration}" "-DGMX_OPENMP:BOOL=TRUE" "-DBUILD_SHARED_LIBS=ON" ] ++ ( if singlePrec then [ ] ++ ( if singlePrec then [ "-DGMX_DOUBLE=OFF" ] else [ ] else [ "-DGMX_DOUBLE=ON" "-DGMX_DEFAULT_SUFFIX=OFF" ] ) ++ ( if enableMpi then [ ) ++ ( if enableMpi then [ "-DGMX_MPI:BOOL=TRUE" "-DGMX_THREAD_MPI:BOOL=FALSE" ] else [ else [ "-DGMX_MPI:BOOL=FALSE" ] ) ++ lib.optionals enableCuda [ ) ++ lib.optionals enableCuda [ "-DGMX_GPU=CUDA" (lib.cmakeFeature "CMAKE_CUDA_ARCHITECTURES" cmakeCudaArchitecturesString) Loading Loading @@ -145,6 +169,9 @@ in stdenv.mkDerivation rec { See: https://www.gromacs.org/about.html for details. ''; platforms = platforms.unix; maintainers = with maintainers; [ sheepforce markuskowa ]; maintainers = with maintainers; [ sheepforce markuskowa ]; }; }
pkgs/applications/science/molecular-dynamics/gromacs/pkgconfig.patch→pkgs/applications/science/molecular-dynamics/gromacs/pkgconfig-2024.patch +0 −0 File moved. View file
pkgs/applications/science/molecular-dynamics/gromacs/pkgconfig-2025.patch 0 → 100644 +36 −0 Original line number Diff line number Diff line diff --git a/src/external/muparser/muparser.pc.in b/src/external/muparser/muparser.pc.in index 646787cb53..d26e84de8f 100644 --- a/src/external/muparser/muparser.pc.in +++ b/src/external/muparser/muparser.pc.in @@ -1,11 +1,9 @@ -prefix=@CMAKE_INSTALL_PREFIX@ -exec_prefix=${prefix} -libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@ -includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@ - -Name: @PACKAGE_NAME@ -Description: Mathematical expressions parser library -Version: @MUPARSER_VERSION@ -Requires: -Libs: -L${libdir} -lmuparser -Cflags: -I${includedir} @PKG_CONFIG_FLAGS@ +libdir=@CMAKE_INSTALL_FULL_LIBDIR@ +includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ + +Name: @PACKAGE_NAME@ +Description: Mathematical expressions parser library +Version: @MUPARSER_VERSION@ +Requires: +Libs: -L${libdir} -lmuparser +Cflags: -I${includedir} @PKG_CONFIG_FLAGS@ diff --git a/src/gromacs/libgromacs.pc.cmakein b/src/gromacs/libgromacs.pc.cmakein index af9b5a6dc0..5f58d549bf 100644 --- a/src/gromacs/libgromacs.pc.cmakein +++ b/src/gromacs/libgromacs.pc.cmakein @@ -1,5 +1,4 @@ -prefix=@CMAKE_INSTALL_PREFIX@ -libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@ +libdir=@CMAKE_INSTALL_FULL_LIBDIR Name: libgromacs@GMX_LIBS_SUFFIX@ Description: Gromacs library