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