Just return from a client who asked help on compiling UE4 on OSX 10.8.5, and to my surprise, it’s actually quite easy to make UE4 fully compiled on 10.8. So here’s a short how-to:
1. Mono
The pre-bundled mono (Engine/Binaries/ThirdParty/Mono/Mac) not compatible with 10.8, you need to link/replace to your own mono install ( you could download mono 3.x from Redirecting… )
e.g.
cd Engine/Binaries/ThirdParty/Mono/
mv Mac Mac.old
ln -s YOUR_OWN_MONO Mac
2. ICU
The pre-compiled ICU library not compatible with 10.8, you need to compile a copy yourself.
cd Engine/Source/ThirdParty/ICU/icu4c-51_2/source
./runConfigureICU MacOSX –enable-static –disable-shared
gnumake
cd ..
mv Mac Mac.old
ln -s source Mac
3. .cs
Find .cs under Engine/Source/Programs/UnrealBuildTool/Mac, change all text “10.9” to “10.8”
4. MacApplication.cpp and MacWindow.cpp
Find those 2 cpp file under Engine/Source/Runtime/Core/Private/Mac, change line:
bScreensHaveSeparateSpaces = [NSScreen screensHaveSeparateSpaces];
to:
if ([NSScreen respondsToSelector:@selector(screensHaveSeparateSpaces)]) {
bScreensHaveSeparateSpaces = [NSScreen performSelector:@selector(screensHaveSeparateSpaces)];
}
5. kCGLRendererATIRadeonX4000ID (only needed if you’re comping 4.2+ branch)
Find CGLRenderers.h on Mac OSX 10.8 sdk ( depends on your system setup, usually under /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/System/Library/Frameworks/OpenGL.framework/Versions/A/Headers/ )
add a line:
#define kCGLRendererATIRadeonX4000ID 0x00021C00 // Radeon HD 7xxx
That’s it. Hopefully I’ve not miss any steps (wrote from memory and almost unrecognizable note).