cemu-vcpkg/toolsrc/include/vcpkg/binaryparagraph.h
nicole mazzuca 556325a1f7
[vcpkg] Add x-set-installed command (#10817)
This command takes a list of ports, and causes the final state of the
installed directory to be as-if one ran the install on an empty
installed directory (removing any unnecessary packages).

This is especially useful with the new `--x-install-root` option, which
allows one to set the `installed` directory for vcpkg to use.

Additionally, as a drive-by, we do some `stdfs` clean-up and add a
`.is_feature()` member function to BinaryParagraph (as opposed to
checking for `.feature().empty()`, which is far less clear to read).

This feature is experimental.
2020-04-17 15:49:59 -07:00

52 lines
1.4 KiB
C++

#pragma once
#include <vcpkg/packagespec.h>
#include <vcpkg/paragraphparser.h>
#include <vcpkg/sourceparagraph.h>
namespace vcpkg
{
/// <summary>
/// Built package metadata
/// </summary>
struct BinaryParagraph
{
BinaryParagraph();
explicit BinaryParagraph(Parse::Paragraph fields);
BinaryParagraph(const SourceParagraph& spgh,
Triplet triplet,
const std::string& abi_tag,
const std::vector<FeatureSpec>& deps);
BinaryParagraph(const SourceParagraph& spgh,
const FeatureParagraph& fpgh,
Triplet triplet,
const std::vector<FeatureSpec>& deps);
std::string displayname() const;
std::string fullstem() const;
std::string dir() const;
bool is_feature() const { return !feature.empty(); }
PackageSpec spec;
std::string version;
std::string description;
std::string maintainer;
std::string feature;
std::vector<std::string> default_features;
std::vector<std::string> depends;
std::string abi;
Type type;
};
struct BinaryControlFile
{
BinaryParagraph core_paragraph;
std::vector<BinaryParagraph> features;
};
void serialize(const BinaryParagraph& pgh, std::string& out_str);
}