depot/third_party/nixpkgs/pkgs/development/compilers/yosys/plugins/synlig.nix
Default email b5f92a349c Project import generated by Copybara.
GitOrigin-RevId: 7c9cc5a6e5d38010801741ac830a3f8fd667a7a0
2023-10-19 15:55:26 +02:00

73 lines
1.7 KiB
Nix

{ stdenv
, lib
, fetchFromGitHub
, pkg-config
, antlr4
, capnproto
, readline
, surelog
, uhdm
, yosys
}:
stdenv.mkDerivation (finalAttrs: {
pname = "yosys-synlig";
version = "2023.10.12"; # Currently no tagged versions upstream
plugin = "synlig";
src = fetchFromGitHub {
owner = "chipsalliance";
repo = "synlig";
rev = "c5bd73595151212c61709d69a382917e96877a14";
sha256 = "sha256-WJhf5gdZTCs3EeNocP9aZAh6EZquHgYOG/xiTo8l0ao=";
fetchSubmodules = false; # we use all dependencies from nix
};
patches = [
./synlig-makefile-for-nix.patch # Remove assumption submodules available.
];
nativeBuildInputs = [
pkg-config
];
buildInputs = [
antlr4.runtime.cpp
capnproto
readline
surelog
uhdm
yosys
];
buildPhase = ''
runHook preBuild
make -j $NIX_BUILD_CORES build@systemverilog-plugin
runHook postBuild
'';
# Very simple litmus test that the plugin can be loaded successfully.
doCheck = true;
checkPhase = ''
runHook preCheck
yosys -p "plugin -i build/release/systemverilog-plugin/systemverilog.so;\
help read_systemverilog" | grep "Read SystemVerilog files using"
runHook postCheck
'';
installPhase = ''
runHook preInstall
mkdir -p $out/share/yosys/plugins
cp ./build/release/systemverilog-plugin/systemverilog.so \
$out/share/yosys/plugins/systemverilog.so
runHook postInstall
'';
meta = with lib; {
description = "SystemVerilog support plugin for Yosys";
homepage = "https://github.com/chipsalliance/synlig";
license = licenses.asl20;
maintainers = with maintainers; [ hzeller ];
platforms = platforms.all;
};
})