diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/science/electronics/openroad/default.nix')
-rw-r--r-- | nixpkgs/pkgs/applications/science/electronics/openroad/default.nix | 133 |
1 files changed, 133 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/science/electronics/openroad/default.nix b/nixpkgs/pkgs/applications/science/electronics/openroad/default.nix new file mode 100644 index 000000000000..16659892a6ee --- /dev/null +++ b/nixpkgs/pkgs/applications/science/electronics/openroad/default.nix @@ -0,0 +1,133 @@ +{ lib +, mkDerivation +, fetchFromGitHub +, fetchpatch +, bison +, cmake +, doxygen +, flex +, git +, python3 +, swig4 +, boost179 +, cbc # for clp +, cimg +, clp # for or-tools +, eigen +, glpk +, gtest +, lcov +, lemon-graph +, libjpeg +, or-tools +, pcre +, pkg-config +, qtbase +, re2 # for or-tools +, readline +, spdlog +, tcl +, tcllib +, xorg +, yosys +, zlib +}: + +mkDerivation rec { + pname = "openroad"; + version = "unstable-2023-08-26"; + + src = fetchFromGitHub { + owner = "The-OpenROAD-Project"; + repo = "OpenROAD"; + rev = "6dba515c2aacd3fca58ef8135424884146efd95b"; + fetchSubmodules = true; + hash = "sha256-LAj7X+Vq0+H3tIo5zgyUuIjQwTj+2DLL18/KMJ/kf4A="; + }; + + nativeBuildInputs = [ + bison + cmake + doxygen + flex + git + pkg-config + swig4 + ]; + + buildInputs = [ + boost179 + cbc + cimg + clp + eigen + glpk + lcov + lemon-graph + libjpeg + or-tools + pcre + python3 + qtbase + re2 + readline + spdlog + tcl + tcllib + yosys + xorg.libX11 + zlib + ]; + + patches = [ + # https://github.com/The-OpenROAD-Project/OpenROAD/pull/3911 + (fetchpatch { + name = "openroad-fix-fmt-10.patch"; + url = "https://github.com/The-OpenROAD-Project/OpenROAD/commit/9396f07f28e0260cd64acfc51909f6566b70e682.patch"; + hash = "sha256-jy8K8pdhSswVz6V6otk8JAI7nndaFVMuKQ/4A3Kzwns="; + }) + # Upstream is not aware of these failures + ./0001-Disable-failing-regression-tests.patch + # This is an issue we experience in the sandbox, and upstream + # probably wouldn't mind merging this change, but no PR was opened. + ./0002-Ignore-warning-on-stderr.patch + ]; + + postPatch = '' + patchShebangs --build etc/find_messages.py + ''; + + # Enable output images from the placer. + cmakeFlags = [ + # Tries to download gtest 1.13 as part of the build. We currently rely on + # the regression tests so we can get by without building unit tests. + "-DENABLE_TESTS=OFF" + "-DUSE_SYSTEM_BOOST=ON" + "-DUSE_CIMG_LIB=ON" + "-DOPENROAD_VERSION=${src.rev}" + ]; + + # Resynthesis needs access to the Yosys binaries. + qtWrapperArgs = [ "--prefix PATH : ${lib.makeBinPath [ yosys ]}" ]; + + # Upstream uses vendored package versions for some dependencies, so regression testing is prudent + # to see if there are any breaking changes in unstable that should be vendored as well. + doCheck = true; + checkPhase = '' + ../test/regression + ''; + + doInstallCheck = true; + installCheckPhase = '' + $out/bin/openroad -version + $out/bin/sta -version + ''; + + meta = with lib; { + description = "OpenROAD's unified application implementing an RTL-to-GDS flow"; + homepage = "https://theopenroadproject.org"; + license = licenses.bsd3; + maintainers = with maintainers; [ trepetti ]; + platforms = platforms.linux; + }; +} |