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