diff --git a/pkgs/development/libraries/science/chemistry/cppe/default.nix b/pkgs/development/libraries/science/chemistry/cppe/default.nix new file mode 100644 index 0000000000000..51083e5a2ae91 --- /dev/null +++ b/pkgs/development/libraries/science/chemistry/cppe/default.nix @@ -0,0 +1,25 @@ +{ stdenv, lib, fetchFromGitHub, cmake }: + +stdenv.mkDerivation rec { + pname = "cppe"; + version = "0.3.1"; + + src = fetchFromGitHub { + owner = "maxscheurer"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-guM7+ZWDJLcAUJtPkKLvC4LYSA2eBvER7cgwPZ7FxHw="; + }; + + nativeBuildInputs = [ cmake ]; + + cmakeFlags = [ "-DCMAKE_INSTALL_LIBDIR=lib" ]; + + meta = with lib; { + description = "C++ and Python library for Polarizable Embedding"; + homepage = "https://github.com/maxscheurer/cppe"; + license = licenses.lgpl3Only; + platforms = platforms.unix; + maintainers = [ maintainers.sheepforce ]; + }; +} diff --git a/pkgs/development/python-modules/cppe/default.nix b/pkgs/development/python-modules/cppe/default.nix new file mode 100644 index 0000000000000..df00bd8dd120d --- /dev/null +++ b/pkgs/development/python-modules/cppe/default.nix @@ -0,0 +1,47 @@ +{ buildPythonPackage +, lib +, cmake +, cppe +, eigen +, python +, pybind11 +, numpy +, h5py +, numba +, scipy +, pandas +, polarizationsolver +, pytest +}: + +buildPythonPackage rec { + inherit (cppe) pname version src meta; + + # The python interface requires eigen3, but builds from a checkout in tree. + # Using the nixpkgs version instead. + postPatch = '' + substituteInPlace setup.py \ + --replace "external/eigen3" "${eigen}/include/eigen3" + ''; + + nativeBuildInputs = [ + cmake + eigen + ]; + + dontUseCmakeConfigure = true; + + buildInputs = [ pybind11 ]; + + checkInputs = [ + pytest + h5py + numba + numpy + pandas + polarizationsolver + scipy + ]; + + pythonImportsCheck = [ "cppe" ]; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index eaf92ebfeffa3..ea1b873565329 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -15923,6 +15923,8 @@ with pkgs; ctpl = callPackage ../development/libraries/ctpl { }; + cppe = callPackage ../development/libraries/science/chemistry/cppe { }; + cppdb = callPackage ../development/libraries/cppdb { }; cpp-utilities = callPackage ../development/libraries/cpp-utilities { }; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index b68fe9cec78d5..d977580195e3b 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -1765,6 +1765,10 @@ in { cozy = callPackage ../development/python-modules/cozy { }; + cppe = callPackage ../development/python-modules/cppe { + cppe = pkgs.cppe; + }; + cppheaderparser = callPackage ../development/python-modules/cppheaderparser { }; cppy = callPackage ../development/python-modules/cppy { };