summary refs log tree commit diff
path: root/pkgs/tools/graphics/directx-shader-compiler/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/tools/graphics/directx-shader-compiler/default.nix')
-rw-r--r--pkgs/tools/graphics/directx-shader-compiler/default.nix50
1 files changed, 50 insertions, 0 deletions
diff --git a/pkgs/tools/graphics/directx-shader-compiler/default.nix b/pkgs/tools/graphics/directx-shader-compiler/default.nix
new file mode 100644
index 00000000000..6bab32ff27f
--- /dev/null
+++ b/pkgs/tools/graphics/directx-shader-compiler/default.nix
@@ -0,0 +1,50 @@
+{ lib, stdenv, fetchFromGitHub, cmake, python3, git }:
+
+stdenv.mkDerivation rec {
+  pname = "directx-shader-compiler";
+  version = "1.5.2010";
+
+  # Put headers in dev, there are lot of them which aren't necessary for
+  # using the compiler binary.
+  outputs = [ "out" "dev" ];
+
+  src = fetchFromGitHub {
+    owner = "microsoft";
+    repo = "DirectXShaderCompiler";
+    rev = "v${version}";
+    sha256 = "0ccfy1bfp0cm0pq63ri4yl1sr3fdn1a526bsnakg4bl6z4fwrnnj";
+    # We rely on the side effect of leaving the .git directory here for the
+    # version-grabbing functionality of the build system.
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [ cmake git python3 ];
+
+  configurePhase = ''
+    # Requires some additional flags to cmake from a file in the repo
+    additionalCMakeFlags=$(< utils/cmake-predefined-config-params)
+    cmakeFlags="$additionalCMakeFlags''${cmakeFlags:+ $cmakeFlags}"
+    cmakeConfigurePhase
+  '';
+
+  # The default install target installs heaps of LLVM stuff.
+  #
+  # Upstream issue: https://github.com/microsoft/DirectXShaderCompiler/issues/3276
+  #
+  # The following is based on the CI script:
+  # https://github.com/microsoft/DirectXShaderCompiler/blob/master/appveyor.yml#L63-L66
+  installPhase = ''
+    mkdir -p $out/bin $out/lib $dev/include
+    mv bin/dxc* $out/bin/
+    mv lib/libdxcompiler.so* lib/libdxcompiler.*dylib $out/lib/
+    cp -r $src/include/dxc $dev/include/
+  '';
+
+  meta = with lib; {
+    description = "A compiler to compile HLSL programs into DXIL and SPIR-V";
+    homepage = "https://github.com/microsoft/DirectXShaderCompiler";
+    platforms = with platforms; linux ++ darwin;
+    license = licenses.ncsa;
+    maintainers = with maintainers; [ expipiplus1 ];
+  };
+}