131 lines
2.5 KiB
Nix
131 lines
2.5 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" ];
|
|
};
|
|
}
|