Skip to content

Commit d422e72

Browse files
authored
[NFC] Use @main attribute in swift-package-manager target (#6127)
We'd like to use Swift Concurrency in `CrossCompilationDestinationsTool` target, but for that its commands need to conform to `AsyncParsableCommand` protocol. We have to use `@main` attribute to be able to invoke these commands from the top level. Renamed `swift-package-manager/main.swift` to `swift-package-manager/SwiftPM.swift`, since files with `main.swift` name are always assumed to contain top-level code and `@main` attribute can't be placed in files with top-level code.
1 parent 93da092 commit d422e72

File tree

1 file changed

+22
-17
lines changed

1 file changed

+22
-17
lines changed

Sources/swift-package-manager/main.swift renamed to Sources/swift-package-manager/SwiftPM.swift

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -20,21 +20,26 @@ let firstArg = CommandLine.arguments[0]
2020
let execName = (try? AbsolutePath(validating: firstArg).basenameWithoutExt) ??
2121
(try? RelativePath(validating: firstArg).basenameWithoutExt)
2222

23-
switch execName {
24-
case "swift-package":
25-
SwiftPackageTool.main()
26-
case "swift-build":
27-
SwiftBuildTool.main()
28-
case "swift-experimental-destination":
29-
SwiftDestinationTool.main()
30-
case "swift-test":
31-
SwiftTestTool.main()
32-
case "swift-run":
33-
SwiftRunTool.main()
34-
case "swift-package-collection":
35-
SwiftPackageCollectionsTool.main()
36-
case "swift-package-registry":
37-
SwiftPackageRegistryTool.main()
38-
default:
39-
fatalError("swift-package-manager launched with unexpected name: \(execName ?? "(unknown)")")
23+
@main
24+
struct SwiftPM {
25+
static func main() {
26+
switch execName {
27+
case "swift-package":
28+
SwiftPackageTool.main()
29+
case "swift-build":
30+
SwiftBuildTool.main()
31+
case "swift-experimental-destination":
32+
SwiftDestinationTool.main()
33+
case "swift-test":
34+
SwiftTestTool.main()
35+
case "swift-run":
36+
SwiftRunTool.main()
37+
case "swift-package-collection":
38+
SwiftPackageCollectionsTool.main()
39+
case "swift-package-registry":
40+
SwiftPackageRegistryTool.main()
41+
default:
42+
fatalError("swift-package-manager launched with unexpected name: \(execName ?? "(unknown)")")
43+
}
44+
}
4045
}

0 commit comments

Comments
 (0)