# -*- mode: python -*-
Import("env")

env = env.Clone()

env.Library(
    target='key',
    source=[
        'key.cpp',
        'key_id.cpp',
    ],
    LIBDEPS_PRIVATE=[
        '$BUILD_DIR/mongo/base',
        '$BUILD_DIR/mongo/base/secure_allocator',
    ],
)

env.CppUnitTest(
    target='db_encryption_key_id_test',
    source=[
        'key_id_test.cpp',
    ],
    LIBDEPS=[
        'key',
    ],
)

env.Library(
    target='encryption_options',
    source=[
        'encryption_options.cpp',
    ],
)

env.Library(
    target='read_file_to_secure_string',
    source=[
        'read_file_to_secure_string.cpp'
    ],
    LIBDEPS=[
        '$BUILD_DIR/mongo/base/secure_allocator',
    ],
    LIBDEPS_PRIVATE=[
        '$BUILD_DIR/mongo/db/server_base',
    ]
)

env.Library(
    target='vault_secret_metadata_locator',
    source=[
        'vault_secret_metadata_locator.cpp',
    ],
)

env.CppUnitTest(
    target='vault_secret_metadata_locator_test',
    source=[
        'vault_secret_metadata_locator_test.cpp',
    ],
    LIBDEPS=[
        'vault_secret_metadata_locator',
    ],
)

env.Library(
    target='vault_client',
    source=[
        'vault_client.cpp',
    ],
    LIBDEPS_PRIVATE=[
        '$BUILD_DIR/mongo/base',
        '$BUILD_DIR/mongo/util/net/http_client',
        'read_file_to_secure_string',
        'vault_secret_metadata_locator',
    ],
)

kmipClientEnv = env.Clone()
kmipClientEnv.InjectThirdParty(libraries=['libkmip', 'kmippp'])
kmipClientEnv.Library(
    target='kmip_client',
    source=[
        'kmip_client.cpp',
        'kmip_exchange.cpp'
    ],
    LIBDEPS=[
        'key',
    ],
    LIBDEPS_PRIVATE=[
        '$BUILD_DIR/mongo/base',
        '$BUILD_DIR/mongo/base/secure_allocator',
        '$BUILD_DIR/third_party/shim_boost',
        '$BUILD_DIR/third_party/shim_kmippp',
        '$BUILD_DIR/third_party/shim_libkmip',
    ],
)

env.Library(
    target='key_management',
    source=[
        'key_operations.cpp',
        'master_key_provider.cpp',
    ],
    LIBDEPS=[
        'key',
    ],
    LIBDEPS_PRIVATE=[
        '$BUILD_DIR/mongo/base',
        '$BUILD_DIR/mongo/util/periodic_runner',
        'encryption_options',
        'kmip_client',
        'read_file_to_secure_string',
        'vault_client',
    ],
)
