diff options
Diffstat (limited to 'pkgs/development/compilers/llvm/common/common-let.nix')
-rw-r--r-- | pkgs/development/compilers/llvm/common/common-let.nix | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/pkgs/development/compilers/llvm/common/common-let.nix b/pkgs/development/compilers/llvm/common/common-let.nix new file mode 100644 index 000000000000..31360f5b98b9 --- /dev/null +++ b/pkgs/development/compilers/llvm/common/common-let.nix @@ -0,0 +1,60 @@ +{ 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; + }; + +} |