nextpnr: enable ECP5 P&R with Project Trellis
This requires an absurd, disgustingly gross hack in order to share the build artifacts necessary for nextpnr to use trellis. Signed-off-by: Austin Seipp <aseipp@pobox.com>
This commit is contained in:
parent
d67cbe9e53
commit
beaf69cee2
@ -1,8 +1,6 @@
|
|||||||
{ stdenv, fetchFromGitHub, cmake
|
{ stdenv, fetchFromGitHub, cmake
|
||||||
, boost, python3
|
, boost, python3
|
||||||
|
, icestorm, trellis
|
||||||
# TODO: also add libtrellis, later on
|
|
||||||
, icestorm
|
|
||||||
|
|
||||||
# TODO(thoughtpolice) Currently the GUI build seems broken at runtime on my
|
# 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
|
# laptop (and over a remote X server on my server...), so mark it broken for
|
||||||
@ -13,6 +11,19 @@
|
|||||||
|
|
||||||
let
|
let
|
||||||
boostPython = boost.override { python = python3; enablePython = true; };
|
boostPython = boost.override { python = python3; enablePython = true; };
|
||||||
|
|
||||||
|
# This is a massive hack. For now, Trellis doesn't really support
|
||||||
|
# installation through an already-built package; you have to build it once to
|
||||||
|
# get the tools, then reuse the build directory to build nextpnr -- the
|
||||||
|
# 'install' phase doesn't install everything it needs. This will be fixed in
|
||||||
|
# the future but for now we can do this horrific thing.
|
||||||
|
trellisRoot = trellis.overrideAttrs (_: {
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out
|
||||||
|
cp *.so ..
|
||||||
|
cd ../../.. && cp -R trellis database $out/
|
||||||
|
'';
|
||||||
|
});
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "nextpnr-${version}";
|
name = "nextpnr-${version}";
|
||||||
@ -32,8 +43,9 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
cmakeFlags =
|
cmakeFlags =
|
||||||
[ "-DARCH=generic;ice40"
|
[ "-DARCH=generic;ice40;ecp5"
|
||||||
"-DICEBOX_ROOT=${icestorm}/share/icebox"
|
"-DICEBOX_ROOT=${icestorm}/share/icebox"
|
||||||
|
"-DTRELLIS_ROOT=${trellisRoot}/trellis"
|
||||||
] ++ (stdenv.lib.optional (!enableGui) "-DBUILD_GUI=OFF");
|
] ++ (stdenv.lib.optional (!enableGui) "-DBUILD_GUI=OFF");
|
||||||
|
|
||||||
# Fix the version number. This is a bit stupid (and fragile) in practice
|
# Fix the version number. This is a bit stupid (and fragile) in practice
|
||||||
|
Loading…
x
Reference in New Issue
Block a user