%global vc_commit 753ad5002af5a5e467b3a0194a2b0e9a3243059e %global vc_shortcommit %(c=%{vc_commit}; echo ${c:0:7}) %global spirv_tools_tag 2021.4 %global spirv_headers_tag sdk-1.2.198.0 %global toolchain clang %global optflags %{optflags} -Wno-everything -Qunused-arguments Name: intel-igc Version: 1.0.9933 Release: 1%{?dist} Summary: Intel Graphics Compiler for OpenCL License: MIT URL: https://github.com/intel/intel-graphics-compiler Source0: %{url}/archive/igc-%{version}/igc-%{version}.tar.gz Source1: https://github.com/intel/vc-intrinsics/archive/%{vc_commit}/vc-intrinsics-%{vc_shortcommit}.tar.gz Source2: https://github.com/KhronosGroup/SPIRV-Tools/archive/v%{spirv_tools_tag}/SPIRV-Tools-v%{spirv_tools_tag}.tar.gz Source3: https://github.com/KhronosGroup/SPIRV-Headers/archive/%{spirv_headers_tag}/SPIRV-Headers-%{spirv_headers_tag}.tar.gz # https://github.com/intel/intel-graphics-compiler/pull/210 Patch01: 210.patch # https://github.com/intel/intel-graphics-compiler/pull/220 Patch02: 220.patch # https://github.com/intel/intel-graphics-compiler/pull/226 Patch03: 226.patch Patch04: 0001-Don-t-return-NULL-string-which-fails-on-GCC-12.patch BuildRequires: cmake BuildRequires: make BuildRequires: git BuildRequires: ninja-build BuildRequires: llvm-devel BuildRequires: lld-devel BuildRequires: clang BuildRequires: flex BuildRequires: bison BuildRequires: python3 BuildRequires: zlib-devel BuildRequires: intel-opencl-clang-devel BuildRequires: libunwind-devel BuildRequires: spirv-llvm-translator-devel BuildRequires: spirv-llvm-translator-tools Requires: %{name}-libs%{?_isa} = %{version}-%{release} # Unfortunately, it isn't trivially posible to build with prebuilt vc-intrinsics, SPIRV-Tools, SPIRV-Headers # https://github.com/intel/intel-graphics-compiler/issues/219 Provides: bundled(spirv-headers) Provides: bundled(spirv-tools) = 2021.4 Provides: bundled(intel-vc-intrinsics) %description The Intel Graphics Compiler for OpenCL is an LLVM based compiler for OpenCL targeting Intel Gen graphics hardware architecture. %package devel Summary: Intel Graphics Compiler Frontend - Devel Files Requires: %{name}-libs%{?_isa} = %{version}-%{release} %description devel Devel files for Intel Graphics Compiler for OpenCL. %package libs Summary: Intel Graphics Compiler Frontend - Library Files Requires: %{name} = %{version}-%{release} %description libs Library files for Intel Graphics Compiler for OpenCL. %prep tar -xf %{SOURCE1} tar -xf %{SOURCE2} tar -xf %{SOURCE3} mv %{_builddir}/SPIRV-Tools-%{spirv_tools_tag} %{_builddir}/SPIRV-Tools mv %{_builddir}/SPIRV-Headers-%{spirv_headers_tag} %{_builddir}/SPIRV-Headers %setup -q -n intel-graphics-compiler-igc-%{version} %patch01 -p1 %patch02 -p1 %patch03 -p1 %patch04 -p1 %build %cmake \ -DCMAKE_BUILD_TYPE=Release \ -DBUILD_SHARED_LIBS:BOOL=OFF \ -DIGC_OPTION__LLVM_PREFERRED_VERSION='%(rpm -q --qf '%%{version}' llvm-devel | cut -d. -f1 | sed "s/$/.0.0/")' \ -DVC_INTRINSICS_SRC="%{_builddir}/vc-intrinsics-%{vc_commit}" \ -DIGC_OPTION__ARCHITECTURE_TARGET='Linux64' \ -DIGC_OPTION__LINK_KHRONOS_SPIRV_TRANSLATOR=ON \ -DIGC_OPTION__USE_KHRONOS_SPIRV_TRANSLATOR_IN_VC=ON \ -DIGC_OPTION__USE_KHRONOS_SPIRV_TRANSLATOR_IN_SC=OFF \ -DIGC_OPTION__SPIRV_TRANSLATOR_MODE=Prebuilds \ -DIGC_OPTION__CLANG_MODE=Prebuilds \ -DIGC_OPTION__LLD_MODE=Prebuilds \ -DIGC_OPTION__LLVM_MODE=Prebuilds \ -DINSTALL_GENX_IR=ON \ -Wno-dev \ -G Ninja %cmake_build %install %cmake_install %files %{_bindir}/iga64 %{_bindir}/GenX_IR %files libs %license LICENSE.md %license %{_libdir}/igc/NOTICES.txt %{_libdir}/libiga64.so.1{,.*} %{_libdir}/libigc.so.1{,.*} %{_libdir}/libigdfcl.so.1{,.*} %files devel %{_libdir}/libiga64.so %{_libdir}/libigc.so %{_libdir}/libigdfcl.so %{_includedir}/igc %{_includedir}/iga %{_includedir}/visa %{_libdir}/pkgconfig/igc-opencl.pc %changelog * Mon Dec 27 2021 Frantisek Zatloukal - 1.0.9933-1 - Initial package