diff options
Diffstat (limited to 'pkgs/games/dwarf-fortress/dfhack')
-rw-r--r-- | pkgs/games/dwarf-fortress/dfhack/default.nix | 34 | ||||
-rw-r--r-- | pkgs/games/dwarf-fortress/dfhack/skip-ruby.patch | 16 | ||||
-rw-r--r-- | pkgs/games/dwarf-fortress/dfhack/use-system-libraries.patch | 94 |
3 files changed, 38 insertions, 106 deletions
diff --git a/pkgs/games/dwarf-fortress/dfhack/default.nix b/pkgs/games/dwarf-fortress/dfhack/default.nix index 176971920071..74dddbe8df99 100644 --- a/pkgs/games/dwarf-fortress/dfhack/default.nix +++ b/pkgs/games/dwarf-fortress/dfhack/default.nix @@ -1,16 +1,23 @@ { stdenv, fetchgit, cmake, writeScriptBin , perl, XMLLibXML, XMLLibXSLT , zlib -, jsoncpp, protobuf, tinyxml }: let - dfVersion = "0.43.03"; - version = "${dfVersion}-r1"; + dfVersion = "0.43.05"; + # version = "${dfVersion}-r1"; + # rev = "refs/tags/${version}"; + version = "${dfVersion}-alpha2"; + rev = "13eb5e702beb6d8e40c0e17be64cda9a8d9d1efb"; + sha256 = "18i8qfhhfnfrpa519akwagn73q2zns1pry2sdfag63vffxh60zr5"; - rev = "refs/tags/${version}"; # revision of library/xml submodule - xmlRev = "98cc1e01886aaea161d651cf97229ad08e9782b0"; + xmlRev = "84f6e968a9ec5515f9dbef96b445e3fc83f83e8b"; + + arch = + if stdenv.system == "x86_64-linux" then "64" + else if stdenv.system == "i686-linux" then "32" + else throw "Unsupported architecture"; fakegit = writeScriptBin "git" '' #! ${stdenv.shell} @@ -35,17 +42,20 @@ in stdenv.mkDerivation rec { # Beware of submodules src = fetchgit { url = "https://github.com/DFHack/dfhack"; - inherit rev; - sha256 = "0m5kqpaz0ypji4c32w0hhbsicvgvnjh56pqvq7af6pqqnyg1nzcx"; + inherit rev sha256; }; - patches = [ ./use-system-libraries.patch ]; + patches = [ ./skip-ruby.patch ]; nativeBuildInputs = [ cmake perl XMLLibXML XMLLibXSLT fakegit ]; - # we can't use native Lua; upstream uses private headers - buildInputs = [ zlib jsoncpp protobuf tinyxml ]; + # We don't use system libraries because dfhack needs old C++ ABI. + buildInputs = [ zlib ]; + + preBuild = '' + export LD_LIBRARY_PATH="$PWD/depends/protobuf:$LD_LIBRARY_PATH" + ''; - cmakeFlags = [ "-DEXTERNAL_TINYXML=ON" ]; + cmakeFlags = [ "-DDFHACK_BUILD_ARCH=${arch}" ]; enableParallelBuilding = true; @@ -55,7 +65,7 @@ in stdenv.mkDerivation rec { 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 = [ "i686-linux" ]; + platforms = [ "x86_64-linux" "i686-linux" ]; maintainers = with maintainers; [ robbinch a1russell abbradar ]; }; } diff --git a/pkgs/games/dwarf-fortress/dfhack/skip-ruby.patch b/pkgs/games/dwarf-fortress/dfhack/skip-ruby.patch new file mode 100644 index 000000000000..619060dc2534 --- /dev/null +++ b/pkgs/games/dwarf-fortress/dfhack/skip-ruby.patch @@ -0,0 +1,16 @@ +diff -ru3 dfhack-ae59b4f/plugins/ruby/CMakeLists.txt dfhack-ae59b4f-new/plugins/ruby/CMakeLists.txt +--- dfhack-ae59b4f/plugins/ruby/CMakeLists.txt 1970-01-01 03:00:01.000000000 +0300 ++++ dfhack-ae59b4f-new/plugins/ruby/CMakeLists.txt 2016-11-23 15:29:09.907286546 +0300 +@@ -1,3 +1,4 @@ ++IF(FALSE) + IF (APPLE) + SET(RUBYLIB ${CMAKE_CURRENT_SOURCE_DIR}/osx${DFHACK_BUILD_ARCH}/libruby.dylib) + SET(RUBYLIB_INSTALL_NAME "libruby.dylib") +@@ -48,6 +49,7 @@ + "482c1c418f4ee1a5f04203eee1cda0ef") + ENDIF() + ENDIF() ++ENDIF() + + IF (APPLE OR UNIX) + SET(RUBYAUTOGEN ruby-autogen-gcc.rb) diff --git a/pkgs/games/dwarf-fortress/dfhack/use-system-libraries.patch b/pkgs/games/dwarf-fortress/dfhack/use-system-libraries.patch deleted file mode 100644 index e33fec9f87ec..000000000000 --- a/pkgs/games/dwarf-fortress/dfhack/use-system-libraries.patch +++ /dev/null @@ -1,94 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 956edfc..fb0e6bc 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -160,8 +160,6 @@ ELSEIF(MSVC) - SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /Od") - ENDIF() - --# use shared libraries for protobuf --ADD_DEFINITIONS(-DPROTOBUF_USE_DLLS) - ADD_DEFINITIONS(-DLUA_BUILD_AS_DLL) - - if(APPLE) -@@ -182,10 +180,8 @@ else() - set(ZLIB_ROOT /usr/lib/i386-linux-gnu) - endif() - find_package(ZLIB REQUIRED) --include_directories(depends/protobuf) - include_directories(depends/lua/include) - include_directories(depends/md5) --include_directories(depends/jsoncpp) - - # Support linking against external tinyxml - # If we find an external tinyxml, set the DFHACK_TINYXML variable to "tinyxml" -diff --git a/depends/CMakeLists.txt b/depends/CMakeLists.txt -index d8442b1..b47dc2a 100644 ---- a/depends/CMakeLists.txt -+++ b/depends/CMakeLists.txt -@@ -1,7 +1,6 @@ - #list depends here. - add_subdirectory(lua) - add_subdirectory(md5) --add_subdirectory(protobuf) - - # Don't build tinyxml if it's being externally linked against. - if(NOT TinyXML_FOUND) -@@ -9,7 +8,6 @@ if(NOT TinyXML_FOUND) - endif() - - add_subdirectory(tthread) --add_subdirectory(jsoncpp) - # build clsocket static and only as a dependency. Setting those options here overrides its own default settings. - OPTION(CLSOCKET_SHARED "Build clsocket lib as shared." OFF) - OPTION(CLSOCKET_DEP_ONLY "Build for use inside other CMake projects as dependency." ON) -diff --git a/library/CMakeLists.txt b/library/CMakeLists.txt -index d3e3480..5d4b572 100644 ---- a/library/CMakeLists.txt -+++ b/library/CMakeLists.txt -@@ -223,10 +223,10 @@ LIST(APPEND PROJECT_SOURCES ${PROJECT_PROTO_SRCS}) - - ADD_CUSTOM_COMMAND( - OUTPUT ${PROJECT_PROTO_SRCS} ${PROJECT_PROTO_HDRS} -- COMMAND protoc-bin -I=${CMAKE_CURRENT_SOURCE_DIR}/proto/ -+ COMMAND protoc -I=${CMAKE_CURRENT_SOURCE_DIR}/proto/ - --cpp_out=dllexport_decl=DFHACK_EXPORT:${CMAKE_CURRENT_SOURCE_DIR}/proto/ - ${PROJECT_PROTOS} -- DEPENDS protoc-bin ${PROJECT_PROTOS} -+ DEPENDS ${PROJECT_PROTOS} - ) - - # Merge headers into sources -diff --git a/plugins/CMakeLists.txt b/plugins/CMakeLists.txt -index c24b940..afeb888 100644 ---- a/plugins/CMakeLists.txt -+++ b/plugins/CMakeLists.txt -@@ -47,11 +47,11 @@ STRING(REPLACE ".proto" ".pb.h" PROJECT_PROTO_HDRS "${PROJECT_PROTOS}") - - ADD_CUSTOM_COMMAND( - OUTPUT ${PROJECT_PROTO_SRCS} ${PROJECT_PROTO_HDRS} -- COMMAND protoc-bin -I=${dfhack_SOURCE_DIR}/library/proto/ -+ COMMAND protoc -I=${dfhack_SOURCE_DIR}/library/proto/ - -I=${CMAKE_CURRENT_SOURCE_DIR}/proto/ - --cpp_out=${CMAKE_CURRENT_SOURCE_DIR}/proto/ - ${PROJECT_PROTOS} -- DEPENDS protoc-bin ${PROJECT_PROTOS} -+ DEPENDS ${PROJECT_PROTOS} - ) - add_custom_target(generate_proto DEPENDS ${PROJECT_PROTO_SRCS} ${PROJECT_PROTO_HDRS}) - -diff --git a/plugins/stockpiles/CMakeLists.txt b/plugins/stockpiles/CMakeLists.txt -index 713c3d6..dd2d4cb 100644 ---- a/plugins/stockpiles/CMakeLists.txt -+++ b/plugins/stockpiles/CMakeLists.txt -@@ -33,8 +33,8 @@ LIST(APPEND PROJECT_SRCS ${PROJECT_HDRS}) - #Generate sources from our proto files and store them in the source tree - ADD_CUSTOM_COMMAND( - OUTPUT ${PROJECT_PROTO_SRCS} ${PROJECT_PROTO_HDRS} --COMMAND protoc-bin -I=${CMAKE_CURRENT_SOURCE_DIR}/proto/ --cpp_out=${CMAKE_CURRENT_SOURCE_DIR}/proto/ ${PROJECT_PROTOS} --DEPENDS protoc-bin ${PROJECT_PROTOS} -+COMMAND protoc -I=${CMAKE_CURRENT_SOURCE_DIR}/proto/ --cpp_out=${CMAKE_CURRENT_SOURCE_DIR}/proto/ ${PROJECT_PROTOS} -+DEPENDS ${PROJECT_PROTOS} - ) - - IF(WIN32) |