This commit is contained in:
Isaac 2025-06-18 11:47:25 +04:00
parent d1ad1668c4
commit 504cb1d596
1494 changed files with 254 additions and 211 deletions

View File

@ -25,7 +25,6 @@ def transform_cache_host_into_http(grpc_url):
return transformed_url
def calculate_sha256(file_path):
sha256_hash = hashlib.sha256()
with open(file_path, "rb") as file:
@ -37,6 +36,8 @@ def calculate_sha256(file_path):
def resolve_cache_host(cache_host):
if cache_host is None:
return None
if cache_host.startswith("file://"):
return None
if "@auto" in cache_host:
host_parts = cache_host.split("@auto")
host_left_part = host_parts[0]
@ -44,7 +45,18 @@ def resolve_cache_host(cache_host):
return f"{host_left_part}localhost{host_right_part}"
return cache_host
def locate_bazel(base_path, cache_host):
def resolve_cache_path(cache_host_or_path, cache_dir):
if cache_dir is not None:
return cache_dir
if cache_host_or_path is not None:
if cache_host_or_path.startswith("file://"):
return cache_host_or_path.replace("file://", "")
return None
def cache_cas_name(digest):
return (digest[:2], digest)
def locate_bazel(base_path, cache_host_or_path, cache_dir):
build_input_dir = '{}/build-input'.format(base_path)
if not os.path.isdir(build_input_dir):
os.mkdir(build_input_dir)
@ -57,7 +69,8 @@ def locate_bazel(base_path, cache_host):
bazel_name = 'bazel-{version}-{arch}'.format(version=versions.bazel_version, arch=arch)
bazel_path = '{}/build-input/{}'.format(base_path, bazel_name)
resolved_cache_host = resolve_cache_host(cache_host)
resolved_cache_host = resolve_cache_host(cache_host_or_path)
resolved_cache_path = resolve_cache_path(cache_host_or_path, cache_dir)
if not os.path.isfile(bazel_path):
if resolved_cache_host is not None and versions.bazel_version_sha256 is not None:
@ -77,6 +90,11 @@ def locate_bazel(base_path, cache_host):
test_sha256 = calculate_sha256(temp_output_file.name)
if test_sha256 == versions.bazel_version_sha256:
shutil.copyfile(temp_output_file.name, bazel_path)
elif resolved_cache_path is not None:
(cache_cas_id, cache_cas_name) = cache_cas_name(versions.bazel_version_sha256)
cached_path = '{}/cas/{}/{}'.format(resolved_cache_path, cache_cas_id, cache_cas_name)
if os.path.isfile(cached_path):
shutil.copyfile(cached_path, bazel_path)
if os.path.isfile(bazel_path) and versions.bazel_version_sha256 is not None:
@ -118,6 +136,11 @@ def locate_bazel(base_path, cache_host):
hash=versions.bazel_version_sha256
)
], check_result=False)
elif resolved_cache_path is not None:
(cache_cas_id, cache_cas_name) = cache_cas_name(versions.bazel_version_sha256)
cached_path = '{}/cas/{}/{}'.format(resolved_cache_path, cache_cas_id, cache_cas_name)
os.makedirs(os.path.dirname(cached_path), exist_ok=True)
shutil.copyfile(bazel_path, cached_path)
if not os.access(bazel_path, os.X_OK):
st = os.stat(bazel_path)

View File

@ -1282,7 +1282,7 @@ if __name__ == '__main__':
bazel_path = None
if args.bazel is None:
bazel_path = locate_bazel(base_path=os.getcwd(), cache_host=args.cacheHost)
bazel_path = locate_bazel(base_path=os.getcwd(), cache_host_or_path=args.cacheHost, cache_dir=args.cacheDir)
else:
bazel_path = args.bazel

View File

