diff --git a/pkgs/by-name/ge/gemmi/package.nix b/pkgs/by-name/ge/gemmi/package.nix new file mode 100644 index 0000000000000..f574f30a9c85b --- /dev/null +++ b/pkgs/by-name/ge/gemmi/package.nix @@ -0,0 +1,64 @@ +{ + lib, + stdenv, + fetchFromGitHub, + cmake, + zlib, + enablePython ? true, + python3Packages, + testers, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "gemmi"; + version = "0.6.6"; + + src = fetchFromGitHub { + owner = "project-gemmi"; + repo = "gemmi"; + rev = "refs/tags/v${finalAttrs.version}"; + hash = "sha256-S31oCp6kLSYgmRaW7Q9/dMhjJ5Y0sK3WPpg2/ZMPyMg="; + }; + + nativeBuildInputs = + [ cmake ] + ++ lib.optionals enablePython ( + with python3Packages; + [ + pybind11 + python + pythonImportsCheckHook + ] + ); + + buildInputs = [ zlib ]; + + cmakeFlags = [ + (lib.cmakeBool "USE_PYTHON" enablePython) + (lib.cmakeFeature "PYTHON_INSTALL_DIR" "${python3Packages.python.sitePackages}") + ]; + + doCheck = true; + + pythonImportsCheck = [ "gemmi" ]; + + doInstallCheck = enablePython; + + nativeInstallCheckInputs = [ python3Packages.pytestCheckHook ]; + + pytestFlagsArray = [ "../tests" ]; + + passthru.tests = { + version = testers.testVersion { package = finalAttrs.finalPackage; }; + }; + + meta = { + description = "Macromolecular crystallography library and utilities"; + homepage = "https://github.com/project-gemmi/gemmi"; + changelog = "https://github.com/project-gemmi/gemmi/releases/tag/v${finalAttrs.version}"; + license = lib.licenses.mpl20; + maintainers = with lib.maintainers; [ natsukium ]; + mainProgram = "gemmi"; + platforms = lib.platforms.unix; + }; +}) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 19811d321275d..a4c7ebf553fb2 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -4765,6 +4765,11 @@ self: super: with self; { gemfileparser2 = callPackage ../development/python-modules/gemfileparser2 { }; + gemmi = toPythonModule (pkgs.gemmi.override { + enablePython = true; + python3Packages = self; + }); + genanki = callPackage ../development/python-modules/genanki { }; generic = callPackage ../development/python-modules/generic { };