]> git.pld-linux.org Git - packages/vulkan-sdk.git/commitdiff
- added install patch, cleaned up install process
authorJakub Bogusz <qboosh@pld-linux.org>
Mon, 29 May 2017 20:22:41 +0000 (22:22 +0200)
committerJakub Bogusz <qboosh@pld-linux.org>
Mon, 29 May 2017 20:22:41 +0000 (22:22 +0200)
- adjusted demos_out_of_src patch so that global datadir is optional (no need to unpatch demos)
- pl

demos_out_of_src.patch
vulkan-sdk-install.patch [new file with mode: 0644]
vulkan-sdk.spec

index dc3fc5bbe8b8dcecb59be690dc7ccfa602941746..d03574e85c77b607e5fe663ebfb597afa568c85a 100644 (file)
@@ -1,11 +1,15 @@
 diff -dur -x '*.orig' VulkanTools-sdk-1.0.32.0.orig/demos/cube.c VulkanTools-sdk-1.0.32.0/demos/cube.c
 --- VulkanTools-sdk-1.0.32.0.orig/demos/cube.c 2016-11-10 18:52:27.000000000 +0100
 +++ VulkanTools-sdk-1.0.32.0/demos/cube.c      2016-11-23 14:16:34.000000000 +0100
-@@ -23,6 +23,8 @@
+@@ -23,6 +23,12 @@
  * Author: Tony Barbour <tony@LunarG.com>
  */
  
-+#define DEMO_DATA_DIR "/usr/share/vulkan-sdk-demos"
++#ifdef DATADIR
++#define DEMO_DATA_DIR DATADIR "/vulkan-sdk-demos/"
++#else
++#define DEMO_DATA_DIR
++#endif
 +
  #define _GNU_SOURCE
  #include <stdio.h>
@@ -15,7 +19,7 @@ diff -dur -x '*.orig' VulkanTools-sdk-1.0.32.0.orig/demos/cube.c VulkanTools-sdk
  };
  
 -static char *tex_files[] = {"lunarg.ppm"};
-+static char *tex_files[] = {DEMO_DATA_DIR "/lunarg.ppm"};
++static char *tex_files[] = {DEMO_DATA_DIR "lunarg.ppm"};
  
  static int validation_error = 0;
  
@@ -24,7 +28,7 @@ diff -dur -x '*.orig' VulkanTools-sdk-1.0.32.0.orig/demos/cube.c VulkanTools-sdk
      size_t size;
  
 -    vertShaderCode = demo_read_spv("cube-vert.spv", &size);
-+    vertShaderCode = demo_read_spv(DEMO_DATA_DIR "/cube-vert.spv", &size);
++    vertShaderCode = demo_read_spv(DEMO_DATA_DIR "cube-vert.spv", &size);
  
      demo->vert_shader_module =
          demo_prepare_shader_module(demo, vertShaderCode, size);
@@ -33,7 +37,7 @@ diff -dur -x '*.orig' VulkanTools-sdk-1.0.32.0.orig/demos/cube.c VulkanTools-sdk
      size_t size;
  
 -    fragShaderCode = demo_read_spv("cube-frag.spv", &size);
-+    fragShaderCode = demo_read_spv(DEMO_DATA_DIR "/cube-frag.spv", &size);
++    fragShaderCode = demo_read_spv(DEMO_DATA_DIR "cube-frag.spv", &size);
  
      demo->frag_shader_module =
          demo_prepare_shader_module(demo, fragShaderCode, size);
