about summary refs log tree commit diff
path: root/pkgs/development/compilers/llvm/common/common-let.nix
blob: 31360f5b98b94deb6fd9774dd276484a94bfe71e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
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;
      };

}