]> git.pld-linux.org Git - packages/vulkan-sdk.git/blame - vulkan-sdk.spec
Version: 1.0.5.0 (current snapshot of the branch)
[packages/vulkan-sdk.git] / vulkan-sdk.spec
CommitLineData
0c2b688d 1#
37fbe15c
JK
2# TODO:
3# - update wayland patch so Wayland can be included together with XCB
4# again
5#
0c2b688d
JK
6# Conditional build:
7%bcond_with tests # build with tests (require a working Vulkan
8 # driver (ICD))
9adfe309 9%bcond_with icd # build experimental Vulkan drivers
37fbe15c 10%bcond_with wayland # enable Wayland support in loader
0c2b688d 11
5712831a
JK
12%ifnarch %{x8664}
13%undefine with_icd
14%endif
15
37fbe15c 16%define api_version 1.0.5
03dbfa8f 17%define llvm_version 3.4.2
0c2b688d 18
37fbe15c
JK
19%define snap 20160312
20# sdk-1.0.5 branch
21%define tools_commit f69ba448ea3a56f5104535636e27b8b8ab543455
03dbfa8f
JK
22# master branch
23%define lg_commit 0a73713f0d664aa97a7e359f567a16d7c3fce359
ace27fac 24%define rel 7
0c2b688d
JK
25Summary: LunarG Vulkan SDK
26Name: vulkan-sdk
37fbe15c
JK
27Version: 1.0.5.0
28Release: 0.s%{snap}.%{rel}
0c2b688d
JK
29License: MIT-like
30Group: Development
37fbe15c
JK
31Source0: https://github.com/LunarG/VulkanTools/archive/%{tools_commit}/VulkanTools-s%{snap}.tar.gz
32# Source0-md5: dab7bc3a32918a3e124a379b338f9ed2
33Source1: https://github.com/LunarG/LunarGLASS/archive/%{lg_commit}/LunarGLASS-%{snap}.tar.gz
34# Source1-md5: b0fb3253c782e1e539a5884dde8a31f8
35Source2: http://llvm.org/releases/%{llvm_version}/llvm-%{llvm_version}.src.tar.gz
36# Source2-md5: a20669f75967440de949ac3b1bad439c
0c2b688d 37Patch0: system_glslang.patch
03dbfa8f 38Patch1: LunarGLASS-CMakeLists.patch
b213a987 39Patch2: demos_out_of_src.patch
97255b0b 40Patch3: rpath.patch
37fbe15c 41Patch4: wayland.patch
0c2b688d 42URL: http://lunarg.com/vulkan-sdk/
03dbfa8f 43%{?with_icd:BuildRequires: Mesa-libGL-devel}
0c2b688d 44BuildRequires: bison
03dbfa8f 45%{?with_icd:BuildRequires: clang}
0c2b688d
JK
46BuildRequires: cmake
47BuildRequires: GLM
37fbe15c
JK
48BuildRequires: glslang >= 3.0.s20160307
49BuildRequires: glslang-devel >= 3.0.s20160307
0c2b688d
JK
50BuildRequires: graphviz
51BuildRequires: ImageMagick-devel
52BuildRequires: libpng
53BuildRequires: libxcb-devel
54BuildRequires: python3
55BuildRequires: python3-modules
37fbe15c 56BuildRequires: spirv-tools-devel >= 1.0_rev3.s20160312
0c2b688d 57BuildRequires: udev-devel
03dbfa8f 58%{?with_icd:BuildRequires: xorg-lib-libpciaccess-devel}
37fbe15c
JK
59Requires: glslang >= 3.0.s20160307
60Requires: spirv-tools >= 1.0_rev3.s20160312
a0190352 61Requires: %{name}-debug-layers = %{version}-%{release}
0c2b688d
JK
62Requires: vulkan-devel = %{version}-%{release}
63Requires: vulkan-loader = %{version}-%{release}
c5fea050 64Requires: vulkan-sdk-tools = %{version}-%{release}
a0190352 65Requires: %{name}-validation-layers = %{version}-%{release}
0c2b688d
JK
66BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
67
68%description
69Vulkan API Software Development Kit
70
71%package -n vulkan-loader
72Summary: Vulkan API loader
73License: MIT-like
74Group: Library
75Provides: vulkan(loader) = %{api_version}
76
77%description -n vulkan-loader
78Common loader for Vulkan API drivers.
79
a0190352 80%package validation-layers
0c2b688d
JK
81Summary: Validation layers for Vulkan
82Group: Development/Libraries
c5fea050 83Requires: vulkan-loader = %{version}-%{release}
0c2b688d 84
a0190352 85%description validation-layers
0c2b688d
JK
86Validation layers for Vulkan.
87
a0190352 88%package debug-layers
0c2b688d
JK
89Summary: Debug layers for Vulkan
90Group: Development/Libraries
c5fea050 91Requires: vulkan-loader = %{version}-%{release}
0c2b688d 92
a0190352 93%description debug-layers
0c2b688d
JK
94Debug layers for Vulkan.
95
96%package -n vulkan-devel
97Summary: Header files for the Vulkan API
98Summary(pl.UTF-8): Pliki nagłówkowe API Vulkan
99Group: Development/Libraries
c5fea050 100Requires: vulkan-loader = %{version}-%{release}
0c2b688d
JK
101
102%description -n vulkan-devel
103Header files for the Vulkan API.
104
105%description -n vulkan-devel -l pl.UTF-8
106Pliki nagłówkowe API Vulkan.
107
108%package demos
109Summary: Vulkan demos
110Group: Development/Libraries
111Requires: vulkan(icd)
112Requires: vulkan-loader = %{version}-%{release}
113
114%description demos
115Vulkan demos.
116
117%package tools
118Summary: Vulkan tools
119Group: Development
120Suggests: vulkan(icd)
121Requires: vulkan-loader = %{version}-%{release}
122
123%description tools
124Vulkan tools.
125
03dbfa8f
JK
126%package icd-intel
127Summary: Experimental Vulkan driver for Intel GPUs
128Group: X11/Libraries
129Suggests: vulkan(loader)
37fbe15c 130Provides: vulkan(icd) = 1.0.5
03dbfa8f
JK
131
132%description icd-intel
133Experimental Vulkan driver for Intel GPUs.
134
135%package icd-nulldrv
136Summary: Dummy Vulkan driver
137Group: X11/Libraries
138Suggests: vulkan(loader)
37fbe15c 139Provides: vulkan(icd) = 1.0.5
03dbfa8f
JK
140
141%description icd-nulldrv
142Dummy Vulkan driver.
143
0c2b688d 144%prep
37fbe15c 145%setup -q -c %{?with_icd:-a1}
0c2b688d 146
0c2b688d
JK
147mv VulkanTools-%{tools_commit} VulkanTools
148
149%patch0 -p1
b213a987 150%patch2 -p1
97255b0b 151%patch3 -p1
37fbe15c 152#%patch4 -p1
0c2b688d 153
03dbfa8f
JK
154%if %{with icd}
155mv LunarGLASS-%{lg_commit} LunarGLASS
156cd LunarGLASS/Core/LLVM/llvm-3.4
157tar -x --strip-components=1 --skip-old-files -f %{SOURCE3}
158cp -R ../../../../VulkanTools/LunarGLASS/* .
159cd ../../../..
160
161%patch1 -p1
162%endif
163
0c2b688d 164%build
0c2b688d 165
03dbfa8f
JK
166%if %{with icd}
167cd LunarGLASS/Core/LLVM/llvm-3.4
168install -d build
169cd build
170../%configure \
171 --disable-bindings \
172 --disable-curses \
173 --disable-terminfo
174
175REQUIRES_RTTI=1 %{__make}
176REQUIRES_RTTI=1 %{__make} install prefix=%{_prefix}/local DESTDIR=`pwd`/install
177
178cd ../../../..
179
180install -d build
181cd build
182%cmake \
183 -DGLSLANGINCLUDES=%{_includedir}/glslang \
184 -DGLSLANGLIBS=%{_libdir} \
185 ../
186%{__make}
187%{__make} install
188
189%{?with_tests:%{__make} test}
190
191cd ../..
192%endif
193
b213a987 194install -d VulkanTools/build
0c2b688d 195cd VulkanTools/build
37fbe15c 196
0c2b688d 197%cmake \
37fbe15c
JK
198 -DCMAKE_INSTALL_DATADIR=share \
199 -DCMAKE_INSTALL_SYSCONFDIR=etc \
200 -DBUILD_TESTS=%{?with_tests:ON}%{!?with_tests:OFF} \
201 -DBUILD_WSI_WAYLAND_SUPPORT=%{?with_wayland:ON}%{!?with_wayland:OFF} \
03dbfa8f 202 -DBUILD_ICD=%{?with_icd:ON}%{!?with_icd:OFF} \
37fbe15c 203 ../
0c2b688d 204%{__make}
37fbe15c
JK
205
206%if %{with tests}
207cd tests
208LC_ALL=C.utf-8 VK_LAYER_PATH=../layers LD_LIBRARY_PATH=../loader:../layers ./run_all_tests.sh
209cd ..
210%endif
211
0c2b688d
JK
212cd ../..
213
214%install
215rm -rf $RPM_BUILD_ROOT
216install -d $RPM_BUILD_ROOT{%{_datadir},%{_sysconfdir}}/vulkan/icd.d \
217$RPM_BUILD_ROOT{%{_datadir},%{_sysconfdir}}/vulkan/{explicit,implicit}_layer.d \
218 $RPM_BUILD_ROOT{%{_bindir},%{_libdir}/vulkan/layer} \
219 $RPM_BUILD_ROOT%{_includedir}/vulkan \
b213a987 220 $RPM_BUILD_ROOT%{_datadir}/%{name}-demos \
0c2b688d
JK
221 $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
222
223
37fbe15c 224cd VulkanTools/build
0c2b688d
JK
225%{__make} install
226
37fbe15c
JK
227cp -p loader/libvulkan.so.1.0.5 $RPM_BUILD_ROOT%{_libdir}
228ln -s libvulkan.so.1.0.5 $RPM_BUILD_ROOT%{_libdir}/libvulkan.so
229ln -s libvulkan.so.1.0.5 $RPM_BUILD_ROOT%{_libdir}/libvulkan.so.1
0c2b688d
JK
230
231cp -p demos/vulkaninfo $RPM_BUILD_ROOT%{_bindir}/vulkaninfo
232cp -p demos/tri $RPM_BUILD_ROOT%{_bindir}/vulkan-tri
233cp -p demos/cube $RPM_BUILD_ROOT%{_bindir}/vulkan-cube
37fbe15c 234cp -p demos/smoke/smoke $RPM_BUILD_ROOT%{_bindir}/vulkan-smoke
b213a987 235cp -p demos/{lunarg.ppm,*-vert.spv,*-frag.spv} $RPM_BUILD_ROOT%{_datadir}/%{name}-demos
0c2b688d
JK
236
237cp -p install_staging/*.so $RPM_BUILD_ROOT%{_libdir}/vulkan/layer
238for f in layers/*.json ; do
239sed -e's@"library_path": "./@"library_path": "%{_libdir}/vulkan/layer/@' $f > $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/$(basename $f)
240done
241
242cp -p libs/vkjson/libvkjson.a $RPM_BUILD_ROOT%{_libdir}
243cp -p libs/vkjson/vkjson_{info,unittest} $RPM_BUILD_ROOT%{_bindir}
244
245cp -p ../libs/vkjson/vkjson.h $RPM_BUILD_ROOT%{_includedir}
246cp -p ../include/vulkan/* $RPM_BUILD_ROOT%{_includedir}/vulkan
247
37fbe15c 248cp -pr ../demos/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
0c2b688d 249
b213a987
JK
250# restore original demo sources in %{_examplesdir}
251%patch2 -R -p3 -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
252rm -f $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}/*.orig 2>/dev/null || :
253
a382f778 254%ifarch %x8664
0c2b688d
JK
255cp -p vktrace/libVkLayer_vktrace_layer.so $RPM_BUILD_ROOT%{_libdir}/vulkan/layer
256cp -p vktrace/vkreplay $RPM_BUILD_ROOT%{_bindir}
257cp -p vktrace/vktrace $RPM_BUILD_ROOT%{_bindir}
a382f778
JK
258%else
259cp -p vktrace/libVkLayer_vktrace_layer32.so $RPM_BUILD_ROOT%{_libdir}/vulkan/layer
260cp -p vktrace/vkreplay32 $RPM_BUILD_ROOT%{_bindir}
261cp -p vktrace/vktrace32 $RPM_BUILD_ROOT%{_bindir}
262rm $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/VkLayer_vktrace_layer.json
263sed -e's@"library_path": "./@"library_path": "%{_libdir}/vulkan/layer/@' \
264 -e's@libVkLayer_vktrace_layer.so@libVkLayer_vktrace_layer32.so@' \
265 layers/VkLayer_vktrace_layer.json > $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/VkLayer_vktrace_layer32.json
266%endif
0c2b688d 267
03dbfa8f
JK
268%if %{with icd}
269cp -p icd/*/libVK_*.so $RPM_BUILD_ROOT%{_libdir}
270for f in icd/*/*.json ; do
bbd66d6b 271sed -e's@"library_path": "./@"library_path": "@' $f > $RPM_BUILD_ROOT%{_datadir}/vulkan/icd.d/%{name}-$(basename $f)
03dbfa8f
JK
272done
273%endif
0c2b688d
JK
274cd ../..
275
276cp -p VulkanTools/vktrace/README.md vktrace-README.md
277cp -p VulkanTools/vktrace/TODO.md vktrace-TODO.md
278
279%clean
280rm -rf $RPM_BUILD_ROOT
281
d8d42412
JK
282%post -n vulkan-loader -p /sbin/ldconfig
283%postun -n vulkan-loader -p /sbin/ldconfig
0c2b688d
JK
284
285%files
286%defattr(644,root,root,755)
287
288%files -n vulkan-loader
289%defattr(644,root,root,755)
37fbe15c
JK
290%doc VulkanTools/LICENSE.txt
291%doc VulkanTools/loader/{README.md,LoaderAndLayerInterface.md}
0c2b688d
JK
292%dir %{_sysconfdir}/vulkan
293%dir %{_sysconfdir}/vulkan/icd.d
294%dir %{_sysconfdir}/vulkan/explicit_layer.d
295%dir %{_sysconfdir}/vulkan/implicit_layer.d
296%dir %{_datadir}/vulkan
297%dir %{_datadir}/vulkan/icd.d
298%dir %{_datadir}/vulkan/explicit_layer.d
299%dir %{_datadir}/vulkan/implicit_layer.d
300%{_libdir}/libvulkan.so.1.*.*
301%ghost %{_libdir}/libvulkan.so.1
302%dir %{_libdir}/vulkan
303%dir %{_libdir}/vulkan/layer
304
305%files demos
306%defattr(644,root,root,755)
37fbe15c 307%doc VulkanTools/LICENSE.txt
0c2b688d 308%attr(755,root,root) %{_bindir}/vulkan-cube
37fbe15c
JK
309%attr(755,root,root) %{_bindir}/vulkan-smoke
310%attr(755,root,root) %{_bindir}/vulkan-tri
b213a987 311%{_datadir}/%{name}-demos
0c2b688d
JK
312
313%files tools
314%defattr(644,root,root,755)
315%doc VulkanTools/LICENSE.txt
316%doc vktrace-README.md vktrace-TODO.md
317%attr(755,root,root) %{_bindir}/vkjson_info
318%attr(755,root,root) %{_bindir}/vkjson_unittest
a382f778
JK
319%attr(755,root,root) %{_bindir}/vulkaninfo
320%ifarch %x8664
0c2b688d
JK
321%attr(755,root,root) %{_bindir}/vkreplay
322%attr(755,root,root) %{_bindir}/vktrace
0c2b688d 323%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_vktrace_layer.so
a382f778
JK
324%{_datadir}/vulkan/explicit_layer.d/VkLayer_vktrace_layer.json
325%else
326%attr(755,root,root) %{_bindir}/vkreplay32
327%attr(755,root,root) %{_bindir}/vktrace32
328%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_vktrace_layer32.so
329%{_datadir}/vulkan/explicit_layer.d/VkLayer_vktrace_layer32.json
330%endif
0c2b688d 331
a0190352 332%files validation-layers
0c2b688d 333%defattr(644,root,root,755)
37fbe15c
JK
334%doc VulkanTools/LICENSE.txt
335%doc VulkanTools/layers/{README.md,vk_layer_settings.txt}
0c2b688d
JK
336%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_device_limits.so
337%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_draw_state.so
338%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_image.so
339%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_mem_tracker.so
340%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_object_tracker.so
341%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_param_checker.so
342%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_swapchain.so
343%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_threading.so
344%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_unique_objects.so
345%attr(755,root,root) %{_libdir}/vulkan/layer/liblayer_utils.so
346%{_datadir}/vulkan/explicit_layer.d/VkLayer_device_limits.json
347%{_datadir}/vulkan/explicit_layer.d/VkLayer_draw_state.json
348%{_datadir}/vulkan/explicit_layer.d/VkLayer_image.json
349%{_datadir}/vulkan/explicit_layer.d/VkLayer_mem_tracker.json
350%{_datadir}/vulkan/explicit_layer.d/VkLayer_object_tracker.json
351%{_datadir}/vulkan/explicit_layer.d/VkLayer_param_checker.json
352%{_datadir}/vulkan/explicit_layer.d/VkLayer_swapchain.json
353%{_datadir}/vulkan/explicit_layer.d/VkLayer_threading.json
354%{_datadir}/vulkan/explicit_layer.d/VkLayer_unique_objects.json
355
a0190352 356%files debug-layers
0c2b688d
JK
357%defattr(644,root,root,755)
358%doc VulkanTools/LICENSE.txt
359%doc VulkanTools/layers/{README.md,vk_layer_settings.txt}
360%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_api_dump.so
361%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_basic.so
362%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_generic.so
363%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_multi.so
364%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_screenshot.so
365%{_datadir}/vulkan/explicit_layer.d/VkLayer_api_dump.json
366%{_datadir}/vulkan/explicit_layer.d/VkLayer_basic.json
367%{_datadir}/vulkan/explicit_layer.d/VkLayer_generic.json
368%{_datadir}/vulkan/explicit_layer.d/VkLayer_multi.json
369%{_datadir}/vulkan/explicit_layer.d/VkLayer_screenshot.json
0c2b688d
JK
370
371%files -n vulkan-devel
372%defattr(644,root,root,755)
37fbe15c 373%doc VulkanTools/{LICENSE.txt,README.md}
0c2b688d
JK
374%{_libdir}/libvulkan.so
375%{_libdir}/libvkjson.a
376%{_includedir}/vulkan
377%{_includedir}/vkjson.h
378%{_examplesdir}/%{name}-%{version}
03dbfa8f
JK
379
380%if %{with icd}
381%files icd-intel
382%defattr(644,root,root,755)
383%doc VulkanTools/LICENSE.txt
384%attr(755,root,root) %{_libdir}/libVK_i965.so
bbd66d6b 385%{_datadir}/vulkan/icd.d/%{name}-intel_icd.json
03dbfa8f
JK
386
387%files icd-nulldrv
388%defattr(644,root,root,755)
389%doc VulkanTools/LICENSE.txt
390%attr(755,root,root) %{_libdir}/libVK_nulldrv.so
bbd66d6b 391%{_datadir}/vulkan/icd.d/%{name}-nulldrv_icd.json
03dbfa8f 392%endif
This page took 0.125265 seconds and 4 git commands to generate.