diff options
Diffstat (limited to 'games-util/dfhack/dfhack-0.43.05.2.ebuild')
| -rw-r--r-- | games-util/dfhack/dfhack-0.43.05.2.ebuild | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/games-util/dfhack/dfhack-0.43.05.2.ebuild b/games-util/dfhack/dfhack-0.43.05.2.ebuild new file mode 100644 index 00000000..ad4f060f --- /dev/null +++ b/games-util/dfhack/dfhack-0.43.05.2.ebuild @@ -0,0 +1,113 @@ +# By eroen <eroen-overlay@occam.eroen.eu>, 2012 - 2017 +# Permission to use, copy, modify, and/or distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. + +EAPI=6 + +inherit versionator git-r3 cmake-utils + +df_PV=$(get_version_component_range 1-3) + +DESCRIPTION="Memory hacking library for Dwarf Fortress and a set of tools that use it" +HOMEPAGE="http://github.com/DFHack/dfhack" +EGIT_REPO_URI="https://github.com/DFHack/dfhack.git" +if [[ $PV == *.9999 ]]; then + EGIT_BRANCH="develop" +elif [[ $PV == *_alpha* || $PV == *_beta* ]]; then + EGIT_MIN_CLONE="single" + EGIT_COMMIT="${PV/_alpha/-alpha}" + EGIT_COMMIT="${EGIT_COMMIT/_beta/-beta}" +elif [[ $PV == *_pre* ]]; then + EGIT_MIN_CLONE_TYPE=mirror + EGIT_COMMIT="X" + xml_EGIT_COMMIT="X" +else + EGIT_COMMIT="${PV%.*}-r${PV##*.}" +fi + +KEYWORDS="-* ~amd64" # ~x86 + +CMAKE_MIN_VERSION=2.8.0 +CMAKE_REMOVE_MODULES_LIST="FindCurses FindDoxygen CMakeVS10FindMake" + +LICENSE="ZLIB MIT BSD-2 BSD CC-BY-SA-3.0" +SLOT="0" +IUSE="ruby" + +# dfhack bundles lua (5.3 as of 0.43.05-alpha1) +HDEPEND=" + >=sys-devel/gcc-4.5 + dev-lang/perl + dev-perl/XML-LibXML + dev-perl/XML-LibXSLT + " +LIBRARY_DEPEND=" + sys-libs/zlib + " +DEPEND="${LIBRARY_DEPEND} + ${HDEPEND}" +RDEPEND="${LIBRARY_DEPEND} + ruby? ( dev-lang/ruby:2.2 ) + ~games-roguelike/dwarf-fortress-$df_PV" + +PATCHES=( "$FILESDIR"/dfhack-$PV ) + +src_unpack() { + git-r3_src_unpack + if [[ -n $xml_EGIT_COMMIT ]]; then + cd "$S/library/xml" || die + git checkout "$xml_EGIT_COMMIT" || die + fi +} + +src_prepare() { + default + sed -e "s:libruby\.so:libruby22.so:" \ + -i plugins/ruby/ruby.cpp || die + + local install="\${HOME}/.dwarf-fortress-${df_PV}_dfhack" exe="./libs/Dwarf_Fortress" + sed -e "s:^install=.*:install=${install}:" \ + -e "s:^exe=.*:exe=\"${exe}\":" \ + "$FILESDIR"/dfhack-r1 > "$T"/dfhack || die + cp "$FILESDIR"/dfhack-run "$T" || die + + sed -e '/Could not find git index file/s/FATAL_ERROR/WARNING/' \ + -i library/git-describe.cmake || die +} + +src_configure() { + local mycmakeargs=( + -DDFHACK_BUILD_ARCH=$(usex amd64 64 "")$(usex x86 32 "") + -DEXTERNAL_TINYXML=NO # https://bugs.gentoo.org/show_bug.cgi?id=592696 + -DCMAKE_INSTALL_PREFIX=/opt/dfhack + -DDFHACK_DATA_DESTINATION=/opt/dfhack/hack + -DDFHACK_LUA_DESTINATION=/opt/dfhack/hack/lua + -DDFHACK_PLUGIN_DESTINATION=/opt/dfhack/hack/plugins + -DDFHACK_LIBRARY_DESTINATION=/opt/dfhack/hack + -DDFHACK_RUBY_DESTINATION=/opt/dfhack/hack/ruby + -DBUILD_RUBY=$(usex ruby) + -DDOWNLOAD_RUBY=OFF + -DBUILD_DEV_PLUGINS=ON + -DBUILD_SKELETON=OFF + ) + + cmake-utils_src_configure +} + +DOCS=( ) +src_install() { + cmake-utils_src_install + + dobin "$T"/dfhack{,-run} +} + +pkg_postinst() { + elog "Due to Dwarf Fortress' special needs regarding working directory," + elog "specifying relative paths to DFHack plugins can give unintended results." + elog + elog "Your dfhack.init should be placed in \${HOME}/.dwarf-fortress-${df_PV}_dfhack/ ," + elog "otherwise the example configuration will be used." + elog + elog "To start DFHack, please run dfhack" +} |
