diff options
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/applications/graphics/renderdoc/default.nix')
-rw-r--r-- | infra/libkookie/nixpkgs/pkgs/applications/graphics/renderdoc/default.nix | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/renderdoc/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/renderdoc/default.nix new file mode 100644 index 000000000000..11b497176939 --- /dev/null +++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/renderdoc/default.nix @@ -0,0 +1,79 @@ +{ stdenv, fetchFromGitHub, cmake, pkgconfig, mkDerivation +, qtbase, qtx11extras, qtsvg, makeWrapper +, vulkan-loader, libglvnd, xorg, python3, python3Packages +, bison, pcre, automake, autoconf, addOpenGLRunpath +}: +let + custom_swig = fetchFromGitHub { + owner = "baldurk"; + repo = "swig"; + rev = "renderdoc-modified-7"; + sha256 = "15r2m5kcs0id64pa2fsw58qll3jyh71jzc04wy20pgsh2326zis6"; + }; + pythonPackages = python3Packages; +in +mkDerivation rec { + version = "1.10"; + pname = "renderdoc"; + + src = fetchFromGitHub { + owner = "baldurk"; + repo = "renderdoc"; + rev = "v${version}"; + sha256 = "1ibf2lv3q69fkzv1nsva2mbdjlayrpxicrd96d9nfcw64f2mv6ds"; + }; + + buildInputs = [ + qtbase qtsvg xorg.libpthreadstubs xorg.libXdmcp qtx11extras vulkan-loader python3 + ]; # ++ (with pythonPackages; [pyside2 pyside2-tools shiboken2]); + # TODO: figure out how to make cmake recognise pyside2 + + nativeBuildInputs = [ cmake makeWrapper pkgconfig bison pcre automake autoconf addOpenGLRunpath ]; + + postUnpack = '' + cp -r ${custom_swig} swig + chmod -R +w swig + patchShebangs swig/autogen.sh + ''; + + cmakeFlags = [ + "-DBUILD_VERSION_HASH=${src.rev}" + "-DBUILD_VERSION_DIST_NAME=NixOS" + "-DBUILD_VERSION_DIST_VER=${version}" + "-DBUILD_VERSION_DIST_CONTACT=https://github.com/NixOS/nixpkgs/tree/master/pkgs/applications/graphics/renderdoc" + "-DBUILD_VERSION_STABLE=ON" + ]; + + # TODO: define these in the above array via placeholders, once those are widely supported + preConfigure = '' + cmakeFlags+=" -DVULKAN_LAYER_FOLDER=$out/share/vulkan/implicit_layer.d/" + cmakeFlags+=" -DRENDERDOC_SWIG_PACKAGE=$PWD/../swig" + ''; + + dontWrapQtApps = true; + preFixup = '' + wrapQtApp $out/bin/qrenderdoc --suffix LD_LIBRARY_PATH : "$out/lib:${vulkan-loader}/lib:${libglvnd}/lib" + wrapProgram $out/bin/renderdoccmd --suffix LD_LIBRARY_PATH : "$out/lib:${vulkan-loader}/lib:${libglvnd}/lib" + ''; + + # The only documentation for this so far is in pkgs/build-support/add-opengl-runpath/setup-hook.sh + postFixup = '' + addOpenGLRunpath $out/lib/librenderdoc.so + ''; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + description = "A single-frame graphics debugger"; + homepage = "https://renderdoc.org/"; + license = licenses.mit; + longDescription = '' + RenderDoc is a free MIT licensed stand-alone graphics debugger that + allows quick and easy single-frame capture and detailed introspection + of any application using Vulkan, D3D11, OpenGL or D3D12 across + Windows 7 - 10, Linux or Android. + ''; + maintainers = [maintainers.jansol]; + platforms = ["i686-linux" "x86_64-linux"]; + }; +} |