108 lines
2.2 KiB
Nix
108 lines
2.2 KiB
Nix
{
|
|
stdenv,
|
|
cmake,
|
|
fetchFromGitHub,
|
|
freetype,
|
|
pkg-config,
|
|
SDL2,
|
|
libpng,
|
|
libjpeg,
|
|
zlib,
|
|
libogg,
|
|
libvorbis,
|
|
libarchive,
|
|
iconv,
|
|
openssl,
|
|
curl,
|
|
libcpr,
|
|
rapidjson,
|
|
writeShellScriptBin,
|
|
makeDesktopItem,
|
|
lib,
|
|
copyDesktopItems,
|
|
}:
|
|
|
|
stdenv.mkDerivation (finalAttrs: {
|
|
pname = "unnamed-sdvx-clone";
|
|
version = "0.6.0";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "Drewol";
|
|
repo = "unnamed-sdvx-clone";
|
|
rev = "refs/tags/v${finalAttrs.version}";
|
|
fetchSubmodules = true;
|
|
hash = "sha256-wuf7xZztoxzNQJzlJOfH/Dc25/717NevBx7E0RDybho=";
|
|
};
|
|
|
|
nativeBuildInputs = [
|
|
cmake
|
|
pkg-config
|
|
copyDesktopItems
|
|
];
|
|
|
|
buildInputs = [
|
|
freetype
|
|
SDL2
|
|
libpng
|
|
libjpeg
|
|
zlib
|
|
libogg
|
|
libvorbis
|
|
libarchive
|
|
iconv
|
|
openssl
|
|
curl
|
|
libcpr
|
|
rapidjson
|
|
];
|
|
|
|
cmakeFlags = [
|
|
"-DUSE_SYSTEM_CPR=ON"
|
|
"-DCMAKE_BUILD_TYPE=Release"
|
|
];
|
|
|
|
# Wrapper script because the things are hardcoded so we just
|
|
# change the game directory via the built in option uhhhhh
|
|
wrapperScript = writeShellScriptBin "usc-game-wrapped" ''
|
|
DATA_PATH="''${XDG_CONFIG_HOME:-$HOME/.local/share}/usc"
|
|
mkdir -p $DATA_PATH
|
|
|
|
cp -r @out@/bin/audio $DATA_PATH
|
|
cp -r @out@/bin/fonts $DATA_PATH
|
|
cp -r @out@/bin/skins $DATA_PATH
|
|
cp -r @out@/bin/LightPlugins $DATA_PATH
|
|
|
|
find $DATA_PATH -type d -exec chmod 755 {} +
|
|
find $DATA_PATH -type f -exec chmod 644 {} +
|
|
|
|
@out@/bin/usc-game -gamedir="$DATA_PATH"
|
|
'';
|
|
|
|
desktopItems = [
|
|
(makeDesktopItem {
|
|
name = "Unnamed SDVX Clone";
|
|
exec = "usc-game-wrapped";
|
|
comment = "Unnamed SDVX Clone";
|
|
desktopName = "Unnamed SDVX Clone";
|
|
categories = [ "Game" ];
|
|
})
|
|
];
|
|
|
|
installPhase = ''
|
|
runHook preInstall
|
|
mkdir -p $out/bin
|
|
substituteAll $wrapperScript/bin/usc-game-wrapped $out/bin/usc-game-wrapped
|
|
chmod +x $out/bin/usc-game-wrapped
|
|
mkdir $out/share
|
|
cp -r /build/source/bin $out
|
|
runHook postInstall
|
|
'';
|
|
|
|
meta = {
|
|
description = "A game based on K-Shoot MANIA and Sound Voltex";
|
|
license = lib.licenses.mit;
|
|
maintainers = with lib.maintainers; [ sako ];
|
|
platforms = lib.platforms.linux;
|
|
mainProgram = "usc-game-wrapped";
|
|
};
|
|
})
|