Skip to content

Commit ecea5ea

Browse files
committed
Update xcodeproj version, generate a compatible one for Xcode 8+
Certain newer Xcode features such as parallel builds require a newer version to be specified in the project file. Currently, even though we have enabled `BuildIndependentTargetsInParallel` in the project file, because the objectVersion is still set at 47 (Xcode 6.3), the setting is not used and we get a warning during build time. Upgrade the version to 54 (as automatically done by Xcode) which is Xcode 12 compatible in order to take advantage of parallle builds. One caveat of incrementing the version is that older Xcode versions will not be able to open the project anymore (despite them being able to build it in command-line using xcodebuild). Generate a new xcodeproj with the old objectVersion and have CI check that it's not out of date whenever we change the original xcodeproj, so people using older Xcode versions can still debug and use Xcode with MacVim. Note that the compatible version is compatible with Xcode 6.4, but the xib files are only buildable in Xcode 8+, so we just call it MacVim_xcode8.xcodeproj. Related: #1100
1 parent bb85aff commit ecea5ea

6 files changed

Lines changed: 1417 additions & 8 deletions

File tree

.github/workflows/ci-macvim.yaml

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ jobs:
5656
# Oldest version of Xcode supported on GitHub Action to test source code backwards compatibility
5757
- os: macos-11
5858
xcode: '11.7'
59-
extra: [vimtags]
59+
extra: [vimtags, check-xcodeproj-compat]
6060

6161
# Older version of Xcode, and used to publish legacy builds (for macOS 10.9 - 10.12)
6262
- os: macos-12
@@ -300,6 +300,16 @@ jobs:
300300
make -C runtime/doc vimtags VIMEXE=../../${VIM_BIN}
301301
git diff --exit-code -- runtime/doc/tags
302302
303+
- name: Check Xcode project compatibility version
304+
if: contains(matrix.extra, 'check-xcodeproj-compat')
305+
run: |
306+
# Confirm that the compatibility version of xcodeproj is correct and not outdated.
307+
rm -rf src/MacVim/MacVim_xcode8.xcodeproj
308+
make -C src macvim-xcodeproj-compat
309+
if ! git diff --exit-code -- src/MacVim/MacVim_xcode8.xcodeproj; then
310+
echo 'MacVim_xcode8.xcodeproj is outdated. Run "make -C src macvim-xcodeproj-compat" to re-generate it.'; false
311+
fi
312+
303313
- name: Build test binaries
304314
run: |
305315
# Build the unit test binaries first. With link-time-optimization they take some time to link. Running them

.gitignore

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -97,11 +97,11 @@ src/kword_test
9797
# From MacVim
9898
.*.swp
9999
.DS_Store
100-
src/MacVim/MacVim.xcodeproj/*.mode1
101-
src/MacVim/MacVim.xcodeproj/*.mode1v3
102-
src/MacVim/MacVim.xcodeproj/*.pbxuser
103-
src/MacVim/MacVim.xcodeproj/project.xcworkspace
104-
src/MacVim/MacVim.xcodeproj/xcuserdata
100+
src/MacVim/MacVim*.xcodeproj/*.mode1
101+
src/MacVim/MacVim*.xcodeproj/*.mode1v3
102+
src/MacVim/MacVim*.xcodeproj/*.pbxuser
103+
src/MacVim/MacVim*.xcodeproj/project.xcworkspace
104+
src/MacVim/MacVim*.xcodeproj/xcuserdata
105105
src/MacVim/icons/*.pyc
106106
src/MacVim/icons/*.ttf
107107
src/MacVim/icons/*.reg

src/MacVim/MacVim.xcodeproj/project.pbxproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
archiveVersion = 1;
44
classes = {
55
};
6-
objectVersion = 47;
6+
objectVersion = 54;
77
objects = {
88

99
/* Begin PBXBuildFile section */

0 commit comments

Comments
 (0)