shader-slang: 2025.14.3 -> 2025.15 (#437524)

Changed files
+17 -107
pkgs
-83
pkgs/by-name/sh/shader-slang/1-find-packages.patch
···
-
diff --git a/CMakeLists.txt b/CMakeLists.txt
-
index 549e465ac..546c94607 100644
-
--- a/CMakeLists.txt
-
+++ b/CMakeLists.txt
-
@@ -175,6 +175,8 @@ advanced_option(
-
"Build using system unordered dense"
-
OFF
-
)
-
+advanced_option(SLANG_USE_SYSTEM_SPIRV_TOOLS "Build using system SPIR-V tools library" OFF)
-
+advanced_option(SLANG_USE_SYSTEM_GLSLANG "Build using system glslang library" OFF)
-
-
option(
-
SLANG_SPIRV_HEADERS_INCLUDE_DIR
-
@@ -404,6 +406,34 @@ if(${SLANG_USE_SYSTEM_UNORDERED_DENSE})
-
find_package(unordered_dense CONFIG QUIET)
-
endif()
-
-
+if(${SLANG_USE_SYSTEM_MINIZ})
-
+ find_package(miniz REQUIRED)
-
+ add_library(miniz ALIAS miniz::miniz)
-
+endif()
-
+
-
+if(${SLANG_USE_SYSTEM_LZ4})
-
+ find_package(lz4 REQUIRED)
-
+ add_library(lz4_static ALIAS LZ4::lz4)
-
+endif()
-
+
-
+if(${SLANG_USE_SYSTEM_VULKAN_HEADERS})
-
+ find_package(VulkanHeaders REQUIRED)
-
+endif()
-
+
-
+if(${SLANG_USE_SYSTEM_SPIRV_HEADERS})
-
+ find_package(SPIRV-Headers REQUIRED)
-
+ add_library(SPIRV-Headers ALIAS SPIRV-Headers::SPIRV-Headers)
-
+endif()
-
+
-
+if(${SLANG_USE_SYSTEM_SPIRV_TOOLS})
-
+ find_package(SPIRV-Tools REQUIRED)
-
+endif()
-
+
-
+if(${SLANG_USE_SYSTEM_GLSLANG})
-
+ find_package(glslang REQUIRED)
-
+ add_library(glslang ALIAS glslang::glslang)
-
+endif()
-
+
-
add_subdirectory(external)
-
-
# webgpu_dawn is only available as a fetched shared library, since Dawn's nested source
-
diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt
-
index 801cae4d6..d45150118 100644
-
--- a/external/CMakeLists.txt
-
+++ b/external/CMakeLists.txt
-
@@ -133,6 +133,7 @@ if(SLANG_ENABLE_SLANG_GLSLANG)
-
)
-
endif()
-
-
+if(NOT ${SLANG_USE_SYSTEM_SPIRV_TOOLS})
-
# SPIRV-Tools
-
set(SPIRV_TOOLS_BUILD_STATIC ON)
-
set(SPIRV_WERROR OFF)
-
@@ -148,11 +149,14 @@ if(SLANG_ENABLE_SLANG_GLSLANG)
-
${system}
-
)
-
endif()
-
+endif()
-
-
+if(NOT ${SLANG_USE_SYSTEM_GLSLANG})
-
# glslang
-
set(SKIP_GLSLANG_INSTALL ON)
-
set(ENABLE_OPT ON)
-
set(ENABLE_PCH OFF)
-
+ set(ALLOW_EXTERNAL_SPIRV_TOOLS ${SLANG_USE_SYSTEM_SPIRV_TOOLS})
-
if(NOT SLANG_OVERRIDE_GLSLANG_PATH)
-
add_subdirectory(glslang EXCLUDE_FROM_ALL ${system})
-
else()
-
@@ -164,6 +168,7 @@ if(SLANG_ENABLE_SLANG_GLSLANG)
-
)
-
endif()
-
endif()
-
+endif()
-
-
# imgui
-
add_library(imgui INTERFACE)
pkgs/by-name/sh/shader-slang/2-shared-llvm.patch pkgs/by-name/sh/shader-slang/1-shared-llvm.patch
pkgs/by-name/sh/shader-slang/3-glslang-15.patch pkgs/by-name/sh/shader-slang/2-glslang-15.patch
+17 -24
pkgs/by-name/sh/shader-slang/package.nix
···
libxml2,
libX11,
glslang,
-
llvmPackages_13,
+
llvmPackages_14,
versionCheckHook,
gitUpdater,
···
stdenv.mkDerivation (finalAttrs: {
pname = "shader-slang";
-
version = "2025.14.3";
+
version = "2025.15";
src = fetchFromGitHub {
owner = "shader-slang";
repo = "slang";
tag = "v${finalAttrs.version}";
-
hash = "sha256-tHLm0XmS5vV+o3VmFHWG8wZnrb0p63Nz1zVyvc/e5+s=";
+
hash = "sha256-m1Xn8OybEDJYrR5c5eJZNvDhXtnydQ5lx1v2PqyJu5c=";
fetchSubmodules = true;
};
-
patches = [
-
# Slang's build definitions do not support using system provided cmake packages
-
# for its dependencies.
-
# While it does come with "SLANG_USE_SYSTEM_XYZ" flags, these expect Slang to be
-
# imported into some other CMake build that already provides the necessary target.
-
# This patch adds the required `find_package` calls and sets up target aliases where needed.
-
./1-find-packages.patch
-
]
-
++ lib.optionals withSharedLLVM [
-
# Upstream statically links libllvm and libclang++, resulting in a ~5x increase in binary size.
-
./2-shared-llvm.patch
-
]
-
++ lib.optionals withGlslang [
-
# Upstream depends on glslang 13 and there are minor breaking changes in glslang 15, the version
-
# we ship in nixpkgs.
-
./3-glslang-15.patch
-
];
+
patches =
+
lib.optionals withSharedLLVM [
+
# Upstream statically links libllvm and libclang++, resulting in a ~5x increase in binary size.
+
./1-shared-llvm.patch
+
]
+
++ lib.optionals withGlslang [
+
# Upstream depends on glslang 13 and there are minor breaking changes in glslang 15, the version
+
# we ship in nixpkgs.
+
./2-glslang-15.patch
+
];
outputs = [
"out"
···
libX11
]
++ lib.optionals withLLVM [
-
# Slang only supports LLVM 13:
-
# https://github.com/shader-slang/slang/blob/master/docs/building.md#llvm-support
-
llvmPackages_13.llvm
-
llvmPackages_13.libclang
+
# Slang only supports LLVM 14:
+
# https://github.com/shader-slang/slang/blob/v2025.15/docs/building.md#llvm-support
+
llvmPackages_14.llvm
+
llvmPackages_14.libclang
]
++ lib.optionals withGlslang [
# SPIRV-tools is included in glslang.