summaryrefslogtreecommitdiff
blob: 13c5cd73a7ee8de78855792e6bb6fa3fc0339339 (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: $

EAPI=3

inherit games git-2 multilib scons-utils

DESCRIPTION="A single-player fantasy game"
HOMEPAGE="http://www.bay12games.com/dwarves"
EGIT_REPO_URI="git://github.com/Baughn/Dwarf-Fortress--libgraphics-.git"

LICENSE="as-is"
SLOT="0"
KEYWORDS=""
IUSE=""

COMMON_DEPEND="
		media-libs/fmod:1
		media-libs/freetype
		media-libs/libsdl[opengl,video,X]
		media-libs/libsndfile[alsa]
		media-libs/openal
		media-libs/sdl-image[png,tiff,jpeg]
		media-libs/sdl-ttf
		sys-libs/zlib
		x11-libs/cairo[xcb,X]
		x11-libs/gtk+:2[xinerama]
		x11-libs/libXcomposite
		x11-libs/libXcursor
		x11-libs/pango[X]"
RDEPEND="
	virtual/glu
	amd64? (
		app-emulation/emul-linux-x86-baselibs
		app-emulation/emul-linux-x86-gtklibs
		app-emulation/emul-linux-x86-opengl
		app-emulation/emul-linux-x86-sdl
		app-emulation/emul-linux-x86-soundlibs
		app-emulation/emul-linux-x86-xlibs
	)
	x86? (
		${COMMON_DEPEND}
	)"
DEPEND="
	${RDEPEND}
	virtual/pkgconfig
	amd64? (
		${COMMON_DEPEND}
	)"

QA_PREBUILT="opt/${PN}/libs/Dwarf_Fortress"

pkg_setup() {
	games_pkg_setup

	if use amd64; then
		if ! has_multilib_profile; then
			ewarn "You must be on a multilib profile to use dwarf fortress!"
			die "No multilib profile"
		fi
		multilib_toolchain_setup x86
	fi
}

src_prepare() {
	# fix broken build system...
	cp -f "${FILESDIR}"/SConscript-gentoo g_src/SConscript || die
}

src_compile() {
	# compile libgraphics.so
	escons || die
}

src_install() {
	# install config stuff
	insinto "${GAMES_SYSCONFDIR}"/${PN}
	doins -r data/init/* || die

	# keep saves, movies and objects directories
	keepdir "${GAMES_STATEDIR}"/${PN}/save \
		"${GAMES_STATEDIR}"/${PN}/movies \
		"${GAMES_STATEDIR}"/${PN}/objects || die

	# install data-files and libs
	local gamesdir="${GAMES_PREFIX_OPT}/${PN}"
	insinto "${gamesdir}"
	rm -r data/init || die
	doins -r raw data || die
	insinto "${gamesdir}"/libs
	doins libs/Dwarf_Fortress || die

	# install compiled lib and wrapper
	dogameslib libs/libgraphics.so || die
	newgamesbin "${FILESDIR}"/${PN}-wrapper ${PN} || die

	dodoc README.linux *.txt || die

	# create symlinks for several directories we want to have
	# in a different place
	dosym "${GAMES_SYSCONFDIR}"/${PN} "${gamesdir}"/data/init || die
	dosym "${GAMES_STATEDIR}"/${PN}/save "${gamesdir}"/data/save || die
	dosym "${GAMES_STATEDIR}"/${PN}/movies "${gamesdir}"/data/movies || die
	dosym "${GAMES_STATEDIR}"/${PN}/objects "${gamesdir}"/data/objects || die

	prepgamesdirs

	# fix a few permissions
	fperms 0755 "${gamesdir}"/libs/Dwarf_Fortress || die
	fperms -R g+w "${GAMES_STATEDIR}"/${PN} || die
	fperms g+w "${gamesdir}"/data/index || die
	fperms -R g+w "${gamesdir}"/data/{announcement,dipscript,help} || die
}

pkg_postinst() {
	games_pkg_postinst

	einfo ""
	einfo "If you use a different OpenGL implementation than xorg-x11"
	einfo "libgraphics.so library will be linked against it."
	einfo "That dependency is _not_ covered by this ebuild."
	einfo ""
}