CMAKE_GENERATOR_INSTANCE

版本 3.11 新增。

使用者提供的產生器特定實例規格。

某些 CMake 產生器在有多個實例可用時,支援選擇原生建置系統的實例。如果使用者指定一個實例(例如透過設定此快取條目或經由 CMAKE_GENERATOR_INSTANCE 環境變數),或者在首次設定建置樹狀結構時選擇預設實例之後,此值將在此變數中可用。

此變數的值永遠不應由專案程式碼修改。由 CMAKE_TOOLCHAIN_FILE 變數指定的工具鏈檔案可能會將 CMAKE_GENERATOR_INSTANCE 初始化為快取條目。一旦給定的建置樹狀結構已使用此變數的特定值初始化,更改該值將導致未定義的行為。

實例規格僅在特定產生器上受支援。

Visual Studio 實例選擇

Visual Studio 產生器 支援 Visual Studio 2017 及更高版本的實例規格。CMAKE_GENERATOR_INSTANCE 變數可以設定為快取條目,透過以下形式之一選擇 Visual Studio 的實例

  • 位置

  • 位置[,key=value]*

  • key=value[,key=value]*

location」指定 VS 安裝的最上層目錄的絕對路徑。

key=value」對形成以逗號分隔的選項列表,用於指定實例選擇的詳細資訊。支援的配對為

version=<major>.<minor>.<date>.<build>

版本 3.23 新增。

指定 4 個組件的 VS 建置版本,又稱建置編號。

組件為

<major>.<minor>

VS 主要和次要版本號碼。這些與發行版本號碼相同。

<date>

格式為 MMMDD 的建置日期,其中 MMM 是自 Microsoft 使用的紀元以來的月份索引,而 DD 是該月份中的日期。

<build>

<date> 代表的日期的建置索引。

建置編號由 vswhere 報告為 installationVersion。例如,VS 16.11.10 的建置編號為 16.11.32126.315

版本 3.23 新增:可攜式 VS 實例(Visual Studio 安裝程式未知)可以透過同時提供 locationversion= 來指定。

如果使用者或工具鏈檔案未明確指定 CMAKE_GENERATOR_INSTANCE 的值,CMake 會查詢 Visual Studio 安裝程式以尋找 VS 實例,選擇其中一個,並將變數設定為快取條目以持久保存該值。如果設定了格式為 VS##0COMNTOOLS 的環境變數(其中 ## 是 Visual Studio 主要版本號碼),並且指向其中一個 VS 實例中的 Common7/Tools 目錄,則將使用該實例。否則,如果安裝了多個 VS 實例,我們不會定義預設選擇哪一個。

所選 VS 實例的 VS 版本建置編號在 CMAKE_VS_VERSION_BUILD_NUMBER 變數中提供。