refact: add cargo cxx feature
This commit is contained in:
parent
35d0b5cfb9
commit
3474d20d9b
7 changed files with 30 additions and 5 deletions
1
Cargo.lock
generated
1
Cargo.lock
generated
|
|
@ -1386,6 +1386,7 @@ version = "0.1.0"
|
|||
dependencies = [
|
||||
"backbone-lib",
|
||||
"futures",
|
||||
"getrandom 0.3.4",
|
||||
"gloo-storage",
|
||||
"leptos",
|
||||
"serde",
|
||||
|
|
|
|||
|
|
@ -14,3 +14,6 @@ gloo-storage = "0.3"
|
|||
|
||||
[target.'cfg(target_arch = "wasm32")'.dependencies]
|
||||
wasm-bindgen-futures = "0.4"
|
||||
# getrandom 0.3 requires an explicit WASM backend; "wasm_js" uses window.crypto.getRandomValues.
|
||||
# Must be a direct dependency (not just transitive) for the feature to take effect.
|
||||
getrandom = { version = "0.3", features = ["wasm_js"] }
|
||||
|
|
|
|||
|
|
@ -5,6 +5,9 @@ let
|
|||
in
|
||||
{
|
||||
packages = [
|
||||
# for Leptos
|
||||
pkgs.trunk
|
||||
# pkgs.wasm-bindgen-cli_0_2_114
|
||||
|
||||
# pour burn-rs
|
||||
pkgs.SDL2_gfx
|
||||
|
|
|
|||
13
justfile
13
justfile
|
|
@ -8,6 +8,19 @@ shell:
|
|||
devenv shell
|
||||
runcli:
|
||||
RUST_LOG=info cargo run --bin=client_cli
|
||||
|
||||
[working-directory: 'client_web/']
|
||||
dev-leptos:
|
||||
trunk serve
|
||||
|
||||
[working-directory: 'client_web']
|
||||
build-leptos:
|
||||
trunk build --release
|
||||
cp dist/index.html /home/henri/travaux/programmes/forks/multiplayer/deploy/trictrac.html
|
||||
cp dist/*.wasm /home/henri/travaux/programmes/forks/multiplayer/deploy/
|
||||
cp dist/*.js /home/henri/travaux/programmes/forks/multiplayer/deploy/
|
||||
cp dist/*.css /home/henri/travaux/programmes/forks/multiplayer/deploy/
|
||||
|
||||
runclibots:
|
||||
cargo run --bin=client_cli -- --bot random,dqnburn:./bot/models/burnrl_dqn_40.mpk
|
||||
#cargo run --bin=client_cli -- --bot dqn:./bot/models/dqn_model_final.json,dummy
|
||||
|
|
|
|||
|
|
@ -15,11 +15,13 @@ crate-type = ["cdylib", "rlib", "staticlib"]
|
|||
[features]
|
||||
# Enable Python bindings (required for maturin / AI training). Not available on wasm32.
|
||||
python = ["pyo3"]
|
||||
# Enable C++ bridge for OpenSpiel integration. Not available on wasm32.
|
||||
cpp = ["dep:cxx"]
|
||||
|
||||
[dependencies]
|
||||
anyhow = "1.0"
|
||||
base64 = "0.21.7"
|
||||
cxx = "1.0"
|
||||
cxx = { version = "1.0", optional = true }
|
||||
# provides macros for creating log messages to be used by a logger (for example env_logger)
|
||||
log = "0.4.20"
|
||||
merge = "0.1.0"
|
||||
|
|
|
|||
|
|
@ -1,7 +1,9 @@
|
|||
fn main() {
|
||||
cxx_build::bridge("src/cxxengine.rs")
|
||||
.std("c++17")
|
||||
.compile("trictrac-cxx");
|
||||
if std::env::var("CARGO_FEATURE_CPP").is_ok() {
|
||||
cxx_build::bridge("src/cxxengine.rs")
|
||||
.std("c++17")
|
||||
.compile("trictrac-cxx");
|
||||
|
||||
println!("cargo:rerun-if-changed=src/cxxengine.rs");
|
||||
println!("cargo:rerun-if-changed=src/cxxengine.rs");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,4 +24,5 @@ pub mod training_common;
|
|||
mod pyengine;
|
||||
|
||||
// C++ interface via cxx.rs (for OpenSpiel C++ integration)
|
||||
#[cfg(feature = "cpp")]
|
||||
pub mod cxxengine;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue