diff --git a/SConstruct b/SConstruct
index bdafd06..9350c29 100644
--- a/SConstruct
+++ b/SConstruct
@@ -363,6 +363,11 @@ add_option('use-system-asio',
nargs=0,
)
+add_option('use-system-mozjs',
+ help="use system version of mozjs",
+ nargs=0,
+)
+
add_option('use-system-intel_decimal128',
help='use system version of intel decimal128',
nargs=0,
@@ -2394,11 +2399,17 @@ def doConfigure(myenv):
if use_system_version_of_library("intel_decimal128"):
conf.FindSysLibDep("intel_decimal128", ["bid"])
+ if use_system_version_of_library("mozjs"):
+ conf.FindSysLibDep("mozjs", ["mozjs-38"])
+
if wiredtiger and use_system_version_of_library("wiredtiger"):
if not conf.CheckCXXHeader( "wiredtiger.h" ):
myenv.ConfError("Cannot find wiredtiger headers")
conf.FindSysLibDep("wiredtiger", ["wiredtiger"])
+ if use_system_version_of_library("asio"):
+ conf.CheckCXXHeader("asio.hpp")
+
conf.env.Append(
CPPDEFINES=[
("BOOST_THREAD_VERSION", "4"),
diff --git a/src/mongo/executor/connection_pool_asio.h b/src/mongo/executor/connection_pool_asio.h
index 2924331..54e5d53 100644
--- a/src/mongo/executor/connection_pool_asio.h
+++ b/src/mongo/executor/connection_pool_asio.h
@@ -35,6 +35,8 @@
#include "mongo/executor/network_interface_asio.h"
#include "mongo/stdx/mutex.h"
+#include <asio/steady_timer.hpp>
+
namespace mongo {
namespace executor {
namespace connection_pool_asio {
diff --git a/src/third_party/SConscript b/src/third_party/SConscript
index 5ff1ace..dd3b73f 100644
--- a/src/third_party/SConscript
+++ b/src/third_party/SConscript
@@ -41,13 +41,18 @@ if not use_system_version_of_library('zlib'):
# TODO: figure out if we want to offer system versions of mozjs. Mozilla
# hasn't offered a source tarball since 24, but in theory they could.
#
-#if not use_system_version_of_library('mozjs'):
-if True:
+if not use_system_version_of_library('mozjs'):
thirdPartyIncludePathList.append(
('mozjs', ['#/src/third_party/mozjs' + mozjsSuffix + '/include',
'#/src/third_party/mozjs' + mozjsSuffix + '/mongo_sources',
'#/src/third_party/mozjs' + mozjsSuffix + '/platform/' + env["TARGET_ARCH"] + "/" + env["TARGET_OS"] + "/include",
]))
+else:
+ thirdPartyIncludePathList.append(
+ ('mozjs', ['#/src/third_party/mozjs' + mozjsSuffix + '/mongo_sources', ]))
+ if use_system_version_of_library("mozjs"):
+ thirdPartyIncludePathList.append(
+ ('mozjs', ['/usr/include/mozjs' + mozjsSuffix, ]))
if not use_system_version_of_library('stemmer'):
thirdPartyIncludePathList.append(
@@ -198,13 +203,20 @@ zlibEnv.Library(
])
if usemozjs:
- mozjsEnv = env.Clone()
- mozjsEnv.SConscript('mozjs' + mozjsSuffix + '/SConscript', exports={'env' : mozjsEnv })
- mozjsEnv = mozjsEnv.Clone(
- LIBDEPS=[
- 'mozjs' + mozjsSuffix + '/mozjs',
- 'shim_zlib',
- ])
+ if use_system_version_of_library("mozjs"):
+ env.InjectThirdPartyIncludePaths(libraries=['mozjs'])
+ mozjsEnv = env.Clone(
+ SYSLIBDEPS=[
+ env['LIBDEPS_MOZJS_SYSLIBDEP'],
+ ])
+ else:
+ mozjsEnv = env.Clone()
+ mozjsEnv.SConscript('mozjs' + mozjsSuffix + '/SConscript', exports={'env' : mozjsEnv })
+ mozjsEnv = mozjsEnv.Clone(
+ LIBDEPS=[
+ 'mozjs' + mozjsSuffix + '/mozjs',
+ 'shim_zlib',
+ ])
mozjsEnv.Library(
target="shim_mozjs",
@@ -316,10 +328,7 @@ if wiredtiger:
])
if use_system_version_of_library("asio"):
- asioEnv = env.Clone(
- SYSLIBDEPS=[
- env['LIBDEPS_ASIO_SYSLIBDEP'],
- ])
+ asioEnv = env.Clone()
else:
asioEnv = env.Clone()
asioEnv.InjectThirdPartyIncludePaths(libraries=['asio'])