[workspace]

members = [
    "libs/vector_tile",
    "libs/style_spec",
    "libs/wgsl_validate",
    "libs/mapr_utils",
]

[package]
name = "mapr"
version = "0.1.0"
authors = ["Maximilian Ammann <max@maxammann.org>"]
edition = "2021"
resolver = "2"
build = "build.rs"

[package.metadata.wasm-pack.profile.release]
wasm-opt = true

[profile.release]
lto = true
codegen-units = 1
opt-level = 's'
panic = "abort"

[features]
web-webgl = ["wgpu/webgl"]

[target.'cfg(target_os = "android")'.dependencies]
ndk-glue = "0.5.0" # version is required by winit
winit = { version = "0.26", default-features = false }

[target.'cfg(target_arch = "wasm32")'.dependencies]
console_error_panic_hook = "0.1"
winit = { version = "0.26", default-features = false }
web-sys = { version = "0.3", features = ["Worker", "WorkerOptions", "WorkerType", "MessageEvent"] }
js-sys = "0.3"
wasm-bindgen = "0.2"
wasm-bindgen-futures = "0.4"
console_log = { version = "0.2", features = ["color"] }
instant = { version = "0.1", features = ["stdweb"] }

[target.'cfg(any(target_arch = "aarch64", target_os = "linux", target_os = "android"))'.dependencies]
futures = "0.3.5"
pollster = "0.2"
env_logger = "0.9"

[target.'cfg(target_arch = "aarch64")'.dependencies]
winit = { version = "0.26", default-features = false }

[target.'cfg(target_os = "linux")'.dependencies]
winit = { version = "0.26", default-features = false, features = ["x11", "wayland"] }

[dependencies]

# Vector riles
vector-tile = { path = "./libs/vector_tile" }
style-spec = { path = "./libs/style_spec" }

# Math and geo
# https://docs.rs/euclid/0.22.6/euclid/index.html
#geo = "0.18.0"
#geo-types = "0.7"
# proj = "0.24" FIXME: Incompatible with wasm

cgmath = "0.18"

# Rendering
wgpu = { version = "0.12" }
lyon = { version = "0.17", features = ["extra"] } # extra for rust logo
lyon_path = "0.17"


# Logging
log = "0.4"

# Utils
#hexdump = "0.1"
bytemuck = "1.2.0"
bytemuck_derive = "1.0"

include_dir = "0.7.2"


[dev-dependencies]
criterion = "0.3"
# Support logging in tests
test-env-log = "0.2"

[build-dependencies]
wgsl-validate = { path = "./libs/wgsl_validate" }
mapr-utils = { path = "./libs/mapr_utils" }

[lib]
crate-type = [ "rlib", "cdylib", "staticlib" ] # staticlib is used for apple

[[example]]
name = "desktop"
crate-type = ["bin"]

[[bench]]
name = "tesselation"
harness = false