Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37536543
en ru br
Репозитории ALT

Группа :: Система/Библиотеки
Пакет: vulkan

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

Name: vulkan
Version: 1.3.243
Release: alt1
Summary: Khronos group Vulkan API SDK

Group: System/Libraries
License: Apache-2.0
Url: http://www.khronos.org/

# https://github.com/KhronosGroup/Vulkan-Loader

Source0: vulkan-loader.tar
# https://github.com/KhronosGroup/Vulkan-Headers
Source1: vulkan-headers.tar
# https://github.com/KhronosGroup/Vulkan-Tools
Source2: vulkan-tools.tar
# https://github.com/KhronosGroup/Vulkan-ValidationLayers
Source3: vulkan-layers.tar

BuildRequires: bison chrpath
BuildRequires(pre): cmake gcc-c++ rpm-build-python3
BuildRequires: libImageMagick-devel libpciaccess-devel libsystemd-devel
BuildRequires: python3-devel libxcb-devel libXau-devel libXdmcp-devel libX11-devel libXrandr-devel
BuildRequires: wayland-devel libwayland-server-devel libwayland-client-devel libwayland-cursor-devel libwayland-egl-devel
# strict requires due internal dependency
BuildRequires: glslang-devel = 12.1.0
BuildRequires: libspirv-tools-devel >= 2023.2
BuildRequires: spirv-headers >= 1.5.5-alt7
# -layers need it
BuildRequires: librobin-hood-hashing-devel
# - tolls need it
BuildRequires: wayland-protocols

# textrel due asm optimisation in loader code

%ifarch i586
%set_verify_elf_method textrel=relaxed
%endif

# filter out self-provided requires

%add_python3_req_skip spec_tools.util

%description
Vulkan is a new generation graphics and compute API that provides
high-efficiency, cross-platform access to modern GPUs used in a wide
variety of devices from PCs and consoles to mobile phones and embedded
platforms.

This package contains the reference ICD loader and API validation layer for
Vulkan.

%package -n lib%{name}1
Summary: Vulkan loader libraries
Group: System/Libraries
Requires: vulkan-filesystem = %EVR
Provides: %name = %EVR
Obsoletes: %name

%description -n lib%{name}1
Vulkan is a new generation graphics and compute API that provides
high-efficiency, cross-platform access to modern GPUs used in a wide
variety of devices from PCs and consoles to mobile phones and embedded
platforms.

This package contains the reference ICD loader for Vulkan.

%package validation-layers
Summary: Vulkan API validation layers
Group: Development/C++
Requires: lib%{name}1 = %version-%release

%description validation-layers
Vulkan API validation layer for developers.

%package -n lib%name-devel
Summary: Vulkan development package
Group: Development/C++
Requires: lib%{name}1 = %EVR, %{name}-registry = %EVR
Provides: %name-devel = %EVR
Obsoletes: %name-devel

%description -n lib%name-devel
Development headers for Vulkan applications.

%package filesystem
Summary: Vulkan filesystem package
Group: System/Base
BuildArch: noarch

%description filesystem
Filesystem for Vulkan API.

%package tools
Summary: Vulkan tools and utilities
Group: System/X11
Requires: lib%{name}1 = %EVR
Obsoletes: %name-demos

%description tools
Tools and utilities that can assist development by enabling developers to
verify their applications correct use of the Vulkan API.

%package registry
Summary: Vulkan API registry
Group: Development/C++
BuildArch: noarch
Requires: %name-filesystem = %EVR

%description registry
Vulkan SDK API registry files.

%prep
%setup -n %name-loader -b0 -b1 -b2 -b3
pushd ../vulkan-layers
# sigh inttypes
sed -i 's/inttypes.h/cinttypes/' layers/*.{cpp,h}
popd

%build
# vulkan-headers first
pushd %_builddir/vulkan-headers
%cmake
%cmake_build
%cmakeinstall_std
popd

# then vulkan-loader and layers

for dir in loader layers; do
pushd %_builddir/vulkan-"$dir"
%cmake \
  -DCMAKE_BUILD_TYPE=RelWithDebInfo \
  -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \
  -DSPIRV_TOOLS_SEARCH_PATH=%_libdir \
  -DSPIRV_TOOLS_OPT_SEARCH_PATH=%_libdir \
  -DVULKAN_HEADERS_INSTALL_DIR=%buildroot \
  -DGLSLANG_INSTALL_DIR=%_prefix \
  -DSPIRV_HEADERS_INSTALL_DIR=%_prefix \
  -DCMAKE_PREFIX_PATH=%buildroot%_datadir/cmake \
  -DROBIN_HOOD_HASHING_INCLUDE_DIR=%_includedir
%cmake_build
%cmakeinstall_std
popd
done

# end finally -tools

pushd %_builddir/vulkan-tools
%cmake \
  -DCMAKE_PREFIX_PATH=%buildroot%prefix \
  -DGLSLANG_INSTALL_DIR=%_prefix
%cmake_build
%cmakeinstall_std
popd

%install
# do it again
for dir in headers layers loader tools; do
pushd %_builddir/vulkan-"$dir"
%cmakeinstall_std
popd
done
mkdir -p %buildroot%_sysconfdir/vulkan/explicit_layer.d
mkdir -p %buildroot%_datadir/vulkan/{explicit,implicit}_layer.d/ ||:
mkdir -p %buildroot%_datadir/vulkan/icd.d ||:

# remove RPATH

chrpath -d %buildroot%_bindir/{vulkaninfo,vkcubepp}

# remove static libs to make LTO checks happy

rm -rf %buildroot%_libdir/libVkLayer*.a ||:

%files tools
%_bindir/*

%files -n lib%{name}1
%doc README.md LICENSE.txt
%_libdir/libvulkan.so.1*

%files -n lib%name-devel
%_includedir/vulkan
%_includedir/vk_video
%_libdir/libvulkan.so
%_pkgconfigdir/vulkan.pc
%dir %_datadir/cmake/VulkanHeaders
%_datadir/cmake/VulkanHeaders/*.cmake

%files validation-layers
%_datadir/vulkan/explicit_layer.d/*.json
%_libdir/libVkLayer*.so

%files filesystem
%dir %_sysconfdir/vulkan
%dir %_sysconfdir/vulkan/explicit_layer.d
%dir %_datadir/vulkan
%dir %_datadir/vulkan/icd.d
%dir %_datadir/vulkan/explicit_layer.d
%dir %_datadir/vulkan/implicit_layer.d

%files registry
%_datadir/vulkan/registry
# requires vulkan-docs tools
%exclude %_datadir/vulkan/registry/genvk.py

%changelog

Полный changelog можно просмотреть здесь

 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin