Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / development / python-modules / amaranth / default.nix
blobad2cacb2ced8df0b5c2af7aab8172e6dbffc6493
1 { lib
2 , buildPythonPackage
3 , pythonOlder
4 , fetchFromGitHub
5 , pdm-backend
6 , pyvcd
7 , jinja2
8 , importlib-resources
9 , importlib-metadata
10 , git
12 # for tests
13 , pytestCheckHook
14 , symbiyosys
15 , yices
16 , yosys
19 buildPythonPackage rec {
20   pname = "amaranth";
21   format = "pyproject";
22   # python -m setuptools_scm
23   version = "0.4.dev197+g${lib.substring 0 7 src.rev}";
24   disabled = pythonOlder "3.8";
26   src = fetchFromGitHub {
27     owner = "amaranth-lang";
28     repo = "amaranth";
29     rev = "11d5bb19eb34463918c07dc5e2e0eac7dbf822b0";
30     sha256 = "sha256-Ji5oYfF2hKSunAdAQTniv8Ajj6NE/bvW5cvadrGKa+U=";
31   };
33   nativeBuildInputs = [
34     git
35     pdm-backend
36   ];
38   propagatedBuildInputs = [
39     jinja2
40     pyvcd
41   ] ++
42     lib.optional (pythonOlder "3.9") importlib-resources ++
43     lib.optional (pythonOlder "3.8") importlib-metadata;
45   nativeCheckInputs = [
46     pytestCheckHook
47     symbiyosys
48     yices
49     yosys
50   ];
52   pythonImportsCheck = [ "amaranth" ];
54   meta = with lib; {
55     description = "A modern hardware definition language and toolchain based on Python";
56     homepage = "https://amaranth-lang.org/docs/amaranth";
57     license = licenses.bsd2;
58     maintainers = with maintainers; [ emily thoughtpolice ];
59   };