Loading pkgs/games/fallout-ce/build.nix 0 → 100644 +77 −0 Original line number Diff line number Diff line { 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; } pkgs/games/fallout-ce/fallout-ce.nix 0 → 100644 +20 −0 Original line number Diff line number Diff line { 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"; }; } pkgs/top-level/all-packages.nix +2 −0 Original line number Diff line number Diff line Loading @@ -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; }; Loading
pkgs/games/fallout-ce/build.nix 0 → 100644 +77 −0 Original line number Diff line number Diff line { 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; }
pkgs/games/fallout-ce/fallout-ce.nix 0 → 100644 +20 −0 Original line number Diff line number Diff line { 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"; }; }
pkgs/top-level/all-packages.nix +2 −0 Original line number Diff line number Diff line Loading @@ -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; };