Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,12 @@ readonly config="${BAZEL_CONFIG}_indexbuild"
output_groups=(
# Compile params
"bc $BAZEL_TARGET_ID"
# Products (i.e. bundles) and index store data. The products themselves aren't
# used, they cause transitive files to be created. We use
# `--remote_download_regex` below to collect the files we care
# Indexstores and their filelist. Requesting indexstore directories triggers
# transitive Swift compilation (producing swiftmodules, indexstores, and
# generated headers) without linking, avoiding large product binaries. We use
# `--remote_download_regex` below to download the files we care
# about.
"bp $BAZEL_TARGET_ID"
"bi $BAZEL_TARGET_ID"
)

indexstores_filelists=()
Expand Down
9 changes: 9 additions & 0 deletions xcodeproj/internal/files/output_files.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -262,8 +262,17 @@ def _collect_output_files(
transitive = [transitive_products],
)

# Indexing output group: contains indexstores (to trigger Swift compilation)
# and the indexstores filelist (for import_indexstores). Unlike `bp`, this
# does not include linked products, avoiding large binary materialization.
indexing_depset = memory_efficient_depset(
[indexstores_filelist],
transitive = [transitive_indexstores],
)

direct_group_list = [
("bc {}".format(id), transitive_compile_params),
("bi {}".format(id), indexing_depset),
("bl {}".format(id), transitive_link_params),
(products_output_group_name, products_depset),
]
Expand Down
Loading