From a920ce544c6c343abaed1c1b7eefd3baa3f9dd0d Mon Sep 17 00:00:00 2001 From: Daniel Moody Date: Mon, 3 Oct 2022 09:18:19 -0500 Subject: SERVER-68365 finishing up integration --- SConstruct | 16 + site_scons/site_tools/ninja.py | 35 +- site_scons/site_tools/protobuf_compiler.py | 370 ++++++ src/third_party/SConscript | 29 +- src/third_party/abseil-cpp-master/SConscript | 1197 +++++++++++++++++++- .../absl/flags/internal/commandlineflag.cc | 26 + .../abseil-cpp-master/scripts/lib_targets.txt | 61 + .../scripts/parse_lib_from_ninja.py | 52 + src/third_party/cares/SConscript | 95 ++ src/third_party/gperftools/SConscript | 6 +- src/third_party/grpc/SConscript | 918 +++++++++++++++ src/third_party/grpc/greeter_server.h | 46 + src/third_party/grpc/grpc_source_test.cpp | 59 + src/third_party/protobuf/SConscript | 247 ++++ src/third_party/re2/SConscript | 47 + src/third_party/unwind/SConscript | 3 +- src/third_party/zlib/SConscript | 3 +- 17 files changed, 3174 insertions(+), 36 deletions(-) create mode 100644 site_scons/site_tools/protobuf_compiler.py create mode 100644 src/third_party/abseil-cpp-master/abseil-cpp/absl/flags/internal/commandlineflag.cc create mode 100644 src/third_party/abseil-cpp-master/scripts/lib_targets.txt create mode 100644 src/third_party/abseil-cpp-master/scripts/parse_lib_from_ninja.py create mode 100644 src/third_party/cares/SConscript create mode 100644 src/third_party/grpc/SConscript create mode 100644 src/third_party/grpc/greeter_server.h create mode 100644 src/third_party/grpc/grpc_source_test.cpp create mode 100644 src/third_party/protobuf/SConscript create mode 100644 src/third_party/re2/SConscript diff --git a/SConstruct b/SConstruct index 1269dacbdc8..e040713d8ed 100644 --- a/SConstruct +++ b/SConstruct @@ -1328,6 +1328,18 @@ env_vars.Add( help='Path to the strip utility (non-darwin platforms probably use OBJCOPY for this)', ) +env_vars.Add( + 'PROTOC', + default="$DESTDIR/bin/protobuf_compiler$PROGSUFFIX", + help='Path to protobuf compiler.', +) + +env_vars.Add( + 'PROTOC_GRPC_PLUGIN', + default="$DESTDIR/bin/grpc_cpp_plugin$PROGSUFFIX", + help='Path to protobuf compiler grpc plugin.', +) + env_vars.Add( 'SPLIT_DWARF', help='Set the boolean (auto, on/off true/false 1/0) to enable gsplit-dwarf (non-Windows).', @@ -2008,6 +2020,7 @@ env['BUILDERS']['SharedArchive'] = SCons.Builder.Builder( # Teach builders how to build idl files for builder in ['SharedObject', 'StaticObject']: env['BUILDERS'][builder].add_src_builder("Idlc") + env['BUILDERS'][builder].add_src_builder("Protoc") if link_model.startswith("dynamic"): @@ -5307,6 +5320,7 @@ if get_option('ninja') != 'disabled': .format(env['ICECREAM_VERSION'])) ninja_builder = Tool("ninja") + env["NINJA_BUILDDIR"] = env.Dir("$NINJA_BUILDDIR") ninja_builder.generate(env) @@ -5527,6 +5541,8 @@ if get_option('ninja') != 'disabled': env['NINJA_GENERATED_SOURCE_ALIAS_NAME'] = 'generated-sources' +env.Tool('protobuf_compiler') + if get_option('separate-debug') == "on" or env.TargetOSIs("windows"): # The current ninja builder can't handle --separate-debug on non-Windows platforms diff --git a/site_scons/site_tools/ninja.py b/site_scons/site_tools/ninja.py index a55205fc612..9029168fe02 100644 --- a/site_scons/site_tools/ninja.py +++ b/site_scons/site_tools/ninja.py @@ -810,15 +810,21 @@ class NinjaState: # cycle. if (generated_source_files and check_generated_source_deps(build)): - # Make all non-generated source targets depend on - # _generated_sources. We use order_only for generated - # sources so that we don't rebuild the world if one - # generated source was rebuilt. We just need to make - # sure that all of these sources are generated before - # other builds. - order_only = build.get("order_only", []) - order_only.append(generated_sources_alias) - build["order_only"] = order_only + depends_on_gen_source = build['rule'] != 'INSTALL' + if build['outputs']: + if self.env.Entry(build['outputs'][0]).get_build_env().get('NINJA_GENSOURCE_INDEPENDENT'): + depends_on_gen_source = False + + if depends_on_gen_source: + # Make all non-generated source targets depend on + # _generated_sources. We use order_only for generated + # sources so that we don't rebuild the world if one + # generated source was rebuilt. We just need to make + # sure that all of these sources are generated before + # other builds. + order_only = build.get("order_only", []) + order_only.append(generated_sources_alias) + build["order_only"] = order_only if "order_only" in build: build["order_only"].sort() @@ -1134,8 +1140,8 @@ def gen_get_response_file_command(env, rule, tool, tool_is_dynamic=False, custom # Add 1 so we always keep the actual tool inside of cmd tool_idx = cmd_list.index(tool_command) + 1 except ValueError: - raise Exception("Could not find tool {} in {} generated from {}".format( - tool, cmd_list, get_comstr(env, action, targets, sources))) + raise Exception("Could not find tool {}({}) in {} generated from {}".format( + tool, tool_command, cmd_list, get_comstr(env, action, targets, sources))) cmd, rsp_content = cmd_list[:tool_idx], cmd_list[tool_idx:] rsp_content = " ".join(rsp_content) @@ -1360,7 +1366,7 @@ def register_custom_rule_mapping(env, pre_subst_string, rule): def register_custom_rule(env, rule, command, description="", deps=None, pool=None, - use_depfile=False, use_response_file=False, response_file_content="$rspc", + use_depfile=False, depfile=None, use_response_file=False, response_file_content="$rspc", restat=False): """Allows specification of Ninja rules from inside SCons files.""" rule_obj = { @@ -1369,7 +1375,10 @@ def register_custom_rule(env, rule, command, description="", deps=None, pool=Non } if use_depfile: - rule_obj["depfile"] = os.path.join(get_path(env['NINJA_BUILDDIR']), '$out.depfile') + if depfile: + rule_obj["depfile"] = depfile + else: + rule_obj["depfile"] = os.path.join(get_path(env['NINJA_BUILDDIR']), '$out.depfile') if deps is not None: rule_obj["deps"] = deps diff --git a/site_scons/site_tools/protobuf_compiler.py b/site_scons/site_tools/protobuf_compiler.py new file mode 100644 index 00000000000..3a524ba671b --- /dev/null +++ b/site_scons/site_tools/protobuf_compiler.py @@ -0,0 +1,370 @@ +# Copyright 2022 MongoDB Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY +# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +"""Protobuf Compiler Scons Tool.""" + +import os +import subprocess +import tempfile +import contextlib +import SCons + +# context manager copied from +# https://stackoverflow.com/a/57701186/1644736 +@contextlib.contextmanager +def temporary_filename(suffix=None): + """Context that introduces a temporary file. + + Creates a temporary file, yields its name, and upon context exit, deletes it. + (In contrast, tempfile.NamedTemporaryFile() provides a 'file' object and + deletes the file as soon as that file object is closed, so the temporary file + cannot be safely re-opened by another library or process.) + + Args: + suffix: desired filename extension (e.g. '.mp4'). + + Yields: + The name of the temporary file. + """ + try: + f = tempfile.NamedTemporaryFile(suffix=suffix, delete=False) + tmp_name = f.name + f.close() + yield tmp_name + finally: + os.unlink(tmp_name) + +def get_gen_type_and_dir(env, gen_type): + # Utility function for parsing out the gen type and desired gen dir + if SCons.Util.is_String(gen_type): + gen_out_dir = "." + elif SCons.Util.is_List(gen_type) and len(gen_type) == 1: + gen_type = gen_type[0] + gen_out_dir = "." + elif SCons.Util.is_List(gen_type) and len(gen_type) == 2: + gen_out_dir = gen_type[1] + gen_type = gen_type[0] + else: + raise ValueError(f"Invalid generation type {gen_type}, must be string of gen type, or list of gen type and gen out dir.") + return (gen_type, gen_out_dir) + +def protoc_emitter(target, source, env): + + base_file_name = os.path.split(SCons.Util.splitext(str(target[0]))[0])[1] + new_targets = [] + + for gen_type in env.subst_list('$PROTOC_GEN_TYPES', target=target, source=source): + + # Check for valid requested gen type. + gen_type, gen_out_dir = get_gen_type_and_dir(env, gen_type) + if gen_type not in env['_PROTOC_SUPPORTED_GEN_TYPES']: + raise ValueError(f"Requested protoc gen output of {gen_type}, but only {env['_PROTOC_SUPPORTED_GEN_TYPES']} are currenlty supported.") + + # Create the targets by extensions list for this type in the desired gen dir. + exts = env['_PROTOC_SUPPORTED_GEN_TYPES'][gen_type] + new_targets += [env.Dir(gen_out_dir).File(f"{base_file_name}{ext}") for ext in exts] + + # Create targets for any listed plugins. + plugins = env.get('PROTOC_PLUGINS', []) + for name in plugins: + out_dir = plugins[name].get('gen_out', '.') + exts = plugins[name].get('exts', []) + new_targets += [env.Dir(out_dir).File(f"{base_file_name}{ext}") for ext in exts] + + # Setup the dependency file. + dep_file = env.File(os.path.split(source[0].get_path())[1]+".protodeps") + new_targets += [dep_file] + + env.Alias("generated-sources", new_targets) + + return new_targets, source + +def protoc_scanner(node, env, path): + deps = [] + + # Need to depend on the compiler and any plugins. + plugins = env.get('PROTOC_PLUGINS', {}) + for name in plugins: + deps.append(env.File(env.subst(plugins[name].get('plugin')))) + deps.append(env.File("$PROTOC")) + + # For scanning the proto dependencies from within the proto files themselves, + # there are two ways (with out writing a custom reader) to do it. One is with the + # output depends file and other other is with a tool the protobuf project supplies. + # The problem with the depends files, is you must first run the command before you can + # get the dependencies, which has some downsides: + # https://scons.org/doc/4.4.0/HTML/scons-user.html#idp105548894482512 + # + # Using the reader provided by protobuf project works, but you must have access to the + # proto which gives this functionality. + # + # Scanners will run multiple times during the building phase, revisiting as new dependencies + # from the original scan are completed. Here we will use both methods, because in the case + # you have an existing dep file you can get more dependency information on the first scan. + if str(node).endswith('.protodeps'): + if os.path.exists(node.get_path()): + # This code was mostly ripped from SCons ParseDepends function + try: + with open(node.get_path(), 'r') as fp: + lines = SCons.Util.LogicalLines(fp).readlines() + except IOError: + pass + else: + lines = [l for l in lines if l[0] != '#'] + for line in lines: + try: + target, depends = line.split(':', 1) + except (AttributeError, ValueError): + # Throws AttributeError if line isn't a string. Can throw + # ValueError if line doesn't split into two or more elements. + pass + else: + deps += [env.File(d) for d in depends.split()] + + if os.path.exists(env.File("$PROTOC").abspath) and os.path.exists(env.File('$PROTOC_DESCRIPTOR_PROTO').abspath): + + # First we generate a the command line so we can extract the proto_paths as they + # used for finding imported protos. Then we run the command and output the + # descriptor set to a file for use later. The descriptor set is output as binary data + # intended to be read in by other protos. In this case the second command does that + # and extracts the dependencies. + source = node.sources[0] + with temporary_filename() as temp_filename: + cmd_list, _, _ = env['BUILDERS']['Protoc'].action.process([node], [source], env, executor=None) + + paths = [str(proto_path) for proto_path in cmd_list[0] if str(proto_path).startswith('--proto_path=')] + cmd = [env.File("$PROTOC").path] + paths + ['--include_imports', f'--descriptor_set_out={temp_filename}', source.srcnode().path] + + subprocess.run(cmd) + with open(temp_filename) as f: + cmd = [env.File("$PROTOC").path] + paths + ['--decode=google.protobuf.FileDescriptorSet', str(env.File('$PROTOC_DESCRIPTOR_PROTO'))] + + p = subprocess.run(cmd, stdin=f, capture_output=True) + for line in p.stdout.decode().splitlines(): + if line.startswith(" name: \""): + file = line[len(" name: \""):-1] + for path in paths: + proto_file = os.path.join(path.replace('--proto_path=', ''), file) + if os.path.exists(proto_file) and proto_file != str(source.srcnode()): + dep_node = env.File(proto_file) + if dep_node not in deps: + deps += [env.File(proto_file)] + break + + return sorted(deps, key=lambda dep: dep.path) + +protoc_scanner = SCons.Scanner.Scanner(function=protoc_scanner) + +def get_cmd_line_dirs(env, target, source): + source_dir = os.path.dirname(source[0].srcnode().path) + target_dir = os.path.dirname(target[0].get_path()) + + return target_dir, source_dir + + +def gen_types(source, target, env, for_signature): + # This subst function is for generating the command line --proto_path and desired + # --TYPE_out options. + cmd_flags = "" + gen_types = env.subst_list('$PROTOC_GEN_TYPES', target=target, source=source) + if gen_types: + + for gen_type in gen_types: + + gen_type, gen_out_dir = get_gen_type_and_dir(env,gen_type) + exts = tuple(env['_PROTOC_SUPPORTED_GEN_TYPES'][gen_type]) + + gen_targets = [t for t in target if str(t).endswith(exts)] + if gen_targets: + out_dir, proto_path = get_cmd_line_dirs(env, gen_targets, source) + cmd_flags += f" --proto_path={proto_path} --{gen_type}_out={out_dir}" + + # This depends out only works if there is at least one gen out + for t in target: + if str(t).endswith('.protodeps'): + cmd_flags = f'--dependency_out={t} ' + cmd_flags + + return cmd_flags + +def gen_types_str(source, target, env, for_signature): + # This generates the types from the list of types requested by the user + # for the pretty build output message. Any invalid types are caught in the emitter. + gen_types = [] + for gen_type in env.subst_list('$PROTOC_GEN_TYPES', target=target, source=source): + gen_type, gen_out_dir = get_gen_type_and_dir(env, gen_type) + gen_types += [str(gen_type)] + + return ', '.join(gen_types) + +def gen_plugins(source, target, env, for_signature): + # Plugins are user customizable ways to modify the generation and generate + # additional files if desired. This extracts the desired plugins from the environment + # and formats them to be suitable for the command line. + plugins_cmds = [] + plugins = env.get('PROTOC_PLUGINS', []) + + for name in plugins: + plugin = plugins[name].get('plugin') + exts = plugins[name].get('exts') + if plugin and exts: + out_dir = plugins[name].get('gen_out', '.') + options = plugins[name].get('options', []) + + # A custom out command for this plugin, options to the plugin can + # be passed here with colon separating + cmd_line = f'--{name}_out=' + for opt in options: + cmd_line += f'{opt}:' + + gen_targets = [t for t in target if str(t).endswith(tuple(exts))] + if gen_targets: + out_dir, proto_path = get_cmd_line_dirs(env, gen_targets, source) + cmd_line += out_dir + + # specify the plugin binary + cmd_line += f' --proto_path={proto_path} --plugin=protoc-gen-{name}={env.File(plugin).path}' + plugins_cmds += [cmd_line] + else: + print(f"Failed to process PROTOC plugin, need valid plugin and extensions {name}: {plugins[name]}") + + gen_types = env.subst_list('$PROTOC_GEN_TYPES', target=target, source=source) + # In the case the command did not include any standard gen types, we add a command line + # entry so the depends file is still written + if not gen_types: + for t in target: + if str(t).endswith(".protodeps"): + plugins_cmds += [f'--dependency_out={t}'] + + return ' '.join(plugins_cmds) + +def generate(env): + + ProtocBuilder = SCons.Builder.Builder( + action=SCons.Action.Action("$PROTOCCOM", "$PROTOCCOMSTR"), + emitter=protoc_emitter, + src_suffix=".proto", + suffix=".cc", + target_scanner=protoc_scanner, + ) + + env.Append(SCANNERS=protoc_scanner) + env["BUILDERS"]["Protoc"] = ProtocBuilder + + env["PROTOC"] = env.get('PROTOC', env.WhereIs('protoc')) + env['PROTOCCOM'] = "$PROTOC $_PROTOCPATHS $_PROTOC_GEN_TYPES $_PROTOC_PLUGINS $PROTOCFLAGS $SOURCE" + env['PROTOCCOMSTR'] = ("Generating $_PROTOC_GEN_TYPES_STR Protocol Buffers from ${SOURCE}" + if not env.Verbose() else "") + + # Internal subst function vars + env["_PROTOC_GEN_TYPES"] = gen_types + env['_PROTOC_GEN_TYPES_STR'] = gen_types_str + env['_PROTOC_PLUGINS'] = gen_plugins + env['_PROTOCPATHS'] = '${_concat(PROTOPATH_PREFIX, PROTOCPATHS, PROTOPATH_SUFFIX, __env__)}' + + env['PROTOPATH_PREFIX'] = '--proto_path=' + env['PROTOPATH_SUFFIX'] = '' + + # Somewhat safe cross tool dependency + if hasattr(env, 'NinjaGenResponseFileProvider'): + + env.NinjaRule( + rule="PROTO", + command='$env$cmd', + description="Generating protocol buffers $out", + deps="gcc", + use_depfile=True, + depfile="$protodep", + ) + + def gen_protobuf_provider(env, rule, tool): + + def protobuf_provider(env, node, action, targets, sources, executor=None): + provided_rule, variables, tool_command = env.NinjaGetGenericShellCommand(node, action, targets, sources, executor) + + + t_dirs = [os.path.dirname(t.get_path()) for t in targets] + print(t_dirs) + if len(set(t_dirs)) > 1: + raise SCons.Errors.BuildError(node=node, errstr="Due to limitations with ninja tool and using phonies for multiple targets, protoc must generate all generated output for a single command to the same directory.") + for t in targets: + if str(t).endswith('.protodeps'): + variables['protodep'] = str(t) + return "PROTO", variables, tool_command + + return protobuf_provider + + def robust_rule_mapping(var, rule, tool): + provider = gen_protobuf_provider(env, rule, tool) + env.NinjaRuleMapping("${" + var + "}", provider) + env.NinjaRuleMapping(env[var], provider) + + robust_rule_mapping("PROTOCCOM", "PROTO", env.File("$PROTOC").path) + + # TODO create variables to support other generation types, might require a more flexible + # builder setup + env["_PROTOC_SUPPORTED_GEN_TYPES"] = { + 'cpp': ['.pb.cc', '.pb.h'] + } + + # User facing customizable variables + + # PROTOC_GEN_TYPES can be a list of strings, where + # each string is the gen type desired, or it could + # a list of lists, where each list contains first + # the type, the the desired output dir, if no + # dir is specified the scons will build it at the location + # of the source proto file, accounting for variant + # dirs. e.g. + # env["PROTOC_GEN_TYPES"] = [ + # 'cpp', + # ['java', "$BUILD_DIR/java_gen_source"] + # ] + env["PROTOC_GEN_TYPES"] = [] + + # PROTOC_PLUGINS allows customization of the plugins + # for the command lines. It should be a dict of dicts where + # the keys are the names of the plugins, and the plugin must + # specify the plugin binary file path and a list of extensions + # to use on the output files. Optionally you can specify a list + # of options to pass the plugin and a gen out directory. e.g: + # env['PROTOC_PLUGINS']={ + # 'grpc': { + # 'plugin': '$PROTOC_GRPC_PLUGIN', + # 'options': ['generate_mock_code=true'], + # 'gen_dir': "$BUILD_DIR/grpc_gen" + # 'exts': ['.grpc.pb.cc', '.grpc.pb.h'], + # }, + # 'my_plugin': { + # 'plugin': '/usr/bin/my_custom_plugin', + # 'exts': ['.pb.txt'], + # } + # }, + env['PROTOC_PLUGINS'] = {} + + # This is a proto which allows dependent protos to be extracted + # generally this is in protobuf src tree at google/protobuf/descriptor.proto + env['PROTOC_DESCRIPTOR_PROTO'] = 'google/protobuf/descriptor.proto' + + env['PROTOCFLAGS'] = SCons.Util.CLVar('') + env['PROTOCPATHS'] = SCons.Util.CLVar('') + +def exists(env): + return True diff --git a/src/third_party/SConscript b/src/third_party/SConscript index 8f8b559ecd0..1c133f0958b 100644 --- a/src/third_party/SConscript +++ b/src/third_party/SConscript @@ -21,7 +21,10 @@ variantSuffix = '-1.4.0' thirdPartyEnvironmentModifications = { 'abseil-cpp': {'CPPPATH': ['#/src/third_party/abseil-cpp-master/abseil-cpp'], }, + 'cares': {'CPPPATH': ['#src/third_party/cares/dist/include', '#src/third_party/cares/platform/${TARGET_OS}_${TARGET_ARCH}/install/include'], }, 'fmt': {'CPPPATH': ['#src/third_party/fmt/dist/include'], }, + 'protobuf': {'CPPPATH': ['#src/third_party/protobuf/dist/src'], }, + 're2': {'CPPPATH': ['#src/third_party/re2/dist'], }, 's2': {'CPPPATH': ['#src/third_party/s2'], }, 'safeint': { 'CPPPATH': ['#src/third_party/SafeInt'], @@ -39,7 +42,8 @@ thirdPartyEnvironmentModifications = { "/include", ], 'FORCEINCLUDES': ['js-config.h', ], - } + }, + 'zlib': {'CPPPATH': ['#/src/third_party/zlib'], }, } @@ -218,6 +222,7 @@ env.Alias('generated-sources', empty_source) empty_object = env.LibraryObject( target='third_party_shim', source=empty_source, + NINJA_GENSOURCE_INDEPENDENT=True ) @@ -287,7 +292,7 @@ if use_libunwind: 'unwind/unwind', ]) - unwindEnv.ShimLibrary(name="unwind", ) + unwindEnv.ShimLibrary(name="unwind", NINJA_GENSOURCE_INDEPENDENT=True) fmtEnv = env.Clone() if use_system_version_of_library("fmt"): @@ -353,9 +358,11 @@ abseilEnv = env.Clone() abseilEnv.InjectThirdParty(libraries=['abseil-cpp']) abseilEnv.SConscript(abseilDirectory + '/SConscript', exports={'env': abseilEnv}) abseilEnv = abseilEnv.Clone(LIBDEPS_INTERFACE=[ - abseilDirectory + '/absl_container', + abseilDirectory + '/absl_city', abseilDirectory + '/absl_hash', - abseilDirectory + '/absl_numeric', + abseilDirectory + '/absl_int128', + abseilDirectory + '/absl_raw_hash_set', + abseilDirectory + '/absl_wyhash', ]) abseilEnv.ShimLibrary(name="abseil") @@ -389,7 +396,7 @@ else: 'zlib/zlib', ]) -zlibEnv.ShimLibrary(name="zlib", ) +zlibEnv.ShimLibrary(name="zlib", NINJA_GENSOURCE_INDEPENDENT=True) zstdEnv = env.Clone() if use_system_version_of_library("zstd"): @@ -476,6 +483,7 @@ gperftoolsEnv.ShimLibrary( # allowed to have public dependencies. 'lint-public-dep-allowed' ], + NINJA_GENSOURCE_INDEPENDENT=True, ) stemmerEnv = env.Clone() @@ -599,3 +607,14 @@ if get_option('ssl') == 'on': ]) kmsEnv.ShimLibrary(name="kms_message", ) + +env.SConscript( + dirs=[ + 'cares', + 're2', + 'protobuf', + 'grpc', + ], + duplicate=False, + exports={'env': env} +) \ No newline at end of file diff --git a/src/third_party/abseil-cpp-master/SConscript b/src/third_party/abseil-cpp-master/SConscript index f65389ad7d4..21d652d3427 100644 --- a/src/third_party/abseil-cpp-master/SConscript +++ b/src/third_party/abseil-cpp-master/SConscript @@ -4,37 +4,1208 @@ env = env.Clone() env.InjectThirdParty(libraries=['abseil-cpp']) +if env.ToolchainIs('msvc'): + env.Append( + CPPDEFINES=[ + 'NOMINMAX', + ], + CCFLAGS=[ + ], + ) + +env.Library( + target='absl_strerror', + source=[ + 'abseil-cpp/absl/base/internal/strerror.cc', + ], + LIBDEPS=[ + + ] +) + +env.Library( + target='absl_scoped_set_env', + source=[ + 'abseil-cpp/absl/base/internal/scoped_set_env.cc', + ], + LIBDEPS=[ + 'absl_log_severity', + 'absl_raw_logging_internal', + ] +) + +env.Library( + target='absl_periodic_sampler', + source=[ + 'abseil-cpp/absl/base/internal/periodic_sampler.cc', + ], + LIBDEPS=[ + 'absl_exponential_biased', + ] +) + +env.Library( + target='absl_spinlock_wait', + source=[ + 'abseil-cpp/absl/base/internal/spinlock_wait.cc', + ], + LIBDEPS=[ + + ] +) + env.Library( - target="absl_numeric", + target='absl_log_severity', source=[ - "abseil-cpp/absl/numeric/int128.cc", + 'abseil-cpp/absl/base/log_severity.cc', ], + LIBDEPS=[ + + ] ) env.Library( - target="absl_hash", + target='absl_raw_logging_internal', source=[ - "abseil-cpp/absl/hash/internal/city.cc", - "abseil-cpp/absl/hash/internal/hash.cc", - "abseil-cpp/absl/hash/internal/wyhash.cc", + 'abseil-cpp/absl/base/internal/raw_logging.cc', ], + LIBDEPS=[ + 'absl_log_severity', + ] ) env.Library( - target="absl_container", + target='absl_exponential_biased', source=[ - "abseil-cpp/absl/container/internal/raw_hash_set.cc", + 'abseil-cpp/absl/base/internal/exponential_biased.cc', ], LIBDEPS=[ - "absl_hash", - "absl_throw_delegate", + + ] +) + +env.Library( + target='absl_malloc_internal', + source=[ + 'abseil-cpp/absl/base/internal/low_level_alloc.cc', ], + LIBDEPS=[ + 'absl_base', + 'absl_log_severity', + 'absl_raw_logging_internal', + 'absl_spinlock_wait', + ] ) env.Library( - target="absl_throw_delegate", + target='absl_throw_delegate', source=[ - "abseil-cpp/absl/base/internal/throw_delegate.cc", + 'abseil-cpp/absl/base/internal/throw_delegate.cc', ], - LIBDEPS=[], + LIBDEPS=[ + 'absl_log_severity', + 'absl_raw_logging_internal', + ] ) + +env.Library( + target='absl_base', + source=[ + 'abseil-cpp/absl/base/internal/cycleclock.cc', + 'abseil-cpp/absl/base/internal/spinlock.cc', + 'abseil-cpp/absl/base/internal/sysinfo.cc', + 'abseil-cpp/absl/base/internal/thread_identity.cc', + 'abseil-cpp/absl/base/internal/unscaledcycleclock.cc', + ], + LIBDEPS=[ + 'absl_log_severity', + 'absl_raw_logging_internal', + 'absl_spinlock_wait', + ] +) + +env.Library( + target='absl_raw_hash_set', + source=[ + 'abseil-cpp/absl/container/internal/raw_hash_set.cc', + ], + LIBDEPS=[ + 'absl_bad_optional_access', + 'absl_base', + 'absl_civil_time', + 'absl_debugging_internal', + 'absl_demangle_internal', + 'absl_exponential_biased', + 'absl_graphcycles_internal', + 'absl_hashtablez_sampler', + 'absl_int128', + 'absl_log_severity', + 'absl_malloc_internal', + 'absl_raw_logging_internal', + 'absl_spinlock_wait', + 'absl_stacktrace', + 'absl_strings', + 'absl_strings_internal', + 'absl_symbolize', + 'absl_synchronization', + 'absl_throw_delegate', + 'absl_time', + 'absl_time_zone', + ] +) + +env.Library( + target='absl_hashtablez_sampler', + source=[ + 'abseil-cpp/absl/container/internal/hashtablez_sampler.cc', + 'abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc', + ], + LIBDEPS=[ + 'absl_base', + 'absl_civil_time', + 'absl_debugging_internal', + 'absl_demangle_internal', + 'absl_exponential_biased', + 'absl_graphcycles_internal', + 'absl_int128', + 'absl_log_severity', + 'absl_malloc_internal', + 'absl_raw_logging_internal', + 'absl_spinlock_wait', + 'absl_stacktrace', + 'absl_strings', + 'absl_strings_internal', + 'absl_symbolize', + 'absl_synchronization', + 'absl_throw_delegate', + 'absl_time', + 'absl_time_zone', + ] +) + +env.Library( + target='absl_stacktrace', + source=[ + 'abseil-cpp/absl/debugging/stacktrace.cc', + ], + LIBDEPS=[ + 'absl_debugging_internal', + 'absl_log_severity', + 'absl_raw_logging_internal', + ] +) + +env.Library( + target='absl_examine_stack', + source=[ + 'abseil-cpp/absl/debugging/internal/examine_stack.cc', + ], + LIBDEPS=[ + 'absl_base', + 'absl_debugging_internal', + 'absl_demangle_internal', + 'absl_int128', + 'absl_log_severity', + 'absl_malloc_internal', + 'absl_raw_logging_internal', + 'absl_spinlock_wait', + 'absl_stacktrace', + 'absl_strings', + 'absl_strings_internal', + 'absl_symbolize', + 'absl_throw_delegate', + ] +) + +env.Library( + target='absl_symbolize', + source=[ + 'abseil-cpp/absl/debugging/symbolize.cc', + ], + LIBDEPS=[ + 'absl_base', + 'absl_debugging_internal', + 'absl_demangle_internal', + 'absl_int128', + 'absl_log_severity', + 'absl_malloc_internal', + 'absl_raw_logging_internal', + 'absl_spinlock_wait', + 'absl_strings', + 'absl_strings_internal', + 'absl_throw_delegate', + ] +) + +env.Library( + target='absl_demangle_internal', + source=[ + 'abseil-cpp/absl/debugging/internal/demangle.cc', + ], + LIBDEPS=[ + 'absl_base', + 'absl_log_severity', + 'absl_raw_logging_internal', + 'absl_spinlock_wait', + ] +) + +env.Library( + target='absl_leak_check', + source=[ + 'abseil-cpp/absl/debugging/leak_check.cc', + ], + LIBDEPS=[ + + ] +) + +env.Library( + target='absl_debugging_internal', + source=[ + 'abseil-cpp/absl/debugging/internal/address_is_readable.cc', + 'abseil-cpp/absl/debugging/internal/elf_mem_image.cc', + 'abseil-cpp/absl/debugging/internal/vdso_support.cc', + ], + LIBDEPS=[ + 'absl_log_severity', + 'absl_raw_logging_internal', + ] +) + +env.Library( + target='absl_leak_check_disable', + source=[ + 'abseil-cpp/absl/debugging/leak_check_disable.cc', + ], + LIBDEPS=[ + + ] +) + +env.Library( + target='absl_failure_signal_handler', + source=[ + 'abseil-cpp/absl/debugging/failure_signal_handler.cc', + ], + LIBDEPS=[ + 'absl_base', + 'absl_debugging_internal', + 'absl_demangle_internal', + 'absl_examine_stack', + 'absl_int128', + 'absl_log_severity', + 'absl_malloc_internal', + 'absl_raw_logging_internal', + 'absl_spinlock_wait', + 'absl_stacktrace', + 'absl_strings', + 'absl_strings_internal', + 'absl_symbolize', + 'absl_throw_delegate', + ] +) + +env.Library( + target='absl_flags_config', + source=[ + 'abseil-cpp/absl/flags/usage_config.cc', + ], + LIBDEPS=[ + 'absl_base', + 'absl_civil_time', + 'absl_debugging_internal', + 'absl_demangle_internal', + 'absl_flags_program_name', + 'absl_graphcycles_internal', + 'absl_int128', + 'absl_log_severity', + 'absl_malloc_internal', + 'absl_raw_logging_internal', + 'absl_spinlock_wait', + 'absl_stacktrace', + 'absl_strings', + 'absl_strings_internal', + 'absl_symbolize', + 'absl_synchronization', + 'absl_throw_delegate', + 'absl_time', + 'absl_time_zone', + ] +) + +env.Library( + target='absl_flags_marshalling', + source=[ + 'abseil-cpp/absl/flags/marshalling.cc', + ], + LIBDEPS=[ + 'absl_base', + 'absl_int128', + 'absl_log_severity', + 'absl_raw_logging_internal', + 'absl_spinlock_wait', + 'absl_str_format_internal', + 'absl_strings', + 'absl_strings_internal', + 'absl_throw_delegate', + ] +) + +env.Library( + target='absl_flags', + source=[ + 'abseil-cpp/absl/flags/flag.cc', + ], + LIBDEPS=[ + 'absl_bad_optional_access', + 'absl_bad_variant_access', + 'absl_base', + 'absl_city', + 'absl_civil_time', + 'absl_cord', + 'absl_debugging_internal', + 'absl_demangle_internal', + 'absl_exponential_biased', + 'absl_flags_commandlineflag', + 'absl_flags_commandlineflag_internal', + 'absl_flags_config', + 'absl_flags_internal', + 'absl_flags_marshalling', + 'absl_flags_private_handle_accessor', + 'absl_flags_program_name', + 'absl_flags_reflection', + 'absl_graphcycles_internal', + 'absl_hash', + 'absl_hashtablez_sampler', + 'absl_int128', + 'absl_log_severity', + 'absl_malloc_internal', + 'absl_raw_hash_set', + 'absl_raw_logging_internal', + 'absl_spinlock_wait', + 'absl_stacktrace', + 'absl_str_format_internal', + 'absl_strings', + 'absl_strings_internal', + 'absl_symbolize', + 'absl_synchronization', + 'absl_throw_delegate', + 'absl_time', + 'absl_time_zone', + 'absl_wyhash', + ] +) + +env.Library( + target='absl_flags_private_handle_accessor', + source=[ + 'abseil-cpp/absl/flags/internal/private_handle_accessor.cc', + ], + LIBDEPS=[ + 'absl_bad_optional_access', + 'absl_base', + 'absl_flags_commandlineflag', + 'absl_flags_commandlineflag_internal', + 'absl_int128', + 'absl_log_severity', + 'absl_raw_logging_internal', + 'absl_spinlock_wait', + 'absl_strings', + 'absl_strings_internal', + 'absl_throw_delegate', + ] +) + +env.Library( + target='absl_flags_commandlineflag_internal', + source=[ + 'abseil-cpp/absl/flags/internal/commandlineflag.cc', + ], + LIBDEPS=[ + + ] +) + +env.Library( + target='absl_flags_commandlineflag', + source=[ + 'abseil-cpp/absl/flags/commandlineflag.cc', + ], + LIBDEPS=[ + 'absl_bad_optional_access', + 'absl_base', + 'absl_flags_commandlineflag_internal', + 'absl_int128', + 'absl_log_severity', + 'absl_raw_logging_internal', + 'absl_spinlock_wait', + 'absl_strings', + 'absl_strings_internal', + 'absl_throw_delegate', + ] +) + +env.Library( + target='absl_flags_program_name', + source=[ + 'abseil-cpp/absl/flags/internal/program_name.cc', + ], + LIBDEPS=[ + 'absl_base', + 'absl_civil_time', + 'absl_debugging_internal', + 'absl_demangle_internal', + 'absl_graphcycles_internal', + 'absl_int128', + 'absl_log_severity', + 'absl_malloc_internal', + 'absl_raw_logging_internal', + 'absl_spinlock_wait', + 'absl_stacktrace', + 'absl_strings', + 'absl_strings_internal', + 'absl_symbolize', + 'absl_synchronization', + 'absl_throw_delegate', + 'absl_time', + 'absl_time_zone', + ] +) + +env.Library( + target='absl_flags_reflection', + source=[ + 'abseil-cpp/absl/flags/reflection.cc', + ], + LIBDEPS=[ + 'absl_bad_optional_access', + 'absl_bad_variant_access', + 'absl_base', + 'absl_city', + 'absl_civil_time', + 'absl_cord', + 'absl_debugging_internal', + 'absl_demangle_internal', + 'absl_exponential_biased', + 'absl_flags_commandlineflag', + 'absl_flags_commandlineflag_internal', + 'absl_flags_config', + 'absl_flags_private_handle_accessor', + 'absl_flags_program_name', + 'absl_graphcycles_internal', + 'absl_hash', + 'absl_hashtablez_sampler', + 'absl_int128', + 'absl_log_severity', + 'absl_malloc_internal', + 'absl_raw_hash_set', + 'absl_raw_logging_internal', + 'absl_spinlock_wait', + 'absl_stacktrace', + 'absl_strings', + 'absl_strings_internal', + 'absl_symbolize', + 'absl_synchronization', + 'absl_throw_delegate', + 'absl_time', + 'absl_time_zone', + 'absl_wyhash', + ] +) + +env.Library( + target='absl_flags_internal', + source=[ + 'abseil-cpp/absl/flags/internal/flag.cc', + ], + LIBDEPS=[ + 'absl_bad_optional_access', + 'absl_base', + 'absl_civil_time', + 'absl_debugging_internal', + 'absl_demangle_internal', + 'absl_flags_commandlineflag', + 'absl_flags_commandlineflag_internal', + 'absl_flags_config', + 'absl_flags_marshalling', + 'absl_flags_program_name', + 'absl_graphcycles_internal', + 'absl_int128', + 'absl_log_severity', + 'absl_malloc_internal', + 'absl_raw_logging_internal', + 'absl_spinlock_wait', + 'absl_stacktrace', + 'absl_str_format_internal', + 'absl_strings', + 'absl_strings_internal', + 'absl_symbolize', + 'absl_synchronization', + 'absl_throw_delegate', + 'absl_time', + 'absl_time_zone', + ] +) + +env.Library( + target='absl_flags_usage', + source=[ + 'abseil-cpp/absl/flags/usage.cc', + ], + LIBDEPS=[ + 'absl_bad_optional_access', + 'absl_bad_variant_access', + 'absl_base', + 'absl_city', + 'absl_civil_time', + 'absl_cord', + 'absl_debugging_internal', + 'absl_demangle_internal', + 'absl_exponential_biased', + 'absl_flags', + 'absl_flags_commandlineflag', + 'absl_flags_commandlineflag_internal', + 'absl_flags_config', + 'absl_flags_internal', + 'absl_flags_marshalling', + 'absl_flags_private_handle_accessor', + 'absl_flags_program_name', + 'absl_flags_reflection', + 'absl_flags_usage_internal', + 'absl_graphcycles_internal', + 'absl_hash', + 'absl_hashtablez_sampler', + 'absl_int128', + 'absl_log_severity', + 'absl_malloc_internal', + 'absl_raw_hash_set', + 'absl_raw_logging_internal', + 'absl_spinlock_wait', + 'absl_stacktrace', + 'absl_str_format_internal', + 'absl_strings', + 'absl_strings_internal', + 'absl_symbolize', + 'absl_synchronization', + 'absl_throw_delegate', + 'absl_time', + 'absl_time_zone', + 'absl_wyhash', + ] +) + +env.Library( + target='absl_flags_usage_internal', + source=[ + 'abseil-cpp/absl/flags/internal/usage.cc', + ], + LIBDEPS=[ + 'absl_bad_optional_access', + 'absl_bad_variant_access', + 'absl_base', + 'absl_city', + 'absl_civil_time', + 'absl_cord', + 'absl_debugging_internal', + 'absl_demangle_internal', + 'absl_exponential_biased', + 'absl_flags', + 'absl_flags_commandlineflag', + 'absl_flags_commandlineflag_internal', + 'absl_flags_config', + 'absl_flags_internal', + 'absl_flags_marshalling', + 'absl_flags_private_handle_accessor', + 'absl_flags_program_name', + 'absl_flags_reflection', + 'absl_graphcycles_internal', + 'absl_hash', + 'absl_hashtablez_sampler', + 'absl_int128', + 'absl_log_severity', + 'absl_malloc_internal', + 'absl_raw_hash_set', + 'absl_raw_logging_internal', + 'absl_spinlock_wait', + 'absl_stacktrace', + 'absl_str_format_internal', + 'absl_strings', + 'absl_strings_internal', + 'absl_symbolize', + 'absl_synchronization', + 'absl_throw_delegate', + 'absl_time', + 'absl_time_zone', + 'absl_wyhash', + ] +) + +env.Library( + target='absl_flags_parse', + source=[ + 'abseil-cpp/absl/flags/parse.cc', + ], + LIBDEPS=[ + 'absl_bad_optional_access', + 'absl_bad_variant_access', + 'absl_base', + 'absl_city', + 'absl_civil_time', + 'absl_cord', + 'absl_debugging_internal', + 'absl_demangle_internal', + 'absl_exponential_biased', + 'absl_flags', + 'absl_flags_commandlineflag', + 'absl_flags_commandlineflag_internal', + 'absl_flags_config', + 'absl_flags_internal', + 'absl_flags_marshalling', + 'absl_flags_private_handle_accessor', + 'absl_flags_program_name', + 'absl_flags_reflection', + 'absl_flags_usage', + 'absl_flags_usage_internal', + 'absl_graphcycles_internal', + 'absl_hash', + 'absl_hashtablez_sampler', + 'absl_int128', + 'absl_log_severity', + 'absl_malloc_internal', + 'absl_raw_hash_set', + 'absl_raw_logging_internal', + 'absl_spinlock_wait', + 'absl_stacktrace', + 'absl_str_format_internal', + 'absl_strings', + 'absl_strings_internal', + 'absl_symbolize', + 'absl_synchronization', + 'absl_throw_delegate', + 'absl_time', + 'absl_time_zone', + 'absl_wyhash', + ] +) + +env.Library( + target='absl_wyhash', + source=[ + 'abseil-cpp/absl/hash/internal/wyhash.cc', + ], + LIBDEPS=[ + 'absl_base', + 'absl_int128', + 'absl_log_severity', + 'absl_raw_logging_internal', + 'absl_spinlock_wait', + ] +) + +env.Library( + target='absl_city', + source=[ + 'abseil-cpp/absl/hash/internal/city.cc', + ], + LIBDEPS=[ + 'absl_base', + 'absl_log_severity', + 'absl_raw_logging_internal', + 'absl_spinlock_wait', + ] +) + +env.Library( + target='absl_hash', + source=[ + 'abseil-cpp/absl/hash/internal/hash.cc', + ], + LIBDEPS=[ + 'absl_bad_optional_access', + 'absl_bad_variant_access', + 'absl_base', + 'absl_city', + 'absl_int128', + 'absl_log_severity', + 'absl_raw_logging_internal', + 'absl_spinlock_wait', + 'absl_strings', + 'absl_strings_internal', + 'absl_throw_delegate', + 'absl_wyhash', + ] +) + +env.Library( + target='absl_int128', + source=[ + 'abseil-cpp/absl/numeric/int128.cc', + ], + LIBDEPS=[ + + ] +) + +env.Library( + target='absl_random_internal_randen_hwaes', + source=[ + 'abseil-cpp/absl/random/internal/randen_detect.cc', + ], + LIBDEPS=[ + 'absl_random_internal_platform', + 'absl_random_internal_randen_hwaes_impl', + ] +) + +env.Library( + target='absl_random_internal_seed_material', + source=[ + 'abseil-cpp/absl/random/internal/seed_material.cc', + ], + LIBDEPS=[ + 'absl_bad_optional_access', + 'absl_base', + 'absl_int128', + 'absl_log_severity', + 'absl_raw_logging_internal', + 'absl_spinlock_wait', + 'absl_strings', + 'absl_strings_internal', + 'absl_throw_delegate', + ] +) + +env.Library( + target='absl_random_internal_randen_slow', + source=[ + 'abseil-cpp/absl/random/internal/randen_slow.cc', + ], + LIBDEPS=[ + 'absl_random_internal_platform', + ] +) + +env.Library( + target='absl_random_seed_gen_exception', + source=[ + 'abseil-cpp/absl/random/seed_gen_exception.cc', + ], + LIBDEPS=[ + + ] +) + +env.Library( + target='absl_random_internal_pool_urbg', + source=[ + 'abseil-cpp/absl/random/internal/pool_urbg.cc', + ], + LIBDEPS=[ + 'absl_bad_optional_access', + 'absl_base', + 'absl_int128', + 'absl_log_severity', + 'absl_random_internal_platform', + 'absl_random_internal_randen', + 'absl_random_internal_randen_hwaes', + 'absl_random_internal_randen_hwaes_impl', + 'absl_random_internal_randen_slow', + 'absl_random_internal_seed_material', + 'absl_random_seed_gen_exception', + 'absl_raw_logging_internal', + 'absl_spinlock_wait', + 'absl_strings', + 'absl_strings_internal', + 'absl_throw_delegate', + ] +) + +env.Library( + target='absl_random_distributions', + source=[ + 'abseil-cpp/absl/random/discrete_distribution.cc', + 'abseil-cpp/absl/random/gaussian_distribution.cc', + ], + LIBDEPS=[ + 'absl_base', + 'absl_int128', + 'absl_log_severity', + 'absl_raw_logging_internal', + 'absl_spinlock_wait', + 'absl_strings', + 'absl_strings_internal', + 'absl_throw_delegate', + ] +) + +env.Library( + target='absl_random_internal_randen_hwaes_impl', + source=[ + 'abseil-cpp/absl/random/internal/randen_hwaes.cc', + ], + LIBDEPS=[ + 'absl_random_internal_platform', + ] +) + +env.Library( + target='absl_random_seed_sequences', + source=[ + 'abseil-cpp/absl/random/seed_sequences.cc', + ], + LIBDEPS=[ + 'absl_bad_optional_access', + 'absl_base', + 'absl_int128', + 'absl_log_severity', + 'absl_random_internal_platform', + 'absl_random_internal_pool_urbg', + 'absl_random_internal_randen', + 'absl_random_internal_randen_hwaes', + 'absl_random_internal_randen_hwaes_impl', + 'absl_random_internal_randen_slow', + 'absl_random_internal_seed_material', + 'absl_random_seed_gen_exception', + 'absl_raw_logging_internal', + 'absl_spinlock_wait', + 'absl_strings', + 'absl_strings_internal', + 'absl_throw_delegate', + ] +) + +env.Library( + target='absl_random_internal_randen', + source=[ + 'abseil-cpp/absl/random/internal/randen.cc', + ], + LIBDEPS=[ + 'absl_random_internal_platform', + 'absl_random_internal_randen_hwaes', + 'absl_random_internal_randen_hwaes_impl', + 'absl_random_internal_randen_slow', + ] +) + +env.Library( + target='absl_random_internal_distribution_test_util', + source=[ + 'abseil-cpp/absl/random/internal/chi_square.cc', + 'abseil-cpp/absl/random/internal/distribution_test_util.cc', + ], + LIBDEPS=[ + 'absl_base', + 'absl_int128', + 'absl_log_severity', + 'absl_raw_logging_internal', + 'absl_spinlock_wait', + 'absl_str_format_internal', + 'absl_strings', + 'absl_strings_internal', + 'absl_throw_delegate', + ] +) + +env.Library( + target='absl_random_internal_platform', + source=[ + 'abseil-cpp/absl/random/internal/randen_round_keys.cc', + ], + LIBDEPS=[ + + ] +) + +env.Library( + target='absl_statusor', + source=[ + 'abseil-cpp/absl/status/statusor.cc', + ], + LIBDEPS=[ + 'absl_bad_optional_access', + 'absl_bad_variant_access', + 'absl_base', + 'absl_cord', + 'absl_debugging_internal', + 'absl_demangle_internal', + 'absl_int128', + 'absl_log_severity', + 'absl_malloc_internal', + 'absl_raw_logging_internal', + 'absl_spinlock_wait', + 'absl_stacktrace', + 'absl_status', + 'absl_str_format_internal', + 'absl_strings', + 'absl_strings_internal', + 'absl_symbolize', + 'absl_throw_delegate', + ] +) + +env.Library( + target='absl_status', + source=[ + 'abseil-cpp/absl/status/status.cc', + 'abseil-cpp/absl/status/status_payload_printer.cc', + ], + LIBDEPS=[ + 'absl_bad_optional_access', + 'absl_base', + 'absl_cord', + 'absl_debugging_internal', + 'absl_demangle_internal', + 'absl_int128', + 'absl_log_severity', + 'absl_malloc_internal', + 'absl_raw_logging_internal', + 'absl_spinlock_wait', + 'absl_stacktrace', + 'absl_str_format_internal', + 'absl_strings', + 'absl_strings_internal', + 'absl_symbolize', + 'absl_throw_delegate', + ] +) + +env.Library( + target='absl_cord', + source=[ + 'abseil-cpp/absl/strings/cord.cc', + 'abseil-cpp/absl/strings/internal/cord_internal.cc', + 'abseil-cpp/absl/strings/internal/cord_rep_ring.cc', + ], + LIBDEPS=[ + 'absl_bad_optional_access', + 'absl_base', + 'absl_int128', + 'absl_log_severity', + 'absl_raw_logging_internal', + 'absl_spinlock_wait', + 'absl_strings', + 'absl_strings_internal', + 'absl_throw_delegate', + ] +) + +env.Library( + target='absl_str_format_internal', + source=[ + 'abseil-cpp/absl/strings/internal/str_format/arg.cc', + 'abseil-cpp/absl/strings/internal/str_format/bind.cc', + 'abseil-cpp/absl/strings/internal/str_format/extension.cc', + 'abseil-cpp/absl/strings/internal/str_format/float_conversion.cc', + 'abseil-cpp/absl/strings/internal/str_format/output.cc', + 'abseil-cpp/absl/strings/internal/str_format/parser.cc', + ], + LIBDEPS=[ + 'absl_base', + 'absl_int128', + 'absl_log_severity', + 'absl_raw_logging_internal', + 'absl_spinlock_wait', + 'absl_strings', + 'absl_strings_internal', + 'absl_throw_delegate', + ] +) + +env.Library( + target='absl_strings_internal', + source=[ + 'abseil-cpp/absl/strings/internal/ostringstream.cc', + 'abseil-cpp/absl/strings/internal/utf8.cc', + 'abseil-cpp/absl/strings/internal/escaping.cc', + ], + LIBDEPS=[ + 'absl_base', + 'absl_log_severity', + 'absl_raw_logging_internal', + 'absl_spinlock_wait', + ] +) + +absl_strings_env = env.Clone() + +if 'undefined' in env.GetOption('sanitize').split(','): + # UBSAN causes the __muloti4 reference to be in the library. This is not defined in libgcc, so + # we will just opt out of this check in this third party library. Related issues below: + # + # abseil issue showing the commit it was introduced + # https://github.com/abseil/abseil-cpp/issues/841 + # + # GCC bug saying the symbol is missing + # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103034 + # + # LLVM bug saying the symbol requires extra linkage + # https://bugs.llvm.org/show_bug.cgi?id=16404 + absl_strings_env.Append( + CCFLAGS=[ + '-fno-sanitize=signed-integer-overflow', + ], + LINKFLAGS=[ + '-fno-sanitize=signed-integer-overflow', + ], + ) + +absl_strings_env.Library( + target='absl_strings', + source=[ + 'abseil-cpp/absl/strings/ascii.cc', + 'abseil-cpp/absl/strings/charconv.cc', + 'abseil-cpp/absl/strings/escaping.cc', + 'abseil-cpp/absl/strings/internal/charconv_bigint.cc', + 'abseil-cpp/absl/strings/internal/charconv_parse.cc', + 'abseil-cpp/absl/strings/internal/memutil.cc', + 'abseil-cpp/absl/strings/match.cc', + 'abseil-cpp/absl/strings/numbers.cc', + 'abseil-cpp/absl/strings/str_cat.cc', + 'abseil-cpp/absl/strings/str_replace.cc', + 'abseil-cpp/absl/strings/str_split.cc', + 'abseil-cpp/absl/strings/string_view.cc', + 'abseil-cpp/absl/strings/substitute.cc', + ], + LIBDEPS=[ + 'absl_base', + 'absl_int128', + 'absl_log_severity', + 'absl_raw_logging_internal', + 'absl_spinlock_wait', + 'absl_strings_internal', + 'absl_throw_delegate', + ], +) + +env.Library( + target='absl_synchronization', + source=[ + 'abseil-cpp/absl/synchronization/barrier.cc', + 'abseil-cpp/absl/synchronization/blocking_counter.cc', + 'abseil-cpp/absl/synchronization/internal/create_thread_identity.cc', + 'abseil-cpp/absl/synchronization/internal/per_thread_sem.cc', + 'abseil-cpp/absl/synchronization/internal/waiter.cc', + 'abseil-cpp/absl/synchronization/notification.cc', + 'abseil-cpp/absl/synchronization/mutex.cc', + ], + LIBDEPS=[ + 'absl_base', + 'absl_civil_time', + 'absl_debugging_internal', + 'absl_demangle_internal', + 'absl_graphcycles_internal', + 'absl_int128', + 'absl_log_severity', + 'absl_malloc_internal', + 'absl_raw_logging_internal', + 'absl_spinlock_wait', + 'absl_stacktrace', + 'absl_strings', + 'absl_strings_internal', + 'absl_symbolize', + 'absl_throw_delegate', + 'absl_time', + 'absl_time_zone', + ] +) + +env.Library( + target='absl_graphcycles_internal', + source=[ + 'abseil-cpp/absl/synchronization/internal/graphcycles.cc', + ], + LIBDEPS=[ + 'absl_base', + 'absl_log_severity', + 'absl_malloc_internal', + 'absl_raw_logging_internal', + 'absl_spinlock_wait', + ] +) + +env.Library( + target='absl_time_zone', + source=[ + 'abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc', + 'abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc', + 'abseil-cpp/absl/time/internal/cctz/src/time_zone_if.cc', + 'abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc', + 'abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc', + 'abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc', + 'abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc', + 'abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.cc', + 'abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc', + ], + LIBDEPS=[ + + ] +) + +env.Library( + target='absl_civil_time', + source=[ + 'abseil-cpp/absl/time/internal/cctz/src/civil_time_detail.cc', + ], + LIBDEPS=[ + + ] +) + +env.Library( + target='absl_time', + source=[ + 'abseil-cpp/absl/time/civil_time.cc', + 'abseil-cpp/absl/time/clock.cc', + 'abseil-cpp/absl/time/duration.cc', + 'abseil-cpp/absl/time/format.cc', + 'abseil-cpp/absl/time/time.cc', + ], + LIBDEPS=[ + 'absl_base', + 'absl_civil_time', + 'absl_int128', + 'absl_log_severity', + 'absl_raw_logging_internal', + 'absl_spinlock_wait', + 'absl_strings', + 'absl_strings_internal', + 'absl_throw_delegate', + 'absl_time_zone', + ] +) + +env.Library( + target='absl_bad_any_cast_impl', + source=[ + 'abseil-cpp/absl/types/bad_any_cast.cc', + ], + LIBDEPS=[ + 'absl_log_severity', + 'absl_raw_logging_internal', + ] +) + +env.Library( + target='absl_bad_optional_access', + source=[ + 'abseil-cpp/absl/types/bad_optional_access.cc', + ], + LIBDEPS=[ + 'absl_log_severity', + 'absl_raw_logging_internal', + ] +) + +env.Library( + target='absl_bad_variant_access', + source=[ + 'abseil-cpp/absl/types/bad_variant_access.cc', + ], + LIBDEPS=[ + 'absl_log_severity', + 'absl_raw_logging_internal', + ] +) + + diff --git a/src/third_party/abseil-cpp-master/abseil-cpp/absl/flags/internal/commandlineflag.cc b/src/third_party/abseil-cpp-master/abseil-cpp/absl/flags/internal/commandlineflag.cc new file mode 100644 index 00000000000..4482955c4cb --- /dev/null +++ b/src/third_party/abseil-cpp-master/abseil-cpp/absl/flags/internal/commandlineflag.cc @@ -0,0 +1,26 @@ +// +// Copyright 2020 The Abseil Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "absl/flags/internal/commandlineflag.h" + +namespace absl { +ABSL_NAMESPACE_BEGIN +namespace flags_internal { + +FlagStateInterface::~FlagStateInterface() {} + +} // namespace flags_internal +ABSL_NAMESPACE_END +} // namespace absl diff --git a/src/third_party/abseil-cpp-master/scripts/lib_targets.txt b/src/third_party/abseil-cpp-master/scripts/lib_targets.txt new file mode 100644 index 00000000000..c524a997c49 --- /dev/null +++ b/src/third_party/abseil-cpp-master/scripts/lib_targets.txt @@ -0,0 +1,61 @@ +absl_bad_any_cast_impl +absl_bad_optional_access +absl_bad_variant_access +absl_base +absl_city +absl_civil_time +absl_cord +absl_debugging_internal +absl_demangle_internal +absl_examine_stack +absl_exponential_biased +absl_failure_signal_handler +absl_flags +absl_flags_commandlineflag +absl_flags_commandlineflag_internal +absl_flags_config +absl_flags_internal +absl_flags_marshalling +absl_flags_parse +absl_flags_private_handle_accessor +absl_flags_program_name +absl_flags_reflection +absl_flags_usage +absl_flags_usage_internal +absl_graphcycles_internal +absl_hash +absl_hashtablez_sampler +absl_int128 +absl_leak_check +absl_leak_check_disable +absl_log_severity +absl_malloc_internal +absl_periodic_sampler +absl_random_distributions +absl_random_internal_distribution_test_util +absl_random_internal_platform +absl_random_internal_pool_urbg +absl_random_internal_randen +absl_random_internal_randen_hwaes +absl_random_internal_randen_hwaes_impl +absl_random_internal_randen_slow +absl_random_internal_seed_material +absl_random_seed_gen_exception +absl_random_seed_sequences +absl_raw_hash_set +absl_raw_logging_internal +absl_scoped_set_env +absl_spinlock_wait +absl_stacktrace +absl_status +absl_statusor +absl_str_format_internal +absl_strerror +absl_strings +absl_strings_internal +absl_symbolize +absl_synchronization +absl_throw_delegate +absl_time +absl_time_zone +absl_wyhash \ No newline at end of file diff --git a/src/third_party/abseil-cpp-master/scripts/parse_lib_from_ninja.py b/src/third_party/abseil-cpp-master/scripts/parse_lib_from_ninja.py new file mode 100644 index 00000000000..826a8d9f2d8 --- /dev/null +++ b/src/third_party/abseil-cpp-master/scripts/parse_lib_from_ninja.py @@ -0,0 +1,52 @@ +import sys +import os + +with open(sys.argv[1]) as fninja: + content = fninja.readlines() + +target_libs_file = sys.argv[2] + +with open(target_libs_file) as ftargets: + target_libs = [ft.strip() for ft in ftargets.readlines()] +for line in content: + if line.startswith('build absl'): + found_target_lib = None + for target_lib in target_libs: + + if f'lib{target_lib}.a: CXX_STATIC_LIBRARY_LINKER' in line: + found_target_lib = target_lib + if not found_target_lib: + continue + + tokens = line.split(' ') + try: + deps_token_index = tokens.index('||') + except ValueError: + deps_token_index = len(tokens) + + raw_source_files = tokens[3:deps_token_index] + source_files = [] + for raw_source in raw_source_files: + path_elems = raw_source.split('/') + path_elems.remove('CMakeFiles') + path_elems.remove(found_target_lib.replace('absl_','') + '.dir') + + source_files.append(os.path.splitext(os.path.join('abseil-cpp', *path_elems))[0]) + raw_libdeps = tokens[deps_token_index+1:] + libdeps = [] + for raw_libdep in raw_libdeps: + libdeps.append(f"{os.path.splitext(os.path.basename(raw_libdep))[0][3:]}") + + scons_out = (f"""\ +env.Library( + target='{found_target_lib}', + source=[ +{os.linesep.join([f" '{source}'," for source in source_files])} + ], + LIBDEPS=[ +{os.linesep.join([f" '{libdep}'," for libdep in sorted(libdeps)])} + ] +) +""" + ) + print(scons_out) diff --git a/src/third_party/cares/SConscript b/src/third_party/cares/SConscript new file mode 100644 index 00000000000..6de8ab187b6 --- /dev/null +++ b/src/third_party/cares/SConscript @@ -0,0 +1,95 @@ +Import('env') + +cares_env = env.Clone() + +cares_env.Append(CPPDEFINES=[ + ('HAVE_CONFIG_H',1), + ('_POSIX_C_SOURCE','199309L'), + 'CARES_BUILDING_LIBRARY', + 'c_ares_EXPORTS', +]) + +cares_root = cares_env.Dir(".").srcnode() +if cares_env.ToolchainIs('msvc'): + cares_env.Append( + CCFLAGS=[ + '/wd4996', # The POSIX name for this item is deprecated + ], + ) + +if cares_env.TargetOSIs('darwin'): + cares_env.Append( + CPPDEFINES=[ + '_DARWIN_C_SOURCE', + ], + ) + +cares_platform = cares_root.Dir("platform/${TARGET_OS}_${TARGET_ARCH}") +cares_env.Append( + CPPPATH=[ + cares_platform.Dir("build/include"), + cares_platform.Dir("install/include"), + ], +) + +cares_env.Library( + target='cares', + source=[ + "dist/src/lib/ares_android.c", + "dist/src/lib/ares_send.c", + "dist/src/lib/ares_search.c", + "dist/src/lib/ares_writev.c", + "dist/src/lib/ares__close_sockets.c", + "dist/src/lib/ares_cancel.c", + "dist/src/lib/ares__read_line.c", + "dist/src/lib/ares__timeval.c", + "dist/src/lib/ares_free_string.c", + "dist/src/lib/ares_fds.c", + "dist/src/lib/ares_free_hostent.c", + "dist/src/lib/ares_freeaddrinfo.c", + "dist/src/lib/ares_destroy.c", + "dist/src/lib/ares_data.c", + "dist/src/lib/ares__get_hostent.c", + "dist/src/lib/ares__readaddrinfo.c", + "dist/src/lib/ares__parse_into_addrinfo.c", + "dist/src/lib/ares__sortaddrinfo.c", + "dist/src/lib/ares_expand_string.c", + "dist/src/lib/inet_net_pton.c", + "dist/src/lib/ares_expand_name.c", + "dist/src/lib/ares_getenv.c", + "dist/src/lib/ares_getsock.c", + "dist/src/lib/ares_mkquery.c", + "dist/src/lib/ares_library_init.c", + "dist/src/lib/ares_nowarn.c", + "dist/src/lib/bitncmp.c", + "dist/src/lib/ares_create_query.c", + "dist/src/lib/ares_llist.c", + "dist/src/lib/ares_gethostbyaddr.c", + "dist/src/lib/ares_getnameinfo.c", + "dist/src/lib/ares_version.c", + "dist/src/lib/ares_gethostbyname.c", + "dist/src/lib/ares_getaddrinfo.c", + "dist/src/lib/ares_parse_a_reply.c", + "dist/src/lib/ares_parse_aaaa_reply.c", + "dist/src/lib/ares_parse_caa_reply.c", + "dist/src/lib/ares_options.c", + "dist/src/lib/ares_parse_mx_reply.c", + "dist/src/lib/ares_strsplit.c", + "dist/src/lib/ares_timeout.c", + "dist/src/lib/ares_parse_naptr_reply.c", + "dist/src/lib/windows_port.c", + "dist/src/lib/ares_platform.c", + "dist/src/lib/ares_strcasecmp.c", + "dist/src/lib/ares_parse_ptr_reply.c", + "dist/src/lib/ares_parse_soa_reply.c", + "dist/src/lib/ares_parse_srv_reply.c", + "dist/src/lib/ares_parse_ns_reply.c", + "dist/src/lib/ares_init.c", + "dist/src/lib/ares_parse_txt_reply.c", + "dist/src/lib/ares_query.c", + "dist/src/lib/ares_strdup.c", + "dist/src/lib/ares_strerror.c", + "dist/src/lib/inet_ntop.c", + "dist/src/lib/ares_process.c", + ], +) diff --git a/src/third_party/gperftools/SConscript b/src/third_party/gperftools/SConscript index 21ec1fb90f0..bd426dab0fc 100644 --- a/src/third_party/gperftools/SConscript +++ b/src/third_party/gperftools/SConscript @@ -9,7 +9,8 @@ Import("selected_experimental_optimizations") env = env.Clone( # Building with hidden visibility interferes with intercepting the # libc allocation functions. - DISALLOW_VISHIDDEN=True, ) + DISALLOW_VISHIDDEN=True, + NINJA_GENSOURCE_INDEPENDENT=True,) # If we don't have a frame pointer, we need to tell tcmalloc so that # it doesn't try to select a frame pointer based unwinder like @@ -77,7 +78,8 @@ if env.TargetOSIs('windows'): # warning C4141: 'inline': used more than once # warning C4305: 'argument': truncation from 'ssize_t' to 'double' - env.Append(CXXFLAGS=["/wd4141", "/wd4305"]) + # warning C4003: not enough arguments for function-like macro invocation + env.Append(CXXFLAGS=["/wd4141", "/wd4305", '/wd4003']) else: files += [ diff --git a/src/third_party/grpc/SConscript b/src/third_party/grpc/SConscript new file mode 100644 index 00000000000..29a839558e4 --- /dev/null +++ b/src/third_party/grpc/SConscript @@ -0,0 +1,918 @@ +Import('env') + +import os + +grpc_env = env.Clone() + +grpc_env.InjectThirdParty(libraries=['abseil-cpp', 're2', 'cares', 'protobuf', 'zlib']) + +if grpc_env.ToolchainIs('gcc', 'clang'): + grpc_env.Append( + CCFLAGS=[ + '-Wno-sign-compare', + ], + ) + +grpc_env.Append( + CPPDEFINES=[ + '_SILENCE_CXX17_ITERATOR_BASE_CLASS_DEPRECATION_WARNING', + ], + ) + +if grpc_env.ToolchainIs('msvc'): + grpc_env.Append( + CCFLAGS=[ + '/wd4334', # '<<': result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?) + '/wd4116', # unnamed type definition in parentheses + '/wd4146', # unary minus operator applied to unsigned type, result still unsigned + '/wd4715', # not all control paths return a value + '/wd4200', # nonstandard extension used: zero-sized array in struct/union + '/wd4312', # 'reinterpret_cast': conversion from 'unsigned int' to 'void *' of greater size + '/wd4090', # 'function': different 'const' qualifiers + + ], + CPPDEFINES=[ + '_SILENCE_CXX17_ITERATOR_BASE_CLASS_DEPRECATION_WARNING', + ], + ) + +grpc_root = grpc_env.Dir(".").srcnode() + +upb_env = grpc_env.Clone() +upb_env.Append( + CPPPATH=[ + grpc_root.Dir('dist/third_party/upb'), + grpc_root.Dir('dist/src/core/ext/upb-generated'), + grpc_root.Dir('dist/src/core/ext/upbdefs-generated'), + ], +) + +upb_env.Library( + target='upb', + source=[ + "dist/third_party/upb/upb/decode_fast.c", + "dist/third_party/upb/upb/decode.c", + "dist/third_party/upb/upb/def.c", + "dist/third_party/upb/upb/encode.c", + "dist/third_party/upb/upb/msg.c", + "dist/third_party/upb/upb/reflection.c", + "dist/third_party/upb/upb/table.c", + "dist/third_party/upb/upb/text_encode.c", + "dist/third_party/upb/upb/upb.c", + "dist/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c", + "dist/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c", + ], +) + +address_sorting_env = grpc_env.Clone() +address_sorting_env.Append( + CPPPATH=[ + grpc_root.Dir('dist/third_party/address_sorting/include'), + ], +) + +address_sorting_env.Library( + target='address_sorting', + source=[ + "dist/third_party/address_sorting/address_sorting.c", + "dist/third_party/address_sorting/address_sorting_posix.c", + "dist/third_party/address_sorting/address_sorting_windows.c", + ], +) + +grpc_env.Append(CPPPATH=[ + grpc_root.Dir('dist'), + grpc_env.Dir('dist').get_path(), + grpc_root.Dir('dist/include'), + grpc_root.Dir('dist/third_party/upb'), + grpc_root.Dir('dist/third_party/xxhash'), + grpc_root.Dir('dist/src/core/ext/upb-generated'), + grpc_root.Dir('dist/src/core/ext/upbdefs-generated'), + grpc_root.Dir('dist/third_party/address_sorting/include'), + grpc_root.Dir('dist/third_party/address_sorting/include'), +]) + +protobuf_plugin_env = grpc_env.Clone(NINJA_GENSOURCE_INDEPENDENT=True) +# This should match the default $PROTOC_GRPC_PLUGIN bin name for everything to be seamless +# so if for some reason this name needs to change, make sure to update the default as well. +protobuf_plugin_bin = protobuf_plugin_env.Program( + target='grpc_cpp_plugin', + source=['dist/src/compiler/cpp_plugin.cc'], + LIBDEPS=[ + 'grpc_plugin_support', + ], + AIB_COMPONENT='protobuf', +) + +protobuf_plugin_env.Library( + target='grpc_plugin_support', + source=[ + 'dist/src/compiler/cpp_generator.cc', + 'dist/src/compiler/csharp_generator.cc', + 'dist/src/compiler/node_generator.cc', + 'dist/src/compiler/objective_c_generator.cc', + 'dist/src/compiler/php_generator.cc', + 'dist/src/compiler/python_generator.cc', + 'dist/src/compiler/ruby_generator.cc', + ], + LIBDEPS=[ + '$BUILD_DIR/third_party/protobuf/protobuf', + '$BUILD_DIR/third_party/protobuf/protoc', + ], +) + +gpr_env = grpc_env.Clone() + +# older rhel7 platforms with older glibc give a warning `__warn_memset_zero_len` which +# can not be selectively repressed, so we are disabling all warnings for this library. +if gpr_env['TARGET_ARCH'] in ['x86_64', 's390x', 'ppc64le']: + gpr_env.Append( + CCFLAGS=[ + '-Wno-error', + ], + LINKFLAGS=[ + '-Wl,--no-fatal-warnings', + ], + ) + +gpr_env.Library( + target='gpr', + source = [ + "dist/src/core/ext/upb-generated/google/api/annotations.upb.c", + "dist/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c", + "dist/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c", + "dist/src/core/ext/upb-generated/google/api/http.upb.c", + "dist/src/core/ext/upb-generated/google/protobuf/any.upb.c", + "dist/src/core/ext/upb-generated/google/protobuf/duration.upb.c", + "dist/src/core/ext/upb-generated/google/protobuf/empty.upb.c", + "dist/src/core/ext/upb-generated/google/protobuf/struct.upb.c", + "dist/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c", + "dist/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c", + "dist/src/core/ext/upb-generated/google/rpc/status.upb.c", + "dist/src/core/lib/gpr/alloc.cc", + "dist/src/core/lib/gpr/atm.cc", + "dist/src/core/lib/gpr/cpu_iphone.cc", + "dist/src/core/lib/gpr/cpu_linux.cc", + "dist/src/core/lib/gpr/cpu_posix.cc", + "dist/src/core/lib/gpr/cpu_windows.cc", + "dist/src/core/lib/gpr/env_linux.cc", + "dist/src/core/lib/gpr/env_posix.cc", + "dist/src/core/lib/gpr/env_windows.cc", + "dist/src/core/lib/gpr/log.cc", + "dist/src/core/lib/gpr/log_android.cc", + "dist/src/core/lib/gpr/log_linux.cc", + "dist/src/core/lib/gpr/log_posix.cc", + "dist/src/core/lib/gpr/log_windows.cc", + "dist/src/core/lib/gpr/murmur_hash.cc", + "dist/src/core/lib/gpr/string.cc", + "dist/src/core/lib/gpr/string_posix.cc", + "dist/src/core/lib/gpr/string_util_windows.cc", + "dist/src/core/lib/gpr/string_windows.cc", + "dist/src/core/lib/gpr/sync.cc", + "dist/src/core/lib/gpr/sync_abseil.cc", + "dist/src/core/lib/gpr/sync_posix.cc", + "dist/src/core/lib/gpr/sync_windows.cc", + "dist/src/core/lib/gpr/time.cc", + "dist/src/core/lib/gpr/time_posix.cc", + "dist/src/core/lib/gpr/time_precise.cc", + "dist/src/core/lib/gpr/time_windows.cc", + "dist/src/core/lib/gpr/tls_pthread.cc", + "dist/src/core/lib/gpr/tmpfile_msys.cc", + "dist/src/core/lib/gpr/tmpfile_posix.cc", + "dist/src/core/lib/gpr/tmpfile_windows.cc", + "dist/src/core/lib/gpr/wrap_memcpy.cc", + "dist/src/core/lib/gprpp/arena.cc", + "dist/src/core/lib/gprpp/examine_stack.cc", + "dist/src/core/lib/gprpp/fork.cc", + "dist/src/core/lib/gprpp/global_config_env.cc", + "dist/src/core/lib/gprpp/host_port.cc", + "dist/src/core/lib/gprpp/mpscq.cc", + "dist/src/core/lib/gprpp/stat_posix.cc", + "dist/src/core/lib/gprpp/stat_windows.cc", + "dist/src/core/lib/gprpp/status_helper.cc", + "dist/src/core/lib/gprpp/thd_posix.cc", + "dist/src/core/lib/gprpp/thd_windows.cc", + "dist/src/core/lib/gprpp/time_util.cc", + "dist/src/core/lib/profiling/basic_timers.cc", + "dist/src/core/lib/profiling/stap_timers.cc", + ], + LIBDEPS=[ + '$BUILD_DIR/third_party/abseil-cpp-master/absl_bad_optional_access', + '$BUILD_DIR/third_party/abseil-cpp-master/absl_base', + '$BUILD_DIR/third_party/abseil-cpp-master/absl_civil_time', + '$BUILD_DIR/third_party/abseil-cpp-master/absl_cord', + '$BUILD_DIR/third_party/abseil-cpp-master/absl_debugging_internal', + '$BUILD_DIR/third_party/abseil-cpp-master/absl_demangle_internal', + '$BUILD_DIR/third_party/abseil-cpp-master/absl_graphcycles_internal', + '$BUILD_DIR/third_party/abseil-cpp-master/absl_int128', + '$BUILD_DIR/third_party/abseil-cpp-master/absl_log_severity', + '$BUILD_DIR/third_party/abseil-cpp-master/absl_malloc_internal', + '$BUILD_DIR/third_party/abseil-cpp-master/absl_raw_logging_internal', + '$BUILD_DIR/third_party/abseil-cpp-master/absl_spinlock_wait', + '$BUILD_DIR/third_party/abseil-cpp-master/absl_stacktrace', + '$BUILD_DIR/third_party/abseil-cpp-master/absl_status', + '$BUILD_DIR/third_party/abseil-cpp-master/absl_str_format_internal', + '$BUILD_DIR/third_party/abseil-cpp-master/absl_strings', + '$BUILD_DIR/third_party/abseil-cpp-master/absl_strings_internal', + '$BUILD_DIR/third_party/abseil-cpp-master/absl_symbolize', + '$BUILD_DIR/third_party/abseil-cpp-master/absl_synchronization', + '$BUILD_DIR/third_party/abseil-cpp-master/absl_throw_delegate', + '$BUILD_DIR/third_party/abseil-cpp-master/absl_time', + '$BUILD_DIR/third_party/abseil-cpp-master/absl_time_zone', + 'upb', + ] +) + +grpc_env.Library( + target='grpc', + source=[ + "dist/src/core/ext/filters/census/grpc_context.cc", + "dist/src/core/ext/filters/client_channel/backend_metric.cc", + "dist/src/core/ext/filters/client_channel/backup_poller.cc", + "dist/src/core/ext/filters/client_channel/channel_connectivity.cc", + "dist/src/core/ext/filters/client_channel/client_channel.cc", + "dist/src/core/ext/filters/client_channel/client_channel_channelz.cc", + "dist/src/core/ext/filters/client_channel/client_channel_factory.cc", + "dist/src/core/ext/filters/client_channel/client_channel_plugin.cc", + "dist/src/core/ext/filters/client_channel/config_selector.cc", + "dist/src/core/ext/filters/client_channel/dynamic_filters.cc", + "dist/src/core/ext/filters/client_channel/global_subchannel_pool.cc", + "dist/src/core/ext/filters/client_channel/health/health_check_client.cc", + "dist/src/core/ext/filters/client_channel/http_connect_handshaker.cc", + "dist/src/core/ext/filters/client_channel/http_proxy.cc", + "dist/src/core/ext/filters/client_channel/lb_policy.cc", + "dist/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc", + "dist/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc", + "dist/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc", + "dist/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc", + "dist/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc", + "dist/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc", + "dist/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc", + "dist/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc", + "dist/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc", + "dist/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc", + "dist/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc", + "dist/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc", + "dist/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc", + "dist/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc", + "dist/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc", + "dist/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc", + "dist/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc", + "dist/src/core/ext/filters/client_channel/lb_policy_registry.cc", + "dist/src/core/ext/filters/client_channel/local_subchannel_pool.cc", + "dist/src/core/ext/filters/client_channel/proxy_mapper_registry.cc", + "dist/src/core/ext/filters/client_channel/resolver.cc", + "dist/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc", + "dist/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc", + "dist/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc", + "dist/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc", + "dist/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc", + "dist/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc", + "dist/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_event_engine.cc", + "dist/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc", + "dist/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc", + "dist/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc", + "dist/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.cc", + "dist/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc", + "dist/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc", + "dist/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc", + "dist/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc", + "dist/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc", + "dist/src/core/ext/filters/client_channel/resolver_registry.cc", + "dist/src/core/ext/filters/client_channel/resolver_result_parsing.cc", + "dist/src/core/ext/filters/client_channel/retry_filter.cc", + "dist/src/core/ext/filters/client_channel/retry_service_config.cc", + "dist/src/core/ext/filters/client_channel/retry_throttle.cc", + "dist/src/core/ext/filters/client_channel/server_address.cc", + "dist/src/core/ext/filters/client_channel/service_config.cc", + "dist/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc", + "dist/src/core/ext/filters/client_channel/service_config_parser.cc", + "dist/src/core/ext/filters/client_channel/subchannel.cc", + "dist/src/core/ext/filters/client_channel/subchannel_pool_interface.cc", + "dist/src/core/ext/filters/client_idle/client_idle_filter.cc", + "dist/src/core/ext/filters/deadline/deadline_filter.cc", + "dist/src/core/ext/filters/fault_injection/fault_injection_filter.cc", + "dist/src/core/ext/filters/fault_injection/service_config_parser.cc", + "dist/src/core/ext/filters/http/client/http_client_filter.cc", + "dist/src/core/ext/filters/http/client_authority_filter.cc", + "dist/src/core/ext/filters/http/http_filters_plugin.cc", + "dist/src/core/ext/filters/http/message_compress/message_compress_filter.cc", + "dist/src/core/ext/filters/http/message_compress/message_decompress_filter.cc", + "dist/src/core/ext/filters/http/server/http_server_filter.cc", + "dist/src/core/ext/filters/max_age/max_age_filter.cc", + "dist/src/core/ext/filters/message_size/message_size_filter.cc", + "dist/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc", + "dist/src/core/ext/filters/workarounds/workaround_utils.cc", + "dist/src/core/ext/transport/chttp2/alpn/alpn.cc", + "dist/src/core/ext/transport/chttp2/client/authority.cc", + "dist/src/core/ext/transport/chttp2/client/chttp2_connector.cc", + "dist/src/core/ext/transport/chttp2/client/insecure/channel_create.cc", + "dist/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc", + "dist/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc", + "dist/src/core/ext/transport/chttp2/server/chttp2_server.cc", + "dist/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc", + "dist/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc", + "dist/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc", + "dist/src/core/ext/transport/chttp2/transport/bin_decoder.cc", + "dist/src/core/ext/transport/chttp2/transport/bin_encoder.cc", + "dist/src/core/ext/transport/chttp2/transport/chttp2_plugin.cc", + "dist/src/core/ext/transport/chttp2/transport/chttp2_transport.cc", + "dist/src/core/ext/transport/chttp2/transport/context_list.cc", + "dist/src/core/ext/transport/chttp2/transport/flow_control.cc", + "dist/src/core/ext/transport/chttp2/transport/frame_data.cc", + "dist/src/core/ext/transport/chttp2/transport/frame_goaway.cc", + "dist/src/core/ext/transport/chttp2/transport/frame_ping.cc", + "dist/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc", + "dist/src/core/ext/transport/chttp2/transport/frame_settings.cc", + "dist/src/core/ext/transport/chttp2/transport/frame_window_update.cc", + "dist/src/core/ext/transport/chttp2/transport/hpack_encoder.cc", + "dist/src/core/ext/transport/chttp2/transport/hpack_parser.cc", + "dist/src/core/ext/transport/chttp2/transport/hpack_table.cc", + "dist/src/core/ext/transport/chttp2/transport/http2_settings.cc", + "dist/src/core/ext/transport/chttp2/transport/huffsyms.cc", + "dist/src/core/ext/transport/chttp2/transport/incoming_metadata.cc", + "dist/src/core/ext/transport/chttp2/transport/parsing.cc", + "dist/src/core/ext/transport/chttp2/transport/stream_lists.cc", + "dist/src/core/ext/transport/chttp2/transport/stream_map.cc", + "dist/src/core/ext/transport/chttp2/transport/varint.cc", + "dist/src/core/ext/transport/chttp2/transport/writing.cc", + "dist/src/core/ext/transport/inproc/inproc_plugin.cc", + "dist/src/core/ext/transport/inproc/inproc_transport.cc", + "dist/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c", + "dist/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c", + "dist/src/core/ext/upb-generated/envoy/annotations/resource.upb.c", + "dist/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c", + "dist/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c", + "dist/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c", + "dist/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c", + "dist/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c", + "dist/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c", + "dist/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c", + "dist/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c", + "dist/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c", + "dist/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c", + "dist/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c", + "dist/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c", + "dist/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c", + "dist/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c", + "dist/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c", + "dist/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c", + "dist/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c", + "dist/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c", + "dist/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c", + "dist/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c", + "dist/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c", + "dist/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c", + "dist/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c", + "dist/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c", + "dist/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c", + "dist/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c", + "dist/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c", + "dist/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c", + "dist/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c", + "dist/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c", + "dist/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c", + "dist/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c", + "dist/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c", + "dist/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c", + "dist/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c", + "dist/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c", + "dist/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c", + "dist/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c", + "dist/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c", + "dist/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c", + "dist/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c", + "dist/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c", + "dist/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.c", + "dist/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c", + "dist/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c", + "dist/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.c", + "dist/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.c", + "dist/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c", + "dist/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c", + "dist/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c", + "dist/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c", + "dist/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c", + "dist/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c", + "dist/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c", + "dist/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c", + "dist/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c", + "dist/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c", + "dist/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c", + "dist/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c", + "dist/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c", + "dist/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c", + "dist/src/core/ext/upb-generated/envoy/type/v3/http.upb.c", + "dist/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c", + "dist/src/core/ext/upb-generated/envoy/type/v3/range.upb.c", + "dist/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c", + "dist/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c", + "dist/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c", + "dist/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c", + "dist/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c", + "dist/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c", + "dist/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c", + "dist/src/core/ext/upb-generated/udpa/annotations/security.upb.c", + "dist/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c", + "dist/src/core/ext/upb-generated/udpa/annotations/status.upb.c", + "dist/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c", + "dist/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c", + "dist/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.c", + "dist/src/core/ext/upb-generated/validate/validate.upb.c", + "dist/src/core/ext/upb-generated/xds/core/v3/authority.upb.c", + "dist/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c", + "dist/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c", + "dist/src/core/ext/upb-generated/xds/core/v3/resource.upb.c", + "dist/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c", + "dist/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c", + "dist/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/google/api/http.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c", + "dist/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c", + "dist/src/core/ext/xds/certificate_provider_registry.cc", + "dist/src/core/ext/xds/certificate_provider_store.cc", + "dist/src/core/ext/xds/file_watcher_certificate_provider_factory.cc", + "dist/src/core/ext/xds/xds_api.cc", + "dist/src/core/ext/xds/xds_bootstrap.cc", + "dist/src/core/ext/xds/xds_certificate_provider.cc", + "dist/src/core/ext/xds/xds_client.cc", + "dist/src/core/ext/xds/xds_client_stats.cc", + "dist/src/core/ext/xds/xds_http_fault_filter.cc", + "dist/src/core/ext/xds/xds_http_filters.cc", + "dist/src/core/ext/xds/xds_server_config_fetcher.cc", + "dist/src/core/lib/address_utils/parse_address.cc", + "dist/src/core/lib/address_utils/sockaddr_utils.cc", + "dist/src/core/lib/avl/avl.cc", + "dist/src/core/lib/backoff/backoff.cc", + "dist/src/core/lib/channel/channel_args.cc", + "dist/src/core/lib/channel/channel_stack.cc", + "dist/src/core/lib/channel/channel_stack_builder.cc", + "dist/src/core/lib/channel/channel_trace.cc", + "dist/src/core/lib/channel/channelz.cc", + "dist/src/core/lib/channel/channelz_registry.cc", + "dist/src/core/lib/channel/connected_channel.cc", + "dist/src/core/lib/channel/handshaker.cc", + "dist/src/core/lib/channel/handshaker_registry.cc", + "dist/src/core/lib/channel/status_util.cc", + "dist/src/core/lib/compression/compression.cc", + "dist/src/core/lib/compression/compression_args.cc", + "dist/src/core/lib/compression/compression_internal.cc", + "dist/src/core/lib/compression/message_compress.cc", + "dist/src/core/lib/compression/stream_compression.cc", + "dist/src/core/lib/compression/stream_compression_gzip.cc", + "dist/src/core/lib/compression/stream_compression_identity.cc", + "dist/src/core/lib/debug/stats.cc", + "dist/src/core/lib/debug/stats_data.cc", + "dist/src/core/lib/debug/trace.cc", + "dist/src/core/lib/event_engine/endpoint_config.cc", + "dist/src/core/lib/event_engine/event_engine.cc", + "dist/src/core/lib/event_engine/slice_allocator.cc", + "dist/src/core/lib/event_engine/sockaddr.cc", + "dist/src/core/lib/http/format_request.cc", + "dist/src/core/lib/http/httpcli.cc", + "dist/src/core/lib/http/httpcli_security_connector.cc", + "dist/src/core/lib/http/parser.cc", + "dist/src/core/lib/iomgr/buffer_list.cc", + "dist/src/core/lib/iomgr/call_combiner.cc", + "dist/src/core/lib/iomgr/cfstream_handle.cc", + "dist/src/core/lib/iomgr/combiner.cc", + "dist/src/core/lib/iomgr/dualstack_socket_posix.cc", + "dist/src/core/lib/iomgr/endpoint.cc", + "dist/src/core/lib/iomgr/endpoint_cfstream.cc", + "dist/src/core/lib/iomgr/endpoint_pair_event_engine.cc", + "dist/src/core/lib/iomgr/endpoint_pair_posix.cc", + "dist/src/core/lib/iomgr/endpoint_pair_uv.cc", + "dist/src/core/lib/iomgr/endpoint_pair_windows.cc", + "dist/src/core/lib/iomgr/error.cc", + "dist/src/core/lib/iomgr/error_cfstream.cc", + "dist/src/core/lib/iomgr/ev_apple.cc", + "dist/src/core/lib/iomgr/ev_epoll1_linux.cc", + "dist/src/core/lib/iomgr/ev_epollex_linux.cc", + "dist/src/core/lib/iomgr/ev_poll_posix.cc", + "dist/src/core/lib/iomgr/ev_posix.cc", + "dist/src/core/lib/iomgr/ev_windows.cc", + "dist/src/core/lib/iomgr/event_engine/closure.cc", + "dist/src/core/lib/iomgr/event_engine/endpoint.cc", + "dist/src/core/lib/iomgr/event_engine/iomgr.cc", + "dist/src/core/lib/iomgr/event_engine/pollset.cc", + "dist/src/core/lib/iomgr/event_engine/resolved_address_internal.cc", + "dist/src/core/lib/iomgr/event_engine/resolver.cc", + "dist/src/core/lib/iomgr/event_engine/tcp.cc", + "dist/src/core/lib/iomgr/event_engine/timer.cc", + "dist/src/core/lib/iomgr/exec_ctx.cc", + "dist/src/core/lib/iomgr/executor.cc", + "dist/src/core/lib/iomgr/executor/mpmcqueue.cc", + "dist/src/core/lib/iomgr/executor/threadpool.cc", + "dist/src/core/lib/iomgr/fork_posix.cc", + "dist/src/core/lib/iomgr/fork_windows.cc", + "dist/src/core/lib/iomgr/gethostname_fallback.cc", + "dist/src/core/lib/iomgr/gethostname_host_name_max.cc", + "dist/src/core/lib/iomgr/gethostname_sysconf.cc", + "dist/src/core/lib/iomgr/grpc_if_nametoindex_posix.cc", + "dist/src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc", + "dist/src/core/lib/iomgr/internal_errqueue.cc", + "dist/src/core/lib/iomgr/iocp_windows.cc", + "dist/src/core/lib/iomgr/iomgr.cc", + "dist/src/core/lib/iomgr/iomgr_custom.cc", + "dist/src/core/lib/iomgr/iomgr_internal.cc", + "dist/src/core/lib/iomgr/iomgr_posix.cc", + "dist/src/core/lib/iomgr/iomgr_posix_cfstream.cc", + "dist/src/core/lib/iomgr/iomgr_uv.cc", + "dist/src/core/lib/iomgr/iomgr_windows.cc", + "dist/src/core/lib/iomgr/is_epollexclusive_available.cc", + "dist/src/core/lib/iomgr/load_file.cc", + "dist/src/core/lib/iomgr/lockfree_event.cc", + "dist/src/core/lib/iomgr/polling_entity.cc", + "dist/src/core/lib/iomgr/pollset.cc", + "dist/src/core/lib/iomgr/pollset_custom.cc", + "dist/src/core/lib/iomgr/pollset_set.cc", + "dist/src/core/lib/iomgr/pollset_set_custom.cc", + "dist/src/core/lib/iomgr/pollset_set_windows.cc", + "dist/src/core/lib/iomgr/pollset_uv.cc", + "dist/src/core/lib/iomgr/pollset_windows.cc", + "dist/src/core/lib/iomgr/resolve_address.cc", + "dist/src/core/lib/iomgr/resolve_address_custom.cc", + "dist/src/core/lib/iomgr/resolve_address_posix.cc", + "dist/src/core/lib/iomgr/resolve_address_windows.cc", + "dist/src/core/lib/iomgr/resource_quota.cc", + "dist/src/core/lib/iomgr/socket_factory_posix.cc", + "dist/src/core/lib/iomgr/socket_mutator.cc", + "dist/src/core/lib/iomgr/socket_utils_common_posix.cc", + "dist/src/core/lib/iomgr/socket_utils_linux.cc", + "dist/src/core/lib/iomgr/socket_utils_posix.cc", + "dist/src/core/lib/iomgr/socket_utils_uv.cc", + "dist/src/core/lib/iomgr/socket_utils_windows.cc", + "dist/src/core/lib/iomgr/socket_windows.cc", + "dist/src/core/lib/iomgr/tcp_client.cc", + "dist/src/core/lib/iomgr/tcp_client_cfstream.cc", + "dist/src/core/lib/iomgr/tcp_client_custom.cc", + "dist/src/core/lib/iomgr/tcp_client_posix.cc", + "dist/src/core/lib/iomgr/tcp_client_windows.cc", + "dist/src/core/lib/iomgr/tcp_custom.cc", + "dist/src/core/lib/iomgr/tcp_posix.cc", + "dist/src/core/lib/iomgr/tcp_server.cc", + "dist/src/core/lib/iomgr/tcp_server_custom.cc", + "dist/src/core/lib/iomgr/tcp_server_posix.cc", + "dist/src/core/lib/iomgr/tcp_server_utils_posix_common.cc", + "dist/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc", + "dist/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc", + "dist/src/core/lib/iomgr/tcp_server_windows.cc", + "dist/src/core/lib/iomgr/tcp_uv.cc", + "dist/src/core/lib/iomgr/tcp_windows.cc", + "dist/src/core/lib/iomgr/time_averaged_stats.cc", + "dist/src/core/lib/iomgr/timer.cc", + "dist/src/core/lib/iomgr/timer_custom.cc", + "dist/src/core/lib/iomgr/timer_generic.cc", + "dist/src/core/lib/iomgr/timer_heap.cc", + "dist/src/core/lib/iomgr/timer_manager.cc", + "dist/src/core/lib/iomgr/timer_uv.cc", + "dist/src/core/lib/iomgr/udp_server.cc", + "dist/src/core/lib/iomgr/unix_sockets_posix.cc", + "dist/src/core/lib/iomgr/unix_sockets_posix_noop.cc", + "dist/src/core/lib/iomgr/wakeup_fd_eventfd.cc", + "dist/src/core/lib/iomgr/wakeup_fd_nospecial.cc", + "dist/src/core/lib/iomgr/wakeup_fd_pipe.cc", + "dist/src/core/lib/iomgr/wakeup_fd_posix.cc", + "dist/src/core/lib/iomgr/work_serializer.cc", + "dist/src/core/lib/json/json_reader.cc", + "dist/src/core/lib/json/json_util.cc", + "dist/src/core/lib/json/json_writer.cc", + "dist/src/core/lib/matchers/matchers.cc", + "dist/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc", + "dist/src/core/lib/security/authorization/evaluate_args.cc", + "dist/src/core/lib/security/context/security_context.cc", + "dist/src/core/lib/security/credentials/alts/alts_credentials.cc", + "dist/src/core/lib/security/credentials/alts/check_gcp_environment.cc", + "dist/src/core/lib/security/credentials/alts/check_gcp_environment_linux.cc", + "dist/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc", + "dist/src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc", + "dist/src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc", + "dist/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc", + "dist/src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc", + "dist/src/core/lib/security/credentials/composite/composite_credentials.cc", + "dist/src/core/lib/security/credentials/credentials.cc", + "dist/src/core/lib/security/credentials/credentials_metadata.cc", + "dist/src/core/lib/security/credentials/external/aws_external_account_credentials.cc", + "dist/src/core/lib/security/credentials/external/aws_request_signer.cc", + "dist/src/core/lib/security/credentials/external/external_account_credentials.cc", + "dist/src/core/lib/security/credentials/external/file_external_account_credentials.cc", + "dist/src/core/lib/security/credentials/external/url_external_account_credentials.cc", + "dist/src/core/lib/security/credentials/fake/fake_credentials.cc", + "dist/src/core/lib/security/credentials/google_default/credentials_generic.cc", + "dist/src/core/lib/security/credentials/google_default/google_default_credentials.cc", + "dist/src/core/lib/security/credentials/iam/iam_credentials.cc", + "dist/src/core/lib/security/credentials/insecure/insecure_credentials.cc", + "dist/src/core/lib/security/credentials/jwt/json_token.cc", + "dist/src/core/lib/security/credentials/jwt/jwt_credentials.cc", + "dist/src/core/lib/security/credentials/jwt/jwt_verifier.cc", + "dist/src/core/lib/security/credentials/local/local_credentials.cc", + "dist/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc", + "dist/src/core/lib/security/credentials/plugin/plugin_credentials.cc", + "dist/src/core/lib/security/credentials/ssl/ssl_credentials.cc", + "dist/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc", + "dist/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc", + "dist/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc", + "dist/src/core/lib/security/credentials/tls/tls_credentials.cc", + "dist/src/core/lib/security/credentials/tls/tls_utils.cc", + "dist/src/core/lib/security/credentials/xds/xds_credentials.cc", + "dist/src/core/lib/security/security_connector/alts/alts_security_connector.cc", + "dist/src/core/lib/security/security_connector/fake/fake_security_connector.cc", + "dist/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc", + "dist/src/core/lib/security/security_connector/load_system_roots_fallback.cc", + "dist/src/core/lib/security/security_connector/load_system_roots_linux.cc", + "dist/src/core/lib/security/security_connector/local/local_security_connector.cc", + "dist/src/core/lib/security/security_connector/security_connector.cc", + "dist/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc", + "dist/src/core/lib/security/security_connector/ssl_utils.cc", + "dist/src/core/lib/security/security_connector/ssl_utils_config.cc", + "dist/src/core/lib/security/security_connector/tls/tls_security_connector.cc", + "dist/src/core/lib/security/transport/client_auth_filter.cc", + "dist/src/core/lib/security/transport/secure_endpoint.cc", + "dist/src/core/lib/security/transport/security_handshaker.cc", + "dist/src/core/lib/security/transport/server_auth_filter.cc", + "dist/src/core/lib/security/transport/tsi_error.cc", + "dist/src/core/lib/security/util/json_util.cc", + "dist/src/core/lib/slice/b64.cc", + "dist/src/core/lib/slice/percent_encoding.cc", + "dist/src/core/lib/slice/slice.cc", + "dist/src/core/lib/slice/slice_buffer.cc", + "dist/src/core/lib/slice/slice_intern.cc", + "dist/src/core/lib/slice/slice_string_helpers.cc", + "dist/src/core/lib/surface/api_trace.cc", + "dist/src/core/lib/surface/byte_buffer.cc", + "dist/src/core/lib/surface/byte_buffer_reader.cc", + "dist/src/core/lib/surface/call.cc", + "dist/src/core/lib/surface/call_details.cc", + "dist/src/core/lib/surface/call_log_batch.cc", + "dist/src/core/lib/surface/channel.cc", + "dist/src/core/lib/surface/channel_init.cc", + "dist/src/core/lib/surface/channel_ping.cc", + "dist/src/core/lib/surface/channel_stack_type.cc", + "dist/src/core/lib/surface/completion_queue.cc", + "dist/src/core/lib/surface/completion_queue_factory.cc", + "dist/src/core/lib/surface/event_string.cc", + "dist/src/core/lib/surface/init.cc", + "dist/src/core/lib/surface/init_secure.cc", + "dist/src/core/lib/surface/lame_client.cc", + "dist/src/core/lib/surface/metadata_array.cc", + "dist/src/core/lib/surface/server.cc", + "dist/src/core/lib/surface/validate_metadata.cc", + "dist/src/core/lib/surface/version.cc", + "dist/src/core/lib/transport/authority_override.cc", + "dist/src/core/lib/transport/bdp_estimator.cc", + "dist/src/core/lib/transport/byte_stream.cc", + "dist/src/core/lib/transport/connectivity_state.cc", + "dist/src/core/lib/transport/error_utils.cc", + "dist/src/core/lib/transport/metadata.cc", + "dist/src/core/lib/transport/metadata_batch.cc", + "dist/src/core/lib/transport/pid_controller.cc", + "dist/src/core/lib/transport/static_metadata.cc", + "dist/src/core/lib/transport/status_conversion.cc", + "dist/src/core/lib/transport/status_metadata.cc", + "dist/src/core/lib/transport/timeout_encoding.cc", + "dist/src/core/lib/transport/transport.cc", + "dist/src/core/lib/transport/transport_op_string.cc", + "dist/src/core/lib/uri/uri_parser.cc", + "dist/src/core/plugin_registry/grpc_plugin_registry.cc", + "dist/src/core/tsi/alts/crypt/aes_gcm.cc", + "dist/src/core/tsi/alts/crypt/gsec.cc", + "dist/src/core/tsi/alts/frame_protector/alts_counter.cc", + "dist/src/core/tsi/alts/frame_protector/alts_crypter.cc", + "dist/src/core/tsi/alts/frame_protector/alts_frame_protector.cc", + "dist/src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.cc", + "dist/src/core/tsi/alts/frame_protector/alts_seal_privacy_integrity_crypter.cc", + "dist/src/core/tsi/alts/frame_protector/alts_unseal_privacy_integrity_crypter.cc", + "dist/src/core/tsi/alts/frame_protector/frame_handler.cc", + "dist/src/core/tsi/alts/handshaker/alts_handshaker_client.cc", + "dist/src/core/tsi/alts/handshaker/alts_shared_resource.cc", + "dist/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc", + "dist/src/core/tsi/alts/handshaker/alts_tsi_utils.cc", + "dist/src/core/tsi/alts/handshaker/transport_security_common_api.cc", + "dist/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc", + "dist/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.cc", + "dist/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc", + "dist/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.cc", + "dist/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc", + "dist/src/core/tsi/fake_transport_security.cc", + "dist/src/core/tsi/local_transport_security.cc", + "dist/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc", + "dist/src/core/tsi/ssl/session_cache/ssl_session_cache.cc", + "dist/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc", + "dist/src/core/tsi/ssl_transport_security.cc", + "dist/src/core/tsi/transport_security.cc", + "dist/src/core/tsi/transport_security_grpc.cc", + ], + LIBDEPS=[ + '$BUILD_DIR/third_party/abseil-cpp-master/absl_bad_variant_access', + '$BUILD_DIR/third_party/abseil-cpp-master/absl_city', + '$BUILD_DIR/third_party/abseil-cpp-master/absl_exponential_biased', + '$BUILD_DIR/third_party/abseil-cpp-master/absl_hash', + '$BUILD_DIR/third_party/abseil-cpp-master/absl_hashtablez_sampler', + '$BUILD_DIR/third_party/abseil-cpp-master/absl_raw_hash_set', + '$BUILD_DIR/third_party/abseil-cpp-master/absl_statusor', + '$BUILD_DIR/third_party/abseil-cpp-master/absl_wyhash', + '$BUILD_DIR/third_party/cares/cares', + '$BUILD_DIR/third_party/re2/re2', + '$BUILD_DIR/third_party/shim_zlib', + 'address_sorting', + 'gpr', + ], +) + +grpc_env.Library( + target='grpc++', + source=[ + 'dist/src/cpp/client/channel_cc.cc', + 'dist/src/cpp/client/client_callback.cc', + 'dist/src/cpp/client/client_context.cc', + 'dist/src/cpp/client/client_interceptor.cc', + 'dist/src/cpp/client/create_channel.cc', + 'dist/src/cpp/client/create_channel_internal.cc', + 'dist/src/cpp/client/create_channel_posix.cc', + 'dist/src/cpp/client/credentials_cc.cc', + 'dist/src/cpp/client/insecure_credentials.cc', + 'dist/src/cpp/client/secure_credentials.cc', + 'dist/src/cpp/client/xds_credentials.cc', + 'dist/src/cpp/codegen/codegen_init.cc', + 'dist/src/cpp/common/alarm.cc', + 'dist/src/cpp/common/auth_property_iterator.cc', + 'dist/src/cpp/common/channel_arguments.cc', + 'dist/src/cpp/common/channel_filter.cc', + 'dist/src/cpp/common/completion_queue_cc.cc', + 'dist/src/cpp/common/core_codegen.cc', + 'dist/src/cpp/common/resource_quota_cc.cc', + 'dist/src/cpp/common/rpc_method.cc', + 'dist/src/cpp/common/secure_auth_context.cc', + 'dist/src/cpp/common/secure_channel_arguments.cc', + 'dist/src/cpp/common/secure_create_auth_context.cc', + 'dist/src/cpp/common/tls_certificate_provider.cc', + 'dist/src/cpp/common/tls_credentials_options.cc', + 'dist/src/cpp/common/tls_credentials_options_util.cc', + 'dist/src/cpp/common/validate_service_config.cc', + 'dist/src/cpp/common/version_cc.cc', + 'dist/src/cpp/server/async_generic_service.cc', + 'dist/src/cpp/server/channel_argument_option.cc', + 'dist/src/cpp/server/create_default_thread_pool.cc', + 'dist/src/cpp/server/dynamic_thread_pool.cc', + 'dist/src/cpp/server/external_connection_acceptor_impl.cc', + 'dist/src/cpp/server/health/default_health_check_service.cc', + 'dist/src/cpp/server/health/health_check_service.cc', + 'dist/src/cpp/server/health/health_check_service_server_builder_option.cc', + 'dist/src/cpp/server/insecure_server_credentials.cc', + 'dist/src/cpp/server/secure_server_credentials.cc', + 'dist/src/cpp/server/server_builder.cc', + 'dist/src/cpp/server/server_callback.cc', + 'dist/src/cpp/server/server_cc.cc', + 'dist/src/cpp/server/server_context.cc', + 'dist/src/cpp/server/server_credentials.cc', + 'dist/src/cpp/server/server_posix.cc', + 'dist/src/cpp/server/xds_server_credentials.cc', + 'dist/src/cpp/thread_manager/thread_manager.cc', + 'dist/src/cpp/util/byte_buffer_cc.cc', + 'dist/src/cpp/util/status.cc', + 'dist/src/cpp/util/string_ref.cc', + 'dist/src/cpp/util/time_cc.cc', + ], + LIBDEPS=[ + '$BUILD_DIR/third_party/protobuf/protobuf', + 'grpc', + ], +) + +grpcxx_env = grpc_env.Clone() + +grpcxx_env.AppendUnique( + PROTOC_GEN_TYPES=['cpp'], + PROTOC_PLUGINS={ + 'grpc': { + 'plugin': '$PROTOC_GRPC_PLUGIN', + 'options': ['generate_mock_code=true'], + 'exts': ['.grpc.pb.cc', '.grpc.pb.h'], + }, + }, + CPPPATH=[grpcxx_env.Dir('.')] +) + +lib_node = grpcxx_env.Library( + target='grpc++_reflection', + source=[ + 'dist/src/cpp/ext/proto_server_reflection.cc', + 'dist/src/cpp/ext/proto_server_reflection_plugin.cc', + 'dist/src/proto/grpc/reflection/v1alpha/reflection.proto', + ], + LIBDEPS=[ + 'grpc++', + ], +) + +grpc_unittest_env = grpcxx_env.Clone() +grpc_unittest_env.InjectThirdParty(libraries=['fmt', 'variant', 'boost', 'safeint']) +grpc_unittest_env.Append( + CPPPATH=[ + '#src', + '$BUILD_DIR', + ], +) + +grpc_unittest_env.CppUnitTest( + target='grpc_lib_test', + source=[ + 'grpc_source_test.cpp', + 'dist/examples/protos/helloworld.proto', + 'dist/examples/protos/keyvaluestore.proto', + ], + LIBDEPS=[ + '$BUILD_DIR/mongo/base', + 'grpc++_reflection', + ], + SYSLIBDEPS=[ + 'ssl', + 'crypto', + ], +) + diff --git a/src/third_party/grpc/greeter_server.h b/src/third_party/grpc/greeter_server.h new file mode 100644 index 00000000000..dd13d0f115e --- /dev/null +++ b/src/third_party/grpc/greeter_server.h @@ -0,0 +1,46 @@ +/* + * + * Copyright 2015 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#include +#include +#include + +#include "grpc++/ext/proto_server_reflection_plugin.h" +#include "grpc++/grpc++.h" +#include "grpc++/health_check_service_interface.h" + +#include "helloworld.grpc.pb.h" + +using grpc::Server; +using grpc::ServerBuilder; +using grpc::ServerContext; +using grpc::Status; +using helloworld::Greeter; +using helloworld::HelloReply; +using helloworld::HelloRequest; + +// Logic and data behind the server's behavior. +class GreeterServiceImpl final : public Greeter::Service { + Status SayHello(ServerContext* context, + const HelloRequest* request, + HelloReply* reply) override { + std::string prefix("Hello "); + reply->set_message(prefix + request->name()); + return Status::OK; + } +}; \ No newline at end of file diff --git a/src/third_party/grpc/grpc_source_test.cpp b/src/third_party/grpc/grpc_source_test.cpp new file mode 100644 index 00000000000..9240ae3834d --- /dev/null +++ b/src/third_party/grpc/grpc_source_test.cpp @@ -0,0 +1,59 @@ +/** + * Copyright (C) 2022-present MongoDB, Inc. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the Server Side Public License, version 1, + * as published by MongoDB, Inc. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * Server Side Public License for more details. + * + * You should have received a copy of the Server Side Public License + * along with this program. If not, see + * . + * + * As a special exception, the copyright holders give permission to link the + * code of portions of this program with the OpenSSL library under certain + * conditions as described in each individual source file and distribute + * linked combinations including the program with the OpenSSL library. You + * must comply with the Server Side Public License in all respects for + * all of the code used other than as permitted herein. If you modify file(s) + * with this exception, you may extend this exception to your version of the + * file(s), but you are not obligated to do so. If you do not wish to do so, + * delete this exception statement from your version. If you delete this + * exception statement from all source files in the program, then also delete + * it in the license file. + */ + + + +#include +#include +#include +#include +#include + +#include "mongo/unittest/unittest.h" +#include "greeter_server.h" + +using namespace mongo; + +TEST(GrpcLibraryIntegration, StartServer) { + std::string server_address("127.0.0.1:50051"); + GreeterServiceImpl service; + + grpc::EnableDefaultHealthCheckService(true); + grpc::reflection::InitProtoReflectionServerBuilderPlugin(); + ServerBuilder builder; + // Listen on the given address without any authentication mechanism. + builder.AddListeningPort(server_address, grpc::InsecureServerCredentials()); + // Register "service" as the instance through which we'll communicate with + // clients. In this case it corresponds to an *synchronous* service. + builder.RegisterService(&service); + // Finally assemble the server. + std::unique_ptr server(builder.BuildAndStart()); + if (server == nullptr) + FAIL("Failed to start GRPC server."); +} diff --git a/src/third_party/protobuf/SConscript b/src/third_party/protobuf/SConscript new file mode 100644 index 00000000000..b9dc7198b19 --- /dev/null +++ b/src/third_party/protobuf/SConscript @@ -0,0 +1,247 @@ +Import('env') + +protobuf_env = env.Clone(NINJA_GENSOURCE_INDEPENDENT=True) + +protobuf_env.InjectThirdParty(libraries=['zlib']) + +protobuf_env.Append( + CPPDEFINES=[ + 'HAVE_CONFIG_H', + ('HAVE_ZLIB', '1'), + ('PIC', '1'), + ], +) + +if protobuf_env.ToolchainIs('gcc', 'clang'): + protobuf_env.Append( + CPPDEFINES=[ + ('HAVE_PTHREAD', '1'), + ], + CCFLAGS=[ + '-Wno-sign-compare', + '-Wno-overloaded-virtual', + ], + ) + +if protobuf_env.ToolchainIs('gcc'): + protobuf_env.Append( + CPPDEFINES=[ + ], + CCFLAGS=[ + '-Wno-stringop-overflow', + ], + ) + +if protobuf_env.ToolchainIs('msvc'): + protobuf_env.Append( + CCFLAGS=[ + '/wd4018', # signed/unsigned mismatch + '/wd4065', # switch statement contains 'default' but no 'case' labels + '/wd4146', # unary minus operator applied to unsigned type, result still unsigned + ], + CPPDEFINES=[ + '_SILENCE_CXX17_ITERATOR_BASE_CLASS_DEPRECATION_WARNING', + ], + ) + +protobuf_root = protobuf_env.Dir(".").srcnode() +protobuf_platform = protobuf_root.Dir("platform/${TARGET_OS}_${TARGET_ARCH}") +protobuf_env.Append( + CPPPATH=[ + protobuf_root.Dir("dist"), + protobuf_root.Dir("dist/src"), + ], +) + +# Passing this up to the main env +env['PROTOC_DESCRIPTOR_PROTO'] = protobuf_env.File("dist/src/google/protobuf/descriptor.proto").abspath + +protobuf_env.Library( + target='protobuf', + source=[ + "dist/src/google/protobuf/stubs/bytestream.cc", + "dist/src/google/protobuf/stubs/common.cc", + "dist/src/google/protobuf/stubs/int128.cc", + "dist/src/google/protobuf/io/io_win32.cc", + "dist/src/google/protobuf/stubs/status.cc", + "dist/src/google/protobuf/stubs/statusor.cc", + "dist/src/google/protobuf/stubs/stringpiece.cc", + "dist/src/google/protobuf/stubs/stringprintf.cc", + "dist/src/google/protobuf/stubs/structurally_valid.cc", + "dist/src/google/protobuf/stubs/strutil.cc", + "dist/src/google/protobuf/stubs/time.cc", + "dist/src/google/protobuf/any_lite.cc", + "dist/src/google/protobuf/arena.cc", + "dist/src/google/protobuf/arenastring.cc", + "dist/src/google/protobuf/generated_enum_util.cc", + "dist/src/google/protobuf/extension_set.cc", + "dist/src/google/protobuf/generated_message_util.cc", + "dist/src/google/protobuf/generated_message_table_driven_lite.cc", + "dist/src/google/protobuf/implicit_weak_message.cc", + "dist/src/google/protobuf/map.cc", + "dist/src/google/protobuf/message_lite.cc", + "dist/src/google/protobuf/parse_context.cc", + "dist/src/google/protobuf/repeated_field.cc", + "dist/src/google/protobuf/wire_format_lite.cc", + "dist/src/google/protobuf/io/coded_stream.cc", + "dist/src/google/protobuf/io/strtod.cc", + "dist/src/google/protobuf/io/zero_copy_stream.cc", + "dist/src/google/protobuf/io/zero_copy_stream_impl.cc", + "dist/src/google/protobuf/io/zero_copy_stream_impl_lite.cc", + "dist/src/google/protobuf/any.pb.cc", + "dist/src/google/protobuf/api.pb.cc", + "dist/src/google/protobuf/any.cc", + "dist/src/google/protobuf/descriptor.cc", + "dist/src/google/protobuf/descriptor_database.cc", + "dist/src/google/protobuf/descriptor.pb.cc", + "dist/src/google/protobuf/duration.pb.cc", + "dist/src/google/protobuf/dynamic_message.cc", + "dist/src/google/protobuf/empty.pb.cc", + "dist/src/google/protobuf/extension_set_heavy.cc", + "dist/src/google/protobuf/field_mask.pb.cc", + "dist/src/google/protobuf/generated_message_reflection.cc", + "dist/src/google/protobuf/generated_message_table_driven.cc", + "dist/src/google/protobuf/map_field.cc", + "dist/src/google/protobuf/message.cc", + "dist/src/google/protobuf/reflection_ops.cc", + "dist/src/google/protobuf/service.cc", + "dist/src/google/protobuf/source_context.pb.cc", + "dist/src/google/protobuf/struct.pb.cc", + "dist/src/google/protobuf/stubs/substitute.cc", + "dist/src/google/protobuf/text_format.cc", + "dist/src/google/protobuf/timestamp.pb.cc", + "dist/src/google/protobuf/type.pb.cc", + "dist/src/google/protobuf/unknown_field_set.cc", + "dist/src/google/protobuf/wire_format.cc", + "dist/src/google/protobuf/wrappers.pb.cc", + "dist/src/google/protobuf/io/gzip_stream.cc", + "dist/src/google/protobuf/io/printer.cc", + "dist/src/google/protobuf/io/tokenizer.cc", + "dist/src/google/protobuf/compiler/importer.cc", + "dist/src/google/protobuf/compiler/parser.cc", + "dist/src/google/protobuf/util/delimited_message_util.cc", + "dist/src/google/protobuf/util/field_comparator.cc", + "dist/src/google/protobuf/util/field_mask_util.cc", + "dist/src/google/protobuf/util/internal/datapiece.cc", + "dist/src/google/protobuf/util/internal/default_value_objectwriter.cc", + "dist/src/google/protobuf/util/internal/error_listener.cc", + "dist/src/google/protobuf/util/internal/field_mask_utility.cc", + "dist/src/google/protobuf/util/internal/json_escaping.cc", + "dist/src/google/protobuf/util/internal/json_objectwriter.cc", + "dist/src/google/protobuf/util/internal/json_stream_parser.cc", + "dist/src/google/protobuf/util/internal/object_writer.cc", + "dist/src/google/protobuf/util/internal/protostream_objectsource.cc", + "dist/src/google/protobuf/util/internal/protostream_objectwriter.cc", + "dist/src/google/protobuf/util/internal/proto_writer.cc", + "dist/src/google/protobuf/util/internal/type_info.cc", + "dist/src/google/protobuf/util/internal/type_info_test_helper.cc", + "dist/src/google/protobuf/util/internal/utility.cc", + "dist/src/google/protobuf/util/json_util.cc", + "dist/src/google/protobuf/util/message_differencer.cc", + "dist/src/google/protobuf/util/time_util.cc", + "dist/src/google/protobuf/util/type_resolver_util.cc", + ], + LIBDEPS=[ + '$BUILD_DIR/third_party/shim_zlib', + ], +) + +protobuf_env.Library( + target='protoc', + source=[ + "dist/src/google/protobuf/compiler/code_generator.cc", + "dist/src/google/protobuf/compiler/command_line_interface.cc", + "dist/src/google/protobuf/compiler/plugin.cc", + "dist/src/google/protobuf/compiler/plugin.pb.cc", + "dist/src/google/protobuf/compiler/subprocess.cc", + "dist/src/google/protobuf/compiler/zip_writer.cc", + "dist/src/google/protobuf/compiler/cpp/cpp_enum.cc", + "dist/src/google/protobuf/compiler/cpp/cpp_enum_field.cc", + "dist/src/google/protobuf/compiler/cpp/cpp_extension.cc", + "dist/src/google/protobuf/compiler/cpp/cpp_field.cc", + "dist/src/google/protobuf/compiler/cpp/cpp_file.cc", + "dist/src/google/protobuf/compiler/cpp/cpp_generator.cc", + "dist/src/google/protobuf/compiler/cpp/cpp_helpers.cc", + "dist/src/google/protobuf/compiler/cpp/cpp_map_field.cc", + "dist/src/google/protobuf/compiler/cpp/cpp_message.cc", + "dist/src/google/protobuf/compiler/cpp/cpp_message_field.cc", + "dist/src/google/protobuf/compiler/cpp/cpp_padding_optimizer.cc", + "dist/src/google/protobuf/compiler/cpp/cpp_primitive_field.cc", + "dist/src/google/protobuf/compiler/cpp/cpp_service.cc", + "dist/src/google/protobuf/compiler/cpp/cpp_string_field.cc", + "dist/src/google/protobuf/compiler/java/java_context.cc", + "dist/src/google/protobuf/compiler/java/java_enum.cc", + "dist/src/google/protobuf/compiler/java/java_enum_lite.cc", + "dist/src/google/protobuf/compiler/java/java_enum_field.cc", + "dist/src/google/protobuf/compiler/java/java_enum_field_lite.cc", + "dist/src/google/protobuf/compiler/java/java_extension.cc", + "dist/src/google/protobuf/compiler/java/java_extension_lite.cc", + "dist/src/google/protobuf/compiler/java/java_field.cc", + "dist/src/google/protobuf/compiler/java/java_file.cc", + "dist/src/google/protobuf/compiler/java/java_generator.cc", + "dist/src/google/protobuf/compiler/java/java_generator_factory.cc", + "dist/src/google/protobuf/compiler/java/java_helpers.cc", + "dist/src/google/protobuf/compiler/java/java_map_field.cc", + "dist/src/google/protobuf/compiler/java/java_map_field_lite.cc", + "dist/src/google/protobuf/compiler/java/java_message.cc", + "dist/src/google/protobuf/compiler/java/java_message_lite.cc", + "dist/src/google/protobuf/compiler/java/java_message_builder.cc", + "dist/src/google/protobuf/compiler/java/java_message_builder_lite.cc", + "dist/src/google/protobuf/compiler/java/java_message_field.cc", + "dist/src/google/protobuf/compiler/java/java_message_field_lite.cc", + "dist/src/google/protobuf/compiler/java/java_name_resolver.cc", + "dist/src/google/protobuf/compiler/java/java_primitive_field.cc", + "dist/src/google/protobuf/compiler/java/java_primitive_field_lite.cc", + "dist/src/google/protobuf/compiler/java/java_shared_code_generator.cc", + "dist/src/google/protobuf/compiler/java/java_service.cc", + "dist/src/google/protobuf/compiler/java/java_string_field.cc", + "dist/src/google/protobuf/compiler/java/java_string_field_lite.cc", + "dist/src/google/protobuf/compiler/java/java_doc_comment.cc", + "dist/src/google/protobuf/compiler/js/js_generator.cc", + "dist/src/google/protobuf/compiler/js/well_known_types_embed.cc", + "dist/src/google/protobuf/compiler/objectivec/objectivec_enum.cc", + "dist/src/google/protobuf/compiler/objectivec/objectivec_enum_field.cc", + "dist/src/google/protobuf/compiler/objectivec/objectivec_extension.cc", + "dist/src/google/protobuf/compiler/objectivec/objectivec_field.cc", + "dist/src/google/protobuf/compiler/objectivec/objectivec_file.cc", + "dist/src/google/protobuf/compiler/objectivec/objectivec_generator.cc", + "dist/src/google/protobuf/compiler/objectivec/objectivec_helpers.cc", + "dist/src/google/protobuf/compiler/objectivec/objectivec_map_field.cc", + "dist/src/google/protobuf/compiler/objectivec/objectivec_message.cc", + "dist/src/google/protobuf/compiler/objectivec/objectivec_message_field.cc", + "dist/src/google/protobuf/compiler/objectivec/objectivec_oneof.cc", + "dist/src/google/protobuf/compiler/objectivec/objectivec_primitive_field.cc", + "dist/src/google/protobuf/compiler/php/php_generator.cc", + "dist/src/google/protobuf/compiler/python/python_generator.cc", + "dist/src/google/protobuf/compiler/ruby/ruby_generator.cc", + "dist/src/google/protobuf/compiler/csharp/csharp_doc_comment.cc", + "dist/src/google/protobuf/compiler/csharp/csharp_enum.cc", + "dist/src/google/protobuf/compiler/csharp/csharp_enum_field.cc", + "dist/src/google/protobuf/compiler/csharp/csharp_field_base.cc", + "dist/src/google/protobuf/compiler/csharp/csharp_generator.cc", + "dist/src/google/protobuf/compiler/csharp/csharp_helpers.cc", + "dist/src/google/protobuf/compiler/csharp/csharp_map_field.cc", + "dist/src/google/protobuf/compiler/csharp/csharp_message.cc", + "dist/src/google/protobuf/compiler/csharp/csharp_message_field.cc", + "dist/src/google/protobuf/compiler/csharp/csharp_primitive_field.cc", + "dist/src/google/protobuf/compiler/csharp/csharp_reflection_class.cc", + "dist/src/google/protobuf/compiler/csharp/csharp_repeated_enum_field.cc", + "dist/src/google/protobuf/compiler/csharp/csharp_repeated_message_field.cc", + "dist/src/google/protobuf/compiler/csharp/csharp_repeated_primitive_field.cc", + "dist/src/google/protobuf/compiler/csharp/csharp_source_generator_base.cc", + "dist/src/google/protobuf/compiler/csharp/csharp_wrapper_field.cc", + ], + LIBDEPS=[ + 'protobuf', + ], +) + +protobuf_env.Program( + target='protobuf_compiler', + source=['dist/src/google/protobuf/compiler/main.cc'], + LIBDEPS=[ + 'protobuf', + 'protoc', + ], + AIB_COMPONENT='protobuf', +) diff --git a/src/third_party/re2/SConscript b/src/third_party/re2/SConscript new file mode 100644 index 00000000000..c6d2cd12e60 --- /dev/null +++ b/src/third_party/re2/SConscript @@ -0,0 +1,47 @@ +Import('env') + +re2_env = env.Clone() + +re2_root = re2_env.Dir(".").srcnode() +re2_env.Append(CPPPATH=[re2_root.Dir("dist"),]) + +if re2_env.ToolchainIs('gcc', 'clang'): + re2_env.Append(CCFLAGS=['-pthread']) +if re2_env.ToolchainIs('msvc'): + re2_env.Append( + CPPDEFINES=[ + 'NOMINMAX', + ], + CCFLAGS=[ + '/wd4996', # The POSIX name for this item is deprecated + ], + ) + + +re2_env.Library( + target="re2", + source=[ + "dist/re2/perl_groups.cc", + "dist/re2/unicode_casefold.cc", + "dist/re2/unicode_groups.cc", + "dist/re2/stringpiece.cc", + "dist/re2/tostring.cc", + "dist/re2/mimics_pcre.cc", + "dist/re2/simplify.cc", + "dist/re2/bitstate.cc", + "dist/re2/onepass.cc", + "dist/re2/prefilter.cc", + "dist/re2/parse.cc", + "dist/re2/re2.cc", + "dist/re2/filtered_re2.cc", + "dist/re2/nfa.cc", + "dist/re2/set.cc", + "dist/re2/prefilter_tree.cc", + "dist/re2/compile.cc", + "dist/re2/prog.cc", + "dist/re2/dfa.cc", + "dist/re2/regexp.cc", + "dist/util/rune.cc", + "dist/util/strutil.cc", + ], +) diff --git a/src/third_party/unwind/SConscript b/src/third_party/unwind/SConscript index 9f4de94375b..7811f584532 100644 --- a/src/third_party/unwind/SConscript +++ b/src/third_party/unwind/SConscript @@ -19,7 +19,8 @@ env = env.Clone( # breaks that. It also seems to interfere with building with the # sanitizers, which use linker maps that reference backtrace. This # may be an ld.gold bug. - DISALLOW_VISHIDDEN=True, ) + DISALLOW_VISHIDDEN=True, + NINJA_GENSOURCE_INDEPENDENT=True, ) unwind_root = env.Dir(".").srcnode() unwind_platform = unwind_root.Dir("platform/${TARGET_OS}_${TARGET_ARCH}") diff --git a/src/third_party/zlib/SConscript b/src/third_party/zlib/SConscript index 63edb796597..52efa920e14 100644 --- a/src/third_party/zlib/SConscript +++ b/src/third_party/zlib/SConscript @@ -3,8 +3,7 @@ Import("env") -env = env.Clone() - +env = env.Clone(NINJA_GENSOURCE_INDEPENDENT=True) env.Append(CPPDEFINES=["HAVE_STDARG_H"]) if not env.TargetOSIs('windows'): env.Append(CPPDEFINES=["HAVE_UNISTD_H"]) -- cgit v1.2.1