aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/games/openxray/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/games/openxray/default.nix')
-rw-r--r--infra/libkookie/nixpkgs/pkgs/games/openxray/default.nix77
1 files changed, 77 insertions, 0 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/games/openxray/default.nix b/infra/libkookie/nixpkgs/pkgs/games/openxray/default.nix
new file mode 100644
index 000000000000..304a810c3db2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/games/openxray/default.nix
@@ -0,0 +1,77 @@
+{ stdenv, fetchFromGitHub, cmake, glew, freeimage, liblockfile
+, openal, libtheora, SDL2, lzo, libjpeg, libogg, tbb
+, pcre, makeWrapper, fetchpatch }:
+
+let
+ version = "784-october-preview";
+
+ src = fetchFromGitHub {
+ owner = "OpenXRay";
+ repo = "xray-16";
+ rev = version;
+ sha256 = "0q0h70gbpscdvn45wpxicljj4ji3cd2maijd5b7jhr1695h61q5y";
+ fetchSubmodules = true;
+ };
+
+ # https://github.com/OpenXRay/xray-16/issues/518
+ cryptopp = stdenv.mkDerivation {
+ pname = "cryptopp";
+ version = "5.6.5";
+
+ inherit src;
+
+ postUnpack = "sourceRoot+=/Externals/cryptopp";
+
+ makeFlags = [ "PREFIX=${placeholder "out"}" ];
+ enableParallelBuilding = true;
+
+ doCheck = true;
+
+ meta = with stdenv.lib; {
+ description = "Crypto++, a free C++ class library of cryptographic schemes";
+ homepage = "https://cryptopp.com/";
+ license = with licenses; [ boost publicDomain ];
+ platforms = platforms.all;
+ };
+ };
+in stdenv.mkDerivation rec {
+ pname = "OpenXRay";
+ inherit version src;
+
+ hardeningDisable = [ "format" ];
+ cmakeFlags = [ "-DCMAKE_INCLUDE_PATH=${cryptopp}/include/cryptopp" ];
+
+ patches = [
+ (fetchpatch {
+ url = "https://github.com/OpenXRay/xray-16/commit/4532cba11e98808c92e56e246188863261ef9201.patch";
+ sha256 = "1hrm4rkkg946ai95krzpf3isryzbb2vips63gxf481plv4vlcfc9";
+ })
+ ];
+
+ buildInputs = [
+ glew freeimage liblockfile openal cryptopp libtheora SDL2 lzo
+ libjpeg libogg tbb pcre
+ ];
+ nativeBuildInputs = [ cmake makeWrapper ];
+
+ preConfigure = ''
+ substituteInPlace src/xrCore/xrCore.cpp \
+ --replace /usr/share $out/share
+ '';
+
+ postInstall = ''
+ # needed because of SDL_LoadObject library loading code
+ wrapProgram $out/bin/xr_3da \
+ --prefix LD_LIBRARY_PATH : $out/lib
+ '';
+
+ meta = with stdenv.lib; {
+ description = "X-Ray Engine 1.6 expansion. Original version was used in S.T.A.L.K.E.R.: Call of Pripyat";
+ homepage = src.meta.homepage;
+ license = licenses.unfree // {
+ url = "https://github.com/OpenXRay/xray-16/blob/xd_dev/License.txt";
+ };
+ maintainers = [ maintainers.gnidorah ];
+ platforms = [ "x86_64-linux" "i686-linux" ];
+ };
+}