# -*- mode: python -*-

Import("env")

env.StaticLibrary(
    target='query_planner',
    source=[
        "canonical_query.cpp",
        "index_bounds_builder.cpp",
        "index_tag.cpp",
        "lite_parsed_query.cpp",
        "plan_enumerator.cpp",
        "projection_parser.cpp",
        "qlog.cpp",
        "query_planner.cpp",
        "query_solution.cpp",
    ],
    LIBDEPS=[
        "index_bounds",
        "$BUILD_DIR/mongo/bson",
        "$BUILD_DIR/mongo/mongohasher",
        "$BUILD_DIR/mongo/expressions",
        "$BUILD_DIR/mongo/expressions_geo",
        "$BUILD_DIR/mongo/server_parameters",
    ],
)

env.StaticLibrary(
    target='query',
    source=[
        "cached_plan_runner.cpp",
        "eof_runner.cpp",
        "explain_plan.cpp",
        "internal_runner.cpp",
        "multi_plan_runner.cpp",
        "new_find.cpp",
        "plan_executor.cpp",
        "plan_ranker.cpp",
        "single_solution_runner.cpp",
        "stage_builder.cpp",
        "type_explain.cpp",
    ],
    LIBDEPS=[
        "query_planner",
        "$BUILD_DIR/mongo/db/exec/exec"
    ],
)

env.StaticLibrary(
    target="index_bounds",
    source=[
        "index_bounds.cpp",
        "interval.cpp",
    ],
    LIBDEPS=[
        "$BUILD_DIR/mongo/bson",
    ],
)

env.CppUnitTest(
    target="index_bounds_test",
    source=[
        "index_bounds_test.cpp"
    ],
    LIBDEPS=[
        "index_bounds",
    ],
)

env.CppUnitTest(
    target="interval_test",
    source=[
        "interval_test.cpp"
    ],
    LIBDEPS=[
        "index_bounds",
    ],
)

env.CppUnitTest(
    target="query_planner_test",
    source=[
        "query_planner_test.cpp"
    ],
    LIBDEPS=[
        "query_planner",
    ],
)
