Resolves https://github.com/tuist/tuist/issues/11447
What changed
This pull request changes the Swift Package Manager package mapper so package-level base settings are merged into the settings generated for each package target before target-specific overrides are applied.
It also adds a regression test that maps a package with a macro target and verifies that MACOSX_DEPLOYMENT_TARGET from PackageSettings.baseSettings.base reaches the generated macro target.
Why
Xcode 27 beta surfaces macro target build issues when the deployment target setting defined through Tuist package settings is not propagated to package targets. Tuist was already applying these settings to regular targets in the broader package mapping path, but macro targets missed the package-level base dictionary.
Root cause
ProjectDescription.Settings.from(...) started from the generated platform and dependency settings and then merged target-specific base settings. It did not merge PackageSettings.baseSettings.base, so package-wide settings such as MACOSX_DEPLOYMENT_TARGET were dropped for Swift Package Manager targets produced through this path.
Approach
The mapper now merges package-level base settings into the generated base settings dictionary before applying target-specific settings. This keeps target-specific settings as the final override while making package-wide settings available to all mapped targets, including macro targets.
Impact
Projects that use package base settings to pin deployment targets or build settings now get those values on macro targets generated from Swift Package Manager packages. Existing target-specific settings keep precedence.
How to test locally
The change was validated with:
tuist install
tuist generate TuistLoaderTests --no-open
xcodebuild test -workspace Tuist.xcworkspace -scheme TuistUnitTests -only-testing TuistLoaderTests/PackageInfoMapperTests -parallel-testing-enabled NO CODE_SIGNING_ALLOWED=NO CODE_SIGNING_REQUIRED=NO CODE_SIGN_IDENTITY=""
git diff --check