112 typedef std::variant<
141 std::string_view drvName,
148 std::string_view drvName,
151 const ExperimentalFeatureSettings & xpSettings = experimentalFeatureSettings);
154typedef std::map<std::string, DerivationOutput> DerivationOutputs;
162typedef std::map<std::string, std::pair<DerivationOutput, std::optional<StorePath>>>
220 typedef std::variant<
273struct BasicDerivation
283 std::string platform;
289 BasicDerivation() =
default;
290 virtual ~BasicDerivation() { };
292 bool isBuiltin()
const;
311 static std::string_view nameFromPath(
const StorePath & storePath);
323struct Derivation : BasicDerivation
333 std::string
unparse(
const Store & store,
bool maskOutputs,
345 kj::Promise<Result<std::optional<BasicDerivation>>>
353 kj::Promise<Result<std::optional<BasicDerivation>>>
tryResolve(
355 const std::map<std::pair<StorePath, std::string>,
StorePath> & inputDrvOutputs)
const;
367 Derivation() =
default;
368 Derivation(
const BasicDerivation & bd) : BasicDerivation(bd) { }
371 JSON toJSON(
const Store & store)
const;
372 static Derivation fromJSON(
375 const ExperimentalFeatureSettings & xpSettings = experimentalFeatureSettings);
378 static_cast<const BasicDerivation &
>(*me),
388kj::Promise<Result<StorePath>> writeDerivation(
Store & store,
390 RepairFlag repair = NoRepair,
391 bool readOnly =
false);
399 std::string_view name,
400 const ExperimentalFeatureSettings & xpSettings = experimentalFeatureSettings);
407bool isDerivation(std::string_view fileName);
416std::string outputPathName(std::string_view drvName,
OutputNameView outputName);
478kj::Promise<Result<DrvHash>>
479hashDerivationModulo(
Store & store,
const Derivation & drv,
bool maskOutputs);
487kj::Promise<Result<std::map<std::string, Hash>>>
514extern const Hash impureOutputHash;
Definition store-api.hh:195
#define GENERATE_CMP(args...)
Definition comparator.hh:65
std::map< StorePath, StringSet > DerivationInputs
Definition derivations.hh:169
std::map< std::string, std::pair< DerivationOutput, std::optional< StorePath > > > DerivationOutputsAndOptPaths
Definition derivations.hh:163
std::map< StorePath, DrvHash > DrvHashes
Definition derivations.hh:493
std::string_view OutputNameView
Definition outputs-spec.hh:26
Definition derivations.hh:274
DerivationOutputs outputs
Definition derivations.hh:278
StringSet outputNames() const
Definition derivations.cc:917
DerivationOutputsAndOptPaths outputsAndOptPaths(const Store &store) const
Definition derivations.cc:925
DerivationType type() const
Definition derivations.cc:678
StorePathSet inputSrcs
Definition derivations.hh:282
Definition content-address.hh:65
Definition content-address.hh:126
Definition derivations.hh:46
StorePath path(const Store &store, std::string_view drvName, OutputNameView outputName) const
Definition derivations.cc:41
ContentAddress ca
Definition derivations.hh:52
Definition derivations.hh:71
ContentAddressMethod method
Definition derivations.hh:75
HashType hashType
Definition derivations.hh:80
Definition derivations.hh:89
Definition derivations.hh:98
ContentAddressMethod method
Definition derivations.hh:102
HashType hashType
Definition derivations.hh:107
DerivationOutput()=delete
std::optional< StorePath > path(const Store &store, std::string_view drvName, OutputNameView outputName) const
Definition derivations.cc:17
static DerivationOutput fromJSON(const Store &store, std::string_view drvName, OutputNameView outputName, const JSON &json, const ExperimentalFeatureSettings &xpSettings=experimentalFeatureSettings)
Definition derivations.cc:1279
Definition derivations.hh:189
bool sandboxed
Definition derivations.hh:193
bool fixed
Definition derivations.hh:205
Definition derivations.hh:216
Definition derivations.hh:171
bool isSandboxed() const
Definition derivations.cc:99
bool hasKnownOutputPaths() const
Definition derivations.cc:83
bool isFixed() const
Definition derivations.cc:68
bool isPure() const
Definition derivations.cc:115
bool isCA() const
Definition derivations.cc:49
Definition derivations.hh:324
kj::Promise< Result< std::optional< BasicDerivation > > > tryResolve(Store &store, Store *evalStore=nullptr) const
Definition derivations.cc:1070
DerivedPathMap< std::set< OutputName > > inputDrvs
Definition derivations.hh:328
std::string unparse(const Store &store, bool maskOutputs, DerivedPathMap< StringSet >::ChildNode::Map *actualInputs=nullptr) const
Definition derivations.cc:566
kj::Promise< Result< void > > checkInvariants(Store &store, const StorePath &drvPath) const
Definition derivations.cc:1173
std::map< OutputName, ChildNode > Map
Definition derived-path-map.hh:43
Definition derived-path-map.hh:28
Definition derivations.hh:426
Kind kind
Definition derivations.hh:449
Kind
Definition derivations.hh:432
@ Deferred
Definition derivations.hh:442
@ Regular
Definition derivations.hh:437
std::map< std::string, Hash > hashes
Definition derivations.hh:430
Definition serialise.hh:18
Definition serialise.hh:66
std::string Path
Definition types.hh:28
#define MAKE_WRAPPER_CONSTRUCTOR(CLASS_NAME)
Definition variant-wrapper.hh:27