Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[boost-uninstall] Add port to easily uninstall all boost components #12851

Merged
merged 5 commits into from
Aug 22, 2020

Conversation

JackBoosY
Copy link
Contributor

Since boost contains three additional installation function ports(boost-build, boost-vcpkg-helpers, boost-modual-build-helper), removing all boost components requires the following three steps:

  1. ./vcpkg remove boost-vcpkg-helpers --recurse
  2. ./vcpkg remove boost-modular-build-helper
  3. ./vcpkg remove boost-build

Add a port to easily uninstall all boost components using the following command:

./vcpkg remove boost-uninstall --recurse

@JackBoosY JackBoosY added category:new-port The issue is requesting a new library to be added; consider making a PR! info:internal This PR or Issue was filed by the vcpkg team. labels Aug 11, 2020
@Neumann-A
Copy link
Contributor

The correct way to do this is to make all ports depend on boost-build because that is the only way to generate the config.cmake in the future

@JackBoosY
Copy link
Contributor Author

@Neumann-A It is not obvious to use boost-build, and the remaining two ports are also providing other configuration files.

@BillyONeal
Copy link
Member

The correct way to do this is to make all ports depend on boost-build because that is the only way to generate the config.cmake in the future

What about uses of boost that only need the headers and therefore don't need to build boost.build?

@Neumann-A
Copy link
Contributor

@BillyONeal also applies to header only. Think of boost.build as boost.cmake. boost.build just defines install rules and one of the rules is to install configs. Since boost has a header target in cmake it requires to generate a config for it.

Co-authored-by: Daniel Marshall <xandan@gmail.com>
@JackBoosY
Copy link
Contributor Author

JackBoosY commented Aug 19, 2020

@Neumann-A

  1. As I said, boost-vcpkg-helpers and boost-modular-build-helper provides some other scripts and may be updated in the future, so I think we also need to remove them.
  2. Totally remove boost using boost.build is not a good choice, because its name cannot represent boost as a whole.

We may need to add a new keyword Components to CONTROL or the manifest and use it to notify vcpkg to delete all related components when deleting port which have it.

@BillyONeal
Copy link
Member

This is fine because it doesn't cause 'damage' but it would be nice to solve this more generally, such as one of the following solutions:

  • Make the remove command support wildcards (such as continuing from Make "remove" accept regular expressions #8575 )
  • An alias ports feature added such that vcpkg install boost installs all the boost packages and vcpkg remove boost would remove them all (without --recurse)

@JackBoosY Do you want to try one of those or just merge this for now?

@BillyONeal BillyONeal added category:vcpkg-feature The issue is a new capability of the tool that doesn’t already exist and we haven’t committed and removed category:new-port The issue is requesting a new library to be added; consider making a PR! requires:discussion labels Aug 20, 2020
@JackBoosY
Copy link
Contributor Author

@BillyONeal Just merge this PR temporary would be okay.

@BillyONeal BillyONeal merged commit 15df0c0 into microsoft:master Aug 22, 2020
@BillyONeal
Copy link
Member

Thanks for your contribution!

remz1337 pushed a commit to remz1337/vcpkg that referenced this pull request Aug 23, 2020
@JackBoosY JackBoosY deleted the dev/jack/boost-uninstall branch August 24, 2020 02:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category:vcpkg-feature The issue is a new capability of the tool that doesn’t already exist and we haven’t committed info:internal This PR or Issue was filed by the vcpkg team.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants