%global date 2020.12.18
Name:                opencl-clhpp
Version:             2.0.12
Release:             7
Summary:             OpenCL (Open Computing Language) bind cpp header files.
License:             Apache-2.0
URL:                 https://github.com/KhronosGroup/OpenCL-CLHPP
Source0:             https://github.com/KhronosGroup/OpenCL-CLHPP/archive/refs/tags/v%{version}.tar.gz
Source1:             https://github.com/KhronosGroup/OpenCL-Headers/archive/v%{date}.tar.gz
Source2:             https://github.com/ThrowTheSwitch/CMock/archive/refs/tags/v2.5.3.tar.gz
Source3:             https://github.com/ThrowTheSwitch/Unity/archive/refs/tags/v2.5.2.tar.gz
Source4:             https://github.com/ThrowTheSwitch/CException/archive/refs/tags/v1.3.3.tar.gz

BuildArch:           noarch

BuildRequires:       gcc-c++ cmake >= 3.14.0 ocl-icd rubygems ruby python git

Provides:            bundled(grpc)

%description
%{summary}.

%prep
%autosetup -n OpenCL-CLHPP-%{version}
tar -zxf %SOURCE1 -C %{_builddir}/OpenCL-CLHPP-%{version}
tar -zxf %SOURCE2 -C %{_builddir}/OpenCL-CLHPP-%{version}/external/
tar -zxf %SOURCE3 -C %{_builddir}/OpenCL-CLHPP-%{version}/external/
tar -zxf %SOURCE3 -C %{_builddir}/OpenCL-CLHPP-%{version}/external/CMock/vendor/
tar -zxf %SOURCE4 -C %{_builddir}/OpenCL-CLHPP-%{version}/external/CMock/vendor/

mv %{_builddir}/OpenCL-CLHPP-%{version}/external/CMock/vendor/Unity/* %{_builddir}/OpenCL-CLHPP-%{version}/external/CMock/vendor/unity/

%build
ln -s /usr/lib64/libOpenCL.so.1 %{_builddir}/OpenCL-CLHPP-%{version}/libOpenCL.so

git apply 0001-Add_CL_DEVICE_BOARD_NAME_AMD.patch
git apply 0002-add-missing-const-to-context-properties.patch

rm -rf build
mkdir build
cd build
cmake .. -DOPENCL_INCLUDE_DIR=%{_builddir}/OpenCL-CLHPP-%{version}/OpenCL-Headers-%{date}  \
         -DOPENCL_LIB_DIR=%{_builddir}/OpenCL-CLHPP-%{version}/                            \
         -DBUILD_TESTS=ON                                                                  \
         -DBUILD_DOCS=ON                                                                   \
         -DBUILD_EXAMPLES=ON 

%install
cd build
make install DESTDIR=%{buildroot}

%check
cd build
make test

%files
%dir /usr/local/include/CL
/usr/local/include/CL/cl2.hpp

%changelog
* Tue Nov 12 2021 yinchangpan <yinchangpan2@huawei.com> - v2.12.0-7
- patch 0002-add-missing-const-to-context-properties

* Tue Nov 12 2021 yinchangpan <yinchangpan2@huawei.com> - v2.12.0-6
- patch 0001-Add_CL_DEVICE_BOARD_NAME_AMD

* Tue Nov 12 2021 yinchangpan <yinchangpan2@huawei.com> - v2.12.0-5
- Add Make Test Check

* Tue Nov 12 2021 yinchangpan <yinchangpan2@huawei.com> - v2.12.0-4
- Add Access Control

* Tue Nov 12 2021 yinchangpan <yinchangpan2@huawei.com> - v2.12.0-3
- Add OpenCL-headers files for opencl-clhpp build

* Tue Nov 12 2021 yinchangpan <yinchangpan2@huawei.com> - v2.12.0-2
- Updata README

* Tue Nov 11 2021 yinchangpan <yinchangpan2@huawei.com> - v2.12.0-1
- Package init
