48 lines
1.1 KiB
Nix
48 lines
1.1 KiB
Nix
{
|
|
lib,
|
|
fetchurl ? null,
|
|
fetchgit ? null,
|
|
release_version ? null,
|
|
gitRelease ? null,
|
|
officialRelease ? null,
|
|
monorepoSrc' ? null,
|
|
version ? null,
|
|
}@args:
|
|
|
|
rec {
|
|
gcc_meta = {
|
|
license = with lib.licenses; [ gpl3Plus ];
|
|
teams = [ lib.teams.gcc ];
|
|
};
|
|
|
|
releaseInfo =
|
|
if gitRelease != null then
|
|
rec {
|
|
original = gitRelease;
|
|
release_version = args.version or original.version;
|
|
version = gitRelease.rev-version;
|
|
}
|
|
else
|
|
rec {
|
|
original = officialRelease;
|
|
release_version = args.version or original.version;
|
|
version =
|
|
if original ? candidate then "${release_version}-${original.candidate}" else release_version;
|
|
};
|
|
|
|
monorepoSrc =
|
|
if monorepoSrc' != null then
|
|
monorepoSrc'
|
|
else if gitRelease != null then
|
|
fetchgit {
|
|
url = "https://gcc.gnu.org/git/gcc.git";
|
|
inherit (gitRelease) rev;
|
|
hash = releaseInfo.original.sha256;
|
|
}
|
|
else
|
|
fetchurl {
|
|
url = "mirror://gcc/releases/gcc-${releaseInfo.version}/gcc-${releaseInfo.version}.tar.xz";
|
|
hash = releaseInfo.original.sha256;
|
|
};
|
|
}
|