Added CMake option for glfwInit chdir on OS X.

This commit is contained in:
Camilla Berglund 2013-01-21 16:21:59 +01:00
parent bd2abbca9f
commit 6333a5caaf
3 changed files with 16 additions and 1 deletions

View File

@ -14,7 +14,9 @@ option(GLFW_BUILD_EXAMPLES "Build the GLFW example programs" ON)
option(GLFW_BUILD_TESTS "Build the GLFW test programs" ON) option(GLFW_BUILD_TESTS "Build the GLFW test programs" ON)
option(BUILD_SHARED_LIBS "Build shared libraries" OFF) option(BUILD_SHARED_LIBS "Build shared libraries" OFF)
if (NOT APPLE) if (APPLE)
option(GLFW_CD_RESOURCES "Make glfwInit chdir to Contents/Resources" ON)
else()
option(GLFW_USE_EGL "Use EGL for context creation" OFF) option(GLFW_USE_EGL "Use EGL for context creation" OFF)
endif() endif()
@ -286,6 +288,10 @@ if (_GLFW_COCOA AND _GLFW_NSGL)
option(GLFW_BUILD_UNIVERSAL "Build GLFW as a Universal Binary" OFF) option(GLFW_BUILD_UNIVERSAL "Build GLFW as a Universal Binary" OFF)
if (GLFW_CD_RESOURCES)
set(_GLFW_CD_RESOURCES 1)
endif()
# Universal build # Universal build
if (GLFW_BUILD_UNIVERSAL) if (GLFW_BUILD_UNIVERSAL)
message(STATUS "Building GLFW as Universal Binaries") message(STATUS "Building GLFW as Universal Binaries")

View File

@ -34,6 +34,8 @@
// Change to our application bundle's resources directory, if present // Change to our application bundle's resources directory, if present
//======================================================================== //========================================================================
#if defined(_GLFW_CD_RESOURCES)
static void changeToResourcesDirectory(void) static void changeToResourcesDirectory(void)
{ {
char resourcesPath[MAXPATHLEN]; char resourcesPath[MAXPATHLEN];
@ -68,6 +70,8 @@ static void changeToResourcesDirectory(void)
chdir(resourcesPath); chdir(resourcesPath);
} }
#endif /* _GLFW_CD_RESOURCES */
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
////// GLFW platform API ////// ////// GLFW platform API //////
@ -90,7 +94,9 @@ int _glfwPlatformInit(void)
return GL_FALSE; return GL_FALSE;
} }
#if defined(_GLFW_CD_RESOURCES)
changeToResourcesDirectory(); changeToResourcesDirectory();
#endif
// Save the original gamma ramp // Save the original gamma ramp
_glfw.originalRampSize = CGDisplayGammaTableCapacity(CGMainDisplayID()); _glfw.originalRampSize = CGDisplayGammaTableCapacity(CGMainDisplayID());

View File

@ -64,6 +64,9 @@
// Define this to 1 if glXGetProcAddressEXT is available // Define this to 1 if glXGetProcAddressEXT is available
#cmakedefine _GLFW_HAS_GLXGETPROCADDRESSEXT #cmakedefine _GLFW_HAS_GLXGETPROCADDRESSEXT
// Define this to 1 if glfwInit should change the current directory
#cmakedefine _GLFW_CD_RESOURCES
// Define this to 1 if using OpenGL as the client library // Define this to 1 if using OpenGL as the client library
#cmakedefine _GLFW_USE_OPENGL #cmakedefine _GLFW_USE_OPENGL
// Define this to 1 if using OpenGL ES 1.1 as the client library // Define this to 1 if using OpenGL ES 1.1 as the client library