nextpnr: disable broken GUI build for now

This didn't work remotely (on a server with Nvidia drivers) _or_ on a
local Intel machine with integrated graphics. I presumably messed
something up (a missing dependency), but I'm not sure where. We can fix
it later.

In the mean time, just disable this by hiding it behind a minimal flag.
As a bonus this reduces the closure size by about half, although it's
still surprisingly large (~300MB or so). Part of that is probably
Python, though.

When the GUI is reintroduced in a working manner, we can expose two
nextpnr attributes for the minimal non-GUI build, and the GUI build.
(Note that I have no plans of making Python optional, since it's
extremely valuable in general and much more lightweight than qtbase.)

Signed-off-by: Austin Seipp <aseipp@pobox.com>
This commit is contained in:
Austin Seipp 2019-01-08 16:00:58 -06:00
parent c10650760d
commit 412e02c784

View File

@ -1,5 +1,14 @@
{ stdenv, fetchFromGitHub, cmake
, icestorm, python3, boost, qtbase
, boost, python3
# TODO: also add libtrellis, later on
, icestorm
# TODO(thoughtpolice) Currently the GUI build seems broken at runtime on my
# laptop (and over a remote X server on my server...), so mark it broken for
# now, with intent to fix later.
, enableGui ? false
, qtbase
}:
let
@ -17,13 +26,15 @@ stdenv.mkDerivation rec {
};
nativeBuildInputs = [ cmake ];
buildInputs = [ boostPython python3 qtbase ];
buildInputs
= [ boostPython python3 ]
++ (stdenv.lib.optional enableGui qtbase);
enableParallelBuilding = true;
cmakeFlags =
[ "-DARCH=generic;ice40"
"-DICEBOX_ROOT=${icestorm}/share/icebox"
];
] ++ (stdenv.lib.optional (!enableGui) "-DBUILD_GUI=OFF");
meta = with stdenv.lib; {
description = "Place and route tool for FPGAs";
@ -31,5 +42,7 @@ stdenv.mkDerivation rec {
license = licenses.isc;
platforms = platforms.linux;
maintainers = with maintainers; [ thoughtpolice ];
broken = enableGui;
};
}