package/ogre: new package
authorRomain Naour <romain.naour@gmail.com>
Wed, 29 May 2019 15:16:55 +0000 (17:16 +0200)
committerThomas Petazzoni <thomas.petazzoni@bootlin.com>
Sun, 27 Oct 2019 15:35:15 +0000 (16:35 +0100)
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>
DEVELOPERS
package/Config.in
package/ogre/Config.in [new file with mode: 0644]
package/ogre/ogre.hash [new file with mode: 0644]
package/ogre/ogre.mk [new file with mode: 0644]

index 39f238751e5e6e7bb4a5efd813f0d43c6a9ce23a..f41ac5f096e331cd09e06ea42880694a953e8814 100644 (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/
index f779c28c7ae01b060951f32639853da9c3c14c5a..a1ac5069aae26447237c781f104fc65e7f5e3d01 100644 (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"
diff --git a/package/ogre/Config.in b/package/ogre/Config.in
new file mode 100644 (file)
index 0000000..b5475a7
--- /dev/null
@@ -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
diff --git a/package/ogre/ogre.hash b/package/ogre/ogre.hash
new file mode 100644 (file)
index 0000000..8bb4ae9
--- /dev/null
@@ -0,0 +1,3 @@
+# sha256 locally computed
+sha256 163e7700e319532d4389ecba91e3ab88551f78610886fa36f8f262f9a5080988  ogre-1.12.0.tar.gz
+sha256 82758e8d1d72139904b9b7472ef0f6544413d2871b58540307fdcc20e473e5f8  LICENSE
diff --git a/package/ogre/ogre.mk b/package/ogre/ogre.mk
new file mode 100644 (file)
index 0000000..f7711e4
--- /dev/null
@@ -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))