diff --git a/vulkan-sdk-install.patch b/vulkan-sdk-install.patch
new file mode 100644 (file)
index 0000000..ef47115
--- /dev/null
@@ -0,0 +1,20 @@
+--- VulkanTools-sdk-1.0.39.1/layersvt/CMakeLists.txt.orig      2017-05-27 08:25:39.348712996 +0200
++++ VulkanTools-sdk-1.0.39.1/layersvt/CMakeLists.txt   2017-05-27 08:39:25.502036896 +0200
+@@ -105,7 +105,7 @@
+     target_link_Libraries(VkLayer_${target} VkLayer_utilsvt)
+     add_dependencies(VkLayer_${target} generate_vt_helpers generate_api_cpp generate_api_h)
+     set_target_properties(VkLayer_${target} PROPERTIES LINK_FLAGS "-Wl,-Bsymbolic")
+-    install(TARGETS VkLayer_${target} DESTINATION ${PROJECT_BINARY_DIR}/install_staging)
++    install(TARGETS VkLayer_${target} DESTINATION ${CMAKE_INSTALL_LIBDIR})
+     endmacro()
+ endif()
+@@ -166,7 +166,7 @@
+     add_library(VkLayer_utilsvt STATIC ../layers/vk_layer_config.cpp ../layers/vk_layer_extension_utils.cpp ../layers/vk_layer_utils.cpp)
+ else()
+     add_library(VkLayer_utilsvt SHARED ../layers/vk_layer_config.cpp ../layers/vk_layer_extension_utils.cpp ../layers/vk_layer_utils.cpp)
+-    install(TARGETS VkLayer_utilsvt DESTINATION ${PROJECT_BINARY_DIR}/install_staging)
++    install(TARGETS VkLayer_utilsvt DESTINATION ${CMAKE_INSTALL_LIBDIR})
+ endif()
+ # VulkanTools layers
index 888350acfc56ae0b79006aea2aeb8097aba32342..cf38810c55a4f270a6f7ec26b041371e02556fa7 100644 (file)
@@ -4,18 +4,19 @@
 
 
 # Conditional build:
-%bcond_with    tests           # build with tests (require a working Vulkan
-                               # driver (ICD))
-%bcond_without wayland         # enable Wayland support in loader
-%bcond_without xlib            # enable XLib support in loader
+%bcond_with    tests   # run tests (require a working Vulkan driver (ICD))
+%bcond_with    mir     # Mir support in loader
+%bcond_without wayland # Wayland support in loader
+%bcond_without x11     # XLib support in loader
 
 %define        api_version 1.0.39
 
 Summary:       LunarG Vulkan SDK
+Summary(pl.UTF-8):     Pakiet programistyczny (SDK) LunarG Vulkan
 Name:          vulkan-sdk
 Version:       1.0.39.1
 Release:       1
-License:       MIT-like
+License:       Apache v2.0, parts MIT-like
 Group:         Development
 Source0:       https://github.com/LunarG/VulkanTools/archive/sdk-%{version}/VulkanTools-%{version}.tar.gz
 # Source0-md5: 62446dfd61208771d39109218cb29152
@@ -25,25 +26,36 @@ Patch2:             rpath.patch
 Patch3:                always_xcb.patch
 Patch4:                x32.patch
 Patch5:                system_jsoncpp.patch
+Patch6:                %{name}-install.patch
 URL:           http://lunarg.com/vulkan-sdk/
-BuildRequires: bison
-BuildRequires: cmake
 BuildRequires: GLM
+BuildRequires: Qt5Core-devel >= 5
+BuildRequires: Qt5Gui-devel >= 5
+BuildRequires: Qt5Svg-devel >= 5
+BuildRequires: Qt5Widgets-devel >= 5
+BuildRequires: bison
+BuildRequires: cmake >= 3.0
+%if %{with tests} && %(locale -a | grep -q '^C\.UTF-8$'; echo $?)
+BuildRequires: glibc-localedb-all
+%endif
 BuildRequires: glslang >= 3.0.s20161222
 BuildRequires: glslang-devel >= 3.0.s20161222
 BuildRequires: graphviz
 BuildRequires: ImageMagick-devel
 BuildRequires: jsoncpp-devel
 BuildRequires: libpng
+BuildRequires: libstdc++-devel >= 6:4.7
 BuildRequires: libxcb-devel
-BuildRequires: python3
+%{?with_mir:BuildRequires:     mir-devel}
+BuildRequires: pkgconfig
+BuildRequires: python3 >= 3
 BuildRequires: python3-lxml
