vscode-extensions.github.copilot{*}: bump (#364729)
[NixPkgs.git] / pkgs / by-name / gl / glasgow / package.nix
bloba2e72db0f57a2488c0fc98213ff5373bfabba758
1 { lib
2 , python3
3 , fetchFromGitHub
4 , sdcc
5 , yosys
6 , icestorm
7 , nextpnr
8 , unstableGitUpdater
9 }:
11 python3.pkgs.buildPythonApplication rec {
12   pname = "glasgow";
13   version = "0-unstable-2024-10-24";
14   # from `pdm show`
15   realVersion = let
16       tag = builtins.elemAt (lib.splitString "-" version) 0;
17       rev = lib.substring 0 7 src.rev;
18     in "${tag}.1.dev2085+g${rev}";
20   pyproject = true;
22   src = fetchFromGitHub {
23     owner = "GlasgowEmbedded";
24     repo = "glasgow";
25     rev = "3d7a14165f9f5179bcd2a2a119ab4bbf9d81326c";
26     sha256 = "sha256-fhT5xRq4VE8lOTJI470E2PPTSPSUHh90S17MdilFWAA=";
27   };
29   nativeBuildInputs = [
30     python3.pkgs.pdm-backend
31     sdcc
32   ];
34   propagatedBuildInputs = with python3.pkgs; [
35     typing-extensions
36     amaranth
37     packaging
38     platformdirs
39     fx2
40     libusb1
41     pyvcd
42     aiohttp
43   ];
45   nativeCheckInputs = [
46     python3.pkgs.unittestCheckHook
47     yosys
48     icestorm
49     nextpnr
50   ];
52   enableParallelBuilding = true;
54   __darwinAllowLocalNetworking = true;
56   preBuild = ''
57     make -C firmware LIBFX2=${python3.pkgs.fx2}/share/libfx2
58     cp firmware/glasgow.ihex software/glasgow
59     cd software
60     export PDM_BUILD_SCM_VERSION="${realVersion}"
61   '';
63   # installCheck tries to build_ext again
64   doInstallCheck = false;
66   postInstall = ''
67     mkdir -p $out/etc/udev/rules.d
68     cp $src/config/*.rules $out/etc/udev/rules.d
69   '';
71   preCheck = ''
72     export PYTHONWARNINGS="ignore::DeprecationWarning"
73     # tests attempt to cache bitstreams
74     # for linux:
75     export XDG_CACHE_HOME=$TMPDIR
76     # for darwin:
77     export HOME=$TMPDIR
78   '';
80   makeWrapperArgs = [
81     "--set" "YOSYS" "${yosys}/bin/yosys"
82     "--set" "ICEPACK" "${icestorm}/bin/icepack"
83     "--set" "NEXTPNR_ICE40" "${nextpnr}/bin/nextpnr-ice40"
84   ];
86   passthru.updateScript = unstableGitUpdater {
87     hardcodeZeroVersion = true;
88   };
90   meta = with lib; {
91     description = "Software for Glasgow, a digital interface multitool";
92     homepage = "https://github.com/GlasgowEmbedded/Glasgow";
93     license = licenses.bsd0;
94     maintainers = with maintainers; [ thoughtpolice ];
95     mainProgram = "glasgow";
96   };