summaryrefslogtreecommitdiff
path: root/dev-games/mygui
diff options
context:
space:
mode:
authorroot <root@alpha.trunkmasters.com>2026-06-12 19:09:37 -0500
committerroot <root@alpha.trunkmasters.com>2026-06-12 19:09:37 -0500
commitb590c8d7572b727d565cc0b8ff660d43569845de (patch)
tree06f7a4102ea4e845df8b66660f252920d52952f9 /dev-games/mygui
parent24f9cbfc4c34fdb6a6e03311674414e881ceab47 (diff)
downloadbaldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.tar.gz
baldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.tar.xz
baldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.zip
Adding metadata
Diffstat (limited to 'dev-games/mygui')
-rw-r--r--dev-games/mygui/Manifest1
-rw-r--r--dev-games/mygui/files/mygui-3.4.1-FHS.patch27
-rw-r--r--dev-games/mygui/files/mygui-3.4.1-build.patch52
-rw-r--r--dev-games/mygui/files/mygui-3.4.3-libcxx-18.patch21
-rw-r--r--dev-games/mygui/files/mygui-3.4.3-werror.patch12
-rw-r--r--dev-games/mygui/metadata.xml47
-rw-r--r--dev-games/mygui/mygui-3.4.3.ebuild163
7 files changed, 323 insertions, 0 deletions
diff --git a/dev-games/mygui/Manifest b/dev-games/mygui/Manifest
new file mode 100644
index 000000000000..a106375ad371
--- /dev/null
+++ b/dev-games/mygui/Manifest
@@ -0,0 +1 @@
+DIST mygui-3.4.3.tar.gz 18797995 BLAKE2B 8329e63bdef7201f6a810fd5f4d85e36e0cf48f74f769c4e0f7c026ccae397274debe49ad71ba4a30d251cfba00ee99bcf73ed7424d4f878d769793aef985cf1 SHA512 88c69ca2e706af364b72d425f95013eb285501881d8094f8d67e31a54c45ca11b0eb5b62c382af0d4c43f69aa8197648259ac306b72efa7ef3e25eecb9b039cb
diff --git a/dev-games/mygui/files/mygui-3.4.1-FHS.patch b/dev-games/mygui/files/mygui-3.4.1-FHS.patch
new file mode 100644
index 000000000000..b6d7bbe8e327
--- /dev/null
+++ b/dev-games/mygui/files/mygui-3.4.1-FHS.patch
@@ -0,0 +1,27 @@
+From: Julian Ospald <hasufell@gentoo.org>
+Date: Sat Oct 27 22:39:31 UTC 2012
+Subject: FHS
+
+paths hardcoded until upstream fixed the logic
+
+--- mygui-MyGUI3.2.2.orig/CMake/InstallResources.cmake
++++ mygui-MyGUI3.2.2/CMake/InstallResources.cmake
+@@ -24,7 +24,7 @@
+ else ()
+ install(FILES
+ ${MYGUI_BINARY_DIR}/bin/${FILENAME}
+- DESTINATION "bin"
++ DESTINATION "/etc/MYGUI"
+ )
+ endif ()
+ endfunction(install_file)
+@@ -53,7 +53,7 @@
+ if (WIN32)
+ set(MYGUI_MEDIA_DIR "../../Media")
+ elseif (UNIX)
+- set(MYGUI_MEDIA_DIR "../share/MYGUI/Media")
++ set(MYGUI_MEDIA_DIR "${CMAKE_INSTALL_PREFIX}/share/MYGUI/Media")
+ else ()
+ set(MYGUI_MEDIA_DIR "../../Media")
+ endif ()
+
diff --git a/dev-games/mygui/files/mygui-3.4.1-build.patch b/dev-games/mygui/files/mygui-3.4.1-build.patch
new file mode 100644
index 000000000000..5729be5d4380
--- /dev/null
+++ b/dev-games/mygui/files/mygui-3.4.1-build.patch
@@ -0,0 +1,52 @@
+diff --git a/CMake/ConfigureBuild.cmake b/CMake/ConfigureBuild.cmake
+--- a/CMake/ConfigureBuild.cmake
++++ b/CMake/ConfigureBuild.cmake
+@@ -4,6 +4,8 @@
+ # also prepare package files for pkg-config and CMake.
+ #######################################################################
+
++include(GNUInstallDirs)
++
+ # should we build static libs?
+ if (MYGUI_STATIC)
+ set(MYGUI_LIB_TYPE STATIC)
+diff --git a/CMake/Utils/MyGUIConfigTargets.cmake b/CMake/Utils/MyGUIConfigTargets.cmake
+--- a/CMake/Utils/MyGUIConfigTargets.cmake
++++ b/CMake/Utils/MyGUIConfigTargets.cmake
+@@ -1,6 +1,8 @@
+ # Configure settings and install targets
+ # FIXME: Copypasted from Ogre and need lots of changes
+
++include(GNUInstallDirs)
++
+ if (WIN32)
+ set(MYGUI_RELEASE_PATH "/Release")
+ set(MYGUI_RELWDBG_PATH "/RelWithDebInfo")
+@@ -32,6 +34,12 @@ endif ()
+
+ # install targets according to current build type
+ function(mygui_install_target TARGETNAME SUFFIX)
++ install(TARGETS ${TARGETNAME}
++ RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" CONFIGURATIONS Gentoo ""
++ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" CONFIGURATIONS Gentoo ""
++ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" CONFIGURATIONS Gentoo ""
++ FRAMEWORK DESTINATION "${MYGUI_FRAMEWORK_PATH}" CONFIGURATIONS Gentoo ""
++ )
+ install(TARGETS ${TARGETNAME}
+ RUNTIME DESTINATION "bin${MYGUI_RELEASE_PATH}" CONFIGURATIONS Release None ""
+ LIBRARY DESTINATION "lib${MYGUI_LIB_RELEASE_PATH}${SUFFIX}" CONFIGURATIONS Release None ""
+@@ -183,7 +191,13 @@ function(mygui_app PROJECTNAME SOLUTIONFOLDER)
+ endif ()
+ add_executable(${PROJECTNAME} ${MYGUI_EXEC_TYPE} ${HEADER_FILES} ${SOURCE_FILES})
+ endif ()
+- set_target_properties(${PROJECTNAME} PROPERTIES FOLDER ${SOLUTIONFOLDER})
++
++ # rename demo target
++ if (${SOLUTIONFOLDER} STREQUAL "Demos")
++ set_target_properties(${PROJECTNAME} PROPERTIES FOLDER ${SOLUTIONFOLDER} OUTPUT_NAME MYGUI-${PROJECTNAME})
++ else()
++ set_target_properties(${PROJECTNAME} PROPERTIES FOLDER ${SOLUTIONFOLDER})
++ endif()
+
+ add_dependencies(${PROJECTNAME} MyGUIEngine Common)
+
diff --git a/dev-games/mygui/files/mygui-3.4.3-libcxx-18.patch b/dev-games/mygui/files/mygui-3.4.3-libcxx-18.patch
new file mode 100644
index 000000000000..e4bf5626798e
--- /dev/null
+++ b/dev-games/mygui/files/mygui-3.4.3-libcxx-18.patch
@@ -0,0 +1,21 @@
+From https://github.com/MyGUI/mygui/commit/0731785d83431bd17a0854f19bea9a7d687de5a7 Mon Sep 17 00:00:00 2001
+From: George Evmenov <altren@gmail.com>
+Date: Thu, 6 Mar 2025 03:06:03 +0300
+Subject: [PATCH] do not use std::basic_string with non-standard types
+ (deprecated in llvm-18)
+
+--- a/MyGUIEngine/include/MyGUI_UString.h
++++ b/MyGUIEngine/include/MyGUI_UString.h
+@@ -163,10 +163,10 @@ namespace MyGUI
+ static const size_type npos = std::numeric_limits<size_t>::max();
+
+ //! a single 32-bit Unicode character
+- using unicode_char = uint32;
++ using unicode_char = char32_t;
+
+ //! a single UTF-16 code point
+- using code_point = uint16;
++ using code_point = char16_t;
+
+ //! value type typedef for use in iterators
+ using value_type = code_point;
diff --git a/dev-games/mygui/files/mygui-3.4.3-werror.patch b/dev-games/mygui/files/mygui-3.4.3-werror.patch
new file mode 100644
index 000000000000..d001c9e48baf
--- /dev/null
+++ b/dev-games/mygui/files/mygui-3.4.3-werror.patch
@@ -0,0 +1,12 @@
+Remove -Werror
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -174,7 +174,6 @@ include(Dependencies)
+
+ # Set compiler specific build flags
+ if (CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR CMAKE_CXX_COMPILER_ID MATCHES "Intel")
+- add_compile_options(-Werror)
+ if (NOT MYGUI_HIGH_LEVEL_WARNINGS)
+ add_compile_options(-w)
+ else ()
diff --git a/dev-games/mygui/metadata.xml b/dev-games/mygui/metadata.xml
new file mode 100644
index 000000000000..368290e7f2f2
--- /dev/null
+++ b/dev-games/mygui/metadata.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>games@gentoo.org</email>
+ <name>Gentoo Games Project</name>
+ </maintainer>
+ <upstream>
+ <maintainer status="active">
+ <email>altren@list.ru</email>
+ <name>Evmenov Georgiy</name>
+ </maintainer>
+ <changelog>http://redmine.mygui.info/repositories/entry/mygui/tags/MyGUI3.2/ChangeLog.txt</changelog>
+ <bugs-to>https://github.com/MyGUI/mygui/issues</bugs-to>
+ </upstream>
+ <use>
+ <flag name="l10n_ru">Install some additional russian docs if 'doc' useflag enabled</flag>
+ <flag name="opengl">Use the opengl render subsystem. (cannot combine with ogre)</flag>
+ <flag name="ogre">Use the ogre render subsystem. (cannot combine with opengl)</flag>
+ <flag name="plugins">Build MyGUI plugins</flag>
+ <flag name="samples">Install MyGUI demos (needs ogre USE flag)</flag>
+ <flag name="tools">Build the tools for development</flag>
+ </use>
+ <longdescription lang="en">
+ MyGUI is a library for creating Graphical User Interfaces (GUIs) for
+ games and 3D applications. The main goals of mygui are: speed,
+ flexibility and ease of use.
+
+ Speed
+ We speed up our system by using our own batching subsystem which
+ combines geometry. It is also possible for the more experienced
+ developers to write their own render system or new subsystems
+
+ Flexibility
+ The library supports plugins that allows you to create dynamically
+ loaded custom controls or subsystems. Most subsystems are expandable
+ with plugins without the need to touch the core code. All resources
+ and settings are described in XML files. It is possible to load
+ resources like fonts, cursors, images, skins, etc. Forms (layouts)
+ via dynamically by using XML files.
+
+ Simplicity
+ The user interface is easy to use and uses delegates (Signals and
+ slots) for easy to use event handling.
+ </longdescription>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/dev-games/mygui/mygui-3.4.3.ebuild b/dev-games/mygui/mygui-3.4.3.ebuild
new file mode 100644
index 000000000000..46824cac17d1
--- /dev/null
+++ b/dev-games/mygui/mygui-3.4.3.ebuild
@@ -0,0 +1,163 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CMAKE_REMOVE_MODULES_LIST=(FindFreetype)
+inherit cmake flag-o-matic
+
+MY_PN=MyGUI
+MY_P=${MY_PN}${PV}
+
+DESCRIPTION="A library for creating GUIs for games and 3D applications"
+HOMEPAGE="http://mygui.info"
+SRC_URI="https://github.com/MyGUI/mygui/archive/${MY_P}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0/${PV}" # soname
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+IUSE="debug doc +ogre opengl plugins samples static-libs test tools l10n_ru"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="ogre? ( !opengl )
+ opengl? ( !ogre )"
+
+RDEPEND="media-libs/freetype:2
+ virtual/zlib:=
+ ogre? (
+ >=dev-games/ogre-1.12:0=[freeimage,opengl]
+ samples? ( dev-games/ois )
+ )
+ opengl? (
+ virtual/opengl
+ media-libs/glew:0=
+ )
+ tools? ( dev-games/ois )"
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig
+ doc? ( app-text/doxygen )"
+
+S=${WORKDIR}/mygui-${MY_P}
+STATIC_BUILD=${WORKDIR}/${P}_build_static
+
+PATCHES=(
+ "${FILESDIR}"/mygui-3.4.1-build.patch
+ "${FILESDIR}"/mygui-3.4.1-FHS.patch
+ "${FILESDIR}"/mygui-3.4.3-werror.patch
+
+ # backport
+ "${FILESDIR}"/${P}-libcxx-18.patch
+)
+
+pkg_setup() {
+ if use samples && use !ogre ; then
+ ewarn "Samples disabled, because they only work with ogre!"
+ ewarn "Enable ogre USE flag if you want to use samples."
+ fi
+}
+
+src_configure() {
+ use debug && append-cppflags -DDEBUG
+
+ local mycmakeargs=()
+
+ # static configuration
+ if use static-libs ; then
+ mycmakeargs=( -DMYGUI_STATIC=ON
+ -DMYGUI_DONT_USE_OBSOLETE=ON
+ -DMYGUI_BUILD_DOCS=OFF
+ -DMYGUI_INSTALL_DOCS=OFF
+ -DMYGUI_USE_FREETYPE=ON
+ -DMYGUI_BUILD_PLUGINS=$(usex plugins)
+ -DMYGUI_BUILD_DEMOS=OFF
+ -DMYGUI_INSTALL_DEMOS=OFF
+ -DMYGUI_BUILD_TOOLS=OFF
+ -DMYGUI_INSTALL_TOOLS=OFF
+ -DMYGUI_BUILD_WRAPPER=OFF
+ -DMYGUI_RENDERSYSTEM=$(usex opengl "4" "$(usex ogre "3" "1")") )
+
+ CMAKE_BUILD_DIR=${STATIC_BUILD} cmake_src_configure
+ unset mycmakeargs
+ fi
+
+ # main configuration
+ mycmakeargs=(
+ -DMYGUI_STATIC=OFF
+ -DMYGUI_BUILD_DOCS=$(usex doc)
+ -DMYGUI_INSTALL_DOCS=$(usex doc)
+ -DMYGUI_USE_FREETYPE=ON
+ -DMYGUI_BUILD_PLUGINS=$(usex plugins)
+ -DMYGUI_BUILD_TOOLS=$(usex tools)
+ -DMYGUI_INSTALL_TOOLS=$(usex tools)
+ -DMYGUI_USE_SYSTEM_GLEW=$(usex opengl)
+ -DMYGUI_BUILD_WRAPPER=OFF
+ -DMYGUI_DONT_USE_OBSOLETE=ON
+ -DMYGUI_RENDERSYSTEM=$(usex opengl "4" "$(usex ogre "3" "1")")
+ )
+
+ if use ogre && use samples; then
+ mycmakeargs+=(
+ -DMYGUI_BUILD_DEMOS=ON
+ -DMYGUI_INSTALL_DEMOS=ON
+ )
+ else
+ mycmakeargs+=(
+ -DMYGUI_BUILD_DEMOS=OFF
+ -DMYGUI_INSTALL_DEMOS=OFF
+ )
+
+ fi
+
+ if use tools || (use samples && use ogre) ; then
+ mycmakeargs+=( -DMYGUI_INSTALL_MEDIA=ON )
+ else
+ mycmakeargs+=( -DMYGUI_INSTALL_MEDIA=OFF )
+ fi
+
+ cmake_src_configure
+}
+
+src_compile() {
+ # build system does not support building static and shared at once,
+ # run a double build
+ if use static-libs ; then
+ CMAKE_BUILD_DIR=${STATIC_BUILD} cmake_src_compile
+ fi
+
+ cmake_src_compile
+
+ use doc && emake -C "${CMAKE_BUILD_DIR}"/Docs api-docs
+}
+
+src_install() {
+ cmake_src_install
+
+ if use static-libs ; then
+ find "${STATIC_BUILD}" -name "*.a" \! -name "libCommon.a" -exec dolib.a '{}' \;
+ insinto /usr/$(get_libdir)/pkgconfig
+ doins "${STATIC_BUILD}"/pkgconfig/MYGUIStatic.pc
+ fi
+
+ if use doc ; then
+ dodoc -r "${CMAKE_BUILD_DIR}"/Docs/html/
+
+ if use l10n_ru ; then
+ docompress -x /usr/share/doc/${PF}/Papers
+ dodoc -r Docs/Papers
+ fi
+ fi
+
+ keepdir /etc/MYGUI
+ fperms o+w /etc/MYGUI
+
+ # test media not needed at runtime
+ rm -rf "${ED}"/usr/share/MYGUI/Media/UnitTests || die
+ # wrapper not available for linux, remove related media
+ rm -rf "${ED}"/usr/share/MYGUI/Media/Wrapper || die
+}
+
+pkg_postinst() {
+ elog
+ elog "ogre.cfg and Ogre.log are created as"
+ elog "${EROOT}/etc/MYGUI/mygui-ogre.cfg and /etc/MYGUI/mygui-Ogre.log"
+ elog
+}