3652326ed2
Previously all includes were anchored in one global mess of header files. This moves the includes into filesystem "namespaces" (if you will) for each sub-package of Nix. Note: This commit does not introduce the relevant build system changes.
34 lines
765 B
C++
34 lines
765 B
C++
#include <nlohmann/json.hpp>
|
|
|
|
#include "libstore/derivations.hh"
|
|
|
|
namespace nix {
|
|
|
|
class ParsedDerivation {
|
|
Path drvPath;
|
|
BasicDerivation& drv;
|
|
std::optional<nlohmann::json> structuredAttrs;
|
|
|
|
public:
|
|
ParsedDerivation(const Path& drvPath, BasicDerivation& drv);
|
|
|
|
const std::optional<nlohmann::json>& getStructuredAttrs() const {
|
|
return structuredAttrs;
|
|
}
|
|
|
|
std::optional<std::string> getStringAttr(const std::string& name) const;
|
|
|
|
bool getBoolAttr(const std::string& name, bool def = false) const;
|
|
|
|
std::optional<Strings> getStringsAttr(const std::string& name) const;
|
|
|
|
StringSet getRequiredSystemFeatures() const;
|
|
|
|
bool canBuildLocally() const;
|
|
|
|
bool willBuildLocally() const;
|
|
|
|
bool substitutesAllowed() const;
|
|
};
|
|
|
|
} // namespace nix
|