Further tweaks to Xcode project

Now works as well as possible in Xcode 11
This commit is contained in:
Tom Kidd 2019-10-29 00:14:26 -05:00
parent b340827153
commit a545f81403
3 changed files with 15 additions and 29 deletions

1
.gitignore vendored
View File

@ -3,6 +3,7 @@ Makefile.local
*.swp
*tags
*~
code/renderergl2/glsl/*.c
# OS X
####################

View File

@ -427,7 +427,6 @@
2758B9F2178FCB65007F6582 /* Run Script - Generate C From GLSL Files */,
274FAC19178FAF0C00B17C7A /* Sources */,
274FAC1A178FAF0C00B17C7A /* Frameworks */,
2758BA48178FD003007F6582 /* Run Script - Delete GLSL-Generated C Files */,
);
buildRules = (
);
@ -481,20 +480,6 @@
shellPath = /bin/sh;
shellScript = "GLSLPATH=\"${SRCROOT}/../../code/renderergl2/glsl\"\n\nfunction glslToDotC()\n{\n INFILE=\"${1}\"\n INEXT=\"${1##*.}\"\n INSTRIP=\"${1##*/}\"\n INBASE=\"${INSTRIP%.glsl}\"\n OUTFILE=\"${1%.glsl}.c\"\n\n if [ ! ${INFILE} ] || [ ! -e ${INFILE} ]; then\n echo \"**** ERROR: no input file\"\n exit -1\n fi\n\n if [ ${INEXT} != \"glsl\" ]; then\n echo \"**** ERROR: input file must have .glsl extension\"\n exit -2\n fi\n\n echo \"const char *fallbackShader_${INBASE} =\" > ${OUTFILE}\n cat ${INFILE} | sed 's/^/\\\"/;s/$/\\\\n\\\"/' >> ${OUTFILE}\n echo \";\" >> ${OUTFILE}\n}\n\npushd \"${GLSLPATH}\"\n\nfind *.glsl | while read GLSLFILE; do glslToDotC \"${GLSLFILE}\"; done\n\npopd\n";
};
2758BA48178FD003007F6582 /* Run Script - Delete GLSL-Generated C Files */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "Run Script - Delete GLSL-Generated C Files";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "GLSLPATH=\"${SRCROOT}/../../code/renderergl2/glsl\"\n\npushd \"${GLSLPATH}\"\n\nfind *.c -delete\n\npopd\n";
};
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */

View File

@ -1,22 +1,26 @@
ioquake3 Xcode Projects
Created & Maintained by Jeremiah Sypult & Contributors
Updated: 2013/07/13
Created by Jeremiah Sypult & Contributors
Updated: 2019/10/28 by Tom Kidd
GENERAL:
From the ioquake3 root, navigate to misc/xcode and open the ioquake3.xcworkspace. The workspace embeds all the projects and currently builds universal (fat) binaries supporting i386 and x86_64.
An older version of Xcode may be able to add support for PowerPC, but it is not currently supported in the Xcode version I produced these projects with (4.6.3).
Hopefully people working with ioquake3 on OS X will benefit from using Xcodes IDE for building, hacking and debugging.
Hopefully people working with ioquake3 on macOS will benefit from using Xcode for building, hacking and debugging.
NOTE: THE FIRST BUILD WITH XCODE WILL LIKELY FAIL. Subsequent builds will succeed. This is related to the second bullet point below. Some of the files necessary are created via a build phase but more recent versions of Xcode are less forgiving about the files being missing initially so the first build will fail. If anyone has a better way to handle this please let me know.
LIBRARIES:
- Game libraries (cgame, game, ui) compile to universal binary dylib for native (versus qvm bytecode/interpreted).
- Renderer libraries also compile to universal binary dylib. The OpenGL 2 renderer project will normally show missing .c files in code/renderergl2/glsl. This is normal, as these .c files are automatically generated during the build process and deleted when building completes. This step is required in order for the renderer to link due to symbol dependencies in tr_glsl.c for fallback shaders.
- Game libraries (cgame, game, ui) currently compile to universal binary dylib for native (versus qvm bytecode/interpreted).
- Renderer libraries also compile to universal binary dylib. The OpenGL 2 renderer project will normally show missing .c files in code/renderergl2/glsl. This is normal, as these .c files are automatically generated during the build process and excluded from source control. This step is required in order for the renderer to link due to symbol dependencies in tr_glsl.c for fallback shaders.
- ioquake3 searches for game & renderer libraries with an abbreviated architecture suffix in the filename. Xcode scripts handle symlink creation for the appropriate architectures at build time in order to support universal (fat) binaries.
- Static libraries are used for botlib, jpeg and speex.
- Currently links OS X system libcurl.dylib and libz.dylib.
- Static libraries are used for botlib, jpeg and opus.
- Currently links macOS system libcurl.dylib and libz.dylib.
- SDL binary dylib is included.
@ -25,7 +29,6 @@ TODO:
- missionpack support
- curl.xcodeproj
- ogg.xcodeproj (ogg vorbis support)
- opusfile.xcodeproj
- zlib.xcodeproj
- q3asm.xcodeproj
- q3cpp.xcodeproj
@ -44,8 +47,5 @@ TODO:
NO CARRIER