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