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
	depends on !BR2_arc # libfreeimage
	select BR2_PACKAGE_FREETYPE
	select BR2_PACKAGE_LIBFREEIMAGE
	select BR2_PACKAGE_PUGIXML
	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
	depends on !BR2_arc

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
	depends on !BR2_arc
