# -*- mode: python; -*-

Import('env')

env = env.Clone()

env.Library(
    target='path',
    source=[
        'path.cpp',
        'path_internal.cpp',
    ],
    LIBDEPS=[
        '$BUILD_DIR/mongo/base',
        '$BUILD_DIR/mongo/db/common',
    ],
)

env.Library(
    target='expressions_mongod_only',
    source=[
        'extensions_callback_real.cpp',
        'expression_text.cpp',
        'expression_where.cpp',
    ],
    LIBDEPS=[
        '$BUILD_DIR/mongo/db/concurrency/lock_manager',
        '$BUILD_DIR/mongo/db/exec/js_function',
        '$BUILD_DIR/mongo/db/fts/base_fts',
        '$BUILD_DIR/mongo/db/query_expressions',
        '$BUILD_DIR/mongo/db/shard_role',
        '$BUILD_DIR/mongo/scripting/scripting_server',
    ],
)

env.CppUnitTest(
    target='db_matcher_test',
    source=[
        'match_expression_util_test.cpp',
        'debug_string_test.cpp',
        'doc_validation_error_json_schema_test.cpp',
        'doc_validation_error_test.cpp',
        'expression_algo_test.cpp',
        'expression_always_boolean_test.cpp',
        'expression_array_test.cpp',
        'expression_expr_test.cpp',
        'expression_geo_test.cpp',
        'expression_internal_bucket_geo_within_test.cpp',
        'expression_internal_expr_comparison_test.cpp',
        'expression_internal_expr_eq_test.cpp',
        'expression_leaf_test.cpp',
        'expression_optimize_test.cpp',
        'expression_parameterization_test.cpp',
        'expression_parser_array_test.cpp',
        'expression_parser_geo_test.cpp',
        'expression_parser_leaf_test.cpp',
        'expression_parser_test.cpp',
        'expression_parser_tree_test.cpp',
        'expression_serialization_test.cpp',
        'expression_tree_test.cpp',
        'expression_type_test.cpp',
        'expression_with_placeholder_test.cpp',
        'implicit_validator_test.cpp',
        'matcher_type_set_test.cpp',
        'path_accepting_keyword_test.cpp',
        'path_test.cpp',
        'rewrite_expr_test.cpp',
        'schema/array_keywords_test.cpp',
        'schema/encrypt_keyword_test.cpp',
        'schema/encrypt_schema_types_test.cpp',
        'schema/expression_internal_schema_all_elem_match_from_index_test.cpp',
        'schema/expression_internal_schema_allowed_properties_test.cpp',
        'schema/expression_internal_schema_cond_test.cpp',
        'schema/expression_internal_schema_eq_test.cpp',
        'schema/expression_internal_schema_fmod_test.cpp',
        'schema/expression_internal_schema_match_array_index_test.cpp',
        'schema/expression_internal_schema_max_items_test.cpp',
        'schema/expression_internal_schema_max_length_test.cpp',
        'schema/expression_internal_schema_max_properties_test.cpp',
        'schema/expression_internal_schema_min_items_test.cpp',
        'schema/expression_internal_schema_min_length_test.cpp',
        'schema/expression_internal_schema_min_properties_test.cpp',
        'schema/expression_internal_schema_object_match_test.cpp',
        'schema/expression_internal_schema_root_doc_eq_test.cpp',
        'schema/expression_internal_schema_unique_items_test.cpp',
        'schema/expression_internal_schema_xor_test.cpp',
        'schema/expression_parser_schema_test.cpp',
        'schema/json_pointer_test.cpp',
        'schema/logical_keywords_test.cpp',
        'schema/object_keywords_test.cpp',
        'schema/scalar_keywords_test.cpp',
    ],
    LIBDEPS=[
        '$BUILD_DIR/mongo/crypto/encrypted_field_config',
        '$BUILD_DIR/mongo/db/query/collation/collator_interface_mock',
        '$BUILD_DIR/mongo/db/query/query_planner',
        '$BUILD_DIR/mongo/db/query/query_test_service_context',
        '$BUILD_DIR/mongo/db/query_expressions',
        'path',
    ],
)
