# -*- mode: python -*- Import( [ "env", "get_option", "jsEngine", "serverJs", ] ) env.Library( target="scripting_none", source=[ "engine_none.cpp", ], LIBDEPS=[ "scripting_common", ], ) if jsEngine: scriptingEnv = env.Clone() scriptingEnv.Append( CXXFLAGS=[ # See the /Zc:preprocessor comment in third_party/mozjs/SConscript "/Zc:preprocessor", "/wd5104", "/wd5105", ] if scriptingEnv.TargetOSIs("windows") else [ # TODO(SERVER-59992): Remove -Wno-class-memacces where possible. "-Wno-unknown-warning-option", "-Wno-class-memaccess", # TODO(SERVER-77205): Review and Possibly Remove '-Wno-deprecated' After Mozjs Update "-Wno-deprecated", ], ) scriptingEnv.InjectMozJS() if get_option("spider-monkey-dbg") == "on": scriptingEnv.Prepend( CPPDEFINES=[ "MONGO_SPIDERMONKEY_DBG", ] ) scriptingEnv.Library( target="scripting", source=[ "mozjs/base.cpp", "mozjs/bindata.cpp", "mozjs/bson.cpp", "mozjs/code.cpp", "mozjs/countdownlatch.cpp", "mozjs/cursor.cpp", "mozjs/cursor_handle.cpp", "mozjs/db.cpp", "mozjs/dbcollection.cpp", "mozjs/dbpointer.cpp", "mozjs/dbquery.cpp", "mozjs/dbref.cpp", "mozjs/engine.cpp", "mozjs/error.cpp", "mozjs/exception.cpp", "mozjs/global.cpp", "mozjs/idwrapper.cpp", "mozjs/implscope.cpp", "mozjs/internedstring.cpp", "mozjs/jscustomallocator.cpp", "mozjs/jsstringwrapper.cpp", "mozjs/jsthread.cpp", "mozjs/maxkey.cpp", "mozjs/minkey.cpp", "mozjs/module_loader.cpp", "mozjs/mongo.cpp", "mozjs/mongohelpers.cpp", "mozjs/mongohelpers_js.cpp", "mozjs/nativefunction.cpp", "mozjs/numberdecimal.cpp", "mozjs/numberint.cpp", "mozjs/numberlong.cpp", "mozjs/object.cpp", "mozjs/objectwrapper.cpp", "mozjs/oid.cpp", "mozjs/PosixNSPR.cpp", "mozjs/proxyscope.cpp", "mozjs/regexp.cpp", "mozjs/session.cpp", "mozjs/status.cpp", "mozjs/timestamp.cpp", "mozjs/uri.cpp", "mozjs/valuereader.cpp", "mozjs/valuewriter.cpp", "mozjs/engine_gen.cpp", "mozjs/scripting_util_gen.cpp", ], LIBDEPS=[ "scripting_common", ], LIBDEPS_PRIVATE=[ "$BUILD_DIR/mongo/client/clientdriver_network", "$BUILD_DIR/mongo/db/auth/security_token_auth", "$BUILD_DIR/mongo/db/service_context", "$BUILD_DIR/mongo/util/concurrency/spin_lock", "$BUILD_DIR/third_party/mozjs/mozjs", ], ) scriptingEnv.CppUnitTest( target="scripting_mozjs_test", source=[ "mozjs/asan_handles_test.cpp", "mozjs/module_loader_test.cpp", ], LIBDEPS=[ "bson_template_evaluator", "scripting", ], ) else: env.Library( target="scripting", source=[ "scripting_none.cpp", ], LIBDEPS=[ "scripting_common", ], LIBDEPS_PRIVATE=[ "scripting_none", ], ) env.Library( target="scripting_server", source=[ "scripting_server.cpp", ], LIBDEPS=[ "scripting" if serverJs else "scripting_none", ], ) env.CppUnitTest( target="scripting_test", source=[ "bson_template_evaluator_test.cpp", "deadline_monitor_test.cpp", ], LIBDEPS=[ "$BUILD_DIR/mongo/db/concurrency/lock_manager", "scripting_common", ], )