[package] name = "fyrox-impl" version = "2.0.0-rc.1" authors = ["Dmitry Stepanov ", "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"] }