gnu: nextpnr: Add icestorm and prjtrellis checks.

* gnu/packages/electronics.scm (nextpnr)[arguments]: Add
run-icestorm-examples and run-prjtrellis-examples phases.
[native-inputs]: Add icestorm and prjtrellis.

Change-Id: Icd94efb4deb53430412422e03acc19d036470f88
Signed-off-by: Gabriel Wicki <gabriel@erlikon.ch>
This commit is contained in:
Cayetano Santos 2025-09-23 14:48:45 +02:00 committed by Gabriel Wicki
parent 98a9cf0ec9
commit 9e299926c6
No known key found for this signature in database
GPG key ID: CC98E9F04330FD7F

View file

@ -921,6 +921,10 @@ which allows one to install the M8 firmware on any Teensy.")
(string-append "-DTRELLIS_INSTALL_PREFIX="
#$(this-package-input "prjtrellis"))
"-DUSE_IPO=OFF")
#:modules '((guix build qt-build-system)
(guix build utils)
(ice-9 ftw)
(srfi srfi-26))
#:phases
#~(modify-phases %standard-phases
;; Required by himbaechel architecture, ng-ultra support.
@ -947,10 +951,42 @@ which allows one to install the M8 firmware on any Teensy.")
(("\\$\\{CMAKE_SOURCE_DIR}/3rdparty/sanitizers-cmake/cmake")
(string-append
#$(this-package-native-input "sanitizers-cmake")
"/share/sanitizers-cmake/cmake"))))))))
"/share/sanitizers-cmake/cmake")))))
(add-after 'install 'run-icestorm-examples
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(setenv "PATH"
(string-append #$output "/bin:" (getenv "PATH")))
;; Tests need write access.
(copy-recursively
(string-append
#$(this-package-native-input "icestorm") "/examples")
"/tmp/icestorm/examples")
(with-directory-excursion "/tmp/icestorm/examples"
(for-each
(cut invoke "make" "-C" <>)
(scandir "." (negate (cut member <> '("." "..")))))))))
(add-after 'run-icestorm-examples 'run-prjtrellis-examples
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(setenv "PATH"
(string-append #$output "/bin:" (getenv "PATH")))
;; Tests need write access.
(copy-recursively
(string-append
#$(this-package-native-input "prjtrellis") "/examples")
"/tmp/prjtrellis/examples")
(with-directory-excursion "/tmp/prjtrellis/examples"
(for-each
(cut invoke "make" "-C" <>)
;; Other tests require unavailable tools.
(list "ecp5_evn" "tinyfpga_rev1"
"tinyfpga_rev2" "versa5g")))))))))
(native-inputs
(list googletest
sanitizers-cmake))
`(("icestorm" ,(package-source icestorm))
("googletest" ,googletest)
("prjtrellis" ,(package-source prjtrellis))
("sanitizers-cmake" ,sanitizers-cmake)))
(inputs
(list apycula
boost