Skip to content

Commit 266060f

Browse files
Don't nullify driver on cancel of configure or build (#4254)
* I don't see any reason to nullify the cmakeDriver just because we stopped a configure or build * no reason to nullify driver on cancel * need to reconfigure when a configure is stopped
1 parent 078d737 commit 266060f

4 files changed

Lines changed: 10 additions & 16 deletions

File tree

src/cmakeProject.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2401,7 +2401,6 @@ export class CMakeProject {
24012401

24022402
return drv.stopCurrentProcess().then(async () => {
24032403
await this.activeBuild;
2404-
this.cmakeDriver = Promise.resolve(null);
24052404
this.isBusy.set(false);
24062405
return true;
24072406
}, () => false);
@@ -2415,7 +2414,6 @@ export class CMakeProject {
24152414

24162415
return drv.stopCurrentProcess().then(async () => {
24172416
await this.activeBuild;
2418-
this.cmakeDriver = Promise.resolve(null);
24192417
return true;
24202418
}, () => false);
24212419
}

src/drivers/cmakeDriver.ts

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,14 @@ export abstract class CMakeDriver implements vscode.Disposable {
146146
return this._isConfiguredAtLeastOnce;
147147
}
148148

149+
protected _needsReconfigure = true;
150+
/**
151+
* Check if we need to reconfigure, such as if an important file has changed
152+
*/
153+
public async checkNeedsReconfigure(): Promise<boolean> {
154+
return this._needsReconfigure;
155+
}
156+
149157
protected async doPreCleanConfigure(): Promise<void> {
150158
return Promise.resolve();
151159
}
@@ -163,10 +171,6 @@ export abstract class CMakeDriver implements vscode.Disposable {
163171
*/
164172
protected abstract get isCacheConfigSupported(): boolean;
165173

166-
/**
167-
* Check if we need to reconfigure, such as if an important file has changed
168-
*/
169-
abstract checkNeedsReconfigure(): Promise<boolean>;
170174
/**
171175
* Event registration for code model updates
172176
*
@@ -2031,6 +2035,7 @@ export abstract class CMakeDriver implements vscode.Disposable {
20312035
if (this.configureProcess && this.configureProcess.child) {
20322036
await util.termProc(this.configureProcess.child);
20332037
this.configureProcess = null;
2038+
this._needsReconfigure = true;
20342039
}
20352040
if (this.cmakeBuildRunner) {
20362041
await this.cmakeBuildRunner.stop();
@@ -2057,6 +2062,7 @@ export abstract class CMakeDriver implements vscode.Disposable {
20572062
const initBaseDriverWithPresetLoc = localize("init.driver.using.preset", "Initializing base driver using preset");
20582063
const initBaseDriverWithKitLoc = localize("init.driver.using.kit", "Initializing base driver using kit");
20592064
log.debug(`${useCMakePresets ? initBaseDriverWithPresetLoc : initBaseDriverWithKitLoc}`);
2065+
20602066
// Load up kit or presets before starting any drivers.
20612067
if (useCMakePresets) {
20622068
if (configurePreset) {

src/drivers/cmakeFileApiDriver.ts

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,6 @@ export class CMakeFileApiDriver extends CMakeDriver {
8181
preferredGenerators);
8282
}
8383

84-
private _needsReconfigure = true;
85-
8684
/**
8785
* Watcher for the CMake cache file on disk.
8886
*/
@@ -162,9 +160,6 @@ export class CMakeFileApiDriver extends CMakeDriver {
162160
this._needsReconfigure = true;
163161
await onConfigureSettingsChange();
164162
}
165-
async checkNeedsReconfigure(): Promise<boolean> {
166-
return this._needsReconfigure;
167-
}
168163

169164
async doSetKit(cb: () => Promise<void>): Promise<void> {
170165
this._needsReconfigure = true;
@@ -208,7 +203,6 @@ export class CMakeFileApiDriver extends CMakeDriver {
208203
}
209204

210205
async doCacheConfigure(): Promise<number> {
211-
this._needsReconfigure = true;
212206
await this.updateCodeModel();
213207
return 0;
214208
}

src/drivers/cmakeLegacyDriver.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,14 +43,10 @@ export class CMakeLegacyDriver extends CMakeDriver {
4343
super(cmake, config, sourceDir, isMultiProject, workspaceFolder, preconditionHandler);
4444
}
4545

46-
private _needsReconfigure = true;
4746
async doConfigureSettingsChange(): Promise<void> {
4847
this._needsReconfigure = true;
4948
await onConfigureSettingsChange();
5049
}
51-
async checkNeedsReconfigure(): Promise<boolean> {
52-
return this._needsReconfigure;
53-
}
5450

5551
async doSetKit(cb: () => Promise<void>): Promise<void> {
5652
this._needsReconfigure = true;

0 commit comments

Comments
 (0)