Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 06 Feb 2026 12:03:21 +0000
From:      Joel Bodenmann <jbo@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: b4649a299a45 - main - devel/nextpnr-devel: Add new port
Message-ID:  <6985d889.23dab.4591ff31@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch main has been updated by jbo:

URL: https://cgit.FreeBSD.org/ports/commit/?id=b4649a299a451c6857ab2fe0d5cbb85b5c3f062e

commit b4649a299a451c6857ab2fe0d5cbb85b5c3f062e
Author:     Joel Bodenmann <jbo@FreeBSD.org>
AuthorDate: 2026-02-06 11:03:19 +0000
Commit:     Joel Bodenmann <jbo@FreeBSD.org>
CommitDate: 2026-02-06 11:03:19 +0000

    devel/nextpnr-devel: Add new port
    
    This is a version of the existing devel/nextpnr port tracking the upstream master
    branch as actual releases happen rarely and most users outside of FreeBSD use
    the shell script based oss-cad-suite to build/install nextpnr.
---
 devel/Makefile                                     |  1 +
 devel/nextpnr-devel/Makefile                       | 49 ++++++++++++++++++++++
 devel/nextpnr-devel/distinfo                       |  5 +++
 devel/nextpnr-devel/files/patch-bba_CMakeLists.txt | 10 +++++
 devel/nextpnr-devel/pkg-descr                      | 12 ++++++
 5 files changed, 77 insertions(+)

diff --git a/devel/Makefile b/devel/Makefile
index 7c715185f94d..e5e709b48a7c 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -1717,6 +1717,7 @@
     SUBDIR += newtonsoft-json
     SUBDIR += nextest
     SUBDIR += nextpnr
+    SUBDIR += nextpnr-devel
     SUBDIR += nexus2-oss
     SUBDIR += nimble
     SUBDIR += nini
diff --git a/devel/nextpnr-devel/Makefile b/devel/nextpnr-devel/Makefile
new file mode 100644
index 000000000000..45077112a721
--- /dev/null
+++ b/devel/nextpnr-devel/Makefile
@@ -0,0 +1,49 @@
+PORTNAME=	nextpnr
+PORTVERSION=	g20250126
+CATEGORIES=	devel
+PKGNAMESUFFIX=	-devel
+
+MAINTAINER=	jbo@FreeBSD.org
+COMMENT=	Portable FPGA place and route tool
+WWW=		https://github.com/YosysHQ/nextpnr
+
+LICENSE=	ISCL
+LICENSE_FILE=	${WRKSRC}/COPYING
+
+NOT_FOR_ARCHS=		i386
+NOT_FOR_ARCHS_REASON=	clang segfault
+
+BUILD_DEPENDS=	${LOCALBASE}/share/trellis/database:devel/trellis \
+		${LOCALBASE}/share/icebox:devel/icestorm
+LIB_DEPENDS=	libboost_thread.so:devel/boost-libs \
+		libboost_program_options.so:devel/boost-libs
+
+USES=		compiler:c++17-lang cmake llvm:min=20 qt:6 eigen:3 python
+USE_QT=		base
+USE_GITHUB=	yes
+GH_ACCOUNT=	YosysHQ
+GH_TUPLE=	YosysHQ:nextpnr-tests:ce15412:tests/tests
+GH_TAGNAME=	8c6278170be1df71a6224110f0b8d5997740fc1e
+
+CONFLICTS_INSTALL=	nextpnr
+
+BINARY_ALIAS=	python3=${PYTHON_CMD}
+
+CMAKE_ARGS=	-DARCH="ice40;ecp5" \
+		-DTRELLIS_ROOT=${LOCALBASE}/share/trellis/
+CMAKE_OFF=	BUILD_GUI
+
+PLIST_FILES=	bin/nextpnr-ecp5 \
+		bin/nextpnr-ice40
+
+# Don't create __pycache__ directory when executing blueprint-compiler
+# This is a workaround to avoid filesystem violations during poudriere build
+MAKE_ENV=	PYTHONDONTWRITEBYTECODE=1
+
+.if exists(/usr/include/omp.h)
+CMAKE_ON+=	USE_OPENMP
+.else
+CMAKE_OFF+=	USE_OPENMP
+.endif
+
+.include <bsd.port.mk>
diff --git a/devel/nextpnr-devel/distinfo b/devel/nextpnr-devel/distinfo
new file mode 100644
index 000000000000..8d04bde102d7
--- /dev/null
+++ b/devel/nextpnr-devel/distinfo
@@ -0,0 +1,5 @@
+TIMESTAMP = 1769633406
+SHA256 (YosysHQ-nextpnr-g20250126-8c6278170be1df71a6224110f0b8d5997740fc1e_GH0.tar.gz) = bca205576b1cac32788120e2bcaf01c38dd18e097605ba2ab80bf6c23df459d6
+SIZE (YosysHQ-nextpnr-g20250126-8c6278170be1df71a6224110f0b8d5997740fc1e_GH0.tar.gz) = 3489559
+SHA256 (YosysHQ-nextpnr-tests-ce15412_GH0.tar.gz) = 84b7e926d97ce1aae3a2b9115b9030fce483a8b6d8b6cde060046a93f24966fe
+SIZE (YosysHQ-nextpnr-tests-ce15412_GH0.tar.gz) = 1032708
diff --git a/devel/nextpnr-devel/files/patch-bba_CMakeLists.txt b/devel/nextpnr-devel/files/patch-bba_CMakeLists.txt
new file mode 100644
index 000000000000..978f75d91170
--- /dev/null
+++ b/devel/nextpnr-devel/files/patch-bba_CMakeLists.txt
@@ -0,0 +1,10 @@
+--- bba/CMakeLists.txt.orig	2026-01-28 22:36:11 UTC
++++ bba/CMakeLists.txt
+@@ -9,5 +9,6 @@ target_link_libraries(bbasm LINK_PRIVATE
+ add_executable(bbasm
+     main.cc)
+ target_link_libraries(bbasm LINK_PRIVATE
+-    ${Boost_PROGRAM_OPTIONS_LIBRARY})
++    ${Boost_PROGRAM_OPTIONS_LIBRARY}
++	Boost::program_options)
+ export(TARGETS bbasm FILE ${CMAKE_BINARY_DIR}/bba-export.cmake)
diff --git a/devel/nextpnr-devel/pkg-descr b/devel/nextpnr-devel/pkg-descr
new file mode 100644
index 000000000000..d132ad330118
--- /dev/null
+++ b/devel/nextpnr-devel/pkg-descr
@@ -0,0 +1,12 @@
+nextpnr aims to be a vendor neutral, timing driven,
+FOSS FPGA place and route tool.
+
+Currently nextpnr supports:
+  - Lattice iCE40 devices supported by Project IceStorm
+  - Lattice ECP5 devices supported by Project Trellis
+  - Lattice Nexus devices supported by Project Oxide
+  - Gowin LittleBee devices supported by Project Apicula
+  - NanoXplore NG-Ultra devices supported by Project Beyond
+  - (experimental) Cyclone V devices supported by Mistral
+  - (experimental) Lattice MachXO2 devices supported by Project Trellis
+  - (experimental) a "generic" back-end for user-defined architectures


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6985d889.23dab.4591ff31>