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 + 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'])