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

另請參閱