CMP0056

於 3.2 版本新增。

try_compile() 原始碼檔案簽章中採用連結旗標。

try_compile() 命令的原始碼檔案簽章會產生一個 CMakeLists.txt 檔案,將原始碼檔案建置為可執行檔。為了以與呼叫專案可能編譯相同的方式編譯原始碼,產生的專案會將 CMAKE_<LANG>_FLAGS 變數的值設定為呼叫專案中的值。在某些情況下,可能也需要 CMAKE_EXE_LINKER_FLAGS 變數的值,但 CMake 3.1 及更早版本並未在產生的專案中設定它。CMake 3.2 及更高版本傾向於設定它,以便連結器旗標以及編譯器旗標都能被採用。此政策提供與 3.2 之前的行為的相容性。

此政策的 OLD 行為是不在產生的測試專案中設定 CMAKE_EXE_LINKER_FLAGS 變數的值。此政策的 NEW 行為是在測試專案中將 CMAKE_EXE_LINKER_FLAGS 變數的值設定為與呼叫專案中的值相同。

如果專案程式碼未明確設定此政策,使用者可以在命令列中透過在快取中定義 CMAKE_POLICY_DEFAULT_CMP0056 變數來設定。

此政策在 CMake 3.2 版本中引入。可以使用 cmake_policy()cmake_minimum_required() 設定。如果未設定,CMake 預設不會發出警告,並使用 OLD 行為。

請參閱 CMAKE_POLICY_WARNING_CMP0056 變數的文件來控制警告。

注意

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