[packages/vulkan-loader] nearly done…

jajcus jajcus at pld-linux.org
Fri Feb 19 22:39:45 CET 2016


commit 862291f5ba6a9a6407c22edcf69f091607bb846a
Author: Jacek Konieczny <jajcus at jajcus.net>
Date:   Fri Feb 19 22:39:15 2016 +0100

    nearly done…

 system_glslang.patch | 119 ++++++++++++++++++++++++++++++++++++++++++++++++++
 vulkan-loader.spec   | 120 ++++++++++++++++++++++++++++++++++++++++++++++-----
 2 files changed, 229 insertions(+), 10 deletions(-)
---
diff --git a/vulkan-loader.spec b/vulkan-loader.spec
index 23859ff..422204b 100644
--- a/vulkan-loader.spec
+++ b/vulkan-loader.spec
@@ -1,13 +1,19 @@
+#
+# Conditional build:
+%bcond_with	tests		# build with tests (doesn't work)
+#
+%define	tag	windows-rt-%{version}
 Summary:	Vulkan API loader
 Name:		vulkan-loader
-Version:	1.0.2.0
+Version:	1.0.3.0
 Release:	0.1
 License:	MIT-like
 Group:		Applications
-Source0:	https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/archive/sdk-%{version}/%{name}-%{version}.tar.gz
-# Source0-md5:	84ac1a616d5ba1290d7449118de86830
+Source0:	https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/archive/%{tag}/%{name}-%{version}.tar.gz
+# Source0-md5:	0691d2d79cf62902df2973bbdf594028
+Patch0:		system_glslang.patch
 URL:		https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers
-BuildRequires:	LunarGLASS-devel
+#BuildRequires:	LunarGLASS-devel
 BuildRequires:	cmake
 BuildRequires:	glslang-devel
 BuildRequires:	python3
@@ -18,6 +24,14 @@ BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 %description
 Common loader for Vulkan API drivers.
 
+%package -n vulkan-layers
+Summary:	Validation layers for Vulkan
+Group:		Development/Libraries
+Requires:	%{name} = %{version}-%{release}
+
+%description -n vulkan-layers
+Validation layers for Vulkan.
+
 %package -n vulkan-devel
 Summary:	Header files for the Vulkan API
 Summary(pl.UTF-8):	Pliki nagłówkowe API Vulkan
@@ -30,21 +44,69 @@ Header files for the Vulkan API.
 %description -n vulkan-devel -l pl.UTF-8
 Pliki nagłówkowe API Vulkan.
 
+%package demos
+Summary:	Vulkan demos
+Group:		Development/Libraries
+Requires:	%{name} = %{version}-%{release}
+
+%description demos
+Vulkan demos.
+
+%package utils
+Summary:	Vulkan loader utilities
+Group:		Development/Libraries
+Requires:	%{name} = %{version}-%{release}
+
+%description utils
+Vulkan loader utilities.
+
 %prep
-%setup -qn Vulkan-LoaderAndValidationLayers-sdk-%{version}
+%setup -qn Vulkan-LoaderAndValidationLayers-%{tag}
+%patch0 -p1
 
 %build
 install -d build
 cd build
 %cmake \
-        ../
+	%{?with_tests:-DBUILD_TESTS=ON} \
+	%{!?with_tests:-DBUILD_TESTS=OFF} \
+		../
 %{__make}
 
 %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{%{_bindir},%{_libdir}/vulkan/layer} \
+	$RPM_BUILD_ROOT%{_includedir}/vulkan \
+	$RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
+
+
+cd build
+%{__make} install
 
-%{__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
+
+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 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
+
+cp -p libs/vkjson/libvkjson.a $RPM_BUILD_ROOT%{_libdir}
+cp -p libs/vkjson/vkjson_{info,unittest} $RPM_BUILD_ROOT%{_bindir}
+
+cd ..
+
+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}
 
 %clean
 rm -rf $RPM_BUILD_ROOT
@@ -54,5 +116,43 @@ rm -rf $RPM_BUILD_ROOT
 
 %files
 %defattr(644,root,root,755)
-%doc README.md LICENSE.txt
-%doc loader/{LoaderAndLayerInterface.md,LinuxICDs.txt}
+%doc LICENSE.txt
+%doc loader/{README.md,LoaderAndLayerInterface.md,LinuxICDs.txt}
+%dir %{_sysconfdir}/vulkan
+%dir %{_sysconfdir}/vulkan/icd.d
+%dir %{_sysconfdir}/vulkan/explicit_layer.d
+%dir %{_sysconfdir}/vulkan/implicit_layer.d
+%dir %{_datadir}/vulkan
+%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
+%dir %{_libdir}/vulkan
+
+%files demos
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/vulkan-tri
+%attr(755,root,root) %{_bindir}/vulkan-cube
+
+%files utils
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/vulkaninfo
+%attr(755,root,root) %{_bindir}/vkjson_info
+%attr(755,root,root) %{_bindir}/vkjson_unittest
+
+%files -n vulkan-layers
+%defattr(644,root,root,755)
+%doc LICENSE.txt layers/README.md
+%dir %{_libdir}/vulkan/layer
+%{_libdir}/vulkan/layer/*.so
+%{_datadir}/vulkan/explicit_layer.d/*.json
+
+%files -n vulkan-devel
+%defattr(644,root,root,755)
+%doc LICENSE.txt README.md
+%{_libdir}/libvulkan.so
+%{_libdir}/libvkjson.a
+%{_includedir}/vulkan
+%{_includedir}/vkjson.h
+%{_examplesdir}/%{name}-%{version}
diff --git a/system_glslang.patch b/system_glslang.patch
new file mode 100644
index 0000000..188d1c5
--- /dev/null
+++ b/system_glslang.patch
@@ -0,0 +1,119 @@
+diff -dur Vulkan-LoaderAndValidationLayers-windows-rt-1.0.3.0.orig/CMakeLists.txt Vulkan-LoaderAndValidationLayers-windows-rt-1.0.3.0/CMakeLists.txt
+--- Vulkan-LoaderAndValidationLayers-windows-rt-1.0.3.0.orig/CMakeLists.txt	2016-02-14 02:19:50.000000000 +0100
++++ Vulkan-LoaderAndValidationLayers-windows-rt-1.0.3.0/CMakeLists.txt	2016-02-19 22:36:04.792275587 +0100
+@@ -72,7 +72,7 @@
+ 
+ if (BUILD_TESTS)
+     # Hard code our glslang path for now
+-    get_filename_component(GLSLANG_PREFIX ../glslang ABSOLUTE)
++    set(GLSLANG_PREFIX /usr/include/glslang)
+ 
+     if(NOT EXISTS ${GLSLANG_PREFIX})
+         message(FATAL_ERROR "Necessary glslang components do not exist: " ${GLSLANG_PREFIX})
+diff -dur Vulkan-LoaderAndValidationLayers-windows-rt-1.0.3.0.orig/demos/CMakeLists.txt Vulkan-LoaderAndValidationLayers-windows-rt-1.0.3.0/demos/CMakeLists.txt
+--- Vulkan-LoaderAndValidationLayers-windows-rt-1.0.3.0.orig/demos/CMakeLists.txt	2016-02-14 02:19:50.000000000 +0100
++++ Vulkan-LoaderAndValidationLayers-windows-rt-1.0.3.0/demos/CMakeLists.txt	2016-02-19 22:36:04.792275587 +0100
+@@ -28,45 +28,45 @@
+     endif()
+ 
+     add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/demos/tri-vert.spv
+-       COMMAND ${GLSLANG_PREFIX}/${BUILDTGT_DIR}/install/bin/glslangValidator -s -V ${PROJECT_SOURCE_DIR}/demos/tri.vert
++       COMMAND glslangValidator -s -V ${PROJECT_SOURCE_DIR}/demos/tri.vert
+        COMMAND move vert.spv ${CMAKE_BINARY_DIR}/demos/tri-vert.spv
+-       DEPENDS tri.vert ${GLSLANG_PREFIX}/${BUILDTGT_DIR}/install/bin/glslangValidator
++       DEPENDS tri.vert
+        )
+     add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/demos/tri-frag.spv
+-       COMMAND ${GLSLANG_PREFIX}/${BUILDTGT_DIR}/install/bin/glslangValidator -s -V ${PROJECT_SOURCE_DIR}/demos/tri.frag
++       COMMAND glslangValidator -s -V ${PROJECT_SOURCE_DIR}/demos/tri.frag
+        COMMAND move frag.spv ${CMAKE_BINARY_DIR}/demos/tri-frag.spv
+-       DEPENDS tri.frag ${GLSLANG_PREFIX}/${BUILDTGT_DIR}/install/bin/glslangValidator
++       DEPENDS tri.frag
+        )
+     add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/demos/cube-vert.spv
+-       COMMAND ${GLSLANG_PREFIX}/${BUILDTGT_DIR}/install/bin/glslangValidator -s -V ${PROJECT_SOURCE_DIR}/demos/cube.vert
++       COMMAND glslangValidator -s -V ${PROJECT_SOURCE_DIR}/demos/cube.vert
+        COMMAND move vert.spv ${CMAKE_BINARY_DIR}/demos/cube-vert.spv
+-       DEPENDS cube.vert ${GLSLANG_PREFIX}/${BUILDTGT_DIR}/install/bin/glslangValidator
++       DEPENDS cube.vert
+        )
+     add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/demos/cube-frag.spv
+-       COMMAND ${GLSLANG_PREFIX}/${BUILDTGT_DIR}/install/bin/glslangValidator -s -V ${PROJECT_SOURCE_DIR}/demos/cube.frag
++       COMMAND glslangValidator -s -V ${PROJECT_SOURCE_DIR}/demos/cube.frag
+        COMMAND move frag.spv ${CMAKE_BINARY_DIR}/demos/cube-frag.spv
+-       DEPENDS cube.frag ${GLSLANG_PREFIX}/${BUILDTGT_DIR}/install/bin/glslangValidator
++       DEPENDS cube.frag
+        )
+    file(COPY cube.vcxproj.user DESTINATION ${CMAKE_BINARY_DIR}/demos)
+    file(COPY tri.vcxproj.user DESTINATION ${CMAKE_BINARY_DIR}/demos)
+    file(COPY vulkaninfo.vcxproj.user DESTINATION ${CMAKE_BINARY_DIR}/demos)
+ else()
+     add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/demos/tri-vert.spv
+-       COMMAND ${GLSLANG_PREFIX}/build/install/bin/glslangValidator -s -V -o tri-vert.spv ${PROJECT_SOURCE_DIR}/demos/tri.vert 
+-       DEPENDS tri.vert ${GLSLANG_PREFIX}/build/install/bin/glslangValidator
++       COMMAND glslangValidator -s -V -o tri-vert.spv ${PROJECT_SOURCE_DIR}/demos/tri.vert 
++       DEPENDS tri.vert
+        )
+     add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/demos/tri-frag.spv
+-       COMMAND ${GLSLANG_PREFIX}/build/install/bin/glslangValidator -s -V -o tri-frag.spv ${PROJECT_SOURCE_DIR}/demos/tri.frag
+-       DEPENDS tri.frag ${GLSLANG_PREFIX}/build/install/bin/glslangValidator
++       COMMAND glslangValidator -s -V -o tri-frag.spv ${PROJECT_SOURCE_DIR}/demos/tri.frag
++       DEPENDS tri.frag
+        )
+     add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/demos/cube-vert.spv
+-       COMMAND ${GLSLANG_PREFIX}/build/install/bin/glslangValidator -s -V -o cube-vert.spv ${PROJECT_SOURCE_DIR}/demos/cube.vert
+-       DEPENDS cube.vert ${GLSLANG_PREFIX}/build/install/bin/glslangValidator
++       COMMAND glslangValidator -s -V -o cube-vert.spv ${PROJECT_SOURCE_DIR}/demos/cube.vert
++       DEPENDS cube.vert
+        )
+ 
+     add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/demos/cube-frag.spv
+-       COMMAND ${GLSLANG_PREFIX}/build/install/bin/glslangValidator -s -V -o cube-frag.spv ${PROJECT_SOURCE_DIR}/demos/cube.frag
+-       DEPENDS cube.frag ${GLSLANG_PREFIX}/build/install/bin/glslangValidator
++       COMMAND glslangValidator -s -V -o cube-frag.spv ${PROJECT_SOURCE_DIR}/demos/cube.frag
++       DEPENDS cube.frag
+        )
+ endif()
+ 
+diff -dur Vulkan-LoaderAndValidationLayers-windows-rt-1.0.3.0.orig/layers/CMakeLists.txt Vulkan-LoaderAndValidationLayers-windows-rt-1.0.3.0/layers/CMakeLists.txt
+--- Vulkan-LoaderAndValidationLayers-windows-rt-1.0.3.0.orig/layers/CMakeLists.txt	2016-02-14 02:19:50.000000000 +0100
++++ Vulkan-LoaderAndValidationLayers-windows-rt-1.0.3.0/layers/CMakeLists.txt	2016-02-19 22:37:15.242851047 +0100
+@@ -26,7 +26,7 @@
+     VkLayer_device_limits
+     )
+ 
+-set(VK_LAYER_RPATH /usr/lib/x86_64-linux-gnu/vulkan/layer:/usr/lib/i386-linux-gnu/vulkan/layer)
++set(VK_LAYER_RPATH "${CMAKE_INSTALL_LIBDIR}/vulkan/layer")
+ set(CMAKE_INSTALL_RPATH ${VK_LAYER_RPATH})
+ 
+ if (NOT WIN32)
+@@ -79,7 +79,7 @@
+ 	${CMAKE_CURRENT_SOURCE_DIR}/../loader
+ 	${CMAKE_CURRENT_SOURCE_DIR}/../include/vulkan
+ 	${CMAKE_CURRENT_BINARY_DIR}
+-	${PROJECT_SOURCE_DIR}/../glslang/SPIRV
++	/usr/include/glslang/SPIRV
+ )
+ 
+ if (WIN32)
+diff -dur Vulkan-LoaderAndValidationLayers-windows-rt-1.0.3.0.orig/tests/CMakeLists.txt Vulkan-LoaderAndValidationLayers-windows-rt-1.0.3.0/tests/CMakeLists.txt
+--- Vulkan-LoaderAndValidationLayers-windows-rt-1.0.3.0.orig/tests/CMakeLists.txt	2016-02-14 02:19:50.000000000 +0100
++++ Vulkan-LoaderAndValidationLayers-windows-rt-1.0.3.0/tests/CMakeLists.txt	2016-02-19 22:36:04.792275587 +0100
+@@ -67,13 +67,13 @@
+                          IMPORTED_LOCATION_DEBUG "${GLSLANG_PREFIX}/${BUILDTGT_DIR}/SPIRV/Debug/SPIRV.lib")
+ else ()
+    set_target_properties(glslang PROPERTIES
+-                         IMPORTED_LOCATION       "${GLSLANG_PREFIX}/build/install/lib/libglslang.a")
++                         IMPORTED_LOCATION       "${CMAKE_INSTALL_LIBDIR}/libglslang.a")
+    set_target_properties(OGLCompiler PROPERTIES
+-                         IMPORTED_LOCATION       "${GLSLANG_PREFIX}/build/install/lib/libOGLCompiler.a")
++                         IMPORTED_LOCATION       "${CMAKE_INSTALL_LIBDIR}/libOGLCompiler.a")
+    set_target_properties(OSDependent PROPERTIES
+-                         IMPORTED_LOCATION       "${GLSLANG_PREFIX}/build/install/lib/libOSDependent.a")
++                         IMPORTED_LOCATION       "${CMAKE_INSTALL_LIBDIR}/libOSDependent.a")
+    set_target_properties(SPIRV PROPERTIES
+-                         IMPORTED_LOCATION       "${GLSLANG_PREFIX}/build/install/lib/libSPIRV.a")
++                         IMPORTED_LOCATION       "${CMAKE_INSTALL_LIBDIR}/libSPIRV.a")
+ endif()
+ 
+ include_directories(
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/vulkan-loader.git/commitdiff/862291f5ba6a9a6407c22edcf69f091607bb846a



More information about the pld-cvs-commit mailing list