Files
compute-runtime/scripts/specs/fedora/opencl-clang.spec
Jacek Danecki e187d68f2f add spec files for Fedora and Centos
These files are used in copr repository to build all Neo
components: IGC, opencl-clang, gmmlib.

copr project:
https://copr.fedorainfracloud.org/coprs/jdanecki/intel-opencl

Change-Id: I7f085b54a9315f3afeb36276b28b695477eb9f37
Signed-off-by: Jacek Danecki <jacek.danecki@intel.com>
2019-08-05 09:23:00 +02:00

79 lines
2.4 KiB
RPMSpec

%global cclang_commit_id 41cad395859684b18e762ca4a2c713c2fa349622
%global spirv_llvm_commit_id 83298e3c9b124486c16d0fde54c764a6c5a2b554
%global package_version 8.0.72
%global package_release 1
Name: intel-opencl-clang
Version: %{package_version}
Release: %{package_release}%{?dist}
Summary: Intel(R) OpenCL(TM) Clang
Group: System Environment/Libraries
License: MIT
URL: https://github.com/intel/opencl-clang
Source0: https://github.com/intel/opencl-clang/archive/%{cclang_commit_id}/intel-opencl-clang.tar.gz
Source1: https://github.com/KhronosGroup/SPIRV-LLVM-Translator/archive/%{spirv_llvm_commit_id}/spirv-llvm-translator.tar.gz
BuildRequires: git cmake clang gcc-c++ make patch llvm-devel clang-devel pkg-config python2 procps dos2unix
%description
Common clang is a thin wrapper library around clang. Common clang has OpenCL-oriented API and is capable to compile OpenCL C kernels to SPIR-V modules.
%package devel
Summary: Development files Intel(R) OpenCL(TM) Clang
Requires: %{name} = %{version}-%{release}
%description devel
%clean
echo "==== CLEAN ===="
%prep
echo "==== PREP ===="
mkdir opencl-clang spirv-llvm
tar xzf $RPM_SOURCE_DIR/intel-opencl-clang.tar.gz -C opencl-clang --strip-components=1
tar xzf $RPM_SOURCE_DIR/spirv-llvm-translator.tar.gz -C spirv-llvm --strip-components=1
%build
echo "==== BUILD ===="
mkdir build_cc build_s
pushd spirv-llvm
dos2unix ../opencl-clang/patches/spirv/0001-Update-LowerOpenCL-pass-to-handle-new-blocks-represn.patch
dos2unix ../opencl-clang/patches/spirv/0002-Translation-of-llvm.dbg.declare-in-case-the-local-va.patch
patch -p1 < ../opencl-clang/patches/spirv/0001-Update-LowerOpenCL-pass-to-handle-new-blocks-represn.patch
patch -p1 < ../opencl-clang/patches/spirv/0002-Translation-of-llvm.dbg.declare-in-case-the-local-va.patch
popd
pushd build_s
cmake ../spirv-llvm -DCMAKE_INSTALL_PREFIX=install -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_BUILD_TYPE=Release
make llvm-spirv -j8 install
popd
pushd build_cc
cmake ../opencl-clang -DCOMMON_CLANG_LIBRARY_NAME=opencl-clang -DLLVMSPIRV_INCLUDED_IN_LLVM=OFF -DSPIRV_TRANSLATOR_DIR=../build_s/install -DLLVM_NO_DEAD_STRIP=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX='/usr'
make -j8
popd
%install
echo "==== INSTALL ===="
cd build_cc
make install DESTDIR=$RPM_BUILD_ROOT
%files
/usr/lib64/libopencl-clang.so.8
%files devel
/usr/lib64/libopencl-clang.so
/usr/include/cclang/common_clang.h
%doc
%changelog