]> git.pld-linux.org Git - packages/vulkan-sdk.git/blame - vulkan-sdk.spec
vktrace binaries use '32' suffix on 32bit archs
[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))
5%bcond_with intel_icd # build experimental Intel GPU driver
6
7%define api_version 1.0.3
8
9%define snap 20160223
10# sdk-1.0.3 branch
11%define loader_commit b654da708be8f14e7f4c6f78df656229939422c8
12# master branch
13%define tools_commit e5dccf86cf999ff9988be97337d0e3a3d508b085
14%define rel 1
15Summary: LunarG Vulkan SDK
16Name: vulkan-sdk
17Version: 1.0.3.0
18Release: 3.s%{snap}.%{rel}
19License: MIT-like
20Group: Development
21Source0: https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/archive/%{loader_commit}/Vulkan-LoaderAndValidationLayers-s%{snap}.tar.gz
22# Source0-md5: 25e8092b69d15090af5cada36d4fc92d
23Source1: https://github.com/LunarG/VulkanTools/archive/%{tools_commit}/VulkanTools-s%{snap}.tar.gz
24# Source1-md5: 89ae56a0c0270a7043548bc30c99aa36
25Patch0: system_glslang.patch
26URL: http://lunarg.com/vulkan-sdk/
27%{?with_intel_icd:BuildRequires: Mesa-libGL-devel}
28BuildRequires: bison
29BuildRequires: cmake
30BuildRequires: GLM
31BuildRequires: glslang
32BuildRequires: glslang-devel
33BuildRequires: graphviz
34BuildRequires: ImageMagick-devel
35BuildRequires: libpng
36BuildRequires: libxcb-devel
37BuildRequires: python3
38BuildRequires: python3-modules
39BuildRequires: spirv-tools-devel
40BuildRequires: udev-devel
41%{?with_intel_icd:BuildRequires: xorg-lib-libpciaccess-devel}
42Requires: vulkan-debug-layers = %{version}-%{release}
43Requires: vulkan-devel = %{version}-%{release}
44Requires: vulkan-loader = %{version}-%{release}
45Requires: vulkan-tools = %{version}-%{release}
46Requires: vulkan-validation-layers = %{version}-%{release}
47BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
48
49%description
50Vulkan API Software Development Kit
51
52%package -n vulkan-loader
53Summary: Vulkan API loader
54License: MIT-like
55Group: Library
56Provides: vulkan(loader) = %{api_version}
57
58%description -n vulkan-loader
59Common loader for Vulkan API drivers.
60
61%package -n vulkan-validation-layers
62Summary: Validation layers for Vulkan
63Group: Development/Libraries
64Requires: %{name} = %{version}-%{release}
65
66%description -n vulkan-validation-layers
67Validation layers for Vulkan.
68
69%package -n vulkan-debug-layers
70Summary: Debug layers for Vulkan
71Group: Development/Libraries
72Requires: %{name} = %{version}-%{release}
73
74%description -n vulkan-debug-layers
75Debug layers for Vulkan.
76
77%package -n vulkan-devel
78Summary: Header files for the Vulkan API
79Summary(pl.UTF-8): Pliki nagłówkowe API Vulkan
80Group: Development/Libraries
81Requires: %{name} = %{version}-%{release}
82
83%description -n vulkan-devel
84Header files for the Vulkan API.
85
86%description -n vulkan-devel -l pl.UTF-8
87Pliki nagłówkowe API Vulkan.
88
89%package demos
90Summary: Vulkan demos
91Group: Development/Libraries
92Requires: vulkan(icd)
93Requires: vulkan-loader = %{version}-%{release}
94
95%description demos
96Vulkan demos.
97
98%package tools
99Summary: Vulkan tools
100Group: Development
101Suggests: vulkan(icd)
102Requires: vulkan-loader = %{version}-%{release}
103
104%description tools
105Vulkan tools.
106
107%prep
108%setup -q -c -a1
109
110mv Vulkan-LoaderAndValidationLayers-%{loader_commit} Vulkan-LoaderAndValidationLayers
111mv VulkanTools-%{tools_commit} VulkanTools
112
113%patch0 -p1
114
115ln -s Vulkan-LoaderAndValidationLayers LoaderAndValidationLayers
116
117%build
118install -d {Vulkan-LoaderAndValidationLayers,VulkanTools}/build
119cd Vulkan-LoaderAndValidationLayers/build
120%cmake \
121 -DCMAKE_INSTALL_DATADIR=share \
122 -DCMAKE_INSTALL_SYSCONFDIR=etc \
123 %{?with_tests:-DBUILD_TESTS=ON} \
124 %{!?with_tests:-DBUILD_TESTS=OFF} \
125 ../
126%{__make}
127
128%if %{with tests}
129cd tests
130LC_ALL=C.utf-8 VK_LAYER_PATH=../layers LD_LIBRARY_PATH=../loader:../layers ./run_all_tests.sh
131cd ..
132%endif
133cd ../..
134
135cd VulkanTools/build
136%cmake \
137 -DBUILD_ICD=%{?with_intel_icd:ON}%{!?with_intel_icd:OFF} \
138 ../
139
140%{__make}
141cd ../..
142
143%install
144rm -rf $RPM_BUILD_ROOT
145install -d $RPM_BUILD_ROOT{%{_datadir},%{_sysconfdir}}/vulkan/icd.d \
146$RPM_BUILD_ROOT{%{_datadir},%{_sysconfdir}}/vulkan/{explicit,implicit}_layer.d \
147 $RPM_BUILD_ROOT{%{_bindir},%{_libdir}/vulkan/layer} \
148 $RPM_BUILD_ROOT%{_includedir}/vulkan \
149 $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
150
151
152cd Vulkan-LoaderAndValidationLayers/build
153%{__make} install
154
155cp -p loader/libvulkan.so.1.0.3 $RPM_BUILD_ROOT%{_libdir}
156ln -s libvulkan.so.1.0.3 $RPM_BUILD_ROOT%{_libdir}/libvulkan.so
157ln -s libvulkan.so.1.0.3 $RPM_BUILD_ROOT%{_libdir}/libvulkan.so.1
158
159cp -p demos/vulkaninfo $RPM_BUILD_ROOT%{_bindir}/vulkaninfo
160cp -p demos/tri $RPM_BUILD_ROOT%{_bindir}/vulkan-tri
161cp -p demos/cube $RPM_BUILD_ROOT%{_bindir}/vulkan-cube
162
163cp -p install_staging/*.so $RPM_BUILD_ROOT%{_libdir}/vulkan/layer
164for f in layers/*.json ; do
165sed -e's@"library_path": "./@"library_path": "%{_libdir}/vulkan/layer/@' $f > $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/$(basename $f)
166done
167
168cp -p libs/vkjson/libvkjson.a $RPM_BUILD_ROOT%{_libdir}
169cp -p libs/vkjson/vkjson_{info,unittest} $RPM_BUILD_ROOT%{_bindir}
170
171cp -p ../libs/vkjson/vkjson.h $RPM_BUILD_ROOT%{_includedir}
172cp -p ../include/vulkan/* $RPM_BUILD_ROOT%{_includedir}/vulkan
173
174cp -p ../demos/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
175
176cd ../..
177cd VulkanTools/build
178%{__make} install
179
180cp -p install_staging/*.so $RPM_BUILD_ROOT%{_libdir}/vulkan/layer
181for f in layers/*.json ; do
182sed -e's@"library_path": "./@"library_path": "%{_libdir}/vulkan/layer/@' $f > $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/$(basename $f)
183done
184
a382f778 185%ifarch %x8664
0c2b688d
JK
186cp -p vktrace/libVkLayer_vktrace_layer.so $RPM_BUILD_ROOT%{_libdir}/vulkan/layer
187cp -p vktrace/vkreplay $RPM_BUILD_ROOT%{_bindir}
188cp -p vktrace/vktrace $RPM_BUILD_ROOT%{_bindir}
a382f778
JK
189%else
190cp -p vktrace/libVkLayer_vktrace_layer32.so $RPM_BUILD_ROOT%{_libdir}/vulkan/layer
191cp -p vktrace/vkreplay32 $RPM_BUILD_ROOT%{_bindir}
192cp -p vktrace/vktrace32 $RPM_BUILD_ROOT%{_bindir}
193rm $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/VkLayer_vktrace_layer.json
194sed -e's@"library_path": "./@"library_path": "%{_libdir}/vulkan/layer/@' \
195 -e's@libVkLayer_vktrace_layer.so@libVkLayer_vktrace_layer32.so@' \
196 layers/VkLayer_vktrace_layer.json > $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/VkLayer_vktrace_layer32.json
197%endif
0c2b688d
JK
198
199cd ../..
200
201cp -p VulkanTools/vktrace/README.md vktrace-README.md
202cp -p VulkanTools/vktrace/TODO.md vktrace-TODO.md
203
204%clean
205rm -rf $RPM_BUILD_ROOT
206
d8d42412
JK
207%post -n vulkan-loader -p /sbin/ldconfig
208%postun -n vulkan-loader -p /sbin/ldconfig
0c2b688d
JK
209
210%files
211%defattr(644,root,root,755)
212
213%files -n vulkan-loader
214%defattr(644,root,root,755)
215%doc Vulkan-LoaderAndValidationLayers/LICENSE.txt
216%doc Vulkan-LoaderAndValidationLayers/loader/{README.md,LoaderAndLayerInterface.md}
217%dir %{_sysconfdir}/vulkan
218%dir %{_sysconfdir}/vulkan/icd.d
219%dir %{_sysconfdir}/vulkan/explicit_layer.d
220%dir %{_sysconfdir}/vulkan/implicit_layer.d
221%dir %{_datadir}/vulkan
222%dir %{_datadir}/vulkan/icd.d
223%dir %{_datadir}/vulkan/explicit_layer.d
224%dir %{_datadir}/vulkan/implicit_layer.d
225%{_libdir}/libvulkan.so.1.*.*
226%ghost %{_libdir}/libvulkan.so.1
227%dir %{_libdir}/vulkan
228%dir %{_libdir}/vulkan/layer
229
230%files demos
231%defattr(644,root,root,755)
232%doc Vulkan-LoaderAndValidationLayers/LICENSE.txt
233%attr(755,root,root) %{_bindir}/vulkan-tri
234%attr(755,root,root) %{_bindir}/vulkan-cube
235
236%files tools
237%defattr(644,root,root,755)
238%doc VulkanTools/LICENSE.txt
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
0c2b688d 246%attr(755,root,root) %{_libdir}/vulkan/layer/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
251%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_vktrace_layer32.so
252%{_datadir}/vulkan/explicit_layer.d/VkLayer_vktrace_layer32.json
253%endif
0c2b688d
JK
254
255%files -n vulkan-validation-layers
256%defattr(644,root,root,755)
257%doc Vulkan-LoaderAndValidationLayers/LICENSE.txt
258%doc Vulkan-LoaderAndValidationLayers/layers/{README.md,vk_layer_settings.txt}
259%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_device_limits.so
260%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_draw_state.so
261%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_image.so
262%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_mem_tracker.so
263%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_object_tracker.so
264%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_param_checker.so
265%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_swapchain.so
266%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_threading.so
267%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_unique_objects.so
268%attr(755,root,root) %{_libdir}/vulkan/layer/liblayer_utils.so
269%{_datadir}/vulkan/explicit_layer.d/VkLayer_device_limits.json
270%{_datadir}/vulkan/explicit_layer.d/VkLayer_draw_state.json
271%{_datadir}/vulkan/explicit_layer.d/VkLayer_image.json
272%{_datadir}/vulkan/explicit_layer.d/VkLayer_mem_tracker.json
273%{_datadir}/vulkan/explicit_layer.d/VkLayer_object_tracker.json
274%{_datadir}/vulkan/explicit_layer.d/VkLayer_param_checker.json
275%{_datadir}/vulkan/explicit_layer.d/VkLayer_swapchain.json
276%{_datadir}/vulkan/explicit_layer.d/VkLayer_threading.json
277%{_datadir}/vulkan/explicit_layer.d/VkLayer_unique_objects.json
278
279%files -n vulkan-debug-layers
280%defattr(644,root,root,755)
281%doc VulkanTools/LICENSE.txt
282%doc VulkanTools/layers/{README.md,vk_layer_settings.txt}
283%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_api_dump.so
284%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_basic.so
285%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_generic.so
286%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_multi.so
287%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_screenshot.so
288%{_datadir}/vulkan/explicit_layer.d/VkLayer_api_dump.json
289%{_datadir}/vulkan/explicit_layer.d/VkLayer_basic.json
290%{_datadir}/vulkan/explicit_layer.d/VkLayer_generic.json
291%{_datadir}/vulkan/explicit_layer.d/VkLayer_multi.json
292%{_datadir}/vulkan/explicit_layer.d/VkLayer_screenshot.json
0c2b688d
JK
293
294%files -n vulkan-devel
295%defattr(644,root,root,755)
296%doc Vulkan-LoaderAndValidationLayers/{LICENSE.txt,README.md}
297%{_libdir}/libvulkan.so
298%{_libdir}/libvkjson.a
299%{_includedir}/vulkan
300%{_includedir}/vkjson.h
301%{_examplesdir}/%{name}-%{version}
This page took 0.124322 seconds and 4 git commands to generate.