blob: a2c8019e190d419349d7f9b04d5d9558c73dfaa6 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
{ lib
, python3
, fetchFromGitHub
, sdcc
, yosys
, icestorm
, nextpnr
}:
python3.pkgs.buildPythonApplication rec {
pname = "glasgow";
version = "unstable-2023-04-15";
# python -m setuptools_scm
realVersion = "0.1.dev2+g${lib.substring 0 7 src.rev}";
patches = [ ./0001-Relax-Amaranth-git-dependency.patch ];
src = fetchFromGitHub {
owner = "GlasgowEmbedded";
repo = "glasgow";
rev = "406e06fae5c85f6f773c9839747513874bc3ec77";
sha256 = "sha256-s4fWpKJj6n2+CIAsD2bjr5K8RhJz1H1sFnjiartNGf0=";
};
nativeBuildInputs = [
python3.pkgs.setuptools-scm
sdcc
];
propagatedBuildInputs = with python3.pkgs; [
aiohttp
amaranth
bitarray
crc
fx2
libusb1
pyvcd
setuptools
];
nativeCheckInputs = [ yosys icestorm nextpnr ];
enableParallelBuilding = true;
preBuild = ''
make -C firmware LIBFX2=${python3.pkgs.fx2}/share/libfx2
cp firmware/glasgow.ihex software/glasgow
cd software
export SETUPTOOLS_SCM_PRETEND_VERSION="${realVersion}"
'';
# installCheck tries to build_ext again
doInstallCheck = false;
checkPhase = ''
${python3.interpreter} -W ignore::DeprecationWarning test.py
'';
makeWrapperArgs = [
"--set" "YOSYS" "${yosys}/bin/yosys"
"--set" "ICEPACK" "${icestorm}/bin/icepack"
"--set" "NEXTPNR_ICE40" "${nextpnr}/bin/nextpnr-ice40"
];
meta = with lib; {
description = "Software for Glasgow, a digital interface multitool";
homepage = "https://github.com/GlasgowEmbedded/Glasgow";
license = licenses.bsd0;
maintainers = with maintainers; [ emily thoughtpolice ];
};
}
|