summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2015-08-08 13:49:04 -0700
committerRobin H. Johnson <robbat2@gentoo.org>2015-08-08 17:38:18 -0700
commit56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch)
tree3f91093cdb475e565ae857f1c5a7fd339e2d781e /media-gfx/k3d
downloadgentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip
proj/gentoo: Initial commit
This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'media-gfx/k3d')
-rw-r--r--media-gfx/k3d/Manifest1
-rw-r--r--media-gfx/k3d/files/k3d-0.7.11.0-cuda.patch52
-rw-r--r--media-gfx/k3d/files/k3d-0.7.11.0-fix-potfiles.patch19
-rw-r--r--media-gfx/k3d/files/k3d-0.7.11.0-gcc44.patch60
-rw-r--r--media-gfx/k3d/files/k3d-0.7.11.0-gcc47.patch87
-rw-r--r--media-gfx/k3d/files/k3d-0.7.11.0-gtk-liststore-vs-treemodel.patch40
-rw-r--r--media-gfx/k3d/files/k3d-0.7.11.0-libpng14.patch54
-rw-r--r--media-gfx/k3d/k3d-0.7.11.0-r1.ebuild112
-rw-r--r--media-gfx/k3d/metadata.xml15
9 files changed, 440 insertions, 0 deletions
diff --git a/media-gfx/k3d/Manifest b/media-gfx/k3d/Manifest
new file mode 100644
index 000000000000..fb885419a277
--- /dev/null
+++ b/media-gfx/k3d/Manifest
@@ -0,0 +1 @@
+DIST k3d-source-0.7.11.0.tar.gz 7692200 SHA256 c6364cb9e989f2ac2412541c2a4368279b23e728822ab7e6b5390d579dd49008 SHA512 023dcdfd4e35c4444b07e2d674824fdc31842847a0f8393641359b25fc3f3a127adf2279606d0322e24c3e66d59709624dcf128eda4260296da2c3dc42d0ac43 WHIRLPOOL e50b07d93b7689454999ec125990871c72f803ba75ae6373f1a201f2393b4fcbd90e3f2b49eca610bbb26a3cf4c4934a0108ed250b2830d58a9d98b92883a99b
diff --git a/media-gfx/k3d/files/k3d-0.7.11.0-cuda.patch b/media-gfx/k3d/files/k3d-0.7.11.0-cuda.patch
new file mode 100644
index 000000000000..56beb0badfc9
--- /dev/null
+++ b/media-gfx/k3d/files/k3d-0.7.11.0-cuda.patch
@@ -0,0 +1,52 @@
+http://k3d.svn.sourceforge.net/viewvc/k3d/trunk/modules/cuda/cuda_mesh_subdivide_edges.cpp?view=patch&r1=1782&r2=1820
+
+--- trunk/modules/cuda/cuda_mesh_subdivide_edges.cpp 2009/03/14 19:27:16 1782
++++ trunk/modules/cuda/cuda_mesh_subdivide_edges.cpp 2009/03/22 22:32:10 1820
+@@ -23,6 +23,7 @@
+ \author Evan Lezar (evanlezar@gmail.com)
+ */
+
++#include <k3dsdk/attribute_array_copier.h>
+ #include <k3dsdk/basic_math.h>
+ #include <k3dsdk/document_plugin_factory.h>
+ #include <k3dsdk/imaterial.h>
+@@ -30,8 +31,8 @@
+ #include <k3dsdk/measurement.h>
+ #include <k3dsdk/mesh_modifier.h>
+ #include <k3dsdk/mesh_selection_sink.h>
+-#include <k3dsdk/attribute_array_copier.h>
+ #include <k3dsdk/node.h>
++#include <k3dsdk/polyhedron.h>
+ #include <k3dsdk/selection.h>
+ #include <k3dsdk/utility.h>
+ #include <k3dsdk/vectors.h>
+@@ -41,6 +42,8 @@
+ #include "cuda_device_mesh.h"
+ #include "cuda_mesh_topology_data.h"
+
++#include <boost/scoped_ptr.hpp>
++
+ namespace module
+ {
+
+@@ -159,7 +162,8 @@
+
+ // If there are no valid polyhedra, we give up
+ document().pipeline_profiler().start_execution(*this, "Create:Validate input");
+- if(!k3d::validate_polyhedra(Input))
++ boost::scoped_ptr<k3d::polyhedron::const_primitive> polyhedron(k3d::polyhedron::validate(Input));
++ if(!polyhedron)
+ {
+ document().pipeline_profiler().finish_execution(*this, "Create:Validate input");
+ return;
+@@ -297,7 +301,8 @@
+ {
+ document().pipeline_profiler().start_execution(*this, "Update:Validate input");
+
+- if(!k3d::validate_polyhedra(Input))
++ boost::scoped_ptr<k3d::polyhedron::const_primitive> polyhedron(k3d::polyhedron::validate(Input));
++ if(!polyhedron)
+ {
+ document().pipeline_profiler().finish_execution(*this, "Update:Validate input");
+ return;
+
diff --git a/media-gfx/k3d/files/k3d-0.7.11.0-fix-potfiles.patch b/media-gfx/k3d/files/k3d-0.7.11.0-fix-potfiles.patch
new file mode 100644
index 000000000000..fcba656da5cb
--- /dev/null
+++ b/media-gfx/k3d/files/k3d-0.7.11.0-fix-potfiles.patch
@@ -0,0 +1,19 @@
+--- a/po/POTFILES.in 2009-03-20 05:29:03.000000000 +0900
++++ b/po/POTFILES.in 2009-03-21 16:58:26.811108311 +0900
+@@ -217,7 +217,6 @@
+ modules/mesh/merge_collinear_edges.cpp
+ modules/mesh/merge_coplanar_faces.cpp
+ modules/mesh/merge_mesh.cpp
+-modules/mesh/mesh_stats.cpp
+ modules/mesh/move_first_edge.cpp
+ modules/mesh/sds_corner.cpp
+ modules/mesh/sds_crease.cpp
+@@ -531,3 +530,7 @@
+ uimodules/qtui/user_interface.cpp
+ k3dsdk/mesh_writer.h
+ modules/ply_io/mesh_writer.cpp
++modules/lipsync/papagayo_lipsync_reader.cpp
++modules/named_arrays/named_text_array.cpp
++modules/ngui_python_shell/dialog.cpp
++modules/xtrackcad/document_importer.cpp
+
diff --git a/media-gfx/k3d/files/k3d-0.7.11.0-gcc44.patch b/media-gfx/k3d/files/k3d-0.7.11.0-gcc44.patch
new file mode 100644
index 000000000000..6917170b8cbc
--- /dev/null
+++ b/media-gfx/k3d/files/k3d-0.7.11.0-gcc44.patch
@@ -0,0 +1,60 @@
+--- k3d-source-0.7.11.0/k3dsdk/gzstream.cpp~ 2009-03-19 21:28:50.000000000 +0100
++++ k3d-source-0.7.11.0/k3dsdk/gzstream.cpp 2009-03-22 22:19:03.000000000 +0100
+@@ -29,6 +29,7 @@
+ #include "gzstream.h"
+ #include "path.h"
+
++#include <stdio.h>
+ #include <zlib.h>
+ #include <string.h>
+
+--- k3d-source-0.7.11.0/k3dsdk/gil/boost/gil/color_base_algorithm.hpp~ 2009-03-19 21:28:53.000000000 +0100
++++ k3d-source-0.7.11.0/k3dsdk/gil/boost/gil/color_base_algorithm.hpp 2009-03-22 22:33:45.000000000 +0100
+@@ -70,7 +70,7 @@
+ template <typename ColorBase, int K> struct kth_semantic_element_reference_type {
+ BOOST_STATIC_CONSTANT(int, semantic_index = (mpl::at_c<typename ColorBase::layout_t::channel_mapping_t,K>::type::value));
+ typedef typename ColorBase::template kth_element_reference_type<semantic_index>::type type;
+- static type get(ColorBase& cb) { return at_c<semantic_index>(cb); }
++ static type get(ColorBase& cb) { return boost::gil::at_c<semantic_index>(cb); }
+ };
+
+ /// \brief Specifies the return type of the constant semantic_at_c<K>(color_base);
+@@ -78,7 +78,7 @@
+ template <typename ColorBase, int K> struct kth_semantic_element_const_reference_type {
+ BOOST_STATIC_CONSTANT(int, semantic_index = (mpl::at_c<typename ColorBase::layout_t::channel_mapping_t,K>::type::value));
+ typedef typename ColorBase::template kth_element_const_reference_type<semantic_index>::type type;
+- static type get(const ColorBase& cb) { return at_c<semantic_index>(cb); }
++ static type get(const ColorBase& cb) { return boost::gil::at_c<semantic_index>(cb); }
+ };
+
+ /// \brief A mutable accessor to the K-th semantic element of a color base
+--- k3d-source-0.7.11.0/k3dsdk/path.cpp~ 2009-03-19 21:28:55.000000000 +0100
++++ k3d-source-0.7.11.0/k3dsdk/path.cpp 2009-03-22 22:48:31.000000000 +0100
+@@ -24,6 +24,7 @@
+ #include "result.h"
+ #include "system.h"
+
++#include <stdio.h>
+ #include <glibmm/convert.h>
+
+ #ifdef K3D_API_WIN32
+--- k3d-source-0.7.11.0/modules/inotify/inotify-cxx.cpp~ 2009-03-19 21:29:01.000000000 +0100
++++ k3d-source-0.7.11.0/modules/inotify/inotify-cxx.cpp 2009-03-22 23:16:31.000000000 +0100
+@@ -20,6 +20,7 @@
+ */
+
+
++#include <stdio.h>
+ #include <errno.h>
+ #include <unistd.h>
+ #include <fcntl.h>
+--- k3d-source-0.7.11.0/modules/pdiff/Metric.cpp~ 2009-03-19 21:29:02.000000000 +0100
++++ k3d-source-0.7.11.0/modules/pdiff/Metric.cpp 2009-03-22 23:34:09.000000000 +0100
+@@ -19,6 +19,7 @@
+ #include "RGBAImage.h"
+ #include "LPyramid.h"
+ #include <math.h>
++#include <stdio.h>
+
+ #ifndef M_PI
+ #define M_PI 3.14159265f
diff --git a/media-gfx/k3d/files/k3d-0.7.11.0-gcc47.patch b/media-gfx/k3d/files/k3d-0.7.11.0-gcc47.patch
new file mode 100644
index 000000000000..56603d2d2b1b
--- /dev/null
+++ b/media-gfx/k3d/files/k3d-0.7.11.0-gcc47.patch
@@ -0,0 +1,87 @@
+--- k3d-source-0.8.0.2/k3dsdk/gil/boost/gil/extension/dynamic_image/apply_operation_base.hpp 2010-07-02 23:27:47.000000000 -0300
++++ k3d-source-0.8.0.2_patched/k3dsdk/gil/boost/gil/extension/dynamic_image/apply_operation_base.hpp 2012-09-14 15:48:20.000000000 -0300
+@@ -114,7 +114,7 @@
+ template <typename T2, typename Op>
+ struct reduce_bind1 {
+ const T2& _t2;
+- mutable Op& _op;
++ Op& _op;
+
+ typedef typename Op::result_type result_type;
+
+@@ -127,7 +127,7 @@
+ struct reduce_bind2 {
+ const Bits1& _bits1;
+ std::size_t _index1;
+- mutable Op& _op;
++ Op& _op;
+
+ typedef typename Op::result_type result_type;
+
+--- k3d-source-0.8.0.2/k3dsdk/data.h 2010-07-02 23:27:46.000000000 -0300
++++ k3d-source-0.8.0.2_patched/k3dsdk/data.h 2012-09-14 16:50:20.000000000 -0300
+@@ -580,7 +580,7 @@
+
+ try
+ {
+- set_value(boost::lexical_cast<value_t>(*new_value), Hint);
++ this->set_value(boost::lexical_cast<value_t>(*new_value), Hint);
+ return true;
+ }
+ catch(...)
+@@ -865,7 +865,7 @@
+
+ try
+ {
+- set_value(boost::lexical_cast<value_t>(*new_value), Hint);
++ this->set_value(boost::lexical_cast<value_t>(*new_value), Hint);
+ return true;
+ }
+ catch(...)
+@@ -1011,7 +1011,7 @@
+
+ try
+ {
+- set_value(boost::lexical_cast<value_t>(*new_value), Hint);
++ this->set_value(boost::lexical_cast<value_t>(*new_value), Hint);
+ return true;
+ }
+ catch(...)
+@@ -1146,7 +1146,7 @@
+ if(!new_value)
+ return false;
+
+- set_value(*new_value, Hint);
++ this->set_value(*new_value, Hint);
+ return true;
+ }
+
+@@ -1671,7 +1671,7 @@
+ /// This little bit of magic makes it possible for base classes (such as node_storage) to update their own values while observing the correct undo policy
+ void internal_set_value(const value_t& Value, ihint* const Hint)
+ {
+- set_value(Value, Hint);
++ this->set_value(Value, Hint);
+ }
+ };
+
+--- k3d-source-0.8.0.2/modules/animation/interpolator.h 2010-07-02 23:27:55.000000000 -0300
++++ k3d-source-0.8.0.2_patched/modules/animation/interpolator.h 2012-09-14 16:45:16.000000000 -0300
+@@ -92,7 +92,7 @@
+ {
+ time_t t_lower, t_upper;
+ value_t v_lower, v_upper;
+- get_surrounding_keys(Time, Keyframes, t_lower, t_upper, v_lower, v_upper);
++ this->get_surrounding_keys(Time, Keyframes, t_lower, t_upper, v_lower, v_upper);
+ return lerp(t_lower, t_upper, v_lower, v_upper, Time);
+ }
+ protected:
+@@ -116,7 +116,7 @@
+ {
+ time_t t_lower, t_upper;
+ value_t v_lower, v_upper;
+- get_surrounding_keys(Time, Keyframes, t_lower, t_upper, v_lower, v_upper);
++ this->get_surrounding_keys(Time, Keyframes, t_lower, t_upper, v_lower, v_upper);
+ return lerp(t_lower, t_upper, v_lower, v_upper, Time);
+ }
+ protected:
diff --git a/media-gfx/k3d/files/k3d-0.7.11.0-gtk-liststore-vs-treemodel.patch b/media-gfx/k3d/files/k3d-0.7.11.0-gtk-liststore-vs-treemodel.patch
new file mode 100644
index 000000000000..b0c5d8a738e5
--- /dev/null
+++ b/media-gfx/k3d/files/k3d-0.7.11.0-gtk-liststore-vs-treemodel.patch
@@ -0,0 +1,40 @@
+--- a/k3dsdk/ngui/main_document_window.cpp 2009-03-19 16:28:51.000000000 -0400
++++ b/k3dsdk/ngui/main_document_window.cpp 2012-06-01 12:26:53.000000000 -0400
+@@ -1569,7 +1569,7 @@
+ Gtk::HBox import_box(false, 5);
+ Gtk::Label import_label(_("Choose import plugin:"));
+
+- Gtk::ComboBox import_combo(model);
++ Gtk::ComboBox import_combo((Glib::RefPtr<Gtk::TreeModel> &)model);
+ import_combo.pack_start(columns.icon, false);
+ import_combo.pack_start(columns.label);
+ import_combo.set_active(0);
+@@ -1659,7 +1659,7 @@
+ Gtk::HBox export_box(false, 5);
+ Gtk::Label export_label(_("Choose export plugin:"));
+
+- Gtk::ComboBox export_combo(model);
++ Gtk::ComboBox export_combo((Glib::RefPtr<Gtk::TreeModel> &)model);
+ export_combo.pack_start(columns.icon, false);
+ export_combo.pack_start(columns.label);
+ export_combo.set_active(0);
+--- a/k3dsdk/ngui/render.cpp 2009-03-19 16:28:51.000000000 -0400
++++ b/k3dsdk/ngui/render.cpp 2012-06-01 12:38:09.000000000 -0400
+@@ -162,7 +162,7 @@
+ row[columns.separator] = false;
+ }
+
+- Gtk::ComboBox combo(model);
++ Gtk::ComboBox combo((Glib::RefPtr<Gtk::TreeModel> &)model);
+
+ combo.pack_start(columns.icon, false);
+
+@@ -286,7 +286,7 @@
+ row[columns.separator] = false;
+ }
+
+- Gtk::ComboBox combo(model);
++ Gtk::ComboBox combo((Glib::RefPtr<Gtk::TreeModel> &)model);
+
+ combo.pack_start(columns.icon, false);
+
diff --git a/media-gfx/k3d/files/k3d-0.7.11.0-libpng14.patch b/media-gfx/k3d/files/k3d-0.7.11.0-libpng14.patch
new file mode 100644
index 000000000000..6396ffc156ee
--- /dev/null
+++ b/media-gfx/k3d/files/k3d-0.7.11.0-libpng14.patch
@@ -0,0 +1,54 @@
+diff -ur k3d-source-0.7.11.0.orig/k3dsdk/gil/boost/gil/extension/io/png_io_private.hpp k3d-source-0.7.11.0/k3dsdk/gil/boost/gil/extension/io/png_io_private.hpp
+--- k3d-source-0.7.11.0.orig/k3dsdk/gil/boost/gil/extension/io/png_io_private.hpp 2009-03-19 22:28:53.000000000 +0200
++++ k3d-source-0.7.11.0/k3dsdk/gil/boost/gil/extension/io/png_io_private.hpp 2010-05-12 12:21:50.000000000 +0300
+@@ -148,12 +148,12 @@
+ // allocate/initialize the image information data
+ _info_ptr = png_create_info_struct(_png_ptr);
+ if (_info_ptr == NULL) {
+- png_destroy_read_struct(&_png_ptr,png_infopp_NULL,png_infopp_NULL);
++ png_destroy_read_struct(&_png_ptr,NULL,NULL);
+ io_error("png_get_file_size: fail to call png_create_info_struct()");
+ }
+ if (setjmp(png_jmpbuf(_png_ptr))) {
+ //free all of the memory associated with the png_ptr and info_ptr
+- png_destroy_read_struct(&_png_ptr, &_info_ptr, png_infopp_NULL);
++ png_destroy_read_struct(&_png_ptr, &_info_ptr, NULL);
+ io_error("png_get_file_size: fail to call setjmp()");
+ }
+ png_init_io(_png_ptr, get());
+@@ -165,7 +165,7 @@
+ png_reader(const char* filename) : file_mgr(filename, "rb") { init(); }
+
+ ~png_reader() {
+- png_destroy_read_struct(&_png_ptr,&_info_ptr,png_infopp_NULL);
++ png_destroy_read_struct(&_png_ptr,&_info_ptr,NULL);
+ }
+ point2<std::ptrdiff_t> get_dimensions() {
+ return point2<std::ptrdiff_t>(png_get_image_width(_png_ptr,_info_ptr),
+@@ -177,7 +177,7 @@
+ int bit_depth, color_type, interlace_type;
+ png_get_IHDR(_png_ptr, _info_ptr,
+ &width, &height,&bit_depth,&color_type,&interlace_type,
+- int_p_NULL, int_p_NULL);
++ (int *) NULL, (int *) NULL);
+ io_error_if(((png_uint_32)view.width()!=width || (png_uint_32)view.height()!= height),
+ "png_read_view: input view size does not match PNG file size");
+
+@@ -219,7 +219,7 @@
+ int bit_depth, color_type, interlace_type;
+ png_get_IHDR(_png_ptr, _info_ptr,
+ &width, &height,&bit_depth,&color_type,&interlace_type,
+- int_p_NULL, int_p_NULL);
++ (int *) NULL, (int *) NULL);
+ io_error_if(((png_uint_32)view.width()!=width || (png_uint_32)view.height()!= height),
+ "png_reader_color_convert::apply(): input view size does not match PNG file size");
+ switch (color_type) {
+@@ -308,7 +308,7 @@
+ io_error_if(!_png_ptr,"png_write_initialize: fail to call png_create_write_struct()");
+ _info_ptr = png_create_info_struct(_png_ptr);
+ if (!_info_ptr) {
+- png_destroy_write_struct(&_png_ptr,png_infopp_NULL);
++ png_destroy_write_struct(&_png_ptr,NULL);
+ io_error("png_write_initialize: fail to call png_create_info_struct()");
+ }
+ if (setjmp(png_jmpbuf(_png_ptr))) {
diff --git a/media-gfx/k3d/k3d-0.7.11.0-r1.ebuild b/media-gfx/k3d/k3d-0.7.11.0-r1.ebuild
new file mode 100644
index 000000000000..3973ccbcde34
--- /dev/null
+++ b/media-gfx/k3d/k3d-0.7.11.0-r1.ebuild
@@ -0,0 +1,112 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+
+inherit eutils cmake-utils flag-o-matic
+
+MY_P="${PN}-source-${PV}"
+
+DESCRIPTION="A free 3D modeling, animation, and rendering system"
+HOMEPAGE="http://www.k-3d.org/"
+SRC_URI="mirror://sourceforge/k3d/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="3ds cuda gnome graphviz gts imagemagick jpeg nls openexr png python tiff truetype" #TODO cgal tbb
+
+RDEPEND="
+ dev-libs/boost[python]
+ >=dev-cpp/glibmm-2.6:2
+ >=dev-cpp/gtkmm-2.6:2.4
+ dev-libs/expat
+ >=dev-libs/libsigc++-2.2:2
+ media-libs/mesa
+ virtual/glu
+ virtual/opengl
+ >=x11-libs/gtkglext-1.0.6-r3
+ x11-libs/libICE
+ x11-libs/libSM
+ x11-libs/libXmu
+ x11-libs/libXt
+ 3ds? ( media-libs/lib3ds )
+ cuda? ( dev-util/nvidia-cuda-toolkit )
+ gnome? ( gnome-base/libgnome )
+ graphviz? ( media-gfx/graphviz )
+ gts? ( sci-libs/gts )
+ imagemagick? ( media-gfx/imagemagick )
+ jpeg? ( virtual/jpeg )
+ openexr? ( media-libs/openexr )
+ png? ( >=media-libs/libpng-1.2.43-r2 )
+ python? ( >=dev-lang/python-2.3 dev-python/cgkit )
+ tiff? ( media-libs/tiff )
+ truetype? ( >=media-libs/freetype-2 )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ nls? ( sys-devel/gettext )"
+
+S="${WORKDIR}/${MY_P}"
+
+DOCS="AUTHORS README"
+
+# k3d_use_enable()
+#
+# $1: use flag. ON|OFF is determined by this.
+# $2: part of cmake variable name which appended to the base variable name
+# that is -DK3D_BUILD_$2
+#
+# e.g.) k3d_use_enable gnome GNOME_MODULE #=> -DK3D_BUILD_GNOME_MODULE=ON
+#
+k3d_use_enable() {
+ echo "-DK3D_BUILD_$2=$(use $1 && echo ON || echo OFF)"
+}
+
+k3d_use_module() {
+ echo "-DK3D_BUILD_$2_MODULE=$(use $1 && echo ON || echo OFF)"
+}
+
+src_prepare() {
+ sed -i \
+ -e '/PKG_CHECK_MODULES/s:libpng12:libpng:' \
+ cmake/modules/K3DFindPNG.cmake || die
+
+ epatch "${FILESDIR}"/${P}-libpng14.patch
+
+ epatch "${FILESDIR}"/${P}-fix-potfiles.patch \
+ "${FILESDIR}"/${P}-cuda.patch \
+ "${FILESDIR}"/${P}-gcc44.patch \
+ "${FILESDIR}"/${P}-gtk-liststore-vs-treemodel.patch \
+ "${FILESDIR}"/${P}-gcc47.patch
+
+ [[ -f CMakeCache.txt ]] && rm CMakeCache.txt
+}
+
+src_configure() {
+ if [[ $(gcc-major-version) -lt 4 ]]; then
+ append-cxxflags -fno-stack-protector
+ fi
+
+ mycmakeargs="
+ -DK3D_BUILD_SVG_IO_MODULE=ON
+ -DK3D_BUILD_CGAL_MODULE=OFF
+ $(k3d_use_module 3ds 3DS_IO)
+ $(k3d_use_module cuda CUDA)
+ $(k3d_use_module gnome GNOME)
+ $(k3d_use_module graphviz GRAPHVIZ)
+ $(k3d_use_module gts GTS)
+ $(k3d_use_module gts GTS_IO)
+ $(k3d_use_module imagemagick IMAGEMAGICK_IO)
+ $(k3d_use_module jpeg JPEG_IO)
+ $(k3d_use_enable nls NLS)
+ $(k3d_use_module openexr OPENEXR_IO)
+ $(k3d_use_module png PNG_IO)
+ $(k3d_use_module python PYTHON)
+ $(k3d_use_module python PYUI)
+ $(k3d_use_module python NGUI_PYTHON_SHELL)
+ $(k3d_use_module tiff TIFF_IO)
+ $(k3d_use_module truetype FREETYPE2)"
+
+ cmake-utils_src_configure
+}
diff --git a/media-gfx/k3d/metadata.xml b/media-gfx/k3d/metadata.xml
new file mode 100644
index 000000000000..87f8ff1d8484
--- /dev/null
+++ b/media-gfx/k3d/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>graphics</herd>
+ <use>
+ <flag name="3ds">Enable support for 3D Studio models</flag>
+ <flag name="cuda">Use nvidia cuda toolkit for speeding up
+ computations</flag>
+ <flag name="gts">Add Support for the GNU Triangulated Surface Library
+ <pkg>sci-libs/gts</pkg></flag>
+ </use>
+ <upstream>
+ <remote-id type="sourceforge">k3d</remote-id>
+ </upstream>
+</pkgmetadata>