package/ogre: new package

Ogre needs host-swig with pcre support when python interpreter is
present on the target.
Otherwise the build stop with the following message:
"SWIG:7: Error: PCRE regex matching is not available in this SWIG build."

Ogre has been tested using the SampleBrowser binary but some demos
are not working due to missing optional dependencies (nvidia Cg plugin).

See: https://www.ogre3d.org/2019/05/01/ogre3d-1-12-released

Signed-off-by: Romain Naour <romain.naour@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
Romain Naour 2019-05-29 17:16:55 +02:00 committed by Thomas Petazzoni
parent f7b0b0ad73
commit eb91fa730c
5 changed files with 89 additions and 0 deletions

View File

@ -2038,6 +2038,7 @@ F: package/mcelog/
F: package/mesa3d/
F: package/minetest/
F: package/minetest-game/
F: package/ogre/
F: package/openpowerlink/
F: package/physfs/
F: package/piglit/

View File

@ -308,6 +308,7 @@ comment "Graphic libraries"
source "package/mesa3d/Config.in"
source "package/mesa3d-headers/Config.in"
source "package/ocrad/Config.in"
source "package/ogre/Config.in"
source "package/psplash/Config.in"
source "package/sdl/Config.in"
source "package/sdl_gfx/Config.in"

42
package/ogre/Config.in Normal file
View File

@ -0,0 +1,42 @@
config BR2_PACKAGE_OGRE
bool "ogre"
depends on BR2_PACKAGE_HAS_LIBGL # libglu
depends on BR2_PACKAGE_XORG7
depends on BR2_INSTALL_LIBSTDCPP
depends on BR2_TOOLCHAIN_HAS_THREADS
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11
depends on !BR2_STATIC_LIBS
depends on BR2_USE_MMU
depends on BR2_USE_WCHAR # use wchar_t
select BR2_PACKAGE_FREETYPE
select BR2_PACKAGE_LIBFREEIMAGE
select BR2_PACKAGE_LIBGLU # GL/glu.h
select BR2_PACKAGE_SDL2
select BR2_PACKAGE_SDL2_OPENGL
select BR2_PACKAGE_SDL2_X11 # use wmInfo.info.x11
select BR2_PACKAGE_XLIB_LIBX11
select BR2_PACKAGE_XLIB_LIBXAW
select BR2_PACKAGE_XLIB_LIBXEXT
select BR2_PACKAGE_XLIB_LIBXRANDR
select BR2_PACKAGE_ZZIPLIB
help
OGRE is a scene-oriented, flexible 3D engine written in C++
designed to make it easier and more intuitive for developers
to produce games and demos utilising 3D hardware. The class
library abstracts all the details of using the underlying
system libraries like Direct3D and OpenGL and provides an
interface based on world objects and other intuitive classes.
https://ogrecave.github.io/ogre
comment "ogre needs X11 and an OpenGL provider"
depends on !BR2_PACKAGE_HAS_LIBGL || !BR2_PACKAGE_XORG7
depends on BR2_TOOLCHAIN_HAS_THREADS && BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 \
&& BR2_INSTALL_LIBSTDCPP && !BR2_STATIC_LIBS && BR2_USE_WCHAR
depends on BR2_USE_MMU
comment "ogre needs a toolchain w/ C++, dynamic library, gcc >= 4.8, threads, wchar"
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 \
|| BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS \
|| !BR2_USE_WCHAR
depends on BR2_USE_MMU

3
package/ogre/ogre.hash Normal file
View File

@ -0,0 +1,3 @@
# sha256 locally computed
sha256 163e7700e319532d4389ecba91e3ab88551f78610886fa36f8f262f9a5080988 ogre-1.12.0.tar.gz
sha256 82758e8d1d72139904b9b7472ef0f6544413d2871b58540307fdcc20e473e5f8 LICENSE

42
package/ogre/ogre.mk Normal file
View File

@ -0,0 +1,42 @@
################################################################################
#
# ogre
#
################################################################################
OGRE_VERSION = 1.12.0
OGRE_SITE = $(call github,OGRECave,ogre,v$(OGRE_VERSION))
OGRE_LICENSE = MIT (main library, DeferredShadingMedia samples), Public Domain (samples and plugins), Zlib (tinyxml)
OGRE_LICENSE_FILES = LICENSE
OGRE_INSTALL_STAGING = YES
# Ogre use a bundled version of tinyxml
OGRE_DEPENDENCIES = host-pkgconf \
freetype \
libfreeimage \
libgl \
libglu \
sdl2 \
xlib_libX11 \
xlib_libXaw \
xlib_libXext \
xlib_libXrandr \
zziplib
# Unbundle freetype and zziplib.
# Disable java and nvidia cg support.
OGRE_CONF_OPTS = -DOGRE_BUILD_DEPENDENCIES=OFF \
-DOGRE_BUILD_COMPONENT_JAVA=OFF \
-DOGRE_BUILD_PLUGIN_CG=OFF \
-DOGRE_INSTALL_DOCS=OFF
# Enable optional python component if python interpreter is present on the target.
ifeq ($(BR2_PACKAGE_PYTHON)$(BR2_PACKAGE_PYTHON3),y)
OGRE_DEPENDENCIES += host-swig \
$(if $(BR2_PACKAGE_PYTHON3),host-python3,host-python)
OGRE_CONF_OPTS += -DOGRE_BUILD_COMPONENT_PYTHON=ON
else
OGRE_CONF_OPTS += -DOGRE_BUILD_COMPONENT_PYTHON=OFF
endif
$(eval $(cmake-package))