# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2021"
name = "sisyphus32"
version = "1.0.0"
build = false
exclude = ["openings/openings.pgn"]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
default-run = "sisyphus32"
description = "Feature-based UCI Chess Engine"
readme = "README.md"
keywords = [
    "chess",
    "optimization",
]
license = "MIT"
repository = "https://github.com/juules32/sisyphus32"

[features]
base_array = [
    "unit_bb_array",
    "unit_revert_clone",
    "unit_magic_bbs",
]
base_basic = [
    "unit_bb",
    "unit_revert_undo",
]
base_clone = [
    "unit_bb",
    "unit_revert_clone",
    "unit_magic_bbs",
]
base_default = ["base_parallel_array"]
base_magic_number = [
    "unit_bb",
    "unit_revert_undo",
    "unit_magic_bbs",
]
base_parallel = [
    "unit_bb",
    "unit_revert_clone",
    "unit_magic_bbs",
    "unit_parallel_perft",
]
base_parallel_array = [
    "unit_bb_array",
    "unit_revert_clone",
    "unit_magic_bbs",
    "unit_parallel_perft",
]
capture_with_check_eval = [
    "tapered_eval",
    "unit_capture_with_check_eval",
]
checks_add_depth = [
    "quiescence_en_passant",
    "unit_checks_add_depth",
]
default = ["syzygy_tablebase"]
eval_tt = [
    "tt",
    "unit_eval_tt",
]
history_heuristic = [
    "killer_heuristic",
    "unit_history_heuristic",
]
iterative_deepening = [
    "sort_moves",
    "unit_iterative_deepening",
]
killer_heuristic = [
    "checks_add_depth",
    "unit_killer_heuristic",
]
late_move_reductions = [
    "null_move_pruning",
    "unit_late_move_reductions",
]
lazy_smp = [
    "move_flag_eval",
    "unit_lazy_smp",
]
lockless_hashing = [
    "lazy_smp",
    "unit_lockless_hashing",
]
minimax = [
    "base_default",
    "unit_minimax",
]
move_flag_eval = [
    "tapered_eval",
    "unit_move_flag_eval",
]
negamax = [
    "base_default",
    "unit_negamax",
]
null_move_pruning = [
    "tt_two_tier",
    "unit_null_move_pruning",
]
opening_book = [
    "lockless_hashing",
    "unit_opening_book",
]
positional_eval = [
    "tapered_eval",
    "unit_positional_eval",
]
pseudo_pins = [
    "tapered_eval",
    "unit_pseudo_pins",
]
pst = [
    "negamax",
    "unit_pst",
]
quiescence = [
    "iterative_deepening",
    "unit_quiescence",
]
quiescence_en_passant = [
    "quiescence",
    "unit_quiescence_en_passant",
]
random = ["base_default"]
sort_moves = [
    "pst",
    "unit_sort_moves",
]
syzygy_tablebase = [
    "opening_book",
    "unit_syzygy_tablebase",
]
tapered_eval = [
    "late_move_reductions",
    "unit_tapered_eval",
]
tt = [
    "history_heuristic",
    "unit_tt",
]
tt_two_tier = [
    "eval_tt",
    "unit_tt_two_tier",
]
unit_bb = []
unit_bb_array = []
unit_capture_with_check_eval = []
unit_checks_add_depth = []
unit_eval_tt = []
unit_history_heuristic = []
unit_iterative_deepening = []
unit_killer_heuristic = []
unit_late_move_reductions = []
unit_lazy_smp = []
unit_lockless_hashing = []
unit_magic_bbs = []
unit_minimax = []
unit_move_flag_eval = []
unit_negamax = []
unit_null_move_pruning = []
unit_opening_book = [
    "ureq",
    "rand",
]
unit_parallel_perft = []
unit_positional_eval = []
unit_pseudo_pins = []
unit_pst = []
unit_quiescence = []
unit_quiescence_en_passant = []
unit_revert_clone = []
unit_revert_undo = []
unit_small_tt = []
unit_sort_moves = []
unit_syzygy_tablebase = []
unit_tapered_eval = []
unit_tt = []
unit_tt_two_tier = []
wasm = ["lockless_hashing"]

[lib]
name = "sisyphus32"
path = "src/lib.rs"

[[bin]]
name = "build_all"
path = "src/bin/build_all.rs"

[[bin]]
name = "cutechess_sprt"
path = "src/bin/cutechess_sprt.rs"

[[bin]]
name = "samply_go"
path = "src/bin/samply_go.rs"

[[bin]]
name = "samply_perft"
path = "src/bin/samply_perft.rs"

[[bin]]
name = "samply_profile"
path = "src/bin/samply_profile.rs"

[[bin]]
name = "sisyphus32"
path = "src/main.rs"

[[bin]]
name = "test_all"
path = "src/bin/test_all.rs"

[[test]]
name = "integration_tests"
path = "tests/integration_tests.rs"

[dependencies.ctor]
version = "0.4.0"

[dependencies.rand]
version = "0.9.1"
optional = true

[dependencies.rayon]
version = "1.10.0"

[dependencies.serde]
version = "1.0.219"
features = ["derive"]

[dependencies.serde_json]
version = "1.0.140"

[dependencies.shakmaty]
version = "0.27.3"

[dependencies.shakmaty-syzygy]
version = "0.25.3"

[dependencies.thiserror]
version = "2.0.12"

[dependencies.ureq]
version = "3.0.11"
features = ["json"]
optional = true

[profile.release-all]
inherits = "release"

[profile.release-with-debug]
debug = 2
inherits = "release"
