]> git.pld-linux.org Git - packages/vulkan-sdk.git/blame - vulkan-sdk.spec
vktraceviewer is vktraceviewer32 on 32-bit platforms
[packages/vulkan-sdk.git] / vulkan-sdk.spec
CommitLineData
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
14Summary: LunarG Vulkan SDK
15Name: vulkan-sdk
1cbb9acb 16Version: 1.0.39.1
e0194831 17Release: 1
0c2b688d
JK
18License: MIT-like
19Group: Development
cae01e8b 20Source0: https://github.com/LunarG/VulkanTools/archive/sdk-%{version}/VulkanTools-%{version}.tar.gz
1cbb9acb 21# Source0-md5: 62446dfd61208771d39109218cb29152
78da5abe
JK
22Patch0: system_glslang_and_spirv-tools.patch
23Patch1: demos_out_of_src.patch
24Patch2: rpath.patch
25Patch3: always_xcb.patch
1cbb9acb
JK
26Patch4: x32.patch
27Patch5: system_jsoncpp.patch
0c2b688d 28URL: http://lunarg.com/vulkan-sdk/
0c2b688d
JK
29BuildRequires: bison
30BuildRequires: cmake
31BuildRequires: GLM
1cbb9acb
JK
32BuildRequires: glslang >= 3.0.s20161222
33BuildRequires: glslang-devel >= 3.0.s20161222
0c2b688d
JK
34BuildRequires: graphviz
35BuildRequires: ImageMagick-devel
1cbb9acb 36BuildRequires: jsoncpp-devel
0c2b688d
JK
37BuildRequires: libpng
38BuildRequires: libxcb-devel
39BuildRequires: python3
83dd1851 40BuildRequires: python3-lxml
0c2b688d 41BuildRequires: python3-modules
1cbb9acb
JK
42BuildRequires: Qt5Core-devel
43BuildRequires: Qt5Svg-devel
44BuildRequires: Qt5Widgets-devel
45BuildRequires: spirv-tools-devel >= v2016.7
0c2b688d 46BuildRequires: udev-devel
1cbb9acb
JK
47Requires: glslang >= 3.0.s20161222
48Requires: spirv-tools >= v2016.7
a0190352 49Requires: %{name}-debug-layers = %{version}-%{release}
0c2b688d
JK
50Requires: vulkan-devel = %{version}-%{release}
51Requires: vulkan-loader = %{version}-%{release}
c5fea050 52Requires: vulkan-sdk-tools = %{version}-%{release}
a0190352 53Requires: %{name}-validation-layers = %{version}-%{release}
0c2b688d
JK
54BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
55
56%description
57Vulkan API Software Development Kit
58
59%package -n vulkan-loader
60Summary: Vulkan API loader
61License: MIT-like
62Group: Library
63Provides: vulkan(loader) = %{api_version}
64
65%description -n vulkan-loader
66Common loader for Vulkan API drivers.
67
a0190352 68%package validation-layers
0c2b688d
JK
69Summary: Validation layers for Vulkan
70Group: Development/Libraries
c5fea050 71Requires: vulkan-loader = %{version}-%{release}
0c2b688d 72
a0190352 73%description validation-layers
0c2b688d
JK
74Validation layers for Vulkan.
75
a0190352 76%package debug-layers
0c2b688d
JK
77Summary: Debug layers for Vulkan
78Group: Development/Libraries
c5fea050 79Requires: vulkan-loader = %{version}-%{release}
0c2b688d 80
a0190352 81%description debug-layers
0c2b688d
JK
82Debug layers for Vulkan.
83
84%package -n vulkan-devel
85Summary: Header files for the Vulkan API
86Summary(pl.UTF-8): Pliki nagłówkowe API Vulkan
87Group: Development/Libraries
c5fea050 88Requires: vulkan-loader = %{version}-%{release}
0c2b688d
JK
89
90%description -n vulkan-devel
91Header files for the Vulkan API.
92
93%description -n vulkan-devel -l pl.UTF-8
94Pliki nagłówkowe API Vulkan.
95
96%package demos
97Summary: Vulkan demos
98Group: Development/Libraries
fe1a4d43 99Requires: vulkan(icd)
0c2b688d
JK
100Requires: vulkan-loader = %{version}-%{release}
101
102%description demos
103Vulkan demos.
104
105%package tools
106Summary: Vulkan tools
107Group: Development
108Suggests: vulkan(icd)
109Requires: vulkan-loader = %{version}-%{release}
110
111%description tools
112Vulkan tools.
113
1cbb9acb
JK
114%package tools-vktraceviewer
115Summary: Vulkan trace viewer
116Group: Development
117Requires: %{name}-tools = %{version}-%{release}
118
119%description tools-vktraceviewer
120Vulkan 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
133install -d build
134cd 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}
150cd tests
151LC_ALL=C.utf-8 VK_LAYER_PATH=../layers LD_LIBRARY_PATH=../loader:../layers ./run_all_tests.sh
152cd ..
153%endif
154
ac0bcd72 155cd ..
0c2b688d
JK
156
157%install
158rm -rf $RPM_BUILD_ROOT
159install -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
168install -d "$RPM_BUILD_ROOT$PWD"
169ln -s "$PWD/build" "$RPM_BUILD_ROOT$PWD"
0c2b688d 170
ac0bcd72
JK
171cd build
172%{__make} install \
173 DESTDIR=$RPM_BUILD_ROOT
174
175rm "$RPM_BUILD_ROOT$PWD"
0c2b688d
JK
176
177cp -p demos/vulkaninfo $RPM_BUILD_ROOT%{_bindir}/vulkaninfo
0c2b688d 178cp -p demos/cube $RPM_BUILD_ROOT%{_bindir}/vulkan-cube
78da5abe 179cp -p demos/smoketest $RPM_BUILD_ROOT%{_bindir}/vulkan-smoketest
b213a987 180cp -p demos/{lunarg.ppm,*-vert.spv,*-frag.spv} $RPM_BUILD_ROOT%{_datadir}/%{name}-demos
0c2b688d 181
ac0bcd72 182mv $RPM_BUILD_ROOT/usr/etc/vulkan/explicit_layer.d/* $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d
0c2b688d
JK
183
184cp -p libs/vkjson/libvkjson.a $RPM_BUILD_ROOT%{_libdir}
185cp -p libs/vkjson/vkjson_{info,unittest} $RPM_BUILD_ROOT%{_bindir}
186
187cp -p ../libs/vkjson/vkjson.h $RPM_BUILD_ROOT%{_includedir}
ac0bcd72
JK
188
189cp -p install_staging/*.so $RPM_BUILD_ROOT%{_libdir}
190for f in layersvt/*.json ; do
1cbb9acb 191sed -e's@"library_path": "./@"library_path": "@' $f > $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/$(basename $f)
ac0bcd72 192done
0c2b688d 193
37fbe15c 194cp -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
198rm -f $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}/*.orig 2>/dev/null || :
199
a382f778 200%ifarch %x8664
ac0bcd72 201cp -p vktrace/libVkLayer_vktrace_layer.so $RPM_BUILD_ROOT%{_libdir}
0c2b688d
JK
202cp -p vktrace/vkreplay $RPM_BUILD_ROOT%{_bindir}
203cp -p vktrace/vktrace $RPM_BUILD_ROOT%{_bindir}
1cbb9acb 204sed -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 207cp -p vktrace/libVkLayer_vktrace_layer32.so $RPM_BUILD_ROOT%{_libdir}
a382f778
JK
208cp -p vktrace/vkreplay32 $RPM_BUILD_ROOT%{_bindir}
209cp -p vktrace/vktrace32 $RPM_BUILD_ROOT%{_bindir}
210rm $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/VkLayer_vktrace_layer.json
1cbb9acb 211sed -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 216install via/via $RPM_BUILD_ROOT%{_bindir}
80fd1bc3 217%ifarch %x8664
1cbb9acb 218install vktrace/vktraceviewer $RPM_BUILD_ROOT%{_bindir}
80fd1bc3
JK
219%else
220install vktrace/vktraceviewer32 $RPM_BUILD_ROOT%{_bindir}
221%endif
1cbb9acb 222
ac0bcd72 223cd ..
0c2b688d 224
ac0bcd72
JK
225cp -p vktrace/README.md vktrace-README.md
226cp -p vktrace/TODO.md vktrace-TODO.md
0c2b688d
JK
227
228%clean
229rm -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}
This page took 0.079097 seconds and 4 git commands to generate.