-BuildRequires: python3-modules
-BuildRequires: Qt5Core-devel
-BuildRequires: Qt5Svg-devel
-BuildRequires: Qt5Widgets-devel
+BuildRequires: python3-modules >= 3
+BuildRequires: qt5-build >= 5
 BuildRequires: spirv-tools-devel >= v2016.7
 BuildRequires: udev-devel
+%{?with_wayland:BuildRequires: wayland-devel}
+%{?with_x11:BuildRequires:     xorg-lib-libX11-devel}
 Requires:      glslang >= 3.0.s20161222
 Requires:      spirv-tools >= v2016.7
 Requires:      %{name}-debug-layers = %{version}-%{release}
@@ -53,34 +65,54 @@ Requires:   vulkan-sdk-tools = %{version}-%{release}
 Requires:      %{name}-validation-layers = %{version}-%{release}
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
+%ifarch %{x8664}
+%define        binsuf  %{nil}
+%else
+%define        binsuf  32
+%endif
+
 %description
-Vulkan API Software Development Kit
+Vulkan API Software Development Kit.
+
+%description -l pl.UTF-8
+Pakiet programistyczny (SDK) Vulkan API
 
 %package -n vulkan-loader
 Summary:       Vulkan API loader
-License:       MIT-like
-Group:         Library
+Summary(pl.UTF-8):     Biblioteka wczytująca sterowniki Vulkan
+Group:         Libraries
 Provides:      vulkan(loader) = %{api_version}
 
 %description -n vulkan-loader
 Common loader for Vulkan API drivers.
 
+%description -n vulkan-loader -l pl.UTF-8
+Wspólna biblioteka wczytująca sterowniki Vulkan.
+
 %package validation-layers
 Summary:       Validation layers for Vulkan
+Summary(pl.UTF-8):     Warstwy sprawdzania poprawności dla Vulkana
 Group:         Development/Libraries
 Requires:      vulkan-loader = %{version}-%{release}
 
 %description validation-layers
 Validation layers for Vulkan.
 
+%description validation-layers -l pl.UTF-8
+Warstwy sprawdzania poprawności dla Vulkana.
+
 %package debug-layers
 Summary:       Debug layers for Vulkan
+Summary(pl.UTF-8):     Warstwy diagnostyczne dla Vulkana
 Group:         Development/Libraries
 Requires:      vulkan-loader = %{version}-%{release}
 
 %description debug-layers
 Debug layers for Vulkan.
 
+%description debug-layers -l pl.UTF-8
+Warstwy diagnostyczne dla Vulkana.
+
 %package -n vulkan-devel
 Summary:       Header files for the Vulkan API
 Summary(pl.UTF-8):     Pliki nagłówkowe API Vulkan
@@ -95,6 +127,7 @@ Pliki nagłówkowe API Vulkan.
 
 %package demos
 Summary:       Vulkan demos
+Summary(pl.UTF-8):     Programy demonstracyjne Vulkana
 Group:         Development/Libraries
 Requires:      vulkan(icd)
 Requires:      vulkan-loader = %{version}-%{release}
@@ -102,53 +135,62 @@ Requires: vulkan-loader = %{version}-%{release}
 %description demos
 Vulkan demos.
 
+%description demos -l pl.UTF-8
+Programy demonstracyjne Vulkana.
+
 %package tools
 Summary:       Vulkan tools
-Group:         Development
+Summary(pl.UTF-8):     Narzędzia Vulkana
+Group:         Development/Tools
 Suggests:      vulkan(icd)
 Requires:      vulkan-loader = %{version}-%{release}
 
 %description tools
 Vulkan tools.
 
+%description tools -l pl.UTF-8
+Narzędzia Vulkana.
+
 %package tools-vktraceviewer
 Summary:       Vulkan trace viewer
-Group:         Development
+Summary(pl.UTF-8):     Przeglądarka śladów Vulkana
+Group:         Development/Tools
 Requires:      %{name}-tools = %{version}-%{release}
 
 %description tools-vktraceviewer
 Vulkan trace viewer.
 
+%description tools-vktraceviewer -l pl.UTF-8
+Przeglądarka śladów Vulkana.
+
 %prep
 %setup -qn VulkanTools-sdk-%{version}
