diff options
Diffstat (limited to 'pkgs/games/dwarf-fortress/dfhack/default.nix')
-rw-r--r-- | pkgs/games/dwarf-fortress/dfhack/default.nix | 69 |
1 files changed, 39 insertions, 30 deletions
diff --git a/pkgs/games/dwarf-fortress/dfhack/default.nix b/pkgs/games/dwarf-fortress/dfhack/default.nix index 11964c627da2..baad45298441 100644 --- a/pkgs/games/dwarf-fortress/dfhack/default.nix +++ b/pkgs/games/dwarf-fortress/dfhack/default.nix @@ -1,15 +1,16 @@ -{ stdenv, hostPlatform, lib, fetchFromGitHub, cmake, writeScriptBin, callPackage +{ stdenv, buildEnv, hostPlatform, lib, fetchurl, fetchFromGitHub, cmake, writeScriptBin, callPackage , perl, XMLLibXML, XMLLibXSLT, zlib , enableStoneSense ? false, allegro5, libGLU_combined +, enableTWBT ? true, twbt , SDL }: let - dfVersion = "0.44.10"; - version = "${dfVersion}-r1"; + dfVersion = "0.44.11"; + version = "${dfVersion}-alpha1"; # revision of library/xml submodule - xmlRev = "3c0bf63674d5430deadaf7befaec42f0ec1e8bc5"; + xmlRev = "853bd161270f50b21fe4b751de339458f78f56d6"; arch = if stdenv.system == "x86_64-linux" then "64" @@ -33,45 +34,53 @@ let fi ''; -in stdenv.mkDerivation rec { - name = "dfhack-${version}"; + dfhack = stdenv.mkDerivation rec { + name = "dfhack-base-${version}"; - # Beware of submodules - src = fetchFromGitHub { - owner = "DFHack"; - repo = "dfhack"; - sha256 = "15hz90lfg7asgm4bqa2yi2lkwzrljphb42q6616sriwzs66xia6h"; - rev = version; - fetchSubmodules = true; - }; + # Beware of submodules + src = fetchFromGitHub { + owner = "DFHack"; + repo = "dfhack"; + sha256 = "1vzrpdw0pn18calayf9dwqpyg37cb7wkzkvskxjx9nak5ilxzywm"; + rev = version; + fetchSubmodules = true; + }; - nativeBuildInputs = [ cmake perl XMLLibXML XMLLibXSLT fakegit ]; - # We don't use system libraries because dfhack needs old C++ ABI. - buildInputs = [ zlib SDL ] - ++ lib.optionals enableStoneSense [ allegro5 libGLU_combined ]; + patches = [ ./fix-stonesense.patch ]; + nativeBuildInputs = [ cmake perl XMLLibXML XMLLibXSLT fakegit ]; + # We don't use system libraries because dfhack needs old C++ ABI. + buildInputs = [ zlib SDL ] + ++ lib.optionals enableStoneSense [ allegro5 libGLU_combined ]; - preConfigure = '' - # Trick build system into believing we have .git - mkdir -p .git/modules/library/xml - touch .git/index .git/modules/library/xml/index - ''; + preConfigure = '' + # Trick build system into believing we have .git + mkdir -p .git/modules/library/xml + touch .git/index .git/modules/library/xml/index + ''; - preBuild = '' - export LD_LIBRARY_PATH="$PWD/depends/protobuf:$LD_LIBRARY_PATH" - ''; + preBuild = '' + export LD_LIBRARY_PATH="$PWD/depends/protobuf:$LD_LIBRARY_PATH" + ''; - cmakeFlags = [ "-DDFHACK_BUILD_ARCH=${arch}" "-DDOWNLOAD_RUBY=OFF" ] - ++ lib.optionals enableStoneSense [ "-DBUILD_STONESENSE=ON" "-DSTONESENSE_INTERNAL_SO=OFF" ]; + cmakeFlags = [ "-DDFHACK_BUILD_ARCH=${arch}" "-DDOWNLOAD_RUBY=OFF" ] + ++ lib.optionals enableStoneSense [ "-DBUILD_STONESENSE=ON" "-DSTONESENSE_INTERNAL_SO=OFF" ]; - enableParallelBuilding = true; + enableParallelBuilding = true; + }; +in + +buildEnv { + name = "dfhack-${version}"; passthru = { inherit version dfVersion; }; + paths = [ dfhack ] ++ lib.optionals enableTWBT [ twbt.lib ]; + meta = with stdenv.lib; { description = "Memory hacking library for Dwarf Fortress and a set of tools that use it"; homepage = https://github.com/DFHack/dfhack/; license = licenses.zlib; platforms = [ "x86_64-linux" "i686-linux" ]; - maintainers = with maintainers; [ robbinch a1russell abbradar ]; + maintainers = with maintainers; [ robbinch a1russell abbradar numinit ]; }; } |