diff options
author | Daniel Moody <daniel.moody@mongodb.com> | 2022-10-03 09:18:19 -0500 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2023-01-30 23:50:54 +0000 |
commit | fbea56b2b78c7961a95a8b3bfd2725bbac6cb5f6 (patch) | |
tree | 087baf6101cdb00e654ef0cdb0f72cdc441a42a7 /SConstruct | |
parent | 2555a820ad0fb0e5216b8cc1575936355d7fdf77 (diff) | |
download | mongo-fbea56b2b78c7961a95a8b3bfd2725bbac6cb5f6.tar.gz |
SERVER-68365 integrate third_party grpc 1.39.1 into the build
Diffstat (limited to 'SConstruct')
-rw-r--r-- | SConstruct | 56 |
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 |