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
相关推荐
奶油话梅糖6 小时前
快过 IDM 5 倍、开源免费:4,200 Star 的 Rust 下载器用 7 组对照实验“单挑“行业老大冬奇Lab17 小时前
一天一个开源项目(第257篇):AI Design Skills —— 把设计规范写成 AI 能执行的规则,落地页与 Figma 两套 SkillErishen18 小时前
Lume A2A 实战:让 Lume 应用接入分布式 Agent 协作网络miofly20 小时前
Genie 4新增原生音频,实时世界模型加入声音生成鶴哥只手遮天21 小时前
《Redis 8.10.3 深度剖析》系列 ·第 13 章 Set:三种编码、集合运算与随机采样菩提小狗1 天前
每日极客日报 · 2026年11月09日终码一生1 天前
开源项目|一款强大的桌面远程控制软件用户2991422196801 天前
GitHub 热榜项目:日榜(2026-11-10)miofly1 天前
Meta发布小模型Muse Ember,智能体基准多项超GPT-6与Claude Haiku 5.5jianqiang.xue1 天前
1万亿参数全开源,Mistral Large 4又降了编码Agent门槛