# -*- mode: python -*-

Import("env")

env.Library(
    target='document_source_search',
    source=[
        'document_source_search.cpp',
        'document_source_search_meta.cpp',
        'document_source_internal_search_id_lookup.cpp',
        'document_source_internal_search_mongot_remote.cpp',
        'mongot_cursor.cpp',
        'plan_sharded_search.idl',
    ],
    LIBDEPS=[
        '$BUILD_DIR/mongo/base',
        '$BUILD_DIR/mongo/db/pipeline/pipeline',
    ],
    LIBDEPS_PRIVATE=[
        '$BUILD_DIR/mongo/executor/task_executor_cursor',
        'mongot_options',
        'mongot_task_executor',
    ],
    LIBDEPS_DEPENDENTS=[
        '$BUILD_DIR/mongo/db/initialize_server_security_state',
    ],
)

env.Library(
    target='mongot_options',
    source=[
        'mongot_options.cpp',
        'mongot_options.idl',
    ],
    LIBDEPS_PRIVATE=[
        '$BUILD_DIR/mongo/base',
        '$BUILD_DIR/mongo/idl/idl_parser',
        '$BUILD_DIR/mongo/idl/server_parameter',
        '$BUILD_DIR/mongo/util/net/network',
    ]
)

env.Library(
    target="mongotmock_core",
    source=[
        "mongotmock/mongotmock_buildinfo.cpp",
        "mongotmock/mongotmock_commands.cpp",
        "mongotmock/mongotmock_initialize_security_state.cpp",
        "mongotmock/mongotmock_ismaster.cpp",
        "mongotmock/mongotmock_options_init.cpp",
        "mongotmock/mongotmock_state.cpp",
    ],
    LIBDEPS_PRIVATE=[
        '$BUILD_DIR/mongo/db/auth/authmocks',
        '$BUILD_DIR/mongo/db/auth/authservercommon',
        '$BUILD_DIR/mongo/db/commands',
        '$BUILD_DIR/mongo/db/commands/test_commands_enabled',
        '$BUILD_DIR/mongo/db/initialize_server_security_state',
        '$BUILD_DIR/mongo/db/query/command_request_response',
        '$BUILD_DIR/mongo/db/server_options_servers',
        '$BUILD_DIR/mongo/db/wire_version',
        '$BUILD_DIR/mongo/util/version_impl',
    ],
)

env.Library(
    target='mongot_task_executor',
    source=[
        'mongot_task_executor.cpp',
    ],
    LIBDEPS=[
        '$BUILD_DIR/mongo/executor/task_executor_interface',
        '$BUILD_DIR/mongo/executor/network_interface_factory',
        '$BUILD_DIR/mongo/executor/network_interface_thread_pool',
        '$BUILD_DIR/mongo/executor/thread_pool_task_executor',
        '$BUILD_DIR/mongo/util/concurrency/thread_pool',
    ],
)

env.CppIntegrationTest(
    target='mongot_task_executor_integration_test',
    source=[
        'mongot_task_executor_integration_test.cpp',
    ],
    LIBDEPS=[
        'mongot_task_executor',
        '$BUILD_DIR/mongo/db/wire_version',
        '$BUILD_DIR/mongo/transport/transport_layer_egress_init',
        '$BUILD_DIR/mongo/util/version_impl',
    ],
)

env.CppUnitTest(
    target='enterprise_search_test',
    source=[
        'document_source_search_test.cpp',
        'document_source_internal_search_id_lookup_test.cpp',
        'document_source_internal_search_mongot_remote_test.cpp',
    ],
    LIBDEPS=[
        '$BUILD_DIR/mongo/db/auth/authmocks',
        '$BUILD_DIR/mongo/db/exec/document_value/document_value_test_util',
        '$BUILD_DIR/mongo/db/pipeline/document_source_mock',
        '$BUILD_DIR/mongo/db/service_context_test_fixture',
        'document_source_search',
    ],
    LIBDEPS_PRIVATE=[
        'mongot_options',
    ]
)
