diff --git a/pkgs/development/tools/sca2d/default.nix b/pkgs/development/tools/sca2d/default.nix new file mode 100644 index 00000000000..eb28e7acb02 --- /dev/null +++ b/pkgs/development/tools/sca2d/default.nix @@ -0,0 +1,48 @@ +{ lib +, python3 +, fetchFromGitLab +, fetchFromGitHub +}: +let + python = python3.override { + packageOverrides = self: super: { + lark010 = super.lark.overridePythonAttrs (old: rec { + version = "0.10.0"; + + src = fetchFromGitHub { + owner = "lark-parser"; + repo = "lark"; + rev = "refs/tags/${version}"; + sha256 = "sha256-ctdPPKPSD4weidyhyj7RCV89baIhmuxucF3/Ojx1Efo="; + }; + + disabledTestPaths = [ "tests/test_nearley/test_nearley.py" ]; + }); + }; + self = python; + }; +in +python.pkgs.buildPythonApplication rec { + pname = "sca2d"; + version = "0.2.0"; + format = "setuptools"; + + src = fetchFromGitLab { + owner = "bath_open_instrumentation_group"; + repo = "sca2d"; + rev = "v${version}"; + hash = "sha256-P+7g57AH8H7q0hBE2I9w8A+bN5M6MPbc9gA0b889aoQ="; + }; + + propagatedBuildInputs = with python.pkgs; [ lark010 colorama ]; + + pythonImportsCheck = [ "sca2d" ]; + + meta = with lib; { + description = "An experimental static code analyser for OpenSCAD"; + homepage = "https://gitlab.com/bath_open_instrumentation_group/sca2d"; + changelog = "https://gitlab.com/bath_open_instrumentation_group/sca2d/-/blob/${src.rev}/CHANGELOG.md"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ traxys ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 2ac264a6134..34235dea7ae 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -18811,6 +18811,8 @@ with pkgs; semantik = libsForQt5.callPackage ../applications/office/semantik { }; + sca2d = callPackage ../development/tools/sca2d { }; + sconsPackages = dontRecurseIntoAttrs (callPackage ../development/tools/build-managers/scons { }); scons = sconsPackages.scons_latest;