#pragma once #include "types.hh" #include "hash.hh" #include namespace nix { /* Extension of derivations in the Nix store. */ const string drvExtension = ".drv"; /* Abstract syntax of derivations. */ struct DerivationOutput { Path path; string hashAlgo; /* hash used for expected hash computation */ string hash; /* expected hash, may be null */ DerivationOutput() { } DerivationOutput(Path path, string hashAlgo, string hash) { this->path = path; this->hashAlgo = hashAlgo; this->hash = hash; } void parseHashInfo(bool & recursive, HashType & hashType, Hash & hash) const; }; typedef std::map DerivationOutputs; /* For inputs that are sub-derivations, we specify exactly which output IDs we are interested in. */ typedef std::map DerivationInputs; typedef std::map StringPairs; struct Derivation { DerivationOutputs outputs; /* keyed on symbolic IDs */ DerivationInputs inputDrvs; /* inputs that are sub-derivations */ PathSet inputSrcs; /* inputs that are sources */ string platform; Path builder; Strings args; StringPairs env; }; class StoreAPI; /* Write a derivation to the Nix store, and return its path. */ Path writeDerivation(StoreAPI & store, const Derivation & drv, const string & name, bool repair = false); /* Read a derivation from a file. */ Derivation readDerivation(const Path & drvPath); /* Print a derivation. */ string unparseDerivation(const Derivation & drv); /* Check whether a file name ends with the extensions for derivations. */ bool isDerivation(const string & fileName); /* Return true iff this is a fixed-output derivation. */ bool isFixedOutputDrv(const Derivation & drv); Hash hashDerivationModulo(StoreAPI & store, Derivation drv); /* Memoisation of hashDerivationModulo(). */ typedef std::map DrvHashes; extern DrvHashes drvHashes; /* Split a string specifying a derivation and a set of outputs (/nix/store/hash-foo!out1,out2,...) into the derivation path and the outputs. */ typedef std::pair > DrvPathWithOutputs; DrvPathWithOutputs parseDrvPathWithOutputs(const string & s); Path makeDrvPathWithOutputs(const Path & drvPath, const std::set & outputs); bool wantOutput(const string & output, const std::set & wanted); PathSet outputPaths(const Derivation & drv); } able>
AgeCommit message (Collapse)Author
2023-07-11gnu: rocm: Update to 5.6.0.John Kehayias
Update all of the ROCm packages at the same time as they share a version number and should be upgraded together, including llvm-for-rocm. * gnu/packages/llvm.scm (llvm-for-rocm): Update to 5.6.0. [source]{patches}: Remove unneeded patches (linkdl and remove-isystem-usr-include). * gnu/packages/rocm.scm (rocm-cmake, roct-thunk-interface): Update to 5.6.0. (rocclr-src): Update to 5.6.0. [source]{patches}: Add enable-gfx800 patch. (rocm-device-libs): Update to 5.6.0. [inputs]: Update style. (rocm-comgr): Update to 5.6.0. [inputs]: Remove lld. Update style. (rocr-runtime): Update to 5.6.0. [arguments]: Use gexps. Remove configure-flags. Add add-rocm-device-lib-path phase. [inputs]: Add libdrm. Update style. [native-inputs]: Add pkg-config. Update style. (rocm-opencl-runtime): Update to 5.6.0. [source]{patches}: Remove noopencl patch. [arguments]{configure-flags}: Add BUILD_ICD=OFF and FILE_REORG_BACKWARD_COMPATIBILITY=OFF flags. [inputs]: Add opencl-headers. (rocminfo): Update to 5.6.0. [arguments]: Use gexps. Use search-input-file instead of assoc-ref and which. (rocm-bandwidth-test): Update to 5.6.0. [source]{patches}: Add fix-includes patch. * gnu/packages/patches/rocm-comgr-3.1.0-dependencies.patch, gnu/packages/patches/rocm-opencl-runtime-4.3-noclinfo.patch: Update patches. * gnu/packages/patches/llvm-roc-4.0.0-remove-isystem-usr-include.patch, gnu/packages/patches/llvm-roc-5.0.0-linkdl.patch, gnu/packages/patches/rocm-opencl-runtime-4.3-noopencl.patch: Delete files. * gnu/packages/patches/rocm-bandwidth-test-5.5.0-fix-includes.patch, gnu/packages/patches/rocclr-5.6.0-enable-gfx800.patch: New files. * gnu/local.mk (dist_patch_DATA): Update patches.