|
30 | 30 | # build, fails with "No rule to make target '.../Xcode_26.5/...libz.tbd'" |
31 | 31 | # (this broke the 3.9.1 macOS deploy). Bump this whenever the pinned Xcode |
32 | 32 | # changes so the SDK is rebuilt against it. (xcode263 = under Pin step Xcode 26.3.) |
33 | | - MACOS_CACHE_VERSION: 'sdkpin1' |
| 33 | + MACOS_CACHE_VERSION: 'xc263pin' |
34 | 34 |
|
35 | 35 | jobs: |
36 | 36 | # send-slack-notification: |
@@ -1574,11 +1574,20 @@ jobs: |
1574 | 1574 | steps: |
1575 | 1575 | - name: Pin newest stable Xcode (consistent SDK across all macOS jobs) |
1576 | 1576 | run: | |
1577 | | - # All three macOS jobs must use the SAME Xcode/SDK: the OGRE/Assimp |
| 1577 | + # All macOS jobs MUST use the SAME exact Xcode/SDK: the OGRE/Assimp |
1578 | 1578 | # builds bake the active SDK's absolute libz.tbd path into their |
1579 | | - # CMake export, and the consumer build links against it. Different |
1580 | | - # default Xcodes per job → "No rule to make target '<SDK>/libz.tbd'". |
1581 | | - DEV=$(ls -d /Applications/Xcode_*.app/Contents/Developer 2>/dev/null | sort -V | tail -1) |
| 1579 | + # CMake export, and the consumer links against it. The per-job runner |
| 1580 | + # images carry different *newest* Xcodes (one job got 26.5, another |
| 1581 | + # 26.3), so "sort -V | tail -1" (newest) made jobs disagree and the |
| 1582 | + # cached SDK's baked path failed to link → "No rule to make target |
| 1583 | + # '.../Xcode_XX/...libz.tbd'". Pin a SPECIFIC version present on all |
| 1584 | + # current images (26.3); fall back to newest only if it's absent. |
| 1585 | + PIN="/Applications/Xcode_26.3.app/Contents/Developer" |
| 1586 | + if [ -d "$PIN" ]; then |
| 1587 | + DEV="$PIN" |
| 1588 | + else |
| 1589 | + DEV=$(ls -d /Applications/Xcode_*.app/Contents/Developer 2>/dev/null | sort -V | tail -1) |
| 1590 | + fi |
1582 | 1591 | if [ -z "$DEV" ]; then DEV="$(xcode-select -p)"; fi |
1583 | 1592 | echo "Selected Xcode: $DEV" |
1584 | 1593 | sudo xcode-select -s "$DEV" |
@@ -1650,7 +1659,14 @@ jobs: |
1650 | 1659 | steps: |
1651 | 1660 | - name: Pin newest stable Xcode (consistent SDK across all macOS jobs) |
1652 | 1661 | run: | |
1653 | | - DEV=$(ls -d /Applications/Xcode_*.app/Contents/Developer 2>/dev/null | sort -V | tail -1) |
| 1662 | + # Pin a SPECIFIC Xcode present on all macos-latest images (26.3) so |
| 1663 | + # producers and consumer agree on the SDK; "newest" drifts per image. |
| 1664 | + PIN="/Applications/Xcode_26.3.app/Contents/Developer" |
| 1665 | + if [ -d "$PIN" ]; then |
| 1666 | + DEV="$PIN" |
| 1667 | + else |
| 1668 | + DEV=$(ls -d /Applications/Xcode_*.app/Contents/Developer 2>/dev/null | sort -V | tail -1) |
| 1669 | + fi |
1654 | 1670 | if [ -z "$DEV" ]; then DEV="$(xcode-select -p)"; fi |
1655 | 1671 | echo "Selected Xcode: $DEV" |
1656 | 1672 | sudo xcode-select -s "$DEV" |
@@ -1731,7 +1747,14 @@ jobs: |
1731 | 1747 | steps: |
1732 | 1748 | - name: Pin newest stable Xcode (consistent SDK across all macOS jobs) |
1733 | 1749 | run: | |
1734 | | - DEV=$(ls -d /Applications/Xcode_*.app/Contents/Developer 2>/dev/null | sort -V | tail -1) |
| 1750 | + # Pin a SPECIFIC Xcode present on all macos-latest images (26.3) so |
| 1751 | + # producers and consumer agree on the SDK; "newest" drifts per image. |
| 1752 | + PIN="/Applications/Xcode_26.3.app/Contents/Developer" |
| 1753 | + if [ -d "$PIN" ]; then |
| 1754 | + DEV="$PIN" |
| 1755 | + else |
| 1756 | + DEV=$(ls -d /Applications/Xcode_*.app/Contents/Developer 2>/dev/null | sort -V | tail -1) |
| 1757 | + fi |
1735 | 1758 | if [ -z "$DEV" ]; then DEV="$(xcode-select -p)"; fi |
1736 | 1759 | echo "Selected Xcode: $DEV" |
1737 | 1760 | sudo xcode-select -s "$DEV" |
|
0 commit comments