# -*- mode: python -*-

Import("env")

env.SConscript(
    dirs=[
        'legacy',
        'replset',
    ],
)

env.Library(
    target='catalog_types',
    source=[
        'type_actionlog.cpp',
        'type_changelog.cpp',
        'type_chunk.cpp',
        'type_collection.cpp',
        'type_database.cpp',
        'type_settings.cpp',
        'type_shard.cpp',
        'type_tags.cpp',
    ],
    LIBDEPS=[
        '$BUILD_DIR/mongo/base/base',
        '$BUILD_DIR/mongo/bson/bson',
        '$BUILD_DIR/mongo/bson/util/bson_extract',
        '$BUILD_DIR/mongo/db/common',
    ]
)

env.Library(
    target='catalog_manager',
    source=[
        'catalog_cache.cpp',
        'catalog_manager.cpp',
    ],
    LIBDEPS=[
        '$BUILD_DIR/mongo/base/base',
        '$BUILD_DIR/mongo/bson/bson',
        '$BUILD_DIR/mongo/db/common',
        '$BUILD_DIR/mongo/s/batch_write_types',
        '$BUILD_DIR/mongo/s/catalog/catalog_types'
    ]
)

env.CppUnitTest(
    target='catalog_types_test',
    source=[
        'type_changelog_test.cpp',
        'type_chunk_test.cpp',
        'type_collection_test.cpp',
        'type_database_test.cpp',
        'type_settings_test.cpp',
        'type_shard_test.cpp',
        'type_tags_test.cpp',
    ],
    LIBDEPS=[
        '$BUILD_DIR/mongo/s/catalog/catalog_types'
    ]
)

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

env.Library(
    target='dist_lock_manager_mock',
    source=[
        'dist_lock_manager_mock.cpp',
    ],
    LIBDEPS=[
        'dist_lock_manager',
    ],
)

env.Library(
    target='dist_lock_catalog',
    source=[
        'dist_lock_catalog_impl.cpp',
        'dist_lock_catalog.cpp',
    ],
    LIBDEPS=[
        '$BUILD_DIR/mongo/base/base',
        '$BUILD_DIR/mongo/client/read_preference',
        '$BUILD_DIR/mongo/client/remote_command_runner',
        '$BUILD_DIR/mongo/client/remote_command_targeter',
        '$BUILD_DIR/mongo/db/common',
        '$BUILD_DIR/mongo/db/query/command_request_response',
        '$BUILD_DIR/mongo/rpc/command_status',
        '$BUILD_DIR/mongo/s/base',
        '$BUILD_DIR/mongo/s/batch_write_types',
        '$BUILD_DIR/mongo/util/net/hostandport',
    ],
)

env.CppUnitTest(
    target='dist_lock_catalog_impl_test',
    source=[
        'dist_lock_catalog_impl_test.cpp',
    ],
    LIBDEPS=[
        'dist_lock_catalog',
        '$BUILD_DIR/mongo/client/remote_command_runner_mock',
        '$BUILD_DIR/mongo/client/remote_command_targeter_mock',
    ]
)

env.Library(
    target='dist_lock_catalog_mock',
    source=[
        'dist_lock_catalog_mock.cpp',
    ],
    LIBDEPS=[
        'dist_lock_catalog',
    ]
)

