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
Over the years, there was a lot of confusion because
"default-features": falseis 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