Skip to content

[vcpkg-tool] Add an option to build a minimal feature set based on "default-features": false #31298

@Thomas1664

Description

@Thomas1664

Over the years, there was a lot of confusion because "default-features": false is ignored in transitive dependencies: #26664 (comment) . Many users expect vcpkg to build a minimal set of features instead which does not include default features that were disabled by a port between the manifest of a user and the port declaring the default feature.

In summary, we don't need to pull in disabled features if they aren't enabled by something else that didn't specify "default-features": false.

@BillyONeal suggested to add an option to avoid unwanted features and to enable this behaviour by default in manifest mode: #11602 (comment)

Many people have fallen into this trap and the current behaviour might actually lead to longer builds rather than avoiding rebuilds.

All related issues: #31290, #31230, #30695, #26664, #24548, #17033, #11602

Metadata

Metadata

Assignees

Labels

category:vcpkg-featureThe issue is a new capability of the tool that doesn’t already exist and we haven’t committed

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions