Minetest-0.4.9 added.

This commit is contained in:
Kolan Sh 2014-01-04 16:49:19 +04:00
parent 63f29e5681
commit f999d97a9e
7 changed files with 542 additions and 0 deletions

View File

@ -0,0 +1,35 @@
commit a88bfd5b77fa0b5c60e438c0011dbdcee5e14dfd
Author: hasufell <hasufell@gentoo.org>
Date: Mon Nov 25 00:28:55 2013 +0100
CMAKE: fix linking order
this also fixes linking with as-needed wrt
https://github.com/minetest/minetest/issues/617
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index a1fee7a..a72bd4a 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -427,18 +427,18 @@ if(BUILD_CLIENT)
target_link_libraries(
${PROJECT_NAME}
${ZLIB_LIBRARIES}
- ${IRRLICHT_LIBRARY}
+ ${X11_LIBRARIES}
${OPENGL_LIBRARIES}
+ ${OPENGLES2_LIBRARIES}
${JPEG_LIBRARIES}
${BZIP2_LIBRARIES}
${PNG_LIBRARIES}
- ${X11_LIBRARIES}
+ ${IRRLICHT_LIBRARY}
${GETTEXT_LIBRARY}
${SOUND_LIBRARIES}
${SQLITE3_LIBRARY}
${LUA_LIBRARY}
${JSON_LIBRARY}
- ${OPENGLES2_LIBRARIES}
${PLATFORM_LIBS}
${CLIENT_PLATFORM_LIBS}
)

View File

@ -0,0 +1,87 @@
From: Julian Ospald <hasufell@gentoo.org>
Date: Sun Dec 8 19:28:11 UTC 2013
Subject: prefer pkg-config for freetype2 detection
https://github.com/minetest/minetest/pull/1042
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -173,7 +173,22 @@
find_package(OpenGLES2)
if(USE_FREETYPE)
- find_package(Freetype REQUIRED)
+ if(UNIX)
+ include(FindPkgConfig)
+ if(PKG_CONFIG_FOUND)
+ pkg_check_modules(FREETYPE QUIET freetype2)
+ if(FREETYPE_FOUND)
+ SET(FREETYPE_PKGCONFIG_FOUND TRUE)
+ SET(FREETYPE_LIBRARY ${FREETYPE_LIBRARIES})
+ # because cmake is idiotic
+ string(REPLACE ";" " " FREETYPE_CFLAGS_STR ${FREETYPE_CFLAGS})
+ string(REPLACE ";" " " FREETYPE_LDFLAGS_STR ${FREETYPE_LDFLAGS})
+ endif(FREETYPE_FOUND)
+ endif(PKG_CONFIG_FOUND)
+ endif(UNIX)
+ if(NOT FREETYPE_FOUND)
+ find_package(Freetype REQUIRED)
+ endif(NOT FREETYPE_FOUND)
set(CGUITTFONT_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/cguittfont")
set(CGUITTFONT_LIBRARY cguittfont)
endif(USE_FREETYPE)
@@ -446,6 +461,12 @@
)
endif(USE_CURL)
if(USE_FREETYPE)
+ if(FREETYPE_PKGCONFIG_FOUND)
+ set_target_properties(${PROJECT_NAME}
+ PROPERTIES
+ COMPILE_FLAGS "${FREETYPE_CFLAGS_STR}"
+ )
+ endif(FREETYPE_PKGCONFIG_FOUND)
target_link_libraries(
${PROJECT_NAME}
${FREETYPE_LIBRARY}
--- a/src/cguittfont/CMakeLists.txt
+++ b/src/cguittfont/CMakeLists.txt
@@ -1,17 +1,29 @@
-include_directories(
- ${IRRLICHT_INCLUDE_DIR}
- ${FREETYPE_INCLUDE_DIRS}
-)
-
# CGUITTFont authors, y u no include headers you use?
# Do not add CGUITTFont.cpp to the line below.
# xCGUITTFont.cpp is a wrapper file that includes
# additional required headers.
add_library(cguittfont xCGUITTFont.cpp)
+if(FREETYPE_PKGCONFIG_FOUND)
+ set_target_properties(cguittfont
+ PROPERTIES
+ COMPILE_FLAGS "${FREETYPE_CFLAGS_STR}"
+ LINK_FLAGS "${FREETYPE_LDFLAGS_STR}"
+ )
+
+ include_directories(
+ ${IRRLICHT_INCLUDE_DIR}
+ )
+else(FREETYPE_PKGCONFIG_FOUND)
+ include_directories(
+ ${IRRLICHT_INCLUDE_DIR}
+ ${FREETYPE_INCLUDE_DIRS}
+ )
+endif(FREETYPE_PKGCONFIG_FOUND)
+
target_link_libraries(
- cguittfont
- ${IRRLICHT_LIBRARY}
- ${FREETYPE_LIBRARY}
- ${ZLIB_LIBRARIES} # needed by freetype, repeated here for safety
-)
+ cguittfont
+ ${IRRLICHT_LIBRARY}
+ ${FREETYPE_LIBRARY}
+ ${ZLIB_LIBRARIES} # needed by freetype, repeated here for safety
+ )