@ -27,7 +27,7 @@ class TartVMManager:
def __init__(self):
self.active_vms: Dict[str, Dict] = {}
def create_vm(self, session_id: str, image: str) -> Dict:
def create_vm(self, session_id: str, image: str, mount_directories: Dict[str, str]) -> Dict:
"""Create a new ephemeral VM for the session"""
vm_name = f"telegrambuild-{session_id}"
@ -53,9 +53,10 @@ class TartVMManager:
def run_vm():
"""Run the VM in background thread"""
try:
subprocess.run([
"tart", "run", vm_name
], check=True, capture_output=False, text=True)
run_arguments = ["tart", "run", vm_name]
for mount_directory in mount_directories.keys():
run_arguments.append(f"--dir={mount_directory}:{mount_directories[mount_directory]}")
subprocess.run(run_arguments, check=True, capture_output=False, text=True)
except subprocess.CalledProcessError as e:
logger.error(f"VM {vm_name} exited with error: {e}")
except Exception as e:
@ -462,10 +463,11 @@ class TartBuildSession(RemoteBuildSessionInterface):
class TartBuildSessionContext(RemoteBuildSessionContextInterface):
"""Context manager for Tart VM sessions"""
def __init__(self, vm_manager: TartVMManager, image: str, session_id: str):
def __init__(self, vm_manager: TartVMManager, image: str, session_id: str, mount_directories: Dict[str, str]):
self.vm_manager = vm_manager
self.image = image
self.session_id = session_id
self.mount_directories = mount_directories
self.session = None
def __enter__(self) -> TartBuildSession:
@ -473,7 +475,7 @@ class TartBuildSessionContext(RemoteBuildSessionContextInterface):
print(f"Creating VM session with image: {self.image}")
# Create the VM
self.vm_manager.create_vm(session_id=self.session_id, image=self.image)
self.vm_manager.create_vm(session_id=self.session_id, image=self.image, mount_directories=self.mount_directories)
print(f"✓ VM session created: {self.session_id}")
@ -502,12 +504,12 @@ class TartBuild(RemoteBuildInterface):
def __init__(self):
self.vm_manager = TartVMManager()
def session(self, macos_version: str, xcode_version: str) -> TartBuildSessionContext:
def session(self, macos_version: str, xcode_version: str, mount_directories: Dict[str, str]) -> TartBuildSessionContext:
image_name = f"macos-{macos_version}-xcode-{xcode_version}"
print(f"Image name: {image_name}")
session_id = str(uuid.uuid4())
return TartBuildSessionContext(self.vm_manager, image_name, session_id)
return TartBuildSessionContext(self.vm_manager, image_name, session_id, mount_directories)
def create_rsync_ignore_file(exclude_patterns: List[str] = []):
"""Create a temporary rsync ignore file with exclusion patterns"""
@ -551,7 +553,12 @@ def remote_build_tart(macos_version, bazel_cache_host, configuration, build_inpu
transient_data_dir = '{}/transient-data'.format(buildbox_dir)
os.makedirs(transient_data_dir, exist_ok=True)
with TartBuild().session(macos_version=macos_version, xcode_version=xcode_version) as session:
mount_directories = {}
if bazel_cache_host is not None and bazel_cache_host.startswith("file://"):
local_path = bazel_cache_host.replace("file://", "")
mount_directories["bazel-cache"] = local_path
with TartBuild().session(macos_version=macos_version, xcode_version=xcode_version, mount_directories=mount_directories) as session:
print('Uploading data to VM...')
session.upload_directory(local_path=build_input_data_path, remote_path="telegram-build-input")
@ -576,20 +583,26 @@ def remote_build_tart(macos_version, bazel_cache_host, configuration, build_inpu
python3 build-system/Make/ImportCertificates.py --path $HOME/telegram-build-input/certs
'''
if "@auto" in bazel_cache_host:
host_parts = bazel_cache_host.split("@auto")
host_left_part = host_parts[0]
host_right_part = host_parts[1]
guest_host_command = "export CACHE_HOST_IP=\"$(netstat -nr | grep default | head -n 1 | awk '{print $2}')\""
guest_build_sh += guest_host_command + "\n"
guest_host_string = f"export CACHE_HOST=\"{host_left_part}$CACHE_HOST_IP{host_right_part}\""
guest_build_sh += guest_host_string + "\n"
else:
guest_build_sh += f"export CACHE_HOST=\"{bazel_cache_host}\"\n"
if bazel_cache_host is not None:
if bazel_cache_host.startswith("file://"):
pass
elif "@auto" in bazel_cache_host:
host_parts = bazel_cache_host.split("@auto")
host_left_part = host_parts[0]
host_right_part = host_parts[1]
guest_host_command = "export CACHE_HOST_IP=\"$(netstat -nr | grep default | head -n 1 | awk '{print $2}')\""
guest_build_sh += guest_host_command + "\n"
guest_host_string = f"export CACHE_HOST=\"{host_left_part}$CACHE_HOST_IP{host_right_part}\""
guest_build_sh += guest_host_string + "\n"
else:
guest_build_sh += f"export CACHE_HOST=\"{bazel_cache_host}\"\n"
guest_build_sh += 'python3 build-system/Make/Make.py \\'
if bazel_cache_host is not None:
guest_build_sh += '--cacheHost="$CACHE_HOST" \\'
if bazel_cache_host.startswith("file://"):
guest_build_sh += '--cacheDir="/Volumes/My Shared Files/bazel-cache" \\'
else:
guest_build_sh += '--cacheHost="$CACHE_HOST" \\'
guest_build_sh += 'build \\'
guest_build_sh += '--lock \\'
guest_build_sh += '--buildNumber={} \\'.format(build_number)

View File

@ -91,13 +91,30 @@ for name, module in sorted(modules.items()):
if module_type == "objc_library" or module_type == "cc_library" or module_type == "swift_library":
combined_lines.append(" .target(")
combined_lines.append(" name: \"%s\"," % name)
# Always create a symlinked directory for every module
relative_module_path = module["path"]
relative_module_path = module["path"] + "/Module_" + name
module_directory = spm_files_dir + "/" + relative_module_path
os.makedirs(module_directory, exist_ok=True)
module_sources_directory = module_directory + "/Sources"
if not os.path.exists(module_sources_directory):
os.makedirs(module_sources_directory)
module_public_includes_directory = module_directory + "/PublicIncludes"
if not os.path.exists(module_public_includes_directory):
os.makedirs(module_public_includes_directory)
module_public_headers_prefix = None
if len(module["includes"]) > 1:
print("{}: Multiple includes are not yet supported: {}".format(name, module["includes"]))
sys.exit(1)
elif len(module["includes"]) == 1:
for include_directory in module["includes"]:
if include_directory != ".":
#print("{}: Include directory: {}".format(name, include_directory))
module_public_headers_prefix = include_directory
break
combined_lines.append(" dependencies: [")
for dep in module["deps"]:
if not parsed_modules[dep]["is_empty"]:
@ -129,10 +146,20 @@ for name, module in sorted(modules.items()):
source_file_name = source[len(module["path"]) + 1:]
# Create symlink for this source file
symlink_location = os.path.join(module_directory, source_file_name)
source_dir = os.path.dirname(symlink_location)
if source_dir and not os.path.exists(source_dir):
os.makedirs(source_dir)
is_public_include = False
if module_public_headers_prefix is not None:
if source_file_name.startswith(module_public_headers_prefix):
symlink_location = os.path.join(module_public_includes_directory, source_file_name[len(module_public_headers_prefix) + 1:])
#print("{}: Public include: {}".format(source_file_name, symlink_location))
is_public_include = True
if not is_public_include:
symlink_location = os.path.join(module_sources_directory, source_file_name)
# Create parent directory for symlink if it doesn't exist
symlink_parent = os.path.dirname(symlink_location)
if not os.path.exists(symlink_parent):
os.makedirs(symlink_parent)
# Calculate relative path from symlink back to original file
# Count directory depth: spm-files/module_name/... -> workspace root
@ -143,32 +170,24 @@ for name, module in sorted(modules.items()):
# Create the symlink
if os.path.lexists(symlink_location):
os.unlink(symlink_location)
if "arm_arch64_common_macro" in symlink_target:
print("Creating symlink from {} to {}".format(symlink_target, symlink_location))
os.symlink(symlink_target, symlink_location)
# Add to sources list (exclude certain file types)
if not source.endswith(('.h', '.hpp', '.a', '.inc')):
combined_lines.append(" \"%s\"," % source_file_name)
combined_lines.append(" \"%s\"," % ("Sources/" + source_file_name))
combined_lines.append(" ],")
if module_type == "objc_library" or module_type == "cc_library":
if len(module["includes"]) == 0:
# Create dummy headers directory if none specified
dummy_headers_path = os.path.join(module_directory, "dummy-headers-path")
if not os.path.exists(dummy_headers_path):
os.makedirs(dummy_headers_path)
combined_lines.append(" publicHeadersPath: \"dummy-headers-path\",")
elif len(module["includes"]) == 1:
combined_lines.append(" publicHeadersPath: \"%s\"," % module["includes"][0])
else:
combined_lines.append(" publicHeadersPath: \"PublicIncludes\",")
if len(module["includes"]) > 1:
print("{}: Multiple includes are not yet supported: {}".format(name, module["includes"]))
sys.exit(1)
defines = module.get("defines", [])
copts = module.get("copts", [])
cxxopts = module.get("cxxopts", [])
if defines or copts:
if defines or copts or (module_public_headers_prefix is not None):
combined_lines.append(" cSettings: [")
if defines:
for define in defines:
@ -182,7 +201,32 @@ for name, module in sorted(modules.items()):
for flag in copts:
escaped_flag = escape_swift_string_literal_component(flag)
combined_lines.append(f' "{escaped_flag}",')
combined_lines.append(" ])")
if escaped_flag.startswith("-I"):
include_path = escaped_flag[2:]
print("{}: Include path: {}".format(name, include_path))
for another_module_name, another_module in sorted(modules.items()):
another_module_path = another_module["path"]
if include_path.startswith(another_module_path):
relative_module_include_path = include_path[len(another_module_path) + 1:]
#print(" {}: Matches module: {}".format(another_module_name, another_module_path))
combined_lines.append(f' "-I{another_module_path}/Sources/{relative_module_include_path}",')
another_module_public_headers_prefix = None
if len(another_module["includes"]) == 1:
for include_directory in another_module["includes"]:
if include_directory != ".":
another_module_public_headers_prefix = another_module_path + "/" + include_directory
print(" {}: Another module public include: {}".format(another_module_name, another_module_public_headers_prefix))
if another_module_public_headers_prefix is not None:
if include_path.startswith(another_module_public_headers_prefix):
relative_module_include_path = include_path[len(another_module_public_headers_prefix) + 1:]
print(" {}: Matches module public include: {}".format(another_module_name, another_module_public_headers_prefix))
combined_lines.append(f' -"-I{another_module_path}/PublicIncludes/{relative_module_include_path}",')
combined_lines.append(" ]),")
if module_public_headers_prefix is not None:
combined_lines.append(f" .headerSearchPath(\"{module_public_headers_prefix}\"),")
combined_lines.append(" ],")
if defines or cxxopts: # Check for defines OR cxxopts

View File

@ -13,8 +13,6 @@ optimization_flags = select({
"//conditions:default": ["-DNDEBUG"],
})
enable_x264 = False
sources = glob([
"Sources/**/*.m",
"Sources/**/*.mm",
@ -143,7 +141,6 @@ objc_library(
"-I{}/tgcalls/tgcalls".format(package_name()),
"-Ithird-party/webrtc/webrtc",
"-Ithird-party/webrtc/dependencies",
"-Ithird-party/webrtc/dependencies/third_party/abseil-cpp",
"-Ithird-party/webrtc/webrtc/sdk/objc",
"-Ithird-party/webrtc/webrtc/sdk/objc/base",
"-Ithird-party/webrtc/webrtc/sdk/objc/components/renderer/metal",
@ -152,14 +149,14 @@ objc_library(
"-Ithird-party/libyuv/third_party/libyuv/include",
"-Ithird-party/libyuv",
"-Ithird-party/webrtc/webrtc/sdk/objc/api/video_codec",
"-Ithird-party/webrtc/absl/third_party/abseil-cpp",
"-Ithird-party/webrtc/absl",
"-DWEBRTC_IOS",
"-DWEBRTC_MAC",
"-DWEBRTC_POSIX",
"-DRTC_ENABLE_VP9",
"-DTGVOIP_NAMESPACE=tgvoip_webrtc",
"-std=c++17",
] + optimization_flags + (["-DTGCALLS_ENABLE_X264"] if enable_x264 else []),
] + optimization_flags,
includes = [
"PublicHeaders",
],
@ -175,7 +172,7 @@ objc_library(
"//third-party/rnnoise:rnnoise",
"//third-party/libyuv",
"//third-party/td:TdBinding",
] + (["//third-party/libx264:libx264"] if enable_x264 else []),
],
sdk_frameworks = [
"Foundation",
"UIKit",
@ -193,46 +190,3 @@ objc_library(
"//visibility:public",
],
)
objc_library(
name = "TgCallsTestsLib",
copts = [
"-I{}/tgcalls/tgcalls".format(package_name()),
"-Ithird-party/webrtc/webrtc",
"-Ithird-party/webrtc/dependencies",
"-Ithird-party/webrtc/dependencies/third_party/abseil-cpp",
"-Ithird-party/webrtc/webrtc/sdk/objc",
"-Ithird-party/webrtc/webrtc/sdk/objc/base",
"-Ithird-party/webrtc/webrtc/sdk/objc/components/renderer/metal",
"-Ithird-party/webrtc/webrtc/sdk/objc/components/renderer/opengl",
"-Ithird-party/webrtc/webrtc/sdk/objc/components/video_codec",
"-Ithird-party/libyuv/third_party/libyuv/include",
"-Ithird-party/libyuv",
"-Ithird-party/webrtc/webrtc/sdk/objc/api/video_codec",
"-DWEBRTC_IOS",
"-DWEBRTC_MAC",
"-DWEBRTC_POSIX",
"-DRTC_ENABLE_VP9",
"-DRTC_ENABLE_H265",
"-DTGVOIP_NAMESPACE=tgvoip_webrtc",
"-std=c++17",
],
srcs = glob([
"tests/*.m",
"tests/*.mm",
], allow_empty=True),
deps = [
":TgVoipWebrtc"
],
)
ios_unit_test(
name = "TgCallsTests",
minimum_os_version = "9.0",
deps = [
":TgCallsTestsLib",
],
visibility = [
"//visibility:public",
],
)

@ -1 +1 @@
Subproject commit 1348de6aa6c07ed32354d3e26423c45304000a39
Subproject commit 5ddc3ccf2086127722a06e3d836698fcd717f11b

View File

@ -2507,6 +2507,7 @@ ios_objc_sources = [
"objc/base/RTCEncodedImage.m",
"objc/base/RTCVideoCapturer.m",
"objc/base/RTCVideoCodecInfo.m",
"objc/base/RTCVideoEncoderQpThresholds.h",
"objc/base/RTCVideoEncoderQpThresholds.m",
"objc/base/RTCVideoEncoderSettings.m",
"objc/helpers/RTCDispatcher.m",
@ -3063,7 +3064,7 @@ objc_library(
"-Ithird-party/webrtc/webrtc/sdk/objc/base",
"-Ithird-party/libyuv",
"-Ithird-party/libyuv/third_party/libyuv/include",
"-Ithird-party/webrtc/absl/third_party/abseil-cpp",
"-Ithird-party/webrtc/absl",
"-DBSD=1",
"-DUSE_KISS_FFT",
"-DHAVE_PTHREAD",
@ -3121,6 +3122,7 @@ objc_library(
enable_modules = True,
module_name = "webrtc_objc",
srcs = [ "webrtc/sdk/" + path for path in ios_objc_sources ] + [
"webrtc/sdk/" + path for path in ios_objcpp_sources ] + [
"webrtc/rtc_base/system/gcd_helpers.m",
],
copts = [
@ -3130,7 +3132,7 @@ objc_library(
"-Ithird-party/webrtc/webrtc/sdk/objc/base",
"-Ithird-party/libyuv",
"-Ithird-party/libyuv/third_party/libyuv/include",
"-Ithird-party/webrtc/absl/third_party/abseil-cpp",
"-Ithird-party/webrtc/absl",
"-DBSD=1",
"-DUSE_KISS_FFT",
"-DHAVE_PTHREAD",
@ -3162,7 +3164,9 @@ objc_library(
"//third-party/openh264",
":field_trials_header",
"//third-party/webrtc/absl",
":webrtc_objcpp",
],
cxxopts = [
"-std=c++17",
],
sdk_frameworks = [
"AVFoundation",
@ -3193,7 +3197,7 @@ objc_library(
"-Ithird-party/webrtc/webrtc/",
"-Ithird-party/libyuv",
"-Ithird-party/libyuv/third_party/libyuv/include",
"-Ithird-party/webrtc/absl/third_party/abseil-cpp",
"-Ithird-party/webrtc/absl",
"-DBSD=1",
"-DUSE_KISS_FFT",
"-DHAVE_PTHREAD",

View File

@ -1,4 +1,5 @@
absl_sources = [ "third_party/abseil-cpp/" + x for x in [
absl_headers = [
"absl/container/internal/layout.h",
"absl/container/internal/hashtable_debug_hooks.h",
"absl/strings/internal/cord_internal.h",
@ -14,117 +15,15 @@ absl_sources = [ "third_party/abseil-cpp/" + x for x in [
"absl/strings/internal/cordz_update_scope.h",
"absl/strings/internal/string_constant.h",
"absl/base/internal/inline_variable.h",
"absl/base/internal/cycleclock.cc",
"absl/base/internal/low_level_alloc.cc",
"absl/base/internal/raw_logging.cc",
"absl/base/internal/scoped_set_env.cc",
"absl/base/internal/spinlock.cc",
"absl/base/internal/spinlock_wait.cc",
"absl/base/internal/strerror.cc",
"absl/base/internal/sysinfo.cc",
"absl/base/internal/thread_identity.cc",
"absl/base/internal/throw_delegate.cc",
"absl/base/internal/unscaledcycleclock.cc",
"absl/base/log_severity.cc",
"absl/base/config.h",
"absl/container/internal/hash_generator_testing.cc",
"absl/container/internal/hashtablez_sampler.cc",
"absl/container/internal/hashtablez_sampler_force_weak_definition.cc",
"absl/container/internal/raw_hash_set.cc",
"absl/container/internal/test_instance_tracker.cc",
"absl/debugging/failure_signal_handler.cc",
"absl/debugging/internal/address_is_readable.cc",
"absl/debugging/internal/demangle.cc",
"absl/debugging/internal/elf_mem_image.cc",
"absl/debugging/internal/examine_stack.cc",
"absl/debugging/internal/stack_consumption.cc",
"absl/debugging/internal/vdso_support.cc",
"absl/debugging/stacktrace.cc",
"absl/debugging/symbolize.cc",
"absl/flags/flag_test_defs.cc",
"absl/flags/internal/commandlineflag.cc",
"absl/flags/internal/flag.cc",
"absl/flags/internal/program_name.cc",
"absl/flags/internal/usage.cc",
"absl/flags/marshalling.cc",
"absl/flags/parse.cc",
"absl/flags/usage.cc",
"absl/flags/usage_config.cc",
"absl/hash/internal/city.cc",
"absl/hash/internal/hash.cc",
"absl/numeric/int128.cc",
"absl/random/discrete_distribution.cc",
"absl/random/gaussian_distribution.cc",
"absl/random/internal/chi_square.cc",
"absl/random/internal/distribution_test_util.cc",
"absl/random/internal/nanobenchmark.cc",
"absl/random/internal/pool_urbg.cc",
"absl/random/internal/randen.cc",
"absl/random/internal/randen_detect.cc",
"absl/random/internal/randen_hwaes.cc",
"absl/random/internal/randen_slow.cc",
"absl/random/internal/seed_material.cc",
"absl/random/seed_gen_exception.cc",
"absl/random/seed_sequences.cc",
"absl/status/status.cc",
"absl/status/status_payload_printer.cc",
"absl/strings/ascii.cc",
"absl/strings/charconv.cc",
"absl/strings/cord.cc",
"absl/strings/escaping.cc",
"absl/strings/internal/charconv_bigint.cc",
"absl/strings/internal/charconv_parse.cc",
"absl/strings/internal/escaping.cc",
"absl/strings/internal/memutil.cc",
"absl/strings/internal/ostringstream.cc",
"absl/strings/internal/pow10_helper.cc",
"absl/strings/internal/str_format/arg.cc",
"absl/strings/internal/str_format/bind.cc",
"absl/strings/internal/str_format/extension.cc",
"absl/strings/internal/str_format/float_conversion.cc",
"absl/strings/internal/str_format/output.cc",
"absl/strings/internal/str_format/parser.cc",
"absl/strings/internal/utf8.cc",
"absl/strings/match.cc",
"absl/strings/numbers.cc",
"absl/strings/str_cat.cc",
"absl/strings/str_replace.cc",
"absl/strings/str_split.cc",
"absl/strings/string_view.cc",
"absl/strings/substitute.cc",
"absl/synchronization/mutex.h",
"absl/synchronization/barrier.cc",
"absl/synchronization/blocking_counter.cc",
"absl/synchronization/internal/create_thread_identity.cc",
"absl/synchronization/internal/graphcycles.cc",
"absl/synchronization/internal/per_thread_sem.cc",
"absl/synchronization/notification.cc",
"absl/time/civil_time.cc",
"absl/time/clock.cc",
"absl/time/duration.cc",
"absl/time/format.cc",
"absl/time/internal/cctz/src/civil_time_detail.cc",
"absl/time/internal/cctz/src/time_zone_fixed.cc",
"absl/time/internal/cctz/src/time_zone_fixed.h",
"absl/time/internal/cctz/src/time_zone_format.cc",
"absl/time/internal/cctz/src/time_zone_if.cc",
"absl/time/internal/cctz/src/time_zone_if.h",
"absl/time/internal/cctz/src/time_zone_impl.cc",
"absl/time/internal/cctz/src/time_zone_impl.h",
"absl/time/internal/cctz/src/time_zone_info.cc",
"absl/time/internal/cctz/src/time_zone_info.h",
"absl/time/internal/cctz/src/time_zone_libc.cc",
"absl/time/internal/cctz/src/time_zone_libc.h",
"absl/time/internal/cctz/src/time_zone_lookup.cc",
"absl/time/internal/cctz/src/time_zone_posix.cc",
"absl/synchronization/mutex.h",
"absl/time/internal/cctz/src/time_zone_fixed.h",
"absl/time/internal/cctz/src/time_zone_if.h",
"absl/time/internal/cctz/src/time_zone_impl.h",
"absl/time/internal/cctz/src/time_zone_info.h",
"absl/time/internal/cctz/src/time_zone_posix.h",
"absl/time/internal/cctz/src/zone_info_source.cc",
"absl/time/internal/cctz/src/tzfile.h",
"absl/time/internal/test_util.cc",
"absl/time/time.cc",
"absl/types/bad_any_cast.cc",
"absl/types/bad_optional_access.cc",
"absl/types/bad_variant_access.cc",
"absl/meta/type_traits.h",
"absl/base/options.h",
"absl/base/policy_checks.h",
@ -349,10 +248,116 @@ absl_sources = [ "third_party/abseil-cpp/" + x for x in [
"absl/synchronization/internal/win32_waiter.h",
"absl/crc/internal/crc32_x86_arm_combined_simd.h",
"absl/strings/internal/damerau_levenshtein_distance.h",
]]
]
absl_sources = [
"absl/base/internal/cycleclock.cc",
"absl/base/internal/low_level_alloc.cc",
"absl/base/internal/raw_logging.cc",
"absl/base/internal/scoped_set_env.cc",
"absl/base/internal/spinlock.cc",
"absl/base/internal/spinlock_wait.cc",
"absl/base/internal/strerror.cc",
"absl/base/internal/sysinfo.cc",
"absl/base/internal/thread_identity.cc",
"absl/base/internal/throw_delegate.cc",
"absl/base/internal/unscaledcycleclock.cc",
"absl/base/log_severity.cc",
"absl/container/internal/hash_generator_testing.cc",
"absl/container/internal/hashtablez_sampler.cc",
"absl/container/internal/hashtablez_sampler_force_weak_definition.cc",
"absl/container/internal/raw_hash_set.cc",
"absl/container/internal/test_instance_tracker.cc",
"absl/debugging/failure_signal_handler.cc",
"absl/debugging/internal/address_is_readable.cc",
"absl/debugging/internal/demangle.cc",
"absl/debugging/internal/elf_mem_image.cc",
"absl/debugging/internal/examine_stack.cc",
"absl/debugging/internal/stack_consumption.cc",
"absl/debugging/internal/vdso_support.cc",
"absl/debugging/stacktrace.cc",
"absl/debugging/symbolize.cc",
"absl/flags/flag_test_defs.cc",
"absl/flags/internal/commandlineflag.cc",
"absl/flags/internal/flag.cc",
"absl/flags/internal/program_name.cc",
"absl/flags/internal/usage.cc",
"absl/flags/marshalling.cc",
"absl/flags/parse.cc",
"absl/flags/usage.cc",
"absl/flags/usage_config.cc",
"absl/hash/internal/city.cc",
"absl/hash/internal/hash.cc",
"absl/numeric/int128.cc",
"absl/random/discrete_distribution.cc",
"absl/random/gaussian_distribution.cc",
"absl/random/internal/chi_square.cc",
"absl/random/internal/distribution_test_util.cc",
"absl/random/internal/nanobenchmark.cc",
"absl/random/internal/pool_urbg.cc",
"absl/random/internal/randen.cc",
"absl/random/internal/randen_detect.cc",
"absl/random/internal/randen_hwaes.cc",
"absl/random/internal/randen_slow.cc",
"absl/random/internal/seed_material.cc",
"absl/random/seed_gen_exception.cc",
"absl/random/seed_sequences.cc",
"absl/status/status.cc",
"absl/status/status_payload_printer.cc",
"absl/strings/ascii.cc",
"absl/strings/charconv.cc",
"absl/strings/cord.cc",
"absl/strings/escaping.cc",
"absl/strings/internal/charconv_bigint.cc",
"absl/strings/internal/charconv_parse.cc",
"absl/strings/internal/escaping.cc",
"absl/strings/internal/memutil.cc",
"absl/strings/internal/ostringstream.cc",
"absl/strings/internal/pow10_helper.cc",
"absl/strings/internal/str_format/arg.cc",
"absl/strings/internal/str_format/bind.cc",
"absl/strings/internal/str_format/extension.cc",
"absl/strings/internal/str_format/float_conversion.cc",
"absl/strings/internal/str_format/output.cc",
"absl/strings/internal/str_format/parser.cc",
"absl/strings/internal/utf8.cc",
"absl/strings/match.cc",
"absl/strings/numbers.cc",
"absl/strings/str_cat.cc",
"absl/strings/str_replace.cc",
"absl/strings/str_split.cc",
"absl/strings/string_view.cc",
"absl/strings/substitute.cc",
"absl/synchronization/barrier.cc",
"absl/synchronization/blocking_counter.cc",
"absl/synchronization/internal/create_thread_identity.cc",
"absl/synchronization/internal/graphcycles.cc",
"absl/synchronization/internal/per_thread_sem.cc",
"absl/synchronization/notification.cc",
"absl/time/civil_time.cc",
"absl/time/clock.cc",
"absl/time/duration.cc",
"absl/time/format.cc",
"absl/time/internal/cctz/src/civil_time_detail.cc",
"absl/time/internal/cctz/src/time_zone_fixed.cc",
"absl/time/internal/cctz/src/time_zone_format.cc",
"absl/time/internal/cctz/src/time_zone_if.cc",
"absl/time/internal/cctz/src/time_zone_impl.cc",
"absl/time/internal/cctz/src/time_zone_info.cc",
"absl/time/internal/cctz/src/time_zone_libc.cc",
"absl/time/internal/cctz/src/time_zone_lookup.cc",
"absl/time/internal/cctz/src/time_zone_posix.cc",
"absl/time/internal/cctz/src/zone_info_source.cc",
"absl/time/internal/test_util.cc",
"absl/time/time.cc",
"absl/types/bad_any_cast.cc",
"absl/types/bad_optional_access.cc",
"absl/types/bad_variant_access.cc",
]
cc_library(
name = "absl",
hdrs = absl_headers,
srcs = absl_sources,
cxxopts = [
"-std=c++17",
@ -360,7 +365,7 @@ cc_library(
deps = [
],
copts = [
"-Ithird-party/webrtc/absl/third_party/abseil-cpp",
"-Ithird-party/webrtc/absl",
"-DABSL_ALLOCATOR_NOTHROW=1",
],
visibility = ["//visibility:public"],

Some files were not shown because too many files have changed in this diff Show More