# 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.2.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]
all = [
    "all_wasm",
    "all_non_wasm",
]
all_non_wasm = [
    "parallelize",
    "opening_book",
    "syzygy_tablebase",
]
all_wasm = [
    "default",
    "negamax",
    "pst",
    "sort_moves",
    "quiescence",
    "quiescence_en_passant",
    "checks_add_depth",
    "killer_heuristic",
    "history_heuristic",
    "tt",
    "eval_tt",
    "tt_two_tier",
    "null_move_pruning",
    "late_move_reductions",
    "tapered_eval",
    "move_flag_eval",
    "lockless_hashing",
]
base_array = [
    "bb_array",
    "revert_clone",
    "magic_bbs",
]
base_array_parallel = [
    "bb_array",
    "revert_clone",
    "magic_bbs",
    "parallelize",
]
base_basic = [
    "bb",
    "revert_undo",
]
base_clone = [
    "bb",
    "revert_clone",
    "magic_bbs",
]
base_clone_parallel = [
    "bb",
    "revert_clone",
    "magic_bbs",
    "parallelize",
]
base_default = ["base_array"]
base_magic_number = [
    "bb",
    "revert_undo",
    "magic_bbs",
]
bb = []
bb_array = []
capture_with_check_eval = []
checks_add_depth = []
default = [
    "base_default",
    "iterative_deepening",
]
dropped = [
    "positional_eval",
    "pseudo_pins",
    "capture_with_check_eval",
]
eval_tt = []
history_heuristic = []
iterative_deepening = []
killer_heuristic = []
late_move_reductions = []
lockless_hashing = []
magic_bbs = []
minimax = []
move_flag_eval = []
negamax = []
null_move_pruning = []
opening_book = [
    "ureq",
    "rand",
    "serde",
    "serde_json",
]
parallelize = ["rayon"]
positional_eval = []
pseudo_pins = []
pst = []
quiescence = []
quiescence_en_passant = []
revert_clone = []
revert_undo = []
small_tt = []
sort_moves = []
syzygy_tablebase = [
    "shakmaty",
    "shakmaty-syzygy",
]
tapered_eval = []
tt = []
tt_two_tier = []
version_capture_with_check_eval = [
    "version_tapered_eval",
    "capture_with_check_eval",
]
version_checks_add_depth = [
    "version_quiescence_en_passant",
    "checks_add_depth",
]
version_eval_tt = [
    "version_tt",
    "eval_tt",
]
version_history_heuristic = [
    "version_killer_heuristic",
    "history_heuristic",
]
version_iterative_deepening = ["default"]
version_killer_heuristic = [
    "version_checks_add_depth",
    "killer_heuristic",
]
version_late_move_reductions = [
    "version_null_move_pruning",
    "late_move_reductions",
]
version_lockless_hashing = [
    "version_parallelize",
    "lockless_hashing",
]
version_minimax = [
    "version_iterative_deepening",
    "minimax",
]
version_move_flag_eval = [
    "version_tapered_eval",
    "move_flag_eval",
]
version_negamax = [
    "version_iterative_deepening",
    "negamax",
]
version_null_move_pruning = [
    "version_tt_two_tier",
    "null_move_pruning",
]
version_opening_book = [
    "version_lockless_hashing",
    "opening_book",
]
version_parallelize = [
    "version_move_flag_eval",
    "parallelize",
]
version_positional_eval = [
    "version_tapered_eval",
    "positional_eval",
]
version_pseudo_pins = [
    "version_tapered_eval",
    "pseudo_pins",
]
version_pst = [
    "version_negamax",
    "pst",
]
version_quiescence = [
    "version_sort_moves",
    "quiescence",
]
version_quiescence_en_passant = [
    "version_quiescence",
    "quiescence_en_passant",
]
version_sort_moves = [
    "version_pst",
    "sort_moves",
]
version_syzygy_tablebase = [
    "version_opening_book",
    "syzygy_tablebase",
]
version_tapered_eval = [
    "version_late_move_reductions",
    "tapered_eval",
]
version_tt = [
    "version_history_heuristic",
    "tt",
]
version_tt_two_tier = [
    "version_eval_tt",
    "tt_two_tier",
]

[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.2"

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

[dependencies.rayon]
version = "1.10.0"
optional = true

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

[dependencies.serde_json]
version = "1.0.140"
optional = true

[dependencies.shakmaty]
version = "0.27.3"
optional = true

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

[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"
