summaryrefslogtreecommitdiff
blob: ff032887171fa09aad6b4ee6c49dc44962c44a44 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/games-roguelike/stone-soup/stone-soup-0.11.0.ebuild,v 1.1 2012/10/05 14:13:29 hasufell Exp $

## TODO
# add sound support (no build switch, no sound files)

EAPI=4
VIRTUALX_REQUIRED="manual"
inherit eutils gnome2-utils virtualx games

MY_P="stone_soup-${PV}"
DESCRIPTION="Role-playing roguelike game of exploration and treasure-hunting in dungeons"
HOMEPAGE="http://crawl.develz.org/wordpress/"
SRC_URI="mirror://sourceforge/crawl-ref/Stone%20Soup/${PV}/${MY_P}-nodeps.tar.xz
	http://dev.gentoo.org/~hasufell/distfiles/${PN}.png
	http://dev.gentoo.org/~hasufell/distfiles/${PN}.svg"

# 3-clause BSD: mt19937ar.cc, MSVC/stdint.h
# 2-clause BSD: all contributions by Steve Noonan and Jesse Luehrs
# Public Domain|CC0: most of tiles
# MIT: json.cc/json.h, some .js files in webserver/static/scripts/contrib/
LICENSE="GPL-2 BSD BSD-2 public-domain CC0-1.0-Universal MIT"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="debug +lua +tiles"
# test is broken
# see https://crawl.develz.org/mantis/view.php?id=6121
#RESTRICT="!debug? ( test )"
RESTRICT="test"

RDEPEND="
	dev-db/sqlite:3
	sys-libs/zlib
	tiles? (
		media-libs/freetype:2
		media-libs/libpng:0
		media-libs/libsdl[X,opengl,video]
		media-libs/sdl-image[png]
		)
	!tiles? ( sys-libs/ncurses )
	lua? ( >=dev-lang/lua-5.1.0 )"
DEPEND="${RDEPEND}
	dev-lang/perl
	sys-devel/flex
	virtual/yacc
	tiles? (
		sys-libs/ncurses
		virtual/pkgconfig
		test? ( ${VIRTUALX_DEPEND} )
		)"

S=${WORKDIR}/${MY_P}/source

src_prepare() {
	epatch "${FILESDIR}"/${P}-build.patch

#	if use test ; then
#		cp -av "${WORKDIR}/${MY_P}" "${WORKDIR}/${MY_P}_test" \
#			|| die "setting up test-dir failed"
#	fi
}

src_compile() {
	S_TEST=${WORKDIR}/${MY_P}_test/source

	# leave DATADIR at the top
	myemakeargs=(
		DATADIR="${GAMES_DATADIR}/${PN}"
		V=1
		prefix="${GAMES_PREFIX}"
		SAVEDIR="~/.crawl"
		$(usex debug "FULLDEBUG=y DEBUG=y" "")
		$(usex lua "" "NO_LUA_BINDINGS=y")
		$(usex tiles "TILES=y" "")
	)

	emake ${myemakeargs[@]}

	# for test to work we need to compile with unset DATADIR
#	if use test ; then
#		emake ${myemakeargs[@]:1} -C "${S_TEST}"
#	fi
}

src_install() {
	emake ${myemakeargs[@]} DESTDIR="${D}" install

	# don't relocate docs, needed at runtime
	rm -rf "${D}${GAMES_DATADIR}"/${PN}/docs/license
	dodoc "${WORKDIR}"/${MY_P}/README.{txt,pdf}

	# icons and menu for graphical build
	if use tiles ; then
		doicon -s 48 "${DISTDIR}"/${PN}.png
		doicon -s scalable "${DISTDIR}"/${PN}.svg
		make_desktop_entry crawl
	fi

	prepgamesdirs
}

src_test() {
	$(usex tiles "X" "")emake ${myemakeargs[@]:1} -C "${S_TEST}" test
}

pkg_preinst() {
	games_pkg_preinst
	gnome2_icon_savelist
}

pkg_postinst() {
	games_pkg_postinst
	gnome2_icon_cache_update

	echo
	elog "Your old config folder under '~/.crawl' is not compatible"
	elog "with the new version. Remove it."
	echo
}

pkg_postrm() {
	gnome2_icon_cache_update
}