Pass '-needed…' linker flags for XCTest libraries to suppress warnings in test targets which exclusively use Swift Testing and enable LD_WARN_UNUSED_DYLIBS #379
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Xcode test targets are always linked with XCTest.framework and libXCTestSwiftSupport.dylib, since these flags are specified in their product type .xcspec:
When a test target has enabled
LD_WARN_UNUSED_DYLIBS
(or manually passes-warn_unused_dylibs
to the linker), and it exclusively uses Swift Testing (or more precisely, when it doesn’t directly link any symbols from any XCTest library listed above), currently two warnings will be shown:These warnings should be suppressed by default. Test targets get these linker flags from the product type, and these libraries do need to be linked and loaded even if a test target doesn’t use XCTest.
This Radar tracks modifying the linker flags passed so they add
-needed_framework XCTest
and-needed-lXCTestSwiftSupport
to suppress these warnings.Fixes rdar://148694760