1{
2 lib,
3 newScope,
4 stdenv,
5 llvmPackages,
6 darwin,
7}:
8
9let
10 self = rec {
11
12 callPackage = newScope self;
13
14 # Provided for backwards compatibility.
15 inherit stdenv;
16
17 swift-unwrapped = callPackage ./compiler {
18 inherit (llvmPackages) stdenv;
19 inherit (darwin) DarwinTools sigtool;
20 };
21
22 swiftNoSwiftDriver = callPackage ./wrapper {
23 swift = swift-unwrapped;
24 useSwiftDriver = false;
25 };
26
27 Dispatch =
28 if stdenv.hostPlatform.isDarwin then
29 null # part of apple-sdk
30 else
31 callPackage ./libdispatch {
32 inherit (llvmPackages) stdenv;
33 swift = swiftNoSwiftDriver;
34 };
35
36 Foundation =
37 if stdenv.hostPlatform.isDarwin then
38 null # part of apple-sdk
39 else
40 callPackage ./foundation {
41 inherit (llvmPackages) stdenv;
42 swift = swiftNoSwiftDriver;
43 };
44
45 # TODO: Apple distributes a binary XCTest with Xcode, but it is not part of
46 # CLTools (or SUS), so would have to figure out how to fetch it. The binary
47 # version has several extra features, like a test runner and ObjC support.
48 XCTest = callPackage ./xctest {
49 inherit (darwin) DarwinTools;
50 swift = swiftNoSwiftDriver;
51 };
52
53 swiftpm = callPackage ./swiftpm {
54 inherit (llvmPackages) stdenv;
55 inherit (darwin) DarwinTools;
56 swift = swiftNoSwiftDriver;
57 };
58
59 swift-driver = callPackage ./swift-driver {
60 inherit (llvmPackages) stdenv;
61 swift = swiftNoSwiftDriver;
62 };
63
64 swift = callPackage ./wrapper {
65 swift = swift-unwrapped;
66 };
67
68 sourcekit-lsp = callPackage ./sourcekit-lsp {
69 inherit (llvmPackages) stdenv;
70 };
71
72 swift-docc = callPackage ./swift-docc {
73 inherit (llvmPackages) stdenv;
74 };
75
76 swift-format = callPackage ./swift-format {
77 inherit (llvmPackages) stdenv;
78 };
79
80 swiftpm2nix = callPackage ./swiftpm2nix { };
81
82 };
83
84in
85self