11 , spirv-llvm-translator
13 , buildWithPatches ? true
17 llvmPkgs = llvmPackages_8 // {
18 inherit spirv-llvm-translator;
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";
29 src = fetchFromGitHub {
31 repo = "intel-graphics-compiler";
32 rev = "igc-${version}";
33 sha256 = "1jp3c67ppl1x4pazr5nzy52615cpx0kyckaridhc0fsmrkgilyxq";
36 nativeBuildInputs = [ clang cmake bison flex python3 ];
38 buildInputs = [ clang opencl-clang spirv-llvm-translator llvm ];
42 # checkInputs = [ lit pythonPackages.nose ];
44 # FIXME: How do we run the test suite?
45 # https://github.com/intel/intel-graphics-compiler/issues/98
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" ];
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/
63 "-DCCLANG_BUILD_PREBUILDS=ON"
64 "-DCCLANG_BUILD_PREBUILDS_DIR=${prebuilds}"
65 "-DIGC_PREFERRED_LLVM_VERSION=${getVersion llvm}"
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 ];