# -*- mode: python -*-

Import([
    "env",
    "get_option",
])

env = env.Clone()
env.CppUnitTest(
    target='platform_test',
    source=[
        'atomic_proxy_test.cpp',
        'atomic_word_test.cpp',
        'bits_test.cpp',
        'endian_test.cpp',
        'int128_test.cpp',
        'mutex_test.cpp',
        'process_id_test.cpp',
        'random_test.cpp',
        'source_location_test.cpp',
        'stack_locator_test.cpp',
        'decimal128_test.cpp',
        'decimal128_bson_test.cpp',
        'overflow_arithmetic_test.cpp'
    ],
)

env.Benchmark(
    target='endian_bm',
    source=[
        'endian_bm.cpp',
    ],
    LIBDEPS=[
    ],
)

if not get_option("link-model") == "dynamic":
    Return()

env.Library(
    target="visibility_test_libcommon",
    source=[
        "visibility_test_libcommon.cpp",
    ],
    LIBDEPS_NO_INHERIT=[
        '$BUILD_DIR/third_party/shim_allocator',
    ],
    LIBDEPS=[],
    MONGO_API_NAME="visibility_test_libcommon",
)

env.Library(
    target="visibility_test_lib1",
    source=[
        "visibility_test_lib1.cpp"
    ],
    LIBDEPS_NO_INHERIT=[
        '$BUILD_DIR/third_party/shim_allocator',
    ],
    LIBDEPS=[],
    LIBDEPS_PRIVATE=[
        "visibility_test_libcommon",
    ],
    MONGO_API_NAME="visibility_test_lib1",
)

env.Library(
    target="visibility_test_lib2",
    source=[
        "visibility_test_lib2.cpp"
    ],
    LIBDEPS_NO_INHERIT=[
        '$BUILD_DIR/third_party/shim_allocator',
    ],
    LIBDEPS=[
        "visibility_test_lib1",
    ],
    LIBDEPS_PRIVATE=[
        "visibility_test_libcommon",
    ],
    MONGO_API_NAME="visibility_test_lib2",
)

visibility_test1 = env.Program(
    target="visibility_test1",
    source=[
        "visibility_test1.cpp",
    ],
    LIBDEPS_NO_INHERIT=[
        '$BUILD_DIR/third_party/shim_allocator',
    ],
    LIBDEPS=[
        "visibility_test_lib1",
    ],
    AIB_COMPONENT="visibility-test",
    AIB_COMPONENTS_EXTRA=[
        "unittests",
        "tests",
        "first-quarter-unittests",
    ],
)
env.RegisterTest("$UNITTEST_LIST", visibility_test1[0])

visibility_test2 = env.Program(
    target="visibility_test2",
    source=[
        "visibility_test2.cpp",
    ],
    LIBDEPS_NO_INHERIT=[
        '$BUILD_DIR/third_party/shim_allocator',
    ],
    LIBDEPS=[
        "visibility_test_lib2",
    ],
    AIB_COMPONENT="visibility-test",
    AIB_COMPONENTS_EXTRA=[
        "unittests",
        "tests",
        "first-quarter-unittests",
    ],
)
env.RegisterTest("$UNITTEST_LIST", visibility_test2[0])
