{ lib, stdenv, fetchFromGitHub, cmake, python3, pkg-config, libuuid, openjdk, gperftools, gtest, uhdm, antlr4, capnproto, nlohmann_json, }: stdenv.mkDerivation (finalAttrs: { pname = "surelog"; version = "1.84-unstable-2024-11-09"; src = fetchFromGitHub { owner = "chipsalliance"; repo = "surelog"; # Once we're back on a stable tag, use "v$(finalAttrs.version}" below. rev = "da88163a02dbc16f1af3514f281b93941d371ad9"; hash = "sha256-TIwXIMcDImZjCIiXwvT2MhukArgrWCgOf2AOvkG/55g="; fetchSubmodules = false; # we use all dependencies from nix }; nativeBuildInputs = [ cmake pkg-config openjdk (python3.withPackages ( p: with p; [ psutil orderedmultidict ] )) gtest antlr4 ]; buildInputs = [ libuuid gperftools uhdm capnproto antlr4.runtime.cpp nlohmann_json ]; cmakeFlags = [ "-DSURELOG_USE_HOST_CAPNP=On" "-DSURELOG_USE_HOST_UHDM=On" "-DSURELOG_USE_HOST_GTEST=On" "-DSURELOG_USE_HOST_ANTLR=On" "-DSURELOG_USE_HOST_JSON=On" "-DANTLR_JAR_LOCATION=${antlr4.jarLocation}" ]; doCheck = true; checkPhase = '' runHook preCheck make -j $NIX_BUILD_CORES UnitTests ctest --output-on-failure runHook postCheck ''; meta = { description = "SystemVerilog 2017 Pre-processor, Parser, Elaborator, UHDM Compiler"; homepage = "https://github.com/chipsalliance/Surelog"; license = lib.licenses.asl20; mainProgram = "surelog"; maintainers = with lib.maintainers; [ matthuszagh hzeller ]; platforms = lib.platforms.all; }; })