f34ce41345
GitOrigin-RevId: b73c2221a46c13557b1b3be9c2070cc42cf01eb3
130 lines
2.4 KiB
Nix
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" ];
|
|
};
|
|
}
|