get_property¶
取得屬性。
get_property(<variable>
<GLOBAL |
DIRECTORY [<dir>] |
TARGET <target> |
SOURCE <source>
[DIRECTORY <dir> | TARGET_DIRECTORY <target>] |
INSTALL <file> |
TEST <test>
[DIRECTORY <dir>] |
CACHE <entry> |
VARIABLE >
PROPERTY <name>
[SET | DEFINED | BRIEF_DOCS | FULL_DOCS])
從作用域中的一個物件取得一個屬性。
第一個參數指定儲存結果的變數。第二個參數決定要從哪個作用域取得屬性。它必須是下列其中之一
GLOBAL
全域作用域是唯一的,不接受名稱。
DIRECTORY
目錄作用域預設為目前目錄,但可以透過完整或相對路徑
<dir>
來命名另一個目錄(CMake 已處理過)。相對路徑會被視為相對於目前的原始碼目錄。另請參閱get_directory_property()
命令。版本 3.19 新增:
<dir>
可以參考二進制目錄。TARGET
目標作用域必須命名一個現有的目標。另請參閱
get_target_property()
命令。SOURCE
來源作用域必須命名一個原始碼檔案。預設情況下,原始碼檔案的屬性將從目前原始碼目錄的作用域讀取。
版本 3.18 新增: 目錄作用域可以使用以下子選項之一覆寫
DIRECTORY <dir>
原始碼檔案屬性將從
<dir>
目錄的作用域讀取。CMake 必須已經知道該目錄,可能是透過呼叫add_subdirectory()
新增,或是<dir>
為最上層目錄。相對路徑會被視為相對於目前的原始碼目錄。版本 3.19 新增:
<dir>
可以參考二進制目錄。TARGET_DIRECTORY <target>
原始碼檔案屬性將從
<target>
建立所在的目錄作用域讀取(因此<target>
必須已存在)。
另請參閱
get_source_file_property()
命令。INSTALL
版本 3.1 新增。
安裝作用域必須命名一個已安裝的檔案路徑。
TEST
測試作用域必須命名一個現有的測試。另請參閱
get_test_property()
命令。版本 3.28 新增: 目錄作用域可以使用以下子選項覆寫
DIRECTORY <dir>
測試屬性將從
<dir>
目錄的作用域讀取。CMake 必須已經知道該目錄,可能是透過呼叫add_subdirectory()
新增,或是<dir>
為最上層目錄。相對路徑會被視為相對於目前的原始碼目錄。<dir>
可以參考二進制目錄。
CACHE
快取作用域必須命名一個快取條目。
VARIABLE
全域作用域是唯一的,不接受名稱。
必要的 PROPERTY
選項緊接著是要取得的屬性名稱。如果屬性未設定,則在返回時,名為 <variable>
的變數將在呼叫作用域中取消設定,儘管某些屬性如果定義為以這種方式運作,則支援從父作用域繼承(請參閱 define_property()
)。
如果給定 SET
選項,則變數會設定為布林值,指示屬性是否已設定。如果給定 DEFINED
選項,則變數會設定為布林值,指示屬性是否已定義,例如使用 define_property()
命令。
如果給定 BRIEF_DOCS
或 FULL_DOCS
,則變數會設定為包含所請求屬性文件的字串。如果請求的文件屬性尚未定義,則會返回 NOTFOUND
。
注意
GENERATED
原始碼檔案屬性可能是全域可見的。請參閱其文件以了解詳細資訊。