1{
2 lib,
3 fetchurl ? null,
4 fetchgit ? null,
5 release_version ? null,
6 gitRelease ? null,
7 officialRelease ? null,
8 monorepoSrc' ? null,
9 version ? null,
10}@args:
11
12rec {
13 gcc_meta = {
14 license = with lib.licenses; [ gpl3Plus ];
15 teams = [ lib.teams.gcc ];
16 };
17
18 releaseInfo =
19 if gitRelease != null then
20 rec {
21 original = gitRelease;
22 release_version = args.version or original.version;
23 version = gitRelease.rev-version;
24 }
25 else
26 rec {
27 original = officialRelease;
28 release_version = args.version or original.version;
29 version =
30 if original ? candidate then "${release_version}-${original.candidate}" else release_version;
31 };
32
33 monorepoSrc =
34 if monorepoSrc' != null then
35 monorepoSrc'
36 else if gitRelease != null then
37 fetchgit {
38 url = "https://gcc.gnu.org/git/gcc.git";
39 inherit (gitRelease) rev;
40 hash = releaseInfo.original.sha256;
41 }
42 else
43 fetchurl {
44 url = "mirror://gcc/releases/gcc-${releaseInfo.version}/gcc-${releaseInfo.version}.tar.xz";
45 hash = releaseInfo.original.sha256;
46 };
47}