gnu: Add python-pygame.

* gnu/packages/game-development.scm (python-pygame): New variable.
This commit is contained in:
Kei Kebreau 2016-07-30 14:32:49 -04:00
parent d8841cc52e
commit 4bc37bf0c3
No known key found for this signature in database
GPG Key ID: E6A5EE3C19467A0D
1 changed files with 103 additions and 0 deletions

View File

@ -31,6 +31,7 @@
#:use-module (guix git-download)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system python)
#:use-module (gnu packages)
#:use-module (gnu packages curl)
#:use-module (gnu packages databases)
@ -41,8 +42,11 @@
#:use-module (gnu packages gnunet)
#:use-module (gnu packages guile)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages music)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages python)
#:use-module (gnu packages qt)
#:use-module (gnu packages video)
#:use-module (gnu packages compression)
#:use-module (gnu packages zip)
#:use-module (gnu packages gl)
@ -512,3 +516,102 @@ It offers the following features:
OpenGL programs with character rendering services via an application programming
interface (API).")
(license (list license:expat license:lgpl2.1+))))
(define-public python-pygame
(package
(name "python-pygame")
(version "1.9.1")
(source (origin
(method url-fetch)
(uri (string-append "http://pygame.org/ftp/pygame-"
version "release.tar.gz"))
(sha256
(base32
"0cyl0ww4fjlf289pjxa53q4klyn55ajvkgymw0qrdgp4593raq52"))))
(build-system python-build-system)
(arguments
`(#:python ,python-2
#:tests? #f ; Tests require pygame to be installed first.
#:phases
(modify-phases %standard-phases
;; Set the paths to the dependencies manually because
;; the configure script does not allow passing them as
;; parameters. This also means we can skip the configure
;; phase.
(add-before 'build 'set-library-paths
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((sdl-ref (assoc-ref inputs "sdl"))
(font-ref (assoc-ref inputs "sdl-ttf"))
(image-ref (assoc-ref inputs "sdl-image"))
(mixer-ref (assoc-ref inputs "sdl-mixer"))
(smpeg-ref (assoc-ref inputs "libsmpeg"))
(png-ref (assoc-ref inputs "libpng"))
(jpeg-ref (assoc-ref inputs "libjpeg"))
(v4l-ref (assoc-ref inputs "v4l-utils"))
(out-ref (assoc-ref outputs "out")))
(substitute* "Setup.in"
(("SDL = -I/usr/include/SDL")
(string-append "SDL = -I" sdl-ref "/include/SDL -I.")))
(substitute* "Setup.in"
(("FONT = -lSDL_ttf")
(string-append "FONT = -I" font-ref "/include/SDL -L"
font-ref "/lib -lSDL_ttf")))
(substitute* "Setup.in"
(("IMAGE = -lSDL_image")
(string-append "IMAGE = -I" image-ref "/include/SDL -L"
image-ref "/lib -lSDL_image")))
(substitute* "Setup.in"
(("MIXER = -lSDL_mixer")
(string-append "MIXER = -I" mixer-ref "/include/SDL -L"
mixer-ref "/lib -lSDL_mixer")))
(substitute* "Setup.in"
(("SMPEG = -lsmpeg")
(string-append "SMPEG = -I" smpeg-ref "/include/smpeg -L"
smpeg-ref "/lib -lsmpeg")))
(substitute* "Setup.in"
(("PNG = -lpng")
(string-append "PNG = -I" png-ref "/include -L"
png-ref "/lib -lpng")))
(substitute* "Setup.in"
(("JPEG = -ljpeg")
(string-append "JPEG = -I" jpeg-ref "/include -L"
jpeg-ref "/lib -ljpeg")))
(substitute* "Setup.in"
(("^pypm") "#pypm"))
(substitute* "src/movie.c")
;; Create a path to a header file provided by v4l-utils.
(system* "mkdir" "linux")
(system* "ln" "--symbolic"
(string-append v4l-ref "/include/libv4l1-videodev.h")
"linux/videodev.h")
(system* "ln" "--symbolic" "Setup.in" "Setup")))))))
(native-inputs
`(("python-setuptools" ,python-setuptools)))
(inputs
`(("sdl" ,sdl)
("sdl-image" ,sdl-image)
("sdl-mixer" ,sdl-mixer)
("sdl-ttf" ,sdl-ttf)
("sdl-gfx" ,sdl-gfx)
("libjpeg" ,libjpeg)
("libpng" ,libpng)
("libX11" ,libx11)
("libsmpeg" ,libsmpeg)
("portmidi" ,portmidi)
("v4l-utils" ,v4l-utils)))
(home-page "http://www.pygame.org")
(synopsis "SDL wrapper for Python")
(description "Pygame is a set of Python modules designed for writing games.
Pygame adds functionality on top of the excellent SDL library. This allows you
to create fully featured games and multimedia programs in the python language.")
(license (list license:bsd-2
;; python numeric license as listed by Debian looks like
;; an Expat-style license with a warranty disclaimer for
;; the U.S. government and the University of California.
license:expat
license:lgpl2.0+
license:lgpl2.1+
license:gpl3+
license:psfl
license:public-domain
license:lgpl2.1+))))