1{ lib
2, buildPythonPackage
3, pythonOlder
4, fetchFromGitHub
5, setuptools
6, setuptools_scm
7, pyvcd
8, jinja2
9
10# for tests
11, yosys
12, symbiyosys
13, yices
14}:
15
16buildPythonPackage rec {
17 pname = "nmigen";
18 version = "unstable-2019-02-08";
19 # python setup.py --version
20 realVersion = "0.2.dev49+g${lib.substring 0 7 src.rev}";
21
22 src = fetchFromGitHub {
23 owner = "nmigen";
24 repo = "nmigen";
25 rev = "66f4510c4465be5d0763d7835770553434e4ee91";
26 sha256 = "19y39c4ywckm4yzrpjzcdl9pqy9d1sf1zsb4zpzajpmnfqccc3b0";
27 };
28
29 disabled = pythonOlder "3.6";
30
31 nativeBuildInputs = [ setuptools_scm ];
32
33 propagatedBuildInputs = [ setuptools pyvcd jinja2 ];
34
35 checkInputs = [ yosys symbiyosys yices ];
36
37 preBuild = ''
38 export SETUPTOOLS_SCM_PRETEND_VERSION="${realVersion}"
39 '';
40
41 meta = with lib; {
42 description = "A refreshed Python toolbox for building complex digital hardware";
43 homepage = https://github.com/nmigen/nmigen;
44 license = licenses.bsd2;
45 maintainers = with maintainers; [ emily ];
46 };
47}