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_DOCSFULL_DOCS,則變數會設定為包含所要求屬性文件的字串。如果要求未定義的屬性文件,則會傳回 NOTFOUND

注意

GENERATED 原始碼檔案屬性可能是全域可見的。請參閱其文件以了解詳細資訊。

另請參閱