-
Notifications
You must be signed in to change notification settings - Fork 6.7k
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
[vcpkg] Lift --x-json
to a global option, implement experimental x-package-info
command
#12845
Conversation
This is great! I've been looking for this feature in the help for some time! |
/azp run |
Azure Pipelines successfully started running 1 pipeline(s). |
1 similar comment
Azure Pipelines successfully started running 1 pipeline(s). |
@petersteneteg We require that for every port, it puts a file at |
…-package-info` command (microsoft#12845) * [vcpkg] Improve error reporting in vcpkg::Json * [vcpkg] Lift --x-json to a common option * [vcpkg] Address warnings-as-errors in VS2015 * [vcpkg] Remove unused local * [vcpkg] Extract vcpkg::Install::get_cmake_usage * [vcpkg] Implement vcpkg::serialize_ipv(ipv, paths) * [vcpkg] Implement x-package-info to enable tooling * [vcpkg] Fixup tests to respect new cli mode Co-authored-by: Robert Schumacher <[email protected]>
…-package-info` command (microsoft#12845) * [vcpkg] Improve error reporting in vcpkg::Json * [vcpkg] Lift --x-json to a common option * [vcpkg] Address warnings-as-errors in VS2015 * [vcpkg] Remove unused local * [vcpkg] Extract vcpkg::Install::get_cmake_usage * [vcpkg] Implement vcpkg::serialize_ipv(ipv, paths) * [vcpkg] Implement x-package-info to enable tooling * [vcpkg] Fixup tests to respect new cli mode Co-authored-by: Robert Schumacher <[email protected]>
This PR lifts the
--x-json
switch fromvcpkg list
to an ambient flag; in the longer term, to support tooling around vcpkg we need to generally have an option for machine-parsable output.This PR also implements another example of potentially supporting tooling:
x-package-info
. This command abstracts awayCONTROL
vsvcpkg.json
, the status database, list files, and dependency trees.Example 1:
zlib
has aCONTROL
file, not avcpkg.json
Example 2: getting files owned by a package and (some) usage information
Example 3: transitive closure over installed packages
The consumer (say, some custom buildsystem) can then iterate over all the results and not worry about whether
openssl
directly ownslibcrypto-1_1-arm64.dll
or whether it is actually provided by some transitive package.