-
 %patch0 -p1
 %patch1 -p1
 %patch2 -p1
 %patch3 -p1
 %patch4 -p1
 %patch5 -p1
+%patch6 -p1
 
 %build
 install -d build
 cd build
 
-%cmake \
+%cmake .. \
        -DJSONCPP_INCLUDE_DIR=/usr/include/jsoncpp \
        -DJSONCPP_SOURCE_DIR=/usr/include/jsoncpp \
-       -DCMAKE_INSTALL_DATADIR=share \
-       -DCMAKE_INSTALL_SYSCONFDIR=etc \
        -DBUILD_TESTS=%{?with_tests:ON}%{!?with_tests:OFF} \
+       -DBUILD_WSI_MIR_SUPPORT=%{?with_mir:ON}%{!?with_mir:OFF} \
        -DBUILD_WSI_WAYLAND_SUPPORT=%{?with_wayland:ON}%{!?with_wayland:OFF} \
-       -DBUILD_WSI_XLIB_SUPPORT=%{?with_xlib:ON}%{!?with_xlib:OFF} \
-       -DBUILD_WSI_MIR_SUPPORT=OFF \
-       -DBUILD_ICD=OFF \
-               ../
+       -DBUILD_WSI_XLIB_SUPPORT=%{?with_x11:ON}%{!?with_x11:OFF} \
+       -DBUILD_ICD=OFF
+
 %{__make}
 
 %if %{with tests}
 cd tests
-LC_ALL=C.utf-8 VK_LAYER_PATH=../layers LD_LIBRARY_PATH=../loader:../layers ./run_all_tests.sh
+LC_ALL=C.UTF-8 VK_LAYER_PATH=../layers LD_LIBRARY_PATH=../loader:../layers ./run_all_tests.sh
 cd ..
 %endif
 
@@ -157,70 +199,43 @@ cd ..
 %install
 rm -rf $RPM_BUILD_ROOT
 install -d $RPM_BUILD_ROOT{%{_datadir},%{_sysconfdir}}/vulkan/icd.d \
-$RPM_BUILD_ROOT{%{_datadir},%{_sysconfdir}}/vulkan/{explicit,implicit}_layer.d \
+       $RPM_BUILD_ROOT{%{_datadir},%{_sysconfdir}}/vulkan/{explicit,implicit}_layer.d \
        $RPM_BUILD_ROOT%{_bindir} \
        $RPM_BUILD_ROOT%{_includedir}/vulkan \
        $RPM_BUILD_ROOT%{_datadir}/%{name}-demos \
        $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
 
-
-# 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 \
+%{__make} -C build install \
        DESTDIR=$RPM_BUILD_ROOT
 
-rm "$RPM_BUILD_ROOT$PWD"
+install build/demos/cube $RPM_BUILD_ROOT%{_bindir}/vulkan-cube
+install build/demos/smoketest $RPM_BUILD_ROOT%{_bindir}/vulkan-smoketest
+cp -p build/demos/{lunarg.ppm,*-vert.spv,*-frag.spv} $RPM_BUILD_ROOT%{_datadir}/%{name}-demos
 
