1 |
%define major 20 |
2 |
%define pangomajor 20 |
3 |
%define gi_major 1.0 |
4 |
%define gi_major2 2.0 |
5 |
|
6 |
%define libname %mklibname %{name} %{major} |
7 |
%define libname_pango %mklibname %{name}-pango %{pangomajor} |
8 |
%define develname %mklibname -d %{name} |
9 |
%define girname %mklibname %{name}-gir %{gi_major} |
10 |
%define girname_pango %mklibname %{name}-pango-gir %{gi_major} |
11 |
|
12 |
%define girname2 %mklibname %{name}-gir %{gi_major2} |
13 |
%define girname_pango2 %mklibname %{name}-pango-gir %{gi_major2} |
14 |
|
15 |
%define url_ver %(echo %{version}|cut -d. -f1,2) |
16 |
|
17 |
Name: cogl |
18 |
Version: 1.22.2 |
19 |
Release: %mkrel 4 |
20 |
Summary: A library for using 3D graphics hardware to draw pretty pictures |
21 |
Group: System/Libraries |
22 |
License: LGPLv2+ |
23 |
URL: http://www.clutter-project.org/ |
24 |
Source0: https://download.gnome.org/sources/%{name}/%{url_ver}/%{name}-%{version}.tar.xz |
25 |
# Vaguely related to https://bugzilla.gnome.org/show_bug.cgi?id=772419 |
26 |
# but on the 1.22 branch, and the static inline in the header is gross |
27 |
# ajax promises he'll clean this up. |
28 |
Patch0: 0001-egl-Use-eglGetPlatformDisplay-not-eglGetDisplay.patch |
29 |
|
30 |
# "GL_ARB_shader_texture_lod" is used to do lod biased texturing. It |
31 |
# make achieve faster blurring of images instead of using large blur radius. |
32 |
Patch1: 0002-add-GL_ARB_shader_texture_lod-support.patch |
33 |
|
34 |
# "copy_sub_image" is used to implement feature similar with kwin blur |
35 |
# effect by being abel to copy partial of framebuffer contents as texture |
36 |
# and do post blurring. |
37 |
Patch2: 0003-texture-support-copy_sub_image.patch |
38 |
|
39 |
Patch3: e20d81b1627b09494c00fd29f952fc17e618af46..e0fda738232d6a1c69a150d7528a970887fb459f.patch |
40 |
BuildRequires: pkgconfig(gl) |
41 |
BuildRequires: pkgconfig(x11) |
42 |
BuildRequires: pkgconfig(xext) |
43 |
BuildRequires: pkgconfig(xfixes) >= 3 |
44 |
BuildRequires: pkgconfig(xdamage) |
45 |
BuildRequires: pkgconfig(xrandr) |
46 |
BuildRequires: pkgconfig(xcomposite) >= 0.4 |
47 |
BuildRequires: pkgconfig(gobject-2.0) >= 2.28.0 |
48 |
BuildRequires: pkgconfig(gmodule-no-export-2.0) |
49 |
BuildRequires: pkgconfig(gdk-pixbuf-2.0) |
50 |
BuildRequires: pkgconfig(cairo) >= 1.10 |
51 |
BuildRequires: pkgconfig(pangocairo) >= 1.20 |
52 |
BuildRequires: pkgconfig(gobject-introspection-1.0) |
53 |
BuildRequires: pkgconfig(gtk-doc) |
54 |
# ovitters: Wayland support + required KMS support |
55 |
BuildRequires: pkgconfig(wayland-egl) >= 1.0.0 |
56 |
BuildRequires: pkgconfig(wayland-client) >= 1.0.0 |
57 |
BuildRequires: pkgconfig(wayland-server) >= 1.1.90 |
58 |
BuildRequires: pkgconfig(gbm) |
59 |
|
60 |
%description |
61 |
Cogl is a small open source library for using 3D graphics hardware to draw |
62 |
pretty pictures. The API departs from the flat state machine style of |
63 |
OpenGL and is designed to make it easy to write orthogonal components that |
64 |
can render without stepping on each others toes. |
65 |
|
66 |
As well aiming for a nice API, we think having a single library as opposed |
67 |
to an API specification like OpenGL has a few advantages too; like being |
68 |
able to paper over the inconsistencies/bugs of different OpenGL |
69 |
implementations in a centralized place, not to mention the myriad of OpenGL |
70 |
extensions. It also means we are in a better position to provide utility |
71 |
APIs that help software developers since they only need to be implemented |
72 |
once and there is no risk of inconsistency between implementations. |
73 |
|
74 |
Having other backends, besides OpenGL, such as drm, Gallium or D3D are |
75 |
options we are interested in for the future. |
76 |
|
77 |
#-------------------------------------------------------------------- |
78 |
|
79 |
%package i18n |
80 |
Summary: Translations for %{name} |
81 |
Group: System/Internationalization |
82 |
Obsoletes: %{name} < 1.9.2 |
83 |
BuildArch: noarch |
84 |
|
85 |
%description i18n |
86 |
This contains the translation data for %{name}. |
87 |
|
88 |
%files i18n -f %{name}.lang |
89 |
|
90 |
#-------------------------------------------------------------------- |
91 |
|
92 |
%package -n %{libname} |
93 |
Summary: A library for using 3D graphics hardware to draw pretty pictures |
94 |
Group: System/Libraries |
95 |
Requires: %{name}-i18n |
96 |
|
97 |
%description -n %{libname} |
98 |
Cogl is a small open source library for using 3D graphics hardware to draw |
99 |
pretty pictures. The API departs from the flat state machine style of |
100 |
OpenGL and is designed to make it easy to write orthogonal components that |
101 |
can render without stepping on each others toes. |
102 |
|
103 |
As well aiming for a nice API, we think having a single library as opposed |
104 |
to an API specification like OpenGL has a few advantages too; like being |
105 |
able to paper over the inconsistencies/bugs of different OpenGL |
106 |
implementations in a centralized place, not to mention the myriad of OpenGL |
107 |
extensions. It also means we are in a better position to provide utility |
108 |
APIs that help software developers since they only need to be implemented |
109 |
once and there is no risk of inconsistency between implementations. |
110 |
|
111 |
Having other backends, besides OpenGL, such as drm, Gallium or D3D are |
112 |
options we are interested in for the future. |
113 |
|
114 |
%files -n %{libname} |
115 |
%{_libdir}/libcogl.so.%{major}{,.*} |
116 |
%{_libdir}/libcogl-path.so.%{major}{,.*} |
117 |
|
118 |
#-------------------------------------------------------------------- |
119 |
|
120 |
%package -n %{libname_pango} |
121 |
Summary: A library for using 3D graphics hardware to draw pretty pictures |
122 |
Group: System/Libraries |
123 |
Requires: %{name}-i18n |
124 |
|
125 |
%description -n %{libname_pango} |
126 |
Cogl is a small open source library for using 3D graphics hardware to draw |
127 |
pretty pictures. The API departs from the flat state machine style of |
128 |
OpenGL and is designed to make it easy to write orthogonal components that |
129 |
can render without stepping on each others toes. |
130 |
|
131 |
As well aiming for a nice API, we think having a single library as opposed |
132 |
to an API specification like OpenGL has a few advantages too; like being |
133 |
able to paper over the inconsistencies/bugs of different OpenGL |
134 |
implementations in a centralized place, not to mention the myriad of OpenGL |
135 |
extensions. It also means we are in a better position to provide utility |
136 |
APIs that help software developers since they only need to be implemented |
137 |
once and there is no risk of inconsistency between implementations. |
138 |
|
139 |
Having other backends, besides OpenGL, such as drm, Gallium or D3D are |
140 |
options we are interested in for the future. |
141 |
|
142 |
%files -n %{libname_pango} |
143 |
%{_libdir}/libcogl-pango.so.%{pangomajor}{,.*} |
144 |
|
145 |
#-------------------------------------------------------------------- |
146 |
|
147 |
%package -n %{girname} |
148 |
Summary: GObject Introspection interface description for %{name} |
149 |
Group: System/Libraries |
150 |
Requires: %{libname} = %{version}-%{release} |
151 |
Conflicts: %{mklibname %{name}-gir 0.0} < %{version} |
152 |
Conflicts: %{mklibname clutter 1.0 0} < 1.7.2 |
153 |
|
154 |
%description -n %{girname} |
155 |
GObject Introspection interface description for %{name}. |
156 |
|
157 |
%files -n %{girname} |
158 |
%{_libdir}/girepository-1.0/Cogl-%{gi_major}.typelib |
159 |
|
160 |
#-------------------------------------------------------------------- |
161 |
|
162 |
%package -n %{girname_pango} |
163 |
Summary: GObject Introspection interface description for %{name}-pango |
164 |
Group: System/Libraries |
165 |
Requires: %{libname_pango} = %{version}-%{release} |
166 |
Conflicts: %{_lib}cogl-gir0.0 < %{version} |
167 |
|
168 |
%description -n %{girname_pango} |
169 |
GObject Introspection interface description for %{name}-pango. |
170 |
|
171 |
%files -n %{girname_pango} |
172 |
%{_libdir}/girepository-1.0/CoglPango-%{gi_major}.typelib |
173 |
|
174 |
#-------------------------------------------------------------------- |
175 |
|
176 |
%package -n %{girname2} |
177 |
Summary: GObject Introspection interface description for %{name} |
178 |
Group: System/Libraries |
179 |
Requires: %{libname} = %{version}-%{release} |
180 |
|
181 |
%description -n %{girname2} |
182 |
GObject Introspection interface description for %{name}. |
183 |
|
184 |
%files -n %{girname2} |
185 |
%{_libdir}/girepository-1.0/Cogl-%{gi_major2}.typelib |
186 |
|
187 |
#-------------------------------------------------------------------- |
188 |
|
189 |
%package -n %{girname_pango2} |
190 |
Summary: GObject Introspection interface description for %{name}-pango |
191 |
Group: System/Libraries |
192 |
Requires: %{libname_pango} = %{version}-%{release} |
193 |
|
194 |
%description -n %{girname_pango2} |
195 |
GObject Introspection interface description for %{name}-pango. |
196 |
|
197 |
%files -n %{girname_pango2} |
198 |
%{_libdir}/girepository-1.0/CoglPango-%{gi_major2}.typelib |
199 |
|
200 |
#-------------------------------------------------------------------- |
201 |
|
202 |
%package -n %{develname} |
203 |
Summary: %{name} development environment |
204 |
Group: Development/C |
205 |
Provides: %{name}-devel = %{version}-%{release} |
206 |
Provides: lib%{name}-devel = %{version}-%{release} |
207 |
Requires: %{libname_pango} = %{version}-%{release} |
208 |
Requires: %{libname} = %{version}-%{release} |
209 |
Requires: pkgconfig(gl) |
210 |
Requires: %{girname} = %{version}-%{release} |
211 |
Requires: %{girname2} = %{version}-%{release} |
212 |
Requires: %{girname_pango} = %{version}-%{release} |
213 |
Requires: %{girname_pango2} = %{version}-%{release} |
214 |
Conflicts: %{mklibname -d clutter 1.0} <= 1.6.16 |
215 |
|
216 |
%description -n %{develname} |
217 |
Header files and libraries for building and developing apps with %{name}. |
218 |
|
219 |
%files -n %{develname} |
220 |
%doc NEWS README ChangeLog |
221 |
%{_includedir}/cogl |
222 |
%{_libdir}/libcogl*.so |
223 |
%{_libdir}/pkgconfig/*.pc |
224 |
%{_datadir}/gir-1.0/Cogl*-%{gi_major}.gir |
225 |
%{_datadir}/gir-1.0/Cogl*-%{gi_major2}.gir |
226 |
|
227 |
#-------------------------------------------------------------------- |
228 |
|
229 |
%package doc |
230 |
Summary: Documentation for %{name} |
231 |
Group: Documentation |
232 |
Requires: %{name}-devel = %{version}-%{release} |
233 |
BuildArch: noarch |
234 |
|
235 |
%description doc |
236 |
This package contains documentation for %{name}. |
237 |
|
238 |
%files doc |
239 |
%{_datadir}/gtk-doc/html/cogl |
240 |
%{_datadir}/gtk-doc/html/cogl-2.0-experimental |
241 |
|
242 |
#-------------------------------------------------------------------- |
243 |
|
244 |
%prep |
245 |
%autosetup -p1 |
246 |
|
247 |
%build |
248 |
CFLAGS="%{optflags} -fPIC" |
249 |
|
250 |
%configure2_5x \ |
251 |
--enable-cairo=yes \ |
252 |
--enable-gdk-pixbuf=yes \ |
253 |
--enable-cogl-pango=yes \ |
254 |
--enable-glx=yes \ |
255 |
--enable-gtk-doc \ |
256 |
--enable-introspection=yes \ |
257 |
--enable-examples-install=no \ |
258 |
--enable-wayland-egl-server=yes \ |
259 |
--enable-wayland-egl-platform=yes \ |
260 |
--enable-kms-egl-platform |
261 |
%make |
262 |
|
263 |
%install |
264 |
%makeinstall_std |
265 |
|
266 |
#Remove examples |
267 |
rm -rf %{buildroot}%{_datadir}/%{name}/examples-data/ |
268 |
|
269 |
#Remove libtool archives. |
270 |
find %{buildroot} -name "*.la" -delete |
271 |
|
272 |
%find_lang %{name} |