# -*- mode: python -*-

Import('env')

env = env.Clone()

env.Library(
    target='cst',
    source=[
        'bson_lexer.cpp',
        'c_node.cpp',
        'c_node_disambiguation.cpp',
        'c_node_validation.cpp',
        'compound_key.cpp',
        'cst_match_translation.cpp',
        'cst_pipeline_translation.cpp',
        'cst_sort_translation.cpp',
        'parser_gen.cpp',
    ],
    LIBDEPS=[
        "$BUILD_DIR/mongo/base",
        '$BUILD_DIR/mongo/db/pipeline/pipeline',
        '$BUILD_DIR/mongo/db/pipeline/variable_validation',
        '$BUILD_DIR/mongo/db/query/datetime/date_time_support',
    ],
)

env.CppUnitTest(
    target='cst_test',
    source=[
        'bson_lexer_test.cpp',
        'cst_error_test.cpp',
        'cst_expression_test.cpp',
        'cst_find_project_test.cpp',
        'cst_match_test.cpp',
        'cst_match_translation_test.cpp',
        'cst_sort_translation_test.cpp',
        'cst_test.cpp',
    ],
    LIBDEPS=[
        # $text depends on FTSAccessMethod.
        '$BUILD_DIR/mongo/db/index/index_access_method',
        '$BUILD_DIR/mongo/db/matcher/expressions_mongod_only',
        '$BUILD_DIR/mongo/db/query/query_test_service_context',
        '$BUILD_DIR/mongo/db/service_context_non_d',
        'cst',
    ],
)

env.CppUnitTest(
    target='cst_pipeline_translation_test',
    source=[
        'cst_literals_test.cpp',
        'cst_pipeline_translation_test.cpp',
        'cst_set_operator_translation_test.cpp',
    ],
    LIBDEPS=[
        '$BUILD_DIR/mongo/db/query/query_test_service_context',
        '$BUILD_DIR/mongo/db/service_context_non_d',
        'cst',
    ],
)

# Disabled under SERVER-64949.
#
# env.Benchmark(
#     target='cst_bm',
#     source=[
#         'cst_bm.cpp',
#     ],
#     LIBDEPS=[
#         '$BUILD_DIR/mongo/db/pipeline/pipeline',
#         '$BUILD_DIR/mongo/db/query/query_test_service_context',
#         '$BUILD_DIR/mongo/unittest/unittest',
#         '$BUILD_DIR/mongo/util/processinfo',
#         'cst',
#     ],
# )
