summaryrefslogtreecommitdiff
path: root/SConstruct
diff options
context:
space:
mode:
authorDaniel Moody <daniel.moody@mongodb.com>2022-10-03 09:18:19 -0500
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2023-01-30 23:50:54 +0000
commitfbea56b2b78c7961a95a8b3bfd2725bbac6cb5f6 (patch)
tree087baf6101cdb00e654ef0cdb0f72cdc441a42a7 /SConstruct
parent2555a820ad0fb0e5216b8cc1575936355d7fdf77 (diff)
downloadmongo-fbea56b2b78c7961a95a8b3bfd2725bbac6cb5f6.tar.gz
SERVER-68365 integrate third_party grpc 1.39.1 into the build
Diffstat (limited to 'SConstruct')
-rw-r--r--SConstruct56
1 files changed, 55 insertions, 1 deletions
diff --git a/SConstruct b/SConstruct
index ad662ece3be..d235bc9ef80 100644
--- a/SConstruct
+++ b/SConstruct
@@ -467,11 +467,13 @@ for pack in [
('boost', ),
('fmt', ),
('google-benchmark', 'Google benchmark'),
+ ('grpc', ),
('icu', 'ICU'),
('intel_decimal128', 'intel decimal128'),
('libbson', ),
('libmongocrypt', ),
('pcre2', ),
+ ('protobuf', "Protocol Buffers"),
('snappy', ),
('stemmer', ),
('tcmalloc', ),
@@ -836,6 +838,14 @@ def variable_shlex_converter(val):
return shlex.split(val, posix=(parse_mode == 'posix'))
+# Setup the command-line variables
+def where_is_converter(val):
+ path = WhereIs(val)
+ if path:
+ return os.path.abspath(path)
+ return val
+
+
def variable_arch_converter(val):
arches = {
'x86_64': 'x86_64',
@@ -1388,6 +1398,20 @@ env_vars.Add(
)
env_vars.Add(
+ 'PROTOC',
+ default="$$PROTOC_VAR_GEN",
+ help='Path to protobuf compiler.',
+ converter=where_is_converter,
+)
+
+env_vars.Add(
+ 'PROTOC_GRPC_PLUGIN',
+ default="$$PROTOC_GRPC_PLUGIN_GEN",
+ help='Path to protobuf compiler grpc plugin.',
+ converter=where_is_converter,
+)
+
+env_vars.Add(
'SPLIT_DWARF',
help=
'Set the boolean (auto, on/off true/false 1/0) to enable gsplit-dwarf (non-Windows). Incompatible with DWARF_VERSION=5',
@@ -2136,9 +2160,26 @@ env['BUILDERS']['SharedArchive'] = SCons.Builder.Builder(
src_suffix=env['BUILDERS']['SharedLibrary'].src_suffix,
)
-# Teach builders how to build idl files
+# Teach object builders how to build underlying generated types
for builder in ['SharedObject', 'StaticObject']:
env['BUILDERS'][builder].add_src_builder("Idlc")
+ env['BUILDERS'][builder].add_src_builder("Protoc")
+
+
+# These allow delayed evaluation of the AIB values for the default values of
+# the corresponding command line variables
+def protoc_var_gen(env, target, source, for_signature):
+ return env.File("$DESTDIR/$PREFIX_BINDIR/protobuf_compiler$PROGSUFFIX")
+
+
+env['PROTOC_VAR_GEN'] = protoc_var_gen
+
+
+def protoc_grpc_plugin_var_gen(env, target, source, for_signature):
+ return env.File("$DESTDIR/$PREFIX_BINDIR/grpc_cpp_plugin$PROGSUFFIX")
+
+
+env['PROTOC_GRPC_PLUGIN_GEN'] = protoc_grpc_plugin_var_gen
if link_model.startswith("dynamic"):
@@ -5079,6 +5120,16 @@ def doConfigure(myenv):
[boostlib + suffix for suffix in boostSuffixList],
language='C++',
)
+
+ if use_system_version_of_library('protobuf'):
+ conf.FindSysLibDep("protobuf", ["protobuf"])
+ conf.FindSysLibDep("protoc", ["protoc"])
+
+ if use_system_version_of_library('grpc'):
+ conf.FindSysLibDep("grpc", ["grpc"])
+ conf.FindSysLibDep("grpcxx", ["grpc++"])
+ conf.FindSysLibDep("grpcxx_reflection", ["grpc++_reflection"])
+
if posix_system:
conf.env.SetConfigHeaderDefine("MONGO_CONFIG_HAVE_HEADER_UNISTD_H")
conf.CheckLib('rt')
@@ -5487,6 +5538,7 @@ if get_option('ninja') != 'disabled':
env.AppendUnique(CCFLAGS=["-fdiagnostics-color"])
ninja_builder = Tool("ninja")
+
env["NINJA_BUILDDIR"] = env.Dir("$NINJA_BUILDDIR")
ninja_builder.generate(env)
@@ -5729,6 +5781,8 @@ if get_option('ninja') != 'disabled':
env['NINJA_GENERATED_SOURCE_ALIAS_NAME'] = 'generated-sources'
+env.Tool('protobuf_compiler')
+
gdb_index = env.get('GDB_INDEX')
if gdb_index == 'auto' and link_model == 'dynamic':
gdb_index = True