diff options
author | Joe Hermaszewski <git@monoid.al> | 2020-11-16 15:47:55 +0800 |
---|---|---|
committer | Joe Hermaszewski <git@monoid.al> | 2020-11-17 15:08:51 +0800 |
commit | b2fae2dbdfae191dddc825ef29c3badd83678016 (patch) | |
tree | 6af308254f53983630eadd7953b2c994a7512abd /pkgs | |
parent | 929db7f52fcd8e4bb43f97925649973403f33837 (diff) |
vulkan-tools-lunarg: init at 1.2.141.0
Diffstat (limited to 'pkgs')
-rw-r--r-- | pkgs/tools/graphics/vulkan-tools-lunarg/default.nix | 86 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 1 |
2 files changed, 87 insertions, 0 deletions
diff --git a/pkgs/tools/graphics/vulkan-tools-lunarg/default.nix b/pkgs/tools/graphics/vulkan-tools-lunarg/default.nix new file mode 100644 index 000000000000..9ce87b4cb671 --- /dev/null +++ b/pkgs/tools/graphics/vulkan-tools-lunarg/default.nix @@ -0,0 +1,86 @@ +{ stdenv, cmake, expat, fetchFromGitHub, jq, lib, libXdmcp, libXrandr, libffi +, libxcb, pkgconfig, python3, symlinkJoin, vulkan-headers, vulkan-loader +, vulkan-validation-layers, wayland, writeText, xcbutilkeysyms, xcbutilwm +, xlibsWrapper }: + +stdenv.mkDerivation rec { + pname = "vulkan-tools-lunarg"; + # The version must match that in vulkan-headers + version = "1.2.141.0"; + + src = (assert version == vulkan-headers.version; fetchFromGitHub { + owner = "LunarG"; + repo = "VulkanTools"; + rev = "sdk-${version}"; + sha256 = "1zsgc1hdmivdahzrarx7a5byhgnmm5ahz366l92fmdb8pffgq42g"; + fetchSubmodules = true; + }); + + nativeBuildInputs = [ cmake pkgconfig python3 jq ]; + + buildInputs = [ + expat + libXdmcp + libXrandr + libffi + libxcb + wayland + xcbutilkeysyms + xcbutilwm + xlibsWrapper + ]; + + cmakeFlags = [ + "-DVULKAN_HEADERS_INSTALL_DIR=${vulkan-headers}" + "-DVULKAN_LOADER_INSTALL_DIR=${vulkan-loader}" + "-DVULKAN_VALIDATIONLAYERS_INSTALL_DIR=${ + symlinkJoin { + name = "vulkan-validation-layers-merged"; + paths = [ vulkan-validation-layers.headers vulkan-validation-layers ]; + } + }" + ]; + + preConfigure = '' + # We need to run this update script which generates some source files, + # Remove the line in it which calls 'git submodule update' though. + # Also patch the scripts in ./scripts + update=update_external_sources.sh + patchShebangs $update + patchShebangs scripts/* + sed -i '/^git /d' $update + ./$update + ''; + + # Include absolute paths to layer libraries in their associated + # layer definition json files. + preFixup = '' + for f in "$out"/etc/vulkan/explicit_layer.d/*.json "$out"/etc/vulkan/implicit_layer.d/*.json; do + jq <"$f" >tmp.json ".layer.library_path = \"$out/lib/\" + .layer.library_path" + mv tmp.json "$f" + done + ''; + + enableParallelBuilding = true; + + # Same as vulkan-validation-layers + libraryPath = lib.strings.makeLibraryPath [ vulkan-loader ]; + dontPatchELF = true; + + # Help vulkan-loader find the validation layers + setupHook = writeText "setup-hook" '' + export XDG_CONFIG_DIRS=@out@/etc''${XDG_CONFIG_DIRS:+:''${XDG_CONFIG_DIRS}} + ''; + + meta = with stdenv.lib; { + description = "LunarG Vulkan Tools and Utilities"; + longDescription = '' + Tools to aid in Vulkan development including useful layers, trace and + replay, and tests. + ''; + homepage = "https://github.com/LunarG/VulkanTools"; + platforms = platforms.linux; + license = licenses.asl20; + maintainers = [ maintainers.expipiplus1 ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 36025ad06f5a..06536bb15cca 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -16159,6 +16159,7 @@ julia_15 = callPackage ../development/compilers/julia/1.5.nix { vulkan-headers = callPackage ../development/libraries/vulkan-headers { }; vulkan-loader = callPackage ../development/libraries/vulkan-loader { }; vulkan-tools = callPackage ../tools/graphics/vulkan-tools { }; + vulkan-tools-lunarg = callPackage ../tools/graphics/vulkan-tools-lunarg { }; vulkan-validation-layers = callPackage ../development/tools/vulkan-validation-layers { }; vtkWithQt5 = vtk.override { qtLib = qt514; }; |