CMP0095

於 3.16 版本新增。

RPATH 條目在 CMake 中間安裝腳本中會被正確地轉義。

在 CMake 3.15 及更早版本中,透過 CMAKE_INSTALL_RPATHINSTALL_RPATH 設定的 RPATH 條目,在被插入 cmake_install.cmake 腳本之前不會被轉義。基於 ELF 系統(例如 Linux 和 FreeBSD)上的動態連結器允許在 RPATH 條目中使用某些關鍵字,例如 ${ORIGIN}(更多詳細資訊請參閱這些系統上的 ld.so 手冊頁)。這些關鍵字的語法可能與 CMake 的變數語法相符。為了避免被中間的 cmake_install.cmake 腳本預先替換(通常替換為空字串),使用者必須對這些 RPATH 關鍵字進行雙重轉義,例如 set(CMAKE_INSTALL_RPATH "\\\${ORIGIN}/../lib")。由於中間的 cmake_install.cmake 腳本是 CMake 的實作細節,CMake 3.16 及更高版本將確保 RPATH 條目以字面形式插入,方法是轉義任何偶然的 CMake 語法。

此政策的 OLD 行為是不轉義中間 cmake_install.cmake 腳本中的 RPATH 條目。 NEW 行為是在生成中間 cmake_install.cmake 腳本時,正確轉義 RPATH 條目中偶然的 CMake 語法。

此政策於 CMake 3.16 版本中引入。它可以使用 cmake_policy()cmake_minimum_required() 設定。如果未設定,CMake 在偵測到使用類似 CMake 的語法時會發出警告,並使用 OLD 行為。

注意

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