3 %bcond_with tests # build with tests (require a working Vulkan
5 %bcond_without wayland # enable Wayland support in loader
6 %bcond_without xlib # enable XLib support in loader
8 %define api_version 1.0.32
10 Summary: LunarG Vulkan SDK
16 Source0: https://github.com/LunarG/VulkanTools/archive/sdk-%{version}/VulkanTools-%{version}.tar.gz
17 # Source0-md5: 83679b56e7782b1f61b4b86de98fb81b
18 Patch0: system_glslang_and_spirv-tools.patch
19 Patch1: demos_out_of_src.patch
21 Patch3: always_xcb.patch
22 Patch4: vktrace_wayland.patch
24 URL: http://lunarg.com/vulkan-sdk/
28 BuildRequires: glslang >= 3.0.s20161029
29 BuildRequires: glslang-devel >= 3.0.s20161029
30 BuildRequires: graphviz
31 BuildRequires: ImageMagick-devel
33 BuildRequires: libxcb-devel
34 BuildRequires: python3
35 BuildRequires: python3-lxml
36 BuildRequires: python3-modules
37 BuildRequires: spirv-tools-devel >= v2016.6.s20161027
38 BuildRequires: udev-devel
39 Requires: glslang >= 3.0.s20161029
40 Requires: spirv-tools >= v2016.6.s20161027
41 Requires: %{name}-debug-layers = %{version}-%{release}
42 Requires: vulkan-devel = %{version}-%{release}
43 Requires: vulkan-loader = %{version}-%{release}
44 Requires: vulkan-sdk-tools = %{version}-%{release}
45 Requires: %{name}-validation-layers = %{version}-%{release}
46 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
49 Vulkan API Software Development Kit
51 %package -n vulkan-loader
52 Summary: Vulkan API loader
55 Provides: vulkan(loader) = %{api_version}
57 %description -n vulkan-loader
58 Common loader for Vulkan API drivers.
60 %package validation-layers
61 Summary: Validation layers for Vulkan
62 Group: Development/Libraries
63 Requires: vulkan-loader = %{version}-%{release}
65 %description validation-layers
66 Validation layers for Vulkan.
69 Summary: Debug layers for Vulkan
70 Group: Development/Libraries
71 Requires: vulkan-loader = %{version}-%{release}
73 %description debug-layers
74 Debug layers for Vulkan.
76 %package -n vulkan-devel
77 Summary: Header files for the Vulkan API
78 Summary(pl.UTF-8): Pliki nagłówkowe API Vulkan
79 Group: Development/Libraries
80 Requires: vulkan-loader = %{version}-%{release}
82 %description -n vulkan-devel
83 Header files for the Vulkan API.
85 %description -n vulkan-devel -l pl.UTF-8
86 Pliki nagłówkowe API Vulkan.
90 Group: Development/Libraries
92 Requires: vulkan-loader = %{version}-%{release}
100 Suggests: vulkan(icd)
101 Requires: vulkan-loader = %{version}-%{release}
107 %setup -qn VulkanTools-sdk-%{version}
121 -DCMAKE_INSTALL_DATADIR=share \
122 -DCMAKE_INSTALL_SYSCONFDIR=etc \
123 -DBUILD_TESTS=%{?with_tests:ON}%{!?with_tests:OFF} \
124 -DBUILD_WSI_WAYLAND_SUPPORT=%{?with_wayland:ON}%{!?with_wayland:OFF} \
125 -DBUILD_WSI_XLIB_SUPPORT=%{?with_xlib:ON}%{!?with_xlib:OFF} \
132 LC_ALL=C.utf-8 VK_LAYER_PATH=../layers LD_LIBRARY_PATH=../loader:../layers ./run_all_tests.sh
139 rm -rf $RPM_BUILD_ROOT
140 install -d $RPM_BUILD_ROOT{%{_datadir},%{_sysconfdir}}/vulkan/icd.d \
141 $RPM_BUILD_ROOT{%{_datadir},%{_sysconfdir}}/vulkan/{explicit,implicit}_layer.d \
142 $RPM_BUILD_ROOT{%{_bindir},%{_libdir}/vulkan/layer} \
143 $RPM_BUILD_ROOT%{_includedir}/vulkan \
144 $RPM_BUILD_ROOT%{_datadir}/%{name}-demos \
145 $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
148 # hack for 'make install' tryin to install in relative paths when DESTDIR is set
149 install -d "$RPM_BUILD_ROOT$PWD"
150 ln -s "$PWD/build" "$RPM_BUILD_ROOT$PWD"
154 DESTDIR=$RPM_BUILD_ROOT
156 rm "$RPM_BUILD_ROOT$PWD"
158 cp -p demos/vulkaninfo $RPM_BUILD_ROOT%{_bindir}/vulkaninfo
159 cp -p demos/cube $RPM_BUILD_ROOT%{_bindir}/vulkan-cube
160 cp -p demos/smoketest $RPM_BUILD_ROOT%{_bindir}/vulkan-smoketest
161 cp -p demos/{lunarg.ppm,*-vert.spv,*-frag.spv} $RPM_BUILD_ROOT%{_datadir}/%{name}-demos
163 mv $RPM_BUILD_ROOT/usr/etc/vulkan/explicit_layer.d/* $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d
165 cp -p libs/vkjson/libvkjson.a $RPM_BUILD_ROOT%{_libdir}
166 cp -p libs/vkjson/vkjson_{info,unittest} $RPM_BUILD_ROOT%{_bindir}
168 cp -p ../libs/vkjson/vkjson.h $RPM_BUILD_ROOT%{_includedir}
170 cp -p install_staging/*.so $RPM_BUILD_ROOT%{_libdir}
171 for f in layersvt/*.json ; do
172 sed -e's@"library_path": "./@"library_path": "%{_libdir}/@' $f > $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/$(basename $f)
175 cp -pr ../demos/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
177 # restore original demo sources in %{_examplesdir}
178 %patch1 -R -p2 -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
179 rm -f $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}/*.orig 2>/dev/null || :
182 cp -p vktrace/libVkLayer_vktrace_layer.so $RPM_BUILD_ROOT%{_libdir}
183 cp -p vktrace/vkreplay $RPM_BUILD_ROOT%{_bindir}
184 cp -p vktrace/vktrace $RPM_BUILD_ROOT%{_bindir}
185 sed -e's@"library_path": "../vktrace/@"library_path": "%{_libdir}/@' \
186 layersvt/VkLayer_vktrace_layer.json > $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/VkLayer_vktrace_layer.json
188 cp -p vktrace/libVkLayer_vktrace_layer32.so $RPM_BUILD_ROOT%{_libdir}
189 cp -p vktrace/vkreplay32 $RPM_BUILD_ROOT%{_bindir}
190 cp -p vktrace/vktrace32 $RPM_BUILD_ROOT%{_bindir}
191 rm $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/VkLayer_vktrace_layer.json
192 sed -e's@"library_path": "../vktrace/@"library_path": "%{_libdir}/@' \
193 -e's@libVkLayer_vktrace_layer.so@libVkLayer_vktrace_layer32.so@' \
194 layersvt/VkLayer_vktrace_layer.json > $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/VkLayer_vktrace_layer32.json
199 cp -p vktrace/README.md vktrace-README.md
200 cp -p vktrace/TODO.md vktrace-TODO.md
203 rm -rf $RPM_BUILD_ROOT
205 %post -n vulkan-loader -p /sbin/ldconfig
206 %postun -n vulkan-loader -p /sbin/ldconfig
209 %defattr(644,root,root,755)
211 %files -n vulkan-loader
212 %defattr(644,root,root,755)
213 %doc COPYRIGHT.txt LICENSE.txt
214 %doc loader/{README.md,LoaderAndLayerInterface.md}
215 %dir %{_sysconfdir}/vulkan
216 %dir %{_sysconfdir}/vulkan/icd.d
217 %dir %{_sysconfdir}/vulkan/explicit_layer.d
218 %dir %{_sysconfdir}/vulkan/implicit_layer.d
219 %dir %{_datadir}/vulkan
220 %dir %{_datadir}/vulkan/icd.d
221 %dir %{_datadir}/vulkan/explicit_layer.d
222 %dir %{_datadir}/vulkan/implicit_layer.d
223 %{_libdir}/libvulkan.so.1.*.*
224 %ghost %{_libdir}/libvulkan.so.1
225 %dir %{_libdir}/vulkan
226 %dir %{_libdir}/vulkan/layer
229 %defattr(644,root,root,755)
230 %doc COPYRIGHT.txt LICENSE.txt
231 %attr(755,root,root) %{_bindir}/vulkan-cube
232 %attr(755,root,root) %{_bindir}/vulkan-smoketest
233 %{_datadir}/%{name}-demos
236 %defattr(644,root,root,755)
237 %doc COPYRIGHT.txt LICENSE.txt
238 %doc vktrace-README.md vktrace-TODO.md
239 %attr(755,root,root) %{_bindir}/vkjson_info
240 %attr(755,root,root) %{_bindir}/vkjson_unittest
241 %attr(755,root,root) %{_bindir}/vulkaninfo
243 %attr(755,root,root) %{_bindir}/vkreplay
244 %attr(755,root,root) %{_bindir}/vktrace
245 %attr(755,root,root) %{_libdir}/libVkLayer_vktrace_layer.so
246 %{_datadir}/vulkan/explicit_layer.d/VkLayer_vktrace_layer.json
248 %attr(755,root,root) %{_bindir}/vkreplay32
249 %attr(755,root,root) %{_bindir}/vktrace32
250 %attr(755,root,root) %{_libdir}/libVkLayer_vktrace_layer32.so
251 %{_datadir}/vulkan/explicit_layer.d/VkLayer_vktrace_layer32.json
254 %files validation-layers
255 %defattr(644,root,root,755)
256 %doc COPYRIGHT.txt LICENSE.txt
257 %doc layers/{README.md,vk_layer_settings.txt}
258 %attr(755,root,root) %{_libdir}/libVkLayer_core_validation.so
259 %attr(755,root,root) %{_libdir}/libVkLayer_image.so
260 %attr(755,root,root) %{_libdir}/libVkLayer_object_tracker.so
261 %attr(755,root,root) %{_libdir}/libVkLayer_parameter_validation.so
262 %attr(755,root,root) %{_libdir}/libVkLayer_swapchain.so
263 %attr(755,root,root) %{_libdir}/libVkLayer_threading.so
264 %attr(755,root,root) %{_libdir}/libVkLayer_unique_objects.so
265 %attr(755,root,root) %{_libdir}/libVkLayer_utils.so
266 %{_datadir}/vulkan/explicit_layer.d/VkLayer_core_validation.json
267 %{_datadir}/vulkan/explicit_layer.d/VkLayer_image.json
268 %{_datadir}/vulkan/explicit_layer.d/VkLayer_object_tracker.json
269 %{_datadir}/vulkan/explicit_layer.d/VkLayer_parameter_validation.json
270 %{_datadir}/vulkan/explicit_layer.d/VkLayer_swapchain.json
271 %{_datadir}/vulkan/explicit_layer.d/VkLayer_threading.json
272 %{_datadir}/vulkan/explicit_layer.d/VkLayer_unique_objects.json
275 %defattr(644,root,root,755)
276 %doc COPYRIGHT.txt LICENSE.txt
277 %doc layersvt/{README.md,vk_layer_settings.txt}
278 %attr(755,root,root) %{_libdir}/libVkLayer_api_dump.so
279 %attr(755,root,root) %{_libdir}/libVkLayer_basic.so
280 %attr(755,root,root) %{_libdir}/libVkLayer_generic.so
281 %attr(755,root,root) %{_libdir}/libVkLayer_multi.so
282 %attr(755,root,root) %{_libdir}/libVkLayer_screenshot.so
283 %attr(755,root,root) %{_libdir}/libVkLayer_utilsvt.so
284 %{_datadir}/vulkan/explicit_layer.d/VkLayer_api_dump.json
285 %{_datadir}/vulkan/explicit_layer.d/VkLayer_basic.json
286 %{_datadir}/vulkan/explicit_layer.d/VkLayer_generic.json
287 %{_datadir}/vulkan/explicit_layer.d/VkLayer_multi.json
288 %{_datadir}/vulkan/explicit_layer.d/VkLayer_screenshot.json
290 %files -n vulkan-devel
291 %defattr(644,root,root,755)
292 %doc COPYRIGHT.txt LICENSE.txt README.md
293 %{_libdir}/libvulkan.so
294 %{_libdir}/libvkjson.a
295 %{_includedir}/vulkan
296 %{_includedir}/vkjson.h
297 %{_examplesdir}/%{name}-%{version}