diff --git a/cad/openroad/Makefile b/cad/openroad/Makefile index a4f5710d9738..b90e22d6aa4f 100644 --- a/cad/openroad/Makefile +++ b/cad/openroad/Makefile @@ -1,92 +1,98 @@ PORTNAME= openroad -DISTVERSION= 26Q2 +DISTVERSION= 26Q3 PORTEPOCH= 1 CATEGORIES= cad MAINTAINER= yuri@FreeBSD.org COMMENT= ASIC physical design tool WWW= https://theopenroadproject.org \ https://github.com/The-OpenROAD-Project LICENSE= BSD3CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE .if !exists(/usr/include/omp.h) BROKEN= requires OpenMP support that is missing on this architecture .endif BROKEN_i386= compilation fails: error: static assertion failed due to requirement 'alignof(odb::_dbITerm) % 8 == 0' BUILD_DEPENDS= base64:converters/base64 \ bash:shells/bash \ boost-libs>0:devel/boost-libs \ coin-or-lemon>0:math/lemon \ gmake:devel/gmake \ swig:devel/swig LIB_DEPENDS= libabsl_flags_parse.so:devel/abseil \ libbzip2.so:misc/vxl \ libCbc.so:math/cbc \ libCgl.so:math/cgl \ libClpSolver.so:math/clp \ libcoinasl.so:math/asl \ libcoinmumps.so:math/coin-or-mumps \ libCoinUtils.so:math/coinutils \ libcudd.so:math/cudd \ libfmt.so:devel/libfmt \ libhighs.so:math/highs \ libnauty.so:math/nauty \ libopenblas.so:math/openblas \ libortools.so:math/or-tools \ libOsi.so:math/osi \ libprotobuf.so:devel/protobuf \ libre2.so:devel/re2 \ libspdlog.so:devel/spdlog \ libyaml-cpp.so:devel/yaml-cpp \ libzstd.so:archivers/zstd LIB_DEPENDS+= libgtest.so:devel/googletest # because third-party/abc looks for it LIB_DEPENDS+= libicudata.so:devel/icu TEST_DEPENDS= ${LOCALBASE}/lib/tcllib/json/json.tcl:devel/tcllib -USES= bison compiler:c++20-lang cmake eigen:3 qt:5 \ - localbase:ldflags pkgconfig python:build readline tcl:86 -USE_QT= core gui widgets buildtools:build qmake:build +USES= bison cmake compiler:c++20-lang eigen:3 gl localbase:ldflags \ + pkgconfig python:build readline tcl:86 +USE_GL= gl USE_GITHUB= yes GH_ACCOUNT= The-OpenROAD-Project GH_PROJECT= OpenROAD -GH_TUPLE= The-OpenROAD-Project:OpenSTA:43177bb:The_OpenROAD_Project_OpenSTA/src/sta \ - The-OpenROAD-Project:abc:17cadca:abc/third-party/abc +GH_TUPLE= The-OpenROAD-Project:OpenSTA:8572175ac4:opensta/src/sta \ + The-OpenROAD-Project:abc:d527cfab4a:abc/third-party/abc \ + povik:sv-elab:82effc8d95:svelab/third-party/slang-elab \ + fmtlib:fmt:553ec11:fmt/third-party/slang-elab/third_party/fmt \ + MikePopoloski:slang:f04e815:slang/third-party/slang-elab/third_party/slang -CMAKE_OFF= BUILD_PYTHON \ - ENABLE_TESTS +CMAKE_ARGS= -DFREEBSD_TCL_INCLUDEDIR=${TCL_INCLUDEDIR} -DFREEBSD_TCL_VER=${TCL_VER:S/.//} CMAKE_ON= BUILD_TCL -CMAKE_ARGS= -DFREEBSD_TCL_VER=${TCL_VER:S/.//} -DFREEBSD_TCL_INCLUDEDIR=${TCL_INCLUDEDIR} +CMAKE_OFF= BUILD_PYTHON ENABLE_TESTS -CXXFLAGS+= -I${LOCALBASE}/include/eigen3 \ - -DBOOST_STACKTRACE_GNU_SOURCE_NOT_REQUIRED +CXXFLAGS+= -DBOOST_STACKTRACE_GNU_SOURCE_NOT_REQUIRED -BINARY_ALIAS= python3=${PYTHON_CMD} tclsh=${TCLSH} make=${GMAKE} +BINARY_ALIAS= make=${GMAKE} python3=${PYTHON_CMD} tclsh=${TCLSH} +PORTSCOUT= limit:^[0-9][0-9]Q PLIST_FILES= bin/openroad \ bin/sta -PORTSCOUT= limit:^[0-9][0-9]Q +OPTIONS_DEFINE= GUI +OPTIONS_DEFAULT= GUI + +GUI_USES= qt:5 +GUI_USE= QT=charts,core,gui,widgets,buildtools:build,qmake:build post-patch: # override the TCL version to be the same as USES=tcl sets @${FIND} ${WRKSRC} -name FindTCL.cmake \ | ${XARGS} ${REINPLACE_CMD} -e ' \ s|set(TCL_POSSIBLE_NAMES |set(TCL_POSSIBLE_NAMES tcl$${FREEBSD_TCL_VER} |; \ s|PATHS $${TCL_LIB_PARENT1}|PATHS $${FREEBSD_TCL_INCLUDEDIR} $${TCL_LIB_PARENT1}|' post-install: # unnecessarily installs bundled OpenSTA project: https://github.com/The-OpenROAD-Project/OpenROAD/issues/597 ${RM} -r ${STAGEDIR}${PREFIX}/include/sta ${STAGEDIR}${PREFIX}/lib/libOpenSTA.a do-test: # some tests are known to fail @${MKDIR} ${WRKSRC}/build/bin @[ -f ${WRKSRC}/build/bin/openroad ] || ${LN} ${STAGEDIR}${PREFIX}/bin/openroad ${WRKSRC}/build/bin/openroad @${ECHO} "==> Unit tests" @cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} test/regression @${ECHO} "==> Flow tests" @cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} test/regression flow .include diff --git a/cad/openroad/distinfo b/cad/openroad/distinfo index bbaee2ba892b..45e3e8b1eee7 100644 --- a/cad/openroad/distinfo +++ b/cad/openroad/distinfo @@ -1,7 +1,13 @@ -TIMESTAMP = 1780261288 -SHA256 (The-OpenROAD-Project-OpenROAD-26Q2_GH0.tar.gz) = f82d5e2b3d94057ce15e741e87810531507c6d8260be2819da923338da5f705c -SIZE (The-OpenROAD-Project-OpenROAD-26Q2_GH0.tar.gz) = 336422547 -SHA256 (The-OpenROAD-Project-OpenSTA-43177bb_GH0.tar.gz) = f1c9aa4729722637c036d514502ac49710ba10a03ec6004937ac8817ede8bd27 -SIZE (The-OpenROAD-Project-OpenSTA-43177bb_GH0.tar.gz) = 95720128 -SHA256 (The-OpenROAD-Project-abc-17cadca_GH0.tar.gz) = b27dad119c8372c213291b9be2f60002ff89b35673ecbc9924c01dab82f43cf6 -SIZE (The-OpenROAD-Project-abc-17cadca_GH0.tar.gz) = 7182684 +TIMESTAMP = 1786908698 +SHA256 (The-OpenROAD-Project-OpenROAD-26Q3_GH0.tar.gz) = 26d42275db360b1edfc25ce94d3ab815d28fc5e088aaf79907f008d473454f6f +SIZE (The-OpenROAD-Project-OpenROAD-26Q3_GH0.tar.gz) = 340513978 +SHA256 (The-OpenROAD-Project-OpenSTA-8572175ac4_GH0.tar.gz) = 582a278aed23c991f53b6d1635223f3d22b21368effa5abbf58229faf52773e5 +SIZE (The-OpenROAD-Project-OpenSTA-8572175ac4_GH0.tar.gz) = 95737061 +SHA256 (The-OpenROAD-Project-abc-d527cfab4a_GH0.tar.gz) = 5310d7f6e603f22743dfcbe01b0d2fdb36485124a07c82257749744fad663d55 +SIZE (The-OpenROAD-Project-abc-d527cfab4a_GH0.tar.gz) = 7651061 +SHA256 (povik-sv-elab-82effc8d95_GH0.tar.gz) = 5cc26046d080e33c476996aa6aad2bbffccebfb8542513b91f1ad7497dd419d2 +SIZE (povik-sv-elab-82effc8d95_GH0.tar.gz) = 132756 +SHA256 (fmtlib-fmt-553ec11_GH0.tar.gz) = f91fd3927c18860050bc0b943306681a8bafccfb17ed0c97252d5ededa742745 +SIZE (fmtlib-fmt-553ec11_GH0.tar.gz) = 707406 +SHA256 (MikePopoloski-slang-f04e815_GH0.tar.gz) = 4c74b6c351e5de708545058c3160e1586d66500c22700eb105719a7e251a22f4 +SIZE (MikePopoloski-slang-f04e815_GH0.tar.gz) = 1851409 diff --git a/cad/openroad/files/patch-src_sta_util_StringUtil.cc b/cad/openroad/files/patch-src_sta_util_StringUtil.cc deleted file mode 100644 index c0562096d9ae..000000000000 --- a/cad/openroad/files/patch-src_sta_util_StringUtil.cc +++ /dev/null @@ -1,30 +0,0 @@ --- std::from_chars for floating-point types is not implemented in FreeBSD's libc++. --- Replace with std::stof which is available and has equivalent semantics. --- see https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=295767 - ---- src/sta/util/StringUtil.cc.orig 2026-05-31 21:08:13 UTC -+++ src/sta/util/StringUtil.cc -@@ -55,13 +55,17 @@ stringFloat(const std::string &str) - std::pair - stringFloat(const std::string &str) - { -- float value; -- auto [ptr, ec] = std::from_chars(str.data(), str.data() + str.size(), value); -- if (ec == std::errc() -- && *ptr == '\0') -- return {value, true}; -- else -+ // std::from_chars for float is not implemented in FreeBSD libc++ -+ try { -+ size_t pos; -+ float value = std::stof(str, &pos); -+ if (pos == str.size()) -+ return {value, true}; -+ else -+ return {0.0, false}; -+ } catch (...) { - return {0.0, false}; -+ } - } - - void