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
132
133
134
135
136
137
|
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=6
inherit eutils gnome2 multilib virtualx
DESCRIPTION="A library for using 3D graphics hardware to draw pretty pictures"
HOMEPAGE="http://www.cogl3d.org/"
LICENSE="MIT BSD"
SLOT="1.0/20" # subslot = .so version
# doc and profile disable for now due to bugs #484750 and #483332
IUSE="debug examples gles2 gstreamer +introspection +kms +opengl +pango test video_cards_fglrx wayland" # doc profile
REQUIRED_USE="
wayland? ( gles2 )
|| ( gles2 opengl )
"
KEYWORDS="~alpha amd64 ~arm ~ia64 ~mips ~ppc ~ppc64 ~sparc x86"
COMMON_DEPEND="
>=dev-libs/glib-2.32:2
x11-libs/cairo:=
>=x11-libs/gdk-pixbuf-2:2
x11-libs/libX11
>=x11-libs/libXcomposite-0.4
x11-libs/libXdamage
x11-libs/libXext
>=x11-libs/libXfixes-3
>=x11-libs/libXrandr-1.2
virtual/opengl
gles2? ( media-libs/mesa[gles2] )
gstreamer? (
media-libs/gstreamer:1.0
media-libs/gst-plugins-base:1.0 )
introspection? ( >=dev-libs/gobject-introspection-1.34.2:= )
kms? (
media-libs/mesa[gbm]
x11-libs/libdrm:= )
pango? ( >=x11-libs/pango-1.20.0[introspection?] )
wayland? (
>=dev-libs/wayland-1.1.90
media-libs/mesa[egl,wayland] )
"
# before clutter-1.7, cogl was part of clutter
RDEPEND="${COMMON_DEPEND}
!<media-libs/clutter-1.7
"
DEPEND="${COMMON_DEPEND}
>=dev-util/gtk-doc-am-1.13
>=sys-devel/gettext-0.19
virtual/pkgconfig
test? (
app-eselect/eselect-opengl
media-libs/mesa[classic] )
"
# Need classic mesa swrast for tests, llvmpipe causes a test failure
# For some reason GL3 conformance test all fails again...
RESTRICT="test"
src_prepare() {
# Let cogl work with fglrx driver, bug #567168
# https://bugzilla.gnome.org/show_bug.cgi?id=756306
use video_cards_fglrx && eapply "${FILESDIR}"/${PN}-1.22.0-fglrx.patch
# Do not build examples
sed -e "s/^\(SUBDIRS +=.*\)examples\(.*\)$/\1\2/" \
-i Makefile.am Makefile.in || die
if ! use test ; then
# For some reason the configure switch will not completely disable
# tests being built
sed -e "s/^\(SUBDIRS =.*\)test-fixtures\(.*\)$/\1\2/" \
-e "s/^\(SUBDIRS +=.*\)tests\(.*\)$/\1\2/" \
-e "s/^\(.*am__append.* \)tests\(.*\)$/\1\2/" \
-i Makefile.am Makefile.in || die
fi
gnome2_src_prepare
}
src_configure() {
# TODO: think about quartz, sdl
# Prefer gl over gles2 if both are selected
# Profiling needs uprof, which is not available in portage yet, bug #484750
# FIXME: Doesn't provide prebuilt docs, but they can neither be rebuilt, bug #483332
gnome2_src_configure \
--disable-examples-install \
--disable-maintainer-flags \
--enable-cairo \
--enable-deprecated \
--enable-gdk-pixbuf \
--enable-glib \
$(use_enable debug) \
$(use_enable opengl glx) \
$(use_enable opengl gl) \
$(use_enable gles2) \
$(use_enable gles2 cogl-gles2) \
$(use_enable gles2 xlib-egl-platform) \
$(usex gles2 --with-default-driver=$(usex opengl gl gles2)) \
$(use_enable gstreamer cogl-gst) \
$(use_enable introspection) \
$(use_enable kms kms-egl-platform) \
$(use_enable pango cogl-pango) \
$(use_enable test unit-tests) \
$(use_enable wayland wayland-egl-platform) \
$(use_enable wayland wayland-egl-server) \
--disable-profile
# $(use_enable profile)
}
src_test() {
# Use swrast for tests, llvmpipe is incomplete and "test_sub_texture" fails
# NOTE: recheck if this is needed after every mesa bump
if [[ "$(eselect opengl show)" != "xorg-x11" ]]; then
ewarn "Skipping tests because a binary OpenGL library is enabled. To"
ewarn "run tests for ${PN}, you need to enable the Mesa library:"
ewarn "# eselect opengl set xorg-x11"
return
fi
virtx emake check LIBGL_DRIVERS_PATH="${EROOT}/usr/$(get_libdir)/mesa"
}
src_install() {
if use examples; then
insinto /usr/share/doc/${PF}/examples
doins examples/{*.c,*.jpg}
fi
gnome2_src_install
# Remove silly examples-data directory
rm -rvf "${ED}/usr/share/cogl/examples-data/" || die
}
|