# -*- mode: python -*-

Import("env")

env = env.Clone()

env.Library(
    target='batch_write_types',
    source=[
        'batched_command_request.cpp',
        'batched_command_response.cpp',
        'batched_upsert_detail.cpp',
        'write_error_detail.cpp',
    ],
    LIBDEPS=[
        '$BUILD_DIR/mongo/base',
        '$BUILD_DIR/mongo/db/common',
        '$BUILD_DIR/mongo/db/ops/write_ops_parsers',
        '$BUILD_DIR/mongo/db/repl/optime',
        '$BUILD_DIR/mongo/s/common',
    ],
)

env.Library(
    target='cluster_write_op',
    source=[
        'write_op.cpp',
        'batch_write_op.cpp',
        'batch_write_exec.cpp',
        '$BUILD_DIR/mongo/s/commands/chunk_manager_targeter.cpp',
        '$BUILD_DIR/mongo/s/commands/cluster_write.cpp',
    ],
    LIBDEPS=[
        '$BUILD_DIR/mongo/db/commands/server_status_core',
        'batch_write_types',
        '$BUILD_DIR/mongo/client/connection_string',
        '$BUILD_DIR/mongo/s/async_requests_sender',
        '$BUILD_DIR/mongo/s/client/sharding_client',
        '$BUILD_DIR/mongo/s/commands/shared_cluster_commands',
        '$BUILD_DIR/mongo/s/coreshard',
    ],
)

env.Library(
    target='cluster_write_op_conversion',
    source=[
        'batch_downconvert.cpp',
    ],
    LIBDEPS=[
        'cluster_write_op',
        '$BUILD_DIR/mongo/db/dbmessage',
        '$BUILD_DIR/mongo/db/lasterror',
    ],
)

env.CppUnitTest(
    target='batch_write_types_test',
    source=[
        'batched_command_request_test.cpp',
        'batched_command_response_test.cpp',
    ],
    LIBDEPS=[
        'batch_write_types',
        '$BUILD_DIR/mongo/db/ops/write_ops_parsers_test_helpers',
    ]
)

env.CppUnitTest(
    target='cluster_write_op_test',
    source=[
        'write_op_test.cpp',
        'batch_write_op_test.cpp',
        'batch_write_exec_test.cpp',
    ],
    LIBDEPS=[
        'cluster_write_op',
        '$BUILD_DIR/mongo/db/range_arithmetic',
        '$BUILD_DIR/mongo/db/service_context',
        '$BUILD_DIR/mongo/s/sharding_test_fixture',
    ]
)

env.CppUnitTest(
    target='cluster_write_op_conversion_test',
    source=[
        'batch_downconvert_test.cpp',
    ],
    LIBDEPS=[
        '$BUILD_DIR/mongo/db/auth/authorization_manager_mock_init',
        '$BUILD_DIR/mongo/db/service_context_noop_init',
        'cluster_write_op',
        'cluster_write_op_conversion',
    ]
)
