Skip to content

Add neargye.magic_enum package (C++23 module) - #136

Merged
Sunrisepeak merged 2 commits into
mcpplibs:mainfrom
ZheFeng7110:feat/add-magic_enum
Jul 29, 2026
Merged

Add neargye.magic_enum package (C++23 module)#136
Sunrisepeak merged 2 commits into
mcpplibs:mainfrom
ZheFeng7110:feat/add-magic_enum

Conversation

@ZheFeng7110

Copy link
Copy Markdown
Collaborator

概述

Neargye/magic_enum v0.9.8 收录进 mcpp-index,以 C++23 模块形式暴露 import magic_enum;

变更内容

  1. 包描述符 pkgs/n/neargye.magic_enum.lua

    • 命名空间:neargye,包名:magic_enum
    • 形态:C++23 模块库(直接使用上游 module/magic_enum.cppm
    • 版本:0.9.8(最新 release)
  2. 测试工程 tests/examples/magic_enum/

    • 测试 enum_nameenum_castenum_values 等基本功能
    • 已添加到 workspace members
  3. 文档更新

    • README.md 中添加包条目
    • 设计文档 .agents/docs/2026-07-29-add-magic_enum-plan.md

技术细节

  • 模块文件处理:上游 module/magic_enum.cppm 包含条件预处理器块(#if __has_include(<fmt/format.h>)),mcpp 的 M1 模块扫描器不允许此类条件块。使用 scan_overrides 绕过扫描器限制,直接指定模块提供关系。
  • 直接使用上游文件:无需 generated_files,减少维护负担,保持与上游同步。
  • CN 镜像:由于没有 mcpp-res 写权限,使用纯字符串形式的上游 URL。CN 用户将回退至上游源,后续由维护者补充镜像。
  • 本地验证:已通过 mcpp xpkg parsemcpp test -p magic_enum 验证,测试通过。

验证结果

mcpp xpkg parse pkgs/n/neargye.magic_enum.lua  # 解析成功
mcpp test -p magic_enum                         # 测试通过

相关文件

  • pkgs/n/neargye.magic_enum.lua
  • tests/examples/magic_enum/mcpp.toml
  • tests/examples/magic_enum/tests/reflection.cpp
  • .agents/docs/2026-07-29-add-magic_enum-plan.md
  • README.md(更新)
  • mcpp.toml(更新 workspace members)

- Add package descriptor pkgs/n/neargye.magic_enum.lua
- Add test example tests/examples/magic_enum/
- Update README and workspace members
@Sunrisepeak
Sunrisepeak merged commit b9905a9 into mcpplibs:main Jul 29, 2026
5 checks passed
@ZheFeng7110
ZheFeng7110 deleted the feat/add-magic_enum branch July 29, 2026 08:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants