aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/animation.scm
diff options
context:
space:
mode:
authorRicardo Wurmus <rekado@elephly.net>2015-11-16 18:34:30 +0100
committerRicardo Wurmus <rekado@elephly.net>2015-11-20 20:23:03 +0100
commit7775a1869084d8ffdd3497b7ebfc88f9af128ccc (patch)
treed9543b0c6c4f5a538a65c8d9bd8035f531e5c20f /gnu/packages/animation.scm
parentc1fbc66a7701937966d1b376c2de4b5179aa05f7 (diff)
downloadguix-7775a1869084d8ffdd3497b7ebfc88f9af128ccc.tar
guix-7775a1869084d8ffdd3497b7ebfc88f9af128ccc.tar.gz
gnu: Add Synfig.
* gnu/packages/animation.scm (synfig): New variable. * gnu/packages/patches/synfig-build-fix.patch: New file. * gnu-system.am (dist_patch_DATA): Add it.
Diffstat (limited to 'gnu/packages/animation.scm')
-rw-r--r--gnu/packages/animation.scm85
1 files changed, 84 insertions, 1 deletions
diff --git a/gnu/packages/animation.scm b/gnu/packages/animation.scm
index 9718123a75..1c00ec1660 100644
--- a/gnu/packages/animation.scm
+++ b/gnu/packages/animation.scm
@@ -22,7 +22,18 @@
#:use-module (guix utils)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix build-system gnu)
- #:use-module (gnu packages))
+ #:use-module (gnu packages)
+ #:use-module (gnu packages boost)
+ #:use-module (gnu packages compression)
+ #:use-module (gnu packages fontutils)
+ #:use-module (gnu packages glib)
+ #:use-module (gnu packages gnome)
+ #:use-module (gnu packages graphics)
+ #:use-module (gnu packages gtk)
+ #:use-module (gnu packages image)
+ #:use-module (gnu packages imagemagick)
+ #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages video))
(define-public etl
(package
@@ -45,3 +56,75 @@ functions which combine well with the existing types and functions from the
C++ @dfn{Standard Template Library} (STL).")
(license license:gpl3+)))
+(define-public synfig
+ (package
+ (name "synfig")
+ (version "1.0.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/synfig/releases/"
+ version "/source/synfig-" version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "1d3z2r78j3rkff47q3wl0ami69y3l4nyi5r9zclymb8ar7mgkk9l"))
+ (patches (list (search-patch "synfig-build-fix.patch")))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:configure-flags
+ ;; The Boost library path is taken from the value of BOOST_LDFLAGS.
+ (list (string-append "BOOST_LDFLAGS=-L"
+ (assoc-ref %build-inputs "boost")
+ "/lib"))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'adapt-to-libxml++-changes
+ (lambda _
+ (substitute* "configure"
+ (("libxml\\+\\+-2\\.6") "libxml++-3.0"))
+ (substitute* (append (find-files "src/modules/" "\\.cpp$")
+ (find-files "src/synfig/" "\\.(cpp|h)$"))
+ (("add_child\\(") "add_child_element(")
+ (("get_child_text\\(") "get_first_child_text(")
+ (("set_child_text\\(") "set_first_child_text(")
+ (("remove_child\\(") "remove_node("))
+ (substitute* "src/modules/mod_svg/svg_parser.cpp"
+ (("xmlpp::Node::NodeList") "xmlpp::Node::const_NodeList"))
+ #t))
+ (add-before 'configure 'set-flags
+ (lambda _
+ ;; Compile with C++11, required by libsigc++.
+ (setenv "CXXFLAGS" "-D__STDC_CONSTANT_MACROS -std=gnu++11")
+ #t)))))
+ (inputs
+ `(("boost" ,boost)
+ ("ffmpeg" ,ffmpeg)
+ ("libdv" ,libdv)
+ ("libjpeg" ,libjpeg)
+ ("libpng" ,libpng)
+ ("libmng" ,libmng)
+ ("zlib" ,zlib)))
+ ;; synfig.pc lists the following as required: Magick++ freetype2
+ ;; fontconfig OpenEXR ETL glibmm-2.4 giomm-2.4 libxml++-3.0 sigc++-2.0
+ ;; cairo pango pangocairo mlt++
+ (propagated-inputs
+ `(("cairo" ,cairo)
+ ("etl" ,etl)
+ ("fontconfig" ,fontconfig)
+ ("freetype" ,freetype)
+ ("glibmm" ,glibmm)
+ ("imagemagick" ,imagemagick)
+ ("libxml++" ,libxml++)
+ ("libsigc++" ,libsigc++)
+ ("mlt" ,mlt)
+ ("openexr" ,openexr)
+ ("pango" ,pango)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (home-page "http://www.synfig.org")
+ (synopsis "Vector-based 2D animation renderer")
+ (description
+ "Synfig is a vector-based 2D animation package. It is designed to be
+capable of producing feature-film quality animation. It eliminates the need
+for tweening, preventing the need to hand-draw each frame.")
+ (license license:gpl3+)))