Files @ 794dc86717e2
Branch filter:

Location: portage-overlay.git/games-emulation/dolphin-emu/dolphin-emu-3.5.ebuild - annotation

794dc86717e2 3.9 KiB application/vnd.gentoo.ebuild Show Source Show as Raw Download as Raw
chain
initial commit of main tree
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
794dc86717e2
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

EAPI="5"

WX_GTK_VER="2.9"

#EGIT_REPO_URI="https://code.google.com/p/dolphin-emu/"
#EGIT_COMMIT="${PV}"

inherit cmake-utils eutils flag-o-matic git-2 pax-utils toolchain-funcs wxwidgets games

DESCRIPTION="Free, open source emulator for Nintendo GameCube and Wii"
HOMEPAGE="http://www.dolphin-emu.com/"
SRC_URI="http://dolphin-emu.googlecode.com/files/dolphin-${PV}-src.zip"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86 ~ppc ~ppc64"

# NOTES:
# - wxWidgets support relies on 2.9 branch, which is currently masked in main tree
IUSE="alsa ao bluetooth doc encode +lzo openal opengl openmp portaudio pulseaudio wxwidgets"

RDEPEND=">=media-libs/glew-1.5
	>=media-libs/libsdl-1.2[joystick]
	<media-libs/libsfml-2.0
	sys-libs/readline
	x11-libs/libXext
	x11-libs/libXrandr
	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.9 )"
DEPEND="${RDEPEND}
	sys-devel/gettext
	virtual/pkgconfig
	media-gfx/nvidia-cg-toolkit"

S="${WORKDIR}/dolphin-${PV}"

src_unpack() {
	unpack "dolphin-${PV}-src.zip"
	cd ${S}	
}

src_prepare() {
	# Remove automagic dependencies
	if use !alsa; then
		sed -i -e '/^include(FindALSA/d' CMakeLists.txt || die
	fi
	if use !ao; then
		 sed -i -e '/^check_lib(AO/d' CMakeLists.txt || die
	fi
	if use !bluetooth; then
		sed -i -e '/^check_lib(BLUEZ/d' CMakeLists.txt || die
	fi
	if use !openal; then
		sed -i -e '/^include(FindOpenAL/d' CMakeLists.txt || die
	fi
	if use !portaudio; then
		sed -i -e '/CMAKE_REQUIRED_LIBRARIES portaudio/d' CMakeLists.txt || die
	fi
	if use !pulseaudio; then
		sed -i -e '/^check_lib(PULSEAUDIO/d' CMakeLists.txt || die
	fi

	# remove bundled libs, except 
	# - SOIL, which has not public sources now
	# - Bochs_disasm (do not know what is it)
	# - CLRun ( some part of OpenCL )
	mv Externals/SOIL . || die
	mv Externals/Bochs_disasm . || die
	mv Externals/CLRun . || die
	rm -r Externals/* || die 'failed to remove bundled libs'
	mv Bochs_disasm Externals || die
	mv CLRun Externals || die
	mv SOIL Externals || die
}

src_configure() {
	# filter problematic compiler flags
	filter-flags -flto -fwhole-program
	append-flags -fno-pie

	if $($(tc-getPKG_CONFIG) --exists nvidia-cg-toolkit); then
		append-flags "$($(tc-getPKG_CONFIG) --cflags nvidia-cg-toolkit)"
	else
		append-flags "-I/opt/nvidia-cg-toolkit/include"
	fi

	if $($(tc-getPKG_CONFIG) --exists nvidia-cg-toolkit); then
		append-ldflags "$($(tc-getPKG_CONFIG) --libs-only-L nvidia-cg-toolkit)"
	else
		append-ldflags "-L/opt/nvidia-cg-toolkit/lib"
	fi

	local mycmakeargs=(
		"-DDOLPHIN_WC_REVISION=${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_use openmp OPENMP)
	)

	cmake-utils_src_configure
}

src_install() {
	cmake-utils_src_install

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

	# install documentation as appropriate
	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
		make_desktop_entry "${PN}" "Dolphin" "Dolphin" "Game;Emulator"
	fi

	prepgamesdirs
}

pkg_postinst() {
	# hardened fix
	pax-mark -m "${EPREFIX}/usr/games/bin/${PN}"

	if ! use portaudio; then
		ewarn "If you need to use your microphone for a game, rebuild with USE=portaudio"
	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."
	fi

	games_pkg_postinst
}