depot/pkgs/by-name/hy/hyperspeedcube/package.nix
Luke Granger-Brown 57725ef3ec Squashed 'third_party/nixpkgs/' content from commit 76612b17c0ce
git-subtree-dir: third_party/nixpkgs
git-subtree-split: 76612b17c0ce71689921ca12d9ffdc9c23ce40b2
2024-11-10 23:59:47 +00:00

130 lines
2.4 KiB
Nix

{ cmake
, alsa-lib
, atk
, cairo
, directx-shader-compiler
, expat
, fetchFromGitHub
, fontconfig
, freetype
, gdk-pixbuf
, glib
, gtk3
, harfbuzz
, lib
, libGL
, libX11
, libxcb
, libXcursor
, libXi
, libxkbcommon
, libXrandr
, makeWrapper
, mold
, pango
, pkg-config
, python3
, rustPlatform
, shaderc
, vulkan-extension-layer
, vulkan-headers
, vulkan-loader
, vulkan-tools
, vulkan-tools-lunarg
, vulkan-validation-layers
, wayland
, wrapGAppsHook3
, yq
, zlib
}:
rustPlatform.buildRustPackage rec {
pname = "hyperspeedcube";
version = "1.0.7";
src = fetchFromGitHub {
owner = "HactarCE";
repo = "Hyperspeedcube";
rev = "v${version}";
hash = "sha256-ykFf0dfc8j88Y25tx+G9lic09eHDz3WR+h6+owTeWbU=";
};
cargoLock = {
lockFile = ./Cargo.lock;
outputHashes = {
"key-names-1.5.1" = "sha256-ZO3mlCoUHCaMnxD2vQno6GNx0+JmwZ8OiqpyveiVfvc=";
};
};
nativeBuildInputs = [
cmake
pkg-config
(lib.getDev libxcb)
python3
makeWrapper
wrapGAppsHook3
];
buildInputs = [
alsa-lib
atk
cairo
directx-shader-compiler
expat
fontconfig
freetype
gdk-pixbuf
glib
gtk3
harfbuzz
mold
pango
shaderc
zlib
# for execution errors (see https://github.com/emilk/egui/discussions/1587)
libxkbcommon
libGL
# WINIT_UNIX_BACKEND=wayland
wayland
# WINIT_UNIX_BACKEND=x11
libXcursor
libXrandr
libXi
libX11
vulkan-headers
vulkan-loader
vulkan-tools
vulkan-tools-lunarg
vulkan-extension-layer
vulkan-validation-layers
yq
];
postInstall = ''
patchelf \
--add-needed ${vulkan-loader}/lib/libvulkan.so.1 \
--add-needed ${libGL}/lib/libEGL.so.1 \
$out/bin/hyperspeedcube
wrapProgram $out/bin/hyperspeedcube --set WAYLAND_DISPLAY "" --set XDG_SESSION_TYPE ""
touch $out/bin/nonportable
'';
meta = {
description = "Hyperspeedcube is a 3D and 4D Rubik's cube simulator";
longDescription = ''
Hyperspeedcube is a modern, beginner-friendly 3D and 4D Rubik's cube
simulator with customizable mouse and keyboard controls and advanced
features for speedsolving. It's been used to break numerous speedsolving
records and runs on all major operating systems plus the web.
'';
homepage = "https://ajfarkas.dev/hyperspeedcube/";
license = lib.licenses.cc-by-nc-sa-40;
maintainers = [ lib.maintainers.omnipotententity ];
platforms = [ "x86_64-linux" ];
};
}