From 8baef2b0a492a23f47bd6f2dacec0109ea04395c Mon Sep 17 00:00:00 2001 From: Phillip Seeber Date: Mon, 28 Jul 2025 16:12:02 +0200 Subject: [PATCH] dftd4: add option to build with cmake in addition to meson --- pkgs/by-name/df/dftd4/cmake.patch | 13 +++++++++++++ pkgs/by-name/df/dftd4/package.nix | 28 +++++++++++++++++++++++++--- 2 files changed, 38 insertions(+), 3 deletions(-) create mode 100644 pkgs/by-name/df/dftd4/cmake.patch diff --git a/pkgs/by-name/df/dftd4/cmake.patch b/pkgs/by-name/df/dftd4/cmake.patch new file mode 100644 index 000000000000..00c7e907733b --- /dev/null +++ b/pkgs/by-name/df/dftd4/cmake.patch @@ -0,0 +1,13 @@ +diff --git a/config/template.pc b/config/template.pc +index 3d6efbb..e338a42 100644 +--- a/config/template.pc ++++ b/config/template.pc +@@ -1,6 +1,6 @@ + prefix=@CMAKE_INSTALL_PREFIX@ +-libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@ +-includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@ ++libdir=@CMAKE_INSTALL_FULL_LIBDIR@ ++includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ + + Name: @PROJECT_NAME@ + Description: @PROJECT_DESCRIPTION@ diff --git a/pkgs/by-name/df/dftd4/package.nix b/pkgs/by-name/df/dftd4/package.nix index e3e54eba9c6b..e77583857422 100644 --- a/pkgs/by-name/df/dftd4/package.nix +++ b/pkgs/by-name/df/dftd4/package.nix @@ -2,7 +2,10 @@ stdenv, lib, fetchFromGitHub, + fetchpatch, gfortran, + buildType ? "meson", + cmake, meson, ninja, pkg-config, @@ -15,6 +18,12 @@ }: assert !blas.isILP64 && !lapack.isILP64; +assert ( + builtins.elem buildType [ + "meson" + "cmake" + ] +); stdenv.mkDerivation rec { pname = "dftd4"; @@ -30,24 +39,37 @@ stdenv.mkDerivation rec { patches = [ # Make sure fortran headers are installed directly in /include ./fortran-module-dir.patch + + # Fix wrong generation of package config include paths + ./cmake.patch ]; nativeBuildInputs = [ gfortran - meson - ninja pkg-config python3 - ]; + ] + ++ lib.optionals (buildType == "meson") [ + meson + ninja + ] + ++ lib.optional (buildType == "cmake") cmake; buildInputs = [ blas lapack + ]; + + propagatedBuildInputs = [ mctc-lib mstore multicharge ]; + cmakeFlags = [ + (lib.strings.cmakeBool "BUILD_SHARED_LIBS" (!stdenv.hostPlatform.isStatic)) + ]; + outputs = [ "out" "dev"