From 099e98fe1e981a2eb44477e53933fa768f2b3834 Mon Sep 17 00:00:00 2001 From: Sven Eden Date: Sun, 20 Sep 2020 16:39:00 +0200 Subject: dev-games/ogre: Version bump to 1.12.9 This bump includes the following upgrades * IMGUI version bumped to 1.77 ; That's what upstream bumped to * Added USE flag "assimp" to pull in media-libs/assimp This also enables building of the AssimpConverter if the USE flag "assimp" is enabled. Bug: https://bugs.gentoo.org/743742 Closes: https://bugs.gentoo.org/743742 Package-Manager: Portage-3.0.7, Repoman-3.0.1 Signed-off-by: Sven Eden Closes: https://github.com/gentoo/gentoo/pull/17619 Signed-off-by: James Le Cuirot --- dev-games/ogre/Manifest | 4 +- .../ogre/files/ogre-1.12.8-fix_Simple_demo.patch | 11 -- dev-games/ogre/files/ogre-1.12.8-media_path.patch | 14 -- .../ogre/files/ogre-1.12.8-resource_path.patch | 13 -- .../ogre/files/ogre-1.12.8-upgrade_imgui.patch | 28 --- .../ogre/files/ogre-1.12.9-fix_Simple_demo.patch | 11 ++ .../ogre-1.12.9-fix_config_window_height.patch | 11 ++ .../ogre-1.12.9-gentoolize_imgui_inclusion.patch | 27 +++ dev-games/ogre/files/ogre-1.12.9-media_path.patch | 14 ++ .../ogre/files/ogre-1.12.9-resource_path.patch | 13 ++ dev-games/ogre/metadata.xml | 7 +- dev-games/ogre/ogre-1.12.8.ebuild | 208 --------------------- dev-games/ogre/ogre-1.12.9.ebuild | 208 +++++++++++++++++++++ 13 files changed, 291 insertions(+), 278 deletions(-) delete mode 100644 dev-games/ogre/files/ogre-1.12.8-fix_Simple_demo.patch delete mode 100644 dev-games/ogre/files/ogre-1.12.8-media_path.patch delete mode 100644 dev-games/ogre/files/ogre-1.12.8-resource_path.patch delete mode 100644 dev-games/ogre/files/ogre-1.12.8-upgrade_imgui.patch create mode 100644 dev-games/ogre/files/ogre-1.12.9-fix_Simple_demo.patch create mode 100644 dev-games/ogre/files/ogre-1.12.9-fix_config_window_height.patch create mode 100644 dev-games/ogre/files/ogre-1.12.9-gentoolize_imgui_inclusion.patch create mode 100644 dev-games/ogre/files/ogre-1.12.9-media_path.patch create mode 100644 dev-games/ogre/files/ogre-1.12.9-resource_path.patch delete mode 100644 dev-games/ogre/ogre-1.12.8.ebuild create mode 100644 dev-games/ogre/ogre-1.12.9.ebuild (limited to 'dev-games') diff --git a/dev-games/ogre/Manifest b/dev-games/ogre/Manifest index 851d395c412f..abe2b0d79948 100644 --- a/dev-games/ogre/Manifest +++ b/dev-games/ogre/Manifest @@ -1,4 +1,4 @@ -DIST imgui-1.76.tar.gz 1256126 BLAKE2B 801e94e1007e41c5b7281bb30fc7da76ddf0e755bf3ec2c4eb90d730dd9c68685f3e4819f32acc2154fbcd4e32da9d1de6dac36b0cd8885a93457475576b4336 SHA512 7f7d7220c6c2805902665747f32ed094e0558d42cafb25a25bd16fed88da3bf8822c55ed92a552f0599f5563909d471aa5763e53c8dd5bf39367c61e39d015aa -DIST ogre-1.12.8.tar.gz 125932831 BLAKE2B ffd4a443e374ad3f209b4f8a5e18a41b3dbfbb528d20581f48a4d31447e1e20a3b1cdde588b6345bd07d864c9b72ce1e51374de52523e7c4477408c01778af69 SHA512 c446c58b57874d3e2522f7e0315771b7a9f5ac8888449493a1dad6fc4d30454c57f4f145c2554de110607f3e5d586d6ec91859b8024e7d8bdb821fa6c6c3f2e2 +DIST imgui-1.77.tar.gz 1269147 BLAKE2B be0db9b77903664db0fadf1672ec23983dc89292fd261a1e89c1eab88b82e95de7c2af37eb7ef43cc994b889fdf7d7fb2dd1282b93c1f3b1166c7fe0d2dccaf5 SHA512 d5ebf4bb5e1ce83b226f2e68b3afe0f0abaeb55245fedf754e5453afd8d1df4dac8b5c47fc284c2588b40d05a55fc191b5e55c7be279c5e5e23f7c5b70150546 +DIST ogre-1.12.9.tar.gz 125955067 BLAKE2B 5676690d2d9db8c4c903b7bf3e7660ddf5c0675eb11e1b34f08a5a50739d6212e986c7b500173ad5edab4835d96c705f86cc0fd37e1ff1e64a161ab1ce8968df SHA512 a80525a4924a430ccac3f01f93a5f36b4b9d2f7671ef0629d7dd21d3651ea7a698d5cc520eb814c6ee4c0ee7efcd3f6a8f16688773300a25537636bb61eba286 DIST ogre-1.9.0.tar.bz2 128098305 BLAKE2B 6e67a5b60a6606a910e099f1c7ba736eb525f079f3aba5cfb362329b9130059d303fc9df6f7b8611c0ba75e1e207fa018e543e93c9f5ce39a6621e4c72ed4a83 SHA512 b1ea93d80ac0978a7c228460a6714f8d17797450efd5af6765c9fa4402e9060a8ef3a700d2757593a3016fdc32276722c8f4a5d9889a3e2eb424f16162a52bde DIST ogre-2.1.tar.gz 157457252 BLAKE2B 97e83cb93a07de5bd5f4fd778604e6146105e70045a6019f0fcdd7f96fe20f6ad495e19988dcd5e4c4073a0bcdeb5ce2afb06fae6945363c397a882672c80520 SHA512 9802e3bf20ddb09453524d1ddafa7a2083dfd0e609563f478fe31b087dd06d463f69800b9c6485cb3db92d98f282ef67ace3e272c1ef531e982ea9f719617fb5 diff --git a/dev-games/ogre/files/ogre-1.12.8-fix_Simple_demo.patch b/dev-games/ogre/files/ogre-1.12.8-fix_Simple_demo.patch deleted file mode 100644 index 49ed0190e0a1..000000000000 --- a/dev-games/ogre/files/ogre-1.12.8-fix_Simple_demo.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/Samples/Simple/include/SSAO.h 2020-04-26 13:54:31.321908377 +0200 -+++ b/Samples/Simple/include/SSAO.h 2020-04-26 13:54:47.497909935 +0200 -@@ -65,7 +65,7 @@ - SSAOGBufferSchemeHandler() - { - mGBufRefMat = Ogre::MaterialManager::getSingleton().getByName("SSAO/GBuffer"); -- RTShader::ShaderGenerator::getSingleton().validateMaterial("GBuffer", "SSAO/GBuffer"); -+ RTShader::ShaderGenerator::getSingleton().validateMaterial("GBuffer", "SSAO/GBuffer", "OgreAutodetect"); - mGBufRefMat->load(); - } - diff --git a/dev-games/ogre/files/ogre-1.12.8-media_path.patch b/dev-games/ogre/files/ogre-1.12.8-media_path.patch deleted file mode 100644 index 3030cc5b9fad..000000000000 --- a/dev-games/ogre/files/ogre-1.12.8-media_path.patch +++ /dev/null @@ -1,14 +0,0 @@ -Media paths are fine already, the removed lines would screw them up. - ---- a/CMake/InstallResources.cmake 2019-11-06 08:09:15.185821495 +0100 -+++ b/CMake/InstallResources.cmake 2019-11-06 08:10:41.169819050 +0100 -@@ -145,9 +145,6 @@ - - # CREATE CONFIG FILES - BUILD DIR VERSIONS - if (NOT (APPLE_IOS OR WINDOWS_STORE OR WINDOWS_PHONE)) -- set(OGRE_MEDIA_DIR_REL "${PROJECT_SOURCE_DIR}/Samples/Media") -- set(OGRE_CORE_MEDIA_DIR "${PROJECT_SOURCE_DIR}/Media") -- set(OGRE_TEST_MEDIA_DIR_REL "${PROJECT_SOURCE_DIR}/Tests/Media") - else () - # iOS needs to use relative paths in the config files - set(OGRE_MEDIA_DIR_REL "${OGRE_MEDIA_PATH}") diff --git a/dev-games/ogre/files/ogre-1.12.8-resource_path.patch b/dev-games/ogre/files/ogre-1.12.8-resource_path.patch deleted file mode 100644 index cf35e2f99e8e..000000000000 --- a/dev-games/ogre/files/ogre-1.12.8-resource_path.patch +++ /dev/null @@ -1,13 +0,0 @@ -These was already configured above, the BINARY paths are wrong! - ---- a/CMake/InstallResources.cmake 2019-11-06 08:12:01.271816772 +0100 -+++ b/CMake/InstallResources.cmake 2019-11-06 08:13:15.623814658 +0100 -@@ -163,8 +163,6 @@ - set(OGRE_PLUGIN_DIR_REL "Contents/Frameworks/") - set(OGRE_SAMPLES_DIR_REL "Contents/Plugins/") - elseif (UNIX) -- set(OGRE_PLUGIN_DIR_REL "${PROJECT_BINARY_DIR}/lib") -- set(OGRE_SAMPLES_DIR_REL "${PROJECT_BINARY_DIR}/lib") - endif () - - if (WINDOWS_STORE OR WINDOWS_PHONE OR EMSCRIPTEN) diff --git a/dev-games/ogre/files/ogre-1.12.8-upgrade_imgui.patch b/dev-games/ogre/files/ogre-1.12.8-upgrade_imgui.patch deleted file mode 100644 index 4c7803a0a2f2..000000000000 --- a/dev-games/ogre/files/ogre-1.12.8-upgrade_imgui.patch +++ /dev/null @@ -1,28 +0,0 @@ ---- a/Components/Overlay/CMakeLists.txt 2020-08-16 17:45:59.605165822 +0200 -+++ b/Components/Overlay/CMakeLists.txt 2020-08-16 17:48:45.796175402 +0200 -@@ -19,14 +19,14 @@ - file(GLOB SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp") - - if(OGRE_BUILD_COMPONENT_OVERLAY_IMGUI) -- set(IMGUI_DIR "${PROJECT_BINARY_DIR}/imgui-1.73" CACHE PATH "") -+ set(IMGUI_DIR "${PROJECT_SOURCE_DIR}/imgui-1.76" CACHE PATH "") - if(NOT EXISTS ${IMGUI_DIR}) - message(STATUS "Dowloading imgui") - file(DOWNLOAD -- https://github.com/ocornut/imgui/archive/v1.73.tar.gz -- ${PROJECT_BINARY_DIR}/imgui.tar.gz) -+ https://github.com/ocornut/imgui/archive/v1.76.tar.gz -+ ${PROJECT_SOURCE_DIR}/imgui.tar.gz) - execute_process(COMMAND ${CMAKE_COMMAND} -- -E tar xf imgui.tar.gz WORKING_DIRECTORY ${PROJECT_BINARY_DIR}) -+ -E tar xf imgui.tar.gz WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}) - endif() - list(APPEND SOURCE_FILES - ${IMGUI_DIR}/imgui.cpp -@@ -84,4 +84,4 @@ - ) - install(FILES "${PROJECT_SOURCE_DIR}/Media/packs/profiler.zip" - DESTINATION "${OGRE_MEDIA_PATH}/packs/" --) -\ Kein Zeilenumbruch am Dateiende. -+) diff --git a/dev-games/ogre/files/ogre-1.12.9-fix_Simple_demo.patch b/dev-games/ogre/files/ogre-1.12.9-fix_Simple_demo.patch new file mode 100644 index 000000000000..49ed0190e0a1 --- /dev/null +++ b/dev-games/ogre/files/ogre-1.12.9-fix_Simple_demo.patch @@ -0,0 +1,11 @@ +--- a/Samples/Simple/include/SSAO.h 2020-04-26 13:54:31.321908377 +0200 ++++ b/Samples/Simple/include/SSAO.h 2020-04-26 13:54:47.497909935 +0200 +@@ -65,7 +65,7 @@ + SSAOGBufferSchemeHandler() + { + mGBufRefMat = Ogre::MaterialManager::getSingleton().getByName("SSAO/GBuffer"); +- RTShader::ShaderGenerator::getSingleton().validateMaterial("GBuffer", "SSAO/GBuffer"); ++ RTShader::ShaderGenerator::getSingleton().validateMaterial("GBuffer", "SSAO/GBuffer", "OgreAutodetect"); + mGBufRefMat->load(); + } + diff --git a/dev-games/ogre/files/ogre-1.12.9-fix_config_window_height.patch b/dev-games/ogre/files/ogre-1.12.9-fix_config_window_height.patch new file mode 100644 index 000000000000..12b4ce86a86f --- /dev/null +++ b/dev-games/ogre/files/ogre-1.12.9-fix_config_window_height.patch @@ -0,0 +1,11 @@ +--- a/Components/Bites/src/OgreGLXConfigDialog.cpp 2020-09-21 15:17:33.783741691 +0200 ++++ b/Components/Bites/src/OgreGLXConfigDialog.cpp 2020-09-21 15:17:35.948741768 +0200 +@@ -74,7 +74,7 @@ + class GLXConfigurator { + /* GUI constants */ + static const int wWidth = 500; // Width of window +- static const int wHeight = 380; // Height of window ++ static const int wHeight = 340; // Height of window + static const int col1x = 20; // Starting x of column 1 (labels) + static const int col2x = 230; // Starting x of column 2 (options) + static const int col1w = 200; // Width of column 1 (labels) diff --git a/dev-games/ogre/files/ogre-1.12.9-gentoolize_imgui_inclusion.patch b/dev-games/ogre/files/ogre-1.12.9-gentoolize_imgui_inclusion.patch new file mode 100644 index 000000000000..765a53d4695c --- /dev/null +++ b/dev-games/ogre/files/ogre-1.12.9-gentoolize_imgui_inclusion.patch @@ -0,0 +1,27 @@ +--- a/Components/Overlay/CMakeLists.txt 2020-09-20 16:13:41.280993468 +0200 ++++ b/Components/Overlay/CMakeLists.txt 2020-09-20 16:14:52.468997571 +0200 +@@ -19,14 +19,14 @@ + file(GLOB SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp") + + if(OGRE_BUILD_COMPONENT_OVERLAY_IMGUI) +- set(IMGUI_DIR "${PROJECT_BINARY_DIR}/imgui-1.77" CACHE PATH "") ++ set(IMGUI_DIR "${PROJECT_SOURCE_DIR}/imgui-1.77" CACHE PATH "") + if(NOT EXISTS ${IMGUI_DIR}) + message(STATUS "Dowloading imgui") + file(DOWNLOAD + https://github.com/ocornut/imgui/archive/v1.77.tar.gz +- ${PROJECT_BINARY_DIR}/imgui.tar.gz) ++ ${PROJECT_SOURCE_DIR}/imgui.tar.gz) + execute_process(COMMAND ${CMAKE_COMMAND} +- -E tar xf imgui.tar.gz WORKING_DIRECTORY ${PROJECT_BINARY_DIR}) ++ -E tar xf imgui.tar.gz WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}) + endif() + list(APPEND SOURCE_FILES + ${IMGUI_DIR}/imgui.cpp +@@ -80,4 +80,4 @@ + ) + install(FILES "${PROJECT_SOURCE_DIR}/Media/packs/profiler.zip" + DESTINATION "${OGRE_MEDIA_PATH}/packs/" +-) +\ Kein Zeilenumbruch am Dateiende. ++) diff --git a/dev-games/ogre/files/ogre-1.12.9-media_path.patch b/dev-games/ogre/files/ogre-1.12.9-media_path.patch new file mode 100644 index 000000000000..3030cc5b9fad --- /dev/null +++ b/dev-games/ogre/files/ogre-1.12.9-media_path.patch @@ -0,0 +1,14 @@ +Media paths are fine already, the removed lines would screw them up. + +--- a/CMake/InstallResources.cmake 2019-11-06 08:09:15.185821495 +0100 ++++ b/CMake/InstallResources.cmake 2019-11-06 08:10:41.169819050 +0100 +@@ -145,9 +145,6 @@ + + # CREATE CONFIG FILES - BUILD DIR VERSIONS + if (NOT (APPLE_IOS OR WINDOWS_STORE OR WINDOWS_PHONE)) +- set(OGRE_MEDIA_DIR_REL "${PROJECT_SOURCE_DIR}/Samples/Media") +- set(OGRE_CORE_MEDIA_DIR "${PROJECT_SOURCE_DIR}/Media") +- set(OGRE_TEST_MEDIA_DIR_REL "${PROJECT_SOURCE_DIR}/Tests/Media") + else () + # iOS needs to use relative paths in the config files + set(OGRE_MEDIA_DIR_REL "${OGRE_MEDIA_PATH}") diff --git a/dev-games/ogre/files/ogre-1.12.9-resource_path.patch b/dev-games/ogre/files/ogre-1.12.9-resource_path.patch new file mode 100644 index 000000000000..cf35e2f99e8e --- /dev/null +++ b/dev-games/ogre/files/ogre-1.12.9-resource_path.patch @@ -0,0 +1,13 @@ +These was already configured above, the BINARY paths are wrong! + +--- a/CMake/InstallResources.cmake 2019-11-06 08:12:01.271816772 +0100 ++++ b/CMake/InstallResources.cmake 2019-11-06 08:13:15.623814658 +0100 +@@ -163,8 +163,6 @@ + set(OGRE_PLUGIN_DIR_REL "Contents/Frameworks/") + set(OGRE_SAMPLES_DIR_REL "Contents/Plugins/") + elseif (UNIX) +- set(OGRE_PLUGIN_DIR_REL "${PROJECT_BINARY_DIR}/lib") +- set(OGRE_SAMPLES_DIR_REL "${PROJECT_BINARY_DIR}/lib") + endif () + + if (WINDOWS_STORE OR WINDOWS_PHONE OR EMSCRIPTEN) diff --git a/dev-games/ogre/metadata.xml b/dev-games/ogre/metadata.xml index 43330db8ca14..db70daa77363 100644 --- a/dev-games/ogre/metadata.xml +++ b/dev-games/ogre/metadata.xml @@ -77,12 +77,13 @@ Exporters * Maya (meshes) + Use media-libs/assimp to import assets from 3D files Enable boost support Enable GL state cache support NVIDIA toolkit plugin More precise calculations at the expense of speed Use egl instead of glx - + Build deprecated component 'HLMS' and nodeless positioning of Lights and Cameras. @@ -112,7 +113,9 @@ Exporters (default: case-insensitive + sensitive lookup in all groups) When USE=threads, use tbb for threading - Build and install MeshUpgrader, VRMLConverter and XMLConverter + + Build and install AssimpConverter (assimp USE flag is enabled), MeshUpgrader, VRMLConverter and XMLConverter + sinbad/ogre diff --git a/dev-games/ogre/ogre-1.12.8.ebuild b/dev-games/ogre/ogre-1.12.8.ebuild deleted file mode 100644 index d7a634ba0da9..000000000000 --- a/dev-games/ogre/ogre-1.12.8.ebuild +++ /dev/null @@ -1,208 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -CMAKE_REMOVE_MODULES_LIST="FindFreetype FindDoxygen FindZLIB" -inherit cmake - -IMGUI_PN="imgui" -IMGUI_PV="1.76" -IMGUI_P="${IMGUI_PN}-${IMGUI_PV}" - -DESCRIPTION="Object-oriented Graphics Rendering Engine" -HOMEPAGE="https://www.ogre3d.org/" -SRC_URI="https://github.com/OGRECave/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz - https://github.com/ocornut/${IMGUI_PN}/archive/v${IMGUI_PV}.tar.gz -> ${IMGUI_P}.tar.gz" - -LICENSE="MIT public-domain" -SLOT="0/1.12" -KEYWORDS="~amd64 ~arm ~x86" - -IUSE="+cache cg debug deprecated doc double-precision egl examples +freeimage - json openexr +opengl pch profile resman-pedantic tools" - -# Note: gles2 USE flag taken out for now. It seems like the Ogre Devs now rely -# on HLSL2GLSL (https://github.com/aras-p/hlsl2glslfork) unconditionally -# for GLES2. So unless we have an ebuild for that, gles2/3 are off the -# table. -# ~~sed 2020-04-26 (yamakuzure@gmx.net) -# -# Note: Without gles2 USE flag, the opengl USE flag is next to useless. But -# there are packages which enforce it, so it has to stay. -# -# USE="gles2" -# REQUIRED_USE=" -# || ( gles2 opengl ) -# " -REQUIRED_USE=" - examples? ( opengl ) -" - -RESTRICT="test" #139905 - -RDEPEND=" - dev-games/ois - dev-libs/pugixml - dev-libs/zziplib - media-libs/freetype:2 - x11-libs/libX11 - x11-libs/libXaw - x11-libs/libXrandr - x11-libs/libXt - cg? ( media-gfx/nvidia-cg-toolkit ) - egl? ( media-libs/mesa[egl] ) - freeimage? ( media-libs/freeimage ) - json? ( dev-libs/rapidjson ) - openexr? ( media-libs/openexr:= ) - opengl? ( - virtual/glu - virtual/opengl - ) - tools? ( dev-libs/tinyxml[stl] ) -" -# gles2? ( media-libs/mesa[gles2] ) -DEPEND=" - ${RDEPEND} - x11-base/xorg-proto -" -BDEPEND=" - virtual/pkgconfig - doc? ( app-doc/doxygen ) -" - -PATCHES=( - "${FILESDIR}"/${P}-media_path.patch - "${FILESDIR}"/${P}-resource_path.patch - "${FILESDIR}"/${P}-fix_Simple_demo.patch - "${FILESDIR}"/${P}-upgrade_imgui.patch - "${FILESDIR}"/${PN}-1.10.12-use_system_tinyxml.patch -) - -src_unpack() { - unpack ${P}.tar.gz || die "Unpacking ${P}.zip failed" - - # Ogre 1.12.8 includes imgui, but as a submodule, it is not included - # in the release. The build system tries to download it, that may - # a) fail and - # b) uses an old release 1.73 - # So we are doing it ourselves. - cd "${S}" || die "Unpack incomplete" - unpack ${IMGUI_P}.tar.gz || die "Unpacking ${IMGUI_P}.zip failed" -} - -src_prepare() { - local broken_png=( - Icon@2x-72.png - Default-Portrait~ipad.png - Default-Portrait@2x~ipad.png - Default-Landscape@2x~ipad.png - ) - - sed -i \ - -e "s:share/doc/OGRE:share/doc/${PF}:" \ - Docs/CMakeLists.txt || die - # In this series, the CMAKE_BUILD_TARGET is hard-wired to the - # installation. And only Debug, MinSizeRel and RelWithDebInfo - # are supported. - sed -i \ - -e "s/$(usex debug Debug Release)/Gentoo/g" \ - CMake/InstallResources.cmake \ - CMake/Utils/OgreConfigTargets.cmake \ - || die - - # Fix broken png files - einfo "Fixing broken png files." - pushd "${S}"/Samples/Common/misc 1>/dev/null 2>&1 - for png in "${broken_png[@]}"; do - pngfix -q --out=out.png ${png} - mv -f out.png "${png}" || die - done - popd 1>/dev/null 2>&1 - einfo "done ..." - - # Fix some path issues - cmake_src_prepare -} - -src_configure() { - local mycmakeargs=( - -DCMAKE_SKIP_INSTALL_RPATH=yes - -DOGRE_BUILD_COMPONENT_BITES=yes - -DOGRE_BUILD_COMPONENT_CSHARP=no - -DOGRE_BUILD_COMPONENT_HLMS=$(usex deprecated) - -DOGRE_BUILD_COMPONENT_JAVA=no - -DOGRE_BUILD_COMPONENT_OVERLAY=yes - -DOGRE_BUILD_COMPONENT_OVERLAY_IMGUI=yes - -DOGRE_BUILD_COMPONENT_PAGING=yes - -DOGRE_BUILD_COMPONENT_PROPERTY=yes - -DOGRE_BUILD_COMPONENT_PYTHON=no - -DOGRE_BUILD_COMPONENT_RTSHADERSYSTEM=yes - -DOGRE_BUILD_COMPONENT_TERRAIN=yes - -DOGRE_BUILD_COMPONENT_VOLUME=yes - -DOGRE_BUILD_DEPENDENCIES=no - -DOGRE_BUILD_PLUGIN_CG=$(usex cg) - -DOGRE_BUILD_PLUGIN_FREEIMAGE=$(usex freeimage) - -DOGRE_BUILD_PLUGIN_EXRCODEC=$(usex openexr) - -DOGRE_BUILD_RENDERSYSTEM_GL=$(usex opengl) - -DOGRE_BUILD_RENDERSYSTEM_GL3PLUS=$(usex opengl) - -DOGRE_BUILD_RENDERSYSTEM_GLES2=no - -DOGRE_BUILD_SAMPLES=$(usex examples) - -DOGRE_BUILD_TESTS=no - -DOGRE_BUILD_TOOLS=$(usex tools) - -DOGRE_CONFIG_DOUBLE=$(usex double-precision) - -DOGRE_CONFIG_ENABLE_GL_STATE_CACHE_SUPPORT=$(usex cache) - -DOGRE_CONFIG_ENABLE_GLES2_CG_SUPPORT=no - -DOGRE_CONFIG_ENABLE_GLES3_SUPPORT=no - -DOGRE_CONFIG_THREADS=3 - -DOGRE_CONFIG_THREAD_PROVIDER=std - -DOGRE_ENABLE_PRECOMPILED_HEADERS=$(usex pch) - -DOGRE_INSTALL_DOCS=$(usex doc) - -DOGRE_INSTALL_SAMPLES=$(usex examples) - -DOGRE_INSTALL_SAMPLES_SOURCE=$(usex examples) - -DOGRE_NODELESS_POSITIONING=$(usex deprecated) - -DOGRE_PROFILING=$(usex profile) - -DOGRE_RESOURCEMANAGER_STRICT=$(usex resman-pedantic 1 2) - ) -# -DOGRE_BUILD_RENDERSYSTEM_GLES2=$(usex gles2) -# -DOGRE_CONFIG_ENABLE_GLES2_CG_SUPPORT=$(usex gles2 $(usex cg) no) -# -DOGRE_CONFIG_ENABLE_GLES3_SUPPORT=$(usex gles2) - - cmake_src_configure -} - -src_compile() { - cmake_src_compile - - if use doc ; then - eninja -C "${BUILD_DIR}" OgreDoc - fi -} - -src_install() { - cmake_src_install - - CONFIGDIR=/etc/OGRE - SHAREDIR=/usr/share/OGRE - - # plugins and resources are the main configuration - insinto "${CONFIGDIR}" - doins "${BUILD_DIR}"/bin/plugins.cfg - doins "${BUILD_DIR}"/bin/resources.cfg - dosym "${CONFIGDIR}"/plugins.cfg "${SHAREDIR}"/plugins.cfg - dosym "${CONFIGDIR}"/resources.cfg "${SHAREDIR}"/resources.cfg - - # These are only for the sample browser - if use examples ; then - insinto "${SHAREDIR}" - doins "${BUILD_DIR}"/bin/samples.cfg - doins "${BUILD_DIR}"/bin/tests.cfg - fi -} - -pkg_postinst() { - elog "If you experience crashes when starting /usr/bin/SampleBrowser," - elog "remove the cache directory at:" - elog " '~/.cache/OGRE Sample Browser'" - elog "first, before filing a bug report." -} diff --git a/dev-games/ogre/ogre-1.12.9.ebuild b/dev-games/ogre/ogre-1.12.9.ebuild new file mode 100644 index 000000000000..74d3cd557a69 --- /dev/null +++ b/dev-games/ogre/ogre-1.12.9.ebuild @@ -0,0 +1,208 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +CMAKE_REMOVE_MODULES_LIST="FindFreetype FindDoxygen FindZLIB" +inherit cmake + +IMGUI_PN="imgui" +IMGUI_PV="1.77" +IMGUI_P="${IMGUI_PN}-${IMGUI_PV}" + +DESCRIPTION="Object-oriented Graphics Rendering Engine" +HOMEPAGE="https://www.ogre3d.org/" +SRC_URI="https://github.com/OGRECave/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz + https://github.com/ocornut/${IMGUI_PN}/archive/v${IMGUI_PV}.tar.gz -> ${IMGUI_P}.tar.gz" + +LICENSE="MIT public-domain" +SLOT="0/1.12" +KEYWORDS="~amd64 ~arm ~x86" + +IUSE="assimp +cache cg debug deprecated doc double-precision egl examples +freeimage + json openexr +opengl pch profile resman-pedantic tools" + +# Note: gles2 USE flag taken out for now. It seems like the Ogre Devs now rely +# on HLSL2GLSL (https://github.com/aras-p/hlsl2glslfork) unconditionally +# for GLES2. So unless we have an ebuild for that, gles2/3 are off the +# table. +# ~~sed 2020-04-26 (yamakuzure@gmx.net) +# +# Note: Without gles2 USE flag, the opengl USE flag is next to useless. But +# there are packages which enforce it, so it has to stay. +# +# USE="gles2" +# REQUIRED_USE=" +# || ( gles2 opengl ) +# " +REQUIRED_USE=" + examples? ( opengl ) +" + +RESTRICT="test" #139905 + +RDEPEND=" + dev-games/ois + dev-libs/pugixml + dev-libs/zziplib + media-libs/freetype:2 + x11-libs/libX11 + x11-libs/libXaw + x11-libs/libXrandr + x11-libs/libXt + assimp? ( media-libs/assimp ) + cg? ( media-gfx/nvidia-cg-toolkit ) + egl? ( media-libs/mesa[egl] ) + freeimage? ( media-libs/freeimage ) + json? ( dev-libs/rapidjson ) + openexr? ( media-libs/openexr:= ) + opengl? ( + virtual/glu + virtual/opengl + ) + tools? ( dev-libs/tinyxml[stl] ) +" +# gles2? ( media-libs/mesa[gles2] ) +DEPEND=" + ${RDEPEND} + x11-base/xorg-proto +" +BDEPEND=" + virtual/pkgconfig + doc? ( app-doc/doxygen ) +" + +PATCHES=( + "${FILESDIR}"/${P}-media_path.patch + "${FILESDIR}"/${P}-resource_path.patch + "${FILESDIR}"/${P}-fix_Simple_demo.patch + "${FILESDIR}"/${P}-gentoolize_imgui_inclusion.patch + "${FILESDIR}"/${P}-fix_config_window_height.patch + "${FILESDIR}"/${PN}-1.10.12-use_system_tinyxml.patch +) + +src_unpack() { + unpack ${P}.tar.gz || die "Unpacking ${P}.zip failed" + + # Ogre 1.12.9 includes imgui, but as a submodule, it is not included + # in the release. The build system tries to download it, that may + # fail and so we are doing it ourselves. + cd "${S}" || die "Unpack incomplete" + unpack ${IMGUI_P}.tar.gz || die "Unpacking ${IMGUI_P}.zip failed" +} + +src_prepare() { + local broken_png=( + Icon@2x-72.png + Default-Portrait~ipad.png + Default-Portrait@2x~ipad.png + Default-Landscape@2x~ipad.png + ) + + sed -i \ + -e "s:share/doc/OGRE:share/doc/${PF}:" \ + Docs/CMakeLists.txt || die + # In this series, the CMAKE_BUILD_TARGET is hard-wired to the + # installation. And only Debug, MinSizeRel and RelWithDebInfo + # are supported. + sed -i \ + -e "s/$(usex debug Debug Release)/Gentoo/g" \ + CMake/InstallResources.cmake \ + CMake/Utils/OgreConfigTargets.cmake \ + || die + + # Fix broken png files + einfo "Fixing broken png files." + pushd "${S}"/Samples/Common/misc 1>/dev/null 2>&1 + for png in "${broken_png[@]}"; do + pngfix -q --out=out.png ${png} + mv -f out.png "${png}" || die + done + popd 1>/dev/null 2>&1 + einfo "done ..." + + # Fix some path issues + cmake_src_prepare +} + +src_configure() { + local mycmakeargs=( + -DCMAKE_SKIP_INSTALL_RPATH=yes + -DOGRE_BUILD_COMPONENT_BITES=yes + -DOGRE_BUILD_COMPONENT_CSHARP=no + -DOGRE_BUILD_COMPONENT_HLMS=$(usex deprecated) + -DOGRE_BUILD_COMPONENT_JAVA=no + -DOGRE_BUILD_COMPONENT_OVERLAY=yes + -DOGRE_BUILD_COMPONENT_OVERLAY_IMGUI=yes + -DOGRE_BUILD_COMPONENT_PAGING=yes + -DOGRE_BUILD_COMPONENT_PROPERTY=yes + -DOGRE_BUILD_COMPONENT_PYTHON=no + -DOGRE_BUILD_COMPONENT_RTSHADERSYSTEM=yes + -DOGRE_BUILD_COMPONENT_TERRAIN=yes + -DOGRE_BUILD_COMPONENT_VOLUME=yes + -DOGRE_BUILD_DEPENDENCIES=no + -DOGRE_BUILD_PLUGIN_CG=$(usex cg) + -DOGRE_BUILD_PLUGIN_FREEIMAGE=$(usex freeimage) + -DOGRE_BUILD_PLUGIN_EXRCODEC=$(usex openexr) + -DOGRE_BUILD_RENDERSYSTEM_GL=$(usex opengl) + -DOGRE_BUILD_RENDERSYSTEM_GL3PLUS=$(usex opengl) + -DOGRE_BUILD_RENDERSYSTEM_GLES2=no + -DOGRE_BUILD_SAMPLES=$(usex examples) + -DOGRE_BUILD_TESTS=no + -DOGRE_BUILD_TOOLS=$(usex tools) + -DOGRE_CONFIG_DOUBLE=$(usex double-precision) + -DOGRE_CONFIG_ENABLE_GL_STATE_CACHE_SUPPORT=$(usex cache) + -DOGRE_CONFIG_ENABLE_GLES2_CG_SUPPORT=no + -DOGRE_CONFIG_ENABLE_GLES3_SUPPORT=no + -DOGRE_CONFIG_THREADS=3 + -DOGRE_CONFIG_THREAD_PROVIDER=std + -DOGRE_ENABLE_PRECOMPILED_HEADERS=$(usex pch) + -DOGRE_INSTALL_DOCS=$(usex doc) + -DOGRE_INSTALL_SAMPLES=$(usex examples) + -DOGRE_INSTALL_SAMPLES_SOURCE=$(usex examples) + -DOGRE_NODELESS_POSITIONING=$(usex deprecated) + -DOGRE_PROFILING=$(usex profile) + -DOGRE_RESOURCEMANAGER_STRICT=$(usex resman-pedantic 1 2) + ) +# -DOGRE_BUILD_RENDERSYSTEM_GLES2=$(usex gles2) +# -DOGRE_CONFIG_ENABLE_GLES2_CG_SUPPORT=$(usex gles2 $(usex cg) no) +# -DOGRE_CONFIG_ENABLE_GLES3_SUPPORT=$(usex gles2) + + cmake_src_configure +} + +src_compile() { + cmake_src_compile + + if use doc ; then + eninja -C "${BUILD_DIR}" OgreDoc + fi +} + +src_install() { + cmake_src_install + + CONFIGDIR=/etc/OGRE + SHAREDIR=/usr/share/OGRE + + # plugins and resources are the main configuration + insinto "${CONFIGDIR}" + doins "${BUILD_DIR}"/bin/plugins.cfg + doins "${BUILD_DIR}"/bin/resources.cfg + dosym "${CONFIGDIR}"/plugins.cfg "${SHAREDIR}"/plugins.cfg + dosym "${CONFIGDIR}"/resources.cfg "${SHAREDIR}"/resources.cfg + + # These are only for the sample browser + if use examples ; then + insinto "${SHAREDIR}" + doins "${BUILD_DIR}"/bin/samples.cfg + doins "${BUILD_DIR}"/bin/tests.cfg + fi +} + +pkg_postinst() { + elog "If you experience crashes when starting /usr/bin/SampleBrowser," + elog "remove the cache directory at:" + elog " '~/.cache/OGRE Sample Browser'" + elog "first, before filing a bug report." +} -- cgit v1.2.3-65-gdbad