1{ lib
2, buildPythonPackage
3, pythonOlder
4, fetchFromGitHub
5, setuptools
6, setuptools_scm
7, pyvcd
8, jinja2
9
10# for tests
11, pytestCheckHook
12, yosys
13, symbiyosys
14, yices
15}:
16
17buildPythonPackage rec {
18 pname = "nmigen";
19 version = "unstable-2020-04-02";
20 # python setup.py --version
21 realVersion = "0.2.dev49+g${lib.substring 0 7 src.rev}";
22 disabled = pythonOlder "3.6";
23
24 src = fetchFromGitHub {
25 owner = "nmigen";
26 repo = "nmigen";
27 rev = "c79caead33fff14e2dec42b7e21d571a02526876";
28 sha256 = "sha256-3+mxHyg0a92/BfyePtKT5Hsk+ra+fQzTjCJ2Ech44/s=";
29 };
30
31 nativeBuildInputs = [ setuptools_scm ];
32
33 propagatedBuildInputs = [ setuptools pyvcd jinja2 ];
34
35 checkInputs = [ pytestCheckHook yosys symbiyosys yices ];
36
37 preBuild = ''
38 export SETUPTOOLS_SCM_PRETEND_VERSION="${realVersion}"
39 '';
40
41 # Fail b/c can't find sby (symbiyosys) executable, which should be on path.
42 disabledTests = [
43 "test_distance"
44 "test_reversible"
45 "FIFOFormalCase"
46 ];
47
48 meta = with lib; {
49 description = "A refreshed Python toolbox for building complex digital hardware";
50 homepage = "https://nmigen.info/nmigen";
51 license = licenses.bsd2;
52 maintainers = with maintainers; [ emily ];
53 };
54}