CMake变量名区分大小写?

CMake variable names case sensitive?

CMake 如何处理变量名?它们是否区分大小写?

如果我使用 FindFoo.cmake

find_package(Foo)

我可以使用 FOO_FOUNDFoo_FOUNDfoo_FOUND 吗?

它们区分大小写。

举个例子:

set(foo 42)

MESSAGE( STATUS ${foo})
MESSAGE( STATUS ${Foo})

输出:

-- 42
-- 

查看 FindFoo 的文档以找出正确的 _FOUND 变量是什么。或者也许有一天会使用这个工具:

https://youtu.be/BPgXuvPAl-8?t=659

CMake 变量区分大小写。参见 documentation


附带说明一下,命令不区分大小写,它们的 参数 区分大小写。参见 wiki。像 STATUS 这样的关键字是区分大小写的,因为它们是参数。示例:

message(STATUS foo)
MESSAGE(status foo)

输出:

foo
statusfoo

第二个标记为警告(默认消息类型)。

关于区分大小写,还请查看 boolean variable section