[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