core/pkgs/by-name/ll/llvm/common/common-let.nix
2024-06-30 09:16:52 +01:00

58 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;
};
}