summaryrefslogtreecommitdiff
path: root/src/mongo/db/query/collation
diff options
context:
space:
mode:
authorJ. Rassi <rassi@10gen.com>2016-05-18 17:54:51 -0400
committerJ. Rassi <rassi@10gen.com>2016-05-20 10:23:26 -0400
commit770e967c7f9995b71af5ec9b45204d41b511f1ac (patch)
tree131f911f98705b2957eb7b08961071990dc0eb29 /src/mongo/db/query/collation
parent17fe3ba0b0e2300b87ce8987551e5eb7fbb9ef3a (diff)
downloadmongo-770e967c7f9995b71af5ec9b45204d41b511f1ac.tar.gz
SERVER-24195 Make ICU defines consistent btwn. ICU and client sources
Diffstat (limited to 'src/mongo/db/query/collation')
-rw-r--r--src/mongo/db/query/collation/SConscript71
-rw-r--r--src/mongo/db/query/collation/collator_factory_icu.cpp2
-rw-r--r--src/mongo/db/query/collation/collator_interface_icu.cpp1
-rw-r--r--src/mongo/db/query/collation/collator_interface_icu.h5
4 files changed, 47 insertions, 32 deletions
diff --git a/src/mongo/db/query/collation/SConscript b/src/mongo/db/query/collation/SConscript
index 6569cfb832a..ff2fd28e387 100644
--- a/src/mongo/db/query/collation/SConscript
+++ b/src/mongo/db/query/collation/SConscript
@@ -6,14 +6,6 @@ Import("use_system_version_of_library")
env = env.Clone()
-env.InjectThirdPartyIncludePaths("icu")
-
-env.Append(
- CPPDEFINES=[
- 'U_USING_ICU_NAMESPACE=0',
- ],
-)
-
env.Library(
target="collator_interface",
source=[
@@ -131,8 +123,30 @@ env.CppUnitTest(
],
)
+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",
+ ],
+)
+
+icuEnv = env.Clone()
+
if not use_system_version_of_library("icu"):
- generateICUInit = env.Command(
+ generateICUInit = icuEnv.Command(
target="icu_init.cpp",
source=[
"generate_icu_init_cpp.py",
@@ -143,9 +157,24 @@ if not use_system_version_of_library("icu"):
action="$PYTHON ${SOURCES[0]} -o $TARGET -i ${SOURCES[1]}",
)
- env.Alias("generated-sources", generateICUInit)
+ icuEnv.Alias("generated-sources", generateICUInit)
-env.Library(
+ icuEnv.InjectThirdPartyIncludePaths("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_ONLY_COLLATION", 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",
@@ -159,23 +188,3 @@ env.Library(
"collator_factory_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",
- ],
-)
diff --git a/src/mongo/db/query/collation/collator_factory_icu.cpp b/src/mongo/db/query/collation/collator_factory_icu.cpp
index 395c6300a8e..c4088b38cda 100644
--- a/src/mongo/db/query/collation/collator_factory_icu.cpp
+++ b/src/mongo/db/query/collation/collator_factory_icu.cpp
@@ -30,7 +30,9 @@
#include "mongo/db/query/collation/collator_factory_icu.h"
+#include <unicode/coll.h>
#include <unicode/errorcode.h>
+#include <unicode/ucol.h>
#include "mongo/bson/bsonobj.h"
#include "mongo/bson/util/bson_extract.h"
diff --git a/src/mongo/db/query/collation/collator_interface_icu.cpp b/src/mongo/db/query/collation/collator_interface_icu.cpp
index 08c5f74c900..12498d12712 100644
--- a/src/mongo/db/query/collation/collator_interface_icu.cpp
+++ b/src/mongo/db/query/collation/collator_interface_icu.cpp
@@ -30,6 +30,7 @@
#include "mongo/db/query/collation/collator_interface_icu.h"
+#include <unicode/coll.h>
#include <unicode/sortkey.h>
#include "mongo/stdx/memory.h"
diff --git a/src/mongo/db/query/collation/collator_interface_icu.h b/src/mongo/db/query/collation/collator_interface_icu.h
index 76074628c87..9bb83824891 100644
--- a/src/mongo/db/query/collation/collator_interface_icu.h
+++ b/src/mongo/db/query/collation/collator_interface_icu.h
@@ -31,7 +31,10 @@
#include "mongo/db/query/collation/collator_interface.h"
#include <memory>
-#include <unicode/coll.h>
+
+namespace icu {
+class Collator;
+} // namespace icu
namespace mongo {