From fad22f09b638fb46bf49a68ec0219fc4cf7c35fa Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 13 Aug 2020 12:17:56 +0300 Subject: gnu: Add qtmips. * gnu/packages/emulators.scm (qtmips): New variable. --- gnu/packages/emulators.scm | 60 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 59 insertions(+), 1 deletion(-) (limited to 'gnu/packages/emulators.scm') diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm index 1cf1c433dc..2909819153 100644 --- a/gnu/packages/emulators.scm +++ b/gnu/packages/emulators.scm @@ -5,7 +5,7 @@ ;;; Copyright © 2015, 2016 Taylan Ulrich Bayırlı/Kammer ;;; Copyright © 2015, 2018 David Thompson ;;; Copyright © 2016 Manolis Fragkiskos Ragkousis -;;; Copyright © 2016, 2017, 2018 Efraim Flashner +;;; Copyright © 2016, 2017, 2018, 2020 Efraim Flashner ;;; Copyright © 2017, 2018, 2019, 2020 Nicolas Goaziou ;;; Copyright © 2017, 2020 Tobias Geerinckx-Rice ;;; Copyright © 2017, 2018, 2019 Rutger Helling @@ -279,6 +279,64 @@ SoundBlaster/Gravis Ultra Sound card for excellent sound compatibility with older games.") (license license:gpl2+))) +(define-public qtmips + (package + (name "qtmips") + (version "0.7.3") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cvut/QtMips") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1khvwgqz4h6q6mhbbq0yx43ajz8gx9wmwzs8784vmfrglndbxgax")))) + (build-system cmake-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (invoke "qmake" + (string-append "PREFIX=" (assoc-ref outputs "out")) + "qtmips.pro"))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (substitute* "tests/test.sh" + (("qtchooser.*") "")) + (substitute* '("tests/cpu_trap/test.sh" + "tests/registers/test.sh") + (("sub-qtmips_cli") "qtmips_cli")) + (if tests? + (invoke "tests/run-all.sh") + #t))) + (replace 'install + ;; There is no install target. + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (apps (string-append out "/share/applications")) + (icons (string-append out "/share/icons/hicolor"))) + (install-file "qtmips_gui/qtmips_gui" bin) + (install-file "qtmips_cli/qtmips_cli" bin) + (install-file "data/qtmips.desktop" apps) + (install-file "data/icons/qtmips_gui.svg" + (string-append icons "/scalable/apps")) + (install-file "data/icons/qtmips_gui.png" + (string-append icons "/48x48/apps")) + #t)))) + #:tests? #f)) ; test suite wants mips toolchain + (inputs + `(("elfutils" ,elfutils) + ("qtbase" ,qtbase))) + (home-page "https://github.com/cvut/QtMips") + (synopsis "MIPS CPU emulator") + (description "This package contains a MIPS CPU emulator. The simulator +accepts ELF statically linked executables compiled for 32-bit big-endian +MIPS target, targeting mips-linux-gnu or mips-elf.") + (license license:gpl2+))) ; License file says GPL3 + (define-public emulation-station ;; No release for a long time, new commits fix build issues (let ((commit "9cc42adff67946175d2b7e25c6ae69cc374e98a0") -- cgit v1.2.3