# -*- mode: python; -*-

Import("env")

env = env.Clone()

env.Library(
    target='collection_options',
    source=[
        'collection_options.cpp',
    ],
    LIBDEPS=[
        '$BUILD_DIR/mongo/base',
        '$BUILD_DIR/mongo/db/server_parameters',
        '$BUILD_DIR/mongo/util/uuid',
    ],
)

env.CppUnitTest('collection_options_test', ['collection_options_test.cpp'],
                LIBDEPS=['collection_options'])


env.Library(
    target='document_validation',
    source=[
        "document_validation.cpp",
    ],
    LIBDEPS=[
        "$BUILD_DIR/mongo/db/service_context",
    ],
)

env.Library(
    target='index_key_validate',
    source=[
        "index_key_validate.cpp",
    ],
    LIBDEPS=[
        '$BUILD_DIR/mongo/base',
        '$BUILD_DIR/mongo/db/common',
        '$BUILD_DIR/mongo/db/index/index_descriptor',
        '$BUILD_DIR/mongo/db/index_names',
        '$BUILD_DIR/mongo/db/query/collation/collator_factory_interface',
        '$BUILD_DIR/mongo/util/fail_point',
    ],
)

env.CppUnitTest(
    target='index_key_validate_test',
    source=[
        'index_key_validate_test.cpp',
        'index_spec_validate_test.cpp',
    ],
    LIBDEPS=[
        '$BUILD_DIR/mongo/db/query/query_test_service_context',
        'index_key_validate',
    ],
)

env.Library(
    target='index_catalog',
    source=[
        "index_catalog.cpp",
    ],
    LIBDEPS=[
    ],
)

env.Library(
    target='index_catalog_entry',
    source=[
        "index_catalog_entry.cpp",
    ],
    LIBDEPS=[
    ],
)

env.Library(
    target='collection',
    source=[
        "collection.cpp",
    ],
    LIBDEPS=[
    ],
)

env.Library(
    target='database',
    source=[
        "database.cpp",
    ],
    LIBDEPS=[
    ],
)

env.Library(
    target='database_holder',
    source=[
        "database_holder.cpp",
    ],
    LIBDEPS=[
    ],
)

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

env.Library(
    target='index_create',
    source=[
        "index_create.cpp",
    ],
    LIBDEPS=[
    ],
)

env.Library(
    target='catalog',
    source=[
        "apply_ops.cpp",
        "capped_utils.cpp",
        "coll_mod.cpp",
        "collection_compact.cpp",
        "collection_impl.cpp",
        "collection_info_cache_impl.cpp",
        "create_collection.cpp",
        "cursor_manager.cpp",
        "database_impl.cpp",
        "database_holder_impl.cpp",
        "drop_collection.cpp",
        "drop_database.cpp",
        "drop_indexes.cpp",
        "index_catalog_impl.cpp",
        "index_catalog_entry_impl.cpp",
        "index_create_impl.cpp",
        "rename_collection.cpp",
    ],
    LIBDEPS=[
        'collection',
        'collection_info_cache',
        'collection_options',
        'database',
        'database_holder',
        'index_catalog',
        'index_catalog_entry',
        'index_create',
        'index_key_validate',
        '$BUILD_DIR/mongo/base',
        '$BUILD_DIR/mongo/db/concurrency/lock_manager',
        '$BUILD_DIR/mongo/db/curop',
        '$BUILD_DIR/mongo/db/query/query',
        '$BUILD_DIR/mongo/db/repl/serveronly',
        '$BUILD_DIR/mongo/db/server_options_core',
        '$BUILD_DIR/mongo/db/service_context',
        '$BUILD_DIR/mongo/db/storage/mmap_v1/storage_mmapv1',
        '$BUILD_DIR/mongo/db/storage/key_string',
        '$BUILD_DIR/mongo/db/ttl_collection_cache',
        '$BUILD_DIR/mongo/db/collection_index_usage_tracker',
        '$BUILD_DIR/mongo/db/background',
        '$BUILD_DIR/mongo/db/db_raii',
        '$BUILD_DIR/mongo/db/index/index_access_methods',
        '$BUILD_DIR/mongo/db/clientcursor',
        '$BUILD_DIR/mongo/db/commands/dcommands',
        '$BUILD_DIR/mongo/db/commands/core',
        '$BUILD_DIR/mongo/db/s/balancer',
    ],
)
