# -*- mode: python; -*-

Import('env')
Import('get_option')

env = env.Clone()

yamlEnv = env.Clone()
yamlEnv.InjectThirdPartyIncludePaths(libraries=['yaml'])

mongobridge = env.Program(
    target="mongobridge",
    source=[
        "bridge.cpp",
        "bridge_commands.cpp",
        "mongobridge_options.cpp",
        "mongobridge_options_init.cpp"
    ],
    LIBDEPS=[
        '$BUILD_DIR/mongo/db/dbmessage',
        '$BUILD_DIR/mongo/rpc/rpc',
        '$BUILD_DIR/mongo/transport/message_compressor',
        '$BUILD_DIR/mongo/transport/service_entry_point',
        '$BUILD_DIR/mongo/transport/service_executor',
        '$BUILD_DIR/mongo/transport/transport_layer',
        '$BUILD_DIR/mongo/util/net/network',
        '$BUILD_DIR/mongo/util/options_parser/options_parser_init',
        '$BUILD_DIR/mongo/util/signal_handlers',
    ],
    INSTALL_ALIAS=[
        'tools'
    ],
)

mongoebench = yamlEnv.Program(
    target='mongoebench',
    source=[
        'mongoebench_main.cpp',
        'mongoebench_options.cpp',
        'mongoebench_options_init.cpp',
    ],
    LIBDEPS=[
        '$BUILD_DIR/mongo/db/dbdirectclient',
        '$BUILD_DIR/mongo/embedded/embedded',
        '$BUILD_DIR/mongo/embedded/embedded_integration_helpers',
        '$BUILD_DIR/mongo/shell/benchrun',
        '$BUILD_DIR/mongo/util/signal_handlers',
    ],
    INSTALL_ALIAS=[
        'embedded-test',
        'tools',
    ],
)

perconadecrypt = env.Program(
    target='perconadecrypt',
    source=[
        'perconadecrypt.cpp',
        'perconadecrypt_options.cpp',
        'perconadecrypt_options_init.cpp'
    ],
    LIBDEPS=[
        '$BUILD_DIR/mongo/util/options_parser/options_parser_init',
    ],
)


hygienic = get_option('install-mode') == 'hygienic'
if not hygienic:
    env.Install("#/", mongobridge)
    env.Install("#/", mongoebench)
    env.Install("#/", perconadecrypt)

env.Alias('all', mongoebench)  # This ensures it compiles and links, but doesn't copy it anywhere.
