/ dhall / Platform.dhall
Platform.dhall
 1  -- dhall/Platform.dhall
 2  --
 3  -- Platform and toolchain configuration.
 4  
 5  let Path = { _path : Text }
 6  
 7  -- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 8  -- Platform
 9  -- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
10  
11  let Cpu = < X86_64 | Aarch64 >
12  let Os = < Linux | Darwin >
13  
14  let Platform = { cpu : Cpu, os : Os }
15  
16  -- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
17  -- Toolchain paths (all from Nix store)
18  -- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
19  
20  let CxxToolchain =
21      { clang : Path
22      , clangxx : Path
23      , lld : Path
24      , ar : Path
25      , resourceDir : Path
26      , gccInclude : Path
27      , gccIncludeArch : Path
28      , glibcInclude : Path
29      , gccLib : Path
30      , gccLibBase : Path
31      , glibcLib : Path
32      }
33  
34  let NvToolchain =
35      { cxx : CxxToolchain          -- inherits C++ toolchain
36      , nvidiaSdkInclude : Path
37      , nvidiaSdkLib : Path
38      }
39  
40  let HaskellToolchain =
41      { ghc : Path
42      , ghcPkg : Path
43      , haddock : Path
44      }
45  
46  let RustToolchain =
47      { rustc : Path
48      , cargo : Path
49      , clippy : Path
50      }
51  
52  let LeanToolchain =
53      { lean : Path
54      , lake : Path
55      }
56  
57  let PythonToolchain =
58      { python : Path
59      }
60  
61  let Toolchain =
62      { cxx : CxxToolchain
63      , nv : NvToolchain
64      , haskell : HaskellToolchain
65      , rust : RustToolchain
66      , lean : LeanToolchain
67      , python : PythonToolchain
68      }
69  
70  in  { Cpu, Os, Platform
71      , CxxToolchain, NvToolchain, HaskellToolchain, RustToolchain, LeanToolchain, PythonToolchain
72      , Toolchain
73      }