]>
Commit | Line | Data |
---|---|---|
0c2b688d JK |
1 | # |
2 | # Conditional build: | |
3 | %bcond_with tests # build with tests (require a working Vulkan | |
4 | # driver (ICD)) | |
78da5abe JK |
5 | %bcond_without wayland # enable Wayland support in loader |
6 | %bcond_without xlib # enable XLib support in loader | |
0c2b688d | 7 | |
ac0bcd72 | 8 | %define api_version 1.0.32 |
0c2b688d | 9 | |
0c2b688d JK |
10 | Summary: LunarG Vulkan SDK |
11 | Name: vulkan-sdk | |
ac0bcd72 | 12 | Version: 1.0.32.0 |
e0194831 | 13 | Release: 1 |
0c2b688d JK |
14 | License: MIT-like |
15 | Group: Development | |
cae01e8b | 16 | Source0: https://github.com/LunarG/VulkanTools/archive/sdk-%{version}/VulkanTools-%{version}.tar.gz |
ac0bcd72 | 17 | # Source0-md5: 83679b56e7782b1f61b4b86de98fb81b |
78da5abe JK |
18 | Patch0: system_glslang_and_spirv-tools.patch |
19 | Patch1: demos_out_of_src.patch | |
20 | Patch2: rpath.patch | |
21 | Patch3: always_xcb.patch | |
22 | Patch4: vktrace_wayland.patch | |
8046b314 | 23 | Patch5: x32.patch |
0c2b688d | 24 | URL: http://lunarg.com/vulkan-sdk/ |
0c2b688d JK |
25 | BuildRequires: bison |
26 | BuildRequires: cmake | |
27 | BuildRequires: GLM | |
ac0bcd72 JK |
28 | BuildRequires: glslang >= 3.0.s20161029 |
29 | BuildRequires: glslang-devel >= 3.0.s20161029 | |
0c2b688d JK |
30 | BuildRequires: graphviz |
31 | BuildRequires: ImageMagick-devel | |
32 | BuildRequires: libpng | |
33 | BuildRequires: libxcb-devel | |
34 | BuildRequires: python3 | |
83dd1851 | 35 | BuildRequires: python3-lxml |
0c2b688d | 36 | BuildRequires: python3-modules |
ac0bcd72 | 37 | BuildRequires: spirv-tools-devel >= v2016.6.s20161027 |
0c2b688d | 38 | BuildRequires: udev-devel |
ac0bcd72 JK |
39 | Requires: glslang >= 3.0.s20161029 |
40 | Requires: spirv-tools >= v2016.6.s20161027 | |
a0190352 | 41 | Requires: %{name}-debug-layers = %{version}-%{release} |
0c2b688d JK |
42 | Requires: vulkan-devel = %{version}-%{release} |
43 | Requires: vulkan-loader = %{version}-%{release} | |
c5fea050 | 44 | Requires: vulkan-sdk-tools = %{version}-%{release} |
a0190352 | 45 | Requires: %{name}-validation-layers = %{version}-%{release} |
8046b314 | 46 | ExclusiveArch: %{ix86} %{x8664} |
0c2b688d JK |
47 | BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) |
48 | ||
49 | %description | |
50 | Vulkan API Software Development Kit | |
51 | ||
52 | %package -n vulkan-loader | |
53 | Summary: Vulkan API loader | |
54 | License: MIT-like | |
55 | Group: Library | |
56 | Provides: vulkan(loader) = %{api_version} | |
57 | ||
58 | %description -n vulkan-loader | |
59 | Common loader for Vulkan API drivers. | |
60 | ||
a0190352 | 61 | %package validation-layers |
0c2b688d JK |
62 | Summary: Validation layers for Vulkan |
63 | Group: Development/Libraries | |
c5fea050 | 64 | Requires: vulkan-loader = %{version}-%{release} |
0c2b688d | 65 | |
a0190352 | 66 | %description validation-layers |
0c2b688d JK |
67 | Validation layers for Vulkan. |
68 | ||
a0190352 | 69 | %package debug-layers |
0c2b688d JK |
70 | Summary: Debug layers for Vulkan |
71 | Group: Development/Libraries | |
c5fea050 | 72 | Requires: vulkan-loader = %{version}-%{release} |
0c2b688d | 73 | |
a0190352 | 74 | %description debug-layers |
0c2b688d JK |
75 | Debug layers for Vulkan. |
76 | ||
77 | %package -n vulkan-devel | |
78 | Summary: Header files for the Vulkan API | |
79 | Summary(pl.UTF-8): Pliki nagłówkowe API Vulkan | |
80 | Group: Development/Libraries | |
c5fea050 | 81 | Requires: vulkan-loader = %{version}-%{release} |
0c2b688d JK |
82 | |
83 | %description -n vulkan-devel | |
84 | Header files for the Vulkan API. | |
85 | ||
86 | %description -n vulkan-devel -l pl.UTF-8 | |
87 | Pliki nagłówkowe API Vulkan. | |
88 | ||
89 | %package demos | |
90 | Summary: Vulkan demos | |
91 | Group: Development/Libraries | |
fe1a4d43 | 92 | Requires: vulkan(icd) |
0c2b688d JK |
93 | Requires: vulkan-loader = %{version}-%{release} |
94 | ||
95 | %description demos | |
96 | Vulkan demos. | |
97 | ||
98 | %package tools | |
99 | Summary: Vulkan tools | |
100 | Group: Development | |
101 | Suggests: vulkan(icd) | |
102 | Requires: vulkan-loader = %{version}-%{release} | |
103 | ||
104 | %description tools | |
105 | Vulkan tools. | |
106 | ||
107 | %prep | |
ac0bcd72 | 108 | %setup -qn VulkanTools-sdk-%{version} |
0c2b688d JK |
109 | |
110 | %patch0 -p1 | |
78da5abe | 111 | %patch1 -p1 |
b213a987 | 112 | %patch2 -p1 |
97255b0b | 113 | %patch3 -p1 |
78da5abe | 114 | %patch4 -p1 |
8046b314 | 115 | %patch5 -p1 |
0c2b688d | 116 | |
0c2b688d | 117 | %build |
03dbfa8f JK |
118 | install -d build |
119 | cd build | |
37fbe15c | 120 | |
0c2b688d | 121 | %cmake \ |
37fbe15c JK |
122 | -DCMAKE_INSTALL_DATADIR=share \ |
123 | -DCMAKE_INSTALL_SYSCONFDIR=etc \ | |
124 | -DBUILD_TESTS=%{?with_tests:ON}%{!?with_tests:OFF} \ | |
125 | -DBUILD_WSI_WAYLAND_SUPPORT=%{?with_wayland:ON}%{!?with_wayland:OFF} \ | |
78da5abe | 126 | -DBUILD_WSI_XLIB_SUPPORT=%{?with_xlib:ON}%{!?with_xlib:OFF} \ |
ac0bcd72 | 127 | -DBUILD_ICD=OFF \ |
37fbe15c | 128 | ../ |
0c2b688d | 129 | %{__make} |
37fbe15c JK |
130 | |
131 | %if %{with tests} | |
132 | cd tests | |
133 | LC_ALL=C.utf-8 VK_LAYER_PATH=../layers LD_LIBRARY_PATH=../loader:../layers ./run_all_tests.sh | |
134 | cd .. | |
135 | %endif | |
136 | ||
ac0bcd72 | 137 | cd .. |
0c2b688d JK |
138 | |
139 | %install | |
140 | rm -rf $RPM_BUILD_ROOT | |
141 | install -d $RPM_BUILD_ROOT{%{_datadir},%{_sysconfdir}}/vulkan/icd.d \ | |
142 | $RPM_BUILD_ROOT{%{_datadir},%{_sysconfdir}}/vulkan/{explicit,implicit}_layer.d \ | |
143 | $RPM_BUILD_ROOT{%{_bindir},%{_libdir}/vulkan/layer} \ | |
144 | $RPM_BUILD_ROOT%{_includedir}/vulkan \ | |
b213a987 | 145 | $RPM_BUILD_ROOT%{_datadir}/%{name}-demos \ |
0c2b688d JK |
146 | $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} |
147 | ||
148 | ||
ac0bcd72 JK |
149 | # hack for 'make install' tryin to install in relative paths when DESTDIR is set |
150 | install -d "$RPM_BUILD_ROOT$PWD" | |
151 | ln -s "$PWD/build" "$RPM_BUILD_ROOT$PWD" | |
0c2b688d | 152 | |
ac0bcd72 JK |
153 | cd build |
154 | %{__make} install \ | |
155 | DESTDIR=$RPM_BUILD_ROOT | |
156 | ||
157 | rm "$RPM_BUILD_ROOT$PWD" | |
0c2b688d JK |
158 | |
159 | cp -p demos/vulkaninfo $RPM_BUILD_ROOT%{_bindir}/vulkaninfo | |
0c2b688d | 160 | cp -p demos/cube $RPM_BUILD_ROOT%{_bindir}/vulkan-cube |
78da5abe | 161 | cp -p demos/smoketest $RPM_BUILD_ROOT%{_bindir}/vulkan-smoketest |
b213a987 | 162 | cp -p demos/{lunarg.ppm,*-vert.spv,*-frag.spv} $RPM_BUILD_ROOT%{_datadir}/%{name}-demos |
0c2b688d | 163 | |
ac0bcd72 | 164 | mv $RPM_BUILD_ROOT/usr/etc/vulkan/explicit_layer.d/* $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d |
0c2b688d JK |
165 | |
166 | cp -p libs/vkjson/libvkjson.a $RPM_BUILD_ROOT%{_libdir} | |
167 | cp -p libs/vkjson/vkjson_{info,unittest} $RPM_BUILD_ROOT%{_bindir} | |
168 | ||
169 | cp -p ../libs/vkjson/vkjson.h $RPM_BUILD_ROOT%{_includedir} | |
ac0bcd72 JK |
170 | |
171 | cp -p install_staging/*.so $RPM_BUILD_ROOT%{_libdir} | |
172 | for f in layersvt/*.json ; do | |
173 | sed -e's@"library_path": "./@"library_path": "%{_libdir}/@' $f > $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/$(basename $f) | |
174 | done | |
0c2b688d | 175 | |
37fbe15c | 176 | cp -pr ../demos/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} |
0c2b688d | 177 | |
b213a987 | 178 | # restore original demo sources in %{_examplesdir} |
ac0bcd72 | 179 | %patch1 -R -p2 -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} |
b213a987 JK |
180 | rm -f $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}/*.orig 2>/dev/null || : |
181 | ||
a382f778 | 182 | %ifarch %x8664 |
ac0bcd72 | 183 | cp -p vktrace/libVkLayer_vktrace_layer.so $RPM_BUILD_ROOT%{_libdir} |
0c2b688d JK |
184 | cp -p vktrace/vkreplay $RPM_BUILD_ROOT%{_bindir} |
185 | cp -p vktrace/vktrace $RPM_BUILD_ROOT%{_bindir} | |
ac0bcd72 | 186 | sed -e's@"library_path": "../vktrace/@"library_path": "%{_libdir}/@' \ |
78da5abe | 187 | layersvt/VkLayer_vktrace_layer.json > $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/VkLayer_vktrace_layer.json |
a382f778 | 188 | %else |
ac0bcd72 | 189 | cp -p vktrace/libVkLayer_vktrace_layer32.so $RPM_BUILD_ROOT%{_libdir} |
a382f778 JK |
190 | cp -p vktrace/vkreplay32 $RPM_BUILD_ROOT%{_bindir} |
191 | cp -p vktrace/vktrace32 $RPM_BUILD_ROOT%{_bindir} | |
192 | rm $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/VkLayer_vktrace_layer.json | |
ac0bcd72 | 193 | sed -e's@"library_path": "../vktrace/@"library_path": "%{_libdir}/@' \ |
a382f778 | 194 | -e's@libVkLayer_vktrace_layer.so@libVkLayer_vktrace_layer32.so@' \ |
97f3b102 | 195 | layersvt/VkLayer_vktrace_layer.json > $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/VkLayer_vktrace_layer32.json |
a382f778 | 196 | %endif |
0c2b688d | 197 | |
ac0bcd72 | 198 | cd .. |
0c2b688d | 199 | |
ac0bcd72 JK |
200 | cp -p vktrace/README.md vktrace-README.md |
201 | cp -p vktrace/TODO.md vktrace-TODO.md | |
0c2b688d JK |
202 | |
203 | %clean | |
204 | rm -rf $RPM_BUILD_ROOT | |
205 | ||
d8d42412 JK |
206 | %post -n vulkan-loader -p /sbin/ldconfig |
207 | %postun -n vulkan-loader -p /sbin/ldconfig | |
0c2b688d JK |
208 | |
209 | %files | |
210 | %defattr(644,root,root,755) | |
211 | ||
212 | %files -n vulkan-loader | |
213 | %defattr(644,root,root,755) | |
ac0bcd72 JK |
214 | %doc COPYRIGHT.txt LICENSE.txt |
215 | %doc loader/{README.md,LoaderAndLayerInterface.md} | |
0c2b688d JK |
216 | %dir %{_sysconfdir}/vulkan |
217 | %dir %{_sysconfdir}/vulkan/icd.d | |
218 | %dir %{_sysconfdir}/vulkan/explicit_layer.d | |
219 | %dir %{_sysconfdir}/vulkan/implicit_layer.d | |
220 | %dir %{_datadir}/vulkan | |
221 | %dir %{_datadir}/vulkan/icd.d | |
222 | %dir %{_datadir}/vulkan/explicit_layer.d | |
223 | %dir %{_datadir}/vulkan/implicit_layer.d | |
224 | %{_libdir}/libvulkan.so.1.*.* | |
225 | %ghost %{_libdir}/libvulkan.so.1 | |
226 | %dir %{_libdir}/vulkan | |
227 | %dir %{_libdir}/vulkan/layer | |
228 | ||
229 | %files demos | |
230 | %defattr(644,root,root,755) | |
ac0bcd72 | 231 | %doc COPYRIGHT.txt LICENSE.txt |
0c2b688d | 232 | %attr(755,root,root) %{_bindir}/vulkan-cube |
78da5abe | 233 | %attr(755,root,root) %{_bindir}/vulkan-smoketest |
b213a987 | 234 | %{_datadir}/%{name}-demos |
0c2b688d JK |
235 | |
236 | %files tools | |
237 | %defattr(644,root,root,755) | |
ac0bcd72 | 238 | %doc COPYRIGHT.txt LICENSE.txt |
0c2b688d JK |
239 | %doc vktrace-README.md vktrace-TODO.md |
240 | %attr(755,root,root) %{_bindir}/vkjson_info | |
241 | %attr(755,root,root) %{_bindir}/vkjson_unittest | |
a382f778 JK |
242 | %attr(755,root,root) %{_bindir}/vulkaninfo |
243 | %ifarch %x8664 | |
0c2b688d JK |
244 | %attr(755,root,root) %{_bindir}/vkreplay |
245 | %attr(755,root,root) %{_bindir}/vktrace | |
ac0bcd72 | 246 | %attr(755,root,root) %{_libdir}/libVkLayer_vktrace_layer.so |
a382f778 JK |
247 | %{_datadir}/vulkan/explicit_layer.d/VkLayer_vktrace_layer.json |
248 | %else | |
249 | %attr(755,root,root) %{_bindir}/vkreplay32 | |
250 | %attr(755,root,root) %{_bindir}/vktrace32 | |
ac0bcd72 | 251 | %attr(755,root,root) %{_libdir}/libVkLayer_vktrace_layer32.so |
a382f778 JK |
252 | %{_datadir}/vulkan/explicit_layer.d/VkLayer_vktrace_layer32.json |
253 | %endif | |
0c2b688d | 254 | |
a0190352 | 255 | %files validation-layers |
0c2b688d | 256 | %defattr(644,root,root,755) |
ac0bcd72 JK |
257 | %doc COPYRIGHT.txt LICENSE.txt |
258 | %doc layers/{README.md,vk_layer_settings.txt} | |
259 | %attr(755,root,root) %{_libdir}/libVkLayer_core_validation.so | |
260 | %attr(755,root,root) %{_libdir}/libVkLayer_image.so | |
261 | %attr(755,root,root) %{_libdir}/libVkLayer_object_tracker.so | |
262 | %attr(755,root,root) %{_libdir}/libVkLayer_parameter_validation.so | |
263 | %attr(755,root,root) %{_libdir}/libVkLayer_swapchain.so | |
264 | %attr(755,root,root) %{_libdir}/libVkLayer_threading.so | |
265 | %attr(755,root,root) %{_libdir}/libVkLayer_unique_objects.so | |
faf1b559 | 266 | %attr(755,root,root) %{_libdir}/libVkLayer_utils.so |
78da5abe | 267 | %{_datadir}/vulkan/explicit_layer.d/VkLayer_core_validation.json |
0c2b688d | 268 | %{_datadir}/vulkan/explicit_layer.d/VkLayer_image.json |
0c2b688d | 269 | %{_datadir}/vulkan/explicit_layer.d/VkLayer_object_tracker.json |
78da5abe | 270 | %{_datadir}/vulkan/explicit_layer.d/VkLayer_parameter_validation.json |
0c2b688d JK |
271 | %{_datadir}/vulkan/explicit_layer.d/VkLayer_swapchain.json |
272 | %{_datadir}/vulkan/explicit_layer.d/VkLayer_threading.json | |
273 | %{_datadir}/vulkan/explicit_layer.d/VkLayer_unique_objects.json | |
274 | ||
a0190352 | 275 | %files debug-layers |
0c2b688d | 276 | %defattr(644,root,root,755) |
ac0bcd72 JK |
277 | %doc COPYRIGHT.txt LICENSE.txt |
278 | %doc layersvt/{README.md,vk_layer_settings.txt} | |
279 | %attr(755,root,root) %{_libdir}/libVkLayer_api_dump.so | |
280 | %attr(755,root,root) %{_libdir}/libVkLayer_basic.so | |
281 | %attr(755,root,root) %{_libdir}/libVkLayer_generic.so | |
282 | %attr(755,root,root) %{_libdir}/libVkLayer_multi.so | |
283 | %attr(755,root,root) %{_libdir}/libVkLayer_screenshot.so | |
faf1b559 | 284 | %attr(755,root,root) %{_libdir}/libVkLayer_utilsvt.so |
0c2b688d JK |
285 | %{_datadir}/vulkan/explicit_layer.d/VkLayer_api_dump.json |
286 | %{_datadir}/vulkan/explicit_layer.d/VkLayer_basic.json | |
287 | %{_datadir}/vulkan/explicit_layer.d/VkLayer_generic.json | |
288 | %{_datadir}/vulkan/explicit_layer.d/VkLayer_multi.json | |
289 | %{_datadir}/vulkan/explicit_layer.d/VkLayer_screenshot.json | |
0c2b688d JK |
290 | |
291 | %files -n vulkan-devel | |
292 | %defattr(644,root,root,755) | |
ac0bcd72 | 293 | %doc COPYRIGHT.txt LICENSE.txt README.md |
0c2b688d JK |
294 | %{_libdir}/libvulkan.so |
295 | %{_libdir}/libvkjson.a | |
296 | %{_includedir}/vulkan | |
297 | %{_includedir}/vkjson.h | |
298 | %{_examplesdir}/%{name}-%{version} |