61 lines
1.4 KiB
Nix
61 lines
1.4 KiB
Nix
|
{ lib
|
||
|
, fetchFromGitHub ? null
|
||
|
, release_version ? null
|
||
|
, gitRelease ? null
|
||
|
, officialRelease ? null
|
||
|
, monorepoSrc' ? null
|
||
|
}:
|
||
|
|
||
|
rec {
|
||
|
llvm_meta = {
|
||
|
license = lib.licenses.ncsa;
|
||
|
maintainers = lib.teams.llvm.members;
|
||
|
|
||
|
# See llvm/cmake/config-ix.cmake.
|
||
|
platforms =
|
||
|
lib.platforms.aarch64 ++
|
||
|
lib.platforms.arm ++
|
||
|
lib.platforms.mips ++
|
||
|
lib.platforms.power ++
|
||
|
lib.platforms.s390x ++
|
||
|
lib.platforms.wasi ++
|
||
|
lib.platforms.x86 ++
|
||
|
lib.optionals (lib.versionAtLeast release_version "7") lib.platforms.riscv ++
|
||
|
lib.optionals (lib.versionAtLeast release_version "14") lib.platforms.m68k;
|
||
|
};
|
||
|
|
||
|
releaseInfo =
|
||
|
if gitRelease != null then rec {
|
||
|
original = gitRelease;
|
||
|
release_version = original.version;
|
||
|
version = gitRelease.rev-version;
|
||
|
} else rec {
|
||
|
original = officialRelease;
|
||
|
release_version = original.version;
|
||
|
version =
|
||
|
if original ? candidate then
|
||
|
"${release_version}-${original.candidate}"
|
||
|
else
|
||
|
release_version;
|
||
|
};
|
||
|
|
||
|
monorepoSrc =
|
||
|
if monorepoSrc' != null then
|
||
|
monorepoSrc'
|
||
|
else
|
||
|
let
|
||
|
sha256 = releaseInfo.original.sha256;
|
||
|
rev =
|
||
|
if gitRelease != null then
|
||
|
gitRelease.rev
|
||
|
else
|
||
|
"llvmorg-${releaseInfo.version}";
|
||
|
in
|
||
|
fetchFromGitHub {
|
||
|
owner = "llvm";
|
||
|
repo = "llvm-project";
|
||
|
inherit rev sha256;
|
||
|
};
|
||
|
|
||
|
}
|