]> git.pld-linux.org Git - packages/vulkan-sdk.git/blob - vulkan-sdk.spec
9265b7d8b2d086fdebbfb2f35f01a5b6438d5c91
[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_with     intel_icd       # build experimental Intel GPU driver
6
7 %define api_version 1.0.3
8
9 %define snap    20160223
10 # sdk-1.0.3 branch
11 %define loader_commit   b654da708be8f14e7f4c6f78df656229939422c8
12 # master branch
13 %define tools_commit    e5dccf86cf999ff9988be97337d0e3a3d508b085
14 %define rel     1
15 Summary:        LunarG Vulkan SDK
16 Name:           vulkan-sdk
17 Version:        1.0.3.0
18 Release:        3.s%{snap}.%{rel}
19 License:        MIT-like
20 Group:          Development
21 Source0:        https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/archive/%{loader_commit}/Vulkan-LoaderAndValidationLayers-s%{snap}.tar.gz
22 # Source0-md5:  25e8092b69d15090af5cada36d4fc92d
23 Source1:        https://github.com/LunarG/VulkanTools/archive/%{tools_commit}/VulkanTools-s%{snap}.tar.gz
24 # Source1-md5:  89ae56a0c0270a7043548bc30c99aa36
25 Patch0:         system_glslang.patch
26 URL:            http://lunarg.com/vulkan-sdk/
27 %{?with_intel_icd:BuildRequires:        Mesa-libGL-devel}
28 BuildRequires:  bison
29 BuildRequires:  cmake
30 BuildRequires:  GLM
31 BuildRequires:  glslang
32 BuildRequires:  glslang-devel
33 BuildRequires:  graphviz
34 BuildRequires:  ImageMagick-devel
35 BuildRequires:  libpng
36 BuildRequires:  libxcb-devel
37 BuildRequires:  python3
38 BuildRequires:  python3-modules
39 BuildRequires:  spirv-tools-devel
40 BuildRequires:  udev-devel
41 %{?with_intel_icd:BuildRequires:        xorg-lib-libpciaccess-devel}
42 Requires:       vulkan-debug-layers = %{version}-%{release}
43 Requires:       vulkan-devel = %{version}-%{release}
44 Requires:       vulkan-loader = %{version}-%{release}
45 Requires:       vulkan-tools = %{version}-%{release}
46 Requires:       vulkan-validation-layers = %{version}-%{release}
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 -n vulkan-validation-layers
62 Summary:        Validation layers for Vulkan
63 Group:          Development/Libraries
64 Requires:       %{name} = %{version}-%{release}
65
66 %description -n vulkan-validation-layers
67 Validation layers for Vulkan.
68
69 %package -n vulkan-debug-layers
70 Summary:        Debug layers for Vulkan
71 Group:          Development/Libraries
72 Requires:       %{name} = %{version}-%{release}
73
74 %description -n vulkan-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:       %{name} = %{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 -q -c -a1
109
110 mv Vulkan-LoaderAndValidationLayers-%{loader_commit} Vulkan-LoaderAndValidationLayers
111 mv VulkanTools-%{tools_commit} VulkanTools
112
113 %patch0 -p1
114
115 ln -s Vulkan-LoaderAndValidationLayers LoaderAndValidationLayers
116
117 %build
118 install -d {Vulkan-LoaderAndValidationLayers,VulkanTools}/build
119 cd Vulkan-LoaderAndValidationLayers/build
120 %cmake \
121         -DCMAKE_INSTALL_DATADIR=share \
122         -DCMAKE_INSTALL_SYSCONFDIR=etc \
123         %{?with_tests:-DBUILD_TESTS=ON} \
124         %{!?with_tests:-DBUILD_TESTS=OFF} \
125                 ../
126 %{__make}
127
128 %if %{with tests}
129 cd tests
130 LC_ALL=C.utf-8 VK_LAYER_PATH=../layers LD_LIBRARY_PATH=../loader:../layers ./run_all_tests.sh
131 cd ..
132 %endif
133 cd ../..
134
135 cd VulkanTools/build
136 %cmake \
137         -DBUILD_ICD=%{?with_intel_icd:ON}%{!?with_intel_icd:OFF} \
138         ../
139
140 %{__make}
141 cd ../..
142
143 %install
144 rm -rf $RPM_BUILD_ROOT
145 install -d $RPM_BUILD_ROOT{%{_datadir},%{_sysconfdir}}/vulkan/icd.d \
146 $RPM_BUILD_ROOT{%{_datadir},%{_sysconfdir}}/vulkan/{explicit,implicit}_layer.d \
147         $RPM_BUILD_ROOT{%{_bindir},%{_libdir}/vulkan/layer} \
148         $RPM_BUILD_ROOT%{_includedir}/vulkan \
149         $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
150
151
152 cd Vulkan-LoaderAndValidationLayers/build
153 %{__make} install
154
155 cp -p loader/libvulkan.so.1.0.3 $RPM_BUILD_ROOT%{_libdir}
156 ln -s libvulkan.so.1.0.3 $RPM_BUILD_ROOT%{_libdir}/libvulkan.so
157 ln -s libvulkan.so.1.0.3 $RPM_BUILD_ROOT%{_libdir}/libvulkan.so.1
158
159 cp -p demos/vulkaninfo $RPM_BUILD_ROOT%{_bindir}/vulkaninfo
160 cp -p demos/tri $RPM_BUILD_ROOT%{_bindir}/vulkan-tri
161 cp -p demos/cube $RPM_BUILD_ROOT%{_bindir}/vulkan-cube
162
163 cp -p install_staging/*.so $RPM_BUILD_ROOT%{_libdir}/vulkan/layer
164 for f in layers/*.json ; do
165 sed -e's@"library_path": "./@"library_path": "%{_libdir}/vulkan/layer/@' $f > $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/$(basename $f)
166 done
167
168 cp -p libs/vkjson/libvkjson.a $RPM_BUILD_ROOT%{_libdir}
169 cp -p libs/vkjson/vkjson_{info,unittest} $RPM_BUILD_ROOT%{_bindir}
170
171 cp -p ../libs/vkjson/vkjson.h $RPM_BUILD_ROOT%{_includedir}
172 cp -p ../include/vulkan/* $RPM_BUILD_ROOT%{_includedir}/vulkan
173
174 cp -p ../demos/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
175
176 cd ../..
177 cd VulkanTools/build
178 %{__make} install
179
180 cp -p install_staging/*.so $RPM_BUILD_ROOT%{_libdir}/vulkan/layer
181 for f in layers/*.json ; do
182 sed -e's@"library_path": "./@"library_path": "%{_libdir}/vulkan/layer/@' $f > $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/$(basename $f)
183 done
184
185 %ifarch %x8664
186 cp -p vktrace/libVkLayer_vktrace_layer.so $RPM_BUILD_ROOT%{_libdir}/vulkan/layer
187 cp -p vktrace/vkreplay $RPM_BUILD_ROOT%{_bindir}
188 cp -p vktrace/vktrace $RPM_BUILD_ROOT%{_bindir}
189 %else
190 cp -p vktrace/libVkLayer_vktrace_layer32.so $RPM_BUILD_ROOT%{_libdir}/vulkan/layer
191 cp -p vktrace/vkreplay32 $RPM_BUILD_ROOT%{_bindir}
192 cp -p vktrace/vktrace32 $RPM_BUILD_ROOT%{_bindir}
193 rm $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/VkLayer_vktrace_layer.json
194 sed -e's@"library_path": "./@"library_path": "%{_libdir}/vulkan/layer/@' \
195     -e's@libVkLayer_vktrace_layer.so@libVkLayer_vktrace_layer32.so@' \
196         layers/VkLayer_vktrace_layer.json > $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/VkLayer_vktrace_layer32.json
197 %endif
198
199 cd ../..
200
201 cp -p VulkanTools/vktrace/README.md vktrace-README.md
202 cp -p VulkanTools/vktrace/TODO.md vktrace-TODO.md
203
204 %clean
205 rm -rf $RPM_BUILD_ROOT
206
207 %post   -n vulkan-loader -p /sbin/ldconfig
208 %postun -n vulkan-loader -p /sbin/ldconfig
209
210 %files
211 %defattr(644,root,root,755)
212
213 %files -n vulkan-loader
214 %defattr(644,root,root,755)
215 %doc Vulkan-LoaderAndValidationLayers/LICENSE.txt
216 %doc Vulkan-LoaderAndValidationLayers/loader/{README.md,LoaderAndLayerInterface.md}
217 %dir %{_sysconfdir}/vulkan
218 %dir %{_sysconfdir}/vulkan/icd.d
219 %dir %{_sysconfdir}/vulkan/explicit_layer.d
220 %dir %{_sysconfdir}/vulkan/implicit_layer.d
221 %dir %{_datadir}/vulkan
222 %dir %{_datadir}/vulkan/icd.d
223 %dir %{_datadir}/vulkan/explicit_layer.d
224 %dir %{_datadir}/vulkan/implicit_layer.d
225 %{_libdir}/libvulkan.so.1.*.*
226 %ghost %{_libdir}/libvulkan.so.1
227 %dir %{_libdir}/vulkan
228 %dir %{_libdir}/vulkan/layer
229
230 %files demos
231 %defattr(644,root,root,755)
232 %doc Vulkan-LoaderAndValidationLayers/LICENSE.txt
233 %attr(755,root,root) %{_bindir}/vulkan-tri
234 %attr(755,root,root) %{_bindir}/vulkan-cube
235
236 %files tools
237 %defattr(644,root,root,755)
238 %doc VulkanTools/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}/vulkan/layer/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}/vulkan/layer/libVkLayer_vktrace_layer32.so
252 %{_datadir}/vulkan/explicit_layer.d/VkLayer_vktrace_layer32.json
253 %endif
254
255 %files -n vulkan-validation-layers
256 %defattr(644,root,root,755)
257 %doc Vulkan-LoaderAndValidationLayers/LICENSE.txt
258 %doc Vulkan-LoaderAndValidationLayers/layers/{README.md,vk_layer_settings.txt}
259 %attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_device_limits.so
260 %attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_draw_state.so
261 %attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_image.so
262 %attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_mem_tracker.so
263 %attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_object_tracker.so
264 %attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_param_checker.so
265 %attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_swapchain.so
266 %attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_threading.so
267 %attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_unique_objects.so
268 %attr(755,root,root) %{_libdir}/vulkan/layer/liblayer_utils.so
269 %{_datadir}/vulkan/explicit_layer.d/VkLayer_device_limits.json
270 %{_datadir}/vulkan/explicit_layer.d/VkLayer_draw_state.json
271 %{_datadir}/vulkan/explicit_layer.d/VkLayer_image.json
272 %{_datadir}/vulkan/explicit_layer.d/VkLayer_mem_tracker.json
273 %{_datadir}/vulkan/explicit_layer.d/VkLayer_object_tracker.json
274 %{_datadir}/vulkan/explicit_layer.d/VkLayer_param_checker.json
275 %{_datadir}/vulkan/explicit_layer.d/VkLayer_swapchain.json
276 %{_datadir}/vulkan/explicit_layer.d/VkLayer_threading.json
277 %{_datadir}/vulkan/explicit_layer.d/VkLayer_unique_objects.json
278
279 %files -n vulkan-debug-layers
280 %defattr(644,root,root,755)
281 %doc VulkanTools/LICENSE.txt
282 %doc VulkanTools/layers/{README.md,vk_layer_settings.txt}
283 %attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_api_dump.so
284 %attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_basic.so
285 %attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_generic.so
286 %attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_multi.so
287 %attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_screenshot.so
288 %{_datadir}/vulkan/explicit_layer.d/VkLayer_api_dump.json
289 %{_datadir}/vulkan/explicit_layer.d/VkLayer_basic.json
290 %{_datadir}/vulkan/explicit_layer.d/VkLayer_generic.json
291 %{_datadir}/vulkan/explicit_layer.d/VkLayer_multi.json
292 %{_datadir}/vulkan/explicit_layer.d/VkLayer_screenshot.json
293
294 %files -n vulkan-devel
295 %defattr(644,root,root,755)
296 %doc Vulkan-LoaderAndValidationLayers/{LICENSE.txt,README.md}
297 %{_libdir}/libvulkan.so
298 %{_libdir}/libvkjson.a
299 %{_includedir}/vulkan
300 %{_includedir}/vkjson.h
301 %{_examplesdir}/%{name}-%{version}
This page took 0.052799 seconds and 3 git commands to generate.