]> git.pld-linux.org Git - packages/vulkan-sdk.git/blobdiff - vulkan-sdk.spec
attempt to fix x32 build
[packages/vulkan-sdk.git] / vulkan-sdk.spec
index bdeaeb424532853b5ef8b9ac8dab27786505d9b1..9b2717d61a19453dfae8b7274e11240379c5cd17 100644 (file)
@@ -2,62 +2,48 @@
 # Conditional build:
 %bcond_with    tests           # build with tests (require a working Vulkan
                                # driver (ICD))
-%bcond_without icd             # build without nulldrv and experimental Intel GPU driver
+%bcond_without wayland         # enable Wayland support in loader
+%bcond_without xlib            # enable XLib support in loader
 
-%ifnarch %{x8664}
-%undefine       with_icd
-%endif
+%define        api_version 1.0.32
 
-%define        api_version 1.0.3
-%define llvm_version   3.4.2
-
-%define snap   20160223
-# sdk-1.0.3 branch
-%define loader_commit  b654da708be8f14e7f4c6f78df656229939422c8
-# master branch
-%define tools_commit   e5dccf86cf999ff9988be97337d0e3a3d508b085
-# master branch
-%define        lg_commit       0a73713f0d664aa97a7e359f567a16d7c3fce359
-%define        rel     4
 Summary:       LunarG Vulkan SDK
 Name:          vulkan-sdk
-Version:       1.0.3.0
-Release:       3.s%{snap}.%{rel}
+Version:       1.0.32.0
+Release:       1
 License:       MIT-like
 Group:         Development
-Source0:       https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/archive/%{loader_commit}/Vulkan-LoaderAndValidationLayers-s%{snap}.tar.gz
-# Source0-md5: 25e8092b69d15090af5cada36d4fc92d
-Source1:       https://github.com/LunarG/VulkanTools/archive/%{tools_commit}/VulkanTools-s%{snap}.tar.gz
-# Source1-md5: 89ae56a0c0270a7043548bc30c99aa36
-Source2:       https://github.com/LunarG/LunarGLASS/archive/%{lg_commit}/LunarGLASS-%{snap}.tar.gz
-# Source2-md5: b0fb3253c782e1e539a5884dde8a31f8
-Source3:       http://llvm.org/releases/%{llvm_version}/llvm-%{llvm_version}.src.tar.gz
-# Source3-md5: a20669f75967440de949ac3b1bad439c
-Patch0:                system_glslang.patch
-Patch1:                LunarGLASS-CMakeLists.patch
-Patch2:                demos_out_of_src.patch
+Source0:       https://github.com/LunarG/VulkanTools/archive/sdk-%{version}/VulkanTools-%{version}.tar.gz
+# Source0-md5: 83679b56e7782b1f61b4b86de98fb81b
+Patch0:                system_glslang_and_spirv-tools.patch
+Patch1:                demos_out_of_src.patch
+Patch2:                rpath.patch
+Patch3:                always_xcb.patch
+Patch4:                vktrace_wayland.patch
+Patch5:                x32.patch
 URL:           http://lunarg.com/vulkan-sdk/
-%{?with_icd:BuildRequires:     Mesa-libGL-devel}
 BuildRequires: bison
-%{?with_icd:BuildRequires:  clang}
 BuildRequires: cmake
 BuildRequires: GLM
-BuildRequires: glslang
-BuildRequires: glslang-devel
+BuildRequires: glslang >= 3.0.s20161029
+BuildRequires: glslang-devel >= 3.0.s20161029
 BuildRequires: graphviz
 BuildRequires: ImageMagick-devel
 BuildRequires: libpng
 BuildRequires: libxcb-devel
 BuildRequires: python3
+BuildRequires: python3-lxml
 BuildRequires: python3-modules
-BuildRequires: spirv-tools-devel
+BuildRequires: spirv-tools-devel >= v2016.6.s20161027
 BuildRequires: udev-devel
-%{?with_icd:BuildRequires:     xorg-lib-libpciaccess-devel}
+Requires:      glslang >= 3.0.s20161029
+Requires:      spirv-tools >= v2016.6.s20161027
 Requires:      %{name}-debug-layers = %{version}-%{release}
 Requires:      vulkan-devel = %{version}-%{release}
 Requires:      vulkan-loader = %{version}-%{release}
 Requires:      vulkan-sdk-tools = %{version}-%{release}
 Requires:      %{name}-validation-layers = %{version}-%{release}
