Skip to content

v3.0.0 发布

Choose a tag to compare

@Iviesever Iviesever released this 10 Apr 03:07
· 767 commits to main since this release

核心重构

  • 配置系统彻底重构:全面对齐 MSBuild (Microsoft.Cl.Common.props) 默认行为,支持 debug / release 预设。
  • CLI 与 JSON 1:1 映射:msvc_list.json 所有字段开放同名 CLI 参数,优先级严格遵循 CLI > JSON > 预设。新增近 20 个参数 (-config, -optimize, -runtime 等)。
  • 模块缓存散列重制:从 .NET 内存哈希迁移至全平台一致的 MD5 路径哈希。
  • .ifc 预恢复机制:由于 MSVC 模块产物不一定与源码同名,重写了缓存流转逻辑——构建前全量恢复缓存,仅依赖 .obj 时间戳判定新鲜度。

新增特性

  • 完整 MSVC 参数:涵盖警告级别、异常模型、浮点模型、运行时安全检查(/RTC, /GS, /JMC) 及全程序优化(LTCG)。
  • 语义化设置:加入 charset (unicode/mbcs) 与 subsystem (console/windows)。
  • 链接层参数:新增 link_flags 支持向 MSVC 链接器注入底层指令。
  • 源文件过滤:通过 msvc_list.json 的 exclude 字段支持 glob 模式排除特定文件(如旧单元测试)。

修复

  • 修复中文/特殊字符路径下 cl /scanDependencies 因 BAT 编码乱码导致的扫描崩溃(改为 chcp 65001 + utf8)。
  • 修复模块名与文件名不一致时,旧版脚本无法清理残留 .ifc/.obj 的问题,改用后缀清理。
  • 修复 JSON output 控制输出名与 CLI -o 覆盖时的滞后 BUG。