为什么 CMake 变量区分大小写但命令不区分大小写?

Why are CMake variables case-sensitive but commands are not?

C、C++、python、ksh 等流行语言对变量和函数始终区分大小写。所以,我很惊讶地得知 CMake 以不同的方式对待它。什么原因?谢谢。

CMake 变量区分大小写,与其他流行语言一样。但是,由于历史原因以及 CMake 严格遵守向后兼容性,CMake 命令 不区分大小写 。来自 CMake 维护者 Brad King 的 quote

Ancient CMake versions required upper-case commands. Later command names became case-insensitive. Now the preferred style is lower-case.

表示CMake命令使用为大写。但是,现在的约定是使用 小写 命令。

旧版本 CMake 的许多行为和约定已使用 CMake 策略得到维护(并过时)。 cmake_policy 命令使开发人员可以控制是否应使用 oldnew 行为。但是,据我所知,没有规定 CMake 命令区分大小写的政策。