1
0
mirror of https://git.savannah.gnu.org/git/guix.git synced 2026-04-07 05:30:38 +02:00

gnu: Add openroad.

* gnu/packages/electronics.scm (openroad): New variable.

Merges guix/guix!5989

Change-Id: I5bfd51823ddcf2c31a99b2fb3104a428ffc7bd32
Modified-by: Cayetano Santos <csantosb@inventati.org>
Signed-off-by: Cayetano Santos <csantosb@inventati.org>
This commit is contained in:
Thomas Kramer
2026-01-28 11:02:09 +00:00
committed by Cayetano Santos
parent cf27ff3da3
commit e589de63df

View File

@@ -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")