Vendor dependencies
Let's see how I like this workflow.
This commit is contained in:
parent
34d1830413
commit
9c435dc440
7500 changed files with 1665121 additions and 99 deletions
65
vendor/cxx/tools/buck/prelude/apple/swift_toolchain.bzl
vendored
Normal file
65
vendor/cxx/tools/buck/prelude/apple/swift_toolchain.bzl
vendored
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
# 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(":apple_sdk_module.bzl", "create_sdk_modules_graph")
|
||||
load(":swift_toolchain_types.bzl", "SdkUncompiledModuleInfo", "SwiftToolchainInfo")
|
||||
|
||||
def swift_toolchain_impl(ctx):
|
||||
compiler = cmd_args(ctx.attrs._swiftc_wrapper[RunInfo]).add(ctx.attrs.swiftc[RunInfo])
|
||||
compiler_flags = ctx.attrs.swiftc_flags
|
||||
sdk_path = ctx.attrs._internal_sdk_path or ctx.attrs.sdk_path
|
||||
resource_dir = ctx.attrs.resource_dir
|
||||
|
||||
toolchain_context = struct(
|
||||
compiler = compiler,
|
||||
sdk_path = sdk_path,
|
||||
compiler_flags = compiler_flags,
|
||||
swift_resource_dir = resource_dir,
|
||||
)
|
||||
|
||||
compiled_sdk_module_providers = {}
|
||||
|
||||
sdk_uncompiled_module_infos = filter(None, [d.get(SdkUncompiledModuleInfo) for d in ctx.attrs.sdk_modules])
|
||||
for uncompiled_swift_module_info in sdk_uncompiled_module_infos:
|
||||
create_sdk_modules_graph(
|
||||
ctx,
|
||||
compiled_sdk_module_providers,
|
||||
uncompiled_swift_module_info,
|
||||
toolchain_context,
|
||||
)
|
||||
|
||||
compiled_sdk_swift_module_providers = {
|
||||
info.module_name: info
|
||||
for _, info in compiled_sdk_module_providers.items()
|
||||
if info.is_swiftmodule
|
||||
}
|
||||
|
||||
compiled_sdk_clang_module_providers = {
|
||||
info.module_name: info
|
||||
for _, info in compiled_sdk_module_providers.items()
|
||||
if not info.is_swiftmodule
|
||||
}
|
||||
|
||||
return [
|
||||
DefaultInfo(),
|
||||
SwiftToolchainInfo(
|
||||
architecture = ctx.attrs.architecture,
|
||||
can_toolchain_emit_obj_c_header_textually = ctx.attrs.can_toolchain_emit_obj_c_header_textually,
|
||||
# TODO(T99038725): until we add -debug-compilation-dir we need to wrap
|
||||
# the Swift invocations so that we can apply a debug prefix map for
|
||||
# the current directory while maintaining cache hit.
|
||||
compiled_sdk_clang_modules = compiled_sdk_clang_module_providers,
|
||||
compiled_sdk_swift_modules = compiled_sdk_swift_module_providers,
|
||||
compiler = compiler,
|
||||
compiler_flags = compiler_flags,
|
||||
prefix_serialized_debugging_options = ctx.attrs.prefix_serialized_debug_info,
|
||||
resource_dir = resource_dir,
|
||||
sdk_path = sdk_path,
|
||||
swift_stdlib_tool = ctx.attrs.swift_stdlib_tool[RunInfo],
|
||||
swift_stdlib_tool_flags = ctx.attrs.swift_stdlib_tool_flags,
|
||||
),
|
||||
]
|
||||
Loading…
Add table
Add a link
Reference in a new issue