[packages/vulkan-sdk] Make packaged demos run out of source tree

jajcus jajcus at pld-linux.org
Thu Feb 25 11:29:28 CET 2016


commit b213a9879e2568fca56ab11de15dd318eec496ba
Author: Jacek Konieczny <j.konieczny at eggsoft.pl>
Date:   Thu Feb 25 08:20:40 2016 +0100

    Make packaged demos run out of source tree

 demos_out_of_src.patch | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++
 vulkan-sdk.spec        | 13 +++++++++-
 2 files changed, 81 insertions(+), 1 deletion(-)
---
diff --git a/vulkan-sdk.spec b/vulkan-sdk.spec
index 2a9249a..3106927 100644
--- a/vulkan-sdk.spec
+++ b/vulkan-sdk.spec
@@ -31,6 +31,7 @@ Source3:	http://llvm.org/releases/%{llvm_version}/llvm-%{llvm_version}.src.tar.g
 # Source3-md5:	a20669f75967440de949ac3b1bad439c
 Patch0:		system_glslang.patch
 Patch1:		LunarGLASS-CMakeLists.patch
+Patch2:		demos_out_of_src.patch
 URL:		http://lunarg.com/vulkan-sdk/
 %{?with_icd:BuildRequires:	Mesa-libGL-devel}
 BuildRequires:	bison
@@ -138,6 +139,7 @@ mv Vulkan-LoaderAndValidationLayers-%{loader_commit} Vulkan-LoaderAndValidationL
 mv VulkanTools-%{tools_commit} VulkanTools
 
 %patch0 -p1
+%patch2 -p1
 
 %if %{with icd}
 mv LunarGLASS-%{lg_commit} LunarGLASS
@@ -152,8 +154,9 @@ cd ../../../..
 ln -s Vulkan-LoaderAndValidationLayers LoaderAndValidationLayers
 
 %build
-install -d {Vulkan-LoaderAndValidationLayers,VulkanTools}/build
+install -d Vulkan-LoaderAndValidationLayers/build
 cd Vulkan-LoaderAndValidationLayers/build
+
 %cmake \
 	-DCMAKE_INSTALL_DATADIR=share \
 	-DCMAKE_INSTALL_SYSCONFDIR=etc \
@@ -198,6 +201,7 @@ cd build
 cd ../..
 %endif
 
+install -d VulkanTools/build
 cd VulkanTools/build
 %cmake \
 	-DBUILD_ICD=%{?with_icd:ON}%{!?with_icd:OFF} \
@@ -212,6 +216,7 @@ install -d $RPM_BUILD_ROOT{%{_datadir},%{_sysconfdir}}/vulkan/icd.d \
 $RPM_BUILD_ROOT{%{_datadir},%{_sysconfdir}}/vulkan/{explicit,implicit}_layer.d \
 	$RPM_BUILD_ROOT{%{_bindir},%{_libdir}/vulkan/layer} \
 	$RPM_BUILD_ROOT%{_includedir}/vulkan \
+	$RPM_BUILD_ROOT%{_datadir}/%{name}-demos \
 	$RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
 
 