View File

@ -0,0 +1,56 @@
commit d8dbda3636a91eba52c97450b58f767d5a4a376e
Author: hasufell <hasufell@gentoo.org>
Date: Mon Nov 25 00:25:55 2013 +0100
add USE_LUAJIT option
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index a30dc98..a1fee7a 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -179,24 +179,29 @@ if(USE_FREETYPE)
endif(USE_FREETYPE)
-find_library(LUA_LIBRARY luajit
- NAMES luajit-5.1)
-find_path(LUA_INCLUDE_DIR luajit.h
- NAMES luajit.h
- PATH_SUFFIXES luajit-2.0)
-message (STATUS "LuaJIT library: ${LUA_LIBRARY}")
-message (STATUS "LuaJIT headers: ${LUA_INCLUDE_DIR}")
+option(USE_LUAJIT "Use luajit instead of lua" OFF)
set(USE_LUAJIT 0)
-if(LUA_LIBRARY AND LUA_INCLUDE_DIR)
- message (STATUS "LuaJIT found.")
- set(USE_LUAJIT 1)
-else(LUA_LIBRARY AND LUA_INCLUDE_DIR)
- message (STATUS "LuaJIT not found, using bundled Lua.")
- set(LUA_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/lua/src")
- set(LUA_LIBRARY "lua")
- add_subdirectory(lua)
-endif(LUA_LIBRARY AND LUA_INCLUDE_DIR)
+if(USE_LUAJIT)
+ find_library(LUA_LIBRARY luajit
+ NAMES luajit-5.1)
+ find_path(LUA_INCLUDE_DIR luajit.h
+ NAMES luajit.h
+ PATH_SUFFIXES luajit-2.0)
+ if(LUA_LIBRARY AND LUA_INCLUDE_DIR)
+ message (STATUS "LuaJIT found")
+ set(USE_LUAJIT 1)
+ else(LUA_LIBRARY AND LUA_INCLUDE_DIR)
+ message (FATAL_ERROR "LuaJIT not found!")
+ endif(LUA_LIBRARY AND LUA_INCLUDE_DIR)
+else(USE_LUAJIT)
+ find_package(Lua51)
+ if(LUA51_FOUND)
+ message (STATUS "Lua51 found")
+ else(LUA51_FOUND)
+ message (FATAL_ERROR "Lua51 not found!")
+ endif(LUA51_FOUND)
+endif(USE_LUAJIT)
mark_as_advanced(LUA_LIBRARY)
mark_as_advanced(LUA_INCLUDE_DIR)

View File

@ -0,0 +1,163 @@
From: Julian Ospald <hasufell@gentoo.org>
Date: Fri Nov 29 19:34:37 UTC 2013
This patch is currently not needed in this form, because gentoo irrlicht
does not yet have gles2 support. However this will be needed
once it does, so we can add a gles2 useflag.
Also fixes
https://bugs.gentoo.org/show_bug.cgi?id=492804
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -7,6 +7,7 @@
mark_as_advanced(JSON_INCLUDE_DIR JSON_LIBRARY)
option(ENABLE_CURL "Enable cURL support for fetching media" 1)
+option(ENABLE_GLES2 "Enable GLES2 support with irrlicht" 0)
if (NOT ENABLE_CURL)
mark_as_advanced(CLEAR CURL_LIBRARY CURL_INCLUDE_DIR)
@@ -170,7 +171,10 @@
find_package(Sqlite3 REQUIRED)
find_package(Json REQUIRED)
-find_package(OpenGLES2)
+if(ENABLE_GLES2 AND BUILD_CLIENT)
+ find_package(OpenGLES2 REQUIRED)
+ add_definitions( -DWITH_GLES2 )
+endif(ENABLE_GLES2 AND BUILD_CLIENT)
if(USE_FREETYPE)
find_package(Freetype REQUIRED)
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -1331,10 +1331,12 @@
else if(driverstring == "ogles1")
driverType = video::EDT_OGLES1;
#endif
+#ifdef WITH_GLES2
#ifdef _IRR_COMPILE_WITH_OGLES2_
else if(driverstring == "ogles2")
driverType = video::EDT_OGLES2;
#endif
+#endif
else
{
errorstream<<"WARNING: Invalid video_driver specified; defaulting "
--- a/cmake/Modules/FindOpenGLES2.cmake
+++ b/cmake/Modules/FindOpenGLES2.cmake
@@ -19,6 +19,7 @@
# win32, apple, android NOT TESED
# linux tested and works
+
IF (WIN32)
IF (CYGWIN)
@@ -47,51 +48,57 @@
ELSE(APPLE)
- FIND_PATH(OPENGLES2_INCLUDE_DIR GLES2/gl2.h
- /usr/openwin/share/include
- /opt/graphics/OpenGL/include /usr/X11R6/include
- /usr/include
- )
-
- FIND_LIBRARY(OPENGLES2_gl_LIBRARY
- NAMES GLESv2
- PATHS /opt/graphics/OpenGL/lib
+ # prefer pkg-config
+ INCLUDE(FindPkgConfig)
+ IF (PKG_CONFIG_FOUND)
+ pkg_check_modules(OPENGLES2 QUIET glesv2 egl)
+ ELSE (PKG_CONFIG_FOUND)
+ FIND_PATH(OPENGLES2_INCLUDE_DIR GLES2/gl2.h
+ /usr/openwin/share/include
+ /opt/graphics/OpenGL/include /usr/X11R6/include
+ /usr/include
+ )
+
+ FIND_LIBRARY(OPENGLES2_gl_LIBRARY
+ NAMES GLESv2
+ PATHS /opt/graphics/OpenGL/lib
/usr/openwin/lib
/usr/shlib /usr/X11R6/lib
/usr/lib
- )
+ )
- IF (NOT BUILD_ANDROID)
- FIND_PATH(EGL_INCLUDE_DIR EGL/egl.h
- /usr/openwin/share/include
- /opt/graphics/OpenGL/include /usr/X11R6/include
- /usr/include
- )
-
- FIND_LIBRARY(EGL_egl_LIBRARY
- NAMES EGL
- PATHS /opt/graphics/OpenGL/lib
- /usr/openwin/lib
- /usr/shlib /usr/X11R6/lib
- /usr/lib
- )
-
- # On Unix OpenGL most certainly always requires X11.
- # Feel free to tighten up these conditions if you don't
- # think this is always true.
- # It's not true on OSX.
-
- IF (OPENGLES2_gl_LIBRARY)
- IF(NOT X11_FOUND)
- INCLUDE(FindX11)
- ENDIF(NOT X11_FOUND)
- IF (X11_FOUND)
- IF (NOT APPLE)
- SET (OPENGLES2_LIBRARIES ${X11_LIBRARIES})
- ENDIF (NOT APPLE)
- ENDIF (X11_FOUND)
- ENDIF (OPENGLES2_gl_LIBRARY)
- ENDIF ()
+ IF (NOT BUILD_ANDROID)
+ FIND_PATH(EGL_INCLUDE_DIR EGL/egl.h
+ /usr/openwin/share/include
+ /opt/graphics/OpenGL/include /usr/X11R6/include
+ /usr/include
+ )
+
+ FIND_LIBRARY(EGL_egl_LIBRARY
+ NAMES EGL
+ PATHS /opt/graphics/OpenGL/lib
+ /usr/openwin/lib
+ /usr/shlib /usr/X11R6/lib
+ /usr/lib
+ )
+
+ # On Unix OpenGL most certainly always requires X11.
+ # Feel free to tighten up these conditions if you don't
+ # think this is always true.
+ # It's not true on OSX.
+
+ IF (OPENGLES2_gl_LIBRARY)
+ IF(NOT X11_FOUND)
+ INCLUDE(FindX11)
+ ENDIF(NOT X11_FOUND)
+ IF (X11_FOUND)
+ IF (NOT APPLE)
+ SET (OPENGLES2_LIBRARIES ${X11_LIBRARIES})
+ ENDIF (NOT APPLE)
+ ENDIF (X11_FOUND)
+ ENDIF (OPENGLES2_gl_LIBRARY)
+ ENDIF (NOT BUILD_ANDROID)
+ ENDIF (PKG_CONFIG_FOUND)
ENDIF(APPLE)
ENDIF (WIN32)
@@ -126,5 +133,5 @@
IF(OPENGLES2_FOUND)
MESSAGE(STATUS "Found system opengles2 library ${OPENGLES2_LIBRARIES}")
ELSE ()
- SET(OPENGLES2_LIBRARIES "")
+ MESSAGE(FATAL_ERROR "OpenGLES2 not found!")
ENDIF ()

View File

@ -0,0 +1,23 @@
commit 11d35e62fe13b47c5b34139559e650dfe6ebbd84
Author: hasufell <julian.ospald@googlemail.com>
Date: Sat Jun 8 13:40:30 2013 +0200
CMAKE: use shared lib from Irrlicht
diff --git a/cmake/Modules/FindIrrlicht.cmake b/cmake/Modules/FindIrrlicht.cmake
index bd00422..4632993 100644
--- a/cmake/Modules/FindIrrlicht.cmake
+++ b/cmake/Modules/FindIrrlicht.cmake
@@ -50,10 +50,11 @@ else()
/usr/include/irrlicht
)
- FIND_LIBRARY(IRRLICHT_LIBRARY NAMES libIrrlicht.a Irrlicht
+ FIND_LIBRARY(IRRLICHT_LIBRARY NAMES libIrrlicht.so Irrlicht
PATHS
/usr/local/lib
/usr/lib
+ /usr/lib64
)
endif()

View File

@ -0,0 +1,147 @@
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/games-action/minetest/minetest-0.4.9.ebuild,v 1.1 2014/01/03 15:24:24 hasufell Exp $
EAPI=5
inherit eutils cmake-utils gnome2-utils vcs-snapshot user games
DESCRIPTION="An InfiniMiner/Minecraft inspired game"
HOMEPAGE="http://minetest.net/"
SRC_URI="http://github.com/minetest/minetest/tarball/${PV} -> ${P}.tar.gz"
LICENSE="LGPL-2.1+ CC-BY-SA-3.0"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="+curl dedicated leveldb luajit nls +server +sound +truetype"
RDEPEND="dev-db/sqlite:3
>=dev-games/irrlicht-1.8-r2
sys-libs/zlib
curl? ( net-misc/curl )
!dedicated? (
app-arch/bzip2
media-libs/libpng:0
virtual/jpeg
virtual/opengl
x11-libs/libX11
x11-libs/libXxf86vm
sound? (
media-libs/libogg
media-libs/libvorbis
media-libs/openal
)
truetype? ( media-libs/freetype:2 )
)
leveldb? ( dev-libs/leveldb )
luajit? ( dev-lang/luajit:2 )
!luajit? ( >=dev-lang/lua-5.1.4[deprecated] )
nls? ( virtual/libintl )"
DEPEND="${RDEPEND}
nls? ( sys-devel/gettext )"
pkg_setup() {
games_pkg_setup
if use server || use dedicated ; then
enewuser ${PN} -1 -1 /var/lib/${PN} ${GAMES_GROUP}
fi
}
src_unpack() {
vcs-snapshot_src_unpack
}
src_prepare() {
epatch \
"${FILESDIR}"/${P}-lua-luajit-option.patch \
"${FILESDIR}"/${P}-shared-irrlicht.patch \
"${FILESDIR}"/${P}-as-needed.patch \
"${FILESDIR}"/${P}-opengles.patch \
"${FILESDIR}"/${P}-freetype.patch
# correct gettext behavior
if [[ -n "${LINGUAS+x}" ]] ; then
for i in $(cd po ; echo *) ; do
if ! has ${i} ${LINGUAS} ; then
rm -r po/${i} || die
fi
done
fi
# jthread is modified
# json is modified
rm -r src/{lua,sqlite} || die
# set paths
sed \
-e "s#@BINDIR@#${GAMES_BINDIR}#g" \
-e "s#@GROUP@#${GAMES_GROUP}#g" \
"${FILESDIR}"/minetestserver.confd > "${T}"/minetestserver.confd || die
}
src_configure() {
local mycmakeargs=(
-DENABLE_GLES2=0
-DRUN_IN_PLACE=0
-DCUSTOM_SHAREDIR="${GAMES_DATADIR}/${PN}"
-DCUSTOM_BINDIR="${GAMES_BINDIR}"
-DCUSTOM_DOCDIR="/usr/share/doc/${PF}"
-DCUSTOM_LOCALEDIR="/usr/share/locale"
$(usex dedicated "-DBUILD_SERVER=ON -DBUILD_CLIENT=OFF" "$(cmake-utils_use_build server SERVER) -DBUILD_CLIENT=ON")
$(cmake-utils_use_enable nls GETTEXT)
$(cmake-utils_use_enable curl CURL)
$(cmake-utils_use_use luajit LUAJIT)
$(cmake-utils_use_enable truetype FREETYPE)
$(cmake-utils_use_enable sound SOUND)
$(cmake-utils_use_enable leveldb LEVELDB)
)
cmake-utils_src_configure
}
src_compile() {
cmake-utils_src_compile
}
src_install() {
cmake-utils_src_install
if use server || use dedicated ; then
newinitd "${FILESDIR}"/minetestserver.initd minetest-server
newconfd "${T}"/minetestserver.confd minetest-server
fi
prepgamesdirs
}
pkg_preinst() {
games_pkg_preinst
gnome2_icon_savelist
}
pkg_postinst() {
games_pkg_postinst
gnome2_icon_cache_update
if ! use dedicated ; then
elog
elog "optional dependencies:"
elog " games-action/minetest_game (official mod)"
elog " games-action/minetest_common (official mod)"
elog " games-action/minetest_build (official mod)"
elog " games-action/minetest_survival (official mod)"
elog
fi
if use server || use dedicated ; then
elog
elog "Configure your server via /etc/conf.d/minetest-server"
elog "The user \"minetest\" is created with /var/lib/${PN} homedir."
elog "Default logfile is ~/minetest-server.log"
elog
fi
}
pkg_postrm() {
gnome2_icon_cache_update
}

View File

@ -0,0 +1,31 @@
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/games-action/minetest_game/minetest_game-0.4.9.ebuild,v 1.1 2014/01/03 15:25:03 hasufell Exp $
EAPI=5
inherit vcs-snapshot games
DESCRIPTION="The main game for the Minetest game engine"
HOMEPAGE="http://github.com/minetest/minetest_game"
SRC_URI="http://github.com/minetest/minetest_game/tarball/${PV} -> ${P}.tar.gz"
LICENSE="GPL-2 CC-BY-SA-3.0"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE=""
RDEPEND="~games-action/minetest-${PV}[-dedicated]"
src_unpack() {
vcs-snapshot_src_unpack
}
src_install() {
insinto "${GAMES_DATADIR}"/minetest/games/${PN}
doins -r mods menu
doins game.conf
dodoc README.txt
prepgamesdirs
}