mirror of
https://github.com/FluxaMedia/fluxa-core.git
synced 2026-07-26 11:52:13 +00:00
rquickjs-sys ships no prebuilt FFI bindings for any Android target triple, so cargo build --target aarch64-linux-android (and the other Android ABIs) failed once plugin-js-engine pulled in rquickjs. Switch the rquickjs dependency to its explicit non-macro feature set plus bindgen, so bindings are generated at build time via libclang against the NDK sysroot instead of relying on a missing prebuilt binding file. Dropped the "full-async" and "phf" umbrella features because they pull in the rquickjs-macro proc-macro crate, which is compiled for the host and would otherwise pick up the same BINDGEN_EXTRA_CLANG_ARGS meant for the Android cross target, corrupting its own bindings. fluxa_core does not use any rquickjs proc-macro attributes, so nothing is lost.
122 lines
3.1 KiB
TOML
122 lines
3.1 KiB
TOML
[workspace]
|
|
members = ["fluxa-streaming-engine"]
|
|
exclude = ["fuzz"]
|
|
resolver = "2"
|
|
|
|
[workspace.dependencies]
|
|
dolby_vision = { version = "3.3.2", default-features = false }
|
|
fluxa_core = { path = ".", default-features = false }
|
|
jni = { version = "0.21" }
|
|
serde = { version = "1.0", features = ["derive"] }
|
|
serde_json = "1.0"
|
|
|
|
[profile.release]
|
|
opt-level = 3
|
|
lto = true
|
|
codegen-units = 1
|
|
strip = "debuginfo"
|
|
panic = "unwind"
|
|
|
|
[workspace.lints.rust]
|
|
unsafe_op_in_unsafe_fn = "warn"
|
|
|
|
[workspace.lints.clippy]
|
|
unwrap_used = "warn"
|
|
expect_used = "warn"
|
|
indexing_slicing = "warn"
|
|
panic = "warn"
|
|
|
|
[package]
|
|
name = "fluxa_core"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
|
|
[lib]
|
|
crate-type = ["cdylib", "staticlib", "rlib"]
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[[bin]]
|
|
name = "uniffi-bindgen"
|
|
path = "uniffi-bindgen.rs"
|
|
required-features = ["uniffi-cli"]
|
|
|
|
[features]
|
|
default = ["native"]
|
|
native = [
|
|
"full-api",
|
|
"dep:jni",
|
|
"dep:dolby_vision",
|
|
"uniffi-bindings",
|
|
"plugin-js-engine",
|
|
]
|
|
desktop = ["full-api", "plugin-js-engine"]
|
|
ios = ["full-api", "uniffi-bindings", "plugin-js-engine"]
|
|
full-api = []
|
|
streaming-shared = []
|
|
uniffi-bindings = ["dep:uniffi", "full-api"]
|
|
uniffi-cli = ["uniffi-bindings", "uniffi/cli"]
|
|
wasm = ["full-api", "dep:wasm-bindgen", "chrono/wasmbind"]
|
|
fuzzing = []
|
|
bench = []
|
|
plugin-js-engine = [
|
|
"dep:rquickjs",
|
|
"dep:scraper",
|
|
"dep:ego-tree",
|
|
"dep:aes",
|
|
"dep:aes-gcm",
|
|
"dep:cbc",
|
|
"dep:ecb",
|
|
"dep:hmac",
|
|
"dep:md-5",
|
|
"dep:pbkdf2",
|
|
"dep:rsa",
|
|
"dep:p256",
|
|
"dep:rand",
|
|
"dep:sha1",
|
|
"dep:log",
|
|
"dep:tokio",
|
|
]
|
|
|
|
[dependencies]
|
|
aes = { version = "0.9.1", optional = true }
|
|
aes-gcm = { version = "0.10", optional = true }
|
|
base64 = "0.22"
|
|
cbc = { version = "0.2.1", optional = true }
|
|
chrono = { version = "0.4.45", features = ["serde"] }
|
|
dolby_vision = { workspace = true, optional = true }
|
|
ecb = { version = "0.2.0", optional = true }
|
|
ego-tree = { version = "0.11", optional = true }
|
|
hmac = { version = "0.13.0", optional = true }
|
|
jni = { workspace = true, optional = true }
|
|
log = { version = "0.4", optional = true }
|
|
"md-5" = { version = "0.11.0", optional = true }
|
|
p256 = { version = "0.14.0", optional = true }
|
|
pbkdf2 = { version = "0.13.0", optional = true }
|
|
rand = { version = "0.10.2", optional = true }
|
|
regex = "1"
|
|
rquickjs = { version = "0.12.1", default-features = false, features = ["std", "chrono", "loader", "dyn-load", "either", "indexmap", "futures", "bindgen"], optional = true }
|
|
rsa = { version = "0.9.10", features = ["sha2"], optional = true }
|
|
scraper = { version = "0.27.0", optional = true }
|
|
sha1 = { version = "0.11.0", optional = true }
|
|
sha2 = "0.11.0"
|
|
serde = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
tokio = { version = "1", features = ["rt", "macros", "time"], optional = true }
|
|
uniffi = { version = "0.31.1", optional = true }
|
|
wasm-bindgen = { version = "0.2", optional = true }
|
|
web-time = "1"
|
|
|
|
[dev-dependencies]
|
|
criterion = { version = "0.5", default-features = false }
|
|
|
|
[[bench]]
|
|
name = "headless_engine_dispatch"
|
|
harness = false
|
|
required-features = ["bench"]
|
|
|
|
[[bench]]
|
|
name = "stream_ranking"
|
|
harness = false
|
|
required-features = ["bench"]
|