# -*- mode: python -*-

Import("env")
env = env.Clone()

env.Library(
    target='serverless_types_idl',
    source=[
        'serverless_types.idl',
    ],
    LIBDEPS=[
        '$BUILD_DIR/mongo/base',
        '$BUILD_DIR/mongo/idl/basic_types',
        '$BUILD_DIR/mongo/idl/idl_parser'
    ],
)

env.Library(
    target='shard_split_state_machine',
    source=[
        'shard_split_state_machine.idl',
    ],
    LIBDEPS=[
        '$BUILD_DIR/mongo/base',
        '$BUILD_DIR/mongo/client/connection_string',
        '$BUILD_DIR/mongo/db/repl/tenant_migration_utils',
        '$BUILD_DIR/mongo/idl/idl_parser'
    ],
)

env.Library(
    target='shard_split_commands',
    source=[
        'shard_split_commands.idl',
        'shard_split_commands.cpp',
    ],
    LIBDEPS=[
        '$BUILD_DIR/mongo/base',
        '$BUILD_DIR/mongo/client/connection_string',
        '$BUILD_DIR/mongo/db/auth/auth',
        '$BUILD_DIR/mongo/db/repl/tenant_migration_utils',
        '$BUILD_DIR/mongo/idl/idl_parser',
        'shard_split_donor_service',
    ]
)

env.Library(
    target='shard_split_donor_service',
    source=[
        'shard_split_donor_service.cpp',
    ],
    LIBDEPS=[
        '$BUILD_DIR/mongo/db/repl/primary_only_service',
        'shard_split_state_machine'
    ],
    LIBDEPS_PRIVATE=[
        '$BUILD_DIR/mongo/db/db_raii',
        '$BUILD_DIR/mongo/db/dbhelpers',
        '$BUILD_DIR/mongo/db/namespace_string',
    ]
)

env.CppUnitTest(
    target='db_serverless_test',
    source=[
        'shard_split_donor_service_test.cpp',
    ],
    LIBDEPS=[
        '$BUILD_DIR/mongo/db/auth/authmocks',
        '$BUILD_DIR/mongo/db/db_raii',
        '$BUILD_DIR/mongo/db/dbhelpers',
        '$BUILD_DIR/mongo/db/namespace_string',
        '$BUILD_DIR/mongo/db/op_observer',
        '$BUILD_DIR/mongo/db/op_observer_impl',
        '$BUILD_DIR/mongo/db/repl/abstract_async_component',
        '$BUILD_DIR/mongo/db/repl/data_replicator_external_state_mock',
        '$BUILD_DIR/mongo/db/repl/drop_pending_collection_reaper',
        '$BUILD_DIR/mongo/db/repl/idempotency_test_fixture',
        '$BUILD_DIR/mongo/db/repl/idempotency_test_util',
        '$BUILD_DIR/mongo/db/repl/initial_syncer',
        '$BUILD_DIR/mongo/db/repl/isself',
        '$BUILD_DIR/mongo/db/repl/multiapplier',
        '$BUILD_DIR/mongo/db/repl/oplog',
        '$BUILD_DIR/mongo/db/repl/oplog_application_interface',
        '$BUILD_DIR/mongo/db/repl/oplog_applier_impl_test_fixture',
        '$BUILD_DIR/mongo/db/repl/oplog_buffer_collection',
        '$BUILD_DIR/mongo/db/repl/oplog_buffer_proxy',
        '$BUILD_DIR/mongo/db/repl/oplog_entry',
        '$BUILD_DIR/mongo/db/repl/oplog_entry_test_helpers',
        '$BUILD_DIR/mongo/db/repl/oplog_fetcher',
        '$BUILD_DIR/mongo/db/repl/oplog_interface_local',
        '$BUILD_DIR/mongo/db/repl/oplog_interface_mock',
        '$BUILD_DIR/mongo/db/repl/oplog_interface_remote',
        '$BUILD_DIR/mongo/db/repl/optime',
        '$BUILD_DIR/mongo/db/repl/primary_only_service',
        '$BUILD_DIR/mongo/db/repl/primary_only_service_test_fixture',
        '$BUILD_DIR/mongo/db/repl/repl_coordinator_impl',
        '$BUILD_DIR/mongo/db/repl/repl_server_parameters',
        '$BUILD_DIR/mongo/db/repl/replica_set_messages',
        '$BUILD_DIR/mongo/db/repl/replication_consistency_markers_impl',
        '$BUILD_DIR/mongo/db/repl/replication_process',
        '$BUILD_DIR/mongo/db/repl/replication_recovery',
        '$BUILD_DIR/mongo/db/repl/replmocks',
        '$BUILD_DIR/mongo/db/repl/reporter',
        '$BUILD_DIR/mongo/db/repl/roll_back_local_operations',
        '$BUILD_DIR/mongo/db/repl/rollback_checker',
        '$BUILD_DIR/mongo/db/repl/rollback_impl',
        '$BUILD_DIR/mongo/db/repl/rollback_test_fixture',
        '$BUILD_DIR/mongo/db/repl/rs_rollback',
        '$BUILD_DIR/mongo/db/repl/scatter_gather',
        '$BUILD_DIR/mongo/db/repl/speculative_majority_read_info',
        '$BUILD_DIR/mongo/db/repl/split_horizon',
        '$BUILD_DIR/mongo/db/repl/storage_interface_impl',
        '$BUILD_DIR/mongo/db/repl/sync_source_resolver',
        '$BUILD_DIR/mongo/db/repl/sync_source_selector_mock',
        '$BUILD_DIR/mongo/db/repl/task_executor_mock',
        '$BUILD_DIR/mongo/db/repl/task_runner',
        '$BUILD_DIR/mongo/db/repl/tenant_migration_utils',
        '$BUILD_DIR/mongo/db/repl/tenant_oplog_processing',
        '$BUILD_DIR/mongo/db/repl/wait_for_majority_service',
        '$BUILD_DIR/mongo/db/service_context_d_test_fixture',
        '$BUILD_DIR/mongo/db/service_context_test_fixture',
        '$BUILD_DIR/mongo/dbtests/mocklib',
        '$BUILD_DIR/mongo/util/clock_source_mock',
        'shard_split_donor_service',
    ]
)
