message: FIX cmake.installPrefix
  Use cmake.installPrefix
  Enable substitution support
diff: @@ -339,6 +339,11 @@ export abstract class CMakeDriver implements vscode.Disposable {
  await this.doRefreshExpansions(async () => {
  this._sourceDirectory = util.normalizePath(await this.expandString(config.sourceDirectory));
  this._binaryDir = util.normalizePath(await this.expandString(config.buildDirectory));
  +
  + const installPrefix = config.installPrefix;
  + if (installPrefix) {
  + this._installDir = util.normalizePath(await this.expandString(installPrefix));
  + }
  });
  }
  @@ -353,9 +358,15 @@ export abstract class CMakeDriver implements vscode.Disposable {
  /**
  * Directory where build output is stored.
  */
  - get binaryDir(): string { return this._binaryDir }
  + get binaryDir(): string { return this._binaryDir; }
  private _binaryDir = '';
  + /**
  + * Directory where the targets will be installed.
  + */
  + get installDir(): string|null { return this._installDir; }
  + private _installDir: string|null = '';
  +
  /**
  * @brief Get the path to the CMakeCache file in the build directory
  */
  @@ -539,6 +550,13 @@ export abstract class CMakeDriver implements vscode.Disposable {
  settings.CMAKE_BUILD_TYPE = this.currentBuildType;
  }
  + // Only use the installPrefix config if the user didn't
  + // provide one via configureSettings
  + if (!settings.CMAKE_INSTALL_PREFIX) {
  + await this._refreshExpansions();
  + settings.CMAKE_INSTALL_PREFIX = this.installDir;
  + }
  +
  const settings_flags
  = util.objectPairs(settings).map(([ key, value ]) => _makeFlag(key, util.cmakeify(value as string)));
  const flags = [ '--no-warn-unused-cli' ].concat(extra_args);
  