CMP0028¶
目标名称中的双冒号表示“ALIAS”或“IMPORTED”目标。
CMake 2.8.12 及更低版本允许在 target_link_libraries() 中使用带有双冒号的目标和文件,以及一些构建系统生成器。
双冒号的使用是用于命名“IMPORTED”目标和“ALIAS”目标的常见模式。在计算目标的链接依赖时,每个依赖的名称可以是目标,也可以是磁盘上的文件。以前,如果找不到具有匹配名称的目标,该名称将被认为是指磁盘上的文件。如果应该是目标名称的内容有拼写错误,这可能会导致出现令人困惑的错误消息。
另请参阅:prop_tgt:LINK_LIBRARIES_ONLY_TARGETS 目标属性。
此策略的“旧”行为是搜索目标,然后是磁盘上的文件,即使搜索词包含双冒号。如果链接依赖项包含双冒号但不是“IMPORTED”目标或“ALIAS”目标,则此策略的“新”行为是发出“FATAL_ERROR”。
此策略是在 CMake 3.0 版中引入的。 CMake 版本 |发布|当未设置策略并使用“旧”行为时发出警告。使用 cmake_policy() 命令将其显式设置为 OLD 或 NEW。
备注
策略的“旧”行为是 :manual:根据定义 <cmake-policies(7)> 已弃用,并且可能会在未来版本的 CMake 中删除。