Skip to content

Document VCPKG_CMAKE_GENERATOR and FASTBuild acquisition - #624

Open
Daniel Johansson (djohansson) wants to merge 2 commits into
MicrosoftDocs:mainfrom
djohansson:vcpkg-cmake-generator
Open

Daniel Johansson (djohansson) wants to merge 2 commits into
MicrosoftDocs:mainfrom
djohansson:vcpkg-cmake-generator

Conversation

@djohansson

@djohansson Daniel Johansson (djohansson) commented Nov 10, 2026 •

Copy link
Copy Markdown

Documents microsoft/vcpkg#54969, as requested there.

  • triplets.md: the new VCPKG_CMAKE_GENERATOR triplet variable. It sets the generator vcpkg_cmake_configure uses for ports that don't choose one. A port's GENERATOR or WINDOWS_USE_MSBUILD takes precedence.
  • vcpkg_cmake_configure.md: GENERATOR now gives the order (WINDOWS_USE_MSBUILD, then GENERATOR, then VCPKG_CMAKE_GENERATOR, then Ninja or Unix Makefiles) and says that vcpkg downloads FASTBuild, as it does Ninja.
  • vcpkg_find_acquire_program.md: FASTBUILD added to the list of programs.

The version given, 2026-11-09, is the vcpkg-cmake version in that PR, so this should merge after it.

  • triplets.md also says what FASTBuild's cache needs beside the generator: a cache directory (FASTBUILD_CACHE_PATH or CMAKE_FASTBUILD_CACHE_PATH), FASTBUILD_CACHE_MODE to turn it on, passed through vcpkg's clean environment on Windows (VCPKG_ENV_PASSTHROUGH_UNTRACKED), and CMAKE_FASTBUILD_USE_DETERMINISTIC_PATHS (review feedback). Not CMAKE_FASTBUILD_USE_RELATIVE_PATHS: FASTBuild's documentation calls UseRelativePaths_Experimental incomplete and says not to use it.

vcpkg_cmake_configure.md and triplets.md carry ai-usage: ai-assisted: the changes are about 11% and 9% of the articles. The change to vcpkg_find_acquire_program.md is under 5%, below the threshold for the tag.

🤖 Generated with Claude Code

microsoft/vcpkg#54969 adds the VCPKG_CMAKE_GENERATOR triplet variable,
which sets the generator vcpkg_cmake_configure uses for ports that don't
pass GENERATOR or WINDOWS_USE_MSBUILD, and acquires FASTBuild for the
FASTBuild generator as it does Ninja (vcpkg_find_acquire_program(FASTBUILD)).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@learn-build-service-prod

Copy link
Copy Markdown
Contributor

Learn Build status updates of commit c4d0b17:

âś… Validation status: passed

File Status Preview URL Details
vcpkg/maintainers/functions/vcpkg_cmake_configure.md âś…Succeeded View
vcpkg/maintainers/functions/vcpkg_find_acquire_program.md âś…Succeeded View
vcpkg/users/triplets.md âś…Succeeded View

For more details, please refer to the build report.

Comment thread vcpkg/users/triplets.md
Comment on lines +188 to +193
For example, to build ports with [FASTBuild](https://fastbuild.org/):

```cmake
set(VCPKG_CMAKE_GENERATOR FASTBuild)
```

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not enough to actual make correct use of FASTBuild.

You probably need additionally:
-DCMAKE_FASTBUILD_CACHE_PATH=
-DCMAKE_FASTBUILD_USE_RELATIVE_PATHS=ON

You probably also want to pass:
"-verbose" "-summary" "-cache" as build params to obtain statistic about the caching mechanism.

It has been some time since i did microsoft/vcpkg#49215 but I saw little to no benefit in using it.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have been using it for some time now. With distributed compilation and cache enabled it gives real improvements in heavier workloads (such as compiling llvm for example).

Will add the additional required flags to the docs.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added the cache path and mode, with the passthrough Windows needs, plus deterministic paths. I left out relative paths since FASTBuild documents UseRelativePaths_Experimental as incomplete and not to be used.

@learn-build-service-prod

Copy link
Copy Markdown
Contributor

PoliCheck Scan Report

The following report lists PoliCheck issues in PR files. Before you merge the PR, you must fix all severity-1 and severity-2 issues. The AI Review Details column lists suggestions for either removing or replacing the terms. If you find a false positive result, mention it in a PR comment and include this text: #policheck-false-positive. This feedback helps reduce false positives in future scans.

âś… No issues found

More information about PoliCheck

Information: PoliCheck | Severity Guidance | Term
For any questions: Try searching the learn.microsoft.com contributor guides or post your question in the Learn support channel.

The FASTBuild generator alone builds without FASTBuild's cache, which takes a
cache directory (FASTBUILD_CACHE_PATH or CMAKE_FASTBUILD_CACHE_PATH) and
FASTBUILD_CACHE_MODE to turn it on, passed through vcpkg's clean environment
on Windows (VCPKG_ENV_PASSTHROUGH_UNTRACKED). Also
CMAKE_FASTBUILD_USE_DETERMINISTIC_PATHS, which keeps compiler outputs
deterministic. Not CMAKE_FASTBUILD_USE_RELATIVE_PATHS: FASTBuild documents
UseRelativePaths_Experimental as incomplete, not to be used.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@learn-build-service-prod

Copy link
Copy Markdown
Contributor

Learn Build status updates of commit 7bfe543:

âś… Validation status: passed

File Status Preview URL Details
vcpkg/maintainers/functions/vcpkg_cmake_configure.md âś…Succeeded View
vcpkg/maintainers/functions/vcpkg_find_acquire_program.md âś…Succeeded View
vcpkg/users/triplets.md âś…Succeeded View

For more details, please refer to the build report.

@learn-build-service-prod

Copy link
Copy Markdown
Contributor

PoliCheck Scan Report

The following report lists PoliCheck issues in PR files. Before you merge the PR, you must fix all severity-1 and severity-2 issues. The AI Review Details column lists suggestions for either removing or replacing the terms. If you find a false positive result, mention it in a PR comment and include this text: #policheck-false-positive. This feedback helps reduce false positives in future scans.

âś… No issues found

More information about PoliCheck

Information: PoliCheck | Severity Guidance | Term
For any questions: Try searching the learn.microsoft.com contributor guides or post your question in the Learn support channel.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants