--- a/dev-games/ogre/ogre-1.9.0.ebuild 2014-03-09 00:31:07.000000000 +0100 +++ b/dev-games/ogre/ogre-1.9.0.ebuild 2014-03-28 12:58:24.623054863 +0100 @@ -5,7 +5,16 @@ EAPI=5 CMAKE_REMOVE_MODULES="yes" CMAKE_REMOVE_MODULES_LIST="FindFreetype" -inherit eutils cmake-utils vcs-snapshot + +inherit eutils cmake-utils vcs-snapshot versionator + +MY_PV=$(get_version_component_range 1-3) +MY_P=${PN}-${MY_PV} + +LIBDIR=/usr/$(get_libdir)/OGRE +SHAREDIR=/usr/share/OGRE +SAMPLEDIR=${LIBDIR}/Samples +TESTDIR=/usr/local/share/OGRE DESCRIPTION="Object-oriented Graphics Rendering Engine" HOMEPAGE="http://www.ogre3d.org/" @@ -14,10 +23,16 @@ LICENSE="MIT public-domain" SLOT="0/1.9.0" KEYWORDS="~amd64 ~x86" -IUSE="+boost cg doc double-precision examples +freeimage gles2 ois +opengl poco profile tbb threads tools +zip" +IUSE="\ + +boost cg doc double-precision examples +freeimage gl3plus gles1 gles2 \ + gles3 ois +opengl poco profile tbb threads tools +zip" REQUIRED_USE="threads? ( ^^ ( boost poco tbb ) ) poco? ( threads ) - tbb? ( threads )" + tbb? ( threads ) + gles1? ( !gl3plus ) + gles2? ( !gl3plus ) + gles3? ( ( !gl3plus ) ( gles2 ) ) + gl3plus? ( ( opengl ) ( !gles1 ) ( !gles2 ) ( !gles3 ) )" RESTRICT="test" #139905 RDEPEND=" @@ -32,7 +47,10 @@ boost? ( dev-libs/boost ) cg? ( media-gfx/nvidia-cg-toolkit ) freeimage? ( media-libs/freeimage ) - gles2? ( >=media-libs/mesa-8.0.0[gles2] ) + gles1? ( >=media-libs/mesa-8.0.0[gles1] ) + gles2? ( >=media-libs/mesa-9.0.0[gles2] ) + gles3? ( >=media-libs/mesa-10.0.0[gles2] ) + gl3plus? ( >=media-libs/mesa-9.2.5 ) ois? ( dev-games/ois ) threads? ( poco? ( dev-libs/poco ) @@ -65,8 +83,10 @@ $(cmake-utils_use examples OGRE_INSTALL_SAMPLES) $(cmake-utils_use freeimage OGRE_CONFIG_ENABLE_FREEIMAGE) $(cmake-utils_use opengl OGRE_BUILD_RENDERSYSTEM_GL) - -DOGRE_BUILD_RENDERSYSTEM_GLES=OFF + $(cmake-utils_use gl3plus OGRE_BUILD_RENDERSYSTEM_GL3PLUS) + $(cmake-utils_use gles1 OGRE_BUILD_RENDERSYSTEM_GLES) $(cmake-utils_use gles2 OGRE_BUILD_RENDERSYSTEM_GLES2) + $(cmake-utils_use gles3 OGRE_CONFIG_ENABLE_GLES3_SUPPORT) $(cmake-utils_use profile OGRE_PROFILING) $(cmake-utils_use examples OGRE_BUILD_SAMPLES) -DOGRE_BUILD_TESTS=FALSE @@ -85,10 +105,70 @@ fi cmake-utils_src_configure + + # Unfortunately cmake has put its detected paths into the config files. + # plugins.cfg: + # /home/portage/dev-games/ogre-1.9.0/work/ogre-1.9.0_build/lib + sed -i \ + -e "s,${CMAKE_BUILD_DIR}/lib,${LIBDIR},g" \ + "${CMAKE_BUILD_DIR}"/bin/plugins.cfg || \ + die "Fixing plugins.cfg failed" + # quakemap: + # /home/portage/dev-games/ogre-1.9.0/work/ogre-1.9.0/Samples/Media/packs/chiropteraDM.pk3 + sed -i \ + -e "s,${WORKDIR}/${MY_P}/Samples,${SHAREDIR}," \ + "${CMAKE_BUILD_DIR}"/bin/quakemap.cfg || \ + die "Fixing quakemap.cfg failed" + # resources.cfg: + # /home/portage/dev-games/ogre-1.9.0/work/ogre-1.9.0/Samples + # /home/portage/dev-games/ogre-1.9.0/work/ogre-1.9.0/Tests + sed -i \ + -e "s,${WORKDIR}/${MY_P}/Samples,${SHAREDIR},g" \ + -e "s,${WORKDIR}/${MY_P}/Tests,${TESTDIR}," \ + "${CMAKE_BUILD_DIR}"/bin/resources.cfg || \ + die "Fixing resources.cfg failed" + # samples.cfg: + # /home/portage/dev-games/ogre-1.9.0/work/ogre-1.9.0_build/lib + sed -i \ + -e "s,${CMAKE_BUILD_DIR}/lib,${LIBDIR}/Samples,g" \ + "${CMAKE_BUILD_DIR}"/bin/samples.cfg || \ + die "Fixing samples.cfg failed" + + # tests.cfg is not needed } src_install() { cmake-utils_src_install - docinto examples - dodoc "${CMAKE_BUILD_DIR}"/bin/*.cfg + + ## Those are no longer just examples but the real configuration of the + # current system. They belong in /etc/OGRE, as those were always + # there, and there they are config protected. + # However, ogre looks in /usr/share/OGRE for them, so they must be + # symlinked there as well. + # - Sven + # docinto examples + # dodoc "${CMAKE_BUILD_DIR}"/bin/*.cfg + + # plugins and resources are the main configuration + insinto /etc/OGRE + doins "${CMAKE_BUILD_DIR}"/bin/plugins.cfg + doins "${CMAKE_BUILD_DIR}"/bin/resources.cfg + dosym /etc/OGRE/plugins.cfg ${SHAREDIR}/plugins.cfg + dosym /etc/OGRE/resources.cfg ${SHAREDIR}/resources.cfg + + # The testdir needs to be created + mkdir -p "${D}/${TESTDIR}" + + # Use video group, as OGRE is a rendering engine you need to be in the + # video group to use anyway. (Ogre3D is not a game engine, actually I + # think dev-games is the wrong category anyway.) + chown :video "${D}/${TESTDIR}" + chmod g+rwX "${D}/${TESTDIR}" + + # These are only for the sample browser + insinto ${SHAREDIR} + doins "${CMAKE_BUILD_DIR}"/bin/quakemap.cfg + doins "${CMAKE_BUILD_DIR}"/bin/samples.cfg + + # tests.cfg is not needed }