nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at python-updates 29 lines 1.4 kB view raw
1# The _cuda attribute set is a fixed-point which contains the static functionality required to construct CUDA package 2# sets. For example, `_cuda.bootstrapData` includes information about NVIDIA's redistributables (such as the names 3# NVIDIA uses for different systems), and `_cuda.lib` contains utility functions like `formatCapabilities` (which generate 4# common arguments passed to NVCC and `cmakeFlags`). 5# 6# Since this attribute set is used to construct the CUDA package sets, it must exist outside the fixed point of the 7# package sets. Make these attributes available directly in the package set construction could cause confusion if 8# users override the attribute set with the expection that changes will be reflected in the enclosing CUDA package 9# set. To avoid this, we declare `_cuda` and inherit its members here, at top-level. (This also allows us to benefit 10# from import caching, as it should be evaluated once per system, rather than per-system and CUDA package set.) 11 12let 13 lib = import ../../../../lib; 14in 15lib.fixedPoints.makeExtensible (final: { 16 bootstrapData = import ./db/bootstrap { 17 inherit lib; 18 }; 19 db = import ./db { 20 inherit (final) bootstrapData db; 21 inherit lib; 22 }; 23 extensions = [ ]; # Extensions applied to every CUDA package set. 24 manifests = import ./manifests { inherit lib; }; 25 lib = import ./lib { 26 _cuda = final; 27 inherit lib; 28 }; 29})