1.9 KiB
1.9 KiB
项目指令
CMake 规则
- 禁止在任何 CMake 代码中使用
cmake_parse_arguments。 - 函数参数存在性检查、枚举值检查优先使用已有函数;没有合适函数时,创建新的小型专用函数。
- 优先使用显式位置参数,其他配置项优先通过 target 属性实现,避免依赖大量全局变量。。
CMake 格式规范
- 禁止松散、无意义的空行, 代码保持紧凑。
CMake 命名规范
- 项目自定义名称优先使用小写
snake_case。 - 名称必须表达明确用途,禁止使用无语义或含糊缩写。
- 项目自定义
function()使用小写snake_case。 - 公共函数必须带项目或模块前缀,例如
sun_cat_add_library()。 - 内部辅助函数以下划线开头,并带项目或模块前缀,例如
_sun_cat_check_required_arg()。 - 不要新增无前缀的全局函数。
- 局部变量使用小写
snake_case,例如target_name、source_files、include_dirs。 - 布尔变量使用明确谓词形式,例如
is_header_only、has_public_sources、enable_install。 - 自定义 target 属性使用大写
SNAKE_CASE,并带项目或模块前缀,例如SUN_CAT_LIBRARY_KIND。 - CMake 模块文件使用小写
snake_case,例如sun_cat_library.cmake。 - 如果已有文件存在稳定命名风格,优先保持当前文件一致性;但不得违反本项目禁用规则。
组装脚本规范
- 组装脚本时候功能通常是模块化的 一半都是输出字符串函数 字符串脚本落盘函数 脚本封装成 add_custom_target 函数组装的add_custom_command函数
- 多层结构出现的,每层需要复用
- 当函数需要组装powershell脚本 cmd脚本时候,注意编码格式,windows系统是GBK,项目文件,全局都是utf8 with bom
- 注意有些古老工具 chcp 65001 并不能输出utf8编码,这是就要尽量考虑输出文件方案,规避乱码问题