at 22.05-pre 1.4 kB view raw
1{ lib 2, buildPythonPackage 3, pythonOlder 4, fetchFromGitHub 5, setuptools 6, setuptools-scm 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 = "nmigen"; 22 version = "unstable-2021-02-09"; 23 # python setup.py --version 24 realVersion = "0.3.dev243+g${lib.substring 0 7 src.rev}"; 25 disabled = pythonOlder "3.6"; 26 27 src = fetchFromGitHub { 28 owner = "nmigen"; 29 repo = "nmigen"; 30 rev = "f7c2b9419f9de450be76a0e9cf681931295df65f"; 31 sha256 = "0cjs9wgmxa76xqmjhsw4fsb2mhgvd85jgs2mrjxqp6fwp8rlgnl1"; 32 }; 33 34 SETUPTOOLS_SCM_PRETEND_VERSION="${realVersion}"; 35 36 nativeBuildInputs = [ 37 git 38 setuptools-scm 39 ]; 40 41 propagatedBuildInputs = [ 42 jinja2 43 pyvcd 44 setuptools 45 ] ++ 46 lib.optional (pythonOlder "3.9") importlib-resources ++ 47 lib.optional (pythonOlder "3.8") importlib-metadata; 48 49 checkInputs = [ 50 pytestCheckHook 51 symbiyosys 52 yices 53 yosys 54 ]; 55 56 postPatch = '' 57 substituteInPlace setup.py \ 58 --replace "Jinja2~=2.11" "Jinja2>=2.11" \ 59 --replace "pyvcd~=0.2.2" "pyvcd" 60 ''; 61 62 pythonImportsCheck = [ "nmigen" ]; 63 64 meta = with lib; { 65 description = "A refreshed Python toolbox for building complex digital hardware"; 66 homepage = "https://nmigen.info/nmigen"; 67 license = licenses.bsd2; 68 maintainers = with maintainers; [ emily ]; 69 }; 70}