gnu: Add dolphin-emu.
* gnu/packages/emulators.scm (dolphin-emu): New variable.
This commit is contained in:
parent
6352e99437
commit
e5f9ec8bc3
|
@ -0,0 +1,175 @@
|
||||||
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
|
;;; Copyright © 2018 David Thompson <dthompson2@worcester.edu>
|
||||||
|
;;; Copyright © 2018 Rutger Helling <rhelling@mykolab.com>
|
||||||
|
;;;
|
||||||
|
;;; This file is part of GNU Guix.
|
||||||
|
;;;
|
||||||
|
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||||
|
;;; under the terms of the GNU General Public License as published by
|
||||||
|
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||||
|
;;; your option) any later version.
|
||||||
|
;;;
|
||||||
|
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||||
|
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
;;; GNU General Public License for more details.
|
||||||
|
;;;
|
||||||
|
;;; You should have received a copy of the GNU General Public License
|
||||||
|
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
(define-module (gnu packages emulators)
|
||||||
|
#:use-module ((guix licenses) #:prefix license:)
|
||||||
|
#:use-module (guix packages)
|
||||||
|
#:use-module (guix git-download)
|
||||||
|
#:use-module (gnu packages audio)
|
||||||
|
#:use-module (gnu packages compression)
|
||||||
|
#:use-module (gnu packages curl)
|
||||||
|
#:use-module (gnu packages fonts)
|
||||||
|
#:use-module (gnu packages fontutils)
|
||||||
|
#:use-module (gnu packages game-development)
|
||||||
|
#:use-module (gnu packages gettext)
|
||||||
|
#:use-module (gnu packages gl)
|
||||||
|
#:use-module (gnu packages glib)
|
||||||
|
#:use-module (gnu packages gtk)
|
||||||
|
#:use-module (gnu packages image)
|
||||||
|
#:use-module (gnu packages libusb)
|
||||||
|
#:use-module (gnu packages linux)
|
||||||
|
#:use-module (gnu packages pkg-config)
|
||||||
|
#:use-module (gnu packages pulseaudio)
|
||||||
|
#:use-module (gnu packages qt)
|
||||||
|
#:use-module (gnu packages sdl)
|
||||||
|
#:use-module (gnu packages tls)
|
||||||
|
#:use-module (gnu packages upnp)
|
||||||
|
#:use-module (gnu packages video)
|
||||||
|
#:use-module (gnu packages wxwidgets)
|
||||||
|
#:use-module (gnu packages xiph)
|
||||||
|
#:use-module (gnu packages xorg)
|
||||||
|
#:use-module (guix build-system cmake))
|
||||||
|
|
||||||
|
;; Building from recent Git because the official 5.0 release no longer builds.
|
||||||
|
(define-public dolphin-emu
|
||||||
|
(let ((commit "d04b179111f8d863f360839474cb82c766f762b8")
|
||||||
|
(revision "0"))
|
||||||
|
(package
|
||||||
|
(name "dolphin-emu")
|
||||||
|
(version (git-version "5.0" revision commit))
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/dolphin-emu/dolphin.git")
|
||||||
|
(commit commit)))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(modules '((guix build utils)))
|
||||||
|
(snippet
|
||||||
|
'(begin
|
||||||
|
(for-each delete-file-recursively
|
||||||
|
;; Remove external stuff we don't need.
|
||||||
|
'("Externals/LZO"
|
||||||
|
"Externals/OpenAL"
|
||||||
|
"Externals/Qt"
|
||||||
|
"Externals/SFML"
|
||||||
|
"Externals/SOIL"
|
||||||
|
"Externals/curl"
|
||||||
|
"Externals/ffmpeg"
|
||||||
|
"Externals/gettext"
|
||||||
|
"Externals/hidapi"
|
||||||
|
"Externals/libpng"
|
||||||
|
"Externals/libusb"
|
||||||
|
"Externals/mbedtls"
|
||||||
|
"Externals/miniupnpc"
|
||||||
|
"Externals/wxWidgets3"
|
||||||
|
"Externals/zlib"))
|
||||||
|
;; Clean up source.
|
||||||
|
(for-each delete-file (find-files "." "\\.bin$"))
|
||||||
|
(for-each delete-file (find-files "." "\\.dsy$"))
|
||||||
|
(for-each delete-file (find-files "." "\\.exe$"))
|
||||||
|
(for-each delete-file (find-files "." "\\.jar$"))
|
||||||
|
(for-each delete-file (find-files "." "\\.rar$"))
|
||||||
|
#t))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0g725wmhlim73zrhi47wmr1bmplpy4b7sbimd5pm8xpfhj5nm10l"))))
|
||||||
|
(build-system cmake-build-system)
|
||||||
|
(arguments
|
||||||
|
'(#:tests? #f
|
||||||
|
;; The FindGTK2 cmake script only checks hardcoded directories for
|
||||||
|
;; glib/gtk headers.
|
||||||
|
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-before 'configure 'generate-fonts
|
||||||
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||||
|
(let ((fontfile
|
||||||
|
(string-append (assoc-ref inputs "font-wqy-microhei")
|
||||||
|
"/share/fonts/truetype/wqy-microhei.ttc")))
|
||||||
|
(chdir "docs")
|
||||||
|
(invoke "bash" "-c" "g++ -O2 -std=c++11 $(freetype-config \
|
||||||
|
--cflags --libs) gc-font-tool.cpp -o gc-font-tool")
|
||||||
|
(invoke "./gc-font-tool" "a" fontfile "font_western.bin")
|
||||||
|
(invoke "./gc-font-tool" "s" fontfile "font_japanese.bin")
|
||||||
|
(copy-file "font_japanese.bin" "../Data/Sys/GC/font_japanese.bin")
|
||||||
|
(copy-file "font_western.bin" "../Data/Sys/GC/font_western.bin")
|
||||||
|
(chdir "..")
|
||||||
|
#t))))
|
||||||
|
|
||||||
|
#:configure-flags
|
||||||
|
(list (string-append "-DGTK2_GDKCONFIG_INCLUDE_DIR="
|
||||||
|
(assoc-ref %build-inputs "gtk+")
|
||||||
|
"/lib/gtk-2.0/include")
|
||||||
|
(string-append "-DGTK2_GLIBCONFIG_INCLUDE_DIR="
|
||||||
|
(assoc-ref %build-inputs "glib")
|
||||||
|
"/lib/glib-2.0/include")
|
||||||
|
(string-append "-DX11_INCLUDE_DIR="
|
||||||
|
(assoc-ref %build-inputs "libx11")
|
||||||
|
"/include")
|
||||||
|
(string-append "-DX11_LIBRARIES="
|
||||||
|
(assoc-ref %build-inputs "libx11")
|
||||||
|
"/lib/libX11.so")
|
||||||
|
"-DX11_FOUND=1")))
|
||||||
|
; TODO: Make Vulkan backend work.
|
||||||
|
(native-inputs
|
||||||
|
`(("pkg-config" ,pkg-config)
|
||||||
|
("gettext" ,gnu-gettext)))
|
||||||
|
(inputs
|
||||||
|
`(("alsa-lib" ,alsa-lib)
|
||||||
|
("ao" ,ao)
|
||||||
|
("bluez" ,bluez)
|
||||||
|
("curl" ,curl)
|
||||||
|
("eudev" ,eudev)
|
||||||
|
("ffmpeg" ,ffmpeg)
|
||||||
|
("font-wqy-microhei" ,font-wqy-microhei)
|
||||||
|
("freetype" ,freetype)
|
||||||
|
("glew" ,glew)
|
||||||
|
("glib" ,glib)
|
||||||
|
("glu" ,glu)
|
||||||
|
("gtk+" ,gtk+-2)
|
||||||
|
("hidapi" ,hidapi)
|
||||||
|
("libevdev" ,libevdev)
|
||||||
|
("libpng" ,libpng)
|
||||||
|
("libusb" ,libusb)
|
||||||
|
("libx11" ,libx11)
|
||||||
|
("libxi" ,libxi)
|
||||||
|
("libxrandr" ,libxrandr)
|
||||||
|
("lzo" ,lzo)
|
||||||
|
("mbedtls-apache" ,mbedtls-apache)
|
||||||
|
("mesa" ,mesa)
|
||||||
|
("miniupnpc" ,miniupnpc)
|
||||||
|
("openal" ,openal)
|
||||||
|
("pulseaudio" ,pulseaudio)
|
||||||
|
("qtbase" ,qtbase)
|
||||||
|
("sdl2" ,sdl2)
|
||||||
|
("sfml" ,sfml)
|
||||||
|
("soil" ,soil)
|
||||||
|
("soundtouch" ,soundtouch)
|
||||||
|
("wxwidgets" ,wxwidgets-gtk2-3.1)
|
||||||
|
("zlib" ,zlib)))
|
||||||
|
(home-page "https://dolphin-emu.org/")
|
||||||
|
(synopsis "Nintendo Wii and GameCube emulator")
|
||||||
|
(description
|
||||||
|
"Dolphin is an emulator for two Nintendo video game consoles: the
|
||||||
|
GameCube and the Wii. It provides compatibility with all PC controllers,
|
||||||
|
turbo speed, networked multiplayer, and graphical enhancements.")
|
||||||
|
(supported-systems '("x86_64-linux")) ; TODO: should also work on ARM64.
|
||||||
|
; dolphin/Data/Sys/GC/font_*.bin: Licensed under ASL2.0.
|
||||||
|
(license (list license:gpl2+ license:asl2.0 license:fdl1.2+)))))
|
Loading…
Reference in New Issue