109 lines
2.2 KiB
Nix
109 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";
|
|||
};
|
|||
})
|