CMP0063

於 3.3 版本新增。

對所有目標類型採用可見性屬性。

<LANG>_VISIBILITY_PRESETVISIBILITY_INLINES_HIDDEN 目標屬性會影響動態連結時的符號可見性。 最初引入這些屬性時,它們僅影響共享程式庫、模組程式庫以及設定了 ENABLE_EXPORTS 屬性的可執行檔中原始碼的編譯。 這足以滿足共享程式庫和帶有外掛程式的可執行檔的基本用例。 但是,某些原始碼可能會編譯為靜態程式庫或物件程式庫的一部分,然後稍後連結到共享程式庫中。 CMake 3.3 及更高版本傾向於對所有目標類型中編譯的原始碼採用這些屬性。 此策略保留了專案期望屬性僅適用於某些目標類型的兼容性。

此策略的 OLD 行為是忽略靜態程式庫、物件程式庫和沒有輸出的可執行檔的可見性屬性。 此策略的 NEW 行為是對所有目標類型採用可見性屬性。

此策略在 CMake 版本 3.3 中引入。 可以通過 cmake_policy()cmake_minimum_required() 來設定。 如果未設定,CMake 會發出警告,並使用 OLD 行為。

注意

策略的 OLD 行為依定義 已棄用,並可能在未來版本的 CMake 中移除。