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
目標屬性來建立兩個具有相同實際名稱的目標,同時保持邏輯名稱不同。自訂目標必須具有全域唯一的名稱(除非使用帶有 Makefiles 產生器的全域屬性 ALLOW_DUPLICATE_CUSTOM_TARGETS
)。
此策略在 CMake 2.6.0 版本中引入。可以使用 cmake_policy()
或 cmake_minimum_required()
來設定。如果未設定,CMake 會發出警告,並使用 OLD
行為。
注意
策略的 OLD
行為依定義為 已棄用
,並可能在未來的 CMake 版本中移除。