CMP0002¶
逻辑目标名称必须在全局范围内具有唯一性。
使用 add_executable()
、add_library()
或 add_custom_target()
创建的目标名称是逻辑构建目标名称。逻辑目标名称必须在全局范围内具有唯一性,因为
- Unique names may be referenced unambiguously both in CMake
code and on make tool command lines.
- Logical names are used by Xcode and VS IDE generators
to produce meaningful project names for the targets.
可执行目标和库目标的逻辑名称不一定与构建的物理文件名相对应。考虑使用 OUTPUT_NAME
目标属性来创建两个具有相同物理名称但保持逻辑名称不同的目标。自定义目标必须具有全局唯一的名称(除非使用全局属性 ALLOW_DUPLICATE_CUSTOM_TARGETS
以及 Makefiles 生成器)。
此策略在 CMake 2.6.0 版本中引入。可以通过 cmake_policy()
或 cmake_minimum_required()
来设置。如果未设置,CMake 将发出警告并使用 OLD
行为。
注意
OLD
策略的行为 已弃用 (按定义)
,并且可能会在将来的 CMake 版本中删除。