diff --git a/pkgs/by-name/gp/gpupad/glslang-use-combined-lib.patch b/pkgs/by-name/gp/gpupad/glslang-use-combined-lib.patch new file mode 100644 index 000000000000..945712009db1 --- /dev/null +++ b/pkgs/by-name/gp/gpupad/glslang-use-combined-lib.patch @@ -0,0 +1,15 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index a05c447..20a5c98 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -276,8 +276,8 @@ endif() + + # link glslang + find_package(glslang CONFIG REQUIRED) +-target_link_libraries(${PROJECT_NAME} PRIVATE glslang::OSDependent glslang::glslang +- glslang::MachineIndependent glslang::GenericCodeGen glslang::glslang-default-resource-limits ++target_link_libraries(${PROJECT_NAME} PRIVATE glslang::glslang ++ glslang::glslang-default-resource-limits + glslang::SPVRemapper glslang::SPIRV) + + # link SPIRV-Cross diff --git a/pkgs/by-name/gp/gpupad/package.nix b/pkgs/by-name/gp/gpupad/package.nix new file mode 100644 index 000000000000..7b076839a3d5 --- /dev/null +++ b/pkgs/by-name/gp/gpupad/package.nix @@ -0,0 +1,63 @@ +{ + lib, + stdenv, + fetchFromGitHub, + cmake, + + glslang, + imath, + ktx-tools, + openimageio, + qt6Packages, + spdlog, + spirv-cross, + vulkan-memory-allocator, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "gpupad"; + version = "2.4.0"; + + src = fetchFromGitHub { + owner = "houmain"; + repo = "gpupad"; + tag = finalAttrs.version; + hash = "sha256-yCoLvocfqYOwbsGn2r3+2iThDZCkRAUrNI71fIH7XXU="; + fetchSubmodules = true; + }; + + patches = [ + # the current version of glslang no longer separates its libs into sublibs + ./glslang-use-combined-lib.patch + ]; + + strictDeps = true; + + nativeBuildInputs = [ + cmake + qt6Packages.wrapQtAppsHook + ]; + + buildInputs = [ + glslang + imath # needed for openimageio + ktx-tools + openimageio + qt6Packages.qtbase + qt6Packages.qtdeclarative + qt6Packages.qtmultimedia + spdlog + spirv-cross + vulkan-memory-allocator + ]; + + meta = { + description = "Flexible GLSL and HLSL shader editor and IDE"; + homepage = "https://github.com/houmain/gpupad"; + changelog = "https://github.com/houmain/gpupad/blob/${finalAttrs.src.rev}/CHANGELOG.md"; + license = lib.licenses.gpl3Only; + maintainers = with lib.maintainers; [ tomasajt ]; + mainProgram = "gpupad"; + platforms = lib.platforms.linux; + }; +})