# -*- mode: python -*-

Import("env")

env = env.Clone()

env.Library(
    target="op_observer",
    source=[
        "op_observer.cpp",
    ],
    LIBDEPS=[
        '$BUILD_DIR/mongo/base',
    ],
)

env.Library(
    target="op_observer_util",
    source=[
        "op_observer_util.cpp",
    ],
    LIBDEPS=[
        '$BUILD_DIR/mongo/base',
    ],
    LIBDEPS_PRIVATE=[
        '$BUILD_DIR/mongo/db/bson/dotted_path_support',
        '$BUILD_DIR/mongo/db/catalog/collection_options',
        '$BUILD_DIR/mongo/db/index/index_access_method',
        '$BUILD_DIR/mongo/db/s/sharding_api_d',
    ],
)

env.Library(
    target='oplog_writer_impl',
    source=[
        'oplog_writer_impl.cpp',
    ],
    LIBDEPS_PRIVATE=[
        '$BUILD_DIR/mongo/base',
        '$BUILD_DIR/mongo/db/catalog/catalog_helpers',
        '$BUILD_DIR/mongo/db/repl/oplog',
    ],
)

env.Library(
    target='oplog_writer_transaction_proxy',
    source=[
        'oplog_writer_transaction_proxy.cpp',
    ],
    LIBDEPS_PRIVATE=[
        '$BUILD_DIR/mongo/base',
    ],
)

env.Library(
    target="op_observer_impl",
    source=[
        "op_observer_impl.cpp",
    ],
    LIBDEPS=[
        '$BUILD_DIR/mongo/db/change_stream_pre_images_collection_manager',
    ],
    LIBDEPS_PRIVATE=[
        '$BUILD_DIR/mongo/base',
        '$BUILD_DIR/mongo/db/batched_write_context',
        '$BUILD_DIR/mongo/db/catalog/collection_catalog',
        '$BUILD_DIR/mongo/db/catalog/collection_options',
        '$BUILD_DIR/mongo/db/catalog/commit_quorum_options',
        '$BUILD_DIR/mongo/db/catalog/database_holder',
        '$BUILD_DIR/mongo/db/catalog/import_collection_oplog_entry',
        '$BUILD_DIR/mongo/db/commands/txn_cmd_request',
        '$BUILD_DIR/mongo/db/concurrency/exception_util',
        '$BUILD_DIR/mongo/db/dbhelpers',
        '$BUILD_DIR/mongo/db/internal_transactions_feature_flag',
        '$BUILD_DIR/mongo/db/multitenancy',
        '$BUILD_DIR/mongo/db/pipeline/change_stream_preimage',
        '$BUILD_DIR/mongo/db/read_write_concern_defaults',
        '$BUILD_DIR/mongo/db/repl/image_collection_entry',
        '$BUILD_DIR/mongo/db/repl/repl_server_parameters',
        '$BUILD_DIR/mongo/db/repl/tenant_migration_access_blocker',
        '$BUILD_DIR/mongo/db/s/sharding_api_d',
        '$BUILD_DIR/mongo/db/server_feature_flags',
        '$BUILD_DIR/mongo/db/session/session_catalog',
        '$BUILD_DIR/mongo/db/timeseries/bucket_catalog',
        '$BUILD_DIR/mongo/db/timeseries/timeseries_extended_range',
        '$BUILD_DIR/mongo/db/transaction/transaction',
        '$BUILD_DIR/mongo/db/views/views_mongod',
        '$BUILD_DIR/mongo/s/coreshard',
        '$BUILD_DIR/mongo/s/grid',
        'op_observer',
        'op_observer_util',
    ],
)

env.Library(
    target="fcv_op_observer",
    source=[
        "fcv_op_observer.cpp",
    ],
    LIBDEPS_PRIVATE=[
        '$BUILD_DIR/mongo/base',
        '$BUILD_DIR/mongo/db/commands/mongod_fcv',
        '$BUILD_DIR/mongo/db/session/kill_sessions_local',
        '$BUILD_DIR/mongo/executor/egress_tag_closer_manager',
        'op_observer',
        'op_observer_util',
    ],
)

env.Library(
    target="user_write_block_mode_op_observer",
    source=[
        "user_write_block_mode_op_observer.cpp",
    ],
    LIBDEPS=[
        '$BUILD_DIR/mongo/base',
        'op_observer',
    ],
    LIBDEPS_PRIVATE=[
        '$BUILD_DIR/mongo/db/s/sharding_api_d',
        '$BUILD_DIR/mongo/db/s/user_writes_recoverable_critical_section',
    ],
)
