From b2a994626734fde63708791510e5c2e5db7a1290 Mon Sep 17 00:00:00 2001 From: "i@jerrymarino.com" Date: Thu, 7 Oct 2021 14:02:44 -0700 Subject: [PATCH 1/8] Fix and assert swift imported header propagation This PR fixes a bug in swift compilation with imported framework transitive headers. Additionally it refactors the testing rules into a package that can be used with `rules_ios` or other repositories. These tests iclude existing tests for Bazel transitions being incorrect in `rules_ios` and the new generalized header test. The headers test allows a user to assert that tests are propagated to actions For cases: 1. add a frameworks directory to the app. This represents the case of `apple_framework.vendored_static_frameworks` which is commonly used as a way to import frameworks 2. test framework import under test-imports-app. Asserts transitive headers are loaded from TesnorFlow. --- .github/workflows/tests.yml | 1 + rules/analysis_tests/BUILD.bazel | 0 .../analysis_tests/identical_outputs_test.bzl | 82 +++++++++++++++ .../analysis_tests/transitive_header_test.bzl | 27 +++++ rules/framework.bzl | 17 ++-- tests/ios/app/analysis-tests.bzl | 94 ++---------------- .../test-imports-app/BUILD.GoogleMobileAds | 22 ++-- .../unit-test/test-imports-app/BUILD.bazel | 4 + .../test-imports-app/analysis-tests.bzl | 23 +++++ .../test-imports-app/frameworks/BUILD.bazel | 0 .../frameworks/Basic/BUILD.bazel | 13 +++ .../Basic/ios/Basic.framework/Basic | Bin 0 -> 3592 bytes .../Basic/ios/Basic.framework/Headers/Basic.h | 9 ++ .../Basic.framework/Modules/module.modulemap | 4 + .../frameworks/NestedHeaders/BUILD.bazel | 9 ++ .../ios/NestedHeaders.framework/Basic | Bin 0 -> 3592 bytes .../Headers/Nested/Basic.h | 9 ++ .../Modules/module.modulemap | 4 + 18 files changed, 215 insertions(+), 103 deletions(-) create mode 100644 rules/analysis_tests/BUILD.bazel create mode 100644 rules/analysis_tests/identical_outputs_test.bzl create mode 100644 rules/analysis_tests/transitive_header_test.bzl create mode 100644 tests/ios/unit-test/test-imports-app/analysis-tests.bzl create mode 100644 tests/ios/unit-test/test-imports-app/frameworks/BUILD.bazel create mode 100644 tests/ios/unit-test/test-imports-app/frameworks/Basic/BUILD.bazel create mode 100644 tests/ios/unit-test/test-imports-app/frameworks/Basic/ios/Basic.framework/Basic create mode 100644 tests/ios/unit-test/test-imports-app/frameworks/Basic/ios/Basic.framework/Headers/Basic.h create mode 100644 tests/ios/unit-test/test-imports-app/frameworks/Basic/ios/Basic.framework/Modules/module.modulemap create mode 100644 tests/ios/unit-test/test-imports-app/frameworks/NestedHeaders/BUILD.bazel create mode 100644 tests/ios/unit-test/test-imports-app/frameworks/NestedHeaders/ios/NestedHeaders.framework/Basic create mode 100644 tests/ios/unit-test/test-imports-app/frameworks/NestedHeaders/ios/NestedHeaders.framework/Headers/Nested/Basic.h create mode 100644 tests/ios/unit-test/test-imports-app/frameworks/NestedHeaders/ios/NestedHeaders.framework/Modules/module.modulemap diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index a454708da..04dbba064 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -37,6 +37,7 @@ jobs: - name: Build and Test run: | bazelisk build //... --features apple.virtualize_frameworks + bazelisk test //... --features apple.virtualize_frameworks - uses: actions/upload-artifact@v2 if: failure() with: diff --git a/rules/analysis_tests/BUILD.bazel b/rules/analysis_tests/BUILD.bazel new file mode 100644 index 000000000..e69de29bb diff --git a/rules/analysis_tests/identical_outputs_test.bzl b/rules/analysis_tests/identical_outputs_test.bzl new file mode 100644 index 000000000..2f11a1ee4 --- /dev/null +++ b/rules/analysis_tests/identical_outputs_test.bzl @@ -0,0 +1,82 @@ +load("@bazel_skylib//lib:unittest.bzl", "analysistest", "asserts") + +_TestFiles = provider( + fields = { + "files": "A glob of files collected for later assertions", + }, +) + +def _identical_outputs_test_impl(ctx): + env = analysistest.begin(ctx) + all_files = [] + asserts.true(env, len(ctx.attr.deps) > 1) + + for dep in ctx.attr.deps: + if not _TestFiles in dep: + continue + + # The input root is the part of the file usually rooted in bazel-out. + # For starlark transitions output dirs are fingerprinted by the hash of the + # relevant configuration keys. + # src/main/java/com/google/devtools/build/lib/analysis/starlark/FunctionTransitionUtil.java + for input in dep[_TestFiles].files.to_list(): + all_files.append(input.root.path) + + # Expect that we have recieved multiple swiftmodules + asserts.true(env, len(all_files) > 1) + + # Assert all swiftmodules have identical outputs ( and most importantly an + # identical output directory ) + asserts.equals(env, 1, len(depset(all_files).to_list())) + return analysistest.end(env) + +def _collect_transitive_outputs_impl(target, ctx): + # Collect trans swift_library outputs + out = [] + if ctx.rule.kind == "swift_library": + out.extend(target[DefaultInfo].files.to_list()) + + if _TestFiles in target: + out.extend(target[_TestFiles].files.to_list()) + if hasattr(ctx.rule.attr, "srcs"): + for d in ctx.rule.attr.srcs: + if _TestFiles in d: + out.extend(d[_TestFiles].files.to_list()) + if hasattr(ctx.rule.attr, "deps"): + for d in ctx.rule.attr.deps: + if _TestFiles in d: + out.extend(d[_TestFiles].files.to_list()) + return _TestFiles(files = depset(out)) + +_collect_transitive_outputs = aspect( + implementation = _collect_transitive_outputs_impl, + attr_aspects = ["deps", "srcs"], +) + +# This test asserts that transitive dependencies have identical outputs for +# different transition paths. In particular, a rules_apple ios_application and +# an a apple_framework that share a swift_library, +# //tests/ios/app:SwiftLib_swift. This test ensures that the actions in both +# builds have functionally equal transitions applied by normalizing their output +# directories into a set. +# +# For instance these tests will fail if there is any delta and requires both: +# - adding apple_common.multi_arch_split to apple_framework.deps - #188 +# - the transition yields the same result when used w/rules_apple - #196 + +# Note: +# The gist of Bazel's configuration resolver is that it will apply +# relevant transitions to keys that are used by a given action. e.g. ios_multi_cpus. +# src/main/java/com/google/devtools/build/lib/analysis/config/ConfigurationResolver.java +# +# In order to get the same configuration for a rule, a given transition has +# to produce the same values for dependent keys for all possible combinations +identical_outputs_test = analysistest.make( + _identical_outputs_test_impl, + expect_failure = False, + attrs = { + "deps": attr.label_list( + aspects = [_collect_transitive_outputs], + ), + }, +) diff --git a/rules/analysis_tests/transitive_header_test.bzl b/rules/analysis_tests/transitive_header_test.bzl new file mode 100644 index 000000000..e2f3cf18e --- /dev/null +++ b/rules/analysis_tests/transitive_header_test.bzl @@ -0,0 +1,27 @@ +load("@bazel_skylib//lib:unittest.bzl", "analysistest", "asserts") +load("@build_bazel_rules_swift//swift:swift.bzl", "SwiftInfo", "swift_common") + +def _transitive_header_test_impl(ctx): + env = analysistest.begin(ctx) + asserts.true(env, len(ctx.attr.deps) > 0) + target_under_test = analysistest.target_under_test(env) + target_headers = target_under_test[CcInfo].compilation_context.headers.to_list() + for dep in ctx.attr.deps: + asserts.true(env, CcInfo in dep) + dep_headers = dep[CcInfo].compilation_context.headers.to_list() + for dep_header in dep_headers: + # Assert that all of the dep headers are in the target + has_header = dep_header in target_headers + asserts.true(env, has_header) + return analysistest.end(env) + +# The headers test allows a user to assert that tests are propagated to actions +# from arbitrary deps. Given a target_under_test, supply transitive deps or +# virutally any file group. +transitive_header_test = analysistest.make( + _transitive_header_test_impl, + expect_failure = False, + attrs = { + "deps": attr.label_list(allow_empty = False), + }, +) diff --git a/rules/framework.bzl b/rules/framework.bzl index a7f4a7b38..789492271 100644 --- a/rules/framework.bzl +++ b/rules/framework.bzl @@ -13,6 +13,7 @@ load("//rules:providers.bzl", "FrameworkInfo") load("//rules/framework:vfs_overlay.bzl", "VFSOverlayInfo", "make_vfsoverlay") load("//rules:features.bzl", "feature_names") load("//rules:plists.bzl", "info_plists_by_setting") +load("//rules:hmap.bzl", "HeaderMapInfo") _APPLE_FRAMEWORK_PACKAGING_KWARGS = [ "visibility", @@ -159,6 +160,13 @@ def _get_virtual_framework_info(ctx, framework_files, compilation_context_fields # We need to map all the deps here - for both swift headers and others fw_dep_vfsoverlays = [] for dep in transitive_deps + deps: + # Collect transitive headers. For now, this needs to include all of the + # transitive headers + if not CcInfo in dep: + continue + for h in dep[CcInfo].compilation_context.headers.to_list(): + propagated_interface_headers.append(depset([h])) + if not FrameworkInfo in dep: continue framework_info = dep[FrameworkInfo] @@ -166,15 +174,6 @@ def _get_virtual_framework_info(ctx, framework_files, compilation_context_fields framework_headers = depset(framework_info.headers + framework_info.modulemap + framework_info.private_headers) propagated_interface_headers.append(framework_headers) - # Collect generated headers. consider exposing all required generated - # headers in respective providers: -Swift, modulemap, -umbrella.h - if not CcInfo in dep: - continue - for h in dep[CcInfo].compilation_context.headers.to_list(): - if h.is_source: - continue - propagated_interface_headers.append(depset([h])) - outputs = framework_files.outputs vfs = make_vfsoverlay( ctx, diff --git a/tests/ios/app/analysis-tests.bzl b/tests/ios/app/analysis-tests.bzl index d713ee836..f203890ad 100644 --- a/tests/ios/app/analysis-tests.bzl +++ b/tests/ios/app/analysis-tests.bzl @@ -1,89 +1,8 @@ -load("@bazel_skylib//lib:unittest.bzl", "analysistest", "asserts") - -_TestFiles = provider( - fields = { - "files": "A glob of files collected for later assertions", - }, -) - -def _identical_outputs_test_impl(ctx): - env = analysistest.begin(ctx) - all_files = [] - asserts.true(env, len(ctx.attr.deps) > 1) - - for dep in ctx.attr.deps: - if not _TestFiles in dep: - continue - - # The input root is the part of the file usually rooted in bazel-out. - # For starlark transitions output dirs are fingerprinted by the hash of the - # relevant configuration keys. - # src/main/java/com/google/devtools/build/lib/analysis/starlark/FunctionTransitionUtil.java - for input in dep[_TestFiles].files.to_list(): - all_files.append(input.root.path) - - # Expect that we have recieved multiple swiftmodules - asserts.true(env, len(all_files) > 1) - - # Assert all swiftmodules have identical outputs ( and most importantly an - # identical output directory ) - asserts.equals(env, 1, len(depset(all_files).to_list())) - return analysistest.end(env) - -def _collect_transitive_outputs_impl(target, ctx): - # Collect trans swift_library outputs - out = [] - if ctx.rule.kind == "swift_library": - out.extend(target[DefaultInfo].files.to_list()) - - if _TestFiles in target: - out.extend(target[_TestFiles].files.to_list()) - if hasattr(ctx.rule.attr, "srcs"): - for d in ctx.rule.attr.srcs: - if _TestFiles in d: - out.extend(d[_TestFiles].files.to_list()) - if hasattr(ctx.rule.attr, "deps"): - for d in ctx.rule.attr.deps: - if _TestFiles in d: - out.extend(d[_TestFiles].files.to_list()) - return _TestFiles(files = depset(out)) - -_collect_transitive_outputs = aspect( - implementation = _collect_transitive_outputs_impl, - attr_aspects = ["deps", "srcs"], -) - -_identical_outputs_test = analysistest.make( - _identical_outputs_test_impl, - expect_failure = False, - attrs = { - "deps": attr.label_list( - aspects = [_collect_transitive_outputs], - ), - }, -) +load("//rules/analysis_tests:identical_outputs_test.bzl", "identical_outputs_test") +load("//rules/analysis_tests:transitive_header_test.bzl", "transitive_header_test") def make_tests(): - # This test asserts that transitive dependencies have identical outputs for - # different transition paths. In particular, a rules_apple ios_application and an a - # apple_framework that share a swift_library, :SwiftLib_swift. This test ensures - # that the actions in both builds have functionally equal transitions - # applied by normalizing their output directories into a set. - # - # For instance these tests will fail if there is any delta and requires both: - # - adding apple_common.multi_arch_split to apple_framework.deps - #188 - # - the transition yields the same result when used w/rules_apple - #196 - - # Note: - # The gist of Bazel's configuration resolver is that it will apply - # relevant transitions to keys that are used by a given action. e.g. ios_multi_cpus. - # src/main/java/com/google/devtools/build/lib/analysis/config/ConfigurationResolver.java - # - # In order to get the same configuration for a rule, a given transition has - # to produce the same values for dependent keys for all possible combinations - # of edges - - _identical_outputs_test( + identical_outputs_test( name = "test_DependencyEquivilance", target_under_test = ":AppWithSelectableCopts", @@ -92,9 +11,16 @@ def make_tests(): deps = [":AppWithSelectableCopts", ":SwiftLib"], ) + transitive_header_test( + name = "test_SwiftCompilationHeaders", + target_under_test = ":AppWithSelectableCopts_objc", + deps = [":SwiftLib"], + ) + native.test_suite( name = "AnalysisTests", tests = [ ":test_DependencyEquivilance", + ":test_SwiftCompilationHeaders", ], ) diff --git a/tests/ios/unit-test/test-imports-app/BUILD.GoogleMobileAds b/tests/ios/unit-test/test-imports-app/BUILD.GoogleMobileAds index cd00cfdae..a35947486 100644 --- a/tests/ios/unit-test/test-imports-app/BUILD.GoogleMobileAds +++ b/tests/ios/unit-test/test-imports-app/BUILD.GoogleMobileAds @@ -1,12 +1,18 @@ - load( "@build_bazel_rules_ios//rules:apple_patched.bzl", - "apple_static_framework_import" + "apple_static_framework_import", ) apple_static_framework_import( name = "GoogleMobileAds", - framework_imports = glob(["Frameworks/GoogleMobileAdsFramework-Current/GoogleMobileAds.xcframework/ios-arm64_x86_64-simulator/GoogleMobileAds.framework/**"], allow_empty = False), + framework_imports = glob( + ["Frameworks/GoogleMobileAdsFramework-Current/GoogleMobileAds.xcframework/ios-arm64_x86_64-simulator/GoogleMobileAds.framework/**"], + allow_empty = False, + ), + sdk_dylibs = [ + "libsqlite3", + "libz", + ], sdk_frameworks = [ "AudioToolbox", "AVFoundation", @@ -21,17 +27,13 @@ apple_static_framework_import( "QuartzCore", "Security", "StoreKit", - "SystemConfiguration" + "SystemConfiguration", ], + visibility = ["//visibility:public"], weak_sdk_frameworks = [ "AdSupport", "JavaScriptCore", "SafariServices", - "WebKit" + "WebKit", ], - sdk_dylibs = [ - "libsqlite3", - "libz" - ], - visibility = ["//visibility:public"], ) diff --git a/tests/ios/unit-test/test-imports-app/BUILD.bazel b/tests/ios/unit-test/test-imports-app/BUILD.bazel index 76be263d7..fb86d5306 100644 --- a/tests/ios/unit-test/test-imports-app/BUILD.bazel +++ b/tests/ios/unit-test/test-imports-app/BUILD.bazel @@ -1,6 +1,7 @@ load("//rules:app.bzl", "ios_application") load("//rules:framework.bzl", "apple_framework", "apple_framework_packaging") load("//rules:test.bzl", "ios_unit_test") +load(":analysis-tests.bzl", "make_tests") apple_framework( name = "SomeFramework", @@ -9,6 +10,7 @@ apple_framework( "ios": "12.0", }, visibility = ["//visibility:public"], + deps = ["//tests/ios/unit-test/test-imports-app/frameworks/Basic"], ) ios_application( @@ -93,3 +95,5 @@ ios_unit_test( "//conditions:default": [], }), ) + +make_tests() diff --git a/tests/ios/unit-test/test-imports-app/analysis-tests.bzl b/tests/ios/unit-test/test-imports-app/analysis-tests.bzl new file mode 100644 index 000000000..7db248293 --- /dev/null +++ b/tests/ios/unit-test/test-imports-app/analysis-tests.bzl @@ -0,0 +1,23 @@ +load("//rules/analysis_tests:identical_outputs_test.bzl", "identical_outputs_test") +load("//rules/analysis_tests:transitive_header_test.bzl", "transitive_header_test") + +def make_tests(): + transitive_header_test( + name = "test_SomeFramework_SwiftCompilationHeaders", + target_under_test = ":SomeFramework_swift", + deps = ["//tests/ios/unit-test/test-imports-app/frameworks/Basic"], + ) + + transitive_header_test( + name = "test_App_SwiftCompilationHeaders", + target_under_test = ":TestImports-App_swift", + deps = ["//tests/ios/unit-test/test-imports-app/frameworks/Basic", "@TensorFlowLiteC//:TensorFlowLiteC"], + ) + + native.test_suite( + name = "AnalysisTests", + tests = [ + ":test_App_SwiftCompilationHeaders", + ":test_SomeFramework_SwiftCompilationHeaders", + ], + ) diff --git a/tests/ios/unit-test/test-imports-app/frameworks/BUILD.bazel b/tests/ios/unit-test/test-imports-app/frameworks/BUILD.bazel new file mode 100644 index 000000000..e69de29bb diff --git a/tests/ios/unit-test/test-imports-app/frameworks/Basic/BUILD.bazel b/tests/ios/unit-test/test-imports-app/frameworks/Basic/BUILD.bazel new file mode 100644 index 000000000..7ed267ac0 --- /dev/null +++ b/tests/ios/unit-test/test-imports-app/frameworks/Basic/BUILD.bazel @@ -0,0 +1,13 @@ +load("//rules:framework.bzl", "apple_framework") + +apple_framework( + name = "Basic", + # Note: it is totally possible that a user would write a glob like this.. + # srcs = glob([ + # "sources/Basic/**/*.h", + # ]), + objc_copts = ["-fmodules-disable-diagnostic-validation"], + platforms = {"ios": "12.0"}, + vendored_static_frameworks = ["ios/Basic.framework"], + visibility = ["//visibility:public"], +) diff --git a/tests/ios/unit-test/test-imports-app/frameworks/Basic/ios/Basic.framework/Basic b/tests/ios/unit-test/test-imports-app/frameworks/Basic/ios/Basic.framework/Basic new file mode 100644 index 0000000000000000000000000000000000000000..b2969d09edd3a7c2a6dc4fc34460c63a9676d99a GIT binary patch literal 3592 zcmc&%O>7%Q6duR1>iq(}&f6UW}**duo?5vLxI$^{9DOC<#A0R#deRUiT1+ntT=jjI$D)F-`tZ{EE5 zc4qdyH?uEYP|eEv8_|;%tE?YR8A=~s-;)B?NY9k?zY37VP47oSK*b1&1-!89Cu%i zI_Q!?FzoIhKm9epSRe>J0FHq7LU@Q^&LU@~HXIzftJYg@Lf zyX{i$YN_4!YaU*QeYZmgo>AVYD3z*eS#`ChDN1j=FdyW{>+1xA?%^4A%bBI3WYeW| z+llst=wnx~`&cjS*=I4v{8;3|@m5q@bw>E{ZaG%Q3S4esqJ*~xJnvn+%MsrEXuVb4 zvi*4XxwAL+4##6d?srAE7kZs|dQDx^^!lpd$NR;H_m#Ji+~9}Ul$Uqh|<@vi&u z&Oaia-D>n)?|U5Y13s;H4#ji7Z&j~rz1AD#_2f&A_uV0QDfk@+JD)9tszVH-O(uH; zc|d(zkhdX`X8XBEJ|5FDC=dTFjbXqUFyV}?nuv;b4f6(@HJWwQ0Nto_z=!x{W*0Tv z8PVY4DV}kxW64xv675tDQn*& zI{s63+Ym3PAM$qOZn2ZLasQS7=4mkA{Seht<~fO zy=~GM2?L!rnm~Om8qz70SGKBO% zW`XFvRP8=rd@wZqN$J&#t$RZYXj8IK8d2QS94Q+{z#z&JGEve{wt*;-$aEUaO?RO7 zvoG)r1Ok5wM@Wzhc|O5VmYbF->-9>txuVGwgtEkglzCAqt-xHL6tHDX9J>^z zGmYe&yAWXt5?3mL$_omPKy@CwEQpXGfi8d4PqiCIE6P+`0!R1=Z2<$QpNMvx+6AY@ z7~SNK0(g(Nuk-dT-sT(1Tke@lHjl=kbhdpzJl=|X{PVQC+$+CUYuGKNqE^;5ABdac Y?w{1bzb2*g7i%fs{>$ literal 0 HcmV?d00001 diff --git a/tests/ios/unit-test/test-imports-app/frameworks/Basic/ios/Basic.framework/Headers/Basic.h b/tests/ios/unit-test/test-imports-app/frameworks/Basic/ios/Basic.framework/Headers/Basic.h new file mode 100644 index 000000000..3527cf286 --- /dev/null +++ b/tests/ios/unit-test/test-imports-app/frameworks/Basic/ios/Basic.framework/Headers/Basic.h @@ -0,0 +1,9 @@ +@import Foundation; + +typedef NS_ENUM(NSInteger, BasicVal) { + BasicVal_Unknown = 0, + BasicVal_FinishActivating = 1, + BasicVal_DownloadTheApp = 2, +}; + +static const NSString *BasicString = @"BasicString"; diff --git a/tests/ios/unit-test/test-imports-app/frameworks/Basic/ios/Basic.framework/Modules/module.modulemap b/tests/ios/unit-test/test-imports-app/frameworks/Basic/ios/Basic.framework/Modules/module.modulemap new file mode 100644 index 000000000..737da7b28 --- /dev/null +++ b/tests/ios/unit-test/test-imports-app/frameworks/Basic/ios/Basic.framework/Modules/module.modulemap @@ -0,0 +1,4 @@ +framework module Basic { + header "Basic.h" + export * +} diff --git a/tests/ios/unit-test/test-imports-app/frameworks/NestedHeaders/BUILD.bazel b/tests/ios/unit-test/test-imports-app/frameworks/NestedHeaders/BUILD.bazel new file mode 100644 index 000000000..31aaefc43 --- /dev/null +++ b/tests/ios/unit-test/test-imports-app/frameworks/NestedHeaders/BUILD.bazel @@ -0,0 +1,9 @@ +load("//rules:framework.bzl", "apple_framework") + +apple_framework( + name = "NestedHeaders", + objc_copts = ["-fmodules-disable-diagnostic-validation"], + platforms = {"ios": "12.0"}, + vendored_static_frameworks = ["ios/NestedHeaders.framework"], + visibility = ["//visibility:public"], +) diff --git a/tests/ios/unit-test/test-imports-app/frameworks/NestedHeaders/ios/NestedHeaders.framework/Basic b/tests/ios/unit-test/test-imports-app/frameworks/NestedHeaders/ios/NestedHeaders.framework/Basic new file mode 100644 index 0000000000000000000000000000000000000000..b2969d09edd3a7c2a6dc4fc34460c63a9676d99a GIT binary patch literal 3592 zcmc&%O>7%Q6duR1>iq(}&f6UW}**duo?5vLxI$^{9DOC<#A0R#deRUiT1+ntT=jjI$D)F-`tZ{EE5 zc4qdyH?uEYP|eEv8_|;%tE?YR8A=~s-;)B?NY9k?zY37VP47oSK*b1&1-!89Cu%i zI_Q!?FzoIhKm9epSRe>J0FHq7LU@Q^&LU@~HXIzftJYg@Lf zyX{i$YN_4!YaU*QeYZmgo>AVYD3z*eS#`ChDN1j=FdyW{>+1xA?%^4A%bBI3WYeW| z+llst=wnx~`&cjS*=I4v{8;3|@m5q@bw>E{ZaG%Q3S4esqJ*~xJnvn+%MsrEXuVb4 zvi*4XxwAL+4##6d?srAE7kZs|dQDx^^!lpd$NR;H_m#Ji+~9}Ul$Uqh|<@vi&u z&Oaia-D>n)?|U5Y13s;H4#ji7Z&j~rz1AD#_2f&A_uV0QDfk@+JD)9tszVH-O(uH; zc|d(zkhdX`X8XBEJ|5FDC=dTFjbXqUFyV}?nuv;b4f6(@HJWwQ0Nto_z=!x{W*0Tv z8PVY4DV}kxW64xv675tDQn*& zI{s63+Ym3PAM$qOZn2ZLasQS7=4mkA{Seht<~fO zy=~GM2?L!rnm~Om8qz70SGKBO% zW`XFvRP8=rd@wZqN$J&#t$RZYXj8IK8d2QS94Q+{z#z&JGEve{wt*;-$aEUaO?RO7 zvoG)r1Ok5wM@Wzhc|O5VmYbF->-9>txuVGwgtEkglzCAqt-xHL6tHDX9J>^z zGmYe&yAWXt5?3mL$_omPKy@CwEQpXGfi8d4PqiCIE6P+`0!R1=Z2<$QpNMvx+6AY@ z7~SNK0(g(Nuk-dT-sT(1Tke@lHjl=kbhdpzJl=|X{PVQC+$+CUYuGKNqE^;5ABdac Y?w{1bzb2*g7i%fs{>$ literal 0 HcmV?d00001 diff --git a/tests/ios/unit-test/test-imports-app/frameworks/NestedHeaders/ios/NestedHeaders.framework/Headers/Nested/Basic.h b/tests/ios/unit-test/test-imports-app/frameworks/NestedHeaders/ios/NestedHeaders.framework/Headers/Nested/Basic.h new file mode 100644 index 000000000..fef9b6d21 --- /dev/null +++ b/tests/ios/unit-test/test-imports-app/frameworks/NestedHeaders/ios/NestedHeaders.framework/Headers/Nested/Basic.h @@ -0,0 +1,9 @@ +@import Foundation; + +typedef NS_ENUM(NSInteger, NestedHeadersVal) { + NestedHeadersVal_Unknown = 0, + NestedHeadersVal_FinishActivating = 1, + NestedHeadersVal_DownloadTheApp = 2, +}; + +static const NSString *NestedHeadersString = @"NestedHeadersString"; diff --git a/tests/ios/unit-test/test-imports-app/frameworks/NestedHeaders/ios/NestedHeaders.framework/Modules/module.modulemap b/tests/ios/unit-test/test-imports-app/frameworks/NestedHeaders/ios/NestedHeaders.framework/Modules/module.modulemap new file mode 100644 index 000000000..2bb71f050 --- /dev/null +++ b/tests/ios/unit-test/test-imports-app/frameworks/NestedHeaders/ios/NestedHeaders.framework/Modules/module.modulemap @@ -0,0 +1,4 @@ +framework module NestedHeaders { + header "NestedHeaders.h" + export * +} From 5138482e5b1fcd470f76b793ef40e6ebc930cc73 Mon Sep 17 00:00:00 2001 From: "i@jerrymarino.com" Date: Thu, 7 Oct 2021 18:46:44 -0700 Subject: [PATCH 2/8] Fix test suite --- .github/workflows/tests.yml | 16 +++++++++++++--- rules/analysis_tests/transitive_header_test.bzl | 5 +++++ rules/apple_patched.bzl | 1 + rules/framework.bzl | 4 ++-- tests/ios/app/analysis-tests.bzl | 7 ------- 5 files changed, 21 insertions(+), 12 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 04dbba064..348f54632 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -16,7 +16,9 @@ jobs: run: sudo xcode-select -s /Applications/Xcode_12.2.app - name: Build and Test run: | + # Host config bazelisk test --local_test_jobs=1 -- //... -//tests/ios/... + # `deleted_packages` is needed below in order to override the value of the .bazelrc file bazelisk test --local_test_jobs=1 --apple_platform_type=ios --deleted_packages='' -- //tests/ios/... - uses: actions/upload-artifact@v2 @@ -28,7 +30,7 @@ jobs: # Build the entire tree with this feature enabled. Longer term, we'll likely # consider merging this feature into the default behavior and can re-align # the CI job - name: Build ( Virtual Frameworks ) + name: Build and Test ( Virtual Frameworks ) runs-on: macos-latest steps: - uses: actions/checkout@v2 @@ -36,8 +38,16 @@ jobs: run: sudo xcode-select -s /Applications/Xcode_12.2.app - name: Build and Test run: | - bazelisk build //... --features apple.virtualize_frameworks - bazelisk test //... --features apple.virtualize_frameworks + # Host config + bazelisk test --features apple.virtualize_frameworks --local_test_jobs=1 -- //... -//tests/ios/... + + # `deleted_packages` is needed below in order to override the value of the .bazelrc file + bazelisk test --features apple.virtualize_frameworks \ + --local_test_jobs=1 \ + --apple_platform_type=ios \ + --deleted_packages='' \ + -- //tests/ios/... \ + -//tests/ios/frameworks/sources-with-prebuilt-binaries/... # Needs more work for pre-built binaries - uses: actions/upload-artifact@v2 if: failure() with: diff --git a/rules/analysis_tests/transitive_header_test.bzl b/rules/analysis_tests/transitive_header_test.bzl index e2f3cf18e..f1690eae3 100644 --- a/rules/analysis_tests/transitive_header_test.bzl +++ b/rules/analysis_tests/transitive_header_test.bzl @@ -11,7 +11,12 @@ def _transitive_header_test_impl(ctx): dep_headers = dep[CcInfo].compilation_context.headers.to_list() for dep_header in dep_headers: # Assert that all of the dep headers are in the target + if not dep_header.extension == "h": + continue + has_header = dep_header in target_headers + if not has_header: + print("Missing header", dep_header, target_headers) asserts.true(env, has_header) return analysistest.end(env) diff --git a/rules/apple_patched.bzl b/rules/apple_patched.bzl index 5253d7c9c..64017c7ce 100644 --- a/rules/apple_patched.bzl +++ b/rules/apple_patched.bzl @@ -95,6 +95,7 @@ def _get_framework_info_providers(ctx, old_cc_info, old_objc_provider): private_hdrs = [], has_swift = False, framework_name = imported_framework_name, + extra_search_paths = imported_framework_name, ) framework_info = FrameworkInfo( vfsoverlay_infos = [vfs.vfs_info], diff --git a/rules/framework.bzl b/rules/framework.bzl index 789492271..ef9273f31 100644 --- a/rules/framework.bzl +++ b/rules/framework.bzl @@ -164,8 +164,8 @@ def _get_virtual_framework_info(ctx, framework_files, compilation_context_fields # transitive headers if not CcInfo in dep: continue - for h in dep[CcInfo].compilation_context.headers.to_list(): - propagated_interface_headers.append(depset([h])) + compilation_context = dep[CcInfo].compilation_context + propagated_interface_headers.append(compilation_context.headers) if not FrameworkInfo in dep: continue diff --git a/tests/ios/app/analysis-tests.bzl b/tests/ios/app/analysis-tests.bzl index f203890ad..bc9e6872f 100644 --- a/tests/ios/app/analysis-tests.bzl +++ b/tests/ios/app/analysis-tests.bzl @@ -11,16 +11,9 @@ def make_tests(): deps = [":AppWithSelectableCopts", ":SwiftLib"], ) - transitive_header_test( - name = "test_SwiftCompilationHeaders", - target_under_test = ":AppWithSelectableCopts_objc", - deps = [":SwiftLib"], - ) - native.test_suite( name = "AnalysisTests", tests = [ ":test_DependencyEquivilance", - ":test_SwiftCompilationHeaders", ], ) From 83b6f11b9dd143dac0d00bfe302d7bdbf14ceda7 Mon Sep 17 00:00:00 2001 From: "i@jerrymarino.com" Date: Fri, 8 Oct 2021 10:17:17 -0700 Subject: [PATCH 3/8] Buildifier --- rules/analysis_tests/transitive_header_test.bzl | 1 - rules/framework.bzl | 1 - tests/ios/app/analysis-tests.bzl | 1 - tests/ios/unit-test/test-imports-app/analysis-tests.bzl | 1 - 4 files changed, 4 deletions(-) diff --git a/rules/analysis_tests/transitive_header_test.bzl b/rules/analysis_tests/transitive_header_test.bzl index f1690eae3..95a22d2d4 100644 --- a/rules/analysis_tests/transitive_header_test.bzl +++ b/rules/analysis_tests/transitive_header_test.bzl @@ -1,5 +1,4 @@ load("@bazel_skylib//lib:unittest.bzl", "analysistest", "asserts") -load("@build_bazel_rules_swift//swift:swift.bzl", "SwiftInfo", "swift_common") def _transitive_header_test_impl(ctx): env = analysistest.begin(ctx) diff --git a/rules/framework.bzl b/rules/framework.bzl index ef9273f31..88e4cf31c 100644 --- a/rules/framework.bzl +++ b/rules/framework.bzl @@ -13,7 +13,6 @@ load("//rules:providers.bzl", "FrameworkInfo") load("//rules/framework:vfs_overlay.bzl", "VFSOverlayInfo", "make_vfsoverlay") load("//rules:features.bzl", "feature_names") load("//rules:plists.bzl", "info_plists_by_setting") -load("//rules:hmap.bzl", "HeaderMapInfo") _APPLE_FRAMEWORK_PACKAGING_KWARGS = [ "visibility", diff --git a/tests/ios/app/analysis-tests.bzl b/tests/ios/app/analysis-tests.bzl index bc9e6872f..933e750b8 100644 --- a/tests/ios/app/analysis-tests.bzl +++ b/tests/ios/app/analysis-tests.bzl @@ -1,5 +1,4 @@ load("//rules/analysis_tests:identical_outputs_test.bzl", "identical_outputs_test") -load("//rules/analysis_tests:transitive_header_test.bzl", "transitive_header_test") def make_tests(): identical_outputs_test( diff --git a/tests/ios/unit-test/test-imports-app/analysis-tests.bzl b/tests/ios/unit-test/test-imports-app/analysis-tests.bzl index 7db248293..6412d4763 100644 --- a/tests/ios/unit-test/test-imports-app/analysis-tests.bzl +++ b/tests/ios/unit-test/test-imports-app/analysis-tests.bzl @@ -1,4 +1,3 @@ -load("//rules/analysis_tests:identical_outputs_test.bzl", "identical_outputs_test") load("//rules/analysis_tests:transitive_header_test.bzl", "transitive_header_test") def make_tests(): From 052e72a2c3199f29f9d033a5caf0d031188adf6e Mon Sep 17 00:00:00 2001 From: "i@jerrymarino.com" Date: Fri, 8 Oct 2021 10:21:26 -0700 Subject: [PATCH 4/8] Bumps project --- .../project.pbxproj | 20 +++++++++---------- .../project.pbxproj | 4 ++-- .../project.pbxproj | 4 ++-- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/tests/ios/xcodeproj/Test-BuildForDevice-Project.xcodeproj/project.pbxproj b/tests/ios/xcodeproj/Test-BuildForDevice-Project.xcodeproj/project.pbxproj index 7263c4692..7ecc7c519 100755 --- a/tests/ios/xcodeproj/Test-BuildForDevice-Project.xcodeproj/project.pbxproj +++ b/tests/ios/xcodeproj/Test-BuildForDevice-Project.xcodeproj/project.pbxproj @@ -409,7 +409,7 @@ CLANG_ENABLE_OBJC_ARC = YES; FRAMEWORK_SEARCH_PATHS = "$(PLATFORM_DIR)/Developer/Library/Frameworks"; GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)"; - HEADER_SEARCH_PATHS = "\"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/OnlySources_public_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/OnlySources_private_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT\""; + HEADER_SEARCH_PATHS = "\"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/OnlySources_public_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/OnlySources_private_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT\""; IPHONEOS_DEPLOYMENT_TARGET = 10.0; MACH_O_TYPE = "$(inherited)"; ONLY_ACTIVE_ARCH = YES; @@ -431,7 +431,7 @@ CLANG_ENABLE_OBJC_ARC = YES; FRAMEWORK_SEARCH_PATHS = "$(PLATFORM_DIR)/Developer/Library/Frameworks"; GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)"; - HEADER_SEARCH_PATHS = "\"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW_public_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW_private_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW_private_angled_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW_public_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW_private_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW_private_angled_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT\""; + HEADER_SEARCH_PATHS = "\"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW_public_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW_private_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW_private_angled_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW_public_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW_private_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW_private_angled_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT\""; IPHONEOS_DEPLOYMENT_TARGET = 10.0; MACH_O_TYPE = "$(inherited)"; ONLY_ACTIVE_ARCH = YES; @@ -453,7 +453,7 @@ CLANG_ENABLE_OBJC_ARC = YES; FRAMEWORK_SEARCH_PATHS = "$(PLATFORM_DIR)/Developer/Library/Frameworks"; GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)"; - HEADER_SEARCH_PATHS = "\"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/OnlySources_public_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/OnlySources_private_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT\""; + HEADER_SEARCH_PATHS = "\"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/OnlySources_public_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/OnlySources_private_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT\""; IPHONEOS_DEPLOYMENT_TARGET = 10.0; MACH_O_TYPE = "$(inherited)"; ONLY_ACTIVE_ARCH = YES; @@ -473,7 +473,7 @@ BAZEL_SWIFTMODULEFILES_TO_COPY = ""; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; - FRAMEWORK_SEARCH_PATHS = "$(PLATFORM_DIR)/Developer/Library/Frameworks \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW2\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/OnlySources\""; + FRAMEWORK_SEARCH_PATHS = "$(PLATFORM_DIR)/Developer/Library/Frameworks \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW2\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/OnlySources\""; GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)"; HEADER_SEARCH_PATHS = "\"$BAZEL_WORKSPACE_ROOT\""; INFOPLIST_FILE = "$BAZEL_STUBS_DIR/Info-stub.plist"; @@ -498,9 +498,9 @@ BAZEL_SWIFTMODULEFILES_TO_COPY = ""; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; - FRAMEWORK_SEARCH_PATHS = "$(PLATFORM_DIR)/Developer/Library/Frameworks \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW\""; + FRAMEWORK_SEARCH_PATHS = "$(PLATFORM_DIR)/Developer/Library/Frameworks \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW\""; GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)"; - HEADER_SEARCH_PATHS = "\"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW2_public_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW2_private_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW2_public_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW2_private_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT\""; + HEADER_SEARCH_PATHS = "\"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW2_public_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW2_private_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW2_public_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW2_private_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT\""; IPHONEOS_DEPLOYMENT_TARGET = 10.0; MACH_O_TYPE = "$(inherited)"; ONLY_ACTIVE_ARCH = YES; @@ -520,7 +520,7 @@ BAZEL_SWIFTMODULEFILES_TO_COPY = ""; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; - FRAMEWORK_SEARCH_PATHS = "$(PLATFORM_DIR)/Developer/Library/Frameworks \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW2\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/OnlySources\""; + FRAMEWORK_SEARCH_PATHS = "$(PLATFORM_DIR)/Developer/Library/Frameworks \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW2\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/OnlySources\""; GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)"; HEADER_SEARCH_PATHS = "\"$BAZEL_WORKSPACE_ROOT\""; INFOPLIST_FILE = "$BAZEL_STUBS_DIR/Info-stub.plist"; @@ -578,9 +578,9 @@ BAZEL_SWIFTMODULEFILES_TO_COPY = ""; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; - FRAMEWORK_SEARCH_PATHS = "$(PLATFORM_DIR)/Developer/Library/Frameworks \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW\""; + FRAMEWORK_SEARCH_PATHS = "$(PLATFORM_DIR)/Developer/Library/Frameworks \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW\""; GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)"; - HEADER_SEARCH_PATHS = "\"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW2_public_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW2_private_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW2_public_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW2_private_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT\""; + HEADER_SEARCH_PATHS = "\"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW2_public_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW2_private_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW2_public_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW2_private_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT\""; IPHONEOS_DEPLOYMENT_TARGET = 10.0; MACH_O_TYPE = "$(inherited)"; ONLY_ACTIVE_ARCH = YES; @@ -602,7 +602,7 @@ CLANG_ENABLE_OBJC_ARC = YES; FRAMEWORK_SEARCH_PATHS = "$(PLATFORM_DIR)/Developer/Library/Frameworks"; GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)"; - HEADER_SEARCH_PATHS = "\"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW_public_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW_private_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW_private_angled_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW_public_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW_private_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW_private_angled_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT\""; + HEADER_SEARCH_PATHS = "\"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW_public_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW_private_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW_private_angled_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW_public_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW_private_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW_private_angled_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT\""; IPHONEOS_DEPLOYMENT_TARGET = 10.0; MACH_O_TYPE = "$(inherited)"; ONLY_ACTIVE_ARCH = YES; diff --git a/tests/ios/xcodeproj/Test-Imports-App-Project.xcodeproj/project.pbxproj b/tests/ios/xcodeproj/Test-Imports-App-Project.xcodeproj/project.pbxproj index 53d790e4d..4aa0d4bf9 100755 --- a/tests/ios/xcodeproj/Test-Imports-App-Project.xcodeproj/project.pbxproj +++ b/tests/ios/xcodeproj/Test-Imports-App-Project.xcodeproj/project.pbxproj @@ -396,7 +396,7 @@ BAZEL_SWIFTMODULEFILES_TO_COPY = "bazel-out/ios-x86_64-min12.0-applebin_ios-ios_x86_64-dbg-ST-5dc50b810145/bin/tests/ios/unit-test/test-imports-app/TestImports_App.swiftmodule bazel-out/ios-x86_64-min12.0-applebin_ios-ios_x86_64-dbg-ST-5dc50b810145/bin/tests/ios/unit-test/test-imports-app/TestImports_App.swiftdoc bazel-out/ios-x86_64-min12.0-applebin_ios-ios_x86_64-dbg-ST-5dc50b810145/bin/tests/ios/unit-test/test-imports-app/TestImports_App.swiftsourceinfo"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; - FRAMEWORK_SEARCH_PATHS = "$(PLATFORM_DIR)/Developer/Library/Frameworks \"$BAZEL_WORKSPACE_ROOT/external/GoogleMobileAdsSDK/Frameworks/GoogleMobileAdsFramework-Current/GoogleMobileAds.xcframework/ios-arm64_x86_64-simulator\" \"$BAZEL_WORKSPACE_ROOT/external/TensorFlowLiteC/Frameworks\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min12.0-applebin_ios-ios_x86_64-dbg-ST-5dc50b810145/bin/tests/ios/unit-test/test-imports-app/SomeFramework\""; + FRAMEWORK_SEARCH_PATHS = "$(PLATFORM_DIR)/Developer/Library/Frameworks \"$BAZEL_WORKSPACE_ROOT/external/GoogleMobileAdsSDK/Frameworks/GoogleMobileAdsFramework-Current/GoogleMobileAds.xcframework/ios-arm64_x86_64-simulator\" \"$BAZEL_WORKSPACE_ROOT/external/TensorFlowLiteC/Frameworks\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min12.0-applebin_ios-ios_x86_64-dbg-ST-5dc50b810145/bin/tests/ios/unit-test/test-imports-app/SomeFramework\" \"$BAZEL_WORKSPACE_ROOT/tests/ios/unit-test/test-imports-app/frameworks/Basic/ios\""; GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)"; HEADER_SEARCH_PATHS = "\"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min12.0-applebin_ios-ios_x86_64-dbg-ST-5dc50b810145/bin/tests/ios/unit-test/test-imports-app/TestImports-App_public_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min12.0-applebin_ios-ios_x86_64-dbg-ST-5dc50b810145/bin/tests/ios/unit-test/test-imports-app/TestImports-App_private_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min12.0-applebin_ios-ios_x86_64-dbg-ST-5dc50b810145/bin/tests/ios/unit-test/test-imports-app/TestImports-App_swift_doublequote_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min12.0-applebin_ios-ios_x86_64-dbg-ST-5dc50b810145/bin/tests/ios/unit-test/test-imports-app/TestImports-App_swift_angle_bracket_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT\""; INFOPLIST_FILE = "$BAZEL_STUBS_DIR/Info-stub.plist"; @@ -421,7 +421,7 @@ BAZEL_SWIFTMODULEFILES_TO_COPY = "bazel-out/ios-x86_64-min12.0-applebin_ios-ios_x86_64-dbg-ST-5dc50b810145/bin/tests/ios/unit-test/test-imports-app/TestImports_App.swiftmodule bazel-out/ios-x86_64-min12.0-applebin_ios-ios_x86_64-dbg-ST-5dc50b810145/bin/tests/ios/unit-test/test-imports-app/TestImports_App.swiftdoc bazel-out/ios-x86_64-min12.0-applebin_ios-ios_x86_64-dbg-ST-5dc50b810145/bin/tests/ios/unit-test/test-imports-app/TestImports_App.swiftsourceinfo"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; - FRAMEWORK_SEARCH_PATHS = "$(PLATFORM_DIR)/Developer/Library/Frameworks \"$BAZEL_WORKSPACE_ROOT/external/GoogleMobileAdsSDK/Frameworks/GoogleMobileAdsFramework-Current/GoogleMobileAds.xcframework/ios-arm64_x86_64-simulator\" \"$BAZEL_WORKSPACE_ROOT/external/TensorFlowLiteC/Frameworks\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min12.0-applebin_ios-ios_x86_64-dbg-ST-5dc50b810145/bin/tests/ios/unit-test/test-imports-app/SomeFramework\""; + FRAMEWORK_SEARCH_PATHS = "$(PLATFORM_DIR)/Developer/Library/Frameworks \"$BAZEL_WORKSPACE_ROOT/external/GoogleMobileAdsSDK/Frameworks/GoogleMobileAdsFramework-Current/GoogleMobileAds.xcframework/ios-arm64_x86_64-simulator\" \"$BAZEL_WORKSPACE_ROOT/external/TensorFlowLiteC/Frameworks\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min12.0-applebin_ios-ios_x86_64-dbg-ST-5dc50b810145/bin/tests/ios/unit-test/test-imports-app/SomeFramework\" \"$BAZEL_WORKSPACE_ROOT/tests/ios/unit-test/test-imports-app/frameworks/Basic/ios\""; GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)"; HEADER_SEARCH_PATHS = "\"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min12.0-applebin_ios-ios_x86_64-dbg-ST-5dc50b810145/bin/tests/ios/unit-test/test-imports-app/TestImports-App_public_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min12.0-applebin_ios-ios_x86_64-dbg-ST-5dc50b810145/bin/tests/ios/unit-test/test-imports-app/TestImports-App_private_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min12.0-applebin_ios-ios_x86_64-dbg-ST-5dc50b810145/bin/tests/ios/unit-test/test-imports-app/TestImports-App_swift_doublequote_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min12.0-applebin_ios-ios_x86_64-dbg-ST-5dc50b810145/bin/tests/ios/unit-test/test-imports-app/TestImports-App_swift_angle_bracket_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT\""; INFOPLIST_FILE = "$BAZEL_STUBS_DIR/Info-stub.plist"; diff --git a/tests/macos/xcodeproj/Test-Target-With-Test-Host-Project.xcodeproj/project.pbxproj b/tests/macos/xcodeproj/Test-Target-With-Test-Host-Project.xcodeproj/project.pbxproj index 88e3112e8..a4f894320 100755 --- a/tests/macos/xcodeproj/Test-Target-With-Test-Host-Project.xcodeproj/project.pbxproj +++ b/tests/macos/xcodeproj/Test-Target-With-Test-Host-Project.xcodeproj/project.pbxproj @@ -455,7 +455,7 @@ BAZEL_SWIFTMODULEFILES_TO_COPY = "bazel-out/ios-x86_64-min12.0-applebin_ios-ios_x86_64-dbg-ST-5dc50b810145/bin/tests/ios/unit-test/test-imports-app/TestImports_App.swiftmodule bazel-out/ios-x86_64-min12.0-applebin_ios-ios_x86_64-dbg-ST-5dc50b810145/bin/tests/ios/unit-test/test-imports-app/TestImports_App.swiftdoc bazel-out/ios-x86_64-min12.0-applebin_ios-ios_x86_64-dbg-ST-5dc50b810145/bin/tests/ios/unit-test/test-imports-app/TestImports_App.swiftsourceinfo"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; - FRAMEWORK_SEARCH_PATHS = "$(PLATFORM_DIR)/Developer/Library/Frameworks \"$BAZEL_WORKSPACE_ROOT/external/GoogleMobileAdsSDK/Frameworks/GoogleMobileAdsFramework-Current/GoogleMobileAds.xcframework/ios-arm64_x86_64-simulator\" \"$BAZEL_WORKSPACE_ROOT/external/TensorFlowLiteC/Frameworks\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min12.0-applebin_ios-ios_x86_64-dbg-ST-5dc50b810145/bin/tests/ios/unit-test/test-imports-app/SomeFramework\""; + FRAMEWORK_SEARCH_PATHS = "$(PLATFORM_DIR)/Developer/Library/Frameworks \"$BAZEL_WORKSPACE_ROOT/external/GoogleMobileAdsSDK/Frameworks/GoogleMobileAdsFramework-Current/GoogleMobileAds.xcframework/ios-arm64_x86_64-simulator\" \"$BAZEL_WORKSPACE_ROOT/external/TensorFlowLiteC/Frameworks\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min12.0-applebin_ios-ios_x86_64-dbg-ST-5dc50b810145/bin/tests/ios/unit-test/test-imports-app/SomeFramework\" \"$BAZEL_WORKSPACE_ROOT/tests/ios/unit-test/test-imports-app/frameworks/Basic/ios\""; GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)"; HEADER_SEARCH_PATHS = "\"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min12.0-applebin_ios-ios_x86_64-dbg-ST-5dc50b810145/bin/tests/ios/unit-test/test-imports-app/TestImports-App_public_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min12.0-applebin_ios-ios_x86_64-dbg-ST-5dc50b810145/bin/tests/ios/unit-test/test-imports-app/TestImports-App_private_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min12.0-applebin_ios-ios_x86_64-dbg-ST-5dc50b810145/bin/tests/ios/unit-test/test-imports-app/TestImports-App_swift_doublequote_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min12.0-applebin_ios-ios_x86_64-dbg-ST-5dc50b810145/bin/tests/ios/unit-test/test-imports-app/TestImports-App_swift_angle_bracket_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT\""; INFOPLIST_FILE = "$BAZEL_STUBS_DIR/Info-stub.plist"; @@ -528,7 +528,7 @@ BAZEL_SWIFTMODULEFILES_TO_COPY = "bazel-out/ios-x86_64-min12.0-applebin_ios-ios_x86_64-dbg-ST-5dc50b810145/bin/tests/ios/unit-test/test-imports-app/TestImports_App.swiftmodule bazel-out/ios-x86_64-min12.0-applebin_ios-ios_x86_64-dbg-ST-5dc50b810145/bin/tests/ios/unit-test/test-imports-app/TestImports_App.swiftdoc bazel-out/ios-x86_64-min12.0-applebin_ios-ios_x86_64-dbg-ST-5dc50b810145/bin/tests/ios/unit-test/test-imports-app/TestImports_App.swiftsourceinfo"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; - FRAMEWORK_SEARCH_PATHS = "$(PLATFORM_DIR)/Developer/Library/Frameworks \"$BAZEL_WORKSPACE_ROOT/external/GoogleMobileAdsSDK/Frameworks/GoogleMobileAdsFramework-Current/GoogleMobileAds.xcframework/ios-arm64_x86_64-simulator\" \"$BAZEL_WORKSPACE_ROOT/external/TensorFlowLiteC/Frameworks\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min12.0-applebin_ios-ios_x86_64-dbg-ST-5dc50b810145/bin/tests/ios/unit-test/test-imports-app/SomeFramework\""; + FRAMEWORK_SEARCH_PATHS = "$(PLATFORM_DIR)/Developer/Library/Frameworks \"$BAZEL_WORKSPACE_ROOT/external/GoogleMobileAdsSDK/Frameworks/GoogleMobileAdsFramework-Current/GoogleMobileAds.xcframework/ios-arm64_x86_64-simulator\" \"$BAZEL_WORKSPACE_ROOT/external/TensorFlowLiteC/Frameworks\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min12.0-applebin_ios-ios_x86_64-dbg-ST-5dc50b810145/bin/tests/ios/unit-test/test-imports-app/SomeFramework\" \"$BAZEL_WORKSPACE_ROOT/tests/ios/unit-test/test-imports-app/frameworks/Basic/ios\""; GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)"; HEADER_SEARCH_PATHS = "\"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min12.0-applebin_ios-ios_x86_64-dbg-ST-5dc50b810145/bin/tests/ios/unit-test/test-imports-app/TestImports-App_public_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min12.0-applebin_ios-ios_x86_64-dbg-ST-5dc50b810145/bin/tests/ios/unit-test/test-imports-app/TestImports-App_private_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min12.0-applebin_ios-ios_x86_64-dbg-ST-5dc50b810145/bin/tests/ios/unit-test/test-imports-app/TestImports-App_swift_doublequote_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min12.0-applebin_ios-ios_x86_64-dbg-ST-5dc50b810145/bin/tests/ios/unit-test/test-imports-app/TestImports-App_swift_angle_bracket_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT\""; INFOPLIST_FILE = "$BAZEL_STUBS_DIR/Info-stub.plist"; From e9a8a5c1a49f2cba2066a2f10685e5af505f39c2 Mon Sep 17 00:00:00 2001 From: "i@jerrymarino.com" Date: Fri, 8 Oct 2021 11:58:00 -0700 Subject: [PATCH 5/8] Fixing problematic project again --- .../project.pbxproj | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/tests/ios/xcodeproj/Test-BuildForDevice-Project.xcodeproj/project.pbxproj b/tests/ios/xcodeproj/Test-BuildForDevice-Project.xcodeproj/project.pbxproj index 7ecc7c519..7263c4692 100755 --- a/tests/ios/xcodeproj/Test-BuildForDevice-Project.xcodeproj/project.pbxproj +++ b/tests/ios/xcodeproj/Test-BuildForDevice-Project.xcodeproj/project.pbxproj @@ -409,7 +409,7 @@ CLANG_ENABLE_OBJC_ARC = YES; FRAMEWORK_SEARCH_PATHS = "$(PLATFORM_DIR)/Developer/Library/Frameworks"; GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)"; - HEADER_SEARCH_PATHS = "\"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/OnlySources_public_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/OnlySources_private_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT\""; + HEADER_SEARCH_PATHS = "\"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/OnlySources_public_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/OnlySources_private_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT\""; IPHONEOS_DEPLOYMENT_TARGET = 10.0; MACH_O_TYPE = "$(inherited)"; ONLY_ACTIVE_ARCH = YES; @@ -431,7 +431,7 @@ CLANG_ENABLE_OBJC_ARC = YES; FRAMEWORK_SEARCH_PATHS = "$(PLATFORM_DIR)/Developer/Library/Frameworks"; GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)"; - HEADER_SEARCH_PATHS = "\"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW_public_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW_private_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW_private_angled_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW_public_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW_private_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW_private_angled_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT\""; + HEADER_SEARCH_PATHS = "\"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW_public_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW_private_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW_private_angled_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW_public_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW_private_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW_private_angled_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT\""; IPHONEOS_DEPLOYMENT_TARGET = 10.0; MACH_O_TYPE = "$(inherited)"; ONLY_ACTIVE_ARCH = YES; @@ -453,7 +453,7 @@ CLANG_ENABLE_OBJC_ARC = YES; FRAMEWORK_SEARCH_PATHS = "$(PLATFORM_DIR)/Developer/Library/Frameworks"; GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)"; - HEADER_SEARCH_PATHS = "\"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/OnlySources_public_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/OnlySources_private_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT\""; + HEADER_SEARCH_PATHS = "\"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/OnlySources_public_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/OnlySources_private_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT\""; IPHONEOS_DEPLOYMENT_TARGET = 10.0; MACH_O_TYPE = "$(inherited)"; ONLY_ACTIVE_ARCH = YES; @@ -473,7 +473,7 @@ BAZEL_SWIFTMODULEFILES_TO_COPY = ""; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; - FRAMEWORK_SEARCH_PATHS = "$(PLATFORM_DIR)/Developer/Library/Frameworks \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW2\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/OnlySources\""; + FRAMEWORK_SEARCH_PATHS = "$(PLATFORM_DIR)/Developer/Library/Frameworks \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW2\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/OnlySources\""; GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)"; HEADER_SEARCH_PATHS = "\"$BAZEL_WORKSPACE_ROOT\""; INFOPLIST_FILE = "$BAZEL_STUBS_DIR/Info-stub.plist"; @@ -498,9 +498,9 @@ BAZEL_SWIFTMODULEFILES_TO_COPY = ""; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; - FRAMEWORK_SEARCH_PATHS = "$(PLATFORM_DIR)/Developer/Library/Frameworks \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW\""; + FRAMEWORK_SEARCH_PATHS = "$(PLATFORM_DIR)/Developer/Library/Frameworks \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW\""; GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)"; - HEADER_SEARCH_PATHS = "\"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW2_public_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW2_private_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW2_public_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW2_private_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT\""; + HEADER_SEARCH_PATHS = "\"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW2_public_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW2_private_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW2_public_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW2_private_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT\""; IPHONEOS_DEPLOYMENT_TARGET = 10.0; MACH_O_TYPE = "$(inherited)"; ONLY_ACTIVE_ARCH = YES; @@ -520,7 +520,7 @@ BAZEL_SWIFTMODULEFILES_TO_COPY = ""; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; - FRAMEWORK_SEARCH_PATHS = "$(PLATFORM_DIR)/Developer/Library/Frameworks \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW2\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/OnlySources\""; + FRAMEWORK_SEARCH_PATHS = "$(PLATFORM_DIR)/Developer/Library/Frameworks \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW2\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/OnlySources\""; GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)"; HEADER_SEARCH_PATHS = "\"$BAZEL_WORKSPACE_ROOT\""; INFOPLIST_FILE = "$BAZEL_STUBS_DIR/Info-stub.plist"; @@ -578,9 +578,9 @@ BAZEL_SWIFTMODULEFILES_TO_COPY = ""; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; - FRAMEWORK_SEARCH_PATHS = "$(PLATFORM_DIR)/Developer/Library/Frameworks \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW\""; + FRAMEWORK_SEARCH_PATHS = "$(PLATFORM_DIR)/Developer/Library/Frameworks \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW\""; GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)"; - HEADER_SEARCH_PATHS = "\"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW2_public_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW2_private_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW2_public_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW2_private_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT\""; + HEADER_SEARCH_PATHS = "\"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW2_public_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW2_private_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW2_public_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW2_private_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT\""; IPHONEOS_DEPLOYMENT_TARGET = 10.0; MACH_O_TYPE = "$(inherited)"; ONLY_ACTIVE_ARCH = YES; @@ -602,7 +602,7 @@ CLANG_ENABLE_OBJC_ARC = YES; FRAMEWORK_SEARCH_PATHS = "$(PLATFORM_DIR)/Developer/Library/Frameworks"; GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)"; - HEADER_SEARCH_PATHS = "\"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW_public_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW_private_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW_private_angled_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW_public_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW_private_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-x86_64-min10.0-applebin_ios-ios_x86_64-dbg-ST-7bf874b56ea0/bin/tests/ios/app/FW_private_angled_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT\""; + HEADER_SEARCH_PATHS = "\"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW_public_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW_private_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW_private_angled_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW_public_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW_private_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT/bazel-out/ios-arm64-min10.0-applebin_ios-ios_arm64-dbg-ST-c32106249197/bin/tests/ios/app/FW_private_angled_hmap.hmap\" \"$BAZEL_WORKSPACE_ROOT\""; IPHONEOS_DEPLOYMENT_TARGET = 10.0; MACH_O_TYPE = "$(inherited)"; ONLY_ACTIVE_ARCH = YES; From 27aec6295e6ec57a4e729e5cdc092d5eb5acbbc4 Mon Sep 17 00:00:00 2001 From: Jerry Marino Date: Fri, 8 Oct 2021 13:38:32 -0700 Subject: [PATCH 6/8] Update rules/analysis_tests/identical_outputs_test.bzl Co-authored-by: Thiago Cruz --- rules/analysis_tests/identical_outputs_test.bzl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rules/analysis_tests/identical_outputs_test.bzl b/rules/analysis_tests/identical_outputs_test.bzl index 2f11a1ee4..46dd8aa50 100644 --- a/rules/analysis_tests/identical_outputs_test.bzl +++ b/rules/analysis_tests/identical_outputs_test.bzl @@ -22,7 +22,7 @@ def _identical_outputs_test_impl(ctx): for input in dep[_TestFiles].files.to_list(): all_files.append(input.root.path) - # Expect that we have recieved multiple swiftmodules + # Expect that we have received multiple swiftmodules asserts.true(env, len(all_files) > 1) # Assert all swiftmodules have identical outputs ( and most importantly an From d335037bcad7369c004f95ba4add24541de6f828 Mon Sep 17 00:00:00 2001 From: Jerry Marino Date: Fri, 8 Oct 2021 13:38:53 -0700 Subject: [PATCH 7/8] Update rules/analysis_tests/transitive_header_test.bzl Co-authored-by: Thiago Cruz --- rules/analysis_tests/transitive_header_test.bzl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rules/analysis_tests/transitive_header_test.bzl b/rules/analysis_tests/transitive_header_test.bzl index 95a22d2d4..b616d5cfc 100644 --- a/rules/analysis_tests/transitive_header_test.bzl +++ b/rules/analysis_tests/transitive_header_test.bzl @@ -21,7 +21,7 @@ def _transitive_header_test_impl(ctx): # The headers test allows a user to assert that tests are propagated to actions # from arbitrary deps. Given a target_under_test, supply transitive deps or -# virutally any file group. +# virtually any file group. transitive_header_test = analysistest.make( _transitive_header_test_impl, expect_failure = False, From 656bb93b82d482382d0123bec876bac8ef2bbe0f Mon Sep 17 00:00:00 2001 From: "i@jerrymarino.com" Date: Fri, 8 Oct 2021 14:11:04 -0700 Subject: [PATCH 8/8] Always update the FrameworkInfo --- rules/framework.bzl | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/rules/framework.bzl b/rules/framework.bzl index 88e4cf31c..87f142f3f 100644 --- a/rules/framework.bzl +++ b/rules/framework.bzl @@ -161,17 +161,14 @@ def _get_virtual_framework_info(ctx, framework_files, compilation_context_fields for dep in transitive_deps + deps: # Collect transitive headers. For now, this needs to include all of the # transitive headers - if not CcInfo in dep: - continue - compilation_context = dep[CcInfo].compilation_context - propagated_interface_headers.append(compilation_context.headers) - - if not FrameworkInfo in dep: - continue - framework_info = dep[FrameworkInfo] - fw_dep_vfsoverlays.extend(framework_info.vfsoverlay_infos) - framework_headers = depset(framework_info.headers + framework_info.modulemap + framework_info.private_headers) - propagated_interface_headers.append(framework_headers) + if CcInfo in dep: + compilation_context = dep[CcInfo].compilation_context + propagated_interface_headers.append(compilation_context.headers) + if FrameworkInfo in dep: + framework_info = dep[FrameworkInfo] + fw_dep_vfsoverlays.extend(framework_info.vfsoverlay_infos) + framework_headers = depset(framework_info.headers + framework_info.modulemap + framework_info.private_headers) + propagated_interface_headers.append(framework_headers) outputs = framework_files.outputs vfs = make_vfsoverlay(