]> git.pld-linux.org Git - packages/vulkan-sdk.git/blame - vulkan-sdk.spec
I said fix x32 build, not disable it ;)
[packages/vulkan-sdk.git] / vulkan-sdk.spec
CommitLineData
0c2b688d
JK
1#
2# Conditional build:
3%bcond_with tests # build with tests (require a working Vulkan
4 # driver (ICD))
78da5abe
JK
5%bcond_without wayland # enable Wayland support in loader
6%bcond_without xlib # enable XLib support in loader
0c2b688d 7
ac0bcd72 8%define api_version 1.0.32
0c2b688d 9
0c2b688d
JK
10Summary: LunarG Vulkan SDK
11Name: vulkan-sdk
ac0bcd72 12Version: 1.0.32.0
e0194831 13Release: 1
0c2b688d
JK
14License: MIT-like
15Group: Development
cae01e8b 16Source0: https://github.com/LunarG/VulkanTools/archive/sdk-%{version}/VulkanTools-%{version}.tar.gz
ac0bcd72 17# Source0-md5: 83679b56e7782b1f61b4b86de98fb81b
78da5abe
JK
18Patch0: system_glslang_and_spirv-tools.patch
19Patch1: demos_out_of_src.patch
20Patch2: rpath.patch
21Patch3: always_xcb.patch
22Patch4: vktrace_wayland.patch
8046b314 23Patch5: x32.patch
0c2b688d 24URL: http://lunarg.com/vulkan-sdk/
0c2b688d
JK
25BuildRequires: bison
26BuildRequires: cmake
27BuildRequires: GLM
ac0bcd72
JK
28BuildRequires: glslang >= 3.0.s20161029
29BuildRequires: glslang-devel >= 3.0.s20161029
0c2b688d
JK
30BuildRequires: graphviz
31BuildRequires: ImageMagick-devel
32BuildRequires: libpng
33BuildRequires: libxcb-devel
34BuildRequires: python3
83dd1851 35BuildRequires: python3-lxml
0c2b688d 36BuildRequires: python3-modules
ac0bcd72 37BuildRequires: spirv-tools-devel >= v2016.6.s20161027
0c2b688d 38BuildRequires: udev-devel
ac0bcd72
JK
39Requires: glslang >= 3.0.s20161029
40Requires: spirv-tools >= v2016.6.s20161027
a0190352 41Requires: %{name}-debug-layers = %{version}-%{release}
0c2b688d
JK
42Requires: vulkan-devel = %{version}-%{release}
43Requires: vulkan-loader = %{version}-%{release}
c5fea050 44Requires: vulkan-sdk-tools = %{version}-%{release}
a0190352 45Requires: %{name}-validation-layers = %{version}-%{release}
0c2b688d
JK
46BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
47
48%description
49Vulkan API Software Development Kit
50
51%package -n vulkan-loader
52Summary: Vulkan API loader
53License: MIT-like
54Group: Library
55Provides: vulkan(loader) = %{api_version}
56
57%description -n vulkan-loader
58Common loader for Vulkan API drivers.
59
a0190352 60%package validation-layers
0c2b688d
JK
61Summary: Validation layers for Vulkan
62Group: Development/Libraries
c5fea050 63Requires: vulkan-loader = %{version}-%{release}
0c2b688d 64
a0190352 65%description validation-layers
0c2b688d
JK
66Validation layers for Vulkan.
67
a0190352 68%package debug-layers
0c2b688d
JK
69Summary: Debug layers for Vulkan
70Group: Development/Libraries
c5fea050 71Requires: vulkan-loader = %{version}-%{release}
0c2b688d 72
a0190352 73%description debug-layers
0c2b688d
JK
74Debug layers for Vulkan.
75
76%package -n vulkan-devel
77Summary: Header files for the Vulkan API
78Summary(pl.UTF-8): Pliki nagłówkowe API Vulkan
79Group: Development/Libraries
c5fea050 80Requires: vulkan-loader = %{version}-%{release}
0c2b688d
JK
81
82%description -n vulkan-devel
83Header files for the Vulkan API.
84
85%description -n vulkan-devel -l pl.UTF-8
86Pliki nagłówkowe API Vulkan.
87
88%package demos
89Summary: Vulkan demos
90Group: Development/Libraries
fe1a4d43 91Requires: vulkan(icd)
0c2b688d
JK
92Requires: vulkan-loader = %{version}-%{release}
93
94%description demos
95Vulkan demos.
96
97%package tools
98Summary: Vulkan tools
99Group: Development
100Suggests: vulkan(icd)
101Requires: vulkan-loader = %{version}-%{release}
102
103%description tools
104Vulkan tools.
105
106%prep
ac0bcd72 107%setup -qn VulkanTools-sdk-%{version}
0c2b688d
JK
108
109%patch0 -p1
78da5abe 110%patch1 -p1
b213a987 111%patch2 -p1
97255b0b 112%patch3 -p1
78da5abe 113%patch4 -p1
8046b314 114%patch5 -p1
0c2b688d 115
0c2b688d 116%build
03dbfa8f
JK
117install -d build
118cd build
37fbe15c 119
0c2b688d 120%cmake \
37fbe15c
JK
121 -DCMAKE_INSTALL_DATADIR=share \
122 -DCMAKE_INSTALL_SYSCONFDIR=etc \
123 -DBUILD_TESTS=%{?with_tests:ON}%{!?with_tests:OFF} \
124 -DBUILD_WSI_WAYLAND_SUPPORT=%{?with_wayland:ON}%{!?with_wayland:OFF} \
78da5abe 125 -DBUILD_WSI_XLIB_SUPPORT=%{?with_xlib:ON}%{!?with_xlib:OFF} \
ac0bcd72 126 -DBUILD_ICD=OFF \
37fbe15c 127 ../
0c2b688d 128%{__make}
37fbe15c
JK
129
130%if %{with tests}
131cd tests
132LC_ALL=C.utf-8 VK_LAYER_PATH=../layers LD_LIBRARY_PATH=../loader:../layers ./run_all_tests.sh
133cd ..
134%endif
135
ac0bcd72 136cd ..
0c2b688d
JK
137
138%install
139rm -rf $RPM_BUILD_ROOT
140install -d $RPM_BUILD_ROOT{%{_datadir},%{_sysconfdir}}/vulkan/icd.d \
141$RPM_BUILD_ROOT{%{_datadir},%{_sysconfdir}}/vulkan/{explicit,implicit}_layer.d \
142 $RPM_BUILD_ROOT{%{_bindir},%{_libdir}/vulkan/layer} \
143 $RPM_BUILD_ROOT%{_includedir}/vulkan \
b213a987 144 $RPM_BUILD_ROOT%{_datadir}/%{name}-demos \
0c2b688d
JK
145 $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
146
147
ac0bcd72
JK
148# hack for 'make install' tryin to install in relative paths when DESTDIR is set
149install -d "$RPM_BUILD_ROOT$PWD"
150ln -s "$PWD/build" "$RPM_BUILD_ROOT$PWD"
0c2b688d 151
ac0bcd72
JK
152cd build
153%{__make} install \
154 DESTDIR=$RPM_BUILD_ROOT
155
156rm "$RPM_BUILD_ROOT$PWD"
0c2b688d
JK
157
158cp -p demos/vulkaninfo $RPM_BUILD_ROOT%{_bindir}/vulkaninfo
0c2b688d 159cp -p demos/cube $RPM_BUILD_ROOT%{_bindir}/vulkan-cube
78da5abe 160cp -p demos/smoketest $RPM_BUILD_ROOT%{_bindir}/vulkan-smoketest
b213a987 161cp -p demos/{lunarg.ppm,*-vert.spv,*-frag.spv} $RPM_BUILD_ROOT%{_datadir}/%{name}-demos
0c2b688d 162
ac0bcd72 163mv $RPM_BUILD_ROOT/usr/etc/vulkan/explicit_layer.d/* $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d
0c2b688d
JK
164
165cp -p libs/vkjson/libvkjson.a $RPM_BUILD_ROOT%{_libdir}
166cp -p libs/vkjson/vkjson_{info,unittest} $RPM_BUILD_ROOT%{_bindir}
167
168cp -p ../libs/vkjson/vkjson.h $RPM_BUILD_ROOT%{_includedir}
ac0bcd72
JK
169
170cp -p install_staging/*.so $RPM_BUILD_ROOT%{_libdir}
171for f in layersvt/*.json ; do
172sed -e's@"library_path": "./@"library_path": "%{_libdir}/@' $f > $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/$(basename $f)
173done
0c2b688d 174
37fbe15c 175cp -pr ../demos/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
0c2b688d 176
b213a987 177# restore original demo sources in %{_examplesdir}
ac0bcd72 178%patch1 -R -p2 -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
b213a987
JK
179rm -f $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}/*.orig 2>/dev/null || :
180
a382f778 181%ifarch %x8664
ac0bcd72 182cp -p vktrace/libVkLayer_vktrace_layer.so $RPM_BUILD_ROOT%{_libdir}
0c2b688d
JK
183cp -p vktrace/vkreplay $RPM_BUILD_ROOT%{_bindir}
184cp -p vktrace/vktrace $RPM_BUILD_ROOT%{_bindir}
ac0bcd72 185sed -e's@"library_path": "../vktrace/@"library_path": "%{_libdir}/@' \
78da5abe 186 layersvt/VkLayer_vktrace_layer.json > $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/VkLayer_vktrace_layer.json
a382f778 187%else
ac0bcd72 188cp -p vktrace/libVkLayer_vktrace_layer32.so $RPM_BUILD_ROOT%{_libdir}
a382f778
JK
189cp -p vktrace/vkreplay32 $RPM_BUILD_ROOT%{_bindir}
190cp -p vktrace/vktrace32 $RPM_BUILD_ROOT%{_bindir}
191rm $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/VkLayer_vktrace_layer.json
ac0bcd72 192sed -e's@"library_path": "../vktrace/@"library_path": "%{_libdir}/@' \
a382f778 193 -e's@libVkLayer_vktrace_layer.so@libVkLayer_vktrace_layer32.so@' \
97f3b102 194 layersvt/VkLayer_vktrace_layer.json > $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/VkLayer_vktrace_layer32.json
a382f778 195%endif
0c2b688d 196
ac0bcd72 197cd ..
0c2b688d 198
ac0bcd72
JK
199cp -p vktrace/README.md vktrace-README.md
200cp -p vktrace/TODO.md vktrace-TODO.md
0c2b688d
JK
201
202%clean
203rm -rf $RPM_BUILD_ROOT
204
d8d42412
JK
205%post -n vulkan-loader -p /sbin/ldconfig
206%postun -n vulkan-loader -p /sbin/ldconfig
0c2b688d
JK
207
208%files
209%defattr(644,root,root,755)
210
211%files -n vulkan-loader
212%defattr(644,root,root,755)
ac0bcd72
JK
213%doc COPYRIGHT.txt LICENSE.txt
214%doc loader/{README.md,LoaderAndLayerInterface.md}
0c2b688d
JK
215%dir %{_sysconfdir}/vulkan
216%dir %{_sysconfdir}/vulkan/icd.d
217%dir %{_sysconfdir}/vulkan/explicit_layer.d
218%dir %{_sysconfdir}/vulkan/implicit_layer.d
219%dir %{_datadir}/vulkan
220%dir %{_datadir}/vulkan/icd.d
221%dir %{_datadir}/vulkan/explicit_layer.d
222%dir %{_datadir}/vulkan/implicit_layer.d
223%{_libdir}/libvulkan.so.1.*.*
224%ghost %{_libdir}/libvulkan.so.1
225%dir %{_libdir}/vulkan
226%dir %{_libdir}/vulkan/layer
227
228%files demos
229%defattr(644,root,root,755)
ac0bcd72 230%doc COPYRIGHT.txt LICENSE.txt
0c2b688d 231%attr(755,root,root) %{_bindir}/vulkan-cube
78da5abe 232%attr(755,root,root) %{_bindir}/vulkan-smoketest
b213a987 233%{_datadir}/%{name}-demos
0c2b688d
JK
234
235%files tools
236%defattr(644,root,root,755)
ac0bcd72 237%doc COPYRIGHT.txt LICENSE.txt
0c2b688d
JK
238%doc vktrace-README.md vktrace-TODO.md
239%attr(755,root,root) %{_bindir}/vkjson_info
240%attr(755,root,root) %{_bindir}/vkjson_unittest
a382f778
JK
241%attr(755,root,root) %{_bindir}/vulkaninfo
242%ifarch %x8664
0c2b688d
JK
243%attr(755,root,root) %{_bindir}/vkreplay
244%attr(755,root,root) %{_bindir}/vktrace
ac0bcd72 245%attr(755,root,root) %{_libdir}/libVkLayer_vktrace_layer.so
a382f778
JK
246%{_datadir}/vulkan/explicit_layer.d/VkLayer_vktrace_layer.json
247%else
248%attr(755,root,root) %{_bindir}/vkreplay32
249%attr(755,root,root) %{_bindir}/vktrace32
ac0bcd72 250%attr(755,root,root) %{_libdir}/libVkLayer_vktrace_layer32.so
a382f778
JK
251%{_datadir}/vulkan/explicit_layer.d/VkLayer_vktrace_layer32.json
252%endif
0c2b688d 253
a0190352 254%files validation-layers
0c2b688d 255%defattr(644,root,root,755)
ac0bcd72
JK
256%doc COPYRIGHT.txt LICENSE.txt
257%doc layers/{README.md,vk_layer_settings.txt}
258%attr(755,root,root) %{_libdir}/libVkLayer_core_validation.so
259%attr(755,root,root) %{_libdir}/libVkLayer_image.so
260%attr(755,root,root) %{_libdir}/libVkLayer_object_tracker.so
261%attr(755,root,root) %{_libdir}/libVkLayer_parameter_validation.so
262%attr(755,root,root) %{_libdir}/libVkLayer_swapchain.so
263%attr(755,root,root) %{_libdir}/libVkLayer_threading.so
264%attr(755,root,root) %{_libdir}/libVkLayer_unique_objects.so
faf1b559 265%attr(755,root,root) %{_libdir}/libVkLayer_utils.so
78da5abe 266%{_datadir}/vulkan/explicit_layer.d/VkLayer_core_validation.json
0c2b688d 267%{_datadir}/vulkan/explicit_layer.d/VkLayer_image.json
0c2b688d 268%{_datadir}/vulkan/explicit_layer.d/VkLayer_object_tracker.json
78da5abe 269%{_datadir}/vulkan/explicit_layer.d/VkLayer_parameter_validation.json
0c2b688d
JK
270%{_datadir}/vulkan/explicit_layer.d/VkLayer_swapchain.json
271%{_datadir}/vulkan/explicit_layer.d/VkLayer_threading.json
272%{_datadir}/vulkan/explicit_layer.d/VkLayer_unique_objects.json
273
a0190352 274%files debug-layers
0c2b688d 275%defattr(644,root,root,755)
ac0bcd72
JK
276%doc COPYRIGHT.txt LICENSE.txt
277%doc layersvt/{README.md,vk_layer_settings.txt}
278%attr(755,root,root) %{_libdir}/libVkLayer_api_dump.so
279%attr(755,root,root) %{_libdir}/libVkLayer_basic.so
280%attr(755,root,root) %{_libdir}/libVkLayer_generic.so
281%attr(755,root,root) %{_libdir}/libVkLayer_multi.so
282%attr(755,root,root) %{_libdir}/libVkLayer_screenshot.so
faf1b559 283%attr(755,root,root) %{_libdir}/libVkLayer_utilsvt.so
0c2b688d
JK
284%{_datadir}/vulkan/explicit_layer.d/VkLayer_api_dump.json
285%{_datadir}/vulkan/explicit_layer.d/VkLayer_basic.json
286%{_datadir}/vulkan/explicit_layer.d/VkLayer_generic.json
287%{_datadir}/vulkan/explicit_layer.d/VkLayer_multi.json
288%{_datadir}/vulkan/explicit_layer.d/VkLayer_screenshot.json
0c2b688d
JK
289
290%files -n vulkan-devel
291%defattr(644,root,root,755)
ac0bcd72 292%doc COPYRIGHT.txt LICENSE.txt README.md
0c2b688d
JK
293%{_libdir}/libvulkan.so
294%{_libdir}/libvkjson.a
295%{_includedir}/vulkan
296%{_includedir}/vkjson.h
297%{_examplesdir}/%{name}-%{version}
This page took 0.066338 seconds and 4 git commands to generate.