Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ lib 2, buildPythonPackage 3, pythonOlder 4, fetchFromGitHub 5, fetchpatch 6, pdm 7, python3 8, pyvcd 9, jinja2 10, importlib-resources 11, importlib-metadata 12, git 13 14# for tests 15, pytestCheckHook 16, symbiyosys 17, yices 18, yosys 19}: 20 21buildPythonPackage rec { 22 pname = "amaranth"; 23 format = "pyproject"; 24 # python -m setuptools_scm 25 version = "0.4.dev197+g${lib.substring 0 7 src.rev}"; 26 disabled = pythonOlder "3.8"; 27 28 src = fetchFromGitHub { 29 owner = "amaranth-lang"; 30 repo = "amaranth"; 31 rev = "11d5bb19eb34463918c07dc5e2e0eac7dbf822b0"; 32 sha256 = "sha256-Ji5oYfF2hKSunAdAQTniv8Ajj6NE/bvW5cvadrGKa+U="; 33 }; 34 35 nativeBuildInputs = [ 36 git 37 ]; 38 39 propagatedBuildInputs = [ 40 jinja2 41 pdm 42 pyvcd 43 python3.pkgs.pdm-backend 44 ] ++ 45 lib.optional (pythonOlder "3.9") importlib-resources ++ 46 lib.optional (pythonOlder "3.8") importlib-metadata; 47 48 nativeCheckInputs = [ 49 pytestCheckHook 50 symbiyosys 51 yices 52 yosys 53 ]; 54 55 pythonImportsCheck = [ "amaranth" ]; 56 57 meta = with lib; { 58 description = "A modern hardware definition language and toolchain based on Python"; 59 homepage = "https://amaranth-lang.org/docs/amaranth"; 60 license = licenses.bsd2; 61 maintainers = with maintainers; [ emily thoughtpolice ]; 62 }; 63}