@@ -225,6 +230,7 @@ ln -s libvulkan.so.1.0.3 $RPM_BUILD_ROOT%{_libdir}/libvulkan.so.1
 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/{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
@@ -239,6 +245,10 @@ cp -p ../include/vulkan/* $RPM_BUILD_ROOT%{_includedir}/vulkan
 
 cp -p ../demos/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
 
+# restore original demo sources in %{_examplesdir}
+%patch2 -R -p3 -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
+rm -f $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}/*.orig 2>/dev/null || :
+
 cd ../..
 
 cd VulkanTools/build
@@ -305,6 +315,7 @@ rm -rf $RPM_BUILD_ROOT
 %doc Vulkan-LoaderAndValidationLayers/LICENSE.txt
 %attr(755,root,root) %{_bindir}/vulkan-tri
 %attr(755,root,root) %{_bindir}/vulkan-cube
+%{_datadir}/%{name}-demos
 
 %files tools
 %defattr(644,root,root,755)
diff --git a/demos_out_of_src.patch b/demos_out_of_src.patch
new file mode 100644
index 0000000..45be00b
--- /dev/null
+++ b/demos_out_of_src.patch
@@ -0,0 +1,69 @@
+diff -dur vulkan-sdk-1.0.3.0.orig/Vulkan-LoaderAndValidationLayers/demos/cube.c vulkan-sdk-1.0.3.0/Vulkan-LoaderAndValidationLayers/demos/cube.c
+--- vulkan-sdk-1.0.3.0.orig/Vulkan-LoaderAndValidationLayers/demos/cube.c	2016-02-22 22:02:54.000000000 +0100
++++ vulkan-sdk-1.0.3.0/Vulkan-LoaderAndValidationLayers/demos/cube.c	2016-02-25 08:15:38.000000000 +0100
+@@ -28,6 +28,8 @@
+  * Author: Jon Ashburn <jon at lunarg.com>
+  */
+ 
++#define DEMO_DATA_DIR "/usr/share/vulkan-sdk-demos"
++
+ #define _GNU_SOURCE
+ #include <stdio.h>
+ #include <stdlib.h>
+@@ -115,7 +117,7 @@
+     int32_t tex_width, tex_height;
+ };
+ 
+-static char *tex_files[] = {"lunarg.ppm"};
++static char *tex_files[] = {DEMO_DATA_DIR "/lunarg.ppm"};
+ 
+ struct vkcube_vs_uniform {
+     // Must start with MVP
+@@ -1478,7 +1480,7 @@
+     void *vertShaderCode;
+     size_t size;
+ 
+-    vertShaderCode = demo_read_spv("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);
+@@ -1492,7 +1494,7 @@
+     void *fragShaderCode;
+     size_t size;
+ 
+-    fragShaderCode = demo_read_spv("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 -dur vulkan-sdk-1.0.3.0.orig/Vulkan-LoaderAndValidationLayers/demos/tri.c vulkan-sdk-1.0.3.0/Vulkan-LoaderAndValidationLayers/demos/tri.c
+--- vulkan-sdk-1.0.3.0.orig/Vulkan-LoaderAndValidationLayers/demos/tri.c	2016-02-22 22:02:54.000000000 +0100
++++ vulkan-sdk-1.0.3.0/Vulkan-LoaderAndValidationLayers/demos/tri.c	2016-02-25 08:14:22.000000000 +0100
+@@ -35,6 +35,8 @@
+  * should.  It also does no error checking.
+  */
+ 
++#define DEMO_DATA_DIR "/usr/share/vulkan-sdk-demos"
++
+ #ifndef _MSC_VER
+ #define _ISOC11_SOURCE /* for aligned_alloc() */
+ #endif
+@@ -1229,7 +1231,7 @@
+     void *vertShaderCode;
+     size_t size;
+ 
+-    vertShaderCode = demo_read_spv("tri-vert.spv", &size);
++    vertShaderCode = demo_read_spv(DEMO_DATA_DIR "/tri-vert.spv", &size);
+ 
+     demo->vert_shader_module =
+         demo_prepare_shader_module(demo, vertShaderCode, size);
+@@ -1243,7 +1245,7 @@
+     void *fragShaderCode;
+     size_t size;
+ 
+-    fragShaderCode = demo_read_spv("tri-frag.spv", &size);
++    fragShaderCode = demo_read_spv(DEMO_DATA_DIR "/tri-frag.spv", &size);
+ 
+     demo->frag_shader_module =
+         demo_prepare_shader_module(demo, fragShaderCode, size);
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/vulkan-sdk.git/commitdiff/b213a9879e2568fca56ab11de15dd318eec496ba



More information about the pld-cvs-commit mailing list