mirror of
https://github.com/fish-shell/fish-shell.git
synced 2026-04-19 14:51:13 -03:00
231 lines
6.7 KiB
TOML
231 lines
6.7 KiB
TOML
[workspace]
|
|
members = ["crates/*"]
|
|
|
|
[workspace.package]
|
|
# To build revisions that use Corrosion (those before 2024-01), use CMake 3.19, Rustc 1.78 and Rustup 1.27.
|
|
rust-version = "1.85"
|
|
edition = "2024"
|
|
repository = "https://github.com/fish-shell/fish-shell"
|
|
# see doc_src/license.rst for details
|
|
# don't forget to update COPYING and debian/copyright too
|
|
license = "GPL-2.0-only AND LGPL-2.0-or-later AND MIT AND PSF-2.0"
|
|
|
|
[workspace.dependencies]
|
|
anstyle = "1.0.13"
|
|
assert_matches = "1.5.0"
|
|
bitflags = "2.5.0"
|
|
cc = "1.0.94"
|
|
cfg-if = "1.0.3"
|
|
clap = { version = "4.5.54", features = ["derive"] }
|
|
errno = "0.3.0"
|
|
fish-build-helper = { path = "crates/build-helper" }
|
|
fish-build-man-pages = { path = "crates/build-man-pages" }
|
|
fish-color = { path = "crates/color" }
|
|
fish-common = { path = "crates/common" }
|
|
fish-fallback = { path = "crates/fallback" }
|
|
fish-gettext = { path = "crates/gettext" }
|
|
fish-gettext-extraction = { path = "crates/gettext-extraction" }
|
|
fish-gettext-maps = { path = "crates/gettext-maps" }
|
|
fish-gettext-mo-file-parser = { path = "crates/gettext-mo-file-parser" }
|
|
fish-printf = { path = "crates/printf", features = ["widestring"] }
|
|
fish-tempfile = { path = "crates/tempfile" }
|
|
fish-util = { path = "crates/util" }
|
|
fish-wcstringutil = { path = "crates/wcstringutil" }
|
|
fish-widecharwidth = { path = "crates/widecharwidth" }
|
|
fish-widestring = { path = "crates/widestring" }
|
|
fish-wgetopt = { path = "crates/wgetopt" }
|
|
itertools = "0.14.0"
|
|
libc = "0.2.177"
|
|
# lru pulls in hashbrown by default, which uses a faster (though less DoS resistant) hashing algo.
|
|
# disabling default features uses the stdlib instead, but it doubles the time to rewrite the history
|
|
# files as of 22 April 2024.
|
|
lru = "0.16.2"
|
|
nix = { version = "0.31.1", default-features = false, features = [
|
|
"event",
|
|
"fs",
|
|
"inotify",
|
|
"hostname",
|
|
"resource",
|
|
"process",
|
|
"signal",
|
|
"term",
|
|
"user",
|
|
] }
|
|
num-traits = "0.2.19"
|
|
once_cell = "1.19.0"
|
|
pcre2 = { git = "https://github.com/fish-shell/rust-pcre2", tag = "0.2.9-utf32", default-features = false, features = [
|
|
"utf32",
|
|
] }
|
|
phf = { version = "0.13", default-features = false }
|
|
phf_codegen = "0.13"
|
|
portable-atomic = { version = "1", default-features = false, features = [
|
|
"fallback",
|
|
] }
|
|
proc-macro2 = "1.0"
|
|
rand = { version = "0.9.2", default-features = false, features = [
|
|
"small_rng",
|
|
"thread_rng",
|
|
] }
|
|
rsconf = "0.3.0"
|
|
rust-embed = { version = "8.11.0", features = [
|
|
"deterministic-timestamps",
|
|
"include-exclude",
|
|
"interpolate-folder-path",
|
|
] }
|
|
serial_test = { version = "3", default-features = false }
|
|
widestring = "1.2.0"
|
|
unicode-segmentation = "1.12.0"
|
|
unicode-width = "0.2.0"
|
|
unix_path = "1.0.1"
|
|
walkdir = "2.5.0"
|
|
xterm-color = "1.0.1"
|
|
|
|
[profile.release]
|
|
overflow-checks = true
|
|
lto = true
|
|
|
|
[profile.release-with-debug]
|
|
inherits = "release"
|
|
debug = true
|
|
|
|
[package]
|
|
name = "fish"
|
|
version = "4.6.0"
|
|
edition.workspace = true
|
|
rust-version.workspace = true
|
|
default-run = "fish"
|
|
license.workspace = true
|
|
homepage = "https://fishshell.com"
|
|
readme = "README.rst"
|
|
|
|
[dependencies]
|
|
assert_matches.workspace = true
|
|
bitflags.workspace = true
|
|
cfg-if.workspace = true
|
|
errno.workspace = true
|
|
fish-build-helper.workspace = true
|
|
fish-build-man-pages = { workspace = true, optional = true }
|
|
fish-color.workspace = true
|
|
fish-common.workspace = true
|
|
fish-fallback.workspace = true
|
|
fish-gettext = { workspace = true, optional = true }
|
|
fish-gettext-extraction = { workspace = true, optional = true }
|
|
fish-printf.workspace = true
|
|
fish-tempfile.workspace = true
|
|
fish-util.workspace = true
|
|
fish-wcstringutil.workspace = true
|
|
fish-wgetopt.workspace = true
|
|
fish-widecharwidth.workspace = true
|
|
fish-widestring.workspace = true
|
|
itertools.workspace = true
|
|
libc.workspace = true
|
|
lru.workspace = true
|
|
macro_rules_attribute = "0.2.2"
|
|
nix.workspace = true
|
|
num-traits.workspace = true
|
|
once_cell.workspace = true
|
|
pcre2.workspace = true
|
|
rand.workspace = true
|
|
xterm-color.workspace = true
|
|
|
|
[target.'cfg(not(target_has_atomic = "64"))'.dependencies]
|
|
portable-atomic.workspace = true
|
|
|
|
[target.'cfg(windows)'.dependencies]
|
|
rust-embed = { workspace = true, features = [
|
|
"deterministic-timestamps",
|
|
"debug-embed",
|
|
"include-exclude",
|
|
"interpolate-folder-path",
|
|
] }
|
|
[target.'cfg(not(windows))'.dependencies]
|
|
rust-embed = { workspace = true, features = [
|
|
"deterministic-timestamps",
|
|
"include-exclude",
|
|
"interpolate-folder-path",
|
|
] }
|
|
|
|
[dev-dependencies]
|
|
serial_test.workspace = true
|
|
|
|
[build-dependencies]
|
|
cc.workspace = true
|
|
fish-build-helper.workspace = true
|
|
fish-gettext-mo-file-parser.workspace = true
|
|
phf_codegen = { workspace = true, optional = true }
|
|
rsconf.workspace = true
|
|
|
|
[target.'cfg(windows)'.build-dependencies]
|
|
unix_path.workspace = true
|
|
|
|
[lib]
|
|
crate-type = ["rlib"]
|
|
path = "src/lib.rs"
|
|
|
|
[[bin]]
|
|
name = "fish"
|
|
path = "src/bin/fish.rs"
|
|
|
|
[[bin]]
|
|
name = "fish_indent"
|
|
path = "src/bin/fish_indent.rs"
|
|
|
|
[[bin]]
|
|
name = "fish_key_reader"
|
|
path = "src/bin/fish_key_reader.rs"
|
|
|
|
[features]
|
|
default = ["embed-manpages", "localize-messages"]
|
|
benchmark = []
|
|
embed-manpages = ["dep:fish-build-man-pages"]
|
|
# Enable gettext localization at runtime. Requires the `msgfmt` tool to generate catalog data at
|
|
# build time.
|
|
localize-messages = ["dep:fish-gettext"]
|
|
# This feature is used to enable extracting messages from the source code for localization.
|
|
# It only needs to be enabled if updating these messages (and the corresponding PO files) is
|
|
# desired. This happens when running tests via `cargo xtask check` and when calling
|
|
# `build_tools/update_translations.fish`, so there should not be a need to enable it manually.
|
|
gettext-extract = ["dep:fish-gettext-extraction"]
|
|
|
|
# The following features are auto-detected by the build-script and should not be enabled manually.
|
|
tsan = []
|
|
|
|
[workspace.lints]
|
|
rust.non_camel_case_types = "allow"
|
|
rust.non_upper_case_globals = "allow"
|
|
rust.unknown_lints = { level = "allow", priority = -1 }
|
|
rust.unstable_name_collisions = "allow"
|
|
rustdoc.private_intra_doc_links = "allow"
|
|
|
|
[workspace.lints.clippy]
|
|
assigning_clones = "warn"
|
|
cloned_instead_of_copied = "warn"
|
|
explicit_into_iter_loop = "warn"
|
|
format_push_string = "warn"
|
|
implicit_clone = "warn"
|
|
len_without_is_empty = "allow" # we're not a library crate
|
|
let_and_return = "allow"
|
|
manual_assert = "warn"
|
|
manual_range_contains = "allow"
|
|
map_unwrap_or = "warn"
|
|
mut_mut = "warn"
|
|
needless_lifetimes = "allow"
|
|
new_without_default = "allow"
|
|
option_map_unit_fn = "allow"
|
|
ptr_offset_by_literal = "warn"
|
|
ref_option = "warn"
|
|
semicolon_if_nothing_returned = "warn"
|
|
stable_sort_primitive = "warn"
|
|
str_to_string = "warn"
|
|
unnecessary_semicolon = "warn"
|
|
unused_trait_names = "warn"
|
|
|
|
# We do not want to use the e?print(ln)?! macros.
|
|
# These lints flag their use.
|
|
# In the future, they might change to flag other methods of printing.
|
|
print_stdout = "deny"
|
|
print_stderr = "deny"
|
|
|
|
[lints]
|
|
workspace = true
|