Man nix fucking sucks for managing vulkan/opengl projects on other distros

This commit is contained in:
Warwick 2025-04-22 17:57:31 +01:00
parent 5a1a85885a
commit a3657eb0e4
4 changed files with 37 additions and 0 deletions

View file

@ -25,6 +25,7 @@ message(STATUS "wgpu include dir: ${WGPU_INCLUDE}")
find_package(SDL3 REQUIRED)
find_package(SDL3_image REQUIRED)
find_package(cglm REQUIRED)
find_package(Vulkan REQUIRED)
include(FeatureSummary)
feature_summary(WHAT PACKAGES_FOUND)
@ -51,6 +52,7 @@ target_include_directories(${PROJECT_NAME} PRIVATE
${SDL3_image_INCLUDE_DIRS}
${GLFW_INCLUDE_DIRS}
${CGLM_INCLUDE_DIRS}
${Vulkan_INCLUDE_DIRS}
)
target_link_libraries(${PROJECT_NAME}
@ -58,4 +60,5 @@ target_link_libraries(${PROJECT_NAME}
${SDL3_LIBRARIES}
${SDL3_image_LIBRARIES}
${CGLM_LIBRARIES}
${Vulkan_LIBRARIES}
)

31
default.nix Normal file
View file

@ -0,0 +1,31 @@
{ pkgs ? import <nixpkgs> {} }:
pkgs.stdenv.mkDerivation {
name = "webgpu";
src = ./.;
nativeBuildInputs = with pkgs; [
cmake
wgpu-native
cglm
sdl3
sdl3-image
nixgl.nixVulkanIntel
];
buildInputs = with pkgs; [
vulkan-headers
vulkan-loader
vulkan-tools
];
buildPhase = ''
cmake .
make
'';
installPhase = ''
mkdir -p $out/bin
cp webgpu $out/bin
'';
}

View file

@ -13,6 +13,7 @@
overlays = [ nixgl.overlay ];
};
in {
packages.x86_64-linux.default = (import ./default.nix { inherit pkgs; });
devShells.x86_64-linux.default = (import ./shell.nix { inherit pkgs; });
};
}

View file

@ -10,6 +10,8 @@ pkgs.mkShell
sdl3-image
nixgl.nixVulkanIntel
vulkan-headers
vulkan-loader
vulkan-tools
];
shellHook = ''
export PS1="(webgpu) $PS1"