Files
2026-07-13 12:24:51 +08:00

100 lines
5.0 KiB
TOML

[package]
name = "fyrox-impl"
version = "2.0.0-rc.1"
authors = ["Dmitry Stepanov <d1maxa@yandex.ru>", "Fyrox Engine Contributors"]
edition = "2021"
license = "MIT"
description = "Feature-rich, easy-to-use, 2D/3D game engine with a scene editor. Like Godot, but in Rust."
keywords = ["sound", "game", "engine", "3d", "gui"]
categories = ["game-engines", "graphics", "gui", "rendering", "wasm"]
include = ["/src/**/*", "/Cargo.toml", "/LICENSE", "/README.md"]
homepage = "https://fyrox.rs"
documentation = "https://docs.rs/fyrox"
repository = "https://github.com/FyroxEngine/Fyrox"
readme = "README.md"
rust-version = "1.94"
[dependencies]
fyrox-core-derive = { path = "../fyrox-core-derive", version = "2.0.0-rc.1" }
fyrox-core = { path = "../fyrox-core", version = "2.0.0-rc.1", features = ["serde"] }
fyrox-sound = { path = "../fyrox-sound", version = "2.0.0-rc.1" }
fyrox-ui = { path = "../fyrox-ui", version = "2.0.0-rc.1" }
fyrox-resource = { path = "../fyrox-resource", version = "2.0.0-rc.1" }
fyrox-animation = { path = "../fyrox-animation", version = "2.0.0-rc.1" }
fyrox-graph = { path = "../fyrox-graph", version = "2.0.0-rc.1" }
fyrox-graphics = { path = "../fyrox-graphics", version = "2.0.0-rc.1" }
fyrox-graphics-gl = { path = "../fyrox-graphics-gl", version = "2.0.0-rc.1" }
fyrox-texture = { path = "../fyrox-texture", version = "2.0.0-rc.1" }
fyrox-autotile = { path = "../fyrox-autotile", version = "2.0.0-rc.1" }
fyrox-material = { path = "../fyrox-material", version = "2.0.0-rc.1" }
rapier2d = { version = "0.33", features = ["debug-render", ] }
rapier3d = { version = "0.33", features = ["debug-render"] }
image = { version = "0.25.1", default-features = false, features = ["gif", "jpeg", "png", "tga", "tiff", "bmp"] }
inflate = "0.4.5"
serde = { version = "1", features = ["derive"] }
rayon = "1.5.1"
bitflags = "2.9.1"
walkdir = "2.3.2"
ron = "0.11.0"
fxhash = "0.2.1"
strum = "0.27"
strum_macros = "0.27"
clap = { version = "4", features = ["derive"] }
winit = { version = "0.30", features = ["serde"] }
half = { version = "2.2.1", features = ["bytemuck"] }
base64 = "0.22.1"
uvgen = "0.5.0"
lightmap = "0.7.0"
libloading = "0.9"
gltf = { version = "1.4.0", default-features = false, features = ["names", "utils", "extras", "KHR_materials_emissive_strength"] }
bytemuck = { version = "1.23.2", features = ["derive"] }
approx = "0.5.1"
# These dependencies aren't used by the engine, but it is necessary to prevent cargo from rebuilding
# the engine lib on different packages. This is especially important for hot reloading feature.
# Sometimes there could be a situation when the editor and the engine use the same crate but with
# different features. This will force cargo to rebuild the engine when building the editor. This is
# an undesirable effect for builds that support hot reloading because the game and the editor will
# use different DLLs, which will result in a hard crash which is hard to debug.
#
# Such sutiation can be spotted when building the game DLL and the editor consecutively. At first,
# the game crate will compile the engine, and it will result in a DLL of the engine. The editor is
# compiled next, but some features of some crate could be different, which will force engine
# recompilation and new DLL will be produced. Usually it can be seen as `fyrox-impl` compiled twice.
#
# To find which feature causing the issue, you need to find out which crates recompile when you're building
# the editor. Make a list of such crates, then use `cargo tree` command two times:
#
# RUSTFLAGS="-C prefer-dynamic=yes" cargo tree --package game_dylib --no-default-features --features dylib-engine -e features > game.txt
# RUSTFLAGS="-C prefer-dynamic=yes" cargo tree --package editor --no-default-features --features dylib -e features > editor.txt
#
# These commands will create two files: game.txt and editor.txt. Open both and search for the crates from the list,
# make a list of features used by these crates and compare them for both game.txt and editor.txt. If features
# don't match, add a new dependency of the corresponding crate below with such features and the issue should
# be fixed.
#
# In most cases, it is enough to copy dependencies from the `fyroxed_base` crate to fix these issues.
#
# === start of additional deps ===
hashbrown = { version = "0.15", features = ["default", "default-hasher"] }
imageproc = "0.25.0"
serde_core = { version = "1.0.225", features = ["default"] }
wide = { version = "0.7.33", features = ["std", "default"] }
serde_json = { version = "1", features = ["raw_value", "default", "std", "unbounded_depth"] }
uuid = { version = "1", features = ["v4", "default", "js"] }
toml = { version = "0.9", default-features = false, features = ["parse"] }
toml_edit = "0.23"
rust-fuzzy-search = "0.1.1"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
cargo_metadata = "0.22"
open = "5"
opener = { version = "0.8", default-features = false, features = ["reveal"] }
# === end of additional deps ===
[features]
mesh_analysis = []
[target.'cfg(target_os = "android")'.dependencies]
winit = { version = "0.30", features = ["android-native-activity"] }