summaryrefslogtreecommitdiff
blob: c07fec46f26468f942cea48d86cfb7171fc4b529 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
# Copyright 1999-2007 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/media-gfx/blender/blender-2.43.ebuild,v 1.9 2007/07/22 10:04:27 dberkholz Exp $

inherit multilib flag-o-matic eutils python

#IUSE="jpeg mozilla png sdl static truetype"
IUSE="blender-game ffmpeg jpeg nls openal openexr png sdl"
FFMPEG_SNAP="0.4.9-p20070330"
DESCRIPTION="3D Creation/Animation/Publishing System"
HOMEPAGE="http://www.blender.org/"
SRC_URI="http://download.blender.org/source/${P}.tar.gz
		 ffmpeg? ( mirror://gentoo/ffmpeg-${FFMPEG_SNAP}.tar.bz2 )"

SLOT="0"
LICENSE="|| ( GPL-2 BL )"
KEYWORDS="~amd64 ppc ppc64 ~sparc x86"

RDEPEND=">=dev-libs/openssl-0.9.6
	ffmpeg? ( >=media-video/ffmpeg-${FFMPEG_SNAP/-/_}
			>=media-libs/x264-svn-20061014 )
	jpeg? ( media-libs/jpeg )
	media-libs/tiff
	nls? ( >=media-libs/freetype-2.0
			virtual/libintl
			>=media-libs/ftgl-2.1 )
	openal? ( media-libs/openal
			media-libs/freealut )
	openexr? ( media-libs/openexr )
	png? ( media-libs/libpng )
	sdl? ( >=media-libs/libsdl-1.2 )
	virtual/opengl"

DEPEND="dev-util/scons
	x11-libs/libXt
	${RDEPEND}"

blend_with() {
	local UWORD="$2"
	if [ -z "${UWORD}" ]; then
		UWORD="$1"
	fi
	if useq $1; then
		echo "WITH_BF_${UWORD}=1" | tr '[:lower:]' '[:upper:]' \
			>> ${S}/user-config.py
	else
		echo "WITH_BF_${UWORD}=0" | tr '[:lower:]' '[:upper:]' \
			>> ${S}/user-config.py
	fi
	return 0
}

src_unpack() {
	unpack ${A}
	cd ${S}/release/plugins
	chmod 755 bmake
	rmdir include
	cp -pPR ${S}/source/blender/blenpluginapi include

	cd ${S}
	epatch ${FILESDIR}/blender-2.37-dirs.patch

	if use ffmpeg ; then
		cd ${S}/extern
		mv ffmpeg/Makefile ffmpeg/common.mak ${T}
		unpack ffmpeg-${FFMPEG_SNAP}.tar.bz2
		mv ${T}/Makefile ${T}/common.mak ffmpeg
	fi
	# pass compiler flags to the scons build system
	echo "CFLAGS += '${CFLAGS}'" >> ${S}/user-config.py
	echo "CCFLAGS += ['${CXXFLAGS//' '/','}','-DYESIAMSTUPID']" \
								 >> ${S}/user-config.py
	# disable blender-player and iconv
	# echo "WITH_BF_PLAYER=0" >> ${S}/user-config.py
	# echo "WITH_BF_ICONV=0" >> ${S}/user-config.py
}

src_compile() {
	myconf="${myconf} $(blend_with openal)"
	myconf="${myconf} $(blend_with openexr)"
	myconf="${myconf} $(blend_with jpeg)"
	myconf="${myconf} $(blend_with ffmpeg)"
	myconf="${myconf} $(blend_with png)"
	myconf="${myconf} $(blend_with nls international)"
	myconf="${myconf} $(blend_with blender-game gameengine)"

	# scons uses -l differently -> remove it
	scons ${MAKEOPTS/-l[0-9]} -h > scons.config
	scons ${MAKEOPTS/-l[0-9]} || die \
	"!!! Please add ${S}/scons.config when filing bugs reports to bugs.gentoo.org"

	cd ${S}/release/plugins
	emake || die
}

src_install() {
	exeinto /usr/bin/
	doexe ${WORKDIR}/install/linux2/blender

	dodir /usr/share/${PN}

	exeinto /usr/$(get_libdir)/${PN}/textures
	doexe ${S}/release/plugins/texture/*.so
	exeinto /usr/$(get_libdir)/${PN}/sequences
	doexe ${S}/release/plugins/sequence/*.so
	insinto /usr/include/${PN}
	doins ${S}/release/plugins/include/*.h

	if use nls ; then
		mv ${WORKDIR}/install/linux2/.blender/{.Blanguages,.bfont.ttf} \
			${D}/usr/share/${PN}
		mv ${WORKDIR}/install/linux2/.blender/locale \
			${D}/usr/share/locale
	fi

	mv ${WORKDIR}/install/linux2/.blender/scripts ${D}/usr/share/${PN}

	insinto /usr/share/pixmaps
	doins ${FILESDIR}/${PN}.png
	insinto /usr/share/applications
	doins ${FILESDIR}/${PN}.desktop

	dodoc COPYING INSTALL README
}

pkg_preinst(){
	if [ -h "${ROOT}/usr/$(get_libdir)/blender/plugins/include" ];
	then
		rm -f ${ROOT}/usr/$(get_libdir)/blender/plugins/include
	fi
}