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