# -*- mode: python; -*-

Import("env")

env = env.Clone()

env.Library(
    target="unittest",
    source=[
        'barrier.cpp',
        'bson_test_util.cpp',
        'death_test.cpp',
        'temp_dir.cpp',
        'unittest_helpers.cpp',
        'unittest.cpp',
        'unittest.idl',
    ],
    LIBDEPS=[
        '$BUILD_DIR/mongo/base',
    ],
    LIBDEPS_PRIVATE=[
        '$BUILD_DIR/mongo/db/server_options_core',
        '$BUILD_DIR/mongo/util/options_parser/options_parser',
        '$BUILD_DIR/mongo/util/debugger',
    ],
)

env.Library(
    target="unittest_main",
    source=[
        'unittest_main.cpp',
        'unittest_options.idl',
    ],
    LIBDEPS=[
        'unittest',
    ],
    LIBDEPS_PRIVATE=[
        '$BUILD_DIR/mongo/db/commands/test_commands_enabled',
        '$BUILD_DIR/mongo/util/options_parser/options_parser',
    ],
)

env.Library(
    target="integration_test_main",
    source=[
        'integration_test_main.cpp',
        'integration_test_main.idl',
    ],
    LIBDEPS=[
        'unittest',
        '$BUILD_DIR/mongo/base',
    ],
    LIBDEPS_PRIVATE=[
        '$BUILD_DIR/mongo/client/connection_string',
        '$BUILD_DIR/mongo/db/commands/test_commands_enabled',
        '$BUILD_DIR/mongo/db/serverinit',
        '$BUILD_DIR/mongo/db/server_options',
        '$BUILD_DIR/mongo/db/server_options_base',
        '$BUILD_DIR/mongo/db/service_context',
        '$BUILD_DIR/mongo/util/options_parser/options_parser',
        '$BUILD_DIR/mongo/util/options_parser/options_parser_init',
    ],
)

bmEnv = env.Clone()
bmEnv.InjectThirdParty(libraries=['benchmark'])
bmEnv.Library(
    target='benchmark_main',
    source=[
        'benchmark_main.cpp'
    ],
    LIBDEPS=[
        '$BUILD_DIR/mongo/base',
        '$BUILD_DIR/mongo/db/service_context',
        '$BUILD_DIR/third_party/shim_benchmark',
    ],
)

env.Library(
    target='task_executor_proxy',
    source=[
        'task_executor_proxy.cpp',
    ],
    LIBDEPS=[
        '$BUILD_DIR/mongo/executor/task_executor_interface',
    ],
)

env.CppUnitTest(
    target='unittest_test',
    source=[
        'unittest_test.cpp',
        'fixture_test.cpp',
        'temp_dir_test.cpp',
        'thread_assertion_monitor_test.cpp',
    ],
)

env.Benchmark(
    target='system_resource_canary_bm',
    source=[
        'system_resource_canary_bm.cpp'
    ],
    LIBDEPS=[
        '$BUILD_DIR/mongo/util/processinfo',
    ],
)
