]> git.pld-linux.org Git - packages/vulkan-sdk.git/blame - vulkan-sdk.spec
- release 2 (by relup.sh)
[packages/vulkan-sdk.git] / vulkan-sdk.spec
CommitLineData
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 14Summary: LunarG Vulkan SDK
c135e47f 15Summary(pl.UTF-8): Pakiet programistyczny (SDK) LunarG Vulkan
0c2b688d 16Name: vulkan-sdk
1cbb9acb 17Version: 1.0.39.1
b666c57f 18Release: 2
c135e47f 19License: Apache v2.0, parts MIT-like
0c2b688d 20Group: Development
cae01e8b 21Source0: https://github.com/LunarG/VulkanTools/archive/sdk-%{version}/VulkanTools-%{version}.tar.gz
1cbb9acb 22# Source0-md5: 62446dfd61208771d39109218cb29152
78da5abe
JK
23Patch0: system_glslang_and_spirv-tools.patch
24Patch1: demos_out_of_src.patch
25Patch2: rpath.patch
26Patch3: always_xcb.patch
1cbb9acb
JK
27Patch4: x32.patch
28Patch5: system_jsoncpp.patch
c135e47f 29Patch6: %{name}-install.patch
0c2b688d 30URL: http://lunarg.com/vulkan-sdk/
0c2b688d 31BuildRequires: GLM
c135e47f
JB
32BuildRequires: Qt5Core-devel >= 5
33BuildRequires: Qt5Gui-devel >= 5
34BuildRequires: Qt5Svg-devel >= 5
35BuildRequires: Qt5Widgets-devel >= 5
36BuildRequires: bison
37BuildRequires: cmake >= 3.0
38%if %{with tests} && %(locale -a | grep -q '^C\.UTF-8$'; echo $?)
39BuildRequires: glibc-localedb-all
40%endif
1cbb9acb
JK
41BuildRequires: glslang >= 3.0.s20161222
42BuildRequires: glslang-devel >= 3.0.s20161222
0c2b688d
JK
43BuildRequires: graphviz
44BuildRequires: ImageMagick-devel
1cbb9acb 45BuildRequires: jsoncpp-devel
0c2b688d 46BuildRequires: libpng
c135e47f 47BuildRequires: libstdc++-devel >= 6:4.7
0c2b688d 48BuildRequires: libxcb-devel
c135e47f
JB
49%{?with_mir:BuildRequires: mir-devel}
50BuildRequires: pkgconfig
51BuildRequires: python3 >= 3
83dd1851 52BuildRequires: python3-lxml
c135e47f
JB
53BuildRequires: python3-modules >= 3
54BuildRequires: qt5-build >= 5
1cbb9acb 55BuildRequires: spirv-tools-devel >= v2016.7
0c2b688d 56BuildRequires: udev-devel
c135e47f
JB
57%{?with_wayland:BuildRequires: wayland-devel}
58%{?with_x11:BuildRequires: xorg-lib-libX11-devel}
1cbb9acb
JK
59Requires: glslang >= 3.0.s20161222
60Requires: spirv-tools >= v2016.7
a0190352 61Requires: %{name}-debug-layers = %{version}-%{release}
0c2b688d
JK
62Requires: vulkan-devel = %{version}-%{release}
63Requires: vulkan-loader = %{version}-%{release}
c5fea050 64Requires: vulkan-sdk-tools = %{version}-%{release}
a0190352 65Requires: %{name}-validation-layers = %{version}-%{release}
0c2b688d
JK
66BuildRoot: %{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
75Vulkan API Software Development Kit.
76
77%description -l pl.UTF-8
78Pakiet programistyczny (SDK) Vulkan API
0c2b688d
JK
79
80%package -n vulkan-loader
81Summary: Vulkan API loader
c135e47f
JB
82Summary(pl.UTF-8): Biblioteka wczytująca sterowniki Vulkan
83Group: Libraries
0c2b688d
JK
84Provides: vulkan(loader) = %{api_version}
85
86%description -n vulkan-loader
87Common loader for Vulkan API drivers.
88
c135e47f
JB
89%description -n vulkan-loader -l pl.UTF-8
90Wspólna biblioteka wczytująca sterowniki Vulkan.
91
a0190352 92%package validation-layers
0c2b688d 93Summary: Validation layers for Vulkan
c135e47f 94Summary(pl.UTF-8): Warstwy sprawdzania poprawności dla Vulkana
0c2b688d 95Group: Development/Libraries
c5fea050 96Requires: vulkan-loader = %{version}-%{release}
0c2b688d 97
a0190352 98%description validation-layers
0c2b688d
JK
99Validation layers for Vulkan.
100
c135e47f
JB
101%description validation-layers -l pl.UTF-8
102Warstwy sprawdzania poprawności dla Vulkana.
103
a0190352 104%package debug-layers
0c2b688d 105Summary: Debug layers for Vulkan
c135e47f 106Summary(pl.UTF-8): Warstwy diagnostyczne dla Vulkana
0c2b688d 107Group: Development/Libraries
c5fea050 108Requires: vulkan-loader = %{version}-%{release}
0c2b688d 109
a0190352 110%description debug-layers
0c2b688d
JK
111Debug layers for Vulkan.
112
c135e47f
JB
113%description debug-layers -l pl.UTF-8
114Warstwy diagnostyczne dla Vulkana.
115
0c2b688d
JK
116%package -n vulkan-devel
117Summary: Header files for the Vulkan API
118Summary(pl.UTF-8): Pliki nagłówkowe API Vulkan
119Group: Development/Libraries
c5fea050 120Requires: vulkan-loader = %{version}-%{release}
0c2b688d
JK
121
122%description -n vulkan-devel
123Header files for the Vulkan API.
124
125%description -n vulkan-devel -l pl.UTF-8
126Pliki nagłówkowe API Vulkan.
127
128%package demos
129Summary: Vulkan demos
c135e47f 130Summary(pl.UTF-8): Programy demonstracyjne Vulkana
0c2b688d 131Group: Development/Libraries
fe1a4d43 132Requires: vulkan(icd)
0c2b688d
JK
133Requires: vulkan-loader = %{version}-%{release}
134
135%description demos
136Vulkan demos.
137
c135e47f
JB
138%description demos -l pl.UTF-8
139Programy demonstracyjne Vulkana.
140
0c2b688d
JK
141%package tools
142Summary: Vulkan tools
c135e47f
JB
143Summary(pl.UTF-8): Narzędzia Vulkana
144Group: Development/Tools
0c2b688d
JK
145Suggests: vulkan(icd)
146Requires: vulkan-loader = %{version}-%{release}
147
148%description tools
149Vulkan tools.
150
c135e47f
JB
151%description tools -l pl.UTF-8
152Narzędzia Vulkana.
153
1cbb9acb
JK
154%package tools-vktraceviewer
155Summary: Vulkan trace viewer
c135e47f
JB
156Summary(pl.UTF-8): Przeglądarka śladów Vulkana
157Group: Development/Tools
1cbb9acb
JK
158Requires: %{name}-tools = %{version}-%{release}
159
160%description tools-vktraceviewer
161Vulkan trace viewer.
162
c135e47f
JB
163%description tools-vktraceviewer -l pl.UTF-8
164Przeglą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
177install -d build
178cd 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}
192cd tests
c135e47f 193LC_ALL=C.UTF-8 VK_LAYER_PATH=../layers LD_LIBRARY_PATH=../loader:../layers ./run_all_tests.sh
37fbe15c
JK
194cd ..
195%endif
196
ac0bcd72 197cd ..
0c2b688d
JK
198
199%install
200rm -rf $RPM_BUILD_ROOT
201install -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
211install build/demos/cube $RPM_BUILD_ROOT%{_bindir}/vulkan-cube
212install build/demos/smoketest $RPM_BUILD_ROOT%{_bindir}/vulkan-smoketest
213cp -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
217install build/libs/vkjson/vkjson_{info,unittest} $RPM_BUILD_ROOT%{_bindir}
218cp -p build/libs/vkjson/libvkjson.a $RPM_BUILD_ROOT%{_libdir}
219cp -p libs/vkjson/vkjson.h $RPM_BUILD_ROOT%{_includedir}
0c2b688d 220
c135e47f
JB
221for 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 223done
0c2b688d 224
c135e47f 225cp -pr demos/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
0c2b688d 226
c135e47f
JB
227install build/vktrace/libVkLayer_vktrace_layer%{binsuf}.so $RPM_BUILD_ROOT%{_libdir}
228install build/vktrace/vkreplay%{binsuf} $RPM_BUILD_ROOT%{_bindir}
229install build/vktrace/vktrace%{binsuf} $RPM_BUILD_ROOT%{_bindir}
230install 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
234sed -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 238install build/via/via $RPM_BUILD_ROOT%{_bindir}
0c2b688d 239
ac0bcd72
JK
240cp -p vktrace/README.md vktrace-README.md
241cp -p vktrace/TODO.md vktrace-TODO.md
0c2b688d
JK
242
243%clean
244rm -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}
This page took 0.082678 seconds and 4 git commands to generate.