What changed
Backports #11588 to releases/4.201.x by cherry-picking the landed main commit 69b96e8b13a1d9fe08fef1c153b32a07833e4778.
This keeps static framework targets from receiving copied product-level module maps while preserving the dynamic framework behavior covered by #11135.
Why
The static framework path can expose the same ObjC module map through both the generated dependency module map and the copied Framework.framework/Modules/module.modulemap. In archive topologies where another static framework imports prefixed ObjC package headers, clang can diagnose that the umbrella already covers the same directory.
Validation
- Cherry-picked from the landed main commit with
git cherry-pick -x.
- Source PR #11588 passed CI on
main before this backport.
- No additional checks were run for the backport per request.