linux_xanmod: 5.11.14 -> 5.11.15
[NixPkgs.git] / pkgs / development / libraries / beignet / default.nix
blob8e8e455e59a6f5fc0c77e2a5a249eb2a54f5e31a
1 { lib, stdenv
2 , fetchFromGitHub
3 , cmake
4 , pkg-config
5 , clang-unwrapped
6 , llvm
7 , libdrm
8 , libX11
9 , libpthreadstubs
10 , libXdmcp
11 , libXdamage
12 , libXext
13 , python3
14 , ocl-icd
15 , libGL
16 , makeWrapper
17 , beignet
20 stdenv.mkDerivation rec {
21   pname = "beignet";
22   version = "unstable-2018.08.20";
24   src = fetchFromGitHub {
25     owner  = "intel";
26     repo   = "beignet";
27     rev    = "fc5f430cb7b7a8f694d86acbb038bd5b38ec389c";
28     sha256 = "1z64v69w7f52jrskh1jfyh1x46mzfhjrqxj9hhgzh3xxv9yla32h";
29   };
31   patches = [ ./clang_llvm.patch ];
33   postPatch = ''
34     substituteInPlace CMakeLists.txt --replace /etc/OpenCL/vendors "\''${CMAKE_INSTALL_PREFIX}/etc/OpenCL/vendors"
35     patchShebangs src/git_sha1.sh
36   '';
38   cmakeFlags = [ "-DCLANG_LIBRARY_DIR=${clang-unwrapped}/lib" ];
40   buildInputs = [
41     llvm
42     clang-unwrapped
43     libX11
44     libXext
45     libpthreadstubs
46     libdrm
47     libXdmcp
48     libXdamage
49     ocl-icd
50     libGL
51   ];
53   nativeBuildInputs = [
54     cmake
55     pkg-config
56     python3
57   ];
59   passthru.utests = stdenv.mkDerivation {
60     pname = "beignet-utests";
61     inherit version src;
63     preConfigure = ''
64       cd utests
65     '';
67     nativeBuildInputs = [
68       cmake
69       python3
70       pkg-config
71       makeWrapper
72     ];
74     buildInputs = [
75       ocl-icd
76     ];
78     installPhase = ''
79       wrapBin() {
80         install -Dm755 "$1" "$out/bin/$(basename "$1")"
81         wrapProgram "$out/bin/$(basename "$1")" \
82           --set OCL_BITCODE_LIB_PATH ${beignet}/lib/beignet/beignet.bc \
83           --set OCL_HEADER_FILE_DIR "${beignet}/lib/beignet/include" \
84           --set OCL_PCH_PATH "${beignet}/lib/beignet/beignet.pch" \
85           --set OCL_GBE_PATH "${beignet}/lib/beignet/libgbe.so" \
86           --set OCL_INTERP_PATH "${beignet}/lib/beignet/libgbeinterp.so" \
87           --set OCL_KERNEL_PATH "$out/lib/beignet/kernels" \
88           --set OCL_IGNORE_SELF_TEST 1
89       }
91       install -Dm755 libutests.so $out/lib/libutests.so
92       wrapBin utest_run
93       wrapBin flat_address_space
94       mkdir $out/lib/beignet
95       cp -r ../../kernels $out/lib/beignet
96     '';
97   };
99   meta = with lib; {
100     homepage = "https://cgit.freedesktop.org/beignet/";
101     description = "OpenCL Library for Intel Ivy Bridge and newer GPUs";
102     longDescription = ''
103       The package provides an open source implementation of the OpenCL specification for Intel GPUs.
104       It supports the Intel OpenCL runtime library and compiler.
105     '';
106     license = licenses.lgpl21Plus;
107     maintainers = with maintainers; [ artuuge zimbatm ];
108     platforms = platforms.linux;
109     # Requires libdrm_intel
110     badPlatforms = [ "aarch64-linux" ];
111   };