1{ 2 lib, 3 buildPythonPackage, 4 pythonOlder, 5 fetchFromGitHub, 6 pdm-backend, 7 pyvcd, 8 jinja2, 9 importlib-resources, 10 importlib-metadata, 11 git, 12 13 # for tests 14 pytestCheckHook, 15 symbiyosys, 16 yices, 17 yosys, 18}: 19 20buildPythonPackage rec { 21 pname = "amaranth"; 22 format = "pyproject"; 23 version = "0.4.5"; 24 disabled = pythonOlder "3.8"; 25 26 src = fetchFromGitHub { 27 owner = "amaranth-lang"; 28 repo = "amaranth"; 29 rev = "refs/tags/v${version}"; 30 hash = "sha256-g9dn6gUTdFHz9GMWHERsRLWHoI3E7vjuQDK0usbZO7g="; 31 }; 32 33 nativeBuildInputs = [ 34 git 35 pdm-backend 36 ]; 37 38 dependencies = 39 [ 40 jinja2 41 pyvcd 42 ] 43 ++ lib.optional (pythonOlder "3.9") importlib-resources 44 ++ lib.optional (pythonOlder "3.8") importlib-metadata; 45 46 nativeCheckInputs = [ 47 pytestCheckHook 48 symbiyosys 49 yices 50 yosys 51 ]; 52 53 pythonImportsCheck = [ "amaranth" ]; 54 55 meta = with lib; { 56 description = "A modern hardware definition language and toolchain based on Python"; 57 mainProgram = "amaranth-rpc"; 58 homepage = "https://amaranth-lang.org/docs/amaranth"; 59 license = licenses.bsd2; 60 maintainers = with maintainers; [ 61 emily 62 thoughtpolice 63 pbsds 64 ]; 65 }; 66}