Merge pull request #119126 from fabaff/pycomfoconnect
[NixPkgs.git] / pkgs / development / compilers / intel-graphics-compiler / default.nix
blob51286582960740ae93823139817222bfbed0d3a2
1 { lib, stdenv
2 , fetchFromGitHub
3 , cmake
4 , pkg-config
6 , bison
7 , flex
8 , llvmPackages_8
9 , opencl-clang
10 , python3
11 , spirv-llvm-translator
13 , buildWithPatches ? true
16 let
17   llvmPkgs = llvmPackages_8 // {
18     inherit spirv-llvm-translator;
19   };
20   inherit (llvmPkgs) llvm;
21   inherit (if buildWithPatches then opencl-clang else llvmPkgs) clang clang-unwrapped spirv-llvm-translator;
22   inherit (lib) getVersion optional optionals versionOlder versions;
25 stdenv.mkDerivation rec {
26   pname = "intel-graphics-compiler";
27   version = "1.0.4241";
29   src = fetchFromGitHub {
30     owner = "intel";
31     repo = "intel-graphics-compiler";
32     rev = "igc-${version}";
33     sha256 = "1jp3c67ppl1x4pazr5nzy52615cpx0kyckaridhc0fsmrkgilyxq";
34   };
36   nativeBuildInputs = [ clang cmake bison flex python3 ];
38   buildInputs = [ clang opencl-clang spirv-llvm-translator llvm ];
40   strictDeps = true;
42   # checkInputs = [ lit pythonPackages.nose ];
44   # FIXME: How do we run the test suite?
45   # https://github.com/intel/intel-graphics-compiler/issues/98
46   doCheck = false;
48   # Handholding the braindead build script
49   # We put this in a derivation because the cmake requires an absolute path
50   prebuilds = stdenv.mkDerivation {
51     name = "igc-cclang-prebuilds";
52     phases = [ "installPhase" ];
53     installPhase = ''
54       mkdir $out
55       ln -s ${clang}/bin/clang $out/
56       ln -s clang $out/clang-${versions.major (getVersion clang)}
57       ln -s ${opencl-clang}/lib/* $out/
58       ln -s ${clang-unwrapped}/lib/clang/${getVersion clang}/include/opencl-c.h $out/
59     '';
60   };
62   cmakeFlags = [
63     "-DCCLANG_BUILD_PREBUILDS=ON"
64     "-DCCLANG_BUILD_PREBUILDS_DIR=${prebuilds}"
65     "-DIGC_PREFERRED_LLVM_VERSION=${getVersion llvm}"
66   ];
68   meta = with lib; {
69     homepage    = "https://github.com/intel/intel-graphics-compiler";
70     description = "LLVM-based compiler for OpenCL targeting Intel Gen graphics hardware";
71     license     = licenses.mit;
72     platforms   = platforms.all;
73     maintainers = with maintainers; [ gloaming ];
74   };