设置属性¶
在给定范围内设置命名属性。
set_property(<GLOBAL |
DIRECTORY [<dir>] |
TARGET [<target1> ...] |
SOURCE [<src1> ...]
[DIRECTORY <dirs> ...]
[TARGET_DIRECTORY <targets> ...] |
INSTALL [<file1> ...] |
TEST [<test1> ...] |
CACHE [<entry1> ...] >
[APPEND] [APPEND_STRING]
PROPERTY <name> [<value1> ...])
在范围的零个或多个对象上设置一个属性。
第一个参数确定设置属性的范围。它必须是以下之一:
全球
范围是唯一的,不接受名称。
目录
范围默认为当前目录,但其他目录(已由 CMake 处理)可以按完整路径或相对路径命名。相对路径被视为相对于当前源目录。另请参阅
set_directory_properties()
命令。在 3.19 版本加入:
<dir>
可以引用一个二进制目录。目标
范围可以命名零个或多个现有目标。另请参阅
set_target_properties()
命令。来源
范围可以命名零个或多个源文件。默认情况下,源文件属性仅对添加到同一目录中的目标可见(
CMakeLists.txt
)。在 3.18 版本加入: 可以使用以下一个或两个子选项在其他目录范围内设置可见性:
目录 <dirs>...
源文件属性将在每个
<dirs>
目录范围内设置。 CMake 必须已经知道这些目录中的每一个,或者通过调用 add_subdirectory 添加它们,或者它是顶级源目录。相对路径被视为相对于当前源目录。在 3.19 版本加入:
<dirs>
可以引用一个二进制目录。TARGET_DIRECTORY <目标>...
源文件属性将在创建任何指定的
<targets>
的每个目录范围内设置(因此<targets>
必须已经存在)。
另请参阅
set_source_files_properties()
命令。安装
在 3.1 版本加入.
Scope 可以指定零个或多个已安装的文件路径。这些可用于 CPack 以影响部署。
属性键和值都可以使用生成器表达式。特定属性可能适用于已安装的文件和/或目录。
路径组件必须用正斜杠分隔,必须规范化并且区分大小写。
要使用相对路径引用安装前缀本身,请使用
.
。当前安装的文件属性仅为 WIX 生成器定义,其中给定路径与安装前缀相关。
测试
Scope 可以命名零个或多个现有测试。另请参阅
set_tests_properties()
命令。对于由 add_test(NAME) 签名创建的测试,可以使用 generator expressions <cmake-generator-expressions(7)> 指定测试属性值。
缓存
范围必须命名零个或多个缓存现有条目。
所需的 PROPERTY
选项紧跟在要设置的属性的名称之后。其余参数用于以分号分隔列表的形式组成属性值。
如果给出 APPEND
选项,列表将附加到任何现有的属性值(除了忽略和不附加空值)。如果给出 APPEND_STRING
选项,字符串将作为字符串附加到任何现有属性值,即它会产生更长的字符串而不是字符串列表。当使用 APPEND
或 APPEND_STRING
以及定义为支持 INHERITED
行为的属性时(请参阅:command:define_property),在找到要附加到的初始值时不会发生继承。如果该属性尚未在指定范围内直接设置,则该命令的行为就好像没有给出 APPEND
或 APPEND_STRING
一样。
备注
GENERATED
源文件属性可能是全局可见的。有关详细信息,请参阅其文档。
也可以看看¶
每个范围内的属性列表的
cmake-properties(7)
手册。