CMP0098¶
在 3.17 版本中新增。
FindFLEX
模組在執行時於 CMAKE_CURRENT_BINARY_DIR
目錄中執行 flex
。
此模組提供一個 FLEX_TARGET
巨集,用於產生 FLEX 輸出。在 CMake 3.16 及更早版本中,此巨集會產生一個自訂命令,該命令會在目前的原始碼目錄中執行 flex
。CMake 3.17 及更高版本偏好在建置目錄中執行它,並使用 CMAKE_CURRENT_BINARY_DIR
作為其 add_custom_command()
呼叫的 WORKING_DIRECTORY
。這確保任何隱含產生的檔案都是相對於建置樹狀結構而不是原始碼樹狀結構寫入的,除非產生的檔案是以絕對路徑提供。
此政策為尚未更新以預期新行為的專案提供相容性。
此政策的 OLD
行為是讓 FLEX_TARGET
使用目前的原始碼目錄作為 WORKING_DIRECTORY
以及產生隱含檔案的位置。此政策的 NEW
行為是使用目前的二進制目錄作為 WORKING_DIRECTORY
,隱含檔案會相對於此目錄產生,除非以絕對路徑提供。
此政策在 CMake 3.17 版本中引入。它可以使用 cmake_policy()
或 cmake_minimum_required()
進行設定。如果未設定,CMake *不會* 發出警告,並使用 OLD
行為。
注意
政策的 OLD
行為 根據定義已棄用
,並可能在未來版本的 CMake 中移除。