mirror of
https://git.savannah.gnu.org/git/guix.git
synced 2025-01-31 14:56:54 +01:00
gnu: nextpnr-ice40: Remove bundled software.
* gnu/packages/fpga.scm (nextpnr-ice40)[source]: Add modules, snippet. [native-inputs]: Add googletest, sanitizers-cmake. [inputs]: Add imgui-1.86, pybind11, qtimgui. [arguments]: Add "patch-source" phase; reformat gently. Signed-off-by: Danny Milosavljevic <dannym@friendly-machines.com> Change-Id: I1d291ef8356b1cb32f612a055c37654e5c0aba9d Signed-off-by: Danny Milosavljevic <dannym@friendly-machines.com>
This commit is contained in:
parent
43ed3520e1
commit
58ca09f554
1 changed files with 64 additions and 9 deletions
|
@ -7,6 +7,7 @@
|
||||||
;;; Copyright © 2021 Andrew Miloradovsky <andrew@interpretmath.pw>
|
;;; Copyright © 2021 Andrew Miloradovsky <andrew@interpretmath.pw>
|
||||||
;;; Copyright © 2022 Christian Gelinek <cgelinek@radlogic.com.au>
|
;;; Copyright © 2022 Christian Gelinek <cgelinek@radlogic.com.au>
|
||||||
;;; Copyright © 2022 jgart <jgart@dismail.de>
|
;;; Copyright © 2022 jgart <jgart@dismail.de>
|
||||||
|
;;; Copyright © 2023 Simon South <simon@simonsouth.net>
|
||||||
;;; Copyright © 2024 Efraim Flashner <efraim@flashner.co.il>
|
;;; Copyright © 2024 Efraim Flashner <efraim@flashner.co.il>
|
||||||
;;; Copyright © 2024 Jakob Kirsch <jakob.kirsch@web.de>
|
;;; Copyright © 2024 Jakob Kirsch <jakob.kirsch@web.de>
|
||||||
;;;
|
;;;
|
||||||
|
@ -69,6 +70,7 @@ (define-module (gnu packages fpga)
|
||||||
#:use-module (gnu packages qt)
|
#:use-module (gnu packages qt)
|
||||||
#:use-module (gnu packages readline)
|
#:use-module (gnu packages readline)
|
||||||
#:use-module (gnu packages tcl)
|
#:use-module (gnu packages tcl)
|
||||||
|
#:use-module (gnu packages toolkits)
|
||||||
#:use-module (gnu packages version-control))
|
#:use-module (gnu packages version-control))
|
||||||
|
|
||||||
(define-public abc
|
(define-public abc
|
||||||
|
@ -298,24 +300,77 @@ (define-public nextpnr-ice40
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1llkrh8rk1a1xxzx54apbg49ny2jqzzl2rmbkb8188idipq568ws"))))
|
"1llkrh8rk1a1xxzx54apbg49ny2jqzzl2rmbkb8188idipq568ws"))
|
||||||
|
(modules '((guix build utils)))
|
||||||
|
(snippet
|
||||||
|
#~(begin
|
||||||
|
;; Remove bundled source code for which Guix has packages.
|
||||||
|
;; Note the bundled copies of json11 and python-console contain
|
||||||
|
;; modifications, while QtPropertyBrowser appears to be
|
||||||
|
;; abandoned and without an official source.
|
||||||
|
(with-directory-excursion "3rdparty"
|
||||||
|
(for-each delete-file-recursively
|
||||||
|
'("googletest" "imgui" "pybind11" "qtimgui"
|
||||||
|
"sanitizers-cmake")))
|
||||||
|
|
||||||
|
;; Remove references to unbundled code and link against
|
||||||
|
;; external libraries instead.
|
||||||
|
(substitute* "CMakeLists.txt"
|
||||||
|
(("^\\s+add_subdirectory\\(3rdparty/googletest.*") "")
|
||||||
|
(("^(\\s+target_link_libraries.*)( gtest_main\\))"
|
||||||
|
_ prefix suffix)
|
||||||
|
(string-append prefix " gtest" suffix)))
|
||||||
|
(substitute* "gui/CMakeLists.txt"
|
||||||
|
(("^\\s+../3rdparty/(qt)?imgui.*") "")
|
||||||
|
(("^(target_link_libraries.*)\\)" _ prefix)
|
||||||
|
(string-append prefix " imgui qt_imgui_widgets)")))))))
|
||||||
|
(native-inputs
|
||||||
|
(list googletest sanitizers-cmake))
|
||||||
(inputs
|
(inputs
|
||||||
(list boost
|
(list boost
|
||||||
eigen
|
eigen
|
||||||
icestorm
|
icestorm
|
||||||
|
imgui-1.86
|
||||||
|
pybind11
|
||||||
python
|
python
|
||||||
qtbase-5
|
qtbase-5
|
||||||
|
qtimgui
|
||||||
yosys))
|
yosys))
|
||||||
(build-system cmake-build-system)
|
(build-system cmake-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
(list #:configure-flags
|
(list
|
||||||
#~(list "-DARCH=ice40"
|
#:configure-flags
|
||||||
"-DBUILD_TESTS=ON"
|
#~(list "-DARCH=ice40"
|
||||||
(string-append "-DCURRENT_GIT_VERSION="
|
"-DBUILD_TESTS=ON"
|
||||||
#$(string-take commit 8))
|
(string-append "-DCURRENT_GIT_VERSION="
|
||||||
(string-append "-DICEBOX_ROOT="
|
#$(string-take commit 8))
|
||||||
#$(this-package-input "icestorm")
|
(string-append "-DICEBOX_ROOT="
|
||||||
"/share/icebox"))))
|
#$(this-package-input "icestorm")
|
||||||
|
"/share/icebox"))
|
||||||
|
#:phases
|
||||||
|
#~(modify-phases %standard-phases
|
||||||
|
(add-after 'unpack 'patch-source
|
||||||
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
|
(substitute* "CMakeLists.txt"
|
||||||
|
;; Use the system sanitizers-cmake module.
|
||||||
|
(("\\$\\{CMAKE_SOURCE_DIR\\}/3rdparty/sanitizers-cmake/cmake")
|
||||||
|
(string-append
|
||||||
|
#$(this-package-native-input "sanitizers-cmake")
|
||||||
|
"/share/sanitizers-cmake/cmake")))
|
||||||
|
(substitute* "gui/CMakeLists.txt"
|
||||||
|
;; Compile with system imgui and qtimgui headers.
|
||||||
|
(("^(target_include_directories.*)../3rdparty/imgui(.*)$"
|
||||||
|
_ prefix suffix)
|
||||||
|
(string-append prefix
|
||||||
|
(search-input-directory inputs
|
||||||
|
"include/imgui")
|
||||||
|
suffix))
|
||||||
|
(("^(target_include_directories.*)../3rdparty/qtimgui/(.*)$"
|
||||||
|
_ prefix suffix)
|
||||||
|
(string-append prefix
|
||||||
|
(search-input-directory inputs
|
||||||
|
"include/qtimgui")
|
||||||
|
suffix))))))))
|
||||||
(synopsis "Place-and-Route tool for FPGAs")
|
(synopsis "Place-and-Route tool for FPGAs")
|
||||||
(description "Nextpnr aims to be a vendor neutral, timing driven,
|
(description "Nextpnr aims to be a vendor neutral, timing driven,
|
||||||
FOSS FPGA place and route tool.")
|
FOSS FPGA place and route tool.")
|
||||||
|
|
Loading…
Reference in a new issue