1
0
Fork 1
mirror of https://github.com/NixOS/nixpkgs.git synced 2024-12-15 09:03:48 +00:00
nixpkgs/pkgs/development/compilers/nextpnr/default.nix

56 lines
1.6 KiB
Nix
Raw Normal View History

{ stdenv, fetchFromGitHub, cmake
, 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
boostPython = boost.override { python = python3; enablePython = true; };
in
stdenv.mkDerivation rec {
name = "nextpnr-${version}";
version = "2019.01.08";
src = fetchFromGitHub {
owner = "yosyshq";
repo = "nextpnr";
rev = "c1d15c749c2aa105ee7b38ebe1b60a27e3743e8c";
sha256 = "082ac03s6164s7dwz1l9phshl8m1lizn45jykabrhks5jcccchbh";
};
nativeBuildInputs = [ cmake ];
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");
# Fix the version number. This is a bit stupid (and fragile) in practice
# but works ok. We should probably make this overrideable upstream.
patchPhase = with builtins; ''
substituteInPlace ./CMakeLists.txt \
--replace 'git log -1 --format=%h' 'echo ${substring 0 11 src.rev}'
'';
meta = with stdenv.lib; {
description = "Place and route tool for FPGAs";
homepage = https://github.com/yosyshq/nextpnr;
license = licenses.isc;
platforms = platforms.linux;
maintainers = with maintainers; [ thoughtpolice ];
broken = enableGui;
};
}