# -*- mode: python -*-

Import("env")

env = env.Clone()

env.Library(
    target='timeseries_options',
    source=[
        'timeseries.idl',
        'timeseries_global_options.cpp',
        'timeseries_options.cpp',
    ],
    LIBDEPS_PRIVATE=[
        '$BUILD_DIR/mongo/base',
        '$BUILD_DIR/mongo/db/query/query_shape/query_shape',
        '$BUILD_DIR/mongo/idl/idl_parser',
        '$BUILD_DIR/mongo/idl/server_parameter',
        '$BUILD_DIR/mongo/util/processinfo'
    ],
)

env.Library(
    target='bucket_catalog',
    source=[
        'bucket_catalog.cpp',
        'flat_bson.cpp',
    ],
    LIBDEPS_PRIVATE=[
        '$BUILD_DIR/mongo/db/catalog/database_holder',
        '$BUILD_DIR/mongo/db/commands/server_status',
        '$BUILD_DIR/mongo/db/namespace_string',
        '$BUILD_DIR/mongo/db/server_options_core',
        '$BUILD_DIR/mongo/db/views/views',
        '$BUILD_DIR/mongo/util/fail_point',
        'timeseries_metadata',
        'timeseries_options',
    ],
)

env.Library(
    target='bucket_compression',
    source=[
        'bucket_compression.cpp',
    ],
    LIBDEPS=[
        '$BUILD_DIR/mongo/base',
    ],
    LIBDEPS_PRIVATE=[
        '$BUILD_DIR/mongo/bson/util/bson_column',
        '$BUILD_DIR/mongo/db/server_options_core',
        '$BUILD_DIR/mongo/db/storage/storage_options',
        '$BUILD_DIR/mongo/util/fail_point',
    ]
)

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

env.Library(
    target='catalog_helper',
    source=[
        'catalog_helper.cpp',
    ],
    LIBDEPS_PRIVATE=[
        '$BUILD_DIR/mongo/base',
        '$BUILD_DIR/mongo/db/catalog/collection_catalog',
        '$BUILD_DIR/mongo/db/namespace_string',
        'timeseries_options',
    ],
)

env.Library(
    target='timeseries_conversion_util',
    source=[
        'timeseries_commands_conversion_helper.cpp',
        'timeseries_dotted_path_support.cpp',
        'timeseries_index_schema_conversion_functions.cpp',
        'timeseries_update_delete_util.cpp',
    ],
    LIBDEPS_PRIVATE=[
        '$BUILD_DIR/mongo/base',
        '$BUILD_DIR/mongo/bson/mutable/mutable_bson',
        '$BUILD_DIR/mongo/bson/util/bson_column',
        '$BUILD_DIR/mongo/db/exec/bucket_unpacker',
        '$BUILD_DIR/mongo/db/index_commands_idl',
        '$BUILD_DIR/mongo/db/index_names',
        '$BUILD_DIR/mongo/db/namespace_string',
        '$BUILD_DIR/mongo/db/ops/write_ops_parsers',
        '$BUILD_DIR/mongo/db/storage/storage_options',
        'bucket_compression',
        'timeseries_options',
    ],
)

env.Library(
    target='timeseries_collmod',
    source=[
        'timeseries_collmod.cpp',
    ],
    LIBDEPS_PRIVATE=[
        '$BUILD_DIR/mongo/base',
        '$BUILD_DIR/mongo/bson/mutable/mutable_bson',
        '$BUILD_DIR/mongo/db/catalog/catalog_helpers',
        '$BUILD_DIR/mongo/db/coll_mod_command_idl',
        '$BUILD_DIR/mongo/db/exec/bucket_unpacker',
        '$BUILD_DIR/mongo/db/namespace_string',
        'catalog_helper',
        'timeseries_conversion_util',
        'timeseries_options',
    ],
)

env.Library(
    target='timeseries_extended_range',
    source=[
        'timeseries_extended_range.cpp',
    ],
    LIBDEPS_PRIVATE=[
        '$BUILD_DIR/mongo/base',
        '$BUILD_DIR/mongo/db/catalog/index_catalog',
        'timeseries_options',
    ],
)

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

env.CppUnitTest(
    target='db_timeseries_test',
    source=[
        'bucket_catalog_test.cpp',
        'minmax_test.cpp',
        'schema_test.cpp',
        'timeseries_dotted_path_support_test.cpp',
        'timeseries_extended_range_test.cpp',
        'timeseries_index_schema_conversion_functions_test.cpp',
        'timeseries_options_test.cpp',
        'timeseries_update_delete_util_test.cpp',
    ],
    LIBDEPS=[
        '$BUILD_DIR/mongo/db/catalog/catalog_test_fixture',
        '$BUILD_DIR/mongo/db/catalog_raii',
        'bucket_catalog',
        'bucket_compression',
        'timeseries_conversion_util',
        'timeseries_extended_range',
        'timeseries_options',
    ],
)
