From a4f9dae16b7e17208de83b46864b52611d59b185 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 3 Feb 2026 20:29:27 +0000 Subject: [PATCH 1/7] Initial plan From c9f22917493fe2f324eee4663e6e6018c06b5fb0 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 3 Feb 2026 20:38:36 +0000 Subject: [PATCH 2/7] Add support for FASTBuild generator (CMake 4.2+) Co-authored-by: snehara99 <113148726+snehara99@users.noreply.github.com> --- CHANGELOG.md | 1 + src/drivers/cmakeDriver.ts | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3c8f1262da..435cd79b64 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ Features: - triple: Add riscv32be riscv64be support. [#4648](https://github.com/microsoft/vscode-cmake-tools/pull/4648) [@lygstate](https://github.com/lygstate) +- Add support for the FASTBuild generator (CMake 4.2+). [#4663](https://github.com/microsoft/vscode-cmake-tools/issues/4663) Bug Fixes: diff --git a/src/drivers/cmakeDriver.ts b/src/drivers/cmakeDriver.ts index 2ae4a6dce6..4cadf7a039 100644 --- a/src/drivers/cmakeDriver.ts +++ b/src/drivers/cmakeDriver.ts @@ -996,7 +996,8 @@ export abstract class CMakeDriver implements vscode.Disposable { isCommonGenerator(genName: string): boolean { return genName === 'Ninja' || genName === 'Ninja Multi-Config' || genName === 'MinGW Makefiles' || genName === 'NMake Makefiles' || - genName === 'Unix Makefiles' || genName === 'MSYS Makefiles'; + genName === 'Unix Makefiles' || genName === 'MSYS Makefiles' || + genName === 'FASTBuild'; } /** @@ -1012,6 +1013,9 @@ export abstract class CMakeDriver implements vscode.Disposable { if (gen_name === 'Ninja' || gen_name === 'Ninja Multi-Config') { return await this.testHaveCommand('ninja') || this.testHaveCommand('ninja-build'); } + if (gen_name === 'FASTBuild') { + return this.testHaveCommand('fbuild'); + } if (gen_name === 'MinGW Makefiles') { return platform === 'win32' && this.testHaveCommand('mingw32-make'); } @@ -1385,6 +1389,7 @@ export abstract class CMakeDriver implements vscode.Disposable { "Unix Makefiles", "Ninja", "Ninja Multi-Config", + "FASTBuild", "Watcom WMake", "CodeBlocks - MinGW Makefiles", "CodeBlocks - NMake Makefiles", From 631c57832c1e5806a8983762d009b94b7b8b69c4 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 3 Feb 2026 20:40:17 +0000 Subject: [PATCH 3/7] Add await keyword for testHaveCommand call in FASTBuild check Co-authored-by: snehara99 <113148726+snehara99@users.noreply.github.com> --- src/drivers/cmakeDriver.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/drivers/cmakeDriver.ts b/src/drivers/cmakeDriver.ts index 4cadf7a039..cbfec5a71f 100644 --- a/src/drivers/cmakeDriver.ts +++ b/src/drivers/cmakeDriver.ts @@ -1014,7 +1014,7 @@ export abstract class CMakeDriver implements vscode.Disposable { return await this.testHaveCommand('ninja') || this.testHaveCommand('ninja-build'); } if (gen_name === 'FASTBuild') { - return this.testHaveCommand('fbuild'); + return await this.testHaveCommand('fbuild'); } if (gen_name === 'MinGW Makefiles') { return platform === 'win32' && this.testHaveCommand('mingw32-make'); From f1ba7778921c9447026079e04aa6236cb09b694b Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 3 Feb 2026 21:38:18 +0000 Subject: [PATCH 4/7] Fix linting error: remove redundant await on return value Co-authored-by: snehara99 <113148726+snehara99@users.noreply.github.com> --- src/drivers/cmakeDriver.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/drivers/cmakeDriver.ts b/src/drivers/cmakeDriver.ts index cbfec5a71f..4cadf7a039 100644 --- a/src/drivers/cmakeDriver.ts +++ b/src/drivers/cmakeDriver.ts @@ -1014,7 +1014,7 @@ export abstract class CMakeDriver implements vscode.Disposable { return await this.testHaveCommand('ninja') || this.testHaveCommand('ninja-build'); } if (gen_name === 'FASTBuild') { - return await this.testHaveCommand('fbuild'); + return this.testHaveCommand('fbuild'); } if (gen_name === 'MinGW Makefiles') { return platform === 'win32' && this.testHaveCommand('mingw32-make'); From 1b412259a00ed89ff9bfcb97e904de5a1ca05124 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 3 Feb 2026 21:42:00 +0000 Subject: [PATCH 5/7] Update CHANGELOG to link to PR #4690 instead of issue #4663 Co-authored-by: snehara99 <113148726+snehara99@users.noreply.github.com> --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 435cd79b64..0be428126b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,7 @@ Features: - triple: Add riscv32be riscv64be support. [#4648](https://github.com/microsoft/vscode-cmake-tools/pull/4648) [@lygstate](https://github.com/lygstate) -- Add support for the FASTBuild generator (CMake 4.2+). [#4663](https://github.com/microsoft/vscode-cmake-tools/issues/4663) +- Add support for the FASTBuild generator (CMake 4.2+). [#4690](https://github.com/microsoft/vscode-cmake-tools/pull/4690) Bug Fixes: From 2092d807806213a0db526eb8064d0ecc4e7106d8 Mon Sep 17 00:00:00 2001 From: Sneha Ramachandran Date: Fri, 17 Apr 2026 15:17:20 -0400 Subject: [PATCH 6/7] updated docs to include fastbuild --- docs/configure.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/configure.md b/docs/configure.md index f3f548a1fd..dc4349b5e8 100644 --- a/docs/configure.md +++ b/docs/configure.md @@ -16,6 +16,7 @@ The following concepts will help you understand how CMake Tools interacts with C |Generator |Description| |---------|---------| |Ninja | Emits files for the [Ninja build tool](https://ninja-build.org). This is the generator CMake Tools tries first, unless configured otherwise. See [cmake.preferredGenerators](cmake-settings.md#cmake-settings). | + |FASTBuild | Emits files for the [FASTBuild build tool](https://www.fastbuild.org/). Requires CMake 4.2+. | |Makefile | Emits a `Makefile` for the project that can be built via `make`.| |Visual Studio | Emits visual studio solutions and project files. There are many different Visual Studio generators, so it is recommended to let CMake Tools automatically determine the appropriate generator.| From ee917603a80c2ed73683dada87f3cfb8aa2cf552 Mon Sep 17 00:00:00 2001 From: Sneha Ramachandran Date: Fri, 17 Apr 2026 15:20:01 -0400 Subject: [PATCH 7/7] updated changelog entry to 1.24 --- CHANGELOG.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 59319a7b32..b328a5e131 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ ## 1.24 +Features: +- Add support for the FASTBuild generator (CMake 4.2+). [#4690](https://github.com/microsoft/vscode-cmake-tools/pull/4690) + Bug Fixes: - Update testing framework to fix bugs when running tests of CMake Tools without a reliable internet connection. [#4891](https://github.com/microsoft/vscode-cmake-tools/pull/4891) [@cwalther](https://github.com/cwalther) @@ -16,7 +19,6 @@ Features: - Add "Delete Build Directory and Reconfigure" command that removes the entire build directory before reconfiguring, ensuring a completely clean state. [#4826](https://github.com/microsoft/vscode-cmake-tools/pull/4826) - Add `cmake.shell` setting to route CMake/CTest/CPack subprocess invocations through a custom shell (e.g., Git Bash, MSYS2), enabling embedded toolchains that require POSIX path translation on Windows. [#1750](https://github.com/microsoft/vscode-cmake-tools/issues/1750) - triple: Add riscv32be riscv64be support. [#4648](https://github.com/microsoft/vscode-cmake-tools/pull/4648) [@lygstate](https://github.com/lygstate) -- Add support for the FASTBuild generator (CMake 4.2+). [#4690](https://github.com/microsoft/vscode-cmake-tools/pull/4690) - Add command to clear build diagnostics from the Problems pane. [#4691](https://github.com/microsoft/vscode-cmake-tools/pull/4691) - Clear build diagnostics from the Problems pane when a new build starts and populate them incrementally during the build. [#4608](https://github.com/microsoft/vscode-cmake-tools/issues/4608) - Add individual CTest test nodes to the Project Outline with inline run/debug buttons, and enable debugging tests from both the Outline and Test Explorer without requiring a launch.json. [#4721](https://github.com/microsoft/vscode-cmake-tools/pull/4721)