summaryrefslogtreecommitdiff
path: root/games-emulation/dolphin-emu/dolphin-emu-9999.ebuild
blob: dc700db5cb4951d6a106903667bddb73298cb1f8 (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
125
126
127
# Copyright 1999-2008 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI="3"

WX_GTK_VER="2.8"

inherit cmake-utils eutils flag-o-matic games git wxwidgets

MY_PV="${PV/9999_p/}"

DESCRIPTION="Free. open source emulator for Nintendo GameCube and Wii"
HOMEPAGE="http://www.dolphin-emu.com/"
SRC_URI=""
EGIT_REPO_URI="https://code.google.com/p/dolphin-emu/"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~x86 ~amd64 ~ppc ~ppc64"
IUSE="alsa ao bluetooth doc encode +lzo openal opengl portaudio pulseaudio +wxwidgets +xrandr"
RESTRICT=""

RDEPEND=">=media-libs/glew-1.5
	>=media-libs/libsdl-1.2[joystick]
	sys-libs/readline
	x11-libs/libXext
	ao? ( media-libs/libao )
	alsa? ( media-libs/alsa-lib )
	bluetooth? ( net-wireless/bluez )
	encode? ( media-video/ffmpeg[encode] )
	lzo? ( dev-libs/lzo )
	openal? ( media-libs/openal )
	opengl? ( virtual/opengl )
	portaudio? ( media-libs/portaudio )
	pulseaudio? ( media-sound/pulseaudio )
	wxwidgets? ( x11-libs/wxGTK:2.8 )
	xrandr? ( x11-libs/libXrandr )"
DEPEND="${RDEPEND}
	dev-util/cmake
	dev-util/pkgconfig
	media-gfx/nvidia-cg-toolkit"
	#dev-util/scons

# Configure using scons (deprecated)
#src_prepare() {
#	sed -e "s;env\['prefix'\] + '/bin';'${GAMES_BINDIR}';" \
#		-e "s;env\['prefix'\] + \"/share/dolphin-emu\";'${GAMES_DATADIR}/${PN}';" \
#		-e "s;env\['prefix'\] + '/lib/dolphin-emu';'$(games_get_libdir)/${PN}';" \
#		-e "s;env\['prefix'\] + '/lib/;'$(games_get_libdir)/;" \
#		-i "${S}/SConstruct" \
#		|| die "sed path update 1 failed"
#}

src_configure() {
	# Configure using cmake
	mycmakeargs="
		-DDOLPHIN_WC_REVISION=${MY_PV}
		-DCMAKE_INSTALL_PREFIX=${GAMES_PREFIX}
		-Dprefix=${GAMES_PREFIX}
		-Ddatadir=${GAMES_DATADIR}/${PN}
		-Dplugindir=$(games_get_libdir)/${PN}
		$(cmake-utils_use !wxwidgets DISABLE_WX)
		$(cmake-utils_use encode ENCODE_FRAMEDUMPS)"
	cmake-utils_src_configure
}

src_compile() {
	# Build using cmake
	cmake-utils_src_make

	# Build using scons (deprecated)
	# run "scons -h" to get a complete list of options
	#local sconsopts=$(echo "${MAKEOPTS}" | sed -ne "/-j/ { s/.*\(-j[[:space:]]*[0-9]\+\).*/\1/; p }")
	#scons ${sconsopts} \
	#	nowx=$(use wxwidgets && echo "false" || echo "true") \
	#	install=global \
	#	prefix="/usr" \
	#	destdir="${D}" \
	#	shared_glew=true \
	#	shared_lzo=true \
	#	shared_sdl=true \
	#	shared_zlib=true \
	#	shared_sfml=false \
	#	shared_soil=false \
	#	verbose=false \
	#	|| die "scons build failed"
}

src_install() {
	# copy files to target installation directory
	cmake-utils_src_install
	#scons install || die "scons install failed"

	# set binary name
	local binary="${PN}"
	use wxwidgets || binary+="-nogui"

	# install documentation as appropriate
	cd "${S}"
	dodoc Readme.txt
	if use doc; then
		doins -r docs
	fi

	# create menu entry for GUI builds
	if use wxwidgets; then
		doicon Source/Core/DolphinWX/resources/Dolphin.xpm || die
		make_desktop_entry "${binary}" "Dolphin" "Dolphin" "Game;Emulator"
	fi

	prepgamesdirs
}

pkg_postinst() {
	echo
	if ! use portaudio; then
		ewarn "If you need to use your microphone for a game, rebuild with USE=portaudio"
		echo
	fi
	if ! use wxwidgets; then
		ewarn "Note: It is not currently possible to configure Dolphin without the GUI."
		ewarn "Rebuild with USE=wxwidgets to enable the GUI if needed."
		echo
	fi

	games_pkg_postinst
}