# -*- mode: python -*- Import("env") Import("use_system_version_of_library") env = env.Clone() env.Library( target="collator_interface", source=[ "collation_index_key.cpp", "collation_spec.cpp", "collator_interface.cpp", ], LIBDEPS=[ "$BUILD_DIR/mongo/base", ], ) env.Library( target="collator_interface_mock", source=[ "collator_interface_mock.cpp", ], LIBDEPS=[ "collator_interface", ], ) env.Library( target="collator_factory_interface", source=[ "collator_factory_interface.cpp", ], LIBDEPS=[ "$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.Library( target="collator_factory_icu", source=[ "collator_factory_icu_decoration.cpp", ], LIBDEPS=[ "collator_icu", ], ) # The collator_icu library and the collator_interface_icu_test unit tests need an environment which # has access to the third-party ICU headers. icuEnv = env.Clone() if not use_system_version_of_library("icu"): icuEnv.InjectThirdParty("icu") # Since we are injecting the third-party ICU headers, we must also copy the same defines that we # use to configure ICU when building ICU sources. See comment in # src/third_party/icu4c-57.1/source/SConscript. icuEnv.Append( CPPDEFINES=[ ('UCONFIG_NO_BREAK_ITERATION', 1), ('UCONFIG_NO_FORMATTING', 1), ('UCONFIG_NO_TRANSLITERATION', 1), ('UCONFIG_NO_REGULAR_EXPRESSIONS', 1), ("U_CHARSET_IS_UTF8", 1), ("U_DISABLE_RENAMING", 1), ("U_STATIC_IMPLEMENTATION", 1), ("U_USING_ICU_NAMESPACE", 0), ], ) icuEnv.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/mongo/util/icu_init", "$BUILD_DIR/third_party/shim_icu", "collator_factory_interface", ], ) icuEnv.CppUnitTest( target="db_query_collation_test", source=[ "collation_bson_comparison_test.cpp", "collation_index_key_test.cpp", "collation_spec_test.cpp", "collator_factory_icu_locales_test.cpp", "collator_factory_icu_test.cpp", "collator_factory_mock_test.cpp", "collator_interface_icu_test.cpp", "collator_interface_mock_test.cpp", ], LIBDEPS=[ '$BUILD_DIR/mongo/db/storage/key_string', "collator_factory_mock", "collator_icu", "collator_interface", "collator_interface_mock", ], )