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 REQUIRED)
find_package(SDL3_image REQUIRED) find_package(SDL3_image REQUIRED)
find_package(cglm REQUIRED) find_package(cglm REQUIRED)
find_package(Vulkan REQUIRED)
include(FeatureSummary) include(FeatureSummary)
feature_summary(WHAT PACKAGES_FOUND) feature_summary(WHAT PACKAGES_FOUND)
@ -51,6 +52,7 @@ target_include_directories(${PROJECT_NAME} PRIVATE
${SDL3_image_INCLUDE_DIRS} ${SDL3_image_INCLUDE_DIRS}
${GLFW_INCLUDE_DIRS} ${GLFW_INCLUDE_DIRS}
${CGLM_INCLUDE_DIRS} ${CGLM_INCLUDE_DIRS}
${Vulkan_INCLUDE_DIRS}
) )
target_link_libraries(${PROJECT_NAME} target_link_libraries(${PROJECT_NAME}
@ -58,4 +60,5 @@ target_link_libraries(${PROJECT_NAME}
${SDL3_LIBRARIES} ${SDL3_LIBRARIES}
${SDL3_image_LIBRARIES} ${SDL3_image_LIBRARIES}
${CGLM_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 ]; overlays = [ nixgl.overlay ];
}; };
in { in {
packages.x86_64-linux.default = (import ./default.nix { inherit pkgs; });
devShells.x86_64-linux.default = (import ./shell.nix { inherit pkgs; }); devShells.x86_64-linux.default = (import ./shell.nix { inherit pkgs; });
}; };
} }

View file

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