CMP0028

目标名称中的双冒号表示 ALIASIMPORTED 目标。

CMake 2.8.12 及更低版本允许在 target_link_libraries() 中使用带有双冒号的目标和文件,以及某些构建系统生成器。

使用双冒号是用于命名空间 IMPORTED 目标和 ALIAS 目标的常见模式。在计算目标的链接依赖关系时,每个依赖关系的名称可以是目标或磁盘上的文件。以前,如果通过匹配的名称找不到目标,则该名称被认为引用磁盘上的文件。如果目标名称中出现错别字,这可能会产生迷惑的错误消息。

另请参见 LINK_LIBRARIES_ONLY_TARGETS 目标属性。

此策略的 OLD 行为是搜索目标,然后在磁盘上搜索文件,即使搜索项包含双冒号。此策略的 NEW 行为是如果链接依赖关系包含双冒号,但不是 IMPORTED 目标或 ALIAS 目标,则发出 FATAL_ERROR

此策略在 CMake 3.0 中引入。可以使用 cmake_policy()cmake_minimum_required() 设置它。如果未设置,CMake 会发出警告并使用 OLD 行为。

注意

OLD 策略的行为 deprecated by definition 可能会在未来版本的 CMake 中移除。