]> git.pld-linux.org Git - packages/vulkan-sdk.git/blob - vulkan-sdk.spec
- updated GLM dependency
[packages/vulkan-sdk.git] / vulkan-sdk.spec
1 #
2 # TODO:
3 #       - investigate why vktrace does not work
4
5
6 # Conditional build:
7 %bcond_with     tests   # run tests (require a working Vulkan driver (ICD))
8 %bcond_with     mir     # Mir support in loader
9 %bcond_without  wayland # Wayland support in loader
10 %bcond_without  x11     # XLib support in loader
11
12 %define api_version     1.0.68
13 # see submodules/Vulkan-LoaderAndValidationLayers in git
14 %define lvl_rev         65c23aec1365c0a727323af6f331b0773b4fc1de
15
16 Summary:        LunarG Vulkan SDK
17 Summary(pl.UTF-8):      Pakiet programistyczny (SDK) LunarG Vulkan
18 Name:           vulkan-sdk
19 Version:        1.0.68.0
20 Release:        4
21 License:        Apache v2.0, parts MIT-like
22 Group:          Development
23 Source0:        https://github.com/LunarG/VulkanTools/archive/sdk-%{version}/VulkanTools-%{version}.tar.gz
24 # Source0-md5:  34f9b94a9c698bd6f62d1a0b8c1cc1bc
25 Source1:        https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/archive/%{lvl_rev}/Vulkan-LoaderAndValidationLayers-%{lvl_rev}.tar.gz
26 # Source1-md5:  6da35fb1d4ba687e1d67c39aaa474c4b
27 Patch0:         system_glslang_and_spirv-tools.patch
28 Patch1:         demos_out_of_src.patch
29 Patch2:         rpath.patch
30 Patch3:         %{name}-c++.patch
31 Patch4:         x32.patch
32 Patch5:         system_jsoncpp.patch
33 Patch6:         python3.8.patch
34 Patch7:         build.patch
35 URL:            http://lunarg.com/vulkan-sdk/
36 BuildRequires:  GLM-devel
37 BuildRequires:  Qt5Core-devel >= 5
38 BuildRequires:  Qt5Gui-devel >= 5
39 BuildRequires:  Qt5Svg-devel >= 5
40 BuildRequires:  Qt5Widgets-devel >= 5
41 BuildRequires:  bison
42 BuildRequires:  cmake >= 3.0
43 %if %{with tests} && %(locale -a | grep -q '^C\.UTF-8$'; echo $?)
44 BuildRequires:  glibc-localedb-all
45 %endif
46 BuildRequires:  glslang >= 3.0.s20180205
47 BuildRequires:  glslang-devel >= 3.0.s20180205
48 BuildRequires:  graphviz
49 BuildRequires:  ImageMagick-devel
50 BuildRequires:  jsoncpp-devel
51 BuildRequires:  libpng
52 BuildRequires:  libstdc++-devel >= 6:4.7
53 BuildRequires:  libxcb-devel
54 %{?with_mir:BuildRequires:      mir-devel}
55 BuildRequires:  pkgconfig
56 BuildRequires:  python3 >= 1:3
57 BuildRequires:  python3-lxml
58 BuildRequires:  python3-modules >= 1:3
59 BuildRequires:  qt5-build >= 5
60 BuildRequires:  rpmbuild(macros) >= 1.605
61 BuildRequires:  spirv-tools-devel >= v2018.1-0.s20180210
62 BuildRequires:  udev-devel
63 %{?with_wayland:BuildRequires:  wayland-devel}
64 %{?with_x11:BuildRequires:      xorg-lib-libX11-devel}
65 Requires:       glslang >= 3.0.s20180205
66 Requires:       spirv-tools >= v2018.1-0.s20180210
67 Requires:       %{name}-debug-layers = %{version}-%{release}
68 Requires:       vulkan-devel = %{version}-%{release}
69 Requires:       vulkan-loader = %{version}-%{release}
70 Requires:       vulkan-sdk-tools = %{version}-%{release}
71 Requires:       %{name}-validation-layers = %{version}-%{release}
72 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
73
74 %ifarch %{x8664}
75 %define binsuf  %{nil}
76 %else
77 %define binsuf  32
78 %endif
79
80 %description
81 Vulkan API Software Development Kit.
82
83 %description -l pl.UTF-8
84 Pakiet programistyczny (SDK) Vulkan API
85
86 %package -n vulkan-loader
87 Summary:        Vulkan API loader
88 Summary(pl.UTF-8):      Biblioteka wczytująca sterowniki Vulkan
89 Group:          Libraries
90 Provides:       vulkan(loader) = %{api_version}
91
92 %description -n vulkan-loader
93 Common loader for Vulkan API drivers.
94
95 %description -n vulkan-loader -l pl.UTF-8
96 Wspólna biblioteka wczytująca sterowniki Vulkan.
97
98 %package -n vulkan-devel
99 Summary:        Header files for the Vulkan API
100 Summary(pl.UTF-8):      Pliki nagłówkowe API Vulkan
101 Group:          Development/Libraries
102 Requires:       vulkan-loader = %{version}-%{release}
103
104 %description -n vulkan-devel
105 Header files for the Vulkan API.
106
107 %description -n vulkan-devel -l pl.UTF-8
108 Pliki nagłówkowe API Vulkan.
109
110 %package tools
111 Summary:        Vulkan tools
112 Summary(pl.UTF-8):      Narzędzia Vulkana
113 Group:          Development/Tools
114 Suggests:       vulkan(icd)
115 Requires:       vulkan-loader = %{version}-%{release}
116
117 %description tools
118 Vulkan tools.
119
120 %description tools -l pl.UTF-8
121 Narzędzia Vulkana.
122
123 %package tools-vktraceviewer
124 Summary:        Vulkan trace viewer
125 Summary(pl.UTF-8):      Przeglądarka śladów Vulkana
126 Group:          Development/Tools
127 Requires:       %{name}-tools = %{version}-%{release}
128
129 %description tools-vktraceviewer
130 Vulkan trace viewer.
131
132 %description tools-vktraceviewer -l pl.UTF-8
133 Przeglądarka śladów Vulkana.
134
135 %package validation-layers
136 Summary:        Validation layers for Vulkan
137 Summary(pl.UTF-8):      Warstwy sprawdzania poprawności dla Vulkana
138 Group:          Development/Libraries
139 Requires:       vulkan-loader = %{version}-%{release}
140
141 %description validation-layers
142 Validation layers for Vulkan.
143
144 %description validation-layers -l pl.UTF-8
145 Warstwy sprawdzania poprawności dla Vulkana.
146
147 %package debug-layers
148 Summary:        Debug layers for Vulkan
149 Summary(pl.UTF-8):      Warstwy diagnostyczne dla Vulkana
150 Group:          Development/Libraries
151 Requires:       vulkan-loader = %{version}-%{release}
152
153 %description debug-layers
154 Debug layers for Vulkan.
155
156 %description debug-layers -l pl.UTF-8
157 Warstwy diagnostyczne dla Vulkana.
158
159 %package demos
160 Summary:        Vulkan demos
161 Summary(pl.UTF-8):      Programy demonstracyjne Vulkana
162 Group:          Development/Libraries
163 Requires:       vulkan(icd)
164 Requires:       vulkan-loader = %{version}-%{release}
165
166 %description demos
167 Vulkan demos.
168
169 %description demos -l pl.UTF-8
170 Programy demonstracyjne Vulkana.
171
172 %prep
173 %setup -qn VulkanTools-sdk-%{version}
174 %{__tar} xzf %{SOURCE1} -C submodules/Vulkan-LoaderAndValidationLayers --strip-components=1
175
176 %patch0 -p1
177 %patch1 -p1
178 %patch2 -p1
179 %patch3 -p1
180 %patch4 -p1
181 %patch5 -p1
182 %patch6 -p1
183 %patch7 -p1
184
185 find . -name '*.orig' | xargs -r rm -f
186
187 install -d submodules/Vulkan-LoaderAndValidationLayers/external/glslang/External/spirv-tools
188 # spirv-tools commit ID
189 echo '1d7b1423f939027da9a9524765a36fa71be265cd' > submodules/Vulkan-LoaderAndValidationLayers/external/glslang/External/spirv-tools/.git_rev
190
191 %{__sed} -i -e '1s|/usr/bin/env python3|%{__python3}|' \
192         ./submodules/Vulkan-LoaderAndValidationLayers/demos/smoke/{generate-dispatch-table.py,glsl-to-spirv}
193
194 %build
195 install -d build
196 cd build
197
198 # .pc file creation expect CMAKE_INSTALL_LIBDIR to be relative (to CMAKE_INSTALL_PREFIX)
199 %cmake .. \
200         -DCMAKE_ASM-ATT_COMPILER=%{__as} \
201         -DCMAKE_INSTALL_LIBDIR=%{_lib} \
202         -DJSONCPP_INCLUDE_DIR=/usr/include/jsoncpp \
203         -DBUILD_TESTS=%{?with_tests:ON}%{!?with_tests:OFF} \
204         -DBUILD_WSI_MIR_SUPPORT=%{?with_mir:ON}%{!?with_mir:OFF} \
205         -DBUILD_WSI_WAYLAND_SUPPORT=%{?with_wayland:ON}%{!?with_wayland:OFF} \
206         -DBUILD_WSI_XLIB_SUPPORT=%{?with_x11:ON}%{!?with_x11:OFF} \
207         -DBUILD_ICD=OFF
208
209 %{__make}
210
211 %if %{with tests}
212 cd tests
213 LC_ALL=C.UTF-8 VK_LAYER_PATH=../layers LD_LIBRARY_PATH=../loader:../layers ./run_all_tests.sh
214 cd ..
215 %endif
216
217 cd ..
218
219 %install
220 rm -rf $RPM_BUILD_ROOT
221 install -d $RPM_BUILD_ROOT{%{_datadir},%{_sysconfdir}}/vulkan/icd.d \
222         $RPM_BUILD_ROOT{%{_datadir},%{_sysconfdir}}/vulkan/{explicit,implicit}_layer.d \
223         $RPM_BUILD_ROOT%{_bindir} \
224         $RPM_BUILD_ROOT%{_includedir}/vulkan \
225         $RPM_BUILD_ROOT%{_datadir}/%{name}-demos \
226         $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
227
228 %{__make} -C build install \
229         DESTDIR=$RPM_BUILD_ROOT
230
231 install build/submodules/Vulkan-LoaderAndValidationLayers/demos/cube $RPM_BUILD_ROOT%{_bindir}/vulkan-cube
232 %{__mv} $RPM_BUILD_ROOT%{_bindir}/{smoketest,vulkan-smoketest}
233 cp -p build/submodules/Vulkan-LoaderAndValidationLayers/demos/lunarg.ppm $RPM_BUILD_ROOT%{_datadir}/%{name}-demos
234
235 %{__mv} $RPM_BUILD_ROOT%{_sysconfdir}/vulkan/explicit_layer.d/* $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d
236 %if "%{binsuf}" != ""
237 sed -i -e's@libVkLayer_vktrace_layer.so@libVkLayer_vktrace_layer%{binsuf}.so@' \
238         $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/VkLayer_vktrace_layer.json
239 %{__mv} $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/{VkLayer_vktrace_layer,VkLayer_vktrace_layer%{binsuf}}.json
240 %endif
241
242 install build/submodules/Vulkan-LoaderAndValidationLayers/libs/vkjson/vkjson_{info,unittest} $RPM_BUILD_ROOT%{_bindir}
243 cp -p build/submodules/Vulkan-LoaderAndValidationLayers/libs/vkjson/libvkjson.a $RPM_BUILD_ROOT%{_libdir}
244 cp -p submodules/Vulkan-LoaderAndValidationLayers/libs/vkjson/vkjson.h $RPM_BUILD_ROOT%{_includedir}
245
246 cp -pr submodules/Vulkan-LoaderAndValidationLayers/demos/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
247 %{__rm} -r $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}/{android,*.user,smoke/android}
248
249 install build/vktrace/vktraceviewer%{binsuf} $RPM_BUILD_ROOT%{_bindir}
250
251 cp -p via/README.md via-README.md
252 cp -p vktrace/LICENSE vktrace-LICENSE
253 cp -p vktrace/README.md vktrace-README.md
254 cp -p vktrace/TODO.md vktrace-TODO.md
255
256 %clean
257 rm -rf $RPM_BUILD_ROOT
258
259 %post   -n vulkan-loader -p /sbin/ldconfig
260 %postun -n vulkan-loader -p /sbin/ldconfig
261
262 %files
263 %defattr(644,root,root,755)
264
265 %files -n vulkan-loader
266 %defattr(644,root,root,755)
267 %doc submodules/Vulkan-LoaderAndValidationLayers/{COPYRIGHT.txt,README.md,loader/LoaderAndLayerInterface.md}
268 %dir %{_sysconfdir}/vulkan
269 %dir %{_sysconfdir}/vulkan/icd.d
270 %dir %{_sysconfdir}/vulkan/explicit_layer.d
271 %dir %{_sysconfdir}/vulkan/implicit_layer.d
272 %dir %{_datadir}/vulkan
273 %dir %{_datadir}/vulkan/icd.d
274 %dir %{_datadir}/vulkan/explicit_layer.d
275 %dir %{_datadir}/vulkan/implicit_layer.d
276 %attr(755,root,root) %{_libdir}/libvulkan.so.1.*.*
277 %attr(755,root,root) %ghost %{_libdir}/libvulkan.so.1
278
279 %files -n vulkan-devel
280 %defattr(644,root,root,755)
281 %attr(755,root,root) %{_libdir}/libvulkan.so
282 %{_libdir}/libvkjson.a
283 %{_includedir}/vulkan
284 %{_includedir}/vkjson.h
285 %{_pkgconfigdir}/vulkan.pc
286 %{_examplesdir}/%{name}-%{version}
287
288 %files tools
289 %defattr(644,root,root,755)
290 %doc COPYRIGHT.txt README.md via-README.md vktrace-{LICENSE,README.md,TODO.md}
291 %attr(755,root,root) %{_bindir}/via
292 %attr(755,root,root) %{_bindir}/vkjson_info
293 %attr(755,root,root) %{_bindir}/vkjson_unittest
294 %attr(755,root,root) %{_bindir}/vulkaninfo
295 %attr(755,root,root) %{_bindir}/vkreplay%{binsuf}
296 %attr(755,root,root) %{_bindir}/vktrace%{binsuf}
297 %attr(755,root,root) %{_libdir}/libVkLayer_vktrace_layer%{binsuf}.so
298 %{_datadir}/vulkan/explicit_layer.d/VkLayer_vktrace_layer%{binsuf}.json
299
300 %files tools-vktraceviewer
301 %defattr(644,root,root,755)
302 %attr(755,root,root) %{_bindir}/vktraceviewer%{binsuf}
303
304 %files validation-layers
305 %defattr(644,root,root,755)
306 %doc submodules/Vulkan-LoaderAndValidationLayers/layers/{README.md,vk_layer_settings.txt}
307 %attr(755,root,root) %{_libdir}/libVkLayer_core_validation.so
308 %attr(755,root,root) %{_libdir}/libVkLayer_object_tracker.so
309 %attr(755,root,root) %{_libdir}/libVkLayer_parameter_validation.so
310 %attr(755,root,root) %{_libdir}/libVkLayer_threading.so
311 %attr(755,root,root) %{_libdir}/libVkLayer_unique_objects.so
312 %attr(755,root,root) %{_libdir}/libVkLayer_utils.so
313 %{_datadir}/vulkan/explicit_layer.d/VkLayer_core_validation.json
314 %{_datadir}/vulkan/explicit_layer.d/VkLayer_object_tracker.json
315 %{_datadir}/vulkan/explicit_layer.d/VkLayer_parameter_validation.json
316 %{_datadir}/vulkan/explicit_layer.d/VkLayer_standard_validation.json
317 %{_datadir}/vulkan/explicit_layer.d/VkLayer_threading.json
318 %{_datadir}/vulkan/explicit_layer.d/VkLayer_unique_objects.json
319
320 %files debug-layers
321 %defattr(644,root,root,755)
322 %doc layersvt/{README.md,vk_layer_settings.txt}
323 %attr(755,root,root) %{_libdir}/libVkLayer_api_dump.so
324 %attr(755,root,root) %{_libdir}/libVkLayer_assistant_layer.so
325 %attr(755,root,root) %{_libdir}/libVkLayer_demo_layer.so
326 %attr(755,root,root) %{_libdir}/libVkLayer_device_simulation.so
327 %attr(755,root,root) %{_libdir}/libVkLayer_monitor.so
328 %attr(755,root,root) %{_libdir}/libVkLayer_screenshot.so
329 %attr(755,root,root) %{_libdir}/libVkLayer_starter_layer.so
330 %{_datadir}/vulkan/explicit_layer.d/VkLayer_api_dump.json
331 %{_datadir}/vulkan/explicit_layer.d/VkLayer_assistant_layer.json
332 %{_datadir}/vulkan/explicit_layer.d/VkLayer_demo_layer.json
333 %{_datadir}/vulkan/explicit_layer.d/VkLayer_device_simulation.json
334 %{_datadir}/vulkan/explicit_layer.d/VkLayer_monitor.json
335 %{_datadir}/vulkan/explicit_layer.d/VkLayer_screenshot.json
336 %{_datadir}/vulkan/explicit_layer.d/VkLayer_starter_layer.json
337
338 %files demos
339 %defattr(644,root,root,755)
340 %doc submodules/Vulkan-LoaderAndValidationLayers/demos/smoke/README.md
341 %attr(755,root,root) %{_bindir}/vulkan-cube
342 %attr(755,root,root) %{_bindir}/vulkan-smoketest
343 %{_datadir}/%{name}-demos
This page took 0.409693 seconds and 4 git commands to generate.