Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[New Port Request] cegui/cegui #43897

Open
jamarr81 opened this issue Feb 17, 2025 · 0 comments
Open

[New Port Request] cegui/cegui #43897

jamarr81 opened this issue Feb 17, 2025 · 0 comments
Labels
category:new-port The issue is requesting a new library to be added; consider making a PR! info:good-first-issue This issue would be a good issue to get one's feet wet in solving.

Comments

@jamarr81
Copy link

jamarr81 commented Feb 17, 2025

Library name

CEGUI

Library description

A versatile, fast, adjustable, multi-platform, C++ library for creating graphical user interfaces for games and rendering applications.

Source repository URL

https://github.com/cegui/cegui

Project homepage (if different from the source repository)

https://cegui.org.uk

Anything else that is useful to know when adding (such as optional features the library may have that should be included)

Notability
This library has been used in many indie and commercial projects over the past 15 years, including the original Torchlight game; and in many other unlisted projects. It was at one time a popular choice for the OGRE3D game engine, which is already in vcpkg/ogre.

Versioning
Its inclusion in vcpkg has previously been requested 1, 2, 3 times. Despite some appearances, this library is not abandoned and is maintained by a small but dedicated group of volunteers. I believe the confusion around its status is that the last (and only) github/release is v0.8.7 from 2016. However, its master branch has since been using a version scheme similar to a rolling versioning scheme, which is currently synonymous with v2.4.2. That said, for now, I believe the best approach would be to use the version-date option that is typically used for rolling-versions; similar to vcpkg/luajit.

CMake
It already uses cmake with a robust CMakeLists.txt file. It defaults to Release builds like most vcpkg packages. It has build targets for Win32, Apple, Unix, and Android. It already supports both static and dynamic build configurations, including static vs dynamic MSVS runtime linking.

Dependencies
This library only needs 6 dependencies to meet its core requirements on Win32. It does support a variety of alternatives to fulfill them, but only these are needed to build the library with "default" options:

  1. OpenGL Math: vcpkg/glm.
  2. Regex: std (default).
  3. XML Parser: vcpkg/pugixml.
  4. Image Codec: vcpkg/freeimage.
  5. Renderer: vcpkg/opengl and vcpkg/glew.
  6. Scripting: none (optional).
  7. Fonts: vcpkg/freetype.

For apple/unix, it would also need:

  1. vcpkg/libiconv

For the samples, it would also need:

  1. vcpkg/glfw

Note that all core dependencies are already in vcpkg. All the necessary pieces are here, but we need a portfle to expose them. This set of dependencies should be sufficient for an initial package version; the remaining alternatives could be added as features later.

@jamarr81 jamarr81 added category:new-port The issue is requesting a new library to be added; consider making a PR! info:good-first-issue This issue would be a good issue to get one's feet wet in solving. labels Feb 17, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category:new-port The issue is requesting a new library to be added; consider making a PR! info:good-first-issue This issue would be a good issue to get one's feet wet in solving.
Projects
None yet
Development

No branches or pull requests

1 participant