nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 callPackage,
4 stdenv,
5 stdenvAdapters,
6 gccVersions ? { },
7 patchesFn ? lib.id,
8 buildPackages,
9 targetPackages,
10 binutilsNoLibc,
11 binutils,
12 generateSplicesForMkScope,
13 ...
14}@packageSetArgs:
15let
16 versions = {
17 "15.2.0".officialRelease.sha256 = "sha256-Q4/ZloJrDIJIWinaA6ctcdbjVBqD7HAt9Ccfb+Al0k4=";
18 }
19 // gccVersions;
20
21 mkPackage =
22 {
23 name ? null,
24 officialRelease ? null,
25 gitRelease ? null,
26 monorepoSrc ? null,
27 version ? null,
28 }@args:
29 let
30 inherit
31 (import ./common/common-let.nix {
32 inherit
33 lib
34 gitRelease
35 officialRelease
36 version
37 ;
38 })
39 releaseInfo
40 ;
41 inherit (releaseInfo) release_version;
42 attrName =
43 args.name or (if (gitRelease != null) then "git" else lib.versions.major release_version);
44 in
45 lib.nameValuePair attrName (
46 lib.recurseIntoAttrs (
47 callPackage ./common (
48 {
49 inherit (stdenvAdapters) overrideCC;
50 inherit
51 officialRelease
52 gitRelease
53 monorepoSrc
54 version
55 patchesFn
56 ;
57
58 buildGccPackages = buildPackages."gccNGPackages_${attrName}";
59 targetGccPackages = targetPackages."gccNGPackages_${attrName}" or gccPackages."${attrName}";
60 otherSplices = generateSplicesForMkScope "gccNGPackages_${attrName}";
61 }
62 // packageSetArgs # Allow overrides.
63 )
64 )
65 );
66
67 gccPackages = lib.mapAttrs' (version: args: mkPackage (args // { inherit version; })) versions;
68in
69gccPackages // { inherit mkPackage; }