| 12 Jan 2026 |
emily | very very excited for Swift Build though | 18:26:53 |
emily | I am eager to drop xcbuild | 18:26:59 |
Randy Eckenrode | It’s fixed now and more sensible. | 18:27:04 |
Randy Eckenrode | Swift Build won’t be able to replace xcbuild unless we develop a driver. The swbuild CLI is too limited. | 18:28:22 |
emily | 😔 | 18:28:47 |
emily | because of build systems calling out to xcodebuild or because we can't even use it as a hook profitably? | 18:28:55 |
Randy Eckenrode | There is no way to pass variables. You can’t specify scheme or destination. | 18:30:04 |
Randy Eckenrode | It can be used as a library, so it should be possible to develop our own frontend, but one needs time to do that. | 18:31:16 |
Randy Eckenrode | https://github.com/reckenrode/nixpkgs/tree/swift-update-mk2 | 18:34:20 |
Randy Eckenrode | https://github.com/reckenrode/nixpkgs/blob/swift-update-mk2/pkgs/top-level/swift-packages.nix is where the Swift package set is defined. | 18:34:36 |
Randy Eckenrode | https://github.com/reckenrode/nixpkgs/blob/swift-update-mk2/pkgs/by-name/sw/swiftPackages/by-name/sw/swift/mk-swift-package.nix is where most of the crimes are committed. | 18:35:11 |
Randy Eckenrode | The basic structure is swiftPackages.swift defines a package out of swiftc, swift-driver, swift-testing, and swift-corelibs-xctest. I will probably be adding the stdlib as well. That’s the package that should be used. It’s meant to look (more or less) like a normal Swift toolchain. | 18:36:46 |
Randy Eckenrode | swiftc has the stdlib and swift-driver stripped out of it. It’s just the compiler and its host libs. I will probably move the Clang resource-root to swift as well. | 18:37:23 |
Randy Eckenrode | To build a Swift package, add swift and your build system. Swift dependencies go in buildInputs like normal packages. If we can use prebuilts, then they’ll be built separately like normal packages. Otherwise, they will commit crimes to allow SwiftPM to pick up the sources. | 18:38:06 |
Randy Eckenrode | This allows us to package specific versions and patch them. | 18:38:21 |