guix_mirror_bot pushed a commit to branch master
in repository guix.

commit e589de63df03e1cdfd6766c8cf5ce385d52db58f
Author: Thomas Kramer <[email protected]>
AuthorDate: Wed Jan 28 11:02:09 2026 +0000

    gnu: Add openroad.
    
    * gnu/packages/electronics.scm (openroad): New variable.
    
    Merges guix/guix!5989
    
    Change-Id: I5bfd51823ddcf2c31a99b2fb3104a428ffc7bd32
    Modified-by: Cayetano Santos <[email protected]>
    Signed-off-by: Cayetano Santos <[email protected]>
---
 gnu/packages/electronics.scm | 88 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 88 insertions(+)

diff --git a/gnu/packages/electronics.scm b/gnu/packages/electronics.scm
index f2696bfc03..f0925b11c0 100644
--- a/gnu/packages/electronics.scm
+++ b/gnu/packages/electronics.scm
@@ -91,6 +91,7 @@
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gperf)
+  #:use-module (gnu packages graph)
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
@@ -98,16 +99,21 @@
   #:use-module (gnu packages libedit)
   #:use-module (gnu packages libffi)
   #:use-module (gnu packages libftdi)
+  #:use-module (gnu packages logging)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages llvm)
   #:use-module (gnu packages man)
+  #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages m4)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages mpi)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages pretty-print)
+  #:use-module (gnu packages protobuf)
+  #:use-module (gnu packages regex)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-build)
   #:use-module (gnu packages python-check)
@@ -1977,6 +1983,88 @@ formats.")
       (home-page "https://github.com/parallaxsw/OpenSTA/";)
       (license license:gpl3+))))
 
+(define-public openroad
+  (package
+    (name "openroad")
+    (version "26Q1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+              (url "https://github.com/The-OpenROAD-Project/OpenROAD";)
+              (commit "e06ca0f5f2e641cd7b138a4d9b4fdd290359eca8")
+              ;; 26Q1 Uses:
+              ;; - forked, custom opensta: v2.2.0-1579-g9c9b5659
+              ;; - forked, custom (berkeley) abc: 20260104.1628-g4c756ffb8
+              (recursive? #t)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "13x4kqi4j489k4sz56ws4aqhp60nff1i18z6hjd6xx8y7flaik0c"))))
+    (build-system cmake-build-system)
+    (arguments
+     (list
+      #:configure-flags
+      #~(list "-DBUILD_GUI=ON"
+              "-DBUILD_PYTHON=ON"
+              "-DUSE_SYSTEM_ABC=OFF"     ;uses a custom fork
+              "-DUSE_SYSTEM_OPENSTA=OFF" ;uses a custom fork
+              "-DUSE_SYSTEM_BOOST=ON")
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-before 'check 'symlink-test-dir
+            (lambda _
+              (symlink "../build" "../source/build")))
+          (add-after 'unpack 'fix-boost-cmake
+            (lambda _
+              (substitute* (find-files "." "CMakeLists\\.txt")
+                (("set\\(Boost_USE_STATIC_LIBS ON\\)")
+                 "set(Boost_USE_STATIC_LIBS OFF)")
+                (("Boost_USE_STATIC_LIBS TRUE")
+                 "Boost_USE_STATIC_LIBS FALSE")
+                (("COMPONENTS serialization system thread")
+                 "COMPONENTS serialization thread")
+                (("COMPONENTS system thread")
+                 "COMPONENTS thread")
+                (("Boost::system")
+                 "")))))))
+    (native-inputs
+     (list bison
+           flex
+           googletest
+           pkg-config
+           swig-4.0))
+    (inputs
+     (list abseil-cpp
+           boost
+           cudd
+           eigen
+           glpk
+           gmp
+           qtbase-5
+           qtcharts-5
+           lemon-graph
+           libomp
+           mpfr
+           or-tools
+           protobuf-6
+           python
+           re2-next
+           scip
+           spdlog
+           tcl
+           yaml-cpp
+           zlib))
+    (home-page "https://theopenroadproject.org/";)
+    (synopsis "Collection of tools for semiconductor digital design")
+    (description
+     "OpenROAD is an @acronym{EDA, electronic design automation} toolkit for
+@acronym{RTL, Register Transfert Logic} to GDS design flows.  It provides all
+necessary steps from @acronym{VLSI, Very Large Scale of Integration} designs
+to implement integrated chip physical designs, from RTL design to synthesized
+Verilog and routed layout.  It includes tools for floorplanning, placement,
+clock tree synthesis, routing, parasitic extraction, and timing analysis.")
+    (license license:bsd-3)))
+
 (define-public pulseview
   (package
     (name "pulseview")

Reply via email to