EUI-NEO是一个纯 C++ 做的轻量跨平台 GUI
环境要求
CMake 3.14+
C++17 编译器:MSVC 19.29+(Visual Studio 2019 16.11+)、GCC/MinGW-w64 12+ 或 Clang 14+
OpenGL 开发文件(用于默认渲染器)
将 EUI-NEO 放置在
external/EUI-NEO目录下,然后创建:cmake_minimum_required(VERSION 3.14)
project(MyProject LANGUAGES C CXX)set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)add_subdirectory(external/EUI-NEO)
add_executable(my_app app.cpp)
eui_neo_configure_app(my_app)
app.cpp:
#include "eui_neo.h" namespace app { const DslAppConfig& dslAppConfig() { static const DslAppConfig config = DslAppConfig{} .title("My App") .pageId("my_app") .windowSize(960, 640); return config; } void compose(eui::Ui& ui, const eui::Screen& screen) { ui.column("root") .size(screen.width, screen.height) .padding(32.0f) .content([&] { ui.text("title") .text("Hello EUI-NEO") .fontSize(28.0f) .build(); }) .build(); } } // namespace app构建:
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release cmake --build build --parallel ./build/my_app
eui_neo_configure_app()会添加所选的 GLFW/SDL2 入口点、链接eui::neo、应用平台可执行文件设置,并部署运行时资源。应用程序不应直接引用core/下的文件。发布版 SDK 同样支持该目标配置:
find_package(EuiNeo CONFIG REQUIRED) add_executable(my_app app.cpp) eui_neo_configure_app(my_app)有关安装、FetchContent、SDL2/Vulkan 选择以及自定义主循环的详细信息,请参阅集成指南(Integration Guide)。有关构建本仓库及依赖要求的说明,请参阅开发与发布(Development And Release)。
Xmake
Xmake 3.0+ 支持源码构建以及 xrepo 库使用者:
set_languages("cxx17") add_requires("eui-neo") target("my_app") set_kind("binary") add_files("main.cpp", "app.cpp") add_packages("eui-neo")xrepo 包提供
eui_neo库;main.cpp负责窗口循环和应用程序入口点。直接构建本仓库时,eui.app规则会添加所选平台的入口点并部署资源。构建仓库中的示例:
xmake f -m debug -y --apps=y --user_apps=y xmake build gallery xmake f -m release -y --apps=y --user_apps=y xmake build gallery在 Windows 上,可执行文件路径为
.xmake/build/windows/x64/<debug|release>/gallery.exe。有关后端选项和其他目标,请参阅集成指南(Integration Guide)。
可选模块
可选功能模块位于
modules/目录下,相关文档请参阅模块指南(Modules Guide)。
项目结构
目录 说明 assets/运行时资源:字体、PNG、SVG 和图标 components/基于 DSL 构建的可复用 UI 组件 core/DSL、运行时、图元、文本、图像、网络和平台代码 docs/实现说明和 API 文档 examples/简短的单屏 API 演示 modules/可选功能模块,如键盘和串口 apps/较长或多页面应用;每个应用位于独立文件夹中 include/公共头文件路径: eui_neo.h和eui/*外观头文件tests/探测源码、夹具应用和本地基准测试说明 3rd/第三方构建源码和单文件依赖项
文档
DSL 设计与当前实现(DSL Design And Current Implementation)
组件
模块
状态模型(State Model)
布局
事件
动画
异步
渲染后端架构与管线(Render Backend Architecture And Pipeline)
保留层缓存(Retained Layer Cache)
图像
网络
平台能力(Platform Capabilities)
集成指南(Integration Guide)
Shadertoy 图元(Shadertoy Primitive)
开发与发布(Development And Release)
许可证
EUI-NEO 的源代码基于 Apache License 2.0 许可证开源。
3rd/下的第三方代码、CMake 获取的构建时可选依赖项,以及assets/下捆绑的字体或图标字体,均遵循各自上游的许可证和版权声明。
EUI-NEO C++ 轻量跨平台 GUI
a1117762026-08-21 20:49
相关推荐
miofly4 分钟前
DeepSeek开源推理框架DeepInfer,支持英伟达昇腾双平台johnsong1 小时前
AI前沿日报 2026-10-21:开源AI全面反击魔都吴所谓1 小时前
【我的开源】Python实现一个离线 PDF 工具箱:架构、骑缝章与踩坑记录阿文和她的Key1 小时前
DeepInfer 与 TorchTPU 同日开源:供应商锁定的成本结构正在被重写周永恒2 小时前
CODESYS AI实践 - 单元测试小李的AI雷达3 小时前
DeepSeek开源DeepInfer推理框架;奥尔特曼被曝设想三种AI治理终局;Claude自主设计蝎毒蛋白结合体 | 科技日报1021miofly3 小时前
GitHub 日榜趋势速报 | 2026-10-22JJJennie7775 小时前
2026年大模型网关自建还是买?MAI Gateway等主流方案横评2601_9654542312 小时前
用AI把开源项目功能清单做成MG动画介绍视频