From 6c11654908e9ea39f0c185f1ec3e36e8ab53f487 Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Thu, 10 Apr 2025 08:28:42 +0200 Subject: [PATCH 1/2] openroad: move to by-name --- .../openroad/default.nix => by-name/op/openroad/package.nix} | 4 ++-- pkgs/top-level/all-packages.nix | 2 -- 2 files changed, 2 insertions(+), 4 deletions(-) rename pkgs/{applications/science/electronics/openroad/default.nix => by-name/op/openroad/package.nix} (98%) diff --git a/pkgs/applications/science/electronics/openroad/default.nix b/pkgs/by-name/op/openroad/package.nix similarity index 98% rename from pkgs/applications/science/electronics/openroad/default.nix rename to pkgs/by-name/op/openroad/package.nix index ef9db55ef3f5..98e2bee74f38 100644 --- a/pkgs/applications/science/electronics/openroad/default.nix +++ b/pkgs/by-name/op/openroad/package.nix @@ -1,6 +1,5 @@ { lib, - mkDerivation, fetchFromGitHub, bison, cmake, @@ -44,7 +43,7 @@ let ]; }); in -mkDerivation rec { +stdenv.mkDerivation rec { pname = "openroad"; version = "2.0-unstable-2025-03-01"; @@ -65,6 +64,7 @@ mkDerivation rec { gtest pkg-config swig + libsForQt5.wrapQtAppsHook ]; buildInputs = [ diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 079d5f75203f..c7986003936d 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -18505,8 +18505,6 @@ with pkgs; qcsxcad = libsForQt5.qcsxcad; }; - openroad = libsForQt5.callPackage ../applications/science/electronics/openroad { }; - qucs-s = qt6Packages.callPackage ../applications/science/electronics/qucs-s { }; xyce = callPackage ../applications/science/electronics/xyce { }; From de68ba78026199a44e1d74179ef279860c149095 Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Thu, 10 Apr 2025 08:33:04 +0200 Subject: [PATCH 2/2] openroad: cleanup --- pkgs/by-name/op/openroad/package.nix | 118 ++++++++++++++------------- 1 file changed, 60 insertions(+), 58 deletions(-) diff --git a/pkgs/by-name/op/openroad/package.nix b/pkgs/by-name/op/openroad/package.nix index 98e2bee74f38..2023f2606825 100644 --- a/pkgs/by-name/op/openroad/package.nix +++ b/pkgs/by-name/op/openroad/package.nix @@ -1,48 +1,44 @@ { lib, + stdenv, fetchFromGitHub, + + # nativeBuildInputs bison, cmake, doxygen, flex, - git, - python3, + gitMinimal, + gtest, + libsForQt5, + pkg-config, swig, + + # buildInputs boost186, # 1.87.0 broken https://github.com/boostorg/asio/issues/442 cbc, # for clp cimg, clp, # for or-tools cudd, eigen, - gtest, glpk, lcov, lemon-graph, - libsForQt5, libjpeg, or-tools, pcre, - pkg-config, + python3, re2, # for or-tools readline, spdlog, tcl, tclPackages, - xorg, yosys, zlib, + xorg, llvmPackages, - stdenv, }: -let - or-tools-static = or-tools.overrideAttrs (oldAttrs: { - cmakeFlags = oldAttrs.cmakeFlags ++ [ - # https://github.com/google/or-tools/issues/3709 - "-DBUILD_SHARED_LIBS=OFF" - ]; - }); -in stdenv.mkDerivation rec { pname = "openroad"; version = "2.0-unstable-2025-03-01"; @@ -60,40 +56,42 @@ stdenv.mkDerivation rec { cmake doxygen flex - git + gitMinimal gtest + libsForQt5.wrapQtAppsHook pkg-config swig - libsForQt5.wrapQtAppsHook ]; - buildInputs = [ - boost186 - cbc - cimg - clp - cudd - eigen - glpk - lcov - lemon-graph - libjpeg - or-tools-static - pcre - python3 - libsForQt5.qtbase - libsForQt5.qtcharts - libsForQt5.qtsvg - libsForQt5.qtdeclarative - re2 - readline - spdlog - tcl - tclPackages.tclreadline - yosys - xorg.libX11 - zlib - ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ llvmPackages.openmp ]; + buildInputs = + [ + boost186 + cbc + cimg + clp + cudd + eigen + glpk + lcov + lemon-graph + libjpeg + libsForQt5.qtbase + libsForQt5.qtcharts + libsForQt5.qtdeclarative + libsForQt5.qtsvg + or-tools + pcre + python3 + re2 + readline + spdlog + tcl + tclPackages.tclreadline + yosys + zlib + ] + ++ lib.optionals stdenv.hostPlatform.isLinux [ xorg.libX11 ] + ++ lib.optionals stdenv.hostPlatform.isDarwin [ llvmPackages.openmp ]; postPatch = '' patchShebangs --build etc/find_messages.py @@ -103,18 +101,18 @@ stdenv.mkDerivation rec { cmakeFlags = [ - "-DENABLE_TESTS=ON" - "-DUSE_SYSTEM_BOOST=ON" - "-DUSE_SYSTEM_ABC=OFF" - "-DABC_SKIP_TESTS=ON" # it attempts to download gtest - "-DUSE_SYSTEM_OPENSTA=OFF" - "-DOPENROAD_VERSION=${version}_${src.rev}" - "-DCMAKE_RULE_MESSAGES=OFF" - "-DTCL_HEADER=${tcl}/include/tcl.h" - "-DTCL_LIBRARY=${tcl}/lib/libtcl${stdenv.hostPlatform.extensions.sharedLibrary}" + (lib.cmakeBool "ENABLE_TESTS" true) + (lib.cmakeBool "USE_SYSTEM_BOOST" true) + (lib.cmakeBool "USE_SYSTEM_ABC" false) + (lib.cmakeBool "ABC_SKIP_TESTS" true) # it attempts to download gtest + (lib.cmakeBool "USE_SYSTEM_OPENSTA" false) + (lib.cmakeFeature "OPENROAD_VERSION" "${version}_${src.rev}") + (lib.cmakeBool "CMAKE_RULE_MESSAGES" false) + (lib.cmakeFeature "TCL_HEADER" "${tcl}/include/tcl.h") + (lib.cmakeFeature "TCL_LIBRARY" "${tcl}/lib/libtcl${stdenv.hostPlatform.extensions.sharedLibrary}") ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ - "-DCMAKE_CXX_FLAGS=-DBOOST_STACKTRACE_GNU_SOURCE_NOT_REQUIRED" + (lib.cmakeFeature "CMAKE_CXX_FLAGS" "-DBOOST_STACKTRACE_GNU_SOURCE_NOT_REQUIRED") ]; # Resynthesis needs access to the Yosys binaries. @@ -130,18 +128,22 @@ stdenv.mkDerivation rec { doInstallCheck = true; installCheckPhase = '' + runHook preInstallCheck + $out/bin/openroad -version $out/bin/sta -version + + runHook postInstallCheck ''; - meta = with lib; { + meta = { description = "OpenROAD's unified application implementing an RTL-to-GDS flow"; homepage = "https://theopenroadproject.org"; - license = licenses.bsd3; - maintainers = with maintainers; [ + license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ trepetti hzeller ]; - platforms = platforms.linux ++ platforms.darwin; + platforms = lib.platforms.linux ++ lib.platforms.darwin; }; }