CMP0063¶
於 3.3 版本新增。
對所有目標類型採用可見性屬性。
<LANG>_VISIBILITY_PRESET
和 VISIBILITY_INLINES_HIDDEN
目標屬性會影響動態連結時的符號可見性。 最初引入這些屬性時,它們僅影響共享程式庫、模組程式庫以及設定了 ENABLE_EXPORTS
屬性的可執行檔中原始碼的編譯。 這足以滿足共享程式庫和帶有外掛程式的可執行檔的基本用例。 但是,某些原始碼可能會編譯為靜態程式庫或物件程式庫的一部分,然後稍後連結到共享程式庫中。 CMake 3.3 及更高版本傾向於對所有目標類型中編譯的原始碼採用這些屬性。 此策略保留了專案期望屬性僅適用於某些目標類型的兼容性。
此策略的 OLD
行為是忽略靜態程式庫、物件程式庫和沒有輸出的可執行檔的可見性屬性。 此策略的 NEW
行為是對所有目標類型採用可見性屬性。
此策略在 CMake 版本 3.3 中引入。 可以通過 cmake_policy()
或 cmake_minimum_required()
來設定。 如果未設定,CMake 會發出警告,並使用 OLD
行為。
注意
策略的 OLD
行為依定義 已棄用
,並可能在未來版本的 CMake 中移除。