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
原始碼檔案屬性可能是全域可見的。請參閱其文件以了解詳細資訊。