Vendor dependencies

Let's see how I like this workflow.
This commit is contained in:
John Doty 2022-12-19 08:27:18 -08:00
parent 34d1830413
commit 9c435dc440
7500 changed files with 1665121 additions and 99 deletions

View file

@ -0,0 +1,35 @@
# Copyright (c) Meta Platforms, Inc. and affiliates.
#
# This source code is licensed under both the MIT license found in the
# LICENSE-MIT file in the root directory of this source tree and the Apache
# License, Version 2.0 found in the LICENSE-APACHE file in the root directory
# of this source tree.
load("@prelude//apple:apple_toolchain_types.bzl", "AppleToolchainInfo")
DSYM_SUBTARGET = "dsym"
DEBUGINFO_SUBTARGET = "debuginfo"
AppleDebuggableInfo = provider(fields = [
"dsyms", # ["artifact"]
"external_debug_info", # ["_arglike"]
])
# TODO(T110672942): Things which are still unsupported:
# - pass in dsymutil_extra_flags
# - oso_prefix
# - dsym_verification
def get_apple_dsym(ctx: "context", executable: "artifact", external_debug_info: ["_arglike"], action_identifier: "string") -> "artifact":
dsymutil = ctx.attrs._apple_toolchain[AppleToolchainInfo].dsymutil
output = ctx.actions.declare_output("{}.dSYM".format(executable.short_path))
cmd = cmd_args([dsymutil, "-o", output.as_output(), executable])
# Mach-O executables don't contain DWARF data.
# Instead, they contain paths to the object files which themselves contain DWARF data.
#
# So, those object files are needed for dsymutil to be to create the dSYM bundle.
cmd.hidden(external_debug_info)
ctx.actions.run(cmd, category = "apple_dsym", identifier = action_identifier)
return output