diff --git a/.gitignore b/.gitignore index 4e5fede8..24c102d6 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ Makefile.local *.swp *tags *~ +code/renderergl2/glsl/*.c # OS X #################### diff --git a/misc/xcode/renderer_opengl2.xcodeproj/project.pbxproj b/misc/xcode/renderer_opengl2.xcodeproj/project.pbxproj index ef65c8ee..b87dadac 100644 --- a/misc/xcode/renderer_opengl2.xcodeproj/project.pbxproj +++ b/misc/xcode/renderer_opengl2.xcodeproj/project.pbxproj @@ -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 */ diff --git a/misc/xcode/xcode-readme.txt b/misc/xcode/xcode-readme.txt index fc53f65a..63fff75c 100644 --- a/misc/xcode/xcode-readme.txt +++ b/misc/xcode/xcode-readme.txt @@ -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