+ExclusiveArch: %{ix86} %{x8664}
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
 %description
@@ -118,54 +104,27 @@ Requires: vulkan-loader = %{version}-%{release}
 %description tools
 Vulkan tools.
 
-%package icd-intel
-Summary:       Experimental Vulkan driver for Intel GPUs
-Group:         X11/Libraries
-Suggests:      vulkan(loader)
-Provides:      vulkan(icd) = 1.0.3
-
-%description icd-intel
-Experimental Vulkan driver for Intel GPUs.
-
-%package icd-nulldrv
-Summary:       Dummy Vulkan driver
-Group:         X11/Libraries
-Suggests:      vulkan(loader)
-Provides:      vulkan(icd) = 1.0.3
-
-%description icd-nulldrv
-Dummy Vulkan driver.
-
 %prep
-%setup -q -c -a1 %{?with_icd:-a2}
-
-mv Vulkan-LoaderAndValidationLayers-%{loader_commit} Vulkan-LoaderAndValidationLayers
-mv VulkanTools-%{tools_commit} VulkanTools
+%setup -qn VulkanTools-sdk-%{version}
 
 %patch0 -p1
-%patch2 -p1
-
-%if %{with icd}
-mv LunarGLASS-%{lg_commit} LunarGLASS
-cd LunarGLASS/Core/LLVM/llvm-3.4
-tar -x --strip-components=1 --skip-old-files -f %{SOURCE3}
-cp -R ../../../../VulkanTools/LunarGLASS/* .
-cd ../../../..
-
 %patch1 -p1
-%endif
-
-ln -s Vulkan-LoaderAndValidationLayers LoaderAndValidationLayers
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
 
 %build
-install -d Vulkan-LoaderAndValidationLayers/build
-cd Vulkan-LoaderAndValidationLayers/build
+install -d build
+cd build
 
 %cmake \
        -DCMAKE_INSTALL_DATADIR=share \
        -DCMAKE_INSTALL_SYSCONFDIR=etc \
-       %{?with_tests:-DBUILD_TESTS=ON} \
-       %{!?with_tests:-DBUILD_TESTS=OFF} \
+       -DBUILD_TESTS=%{?with_tests:ON}%{!?with_tests:OFF} \
+       -DBUILD_WSI_WAYLAND_SUPPORT=%{?with_wayland:ON}%{!?with_wayland:OFF} \
+       -DBUILD_WSI_XLIB_SUPPORT=%{?with_xlib:ON}%{!?with_xlib:OFF} \
+       -DBUILD_ICD=OFF \
                ../
 %{__make}
 
@@ -175,44 +134,7 @@ LC_ALL=C.utf-8 VK_LAYER_PATH=../layers LD_LIBRARY_PATH=../loader:../layers ./run
 cd ..
 %endif
 
-cd ../..
-
-%if %{with icd}
-cd LunarGLASS/Core/LLVM/llvm-3.4
-install -d build
-cd build
-../%configure \
-       --disable-bindings \
-       --disable-curses \
-       --disable-terminfo
-
-REQUIRES_RTTI=1 %{__make}
-REQUIRES_RTTI=1 %{__make} install prefix=%{_prefix}/local DESTDIR=`pwd`/install
-
-cd ../../../..
-
-install -d build
-cd build
-%cmake \
-       -DGLSLANGINCLUDES=%{_includedir}/glslang \
-       -DGLSLANGLIBS=%{_libdir} \
-       ../
-%{__make}
-%{__make} install
-
-%{?with_tests:%{__make} test}
-
-cd ../..
-%endif
-
-install -d VulkanTools/build
-cd VulkanTools/build
-%cmake \
-       -DBUILD_ICD=%{?with_icd:ON}%{!?with_icd:OFF} \
-       ../
-
-%{__make}
-cd ../..
+cd ..
 
 %install
 rm -rf $RPM_BUILD_ROOT
@@ -224,69 +146,59 @@ $RPM_BUILD_ROOT{%{_datadir},%{_sysconfdir}}/vulkan/{explicit,implicit}_layer.d \
        $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
 
 
-cd Vulkan-LoaderAndValidationLayers/build
-%{__make} install
+# hack for 'make install' tryin to install in relative paths when DESTDIR is set
+install -d "$RPM_BUILD_ROOT$PWD"
+ln -s "$PWD/build" "$RPM_BUILD_ROOT$PWD"
+
+cd build
+%{__make} install \
+       DESTDIR=$RPM_BUILD_ROOT
 
-cp -p loader/libvulkan.so.1.0.3 $RPM_BUILD_ROOT%{_libdir}
-ln -s libvulkan.so.1.0.3 $RPM_BUILD_ROOT%{_libdir}/libvulkan.so
-ln -s libvulkan.so.1.0.3 $RPM_BUILD_ROOT%{_libdir}/libvulkan.so.1
+rm "$RPM_BUILD_ROOT$PWD"
 
 cp -p demos/vulkaninfo $RPM_BUILD_ROOT%{_bindir}/vulkaninfo
-cp -p demos/tri $RPM_BUILD_ROOT%{_bindir}/vulkan-tri
 cp -p demos/cube $RPM_BUILD_ROOT%{_bindir}/vulkan-cube
+cp -p demos/smoketest $RPM_BUILD_ROOT%{_bindir}/vulkan-smoketest
 cp -p demos/{lunarg.ppm,*-vert.spv,*-frag.spv} $RPM_BUILD_ROOT%{_datadir}/%{name}-demos
 
-cp -p install_staging/*.so $RPM_BUILD_ROOT%{_libdir}/vulkan/layer
-for f in layers/*.json ; do
-sed -e's@"library_path": "./@"library_path": "%{_libdir}/vulkan/layer/@' $f > $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/$(basename $f)
-done
+mv $RPM_BUILD_ROOT/usr/etc/vulkan/explicit_layer.d/* $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d
 
 cp -p libs/vkjson/libvkjson.a $RPM_BUILD_ROOT%{_libdir}
 cp -p libs/vkjson/vkjson_{info,unittest} $RPM_BUILD_ROOT%{_bindir}
 
 cp -p ../libs/vkjson/vkjson.h $RPM_BUILD_ROOT%{_includedir}
-cp -p ../include/vulkan/* $RPM_BUILD_ROOT%{_includedir}/vulkan
 
-cp -p ../demos/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
+cp -p install_staging/*.so $RPM_BUILD_ROOT%{_libdir}
+for f in layersvt/*.json ; do
+sed -e's@"library_path": "./@"library_path": "%{_libdir}/@' $f > $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/$(basename $f)
+done
+
+cp -pr ../demos/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
 
 # restore original demo sources in %{_examplesdir}
-%patch2 -R -p3 -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
+%patch1 -R -p2 -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
 rm -f $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}/*.orig 2>/dev/null || :
 
-cd ../..
-
-cd VulkanTools/build
-%{__make} install
-
-cp -p install_staging/*.so $RPM_BUILD_ROOT%{_libdir}/vulkan/layer
-for f in layers/*.json ; do
-sed -e's@"library_path": "./@"library_path": "%{_libdir}/vulkan/layer/@' $f > $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/$(basename $f)
-done
-
 %ifarch %x8664
-cp -p vktrace/libVkLayer_vktrace_layer.so $RPM_BUILD_ROOT%{_libdir}/vulkan/layer
+cp -p vktrace/libVkLayer_vktrace_layer.so $RPM_BUILD_ROOT%{_libdir}
 cp -p vktrace/vkreplay $RPM_BUILD_ROOT%{_bindir}
 cp -p vktrace/vktrace $RPM_BUILD_ROOT%{_bindir}
+sed -e's@"library_path": "../vktrace/@"library_path": "%{_libdir}/@' \
+       layersvt/VkLayer_vktrace_layer.json > $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/VkLayer_vktrace_layer.json
 %else
-cp -p vktrace/libVkLayer_vktrace_layer32.so $RPM_BUILD_ROOT%{_libdir}/vulkan/layer
+cp -p vktrace/libVkLayer_vktrace_layer32.so $RPM_BUILD_ROOT%{_libdir}
 cp -p vktrace/vkreplay32 $RPM_BUILD_ROOT%{_bindir}
 cp -p vktrace/vktrace32 $RPM_BUILD_ROOT%{_bindir}
 rm $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/VkLayer_vktrace_layer.json
-sed -e's@"library_path": "./@"library_path": "%{_libdir}/vulkan/layer/@' \
+sed -e's@"library_path": "../vktrace/@"library_path": "%{_libdir}/@' \
     -e's@libVkLayer_vktrace_layer.so@libVkLayer_vktrace_layer32.so@' \
-       layers/VkLayer_vktrace_layer.json > $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/VkLayer_vktrace_layer32.json
+       layersvt/VkLayer_vktrace_layer.json > $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/VkLayer_vktrace_layer32.json
 %endif
 
-%if %{with icd}
-cp -p icd/*/libVK_*.so $RPM_BUILD_ROOT%{_libdir}
-for f in icd/*/*.json ; do
-sed -e's@"library_path": "./@"library_path": "@' $f > $RPM_BUILD_ROOT%{_datadir}/vulkan/icd.d/%{name}-$(basename $f)
-done
-%endif
-cd ../..
+cd ..
 
-cp -p VulkanTools/vktrace/README.md vktrace-README.md
-cp -p VulkanTools/vktrace/TODO.md vktrace-TODO.md
+cp -p vktrace/README.md vktrace-README.md
+cp -p vktrace/TODO.md vktrace-TODO.md
 
 %clean
 rm -rf $RPM_BUILD_ROOT
@@ -299,8 +211,8 @@ rm -rf $RPM_BUILD_ROOT
 
 %files -n vulkan-loader
 %defattr(644,root,root,755)
-%doc Vulkan-LoaderAndValidationLayers/LICENSE.txt
-%doc Vulkan-LoaderAndValidationLayers/loader/{README.md,LoaderAndLayerInterface.md}
+%doc COPYRIGHT.txt LICENSE.txt
+%doc loader/{README.md,LoaderAndLayerInterface.md}
 %dir %{_sysconfdir}/vulkan
 %dir %{_sysconfdir}/vulkan/icd.d
 %dir %{_sysconfdir}/vulkan/explicit_layer.d
@@ -316,14 +228,14 @@ rm -rf $RPM_BUILD_ROOT
 
 %files demos
 %defattr(644,root,root,755)
-%doc Vulkan-LoaderAndValidationLayers/LICENSE.txt
-%attr(755,root,root) %{_bindir}/vulkan-tri
+%doc COPYRIGHT.txt LICENSE.txt
 %attr(755,root,root) %{_bindir}/vulkan-cube
+%attr(755,root,root) %{_bindir}/vulkan-smoketest
 %{_datadir}/%{name}-demos
 
 %files tools
 %defattr(644,root,root,755)
-%doc VulkanTools/LICENSE.txt
+%doc COPYRIGHT.txt LICENSE.txt
 %doc vktrace-README.md vktrace-TODO.md
 %attr(755,root,root) %{_bindir}/vkjson_info
 %attr(755,root,root) %{_bindir}/vkjson_unittest
@@ -331,48 +243,45 @@ rm -rf $RPM_BUILD_ROOT
 %ifarch %x8664
 %attr(755,root,root) %{_bindir}/vkreplay
 %attr(755,root,root) %{_bindir}/vktrace
-%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_vktrace_layer.so
+%attr(755,root,root) %{_libdir}/libVkLayer_vktrace_layer.so
 %{_datadir}/vulkan/explicit_layer.d/VkLayer_vktrace_layer.json
 %else
 %attr(755,root,root) %{_bindir}/vkreplay32
 %attr(755,root,root) %{_bindir}/vktrace32
-%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_vktrace_layer32.so
+%attr(755,root,root) %{_libdir}/libVkLayer_vktrace_layer32.so
 %{_datadir}/vulkan/explicit_layer.d/VkLayer_vktrace_layer32.json
 %endif
 
 %files validation-layers
 %defattr(644,root,root,755)
-%doc Vulkan-LoaderAndValidationLayers/LICENSE.txt
-%doc Vulkan-LoaderAndValidationLayers/layers/{README.md,vk_layer_settings.txt}
-%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_device_limits.so
-%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_draw_state.so
-%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_image.so
-%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_mem_tracker.so
-%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_object_tracker.so
-%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_param_checker.so
-%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_swapchain.so
-%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_threading.so
-%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_unique_objects.so
-%attr(755,root,root) %{_libdir}/vulkan/layer/liblayer_utils.so
-%{_datadir}/vulkan/explicit_layer.d/VkLayer_device_limits.json
-%{_datadir}/vulkan/explicit_layer.d/VkLayer_draw_state.json
+%doc COPYRIGHT.txt LICENSE.txt
+%doc layers/{README.md,vk_layer_settings.txt}
+%attr(755,root,root) %{_libdir}/libVkLayer_core_validation.so
+%attr(755,root,root) %{_libdir}/libVkLayer_image.so
+%attr(755,root,root) %{_libdir}/libVkLayer_object_tracker.so
+%attr(755,root,root) %{_libdir}/libVkLayer_parameter_validation.so
+%attr(755,root,root) %{_libdir}/libVkLayer_swapchain.so
+%attr(755,root,root) %{_libdir}/libVkLayer_threading.so
+%attr(755,root,root) %{_libdir}/libVkLayer_unique_objects.so
+%attr(755,root,root) %{_libdir}/libVkLayer_utils.so
+%{_datadir}/vulkan/explicit_layer.d/VkLayer_core_validation.json
 %{_datadir}/vulkan/explicit_layer.d/VkLayer_image.json
-%{_datadir}/vulkan/explicit_layer.d/VkLayer_mem_tracker.json
 %{_datadir}/vulkan/explicit_layer.d/VkLayer_object_tracker.json
-%{_datadir}/vulkan/explicit_layer.d/VkLayer_param_checker.json
+%{_datadir}/vulkan/explicit_layer.d/VkLayer_parameter_validation.json
 %{_datadir}/vulkan/explicit_layer.d/VkLayer_swapchain.json
 %{_datadir}/vulkan/explicit_layer.d/VkLayer_threading.json
 %{_datadir}/vulkan/explicit_layer.d/VkLayer_unique_objects.json
 
 %files debug-layers
 %defattr(644,root,root,755)
-%doc VulkanTools/LICENSE.txt
-%doc VulkanTools/layers/{README.md,vk_layer_settings.txt}
-%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_api_dump.so
-%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_basic.so
-%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_generic.so
-%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_multi.so
-%attr(755,root,root) %{_libdir}/vulkan/layer/libVkLayer_screenshot.so
+%doc COPYRIGHT.txt LICENSE.txt
+%doc layersvt/{README.md,vk_layer_settings.txt}
+%attr(755,root,root) %{_libdir}/libVkLayer_api_dump.so
+%attr(755,root,root) %{_libdir}/libVkLayer_basic.so
+%attr(755,root,root) %{_libdir}/libVkLayer_generic.so
+%attr(755,root,root) %{_libdir}/libVkLayer_multi.so
+%attr(755,root,root) %{_libdir}/libVkLayer_screenshot.so
+%attr(755,root,root) %{_libdir}/libVkLayer_utilsvt.so
 %{_datadir}/vulkan/explicit_layer.d/VkLayer_api_dump.json
 %{_datadir}/vulkan/explicit_layer.d/VkLayer_basic.json
 %{_datadir}/vulkan/explicit_layer.d/VkLayer_generic.json
@@ -381,23 +290,9 @@ rm -rf $RPM_BUILD_ROOT
 
 %files -n vulkan-devel
 %defattr(644,root,root,755)
-%doc Vulkan-LoaderAndValidationLayers/{LICENSE.txt,README.md}
+%doc COPYRIGHT.txt LICENSE.txt README.md
 %{_libdir}/libvulkan.so
 %{_libdir}/libvkjson.a
 %{_includedir}/vulkan
 %{_includedir}/vkjson.h
 %{_examplesdir}/%{name}-%{version}
-
-%if %{with icd}
-%files icd-intel
-%defattr(644,root,root,755)
-%doc VulkanTools/LICENSE.txt
-%attr(755,root,root) %{_libdir}/libVK_i965.so
-%{_datadir}/vulkan/icd.d/%{name}-intel_icd.json
-
-%files icd-nulldrv
-%defattr(644,root,root,755)
-%doc VulkanTools/LICENSE.txt
-%attr(755,root,root) %{_libdir}/libVK_nulldrv.so
-%{_datadir}/vulkan/icd.d/%{name}-nulldrv_icd.json
-%endif
This page took 0.132872 seconds and 4 git commands to generate.