# -*- mode: python -*-

Import("env")
Import("icuEnabled")

env = env.Clone()

env.InjectThirdPartyIncludePaths("icu")

env.Append(
    CPPDEFINES=[
        'U_USING_ICU_NAMESPACE=0',
    ],
)

env.Library(
    target="collator_interface",
    source=[
        "collation_spec.cpp",
    ],
    LIBDEPS=[
    ],
)

env.CppUnitTest(
    target="collation_spec_test",
    source=[
        "collation_spec_test.cpp",
    ],
    LIBDEPS=[
        "collator_interface",
    ],
)

env.Library(
    target="collation_serializer",
    source=[
        "collation_serializer.cpp",
    ],
    LIBDEPS=[
        "$BUILD_DIR/mongo/base",
        "collator_interface",
    ],
)

env.CppUnitTest(
    target="collation_serializer_test",
    source=[
        "collation_serializer_test.cpp",
    ],
    LIBDEPS=[
        "collation_serializer",
        "collator_interface_mock",
    ],
)

env.Library(
    target="collator_interface_mock",
    source=[
        "collator_interface_mock.cpp",
    ],
    LIBDEPS=[
        "$BUILD_DIR/mongo/base",
        "collator_interface",
    ],
)

env.CppUnitTest(
    target="collator_interface_mock_test",
    source=[
        "collator_interface_mock_test.cpp",
    ],
    LIBDEPS=[
        "collator_interface_mock",
    ],
)

env.Library(
    target="collation_index_key",
    source=[
        "collation_index_key.cpp",
    ],
    LIBDEPS=[
        "$BUILD_DIR/mongo/base",
        "collator_interface",
    ],
)

env.CppUnitTest(
    target="collation_index_key_test",
    source=[
        "collation_index_key_test.cpp",
    ],
    LIBDEPS=[
        "collation_index_key",
        "collator_interface_mock",
    ],
)

env.Library(
    target="collator_factory_interface",
    source=[
        "collator_factory_interface.cpp",
    ],
    LIBDEPS=[
        "$BUILD_DIR/mongo/base",
        "$BUILD_DIR/mongo/db/service_context",
        "collator_interface",
    ],
)

env.Library(
    target="collator_factory_mock",
    source=[
        "collator_factory_mock.cpp",
    ],
    LIBDEPS=[
        "collator_factory_interface",
        "collator_interface_mock",
    ],
)

env.CppUnitTest(
    target="collator_factory_mock_test",
    source=[
        "collator_factory_mock_test.cpp",
    ],
    LIBDEPS=[
        "collator_factory_mock",
    ],
)

if icuEnabled:
    env.Library(
        target="collator_icu",
        source=[
            "collator_factory_icu.cpp",
            "collator_interface_icu.cpp",
        ],
        LIBDEPS=[
            "$BUILD_DIR/mongo/base",
            "$BUILD_DIR/mongo/bson/util/bson_extract",
            "$BUILD_DIR/third_party/shim_icu",
            "collator_interface",
        ],
    )

    env.CppUnitTest(
        target="collator_interface_icu_test",
        source=[
            "collator_interface_icu_test.cpp",
        ],
        LIBDEPS=[
            "collator_icu",
        ],
    )

    env.CppUnitTest(
        target="collator_factory_icu_test",
        source=[
            "collator_factory_icu_test.cpp",
        ],
        LIBDEPS=[
            "collator_icu",
        ],
    )
