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