MobileNativeFoundation / rules_xcodeproj

Bazel rules for generating Xcode projects.
MIT License
505 stars 77 forks source link

Bug: `xcschemes.top_level_anchor_target` fails for `*_build_test` if the library was merged into another top-level-target #2951

Open brentleyjones opened 4 months ago

brentleyjones commented 4 months ago

Description

Since https://github.com/MobileNativeFoundation/rules_xcodeproj/commit/6f65b40b1c04fc6aa0e8910e8d1597954de95777 we can now list *_build_test targets in xcschemes.top_level_anchor_target macros. But if the *_build_test target is for a library that has merged into another top-level target, then we get an error like this:

Run build target "@@//Lib:Lib ios_sim_arm64-dbg-ios-sim_arm64-min15.0-applebin_ios-ST-a89b5310e066" not found in:
[@@//Lib/dist/dynamic:iOS ios_sim_arm64-dbg-ios-sim_arm64-min15.0-applebin_ios-ST-a89b5310e066]

Where @@//Lib:Lib ios_sim_arm64-dbg-ios-sim_arm64-min15.0-applebin_ios-ST-a89b5310e066 is the library target that was merged into @@//Lib/dist/dynamic:iOS ios_sim_arm64-dbg-ios-sim_arm64-min15.0-applebin_ios-ST-a89b5310e066, but also referenced by @@//Lib:ios_Lib (which is an ios_build_test).

Reproduction steps

Change minimum_os_version to 15.0 on //Lib:ios_Lib in examples/integation. Then bazel run //:xcodeproj-incremental-bazel-sim_arm64.

Expected behavior

Project generates without an error.

rules_xcodeproj version

871632ea9c717c8d06442243bb2c59d5baf92c20

Xcode version

N/A

Bazel version

N/A

rules_apple version

No response

rules_swift version

No response

Additional information

No response