1[workspace] 2members = [ 3 "clap_bench", 4 "clap_derive", 5 "clap_lex", 6 "clap_complete", 7 "clap_complete_fig", 8 "clap_mangen", 9] 10 11[workspace.package] 12license = "MIT OR Apache-2.0" 13edition = "2021" 14rust-version = "1.64.0" # MSRV 15include = [ 16 "build.rs", 17 "src/**/*", 18 "Cargo.toml", 19 "LICENSE*", 20 "README.md", 21 "benches/**/*", 22 "examples/**/*" 23] 24 25[package] 26name = "clap" 27version = "4.1.13" 28description = "A simple to use, efficient, and full-featured Command Line Argument Parser" 29repository = "https://github.com/clap-rs/clap" 30categories = ["command-line-interface"] 31keywords = [ 32 "argument", 33 "cli", 34 "arg", 35 "parser", 36 "parse" 37] 38license.workspace = true 39edition.workspace = true 40rust-version.workspace = true 41include.workspace = true 42 43[package.metadata.docs.rs] 44features = ["unstable-doc"] 45rustdoc-args = ["--cfg", "docsrs"] 46cargo-args = ["-Zunstable-options", "-Zrustdoc-scrape-examples"] 47 48[package.metadata.playground] 49features = ["unstable-doc"] 50 51[package.metadata.release] 52shared-version = true 53tag-name = "v{{version}}" 54pre-release-replacements = [ 55 {file="CHANGELOG.md", search="Unreleased", replace="{{version}}", min=1}, 56 {file="CHANGELOG.md", search="\\.\\.\\.HEAD", replace="...{{tag_name}}", exactly=1}, 57 {file="CHANGELOG.md", search="ReleaseDate", replace="{{date}}", min=1}, 58 {file="CHANGELOG.md", search="<!-- next-header -->", replace="<!-- next-header -->\n## [Unreleased] - ReleaseDate\n", exactly=1}, 59 {file="CHANGELOG.md", search="<!-- next-url -->", replace="<!-- next-url -->\n[Unreleased]: https://github.com/clap-rs/clap/compare/{{tag_name}}...HEAD", exactly=1}, 60 {file="CITATION.cff", search="^date-released: ....-..-..", replace="date-released: {{date}}"}, 61 {file="CITATION.cff", search="^version: .+\\..+\\..+", replace="version: {{version}}"}, 62] 63 64[features] 65default = [ 66 "std", 67 "color", 68 "help", 69 "usage", 70 "error-context", 71 "suggestions", 72] 73debug = ["clap_derive?/debug", "dep:backtrace"] # Enables debug messages 74unstable-doc = ["derive", "cargo", "wrap_help", "env", "unicode", "string", "unstable-replace"] # for docs.rs 75 76# Used in default 77std = [] # support for no_std in a backwards-compatible way 78color = ["dep:is-terminal", "dep:termcolor"] 79help = [] 80usage = [] 81error-context = [] 82suggestions = ["dep:strsim", "error-context"] 83 84# Optional 85deprecated = ["clap_derive?/deprecated"] # Guided experience to prepare for next breaking release (at different stages of development, this may become default) 86derive = ["dep:clap_derive", "dep:once_cell"] 87cargo = ["dep:once_cell"] # Disable if you're not using Cargo, enables Cargo-env-var-dependent macros 88wrap_help = ["help", "dep:terminal_size"] 89env = [] # Use environment variables during arg parsing 90unicode = ["dep:unicode-width", "dep:unicase"] # Support for unicode characters in arguments and help messages 91string = [] # Allow runtime generated strings 92 93# In-work features 94unstable-replace = [] 95unstable-grouped = [] 96unstable-v5 = ["clap_derive?/unstable-v5", "deprecated"] 97 98[lib] 99bench = false 100 101[dependencies] 102clap_derive = { path = "./clap_derive", version = "=4.1.12", optional = true } 103clap_lex = { path = "./clap_lex", version = "0.3.0" } 104bitflags = "1.2.0" 105unicase = { version = "2.6.0", optional = true } 106strsim = { version = "0.10.0", optional = true } 107is-terminal = { version = "0.4.1", optional = true } 108termcolor = { version = "1.1.1", optional = true } 109terminal_size = { version = "0.2.1", optional = true } 110backtrace = { version = "0.3.67", optional = true } 111unicode-width = { version = "0.1.9", optional = true } 112once_cell = { version = "1.12.0", optional = true } 113 114[dev-dependencies] 115trybuild = "1.0.77" 116rustversion = "1.0.12" 117# Cutting out `filesystem` feature 118trycmd = { version = "0.14.15", default-features = false, features = ["color-auto", "diff", "examples"] } 119humantime = "2.1.0" 120snapbox = "0.4.10" 121shlex = "1.1.0" 122static_assertions = "1.1.0" 123unic-emoji-char = "0.9.0" 124 125[[example]] 126name = "demo" 127required-features = ["derive"] 128 129[[example]] 130name = "cargo-example" 131required-features = ["cargo"] 132 133[[example]] 134name = "cargo-example-derive" 135required-features = ["derive"] 136 137[[example]] 138name = "escaped-positional" 139required-features = ["cargo"] 140 141[[example]] 142name = "escaped-positional-derive" 143required-features = ["derive"] 144 145[[example]] 146name = "find" 147required-features = ["cargo"] 148 149[[example]] 150name = "git-derive" 151required-features = ["derive"] 152 153[[example]] 154name = "typed-derive" 155required-features = ["derive"] 156 157[[example]] 158name = "busybox" 159path = "examples/multicall-busybox.rs" 160 161[[example]] 162name = "hostname" 163path = "examples/multicall-hostname.rs" 164 165[[example]] 166name = "repl" 167path = "examples/repl.rs" 168required-features = ["help"] 169 170[[example]] 171name = "01_quick" 172path = "examples/tutorial_builder/01_quick.rs" 173required-features = ["cargo"] 174 175[[example]] 176name = "02_apps" 177path = "examples/tutorial_builder/02_apps.rs" 178 179[[example]] 180name = "02_crate" 181path = "examples/tutorial_builder/02_crate.rs" 182required-features = ["cargo"] 183 184[[example]] 185name = "02_app_settings" 186path = "examples/tutorial_builder/02_app_settings.rs" 187required-features = ["cargo"] 188 189[[example]] 190name = "03_01_flag_bool" 191path = "examples/tutorial_builder/03_01_flag_bool.rs" 192required-features = ["cargo"] 193 194[[example]] 195name = "03_01_flag_count" 196path = "examples/tutorial_builder/03_01_flag_count.rs" 197required-features = ["cargo"] 198 199[[example]] 200name = "03_02_option" 201path = "examples/tutorial_builder/03_02_option.rs" 202required-features = ["cargo"] 203 204[[example]] 205name = "03_02_option_mult" 206path = "examples/tutorial_builder/03_02_option_mult.rs" 207required-features = ["cargo"] 208 209[[example]] 210name = "03_03_positional" 211path = "examples/tutorial_builder/03_03_positional.rs" 212required-features = ["cargo"] 213 214[[example]] 215name = "03_03_positional_mult" 216path = "examples/tutorial_builder/03_03_positional_mult.rs" 217required-features = ["cargo"] 218 219[[example]] 220name = "03_04_subcommands" 221path = "examples/tutorial_builder/03_04_subcommands.rs" 222required-features = ["cargo"] 223 224[[example]] 225name = "03_05_default_values" 226path = "examples/tutorial_builder/03_05_default_values.rs" 227required-features = ["cargo"] 228 229[[example]] 230name = "04_01_possible" 231path = "examples/tutorial_builder/04_01_possible.rs" 232required-features = ["cargo"] 233 234[[example]] 235name = "04_01_enum" 236path = "examples/tutorial_builder/04_01_enum.rs" 237required-features = ["cargo"] 238 239[[example]] 240name = "04_02_parse" 241path = "examples/tutorial_builder/04_02_parse.rs" 242required-features = ["cargo"] 243 244[[example]] 245name = "04_02_validate" 246path = "examples/tutorial_builder/04_02_validate.rs" 247required-features = ["cargo"] 248 249[[example]] 250name = "04_03_relations" 251path = "examples/tutorial_builder/04_03_relations.rs" 252required-features = ["cargo"] 253 254[[example]] 255name = "04_04_custom" 256path = "examples/tutorial_builder/04_04_custom.rs" 257required-features = ["cargo"] 258 259[[example]] 260name = "05_01_assert" 261path = "examples/tutorial_builder/05_01_assert.rs" 262required-features = ["cargo"] 263test = true 264 265[[example]] 266name = "01_quick_derive" 267path = "examples/tutorial_derive/01_quick.rs" 268required-features = ["derive"] 269 270[[example]] 271name = "02_apps_derive" 272path = "examples/tutorial_derive/02_apps.rs" 273required-features = ["derive"] 274 275[[example]] 276name = "02_crate_derive" 277path = "examples/tutorial_derive/02_crate.rs" 278required-features = ["derive"] 279 280[[example]] 281name = "02_app_settings_derive" 282path = "examples/tutorial_derive/02_app_settings.rs" 283required-features = ["derive"] 284 285[[example]] 286name = "03_01_flag_bool_derive" 287path = "examples/tutorial_derive/03_01_flag_bool.rs" 288required-features = ["derive"] 289 290[[example]] 291name = "03_01_flag_count_derive" 292path = "examples/tutorial_derive/03_01_flag_count.rs" 293required-features = ["derive"] 294 295[[example]] 296name = "03_02_option_derive" 297path = "examples/tutorial_derive/03_02_option.rs" 298required-features = ["derive"] 299 300[[example]] 301name = "03_02_option_mult_derive" 302path = "examples/tutorial_derive/03_02_option_mult.rs" 303required-features = ["derive"] 304 305[[example]] 306name = "03_03_positional_derive" 307path = "examples/tutorial_derive/03_03_positional.rs" 308required-features = ["derive"] 309 310[[example]] 311name = "03_03_positional_mult_derive" 312path = "examples/tutorial_derive/03_03_positional_mult.rs" 313required-features = ["derive"] 314 315[[example]] 316name = "03_04_subcommands_derive" 317path = "examples/tutorial_derive/03_04_subcommands.rs" 318required-features = ["derive"] 319 320[[example]] 321name = "03_04_subcommands_alt_derive" 322path = "examples/tutorial_derive/03_04_subcommands_alt.rs" 323required-features = ["derive"] 324 325[[example]] 326name = "03_05_default_values_derive" 327path = "examples/tutorial_derive/03_05_default_values.rs" 328required-features = ["derive"] 329 330[[example]] 331name = "04_01_enum_derive" 332path = "examples/tutorial_derive/04_01_enum.rs" 333required-features = ["derive"] 334 335[[example]] 336name = "04_02_parse_derive" 337path = "examples/tutorial_derive/04_02_parse.rs" 338required-features = ["derive"] 339 340[[example]] 341name = "04_02_validate_derive" 342path = "examples/tutorial_derive/04_02_validate.rs" 343required-features = ["derive"] 344 345[[example]] 346name = "04_03_relations_derive" 347path = "examples/tutorial_derive/04_03_relations.rs" 348required-features = ["derive"] 349 350[[example]] 351name = "04_04_custom_derive" 352path = "examples/tutorial_derive/04_04_custom.rs" 353required-features = ["derive"] 354 355[[example]] 356name = "05_01_assert_derive" 357path = "examples/tutorial_derive/05_01_assert.rs" 358required-features = ["derive"] 359test = true 360 361[[example]] 362name = "interop_augment_args" 363path = "examples/derive_ref/augment_args.rs" 364required-features = ["derive"] 365 366[[example]] 367name = "interop_augment_subcommands" 368path = "examples/derive_ref/augment_subcommands.rs" 369required-features = ["derive"] 370 371[[example]] 372name = "interop_hand_subcommand" 373path = "examples/derive_ref/hand_subcommand.rs" 374required-features = ["derive"] 375 376[[example]] 377name = "interop_flatten_hand_args" 378path = "examples/derive_ref/flatten_hand_args.rs" 379required-features = ["derive"] 380 381[profile.test] 382opt-level = 1 383 384[profile.bench] 385lto = true 386codegen-units = 1 387