core/pkgs/by-name/ll/llvm/common/common-let.nix
2024-05-13 11:34:52 -04:00

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