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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
use clap::{Arg, Command};
pub fn cli() -> Command<'static> {
Command::new("swift-bridge")
.about("facilitates Rust and Swift interop.")
.version(env!("CARGO_PKG_VERSION"))
.subcommand_required(true)
.subcommand(
create_package_command(),
)
}
fn create_package_command() -> Command<'static> {
Command::new("create-package")
.about("Create a Swift Package from Rust code.")
.arg(
Arg::new("bridges-dir")
.long("bridges-dir")
.takes_value(true)
.value_name("PATH")
.required(true)
.help("The path to the generated bridge files"),
)
.arg(
Arg::new("ios")
.long("ios")
.takes_value(true)
.value_name("PATH")
.help("The path to the compiled Rust library for iOS"),
)
.arg(
Arg::new("simulator")
.long("simulator")
.takes_value(true)
.value_name("PATH")
.help("The path to the compiled Rust library for the iOS Simulator"),
)
.arg(
Arg::new("macos")
.long("macos")
.takes_value(true)
.value_name("PATH")
.help("The path to the compiled Rust library for MacOS"),
)
.arg(
Arg::new("mac-catalyst")
.long("mac-catalyst")
.takes_value(true)
.value_name("PATH")
.help("The path to the compiled Rust library for MacCatalyst"),
)
.arg(
Arg::new("tvos")
.long("tvos")
.takes_value(true)
.value_name("PATH")
.help("The path to the compiled Rust library for tvOS"),
)
.arg(
Arg::new("watchos")
.long("watchos")
.takes_value(true)
.value_name("PATH")
.help("The path to the compiled Rust library for WatchOS"),
)
.arg(
Arg::new("watchos-simulator")
.long("watchos-simulator")
.takes_value(true)
.value_name("PATH")
.help("The path to the compiled Rust library for WatchOSSimulator"),
)
.arg(
Arg::new("carplay")
.long("carplay")
.takes_value(true)
.value_name("PATH")
.help("The path to the compiled Rust library for AppleCarplay"),
)
.arg(
Arg::new("carplay-simulator")
.long("carplay-simulator")
.takes_value(true)
.value_name("PATH")
.help("The path to the compiled Rust library for AppleCarplaySimulator"),
)
.arg(
Arg::new("out-dir")
.long("out-dir")
.takes_value(true)
.value_name("PATH")
.required(true)
.help("The path of the Swift Package"),
)
.arg(
Arg::new("name")
.long("name")
.takes_value(true)
.value_name("PATH")
.required(true)
.help("The name for the Swift Package"),
)
}