From bd3500c8228ad2bf928337236e3ffd256eef00a7 Mon Sep 17 00:00:00 2001 From: eljamm Date: Fri, 5 Dec 2025 21:35:47 +0100 Subject: [PATCH] {libgdstk,python3Packages.gdstk}: init at 0.9.61 --- pkgs/by-name/li/libgdstk/package.nix | 51 ++++++++++ .../python-modules/gdstk/default.nix | 93 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 3 files changed, 146 insertions(+) create mode 100644 pkgs/by-name/li/libgdstk/package.nix create mode 100644 pkgs/development/python-modules/gdstk/default.nix diff --git a/pkgs/by-name/li/libgdstk/package.nix b/pkgs/by-name/li/libgdstk/package.nix new file mode 100644 index 000000000000..7ec5c8d0920a --- /dev/null +++ b/pkgs/by-name/li/libgdstk/package.nix @@ -0,0 +1,51 @@ +{ + lib, + stdenv, + fetchFromGitHub, + nix-update-script, + + # build-time deps + cmake, + ninja, + + # run-time deps + zlib, + qhull, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "libgdstk"; + version = "0.9.61"; + pyproject = true; + + src = fetchFromGitHub { + owner = "heitzmann"; + repo = "gdstk"; + tag = "v${finalAttrs.version}"; + hash = "sha256-soU+6EbyOkHGvVq230twiRzywOskhkkXFr5akBpvgBw="; + }; + + nativeBuildInputs = [ + cmake + ninja + ]; + + buildInputs = [ + zlib + qhull + ]; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "C++/Python library for creation and manipulation of GDSII and OASIS files"; + homepage = "https://github.com/heitzmann/gdstk"; + changelog = "https://github.com/heitzmann/gdstk/blob/${finalAttrs.src.rev}/CHANGELOG.md"; + license = lib.licenses.boost; + maintainers = with lib.maintainers; [ + eljamm + gonsolo + ]; + teams = with lib.teams; [ ngi ]; + }; +}) diff --git a/pkgs/development/python-modules/gdstk/default.nix b/pkgs/development/python-modules/gdstk/default.nix new file mode 100644 index 000000000000..47390eb908c4 --- /dev/null +++ b/pkgs/development/python-modules/gdstk/default.nix @@ -0,0 +1,93 @@ +{ + lib, + buildPythonPackage, + libgdstk, + + # build-system + build, + scikit-build-core, + + # deps + numpy, + typing-extensions, + + # deps (optional) + matplotlib, + sphinx, + sphinx-inline-tabs, + sphinx-rtd-theme, + + # build-time + cmake, + ninja, + + # run-time + zlib, + qhull, + + # tests + pytestCheckHook, +}: + +buildPythonPackage { + pname = "gdstk"; + inherit (libgdstk) src version; + + pyproject = true; + strictDeps = true; + + # scikit is supposed to handle the module build + dontUseCmakeConfigure = true; + + build-system = [ + build + cmake + ninja + numpy + scikit-build-core + ]; + + dependencies = [ + numpy + typing-extensions + ]; + + optional-dependencies = { + docs = [ + matplotlib + sphinx + sphinx-inline-tabs + sphinx-rtd-theme + ]; + }; + + buildInputs = [ + zlib + qhull + ]; + + nativeCheckInputs = [ + pytestCheckHook + ]; + + # remove the `gdstk` source directory, else pytest will attempt to import it + # instead of the actual module + preCheck = '' + rm -rf gdstk + ''; + + pythonImportsCheck = [ + "gdstk" + ]; + + meta = { + inherit (libgdstk.meta) + description + homepage + changelog + license + maintainers + teams + ; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 2261142b1fca..191a54185e11 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -5881,6 +5881,8 @@ self: super: with self; { gdsfactory = callPackage ../development/python-modules/gdsfactory { }; + gdstk = callPackage ../development/python-modules/gdstk { }; + ge25519 = callPackage ../development/python-modules/ge25519 { }; geant4 = toPythonModule (