Skip to content

fix: 修复非Git仓库下CMake生成Makefile语法错误#38

Open
jack3z wants to merge 1 commit into
aliyun:masterfrom
jack3z:master
Open

fix: 修复非Git仓库下CMake生成Makefile语法错误#38
jack3z wants to merge 1 commit into
aliyun:masterfrom
jack3z:master

Conversation

@jack3z
Copy link
Copy Markdown

@jack3z jack3z commented Mar 19, 2026

问题:在非Git仓库环境编译时,git log 错误输出被写入 CXX_DEFINES,导致 flags.make 出现换行和特殊字符,触发Makefile "遗漏分隔符"错误。

根因:原CMake代码未处理Git命令失败场景,错误日志直接混入宏定义,破坏Makefile语法。

修复

  1. 替换 exec_programexecute_process,增加 ERROR_QUIET 忽略错误输出
  2. 简化Git输出为纯短哈希 %h,避免特殊字符与换行
  3. 增加空值判断,失败时默认赋值 "unknown"
  4. 修正引号嵌套,使用标准 "${VERSION_SHA1}" 格式

验证

  • ✅ 非Git仓库环境编译正常
  • ✅ Git仓库环境可正常获取commit hash
  • ✅ 生成的Makefile语法合法

@CLAassistant
Copy link
Copy Markdown

CLAassistant commented Mar 19, 2026

CLA assistant check
All committers have signed the CLA.

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