build: Set CMAKE_OSX_DEPLOYMENT_TARGET to 26.0#7785
Conversation
CMAKE_OSX_DEPLOYMENT_TARGET to 26.0
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## develop #7785 +/- ##
=========================================
- Coverage 82.3% 82.3% -0.0%
=========================================
Files 1024 1024
Lines 78416 78416
Branches 8932 8932
=========================================
- Hits 64550 64545 -5
- Misses 13857 13862 +5
Partials 9 9 🚀 New features to boost your workflow:
|
godexsoft
left a comment
There was a problem hiding this comment.
I can see how this may upset some people ![]()
ximinez
left a comment
There was a problem hiding this comment.
Whether this is a better solution than just reverting std::from/to_chars is still up for debate, but I can at least say that this PR works as advertised.
There was a problem hiding this comment.
Pull request overview
Sets a default macOS deployment target in the top-level CMake configuration (and documents it) so builds don’t silently target an older macOS version—particularly in Nix-based macOS environments—when using newer standard library features.
Changes:
- Default
CMAKE_OSX_DEPLOYMENT_TARGETto26.0(only when not already provided) beforeproject()runs. - Update
BUILD.mdto document the minimum supported macOS version and that the build defaults the deployment target.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| CMakeLists.txt | Adds a default cached CMAKE_OSX_DEPLOYMENT_TARGET for macOS builds prior to project(). |
| BUILD.md | Documents the minimum supported macOS version and the new CMake default behavior. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| # configuring the compiler and SDK. A user-provided -DCMAKE_OSX_DEPLOYMENT_TARGET | ||
| # still takes precedence. | ||
| if( | ||
| CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin" |
High Level Overview of Change
This is needed to use
std::from/to_charsinside an macOS environment where auto-detection thinks we're targeting lower macOS version (inside Nix).It would also allow us to explicitly see that using a new feature requires us upping the requirement for macOS version.
So, we won't accidentally bump the requirement for macOS version again.
Context of Change
API Impact
libxrplchange (any change that may affectlibxrplor dependents oflibxrpl)