load_cache

從另一個專案的 CMakeCache.txt 快取檔案載入數值。這對於依賴於在不同目錄樹中建置的另一個專案的專案非常有用。

這個命令有兩種簽名。建議的簽名是

load_cache(<build-dir> READ_WITH_PREFIX <prefix> <entry>...)

從指定的 <build-dir> 建置目錄載入快取檔案,並檢索列出的快取條目。檢索到的值儲存在本地變數中,其名稱以提供的 <prefix> 作為前綴。這只會讀取快取值;它不會在本機專案的快取中建立或修改條目。

READ_WITH_PREFIX <prefix>

對於每個快取 <entry>,都會使用指定的 <prefix> 後接條目名稱來建立一個本地變數。

這個簽名也可以在 cmake -P 腳本模式中使用。

強烈建議不要使用以下命令簽名,但為了向後相容性而提供

load_cache(<build-dir> [EXCLUDE <entry>...] [INCLUDE_INTERNALS <entry>...])

此形式從指定的 <build-dir> 建置目錄載入快取檔案,並將其所有非內部快取條目作為內部快取變數匯入到本機專案的快取中。預設情況下,僅匯入非內部條目,除非使用 INCLUDE_INTERNALS 選項。

選項如下

EXCLUDE <entry>...

此選項可用於在匯入值時排除給定的非內部快取條目列表。

INCLUDE_INTERNALS <entry>...

除了非內部快取條目之外,此選項還可用於提供要包含的內部快取條目列表。

這個簽名只能在 CMake 專案中使用。不支援腳本模式。

注意

與其載入外部專案的快取檔案並手動存取變數,更穩健和方便的方法是在外部專案中(如果可用)使用 export() 命令。這允許專案以結構化且可維護的方式提供其目標、組態或功能,使整合更簡單且不易出錯。

範例

從另一個專案讀取特定的快取變數並將其儲存為本地變數

load_cache(
  path/to/other-project/build-dir
  READ_WITH_PREFIX prefix_
  OTHER_PROJECT_CACHE_VAR_1
  OTHER_PROJECT_CACHE_VAR_2
)

message(STATUS "${prefix_OTHER_PROJECT_CACHE_VAR_1")
message(STATUS "${prefix_OTHER_PROJECT_CACHE_VAR_2")
# Outputs:
# -- some-value...
# -- another-value...

使用過時的簽名,從另一個專案讀取所有非內部快取條目,並將它們儲存為內部快取變數

load_cache(path/to/other-project/build-dir)

message(STATUS "${OTHER_PROJECT_CACHE_VAR_1")
message(STATUS "${OTHER_PROJECT_CACHE_VAR_2")
# Outputs:
# -- some-value...
# -- another-value...

使用過時的簽名,排除特定的非內部快取條目並包含內部條目

load_cache(
  path/to/other-project/build-dir
  EXCLUDE OTHER_PROJECT_CACHE_VAR_2
  INCLUDE_INTERNALS OTHER_PROJECT_INTERNAL_CACHE_VAR
)

message(STATUS "${OTHER_PROJECT_CACHE_VAR_1")
message(STATUS "${OTHER_PROJECT_CACHE_VAR_2")
message(STATUS "${OTHER_PROJECT_INTERNAL_CACHE_VAR}")
# Outputs:
# -- some-value...
# --
# -- some-internal-value...