nixpkgs/pkgs/by-name/hy/hyperspeedcube/package.nix
2024-07-14 04:32:56 +02:00

131 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" ];
};
}