]> git.pld-linux.org Git - packages/vulkan-sdk.git/blame - vulkan-sdk.spec
fix 32-bit build
[packages/vulkan-sdk.git] / vulkan-sdk.spec
CommitLineData
0c2b688d
JK
1#
2# Conditional build:
3%bcond_with tests # build with tests (require a working Vulkan
4 # driver (ICD))
9adfe309 5%bcond_with icd # build experimental Vulkan drivers
78da5abe
JK
6%bcond_without wayland # enable Wayland support in loader
7%bcond_without xlib # enable XLib support in loader
0c2b688d 8
5712831a
JK
9%ifnarch %{x8664}
10%undefine with_icd
11%endif
12
8be5e6f4 13%define api_version 1.0.8
03dbfa8f 14%define llvm_version 3.4.2
0c2b688d 15
8be5e6f4
JK
16%define snap 2016012
17# sdk-1.0.8 branch
18%define tools_commit 0ee123463a4ea5878aea9f6884830baecfd56d24
03dbfa8f
JK
19# master branch
20%define lg_commit 0a73713f0d664aa97a7e359f567a16d7c3fce359
78da5abe 21%define rel 1
0c2b688d
JK
22Summary: LunarG Vulkan SDK
23Name: vulkan-sdk
8be5e6f4 24Version: 1.0.8.0
37fbe15c 25Release: 0.s%{snap}.%{rel}
0c2b688d
JK
26License: MIT-like
27Group: Development
37fbe15c 28Source0: https://github.com/LunarG/VulkanTools/archive/%{tools_commit}/VulkanTools-s%{snap}.tar.gz
8be5e6f4 29# Source0-md5: ff6af5dbcc3bb2354a8e336dd03c18bb
37fbe15c
JK
30Source1: https://github.com/LunarG/LunarGLASS/archive/%{lg_commit}/LunarGLASS-%{snap}.tar.gz
31# Source1-md5: b0fb3253c782e1e539a5884dde8a31f8
32Source2: http://llvm.org/releases/%{llvm_version}/llvm-%{llvm_version}.src.tar.gz
33# Source2-md5: a20669f75967440de949ac3b1bad439c
78da5abe
JK
34Patch0: system_glslang_and_spirv-tools.patch
35Patch1: demos_out_of_src.patch
36Patch2: rpath.patch
37Patch3: always_xcb.patch
38Patch4: vktrace_wayland.patch
39# LunarGLASS patches
40Patch100: LunarGLASS-CMakeLists.patch
0c2b688d 41URL: http://lunarg.com/vulkan-sdk/
03dbfa8f 42%{?with_icd:BuildRequires: Mesa-libGL-devel}
0c2b688d 43BuildRequires: bison
03dbfa8f 44%{?with_icd:BuildRequires: clang}
0c2b688d
JK
45BuildRequires: cmake
46BuildRequires: GLM
8be5e6f4
JK
47BuildRequires: glslang >= 3.0.s20160325
48BuildRequires: glslang-devel >= 3.0.s20160325
0c2b688d
JK
49BuildRequires: graphviz
50BuildRequires: ImageMagick-devel
51BuildRequires: libpng
52BuildRequires: libxcb-devel
53BuildRequires: python3
83dd1851 54BuildRequires: python3-lxml
0c2b688d 55BuildRequires: python3-modules
8be5e6f4 56BuildRequires: spirv-tools-devel >= 1.0_rev3.s20160329
0c2b688d 57BuildRequires: udev-devel
03dbfa8f 58%{?with_icd:BuildRequires: xorg-lib-libpciaccess-devel}
8be5e6f4
JK
59Requires: glslang >= 3.0.s20160325
60Requires: spirv-tools >= 1.0_rev3.s20160329
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)
78da5abe 130Provides: vulkan(icd) = 1.0.8
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)
78da5abe 139Provides: vulkan(icd) = 1.0.8
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
78da5abe 150%patch1 -p1
b213a987 151%patch2 -p1
97255b0b 152%patch3 -p1
78da5abe 153%patch4 -p1
0c2b688d 154
03dbfa8f
JK
155%if %{with icd}
156mv LunarGLASS-%{lg_commit} LunarGLASS
157cd LunarGLASS/Core/LLVM/llvm-3.4
158tar -x --strip-components=1 --skip-old-files -f %{SOURCE3}
159cp -R ../../../../VulkanTools/LunarGLASS/* .
160cd ../../../..
161
78da5abe 162%patch100 -p1
03dbfa8f
JK
163%endif
164
0c2b688d 165%build
0c2b688d 166
03dbfa8f
JK
167%if %{with icd}
168cd LunarGLASS/Core/LLVM/llvm-3.4
169install -d build
170cd build
171../%configure \
172 --disable-bindings \
173 --disable-curses \
174 --disable-terminfo
175
176REQUIRES_RTTI=1 %{__make}
177REQUIRES_RTTI=1 %{__make} install prefix=%{_prefix}/local DESTDIR=`pwd`/install
178
179cd ../../../..
180
181install -d build
182cd build
183%cmake \
184 -DGLSLANGINCLUDES=%{_includedir}/glslang \
185 -DGLSLANGLIBS=%{_libdir} \
186 ../
187%{__make}
188%{__make} install
189
190%{?with_tests:%{__make} test}
191
192cd ../..
193%endif
194
b213a987 195install -d VulkanTools/build
0c2b688d 196cd VulkanTools/build
37fbe15c 197
0c2b688d 198%cmake \
37fbe15c
JK
199 -DCMAKE_INSTALL_DATADIR=share \
200 -DCMAKE_INSTALL_SYSCONFDIR=etc \
201 -DBUILD_TESTS=%{?with_tests:ON}%{!?with_tests:OFF} \
202 -DBUILD_WSI_WAYLAND_SUPPORT=%{?with_wayland:ON}%{!?with_wayland:OFF} \
78da5abe 203 -DBUILD_WSI_XLIB_SUPPORT=%{?with_xlib:ON}%{!?with_xlib:OFF} \
03dbfa8f 204 -DBUILD_ICD=%{?with_icd:ON}%{!?with_icd:OFF} \
37fbe15c 205 ../
0c2b688d 206%{__make}
37fbe15c
JK
207
208%if %{with tests}
209cd tests
210LC_ALL=C.utf-8 VK_LAYER_PATH=../layers LD_LIBRARY_PATH=../loader:../layers ./run_all_tests.sh
211cd ..
212%endif
213
0c2b688d
JK
214cd ../..
215
216%install
217rm -rf $RPM_BUILD_ROOT
218install -d $RPM_BUILD_ROOT{%{_datadir},%{_sysconfdir}}/vulkan/icd.d \
219$RPM_BUILD_ROOT{%{_datadir},%{_sysconfdir}}/vulkan/{explicit,implicit}_layer.d \
220 $RPM_BUILD_ROOT{%{_bindir},%{_libdir}/vulkan/layer} \
221 $RPM_BUILD_ROOT%{_includedir}/vulkan \
b213a987 222 $RPM_BUILD_ROOT%{_datadir}/%{name}-demos \
0c2b688d
JK
223 $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
224
225
37fbe15c 226cd VulkanTools/build
0c2b688d
JK
227%{__make} install
228
78da5abe
JK
229cp -p loader/libvulkan.so.1.0.8 $RPM_BUILD_ROOT%{_libdir}
230ln -s libvulkan.so.1.0.8 $RPM_BUILD_ROOT%{_libdir}/libvulkan.so
231ln -s libvulkan.so.1.0.8 $RPM_BUILD_ROOT%{_libdir}/libvulkan.so.1
0c2b688d
JK
232
233cp -p demos/vulkaninfo $RPM_BUILD_ROOT%{_bindir}/vulkaninfo
234cp -p demos/tri $RPM_BUILD_ROOT%{_bindir}/vulkan-tri
235cp -p demos/cube $RPM_BUILD_ROOT%{_bindir}/vulkan-cube
78da5abe 236cp -p demos/smoketest $RPM_BUILD_ROOT%{_bindir}/vulkan-smoketest
b213a987 237cp -p demos/{lunarg.ppm,*-vert.spv,*-frag.spv} $RPM_BUILD_ROOT%{_datadir}/%{name}-demos
0c2b688d
JK
238
239cp -p install_staging/*.so $RPM_BUILD_ROOT%{_libdir}/vulkan/layer
78da5abe 240for f in layers/*.json layersvt/*.json ; do
0c2b688d
JK
241sed -e's@"library_path": "./@"library_path": "%{_libdir}/vulkan/layer/@' $f > $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/$(basename $f)
242done
243
244cp -p libs/vkjson/libvkjson.a $RPM_BUILD_ROOT%{_libdir}
245cp -p libs/vkjson/vkjson_{info,unittest} $RPM_BUILD_ROOT%{_bindir}
246
247cp -p ../libs/vkjson/vkjson.h $RPM_BUILD_ROOT%{_includedir}
248cp -p ../include/vulkan/* $RPM_BUILD_ROOT%{_includedir}/vulkan
249
37fbe15c 250cp -pr ../demos/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
0c2b688d 251
b213a987 252# restore original demo sources in %{_examplesdir}
78da5abe 253%patch1 -R -p3 -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
b213a987
JK
254rm -f $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}/*.orig 2>/dev/null || :
255
a382f778 256%ifarch %x8664
0c2b688d
JK
257cp -p vktrace/libVkLayer_vktrace_layer.so $RPM_BUILD_ROOT%{_libdir}/vulkan/layer
258cp -p vktrace/vkreplay $RPM_BUILD_ROOT%{_bindir}
259cp -p vktrace/vktrace $RPM_BUILD_ROOT%{_bindir}
78da5abe
JK
260sed -e's@"library_path": "../vktrace/@"library_path": "%{_libdir}/vulkan/layer/@' \
261 layersvt/VkLayer_vktrace_layer.json > $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/VkLayer_vktrace_layer.json
a382f778
JK
262%else
263cp -p vktrace/libVkLayer_vktrace_layer32.so $RPM_BUILD_ROOT%{_libdir}/vulkan/layer
264cp -p vktrace/vkreplay32 $RPM_BUILD_ROOT%{_bindir}
265cp -p vktrace/vktrace32 $RPM_BUILD_ROOT%{_bindir}
266rm $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/VkLayer_vktrace_layer.json
78da5abe 267sed -e's@"library_path": "../vktrace/@"library_path": "%{_libdir}/vulkan/layer/@' \
a382f778 268 -e's@libVkLayer_vktrace_layer.so@libVkLayer_vktrace_layer32.so@' \
97f3b102 269 layersvt/VkLayer_vktrace_layer.json > $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/VkLayer_vktrace_layer32.json
a382f778 270%endif
0c2b688d 271
03dbfa8f
JK
272%if %{with icd}
273cp -p icd/*/libVK_*.so $RPM_BUILD_ROOT%{_libdir}
274for f in icd/*/*.json ; do
bbd66d6b 275sed -e's@"library_path": "./@"library_path": "@' $f > $RPM_BUILD_ROOT%{_datadir}/vulkan/icd.d/%{name}-$(basename $f)
03dbfa8f
JK
276done
277%endif
0c2b688d
JK
278cd ../..
279
280cp -p VulkanTools/vktrace/README.md vktrace-README.md
281cp -p VulkanTools/vktrace/TODO.md vktrace-TODO.md
282
283%clean
284rm -rf $RPM_BUILD_ROOT
285
d8d42412
JK
286%post -n vulkan-loader -p /sbin/ldconfig
287%postun -n vulkan-loader -p /sbin/ldconfig
0c2b688d
JK
288
289%files
290%defattr(644,root,root,755)
291
292%files -n vulkan-loader
293%defattr(644,root,root,755)
37fbe15c
JK
294%doc VulkanTools/LICENSE.txt
295%doc VulkanTools/loader/{README.md,LoaderAndLayerInterface.md}
0c2b688d
JK
296%dir %{_sysconfdir}/vulkan
297%dir %{_sysconfdir}/vulkan/icd.d
298%dir %{_sysconfdir}/vulkan/explicit_layer.d
299%dir %{_sysconfdir}/vulkan/implicit_layer.d
300%dir %{_datadir}/vulkan
301%dir %{_datadir}/vulkan/icd.d
302%dir %{_datadir}/vulkan/explicit_layer.d
303%dir %{_datadir}/vulkan/implicit_layer.d
304%{_libdir}/libvulkan.so.1.*.*
305%ghost %{_libdir}/libvulkan.so.1
306%dir %{_libdir}/vulkan
307%dir %{_libdir}/vulkan/layer
308
309%files demos
310%defattr(644,root,root,755)
37fbe15c 311%doc VulkanTools/LICENSE.txt
0c2b688d 312%attr(755,root,root) %{_bindir}/vulkan-cube
78da5abe 313%attr(755,root,root) %{_bindir}/vulkan-smoketest
37fbe15c 314%attr(755,root,root) %{_bindir}/vulkan-tri
b213a987 315%{_datadir}/%{name}-demos
0c2b688d
JK
316
317%files tools
318%defattr(644,root,root,755)
319%doc VulkanTools/LICENSE.txt
320%doc vktrace-README.md vktrace-TODO.md
321%attr(755,root,root) %{_bindir}/vkjson_info
322%attr(755,root,root) %{_bindir}/vkjson_unittest
a382f778
JK
323%attr(755,root,root) %{_bindir}/vulkaninfo
324%ifarch %x8664
0c2b688d
JK
325%attr(755,root,root) %{_bindir}/vkreplay
326%attr(755,root,root) %{_bindir}/vktrace
0c2b688d 327%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_vktrace_layer.so
a382f778
JK
328%{_datadir}/vulkan/explicit_layer.d/VkLayer_vktrace_layer.json
329%else
330%attr(755,root,root) %{_bindir}/vkreplay32
331%attr(755,root,root) %{_bindir}/vktrace32
332%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_vktrace_layer32.so
333%{_datadir}/vulkan/explicit_layer.d/VkLayer_vktrace_layer32.json
334%endif
0c2b688d 335
a0190352 336%files validation-layers
0c2b688d 337%defattr(644,root,root,755)
37fbe15c
JK
338%doc VulkanTools/LICENSE.txt
339%doc VulkanTools/layers/{README.md,vk_layer_settings.txt}
78da5abe 340%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_core_validation.so
0c2b688d 341%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_device_limits.so
0c2b688d 342%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_image.so
0c2b688d 343%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_object_tracker.so
78da5abe 344%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_parameter_validation.so
0c2b688d
JK
345%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_swapchain.so
346%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_threading.so
347%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_unique_objects.so
348%attr(755,root,root) %{_libdir}/vulkan/layer/liblayer_utils.so
78da5abe 349%{_datadir}/vulkan/explicit_layer.d/VkLayer_core_validation.json
0c2b688d 350%{_datadir}/vulkan/explicit_layer.d/VkLayer_device_limits.json
0c2b688d 351%{_datadir}/vulkan/explicit_layer.d/VkLayer_image.json
0c2b688d 352%{_datadir}/vulkan/explicit_layer.d/VkLayer_object_tracker.json
78da5abe 353%{_datadir}/vulkan/explicit_layer.d/VkLayer_parameter_validation.json
0c2b688d
JK
354%{_datadir}/vulkan/explicit_layer.d/VkLayer_swapchain.json
355%{_datadir}/vulkan/explicit_layer.d/VkLayer_threading.json
356%{_datadir}/vulkan/explicit_layer.d/VkLayer_unique_objects.json
357
a0190352 358%files debug-layers
0c2b688d
JK
359%defattr(644,root,root,755)
360%doc VulkanTools/LICENSE.txt
78da5abe 361%doc VulkanTools/layersvt/{README.md,vk_layer_settings.txt}
0c2b688d
JK
362%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_api_dump.so
363%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_basic.so
364%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_generic.so
365%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_multi.so
366%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_screenshot.so
78da5abe 367%attr(755,root,root) %{_libdir}/vulkan/layer/liblayer_utilsvt.so
0c2b688d
JK
368%{_datadir}/vulkan/explicit_layer.d/VkLayer_api_dump.json
369%{_datadir}/vulkan/explicit_layer.d/VkLayer_basic.json
370%{_datadir}/vulkan/explicit_layer.d/VkLayer_generic.json
371%{_datadir}/vulkan/explicit_layer.d/VkLayer_multi.json
372%{_datadir}/vulkan/explicit_layer.d/VkLayer_screenshot.json
0c2b688d
JK
373
374%files -n vulkan-devel
375%defattr(644,root,root,755)
37fbe15c 376%doc VulkanTools/{LICENSE.txt,README.md}
0c2b688d
JK
377%{_libdir}/libvulkan.so
378%{_libdir}/libvkjson.a
379%{_includedir}/vulkan
380%{_includedir}/vkjson.h
381%{_examplesdir}/%{name}-%{version}
03dbfa8f
JK
382
383%if %{with icd}
384%files icd-intel
385%defattr(644,root,root,755)
386%doc VulkanTools/LICENSE.txt
387%attr(755,root,root) %{_libdir}/libVK_i965.so
bbd66d6b 388%{_datadir}/vulkan/icd.d/%{name}-intel_icd.json
03dbfa8f
JK
389
390%files icd-nulldrv
391%defattr(644,root,root,755)
392%doc VulkanTools/LICENSE.txt
393%attr(755,root,root) %{_libdir}/libVK_nulldrv.so
bbd66d6b 394%{_datadir}/vulkan/icd.d/%{name}-nulldrv_icd.json
03dbfa8f 395%endif
This page took 0.087968 seconds and 4 git commands to generate.