-cp -p demos/vulkaninfo $RPM_BUILD_ROOT%{_bindir}/vulkaninfo
-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
+%{__mv} $RPM_BUILD_ROOT%{_sysconfdir}/vulkan/explicit_layer.d/* $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d
 
-mv $RPM_BUILD_ROOT/usr/etc/vulkan/explicit_layer.d/* $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d
+install build/libs/vkjson/vkjson_{info,unittest} $RPM_BUILD_ROOT%{_bindir}
+cp -p build/libs/vkjson/libvkjson.a $RPM_BUILD_ROOT%{_libdir}
+cp -p libs/vkjson/vkjson.h $RPM_BUILD_ROOT%{_includedir}
 
-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 install_staging/*.so $RPM_BUILD_ROOT%{_libdir}
-for f in layersvt/*.json ; do
-sed -e's@"library_path": "./@"library_path": "@' $f > $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/$(basename $f)
+for f in build/layersvt/*.json ; do
+       sed -e's@"library_path": "./@"library_path": "@' $f > $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/$(basename $f)
 done
 
-cp -pr ../demos/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
+cp -pr demos/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
 
-# restore original demo sources in %{_examplesdir}
-%patch1 -R -p2 -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
-rm -f $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}/*.orig 2>/dev/null || :
-
-%ifarch %x8664
-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": "@' \
-       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}
-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": "../vktrace/@"library_path": "@' \
-    -e's@libVkLayer_vktrace_layer.so@libVkLayer_vktrace_layer32.so@' \
-       layersvt/VkLayer_vktrace_layer.json > $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/VkLayer_vktrace_layer32.json
-%endif
-
-install via/via $RPM_BUILD_ROOT%{_bindir}
-%ifarch %x8664
-install vktrace/vktraceviewer $RPM_BUILD_ROOT%{_bindir}
-%else
-install vktrace/vktraceviewer32 $RPM_BUILD_ROOT%{_bindir}
+install build/vktrace/libVkLayer_vktrace_layer%{binsuf}.so $RPM_BUILD_ROOT%{_libdir}
+install build/vktrace/vkreplay%{binsuf} $RPM_BUILD_ROOT%{_bindir}
+install build/vktrace/vktrace%{binsuf} $RPM_BUILD_ROOT%{_bindir}
+install build/vktrace/vktraceviewer%{binsuf} $RPM_BUILD_ROOT%{_bindir}
+%if "%{binsuf}" != ""
+%{__rm} $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/VkLayer_vktrace_layer.json
 %endif
+sed -e's@"library_path": "../vktrace/@"library_path": "@' \
+    -e's@libVkLayer_vktrace_layer.so@libVkLayer_vktrace_layer%{binsuf}.so@' \
+       build/layersvt/VkLayer_vktrace_layer.json > $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/VkLayer_vktrace_layer%{binsuf}.json
 
-cd ..
+install build/via/via $RPM_BUILD_ROOT%{_bindir}
 
 cp -p vktrace/README.md vktrace-README.md
 cp -p vktrace/TODO.md vktrace-TODO.md
@@ -246,8 +261,8 @@ rm -rf $RPM_BUILD_ROOT
 %dir %{_datadir}/vulkan/icd.d
 %dir %{_datadir}/vulkan/explicit_layer.d
 %dir %{_datadir}/vulkan/implicit_layer.d
-%{_libdir}/libvulkan.so.1.*.*
-%ghost %{_libdir}/libvulkan.so.1
+%attr(755,root,root) %{_libdir}/libvulkan.so.1.*.*
+%attr(755,root,root) %ghost %{_libdir}/libvulkan.so.1
 
 %files demos
 %defattr(644,root,root,755)
@@ -264,7 +279,7 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %{_bindir}/vkjson_info
 %attr(755,root,root) %{_bindir}/vkjson_unittest
 %attr(755,root,root) %{_bindir}/vulkaninfo
-%ifarch %x8664
+%ifarch %{x8664}
 %attr(755,root,root) %{_bindir}/vkreplay
 %attr(755,root,root) %{_bindir}/vktrace
 %attr(755,root,root) %{_libdir}/libVkLayer_vktrace_layer.so
@@ -278,7 +293,7 @@ rm -rf $RPM_BUILD_ROOT
 
 %files tools-vktraceviewer
 %defattr(644,root,root,755)
-%ifarch %x8664
+%ifarch %{x8664}
 %attr(755,root,root) %{_bindir}/vktraceviewer
 %else
 %attr(755,root,root) %{_bindir}/vktraceviewer32
@@ -319,7 +334,7 @@ rm -rf $RPM_BUILD_ROOT
 %files -n vulkan-devel
 %defattr(644,root,root,755)
 %doc COPYRIGHT.txt LICENSE.txt README.md
-%{_libdir}/libvulkan.so
+%attr(755,root,root) %{_libdir}/libvulkan.so
 %{_libdir}/libvkjson.a
 %{_includedir}/vulkan
 %{_includedir}/vkjson.h
This page took 0.106161 seconds and 4 git commands to generate.