depot/third_party/nixpkgs/pkgs/by-name/un/unnamed-sdvx-clone/package.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";
};
})