]>
Commit | Line | Data |
---|---|---|
0c2b688d | 1 | # |
1cbb9acb JK |
2 | # TODO: |
3 | # - investigate why vktrace does not work | |
4 | ||
5 | ||
0c2b688d | 6 | # Conditional build: |
c135e47f JB |
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 | |
0c2b688d | 11 | |
1010dc18 JB |
12 | %define api_version 1.0.68 |
13 | # see submodules/Vulkan-LoaderAndValidationLayers in git | |
14 | %define lvl_rev 65c23aec1365c0a727323af6f331b0773b4fc1de | |
0c2b688d | 15 | |
0c2b688d | 16 | Summary: LunarG Vulkan SDK |
c135e47f | 17 | Summary(pl.UTF-8): Pakiet programistyczny (SDK) LunarG Vulkan |
0c2b688d | 18 | Name: vulkan-sdk |
1010dc18 | 19 | Version: 1.0.68.0 |
8b401cdf | 20 | Release: 4 |
c135e47f | 21 | License: Apache v2.0, parts MIT-like |
0c2b688d | 22 | Group: Development |
cae01e8b | 23 | Source0: https://github.com/LunarG/VulkanTools/archive/sdk-%{version}/VulkanTools-%{version}.tar.gz |
1010dc18 JB |
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 | |
78da5abe JK |
27 | Patch0: system_glslang_and_spirv-tools.patch |
28 | Patch1: demos_out_of_src.patch | |
29 | Patch2: rpath.patch | |
1010dc18 | 30 | Patch3: %{name}-c++.patch |
1cbb9acb JK |
31 | Patch4: x32.patch |
32 | Patch5: system_jsoncpp.patch | |
958bf474 | 33 | Patch6: python3.8.patch |
4fef1691 | 34 | Patch7: build.patch |
0c2b688d | 35 | URL: http://lunarg.com/vulkan-sdk/ |
cc341e76 | 36 | BuildRequires: GLM-devel |
c135e47f JB |
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 | |
1010dc18 JB |
46 | BuildRequires: glslang >= 3.0.s20180205 |
47 | BuildRequires: glslang-devel >= 3.0.s20180205 | |
0c2b688d JK |
48 | BuildRequires: graphviz |
49 | BuildRequires: ImageMagick-devel | |
1cbb9acb | 50 | BuildRequires: jsoncpp-devel |
0c2b688d | 51 | BuildRequires: libpng |
c135e47f | 52 | BuildRequires: libstdc++-devel >= 6:4.7 |
0c2b688d | 53 | BuildRequires: libxcb-devel |
c135e47f JB |
54 | %{?with_mir:BuildRequires: mir-devel} |
55 | BuildRequires: pkgconfig | |
18dd30e2 | 56 | BuildRequires: python3 >= 1:3 |
83dd1851 | 57 | BuildRequires: python3-lxml |
18dd30e2 | 58 | BuildRequires: python3-modules >= 1:3 |
c135e47f | 59 | BuildRequires: qt5-build >= 5 |
f3300f23 | 60 | BuildRequires: rpmbuild(macros) >= 1.605 |
1010dc18 | 61 | BuildRequires: spirv-tools-devel >= v2018.1-0.s20180210 |
0c2b688d | 62 | BuildRequires: udev-devel |
c135e47f JB |
63 | %{?with_wayland:BuildRequires: wayland-devel} |
64 | %{?with_x11:BuildRequires: xorg-lib-libX11-devel} | |
1010dc18 JB |
65 | Requires: glslang >= 3.0.s20180205 |
66 | Requires: spirv-tools >= v2018.1-0.s20180210 | |
a0190352 | 67 | Requires: %{name}-debug-layers = %{version}-%{release} |
0c2b688d JK |
68 | Requires: vulkan-devel = %{version}-%{release} |
69 | Requires: vulkan-loader = %{version}-%{release} | |
c5fea050 | 70 | Requires: vulkan-sdk-tools = %{version}-%{release} |
a0190352 | 71 | Requires: %{name}-validation-layers = %{version}-%{release} |
0c2b688d JK |
72 | BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) |
73 | ||
c135e47f JB |
74 | %ifarch %{x8664} |
75 | %define binsuf %{nil} | |
76 | %else | |
77 | %define binsuf 32 | |
78 | %endif | |
79 | ||
0c2b688d | 80 | %description |
c135e47f JB |
81 | Vulkan API Software Development Kit. |
82 | ||
83 | %description -l pl.UTF-8 | |
84 | Pakiet programistyczny (SDK) Vulkan API | |
0c2b688d JK |
85 | |
86 | %package -n vulkan-loader | |
87 | Summary: Vulkan API loader | |
c135e47f JB |
88 | Summary(pl.UTF-8): Biblioteka wczytująca sterowniki Vulkan |
89 | Group: Libraries | |
0c2b688d JK |
90 | Provides: vulkan(loader) = %{api_version} |
91 | ||
92 | %description -n vulkan-loader | |
93 | Common loader for Vulkan API drivers. | |
94 | ||
c135e47f JB |
95 | %description -n vulkan-loader -l pl.UTF-8 |
96 | Wspólna biblioteka wczytująca sterowniki Vulkan. | |
97 | ||
0c2b688d JK |
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 | |
c5fea050 | 102 | Requires: vulkan-loader = %{version}-%{release} |
0c2b688d JK |
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 | ||
0c2b688d JK |
110 | %package tools |
111 | Summary: Vulkan tools | |
c135e47f JB |
112 | Summary(pl.UTF-8): Narzędzia Vulkana |
113 | Group: Development/Tools | |
0c2b688d JK |
114 | Suggests: vulkan(icd) |
115 | Requires: vulkan-loader = %{version}-%{release} | |
116 | ||
117 | %description tools | |
118 | Vulkan tools. | |
119 | ||
c135e47f JB |
120 | %description tools -l pl.UTF-8 |
121 | Narzędzia Vulkana. | |
122 | ||
1cbb9acb JK |
123 | %package tools-vktraceviewer |
124 | Summary: Vulkan trace viewer | |
c135e47f JB |
125 | Summary(pl.UTF-8): Przeglądarka śladów Vulkana |
126 | Group: Development/Tools | |
1cbb9acb JK |
127 | Requires: %{name}-tools = %{version}-%{release} |
128 | ||
129 | %description tools-vktraceviewer | |
130 | Vulkan trace viewer. | |
131 | ||
c135e47f JB |
132 | %description tools-vktraceviewer -l pl.UTF-8 |
133 | Przeglądarka śladów Vulkana. | |
134 | ||
1010dc18 JB |
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 | ||
0c2b688d | 172 | %prep |
ac0bcd72 | 173 | %setup -qn VulkanTools-sdk-%{version} |
1010dc18 JB |
174 | %{__tar} xzf %{SOURCE1} -C submodules/Vulkan-LoaderAndValidationLayers --strip-components=1 |
175 | ||
0c2b688d | 176 | %patch0 -p1 |
78da5abe | 177 | %patch1 -p1 |
b213a987 | 178 | %patch2 -p1 |
97255b0b | 179 | %patch3 -p1 |
78da5abe | 180 | %patch4 -p1 |
8046b314 | 181 | %patch5 -p1 |
958bf474 | 182 | %patch6 -p1 |
4fef1691 | 183 | %patch7 -p1 |
1010dc18 JB |
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 | |
0c2b688d | 190 | |
624d72f5 JP |
191 | %{__sed} -i -e '1s|/usr/bin/env python3|%{__python3}|' \ |
192 | ./submodules/Vulkan-LoaderAndValidationLayers/demos/smoke/{generate-dispatch-table.py,glsl-to-spirv} | |
193 | ||
0c2b688d | 194 | %build |
03dbfa8f JK |
195 | install -d build |
196 | cd build | |
37fbe15c | 197 | |
ccce2599 | 198 | # .pc file creation expect CMAKE_INSTALL_LIBDIR to be relative (to CMAKE_INSTALL_PREFIX) |
c135e47f | 199 | %cmake .. \ |
78f2751d | 200 | -DCMAKE_ASM-ATT_COMPILER=%{__as} \ |
ccce2599 | 201 | -DCMAKE_INSTALL_LIBDIR=%{_lib} \ |
1cbb9acb | 202 | -DJSONCPP_INCLUDE_DIR=/usr/include/jsoncpp \ |
37fbe15c | 203 | -DBUILD_TESTS=%{?with_tests:ON}%{!?with_tests:OFF} \ |
c135e47f | 204 | -DBUILD_WSI_MIR_SUPPORT=%{?with_mir:ON}%{!?with_mir:OFF} \ |
37fbe15c | 205 | -DBUILD_WSI_WAYLAND_SUPPORT=%{?with_wayland:ON}%{!?with_wayland:OFF} \ |
c135e47f JB |
206 | -DBUILD_WSI_XLIB_SUPPORT=%{?with_x11:ON}%{!?with_x11:OFF} \ |
207 | -DBUILD_ICD=OFF | |
208 | ||
0c2b688d | 209 | %{__make} |
37fbe15c JK |
210 | |
211 | %if %{with tests} | |
212 | cd tests | |
c135e47f | 213 | LC_ALL=C.UTF-8 VK_LAYER_PATH=../layers LD_LIBRARY_PATH=../loader:../layers ./run_all_tests.sh |
37fbe15c JK |
214 | cd .. |
215 | %endif | |
216 | ||
ac0bcd72 | 217 | cd .. |
0c2b688d JK |
218 | |
219 | %install | |
220 | rm -rf $RPM_BUILD_ROOT | |
221 | install -d $RPM_BUILD_ROOT{%{_datadir},%{_sysconfdir}}/vulkan/icd.d \ | |
c135e47f | 222 | $RPM_BUILD_ROOT{%{_datadir},%{_sysconfdir}}/vulkan/{explicit,implicit}_layer.d \ |
1cbb9acb | 223 | $RPM_BUILD_ROOT%{_bindir} \ |
0c2b688d | 224 | $RPM_BUILD_ROOT%{_includedir}/vulkan \ |
b213a987 | 225 | $RPM_BUILD_ROOT%{_datadir}/%{name}-demos \ |
0c2b688d JK |
226 | $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} |
227 | ||
c135e47f | 228 | %{__make} -C build install \ |
ac0bcd72 JK |
229 | DESTDIR=$RPM_BUILD_ROOT |
230 | ||
1010dc18 JB |
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 | |
0c2b688d | 234 | |
c135e47f | 235 | %{__mv} $RPM_BUILD_ROOT%{_sysconfdir}/vulkan/explicit_layer.d/* $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d |
1010dc18 JB |
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 | |
0c2b688d | 241 | |
1010dc18 JB |
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} | |
0c2b688d | 245 | |
1010dc18 JB |
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} | |
0c2b688d | 248 | |
c135e47f | 249 | install build/vktrace/vktraceviewer%{binsuf} $RPM_BUILD_ROOT%{_bindir} |
0c2b688d | 250 | |
1010dc18 JB |
251 | cp -p via/README.md via-README.md |
252 | cp -p vktrace/LICENSE vktrace-LICENSE | |
ac0bcd72 JK |
253 | cp -p vktrace/README.md vktrace-README.md |
254 | cp -p vktrace/TODO.md vktrace-TODO.md | |
0c2b688d JK |
255 | |
256 | %clean | |
257 | rm -rf $RPM_BUILD_ROOT | |
258 | ||
d8d42412 JK |
259 | %post -n vulkan-loader -p /sbin/ldconfig |
260 | %postun -n vulkan-loader -p /sbin/ldconfig | |
0c2b688d JK |
261 | |
262 | %files | |
263 | %defattr(644,root,root,755) | |
264 | ||
265 | %files -n vulkan-loader | |
266 | %defattr(644,root,root,755) | |
1010dc18 | 267 | %doc submodules/Vulkan-LoaderAndValidationLayers/{COPYRIGHT.txt,README.md,loader/LoaderAndLayerInterface.md} |
0c2b688d JK |
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 | |
c135e47f JB |
276 | %attr(755,root,root) %{_libdir}/libvulkan.so.1.*.* |
277 | %attr(755,root,root) %ghost %{_libdir}/libvulkan.so.1 | |
0c2b688d | 278 | |
1010dc18 | 279 | %files -n vulkan-devel |
0c2b688d | 280 | %defattr(644,root,root,755) |
1010dc18 JB |
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} | |
0c2b688d JK |
287 | |
288 | %files tools | |
289 | %defattr(644,root,root,755) | |
1010dc18 | 290 | %doc COPYRIGHT.txt README.md via-README.md vktrace-{LICENSE,README.md,TODO.md} |
1cbb9acb | 291 | %attr(755,root,root) %{_bindir}/via |
0c2b688d JK |
292 | %attr(755,root,root) %{_bindir}/vkjson_info |
293 | %attr(755,root,root) %{_bindir}/vkjson_unittest | |
a382f778 | 294 | %attr(755,root,root) %{_bindir}/vulkaninfo |
1010dc18 JB |
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 | |
0c2b688d | 299 | |
1cbb9acb JK |
300 | %files tools-vktraceviewer |
301 | %defattr(644,root,root,755) | |
1010dc18 | 302 | %attr(755,root,root) %{_bindir}/vktraceviewer%{binsuf} |
1cbb9acb | 303 | |
a0190352 | 304 | %files validation-layers |
0c2b688d | 305 | %defattr(644,root,root,755) |
1010dc18 | 306 | %doc submodules/Vulkan-LoaderAndValidationLayers/layers/{README.md,vk_layer_settings.txt} |
ac0bcd72 | 307 | %attr(755,root,root) %{_libdir}/libVkLayer_core_validation.so |
ac0bcd72 JK |
308 | %attr(755,root,root) %{_libdir}/libVkLayer_object_tracker.so |
309 | %attr(755,root,root) %{_libdir}/libVkLayer_parameter_validation.so | |
ac0bcd72 JK |
310 | %attr(755,root,root) %{_libdir}/libVkLayer_threading.so |
311 | %attr(755,root,root) %{_libdir}/libVkLayer_unique_objects.so | |
faf1b559 | 312 | %attr(755,root,root) %{_libdir}/libVkLayer_utils.so |
78da5abe | 313 | %{_datadir}/vulkan/explicit_layer.d/VkLayer_core_validation.json |
0c2b688d | 314 | %{_datadir}/vulkan/explicit_layer.d/VkLayer_object_tracker.json |
78da5abe | 315 | %{_datadir}/vulkan/explicit_layer.d/VkLayer_parameter_validation.json |
1010dc18 | 316 | %{_datadir}/vulkan/explicit_layer.d/VkLayer_standard_validation.json |
0c2b688d JK |
317 | %{_datadir}/vulkan/explicit_layer.d/VkLayer_threading.json |
318 | %{_datadir}/vulkan/explicit_layer.d/VkLayer_unique_objects.json | |
319 | ||
a0190352 | 320 | %files debug-layers |
0c2b688d | 321 | %defattr(644,root,root,755) |
ac0bcd72 JK |
322 | %doc layersvt/{README.md,vk_layer_settings.txt} |
323 | %attr(755,root,root) %{_libdir}/libVkLayer_api_dump.so | |
1010dc18 JB |
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 | |
1cbb9acb | 327 | %attr(755,root,root) %{_libdir}/libVkLayer_monitor.so |
ac0bcd72 | 328 | %attr(755,root,root) %{_libdir}/libVkLayer_screenshot.so |
1010dc18 | 329 | %attr(755,root,root) %{_libdir}/libVkLayer_starter_layer.so |
0c2b688d | 330 | %{_datadir}/vulkan/explicit_layer.d/VkLayer_api_dump.json |
1010dc18 JB |
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 | |
1cbb9acb | 334 | %{_datadir}/vulkan/explicit_layer.d/VkLayer_monitor.json |
0c2b688d | 335 | %{_datadir}/vulkan/explicit_layer.d/VkLayer_screenshot.json |
1010dc18 | 336 | %{_datadir}/vulkan/explicit_layer.d/VkLayer_starter_layer.json |
0c2b688d | 337 | |
1010dc18 | 338 | %files demos |
0c2b688d | 339 | %defattr(644,root,root,755) |
1010dc18 JB |
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 |