]>
Commit | Line | Data |
---|---|---|
0c2b688d | 1 | # |
1cbb9acb JK |
2 | # TODO: |
3 | # - investigate why vktrace does not work | |
4 | ||
5 | ||
0c2b688d JK |
6 | # Conditional build: |
7 | %bcond_with tests # build with tests (require a working Vulkan | |
8 | # driver (ICD)) | |
78da5abe JK |
9 | %bcond_without wayland # enable Wayland support in loader |
10 | %bcond_without xlib # enable XLib support in loader | |
0c2b688d | 11 | |
1cbb9acb | 12 | %define api_version 1.0.39 |
0c2b688d | 13 | |
0c2b688d JK |
14 | Summary: LunarG Vulkan SDK |
15 | Name: vulkan-sdk | |
1cbb9acb | 16 | Version: 1.0.39.1 |
e0194831 | 17 | Release: 1 |
0c2b688d JK |
18 | License: MIT-like |
19 | Group: Development | |
cae01e8b | 20 | Source0: https://github.com/LunarG/VulkanTools/archive/sdk-%{version}/VulkanTools-%{version}.tar.gz |
1cbb9acb | 21 | # Source0-md5: 62446dfd61208771d39109218cb29152 |
78da5abe JK |
22 | Patch0: system_glslang_and_spirv-tools.patch |
23 | Patch1: demos_out_of_src.patch | |
24 | Patch2: rpath.patch | |
25 | Patch3: always_xcb.patch | |
1cbb9acb JK |
26 | Patch4: x32.patch |
27 | Patch5: system_jsoncpp.patch | |
0c2b688d | 28 | URL: http://lunarg.com/vulkan-sdk/ |
0c2b688d JK |
29 | BuildRequires: bison |
30 | BuildRequires: cmake | |
31 | BuildRequires: GLM | |
1cbb9acb JK |
32 | BuildRequires: glslang >= 3.0.s20161222 |
33 | BuildRequires: glslang-devel >= 3.0.s20161222 | |
0c2b688d JK |
34 | BuildRequires: graphviz |
35 | BuildRequires: ImageMagick-devel | |
1cbb9acb | 36 | BuildRequires: jsoncpp-devel |
0c2b688d JK |
37 | BuildRequires: libpng |
38 | BuildRequires: libxcb-devel | |
39 | BuildRequires: python3 | |
83dd1851 | 40 | BuildRequires: python3-lxml |
0c2b688d | 41 | BuildRequires: python3-modules |
1cbb9acb JK |
42 | BuildRequires: Qt5Core-devel |
43 | BuildRequires: Qt5Svg-devel | |
44 | BuildRequires: Qt5Widgets-devel | |
45 | BuildRequires: spirv-tools-devel >= v2016.7 | |
0c2b688d | 46 | BuildRequires: udev-devel |
1cbb9acb JK |
47 | Requires: glslang >= 3.0.s20161222 |
48 | Requires: spirv-tools >= v2016.7 | |
a0190352 | 49 | Requires: %{name}-debug-layers = %{version}-%{release} |
0c2b688d JK |
50 | Requires: vulkan-devel = %{version}-%{release} |
51 | Requires: vulkan-loader = %{version}-%{release} | |
c5fea050 | 52 | Requires: vulkan-sdk-tools = %{version}-%{release} |
a0190352 | 53 | Requires: %{name}-validation-layers = %{version}-%{release} |
0c2b688d JK |
54 | BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) |
55 | ||
56 | %description | |
57 | Vulkan API Software Development Kit | |
58 | ||
59 | %package -n vulkan-loader | |
60 | Summary: Vulkan API loader | |
61 | License: MIT-like | |
62 | Group: Library | |
63 | Provides: vulkan(loader) = %{api_version} | |
64 | ||
65 | %description -n vulkan-loader | |
66 | Common loader for Vulkan API drivers. | |
67 | ||
a0190352 | 68 | %package validation-layers |
0c2b688d JK |
69 | Summary: Validation layers for Vulkan |
70 | Group: Development/Libraries | |
c5fea050 | 71 | Requires: vulkan-loader = %{version}-%{release} |
0c2b688d | 72 | |
a0190352 | 73 | %description validation-layers |
0c2b688d JK |
74 | Validation layers for Vulkan. |
75 | ||
a0190352 | 76 | %package debug-layers |
0c2b688d JK |
77 | Summary: Debug layers for Vulkan |
78 | Group: Development/Libraries | |
c5fea050 | 79 | Requires: vulkan-loader = %{version}-%{release} |
0c2b688d | 80 | |
a0190352 | 81 | %description debug-layers |
0c2b688d JK |
82 | Debug layers for Vulkan. |
83 | ||
84 | %package -n vulkan-devel | |
85 | Summary: Header files for the Vulkan API | |
86 | Summary(pl.UTF-8): Pliki nagłówkowe API Vulkan | |
87 | Group: Development/Libraries | |
c5fea050 | 88 | Requires: vulkan-loader = %{version}-%{release} |
0c2b688d JK |
89 | |
90 | %description -n vulkan-devel | |
91 | Header files for the Vulkan API. | |
92 | ||
93 | %description -n vulkan-devel -l pl.UTF-8 | |
94 | Pliki nagłówkowe API Vulkan. | |
95 | ||
96 | %package demos | |
97 | Summary: Vulkan demos | |
98 | Group: Development/Libraries | |
fe1a4d43 | 99 | Requires: vulkan(icd) |
0c2b688d JK |
100 | Requires: vulkan-loader = %{version}-%{release} |
101 | ||
102 | %description demos | |
103 | Vulkan demos. | |
104 | ||
105 | %package tools | |
106 | Summary: Vulkan tools | |
107 | Group: Development | |
108 | Suggests: vulkan(icd) | |
109 | Requires: vulkan-loader = %{version}-%{release} | |
110 | ||
111 | %description tools | |
112 | Vulkan tools. | |
113 | ||
1cbb9acb JK |
114 | %package tools-vktraceviewer |
115 | Summary: Vulkan trace viewer | |
116 | Group: Development | |
117 | Requires: %{name}-tools = %{version}-%{release} | |
118 | ||
119 | %description tools-vktraceviewer | |
120 | Vulkan trace viewer. | |
121 | ||
0c2b688d | 122 | %prep |
ac0bcd72 | 123 | %setup -qn VulkanTools-sdk-%{version} |
0c2b688d JK |
124 | |
125 | %patch0 -p1 | |
78da5abe | 126 | %patch1 -p1 |
b213a987 | 127 | %patch2 -p1 |
97255b0b | 128 | %patch3 -p1 |
78da5abe | 129 | %patch4 -p1 |
8046b314 | 130 | %patch5 -p1 |
0c2b688d | 131 | |
0c2b688d | 132 | %build |
03dbfa8f JK |
133 | install -d build |
134 | cd build | |
37fbe15c | 135 | |
0c2b688d | 136 | %cmake \ |
1cbb9acb JK |
137 | -DJSONCPP_INCLUDE_DIR=/usr/include/jsoncpp \ |
138 | -DJSONCPP_SOURCE_DIR=/usr/include/jsoncpp \ | |
37fbe15c JK |
139 | -DCMAKE_INSTALL_DATADIR=share \ |
140 | -DCMAKE_INSTALL_SYSCONFDIR=etc \ | |
141 | -DBUILD_TESTS=%{?with_tests:ON}%{!?with_tests:OFF} \ | |
142 | -DBUILD_WSI_WAYLAND_SUPPORT=%{?with_wayland:ON}%{!?with_wayland:OFF} \ | |
78da5abe | 143 | -DBUILD_WSI_XLIB_SUPPORT=%{?with_xlib:ON}%{!?with_xlib:OFF} \ |
1cbb9acb | 144 | -DBUILD_WSI_MIR_SUPPORT=OFF \ |
ac0bcd72 | 145 | -DBUILD_ICD=OFF \ |
37fbe15c | 146 | ../ |
0c2b688d | 147 | %{__make} |
37fbe15c JK |
148 | |
149 | %if %{with tests} | |
150 | cd tests | |
151 | LC_ALL=C.utf-8 VK_LAYER_PATH=../layers LD_LIBRARY_PATH=../loader:../layers ./run_all_tests.sh | |
152 | cd .. | |
153 | %endif | |
154 | ||
ac0bcd72 | 155 | cd .. |
0c2b688d JK |
156 | |
157 | %install | |
158 | rm -rf $RPM_BUILD_ROOT | |
159 | install -d $RPM_BUILD_ROOT{%{_datadir},%{_sysconfdir}}/vulkan/icd.d \ | |
160 | $RPM_BUILD_ROOT{%{_datadir},%{_sysconfdir}}/vulkan/{explicit,implicit}_layer.d \ | |
1cbb9acb | 161 | $RPM_BUILD_ROOT%{_bindir} \ |
0c2b688d | 162 | $RPM_BUILD_ROOT%{_includedir}/vulkan \ |
b213a987 | 163 | $RPM_BUILD_ROOT%{_datadir}/%{name}-demos \ |
0c2b688d JK |
164 | $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} |
165 | ||
166 | ||
ac0bcd72 JK |
167 | # hack for 'make install' tryin to install in relative paths when DESTDIR is set |
168 | install -d "$RPM_BUILD_ROOT$PWD" | |
169 | ln -s "$PWD/build" "$RPM_BUILD_ROOT$PWD" | |
0c2b688d | 170 | |
ac0bcd72 JK |
171 | cd build |
172 | %{__make} install \ | |
173 | DESTDIR=$RPM_BUILD_ROOT | |
174 | ||
175 | rm "$RPM_BUILD_ROOT$PWD" | |
0c2b688d JK |
176 | |
177 | cp -p demos/vulkaninfo $RPM_BUILD_ROOT%{_bindir}/vulkaninfo | |
0c2b688d | 178 | cp -p demos/cube $RPM_BUILD_ROOT%{_bindir}/vulkan-cube |
78da5abe | 179 | cp -p demos/smoketest $RPM_BUILD_ROOT%{_bindir}/vulkan-smoketest |
b213a987 | 180 | cp -p demos/{lunarg.ppm,*-vert.spv,*-frag.spv} $RPM_BUILD_ROOT%{_datadir}/%{name}-demos |
0c2b688d | 181 | |
ac0bcd72 | 182 | mv $RPM_BUILD_ROOT/usr/etc/vulkan/explicit_layer.d/* $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d |
0c2b688d JK |
183 | |
184 | cp -p libs/vkjson/libvkjson.a $RPM_BUILD_ROOT%{_libdir} | |
185 | cp -p libs/vkjson/vkjson_{info,unittest} $RPM_BUILD_ROOT%{_bindir} | |
186 | ||
187 | cp -p ../libs/vkjson/vkjson.h $RPM_BUILD_ROOT%{_includedir} | |
ac0bcd72 JK |
188 | |
189 | cp -p install_staging/*.so $RPM_BUILD_ROOT%{_libdir} | |
190 | for f in layersvt/*.json ; do | |
1cbb9acb | 191 | sed -e's@"library_path": "./@"library_path": "@' $f > $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/$(basename $f) |
ac0bcd72 | 192 | done |
0c2b688d | 193 | |
37fbe15c | 194 | cp -pr ../demos/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} |
0c2b688d | 195 | |
b213a987 | 196 | # restore original demo sources in %{_examplesdir} |
ac0bcd72 | 197 | %patch1 -R -p2 -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} |
b213a987 JK |
198 | rm -f $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}/*.orig 2>/dev/null || : |
199 | ||
a382f778 | 200 | %ifarch %x8664 |
ac0bcd72 | 201 | cp -p vktrace/libVkLayer_vktrace_layer.so $RPM_BUILD_ROOT%{_libdir} |
0c2b688d JK |
202 | cp -p vktrace/vkreplay $RPM_BUILD_ROOT%{_bindir} |
203 | cp -p vktrace/vktrace $RPM_BUILD_ROOT%{_bindir} | |
1cbb9acb | 204 | sed -e's@"library_path": "../vktrace/@"library_path": "@' \ |
78da5abe | 205 | layersvt/VkLayer_vktrace_layer.json > $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/VkLayer_vktrace_layer.json |
a382f778 | 206 | %else |
ac0bcd72 | 207 | cp -p vktrace/libVkLayer_vktrace_layer32.so $RPM_BUILD_ROOT%{_libdir} |
a382f778 JK |
208 | cp -p vktrace/vkreplay32 $RPM_BUILD_ROOT%{_bindir} |
209 | cp -p vktrace/vktrace32 $RPM_BUILD_ROOT%{_bindir} | |
210 | rm $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/VkLayer_vktrace_layer.json | |
1cbb9acb | 211 | sed -e's@"library_path": "../vktrace/@"library_path": "@' \ |
a382f778 | 212 | -e's@libVkLayer_vktrace_layer.so@libVkLayer_vktrace_layer32.so@' \ |
97f3b102 | 213 | layersvt/VkLayer_vktrace_layer.json > $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/VkLayer_vktrace_layer32.json |
a382f778 | 214 | %endif |
0c2b688d | 215 | |
1cbb9acb | 216 | install via/via $RPM_BUILD_ROOT%{_bindir} |
80fd1bc3 | 217 | %ifarch %x8664 |
1cbb9acb | 218 | install vktrace/vktraceviewer $RPM_BUILD_ROOT%{_bindir} |
80fd1bc3 JK |
219 | %else |
220 | install vktrace/vktraceviewer32 $RPM_BUILD_ROOT%{_bindir} | |
221 | %endif | |
1cbb9acb | 222 | |
ac0bcd72 | 223 | cd .. |
0c2b688d | 224 | |
ac0bcd72 JK |
225 | cp -p vktrace/README.md vktrace-README.md |
226 | cp -p vktrace/TODO.md vktrace-TODO.md | |
0c2b688d JK |
227 | |
228 | %clean | |
229 | rm -rf $RPM_BUILD_ROOT | |
230 | ||
d8d42412 JK |
231 | %post -n vulkan-loader -p /sbin/ldconfig |
232 | %postun -n vulkan-loader -p /sbin/ldconfig | |
0c2b688d JK |
233 | |
234 | %files | |
235 | %defattr(644,root,root,755) | |
236 | ||
237 | %files -n vulkan-loader | |
238 | %defattr(644,root,root,755) | |
ac0bcd72 JK |
239 | %doc COPYRIGHT.txt LICENSE.txt |
240 | %doc loader/{README.md,LoaderAndLayerInterface.md} | |
0c2b688d JK |
241 | %dir %{_sysconfdir}/vulkan |
242 | %dir %{_sysconfdir}/vulkan/icd.d | |
243 | %dir %{_sysconfdir}/vulkan/explicit_layer.d | |
244 | %dir %{_sysconfdir}/vulkan/implicit_layer.d | |
245 | %dir %{_datadir}/vulkan | |
246 | %dir %{_datadir}/vulkan/icd.d | |
247 | %dir %{_datadir}/vulkan/explicit_layer.d | |
248 | %dir %{_datadir}/vulkan/implicit_layer.d | |
249 | %{_libdir}/libvulkan.so.1.*.* | |
250 | %ghost %{_libdir}/libvulkan.so.1 | |
0c2b688d JK |
251 | |
252 | %files demos | |
253 | %defattr(644,root,root,755) | |
ac0bcd72 | 254 | %doc COPYRIGHT.txt LICENSE.txt |
0c2b688d | 255 | %attr(755,root,root) %{_bindir}/vulkan-cube |
78da5abe | 256 | %attr(755,root,root) %{_bindir}/vulkan-smoketest |
b213a987 | 257 | %{_datadir}/%{name}-demos |
0c2b688d JK |
258 | |
259 | %files tools | |
260 | %defattr(644,root,root,755) | |
ac0bcd72 | 261 | %doc COPYRIGHT.txt LICENSE.txt |
0c2b688d | 262 | %doc vktrace-README.md vktrace-TODO.md |
1cbb9acb | 263 | %attr(755,root,root) %{_bindir}/via |
0c2b688d JK |
264 | %attr(755,root,root) %{_bindir}/vkjson_info |
265 | %attr(755,root,root) %{_bindir}/vkjson_unittest | |
a382f778 JK |
266 | %attr(755,root,root) %{_bindir}/vulkaninfo |
267 | %ifarch %x8664 | |
0c2b688d JK |
268 | %attr(755,root,root) %{_bindir}/vkreplay |
269 | %attr(755,root,root) %{_bindir}/vktrace | |
ac0bcd72 | 270 | %attr(755,root,root) %{_libdir}/libVkLayer_vktrace_layer.so |
a382f778 JK |
271 | %{_datadir}/vulkan/explicit_layer.d/VkLayer_vktrace_layer.json |
272 | %else | |
273 | %attr(755,root,root) %{_bindir}/vkreplay32 | |
274 | %attr(755,root,root) %{_bindir}/vktrace32 | |
ac0bcd72 | 275 | %attr(755,root,root) %{_libdir}/libVkLayer_vktrace_layer32.so |
a382f778 JK |
276 | %{_datadir}/vulkan/explicit_layer.d/VkLayer_vktrace_layer32.json |
277 | %endif | |
0c2b688d | 278 | |
1cbb9acb JK |
279 | %files tools-vktraceviewer |
280 | %defattr(644,root,root,755) | |
80fd1bc3 | 281 | %ifarch %x8664 |
1cbb9acb | 282 | %attr(755,root,root) %{_bindir}/vktraceviewer |
80fd1bc3 JK |
283 | %else |
284 | %attr(755,root,root) %{_bindir}/vktraceviewer32 | |
285 | %endif | |
1cbb9acb | 286 | |
a0190352 | 287 | %files validation-layers |
0c2b688d | 288 | %defattr(644,root,root,755) |
ac0bcd72 JK |
289 | %doc COPYRIGHT.txt LICENSE.txt |
290 | %doc layers/{README.md,vk_layer_settings.txt} | |
291 | %attr(755,root,root) %{_libdir}/libVkLayer_core_validation.so | |
292 | %attr(755,root,root) %{_libdir}/libVkLayer_image.so | |
293 | %attr(755,root,root) %{_libdir}/libVkLayer_object_tracker.so | |
294 | %attr(755,root,root) %{_libdir}/libVkLayer_parameter_validation.so | |
295 | %attr(755,root,root) %{_libdir}/libVkLayer_swapchain.so | |
296 | %attr(755,root,root) %{_libdir}/libVkLayer_threading.so | |
297 | %attr(755,root,root) %{_libdir}/libVkLayer_unique_objects.so | |
faf1b559 | 298 | %attr(755,root,root) %{_libdir}/libVkLayer_utils.so |
78da5abe | 299 | %{_datadir}/vulkan/explicit_layer.d/VkLayer_core_validation.json |
0c2b688d | 300 | %{_datadir}/vulkan/explicit_layer.d/VkLayer_image.json |
0c2b688d | 301 | %{_datadir}/vulkan/explicit_layer.d/VkLayer_object_tracker.json |
78da5abe | 302 | %{_datadir}/vulkan/explicit_layer.d/VkLayer_parameter_validation.json |
0c2b688d JK |
303 | %{_datadir}/vulkan/explicit_layer.d/VkLayer_swapchain.json |
304 | %{_datadir}/vulkan/explicit_layer.d/VkLayer_threading.json | |
305 | %{_datadir}/vulkan/explicit_layer.d/VkLayer_unique_objects.json | |
306 | ||
a0190352 | 307 | %files debug-layers |
0c2b688d | 308 | %defattr(644,root,root,755) |
ac0bcd72 JK |
309 | %doc COPYRIGHT.txt LICENSE.txt |
310 | %doc layersvt/{README.md,vk_layer_settings.txt} | |
311 | %attr(755,root,root) %{_libdir}/libVkLayer_api_dump.so | |
1cbb9acb | 312 | %attr(755,root,root) %{_libdir}/libVkLayer_monitor.so |
ac0bcd72 | 313 | %attr(755,root,root) %{_libdir}/libVkLayer_screenshot.so |
faf1b559 | 314 | %attr(755,root,root) %{_libdir}/libVkLayer_utilsvt.so |
0c2b688d | 315 | %{_datadir}/vulkan/explicit_layer.d/VkLayer_api_dump.json |
1cbb9acb | 316 | %{_datadir}/vulkan/explicit_layer.d/VkLayer_monitor.json |
0c2b688d | 317 | %{_datadir}/vulkan/explicit_layer.d/VkLayer_screenshot.json |
0c2b688d JK |
318 | |
319 | %files -n vulkan-devel | |
320 | %defattr(644,root,root,755) | |
ac0bcd72 | 321 | %doc COPYRIGHT.txt LICENSE.txt README.md |
0c2b688d JK |
322 | %{_libdir}/libvulkan.so |
323 | %{_libdir}/libvkjson.a | |
324 | %{_includedir}/vulkan | |
325 | %{_includedir}/vkjson.h | |
326 | %{_examplesdir}/%{name}-%{version} |