Raise the iOS presets' macOS deployment floor so Xcode 27 can configure - #22304
Open
shoumikhin wants to merge 1 commit into
Open
Raise the iOS presets' macOS deployment floor so Xcode 27 can configure#22304shoumikhin wants to merge 1 commit into
shoumikhin wants to merge 1 commit into
Conversation
Xcode 27 rejects any iOS deployment target below 15.0, so cmake --preset ios cannot configure at all: the compiler check fails with "the range of supported deployment target versions is 15.0 to 27.0.x". CI does not see this because it runs Xcode 15.4, which still accepts 12.0. Removing the override instead of raising it does not work. third-party/CMakeLists.txt forwards CMAKE_OSX_DEPLOYMENT_TARGET into the flatcc and flatbuffers host sub-builds, so without it they inherit DEPLOYMENT_TARGET, 17.0, and fail with "cc: error: invalid version number in '-mmacosx-version-min=17.0'" because 17.0 is not a macOS version. The value has to be legal as both an iOS and a macOS floor. Swept it: 14.0 still fails, 15.0 and 17.0 pass, so 15.0 is the lowest that works and keeps the host sub-builds' floor as low as possible. llm and profiling stay at 12.0 on purpose, since they are host-only presets and Xcode 27 still accepts a macOS 12.0 floor.
🔗 Helpful Links🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/22304
Note: Links to docs will display an error until the docs builds have been completed. ❌ You can merge normally! (1 Unrelated Failure), 1 Unclassified FailureAs of commit f04b508 with merge base c27baa8 ( UNCLASSIFIED FAILURE - DrCI could not classify the following job because the workflow did not run on the merge base. The failure may be pre-existing on trunk or introduced by this PR:
FLAKY - The following job failed but was likely due to flakiness present on trunk:
This comment was automatically generated by Dr. CI and updates every 15 minutes. |
This PR needs a
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
cmake --preset ioscannot configure on Xcode 27. The compiler check fails immediately:So
scripts/build_apple_frameworks.shdoes not run at all locally on a current Xcode. CI is green because it runsXcode_15.4, which still accepts a 12.0 floor, so nothing surfaces this.Why raise it rather than remove it
Removing the override looks right, since
third-party/ios-cmake/ios.toolchain.cmakealready setsCMAKE_OSX_DEPLOYMENT_TARGETfromDEPLOYMENT_TARGET. I tried that: it builds 13231 files and then fails in the flatcc host sub-build withthird-party/CMakeLists.txtforwardsCMAKE_OSX_DEPLOYMENT_TARGETinto the flatcc and flatbuffersExternalProjectsub-builds, which compile for the host. Without the override they inheritDEPLOYMENT_TARGET, 17.0, and 17.0 is not a macOS version. The override is load bearing: it is the host floor for those sub-builds.So the value has to be legal as both an iOS floor and a macOS floor. I swept it against a real configure:
15.0 is the lowest that works, which keeps the host sub-builds' floor as low as it can be.
Scope
Only
iosandios-simulator.llmandprofilingstay at 12.0 deliberately: they are host-only presets, and I verified Xcode 27 still accepts a macOS 12.0 floor.pybindandmlxare already at 14.0 and are untouched.Verified
With this change the Apple framework build runs to completion on Xcode 27 and produces the xcframeworks, which it could not do before.