Files
nixpkgs/pkgs/by-name/lc/lctime/package.nix
2025-10-14 11:28:37 +02:00

101 lines
2.0 KiB
Nix

{
lib,
stdenv,
python3Packages,
fetchFromGitea,
runCommand,
lctime,
ngspice,
writableTmpDirAsHomeHook,
}:
python3Packages.buildPythonApplication rec {
pname = "lctime";
version = "0.0.26";
pyproject = true;
src = fetchFromGitea {
domain = "codeberg.org";
owner = "librecell";
repo = "lctime";
tag = version;
hash = "sha256-oNmeV8r1dtO2y27jAJnlx4mKGjhzL07ad2yBdOLwgF0=";
};
build-system = with python3Packages; [
setuptools
];
dependencies = with python3Packages; [
joblib
klayout
liberty-parser
matplotlib
networkx
numpy
pyspice
scipy
sympy
];
nativeCheckInputs = with python3Packages; [
pytestCheckHook
ngspice
];
enabledTestPaths = [
"src/lctime/*/*.py"
];
disabledTestPaths = [
# hangs indefinitely
"src/lctime/characterization/test_ngspice_subprocess.py::test_ngspice_interactive_simple"
"src/lctime/characterization/test_ngspice_subprocess.py::test_ngspice_subprocess_class"
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
# causes python to abort
"src/lctime/characterization/test_ngspice_subprocess.py::test_simple_simulation"
# broken pipe
"src/lctime/characterization/test_ngspice_subprocess.py::test_interactive_subprocess"
];
pythonImportsCheck = [
"lctime"
];
passthru = {
tests =
runCommand "lctime-tests"
{
nativeBuildInputs = [
lctime
ngspice
writableTmpDirAsHomeHook
];
}
''
cd "$HOME"
cp -R "${src}/tests/"* .
patchShebangs *.sh
mkdir -p $out
./run_tests.sh &> $out/result.log
'';
};
meta = {
description = "Characterization tool for CMOS digital standard-cells";
homepage = "https://codeberg.org/librecell/lctime";
license = with lib.licenses; [
agpl3Plus
asl20
cc-by-sa-40
cc0
];
maintainers = with lib.maintainers; [ eljamm ];
teams = with lib.teams; [ ngi ];
mainProgram = "lctime";
};
}