fallout-ce: init at 1.0.0

This commit is contained in:
Hugh O'Brien 2023-08-19 10:34:09 -04:00
parent cf7ed5615d
commit a8f2eb6587
No known key found for this signature in database
GPG Key ID: C940B792DD697FBE
3 changed files with 99 additions and 0 deletions

View File

@ -0,0 +1,77 @@
{ cmake
, fpattern
, lib
, SDL2
, stdenv
, writeShellScript
, extraBuildInputs ? [ ]
, extraMeta
, pname
, version
, src
}:
let
launcher = writeShellScript "${pname}" ''
set -eu
assetDir="''${XDG_DATA_HOME:-$HOME/.local/share}/${pname}"
[ -d "$assetDir" ] || mkdir -p "$assetDir"
cd "$assetDir"
notice=0 fault=0
requiredFiles=(master.dat critter.dat)
for f in "''${requiredFiles[@]}"; do
if [ ! -f "$f" ]; then
echo "Required file $f not found in $PWD, note the files are case-sensitive"
notice=1 fault=1
fi
done
if [ ! -d "data/sound/music" ]; then
echo "data/sound/music directory not found in $PWD. This may prevent in-game music from functioning."
notice=1
fi
if [ $notice -ne 0 ]; then
echo "Please reference the installation instructions at https://github.com/alexbatalov/fallout2-ce"
fi
if [ $fault -ne 0 ]; then
exit $fault;
fi
exec @out@/libexec/${pname} "$@"
'';
in
stdenv.mkDerivation {
inherit pname version src;
nativeBuildInputs = [ cmake ];
buildInputs = [ SDL2 ] ++ extraBuildInputs;
hardeningDisable = [ "format" ];
cmakeBuildType = "RelWithDebInfo";
postPatch = ''
substituteInPlace third_party/fpattern/CMakeLists.txt \
--replace "FetchContent_Populate" "#FetchContent_Populate" \
--replace "{fpattern_SOURCE_DIR}" "${fpattern}/include" \
--replace "$/nix/" "/nix/"
'';
installPhase = ''
runHook preInstall
install -D ${pname} $out/libexec/${pname}
install -D ${launcher} $out/bin/${pname}
substituteInPlace $out/bin/${pname} --subst-var out
runHook postInstall
'';
meta = with lib; {
license = licenses.sustainableUse;
maintainers = with maintainers; [ hughobrien TheBrainScrambler ];
platforms = platforms.linux;
} // extraMeta;
}

View File

@ -0,0 +1,20 @@
{ callPackage
, fetchFromGitHub
}:
callPackage ./build.nix rec {
pname = "fallout-ce";
version = "1.0.0";
src = fetchFromGitHub {
owner = "alexbatalov";
repo = "fallout1-ce";
rev = "v${version}";
hash = "sha256-EvRkOlvtiVao63S0WRKKuHlhfkdTgc0m6GTyv4EfJFU=";
};
extraMeta = {
description = "A fully working re-implementation of Fallout, with the same original gameplay, engine bugfixes, and some quality of life improvements";
homepage = "https://github.com/alexbatalov/fallout1-ce";
};
}

View File

@ -37522,6 +37522,8 @@ with pkgs;
exult = callPackage ../games/exult { };
fallout-ce = callPackage ../games/fallout-ce/fallout-ce.nix { };
flare = callPackage ../games/flare {
inherit (darwin.apple_sdk.frameworks) Cocoa;
};