59 bool operator == (
const CAFixed &)
const =
default;
60 auto operator <=> (
const CAFixed &)
const =
default;
80 bool operator == (
const CAFloating &)
const =
default;
81 auto operator <=> (
const CAFloating &)
const =
default;
89 bool operator == (
const Deferred &)
const =
default;
90 auto operator <=> (
const Deferred &)
const =
default;
109 bool operator == (
const Impure &)
const =
default;
110 auto operator <=> (
const Impure &)
const =
default;
113 typedef std::variant<
143 std::string_view drvName,
150 std::string_view drvName,
152 const nlohmann::json & json,
156typedef std::map<std::string, DerivationOutput> DerivationOutputs;
164typedef std::map<std::string, std::pair<DerivationOutput, std::optional<StorePath>>>
221 bool operator == (
const Impure &)
const =
default;
222 auto operator <=> (
const Impure &)
const =
default;
225 typedef std::variant<
284struct BasicDerivation
294 std::string platform;
300 BasicDerivation() =
default;
301 BasicDerivation(BasicDerivation &&) =
default;
302 BasicDerivation(
const BasicDerivation &) =
default;
303 BasicDerivation& operator=(BasicDerivation &&) =
default;
304 BasicDerivation& operator=(
const BasicDerivation &) =
default;
305 virtual ~BasicDerivation() { };
307 bool isBuiltin()
const;
326 static std::string_view nameFromPath(
const StorePath & storePath);
341struct Derivation : BasicDerivation
372 const std::map<std::pair<StorePath, std::string>,
StorePath> & inputDrvOutputs)
const;
384 Derivation() =
default;
385 Derivation(
const BasicDerivation & bd) : BasicDerivation(bd) { }
388 nlohmann::json
toJSON(
const StoreDirConfig &
store)
const;
389 static Derivation fromJSON(
390 const StoreDirConfig &
store,
391 const nlohmann::json & json,
392 const ExperimentalFeatureSettings & xpSettings = experimentalFeatureSettings);
394 bool operator == (
const Derivation &)
const =
default;
407 RepairFlag
repair = NoRepair,
408 bool readOnly =
false);
416 std::string_view
name,
433std::string outputPathName(std::string_view drvName,
OutputNameView outputName);
511extern Sync<DrvHashes> drvHashes;
529extern const Hash impureOutputHash;
Definition store-api.hh:169
std::map< StorePath, StringSet > DerivationInputs
Definition derivations.hh:171
std::map< std::string, std::pair< DerivationOutput, std::optional< StorePath > > > DerivationOutputsAndOptPaths
Definition derivations.hh:165
std::map< StorePath, DrvHash > DrvHashes
Definition derivations.hh:508
ChunkedVector< std::string, 8192 > store
Definition lexer.l:1011
return s
Definition lexer.l:459
virtual nlohmann::json toJSON()=0
const std::string_view & name
Definition lexer.l:1709
RepairFlag repair
Definition lexer.l:7173
bool isDerivation(Value &v)
std::string_view OutputNameView
Definition outputs-spec.hh:24
Definition derivations.hh:285
DerivationOutputs outputs
Definition derivations.hh:289
StringSet outputNames() const
Definition derivations.cc:914
void applyRewrites(const StringMap &rewrites)
Definition derivations.cc:1020
DerivationType type() const
Definition derivations.cc:683
StorePathSet inputSrcs
Definition derivations.hh:293
DerivationOutputsAndOptPaths outputsAndOptPaths(const StoreDirConfig &store) const
Definition derivations.cc:922
Definition content-address.hh:31
Definition content-address.hh:153
Definition derivations.hh:43
ContentAddress ca
Definition derivations.hh:49
StorePath path(const StoreDirConfig &store, std::string_view drvName, OutputNameView outputName) const
Definition derivations.cc:42
Definition derivations.hh:69
ContentAddressMethod method
Definition derivations.hh:73
HashAlgorithm hashAlgo
Definition derivations.hh:78
Definition derivations.hh:88
Definition derivations.hh:98
ContentAddressMethod method
Definition derivations.hh:102
HashAlgorithm hashAlgo
Definition derivations.hh:107
std::optional< StorePath > path(const StoreDirConfig &store, std::string_view drvName, OutputNameView outputName) const
Definition derivations.cc:18
DerivationOutput()=delete
static DerivationOutput fromJSON(const StoreDirConfig &store, std::string_view drvName, OutputNameView outputName, const nlohmann::json &json, const ExperimentalFeatureSettings &xpSettings=experimentalFeatureSettings)
Definition derivations.cc:1243
Definition derivations.hh:192
bool sandboxed
Definition derivations.hh:196
bool fixed
Definition derivations.hh:208
Definition derivations.hh:220
Definition derivations.hh:173
bool isSandboxed() const
Definition derivations.cc:100
bool isImpure() const
Definition derivations.cc:116
bool hasKnownOutputPaths() const
Definition derivations.cc:84
bool isFixed() const
Definition derivations.cc:69
bool isCA() const
Definition derivations.cc:50
Definition derivations.hh:342
void checkInvariants(Store &store, const StorePath &drvPath) const
Definition derivations.cc:1151
DerivedPathMap< std::set< OutputName > > inputDrvs
Definition derivations.hh:346
std::string unparse(const StoreDirConfig &store, bool maskOutputs, DerivedPathMap< StringSet >::ChildNode::Map *actualInputs=nullptr) const
Definition derivations.cc:571
std::optional< BasicDerivation > tryResolve(Store &store, Store *evalStore=nullptr) const
Definition derivations.cc:1063
std::map< OutputName, ChildNode > Map
Definition derived-path-map.hh:43
Definition derived-path-map.hh:28
Definition derivations.hh:443
Kind kind
Definition derivations.hh:466
Kind
Definition derivations.hh:449
@ Deferred
Definition derivations.hh:459
@ Regular
Definition derivations.hh:454
std::map< std::string, Hash > hashes
Definition derivations.hh:447
Definition serialise.hh:20
Definition serialise.hh:68
Definition store-dir-config.hh:22
std::string Path
Definition types.hh:22