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