# -*- mode: python -*-

Import('env')

env = env.Clone()

env.Library(
    target='sdam',
    source=[
        'sdam_datatypes.cpp',
        'server_description.cpp',
        'topology_description.cpp',
        'topology_state_machine.cpp',
        'topology_manager.cpp',
    ],
    LIBDEPS=[
        '$BUILD_DIR/mongo/base',
        '$BUILD_DIR/mongo/db/repl/optime',
        '$BUILD_DIR/mongo/util/clock_sources',
        '$BUILD_DIR/mongo/db/wire_version',
        '$BUILD_DIR/mongo/rpc/metadata',
    ],
)


sdam_json_test = env.Program(
    target='sdam_json_test',
    source=[
        'sdam_json_test_runner.cpp',
        env.Idlc('sdam_json_test_runner_cli_options.idl')[0]],
    LIBDEPS=[
        'sdam',
        'sdam_test',
        '$BUILD_DIR/mongo/util/clock_source_mock',
        '$BUILD_DIR/mongo/client/connection_string',
        '$BUILD_DIR/mongo/util/options_parser/options_parser'],
)[0]
env.RegisterUnitTest(sdam_json_test)
env.Alias("sdam_json_test_runner", str(sdam_json_test))

env.Library(
    target='sdam_test',
    source=[
        'server_description_builder.cpp',
    ],
    LIBDEPS=[
        '$BUILD_DIR/mongo/base',
    ],
)

env.CppUnitTest(
    target='topology_description_test',
    source=['topology_description_test.cpp'],
    LIBDEPS=['sdam', 'sdam_test'],
)

env.CppUnitTest(
    target='server_description_test',
    source=['server_description_test.cpp'],
    LIBDEPS=['sdam', 'sdam_test'],
)

env.CppUnitTest(
    target='topology_manager_test',
    source=['topology_manager_test.cpp'],
    LIBDEPS=['sdam', 'sdam_test'],
)

env.CppUnitTest(
    target='topology_state_machine_test',
    source=['topology_state_machine_test.cpp'],
    LIBDEPS=['sdam', 'sdam_test'],
)
