Files
objdiff/objdiff-core/Cargo.toml
T

213 lines
6.1 KiB
TOML
Raw Normal View History

[package]
name = "objdiff-core"
2024-09-09 19:32:22 -06:00
version.workspace = true
edition.workspace = true
rust-version.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
2024-09-09 20:18:56 -06:00
readme = "README.md"
description = """
A local diffing tool for decompilation projects.
"""
2024-09-09 19:32:22 -06:00
documentation = "https://docs.rs/objdiff-core"
[features]
2025-02-07 00:10:49 -07:00
default = ["std"]
2024-12-29 16:57:18 -07:00
all = [
# Features
"bindings",
"build",
"config",
"dwarf",
2025-02-07 00:10:49 -07:00
"serde",
2024-12-29 16:57:18 -07:00
# Architectures
2025-02-20 17:48:00 -07:00
"arm",
"arm64",
2024-12-29 16:57:18 -07:00
"mips",
"ppc",
"x86",
2025-04-17 13:20:30 -07:00
"superh"
2024-12-29 16:57:18 -07:00
]
# Implicit, used to check if any arch is enabled
any-arch = [
"dep:flagset",
"dep:heck",
"dep:log",
"dep:num-traits",
"dep:prettyplease",
"dep:proc-macro2",
"dep:quote",
2025-02-20 17:48:00 -07:00
"dep:regex",
2024-12-29 16:57:18 -07:00
"dep:similar",
"dep:syn",
"dep:encoding_rs",
"demangler",
2024-12-29 16:57:18 -07:00
]
bindings = [
"dep:prost",
"dep:prost-build",
]
build = [
"dep:notify",
"dep:notify-debouncer-full",
"dep:reqwest",
"dep:self_update",
"dep:shell-escape",
"dep:tempfile",
"dep:time",
"dep:winapi",
]
config = [
"dep:globset",
"dep:semver",
2025-02-07 00:10:49 -07:00
"dep:typed-path",
2024-12-29 16:57:18 -07:00
]
dwarf = [
"dep:gimli",
"dep:typed-arena",
]
2025-02-07 00:10:49 -07:00
serde = [
"dep:pbjson",
"dep:pbjson-build",
"dep:serde",
"dep:serde_json",
]
std = [
"anyhow/std",
"flagset?/std",
"log?/std",
"num-traits?/std",
"object/std",
"prost?/std",
"serde?/std",
2025-04-01 23:33:17 -06:00
"similar?/std",
"typed-arena?/std",
2025-02-07 00:10:49 -07:00
"typed-path?/std",
"dep:filetime",
"dep:memmap2",
]
2024-12-29 16:57:18 -07:00
mips = [
"any-arch",
"dep:rabbitizer",
]
ppc = [
"any-arch",
"dep:cwextab",
2025-07-17 13:32:50 -06:00
"dep:powerpc",
"dep:rlwinmdec",
2024-12-29 16:57:18 -07:00
]
x86 = [
"any-arch",
"dep:iced-x86",
]
arm = [
"any-arch",
"dep:arm-attr",
"dep:unarm",
]
arm64 = [
"any-arch",
"dep:yaxpeax-arch",
"dep:yaxpeax-arm",
]
2025-04-17 13:20:30 -07:00
superh = [
"any-arch",
]
demangler = [
"dep:cpp_demangle",
"dep:cwdemangle",
"dep:gnuv2_demangle",
"dep:msvc-demangler",
]
2024-09-10 23:22:09 -06:00
[package.metadata.docs.rs]
features = ["all"]
[dependencies]
2025-02-07 00:10:49 -07:00
anyhow = { version = "1.0", default-features = false }
filetime = { version = "0.2", optional = true }
2025-07-28 17:30:52 -06:00
flagset = { version = "0.4", default-features = false, optional = true }
itertools = { version = "0.14", default-features = false, features = ["use_alloc"] }
2025-02-07 00:10:49 -07:00
log = { version = "0.4", default-features = false, optional = true }
memmap2 = { version = "0.9", optional = true }
2025-02-07 00:10:49 -07:00
num-traits = { version = "0.2", default-features = false, optional = true }
2025-08-15 14:47:06 -06:00
object = { version = "0.37", default-features = false, features = ["read_core", "elf", "coff"] }
2025-07-28 17:30:52 -06:00
pbjson = { version = "0.8", default-features = false, optional = true }
prost = { version = "0.14", default-features = false, features = ["derive"], optional = true }
2025-11-18 22:21:46 -07:00
regex = { version = "1.12", default-features = false, features = [], optional = true }
2025-02-07 00:10:49 -07:00
serde = { version = "1.0", default-features = false, features = ["derive"], optional = true }
2025-08-15 14:47:06 -06:00
similar = { git = "https://github.com/encounter/similar.git", branch = "no_std", default-features = false, features = ["hashbrown"], optional = true }
2025-11-18 22:21:46 -07:00
typed-path = { version = "0.12", default-features = false, optional = true }
2024-02-27 18:47:51 -07:00
# config
2025-02-07 00:10:49 -07:00
globset = { version = "0.4", default-features = false, optional = true }
semver = { version = "1.0", default-features = false, optional = true }
serde_json = { version = "1.0", default-features = false, features = ["alloc"], optional = true }
# dwarf
2025-08-15 14:47:06 -06:00
gimli = { git = "https://github.com/gimli-rs/gimli", rev = "7335f00e7c39fd501511584fefb0ba974117c950", default-features = false, features = ["read"], optional = true }
typed-arena = { version = "2.0", default-features = false, optional = true }
# ppc
2025-07-28 17:30:52 -06:00
cwextab = { version = "1.1", optional = true }
2025-07-17 13:32:50 -06:00
powerpc = { version = "0.4", optional = true }
rlwinmdec = { version = "1.1", optional = true }
# mips
2025-11-18 22:21:46 -07:00
rabbitizer = { version = "2.0.0-alpha.7", default-features = false, features = ["all_extensions"], optional = true }
2024-03-16 23:30:27 -06:00
# x86
2025-02-07 00:10:49 -07:00
iced-x86 = { version = "1.21", default-features = false, features = ["decoder", "intel", "gas", "masm", "nasm", "exhaustive_enums", "no_std"], optional = true }
2024-06-04 03:08:49 +02:00
# arm
2025-11-18 22:21:46 -07:00
unarm = { version = "2.1", optional = true }
2025-02-07 00:10:49 -07:00
arm-attr = { version = "0.2", optional = true }
2024-08-20 21:40:32 -06:00
2024-10-31 00:37:01 -06:00
# arm64
2025-02-07 00:10:49 -07:00
yaxpeax-arch = { version = "0.3", default-features = false, optional = true }
yaxpeax-arm = { version = "0.3", default-features = false, optional = true }
2024-10-11 18:37:14 -06:00
# build
2025-11-18 22:21:46 -07:00
notify = { version = "8.2.0", optional = true }
notify-debouncer-full = { version = "0.6.0", optional = true }
2024-10-11 18:37:14 -06:00
shell-escape = { version = "0.1", optional = true }
2025-11-18 22:21:46 -07:00
tempfile = { version = "3.23", optional = true }
2024-10-11 18:37:14 -06:00
time = { version = "0.3", optional = true }
encoding_rs = { version = "0.8.35", optional = true }
2024-10-11 18:37:14 -06:00
# demangler
2025-11-18 22:21:46 -07:00
cpp_demangle = { version = "0.5", optional = true, default-features = false, features = ["alloc"] }
cwdemangle = { version = "1.0", optional = true }
2025-11-09 15:53:02 -03:00
gnuv2_demangle = { version = "0.4", optional = true }
msvc-demangler = { version = "0.11", optional = true }
2024-10-11 18:37:14 -06:00
[target.'cfg(windows)'.dependencies]
winapi = { version = "0.3", optional = true, features = ["winbase"] }
2024-10-11 18:37:14 -06:00
# For Linux static binaries, use rustls
[target.'cfg(target_os = "linux")'.dependencies]
reqwest = { version = "0.12", default-features = false, features = ["blocking", "json", "multipart", "rustls-tls"], optional = true }
2025-01-01 20:45:48 -07:00
self_update = { version = "0.42", default-features = false, features = ["rustls"], optional = true }
2024-10-11 18:37:14 -06:00
# For all other platforms, use native TLS
[target.'cfg(not(target_os = "linux"))'.dependencies]
reqwest = { version = "0.12", default-features = false, features = ["blocking", "json", "multipart", "default-tls"], optional = true }
2025-01-01 20:45:48 -07:00
self_update = { version = "0.42", optional = true }
2024-10-11 18:37:14 -06:00
2024-08-20 21:40:32 -06:00
[build-dependencies]
2024-12-29 16:57:18 -07:00
heck = { version = "0.5", optional = true }
2025-07-28 17:30:52 -06:00
pbjson-build = { version = "0.8", optional = true }
2024-12-29 16:57:18 -07:00
prettyplease = { version = "0.2", optional = true }
proc-macro2 = { version = "1.0", optional = true }
2025-07-28 17:30:52 -06:00
prost-build = { version = "0.14", optional = true }
2024-12-29 16:57:18 -07:00
quote = { version = "1.0", optional = true }
2025-02-07 00:10:49 -07:00
serde = { version = "1.0", features = ["derive"] }
serde_json = { version = "1.0" }
2024-12-29 16:57:18 -07:00
syn = { version = "2.0", optional = true }
2025-02-20 17:48:00 -07:00
[dev-dependencies]
2025-02-26 22:47:42 -07:00
# Enable all features for tests
objdiff-core = { path = ".", features = ["all"] }
2025-05-07 16:42:02 -06:00
insta = "1.43"