diff options
author | Daniel Moody <daniel.moody@mongodb.com> | 2022-09-27 12:40:24 -0500 |
---|---|---|
committer | Daniel Moody <daniel.moody@mongodb.com> | 2022-09-27 12:40:24 -0500 |
commit | be60e8d6c6ad9ac938583db103f49706ab8faa27 (patch) | |
tree | 78f85d02b11e9b26c487a1a55be0f94afcadc7fe | |
parent | 3fb46b7ac816b306c13160765917f57dac0e078e (diff) | |
download | mongo-be60e8d6c6ad9ac938583db103f49706ab8faa27.tar.gz |
SERVER-68365 added grpc third party integration (excluding third party source)
-rw-r--r-- | SConstruct | 42 | ||||
-rw-r--r-- | site_scons/site_tools/ninja.py | 26 | ||||
-rw-r--r-- | site_scons/site_tools/protobuf_compiler.py | 178 | ||||
-rw-r--r-- | src/third_party/SConscript | 23 | ||||
-rw-r--r-- | src/third_party/abseil-cpp-master/SConscript | 1174 | ||||
-rw-r--r-- | src/third_party/abseil-cpp-master/abseil-cpp/absl/flags/internal/commandlineflag.cc | 26 | ||||
-rw-r--r-- | src/third_party/abseil-cpp-master/scripts/lib_targets.txt | 61 | ||||
-rw-r--r-- | src/third_party/abseil-cpp-master/scripts/parse_lib_from_ninja.py | 52 | ||||
-rw-r--r-- | src/third_party/gperftools/SConscript | 3 |
9 files changed, 1556 insertions, 29 deletions
diff --git a/SConstruct b/SConstruct index a2029692872..3d404638650 100644 --- a/SConstruct +++ b/SConstruct @@ -886,6 +886,7 @@ def variable_tools_converter(val): "distsrc", "gziptool", "idl_tool", + "protobuf_compiler", "jsheader", "mongo_test_execution", "mongo_test_list", @@ -1329,6 +1330,18 @@ env_vars.Add( ) env_vars.Add( + 'PROTOC', + default="$DESTDIR/bin/protobuf_compiler$PROGSUFFIX", + help='Path to protobuf compiler.', +) + +env_vars.Add( + 'PROTOC_CPP_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).', converter=split_dwarf_converter, default="auto") @@ -2008,6 +2021,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"): @@ -2713,7 +2727,7 @@ elif env.TargetOSIs('windows'): # Enables the __cplusplus preprocessor macro to report an updated value for recent C++ language # standards support. - env.Append(CCFLAGS=["/Zc:__cplusplus"]) + env.Append(CXXFLAGS=["/Zc:__cplusplus"]) # Tells the compiler to preferentially call global operator delete or operator delete[] # functions that have a second parameter of type size_t when the size of the object is available. @@ -3667,10 +3681,10 @@ def doConfigure(myenv): if myenv.ToolchainIs('msvc'): if get_option('cxx-std') == "17": - myenv.AppendUnique(CCFLAGS=['/std:c++17', + myenv.AppendUnique(CXXFLAGS=['/std:c++17', '/Zc:lambda']) # /Zc:lambda is implied by /std:c++20 elif get_option('cxx-std') == "20": - myenv.AppendUnique(CCFLAGS=['/std:c++20']) + myenv.AppendUnique(CXXFLAGS=['/std:c++20']) else: if get_option('cxx-std') == "17": if not myenv.AddToCXXFLAGSIfSupported('-std=c++17'): @@ -5306,6 +5320,28 @@ if get_option('ninja') != 'disabled': .format(env['ICECREAM_VERSION'])) ninja_builder = Tool("ninja") + + # This list is the list of targets we can build without first building + # all generated sources. This is list is also a list of dependencies required + # to build the protobuf compiler and grpc plugins. We must build protobuf + # before building all generated sources, because the protobuf compiler is required + # for generating some sources. Once we have better ways to deal with generated + # sources and ninja, this list can be removed. + env['NINJA_PREGEN_SOURCE_TARGETS'] = [ + 'third_party/protobuf', + env.Dir('$DESTDIR').path, + 'third_party/zlib', + 'shim_zlib', + 'shim_allocator', + 'third_party/unwind', + 'shim_unwind', + 'third_party_shim', + 'third_party/gperftools', + 'grpc_plugin_support', + 'third_party/grpc/dist/src/compiler', + 'protobuf_compilier', + 'grpc_cpp_plugin', + ] env["NINJA_BUILDDIR"] = env.Dir("$NINJA_BUILDDIR") ninja_builder.generate(env) diff --git a/site_scons/site_tools/ninja.py b/site_scons/site_tools/ninja.py index a55205fc612..2b2fe875d89 100644 --- a/site_scons/site_tools/ninja.py +++ b/site_scons/site_tools/ninja.py @@ -810,15 +810,23 @@ 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 = False + if build['outputs']: + depends_on_gen_source = all([ + True if gen_source_exception not in build['outputs'][0] else False + for gen_source_exception in self.env.get('NINJA_PREGEN_SOURCE_TARGETS', []) + ]) + + 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() diff --git a/site_scons/site_tools/protobuf_compiler.py b/site_scons/site_tools/protobuf_compiler.py new file mode 100644 index 00000000000..78791a8537d --- /dev/null +++ b/site_scons/site_tools/protobuf_compiler.py @@ -0,0 +1,178 @@ +# 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 traceback + +import SCons + +def protoc_emitter(target, source, env): + + first_source = str(source[0]) + + if not first_source.endswith(".proto"): + raise ValueError("Bad protoc file name '%s', it must end with '.proto' " % (first_source)) + + base_file_name, _ = SCons.Util.splitext(str(target[0])) + new_targets = [] + for type in env.get('PROTOC_GEN_TYPES', []): + if type == 'cpp': + new_targets += [f"{base_file_name}.pb.cc", f"{base_file_name}.pb.h"] + + plugins = env.get('PROTOC_PLUGINS', []) + for name in plugins: + for ext in plugins[name].get('exts', []): + new_targets += [f"{base_file_name}{ext}"] + + env.Alias("generated-sources", new_targets) + + return new_targets, source + +def protoc_scanner(node, env, path): + + # TODO Make this scanner understand how to parse .proto files to find .proto + # dependencies. + deps = [] + plugins = env.get('PROTOC_PLUGINS', {}) + for name in plugins: + deps.append(env.File(env.subst(plugins[name].get('plugin')))) + + deps.append(env.File("$PROTOC")) + + return deps + +protoc_scanner = SCons.Scanner.Scanner(function=protoc_scanner, skeys=[".proto"]) + +def type_out_gen(source, target, env, for_signature): + # the user set PROTOC_CPPGEN_DIR that means we add the flag + # to turn on cpp generation + try: + result = env.subst('$PROTOC_GEN_TYPES', target=target, source=source) + if 'cpp' in result: + out_dir = os.path.dirname(str(target[0].abspath)) + os.makedirs(out_dir, exist_ok=True) + return f"--cpp_out={out_dir}" + except: + traceback.print_exc() + +def gen_types_str(source, target, env, for_signature): + # This generates the types from the list of types we which are supported and + # which the user has set an output dir for. This is for build output messages. + gen_types_results = [] + for gen_dir, type in env.get('_PROTOC_SUPPORTED_GEN_TYPES', []): + result = env.subst(gen_dir, target=target, source=source) + if result: + gen_types_results += [type] + return ','.join(gen_types_results) + +def gen_types(source, target, env, for_signature): + # This generates the types from the list of types we which are supported and + # which the user has set an output dir for. This selects the types to add to + # the command line to then be expanded to --XXX_out options later. + gen_types_results = [] + for gen_dir, type in env.get('_PROTOC_SUPPORTED_GEN_TYPES', []): + result = env.subst(gen_dir, target=target, source=source) + if result: + gen_types_results += [result] + return ' '.join(gen_types_results) + +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. + gen_types_results = [] + plugins = env.get('PROTOC_PLUGINS', []) + for name in plugins: + out_dir = plugins[name].get('out_dir') + plugin = plugins[name].get('plugin') + options = plugins[name].get('options') + if plugin and out_dir: + cmd_line = f'--{name}_out=' + for opt in options: + cmd_line += f'{opt}:' + out_dir = os.path.dirname(str(target[0].abspath)) + os.makedirs(out_dir, exist_ok=True) + cmd_line += out_dir + cmd_line += f' --plugin=protoc-gen-{name}={env.File(plugin).abspath}' + gen_types_results += [cmd_line] + else: + print(f"Failed to process PROTOC plugin {name}: {plugins[name]}") + + return ' '.join(gen_types_results) + + +def protocActionGen(source, target, env, for_signature): + # The protobuf compiler doesn't play nice with scons variant dir. It will output its generated + # files in the specified out dir + the source path given to it. For scons variant dir where we + # want to put things from "src" into "BUILD_DIR" we would have to somehow pass it a source file + # without the "src" prefixing it. This means we must change working directory where scons + # normally executes in the src root directory. Because we manage the pathing flags within + # the scons variables, we can accurately update any pathing to allow us to switch to source + # location and perform the command there. + + working_dir = os.path.dirname(target[0].srcnode().path) + protoc_path = os.path.abspath(env.subst('$PROTOC')) + + return env.subst(f"cd {working_dir} && {protoc_path} $_PROTOC_GEN_TYPES $_PROTOC_PLUGINS $PROTOCFLAGS ${{SOURCE.file}}", target=target, source=source) + +def generate(env): + + ProtocAction = SCons.Action.CommandGeneratorAction( + protocActionGen, + {"cmdstr": "Generating $_PROTOC_GEN_TYPES_STR Protocol Buffers from ${SOURCE}"} + if not env.get("VERBOSE", "").lower() in ['true', '1'] else {"cmdstr": ""}, + ) + + ProtocBuilder = SCons.Builder.Builder( + action=ProtocAction, + emitter=protoc_emitter, + src_suffix=".proto", + suffix=".cc", + source_scanner=protoc_scanner, + single_source=1, + ) + env.Append(SCANNERS=protoc_scanner) + env["BUILDERS"]["Protoc"] = ProtocBuilder + + env["PROTOC"] = env.get('PROTOC', env.WhereIs('protoc')) + + # These vars setup the different generation options + env["_PROTOC_GEN_TYPES"] = gen_types + env['_PROTOC_GEN_TYPES_STR'] = gen_types_str + env['_PROTOC_PLUGINS'] = gen_plugins + + # The general way to default the out dir for any given type + env['_PROTOC_DEFAULT_GENOUT'] = type_out_gen + + # TODO create variables to support other generation types, might require a more flexible + # builder setup + env["_PROTOC_SUPPORTED_GEN_TYPES"] = [('$_PROTOC_DEFAULT_GENOUT', 'cpp')] + + # User facing customizable variables + env["PROTOC_GEN_TYPES"] = [] + env['PROTOC_PLUGINS'] = {} + + env['PROTOCFLAGS'] = SCons.Util.CLVar('') + +def exists(env): + return True diff --git a/src/third_party/SConscript b/src/third_party/SConscript index 8f8b559ecd0..aece57e3656 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'], }, } @@ -353,9 +357,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") @@ -599,3 +605,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..97579aaf091 100644 --- a/src/third_party/abseil-cpp-master/SConscript +++ b/src/third_party/abseil-cpp-master/SConscript @@ -4,37 +4,1185 @@ env = env.Clone() env.InjectThirdParty(libraries=['abseil-cpp']) +if env.ToolchainIs('msvc'): + env.Append( + CPPDEFINES=[ + 'NOMINMAX', + ], + CCFLAGS=[ + ], + ) + env.Library( - target="absl_numeric", + target='absl_strerror', source=[ - "abseil-cpp/absl/numeric/int128.cc", + '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_log_severity', + source=[ + 'abseil-cpp/absl/base/log_severity.cc', + ], + LIBDEPS=[ + + ] +) + +env.Library( + target='absl_raw_logging_internal', + source=[ + 'abseil-cpp/absl/base/internal/raw_logging.cc', + ], + LIBDEPS=[ + 'absl_log_severity', + ] +) + +env.Library( + target='absl_exponential_biased', + source=[ + 'abseil-cpp/absl/base/internal/exponential_biased.cc', + ], + LIBDEPS=[ + + ] +) + +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', + source=[ + 'abseil-cpp/absl/base/internal/throw_delegate.cc', + ], + 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_hash", + target='absl_random_internal_seed_material', 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/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_container", + target='absl_random_internal_randen_slow', source=[ - "abseil-cpp/absl/container/internal/raw_hash_set.cc", + 'abseil-cpp/absl/random/internal/randen_slow.cc', ], LIBDEPS=[ - "absl_hash", - "absl_throw_delegate", + '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_throw_delegate", + target='absl_random_internal_pool_urbg', source=[ - "abseil-cpp/absl/base/internal/throw_delegate.cc", + 'abseil-cpp/absl/random/internal/pool_urbg.cc', ], - LIBDEPS=[], + 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', + ] +) + +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/gperftools/SConscript b/src/third_party/gperftools/SConscript index 21ec1fb90f0..5e41c8c1be6 100644 --- a/src/third_party/gperftools/SConscript +++ b/src/third_party/gperftools/SConscript @@ -77,7 +77,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 += [ |