%define major 20.1 %define libname %mklibname %name %{major} %define develname %mklibname %name -d %global commit 781d0790ea4dc6238eabe44fc39e49b6b27fbcbe %global shortcommit %(c=%{commit}; echo ${c:0:7}) Name: spirv-llvm-translator Version: 20.1.9 Release: %mkrel 1 Summary: LLVM to SPIRV Translator Group: System/Libraries License: NCSA URL: https://github.com/KhronosGroup/SPIRV-LLVM-Translator #Source0: %{url}/archive/%{commit}/%{name}-%{shortcommit}.tar.gz Source0: %{url}/archive/refs/tags/v%{version}.tar.gz#/%{name}-%{version}.tar.gz # Upstream patches BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: cmake BuildRequires: ninja-build BuildRequires: llvm-devel BuildRequires: llvm-static BuildRequires: spirv-headers BuildRequires: spirv-tools-devel BuildRequires: zlib-devel %description Khronos LLVM to SPIRV Translator. This is a library to be used by Mesa for OpenCL support. It translate LLVM IR to Khronos SPIR-V. It also includes a standalone tool used for building libclc. %package tools Summary: Standalone llvm to spirv translator tool Group: System/Base Requires: %{name}%{?_isa} = %{version}-%{release} %description tools This package contains the standalone llvm to spirv tool. %package -n %{libname} Summary: Standalone llvm to spirv translator tool lib Group: System/Libraries Provides: %{name}%{?_isa} = %{version}-%{release} Provides: %{name} = %{version}-%{release} %description -n %{libname} Khronos LLVM to SPIRV Translator. This is a library to be used by Mesa for OpenCL support. It translate LLVM IR to Khronos SPIR-V. It also includes a standalone tool used for building libclc. %package -n %{develname} Summary: Development files for LLVM to SPIRV Translator Group: Development/C Requires: %{name}%{?_isa} = %{version}-%{release} Obsoletes: spirv-llvm-translator-%{_lib}spirv-llvm-translator-devel < 17.0.0-2 %description -n %{develname} This package contains libraries and header files for developing against %{name} %prep %autosetup -n SPIRV-LLVM-Translator-%{version} -p1 %build %cmake -GNinja \ -DLLVM_BUILD_TOOLS=ON \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DCMAKE_INSTALL_RPATH:BOOL=";" \ -DLLVM_DIR="/usr/lib64/cmake/llvm/" \ %if 0%{?__isa_bits} == 64 -DLLVM_LIBDIR_SUFFIX=64 \ %else -DLLVM_LIBDIR_SUFFIX= \ %endif -DLLVM_EXTERNAL_PROJECTS="SPIRV-Headers" \ -DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR="/usr/include/spirv/" %cmake_build %install %cmake_install %files -n %{libname} %doc README.md %{_libdir}/libLLVMSPIRVLib.so.%{major} %files tools %{_bindir}/llvm-spirv %files -n %{develname} %{_includedir}/LLVMSPIRVLib/ %{_libdir}/libLLVMSPIRVLib.so %{_libdir}/pkgconfig/LLVMSPIRVLib.pc