From d36c7363ddd85370a7bdbcb23f37a77a126ce7f8 Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Mon, 28 Oct 2013 22:43:39 -0400 Subject: [PATCH 001/143] Updated GL version tests for Mac OS X 10.9 ("Mavericks"). They changed the name of their GL 3.2 enum, added the GL 4.1 core profile. --- src/video/cocoa/SDL_cocoaopengl.m | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/src/video/cocoa/SDL_cocoaopengl.m b/src/video/cocoa/SDL_cocoaopengl.m index 13c7777b12da7..497084f048341 100644 --- a/src/video/cocoa/SDL_cocoaopengl.m +++ b/src/video/cocoa/SDL_cocoaopengl.m @@ -54,8 +54,11 @@ - (NSRect)convertRectFromBacking:(NSRect)aRect; #ifndef kCGLOGLPVersion_Legacy #define kCGLOGLPVersion_Legacy 0x1000 #endif -#ifndef kCGLOGLPVersion_3_2_Core -#define kCGLOGLPVersion_3_2_Core 0x3200 +#ifndef kCGLOGLPVersion_GL3_Core +#define kCGLOGLPVersion_GL3_Core 0x3200 +#endif +#ifndef kCGLOGLPVersion_GL4_Core +#define kCGLOGLPVersion_GL4_Core 0x4100 #endif @implementation SDLOpenGLContext : NSOpenGLContext @@ -179,14 +182,14 @@ - (void)setWindow:(SDL_Window *)newWindow int i = 0; if (_this->gl_config.profile_mask == SDL_GL_CONTEXT_PROFILE_ES) { - SDL_SetError ("OpenGL ES not supported on this platform"); + SDL_SetError ("OpenGL ES is not supported on this platform"); return NULL; } /* Sadly, we'll have to update this as life progresses, since we need to set an enum for context profiles, not a context version number */ - if (wantver > 0x0302) { - SDL_SetError ("OpenGL > 3.2 is not supported on this platform"); + if (wantver > 0x0401) { + SDL_SetError ("OpenGL > 4.1 is not supported on this platform"); return NULL; } @@ -197,7 +200,13 @@ - (void)setWindow:(SDL_Window *)newWindow NSOpenGLPixelFormatAttribute profile = kCGLOGLPVersion_Legacy; if (_this->gl_config.profile_mask == SDL_GL_CONTEXT_PROFILE_CORE) { if (wantver == 0x0302) { - profile = kCGLOGLPVersion_3_2_Core; + profile = kCGLOGLPVersion_GL3_Core; + } else if ((wantver == 0x0401) && (data->osversion >= 0x1090)) { + profile = kCGLOGLPVersion_GL4_Core; + } else { + SDL_SetError("Requested GL version is not supported on this platform"); + [pool release]; + return NULL; } } attr[i++] = kCGLPFAOpenGLProfile; From 804e5799ad2b596312b046b1701d1684d3df2fe1 Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Wed, 30 Oct 2013 16:39:35 -0400 Subject: [PATCH 002/143] Fixed common test usage string (was "hidpi", should be "highdpi"). --- src/test/SDL_test_common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/SDL_test_common.c b/src/test/SDL_test_common.c index c117a93a9159f..c4d72db32f751 100644 --- a/src/test/SDL_test_common.c +++ b/src/test/SDL_test_common.c @@ -27,7 +27,7 @@ #include #define VIDEO_USAGE \ -"[--video driver] [--renderer driver] [--gldebug] [--info all|video|modes|render|event] [--log all|error|system|audio|video|render|input] [--display N] [--fullscreen | --fullscreen-desktop | --windows N] [--title title] [--icon icon.bmp] [--center | --position X,Y] [--geometry WxH] [--min-geometry WxH] [--max-geometry WxH] [--logical WxH] [--scale N] [--depth N] [--refresh R] [--vsync] [--noframe] [--resize] [--minimize] [--maximize] [--grab] [--allow-hidpi]" +"[--video driver] [--renderer driver] [--gldebug] [--info all|video|modes|render|event] [--log all|error|system|audio|video|render|input] [--display N] [--fullscreen | --fullscreen-desktop | --windows N] [--title title] [--icon icon.bmp] [--center | --position X,Y] [--geometry WxH] [--min-geometry WxH] [--max-geometry WxH] [--logical WxH] [--scale N] [--depth N] [--refresh R] [--vsync] [--noframe] [--resize] [--minimize] [--maximize] [--grab] [--allow-highdpi]" #define AUDIO_USAGE \ "[--rate N] [--format U8|S8|U16|U16LE|U16BE|S16|S16LE|S16BE] [--channels N] [--samples N]" From e651ab12b6cfa19442d1a487317056c7bc04219e Mon Sep 17 00:00:00 2001 From: Gabriel Jacobo Date: Thu, 31 Oct 2013 10:02:21 -0300 Subject: [PATCH 003/143] Fixes Bug #2191,incorrect test for egl_context validity Thanks David Binderman! --- src/video/SDL_egl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/video/SDL_egl.c b/src/video/SDL_egl.c index ccfb92e180dba..70a1cee50b63e 100644 --- a/src/video/SDL_egl.c +++ b/src/video/SDL_egl.c @@ -394,7 +394,7 @@ SDL_EGL_DeleteContext(_THIS, SDL_GLContext context) return; } - if (!egl_context && egl_context != EGL_NO_CONTEXT) { + if (egl_context != NULL && egl_context != EGL_NO_CONTEXT) { SDL_EGL_MakeCurrent(_this, NULL, NULL); _this->egl_data->eglDestroyContext(_this->egl_data->egl_display, egl_context); } From 0f8d9995fe76a6eeb260ea877d2d38ff583da6f1 Mon Sep 17 00:00:00 2001 From: Philipp Wiesemann Date: Sat, 2 Nov 2013 11:42:00 +0100 Subject: [PATCH 004/143] Corrected typo in source comment. --- src/video/cocoa/SDL_cocoaopengl.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/video/cocoa/SDL_cocoaopengl.m b/src/video/cocoa/SDL_cocoaopengl.m index 497084f048341..803b92f538912 100644 --- a/src/video/cocoa/SDL_cocoaopengl.m +++ b/src/video/cocoa/SDL_cocoaopengl.m @@ -37,7 +37,7 @@ #if MAC_OS_X_VERSION_MAX_ALLOWED < 1070 /* New methods for converting to and from backing store pixels, taken from - * AppKite/NSView.h in 10.8 SDK. */ + * AppKit/NSView.h in 10.8 SDK. */ @interface NSView (Backing) - (NSPoint)convertPointToBacking:(NSPoint)aPoint; - (NSPoint)convertPointFromBacking:(NSPoint)aPoint; From 4e270de15d9c87ea6c2b410f76c039d53c018e18 Mon Sep 17 00:00:00 2001 From: Philipp Wiesemann Date: Sat, 2 Nov 2013 11:46:43 +0100 Subject: [PATCH 005/143] Changed function to return -1 through SDL_Error() instead of plain -1. --- src/render/SDL_render.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/render/SDL_render.c b/src/render/SDL_render.c index 5546d4a61c249..5bf4775b52398 100644 --- a/src/render/SDL_render.c +++ b/src/render/SDL_render.c @@ -348,8 +348,7 @@ SDL_GetRendererOutputSize(SDL_Renderer * renderer, int *w, int *h) return 0; } else { /* This should never happen */ - SDL_SetError("Renderer doesn't support querying output size"); - return -1; + return SDL_SetError("Renderer doesn't support querying output size"); } } From 95bbf5f443822de3c7ccaae45a25dc57948ebc26 Mon Sep 17 00:00:00 2001 From: Philipp Wiesemann Date: Sat, 2 Nov 2013 11:51:23 +0100 Subject: [PATCH 006/143] Removed unreachable return statement in gesture source. --- src/events/SDL_gesture.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/events/SDL_gesture.c b/src/events/SDL_gesture.c index 20ce57b573ac3..d59fde2756ef3 100644 --- a/src/events/SDL_gesture.c +++ b/src/events/SDL_gesture.c @@ -198,10 +198,8 @@ static int SDL_AddDollarGesture(SDL_GestureTouch* inTouch, SDL_FloatPoint* path) } /* Use the index of the last one added. */ return index; - } else { - return SDL_AddDollarGesture_one(inTouch, path); } - return -1; + return SDL_AddDollarGesture_one(inTouch, path); } int SDL_LoadDollarTemplates(SDL_TouchID touchId, SDL_RWops *src) From cd37485e3cac594d42a8780eb47aa2635319aaed Mon Sep 17 00:00:00 2001 From: Philipp Wiesemann Date: Sat, 2 Nov 2013 12:07:21 +0100 Subject: [PATCH 007/143] Changed parameter name for gesture template save functions from "src" to "dst". --- README-gesture.txt | 4 ++-- include/SDL_gesture.h | 4 ++-- src/events/SDL_gesture.c | 17 ++++++++--------- test/testgesture.c | 14 +++++++------- 4 files changed, 19 insertions(+), 20 deletions(-) diff --git a/README-gesture.txt b/README-gesture.txt index 4d0a8d681b0e2..c2cad7be5b8fe 100644 --- a/README-gesture.txt +++ b/README-gesture.txt @@ -34,9 +34,9 @@ Most programs will want to define an appropriate error threshold and check to be Saving: ------- -To save a template, call SDL_SaveDollarTemplate(gestureId, src) where gestureId is the id of the gesture you want to save, and src is an SDL_RWops pointer to the file where the gesture will be stored. +To save a template, call SDL_SaveDollarTemplate(gestureId, dst) where gestureId is the id of the gesture you want to save, and dst is an SDL_RWops pointer to the file where the gesture will be stored. -To save all currently loaded templates, call SDL_SaveAllDollarTemplates(src) where source is an SDL_RWops pointer to the file where the gesture will be stored. +To save all currently loaded templates, call SDL_SaveAllDollarTemplates(dst) where dst is an SDL_RWops pointer to the file where the gesture will be stored. Both functions return the number of gestures successfully saved. diff --git a/include/SDL_gesture.h b/include/SDL_gesture.h index 21f10ead73414..015fe02090326 100644 --- a/include/SDL_gesture.h +++ b/include/SDL_gesture.h @@ -58,14 +58,14 @@ extern DECLSPEC int SDLCALL SDL_RecordGesture(SDL_TouchID touchId); * * */ -extern DECLSPEC int SDLCALL SDL_SaveAllDollarTemplates(SDL_RWops *src); +extern DECLSPEC int SDLCALL SDL_SaveAllDollarTemplates(SDL_RWops *dst); /** * \brief Save a currently loaded Dollar Gesture template * * */ -extern DECLSPEC int SDLCALL SDL_SaveDollarTemplate(SDL_GestureID gestureId,SDL_RWops *src); +extern DECLSPEC int SDLCALL SDL_SaveDollarTemplate(SDL_GestureID gestureId,SDL_RWops *dst); /** diff --git a/src/events/SDL_gesture.c b/src/events/SDL_gesture.c index d59fde2756ef3..c50092c744ad5 100644 --- a/src/events/SDL_gesture.c +++ b/src/events/SDL_gesture.c @@ -116,15 +116,14 @@ static unsigned long SDL_HashDollar(SDL_FloatPoint* points) } -static int SaveTemplate(SDL_DollarTemplate *templ, SDL_RWops * src) +static int SaveTemplate(SDL_DollarTemplate *templ, SDL_RWops *dst) { - if (src == NULL) return 0; - + if (dst == NULL) return 0; /* No Longer storing the Hash, rehash on load */ - /* if(SDL_RWops.write(src,&(templ->hash),sizeof(templ->hash),1) != 1) return 0; */ + /* if (SDL_RWops.write(dst, &(templ->hash), sizeof(templ->hash), 1) != 1) return 0; */ - if (SDL_RWwrite(src,templ->path, + if (SDL_RWwrite(dst, templ->path, sizeof(templ->path[0]),DOLLARNPOINTS) != DOLLARNPOINTS) return 0; @@ -132,26 +131,26 @@ static int SaveTemplate(SDL_DollarTemplate *templ, SDL_RWops * src) } -int SDL_SaveAllDollarTemplates(SDL_RWops *src) +int SDL_SaveAllDollarTemplates(SDL_RWops *dst) { int i,j,rtrn = 0; for (i = 0; i < SDL_numGestureTouches; i++) { SDL_GestureTouch* touch = &SDL_gestureTouch[i]; for (j = 0; j < touch->numDollarTemplates; j++) { - rtrn += SaveTemplate(&touch->dollarTemplate[i],src); + rtrn += SaveTemplate(&touch->dollarTemplate[i], dst); } } return rtrn; } -int SDL_SaveDollarTemplate(SDL_GestureID gestureId, SDL_RWops *src) +int SDL_SaveDollarTemplate(SDL_GestureID gestureId, SDL_RWops *dst) { int i,j; for (i = 0; i < SDL_numGestureTouches; i++) { SDL_GestureTouch* touch = &SDL_gestureTouch[i]; for (j = 0; j < touch->numDollarTemplates; j++) { if (touch->dollarTemplate[i].hash == gestureId) { - return SaveTemplate(&touch->dollarTemplate[i],src); + return SaveTemplate(&touch->dollarTemplate[i], dst); } } } diff --git a/test/testgesture.c b/test/testgesture.c index 016506e11e43b..89008fb3c9339 100644 --- a/test/testgesture.c +++ b/test/testgesture.c @@ -205,7 +205,7 @@ int main(int argc, char* argv[]) SDL_Surface *screen; SDL_Event event; SDL_bool quitting = SDL_FALSE; - SDL_RWops *src; + SDL_RWops *stream; /* Enable standard application logging */ SDL_LogSetPriority(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_INFO); @@ -241,14 +241,14 @@ int main(int argc, char* argv[]) SDL_RecordGesture(-1); break; case SDLK_s: - src = SDL_RWFromFile("gestureSave","w"); - SDL_Log("Wrote %i templates",SDL_SaveAllDollarTemplates(src)); - SDL_RWclose(src); + stream = SDL_RWFromFile("gestureSave", "w"); + SDL_Log("Wrote %i templates", SDL_SaveAllDollarTemplates(stream)); + SDL_RWclose(stream); break; case SDLK_l: - src = SDL_RWFromFile("gestureSave","r"); - SDL_Log("Loaded: %i",SDL_LoadDollarTemplates(-1,src)); - SDL_RWclose(src); + stream = SDL_RWFromFile("gestureSave", "r"); + SDL_Log("Loaded: %i", SDL_LoadDollarTemplates(-1, stream)); + SDL_RWclose(stream); break; case SDLK_ESCAPE: quitting = SDL_TRUE; From 2efd40652d6645a7b8c57f6a5bb6c67ee2fc8fbd Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sun, 3 Nov 2013 09:42:23 -0800 Subject: [PATCH 008/143] Clarified that SDL_memset4 is a 32-bit assignment and fixed a compiler warning --- include/SDL_stdinc.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/SDL_stdinc.h b/include/SDL_stdinc.h index 8f17d5519a451..f0780a21796ff 100644 --- a/include/SDL_stdinc.h +++ b/include/SDL_stdinc.h @@ -255,7 +255,7 @@ extern DECLSPEC void *SDLCALL SDL_memset(void *dst, int c, size_t len); #define SDL_zerop(x) SDL_memset((x), 0, sizeof(*(x))) /* Note that memset() is a byte assignment and this is a 32-bit assignment, so they're not directly equivalent. */ -SDL_FORCE_INLINE void SDL_memset4(void *dst, int val, size_t dwords) +SDL_FORCE_INLINE void SDL_memset4(void *dst, Uint32 val, size_t dwords) { #if defined(__GNUC__) && defined(i386) int u0, u1, u2; From f2224e1fc7ccb2336385de51e60d42444e1ecfb9 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sun, 3 Nov 2013 09:55:27 -0800 Subject: [PATCH 009/143] Fixed bug 1990 - focus/keyboard events not generated correctly for multiple windows Mai Lavelle I've recently tried to create multiple windows and process key events for them, and found that key events weren't being generated for most of the windows. After some investigating I've observed the following effects. All but the most recently created window experience these effects... - a focus lost event is generated immediately after the focus gained event, even tho window still has focus - key events report window id 0 rather than the id of the window which has focus, SDL thinks no window has focus? - giving focus to a non SDL window and then selecting an SDL window causes events to be generated as expected, but only until focus changes again Focus change events are queued and delayed (200 ticks) before they are dispatched. The problem occurs when a focus out and focus in event are received on the same tick. When these delayed events are dispatched they will be sent in the order determined by the window list rather than the order in which they are received. The focus out dispatch is implemented by calling SDL_SetKeyboardFocus(NULL). This will remove focus from any window, regardless of whether it is the one originally targeted by the X11 event. Since SDL_SetKeyboardFocus() will always dispatch a focus lost event as needed, the easiest solution is simply to only call SDL_SetKeyboardFocus(NULL) when SDL_GetKeyboardFocus() matches the target window. --- src/video/x11/SDL_x11events.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/video/x11/SDL_x11events.c b/src/video/x11/SDL_x11events.c index d9dcc2dd9b32c..afee2345fc2c1 100644 --- a/src/video/x11/SDL_x11events.c +++ b/src/video/x11/SDL_x11events.c @@ -245,7 +245,13 @@ X11_DispatchFocusOut(SDL_WindowData *data) #ifdef DEBUG_XEVENTS printf("window %p: Dispatching FocusOut\n", data); #endif - SDL_SetKeyboardFocus(NULL); + /* If another window has already processed a focus in, then don't try to + * remove focus here. Doing so will incorrectly remove focus from that + * window, and the focus lost event for this window will have already + * been dispatched anyway. */ + if (data->window == SDL_GetKeyboardFocus()) { + SDL_SetKeyboardFocus(NULL); + } #ifdef X_HAVE_UTF8_STRING if (data->ic) { X11_XUnsetICFocus(data->ic); From aaa4165b9f3f593a65ed5af3663aace719d20031 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sun, 3 Nov 2013 11:00:28 -0800 Subject: [PATCH 010/143] Fixed bug 2187 - CMake is not adding src/core/linux/*.c to the build, linking to SDL results in errors. Daniel Ribeiro Maciel CMake is not adding src/core/linux/*.c to the build, linking to SDL results in errors: (...)/libSDL2-2.0.so.1.0.1: undefined reference to `SDL_UDEV_AddCallback' (...)/libSDL2-2.0.so.1.0.1: undefined reference to `SDL_UDEV_Poll' (...)/libSDL2-2.0.so.1.0.1: undefined reference to `SDL_UDEV_Init' (...)/libSDL2-2.0.so.1.0.1: undefined reference to `SDL_UDEV_Quit' (...)/libSDL2-2.0.so.1.0.1: undefined reference to `SDL_UDEV_DelCallback' (...)/libSDL2-2.0.so.1.0.1: undefined reference to `SDL_UDEV_Scan' collect2: error: ld returned 1 exit status --- CMakeLists.txt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1a1607fac31fc..489421f2732db 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -648,6 +648,10 @@ if(UNIX AND NOT APPLE) #error EVIOCGNAME() ioctl not available #endif int main(int argc, char** argv) {}" HAVE_INPUT_EVENTS) + + file(GLOB CORE_SOURCES ${SDL2_SOURCE_DIR}/src/core/linux/*.c) + set(SOURCE_FILES ${SOURCE_FILES} ${CORE_SOURCES}) + if(HAVE_INPUT_EVENTS) set(SDL_INPUT_LINUXEV 1) endif(HAVE_INPUT_EVENTS) @@ -746,8 +750,8 @@ elseif(WINDOWS) #include int main(int argc, char **argv) { }" HAVE_WIN32_CC) - file(GLOB WIN_SOURCES ${SDL2_SOURCE_DIR}/src/core/windows/*.c) - set(SOURCE_FILES ${SOURCE_FILES} ${WIN_SOURCES}) + file(GLOB CORE_SOURCES ${SDL2_SOURCE_DIR}/src/core/windows/*.c) + set(SOURCE_FILES ${SOURCE_FILES} ${CORE_SOURCES}) # Check for DirectX if(DIRECTX) From 517886a7f15886e016ee651b0fa68cae0aabc55a Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sun, 3 Nov 2013 11:13:06 -0800 Subject: [PATCH 011/143] Fixed bug 2205 - SDL_GetAudioDeviceName returns default-device name on invalid index for default-device only drivers norfanin The audio_enumerateAndNameAudioDevicesNegativeTests test in testautomation_audio.c reports a failure for SDL_GetAudioDeviceName when called on a driver that has only the default device. SDL_GetNumAudioDevices reports 1, but SDL_GetAudioDeviceName does not check if the index passed by the caller is in that range in this case. For positive numbers anyway. This can be reproduced with the dummy driver on Windows and Linux. --- src/audio/SDL_audio.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/audio/SDL_audio.c b/src/audio/SDL_audio.c index 5631bb2fdba0b..d6d835351488b 100644 --- a/src/audio/SDL_audio.c +++ b/src/audio/SDL_audio.c @@ -722,10 +722,16 @@ SDL_GetAudioDeviceName(int index, int iscapture) } if ((iscapture) && (current_audio.impl.OnlyHasDefaultInputDevice)) { + if (index > 0) { + goto no_such_device; + } return DEFAULT_INPUT_DEVNAME; } if ((!iscapture) && (current_audio.impl.OnlyHasDefaultOutputDevice)) { + if (index > 0) { + goto no_such_device; + } return DEFAULT_OUTPUT_DEVNAME; } From c4b563e4c3f02db45d24b0d8ea120a89721c4cad Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sun, 3 Nov 2013 11:27:06 -0800 Subject: [PATCH 012/143] Fixed bug 2190 - test/testdrawchessboard.c line endings Joseph Carter test/testdrawchessboard.c checks out of hg with DOS line endings on non-dos systems. Fixed via: perl -pi -e 's/\r//g' test/testdrawchessboard.c --- test/testdrawchessboard.c | 218 +++++++++++++++++++------------------- 1 file changed, 109 insertions(+), 109 deletions(-) diff --git a/test/testdrawchessboard.c b/test/testdrawchessboard.c index 567d3fb85d268..f203f581ee69f 100644 --- a/test/testdrawchessboard.c +++ b/test/testdrawchessboard.c @@ -1,110 +1,110 @@ -/* - Copyright (C) 1997-2013 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely. - - This file is created by : Nitin Jain (nitin.j4@samsung.com) -*/ - -/* Sample program: Draw a Chess Board by using SDL_CreateSoftwareRenderer API */ - -#include -#include - -#include "SDL.h" - -void -DrawChessBoard(SDL_Renderer * renderer) -{ - int row = 0,coloum = 0,x = 0; - SDL_Rect rect, darea; - - /* Get the Size of drawing surface */ - SDL_RenderGetViewport(renderer, &darea); - - for(row; row < 8; row++) - { - coloum = row%2; - x = x + coloum; - for(coloum; coloum < 4+(row%2); coloum++) - { - SDL_SetRenderDrawColor(renderer, 0, 0, 0, 0); - - rect.w = darea.w/8; - rect.h = darea.h/8; - rect.x = x * rect.w; - rect.y = row * rect.h; - x = x + 2; - SDL_RenderFillRect(renderer, &rect); - } - x=0; - } -} - -int -main(int argc, char *argv[]) -{ - SDL_Window *window; - SDL_Surface *surface; - SDL_Renderer *renderer; - +/* + Copyright (C) 1997-2013 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely. + + This file is created by : Nitin Jain (nitin.j4@samsung.com) +*/ + +/* Sample program: Draw a Chess Board by using SDL_CreateSoftwareRenderer API */ + +#include +#include + +#include "SDL.h" + +void +DrawChessBoard(SDL_Renderer * renderer) +{ + int row = 0,coloum = 0,x = 0; + SDL_Rect rect, darea; + + /* Get the Size of drawing surface */ + SDL_RenderGetViewport(renderer, &darea); + + for(row; row < 8; row++) + { + coloum = row%2; + x = x + coloum; + for(coloum; coloum < 4+(row%2); coloum++) + { + SDL_SetRenderDrawColor(renderer, 0, 0, 0, 0); + + rect.w = darea.w/8; + rect.h = darea.h/8; + rect.x = x * rect.w; + rect.y = row * rect.h; + x = x + 2; + SDL_RenderFillRect(renderer, &rect); + } + x=0; + } +} + +int +main(int argc, char *argv[]) +{ + SDL_Window *window; + SDL_Surface *surface; + SDL_Renderer *renderer; + /* Enable standard application logging */ - SDL_LogSetPriority(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_INFO); - - /* Initialize SDL */ - if(SDL_Init(SDL_INIT_VIDEO) != 0) - { - SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "SDL_Init fail : %s\n", SDL_GetError()); - return 1; - } - - - /* Create window and renderer for given surface */ - window = SDL_CreateWindow("Chess Board", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, SDL_WINDOW_SHOWN); - if(!window) - { - SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Window creation fail : %s\n",SDL_GetError()); - return 1; - } - surface = SDL_GetWindowSurface(window); - renderer = SDL_CreateSoftwareRenderer(surface); - if(!renderer) - { - SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Render creation for surface fail : %s\n",SDL_GetError()); - return 1; - } - - /* Clear the rendering surface with the specified color */ - SDL_SetRenderDrawColor(renderer, 0xFF, 0xFF, 0xFF, 0); - SDL_RenderClear(renderer); - - - /* Draw the Image on rendering surface */ - while(1) - { - SDL_Event e; - if (SDL_PollEvent(&e)) { - if (e.type == SDL_QUIT) - break; - - if(e.key.keysym.sym == SDLK_ESCAPE) - break; - } - - DrawChessBoard(renderer); - - /* Got everything on rendering surface, - now Update the drawing image on window screen */ - SDL_UpdateWindowSurface(window); - - } - - return 0; -} - + SDL_LogSetPriority(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_INFO); + + /* Initialize SDL */ + if(SDL_Init(SDL_INIT_VIDEO) != 0) + { + SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "SDL_Init fail : %s\n", SDL_GetError()); + return 1; + } + + + /* Create window and renderer for given surface */ + window = SDL_CreateWindow("Chess Board", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, SDL_WINDOW_SHOWN); + if(!window) + { + SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Window creation fail : %s\n",SDL_GetError()); + return 1; + } + surface = SDL_GetWindowSurface(window); + renderer = SDL_CreateSoftwareRenderer(surface); + if(!renderer) + { + SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Render creation for surface fail : %s\n",SDL_GetError()); + return 1; + } + + /* Clear the rendering surface with the specified color */ + SDL_SetRenderDrawColor(renderer, 0xFF, 0xFF, 0xFF, 0); + SDL_RenderClear(renderer); + + + /* Draw the Image on rendering surface */ + while(1) + { + SDL_Event e; + if (SDL_PollEvent(&e)) { + if (e.type == SDL_QUIT) + break; + + if(e.key.keysym.sym == SDLK_ESCAPE) + break; + } + + DrawChessBoard(renderer); + + /* Got everything on rendering surface, + now Update the drawing image on window screen */ + SDL_UpdateWindowSurface(window); + + } + + return 0; +} + From 61068a30b6bcd24282ee273a0de11702afca1069 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sun, 3 Nov 2013 11:34:03 -0800 Subject: [PATCH 013/143] Fixed bug 2180 - debian/rules: Makefiles should use tabs Joseph Carter Whitespace in a makefile is consequential. In fact, it's part of the syntax. And at least a few versions of make puke on Makefiles with lines indented with spaces, not tabs. Obviously GNU make used on Debianish systems is not strictly among them, or this would fail. Even so, I cannot resist the urge to pedantically fix this, if only to get rid of the bright syntax error red coloration in vim. :) --- debian/rules | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/debian/rules b/debian/rules index 3f4d8e629b563..4bde8f325e99f 100755 --- a/debian/rules +++ b/debian/rules @@ -33,8 +33,8 @@ override_dh_installexamples: dh_installexamples --remaining-packages override_dh_link: - # to address lintian warning - # W: libsdl2-2.0-0: dev-pkg-without-shlib-symlink usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0.0.0 usr/lib/x86_64-linux-gnu/libSDL2-2.0.so + # to address lintian warning + # W: libsdl2-2.0-0: dev-pkg-without-shlib-symlink usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0.0.0 usr/lib/x86_64-linux-gnu/libSDL2-2.0.so dh_link -plibsdl2-dev usr/lib/$(DEB_HOST_MULTIARCH)/libSDL2-2.0.so.0.0.0 usr/lib/$(DEB_HOST_MULTIARCH)/libSDL2-2.0.so override_dh_strip: From 0b7c69fe1207b1c997ce2699211ffc65fcf2ef45 Mon Sep 17 00:00:00 2001 From: Gabriel Jacobo Date: Tue, 5 Nov 2013 20:07:39 -0300 Subject: [PATCH 014/143] Adds Joystick support for Android This bumps the build SDK level to 12 (up from 10). Runtime requirements remain the same (at API level < 12 joystick support is disabled). Also enables building SDL for armv7 and x86. --- README-android.txt | 10 +- WhatsNew.txt | 10 ++ android-project/AndroidManifest.xml | 2 +- android-project/default.properties | 2 +- android-project/jni/Application.mk | 2 + android-project/project.properties | 2 +- .../src/org/libsdl/app/SDLActivity.java | 164 ++++++++++++++++-- build-scripts/androidbuild.sh | 13 +- include/SDL_hints.h | 10 ++ src/core/android/SDL_android.c | 80 +++++++++ src/core/android/SDL_android.h | 5 + src/joystick/android/SDL_sysjoystick.c | 130 +++++++++++++- src/joystick/android/SDL_sysjoystick.h | 28 +++ 13 files changed, 428 insertions(+), 30 deletions(-) create mode 100644 src/joystick/android/SDL_sysjoystick.h diff --git a/README-android.txt b/README-android.txt index a161c8407aa61..4a1cfc29fc8c2 100644 --- a/README-android.txt +++ b/README-android.txt @@ -4,13 +4,14 @@ Simple DirectMedia Layer for Android Requirements: -Android SDK (version 10 or later) +Android SDK (version 12 or later) http://developer.android.com/sdk/index.html Android NDK r7 or later http://developer.android.com/sdk/ndk/index.html Minimum API level supported by SDL: 10 (Android 2.3.3) +Joystick support is available for API level >=12 devices. ================================================================================ How the port works @@ -396,8 +397,11 @@ When you're done instrumenting with valgrind, you can disable the wrapper: Why is API level 10 the minimum required? ================================================================================ -API level 10 is required because SDL requires some functionality for running not -available on older devices and some for building which is not in older NDK/SDKs. +API level 10 is the minimum required level at runtime (that is, on the device) +because SDL requires some functionality for running not +available on older devices. Since the incorporation of joystick support into SDL, +the minimum SDK required to *build* SDL is version 12. Devices running API levels +10-11 are still supported, only with the joystick functionality disabled. Support for native OpenGL ES and ES2 applications was introduced in the NDK for API level 4 and 8. EGL was made a stable API in the NDK for API level 9, which diff --git a/WhatsNew.txt b/WhatsNew.txt index 5ac78c5137e2a..36afc564c9e88 100644 --- a/WhatsNew.txt +++ b/WhatsNew.txt @@ -1,6 +1,16 @@ This is a list of major changes in SDL's version history. +--------------------------------------------------------------------------- +2.0.2: +--------------------------------------------------------------------------- + +Android: +* Joystick support (minimum SDK version required to build SDL is now 12, + the required runtime version remains at 10, but on such devices joystick + support won't be available). + + --------------------------------------------------------------------------- 2.0.1: --------------------------------------------------------------------------- diff --git a/android-project/AndroidManifest.xml b/android-project/AndroidManifest.xml index 27db41843aa4f..0e4ad416286e2 100644 --- a/android-project/AndroidManifest.xml +++ b/android-project/AndroidManifest.xml @@ -31,7 +31,7 @@ - + diff --git a/android-project/default.properties b/android-project/default.properties index 9d135cb85fb91..0cdab9561b8a6 100644 --- a/android-project/default.properties +++ b/android-project/default.properties @@ -8,4 +8,4 @@ # project structure. # Project target. -target=android-7 +target=android-12 diff --git a/android-project/jni/Application.mk b/android-project/jni/Application.mk index 05cf0c31cbcb1..e5b50793b9911 100644 --- a/android-project/jni/Application.mk +++ b/android-project/jni/Application.mk @@ -2,3 +2,5 @@ # Uncomment this if you're using STL in your project # See CPLUSPLUS-SUPPORT.html in the NDK documentation for more information # APP_STL := stlport_static + +APP_ABI := armeabi armeabi-v7a x86 diff --git a/android-project/project.properties b/android-project/project.properties index b7c2081d560fd..0f507e5300238 100644 --- a/android-project/project.properties +++ b/android-project/project.properties @@ -11,4 +11,4 @@ #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt # Project target. -target=android-10 +target=android-12 diff --git a/android-project/src/org/libsdl/app/SDLActivity.java b/android-project/src/org/libsdl/app/SDLActivity.java index 49b014ce1e891..f7cb9abca234e 100644 --- a/android-project/src/org/libsdl/app/SDLActivity.java +++ b/android-project/src/org/libsdl/app/SDLActivity.java @@ -16,6 +16,10 @@ import android.media.*; import android.hardware.*; +import java.lang.*; +import java.util.List; +import java.util.ArrayList; + /** SDL Activity @@ -31,10 +35,11 @@ public class SDLActivity extends Activity { protected static SDLSurface mSurface; protected static View mTextEdit; protected static ViewGroup mLayout; + protected static SDLJoystickHandler mJoystickHandler; // This is what SDL runs in. It invokes SDL_main(), eventually protected static Thread mSDLThread; - + // Audio protected static Thread mAudioThread; protected static AudioTrack mAudioTrack; @@ -60,6 +65,13 @@ protected void onCreate(Bundle savedInstanceState) { // Set up the surface mSurface = new SDLSurface(getApplication()); + + if(Build.VERSION.SDK_INT >= 12) { + mJoystickHandler = new SDLJoystickHandler_API12(); + } + else { + mJoystickHandler = new SDLJoystickHandler(); + } mLayout = new AbsoluteLayout(this); mLayout.addView(mSurface); @@ -236,6 +248,10 @@ boolean sendCommand(int command, Object data) { public static native void nativePause(); public static native void nativeResume(); public static native void onNativeResize(int x, int y, int format); + public static native void onNativePadDown(int padId, int keycode); + public static native void onNativePadUp(int padId, int keycode); + public static native void onNativeJoy(int joyId, int axis, + float value); public static native void onNativeKeyDown(int keycode); public static native void onNativeKeyUp(int keycode); public static native void onNativeKeyboardFocusLost(); @@ -406,6 +422,23 @@ public static int[] inputGetInputDeviceIds(int sources) { } return Arrays.copyOf(filtered, used); } + + // Joystick glue code, just a series of stubs that redirect to the SDLJoystickHandler instance + public static int getNumJoysticks() { + return mJoystickHandler.getNumJoysticks(); + } + + public static String getJoystickName(int joy) { + return mJoystickHandler.getJoystickName(joy); + } + + public static int getJoystickAxes(int joy) { + return mJoystickHandler.getJoystickAxes(joy); + } + + public static int getJoyId(int devId) { + return mJoystickHandler.getJoyId(devId); + } } /** @@ -451,6 +484,10 @@ public SDLSurface(Context context) { mDisplay = ((WindowManager)context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); mSensorManager = (SensorManager)context.getSystemService(Context.SENSOR_SERVICE); + + if(Build.VERSION.SDK_INT >= 12) { + setOnGenericMotionListener(new SDLGenericMotionHandler_API12()); + } // Some arbitrary defaults to avoid a potential division by zero mWidth = 1.0f; @@ -557,16 +594,26 @@ public void onDraw(Canvas canvas) {} // Key events @Override public boolean onKey(View v, int keyCode, KeyEvent event) { - - if (event.getAction() == KeyEvent.ACTION_DOWN) { - //Log.v("SDL", "key down: " + keyCode); - SDLActivity.onNativeKeyDown(keyCode); - return true; - } - else if (event.getAction() == KeyEvent.ACTION_UP) { - //Log.v("SDL", "key up: " + keyCode); - SDLActivity.onNativeKeyUp(keyCode); - return true; + // Dispatch the different events depending on where they come from + if(event.getSource() == InputDevice.SOURCE_KEYBOARD) { + if (event.getAction() == KeyEvent.ACTION_DOWN) { + //Log.v("SDL", "key down: " + keyCode); + SDLActivity.onNativeKeyDown(keyCode); + return true; + } + else if (event.getAction() == KeyEvent.ACTION_UP) { + //Log.v("SDL", "key up: " + keyCode); + SDLActivity.onNativeKeyUp(keyCode); + return true; + } + } else if ( (event.getSource() & 0x00000401) != 0 || /* API 12: SOURCE_GAMEPAD */ + (event.getSource() & InputDevice.SOURCE_DPAD) != 0 ) { + int id = SDLActivity.getJoyId( event.getDeviceId() ); + if (event.getAction() == KeyEvent.ACTION_DOWN) { + SDLActivity.onNativePadDown(id, keyCode); + } else if (event.getAction() == KeyEvent.ACTION_UP) { + SDLActivity.onNativePadUp(id, keyCode); + } } return false; @@ -646,8 +693,7 @@ public void onSensorChanged(SensorEvent event) { y / SensorManager.GRAVITY_EARTH, event.values[2] / SensorManager.GRAVITY_EARTH - 1); } - } - + } } /* This is a fake invisible editor view that receives the input and defines the @@ -769,3 +815,95 @@ public boolean setComposingText(CharSequence text, int newCursorPosition) { } +/* A null joystick handler for API level < 12 devices (the accelerometer is handled separately) */ +class SDLJoystickHandler { + public int getNumJoysticks() { + return 0; + } + + public String getJoystickName(int joy) { + return ""; + } + + public int getJoystickAxes(int joy) { + return 0; + } + + public int getJoyId(int devId) { + return 0; + } +} + +/* Actual joystick functionality available for API >= 12 devices */ +class SDLJoystickHandler_API12 extends SDLJoystickHandler { + private List mJoyIdList; + + // Create a list of valid ID's the first time this function is called + private void createJoystickList() { + if(mJoyIdList != null) { + return; + } + + mJoyIdList = new ArrayList(); + int[] deviceIds = InputDevice.getDeviceIds(); + for(int i=0; iGetStaticMethodID(env, mActivityClass, "getNumJoysticks", "()I"); + if (!mid) { + return -1; + } + + return (int)(*env)->CallStaticIntMethod(env, mActivityClass, mid); +} + +/* Return the name of joystick number "i" */ +char* Android_JNI_GetJoystickName(int i) +{ + JNIEnv* env = Android_JNI_GetEnv(); + if (!env) { + return SDL_strdup(""); + } + + jmethodID mid = (*env)->GetStaticMethodID(env, mActivityClass, "getJoystickName", "(I)Ljava/lang/String;"); + if (!mid) { + return SDL_strdup(""); + } + jstring string = (jstring)((*env)->CallStaticObjectMethod(env, mActivityClass, mid, i)); + const char* utf = (*env)->GetStringUTFChars(env, string, 0); + if (!utf) { + return SDL_strdup(""); + } + + char* text = SDL_strdup(utf); + (*env)->ReleaseStringUTFChars(env, string, utf); + return text; +} + +/* return the number of axes in the given joystick */ +int Android_JNI_GetJoystickAxes(int joy) +{ + JNIEnv* env = Android_JNI_GetEnv(); + if (!env) { + return -1; + } + + jmethodID mid = (*env)->GetStaticMethodID(env, mActivityClass, "getJoystickAxes", "(I)I"); + if (!mid) { + return -1; + } + + return (int)(*env)->CallIntMethod(env, mActivityClass, mid, joy); +} + + /* sends message to be handled on the UI event dispatch thread */ int Android_JNI_SendMessage(int command, int param) { diff --git a/src/core/android/SDL_android.h b/src/core/android/SDL_android.h index 6181a15db89ed..805518a8f61c4 100644 --- a/src/core/android/SDL_android.h +++ b/src/core/android/SDL_android.h @@ -64,6 +64,11 @@ SDL_bool Android_JNI_HasClipboardText(); /* Power support */ int Android_JNI_GetPowerInfo(int* plugged, int* charged, int* battery, int* seconds, int* percent); + +/* Joystick support */ +int Android_JNI_GetNumJoysticks(); +char* Android_JNI_GetJoystickName(int i); +int Android_JNI_GetJoystickAxes(int joy); /* Touch support */ int Android_JNI_GetTouchDeviceIds(int **ids); diff --git a/src/joystick/android/SDL_sysjoystick.c b/src/joystick/android/SDL_sysjoystick.c index adaca528e9ff2..0c7f81001aa83 100644 --- a/src/joystick/android/SDL_sysjoystick.c +++ b/src/joystick/android/SDL_sysjoystick.c @@ -29,11 +29,48 @@ #include "SDL_error.h" #include "SDL_events.h" #include "SDL_joystick.h" +#include "SDL_hints.h" #include "../SDL_sysjoystick.h" #include "../SDL_joystick_c.h" #include "../../core/android/SDL_android.h" -static const char *accelerometerName = "Android accelerometer"; +#define ANDROID_ACCELEROMETER_INDEX (SYS_numjoysticks - 1) +#define ANDROID_ACCELEROMETER_NAME "Android Accelerometer" + +static SDL_Joystick **SYS_Joysticks; +static char **SYS_JoystickNames; +static int SYS_numjoysticks; +static SDL_bool SYS_accelAsJoy; + +/* Function to convert Android keyCodes into SDL ones. + * This code manipulation is done to get a sequential list of codes. + */ +int +keycode_to_SDL(int keycode) +{ + int final = 0; + /* D-Pad key codes (API 1): + * KEYCODE_DPAD_UP=19, KEYCODE_DPAD_DOWN + * KEYCODE_DPAD_LEFT, KEYCODE_DPAD_RIGHT, KEYCODE_DPAD_CENTER + */ + if(keycode < 96) + return keycode-19; + /* Some gamepad buttons (API 9): + * KEYCODE_BUTTON_A=96, KEYCODE_BUTTON_B, KEYCODE_BUTTON_C, + * KEYCODE_BUTTON_X, KEYCODE_BUTTON_Y, KEYCODE_BUTTON_Z, + * KEYCODE_BUTTON_L1, KEYCODE_BUTTON_L2, + * KEYCODE_BUTTON_R1, KEYCODE_BUTTON_R2, + * KEYCODE_BUTTON_THUMBL, KEYCODE_BUTTON_THUMBR, + * KEYCODE_BUTTON_START, KEYCODE_BUTTON_SELECT, KEYCODE_BUTTON_MODE + */ + else if(keycode < 188) + return keycode-91; + /* More gamepad buttons (API 12): + * KEYCODE_BUTTON_1=188 to KEYCODE_BUTTON_16 + */ + else + return keycode-168; +} /* Function to scan the system for joysticks. * This function should set SDL_numjoysticks to the number of available @@ -43,18 +80,56 @@ static const char *accelerometerName = "Android accelerometer"; int SDL_SYS_JoystickInit(void) { - return (1); + int i = 0; + const char *env; + + env = SDL_GetHint(SDL_HINT_ACCEL_AS_JOY); + if (env && !SDL_atoi(env)) + SYS_accelAsJoy = SDL_FALSE; + else + SYS_accelAsJoy = SDL_TRUE; /* Default behavior */ + + SYS_numjoysticks = Android_JNI_GetNumJoysticks(); + if (SYS_accelAsJoy) { + SYS_numjoysticks++; + } + SYS_Joysticks = (SDL_Joystick **)SDL_malloc(SYS_numjoysticks*sizeof(SDL_Joystick *)); + if (SYS_Joysticks == NULL) + { + return SDL_OutOfMemory(); + } + SYS_JoystickNames = (char **)SDL_malloc(SYS_numjoysticks*sizeof(char *)); + if (SYS_JoystickNames == NULL) + { + SDL_free(SYS_Joysticks); + SYS_Joysticks = NULL; + return SDL_OutOfMemory(); + } + SDL_memset(SYS_JoystickNames, 0, (SYS_numjoysticks*sizeof(char *))); + SDL_memset(SYS_Joysticks, 0, (SYS_numjoysticks*sizeof(SDL_Joystick *))); + + for (i = 0; i < SYS_numjoysticks; i++) + { + if ( SYS_accelAsJoy && i == ANDROID_ACCELEROMETER_INDEX ) { + SYS_JoystickNames[i] = ANDROID_ACCELEROMETER_NAME; + } else { + SYS_JoystickNames[i] = Android_JNI_GetJoystickName(i); + } + } + + return (SYS_numjoysticks); } int SDL_SYS_NumJoysticks() { - return 1; + return SYS_numjoysticks; } void SDL_SYS_JoystickDetect() { } +/* TODO: Hotplugging support */ SDL_bool SDL_SYS_JoystickNeedsPolling() { return SDL_FALSE; @@ -64,7 +139,7 @@ SDL_bool SDL_SYS_JoystickNeedsPolling() const char * SDL_SYS_JoystickNameForDeviceIndex(int device_index) { - return accelerometerName; + return SYS_JoystickNames[device_index]; } /* Function to perform the mapping from device index to the instance id for this index */ @@ -81,11 +156,19 @@ SDL_JoystickID SDL_SYS_GetInstanceIdOfDeviceIndex(int device_index) int SDL_SYS_JoystickOpen(SDL_Joystick * joystick, int device_index) { - if (device_index == 0) { - joystick->nbuttons = 0; + if (device_index < SYS_numjoysticks) { joystick->nhats = 0; joystick->nballs = 0; - joystick->naxes = 3; + if (SYS_accelAsJoy && device_index == ANDROID_ACCELEROMETER_INDEX) { + joystick->nbuttons = 0; + joystick->naxes = 3; + } else { + /* TODO: Get the real number of buttons in the device */ + joystick->nbuttons = 36; + joystick->naxes = Android_JNI_GetJoystickAxes(device_index); + } + + SYS_Joysticks[device_index] = joystick; return 0; } else { SDL_SetError("No joystick available with that index"); @@ -111,7 +194,8 @@ SDL_SYS_JoystickUpdate(SDL_Joystick * joystick) Sint16 value; float values[3]; - if (Android_JNI_GetAccelerometerValues(values)) { + if (SYS_accelAsJoy && Android_JNI_GetAccelerometerValues(values) && + joystick->instance_id == ANDROID_ACCELEROMETER_INDEX) { for ( i = 0; i < 3; i++ ) { value = (Sint16)(values[i] * 32767.0f); SDL_PrivateJoystickAxis(joystick, i, value); @@ -129,6 +213,10 @@ SDL_SYS_JoystickClose(SDL_Joystick * joystick) void SDL_SYS_JoystickQuit(void) { + SDL_free(SYS_JoystickNames); + SDL_free(SYS_Joysticks); + SYS_JoystickNames = NULL; + SYS_Joysticks = NULL; } SDL_JoystickGUID SDL_SYS_JoystickGetDeviceGUID( int device_index ) @@ -151,6 +239,32 @@ SDL_JoystickGUID SDL_SYS_JoystickGetGUID(SDL_Joystick * joystick) return guid; } +int +Android_OnPadDown(int padId, int keycode) +{ + SDL_PrivateJoystickButton(SYS_Joysticks[padId], keycode_to_SDL(keycode), SDL_PRESSED); + + return 0; +} + +int +Android_OnPadUp(int padId, int keycode) +{ + SDL_PrivateJoystickButton(SYS_Joysticks[padId], keycode_to_SDL(keycode), SDL_RELEASED); + + return 0; +} + +int +Android_OnJoy(int joyId, int axis, float value) +{ + /* Android gives joy info normalized as [-1.0, 1.0] or [0.0, 1.0] */ + /* TODO: Are the reported values right? */ + SDL_PrivateJoystickAxis(SYS_Joysticks[joyId], axis, (Sint16) (32767.*value) ); + + return 0; +} + #endif /* SDL_JOYSTICK_ANDROID */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/src/joystick/android/SDL_sysjoystick.h b/src/joystick/android/SDL_sysjoystick.h new file mode 100644 index 0000000000000..f98c6a04bd4d4 --- /dev/null +++ b/src/joystick/android/SDL_sysjoystick.h @@ -0,0 +1,28 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2013 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + */ + +#include "SDL_config.h" + +extern int Android_OnPadDown(int padId, int keycode); +extern int Android_OnPadUp(int padId, int keycode); +extern int Android_OnJoy(int joyId, int axisnum, float value); + +/* vi: set ts=4 sw=4 expandtab: */ From 1c9cc8c9b7ba22e3ec7d20285eb2833b1e97465f Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Tue, 5 Nov 2013 21:01:25 -0800 Subject: [PATCH 015/143] Fixed performance regression caused by the fix for bug 2158 --- src/render/opengl/SDL_glfuncs.h | 8 ++-- src/render/opengl/SDL_render_gl.c | 76 ++++++++++++++++++++++--------- 2 files changed, 58 insertions(+), 26 deletions(-) diff --git a/src/render/opengl/SDL_glfuncs.h b/src/render/opengl/SDL_glfuncs.h index 4915c64bc1ff4..7544929fce4ae 100644 --- a/src/render/opengl/SDL_glfuncs.h +++ b/src/render/opengl/SDL_glfuncs.h @@ -89,8 +89,8 @@ SDL_PROC_UNUSED(void, glDepthFunc, (GLenum func)) SDL_PROC_UNUSED(void, glDepthMask, (GLboolean flag)) SDL_PROC_UNUSED(void, glDepthRange, (GLclampd zNear, GLclampd zFar)) SDL_PROC(void, glDisable, (GLenum cap)) -SDL_PROC(void, glDisableClientState, (GLenum array)) -SDL_PROC(void, glDrawArrays, (GLenum mode, GLint first, GLsizei count)) +SDL_PROC_UNUSED(void, glDisableClientState, (GLenum array)) +SDL_PROC_UNUSED(void, glDrawArrays, (GLenum mode, GLint first, GLsizei count)) SDL_PROC_UNUSED(void, glDrawBuffer, (GLenum mode)) SDL_PROC_UNUSED(void, glDrawElements, (GLenum mode, GLsizei count, GLenum type, @@ -103,7 +103,7 @@ SDL_PROC_UNUSED(void, glEdgeFlagPointer, (GLsizei stride, const GLvoid * pointer)) SDL_PROC_UNUSED(void, glEdgeFlagv, (const GLboolean * flag)) SDL_PROC(void, glEnable, (GLenum cap)) -SDL_PROC(void, glEnableClientState, (GLenum array)) +SDL_PROC_UNUSED(void, glEnableClientState, (GLenum array)) SDL_PROC(void, glEnd, (void)) SDL_PROC_UNUSED(void, glEndList, (void)) SDL_PROC_UNUSED(void, glEvalCoord1d, (GLdouble u)) @@ -448,7 +448,7 @@ SDL_PROC_UNUSED(void, glVertex4iv, (const GLint * v)) SDL_PROC_UNUSED(void, glVertex4s, (GLshort x, GLshort y, GLshort z, GLshort w)) SDL_PROC_UNUSED(void, glVertex4sv, (const GLshort * v)) -SDL_PROC(void, glVertexPointer, +SDL_PROC_UNUSED(void, glVertexPointer, (GLint size, GLenum type, GLsizei stride, const GLvoid * pointer)) SDL_PROC(void, glViewport, (GLint x, GLint y, GLsizei width, GLsizei height)) diff --git a/src/render/opengl/SDL_render_gl.c b/src/render/opengl/SDL_render_gl.c index 51fc9ad73daa5..94914ead18f22 100644 --- a/src/render/opengl/SDL_render_gl.c +++ b/src/render/opengl/SDL_render_gl.c @@ -1048,17 +1048,15 @@ GL_RenderDrawPoints(SDL_Renderer * renderer, const SDL_FPoint * points, int count) { GL_RenderData *data = (GL_RenderData *) renderer->driverdata; + int i; GL_SetDrawingState(renderer); - data->glTranslatef(0.5f, 0.5f, 0.0f); - data->glVertexPointer(2, GL_FLOAT, 0, points); - data->glEnableClientState(GL_VERTEX_ARRAY); - - data->glDrawArrays(GL_POINTS, 0, count); - - data->glDisableClientState(GL_VERTEX_ARRAY); - data->glTranslatef(-0.5f, -0.5f, 0.0f); + data->glBegin(GL_POINTS); + for (i = 0; i < count; ++i) { + data->glVertex2f(0.5f + points[i].x, 0.5f + points[i].y); + } + data->glEnd(); return 0; } @@ -1068,28 +1066,62 @@ GL_RenderDrawLines(SDL_Renderer * renderer, const SDL_FPoint * points, int count) { GL_RenderData *data = (GL_RenderData *) renderer->driverdata; + int i; GL_SetDrawingState(renderer); - data->glTranslatef(0.5f, 0.5f, 0.0f); - data->glVertexPointer(2, GL_FLOAT, 0, points); - data->glEnableClientState(GL_VERTEX_ARRAY); - if (count > 2 && points[0].x == points[count-1].x && points[0].y == points[count-1].y) { + data->glBegin(GL_LINE_LOOP); /* GL_LINE_LOOP takes care of the final segment */ - data->glDrawArrays(GL_LINE_LOOP, 0, count-1); + --count; + for (i = 0; i < count; ++i) { + data->glVertex2f(0.5f + points[i].x, 0.5f + points[i].y); + } + data->glEnd(); } else { - data->glDrawArrays(GL_LINE_STRIP, 0, count); - } - /* Make sure all the line endpoints are closed. - * http://www.opengl.org/documentation/specs/version1.1/glspec1.1/node47.html - * Which points need to be drawn varies by driver, so just draw all of them. - */ - data->glDrawArrays(GL_POINTS, 0, count); - data->glDisableClientState(GL_VERTEX_ARRAY); - data->glTranslatef(-0.5f, -0.5f, 0.0f); +#if defined(__MACOSX__) || defined(__WIN32__) +#else + int x1, y1, x2, y2; +#endif + data->glBegin(GL_LINE_STRIP); + for (i = 0; i < count; ++i) { + data->glVertex2f(0.5f + points[i].x, 0.5f + points[i].y); + } + data->glEnd(); + + /* The line is half open, so we need one more point to complete it. + * http://www.opengl.org/documentation/specs/version1.1/glspec1.1/node47.html + * If we have to, we can use vertical line and horizontal line textures + * for vertical and horizontal lines, and then create custom textures + * for diagonal lines and software render those. It's terrible, but at + * least it would be pixel perfect. + */ + data->glBegin(GL_POINTS); +#if defined(__MACOSX__) || defined(__WIN32__) + /* Mac OS X and Windows seem to always leave the last point open */ + data->glVertex2f(0.5f + points[count-1].x, 0.5f + points[count-1].y); +#else + /* Linux seems to leave the right-most or bottom-most point open */ + x1 = points[0].x; + y1 = points[0].y; + x2 = points[count-1].x; + y2 = points[count-1].y; + + if (x1 > x2) { + data->glVertex2f(0.5f + x1, 0.5f + y1); + } else if (x2 > x1) { + data->glVertex2f(0.5f + x2, 0.5f + y2); + } + if (y1 > y2) { + data->glVertex2f(0.5f + x1, 0.5f + y1); + } else if (y2 > y1) { + data->glVertex2f(0.5f + x2, 0.5f + y2); + } +#endif + data->glEnd(); + } return GL_CheckError("", renderer); } From e27248c27ebd89b25a67bf489ccbcfeef0e5bf32 Mon Sep 17 00:00:00 2001 From: Gabriel Jacobo Date: Wed, 6 Nov 2013 09:48:45 -0300 Subject: [PATCH 016/143] Fixes Bug 1944 - Linux events, joysticks having only hat are not read --- src/joystick/linux/SDL_sysjoystick.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/joystick/linux/SDL_sysjoystick.c b/src/joystick/linux/SDL_sysjoystick.c index 72fa52cad3dc4..84511da0224e2 100644 --- a/src/joystick/linux/SDL_sysjoystick.c +++ b/src/joystick/linux/SDL_sysjoystick.c @@ -85,11 +85,14 @@ static int instance_counter = 0; static int IsJoystick(int fd, char *namebuf, const size_t namebuflen, SDL_JoystickGUID *guid) { + struct input_id inpid; + Uint16 *guid16 = (Uint16 *) ((char *) &guid->data); + +#if !SDL_USE_LIBUDEV + /* When udev is enabled we only get joystick devices here, so there's no need to test them */ unsigned long evbit[NBITS(EV_MAX)] = { 0 }; unsigned long keybit[NBITS(KEY_MAX)] = { 0 }; unsigned long absbit[NBITS(ABS_MAX)] = { 0 }; - struct input_id inpid; - Uint16 *guid16 = (Uint16 *) ((char *) &guid->data); if ((ioctl(fd, EVIOCGBIT(0, sizeof(evbit)), evbit) < 0) || (ioctl(fd, EVIOCGBIT(EV_KEY, sizeof(keybit)), keybit) < 0) || @@ -101,6 +104,7 @@ IsJoystick(int fd, char *namebuf, const size_t namebuflen, SDL_JoystickGUID *gui test_bit(ABS_X, absbit) && test_bit(ABS_Y, absbit))) { return 0; } +#endif if (ioctl(fd, EVIOCGNAME(namebuflen), namebuf) < 0) { return 0; From 22770a8f40d4873c85dd901087b00222eafc6ffd Mon Sep 17 00:00:00 2001 From: Gabriel Jacobo Date: Wed, 6 Nov 2013 11:23:24 -0300 Subject: [PATCH 017/143] [Android] Fixes Bug 2041 - can't get SDL_QUIT event... Thanks to Denis Bernard! Also, changed the Android manifest so the app doesn't quit with orientation changes, and made testgles.c exit properly on Android. --- android-project/AndroidManifest.xml | 4 +++- android-project/src/org/libsdl/app/SDLActivity.java | 6 +++--- src/core/android/SDL_android.c | 7 +++++++ src/video/android/SDL_androidevents.c | 4 +++- test/testgles.c | 2 ++ 5 files changed, 18 insertions(+), 5 deletions(-) diff --git a/android-project/AndroidManifest.xml b/android-project/AndroidManifest.xml index 0e4ad416286e2..a05b5660e825f 100644 --- a/android-project/AndroidManifest.xml +++ b/android-project/AndroidManifest.xml @@ -22,7 +22,9 @@ android:allowBackup="true" android:theme="@android:style/Theme.NoTitleBar.Fullscreen"> + android:label="@string/app_name" + android:configChanges="keyboardHidden|orientation" + > diff --git a/android-project/src/org/libsdl/app/SDLActivity.java b/android-project/src/org/libsdl/app/SDLActivity.java index f7cb9abca234e..773ec43bc776c 100644 --- a/android-project/src/org/libsdl/app/SDLActivity.java +++ b/android-project/src/org/libsdl/app/SDLActivity.java @@ -121,13 +121,13 @@ protected void onDestroy() { SDLActivity.nativeQuit(); // Now wait for the SDL thread to quit - if (mSDLThread != null) { + if (SDLActivity.mSDLThread != null) { try { - mSDLThread.join(); + SDLActivity.mSDLThread.join(); } catch(Exception e) { Log.v("SDL", "Problem stopping thread: " + e); } - mSDLThread = null; + SDLActivity.mSDLThread = null; //Log.v("SDL", "Finished waiting for SDL thread"); } diff --git a/src/core/android/SDL_android.c b/src/core/android/SDL_android.c index 6fc6f0771cfaf..4c47ae558ddc3 100644 --- a/src/core/android/SDL_android.c +++ b/src/core/android/SDL_android.c @@ -283,9 +283,16 @@ void Java_org_libsdl_app_SDLActivity_nativeLowMemory( void Java_org_libsdl_app_SDLActivity_nativeQuit( JNIEnv* env, jclass cls) { + /* Discard previous events. The user should have handled state storage + * in SDL_APP_WILLENTERBACKGROUND. After nativeQuit() is called, no + * events other than SDL_QUIT and SDL_APP_TERMINATING should fire */ + SDL_FlushEvents(SDL_FIRSTEVENT, SDL_LASTEVENT); /* Inject a SDL_QUIT event */ SDL_SendQuit(); SDL_SendAppEvent(SDL_APP_TERMINATING); + /* Resume the event loop so that the app can catch SDL_QUIT which + * should now be the top event in the event queue. */ + if (!SDL_SemValue(Android_ResumeSem)) SDL_SemPost(Android_ResumeSem); } /* Pause */ diff --git a/src/video/android/SDL_androidevents.c b/src/video/android/SDL_androidevents.c index 9be49cf4f1ed1..7a57ff584a8cf 100644 --- a/src/video/android/SDL_androidevents.c +++ b/src/video/android/SDL_androidevents.c @@ -82,7 +82,9 @@ Android_PumpEvents(_THIS) isPaused = 0; /* Restore the GL Context from here, as this operation is thread dependent */ - android_egl_context_restore(); + if (!SDL_HasEvent(SDL_QUIT)) { + android_egl_context_restore(); + } } } else { diff --git a/test/testgles.c b/test/testgles.c index 4e1bc074c0a7a..314ec7cd89d50 100644 --- a/test/testgles.c +++ b/test/testgles.c @@ -335,7 +335,9 @@ main(int argc, char *argv[]) SDL_Log("%2.2f frames per second\n", ((double) frames * 1000) / (now - then)); } +#if !defined(__ANDROID__) quit(0); +#endif return 0; } From 3b050fc953ec6e1c025b77f34bd9991114846bd9 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Wed, 6 Nov 2013 23:35:08 -0800 Subject: [PATCH 018/143] Horizontal wheel support in windows Lorenzo Pistone this patch adds support for the horizontal wheel in Windows. It is shamelessly copied off the vertical wheel code, but I guess that that is a value added in consistency. --- src/video/windows/SDL_windowsevents.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/video/windows/SDL_windowsevents.c b/src/video/windows/SDL_windowsevents.c index 1826258c820cc..0c9fcb94fd8b9 100644 --- a/src/video/windows/SDL_windowsevents.c +++ b/src/video/windows/SDL_windowsevents.c @@ -67,6 +67,9 @@ #ifndef WM_TOUCH #define WM_TOUCH 0x0240 #endif +#ifndef WM_MOUSEHWHEEL +#define WM_MOUSEHWHEEL 0x020E +#endif static SDL_Scancode WindowsScanCodeToSDLScanCode( LPARAM lParam, WPARAM wParam ) @@ -481,6 +484,25 @@ WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) break; } + case WM_MOUSEHWHEEL: + { + static short s_AccumulatedMotion; + + s_AccumulatedMotion += GET_WHEEL_DELTA_WPARAM(wParam); + if (s_AccumulatedMotion > 0) { + while (s_AccumulatedMotion >= WHEEL_DELTA) { + SDL_SendMouseWheel(data->window, 0, 1, 0, timestamp); + s_AccumulatedMotion -= WHEEL_DELTA; + } + } else { + while (s_AccumulatedMotion <= -WHEEL_DELTA) { + SDL_SendMouseWheel(data->window, 0, -1, 0, timestamp); + s_AccumulatedMotion += WHEEL_DELTA; + } + } + break; + } + #ifdef WM_MOUSELEAVE case WM_MOUSELEAVE: if (SDL_GetMouseFocus() == data->window && !SDL_GetMouse()->relative_mode) { From 48e44f7fcb968c51a8c1eff815d9a94dbcfe6535 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Wed, 6 Nov 2013 23:59:24 -0800 Subject: [PATCH 019/143] Fixed Windows compile error --- src/video/windows/SDL_windowsevents.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/video/windows/SDL_windowsevents.c b/src/video/windows/SDL_windowsevents.c index 0c9fcb94fd8b9..ec278d26e5bbd 100644 --- a/src/video/windows/SDL_windowsevents.c +++ b/src/video/windows/SDL_windowsevents.c @@ -491,12 +491,12 @@ WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) s_AccumulatedMotion += GET_WHEEL_DELTA_WPARAM(wParam); if (s_AccumulatedMotion > 0) { while (s_AccumulatedMotion >= WHEEL_DELTA) { - SDL_SendMouseWheel(data->window, 0, 1, 0, timestamp); + SDL_SendMouseWheel(data->window, 0, 1, 0); s_AccumulatedMotion -= WHEEL_DELTA; } } else { while (s_AccumulatedMotion <= -WHEEL_DELTA) { - SDL_SendMouseWheel(data->window, 0, -1, 0, timestamp); + SDL_SendMouseWheel(data->window, 0, -1, 0); s_AccumulatedMotion += WHEEL_DELTA; } } From 95c67ed9a77a684b6ee7dc2197f412d48764408f Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Thu, 7 Nov 2013 19:15:58 -0800 Subject: [PATCH 020/143] Fixed bug 2219 - BMP loader do not handle big BITMAPINFOHEADER structure Patrice Mandin I encountered a problem trying to load a 8-bit paletted BMP file using SDL. This file was generated using GIMP 2.8. It has a big BITMAPINFOHEADER (0x6c bytes for biSize field), and thus the palette is incorrectly setup. --- src/video/SDL_bmp.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/video/SDL_bmp.c b/src/video/SDL_bmp.c index 9244b28dbbb59..f471341fbdcce 100644 --- a/src/video/SDL_bmp.c +++ b/src/video/SDL_bmp.c @@ -150,6 +150,8 @@ SDL_LoadBMP_RW(SDL_RWops * src, int freesrc) biBitCount = SDL_ReadLE16(src); biCompression = BI_RGB; } else { + const int headerSize = 40; + biWidth = SDL_ReadLE32(src); biHeight = SDL_ReadLE32(src); /* biPlanes = */ SDL_ReadLE16(src); @@ -160,6 +162,10 @@ SDL_LoadBMP_RW(SDL_RWops * src, int freesrc) /* biYPelsPerMeter = */ SDL_ReadLE32(src); biClrUsed = SDL_ReadLE32(src); /* biClrImportant = */ SDL_ReadLE32(src); + + if (biSize > headerSize) { + SDL_RWseek(src, (biSize - headerSize), RW_SEEK_CUR); + } } if (biHeight < 0) { topDown = SDL_TRUE; From 493fadd5c1ed70d8cc5518361a9c8da76267d319 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Fri, 8 Nov 2013 14:04:35 -0800 Subject: [PATCH 021/143] Fixed spot where SDL was assuming that two displays having the same origin means they're the same display. Changed it to check for the same extents instead. (Sam actually wrote this, I'm just reviewing and checking it in.) --- src/video/x11/SDL_x11modes.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/video/x11/SDL_x11modes.c b/src/video/x11/SDL_x11modes.c index a4c242cdc5a36..ad3b56f34ffb4 100644 --- a/src/video/x11/SDL_x11modes.c +++ b/src/video/x11/SDL_x11modes.c @@ -552,7 +552,8 @@ X11_InitModes(_THIS) in all cases. Anybody want to give this some love? */ crtc = X11_XRRGetCrtcInfo(data->display, res, output_info->crtc); - if (!crtc || crtc->x != displaydata->x || crtc->y != displaydata->y) { + if (!crtc || crtc->x != displaydata->x || crtc->y != displaydata->y || + crtc->width != mode.w || crtc->height != mode.h) { X11_XRRFreeOutputInfo(output_info); X11_XRRFreeCrtcInfo(crtc); continue; From 621c7f8f1fe18838e88985d498aea240eb42c24a Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Fri, 8 Nov 2013 14:04:51 -0800 Subject: [PATCH 022/143] Added SDL_HINT_CTRL_CLICK_EMULATE_RIGHT_CLICK hint which controls whether ctrl+click should emulate a right click on OSX. --- include/SDL_hints.h | 8 ++++++++ src/video/cocoa/SDL_cocoawindow.m | 10 +++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/include/SDL_hints.h b/include/SDL_hints.h index 01399b6d23087..8e561fb31f324 100644 --- a/include/SDL_hints.h +++ b/include/SDL_hints.h @@ -283,6 +283,14 @@ extern "C" { */ #define SDL_HINT_VIDEO_HIGHDPI_DISABLED "SDL_VIDEO_HIGHDPI_DISABLED" +/** + * \brief A variable that determines whether ctrl+click should generate a right-click event on Mac + * + * If present, holding ctrl while left clicking will generate a right click + * event when on Mac. + */ +#define SDL_HINT_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK "SDL_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK" + /** * \brief An enumeration of hint priorities diff --git a/src/video/cocoa/SDL_cocoawindow.m b/src/video/cocoa/SDL_cocoawindow.m index 5529983069c26..b73a837a6ef85 100644 --- a/src/video/cocoa/SDL_cocoawindow.m +++ b/src/video/cocoa/SDL_cocoawindow.m @@ -24,6 +24,7 @@ #include "SDL_syswm.h" #include "SDL_timer.h" /* For SDL_GetTicks() */ +#include "SDL_hints.h" #include "../SDL_sysvideo.h" #include "../../events/SDL_keyboard_c.h" #include "../../events/SDL_mouse_c.h" @@ -59,6 +60,12 @@ static void ScheduleContextUpdates(SDL_WindowData *data) } } +static int GetHintCtrlClickEmulateRightClick() +{ + const char *hint = SDL_GetHint( SDL_HINT_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK ); + return hint != NULL && *hint != '0'; +} + @implementation Cocoa_WindowListener - (void)listen:(SDL_WindowData *)data @@ -341,7 +348,8 @@ - (void)mouseDown:(NSEvent *)theEvent switch ([theEvent buttonNumber]) { case 0: - if ([theEvent modifierFlags] & NSControlKeyMask) { + if (([theEvent modifierFlags] & NSControlKeyMask) && + GetHintCtrlClickEmulateRightClick()) { wasCtrlLeft = YES; button = SDL_BUTTON_RIGHT; } else { From e3e24bded7b39c787102fd11144e111474b59d4e Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Fri, 8 Nov 2013 14:04:59 -0800 Subject: [PATCH 023/143] Make sure the joystick count is correct when the added and removed events are dispatched, in case someone is watching for them with an event filter. --- src/joystick/linux/SDL_sysjoystick.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/joystick/linux/SDL_sysjoystick.c b/src/joystick/linux/SDL_sysjoystick.c index 84511da0224e2..43990b42f643e 100644 --- a/src/joystick/linux/SDL_sysjoystick.c +++ b/src/joystick/linux/SDL_sysjoystick.c @@ -234,12 +234,15 @@ MaybeAddDevice(const char *path) SDL_joylist_tail = item; } + /* Need to increment the joystick count before we post the event */ + ++numjoysticks; + /* !!! FIXME: Move this to an SDL_PrivateJoyDeviceAdded() function? */ #if !SDL_EVENTS_DISABLED event.type = SDL_JOYDEVICEADDED; if (SDL_GetEventState(event.type) == SDL_ENABLE) { - event.jdevice.which = numjoysticks; + event.jdevice.which = (numjoysticks - 1); if ( (SDL_EventOK == NULL) || (*SDL_EventOK) (SDL_EventOKParam, &event) ) { SDL_PushEvent(&event); @@ -247,7 +250,7 @@ MaybeAddDevice(const char *path) } #endif /* !SDL_EVENTS_DISABLED */ - return numjoysticks++; + return numjoysticks; } #if SDL_USE_LIBUDEV @@ -282,6 +285,9 @@ MaybeRemoveDevice(const char *path) SDL_joylist_tail = prev; } + /* Need to decrement the joystick count before we post the event */ + --numjoysticks; + /* !!! FIXME: Move this to an SDL_PrivateJoyDeviceRemoved() function? */ #if !SDL_EVENTS_DISABLED event.type = SDL_JOYDEVICEREMOVED; @@ -298,7 +304,6 @@ MaybeRemoveDevice(const char *path) SDL_free(item->path); SDL_free(item->name); SDL_free(item); - numjoysticks--; return retval; } prev = item; From faebe94c56857dc4febb898a2df996f3979eba02 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Fri, 8 Nov 2013 14:05:08 -0800 Subject: [PATCH 024/143] Mac: Fix a crash with SDL_MAC_NO_SANDBOX. When we get a kCGEventTapDisabledByTimeout or kCGEventTapDisabledByUserInput, the event tap would perform an invalid memory access. void pointers are so fun. This code only runs if you explicitly build with SDL_MAC_NO_SANDBOX. --- src/video/cocoa/SDL_cocoamousetap.m | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/video/cocoa/SDL_cocoamousetap.m b/src/video/cocoa/SDL_cocoamousetap.m index 5879d49bfb790..fd79296499a7b 100644 --- a/src/video/cocoa/SDL_cocoamousetap.m +++ b/src/video/cocoa/SDL_cocoamousetap.m @@ -60,7 +60,7 @@ static CGEventRef Cocoa_MouseTapCallback(CGEventTapProxy proxy, CGEventType type, CGEventRef event, void *refcon) { - SDL_MouseData *driverdata = (SDL_MouseData*)refcon; + SDL_MouseEventTapData *tapdata = (SDL_MouseEventTapData*)refcon; SDL_Mouse *mouse = SDL_GetMouse(); SDL_Window *window = SDL_GetKeyboardFocus(); NSRect windowRect; @@ -71,7 +71,7 @@ case kCGEventTapDisabledByTimeout: case kCGEventTapDisabledByUserInput: { - CGEventTapEnable(((SDL_MouseEventTapData*)(driverdata->tapdata))->tap, true); + CGEventTapEnable(tapdata->tap, true); return NULL; } default: From 3523b409bc1f0bd52bf5de093ac8000c4442660c Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Fri, 8 Nov 2013 14:05:15 -0800 Subject: [PATCH 025/143] Made helper window creation depend on initializing the Haptics or Joystick subsystems. --- src/SDL.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/SDL.c b/src/SDL.c index 0f6de9fe61490..a59fe2cc1e5e7 100644 --- a/src/SDL.c +++ b/src/SDL.c @@ -115,9 +115,11 @@ SDL_InitSubSystem(Uint32 flags) SDL_ClearError(); #if SDL_VIDEO_DRIVER_WINDOWS - if (SDL_HelperWindowCreate() < 0) { - return -1; - } + if ((flags & (SDL_INIT_HAPTIC|SDL_INIT_JOYSTICK))) { + if (SDL_HelperWindowCreate() < 0) { + return -1; + } + } #endif #if !SDL_TIMERS_DISABLED From 7c7a9b7f899e1ad6744f9658fa188b75564cf9ba Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Fri, 8 Nov 2013 14:05:19 -0800 Subject: [PATCH 026/143] Added a Linux game controller mapping for the Valve Streaming Gamepad --- src/joystick/SDL_gamecontrollerdb.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/joystick/SDL_gamecontrollerdb.h b/src/joystick/SDL_gamecontrollerdb.h index 7f6c7b29f354d..a2f581479eeb0 100644 --- a/src/joystick/SDL_gamecontrollerdb.h +++ b/src/joystick/SDL_gamecontrollerdb.h @@ -55,6 +55,7 @@ static const char *s_ControllerMappings [] = "030000006d04000019c2000011010000,Logitech F710 Gamepad (DInput),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,", /* Guide button doesn't seem to be sent in DInput mode. */ "030000006d0400001fc2000005030000,Logitech F710 Gamepad (XInput),a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,", "030000004c0500006802000011010000,PS3 Controller,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,guide:b16,leftshoulder:b10,leftstick:b1,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b2,righttrigger:b9,rightx:a2,righty:a3,start:b3,x:b15,y:b12,", + "03000000de280000ff11000001000000,Valve Streaming Gamepad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3," "030000005e0400008e02000014010000,X360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,", "030000005e0400008e02000010010000,X360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,", "030000005e0400001907000000010000,X360 Wireless Controller,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b11,dpright:b12,dpup:b13,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,", From 976c87692401e12a6eec77e95aae77ee985302cc Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Fri, 8 Nov 2013 14:05:23 -0800 Subject: [PATCH 027/143] Fixed bug 2172 - Window loses maximized state when activated I still haven't figured out why my application is being minimized when I try to raise, it but my previous workaround is causing issues. For now the correct way to raise and/or restore the window is as follows: if ( !(SDL_GetWindowFlags( window ) & SDL_WINDOW_MINIMIZED) ) { SDL_RaiseWindow( window ); } if ( SDL_GetWindowFlags( window ) & SDL_WINDOW_MINIMIZED ) { SDL_RestoreWindow( window ); } I will investigate the window state change rules more fully in the future. CR: Alfred Reynolds --- src/video/windows/SDL_windowswindow.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/video/windows/SDL_windowswindow.c b/src/video/windows/SDL_windowswindow.c index cd53975d18840..1a6849d261be4 100644 --- a/src/video/windows/SDL_windowswindow.c +++ b/src/video/windows/SDL_windowswindow.c @@ -405,9 +405,6 @@ void WIN_RaiseWindow(_THIS, SDL_Window * window) { WIN_SetWindowPositionInternal(_this, window, SWP_NOCOPYBITS | SWP_NOMOVE | SWP_NOSIZE); - - /* Raising the window while alt-tabbed can cause it to be minimized for some reason? */ - WIN_RestoreWindow(_this, window); } void From 550676d08d2cc36e5d618f76a0976d0828c2268e Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sat, 9 Nov 2013 00:56:05 -0800 Subject: [PATCH 028/143] Fixed signed/unsigned warning --- src/video/SDL_bmp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/video/SDL_bmp.c b/src/video/SDL_bmp.c index f471341fbdcce..c8f1a1689e24b 100644 --- a/src/video/SDL_bmp.c +++ b/src/video/SDL_bmp.c @@ -150,7 +150,7 @@ SDL_LoadBMP_RW(SDL_RWops * src, int freesrc) biBitCount = SDL_ReadLE16(src); biCompression = BI_RGB; } else { - const int headerSize = 40; + const unsigned int headerSize = 40; biWidth = SDL_ReadLE32(src); biHeight = SDL_ReadLE32(src); From 33cf925c1587dae0a88787bdbc531cac01d921f6 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sat, 9 Nov 2013 01:08:21 -0800 Subject: [PATCH 029/143] Fixed signed/unsigned warning --- src/joystick/SDL_joystick.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/joystick/SDL_joystick.c b/src/joystick/SDL_joystick.c index 3906ec2b92462..f635d4a3ed072 100644 --- a/src/joystick/SDL_joystick.c +++ b/src/joystick/SDL_joystick.c @@ -832,7 +832,7 @@ SDL_JoystickGUID SDL_JoystickGetGUIDFromString(const char *pchGUID) int maxoutputbytes= sizeof(guid); size_t len = SDL_strlen( pchGUID ); Uint8 *p; - int i; + size_t i; /* Make sure it's even */ len = ( len ) & ~0x1; From 247313174a93d4b222cd15ef3f80428fc3e789a6 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sat, 9 Nov 2013 01:15:17 -0800 Subject: [PATCH 030/143] Updated notes about building with the Windows 8 SDK: Get the DirectX SDK. --- src/audio/xaudio2/SDL_xaudio2.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/audio/xaudio2/SDL_xaudio2.c b/src/audio/xaudio2/SDL_xaudio2.c index 557c3bb9a83e6..504a4204ba10c 100644 --- a/src/audio/xaudio2/SDL_xaudio2.c +++ b/src/audio/xaudio2/SDL_xaudio2.c @@ -32,7 +32,11 @@ /* The configure script already did any necessary checking */ # define SDL_XAUDIO2_HAS_SDK 1 #else -#include /* XAudio2 exists as of the March 2008 DirectX SDK */ +/* XAudio2 exists as of the March 2008 DirectX SDK + The XAudio2 implementation available in the Windows 8 SDK targets Windows 8 and newer. + If you want to build SDL with XAudio2 support you should install the DirectX SDK. + */ +#include #if (!defined(_DXSDK_BUILD_MAJOR) || (_DXSDK_BUILD_MAJOR < 1284)) # pragma message("Your DirectX SDK is too old. Disabling XAudio2 support.") #else From 520697577839946852b562b37cd923bfdb6c2c10 Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Sun, 10 Nov 2013 00:32:23 -0500 Subject: [PATCH 031/143] Added Apoorv Upreti's GSoC2013 work: visual test suite. See visualtest/README.txt for details. --- VisualC/SDL_VS2012.sln | 31 + .../unittest/testquit/testquit_VS2012.vcxproj | 232 + VisualC/visualtest/visualtest_VS2012.vcxproj | 308 + visualtest/COPYING.txt | 18 + visualtest/Makefile.in | 37 + visualtest/README.txt | 214 + visualtest/acinclude.m4 | 359 ++ visualtest/autogen.sh | 12 + visualtest/compile | 1 + visualtest/config.h | 23 + visualtest/config.h.in | 22 + .../testsprite2_blendmodes.actions | 3 + .../testsprite2_blendmodes.config | 5 + .../testsprite2_blendmodes.parameters | 5 + .../testsprite2_crashtest.actions | 1 + .../testsprite2_crashtest.config | 5 + .../testsprite2_crashtest.parameters | 24 + .../testsprite2_fullscreen.actions | 3 + .../testsprite2_fullscreen.config | 5 + .../testsprite2_fullscreen.parameters | 5 + .../testsprite2_geometry.actions | 3 + .../testsprite2_geometry.config | 5 + .../testsprite2_geometry.parameters | 5 + visualtest/configure | 5203 +++++++++++++++++ visualtest/configure.in | 166 + visualtest/depcomp | 1 + visualtest/docs/Doxyfile | 1936 ++++++ ...__visualtest__action__configparser_8h.html | 424 ++ ...ltest__action__configparser_8h_source.html | 169 + ...__visualtest__exhaustive__variator_8h.html | 208 + ...ltest__exhaustive__variator_8h_source.html | 130 + ..._l__visualtest__harness__argparser_8h.html | 231 + ...ualtest__harness__argparser_8h_source.html | 140 + ...d_l__visualtest__mischelper_8h_source.html | 115 + .../_s_d_l__visualtest__parsehelper_8h.html | 172 + ..._l__visualtest__parsehelper_8h_source.html | 117 + .../html/_s_d_l__visualtest__process_8h.html | 328 ++ ..._s_d_l__visualtest__process_8h_source.html | 152 + ..._d_l__visualtest__random__variator_8h.html | 213 + ...isualtest__random__variator_8h_source.html | 130 + ...s_d_l__visualtest__rwhelper_8h_source.html | 137 + .../_s_d_l__visualtest__screenshot_8h.html | 197 + ...d_l__visualtest__screenshot_8h_source.html | 121 + ...d_l__visualtest__sut__configparser_8h.html | 317 + ...sualtest__sut__configparser_8h_source.html | 154 + ..._d_l__visualtest__variator__common_8h.html | 339 ++ ...isualtest__variator__common_8h_source.html | 158 + .../_s_d_l__visualtest__variators_8h.html | 220 + ..._d_l__visualtest__variators_8h_source.html | 135 + .../docs/html/action__configparser_8c.html | 301 + visualtest/docs/html/annotated.html | 114 + visualtest/docs/html/bc_s.png | Bin 0 -> 676 bytes visualtest/docs/html/bdwn.png | Bin 0 -> 147 bytes visualtest/docs/html/classes.html | 105 + visualtest/docs/html/closed.png | Bin 0 -> 132 bytes visualtest/docs/html/config_8h_source.html | 117 + .../dir_244674c763b96fdad0a6ffe8d0250e08.html | 98 + .../dir_68267d1309a1af8e8297ef4c3efbcdba.html | 127 + .../dir_88e6415a3128b404f1102a130772bdb6.html | 98 + .../dir_a18918b93668b435612395bbc2e8b82b.html | 98 + .../dir_d44c64559bbebec7f509842c48db8b23.html | 120 + .../dir_f584182df4c69fab0b14563b4d535158.html | 100 + .../dir_fe549de2418b81853b5f194edb4a7f34.html | 98 + visualtest/docs/html/doxygen.css | 1186 ++++ visualtest/docs/html/doxygen.png | Bin 0 -> 3779 bytes visualtest/docs/html/dynsections.js | 97 + visualtest/docs/html/files.html | 130 + visualtest/docs/html/ftv2blank.png | Bin 0 -> 86 bytes visualtest/docs/html/ftv2cl.png | Bin 0 -> 453 bytes visualtest/docs/html/ftv2doc.png | Bin 0 -> 746 bytes visualtest/docs/html/ftv2folderclosed.png | Bin 0 -> 616 bytes visualtest/docs/html/ftv2folderopen.png | Bin 0 -> 597 bytes visualtest/docs/html/ftv2lastnode.png | Bin 0 -> 86 bytes visualtest/docs/html/ftv2link.png | Bin 0 -> 746 bytes visualtest/docs/html/ftv2mlastnode.png | Bin 0 -> 246 bytes visualtest/docs/html/ftv2mnode.png | Bin 0 -> 246 bytes visualtest/docs/html/ftv2mo.png | Bin 0 -> 403 bytes visualtest/docs/html/ftv2node.png | Bin 0 -> 86 bytes visualtest/docs/html/ftv2ns.png | Bin 0 -> 388 bytes visualtest/docs/html/ftv2plastnode.png | Bin 0 -> 229 bytes visualtest/docs/html/ftv2pnode.png | Bin 0 -> 229 bytes visualtest/docs/html/ftv2splitbar.png | Bin 0 -> 314 bytes visualtest/docs/html/ftv2vertline.png | Bin 0 -> 86 bytes visualtest/docs/html/functions.html | 309 + visualtest/docs/html/functions_vars.html | 309 + visualtest/docs/html/globals.html | 395 ++ visualtest/docs/html/globals_defs.html | 150 + visualtest/docs/html/globals_enum.html | 111 + visualtest/docs/html/globals_eval.html | 117 + visualtest/docs/html/globals_func.html | 261 + visualtest/docs/html/globals_type.html | 147 + .../docs/html/harness__argparser_8c.html | 203 + visualtest/docs/html/index.html | 222 + visualtest/docs/html/jquery.js | 31 + visualtest/docs/html/linux__process_8c.html | 109 + visualtest/docs/html/mischelper_8c.html | 138 + visualtest/docs/html/nav_f.png | Bin 0 -> 153 bytes visualtest/docs/html/nav_g.png | Bin 0 -> 95 bytes visualtest/docs/html/nav_h.png | Bin 0 -> 98 bytes visualtest/docs/html/open.png | Bin 0 -> 123 bytes visualtest/docs/html/parsehelper_8c.html | 172 + visualtest/docs/html/rwhelper_8c.html | 244 + visualtest/docs/html/screenshot_8c.html | 145 + visualtest/docs/html/search/all_61.html | 26 + visualtest/docs/html/search/all_61.js | 8 + visualtest/docs/html/search/all_62.html | 26 + visualtest/docs/html/search/all_62.js | 7 + visualtest/docs/html/search/all_63.html | 26 + visualtest/docs/html/search/all_63.js | 5 + visualtest/docs/html/search/all_64.html | 26 + visualtest/docs/html/search/all_64.js | 5 + visualtest/docs/html/search/all_65.html | 26 + visualtest/docs/html/search/all_65.js | 8 + visualtest/docs/html/search/all_66.html | 26 + visualtest/docs/html/search/all_66.js | 4 + visualtest/docs/html/search/all_68.html | 26 + visualtest/docs/html/search/all_68.js | 4 + visualtest/docs/html/search/all_69.html | 26 + visualtest/docs/html/search/all_69.js | 4 + visualtest/docs/html/search/all_6b.html | 26 + visualtest/docs/html/search/all_6b.js | 4 + visualtest/docs/html/search/all_6c.html | 26 + visualtest/docs/html/search/all_6c.js | 4 + visualtest/docs/html/search/all_6d.html | 26 + visualtest/docs/html/search/all_6d.js | 15 + visualtest/docs/html/search/all_6e.html | 26 + visualtest/docs/html/search/all_6e.js | 9 + visualtest/docs/html/search/all_6f.html | 26 + visualtest/docs/html/search/all_6f.js | 5 + visualtest/docs/html/search/all_70.html | 26 + visualtest/docs/html/search/all_70.js | 5 + visualtest/docs/html/search/all_72.html | 26 + visualtest/docs/html/search/all_72.js | 7 + visualtest/docs/html/search/all_73.html | 26 + visualtest/docs/html/search/all_73.js | 83 + visualtest/docs/html/search/all_74.html | 26 + visualtest/docs/html/search/all_74.js | 10 + visualtest/docs/html/search/all_76.html | 26 + visualtest/docs/html/search/all_76.js | 12 + visualtest/docs/html/search/all_77.html | 26 + visualtest/docs/html/search/all_77.js | 5 + visualtest/docs/html/search/classes_73.html | 26 + visualtest/docs/html/search/classes_73.js | 18 + visualtest/docs/html/search/close.png | Bin 0 -> 273 bytes visualtest/docs/html/search/defines_61.html | 26 + visualtest/docs/html/search/defines_61.js | 5 + visualtest/docs/html/search/defines_64.html | 26 + visualtest/docs/html/search/defines_64.js | 4 + visualtest/docs/html/search/defines_6b.html | 26 + visualtest/docs/html/search/defines_6b.js | 4 + visualtest/docs/html/search/defines_6d.html | 26 + visualtest/docs/html/search/defines_6d.js | 11 + visualtest/docs/html/search/defines_73.html | 26 + visualtest/docs/html/search/defines_73.js | 4 + visualtest/docs/html/search/defines_74.html | 26 + visualtest/docs/html/search/defines_74.js | 6 + visualtest/docs/html/search/enums_73.html | 26 + visualtest/docs/html/search/enums_73.js | 6 + .../docs/html/search/enumvalues_73.html | 26 + visualtest/docs/html/search/enumvalues_73.js | 8 + visualtest/docs/html/search/files_61.html | 26 + visualtest/docs/html/search/files_61.js | 4 + visualtest/docs/html/search/files_68.html | 26 + visualtest/docs/html/search/files_68.js | 4 + visualtest/docs/html/search/files_6c.html | 26 + visualtest/docs/html/search/files_6c.js | 4 + visualtest/docs/html/search/files_6d.html | 26 + visualtest/docs/html/search/files_6d.js | 4 + visualtest/docs/html/search/files_70.html | 26 + visualtest/docs/html/search/files_70.js | 4 + visualtest/docs/html/search/files_72.html | 26 + visualtest/docs/html/search/files_72.js | 4 + visualtest/docs/html/search/files_73.html | 26 + visualtest/docs/html/search/files_73.js | 15 + visualtest/docs/html/search/files_74.html | 26 + visualtest/docs/html/search/files_74.js | 4 + visualtest/docs/html/search/files_76.html | 26 + visualtest/docs/html/search/files_76.js | 7 + visualtest/docs/html/search/files_77.html | 26 + visualtest/docs/html/search/files_77.js | 5 + visualtest/docs/html/search/functions_6d.html | 26 + visualtest/docs/html/search/functions_6d.js | 4 + visualtest/docs/html/search/functions_73.html | 26 + visualtest/docs/html/search/functions_73.js | 42 + visualtest/docs/html/search/mag_sel.png | Bin 0 -> 563 bytes visualtest/docs/html/search/nomatches.html | 12 + visualtest/docs/html/search/pages_76.html | 26 + visualtest/docs/html/search/pages_76.js | 4 + visualtest/docs/html/search/search.css | 271 + visualtest/docs/html/search/search.js | 813 +++ visualtest/docs/html/search/search_l.png | Bin 0 -> 604 bytes visualtest/docs/html/search/search_m.png | Bin 0 -> 158 bytes visualtest/docs/html/search/search_r.png | Bin 0 -> 612 bytes visualtest/docs/html/search/typedefs_73.html | 26 + visualtest/docs/html/search/typedefs_73.js | 18 + visualtest/docs/html/search/variables_61.html | 26 + visualtest/docs/html/search/variables_61.js | 5 + visualtest/docs/html/search/variables_62.html | 26 + visualtest/docs/html/search/variables_62.js | 7 + visualtest/docs/html/search/variables_63.html | 26 + visualtest/docs/html/search/variables_63.js | 5 + visualtest/docs/html/search/variables_64.html | 26 + visualtest/docs/html/search/variables_64.js | 4 + visualtest/docs/html/search/variables_65.html | 26 + visualtest/docs/html/search/variables_65.js | 8 + visualtest/docs/html/search/variables_66.html | 26 + visualtest/docs/html/search/variables_66.js | 4 + visualtest/docs/html/search/variables_69.html | 26 + visualtest/docs/html/search/variables_69.js | 4 + visualtest/docs/html/search/variables_6d.html | 26 + visualtest/docs/html/search/variables_6d.js | 5 + visualtest/docs/html/search/variables_6e.html | 26 + visualtest/docs/html/search/variables_6e.js | 9 + visualtest/docs/html/search/variables_6f.html | 26 + visualtest/docs/html/search/variables_6f.js | 5 + visualtest/docs/html/search/variables_70.html | 26 + visualtest/docs/html/search/variables_70.js | 4 + visualtest/docs/html/search/variables_72.html | 26 + visualtest/docs/html/search/variables_72.js | 6 + visualtest/docs/html/search/variables_73.html | 26 + visualtest/docs/html/search/variables_73.js | 8 + visualtest/docs/html/search/variables_74.html | 26 + visualtest/docs/html/search/variables_74.js | 6 + visualtest/docs/html/search/variables_76.html | 26 + visualtest/docs/html/search/variables_76.js | 7 + .../struct_s_d_l___process_exit_status.html | 139 + .../html/struct_s_d_l___process_info.html | 102 + .../struct_s_d_l_visual_test___action.html | 175 + ...truct_s_d_l_visual_test___action_node.html | 139 + ...ruct_s_d_l_visual_test___action_queue.html | 154 + ...d_l_visual_test___exhaustive_variator.html | 154 + ...uct_s_d_l_visual_test___harness_state.html | 259 + ...s_d_l_visual_test___r_w_helper_buffer.html | 154 + ...t_s_d_l_visual_test___random_variator.html | 154 + ...ruct_s_d_l_visual_test___s_u_t_config.html | 139 + ...t_s_d_l_visual_test___s_u_t_int_range.html | 139 + ...ruct_s_d_l_visual_test___s_u_t_option.html | 217 + .../struct_s_d_l_visual_test___variation.html | 139 + .../struct_s_d_l_visual_test___variator.html | 144 + .../docs/html/sut__configparser_8c.html | 170 + visualtest/docs/html/sync_off.png | Bin 0 -> 853 bytes visualtest/docs/html/sync_on.png | Bin 0 -> 845 bytes visualtest/docs/html/tab_a.png | Bin 0 -> 142 bytes visualtest/docs/html/tab_b.png | Bin 0 -> 169 bytes visualtest/docs/html/tab_h.png | Bin 0 -> 177 bytes visualtest/docs/html/tab_s.png | Bin 0 -> 184 bytes visualtest/docs/html/tabs.css | 60 + visualtest/docs/html/testharness_8c.html | 240 + ..._d_l_visual_test___s_u_t_option_value.html | 184 + visualtest/docs/html/variator__common_8c.html | 233 + .../docs/html/variator__exhaustive_8c.html | 180 + visualtest/docs/html/variator__random_8c.html | 185 + visualtest/docs/html/variators_8c.html | 190 + visualtest/docs/html/windows__process_8c.html | 105 + .../docs/html/windows__screenshot_8c.html | 103 + ...l__visualtest__action__configparser_8h.tex | 193 + ...l__visualtest__exhaustive__variator_8h.tex | 69 + ...d_l__visualtest__harness__argparser_8h.tex | 80 + .../_s_d_l__visualtest__parsehelper_8h.tex | 53 + .../latex/_s_d_l__visualtest__process_8h.tex | 140 + ...s_d_l__visualtest__random__variator_8h.tex | 70 + .../_s_d_l__visualtest__screenshot_8h.tex | 58 + ..._d_l__visualtest__sut__configparser_8h.tex | 117 + ...s_d_l__visualtest__variator__common_8h.tex | 141 + .../_s_d_l__visualtest__variators_8h.tex | 71 + .../docs/latex/action__configparser_8c.tex | 123 + visualtest/docs/latex/annotated.tex | 18 + .../dir_244674c763b96fdad0a6ffe8d0250e08.tex | 8 + .../dir_68267d1309a1af8e8297ef4c3efbcdba.tex | 37 + .../dir_88e6415a3128b404f1102a130772bdb6.tex | 8 + .../dir_a18918b93668b435612395bbc2e8b82b.tex | 8 + .../dir_d44c64559bbebec7f509842c48db8b23.tex | 30 + .../dir_f584182df4c69fab0b14563b4d535158.tex | 10 + .../dir_fe549de2418b81853b5f194edb4a7f34.tex | 8 + visualtest/docs/latex/doxygen.sty | 464 ++ visualtest/docs/latex/files.tex | 31 + .../docs/latex/harness__argparser_8c.tex | 64 + visualtest/docs/latex/index.tex | 80 + visualtest/docs/latex/linux__process_8c.tex | 16 + visualtest/docs/latex/make.bat | 25 + visualtest/docs/latex/mischelper_8c.tex | 26 + visualtest/docs/latex/parsehelper_8c.tex | 55 + visualtest/docs/latex/refman.tex | 189 + visualtest/docs/latex/rwhelper_8c.tex | 76 + visualtest/docs/latex/screenshot_8c.tex | 30 + .../struct_s_d_l___process_exit_status.tex | 31 + .../latex/struct_s_d_l___process_info.tex | 15 + .../struct_s_d_l_visual_test___action.tex | 47 + ...struct_s_d_l_visual_test___action_node.tex | 31 + ...truct_s_d_l_visual_test___action_queue.tex | 36 + ..._d_l_visual_test___exhaustive_variator.tex | 36 + ...ruct_s_d_l_visual_test___harness_state.tex | 71 + ..._s_d_l_visual_test___r_w_helper_buffer.tex | 36 + ...ct_s_d_l_visual_test___random_variator.tex | 36 + ...truct_s_d_l_visual_test___s_u_t_config.tex | 31 + ...ct_s_d_l_visual_test___s_u_t_int_range.tex | 31 + ...truct_s_d_l_visual_test___s_u_t_option.tex | 62 + .../struct_s_d_l_visual_test___variation.tex | 31 + .../struct_s_d_l_visual_test___variator.tex | 37 + .../docs/latex/sut__configparser_8c.tex | 50 + visualtest/docs/latex/testharness_8c.tex | 68 + ...s_d_l_visual_test___s_u_t_option_value.tex | 59 + visualtest/docs/latex/variator__common_8c.tex | 85 + .../docs/latex/variator__exhaustive_8c.tex | 54 + visualtest/docs/latex/variator__random_8c.tex | 54 + visualtest/docs/latex/variators_8c.tex | 54 + visualtest/docs/latex/windows__process_8c.tex | 12 + .../docs/latex/windows__screenshot_8c.tex | 10 + .../SDL_visualtest_action_configparser.h | 147 + .../SDL_visualtest_exhaustive_variator.h | 62 + .../SDL_visualtest_harness_argparser.h | 73 + .../include/SDL_visualtest_mischelper.h | 26 + .../include/SDL_visualtest_parsehelper.h | 44 + visualtest/include/SDL_visualtest_process.h | 111 + .../include/SDL_visualtest_random_variator.h | 59 + visualtest/include/SDL_visualtest_rwhelper.h | 85 + .../include/SDL_visualtest_screenshot.h | 50 + .../include/SDL_visualtest_sut_configparser.h | 103 + .../include/SDL_visualtest_variator_common.h | 120 + visualtest/include/SDL_visualtest_variators.h | 64 + visualtest/install-sh | 1 + visualtest/launch_harness.cmd | 2 + visualtest/launch_harness.sh | 6 + visualtest/missing | 1 + visualtest/src/action_configparser.c | 396 ++ visualtest/src/harness_argparser.c | 358 ++ visualtest/src/linux/linux_process.c | 199 + visualtest/src/mischelper.c | 28 + visualtest/src/parsehelper.c | 231 + visualtest/src/rwhelper.c | 131 + visualtest/src/screenshot.c | 136 + visualtest/src/sut_configparser.c | 232 + visualtest/src/testharness.c | 533 ++ visualtest/src/variator_common.c | 225 + visualtest/src/variator_exhaustive.c | 132 + visualtest/src/variator_random.c | 111 + visualtest/src/variators.c | 93 + visualtest/src/windows/windows_process.c | 284 + visualtest/src/windows/windows_screenshot.c | 349 ++ visualtest/stamp-h1 | 1 + visualtest/testsprite2_sample.actions | 3 + visualtest/testsprite2_sample.config | 6 + visualtest/testsprite2_sample.parameters | 29 + visualtest/unittest/testquit.actions | 1 + visualtest/unittest/testquit.c | 101 + visualtest/unittest/testquit.config | 5 + visualtest/unittest/testquit.parameters | 3 + 347 files changed, 33523 insertions(+) create mode 100755 VisualC/visualtest/unittest/testquit/testquit_VS2012.vcxproj create mode 100755 VisualC/visualtest/visualtest_VS2012.vcxproj create mode 100755 visualtest/COPYING.txt create mode 100755 visualtest/Makefile.in create mode 100755 visualtest/README.txt create mode 100755 visualtest/acinclude.m4 create mode 100755 visualtest/autogen.sh create mode 100755 visualtest/compile create mode 100755 visualtest/config.h create mode 100755 visualtest/config.h.in create mode 100755 visualtest/configs/testsprite2_blendmodes/testsprite2_blendmodes.actions create mode 100755 visualtest/configs/testsprite2_blendmodes/testsprite2_blendmodes.config create mode 100755 visualtest/configs/testsprite2_blendmodes/testsprite2_blendmodes.parameters create mode 100755 visualtest/configs/testsprite2_crashtest/testsprite2_crashtest.actions create mode 100755 visualtest/configs/testsprite2_crashtest/testsprite2_crashtest.config create mode 100755 visualtest/configs/testsprite2_crashtest/testsprite2_crashtest.parameters create mode 100755 visualtest/configs/testsprite2_fullscreen/testsprite2_fullscreen.actions create mode 100755 visualtest/configs/testsprite2_fullscreen/testsprite2_fullscreen.config create mode 100755 visualtest/configs/testsprite2_fullscreen/testsprite2_fullscreen.parameters create mode 100755 visualtest/configs/testsprite2_geometry/testsprite2_geometry.actions create mode 100755 visualtest/configs/testsprite2_geometry/testsprite2_geometry.config create mode 100755 visualtest/configs/testsprite2_geometry/testsprite2_geometry.parameters create mode 100755 visualtest/configure create mode 100755 visualtest/configure.in create mode 100755 visualtest/depcomp create mode 100755 visualtest/docs/Doxyfile create mode 100755 visualtest/docs/html/_s_d_l__visualtest__action__configparser_8h.html create mode 100755 visualtest/docs/html/_s_d_l__visualtest__action__configparser_8h_source.html create mode 100755 visualtest/docs/html/_s_d_l__visualtest__exhaustive__variator_8h.html create mode 100755 visualtest/docs/html/_s_d_l__visualtest__exhaustive__variator_8h_source.html create mode 100755 visualtest/docs/html/_s_d_l__visualtest__harness__argparser_8h.html create mode 100755 visualtest/docs/html/_s_d_l__visualtest__harness__argparser_8h_source.html create mode 100755 visualtest/docs/html/_s_d_l__visualtest__mischelper_8h_source.html create mode 100755 visualtest/docs/html/_s_d_l__visualtest__parsehelper_8h.html create mode 100755 visualtest/docs/html/_s_d_l__visualtest__parsehelper_8h_source.html create mode 100755 visualtest/docs/html/_s_d_l__visualtest__process_8h.html create mode 100755 visualtest/docs/html/_s_d_l__visualtest__process_8h_source.html create mode 100755 visualtest/docs/html/_s_d_l__visualtest__random__variator_8h.html create mode 100755 visualtest/docs/html/_s_d_l__visualtest__random__variator_8h_source.html create mode 100755 visualtest/docs/html/_s_d_l__visualtest__rwhelper_8h_source.html create mode 100755 visualtest/docs/html/_s_d_l__visualtest__screenshot_8h.html create mode 100755 visualtest/docs/html/_s_d_l__visualtest__screenshot_8h_source.html create mode 100755 visualtest/docs/html/_s_d_l__visualtest__sut__configparser_8h.html create mode 100755 visualtest/docs/html/_s_d_l__visualtest__sut__configparser_8h_source.html create mode 100755 visualtest/docs/html/_s_d_l__visualtest__variator__common_8h.html create mode 100755 visualtest/docs/html/_s_d_l__visualtest__variator__common_8h_source.html create mode 100755 visualtest/docs/html/_s_d_l__visualtest__variators_8h.html create mode 100755 visualtest/docs/html/_s_d_l__visualtest__variators_8h_source.html create mode 100755 visualtest/docs/html/action__configparser_8c.html create mode 100755 visualtest/docs/html/annotated.html create mode 100755 visualtest/docs/html/bc_s.png create mode 100755 visualtest/docs/html/bdwn.png create mode 100755 visualtest/docs/html/classes.html create mode 100755 visualtest/docs/html/closed.png create mode 100755 visualtest/docs/html/config_8h_source.html create mode 100755 visualtest/docs/html/dir_244674c763b96fdad0a6ffe8d0250e08.html create mode 100755 visualtest/docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html create mode 100755 visualtest/docs/html/dir_88e6415a3128b404f1102a130772bdb6.html create mode 100755 visualtest/docs/html/dir_a18918b93668b435612395bbc2e8b82b.html create mode 100755 visualtest/docs/html/dir_d44c64559bbebec7f509842c48db8b23.html create mode 100755 visualtest/docs/html/dir_f584182df4c69fab0b14563b4d535158.html create mode 100755 visualtest/docs/html/dir_fe549de2418b81853b5f194edb4a7f34.html create mode 100755 visualtest/docs/html/doxygen.css create mode 100755 visualtest/docs/html/doxygen.png create mode 100755 visualtest/docs/html/dynsections.js create mode 100755 visualtest/docs/html/files.html create mode 100755 visualtest/docs/html/ftv2blank.png create mode 100755 visualtest/docs/html/ftv2cl.png create mode 100755 visualtest/docs/html/ftv2doc.png create mode 100755 visualtest/docs/html/ftv2folderclosed.png create mode 100755 visualtest/docs/html/ftv2folderopen.png create mode 100755 visualtest/docs/html/ftv2lastnode.png create mode 100755 visualtest/docs/html/ftv2link.png create mode 100755 visualtest/docs/html/ftv2mlastnode.png create mode 100755 visualtest/docs/html/ftv2mnode.png create mode 100755 visualtest/docs/html/ftv2mo.png create mode 100755 visualtest/docs/html/ftv2node.png create mode 100755 visualtest/docs/html/ftv2ns.png create mode 100755 visualtest/docs/html/ftv2plastnode.png create mode 100755 visualtest/docs/html/ftv2pnode.png create mode 100755 visualtest/docs/html/ftv2splitbar.png create mode 100755 visualtest/docs/html/ftv2vertline.png create mode 100755 visualtest/docs/html/functions.html create mode 100755 visualtest/docs/html/functions_vars.html create mode 100755 visualtest/docs/html/globals.html create mode 100755 visualtest/docs/html/globals_defs.html create mode 100755 visualtest/docs/html/globals_enum.html create mode 100755 visualtest/docs/html/globals_eval.html create mode 100755 visualtest/docs/html/globals_func.html create mode 100755 visualtest/docs/html/globals_type.html create mode 100755 visualtest/docs/html/harness__argparser_8c.html create mode 100755 visualtest/docs/html/index.html create mode 100755 visualtest/docs/html/jquery.js create mode 100755 visualtest/docs/html/linux__process_8c.html create mode 100755 visualtest/docs/html/mischelper_8c.html create mode 100755 visualtest/docs/html/nav_f.png create mode 100755 visualtest/docs/html/nav_g.png create mode 100755 visualtest/docs/html/nav_h.png create mode 100755 visualtest/docs/html/open.png create mode 100755 visualtest/docs/html/parsehelper_8c.html create mode 100755 visualtest/docs/html/rwhelper_8c.html create mode 100755 visualtest/docs/html/screenshot_8c.html create mode 100755 visualtest/docs/html/search/all_61.html create mode 100755 visualtest/docs/html/search/all_61.js create mode 100755 visualtest/docs/html/search/all_62.html create mode 100755 visualtest/docs/html/search/all_62.js create mode 100755 visualtest/docs/html/search/all_63.html create mode 100755 visualtest/docs/html/search/all_63.js create mode 100755 visualtest/docs/html/search/all_64.html create mode 100755 visualtest/docs/html/search/all_64.js create mode 100755 visualtest/docs/html/search/all_65.html create mode 100755 visualtest/docs/html/search/all_65.js create mode 100755 visualtest/docs/html/search/all_66.html create mode 100755 visualtest/docs/html/search/all_66.js create mode 100755 visualtest/docs/html/search/all_68.html create mode 100755 visualtest/docs/html/search/all_68.js create mode 100755 visualtest/docs/html/search/all_69.html create mode 100755 visualtest/docs/html/search/all_69.js create mode 100755 visualtest/docs/html/search/all_6b.html create mode 100755 visualtest/docs/html/search/all_6b.js create mode 100755 visualtest/docs/html/search/all_6c.html create mode 100755 visualtest/docs/html/search/all_6c.js create mode 100755 visualtest/docs/html/search/all_6d.html create mode 100755 visualtest/docs/html/search/all_6d.js create mode 100755 visualtest/docs/html/search/all_6e.html create mode 100755 visualtest/docs/html/search/all_6e.js create mode 100755 visualtest/docs/html/search/all_6f.html create mode 100755 visualtest/docs/html/search/all_6f.js create mode 100755 visualtest/docs/html/search/all_70.html create mode 100755 visualtest/docs/html/search/all_70.js create mode 100755 visualtest/docs/html/search/all_72.html create mode 100755 visualtest/docs/html/search/all_72.js create mode 100755 visualtest/docs/html/search/all_73.html create mode 100755 visualtest/docs/html/search/all_73.js create mode 100755 visualtest/docs/html/search/all_74.html create mode 100755 visualtest/docs/html/search/all_74.js create mode 100755 visualtest/docs/html/search/all_76.html create mode 100755 visualtest/docs/html/search/all_76.js create mode 100755 visualtest/docs/html/search/all_77.html create mode 100755 visualtest/docs/html/search/all_77.js create mode 100755 visualtest/docs/html/search/classes_73.html create mode 100755 visualtest/docs/html/search/classes_73.js create mode 100755 visualtest/docs/html/search/close.png create mode 100755 visualtest/docs/html/search/defines_61.html create mode 100755 visualtest/docs/html/search/defines_61.js create mode 100755 visualtest/docs/html/search/defines_64.html create mode 100755 visualtest/docs/html/search/defines_64.js create mode 100755 visualtest/docs/html/search/defines_6b.html create mode 100755 visualtest/docs/html/search/defines_6b.js create mode 100755 visualtest/docs/html/search/defines_6d.html create mode 100755 visualtest/docs/html/search/defines_6d.js create mode 100755 visualtest/docs/html/search/defines_73.html create mode 100755 visualtest/docs/html/search/defines_73.js create mode 100755 visualtest/docs/html/search/defines_74.html create mode 100755 visualtest/docs/html/search/defines_74.js create mode 100755 visualtest/docs/html/search/enums_73.html create mode 100755 visualtest/docs/html/search/enums_73.js create mode 100755 visualtest/docs/html/search/enumvalues_73.html create mode 100755 visualtest/docs/html/search/enumvalues_73.js create mode 100755 visualtest/docs/html/search/files_61.html create mode 100755 visualtest/docs/html/search/files_61.js create mode 100755 visualtest/docs/html/search/files_68.html create mode 100755 visualtest/docs/html/search/files_68.js create mode 100755 visualtest/docs/html/search/files_6c.html create mode 100755 visualtest/docs/html/search/files_6c.js create mode 100755 visualtest/docs/html/search/files_6d.html create mode 100755 visualtest/docs/html/search/files_6d.js create mode 100755 visualtest/docs/html/search/files_70.html create mode 100755 visualtest/docs/html/search/files_70.js create mode 100755 visualtest/docs/html/search/files_72.html create mode 100755 visualtest/docs/html/search/files_72.js create mode 100755 visualtest/docs/html/search/files_73.html create mode 100755 visualtest/docs/html/search/files_73.js create mode 100755 visualtest/docs/html/search/files_74.html create mode 100755 visualtest/docs/html/search/files_74.js create mode 100755 visualtest/docs/html/search/files_76.html create mode 100755 visualtest/docs/html/search/files_76.js create mode 100755 visualtest/docs/html/search/files_77.html create mode 100755 visualtest/docs/html/search/files_77.js create mode 100755 visualtest/docs/html/search/functions_6d.html create mode 100755 visualtest/docs/html/search/functions_6d.js create mode 100755 visualtest/docs/html/search/functions_73.html create mode 100755 visualtest/docs/html/search/functions_73.js create mode 100755 visualtest/docs/html/search/mag_sel.png create mode 100755 visualtest/docs/html/search/nomatches.html create mode 100755 visualtest/docs/html/search/pages_76.html create mode 100755 visualtest/docs/html/search/pages_76.js create mode 100755 visualtest/docs/html/search/search.css create mode 100755 visualtest/docs/html/search/search.js create mode 100755 visualtest/docs/html/search/search_l.png create mode 100755 visualtest/docs/html/search/search_m.png create mode 100755 visualtest/docs/html/search/search_r.png create mode 100755 visualtest/docs/html/search/typedefs_73.html create mode 100755 visualtest/docs/html/search/typedefs_73.js create mode 100755 visualtest/docs/html/search/variables_61.html create mode 100755 visualtest/docs/html/search/variables_61.js create mode 100755 visualtest/docs/html/search/variables_62.html create mode 100755 visualtest/docs/html/search/variables_62.js create mode 100755 visualtest/docs/html/search/variables_63.html create mode 100755 visualtest/docs/html/search/variables_63.js create mode 100755 visualtest/docs/html/search/variables_64.html create mode 100755 visualtest/docs/html/search/variables_64.js create mode 100755 visualtest/docs/html/search/variables_65.html create mode 100755 visualtest/docs/html/search/variables_65.js create mode 100755 visualtest/docs/html/search/variables_66.html create mode 100755 visualtest/docs/html/search/variables_66.js create mode 100755 visualtest/docs/html/search/variables_69.html create mode 100755 visualtest/docs/html/search/variables_69.js create mode 100755 visualtest/docs/html/search/variables_6d.html create mode 100755 visualtest/docs/html/search/variables_6d.js create mode 100755 visualtest/docs/html/search/variables_6e.html create mode 100755 visualtest/docs/html/search/variables_6e.js create mode 100755 visualtest/docs/html/search/variables_6f.html create mode 100755 visualtest/docs/html/search/variables_6f.js create mode 100755 visualtest/docs/html/search/variables_70.html create mode 100755 visualtest/docs/html/search/variables_70.js create mode 100755 visualtest/docs/html/search/variables_72.html create mode 100755 visualtest/docs/html/search/variables_72.js create mode 100755 visualtest/docs/html/search/variables_73.html create mode 100755 visualtest/docs/html/search/variables_73.js create mode 100755 visualtest/docs/html/search/variables_74.html create mode 100755 visualtest/docs/html/search/variables_74.js create mode 100755 visualtest/docs/html/search/variables_76.html create mode 100755 visualtest/docs/html/search/variables_76.js create mode 100755 visualtest/docs/html/struct_s_d_l___process_exit_status.html create mode 100755 visualtest/docs/html/struct_s_d_l___process_info.html create mode 100755 visualtest/docs/html/struct_s_d_l_visual_test___action.html create mode 100755 visualtest/docs/html/struct_s_d_l_visual_test___action_node.html create mode 100755 visualtest/docs/html/struct_s_d_l_visual_test___action_queue.html create mode 100755 visualtest/docs/html/struct_s_d_l_visual_test___exhaustive_variator.html create mode 100755 visualtest/docs/html/struct_s_d_l_visual_test___harness_state.html create mode 100755 visualtest/docs/html/struct_s_d_l_visual_test___r_w_helper_buffer.html create mode 100755 visualtest/docs/html/struct_s_d_l_visual_test___random_variator.html create mode 100755 visualtest/docs/html/struct_s_d_l_visual_test___s_u_t_config.html create mode 100755 visualtest/docs/html/struct_s_d_l_visual_test___s_u_t_int_range.html create mode 100755 visualtest/docs/html/struct_s_d_l_visual_test___s_u_t_option.html create mode 100755 visualtest/docs/html/struct_s_d_l_visual_test___variation.html create mode 100755 visualtest/docs/html/struct_s_d_l_visual_test___variator.html create mode 100755 visualtest/docs/html/sut__configparser_8c.html create mode 100755 visualtest/docs/html/sync_off.png create mode 100755 visualtest/docs/html/sync_on.png create mode 100755 visualtest/docs/html/tab_a.png create mode 100755 visualtest/docs/html/tab_b.png create mode 100755 visualtest/docs/html/tab_h.png create mode 100755 visualtest/docs/html/tab_s.png create mode 100755 visualtest/docs/html/tabs.css create mode 100755 visualtest/docs/html/testharness_8c.html create mode 100755 visualtest/docs/html/union_s_d_l_visual_test___s_u_t_option_value.html create mode 100755 visualtest/docs/html/variator__common_8c.html create mode 100755 visualtest/docs/html/variator__exhaustive_8c.html create mode 100755 visualtest/docs/html/variator__random_8c.html create mode 100755 visualtest/docs/html/variators_8c.html create mode 100755 visualtest/docs/html/windows__process_8c.html create mode 100755 visualtest/docs/html/windows__screenshot_8c.html create mode 100755 visualtest/docs/latex/_s_d_l__visualtest__action__configparser_8h.tex create mode 100755 visualtest/docs/latex/_s_d_l__visualtest__exhaustive__variator_8h.tex create mode 100755 visualtest/docs/latex/_s_d_l__visualtest__harness__argparser_8h.tex create mode 100755 visualtest/docs/latex/_s_d_l__visualtest__parsehelper_8h.tex create mode 100755 visualtest/docs/latex/_s_d_l__visualtest__process_8h.tex create mode 100755 visualtest/docs/latex/_s_d_l__visualtest__random__variator_8h.tex create mode 100755 visualtest/docs/latex/_s_d_l__visualtest__screenshot_8h.tex create mode 100755 visualtest/docs/latex/_s_d_l__visualtest__sut__configparser_8h.tex create mode 100755 visualtest/docs/latex/_s_d_l__visualtest__variator__common_8h.tex create mode 100755 visualtest/docs/latex/_s_d_l__visualtest__variators_8h.tex create mode 100755 visualtest/docs/latex/action__configparser_8c.tex create mode 100755 visualtest/docs/latex/annotated.tex create mode 100755 visualtest/docs/latex/dir_244674c763b96fdad0a6ffe8d0250e08.tex create mode 100755 visualtest/docs/latex/dir_68267d1309a1af8e8297ef4c3efbcdba.tex create mode 100755 visualtest/docs/latex/dir_88e6415a3128b404f1102a130772bdb6.tex create mode 100755 visualtest/docs/latex/dir_a18918b93668b435612395bbc2e8b82b.tex create mode 100755 visualtest/docs/latex/dir_d44c64559bbebec7f509842c48db8b23.tex create mode 100755 visualtest/docs/latex/dir_f584182df4c69fab0b14563b4d535158.tex create mode 100755 visualtest/docs/latex/dir_fe549de2418b81853b5f194edb4a7f34.tex create mode 100755 visualtest/docs/latex/doxygen.sty create mode 100755 visualtest/docs/latex/files.tex create mode 100755 visualtest/docs/latex/harness__argparser_8c.tex create mode 100755 visualtest/docs/latex/index.tex create mode 100755 visualtest/docs/latex/linux__process_8c.tex create mode 100755 visualtest/docs/latex/make.bat create mode 100755 visualtest/docs/latex/mischelper_8c.tex create mode 100755 visualtest/docs/latex/parsehelper_8c.tex create mode 100755 visualtest/docs/latex/refman.tex create mode 100755 visualtest/docs/latex/rwhelper_8c.tex create mode 100755 visualtest/docs/latex/screenshot_8c.tex create mode 100755 visualtest/docs/latex/struct_s_d_l___process_exit_status.tex create mode 100755 visualtest/docs/latex/struct_s_d_l___process_info.tex create mode 100755 visualtest/docs/latex/struct_s_d_l_visual_test___action.tex create mode 100755 visualtest/docs/latex/struct_s_d_l_visual_test___action_node.tex create mode 100755 visualtest/docs/latex/struct_s_d_l_visual_test___action_queue.tex create mode 100755 visualtest/docs/latex/struct_s_d_l_visual_test___exhaustive_variator.tex create mode 100755 visualtest/docs/latex/struct_s_d_l_visual_test___harness_state.tex create mode 100755 visualtest/docs/latex/struct_s_d_l_visual_test___r_w_helper_buffer.tex create mode 100755 visualtest/docs/latex/struct_s_d_l_visual_test___random_variator.tex create mode 100755 visualtest/docs/latex/struct_s_d_l_visual_test___s_u_t_config.tex create mode 100755 visualtest/docs/latex/struct_s_d_l_visual_test___s_u_t_int_range.tex create mode 100755 visualtest/docs/latex/struct_s_d_l_visual_test___s_u_t_option.tex create mode 100755 visualtest/docs/latex/struct_s_d_l_visual_test___variation.tex create mode 100755 visualtest/docs/latex/struct_s_d_l_visual_test___variator.tex create mode 100755 visualtest/docs/latex/sut__configparser_8c.tex create mode 100755 visualtest/docs/latex/testharness_8c.tex create mode 100755 visualtest/docs/latex/union_s_d_l_visual_test___s_u_t_option_value.tex create mode 100755 visualtest/docs/latex/variator__common_8c.tex create mode 100755 visualtest/docs/latex/variator__exhaustive_8c.tex create mode 100755 visualtest/docs/latex/variator__random_8c.tex create mode 100755 visualtest/docs/latex/variators_8c.tex create mode 100755 visualtest/docs/latex/windows__process_8c.tex create mode 100755 visualtest/docs/latex/windows__screenshot_8c.tex create mode 100755 visualtest/include/SDL_visualtest_action_configparser.h create mode 100755 visualtest/include/SDL_visualtest_exhaustive_variator.h create mode 100755 visualtest/include/SDL_visualtest_harness_argparser.h create mode 100755 visualtest/include/SDL_visualtest_mischelper.h create mode 100755 visualtest/include/SDL_visualtest_parsehelper.h create mode 100755 visualtest/include/SDL_visualtest_process.h create mode 100755 visualtest/include/SDL_visualtest_random_variator.h create mode 100755 visualtest/include/SDL_visualtest_rwhelper.h create mode 100755 visualtest/include/SDL_visualtest_screenshot.h create mode 100755 visualtest/include/SDL_visualtest_sut_configparser.h create mode 100755 visualtest/include/SDL_visualtest_variator_common.h create mode 100755 visualtest/include/SDL_visualtest_variators.h create mode 100755 visualtest/install-sh create mode 100755 visualtest/launch_harness.cmd create mode 100755 visualtest/launch_harness.sh create mode 100755 visualtest/missing create mode 100755 visualtest/src/action_configparser.c create mode 100755 visualtest/src/harness_argparser.c create mode 100755 visualtest/src/linux/linux_process.c create mode 100755 visualtest/src/mischelper.c create mode 100755 visualtest/src/parsehelper.c create mode 100755 visualtest/src/rwhelper.c create mode 100755 visualtest/src/screenshot.c create mode 100755 visualtest/src/sut_configparser.c create mode 100755 visualtest/src/testharness.c create mode 100755 visualtest/src/variator_common.c create mode 100755 visualtest/src/variator_exhaustive.c create mode 100755 visualtest/src/variator_random.c create mode 100755 visualtest/src/variators.c create mode 100755 visualtest/src/windows/windows_process.c create mode 100755 visualtest/src/windows/windows_screenshot.c create mode 100755 visualtest/stamp-h1 create mode 100755 visualtest/testsprite2_sample.actions create mode 100755 visualtest/testsprite2_sample.config create mode 100755 visualtest/testsprite2_sample.parameters create mode 100755 visualtest/unittest/testquit.actions create mode 100755 visualtest/unittest/testquit.c create mode 100755 visualtest/unittest/testquit.config create mode 100755 visualtest/unittest/testquit.parameters diff --git a/VisualC/SDL_VS2012.sln b/VisualC/SDL_VS2012.sln index 3ac7b68f297c3..6edc416dffc84 100644 --- a/VisualC/SDL_VS2012.sln +++ b/VisualC/SDL_VS2012.sln @@ -103,6 +103,19 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testjoystick", "tests\testj {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A} = {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "visualtest", "visualtest\visualtest_VS2012.vcxproj", "{13DDF23A-4A8F-4AF9-9734-CC09D9157924}" + ProjectSection(ProjectDependencies) = postProject + {1D12C737-7C71-45CE-AE2C-AAB47B690BC8} = {1D12C737-7C71-45CE-AE2C-AAB47B690BC8} + {40FB7794-D3C3-4CFE-BCF4-A80C96635682} = {40FB7794-D3C3-4CFE-BCF4-A80C96635682} + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68} = {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68} + {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A} = {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A} + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A} = {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A} + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "visualtest", "visualtest", "{68C17E4D-1073-48DB-A96C-C36FE8705F1B}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testquit", "visualtest\unittest\testquit\testquit_VS2012.vcxproj", "{1D12C737-7C71-45CE-AE2C-AAB47B690BC8}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -253,6 +266,22 @@ Global {55812185-D13C-4022-9C81-32E0F4A08BCC}.Release|Win32.Build.0 = Release|Win32 {55812185-D13C-4022-9C81-32E0F4A08BCC}.Release|x64.ActiveCfg = Release|x64 {55812185-D13C-4022-9C81-32E0F4A08BCC}.Release|x64.Build.0 = Release|x64 + {13DDF23A-4A8F-4AF9-9734-CC09D9157924}.Debug|Win32.ActiveCfg = Debug|Win32 + {13DDF23A-4A8F-4AF9-9734-CC09D9157924}.Debug|Win32.Build.0 = Debug|Win32 + {13DDF23A-4A8F-4AF9-9734-CC09D9157924}.Debug|x64.ActiveCfg = Debug|x64 + {13DDF23A-4A8F-4AF9-9734-CC09D9157924}.Debug|x64.Build.0 = Debug|x64 + {13DDF23A-4A8F-4AF9-9734-CC09D9157924}.Release|Win32.ActiveCfg = Release|Win32 + {13DDF23A-4A8F-4AF9-9734-CC09D9157924}.Release|Win32.Build.0 = Release|Win32 + {13DDF23A-4A8F-4AF9-9734-CC09D9157924}.Release|x64.ActiveCfg = Release|x64 + {13DDF23A-4A8F-4AF9-9734-CC09D9157924}.Release|x64.Build.0 = Release|x64 + {1D12C737-7C71-45CE-AE2C-AAB47B690BC8}.Debug|Win32.ActiveCfg = Debug|Win32 + {1D12C737-7C71-45CE-AE2C-AAB47B690BC8}.Debug|Win32.Build.0 = Debug|Win32 + {1D12C737-7C71-45CE-AE2C-AAB47B690BC8}.Debug|x64.ActiveCfg = Debug|x64 + {1D12C737-7C71-45CE-AE2C-AAB47B690BC8}.Debug|x64.Build.0 = Debug|x64 + {1D12C737-7C71-45CE-AE2C-AAB47B690BC8}.Release|Win32.ActiveCfg = Release|Win32 + {1D12C737-7C71-45CE-AE2C-AAB47B690BC8}.Release|Win32.Build.0 = Release|Win32 + {1D12C737-7C71-45CE-AE2C-AAB47B690BC8}.Release|x64.ActiveCfg = Release|x64 + {1D12C737-7C71-45CE-AE2C-AAB47B690BC8}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -274,5 +303,7 @@ Global {55812185-D13C-4022-9C81-32E0F4A08336} = {CE748C1F-3C21-4825-AA6A-F895A023F7E7} {55812185-D13C-4022-9C81-32E0F4A08996} = {CE748C1F-3C21-4825-AA6A-F895A023F7E7} {55812185-D13C-4022-9C81-32E0F4A08BCC} = {CE748C1F-3C21-4825-AA6A-F895A023F7E7} + {13DDF23A-4A8F-4AF9-9734-CC09D9157924} = {68C17E4D-1073-48DB-A96C-C36FE8705F1B} + {1D12C737-7C71-45CE-AE2C-AAB47B690BC8} = {68C17E4D-1073-48DB-A96C-C36FE8705F1B} EndGlobalSection EndGlobal diff --git a/VisualC/visualtest/unittest/testquit/testquit_VS2012.vcxproj b/VisualC/visualtest/unittest/testquit/testquit_VS2012.vcxproj new file mode 100755 index 0000000000000..08a2684de4318 --- /dev/null +++ b/VisualC/visualtest/unittest/testquit/testquit_VS2012.vcxproj @@ -0,0 +1,232 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + testquit + testquit + {1D12C737-7C71-45CE-AE2C-AAB47B690BC8} + + + + Application + false + v110 + + + Application + false + MultiByte + v110 + + + Application + false + v110 + + + Application + false + v110 + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + false + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + true + true + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + OnlyExplicitInline + ..\..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + + + Level3 + true + Default + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL and data files + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + + + OnlyExplicitInline + ..\..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + + + Level3 + true + Default + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL and data files + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + Disabled + ..\..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + + + Level3 + true + EditAndContinue + Default + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL and data files + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + + + Disabled + ..\..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + + + Level3 + true + ProgramDatabase + Default + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL and data files + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VisualC/visualtest/visualtest_VS2012.vcxproj b/VisualC/visualtest/visualtest_VS2012.vcxproj new file mode 100755 index 0000000000000..b7596b87cfa19 --- /dev/null +++ b/VisualC/visualtest/visualtest_VS2012.vcxproj @@ -0,0 +1,308 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + visualtest + visualtest + {13DDF23A-4A8F-4AF9-9734-CC09D9157924} + + + + Application + false + v110 + + + Application + false + MultiByte + v110 + + + Application + false + v110 + + + Application + false + v110 + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + false + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + true + true + + + testharness + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + OnlyExplicitInline + ..\..\include;..\..\visualtest\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + + + Level3 + true + Default + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + copy "$(SolutionDir)SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)SDL2.dll" + copy "$(SolutionDir)..\test\icon.bmp" "$(TargetDir)icon.bmp" + copy "$(SolutionDir)tests\testsprite2\$(Platform)\$(Configuration)\testsprite2.exe" "$(TargetDir)testsprite2.exe" + copy "$(SolutionDir)visualtest\unittest\testquit\$(Platform)\$(Configuration)\testquit.exe" "$(TargetDir)testquit.exe" + copy /y "$(SolutionDir)..\visualtest\*.config" "$(TargetDir)" + copy /y "$(SolutionDir)..\visualtest\*.parameters" "$(TargetDir)" + copy /y "$(SolutionDir)..\visualtest\*.actions" "$(TargetDir)" + copy /y "$(SolutionDir)..\visualtest\unittest\*.config" "$(TargetDir)" + copy /y "$(SolutionDir)..\visualtest\unittest\*.parameters" "$(TargetDir)" + copy /y "$(SolutionDir)..\visualtest\unittest\*.actions" "$(TargetDir)" + + + + Copy SDL and data files + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + + + OnlyExplicitInline + ..\..\include;..\..\visualtest\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + + + Level3 + true + Default + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + copy "$(SolutionDir)SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)SDL2.dll" + copy "$(SolutionDir)..\test\icon.bmp" "$(TargetDir)icon.bmp" + copy "$(SolutionDir)tests\testsprite2\$(Platform)\$(Configuration)\testsprite2.exe" "$(TargetDir)testsprite2.exe" + copy "$(SolutionDir)visualtest\unittest\testquit\$(Platform)\$(Configuration)\testquit.exe" "$(TargetDir)testquit.exe" + copy /y "$(SolutionDir)..\visualtest\*.config" "$(TargetDir)" + copy /y "$(SolutionDir)..\visualtest\*.parameters" "$(TargetDir)" + copy /y "$(SolutionDir)..\visualtest\*.actions" "$(TargetDir)" + copy /y "$(SolutionDir)..\visualtest\unittest\*.config" "$(TargetDir)" + copy /y "$(SolutionDir)..\visualtest\unittest\*.parameters" "$(TargetDir)" + copy /y "$(SolutionDir)..\visualtest\unittest\*.actions" "$(TargetDir)" + + + + Copy SDL and data files + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + Disabled + ..\..\include;..\..\visualtest\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + + + Level3 + true + EditAndContinue + Default + false + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + true + Windows + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;Shlwapi.lib;%(AdditionalDependencies) + + + + copy "$(SolutionDir)SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)SDL2.dll" + copy "$(SolutionDir)..\test\icon.bmp" "$(TargetDir)icon.bmp" + copy "$(SolutionDir)tests\testsprite2\$(Platform)\$(Configuration)\testsprite2.exe" "$(TargetDir)testsprite2.exe" + copy "$(SolutionDir)visualtest\unittest\testquit\$(Platform)\$(Configuration)\testquit.exe" "$(TargetDir)testquit.exe" + copy /y "$(SolutionDir)..\visualtest\*.config" "$(TargetDir)" + copy /y "$(SolutionDir)..\visualtest\*.parameters" "$(TargetDir)" + copy /y "$(SolutionDir)..\visualtest\*.actions" "$(TargetDir)" + copy /y "$(SolutionDir)..\visualtest\unittest\*.config" "$(TargetDir)" + copy /y "$(SolutionDir)..\visualtest\unittest\*.parameters" "$(TargetDir)" + copy /y "$(SolutionDir)..\visualtest\unittest\*.actions" "$(TargetDir)" + + + + Copy SDL and data files + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + + + Disabled + ..\..\include;..\..\visualtest\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + + + Level3 + true + ProgramDatabase + Default + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + true + Windows + + + + copy "$(SolutionDir)SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)SDL2.dll" + copy "$(SolutionDir)..\test\icon.bmp" "$(TargetDir)icon.bmp" + copy "$(SolutionDir)tests\testsprite2\$(Platform)\$(Configuration)\testsprite2.exe" "$(TargetDir)testsprite2.exe" + copy "$(SolutionDir)visualtest\unittest\testquit\$(Platform)\$(Configuration)\testquit.exe" "$(TargetDir)testquit.exe" + copy /y "$(SolutionDir)..\visualtest\*.config" "$(TargetDir)" + copy /y "$(SolutionDir)..\visualtest\*.parameters" "$(TargetDir)" + copy /y "$(SolutionDir)..\visualtest\*.actions" "$(TargetDir)" + copy /y "$(SolutionDir)..\visualtest\unittest\*.config" "$(TargetDir)" + copy /y "$(SolutionDir)..\visualtest\unittest\*.parameters" "$(TargetDir)" + copy /y "$(SolutionDir)..\visualtest\unittest\*.actions" "$(TargetDir)" + + + + Copy SDL and data files + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/visualtest/COPYING.txt b/visualtest/COPYING.txt new file mode 100755 index 0000000000000..05460c3de78ad --- /dev/null +++ b/visualtest/COPYING.txt @@ -0,0 +1,18 @@ +Visual and Interactive Test Automation for SDL 2.0 +Copyright (C) 2013 Apoorv Upreti + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. \ No newline at end of file diff --git a/visualtest/Makefile.in b/visualtest/Makefile.in new file mode 100755 index 0000000000000..2efcdb1c893eb --- /dev/null +++ b/visualtest/Makefile.in @@ -0,0 +1,37 @@ +# Makefile to build the SDL tests +srcdir = @srcdir@ +CC = @CC@ +EXE = @EXE@ +CFLAGS = @CFLAGS@ -I../include -I./include +LIBS = @LIBS@ +TARGETS = \ + testharness$(EXE) \ + testquit$(EXE) +all: Makefile $(TARGETS) +Makefile: $(srcdir)/Makefile.in + $(SHELL) config.status $@ +testharness$(EXE): $(srcdir)/src/action_configparser.c \ + $(srcdir)/src/harness_argparser.c \ + $(srcdir)/src/rwhelper.c \ + $(srcdir)/src/testharness.c \ + $(srcdir)/src/variator_exhaustive.c \ + $(srcdir)/src/variators.c \ + $(srcdir)/src/screenshot.c \ + $(srcdir)/src/harness_argparser.c \ + $(srcdir)/src/sut_configparser.c \ + $(srcdir)/src/variator_common.c \ + $(srcdir)/src/variator_random.c \ + $(srcdir)/src/parsehelper.c \ + $(srcdir)/src/mischelper.c \ + $(srcdir)/src/linux/linux_process.c \ + $(srcdir)/src/windows/windows_process.c \ + $(srcdir)/src/windows/windows_screenshot.c + $(CC) -o $@ $^ $(CFLAGS) $(LIBS) +testquit$(EXE): $(srcdir)/unittest/testquit.c + $(CC) -o $@ $^ $(CFLAGS) $(LIBS) +clean: + rm -f $(TARGETS) +distclean: clean + rm -f Makefile + rm -f config.status config.cache config.log + rm -rf $(srcdir)/autom4te* diff --git a/visualtest/README.txt b/visualtest/README.txt new file mode 100755 index 0000000000000..f7718ad78a05c --- /dev/null +++ b/visualtest/README.txt @@ -0,0 +1,214 @@ +/*! + +\mainpage Visual and Interactive Test Automation for SDL 2.0 + +\section license_sec License +Check the file \c COPYING.txt for licensing information. + +\section intro_sec Introduction +The goal of this GSoC project is to automate the testing of testsprite2. +testsprite2 takes 26 parameters which have thousands of valid combinations and is +used to validate SDL's window, mouse and rendering behaviour. By having a test +harness that runs testsprite2 with various command line argument strings and +validates the output for each run, we can make testing an easier task for +maintainers, contributors and testers. The test harness can be used by a continuous +integration system (like buildbot or jenkins) to validate SDL after checkins. + +SDL Homepage: http://libsdl.org/ + +\section build_sec Building + +\subsection build_linux Building on Linux/Cygwin +./autogen.sh; ./configure; make; + +\subsection build_windows Building on Windows +Use the Visual Studio solution under \c SDL/VisualC/visualtest. + +\section docs_sec Documentation +Documentation is available via Doxygen. To build the documentation, cd to the +SDL/visualtest/docs directory and run \c doxygen. A good starting point for +exploring the documentation is \c SDL/visualtest/docs/html/index.html + +\section usage_sec Usage +To see all the options supported by the test harness, just run \c testharness +with no arguments. + +At the moment the following options are supported: +\li \c sutapp - Path to the system under test (SUT) application +\li \c sutargs - Launch the SUT with the specified arguments string +\li \c timeout - The maximum time after which the SUT process will be killed; + passed as hh:mm:ss; default 00:01:00 +\li \c variator - Which variator to use; see \ref variators_sec +\li \c num-variations - The number of variations to run for; taken to be + 1 for the random variator and ALL for the exhaustive variator by default +\li \c no-launch - Just print the arguments string for each variation without + launching the SUT or performing any actions +\li \c parameter-config - A config file that describes the command line parameters + supported by the SUT; see \ref paramconfig_sec or the sample *.parameters files + for more details +\li \c action-config - A config file with a list of actions to be performed while + the SUT is running; see \ref actionconfig_sec or the sample *.actions files +\li \c output-dir - Path to the directory where screenshots should be saved; is + created if it doesn't exist; taken to be "./output" by default +\li \c verify-dir - Path to the directory with the verification images; taken to + be "./verify" by default + +Paths can be relative or absolute. + +Alternatively, the options can be passed as a config file for convenience: + +testharness \-\-config testsprite2_sample.config + +For a sample, take a look at the *.config files in this repository. + +We can also pass a config file and override certain options as necessary: +testharness \-\-config testsprite2_sample.config \-\-num-variations 10 + +Note: You may find it convenient to copy the SUT executable along with any +resources to the test harness directory. Also note that testsprite2 and its +resources (icon.bmp) are automatically copied when using the Visual Studio +solution. + +\subsection usageexamples_subsec Usage examples: + +Passing a custom arguments string: +testharness \-\-sutapp testsprite2 \-\-sutargs "\-\-cyclecolor \-\-blend mod +\-\-iterations 2" \-\-action-config xyz.actions + +Using the random variator: +testharness \-\-sutapp testsprite2 \-\-variator random \-\-num-variations 5 +\-\-parameter-config xyz.parameters \-\-action-config xyz.actions + +\subsection config_subsec Config Files +Config files are an alternate way to pass parameters to the test harness. We +describe the paramters in a config file and pass that to the test harness using +the \-\-config option. The config file consists of lines of the form "x=y" where +x is an option and y is it's value. For boolean options, we simply give the name +of the option to indicate that it is to be passed to the testharness. + +The hash '#' character can be used to start a comment from that point to the end +of the line. + +\section paramconfig_sec The SUT Parameters File +To generate variations we need to describe the parameters the will be passed to +the SUT. This description is given in a parameters file. Each line of the parameters +file (except the blank lines) represents one command line option with five +comma separated fields: +name, type, values, required, categories + +\li \c name is the name of the option, e.g., \c \-\-cyclecolor. +\li \c type can have one of three values - integer, boolean and enum. +\li \c values - for integer options this is the valid range of values the option + can take, i.e., [min max]. For enum options this is a list of strings that + the option can take, e.g., [val1 val2 val3]. For boolean options this field + is ignored. +\li \c required - true if the option is required, false otherwise. +\li \c categories - a list of categories that the option belongs to. For example, + [video mouse audio] + +Just like with config files, hash characters can be used to start comments. + +\subsection additionalnotes_subsec Additional Notes + +\li If you want to have an option that always takes a certain value, use an enum + with only one value. +\li Currently there isn't any way to turn an option off, i.e., all options will + be included in the command line options string that is generated using the + config. If you don't want an option to be passed to the SUT, remove it from + the config file or comment it out. + +\section variators_sec Variators +Variators are the mechanism by which we generate strings of command line arguments +to test the SUT with. A variator is quite simply an iterator that iterates through +different variations of command line options. There are two variators supported at +the moment: +\li \b Exhaustive - Generate all possible combinations of command line arguments + that are valid. +\li \b Random - Generate a random variation each time the variator is called. + +As an example, let's try a simple .parameters file:\n + +\-\-blend, enum, [add mod], false, [] \n +\-\-fullscreen, boolean, [], false, [] + + +The exhaustive variator would generate the following four variations:\n + +\-\-blend add \n +\-\-blend mod \n +\-\-blend add \-\-fullscreen \n +\-\-blend mod \-\-fullscreen \n + + +The random variator would simply generate a random variation like the following:\n +\-\-blend mod + +\section actionconfig_sec The Actions File +Once the SUT process has been launched, automated testing happens using a mechanism +called actions. A list of actions is read from a file and each action is performed +on the SUT process sequentially. Each line in the actions file describes an action. +The format for an action is hh:mm:ss ACTION_NAME additional parameters. +There are five actions supported at the moment: +\li \b SCREENSHOT - Takes a screenshot of each window owned by the SUT process. The + images are saved as \c [hash]_[i].bmp where \c [hash] is the 32 character long + hexadecimal MD5 hash of the arguments string that was passed to the SUT while + launching it and \c i is the window number. i = 1 is an exceptional case + where the \c _[i] is dropped and the filename is simply \c [hash].bmp\n + Note: The screenshots are only of the window's client area. +\li \b VERIFY - Verifies the screenshots taken by the last SCREENSHOT action by + comparing them against a verification image. Each \c [hash]_i.bmp image output + by the SCREENSHOT action is compared against a \c [hash].bmp image in the + verify-dir. +\li \b QUIT - Gracefully quits the SUT process. On Windows this means sending a + WM_CLOSE message to each window owned by the SUT process. On Linux it means + sending a SIGQUIT signal to the SUT process. +\li \b KILL - Forcefully kills the SUT process. This is useful when the SUT process + doesn't respond to the QUIT action. +\li LAUNCH [/path/to/executable] [args] - Runs an executable with \c [args] + as the arguments string. + +Just like with config files, hash characters can be used to start comments. + +\section contint_sec Continuous Integration (CI) +One of the goals of the project was to create a test harness that integrates +with CI systems to provide automated visual and interactive testing to SDL. + +At the moment the test harness can be run in two modes that are useful for CI: +\li Crash testing mode - launch the SUT with every variation and all parameters, + report to the CI if there's a crash +\li Visual testing mode - launch and visually verify the SUT for a smaller subset + of the parameters + +Look at the launch_harness.sh/launch_harness.cmd for an example scripts that run the +test harness for all variations with all parameters and report an error on a crash. +The script uses the testsprite2_crashtest config, so remember to copy those files +over to the test harness executable directory along with the script. + +\section todo_sec TODOs +\li Allow specifying a clipping box along with the VERIFY action, i.e., hh:mm:ss + VERIFY x, y, w, h +\li Add support for spaces between the equals sign in test harness config files +\li Implement the SCREENSHOT action on Linux +\li Add a pairwise variator +\li Add actions to inject keyboard/mouse events +\li Add actions to manipulate the SUT window, e.g., minimize, restore, resize +\li Add support to load and save screenshots as .pngs instead of .bmps + +\section issues_sec Known Issues +\li The QUIT action does not work on a testsprite2 process with multiple windows. + This appears to be an issue with testsprite2. +\li The SCREENSHOT action doesn't capture the testsprite2 window correctly if the + --fullscreen option is supplied. It works with --fullscreen-desktop, however. + +\section moreinfo_sec More Information + +Author Contact Info:\n +Apoorv Upreti \c \ + +Other useful links: +- Project Repository: https://bitbucket.org/nerdap/sdlvisualtest +- Project Wiki: https://github.com/nerdap/autotestsprite2/wiki +- Project Blog: http://nerdap.github.io +- Verification images for testsprite2_blendmodes: https://www.dropbox.com/s/nm02aem76m812ng/testsprite2_blendmodes.zip +- Verification images for testsprite2_geometry: https://www.dropbox.com/s/csypwryopaslpaf/testsprite2_geometry.zip +*/ diff --git a/visualtest/acinclude.m4 b/visualtest/acinclude.m4 new file mode 100755 index 0000000000000..ead69e5149c14 --- /dev/null +++ b/visualtest/acinclude.m4 @@ -0,0 +1,359 @@ +# Configure paths for SDL +# Sam Lantinga 9/21/99 +# stolen from Manish Singh +# stolen back from Frank Belew +# stolen from Manish Singh +# Shamelessly stolen from Owen Taylor + +# serial 1 + +dnl AM_PATH_SDL([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) +dnl Test for SDL, and define SDL_CFLAGS and SDL_LIBS +dnl +AC_DEFUN([AM_PATH_SDL2], +[dnl +dnl Get the cflags and libraries from the sdl2-config script +dnl +AC_ARG_WITH(sdl-prefix,[ --with-sdl-prefix=PFX Prefix where SDL is installed (optional)], + sdl_prefix="$withval", sdl_prefix="") +AC_ARG_WITH(sdl-exec-prefix,[ --with-sdl-exec-prefix=PFX Exec prefix where SDL is installed (optional)], + sdl_exec_prefix="$withval", sdl_exec_prefix="") +AC_ARG_ENABLE(sdltest, [ --disable-sdltest Do not try to compile and run a test SDL program], + , enable_sdltest=yes) + + min_sdl_version=ifelse([$1], ,0.9.0,$1) + + if test "x$sdl_prefix$sdl_exec_prefix" = x ; then + PKG_CHECK_MODULES([SDL], [sdl2 >= $min_sdl_version], + [sdl_pc=yes], + [sdl_pc=no]) + else + sdl_pc=no + if test x$sdl_exec_prefix != x ; then + sdl_config_args="$sdl_config_args --exec-prefix=$sdl_exec_prefix" + if test x${SDL_CONFIG+set} != xset ; then + SDL_CONFIG=$sdl_exec_prefix/bin/sdl2-config + fi + fi + if test x$sdl_prefix != x ; then + sdl_config_args="$sdl_config_args --prefix=$sdl_prefix" + if test x${SDL_CONFIG+set} != xset ; then + SDL_CONFIG=$sdl_prefix/bin/sdl2-config + fi + fi + fi + + if test "x$sdl_pc" = xyes ; then + no_sdl="" + SDL_CONFIG="pkg-config sdl2" + else + as_save_PATH="$PATH" + if test "x$prefix" != xNONE && test "$cross_compiling" != yes; then + PATH="$prefix/bin:$prefix/usr/bin:$PATH" + fi + AC_PATH_PROG(SDL_CONFIG, sdl2-config, no, [$PATH]) + PATH="$as_save_PATH" + AC_MSG_CHECKING(for SDL - version >= $min_sdl_version) + no_sdl="" + + if test "$SDL_CONFIG" = "no" ; then + no_sdl=yes + else + SDL_CFLAGS=`$SDL_CONFIG $sdl_config_args --cflags` + SDL_LIBS=`$SDL_CONFIG $sdl_config_args --libs` + + sdl_major_version=`$SDL_CONFIG $sdl_config_args --version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` + sdl_minor_version=`$SDL_CONFIG $sdl_config_args --version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` + sdl_micro_version=`$SDL_CONFIG $sdl_config_args --version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` + if test "x$enable_sdltest" = "xyes" ; then + ac_save_CFLAGS="$CFLAGS" + ac_save_CXXFLAGS="$CXXFLAGS" + ac_save_LIBS="$LIBS" + CFLAGS="$CFLAGS $SDL_CFLAGS" + CXXFLAGS="$CXXFLAGS $SDL_CFLAGS" + LIBS="$LIBS $SDL_LIBS" +dnl +dnl Now check if the installed SDL is sufficiently new. (Also sanity +dnl checks the results of sdl2-config to some extent +dnl + rm -f conf.sdltest + AC_TRY_RUN([ +#include +#include +#include +#include "SDL.h" + +char* +my_strdup (char *str) +{ + char *new_str; + + if (str) + { + new_str = (char *)malloc ((strlen (str) + 1) * sizeof(char)); + strcpy (new_str, str); + } + else + new_str = NULL; + + return new_str; +} + +int main (int argc, char *argv[]) +{ + int major, minor, micro; + char *tmp_version; + + /* This hangs on some systems (?) + system ("touch conf.sdltest"); + */ + { FILE *fp = fopen("conf.sdltest", "a"); if ( fp ) fclose(fp); } + + /* HP/UX 9 (%@#!) writes to sscanf strings */ + tmp_version = my_strdup("$min_sdl_version"); + if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { + printf("%s, bad version string\n", "$min_sdl_version"); + exit(1); + } + + if (($sdl_major_version > major) || + (($sdl_major_version == major) && ($sdl_minor_version > minor)) || + (($sdl_major_version == major) && ($sdl_minor_version == minor) && ($sdl_micro_version >= micro))) + { + return 0; + } + else + { + printf("\n*** 'sdl2-config --version' returned %d.%d.%d, but the minimum version\n", $sdl_major_version, $sdl_minor_version, $sdl_micro_version); + printf("*** of SDL required is %d.%d.%d. If sdl2-config is correct, then it is\n", major, minor, micro); + printf("*** best to upgrade to the required version.\n"); + printf("*** If sdl2-config was wrong, set the environment variable SDL_CONFIG\n"); + printf("*** to point to the correct copy of sdl2-config, and remove the file\n"); + printf("*** config.cache before re-running configure\n"); + return 1; + } +} + +],, no_sdl=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) + CFLAGS="$ac_save_CFLAGS" + CXXFLAGS="$ac_save_CXXFLAGS" + LIBS="$ac_save_LIBS" + fi + fi + if test "x$no_sdl" = x ; then + AC_MSG_RESULT(yes) + else + AC_MSG_RESULT(no) + fi + fi + if test "x$no_sdl" = x ; then + ifelse([$2], , :, [$2]) + else + if test "$SDL_CONFIG" = "no" ; then + echo "*** The sdl2-config script installed by SDL could not be found" + echo "*** If SDL was installed in PREFIX, make sure PREFIX/bin is in" + echo "*** your path, or set the SDL_CONFIG environment variable to the" + echo "*** full path to sdl2-config." + else + if test -f conf.sdltest ; then + : + else + echo "*** Could not run SDL test program, checking why..." + CFLAGS="$CFLAGS $SDL_CFLAGS" + CXXFLAGS="$CXXFLAGS $SDL_CFLAGS" + LIBS="$LIBS $SDL_LIBS" + AC_TRY_LINK([ +#include +#include "SDL.h" + +int main(int argc, char *argv[]) +{ return 0; } +#undef main +#define main K_and_R_C_main +], [ return 0; ], + [ echo "*** The test program compiled, but did not run. This usually means" + echo "*** that the run-time linker is not finding SDL or finding the wrong" + echo "*** version of SDL. If it is not finding SDL, you'll need to set your" + echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" + echo "*** to the installed location Also, make sure you have run ldconfig if that" + echo "*** is required on your system" + echo "***" + echo "*** If you have an old version installed, it is best to remove it, although" + echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"], + [ echo "*** The test program failed to compile or link. See the file config.log for the" + echo "*** exact error that occured. This usually means SDL was incorrectly installed" + echo "*** or that you have moved SDL since it was installed. In the latter case, you" + echo "*** may want to edit the sdl2-config script: $SDL_CONFIG" ]) + CFLAGS="$ac_save_CFLAGS" + CXXFLAGS="$ac_save_CXXFLAGS" + LIBS="$ac_save_LIBS" + fi + fi + SDL_CFLAGS="" + SDL_LIBS="" + ifelse([$3], , :, [$3]) + fi + AC_SUBST(SDL_CFLAGS) + AC_SUBST(SDL_LIBS) + rm -f conf.sdltest +]) +# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- +# serial 1 (pkg-config-0.24) +# +# Copyright © 2004 Scott James Remnant . +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# PKG_PROG_PKG_CONFIG([MIN-VERSION]) +# ---------------------------------- +AC_DEFUN([PKG_PROG_PKG_CONFIG], +[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) +m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) +AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) +AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) +AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=m4_default([$1], [0.9.0]) + AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + PKG_CONFIG="" + fi +fi[]dnl +])# PKG_PROG_PKG_CONFIG + +# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +# +# Check to see whether a particular set of modules exists. Similar +# to PKG_CHECK_MODULES(), but does not set variables or print errors. +# +# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +# only at the first occurence in configure.ac, so if the first place +# it's called might be skipped (such as if it is within an "if", you +# have to call PKG_CHECK_EXISTS manually +# -------------------------------------------------------------- +AC_DEFUN([PKG_CHECK_EXISTS], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +if test -n "$PKG_CONFIG" && \ + AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then + m4_default([$2], [:]) +m4_ifvaln([$3], [else + $3])dnl +fi]) + +# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) +# --------------------------------------------- +m4_define([_PKG_CONFIG], +[if test -n "$$1"; then + pkg_cv_[]$1="$$1" + elif test -n "$PKG_CONFIG"; then + PKG_CHECK_EXISTS([$3], + [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], + [pkg_failed=yes]) + else + pkg_failed=untried +fi[]dnl +])# _PKG_CONFIG + +# _PKG_SHORT_ERRORS_SUPPORTED +# ----------------------------- +AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi[]dnl +])# _PKG_SHORT_ERRORS_SUPPORTED + + +# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +# [ACTION-IF-NOT-FOUND]) +# +# +# Note that if there is a possibility the first call to +# PKG_CHECK_MODULES might not happen, you should be sure to include an +# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac +# +# +# -------------------------------------------------------------- +AC_DEFUN([PKG_CHECK_MODULES], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl +AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl + +pkg_failed=no +AC_MSG_CHECKING([for $1]) + +_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) +_PKG_CONFIG([$1][_LIBS], [libs], [$2]) + +m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS +and $1[]_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details.]) + +if test $pkg_failed = yes; then + AC_MSG_RESULT([no]) + _PKG_SHORT_ERRORS_SUPPORTED + if test $_pkg_short_errors_supported = yes; then + $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1` + else + $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD + + m4_default([$4], [AC_MSG_ERROR( +[Package requirements ($2) were not met: + +$$1_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +_PKG_TEXT])dnl + ]) +elif test $pkg_failed = untried; then + AC_MSG_RESULT([no]) + m4_default([$4], [AC_MSG_FAILURE( +[The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +_PKG_TEXT + +To get pkg-config, see .])dnl + ]) +else + $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS + $1[]_LIBS=$pkg_cv_[]$1[]_LIBS + AC_MSG_RESULT([yes]) + $3 +fi[]dnl +])# PKG_CHECK_MODULES diff --git a/visualtest/autogen.sh b/visualtest/autogen.sh new file mode 100755 index 0000000000000..939f34c0f3919 --- /dev/null +++ b/visualtest/autogen.sh @@ -0,0 +1,12 @@ +#!/bin/sh +# +# Regenerate configuration files +cp acinclude.m4 aclocal.m4 +found=false +for autoconf in autoconf autoconf259 autoconf-2.59 +do if which $autoconf >/dev/null 2>&1; then $autoconf && found=true; break; fi +done +if test x$found = xfalse; then + echo "Couldn't find autoconf, aborting" + exit 1 +fi diff --git a/visualtest/compile b/visualtest/compile new file mode 100755 index 0000000000000..cf0edba2876a1 --- /dev/null +++ b/visualtest/compile @@ -0,0 +1 @@ +/usr/share/automake-1.11/compile \ No newline at end of file diff --git a/visualtest/config.h b/visualtest/config.h new file mode 100755 index 0000000000000..2d6d5cfbc60e3 --- /dev/null +++ b/visualtest/config.h @@ -0,0 +1,23 @@ +/* config.h. Generated from config.h.in by configure. */ +/* config.h.in. Generated from configure.in by autoheader. */ + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "apoorvupreti@gmail.com" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "sdlvisualtest" + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "sdlvisualtest 0.01" + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "sdlvisualtest" + +/* Define to the home page for this package. */ +#define PACKAGE_URL "" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "0.01" + +/* Define to empty if `const' does not conform to ANSI C. */ +/* #undef const */ diff --git a/visualtest/config.h.in b/visualtest/config.h.in new file mode 100755 index 0000000000000..40b5b8a29cfc5 --- /dev/null +++ b/visualtest/config.h.in @@ -0,0 +1,22 @@ +/* config.h.in. Generated from configure.in by autoheader. */ + +/* Define to the address where bug reports for this package should be sent. */ +#undef PACKAGE_BUGREPORT + +/* Define to the full name of this package. */ +#undef PACKAGE_NAME + +/* Define to the full name and version of this package. */ +#undef PACKAGE_STRING + +/* Define to the one symbol short name of this package. */ +#undef PACKAGE_TARNAME + +/* Define to the home page for this package. */ +#undef PACKAGE_URL + +/* Define to the version of this package. */ +#undef PACKAGE_VERSION + +/* Define to empty if `const' does not conform to ANSI C. */ +#undef const diff --git a/visualtest/configs/testsprite2_blendmodes/testsprite2_blendmodes.actions b/visualtest/configs/testsprite2_blendmodes/testsprite2_blendmodes.actions new file mode 100755 index 0000000000000..ef54e86b48733 --- /dev/null +++ b/visualtest/configs/testsprite2_blendmodes/testsprite2_blendmodes.actions @@ -0,0 +1,3 @@ +00:00:03 SCREENSHOT +00:00:06 VERIFY +00:00:09 QUIT \ No newline at end of file diff --git a/visualtest/configs/testsprite2_blendmodes/testsprite2_blendmodes.config b/visualtest/configs/testsprite2_blendmodes/testsprite2_blendmodes.config new file mode 100755 index 0000000000000..0d707bcbc19b3 --- /dev/null +++ b/visualtest/configs/testsprite2_blendmodes/testsprite2_blendmodes.config @@ -0,0 +1,5 @@ +parameter-config=testsprite2_blendmodes.parameters +variator=exhaustive +sutapp=testsprite2 +timeout=00:00:15 +action-config=testsprite2_blendmodes.actions \ No newline at end of file diff --git a/visualtest/configs/testsprite2_blendmodes/testsprite2_blendmodes.parameters b/visualtest/configs/testsprite2_blendmodes/testsprite2_blendmodes.parameters new file mode 100755 index 0000000000000..a5df29c8cc2d7 --- /dev/null +++ b/visualtest/configs/testsprite2_blendmodes/testsprite2_blendmodes.parameters @@ -0,0 +1,5 @@ +# parameter name, type, value range, required, categories +--blend, enum, [none blend add mod], false, [] +--cyclecolor, boolean, [], false, [] +--cyclealpha, boolean, [], false, [] +--iterations, integer, [1000 1000], true, [] \ No newline at end of file diff --git a/visualtest/configs/testsprite2_crashtest/testsprite2_crashtest.actions b/visualtest/configs/testsprite2_crashtest/testsprite2_crashtest.actions new file mode 100755 index 0000000000000..75af9d75debff --- /dev/null +++ b/visualtest/configs/testsprite2_crashtest/testsprite2_crashtest.actions @@ -0,0 +1 @@ +00:00:02 QUIT \ No newline at end of file diff --git a/visualtest/configs/testsprite2_crashtest/testsprite2_crashtest.config b/visualtest/configs/testsprite2_crashtest/testsprite2_crashtest.config new file mode 100755 index 0000000000000..c8f07ca9f5b23 --- /dev/null +++ b/visualtest/configs/testsprite2_crashtest/testsprite2_crashtest.config @@ -0,0 +1,5 @@ +parameter-config=testsprite2_crashtest.parameters +variator=exhaustive +sutapp=testsprite2 +timeout=00:00:10 +action-config=testsprite2_crashtest.actions \ No newline at end of file diff --git a/visualtest/configs/testsprite2_crashtest/testsprite2_crashtest.parameters b/visualtest/configs/testsprite2_crashtest/testsprite2_crashtest.parameters new file mode 100755 index 0000000000000..e89ce60abe099 --- /dev/null +++ b/visualtest/configs/testsprite2_crashtest/testsprite2_crashtest.parameters @@ -0,0 +1,24 @@ +# parameter name, type, value range, required, categories +--display, integer, [1 5], false, [] +--fullscreen, boolean, [], false, [] +--fullscreen-desktop, boolean, [], false, [] +--title, enum, [vartest bartest footest], false, [] +--icon, enum, [icon.bmp], false, [] +--center, boolean, [], false, [] +--position, enum, [300,300], false, [] +--geometry, enum, [500x500], false, [] +--min-geometry, enum, [100x100 200x200], false, [] +--max-geometry, enum, [600x600 700x700], false, [] +--logical, enum, [500x500 550x450], false, [] +--scale, integer, [1 5], false, [] +--depth, integer, [1 5], false, [] +--refresh, integer, [1 5], false, [] +--vsync, boolean, [], false, [] +--noframe, boolean, [], false, [] +--resize, boolean, [], false, [] +--minimize, boolean, [], false, [] +--maximize, boolean, [], false, [] +--grab, boolean, [], false, [mouse] +--blend, enum, [none blend add mod], false, [] +--cyclecolor, boolean, [], false, [] +--cyclealpha, boolean, [], false, [] \ No newline at end of file diff --git a/visualtest/configs/testsprite2_fullscreen/testsprite2_fullscreen.actions b/visualtest/configs/testsprite2_fullscreen/testsprite2_fullscreen.actions new file mode 100755 index 0000000000000..ef54e86b48733 --- /dev/null +++ b/visualtest/configs/testsprite2_fullscreen/testsprite2_fullscreen.actions @@ -0,0 +1,3 @@ +00:00:03 SCREENSHOT +00:00:06 VERIFY +00:00:09 QUIT \ No newline at end of file diff --git a/visualtest/configs/testsprite2_fullscreen/testsprite2_fullscreen.config b/visualtest/configs/testsprite2_fullscreen/testsprite2_fullscreen.config new file mode 100755 index 0000000000000..361020ac08468 --- /dev/null +++ b/visualtest/configs/testsprite2_fullscreen/testsprite2_fullscreen.config @@ -0,0 +1,5 @@ +parameter-config=testsprite2_fullscreen.parameters +variator=exhaustive +sutapp=testsprite2 +timeout=00:00:15 +action-config=testsprite2_fullscreen.actions \ No newline at end of file diff --git a/visualtest/configs/testsprite2_fullscreen/testsprite2_fullscreen.parameters b/visualtest/configs/testsprite2_fullscreen/testsprite2_fullscreen.parameters new file mode 100755 index 0000000000000..8da19673eaf7e --- /dev/null +++ b/visualtest/configs/testsprite2_fullscreen/testsprite2_fullscreen.parameters @@ -0,0 +1,5 @@ +# parameter name, type, value range, required, categories +--blend, enum, [none blend add mod], false, [] +--fullscreen, boolean, [], false, [] +--fullscreen-desktop, boolean, [], false, [] +--iterations, integer, [1000 1000], true, [] \ No newline at end of file diff --git a/visualtest/configs/testsprite2_geometry/testsprite2_geometry.actions b/visualtest/configs/testsprite2_geometry/testsprite2_geometry.actions new file mode 100755 index 0000000000000..ef54e86b48733 --- /dev/null +++ b/visualtest/configs/testsprite2_geometry/testsprite2_geometry.actions @@ -0,0 +1,3 @@ +00:00:03 SCREENSHOT +00:00:06 VERIFY +00:00:09 QUIT \ No newline at end of file diff --git a/visualtest/configs/testsprite2_geometry/testsprite2_geometry.config b/visualtest/configs/testsprite2_geometry/testsprite2_geometry.config new file mode 100755 index 0000000000000..f3cda9ac116d7 --- /dev/null +++ b/visualtest/configs/testsprite2_geometry/testsprite2_geometry.config @@ -0,0 +1,5 @@ +parameter-config=testsprite2_geometry.parameters +variator=exhaustive +sutapp=testsprite2 +timeout=00:00:15 +action-config=testsprite2_geometry.actions \ No newline at end of file diff --git a/visualtest/configs/testsprite2_geometry/testsprite2_geometry.parameters b/visualtest/configs/testsprite2_geometry/testsprite2_geometry.parameters new file mode 100755 index 0000000000000..c1ac8ef3722bb --- /dev/null +++ b/visualtest/configs/testsprite2_geometry/testsprite2_geometry.parameters @@ -0,0 +1,5 @@ +# parameter name, type, value range, required, categories +--geometry, enum, [500x500 600x600], false, [] +--logical, enum, [300x500 550x450], false, [] +--scale, integer, [1 5], false, [] +--iterations, integer, [1000 1000], true, [] \ No newline at end of file diff --git a/visualtest/configure b/visualtest/configure new file mode 100755 index 0000000000000..4e9f2902fdccc --- /dev/null +++ b/visualtest/configure @@ -0,0 +1,5203 @@ +#! /bin/sh +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.69 for sdlvisualtest 0.01. +# +# Report bugs to . +# +# +# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. +# +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in #( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +# Use a proper internal environment variable to ensure we don't fall + # into an infinite loop, continuously re-executing ourselves. + if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then + _as_can_reexec=no; export _as_can_reexec; + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +as_fn_exit 255 + fi + # We don't want this to propagate to other subprocesses. + { _as_can_reexec=; unset _as_can_reexec;} +if test "x$CONFIG_SHELL" = x; then + as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi +" + as_required="as_fn_return () { (exit \$1); } +as_fn_success () { as_fn_return 0; } +as_fn_failure () { as_fn_return 1; } +as_fn_ret_success () { return 0; } +as_fn_ret_failure () { return 1; } + +exitcode=0 +as_fn_success || { exitcode=1; echo as_fn_success failed.; } +as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } +as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } +as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } +if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : + +else + exitcode=1; echo positional parameters were not saved. +fi +test x\$exitcode = x0 || exit 1 +test -x / || exit 1" + as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO + as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO + eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && + test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1" + if (eval "$as_required") 2>/dev/null; then : + as_have_required=yes +else + as_have_required=no +fi + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : + +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + as_found=: + case $as_dir in #( + /*) + for as_base in sh bash ksh sh5; do + # Try only shells that exist, to save several forks. + as_shell=$as_dir/$as_base + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : + CONFIG_SHELL=$as_shell as_have_required=yes + if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : + break 2 +fi +fi + done;; + esac + as_found=false +done +$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : + CONFIG_SHELL=$SHELL as_have_required=yes +fi; } +IFS=$as_save_IFS + + + if test "x$CONFIG_SHELL" != x; then : + export CONFIG_SHELL + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 +fi + + if test x$as_have_required = xno; then : + $as_echo "$0: This script requires a shell more modern than all" + $as_echo "$0: the shells that I found on your system." + if test x${ZSH_VERSION+set} = xset ; then + $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" + $as_echo "$0: be upgraded to zsh 4.3.4 or later." + else + $as_echo "$0: Please tell bug-autoconf@gnu.org and +$0: apoorvupreti@gmail.com about your system, including any +$0: error possibly output before this message. Then install +$0: a modern shell, or manually run the script under such a +$0: shell if you do have one." + fi + exit 1 +fi +fi +fi +SHELL=${CONFIG_SHELL-/bin/sh} +export SHELL +# Unset more variables known to interfere with behavior of common tools. +CLICOLOR_FORCE= GREP_OPTIONS= +unset CLICOLOR_FORCE GREP_OPTIONS + +## --------------------- ## +## M4sh Shell Functions. ## +## --------------------- ## +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + + + as_lineno_1=$LINENO as_lineno_1a=$LINENO + as_lineno_2=$LINENO as_lineno_2a=$LINENO + eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && + test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { + # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + + # If we had to re-execute with $CONFIG_SHELL, we're ensured to have + # already done that, so ensure we don't try to do so again and fall + # in an infinite loop. This has already happened in practice. + _as_can_reexec=no; export _as_can_reexec + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +test -n "$DJDIR" || exec 7<&0 &1 + +# Name of the host. +# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_clean_files= +ac_config_libobj_dir=. +LIBOBJS= +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= + +# Identity of this package. +PACKAGE_NAME='sdlvisualtest' +PACKAGE_TARNAME='sdlvisualtest' +PACKAGE_VERSION='0.01' +PACKAGE_STRING='sdlvisualtest 0.01' +PACKAGE_BUGREPORT='apoorvupreti@gmail.com' +PACKAGE_URL='' + +ac_subst_vars='LTLIBOBJS +LIBOBJS +SDL_TTF_LIB +GLLIB +CPP +XMKMF +SDL_CONFIG +SDL_LIBS +SDL_CFLAGS +PKG_CONFIG_LIBDIR +PKG_CONFIG_PATH +PKG_CONFIG +ISUNIX +ISWINDOWS +ISMACOSX +EXTRALIB +MATHLIB +EXE +OSMESA_CONFIG +OBJEXT +EXEEXT +ac_ct_CC +CPPFLAGS +LDFLAGS +CFLAGS +CC +host_os +host_vendor +host_cpu +host +build_os +build_vendor +build_cpu +build +target_alias +host_alias +build_alias +LIBS +ECHO_T +ECHO_N +ECHO_C +DEFS +mandir +localedir +libdir +psdir +pdfdir +dvidir +htmldir +infodir +docdir +oldincludedir +includedir +localstatedir +sharedstatedir +sysconfdir +datadir +datarootdir +libexecdir +sbindir +bindir +program_transform_name +prefix +exec_prefix +PACKAGE_URL +PACKAGE_BUGREPORT +PACKAGE_STRING +PACKAGE_VERSION +PACKAGE_TARNAME +PACKAGE_NAME +PATH_SEPARATOR +SHELL' +ac_subst_files='' +ac_user_opts=' +enable_option_checking +with_sdl_prefix +with_sdl_exec_prefix +enable_sdltest +with_x +' + ac_precious_vars='build_alias +host_alias +target_alias +CC +CFLAGS +LDFLAGS +LIBS +CPPFLAGS +PKG_CONFIG +PKG_CONFIG_PATH +PKG_CONFIG_LIBDIR +SDL_CFLAGS +SDL_LIBS +XMKMF +CPP' + + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +ac_unrecognized_opts= +ac_unrecognized_sep= +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +# (The list follows the same order as the GNU Coding Standards.) +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datarootdir='${prefix}/share' +datadir='${datarootdir}' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +includedir='${prefix}/include' +oldincludedir='/usr/include' +docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' +infodir='${datarootdir}/info' +htmldir='${docdir}' +dvidir='${docdir}' +pdfdir='${docdir}' +psdir='${docdir}' +libdir='${exec_prefix}/lib' +localedir='${datarootdir}/locale' +mandir='${datarootdir}/man' + +ac_prev= +ac_dashdash= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval $ac_prev=\$ac_option + ac_prev= + continue + fi + + case $ac_option in + *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *=) ac_optarg= ;; + *) ac_optarg=yes ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $ac_dashdash$ac_option in + --) + ac_dashdash=yes ;; + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=*) + datadir=$ac_optarg ;; + + -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ + | --dataroo | --dataro | --datar) + ac_prev=datarootdir ;; + -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ + | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) + datarootdir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=no ;; + + -docdir | --docdir | --docdi | --doc | --do) + ac_prev=docdir ;; + -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) + docdir=$ac_optarg ;; + + -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) + ac_prev=dvidir ;; + -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) + dvidir=$ac_optarg ;; + + -enable-* | --enable-*) + ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=\$ac_optarg ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) + ac_prev=htmldir ;; + -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ + | --ht=*) + htmldir=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localedir | --localedir | --localedi | --localed | --locale) + ac_prev=localedir ;; + -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) + localedir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst | --locals) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) + ac_prev=pdfdir ;; + -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) + pdfdir=$ac_optarg ;; + + -psdir | --psdir | --psdi | --psd | --ps) + ac_prev=psdir ;; + -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) + psdir=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=\$ac_optarg ;; + + -without-* | --without-*) + ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=no ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) as_fn_error $? "unrecognized option: \`$ac_option' +Try \`$0 --help' for more information" + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + case $ac_envvar in #( + '' | [0-9]* | *[!_$as_cr_alnum]* ) + as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; + esac + eval $ac_envvar=\$ac_optarg + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + as_fn_error $? "missing argument to $ac_option" +fi + +if test -n "$ac_unrecognized_opts"; then + case $enable_option_checking in + no) ;; + fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; + *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + esac +fi + +# Check all directory arguments for consistency. +for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ + libdir localedir mandir +do + eval ac_val=\$$ac_var + # Remove trailing slashes. + case $ac_val in + */ ) + ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` + eval $ac_var=\$ac_val;; + esac + # Be sure to have absolute directory names. + case $ac_val in + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + esac + as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + + +ac_pwd=`pwd` && test -n "$ac_pwd" && +ac_ls_di=`ls -di .` && +ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || + as_fn_error $? "working directory cannot be determined" +test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + as_fn_error $? "pwd does not report name of working directory" + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then the parent directory. + ac_confdir=`$as_dirname -- "$as_myself" || +$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_myself" : 'X\(//\)[^/]' \| \ + X"$as_myself" : 'X\(//\)$' \| \ + X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_myself" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r "$srcdir/$ac_unique_file"; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r "$srcdir/$ac_unique_file"; then + test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." + as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" +fi +ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_abs_confdir=`( + cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" + pwd)` +# When building in place, set srcdir=. +if test "$ac_abs_confdir" = "$ac_pwd"; then + srcdir=. +fi +# Remove unnecessary trailing slashes from srcdir. +# Double slashes in file names in object file debugging info +# mess up M-x gdb in Emacs. +case $srcdir in +*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; +esac +for ac_var in $ac_precious_vars; do + eval ac_env_${ac_var}_set=\${${ac_var}+set} + eval ac_env_${ac_var}_value=\$${ac_var} + eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} + eval ac_cv_env_${ac_var}_value=\$${ac_var} +done + +# +# Report the --help message. +# +if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +\`configure' configures sdlvisualtest 0.01 to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print \`checking ...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or \`..'] + +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [PREFIX] + +By default, \`make install' will install all the files in +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +an installation prefix other than \`$ac_default_prefix' using \`--prefix', +for instance \`--prefix=\$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root [DATAROOTDIR/doc/sdlvisualtest] + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] +_ACEOF + + cat <<\_ACEOF + +X features: + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR + +System types: + --build=BUILD configure for building on BUILD [guessed] + --host=HOST cross-compile to build programs to run on HOST [BUILD] +_ACEOF +fi + +if test -n "$ac_init_help"; then + case $ac_init_help in + short | recursive ) echo "Configuration of sdlvisualtest 0.01:";; + esac + cat <<\_ACEOF + +Optional Features: + --disable-option-checking ignore unrecognized --enable/--with options + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --disable-sdltest Do not try to compile and run a test SDL program + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-sdl-prefix=PFX Prefix where SDL is installed (optional) + --with-sdl-exec-prefix=PFX Exec prefix where SDL is installed (optional) + --with-x use the X Window System + +Some influential environment variables: + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + LIBS libraries to pass to the linker, e.g. -l + CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if + you have headers in a nonstandard directory + PKG_CONFIG path to pkg-config utility + PKG_CONFIG_PATH + directories to add to pkg-config's search path + PKG_CONFIG_LIBDIR + path overriding pkg-config's built-in search path + SDL_CFLAGS C compiler flags for SDL, overriding pkg-config + SDL_LIBS linker flags for SDL, overriding pkg-config + XMKMF Path to xmkmf, Makefile generator for X Window System + CPP C preprocessor + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +Report bugs to . +_ACEOF +ac_status=$? +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d "$ac_dir" || + { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || + continue + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + cd "$ac_dir" || { ac_status=$?; continue; } + # Check for guested configure. + if test -f "$ac_srcdir/configure.gnu"; then + echo && + $SHELL "$ac_srcdir/configure.gnu" --help=recursive + elif test -f "$ac_srcdir/configure"; then + echo && + $SHELL "$ac_srcdir/configure" --help=recursive + else + $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi || ac_status=$? + cd "$ac_pwd" || { ac_status=$?; break; } + done +fi + +test -n "$ac_init_help" && exit $ac_status +if $ac_init_version; then + cat <<\_ACEOF +sdlvisualtest configure 0.01 +generated by GNU Autoconf 2.69 + +Copyright (C) 2012 Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. +_ACEOF + exit +fi + +## ------------------------ ## +## Autoconf initialization. ## +## ------------------------ ## + +# ac_fn_c_try_compile LINENO +# -------------------------- +# Try to compile conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext + if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_compile + +# ac_fn_c_try_run LINENO +# ---------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes +# that executables *can* be run. +ac_fn_c_try_run () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : + ac_retval=0 +else + $as_echo "$as_me: program exited with status $ac_status" >&5 + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=$ac_status +fi + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_run + +# ac_fn_c_try_link LINENO +# ----------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest$ac_exeext + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + test -x conftest$ac_exeext + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_link + +# ac_fn_c_try_cpp LINENO +# ---------------------- +# Try to preprocess conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } > conftest.i && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_cpp +cat >config.log <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by sdlvisualtest $as_me 0.01, which was +generated by GNU Autoconf 2.69. Invocation command line was + + $ $0 $@ + +_ACEOF +exec 5>>config.log +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + $as_echo "PATH: $as_dir" + done +IFS=$as_save_IFS + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Strip out --silent because we don't want to record it for future runs. +# Also quote any args containing shell meta-characters. +# Make two passes to allow for proper duplicate-argument suppression. +ac_configure_args= +ac_configure_args0= +ac_configure_args1= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *\'*) + ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; + 2) + as_fn_append ac_configure_args1 " '$ac_arg'" + if test $ac_must_keep_next = true; then + ac_must_keep_next=false # Got value, back to normal. + else + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac + fi + as_fn_append ac_configure_args " '$ac_arg'" + ;; + esac + done +done +{ ac_configure_args0=; unset ac_configure_args0;} +{ ac_configure_args1=; unset ac_configure_args1;} + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Use '\'' to represent an apostrophe within the trap. +# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +trap 'exit_status=$? + # Save into config.log some information that might help in debugging. + { + echo + + $as_echo "## ---------------- ## +## Cache variables. ## +## ---------------- ##" + echo + # The following way of writing the cache mishandles newlines in values, +( + for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + (set) 2>&1 | + case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + sed -n \ + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( + *) + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) + echo + + $as_echo "## ----------------- ## +## Output variables. ## +## ----------------- ##" + echo + for ac_var in $ac_subst_vars + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + + if test -n "$ac_subst_files"; then + $as_echo "## ------------------- ## +## File substitutions. ## +## ------------------- ##" + echo + for ac_var in $ac_subst_files + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + fi + + if test -s confdefs.h; then + $as_echo "## ----------- ## +## confdefs.h. ## +## ----------- ##" + echo + cat confdefs.h + echo + fi + test "$ac_signal" != 0 && + $as_echo "$as_me: caught signal $ac_signal" + $as_echo "$as_me: exit $exit_status" + } >&5 + rm -f core *.core core.conftest.* && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status +' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -f -r conftest* confdefs.h + +$as_echo "/* confdefs.h */" > confdefs.h + +# Predefined preprocessor variables. + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_NAME "$PACKAGE_NAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_TARNAME "$PACKAGE_TARNAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_VERSION "$PACKAGE_VERSION" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_STRING "$PACKAGE_STRING" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_URL "$PACKAGE_URL" +_ACEOF + + +# Let the site file select an alternate cache file if it wants to. +# Prefer an explicitly selected file to automatically selected ones. +ac_site_file1=NONE +ac_site_file2=NONE +if test -n "$CONFIG_SITE"; then + # We do not want a PATH search for config.site. + case $CONFIG_SITE in #(( + -*) ac_site_file1=./$CONFIG_SITE;; + */*) ac_site_file1=$CONFIG_SITE;; + *) ac_site_file1=./$CONFIG_SITE;; + esac +elif test "x$prefix" != xNONE; then + ac_site_file1=$prefix/share/config.site + ac_site_file2=$prefix/etc/config.site +else + ac_site_file1=$ac_default_prefix/share/config.site + ac_site_file2=$ac_default_prefix/etc/config.site +fi +for ac_site_file in "$ac_site_file1" "$ac_site_file2" +do + test "x$ac_site_file" = xNONE && continue + if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 +$as_echo "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" \ + || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "failed to load site script $ac_site_file +See \`config.log' for more details" "$LINENO" 5; } + fi +done + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special files + # actually), so we avoid doing that. DJGPP emulates it as a regular file. + if test /dev/null != "$cache_file" && test -f "$cache_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 +$as_echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; + esac + fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +$as_echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in $ac_precious_vars; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + # differences in whitespace do not lead to failure. + ac_old_val_w=`echo x $ac_old_val` + ac_new_val_w=`echo x $ac_new_val` + if test "$ac_old_val_w" != "$ac_new_val_w"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 +$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + ac_cache_corrupted=: + else + { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + eval $ac_var=\$ac_old_val + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 +$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 +$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) as_fn_append ac_configure_args " '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 +$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} + as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 +fi +## -------------------- ## +## Main body of script. ## +## -------------------- ## + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + +ac_aux_dir= +for ac_dir in $srcdir/../build-scripts; do + if test -f "$ac_dir/install-sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f "$ac_dir/install.sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + elif test -f "$ac_dir/shtool"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi +done +if test -z "$ac_aux_dir"; then + as_fn_error $? "cannot find install-sh, install.sh, or shtool in $srcdir/../build-scripts" "$LINENO" 5 +fi + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. +ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. +ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. + + +# Make sure we can run config.sub. +$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || + as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 +$as_echo_n "checking build system type... " >&6; } +if ${ac_cv_build+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` +test "x$ac_build_alias" = x && + as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 +ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 +$as_echo "$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; +esac +build=$ac_cv_build +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 +$as_echo_n "checking host system type... " >&6; } +if ${ac_cv_host+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build +else + ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 +$as_echo "$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; +esac +host=$ac_cv_host +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5; } + +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" +# Try to create an executable without -o first, disregard a.out. +# It will help us diagnose broken compilers, and finding out an intuition +# of exeext. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +$as_echo_n "checking whether the C compiler works... " >&6; } +ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` + +# The possible output files: +ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" + +ac_rmfiles= +for ac_file in $ac_files +do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + * ) ac_rmfiles="$ac_rmfiles $ac_file";; + esac +done +rm -f $ac_rmfiles + +if { { ac_try="$ac_link_default" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link_default") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. +# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' +# in a Makefile. We should not override ac_cv_exeext if it was cached, +# so that the user can short-circuit this test for compilers unknown to +# Autoconf. +for ac_file in $ac_files '' +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + then :; else + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + fi + # We set ac_cv_exeext here because the later test for it is not + # safe: cross compilers may not add the suffix if given an `-o' + # argument, so we may need to know it at that point already. + # Even if this section looks crufty: it has the advantage of + # actually working. + break;; + * ) + break;; + esac +done +test "$ac_cv_exeext" = no && ac_cv_exeext= + +else + ac_file='' +fi +if test -z "$ac_file"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "C compiler cannot create executables +See \`config.log' for more details" "$LINENO" 5; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +$as_echo_n "checking for C compiler default output file name... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +$as_echo "$ac_file" >&6; } +ac_exeext=$ac_cv_exeext + +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 +$as_echo_n "checking for suffix of executables... " >&6; } +if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # If both `conftest.exe' and `conftest' are `present' (well, observable) +# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will +# work properly (i.e., refer to `conftest.exe'), while it won't with +# `rm'. +for ac_file in conftest.exe conftest conftest.*; do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + break;; + * ) break;; + esac +done +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest conftest$ac_cv_exeext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +$as_echo "$ac_cv_exeext" >&6; } + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +FILE *f = fopen ("conftest.out", "w"); + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +ac_clean_files="$ac_clean_files conftest.out" +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +$as_echo_n "checking whether we are cross compiling... " >&6; } +if test "$cross_compiling" != yes; then + { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if { ac_try='./conftest$ac_cv_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details" "$LINENO" 5; } + fi + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +$as_echo "$cross_compiling" >&6; } + +rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +$as_echo_n "checking for suffix of object files... " >&6; } +if ${ac_cv_objext+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of object files: cannot compile +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +$as_echo "$ac_cv_objext" >&6; } +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } +if ${ac_cv_c_compiler_gnu+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } +if ${ac_cv_prog_cc_g+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +else + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +$as_echo "$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +if ${ac_cv_prog_cc_c89+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +struct stat; +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_c89=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; +esac +if test "x$ac_cv_prog_cc_c89" != xno; then : + +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 +$as_echo_n "checking for an ANSI C-conforming const... " >&6; } +if ${ac_cv_c_const+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + +#ifndef __cplusplus + /* Ultrix mips cc rejects this sort of thing. */ + typedef int charset[2]; + const charset cs = { 0, 0 }; + /* SunOS 4.1.1 cc rejects this. */ + char const *const *pcpcc; + char **ppc; + /* NEC SVR4.0.2 mips cc rejects this. */ + struct point {int x, y;}; + static struct point const zero = {0,0}; + /* AIX XL C 1.02.0.0 rejects this. + It does not let you subtract one const X* pointer from another in + an arm of an if-expression whose if-part is not a constant + expression */ + const char *g = "string"; + pcpcc = &g + (g ? g-g : 0); + /* HPUX 7.0 cc rejects these. */ + ++pcpcc; + ppc = (char**) pcpcc; + pcpcc = (char const *const *) ppc; + { /* SCO 3.2v4 cc rejects this sort of thing. */ + char tx; + char *t = &tx; + char const *s = 0 ? (char *) 0 : (char const *) 0; + + *t++ = 0; + if (s) return 0; + } + { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ + int x[] = {25, 17}; + const int *foo = &x[0]; + ++foo; + } + { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ + typedef const int *iptr; + iptr p = 0; + ++p; + } + { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying + "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ + struct s { int j; const int *ap[3]; } bx; + struct s *b = &bx; b->j = 5; + } + { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ + const int foo = 10; + if (!foo) return 0; + } + return !cs[0] && !zero.x; +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_const=yes +else + ac_cv_c_const=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 +$as_echo "$ac_cv_c_const" >&6; } +if test $ac_cv_c_const = no; then + +$as_echo "#define const /**/" >>confdefs.h + +fi + + +ISUNIX="false" +ISWINDOWS="false" +ISMACOSX="false" + +case "$host" in + *-*-cygwin* | *-*-mingw32*) + ISWINDOWS="true" + EXE=".exe" + MATHLIB="" + EXTRALIB="-lshlwapi" + SYS_GL_LIBS="-lopengl32" + ;; + *-*-beos* | *-*-haiku*) + EXE="" + MATHLIB="" + EXTRALIB="" + SYS_GL_LIBS="-lGL" + ;; + *-*-darwin* ) + ISMACOSX="true" + EXE="" + MATHLIB="" + EXTRALIB="" + + ;; + *-*-aix*) + ISUNIX="true" + EXE="" + if test x$ac_cv_c_compiler_gnu = xyes; then + CFLAGS="-mthreads" + fi + MATHLIB="" + EXTRALIB="" + SYS_GL_LIBS="" + ;; + *-*-mint*) + EXE="" + MATHLIB="" + EXTRALIB="" + # Extract the first word of "osmesa-config", so it can be a program name with args. +set dummy osmesa-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_OSMESA_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $OSMESA_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_OSMESA_CONFIG="$OSMESA_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_OSMESA_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_OSMESA_CONFIG" && ac_cv_path_OSMESA_CONFIG="no" + ;; +esac +fi +OSMESA_CONFIG=$ac_cv_path_OSMESA_CONFIG +if test -n "$OSMESA_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OSMESA_CONFIG" >&5 +$as_echo "$OSMESA_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + if test "x$OSMESA_CONFIG" = "xyes"; then + OSMESA_CFLAGS=`$OSMESA_CONFIG --cflags` + OSMESA_LIBS=`$OSMESA_CONFIG --libs` + CFLAGS="$CFLAGS $OSMESA_CFLAGS" + SYS_GL_LIBS="$OSMESA_LIBS" + else + SYS_GL_LIBS="-lOSMesa" + fi + ;; + *-*-qnx*) + EXE="" + MATHLIB="" + EXTRALIB="" + SYS_GL_LIBS="-lGLES_CM" + ;; + *) + ISUNIX="true" + EXE="" + MATHLIB="-lm" + EXTRALIB="" + SYS_GL_LIBS="-lGL" + ;; +esac + + + + + + + +SDL_VERSION=2.0.0 + + + + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG + fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi + +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=0.9.0 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi +fi + +# Check whether --with-sdl-prefix was given. +if test "${with_sdl_prefix+set}" = set; then : + withval=$with_sdl_prefix; sdl_prefix="$withval" +else + sdl_prefix="" +fi + + +# Check whether --with-sdl-exec-prefix was given. +if test "${with_sdl_exec_prefix+set}" = set; then : + withval=$with_sdl_exec_prefix; sdl_exec_prefix="$withval" +else + sdl_exec_prefix="" +fi + +# Check whether --enable-sdltest was given. +if test "${enable_sdltest+set}" = set; then : + enableval=$enable_sdltest; +else + enable_sdltest=yes +fi + + + min_sdl_version=$SDL_VERSION + + if test "x$sdl_prefix$sdl_exec_prefix" = x ; then + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SDL" >&5 +$as_echo_n "checking for SDL... " >&6; } + +if test -n "$SDL_CFLAGS"; then + pkg_cv_SDL_CFLAGS="$SDL_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sdl2 >= \$min_sdl_version\""; } >&5 + ($PKG_CONFIG --exists --print-errors "sdl2 >= $min_sdl_version") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SDL_CFLAGS=`$PKG_CONFIG --cflags "sdl2 >= $min_sdl_version" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$SDL_LIBS"; then + pkg_cv_SDL_LIBS="$SDL_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sdl2 >= \$min_sdl_version\""; } >&5 + ($PKG_CONFIG --exists --print-errors "sdl2 >= $min_sdl_version") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SDL_LIBS=`$PKG_CONFIG --libs "sdl2 >= $min_sdl_version" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + SDL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "sdl2 >= $min_sdl_version" 2>&1` + else + SDL_PKG_ERRORS=`$PKG_CONFIG --print-errors "sdl2 >= $min_sdl_version" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$SDL_PKG_ERRORS" >&5 + + sdl_pc=no +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + sdl_pc=no +else + SDL_CFLAGS=$pkg_cv_SDL_CFLAGS + SDL_LIBS=$pkg_cv_SDL_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + sdl_pc=yes +fi + else + sdl_pc=no + if test x$sdl_exec_prefix != x ; then + sdl_config_args="$sdl_config_args --exec-prefix=$sdl_exec_prefix" + if test x${SDL_CONFIG+set} != xset ; then + SDL_CONFIG=$sdl_exec_prefix/bin/sdl2-config + fi + fi + if test x$sdl_prefix != x ; then + sdl_config_args="$sdl_config_args --prefix=$sdl_prefix" + if test x${SDL_CONFIG+set} != xset ; then + SDL_CONFIG=$sdl_prefix/bin/sdl2-config + fi + fi + fi + + if test "x$sdl_pc" = xyes ; then + no_sdl="" + SDL_CONFIG="pkg-config sdl2" + else + as_save_PATH="$PATH" + if test "x$prefix" != xNONE && test "$cross_compiling" != yes; then + PATH="$prefix/bin:$prefix/usr/bin:$PATH" + fi + # Extract the first word of "sdl2-config", so it can be a program name with args. +set dummy sdl2-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_SDL_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $SDL_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_SDL_CONFIG="$SDL_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_SDL_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_SDL_CONFIG" && ac_cv_path_SDL_CONFIG="no" + ;; +esac +fi +SDL_CONFIG=$ac_cv_path_SDL_CONFIG +if test -n "$SDL_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SDL_CONFIG" >&5 +$as_echo "$SDL_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + PATH="$as_save_PATH" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SDL - version >= $min_sdl_version" >&5 +$as_echo_n "checking for SDL - version >= $min_sdl_version... " >&6; } + no_sdl="" + + if test "$SDL_CONFIG" = "no" ; then + no_sdl=yes + else + SDL_CFLAGS=`$SDL_CONFIG $sdl_config_args --cflags` + SDL_LIBS=`$SDL_CONFIG $sdl_config_args --libs` + + sdl_major_version=`$SDL_CONFIG $sdl_config_args --version | \ + sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'` + sdl_minor_version=`$SDL_CONFIG $sdl_config_args --version | \ + sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'` + sdl_micro_version=`$SDL_CONFIG $sdl_config_args --version | \ + sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'` + if test "x$enable_sdltest" = "xyes" ; then + ac_save_CFLAGS="$CFLAGS" + ac_save_CXXFLAGS="$CXXFLAGS" + ac_save_LIBS="$LIBS" + CFLAGS="$CFLAGS $SDL_CFLAGS" + CXXFLAGS="$CXXFLAGS $SDL_CFLAGS" + LIBS="$LIBS $SDL_LIBS" + rm -f conf.sdltest + if test "$cross_compiling" = yes; then : + echo $ac_n "cross compiling; assumed OK... $ac_c" +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +#include "SDL.h" + +char* +my_strdup (char *str) +{ + char *new_str; + + if (str) + { + new_str = (char *)malloc ((strlen (str) + 1) * sizeof(char)); + strcpy (new_str, str); + } + else + new_str = NULL; + + return new_str; +} + +int main (int argc, char *argv[]) +{ + int major, minor, micro; + char *tmp_version; + + /* This hangs on some systems (?) + system ("touch conf.sdltest"); + */ + { FILE *fp = fopen("conf.sdltest", "a"); if ( fp ) fclose(fp); } + + /* HP/UX 9 (%@#!) writes to sscanf strings */ + tmp_version = my_strdup("$min_sdl_version"); + if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { + printf("%s, bad version string\n", "$min_sdl_version"); + exit(1); + } + + if (($sdl_major_version > major) || + (($sdl_major_version == major) && ($sdl_minor_version > minor)) || + (($sdl_major_version == major) && ($sdl_minor_version == minor) && ($sdl_micro_version >= micro))) + { + return 0; + } + else + { + printf("\n*** 'sdl2-config --version' returned %d.%d.%d, but the minimum version\n", $sdl_major_version, $sdl_minor_version, $sdl_micro_version); + printf("*** of SDL required is %d.%d.%d. If sdl2-config is correct, then it is\n", major, minor, micro); + printf("*** best to upgrade to the required version.\n"); + printf("*** If sdl2-config was wrong, set the environment variable SDL_CONFIG\n"); + printf("*** to point to the correct copy of sdl2-config, and remove the file\n"); + printf("*** config.cache before re-running configure\n"); + return 1; + } +} + + +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + +else + no_sdl=yes +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + CFLAGS="$ac_save_CFLAGS" + CXXFLAGS="$ac_save_CXXFLAGS" + LIBS="$ac_save_LIBS" + fi + fi + if test "x$no_sdl" = x ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi + fi + if test "x$no_sdl" = x ; then + : + else + if test "$SDL_CONFIG" = "no" ; then + echo "*** The sdl2-config script installed by SDL could not be found" + echo "*** If SDL was installed in PREFIX, make sure PREFIX/bin is in" + echo "*** your path, or set the SDL_CONFIG environment variable to the" + echo "*** full path to sdl2-config." + else + if test -f conf.sdltest ; then + : + else + echo "*** Could not run SDL test program, checking why..." + CFLAGS="$CFLAGS $SDL_CFLAGS" + CXXFLAGS="$CXXFLAGS $SDL_CFLAGS" + LIBS="$LIBS $SDL_LIBS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include "SDL.h" + +int main(int argc, char *argv[]) +{ return 0; } +#undef main +#define main K_and_R_C_main + +int +main () +{ + return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + echo "*** The test program compiled, but did not run. This usually means" + echo "*** that the run-time linker is not finding SDL or finding the wrong" + echo "*** version of SDL. If it is not finding SDL, you'll need to set your" + echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" + echo "*** to the installed location Also, make sure you have run ldconfig if that" + echo "*** is required on your system" + echo "***" + echo "*** If you have an old version installed, it is best to remove it, although" + echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" +else + echo "*** The test program failed to compile or link. See the file config.log for the" + echo "*** exact error that occured. This usually means SDL was incorrectly installed" + echo "*** or that you have moved SDL since it was installed. In the latter case, you" + echo "*** may want to edit the sdl2-config script: $SDL_CONFIG" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$ac_save_CFLAGS" + CXXFLAGS="$ac_save_CXXFLAGS" + LIBS="$ac_save_LIBS" + fi + fi + SDL_CFLAGS="" + SDL_LIBS="" + as_fn_error $? "*** SDL version $SDL_VERSION not found!" "$LINENO" 5 + + fi + + + rm -f conf.sdltest + +CFLAGS="$CFLAGS $SDL_CFLAGS" +LIBS="$LIBS -lSDL2_test $SDL_LIBS $EXTRALIB" + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +$as_echo_n "checking how to run the C preprocessor... " >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if ${ac_cv_prog_CPP+:} false; then : + $as_echo_n "(cached) " >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +$as_echo "$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for X" >&5 +$as_echo_n "checking for X... " >&6; } + + +# Check whether --with-x was given. +if test "${with_x+set}" = set; then : + withval=$with_x; +fi + +# $have_x is `yes', `no', `disabled', or empty when we do not yet know. +if test "x$with_x" = xno; then + # The user explicitly disabled X. + have_x=disabled +else + case $x_includes,$x_libraries in #( + *\'*) as_fn_error $? "cannot use X directory names containing '" "$LINENO" 5;; #( + *,NONE | NONE,*) if ${ac_cv_have_x+:} false; then : + $as_echo_n "(cached) " >&6 +else + # One or both of the vars are not set, and there is no cached value. +ac_x_includes=no ac_x_libraries=no +rm -f -r conftest.dir +if mkdir conftest.dir; then + cd conftest.dir + cat >Imakefile <<'_ACEOF' +incroot: + @echo incroot='${INCROOT}' +usrlibdir: + @echo usrlibdir='${USRLIBDIR}' +libdir: + @echo libdir='${LIBDIR}' +_ACEOF + if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then + # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. + for ac_var in incroot usrlibdir libdir; do + eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`" + done + # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR. + for ac_extension in a so sl dylib la dll; do + if test ! -f "$ac_im_usrlibdir/libX11.$ac_extension" && + test -f "$ac_im_libdir/libX11.$ac_extension"; then + ac_im_usrlibdir=$ac_im_libdir; break + fi + done + # Screen out bogus values from the imake configuration. They are + # bogus both because they are the default anyway, and because + # using them would break gcc on systems where it needs fixed includes. + case $ac_im_incroot in + /usr/include) ac_x_includes= ;; + *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;; + esac + case $ac_im_usrlibdir in + /usr/lib | /usr/lib64 | /lib | /lib64) ;; + *) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;; + esac + fi + cd .. + rm -f -r conftest.dir +fi + +# Standard set of common directories for X headers. +# Check X11 before X11Rn because it is often a symlink to the current release. +ac_x_header_dirs=' +/usr/X11/include +/usr/X11R7/include +/usr/X11R6/include +/usr/X11R5/include +/usr/X11R4/include + +/usr/include/X11 +/usr/include/X11R7 +/usr/include/X11R6 +/usr/include/X11R5 +/usr/include/X11R4 + +/usr/local/X11/include +/usr/local/X11R7/include +/usr/local/X11R6/include +/usr/local/X11R5/include +/usr/local/X11R4/include + +/usr/local/include/X11 +/usr/local/include/X11R7 +/usr/local/include/X11R6 +/usr/local/include/X11R5 +/usr/local/include/X11R4 + +/usr/X386/include +/usr/x386/include +/usr/XFree86/include/X11 + +/usr/include +/usr/local/include +/usr/unsupported/include +/usr/athena/include +/usr/local/x11r5/include +/usr/lpp/Xamples/include + +/usr/openwin/include +/usr/openwin/share/include' + +if test "$ac_x_includes" = no; then + # Guess where to find include files, by looking for Xlib.h. + # First, try using that file with no special directory specified. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # We can compile using X headers with no special include directory. +ac_x_includes= +else + for ac_dir in $ac_x_header_dirs; do + if test -r "$ac_dir/X11/Xlib.h"; then + ac_x_includes=$ac_dir + break + fi +done +fi +rm -f conftest.err conftest.i conftest.$ac_ext +fi # $ac_x_includes = no + +if test "$ac_x_libraries" = no; then + # Check for the libraries. + # See if we find them without any special options. + # Don't add to $LIBS permanently. + ac_save_LIBS=$LIBS + LIBS="-lX11 $LIBS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +XrmInitialize () + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + LIBS=$ac_save_LIBS +# We can link X programs with no special library path. +ac_x_libraries= +else + LIBS=$ac_save_LIBS +for ac_dir in `$as_echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g` +do + # Don't even attempt the hair of trying to link an X program! + for ac_extension in a so sl dylib la dll; do + if test -r "$ac_dir/libX11.$ac_extension"; then + ac_x_libraries=$ac_dir + break 2 + fi + done +done +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi # $ac_x_libraries = no + +case $ac_x_includes,$ac_x_libraries in #( + no,* | *,no | *\'*) + # Didn't find X, or a directory has "'" in its name. + ac_cv_have_x="have_x=no";; #( + *) + # Record where we found X for the cache. + ac_cv_have_x="have_x=yes\ + ac_x_includes='$ac_x_includes'\ + ac_x_libraries='$ac_x_libraries'" +esac +fi +;; #( + *) have_x=yes;; + esac + eval "$ac_cv_have_x" +fi # $with_x != no + +if test "$have_x" != yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_x" >&5 +$as_echo "$have_x" >&6; } + no_x=yes +else + # If each of the values was on the command line, it overrides each guess. + test "x$x_includes" = xNONE && x_includes=$ac_x_includes + test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries + # Update the cache value to reflect the command line values. + ac_cv_have_x="have_x=yes\ + ac_x_includes='$x_includes'\ + ac_x_libraries='$x_libraries'" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: libraries $x_libraries, headers $x_includes" >&5 +$as_echo "libraries $x_libraries, headers $x_includes" >&6; } +fi + +if test x$have_x = xyes; then + if test x$ac_x_includes = xno || test x$ac_x_includes = x; then + : + else + CFLAGS="$CFLAGS -I$ac_x_includes" + fi + if test x$ac_x_libraries = xno || test x$ac_x_libraries = x; then + : + else + XPATH="-L$ac_x_libraries" + fi +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for OpenGL support" >&5 +$as_echo_n "checking for OpenGL support... " >&6; } +have_opengl=no +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include "SDL_opengl.h" + +int +main () +{ + + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +have_opengl=yes + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_opengl" >&5 +$as_echo "$have_opengl" >&6; } + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for OpenGL ES support" >&5 +$as_echo_n "checking for OpenGL ES support... " >&6; } +have_opengles=no +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #if defined (__IPHONEOS__) + #include + #else + #include + #endif /* __QNXNTO__ */ + +int +main () +{ + + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +have_opengles=yes + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_opengles" >&5 +$as_echo "$have_opengles" >&6; } + +GLLIB="" +if test x$have_opengles = xyes; then + CFLAGS="$CFLAGS -DHAVE_OPENGLES" + GLLIB="$XPATH -lGLESv1_CM" +elif test x$have_opengl = xyes; then + CFLAGS="$CFLAGS -DHAVE_OPENGL" + GLLIB="$XPATH $SYS_GL_LIBS" +else + GLLIB="" +fi + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for TTF_Init in -lSDL2_ttf" >&5 +$as_echo_n "checking for TTF_Init in -lSDL2_ttf... " >&6; } +if ${ac_cv_lib_SDL2_ttf_TTF_Init+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lSDL2_ttf $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char TTF_Init (); +int +main () +{ +return TTF_Init (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_SDL2_ttf_TTF_Init=yes +else + ac_cv_lib_SDL2_ttf_TTF_Init=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_SDL2_ttf_TTF_Init" >&5 +$as_echo "$ac_cv_lib_SDL2_ttf_TTF_Init" >&6; } +if test "x$ac_cv_lib_SDL2_ttf_TTF_Init" = xyes; then : + have_SDL_ttf=yes +fi + +if test x$have_SDL_ttf = xyes; then + CFLAGS="$CFLAGS -DHAVE_SDL_TTF" + SDL_TTF_LIB="-lSDL2_ttf" +fi + + +ac_config_headers="$ac_config_headers config.h" + +ac_config_files="$ac_config_files Makefile" + +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes: double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \. + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + if test "x$cache_file" != "x/dev/null"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +$as_echo "$as_me: updating cache $cache_file" >&6;} + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi + else + { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +DEFS=-DHAVE_CONFIG_H + +ac_libobjs= +ac_ltlibobjs= +U= +for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' + ac_i=`$as_echo "$ac_i" | sed "$ac_script"` + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" + as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' +done +LIBOBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + + +: "${CONFIG_STATUS=./config.status}" +ac_write_fail=0 +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 +$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} +as_write_fail=0 +cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false + +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in #( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +exec 6>&1 +## ----------------------------------- ## +## Main body of $CONFIG_STATUS script. ## +## ----------------------------------- ## +_ASEOF +test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# Save the log message, to keep $0 and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. +ac_log=" +This file was extended by sdlvisualtest $as_me 0.01, which was +generated by GNU Autoconf 2.69. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + +_ACEOF + +case $ac_config_files in *" +"*) set x $ac_config_files; shift; ac_config_files=$*;; +esac + +case $ac_config_headers in *" +"*) set x $ac_config_headers; shift; ac_config_headers=$*;; +esac + + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# Files that config.status was made for. +config_files="$ac_config_files" +config_headers="$ac_config_headers" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +ac_cs_usage="\ +\`$as_me' instantiates files and other configuration actions +from templates according to the current configuration. Unless the files +and actions are specified as TAGs, all are instantiated by default. + +Usage: $0 [OPTION]... [TAG]... + + -h, --help print this help, then exit + -V, --version print version number and configuration settings, then exit + --config print configuration, then exit + -q, --quiet, --silent + do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE + +Configuration files: +$config_files + +Configuration headers: +$config_headers + +Report bugs to ." + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" +ac_cs_version="\\ +sdlvisualtest config.status 0.01 +configured by $0, generated by GNU Autoconf 2.69, + with options \\"\$ac_cs_config\\" + +Copyright (C) 2012 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." + +ac_pwd='$ac_pwd' +srcdir='$srcdir' +test -n "\$AWK" || AWK=awk +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# The default lists apply if the user does not specify any file. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=?*) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` + ac_shift=: + ;; + --*=) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg= + ac_shift=: + ;; + *) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + esac + + case $ac_option in + # Handling of the options. + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + $as_echo "$ac_cs_version"; exit ;; + --config | --confi | --conf | --con | --co | --c ) + $as_echo "$ac_cs_config"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + '') as_fn_error $? "missing file argument" ;; + esac + as_fn_append CONFIG_FILES " '$ac_optarg'" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append CONFIG_HEADERS " '$ac_optarg'" + ac_need_defaults=false;; + --he | --h) + # Conflict between --help and --header + as_fn_error $? "ambiguous option: \`$1' +Try \`$0 --help' for more information.";; + --help | --hel | -h ) + $as_echo "$ac_cs_usage"; exit ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) as_fn_error $? "unrecognized option: \`$1' +Try \`$0 --help' for more information." ;; + + *) as_fn_append ac_config_targets " $1" + ac_need_defaults=false ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +if \$ac_cs_recheck; then + set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + shift + \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 + CONFIG_SHELL='$SHELL' + export CONFIG_SHELL + exec "\$@" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX + $as_echo "$ac_log" +} >&5 + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + +# Handling of arguments. +for ac_config_target in $ac_config_targets +do + case $ac_config_target in + "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; + esac +done + + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files + test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason against having it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Hook for its removal unless debugging. +# Note that there is a small window in which the directory will not be cleaned: +# after its creation but before its name has been assigned to `$tmp'. +$debug || +{ + tmp= ac_tmp= + trap 'exit_status=$? + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status +' 0 + trap 'as_fn_exit 1' 1 2 13 15 +} +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp + +# Set up the scripts for CONFIG_FILES section. +# No need to generate them if there are no CONFIG_FILES. +# This happens for instance with `./config.status config.h'. +if test -n "$CONFIG_FILES"; then + + +ac_cr=`echo X | tr X '\015'` +# On cygwin, bash can eat \r inside `` if the user requested igncr. +# But we know of no other shell where ac_cr would be empty at this +# point, so we can use a bashism as a fallback. +if test "x$ac_cr" = x; then + eval ac_cr=\$\'\\r\' +fi +ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` +if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then + ac_cs_awk_cr='\\r' +else + ac_cs_awk_cr=$ac_cr +fi + +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && +_ACEOF + + +{ + echo "cat >conf$$subs.awk <<_ACEOF" && + echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && + echo "_ACEOF" +} >conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 +ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + . ./conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + + ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` + if test $ac_delim_n = $ac_delim_num; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done +rm -f conf$$subs.sh + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && +_ACEOF +sed -n ' +h +s/^/S["/; s/!.*/"]=/ +p +g +s/^[^!]*!// +:repl +t repl +s/'"$ac_delim"'$// +t delim +:nl +h +s/\(.\{148\}\)..*/\1/ +t more1 +s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ +p +n +b repl +:more1 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t nl +:delim +h +s/\(.\{148\}\)..*/\1/ +t more2 +s/["\\]/\\&/g; s/^/"/; s/$/"/ +p +b +:more2 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t delim +' >$CONFIG_STATUS || ac_write_fail=1 +rm -f conf$$subs.awk +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +_ACAWK +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && + for (key in S) S_is_set[key] = 1 + FS = "" + +} +{ + line = $ 0 + nfields = split(line, field, "@") + substed = 0 + len = length(field[1]) + for (i = 2; i < nfields; i++) { + key = field[i] + keylen = length(key) + if (S_is_set[key]) { + value = S[key] + line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) + len += length(value) + length(field[++i]) + substed = 1 + } else + len += 1 + keylen + } + + print line +} + +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then + sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" +else + cat +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ + || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 +_ACEOF + +# VPATH may cause trouble with some makes, so we remove sole $(srcdir), +# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ +h +s/// +s/^/:/ +s/[ ]*$/:/ +s/:\$(srcdir):/:/g +s/:\${srcdir}:/:/g +s/:@srcdir@:/:/g +s/^:*// +s/:*$// +x +s/\(=[ ]*\).*/\1/ +G +s/\n// +s/^[^=]*=[ ]*$// +}' +fi + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +fi # test -n "$CONFIG_FILES" + +# Set up the scripts for CONFIG_HEADERS section. +# No need to generate them if there are no CONFIG_HEADERS. +# This happens for instance with `./config.status Makefile'. +if test -n "$CONFIG_HEADERS"; then +cat >"$ac_tmp/defines.awk" <<\_ACAWK || +BEGIN { +_ACEOF + +# Transform confdefs.h into an awk script `defines.awk', embedded as +# here-document in config.status, that substitutes the proper values into +# config.h.in to produce config.h. + +# Create a delimiter string that does not exist in confdefs.h, to ease +# handling of long lines. +ac_delim='%!_!# ' +for ac_last_try in false false :; do + ac_tt=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_tt"; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +# For the awk script, D is an array of macro values keyed by name, +# likewise P contains macro parameters if any. Preserve backslash +# newline sequences. + +ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* +sed -n ' +s/.\{148\}/&'"$ac_delim"'/g +t rset +:rset +s/^[ ]*#[ ]*define[ ][ ]*/ / +t def +d +:def +s/\\$// +t bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3"/p +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p +d +:bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3\\\\\\n"\\/p +t cont +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p +t cont +d +:cont +n +s/.\{148\}/&'"$ac_delim"'/g +t clear +:clear +s/\\$// +t bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/"/p +d +:bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p +b cont +' >$CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + for (key in D) D_is_set[key] = 1 + FS = "" +} +/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { + line = \$ 0 + split(line, arg, " ") + if (arg[1] == "#") { + defundef = arg[2] + mac1 = arg[3] + } else { + defundef = substr(arg[1], 2) + mac1 = arg[2] + } + split(mac1, mac2, "(") #) + macro = mac2[1] + prefix = substr(line, 1, index(line, defundef) - 1) + if (D_is_set[macro]) { + # Preserve the white space surrounding the "#". + print prefix "define", macro P[macro] D[macro] + next + } else { + # Replace #undef with comments. This is necessary, for example, + # in the case of _POSIX_SOURCE, which is predefined and required + # on some systems where configure will not decide to define it. + if (defundef == "undef") { + print "/*", prefix defundef, macro, "*/" + next + } + } +} +{ print } +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 +fi # test -n "$CONFIG_HEADERS" + + +eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS " +shift +for ac_tag +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$ac_tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; + esac + case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + as_fn_append ac_file_inputs " '$ac_f'" + done + + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input='Generated from '` + $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + `' by configure.' + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +$as_echo "$as_me: creating $ac_file" >&6;} + fi + # Neutralize special characters interpreted by sed in replacement strings. + case $configure_input in #( + *\&* | *\|* | *\\* ) + ac_sed_conf_input=`$as_echo "$configure_input" | + sed 's/[\\\\&|]/\\\\&/g'`;; #( + *) ac_sed_conf_input=$configure_input;; + esac + + case $ac_tag in + *:-:* | *:-) cat >"$ac_tmp/stdin" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; + esac + ;; + esac + + ac_dir=`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir="$ac_dir"; as_fn_mkdir_p + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + case $ac_mode in + :F) + # + # CONFIG_FILE + # + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= +ac_sed_dataroot=' +/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p' +case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g + s&@infodir@&$infodir&g + s&@localedir@&$localedir&g + s&@mandir@&$mandir&g + s&\\\${datarootdir}&$datarootdir&g' ;; +esac +_ACEOF + +# Neutralize VPATH when `$srcdir' = `.'. +# Shell code in configure.ac might set extrasub. +# FIXME: do we really want to maintain this feature? +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_sed_extra="$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s|@configure_input@|$ac_sed_conf_input|;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@top_build_prefix@&$ac_top_build_prefix&;t t +s&@srcdir@&$ac_srcdir&;t t +s&@abs_srcdir@&$ac_abs_srcdir&;t t +s&@top_srcdir@&$ac_top_srcdir&;t t +s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +s&@builddir@&$ac_builddir&;t t +s&@abs_builddir@&$ac_abs_builddir&;t t +s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +$ac_datarootdir_hack +" +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&5 +$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&2;} + + rm -f "$ac_tmp/stdin" + case $ac_file in + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; + esac \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + ;; + :H) + # + # CONFIG_HEADER + # + if test x"$ac_file" != x-; then + { + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" + } >"$ac_tmp/config.h" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 +$as_echo "$as_me: $ac_file is unchanged" >&6;} + else + rm -f "$ac_file" + mv "$ac_tmp/config.h" "$ac_file" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + fi + else + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ + || as_fn_error $? "could not create -" "$LINENO" 5 + fi + ;; + + + esac + +done # for ac_tag + + +as_fn_exit 0 +_ACEOF +ac_clean_files=$ac_clean_files_save + +test $ac_write_fail = 0 || + as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || as_fn_exit 1 +fi +if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} +fi + diff --git a/visualtest/configure.in b/visualtest/configure.in new file mode 100755 index 0000000000000..8815869172611 --- /dev/null +++ b/visualtest/configure.in @@ -0,0 +1,166 @@ +dnl Process this file with autoconf to produce a configure script. +AC_INIT([sdlvisualtest], [0.01], [apoorvupreti@gmail.com]) + +dnl Detect the canonical build and host environments +AC_CONFIG_AUX_DIRS($srcdir/../build-scripts) +AC_CANONICAL_HOST + +dnl Check for tools + +AC_PROG_CC + +dnl Check for compiler environment + +AC_C_CONST + +dnl We only care about this for building testnative at the moment, so these +dnl values shouldn't be considered absolute truth. +dnl (BeOS, for example, sets none of these.) +ISUNIX="false" +ISWINDOWS="false" +ISMACOSX="false" + +dnl Figure out which math or extra library to use +case "$host" in + *-*-cygwin* | *-*-mingw32*) + ISWINDOWS="true" + EXE=".exe" + MATHLIB="" + EXTRALIB="-lshlwapi" + SYS_GL_LIBS="-lopengl32" + ;; + *-*-beos* | *-*-haiku*) + EXE="" + MATHLIB="" + EXTRALIB="" + SYS_GL_LIBS="-lGL" + ;; + *-*-darwin* ) + ISMACOSX="true" + EXE="" + MATHLIB="" + EXTRALIB="" + + ;; + *-*-aix*) + ISUNIX="true" + EXE="" + if test x$ac_cv_prog_gcc = xyes; then + CFLAGS="-mthreads" + fi + MATHLIB="" + EXTRALIB="" + SYS_GL_LIBS="" + ;; + *-*-mint*) + EXE="" + MATHLIB="" + EXTRALIB="" + AC_PATH_PROG(OSMESA_CONFIG, osmesa-config, no) + if test "x$OSMESA_CONFIG" = "xyes"; then + OSMESA_CFLAGS=`$OSMESA_CONFIG --cflags` + OSMESA_LIBS=`$OSMESA_CONFIG --libs` + CFLAGS="$CFLAGS $OSMESA_CFLAGS" + SYS_GL_LIBS="$OSMESA_LIBS" + else + SYS_GL_LIBS="-lOSMesa" + fi + ;; + *-*-qnx*) + EXE="" + MATHLIB="" + EXTRALIB="" + SYS_GL_LIBS="-lGLES_CM" + ;; + *) + dnl Oh well, call it Unix... + ISUNIX="true" + EXE="" + MATHLIB="-lm" + EXTRALIB="" + SYS_GL_LIBS="-lGL" + ;; +esac +AC_SUBST(EXE) +AC_SUBST(MATHLIB) +AC_SUBST(EXTRALIB) +AC_SUBST(ISMACOSX) +AC_SUBST(ISWINDOWS) +AC_SUBST(ISUNIX) + +dnl Check for SDL +SDL_VERSION=2.0.0 +AM_PATH_SDL2($SDL_VERSION, + :, + AC_MSG_ERROR([*** SDL version $SDL_VERSION not found!]) +) +CFLAGS="$CFLAGS $SDL_CFLAGS" +LIBS="$LIBS -lSDL2_test $SDL_LIBS $EXTRALIB" + +dnl Check for X11 path, needed for OpenGL on some systems +AC_PATH_X +if test x$have_x = xyes; then + if test x$ac_x_includes = xno || test x$ac_x_includes = x; then + : + else + CFLAGS="$CFLAGS -I$ac_x_includes" + fi + if test x$ac_x_libraries = xno || test x$ac_x_libraries = x; then + : + else + XPATH="-L$ac_x_libraries" + fi +fi + +dnl Check for OpenGL +AC_MSG_CHECKING(for OpenGL support) +have_opengl=no +AC_TRY_COMPILE([ + #include "SDL_opengl.h" +],[ +],[ +have_opengl=yes +]) +AC_MSG_RESULT($have_opengl) + +dnl Check for OpenGL ES +AC_MSG_CHECKING(for OpenGL ES support) +have_opengles=no +AC_TRY_COMPILE([ + #if defined (__IPHONEOS__) + #include + #else + #include + #endif /* __QNXNTO__ */ +],[ +],[ +have_opengles=yes +]) +AC_MSG_RESULT($have_opengles) + +GLLIB="" +if test x$have_opengles = xyes; then + CFLAGS="$CFLAGS -DHAVE_OPENGLES" + GLLIB="$XPATH -lGLESv1_CM" +elif test x$have_opengl = xyes; then + CFLAGS="$CFLAGS -DHAVE_OPENGL" + GLLIB="$XPATH $SYS_GL_LIBS" +else + GLLIB="" +fi + +AC_SUBST(GLLIB) + +dnl Check for SDL_ttf +AC_CHECK_LIB(SDL2_ttf, TTF_Init, have_SDL_ttf=yes) +if test x$have_SDL_ttf = xyes; then + CFLAGS="$CFLAGS -DHAVE_SDL_TTF" + SDL_TTF_LIB="-lSDL2_ttf" +fi +AC_SUBST(SDL_TTF_LIB) + +dnl Finally create all the generated files +dnl AC_OUTPUT([Makefile]) +AC_CONFIG_HEADERS([config.h]) +AC_CONFIG_FILES([Makefile]) +AC_OUTPUT() diff --git a/visualtest/depcomp b/visualtest/depcomp new file mode 100755 index 0000000000000..b0ad20c05e056 --- /dev/null +++ b/visualtest/depcomp @@ -0,0 +1 @@ +/usr/share/automake-1.11/depcomp \ No newline at end of file diff --git a/visualtest/docs/Doxyfile b/visualtest/docs/Doxyfile new file mode 100755 index 0000000000000..08caeb491e990 --- /dev/null +++ b/visualtest/docs/Doxyfile @@ -0,0 +1,1936 @@ +# Doxyfile 1.8.4 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project +# +# All text after a hash (#) is considered a comment and will be ignored +# The format is: +# TAG = value [value, ...] +# For lists items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (" ") + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# This tag specifies the encoding used for all characters in the config file +# that follow. The default is UTF-8 which is also the encoding used for all +# text before the first occurrence of this tag. Doxygen uses libiconv (or the +# iconv built into libc) for the transcoding. See +# http://www.gnu.org/software/libiconv for the list of possible encodings. + +DOXYFILE_ENCODING = UTF-8 + +# The PROJECT_NAME tag is a single word (or sequence of words) that should +# identify the project. Note that if you do not use Doxywizard you need +# to put quotes around the project name if it contains spaces. + +PROJECT_NAME = "SDL Visual Test" + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. +# This could be handy for archiving the generated documentation or +# if some version control system is used. + +PROJECT_NUMBER = + +# Using the PROJECT_BRIEF tag one can provide an optional one line description +# for a project that appears at the top of each page and should give viewer +# a quick idea about the purpose of the project. Keep the description short. + +PROJECT_BRIEF = + +# With the PROJECT_LOGO tag one can specify an logo or icon that is +# included in the documentation. The maximum height of the logo should not +# exceed 55 pixels and the maximum width should not exceed 200 pixels. +# Doxygen will copy the logo to the output directory. + +PROJECT_LOGO = + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) +# base path where the generated documentation will be put. +# If a relative path is entered, it will be relative to the location +# where doxygen was started. If left blank the current directory will be used. + +OUTPUT_DIRECTORY = . + +# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create +# 4096 sub-directories (in 2 levels) under the output directory of each output +# format and will distribute the generated files over these directories. +# Enabling this option can be useful when feeding doxygen a huge amount of +# source files, where putting all generated files in the same directory would +# otherwise cause performance problems for the file system. + +CREATE_SUBDIRS = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# The default language is English, other supported languages are: +# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, +# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, +# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English +# messages), Korean, Korean-en, Latvian, Lithuanian, Norwegian, Macedonian, +# Persian, Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, +# Slovak, Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. + +OUTPUT_LANGUAGE = English + +# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will +# include brief member descriptions after the members that are listed in +# the file and class documentation (similar to JavaDoc). +# Set to NO to disable this. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend +# the brief description of a member or function before the detailed description. +# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator +# that is used to form the text in various listings. Each string +# in this list, if found as the leading text of the brief description, will be +# stripped from the text and the result after processing the whole list, is +# used as the annotated text. Otherwise, the brief description is used as-is. +# If left blank, the following values are used ("$name" is automatically +# replaced with the name of the entity): "The $name class" "The $name widget" +# "The $name file" "is" "provides" "specifies" "contains" +# "represents" "a" "an" "the" + +ABBREVIATE_BRIEF = "The $name class" \ + "The $name widget" \ + "The $name file" \ + is \ + provides \ + specifies \ + contains \ + represents \ + a \ + an \ + the + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# Doxygen will generate a detailed section even if there is only a brief +# description. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full +# path before files name in the file list and in the header files. If set +# to NO the shortest path that makes the file name unique will be used. + +FULL_PATH_NAMES = YES + +# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag +# can be used to strip a user-defined part of the path. Stripping is +# only done if one of the specified strings matches the left-hand part of +# the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the +# path to strip. Note that you specify absolute paths here, but also +# relative paths, which will be relative from the directory where doxygen is +# started. + +STRIP_FROM_PATH = + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of +# the path mentioned in the documentation of a class, which tells +# the reader which header file to include in order to use a class. +# If left blank only the name of the header file containing the class +# definition is used. Otherwise one should specify the include paths that +# are normally passed to the compiler using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter +# (but less readable) file names. This can be useful if your file system +# doesn't support long names like on DOS, Mac, or CD-ROM. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen +# will interpret the first line (until the first dot) of a JavaDoc-style +# comment as the brief description. If set to NO, the JavaDoc +# comments will behave just like regular Qt-style comments +# (thus requiring an explicit @brief command for a brief description.) + +JAVADOC_AUTOBRIEF = NO + +# If the QT_AUTOBRIEF tag is set to YES then Doxygen will +# interpret the first line (until the first dot) of a Qt-style +# comment as the brief description. If set to NO, the comments +# will behave just like regular Qt-style comments (thus requiring +# an explicit \brief command for a brief description.) + +QT_AUTOBRIEF = NO + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen +# treat a multi-line C++ special comment block (i.e. a block of //! or /// +# comments) as a brief description. This used to be the default behaviour. +# The new default is to treat a multi-line C++ comment block as a detailed +# description. Set this tag to YES if you prefer the old behaviour instead. + +MULTILINE_CPP_IS_BRIEF = NO + +# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented +# member inherits the documentation from any documented member that it +# re-implements. + +INHERIT_DOCS = YES + +# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce +# a new page for each member. If set to NO, the documentation of a member will +# be part of the file/class/namespace that contains it. + +SEPARATE_MEMBER_PAGES = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. +# Doxygen uses this value to replace tabs by spaces in code fragments. + +TAB_SIZE = 4 + +# This tag can be used to specify a number of aliases that acts +# as commands in the documentation. An alias has the form "name=value". +# For example adding "sideeffect=\par Side Effects:\n" will allow you to +# put the command \sideeffect (or @sideeffect) in the documentation, which +# will result in a user-defined paragraph with heading "Side Effects:". +# You can put \n's in the value part of an alias to insert newlines. + +ALIASES = + +# This tag can be used to specify a number of word-keyword mappings (TCL only). +# A mapping has the form "name=value". For example adding +# "class=itcl::class" will allow you to use the command class in the +# itcl::class meaning. + +TCL_SUBST = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C +# sources only. Doxygen will then generate output that is more tailored for C. +# For instance, some of the names that are used will be different. The list +# of all members will be omitted, etc. + +OPTIMIZE_OUTPUT_FOR_C = YES + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java +# sources only. Doxygen will then generate output that is more tailored for +# Java. For instance, namespaces will be presented as packages, qualified +# scopes will look different, etc. + +OPTIMIZE_OUTPUT_JAVA = NO + +# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran +# sources only. Doxygen will then generate output that is more tailored for +# Fortran. + +OPTIMIZE_FOR_FORTRAN = NO + +# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL +# sources. Doxygen will then generate output that is tailored for +# VHDL. + +OPTIMIZE_OUTPUT_VHDL = NO + +# Doxygen selects the parser to use depending on the extension of the files it +# parses. With this tag you can assign which parser to use for a given +# extension. Doxygen has a built-in mapping, but you can override or extend it +# using this tag. The format is ext=language, where ext is a file extension, +# and language is one of the parsers supported by doxygen: IDL, Java, +# Javascript, CSharp, C, C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, +# C++. For instance to make doxygen treat .inc files as Fortran files (default +# is PHP), and .f files as C (default is Fortran), use: inc=Fortran f=C. Note +# that for custom extensions you also need to set FILE_PATTERNS otherwise the +# files are not read by doxygen. + +EXTENSION_MAPPING = + +# If MARKDOWN_SUPPORT is enabled (the default) then doxygen pre-processes all +# comments according to the Markdown format, which allows for more readable +# documentation. See http://daringfireball.net/projects/markdown/ for details. +# The output of markdown processing is further processed by doxygen, so you +# can mix doxygen, HTML, and XML commands with Markdown formatting. +# Disable only in case of backward compatibilities issues. + +MARKDOWN_SUPPORT = YES + +# When enabled doxygen tries to link words that correspond to documented +# classes, or namespaces to their corresponding documentation. Such a link can +# be prevented in individual cases by by putting a % sign in front of the word +# or globally by setting AUTOLINK_SUPPORT to NO. + +AUTOLINK_SUPPORT = YES + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want +# to include (a tag file for) the STL sources as input, then you should +# set this tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. +# func(std::string) {}). This also makes the inheritance and collaboration +# diagrams that involve STL classes more complete and accurate. + +BUILTIN_STL_SUPPORT = NO + +# If you use Microsoft's C++/CLI language, you should set this option to YES to +# enable parsing support. + +CPP_CLI_SUPPORT = NO + +# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. +# Doxygen will parse them like normal C++ but will assume all classes use public +# instead of private inheritance when no explicit protection keyword is present. + +SIP_SUPPORT = NO + +# For Microsoft's IDL there are propget and propput attributes to indicate +# getter and setter methods for a property. Setting this option to YES (the +# default) will make doxygen replace the get and set methods by a property in +# the documentation. This will only work if the methods are indeed getting or +# setting a simple type. If this is not the case, or you want to show the +# methods anyway, you should set this option to NO. + +IDL_PROPERTY_SUPPORT = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES, then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. + +DISTRIBUTE_GROUP_DOC = NO + +# Set the SUBGROUPING tag to YES (the default) to allow class member groups of +# the same type (for instance a group of public functions) to be put as a +# subgroup of that type (e.g. under the Public Functions section). Set it to +# NO to prevent subgrouping. Alternatively, this can be done per class using +# the \nosubgrouping command. + +SUBGROUPING = YES + +# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and +# unions are shown inside the group in which they are included (e.g. using +# @ingroup) instead of on a separate page (for HTML and Man pages) or +# section (for LaTeX and RTF). + +INLINE_GROUPED_CLASSES = NO + +# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and +# unions with only public data fields or simple typedef fields will be shown +# inline in the documentation of the scope in which they are defined (i.e. file, +# namespace, or group documentation), provided this scope is documented. If set +# to NO (the default), structs, classes, and unions are shown on a separate +# page (for HTML and Man pages) or section (for LaTeX and RTF). + +INLINE_SIMPLE_STRUCTS = NO + +# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum +# is documented as struct, union, or enum with the name of the typedef. So +# typedef struct TypeS {} TypeT, will appear in the documentation as a struct +# with name TypeT. When disabled the typedef will appear as a member of a file, +# namespace, or class. And the struct will be named TypeS. This can typically +# be useful for C code in case the coding convention dictates that all compound +# types are typedef'ed and only the typedef is referenced, never the tag name. + +TYPEDEF_HIDES_STRUCT = NO + +# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This +# cache is used to resolve symbols given their name and scope. Since this can +# be an expensive process and often the same symbol appear multiple times in +# the code, doxygen keeps a cache of pre-resolved symbols. If the cache is too +# small doxygen will become slower. If the cache is too large, memory is wasted. +# The cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid +# range is 0..9, the default is 0, corresponding to a cache size of 2^16 = 65536 +# symbols. + +LOOKUP_CACHE_SIZE = 0 + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in +# documentation are documented, even if no documentation was available. +# Private class members and static file members will be hidden unless +# the EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES + +EXTRACT_ALL = NO + +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class +# will be included in the documentation. + +EXTRACT_PRIVATE = NO + +# If the EXTRACT_PACKAGE tag is set to YES all members with package or internal +# scope will be included in the documentation. + +EXTRACT_PACKAGE = NO + +# If the EXTRACT_STATIC tag is set to YES all static members of a file +# will be included in the documentation. + +EXTRACT_STATIC = NO + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) +# defined locally in source files will be included in the documentation. +# If set to NO only classes defined in header files are included. + +EXTRACT_LOCAL_CLASSES = YES + +# This flag is only useful for Objective-C code. When set to YES local +# methods, which are defined in the implementation section but not in +# the interface are included in the documentation. +# If set to NO (the default) only methods in the interface are included. + +EXTRACT_LOCAL_METHODS = NO + +# If this flag is set to YES, the members of anonymous namespaces will be +# extracted and appear in the documentation as a namespace called +# 'anonymous_namespace{file}', where file will be replaced with the base +# name of the file that contains the anonymous namespace. By default +# anonymous namespaces are hidden. + +EXTRACT_ANON_NSPACES = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all +# undocumented members of documented classes, files or namespaces. +# If set to NO (the default) these members will be included in the +# various overviews, but no documentation section is generated. +# This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. +# If set to NO (the default) these classes will be included in the various +# overviews. This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all +# friend (class|struct|union) declarations. +# If set to NO (the default) these declarations will be included in the +# documentation. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any +# documentation blocks found inside the body of a function. +# If set to NO (the default) these blocks will be appended to the +# function's detailed documentation block. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation +# that is typed after a \internal command is included. If the tag is set +# to NO (the default) then the documentation will be excluded. +# Set it to YES to include the internal documentation. + +INTERNAL_DOCS = NO + +# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate +# file names in lower-case letters. If set to YES upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# and Mac users are advised to set this option to NO. + +CASE_SENSE_NAMES = NO + +# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen +# will show members with their full class and namespace scopes in the +# documentation. If set to YES the scope will be hidden. + +HIDE_SCOPE_NAMES = YES + +# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen +# will put a list of the files that are included by a file in the documentation +# of that file. + +SHOW_INCLUDE_FILES = YES + +# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen +# will list include files with double quotes in the documentation +# rather than with sharp brackets. + +FORCE_LOCAL_INCLUDES = NO + +# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] +# is inserted in the documentation for inline members. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen +# will sort the (detailed) documentation of file and class members +# alphabetically by member name. If set to NO the members will appear in +# declaration order. + +SORT_MEMBER_DOCS = YES + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the +# brief documentation of file, namespace and class members alphabetically +# by member name. If set to NO (the default) the members will appear in +# declaration order. + +SORT_BRIEF_DOCS = NO + +# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen +# will sort the (brief and detailed) documentation of class members so that +# constructors and destructors are listed first. If set to NO (the default) +# the constructors will appear in the respective orders defined by +# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. +# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO +# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. + +SORT_MEMBERS_CTORS_1ST = NO + +# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the +# hierarchy of group names into alphabetical order. If set to NO (the default) +# the group names will appear in their defined order. + +SORT_GROUP_NAMES = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be +# sorted by fully-qualified names, including namespaces. If set to +# NO (the default), the class list will be sorted only by class name, +# not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the +# alphabetical list. + +SORT_BY_SCOPE_NAME = NO + +# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to +# do proper type resolution of all parameters of a function it will reject a +# match between the prototype and the implementation of a member function even +# if there is only one candidate or it is obvious which candidate to choose +# by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen +# will still accept a match between prototype and implementation in such cases. + +STRICT_PROTO_MATCHING = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or +# disable (NO) the todo list. This list is created by putting \todo +# commands in the documentation. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or +# disable (NO) the test list. This list is created by putting \test +# commands in the documentation. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or +# disable (NO) the bug list. This list is created by putting \bug +# commands in the documentation. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or +# disable (NO) the deprecated list. This list is created by putting +# \deprecated commands in the documentation. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional +# documentation sections, marked by \if section-label ... \endif +# and \cond section-label ... \endcond blocks. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines +# the initial value of a variable or macro consists of for it to appear in +# the documentation. If the initializer consists of more lines than specified +# here it will be hidden. Use a value of 0 to hide initializers completely. +# The appearance of the initializer of individual variables and macros in the +# documentation can be controlled using \showinitializer or \hideinitializer +# command in the documentation regardless of this setting. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated +# at the bottom of the documentation of classes and structs. If set to YES the +# list will mention the files that were used to generate the documentation. + +SHOW_USED_FILES = YES + +# Set the SHOW_FILES tag to NO to disable the generation of the Files page. +# This will remove the Files entry from the Quick Index and from the +# Folder Tree View (if specified). The default is YES. + +SHOW_FILES = YES + +# Set the SHOW_NAMESPACES tag to NO to disable the generation of the +# Namespaces page. This will remove the Namespaces entry from the Quick Index +# and from the Folder Tree View (if specified). The default is YES. + +SHOW_NAMESPACES = YES + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from +# the version control system). Doxygen will invoke the program by executing (via +# popen()) the command , where is the value of +# the FILE_VERSION_FILTER tag, and is the name of an input file +# provided by doxygen. Whatever the program writes to standard output +# is used as the file version. See the manual for examples. + +FILE_VERSION_FILTER = + +# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed +# by doxygen. The layout file controls the global structure of the generated +# output files in an output format independent way. To create the layout file +# that represents doxygen's defaults, run doxygen with the -l option. +# You can optionally specify a file name after the option, if omitted +# DoxygenLayout.xml will be used as the name of the layout file. + +LAYOUT_FILE = + +# The CITE_BIB_FILES tag can be used to specify one or more bib files +# containing the references data. This must be a list of .bib files. The +# .bib extension is automatically appended if omitted. Using this command +# requires the bibtex tool to be installed. See also +# http://en.wikipedia.org/wiki/BibTeX for more info. For LaTeX the style +# of the bibliography can be controlled using LATEX_BIB_STYLE. To use this +# feature you need bibtex and perl available in the search path. Do not use +# file names with spaces, bibtex cannot handle them. + +CITE_BIB_FILES = + +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated +# by doxygen. Possible values are YES and NO. If left blank NO is used. + +QUIET = NO + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated by doxygen. Possible values are YES and NO. If left blank +# NO is used. + +WARNINGS = YES + +# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings +# for undocumented members. If EXTRACT_ALL is set to YES then this flag will +# automatically be disabled. + +WARN_IF_UNDOCUMENTED = YES + +# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some +# parameters in a documented function, or documenting parameters that +# don't exist or using markup commands wrongly. + +WARN_IF_DOC_ERROR = YES + +# The WARN_NO_PARAMDOC option can be enabled to get warnings for +# functions that are documented, but have no documentation for their parameters +# or return value. If set to NO (the default) doxygen will only warn about +# wrong or incomplete parameter documentation, but not about the absence of +# documentation. + +WARN_NO_PARAMDOC = NO + +# The WARN_FORMAT tag determines the format of the warning messages that +# doxygen can produce. The string should contain the $file, $line, and $text +# tags, which will be replaced by the file and line number from which the +# warning originated and the warning text. Optionally the format may contain +# $version, which will be replaced by the version of the file (if it could +# be obtained via FILE_VERSION_FILTER) + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning +# and error messages should be written. If left blank the output is written +# to stderr. + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag can be used to specify the files and/or directories that contain +# documented source files. You may enter file names like "myfile.cpp" or +# directories like "/usr/src/myproject". Separate the files or directories +# with spaces. + +INPUT = ../ + +# This tag can be used to specify the character encoding of the source files +# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is +# also the default input encoding. Doxygen uses libiconv (or the iconv built +# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for +# the list of possible encodings. + +INPUT_ENCODING = UTF-8 + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank the following patterns are tested: +# *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh +# *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py +# *.f90 *.f *.for *.vhd *.vhdl + +FILE_PATTERNS = *.c \ + *.cc \ + *.cxx \ + *.cpp \ + *.c++ \ + *.d \ + *.java \ + *.ii \ + *.ixx \ + *.ipp \ + *.i++ \ + *.inl \ + *.h \ + *.hh \ + *.hxx \ + *.hpp \ + *.h++ \ + *.idl \ + *.odl \ + *.cs \ + *.php \ + *.php3 \ + *.inc \ + *.m \ + *.markdown \ + *.md \ + *.mm \ + *.dox \ + *.py \ + *.f90 \ + *.f \ + *.for \ + *.vhd \ + *.vhdl \ + README.txt + +# The RECURSIVE tag can be used to turn specify whether or not subdirectories +# should be searched for input files as well. Possible values are YES and NO. +# If left blank NO is used. + +RECURSIVE = YES + +# The EXCLUDE tag can be used to specify files and/or directories that should be +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. +# Note that relative paths are relative to the directory from which doxygen is +# run. + +EXCLUDE = + +# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or +# directories that are symbolic links (a Unix file system feature) are excluded +# from the input. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. Note that the wildcards are matched +# against the file with absolute path, so to exclude all test directories +# for example use the pattern */test/* + +EXCLUDE_PATTERNS = + +# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names +# (namespaces, classes, functions, etc.) that should be excluded from the +# output. The symbol name can be a fully qualified name, a word, or if the +# wildcard * is used, a substring. Examples: ANamespace, AClass, +# AClass::ANamespace, ANamespace::*Test + +EXCLUDE_SYMBOLS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or +# directories that contain example code fragments that are included (see +# the \include command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank all files are included. + +EXAMPLE_PATTERNS = * + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude +# commands irrespective of the value of the RECURSIVE tag. +# Possible values are YES and NO. If left blank NO is used. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or +# directories that contain image that are included in the documentation (see +# the \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command , where +# is the value of the INPUT_FILTER tag, and is the name of an +# input file. Doxygen will then use the output that the filter program writes +# to standard output. If FILTER_PATTERNS is specified, this tag will be ignored. +# Note that the filter must not add or remove lines; it is applied before the +# code is scanned, but not when the output code is generated. If lines are added +# or removed, the anchors will not be placed correctly. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. The filters are a list of the form: +# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further +# info on how filters are used. If FILTER_PATTERNS is empty or if +# non of the patterns match the file name, INPUT_FILTER is applied. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will be used to filter the input files when producing source +# files to browse (i.e. when SOURCE_BROWSER is set to YES). + +FILTER_SOURCE_FILES = NO + +# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file +# pattern. A pattern will override the setting for FILTER_PATTERN (if any) +# and it is also possible to disable source filtering for a specific pattern +# using *.ext= (so without naming a filter). This option only has effect when +# FILTER_SOURCE_FILES is enabled. + +FILTER_SOURCE_PATTERNS = + +# If the USE_MD_FILE_AS_MAINPAGE tag refers to the name of a markdown file that +# is part of the input, its contents will be placed on the main page +# (index.html). This can be useful if you have a project on for instance GitHub +# and want reuse the introduction page also for the doxygen output. + +USE_MDFILE_AS_MAINPAGE = + +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will +# be generated. Documented entities will be cross-referenced with these sources. +# Note: To get rid of all source code in the generated output, make sure also +# VERBATIM_HEADERS is set to NO. + +SOURCE_BROWSER = NO + +# Setting the INLINE_SOURCES tag to YES will include the body +# of functions and classes directly in the documentation. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct +# doxygen to hide any special comment blocks from generated source code +# fragments. Normal C, C++ and Fortran comments will always remain visible. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES +# then for each documented function all documented +# functions referencing it will be listed. + +REFERENCED_BY_RELATION = NO + +# If the REFERENCES_RELATION tag is set to YES +# then for each documented function all documented entities +# called/used by that function will be listed. + +REFERENCES_RELATION = NO + +# If the REFERENCES_LINK_SOURCE tag is set to YES (the default) +# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from +# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will +# link to the source code. Otherwise they will link to the documentation. + +REFERENCES_LINK_SOURCE = YES + +# If the USE_HTAGS tag is set to YES then the references to source code +# will point to the HTML generated by the htags(1) tool instead of doxygen +# built-in source browser. The htags tool is part of GNU's global source +# tagging system (see http://www.gnu.org/software/global/global.html). You +# will need version 4.8.6 or higher. + +USE_HTAGS = NO + +# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen +# will generate a verbatim copy of the header file for each class for +# which an include is specified. Set to NO to disable this. + +VERBATIM_HEADERS = YES + +# If CLANG_ASSISTED_PARSING is set to YES, then doxygen will use the clang parser +# for more acurate parsing at the cost of reduced performance. This can be +# particularly helpful with template rich C++ code for which doxygen's built-in +# parser lacks the necessairy type information. + +CLANG_ASSISTED_PARSING = NO + +# If clang assisted parsing is enabled you can provide the compiler with command +# line options that you would normally use when invoking the compiler. Note that +# the include paths will already be set by doxygen for the files and directories +# specified at INPUT and INCLUDE_PATH. + +CLANG_OPTIONS = + +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index +# of all compounds will be generated. Enable this if the project +# contains a lot of classes, structs, unions or interfaces. + +ALPHABETICAL_INDEX = YES + +# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then +# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns +# in which this list will be split (can be a number in the range [1..20]) + +COLS_IN_ALPHA_INDEX = 5 + +# In case all classes in a project start with a common prefix, all +# classes will be put under the same header in the alphabetical index. +# The IGNORE_PREFIX tag can be used to specify one or more prefixes that +# should be ignored while generating the index headers. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES (the default) Doxygen will +# generate HTML output. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `html' will be used as the default path. + +HTML_OUTPUT = html + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for +# each generated HTML page (for example: .htm,.php,.asp). If it is left blank +# doxygen will generate files with .html extension. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a personal HTML header for +# each generated HTML page. If it is left blank doxygen will generate a +# standard header. Note that when using a custom header you are responsible +# for the proper inclusion of any scripts and style sheets that doxygen +# needs, which is dependent on the configuration options used. +# It is advised to generate a default header using "doxygen -w html +# header.html footer.html stylesheet.css YourConfigFile" and then modify +# that header. Note that the header is subject to change so you typically +# have to redo this when upgrading to a newer version of doxygen or when +# changing the value of configuration settings such as GENERATE_TREEVIEW! + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a personal HTML footer for +# each generated HTML page. If it is left blank doxygen will generate a +# standard footer. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading +# style sheet that is used by each HTML page. It can be used to +# fine-tune the look of the HTML output. If left blank doxygen will +# generate a default style sheet. Note that it is recommended to use +# HTML_EXTRA_STYLESHEET instead of this one, as it is more robust and this +# tag will in the future become obsolete. + +HTML_STYLESHEET = + +# The HTML_EXTRA_STYLESHEET tag can be used to specify an additional +# user-defined cascading style sheet that is included after the standard +# style sheets created by doxygen. Using this option one can overrule +# certain style aspects. This is preferred over using HTML_STYLESHEET +# since it does not replace the standard style sheet and is therefor more +# robust against future updates. Doxygen will copy the style sheet file to +# the output directory. + +HTML_EXTRA_STYLESHEET = + +# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or +# other source files which should be copied to the HTML output directory. Note +# that these files will be copied to the base HTML output directory. Use the +# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these +# files. In the HTML_STYLESHEET file, use the file name only. Also note that +# the files will be copied as-is; there are no commands or markers available. + +HTML_EXTRA_FILES = + +# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. +# Doxygen will adjust the colors in the style sheet and background images +# according to this color. Hue is specified as an angle on a colorwheel, +# see http://en.wikipedia.org/wiki/Hue for more information. +# For instance the value 0 represents red, 60 is yellow, 120 is green, +# 180 is cyan, 240 is blue, 300 purple, and 360 is red again. +# The allowed range is 0 to 359. + +HTML_COLORSTYLE_HUE = 220 + +# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of +# the colors in the HTML output. For a value of 0 the output will use +# grayscales only. A value of 255 will produce the most vivid colors. + +HTML_COLORSTYLE_SAT = 100 + +# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to +# the luminance component of the colors in the HTML output. Values below +# 100 gradually make the output lighter, whereas values above 100 make +# the output darker. The value divided by 100 is the actual gamma applied, +# so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2, +# and 100 does not change the gamma. + +HTML_COLORSTYLE_GAMMA = 80 + +# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML +# page will contain the date and time when the page was generated. Setting +# this to NO can help when comparing the output of multiple runs. + +HTML_TIMESTAMP = YES + +# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML +# documentation will contain sections that can be hidden and shown after the +# page has loaded. + +HTML_DYNAMIC_SECTIONS = NO + +# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of +# entries shown in the various tree structured indices initially; the user +# can expand and collapse entries dynamically later on. Doxygen will expand +# the tree to such a level that at most the specified number of entries are +# visible (unless a fully collapsed tree already exceeds this amount). +# So setting the number of entries 1 will produce a full collapsed tree by +# default. 0 is a special value representing an infinite number of entries +# and will result in a full expanded tree by default. + +HTML_INDEX_NUM_ENTRIES = 100 + +# If the GENERATE_DOCSET tag is set to YES, additional index files +# will be generated that can be used as input for Apple's Xcode 3 +# integrated development environment, introduced with OSX 10.5 (Leopard). +# To create a documentation set, doxygen will generate a Makefile in the +# HTML output directory. Running make will produce the docset in that +# directory and running "make install" will install the docset in +# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find +# it at startup. +# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html +# for more information. + +GENERATE_DOCSET = NO + +# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the +# feed. A documentation feed provides an umbrella under which multiple +# documentation sets from a single provider (such as a company or product suite) +# can be grouped. + +DOCSET_FEEDNAME = "Doxygen generated docs" + +# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that +# should uniquely identify the documentation set bundle. This should be a +# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen +# will append .docset to the name. + +DOCSET_BUNDLE_ID = org.doxygen.Project + +# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely +# identify the documentation publisher. This should be a reverse domain-name +# style string, e.g. com.mycompany.MyDocSet.documentation. + +DOCSET_PUBLISHER_ID = org.doxygen.Publisher + +# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher. + +DOCSET_PUBLISHER_NAME = Publisher + +# If the GENERATE_HTMLHELP tag is set to YES, additional index files +# will be generated that can be used as input for tools like the +# Microsoft HTML help workshop to generate a compiled HTML help file (.chm) +# of the generated HTML documentation. + +GENERATE_HTMLHELP = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can +# be used to specify the file name of the resulting .chm file. You +# can add a path in front of the file if the result should not be +# written to the html output directory. + +CHM_FILE = + +# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can +# be used to specify the location (absolute path including file name) of +# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run +# the HTML help compiler on the generated index.hhp. + +HHC_LOCATION = + +# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag +# controls if a separate .chi index file is generated (YES) or that +# it should be included in the master .chm file (NO). + +GENERATE_CHI = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING +# is used to encode HtmlHelp index (hhk), content (hhc) and project file +# content. + +CHM_INDEX_ENCODING = + +# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag +# controls whether a binary table of contents is generated (YES) or a +# normal table of contents (NO) in the .chm file. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members +# to the contents of the HTML help documentation and to the tree view. + +TOC_EXPAND = NO + +# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and +# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated +# that can be used as input for Qt's qhelpgenerator to generate a +# Qt Compressed Help (.qch) of the generated HTML documentation. + +GENERATE_QHP = NO + +# If the QHG_LOCATION tag is specified, the QCH_FILE tag can +# be used to specify the file name of the resulting .qch file. +# The path specified is relative to the HTML output folder. + +QCH_FILE = + +# The QHP_NAMESPACE tag specifies the namespace to use when generating +# Qt Help Project output. For more information please see +# http://doc.trolltech.com/qthelpproject.html#namespace + +QHP_NAMESPACE = org.doxygen.Project + +# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating +# Qt Help Project output. For more information please see +# http://doc.trolltech.com/qthelpproject.html#virtual-folders + +QHP_VIRTUAL_FOLDER = doc + +# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to +# add. For more information please see +# http://doc.trolltech.com/qthelpproject.html#custom-filters + +QHP_CUST_FILTER_NAME = + +# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the +# custom filter to add. For more information please see +# +# Qt Help Project / Custom Filters. + +QHP_CUST_FILTER_ATTRS = + +# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this +# project's +# filter section matches. +# +# Qt Help Project / Filter Attributes. + +QHP_SECT_FILTER_ATTRS = + +# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can +# be used to specify the location of Qt's qhelpgenerator. +# If non-empty doxygen will try to run qhelpgenerator on the generated +# .qhp file. + +QHG_LOCATION = + +# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files +# will be generated, which together with the HTML files, form an Eclipse help +# plugin. To install this plugin and make it available under the help contents +# menu in Eclipse, the contents of the directory containing the HTML and XML +# files needs to be copied into the plugins directory of eclipse. The name of +# the directory within the plugins directory should be the same as +# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before +# the help appears. + +GENERATE_ECLIPSEHELP = NO + +# A unique identifier for the eclipse help plugin. When installing the plugin +# the directory name containing the HTML and XML files should also have +# this name. + +ECLIPSE_DOC_ID = org.doxygen.Project + +# The DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) +# at top of each HTML page. The value NO (the default) enables the index and +# the value YES disables it. Since the tabs have the same information as the +# navigation tree you can set this option to NO if you already set +# GENERATE_TREEVIEW to YES. + +DISABLE_INDEX = NO + +# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index +# structure should be generated to display hierarchical information. +# If the tag value is set to YES, a side panel will be generated +# containing a tree-like index structure (just like the one that +# is generated for HTML Help). For this to work a browser that supports +# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). +# Windows users are probably better off using the HTML help feature. +# Since the tree basically has the same information as the tab index you +# could consider to set DISABLE_INDEX to NO when enabling this option. + +GENERATE_TREEVIEW = NO + +# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values +# (range [0,1..20]) that doxygen will group on one line in the generated HTML +# documentation. Note that a value of 0 will completely suppress the enum +# values from appearing in the overview section. + +ENUM_VALUES_PER_LINE = 4 + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be +# used to set the initial width (in pixels) of the frame in which the tree +# is shown. + +TREEVIEW_WIDTH = 250 + +# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open +# links to external symbols imported via tag files in a separate window. + +EXT_LINKS_IN_WINDOW = NO + +# Use this tag to change the font size of Latex formulas included +# as images in the HTML documentation. The default is 10. Note that +# when you change the font size after a successful doxygen run you need +# to manually remove any form_*.png images from the HTML output directory +# to force them to be regenerated. + +FORMULA_FONTSIZE = 10 + +# Use the FORMULA_TRANPARENT tag to determine whether or not the images +# generated for formulas are transparent PNGs. Transparent PNGs are +# not supported properly for IE 6.0, but are supported on all modern browsers. +# Note that when changing this option you need to delete any form_*.png files +# in the HTML output before the changes have effect. + +FORMULA_TRANSPARENT = YES + +# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax +# (see http://www.mathjax.org) which uses client side Javascript for the +# rendering instead of using prerendered bitmaps. Use this if you do not +# have LaTeX installed or if you want to formulas look prettier in the HTML +# output. When enabled you may also need to install MathJax separately and +# configure the path to it using the MATHJAX_RELPATH option. + +USE_MATHJAX = NO + +# When MathJax is enabled you can set the default output format to be used for +# the MathJax output. Supported types are HTML-CSS, NativeMML (i.e. MathML) and +# SVG. The default value is HTML-CSS, which is slower, but has the best +# compatibility. + +MATHJAX_FORMAT = HTML-CSS + +# When MathJax is enabled you need to specify the location relative to the +# HTML output directory using the MATHJAX_RELPATH option. The destination +# directory should contain the MathJax.js script. For instance, if the mathjax +# directory is located at the same level as the HTML output directory, then +# MATHJAX_RELPATH should be ../mathjax. The default value points to +# the MathJax Content Delivery Network so you can quickly see the result without +# installing MathJax. However, it is strongly recommended to install a local +# copy of MathJax from http://www.mathjax.org before deployment. + +MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest + +# The MATHJAX_EXTENSIONS tag can be used to specify one or MathJax extension +# names that should be enabled during MathJax rendering. + +MATHJAX_EXTENSIONS = + +# The MATHJAX_CODEFILE tag can be used to specify a file with javascript +# pieces of code that will be used on startup of the MathJax code. + +MATHJAX_CODEFILE = + +# When the SEARCHENGINE tag is enabled doxygen will generate a search box +# for the HTML output. The underlying search engine uses javascript +# and DHTML and should work on any modern browser. Note that when using +# HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets +# (GENERATE_DOCSET) there is already a search function so this one should +# typically be disabled. For large projects the javascript based search engine +# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution. + +SEARCHENGINE = YES + +# When the SERVER_BASED_SEARCH tag is enabled the search engine will be +# implemented using a web server instead of a web client using Javascript. +# There are two flavours of web server based search depending on the +# EXTERNAL_SEARCH setting. When disabled, doxygen will generate a PHP script for +# searching and an index file used by the script. When EXTERNAL_SEARCH is +# enabled the indexing and searching needs to be provided by external tools. +# See the manual for details. + +SERVER_BASED_SEARCH = NO + +# When EXTERNAL_SEARCH is enabled doxygen will no longer generate the PHP +# script for searching. Instead the search results are written to an XML file +# which needs to be processed by an external indexer. Doxygen will invoke an +# external search engine pointed to by the SEARCHENGINE_URL option to obtain +# the search results. Doxygen ships with an example indexer (doxyindexer) and +# search engine (doxysearch.cgi) which are based on the open source search +# engine library Xapian. See the manual for configuration details. + +EXTERNAL_SEARCH = NO + +# The SEARCHENGINE_URL should point to a search engine hosted by a web server +# which will returned the search results when EXTERNAL_SEARCH is enabled. +# Doxygen ships with an example search engine (doxysearch) which is based on +# the open source search engine library Xapian. See the manual for configuration +# details. + +SEARCHENGINE_URL = + +# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed +# search data is written to a file for indexing by an external tool. With the +# SEARCHDATA_FILE tag the name of this file can be specified. + +SEARCHDATA_FILE = searchdata.xml + +# When SERVER_BASED_SEARCH AND EXTERNAL_SEARCH are both enabled the +# EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is +# useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple +# projects and redirect the results back to the right project. + +EXTERNAL_SEARCH_ID = + +# The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen +# projects other than the one defined by this configuration file, but that are +# all added to the same external search index. Each project needs to have a +# unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id +# of to a relative location where the documentation can be found. +# The format is: EXTRA_SEARCH_MAPPINGS = id1=loc1 id2=loc2 ... + +EXTRA_SEARCH_MAPPINGS = + +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- + +# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will +# generate Latex output. + +GENERATE_LATEX = YES + +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `latex' will be used as the default path. + +LATEX_OUTPUT = latex + +# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be +# invoked. If left blank `latex' will be used as the default command name. +# Note that when enabling USE_PDFLATEX this option is only used for +# generating bitmaps for formulas in the HTML output, but not in the +# Makefile that is written to the output directory. + +LATEX_CMD_NAME = latex + +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to +# generate index for LaTeX. If left blank `makeindex' will be used as the +# default command name. + +MAKEINDEX_CMD_NAME = makeindex + +# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact +# LaTeX documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_LATEX = NO + +# The PAPER_TYPE tag can be used to set the paper type that is used +# by the printer. Possible values are: a4, letter, legal and +# executive. If left blank a4 will be used. + +PAPER_TYPE = a4 + +# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX +# packages that should be included in the LaTeX output. + +EXTRA_PACKAGES = + +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for +# the generated latex document. The header should contain everything until +# the first chapter. If it is left blank doxygen will generate a +# standard header. Notice: only use this tag if you know what you are doing! + +LATEX_HEADER = + +# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for +# the generated latex document. The footer should contain everything after +# the last chapter. If it is left blank doxygen will generate a +# standard footer. Notice: only use this tag if you know what you are doing! + +LATEX_FOOTER = + +# The LATEX_EXTRA_FILES tag can be used to specify one or more extra images +# or other source files which should be copied to the LaTeX output directory. +# Note that the files will be copied as-is; there are no commands or markers +# available. + +LATEX_EXTRA_FILES = + +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated +# is prepared for conversion to pdf (using ps2pdf). The pdf file will +# contain links (just like the HTML output) instead of page references +# This makes the output suitable for online browsing using a pdf viewer. + +PDF_HYPERLINKS = YES + +# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of +# plain latex in the generated Makefile. Set this option to YES to get a +# higher quality PDF documentation. + +USE_PDFLATEX = YES + +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. +# command to the generated LaTeX files. This will instruct LaTeX to keep +# running if errors occur, instead of asking the user for help. +# This option is also used when generating formulas in HTML. + +LATEX_BATCHMODE = NO + +# If LATEX_HIDE_INDICES is set to YES then doxygen will not +# include the index chapters (such as File Index, Compound Index, etc.) +# in the output. + +LATEX_HIDE_INDICES = NO + +# If LATEX_SOURCE_CODE is set to YES then doxygen will include +# source code with syntax highlighting in the LaTeX output. +# Note that which sources are shown also depends on other settings +# such as SOURCE_BROWSER. + +LATEX_SOURCE_CODE = NO + +# The LATEX_BIB_STYLE tag can be used to specify the style to use for the +# bibliography, e.g. plainnat, or ieeetr. The default style is "plain". See +# http://en.wikipedia.org/wiki/BibTeX for more info. + +LATEX_BIB_STYLE = plain + +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- + +# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output +# The RTF output is optimized for Word 97 and may not look very pretty with +# other RTF readers or editors. + +GENERATE_RTF = NO + +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `rtf' will be used as the default path. + +RTF_OUTPUT = rtf + +# If the COMPACT_RTF tag is set to YES Doxygen generates more compact +# RTF documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_RTF = NO + +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated +# will contain hyperlink fields. The RTF file will +# contain links (just like the HTML output) instead of page references. +# This makes the output suitable for online browsing using WORD or other +# programs which support those fields. +# Note: wordpad (write) and others do not support links. + +RTF_HYPERLINKS = NO + +# Load style sheet definitions from file. Syntax is similar to doxygen's +# config file, i.e. a series of assignments. You only have to provide +# replacements, missing definitions are set to their default value. + +RTF_STYLESHEET_FILE = + +# Set optional variables used in the generation of an rtf document. +# Syntax is similar to doxygen's config file. + +RTF_EXTENSIONS_FILE = + +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- + +# If the GENERATE_MAN tag is set to YES (the default) Doxygen will +# generate man pages + +GENERATE_MAN = NO + +# The MAN_OUTPUT tag is used to specify where the man pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `man' will be used as the default path. + +MAN_OUTPUT = man + +# The MAN_EXTENSION tag determines the extension that is added to +# the generated man pages (default is the subroutine's section .3) + +MAN_EXTENSION = .3 + +# If the MAN_LINKS tag is set to YES and Doxygen generates man output, +# then it will generate one additional man file for each entity +# documented in the real man page(s). These additional files +# only source the real man page, but without them the man command +# would be unable to find the correct page. The default is NO. + +MAN_LINKS = NO + +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- + +# If the GENERATE_XML tag is set to YES Doxygen will +# generate an XML file that captures the structure of +# the code including all documentation. + +GENERATE_XML = NO + +# The XML_OUTPUT tag is used to specify where the XML pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `xml' will be used as the default path. + +XML_OUTPUT = xml + +# The XML_SCHEMA tag can be used to specify an XML schema, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_SCHEMA = + +# The XML_DTD tag can be used to specify an XML DTD, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_DTD = + +# If the XML_PROGRAMLISTING tag is set to YES Doxygen will +# dump the program listings (including syntax highlighting +# and cross-referencing information) to the XML output. Note that +# enabling this will significantly increase the size of the XML output. + +XML_PROGRAMLISTING = YES + +#--------------------------------------------------------------------------- +# configuration options related to the DOCBOOK output +#--------------------------------------------------------------------------- + +# If the GENERATE_DOCBOOK tag is set to YES Doxygen will generate DOCBOOK files +# that can be used to generate PDF. + +GENERATE_DOCBOOK = NO + +# The DOCBOOK_OUTPUT tag is used to specify where the DOCBOOK pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be put in +# front of it. If left blank docbook will be used as the default path. + +DOCBOOK_OUTPUT = docbook + +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- + +# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will +# generate an AutoGen Definitions (see autogen.sf.net) file +# that captures the structure of the code including all +# documentation. Note that this feature is still experimental +# and incomplete at the moment. + +GENERATE_AUTOGEN_DEF = NO + +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- + +# If the GENERATE_PERLMOD tag is set to YES Doxygen will +# generate a Perl module file that captures the structure of +# the code including all documentation. Note that this +# feature is still experimental and incomplete at the +# moment. + +GENERATE_PERLMOD = NO + +# If the PERLMOD_LATEX tag is set to YES Doxygen will generate +# the necessary Makefile rules, Perl scripts and LaTeX code to be able +# to generate PDF and DVI output from the Perl module output. + +PERLMOD_LATEX = NO + +# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be +# nicely formatted so it can be parsed by a human reader. This is useful +# if you want to understand what is going on. On the other hand, if this +# tag is set to NO the size of the Perl module output will be much smaller +# and Perl will parse it just the same. + +PERLMOD_PRETTY = YES + +# The names of the make variables in the generated doxyrules.make file +# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. +# This is useful so different doxyrules.make files included by the same +# Makefile don't overwrite each other's variables. + +PERLMOD_MAKEVAR_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- + +# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will +# evaluate all C-preprocessor directives found in the sources and include +# files. + +ENABLE_PREPROCESSING = YES + +# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro +# names in the source code. If set to NO (the default) only conditional +# compilation will be performed. Macro expansion can be done in a controlled +# way by setting EXPAND_ONLY_PREDEF to YES. + +MACRO_EXPANSION = NO + +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES +# then the macro expansion is limited to the macros specified with the +# PREDEFINED and EXPAND_AS_DEFINED tags. + +EXPAND_ONLY_PREDEF = NO + +# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files +# pointed to by INCLUDE_PATH will be searched when a #include is found. + +SEARCH_INCLUDES = YES + +# The INCLUDE_PATH tag can be used to specify one or more directories that +# contain include files that are not input files but should be processed by +# the preprocessor. + +INCLUDE_PATH = + +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard +# patterns (like *.h and *.hpp) to filter out the header-files in the +# directories. If left blank, the patterns specified with FILE_PATTERNS will +# be used. + +INCLUDE_FILE_PATTERNS = + +# The PREDEFINED tag can be used to specify one or more macro names that +# are defined before the preprocessor is started (similar to the -D option of +# gcc). The argument of the tag is a list of macros of the form: name +# or name=definition (no spaces). If the definition and the = are +# omitted =1 is assumed. To prevent a macro definition from being +# undefined via #undef or recursively expanded use the := operator +# instead of the = operator. + +PREDEFINED = + +# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then +# this tag can be used to specify a list of macro names that should be expanded. +# The macro definition that is found in the sources will be used. +# Use the PREDEFINED tag if you want to use a different macro definition that +# overrules the definition found in the source code. + +EXPAND_AS_DEFINED = + +# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then +# doxygen's preprocessor will remove all references to function-like macros +# that are alone on a line, have an all uppercase name, and do not end with a +# semicolon, because these will confuse the parser if not removed. + +SKIP_FUNCTION_MACROS = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- + +# The TAGFILES option can be used to specify one or more tagfiles. For each +# tag file the location of the external documentation should be added. The +# format of a tag file without this location is as follows: +# TAGFILES = file1 file2 ... +# Adding location for the tag files is done as follows: +# TAGFILES = file1=loc1 "file2 = loc2" ... +# where "loc1" and "loc2" can be relative or absolute paths +# or URLs. Note that each tag file must have a unique name (where the name does +# NOT include the path). If a tag file is not located in the directory in which +# doxygen is run, you must also specify the path to the tagfile here. + +TAGFILES = + +# When a file name is specified after GENERATE_TAGFILE, doxygen will create +# a tag file that is based on the input files it reads. + +GENERATE_TAGFILE = + +# If the ALLEXTERNALS tag is set to YES all external classes will be listed +# in the class index. If set to NO only the inherited external classes +# will be listed. + +ALLEXTERNALS = NO + +# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed +# in the modules index. If set to NO, only the current project's groups will +# be listed. + +EXTERNAL_GROUPS = YES + +# If the EXTERNAL_PAGES tag is set to YES all external pages will be listed +# in the related pages index. If set to NO, only the current project's +# pages will be listed. + +EXTERNAL_PAGES = YES + +# The PERL_PATH should be the absolute path and name of the perl script +# interpreter (i.e. the result of `which perl'). + +PERL_PATH = /usr/bin/perl + +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- + +# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will +# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base +# or super classes. Setting the tag to NO turns the diagrams off. Note that +# this option also works with HAVE_DOT disabled, but it is recommended to +# install and use dot, since it yields more powerful graphs. + +CLASS_DIAGRAMS = YES + +# You can define message sequence charts within doxygen comments using the \msc +# command. Doxygen will then run the mscgen tool (see +# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the +# documentation. The MSCGEN_PATH tag allows you to specify the directory where +# the mscgen tool resides. If left empty the tool is assumed to be found in the +# default search path. + +MSCGEN_PATH = + +# If set to YES, the inheritance and collaboration graphs will hide +# inheritance and usage relations if the target is undocumented +# or is not a class. + +HIDE_UNDOC_RELATIONS = YES + +# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is +# available from the path. This tool is part of Graphviz, a graph visualization +# toolkit from AT&T and Lucent Bell Labs. The other options in this section +# have no effect if this option is set to NO (the default) + +HAVE_DOT = NO + +# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is +# allowed to run in parallel. When set to 0 (the default) doxygen will +# base this on the number of processors available in the system. You can set it +# explicitly to a value larger than 0 to get control over the balance +# between CPU load and processing speed. + +DOT_NUM_THREADS = 0 + +# By default doxygen will use the Helvetica font for all dot files that +# doxygen generates. When you want a differently looking font you can specify +# the font name using DOT_FONTNAME. You need to make sure dot is able to find +# the font, which can be done by putting it in a standard location or by setting +# the DOTFONTPATH environment variable or by setting DOT_FONTPATH to the +# directory containing the font. + +DOT_FONTNAME = Helvetica + +# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. +# The default size is 10pt. + +DOT_FONTSIZE = 10 + +# By default doxygen will tell dot to use the Helvetica font. +# If you specify a different font using DOT_FONTNAME you can use DOT_FONTPATH to +# set the path where dot can find it. + +DOT_FONTPATH = + +# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect inheritance relations. Setting this tag to YES will force the +# CLASS_DIAGRAMS tag to NO. + +CLASS_GRAPH = YES + +# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect implementation dependencies (inheritance, containment, and +# class references variables) of the class with other documented classes. + +COLLABORATION_GRAPH = YES + +# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for groups, showing the direct groups dependencies + +GROUP_GRAPHS = YES + +# If the UML_LOOK tag is set to YES doxygen will generate inheritance and +# collaboration diagrams in a style similar to the OMG's Unified Modeling +# Language. + +UML_LOOK = NO + +# If the UML_LOOK tag is enabled, the fields and methods are shown inside +# the class node. If there are many fields or methods and many nodes the +# graph may become too big to be useful. The UML_LIMIT_NUM_FIELDS +# threshold limits the number of items for each type to make the size more +# manageable. Set this to 0 for no limit. Note that the threshold may be +# exceeded by 50% before the limit is enforced. + +UML_LIMIT_NUM_FIELDS = 10 + +# If set to YES, the inheritance and collaboration graphs will show the +# relations between templates and their instances. + +TEMPLATE_RELATIONS = NO + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT +# tags are set to YES then doxygen will generate a graph for each documented +# file showing the direct and indirect include dependencies of the file with +# other documented files. + +INCLUDE_GRAPH = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and +# HAVE_DOT tags are set to YES then doxygen will generate a graph for each +# documented header file showing the documented files that directly or +# indirectly include this file. + +INCLUDED_BY_GRAPH = YES + +# If the CALL_GRAPH and HAVE_DOT options are set to YES then +# doxygen will generate a call dependency graph for every global function +# or class method. Note that enabling this option will significantly increase +# the time of a run. So in most cases it will be better to enable call graphs +# for selected functions only using the \callgraph command. + +CALL_GRAPH = NO + +# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then +# doxygen will generate a caller dependency graph for every global function +# or class method. Note that enabling this option will significantly increase +# the time of a run. So in most cases it will be better to enable caller +# graphs for selected functions only using the \callergraph command. + +CALLER_GRAPH = NO + +# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen +# will generate a graphical hierarchy of all classes instead of a textual one. + +GRAPHICAL_HIERARCHY = YES + +# If the DIRECTORY_GRAPH and HAVE_DOT tags are set to YES +# then doxygen will show the dependencies a directory has on other directories +# in a graphical way. The dependency relations are determined by the #include +# relations between the files in the directories. + +DIRECTORY_GRAPH = YES + +# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images +# generated by dot. Possible values are svg, png, jpg, or gif. +# If left blank png will be used. If you choose svg you need to set +# HTML_FILE_EXTENSION to xhtml in order to make the SVG files +# visible in IE 9+ (other browsers do not have this requirement). + +DOT_IMAGE_FORMAT = png + +# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to +# enable generation of interactive SVG images that allow zooming and panning. +# Note that this requires a modern browser other than Internet Explorer. +# Tested and working are Firefox, Chrome, Safari, and Opera. For IE 9+ you +# need to set HTML_FILE_EXTENSION to xhtml in order to make the SVG files +# visible. Older versions of IE do not have SVG support. + +INTERACTIVE_SVG = NO + +# The tag DOT_PATH can be used to specify the path where the dot tool can be +# found. If left blank, it is assumed the dot tool can be found in the path. + +DOT_PATH = + +# The DOTFILE_DIRS tag can be used to specify one or more directories that +# contain dot files that are included in the documentation (see the +# \dotfile command). + +DOTFILE_DIRS = + +# The MSCFILE_DIRS tag can be used to specify one or more directories that +# contain msc files that are included in the documentation (see the +# \mscfile command). + +MSCFILE_DIRS = + +# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of +# nodes that will be shown in the graph. If the number of nodes in a graph +# becomes larger than this value, doxygen will truncate the graph, which is +# visualized by representing a node as a red box. Note that doxygen if the +# number of direct children of the root node in a graph is already larger than +# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note +# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. + +DOT_GRAPH_MAX_NODES = 50 + +# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the +# graphs generated by dot. A depth value of 3 means that only nodes reachable +# from the root by following a path via at most 3 edges will be shown. Nodes +# that lay further from the root node will be omitted. Note that setting this +# option to 1 or 2 may greatly reduce the computation time needed for large +# code bases. Also note that the size of a graph can be further restricted by +# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. + +MAX_DOT_GRAPH_DEPTH = 0 + +# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent +# background. This is disabled by default, because dot on Windows does not +# seem to support this out of the box. Warning: Depending on the platform used, +# enabling this option may lead to badly anti-aliased labels on the edges of +# a graph (i.e. they become hard to read). + +DOT_TRANSPARENT = NO + +# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output +# files in one run (i.e. multiple -o and -T options on the command line). This +# makes dot run faster, but since only newer versions of dot (>1.8.10) +# support this, this feature is disabled by default. + +DOT_MULTI_TARGETS = NO + +# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will +# generate a legend page explaining the meaning of the various boxes and +# arrows in the dot generated graphs. + +GENERATE_LEGEND = YES + +# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will +# remove the intermediate dot files that are used to generate +# the various graphs. + +DOT_CLEANUP = YES diff --git a/visualtest/docs/html/_s_d_l__visualtest__action__configparser_8h.html b/visualtest/docs/html/_s_d_l__visualtest__action__configparser_8h.html new file mode 100755 index 0000000000000..c6a5898bd0fd2 --- /dev/null +++ b/visualtest/docs/html/_s_d_l__visualtest__action__configparser_8h.html @@ -0,0 +1,424 @@ + + + + + + +SDL Visual Test: C:/Users/DELL/Work/sdlvisualtest/visualtest/include/SDL_visualtest_action_configparser.h File Reference + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
SDL_visualtest_action_configparser.h File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + +

+Data Structures

struct  SDLVisualTest_Action
 
struct  SDLVisualTest_ActionNode
 
struct  SDLVisualTest_ActionQueue
 
+ + + +

+Macros

#define MAX_ACTION_LINE_LENGTH   300
 
+ + + + + + + +

+Typedefs

typedef struct SDLVisualTest_Action SDLVisualTest_Action
 
typedef struct
+SDLVisualTest_ActionNode 
SDLVisualTest_ActionNode
 
typedef struct
+SDLVisualTest_ActionQueue 
SDLVisualTest_ActionQueue
 
+ + + +

+Enumerations

enum  SDLVisualTest_ActionType {
+  SDL_ACTION_LAUNCH = 0, +SDL_ACTION_KILL, +SDL_ACTION_QUIT, +SDL_ACTION_SCREENSHOT, +
+  SDL_ACTION_VERIFY +
+ }
 
+ + + + + + + + + + + + + + + + + +

+Functions

int SDLVisualTest_EnqueueAction (SDLVisualTest_ActionQueue *queue, SDLVisualTest_Action action)
 
int SDLVisualTest_DequeueAction (SDLVisualTest_ActionQueue *queue)
 
void SDLVisualTest_InitActionQueue (SDLVisualTest_ActionQueue *queue)
 
SDLVisualTest_ActionSDLVisualTest_GetQueueFront (SDLVisualTest_ActionQueue *queue)
 
int SDLVisualTest_IsActionQueueEmpty (SDLVisualTest_ActionQueue *queue)
 
void SDLVisualTest_EmptyActionQueue (SDLVisualTest_ActionQueue *queue)
 
int SDLVisualTest_InsertIntoActionQueue (SDLVisualTest_ActionQueue *queue, SDLVisualTest_Action action)
 
int SDLVisualTest_ParseActionConfig (char *file, SDLVisualTest_ActionQueue *queue)
 
+

Detailed Description

+

Header file for the parser for action config files.

+

Macro Definition Documentation

+ +
+
+ + + + +
#define MAX_ACTION_LINE_LENGTH   300
+
+

The maximum length of one line in the actions file

+ +
+
+

Typedef Documentation

+ +
+
+ + + + +
typedef struct SDLVisualTest_Action SDLVisualTest_Action
+
+

Struct that defines an action that will be performed on the SUT process at a specific time.

+ +
+
+ +
+
+

Struct for a node in the action queue.

+ +
+
+ +
+
+

Queue structure for actions loaded from the actions config file.

+ +
+
+

Enumeration Type Documentation

+ +
+
+ + + + +
enum SDLVisualTest_ActionType
+
+

Type of the action.

+ + + + + + +
Enumerator
SDL_ACTION_LAUNCH  +

Launch an application with some given arguments

+
SDL_ACTION_KILL  +

Kill the SUT process

+
SDL_ACTION_QUIT  +

Quit (Gracefully exit) the SUT process

+
SDL_ACTION_SCREENSHOT  +

Take a screenshot of the SUT window

+
SDL_ACTION_VERIFY  +

Verify a previously taken screenshot

+
+ +
+
+

Function Documentation

+ +
+
+ + + + + + + + +
int SDLVisualTest_DequeueAction (SDLVisualTest_ActionQueuequeue)
+
+

Remove an action from the front of the action queue pointed to by queue.

+
Returns
1 on success, 0 on failure.
+ +
+
+ +
+
+ + + + + + + + +
void SDLVisualTest_EmptyActionQueue (SDLVisualTest_ActionQueuequeue)
+
+

Dequeues all the elements in the queque pointed to by queue.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
int SDLVisualTest_EnqueueAction (SDLVisualTest_ActionQueuequeue,
SDLVisualTest_Action action 
)
+
+

Add an action pointed to by action to the rear of the action queue pointed to by queue.

+
Returns
1 on success, 0 on failure.
+ +
+
+ +
+
+ + + + + + + + +
SDLVisualTest_Action* SDLVisualTest_GetQueueFront (SDLVisualTest_ActionQueuequeue)
+
+

Get the action at the front of the action queue pointed to by queue. The returned action pointer may become invalid after subsequent dequeues.

+
Returns
pointer to the action on success, NULL on failure.
+ +
+
+ +
+
+ + + + + + + + +
void SDLVisualTest_InitActionQueue (SDLVisualTest_ActionQueuequeue)
+
+

Initialize the action queue pointed to by queue.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
int SDLVisualTest_InsertIntoActionQueue (SDLVisualTest_ActionQueuequeue,
SDLVisualTest_Action action 
)
+
+

Inserts an action action into the queue pointed to by queue such that the times of actions in the queue increase as we move from the front to the rear.

+
Returns
1 on success, 0 on failure.
+ +
+
+ +
+
+ + + + + + + + +
int SDLVisualTest_IsActionQueueEmpty (SDLVisualTest_ActionQueuequeue)
+
+

Check if the queue pointed to by queue is empty or not.

+
Returns
1 if the queue is empty, 0 otherwise.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
int SDLVisualTest_ParseActionConfig (char * file,
SDLVisualTest_ActionQueuequeue 
)
+
+

Parses an action config file with path file and populates an action queue pointed to by queue with actions.

+
Returns
1 on success, 0 on failure.
+ +
+
+
+ + + + diff --git a/visualtest/docs/html/_s_d_l__visualtest__action__configparser_8h_source.html b/visualtest/docs/html/_s_d_l__visualtest__action__configparser_8h_source.html new file mode 100755 index 0000000000000..ae0b21c932ca4 --- /dev/null +++ b/visualtest/docs/html/_s_d_l__visualtest__action__configparser_8h_source.html @@ -0,0 +1,169 @@ + + + + + + +SDL Visual Test: C:/Users/DELL/Work/sdlvisualtest/visualtest/include/SDL_visualtest_action_configparser.h Source File + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + + +
+ +
+ + +
+
+
+
SDL_visualtest_action_configparser.h
+
+
+Go to the documentation of this file.
1 /* See COPYING.txt for the full license governing this code. */
+
8 #ifndef _SDL_visualtest_action_configparser_h
+
9 #define _SDL_visualtest_action_configparser_h
+
10 
+
12 #define MAX_ACTION_LINE_LENGTH 300
+
13 
+
14 /* Set up for C function definitions, even when using C++ */
+
15 #ifdef __cplusplus
+
16 extern "C" {
+
17 #endif
+
18 
+
22 typedef enum
+
23 {
+ + + + + + +
35 
+
40 typedef struct SDLVisualTest_Action
+
41 {
+ +
46  int time;
+
48  union
+
49  {
+
51  struct
+
52  {
+
53  char* path;
+
54  char* args;
+
55  } process;
+
56  } extra;
+ +
58 
+ +
63 {
+ + + +
69 
+ +
74 {
+ + +
80  int size;
+ +
82 
+ +
90  SDLVisualTest_Action action);
+
91 
+ +
98 
+ +
103 
+ +
111 
+ +
118 
+ +
123 
+ +
132  SDLVisualTest_Action action);
+
133 
+ +
141 
+
142 /* Ends C function definitions when using C++ */
+
143 #ifdef __cplusplus
+
144 }
+
145 #endif
+
146 
+
147 #endif /* _SDL_visualtest_action_configparser_h */
+
+ + + + diff --git a/visualtest/docs/html/_s_d_l__visualtest__exhaustive__variator_8h.html b/visualtest/docs/html/_s_d_l__visualtest__exhaustive__variator_8h.html new file mode 100755 index 0000000000000..7263ed8869af2 --- /dev/null +++ b/visualtest/docs/html/_s_d_l__visualtest__exhaustive__variator_8h.html @@ -0,0 +1,208 @@ + + + + + + +SDL Visual Test: C:/Users/DELL/Work/sdlvisualtest/visualtest/include/SDL_visualtest_exhaustive_variator.h File Reference + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
SDL_visualtest_exhaustive_variator.h File Reference
+
+
+ +

Go to the source code of this file.

+ + + + +

+Data Structures

struct  SDLVisualTest_ExhaustiveVariator
 
+ + + +

+Typedefs

typedef struct
+SDLVisualTest_ExhaustiveVariator 
SDLVisualTest_ExhaustiveVariator
 
+ + + + + + + +

+Functions

int SDLVisualTest_InitExhaustiveVariator (SDLVisualTest_ExhaustiveVariator *variator, SDLVisualTest_SUTConfig *config)
 
char * SDLVisualTest_GetNextExhaustiveVariation (SDLVisualTest_ExhaustiveVariator *variator)
 
void SDLVisualTest_FreeExhaustiveVariator (SDLVisualTest_ExhaustiveVariator *variator)
 
+

Detailed Description

+

Header for the exhaustive variator.

+

Typedef Documentation

+ +
+
+

Struct for the variator that exhaustively iterates through all variations of command line arguments to the SUT.

+ +
+
+

Function Documentation

+ +
+
+ + + + + + + + +
void SDLVisualTest_FreeExhaustiveVariator (SDLVisualTest_ExhaustiveVariatorvariator)
+
+

Frees any resources associated with the variator.

+ +
+
+ +
+
+ + + + + + + + +
char* SDLVisualTest_GetNextExhaustiveVariation (SDLVisualTest_ExhaustiveVariatorvariator)
+
+

Gets the arguments string for the next variation using the variator and updates the variator's current variation object to the next variation.

+
Returns
The arguments string representing the next variation on success, and NULL on failure or if we have iterated through all possible variations. In the latter case subsequent calls will start the variations again from the very beginning. The pointer returned should not be freed.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
int SDLVisualTest_InitExhaustiveVariator (SDLVisualTest_ExhaustiveVariatorvariator,
SDLVisualTest_SUTConfigconfig 
)
+
+

Initializes the variator.

+
Returns
1 on success, 0 on failure
+ +
+
+
+ + + + diff --git a/visualtest/docs/html/_s_d_l__visualtest__exhaustive__variator_8h_source.html b/visualtest/docs/html/_s_d_l__visualtest__exhaustive__variator_8h_source.html new file mode 100755 index 0000000000000..99d91a5dd228a --- /dev/null +++ b/visualtest/docs/html/_s_d_l__visualtest__exhaustive__variator_8h_source.html @@ -0,0 +1,130 @@ + + + + + + +SDL Visual Test: C:/Users/DELL/Work/sdlvisualtest/visualtest/include/SDL_visualtest_exhaustive_variator.h Source File + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + + +
+ +
+ + +
+
+
+
SDL_visualtest_exhaustive_variator.h
+
+
+Go to the documentation of this file.
1 /* See COPYING.txt for the full license governing this code. */
+ + +
10 
+
11 #ifndef _SDL_visualtest_exhaustive_variator_h
+
12 #define _SDL_visualtest_exhaustive_variator_h
+
13 
+
14 /* Set up for C function definitions, even when using C++ */
+
15 #ifdef __cplusplus
+
16 extern "C" {
+
17 #endif
+
18 
+ +
24 {
+ + + + +
32 
+ +
39  SDLVisualTest_SUTConfig* config);
+
40 
+ +
51 
+ +
56 
+
57 /* Ends C function definitions when using C++ */
+
58 #ifdef __cplusplus
+
59 }
+
60 #endif
+
61 
+
62 #endif /* _SDL_visualtest_exhaustive_variator_h */
+
+ + + + diff --git a/visualtest/docs/html/_s_d_l__visualtest__harness__argparser_8h.html b/visualtest/docs/html/_s_d_l__visualtest__harness__argparser_8h.html new file mode 100755 index 0000000000000..dc8e9c69400f2 --- /dev/null +++ b/visualtest/docs/html/_s_d_l__visualtest__harness__argparser_8h.html @@ -0,0 +1,231 @@ + + + + + + +SDL Visual Test: C:/Users/DELL/Work/sdlvisualtest/visualtest/include/SDL_visualtest_harness_argparser.h File Reference + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
SDL_visualtest_harness_argparser.h File Reference
+
+
+ +

Go to the source code of this file.

+ + + + +

+Data Structures

struct  SDLVisualTest_HarnessState
 
+ + + + + +

+Macros

#define MAX_PATH_LEN   300
 
#define MAX_SUT_ARGS_LEN   600
 
+ + + +

+Typedefs

typedef struct
+SDLVisualTest_HarnessState 
SDLVisualTest_HarnessState
 
+ + + + + +

+Functions

int SDLVisualTest_ParseHarnessArgs (char **argv, SDLVisualTest_HarnessState *state)
 
void SDLVisualTest_FreeHarnessState (SDLVisualTest_HarnessState *state)
 
+

Detailed Description

+

Provides functionality to parse command line arguments to the test harness.

+

Macro Definition Documentation

+ +
+
+ + + + +
#define MAX_PATH_LEN   300
+
+

Maximum length of a path string

+ +
+
+ +
+
+ + + + +
#define MAX_SUT_ARGS_LEN   600
+
+

Maximum length of a string of SUT arguments

+ +
+
+

Typedef Documentation

+ +
+
+

Stores the state of the test harness.

+ +
+
+

Function Documentation

+ +
+
+ + + + + + + + +
void SDLVisualTest_FreeHarnessState (SDLVisualTest_HarnessStatestate)
+
+

Frees any resources associated with the state object pointed to by state.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
int SDLVisualTest_ParseHarnessArgs (char ** argv,
SDLVisualTest_HarnessStatestate 
)
+
+

Parse command line paramters to the test harness and populate a state object.

+
Parameters
+ + + +
argvThe array of command line parameters.
statePointer to the state object to be populated.
+
+
+
Returns
Non-zero on success, zero on failure.
+ +
+
+
+ + + + diff --git a/visualtest/docs/html/_s_d_l__visualtest__harness__argparser_8h_source.html b/visualtest/docs/html/_s_d_l__visualtest__harness__argparser_8h_source.html new file mode 100755 index 0000000000000..4a6c06632725b --- /dev/null +++ b/visualtest/docs/html/_s_d_l__visualtest__harness__argparser_8h_source.html @@ -0,0 +1,140 @@ + + + + + + +SDL Visual Test: C:/Users/DELL/Work/sdlvisualtest/visualtest/include/SDL_visualtest_harness_argparser.h Source File + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + + +
+ +
+ + +
+
+
+
SDL_visualtest_harness_argparser.h
+
+
+Go to the documentation of this file.
1 
+
7 #include <SDL.h>
+ + + +
11 
+
12 #ifndef _SDL_visualtest_harness_argparser_h
+
13 #define _SDL_visualtest_harness_argparser_h
+
14 
+
16 #define MAX_PATH_LEN 300
+
17 
+
18 #define MAX_SUT_ARGS_LEN 600
+
19 
+
20 /* Set up for C function definitions, even when using C++ */
+
21 #ifdef __cplusplus
+
22 extern "C" {
+
23 #endif
+
24 
+ +
29 {
+ + +
35  int timeout;
+ + + +
44  SDL_bool no_launch;
+ + + + +
52 
+ +
62 
+ +
67 
+
68 /* Ends C function definitions when using C++ */
+
69 #ifdef __cplusplus
+
70 }
+
71 #endif
+
72 
+
73 #endif /* _SDL_visualtest_harness_argparser_h */
+
+ + + + diff --git a/visualtest/docs/html/_s_d_l__visualtest__mischelper_8h_source.html b/visualtest/docs/html/_s_d_l__visualtest__mischelper_8h_source.html new file mode 100755 index 0000000000000..507cad7b15378 --- /dev/null +++ b/visualtest/docs/html/_s_d_l__visualtest__mischelper_8h_source.html @@ -0,0 +1,115 @@ + + + + + + +SDL Visual Test: C:/Users/DELL/Work/sdlvisualtest/visualtest/include/SDL_visualtest_mischelper.h Source File + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + + +
+ +
+ + +
+
+
+
SDL_visualtest_mischelper.h
+
+
+
1 
+
7 #ifndef _SDL_visualtest_mischelper_h
+
8 #define _SDL_visualtest_mischelper_h
+
9 
+
10 /* Set up for C function definitions, even when using C++ */
+
11 #ifdef __cplusplus
+
12 extern "C" {
+
13 #endif
+
14 
+
19 void SDLVisualTest_HashString(char* str, char hash[33]);
+
20 
+
21 /* Ends C function definitions when using C++ */
+
22 #ifdef __cplusplus
+
23 }
+
24 #endif
+
25 
+
26 #endif /* _SDL_visualtest_mischelper_h */
+
+ + + + diff --git a/visualtest/docs/html/_s_d_l__visualtest__parsehelper_8h.html b/visualtest/docs/html/_s_d_l__visualtest__parsehelper_8h.html new file mode 100755 index 0000000000000..3e83551d08395 --- /dev/null +++ b/visualtest/docs/html/_s_d_l__visualtest__parsehelper_8h.html @@ -0,0 +1,172 @@ + + + + + + +SDL Visual Test: C:/Users/DELL/Work/sdlvisualtest/visualtest/include/SDL_visualtest_parsehelper.h File Reference + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
SDL_visualtest_parsehelper.h File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + +

+Functions

char ** SDLVisualTest_ParseArgsToArgv (char *args)
 
char ** SDLVisualTest_Tokenize (char *str, int max_token_len)
 
+

Detailed Description

+

Header with some helper functions for parsing strings.

+

Function Documentation

+ +
+
+ + + + + + + + +
char** SDLVisualTest_ParseArgsToArgv (char * args)
+
+

Takes an string of command line arguments and breaks them up into an array based on whitespace.

+
Parameters
+ + +
argsThe string of arguments.
+
+
+
Returns
NULL on failure, an array of strings on success. The last element of the array is NULL. The first element of the array is NULL and should be set to the path of the executable by the caller.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
char** SDLVisualTest_Tokenize (char * str,
int max_token_len 
)
+
+

Takes a string and breaks it into tokens by splitting on whitespace.

+
Parameters
+ + + +
strThe string to be split.
max_token_lenLength of each element in the array to be returned.
+
+
+
Returns
NULL on failure; an array of strings with the tokens on success. The last element of the array is NULL.
+ +
+
+
+ + + + diff --git a/visualtest/docs/html/_s_d_l__visualtest__parsehelper_8h_source.html b/visualtest/docs/html/_s_d_l__visualtest__parsehelper_8h_source.html new file mode 100755 index 0000000000000..49a330d2d409c --- /dev/null +++ b/visualtest/docs/html/_s_d_l__visualtest__parsehelper_8h_source.html @@ -0,0 +1,117 @@ + + + + + + +SDL Visual Test: C:/Users/DELL/Work/sdlvisualtest/visualtest/include/SDL_visualtest_parsehelper.h Source File + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + + +
+ +
+ + +
+
+
+
SDL_visualtest_parsehelper.h
+
+
+Go to the documentation of this file.
1 /* See COPYING.txt for the full license governing this code. */
+
8 #ifndef _SDL_visualtest_parsehelper_h
+
9 #define _SDL_visualtest_parsehelper_h
+
10 
+
11 /* Set up for C function definitions, even when using C++ */
+
12 #ifdef __cplusplus
+
13 extern "C" {
+
14 #endif
+
15 
+
26 char** SDLVisualTest_ParseArgsToArgv(char* args);
+
27 
+
37 char** SDLVisualTest_Tokenize(char* str, int max_token_len);
+
38 
+
39 /* Ends C function definitions when using C++ */
+
40 #ifdef __cplusplus
+
41 }
+
42 #endif
+
43 
+
44 #endif /* _SDL_visualtest_parsehelper_h */
+
+ + + + diff --git a/visualtest/docs/html/_s_d_l__visualtest__process_8h.html b/visualtest/docs/html/_s_d_l__visualtest__process_8h.html new file mode 100755 index 0000000000000..c666d19cbab57 --- /dev/null +++ b/visualtest/docs/html/_s_d_l__visualtest__process_8h.html @@ -0,0 +1,328 @@ + + + + + + +SDL Visual Test: C:/Users/DELL/Work/sdlvisualtest/visualtest/include/SDL_visualtest_process.h File Reference + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
SDL_visualtest_process.h File Reference
+
+
+
#include <SDL_platform.h>
+
+

Go to the source code of this file.

+ + + + + + +

+Data Structures

struct  SDL_ProcessInfo
 
struct  SDL_ProcessExitStatus
 
+ + + + + +

+Typedefs

typedef struct SDL_ProcessInfo SDL_ProcessInfo
 
typedef struct
+SDL_ProcessExitStatus 
SDL_ProcessExitStatus
 
+ + + + + + + + + + + +

+Functions

int SDL_LaunchProcess (char *file, char *args, SDL_ProcessInfo *pinfo)
 
int SDL_IsProcessRunning (SDL_ProcessInfo *pinfo)
 
int SDL_KillProcess (SDL_ProcessInfo *pinfo, SDL_ProcessExitStatus *ps)
 
int SDL_QuitProcess (SDL_ProcessInfo *pinfo, SDL_ProcessExitStatus *ps)
 
int SDL_GetProcessExitStatus (SDL_ProcessInfo *pinfo, SDL_ProcessExitStatus *ps)
 
+

Detailed Description

+

Provides cross-platfrom process launching and termination functionality.

+

Typedef Documentation

+ +
+
+ + + + +
typedef struct SDL_ProcessExitStatus SDL_ProcessExitStatus
+
+

This structure stores the exit status (value returned by main()) and whether the process exited sucessfully or not.

+ +
+
+ +
+
+ + + + +
typedef struct SDL_ProcessInfo SDL_ProcessInfo
+
+

Struct to store a platform specific handle to a process.

+ +
+
+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
int SDL_GetProcessExitStatus (SDL_ProcessInfopinfo,
SDL_ProcessExitStatusps 
)
+
+

Gets the exit status of a process. If the exit status is -1, the process is still running.

+
Parameters
+ + + +
pinfoPointer to a SDL_ProcessInfo object of the process to be checked.
psPointer to a SDL_ProcessExitStatus object which will be populated with the exit status.
+
+
+
Returns
1 on success, 0 on failure.
+ +
+
+ +
+
+ + + + + + + + +
int SDL_IsProcessRunning (SDL_ProcessInfopinfo)
+
+

Checks if a process is running or not.

+
Parameters
+ + +
pinfoPointer to SDL_ProcessInfo object of the process that needs to be checked.
+
+
+
Returns
1 if the process is still running; zero if it is not and -1 if the status could not be retrieved.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
int SDL_KillProcess (SDL_ProcessInfopinfo,
SDL_ProcessExitStatusps 
)
+
+

Kills a currently running process.

+
Parameters
+ + + +
pinfoPointer to a SDL_ProcessInfo object of the process to be terminated.
psPointer to a SDL_ProcessExitStatus object which will be populated with the exit status.
+
+
+
Returns
1 on success, 0 on failure.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
int SDL_LaunchProcess (char * file,
char * args,
SDL_ProcessInfopinfo 
)
+
+

Launches a process with the given commandline arguments.

+
Parameters
+ + + + +
fileThe path to the executable to be launched.
argsThe command line arguments to be passed to the process.
pinfoPointer to an SDL_ProcessInfo object to be populated with platform specific information about the launched process.
+
+
+
Returns
Non-zero on success, zero on failure.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
int SDL_QuitProcess (SDL_ProcessInfopinfo,
SDL_ProcessExitStatusps 
)
+
+

Cleanly exits the process represented by pinfo and stores the exit status in the exit status object pointed to by ps.

+
Returns
1 on success, 0 on failure.
+ +
+
+
+ + + + diff --git a/visualtest/docs/html/_s_d_l__visualtest__process_8h_source.html b/visualtest/docs/html/_s_d_l__visualtest__process_8h_source.html new file mode 100755 index 0000000000000..701c6429eec5d --- /dev/null +++ b/visualtest/docs/html/_s_d_l__visualtest__process_8h_source.html @@ -0,0 +1,152 @@ + + + + + + +SDL Visual Test: C:/Users/DELL/Work/sdlvisualtest/visualtest/include/SDL_visualtest_process.h Source File + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + + +
+ +
+ + +
+
+
+
SDL_visualtest_process.h
+
+
+Go to the documentation of this file.
1 /* See COPYING.txt for the full license governing this code. */
+
8 #include <SDL_platform.h>
+
9 
+
10 #if defined(__WIN32__)
+
11 #include <Windows.h>
+
12 #include <Shlwapi.h>
+
13 #elif defined(__LINUX__)
+
14 #include <unistd.h>
+
15 #else
+
16 #error "Unsupported platform."
+
17 #endif
+
18 
+
19 #ifndef _SDL_visualtest_process_h
+
20 #define _SDL_visualtest_process_h
+
21 
+
22 /* Set up for C function definitions, even when using C++ */
+
23 #ifdef __cplusplus
+
24 extern "C" {
+
25 #endif
+
26 
+
30 typedef struct SDL_ProcessInfo
+
31 {
+
32 //#if defined(_WIN32) || defined(__WIN32__)
+
33 #if defined(__WIN32__)
+
34  PROCESS_INFORMATION pi;
+
35 //#elif defined(__linux__)
+
36 #elif defined(__LINUX__)
+
37  int pid;
+
38 #endif
+ +
40 
+
45 typedef struct SDL_ProcessExitStatus
+
46 {
+ + + +
50 
+
61 int SDL_LaunchProcess(char* file, char* args, SDL_ProcessInfo* pinfo);
+
62 
+ +
73 
+ +
84 
+ +
92 
+ +
104 
+
105 /* Ends C function definitions when using C++ */
+
106 #ifdef __cplusplus
+
107 }
+
108 #endif
+
109 
+
110 #endif /* _SDL_visualtest_process_h */
+
111 
+
+ + + + diff --git a/visualtest/docs/html/_s_d_l__visualtest__random__variator_8h.html b/visualtest/docs/html/_s_d_l__visualtest__random__variator_8h.html new file mode 100755 index 0000000000000..2b785a533dafd --- /dev/null +++ b/visualtest/docs/html/_s_d_l__visualtest__random__variator_8h.html @@ -0,0 +1,213 @@ + + + + + + +SDL Visual Test: C:/Users/DELL/Work/sdlvisualtest/visualtest/include/SDL_visualtest_random_variator.h File Reference + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
SDL_visualtest_random_variator.h File Reference
+
+
+ +

Go to the source code of this file.

+ + + + +

+Data Structures

struct  SDLVisualTest_RandomVariator
 
+ + + +

+Typedefs

typedef struct
+SDLVisualTest_RandomVariator 
SDLVisualTest_RandomVariator
 
+ + + + + + + +

+Functions

int SDLVisualTest_InitRandomVariator (SDLVisualTest_RandomVariator *variator, SDLVisualTest_SUTConfig *config, Uint64 seed)
 
char * SDLVisualTest_GetNextRandomVariation (SDLVisualTest_RandomVariator *variator)
 
void SDLVisualTest_FreeRandomVariator (SDLVisualTest_RandomVariator *variator)
 
+

Detailed Description

+

Header for the random variator.

+

Typedef Documentation

+ +
+
+

Struct for the variator that randomly generates variations of command line arguments to the SUT.

+ +
+
+

Function Documentation

+ +
+
+ + + + + + + + +
void SDLVisualTest_FreeRandomVariator (SDLVisualTest_RandomVariatorvariator)
+
+

Frees any resources associated with the variator.

+ +
+
+ +
+
+ + + + + + + + +
char* SDLVisualTest_GetNextRandomVariation (SDLVisualTest_RandomVariatorvariator)
+
+

Generates a new random variation.

+
Returns
The arguments string representing the random variation on success, and NULL on failure. The pointer returned should not be freed.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
int SDLVisualTest_InitRandomVariator (SDLVisualTest_RandomVariatorvariator,
SDLVisualTest_SUTConfigconfig,
Uint64 seed 
)
+
+

Initializes the variator.

+
Returns
1 on success, 0 on failure
+ +
+
+
+ + + + diff --git a/visualtest/docs/html/_s_d_l__visualtest__random__variator_8h_source.html b/visualtest/docs/html/_s_d_l__visualtest__random__variator_8h_source.html new file mode 100755 index 0000000000000..4ff7d4c28dd9c --- /dev/null +++ b/visualtest/docs/html/_s_d_l__visualtest__random__variator_8h_source.html @@ -0,0 +1,130 @@ + + + + + + +SDL Visual Test: C:/Users/DELL/Work/sdlvisualtest/visualtest/include/SDL_visualtest_random_variator.h Source File + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + + +
+ +
+ + +
+
+
+
SDL_visualtest_random_variator.h
+
+
+Go to the documentation of this file.
1 /* See COPYING.txt for the full license governing this code. */
+ + +
10 
+
11 #ifndef _SDL_visualtest_random_variator_h
+
12 #define _SDL_visualtest_random_variator_h
+
13 
+
14 /* Set up for C function definitions, even when using C++ */
+
15 #ifdef __cplusplus
+
16 extern "C" {
+
17 #endif
+
18 
+ +
24 {
+ + + + +
32 
+ +
39  SDLVisualTest_SUTConfig* config, Uint64 seed);
+
40 
+ +
48 
+ +
53 
+
54 /* Ends C function definitions when using C++ */
+
55 #ifdef __cplusplus
+
56 }
+
57 #endif
+
58 
+
59 #endif /* _SDL_visualtest_random_variator_h */
+
+ + + + diff --git a/visualtest/docs/html/_s_d_l__visualtest__rwhelper_8h_source.html b/visualtest/docs/html/_s_d_l__visualtest__rwhelper_8h_source.html new file mode 100755 index 0000000000000..7accee6e6fa49 --- /dev/null +++ b/visualtest/docs/html/_s_d_l__visualtest__rwhelper_8h_source.html @@ -0,0 +1,137 @@ + + + + + + +SDL Visual Test: C:/Users/DELL/Work/sdlvisualtest/visualtest/include/SDL_visualtest_rwhelper.h Source File + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + + +
+ +
+ + +
+
+
+
SDL_visualtest_rwhelper.h
+
+
+
1 /* See COPYING.txt for the full license governing this code. */
+
8 #include <SDL_rwops.h>
+
9 
+
10 #ifndef _SDL_visualtest_rwhelper_h
+
11 #define _SDL_visualtest_rwhelper_h
+
12 
+
14 #define RWOPS_BUFFER_LEN 256
+
15 
+
16 /* Set up for C function definitions, even when using C++ */
+
17 #ifdef __cplusplus
+
18 extern "C" {
+
19 #endif
+
20 
+ +
26 {
+
28  char buffer[RWOPS_BUFFER_LEN];
+ + + +
34 
+ +
41 
+
50 char SDLVisualTest_RWHelperReadChar(SDL_RWops* rw,
+ +
52 
+
65 char* SDLVisualTest_RWHelperReadLine(SDL_RWops* rw, char* str, int size,
+ +
67  char comment_char);
+
68 
+ + +
78  char comment_char);
+
79 
+
80 /* Ends C function definitions when using C++ */
+
81 #ifdef __cplusplus
+
82 }
+
83 #endif
+
84 
+
85 #endif /* _SDL_visualtest_rwhelper_h */
+
+ + + + diff --git a/visualtest/docs/html/_s_d_l__visualtest__screenshot_8h.html b/visualtest/docs/html/_s_d_l__visualtest__screenshot_8h.html new file mode 100755 index 0000000000000..ed3dd034186b7 --- /dev/null +++ b/visualtest/docs/html/_s_d_l__visualtest__screenshot_8h.html @@ -0,0 +1,197 @@ + + + + + + +SDL Visual Test: C:/Users/DELL/Work/sdlvisualtest/visualtest/include/SDL_visualtest_screenshot.h File Reference + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
SDL_visualtest_screenshot.h File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + +

+Functions

int SDLVisualTest_ScreenshotProcess (SDL_ProcessInfo *pinfo, char *prefix)
 
int SDLVisualTest_ScreenshotDesktop (char *filename)
 
int SDLVisualTest_VerifyScreenshots (char *args, char *test_dir, char *verify_dir)
 
+

Detailed Description

+

Header for the screenshot API.

+

Function Documentation

+ +
+
+ + + + + + + + +
int SDLVisualTest_ScreenshotDesktop (char * filename)
+
+

Takes a screenshot of the desktop and saves it into the file with path filename.

+
Returns
1 on success, 0 on failure.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
int SDLVisualTest_ScreenshotProcess (SDL_ProcessInfopinfo,
char * prefix 
)
+
+

Takes a screenshot of each window owned by the process pinfo and saves it in a file prefix-i.png where prefix is the full path to the file along with a prefix given to each screenshot.

+
Returns
1 on success, 0 on failure.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
int SDLVisualTest_VerifyScreenshots (char * args,
char * test_dir,
char * verify_dir 
)
+
+

Compare a screenshot taken previously with SUT arguments args that is located in test_dir with a verification image that is located in verify_dir.

+
Returns
-1 on failure, 0 if the images were not equal, 1 if the images are equal and 2 if the verification image is not present.
+ +
+
+
+ + + + diff --git a/visualtest/docs/html/_s_d_l__visualtest__screenshot_8h_source.html b/visualtest/docs/html/_s_d_l__visualtest__screenshot_8h_source.html new file mode 100755 index 0000000000000..a806a646f9d1c --- /dev/null +++ b/visualtest/docs/html/_s_d_l__visualtest__screenshot_8h_source.html @@ -0,0 +1,121 @@ + + + + + + +SDL Visual Test: C:/Users/DELL/Work/sdlvisualtest/visualtest/include/SDL_visualtest_screenshot.h Source File + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + + +
+ +
+ + +
+
+
+
SDL_visualtest_screenshot.h
+
+
+Go to the documentation of this file.
1 /* See COPYING.txt for the full license governing this code. */
+ +
9 
+
10 #ifndef _SDL_visualtest_screenshot_h
+
11 #define _SDL_visualtest_screenshot_h
+
12 
+
13 /* Set up for C function definitions, even when using C++ */
+
14 #ifdef __cplusplus
+
15 extern "C" {
+
16 #endif
+
17 
+
25 int SDLVisualTest_ScreenshotProcess(SDL_ProcessInfo* pinfo, char* prefix);
+
26 
+
33 int SDLVisualTest_ScreenshotDesktop(char* filename);
+
34 
+
43 int SDLVisualTest_VerifyScreenshots(char* args, char* test_dir, char* verify_dir);
+
44 
+
45 /* Ends C function definitions when using C++ */
+
46 #ifdef __cplusplus
+
47 }
+
48 #endif
+
49 
+
50 #endif /* _SDL_visualtest_screenshot_h */
+
+ + + + diff --git a/visualtest/docs/html/_s_d_l__visualtest__sut__configparser_8h.html b/visualtest/docs/html/_s_d_l__visualtest__sut__configparser_8h.html new file mode 100755 index 0000000000000..510ea33739ad3 --- /dev/null +++ b/visualtest/docs/html/_s_d_l__visualtest__sut__configparser_8h.html @@ -0,0 +1,317 @@ + + + + + + +SDL Visual Test: C:/Users/DELL/Work/sdlvisualtest/visualtest/include/SDL_visualtest_sut_configparser.h File Reference + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
SDL_visualtest_sut_configparser.h File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + +

+Data Structures

struct  SDLVisualTest_SUTIntRange
 
struct  SDLVisualTest_SUTOption
 
struct  SDLVisualTest_SUTConfig
 
+ + + + + + + + + +

+Macros

#define MAX_SUTOPTION_NAME_LEN   100
 
#define MAX_SUTOPTION_CATEGORY_LEN   40
 
#define MAX_SUTOPTION_ENUMVAL_LEN   40
 
#define MAX_SUTOPTION_LINE_LENGTH   256
 
+ + + + + + + +

+Typedefs

typedef struct
+SDLVisualTest_SUTIntRange 
SDLVisualTest_SUTIntRange
 
typedef struct
+SDLVisualTest_SUTOption 
SDLVisualTest_SUTOption
 
typedef struct
+SDLVisualTest_SUTConfig 
SDLVisualTest_SUTConfig
 
+ + + +

+Enumerations

enum  SDLVisualTest_SUTOptionType { SDL_SUT_OPTIONTYPE_STRING = 0, +SDL_SUT_OPTIONTYPE_INT, +SDL_SUT_OPTIONTYPE_ENUM, +SDL_SUT_OPTIONTYPE_BOOL + }
 
+ + + + + +

+Functions

int SDLVisualTest_ParseSUTConfig (char *file, SDLVisualTest_SUTConfig *config)
 
void SDLVisualTest_FreeSUTConfig (SDLVisualTest_SUTConfig *config)
 
+

Detailed Description

+

Header for the parser for SUT config files.

+

Macro Definition Documentation

+ +
+
+ + + + +
#define MAX_SUTOPTION_CATEGORY_LEN   40
+
+

Maximum length of the name of a category of an SUT option

+ +
+
+ +
+
+ + + + +
#define MAX_SUTOPTION_ENUMVAL_LEN   40
+
+

Maximum length of one enum value of an SUT option

+ +
+
+ +
+
+ + + + +
#define MAX_SUTOPTION_LINE_LENGTH   256
+
+

Maximum length of a line in the paramters file

+ +
+
+ +
+
+ + + + +
#define MAX_SUTOPTION_NAME_LEN   100
+
+

Maximum length of the name of an SUT option

+ +
+
+

Typedef Documentation

+ +
+
+

Struct to hold all the options to an SUT application.

+ +
+
+ +
+
+

Represents the range of values an integer option can take.

+ +
+
+ +
+
+

Struct that defines an option to be passed to the SUT.

+ +
+
+

Enumeration Type Documentation

+ +
+
+ + + + +
enum SDLVisualTest_SUTOptionType
+
+

Describes the different kinds of options to the SUT.

+ +
+
+

Function Documentation

+ +
+
+ + + + + + + + +
void SDLVisualTest_FreeSUTConfig (SDLVisualTest_SUTConfigconfig)
+
+

Free any resources associated with the config object pointed to by config.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
int SDLVisualTest_ParseSUTConfig (char * file,
SDLVisualTest_SUTConfigconfig 
)
+
+

Parses a configuration file that describes the command line options an SUT application will take and populates a SUT config object. All lines in the config file must be smaller than

+
Parameters
+ + + +
filePath to the configuration file.
configPointer to an object that represents an SUT configuration.
+
+
+
Returns
zero on failure, non-zero on success
+ +
+
+
+ + + + diff --git a/visualtest/docs/html/_s_d_l__visualtest__sut__configparser_8h_source.html b/visualtest/docs/html/_s_d_l__visualtest__sut__configparser_8h_source.html new file mode 100755 index 0000000000000..39738533da62a --- /dev/null +++ b/visualtest/docs/html/_s_d_l__visualtest__sut__configparser_8h_source.html @@ -0,0 +1,154 @@ + + + + + + +SDL Visual Test: C:/Users/DELL/Work/sdlvisualtest/visualtest/include/SDL_visualtest_sut_configparser.h Source File + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + + +
+ +
+ + +
+
+
+
SDL_visualtest_sut_configparser.h
+
+
+Go to the documentation of this file.
1 /* See COPYING.txt for the full license governing this code. */
+
8 #ifndef _SDL_visualtest_sut_configparser_h
+
9 #define _SDL_visualtest_sut_configparser_h
+
10 
+
12 #define MAX_SUTOPTION_NAME_LEN 100
+
13 
+
14 #define MAX_SUTOPTION_CATEGORY_LEN 40
+
15 
+
16 #define MAX_SUTOPTION_ENUMVAL_LEN 40
+
17 
+
18 #define MAX_SUTOPTION_LINE_LENGTH 256
+
19 
+
20 /* Set up for C function definitions, even when using C++ */
+
21 #ifdef __cplusplus
+
22 extern "C" {
+
23 #endif
+
24 
+
28 typedef enum {
+
29  SDL_SUT_OPTIONTYPE_STRING = 0,
+
30  SDL_SUT_OPTIONTYPE_INT,
+
31  SDL_SUT_OPTIONTYPE_ENUM,
+
32  SDL_SUT_OPTIONTYPE_BOOL
+ +
34 
+
38 typedef struct SDLVisualTest_SUTIntRange {
+
40  int min;
+
42  int max;
+ +
44 
+
48 typedef struct SDLVisualTest_SUTOption {
+ +
54  char** categories;
+ +
58  SDL_bool required;
+
60  union {
+ +
66  char** enum_values;
+
67  } data;
+ +
69 
+ +
74 {
+ + + +
80 
+ +
92 
+ +
97 
+
98 /* Ends C function definitions when using C++ */
+
99 #ifdef __cplusplus
+
100 }
+
101 #endif
+
102 
+
103 #endif /* _SDL_visualtest_sut_configparser_h */
+
+ + + + diff --git a/visualtest/docs/html/_s_d_l__visualtest__variator__common_8h.html b/visualtest/docs/html/_s_d_l__visualtest__variator__common_8h.html new file mode 100755 index 0000000000000..018bcaa0bb9d3 --- /dev/null +++ b/visualtest/docs/html/_s_d_l__visualtest__variator__common_8h.html @@ -0,0 +1,339 @@ + + + + + + +SDL Visual Test: C:/Users/DELL/Work/sdlvisualtest/visualtest/include/SDL_visualtest_variator_common.h File Reference + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
SDL_visualtest_variator_common.h File Reference
+
+
+
#include <SDL_types.h>
+#include "SDL_visualtest_sut_configparser.h"
+
+

Go to the source code of this file.

+ + + + + + +

+Data Structures

union  SDLVisualTest_SUTOptionValue
 
struct  SDLVisualTest_Variation
 
+ + + +

+Macros

#define SDL_SUT_INTEGER_OPTION_TEST_STEPS   3
 
+ + + + + + + +

+Typedefs

typedef enum
+SDLVisualTest_VariatorType 
SDLVisualTest_VariatorType
 
typedef union
+SDLVisualTest_SUTOptionValue 
SDLVisualTest_SUTOptionValue
 
typedef struct
+SDLVisualTest_Variation 
SDLVisualTest_Variation
 
+ + + +

+Enumerations

enum  SDLVisualTest_VariatorType { SDL_VARIATOR_NONE = 0, +SDL_VARIATOR_EXHAUSTIVE, +SDL_VARIATOR_RANDOM + }
 
+ + + + + + + +

+Functions

int SDLVisualTest_NextValue (SDLVisualTest_SUTOptionValue *var, SDLVisualTest_SUTOption *opt)
 
int SDLVisualTest_MakeStrFromVariation (SDLVisualTest_Variation *variation, SDLVisualTest_SUTConfig *config, char *buffer, int size)
 
int SDLVisualTest_InitVariation (SDLVisualTest_Variation *variation, SDLVisualTest_SUTConfig *config)
 
+

Detailed Description

+

Header for common functionality used by variators.

+

Macro Definition Documentation

+ +
+
+ + + + +
#define SDL_SUT_INTEGER_OPTION_TEST_STEPS   3
+
+

The number of variations one integer option would generate

+ +
+
+

Typedef Documentation

+ +
+
+

One possible value for a command line option to the SUT.

+ +
+
+ +
+
+

Represents a valid combination of parameters that can be passed to the SUT. The ordering of the values here is the same as the ordering of the options in the SDLVisualTest_SUTConfig object for this variation.

+ +
+
+ +
+
+

enum for indicating the type of variator being used

+ +
+
+

Enumeration Type Documentation

+ +
+
+ + + + +
enum SDLVisualTest_VariatorType
+
+

enum for indicating the type of variator being used

+ +
+
+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
int SDLVisualTest_InitVariation (SDLVisualTest_Variationvariation,
SDLVisualTest_SUTConfigconfig 
)
+
+

Initializes the variation using the following rules:

+
    +
  • Boolean options are initialized to SDL_FALSE.
  • +
  • Integer options are initialized to the minimum valid value they can hold.
  • +
  • Enum options are initialized to the first element in the list of values they can take.
  • +
  • String options are initialized to the name of the option.
  • +
+
Returns
1 on success, 0 on failure.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int SDLVisualTest_MakeStrFromVariation (SDLVisualTest_Variationvariation,
SDLVisualTest_SUTConfigconfig,
char * buffer,
int size 
)
+
+

Converts a variation object into a string of command line arguments.

+
Parameters
+ + + + + +
variationVariation object to be converted.
configConfig object for the SUT.
bufferPointer to the buffer the arguments string will be copied into.
sizeSize of the buffer.
+
+
+
Returns
1 on success, 0 on failure
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
int SDLVisualTest_NextValue (SDLVisualTest_SUTOptionValuevar,
SDLVisualTest_SUTOptionopt 
)
+
+

"Increments" the value of the option by one and returns the carry. We wrap around to the initial value on overflow which makes the carry one. For example: "incrementing" an SDL_FALSE option makes it SDL_TRUE with no carry, and "incrementing" an SDL_TRUE option makes it SDL_FALSE with carry one. For integers, a random value in the valid range for the option is used.

+
Parameters
+ + + +
varValue of the option
optObject with metadata about the option
+
+
+
Returns
1 if there is a carry for enum and bool type options, 0 otherwise. 1 is always returned for integer and string type options. -1 is returned on error.
+ +
+
+
+ + + + diff --git a/visualtest/docs/html/_s_d_l__visualtest__variator__common_8h_source.html b/visualtest/docs/html/_s_d_l__visualtest__variator__common_8h_source.html new file mode 100755 index 0000000000000..be7fef254db54 --- /dev/null +++ b/visualtest/docs/html/_s_d_l__visualtest__variator__common_8h_source.html @@ -0,0 +1,158 @@ + + + + + + +SDL Visual Test: C:/Users/DELL/Work/sdlvisualtest/visualtest/include/SDL_visualtest_variator_common.h Source File + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + + +
+ +
+ + +
+
+
+
SDL_visualtest_variator_common.h
+
+
+Go to the documentation of this file.
1 /* See COPYING.txt for the full license governing this code. */
+
8 #include <SDL_types.h>
+ +
10 
+
11 #ifndef _SDL_visualtest_variator_common_h
+
12 #define _SDL_visualtest_variator_common_h
+
13 
+
15 #define SDL_SUT_INTEGER_OPTION_TEST_STEPS 3
+
16 
+
17 /* Set up for C function definitions, even when using C++ */
+
18 #ifdef __cplusplus
+
19 extern "C" {
+
20 #endif
+
21 
+ +
24 {
+
25  SDL_VARIATOR_NONE = 0,
+
26  SDL_VARIATOR_EXHAUSTIVE,
+
27  SDL_VARIATOR_RANDOM
+ +
29 
+ +
34 {
+
36  SDL_bool bool_value;
+
39  struct {
+
40  int value;
+
41  SDL_bool on;
+
42  } integer;
+
46  struct {
+
47  int index;
+
48  SDL_bool on;
+
49  } enumerated;
+
52  struct {
+
53  char* value;
+
54  SDL_bool on;
+
55  } string;
+ +
57 
+ +
64 {
+ +
68  int num_vars;
+ +
70 
+ + +
87 
+ + +
100  char* buffer, int size);
+
101 
+ +
113  SDLVisualTest_SUTConfig* config);
+
114 
+
115 /* Ends C function definitions when using C++ */
+
116 #ifdef __cplusplus
+
117 }
+
118 #endif
+
119 
+
120 #endif /* _SDL_visualtest_variator_common_h */
+
+ + + + diff --git a/visualtest/docs/html/_s_d_l__visualtest__variators_8h.html b/visualtest/docs/html/_s_d_l__visualtest__variators_8h.html new file mode 100755 index 0000000000000..4c67f6d850edc --- /dev/null +++ b/visualtest/docs/html/_s_d_l__visualtest__variators_8h.html @@ -0,0 +1,220 @@ + + + + + + +SDL Visual Test: C:/Users/DELL/Work/sdlvisualtest/visualtest/include/SDL_visualtest_variators.h File Reference + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
SDL_visualtest_variators.h File Reference
+
+
+ +

Go to the source code of this file.

+ + + + +

+Data Structures

struct  SDLVisualTest_Variator
 
+ + + +

+Typedefs

typedef struct
+SDLVisualTest_Variator 
SDLVisualTest_Variator
 
+ + + + + + + +

+Functions

int SDLVisualTest_InitVariator (SDLVisualTest_Variator *variator, SDLVisualTest_SUTConfig *config, SDLVisualTest_VariatorType type, Uint64 seed)
 
char * SDLVisualTest_GetNextVariation (SDLVisualTest_Variator *variator)
 
void SDLVisualTest_FreeVariator (SDLVisualTest_Variator *variator)
 
+

Detailed Description

+

Header for all the variators that vary input parameters to a SUT application.

+

Typedef Documentation

+ +
+
+

Struct that acts like a wrapper around the different types of variators available.

+ +
+
+

Function Documentation

+ +
+
+ + + + + + + + +
void SDLVisualTest_FreeVariator (SDLVisualTest_Variatorvariator)
+
+

Frees any resources associated with the variator.

+ +
+
+ +
+
+ + + + + + + + +
char* SDLVisualTest_GetNextVariation (SDLVisualTest_Variatorvariator)
+
+

Gets the next variation using the variator.

+
Returns
The arguments string representing the variation on success, and NULL on failure. The pointer returned should not be freed.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int SDLVisualTest_InitVariator (SDLVisualTest_Variatorvariator,
SDLVisualTest_SUTConfigconfig,
SDLVisualTest_VariatorType type,
Uint64 seed 
)
+
+

Initializes the variator object pointed to by variator of type type with information from the config object pointed to by config.

+
Returns
1 on success, 0 on failure
+ +
+
+
+ + + + diff --git a/visualtest/docs/html/_s_d_l__visualtest__variators_8h_source.html b/visualtest/docs/html/_s_d_l__visualtest__variators_8h_source.html new file mode 100755 index 0000000000000..708dd12232c56 --- /dev/null +++ b/visualtest/docs/html/_s_d_l__visualtest__variators_8h_source.html @@ -0,0 +1,135 @@ + + + + + + +SDL Visual Test: C:/Users/DELL/Work/sdlvisualtest/visualtest/include/SDL_visualtest_variators.h Source File + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + + +
+ +
+ + +
+
+
+
SDL_visualtest_variators.h
+
+
+Go to the documentation of this file.
1 /* See COPYING.txt for the full license governing this code. */
+ + +
10 
+
11 #ifndef _SDL_visualtest_variators_h
+
12 #define _SDL_visualtest_variators_h
+
13 
+
14 /* Set up for C function definitions, even when using C++ */
+
15 #ifdef __cplusplus
+
16 extern "C" {
+
17 #endif
+
18 
+
23 typedef struct SDLVisualTest_Variator
+
24 {
+ +
28  union
+
29  {
+ + +
32  } data;
+ +
34 
+ + + +
44  Uint64 seed);
+
45 
+ +
53 
+ +
58 
+
59 /* Ends C function definitions when using C++ */
+
60 #ifdef __cplusplus
+
61 }
+
62 #endif
+
63 
+
64 #endif /* _SDL_visualtest_variators_h */
+
+ + + + diff --git a/visualtest/docs/html/action__configparser_8c.html b/visualtest/docs/html/action__configparser_8c.html new file mode 100755 index 0000000000000..b0844483dd064 --- /dev/null +++ b/visualtest/docs/html/action__configparser_8c.html @@ -0,0 +1,301 @@ + + + + + + +SDL Visual Test: C:/Users/DELL/Work/sdlvisualtest/visualtest/src/action_configparser.c File Reference + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
action_configparser.c File Reference
+
+
+
#include <SDL_stdinc.h>
+#include <SDL_test.h>
+#include <string.h>
+#include "SDL_visualtest_action_configparser.h"
+#include "SDL_visualtest_rwhelper.h"
+#include "SDL_visualtest_parsehelper.h"
+
+ + + + + + + + + + + + + + + + + +

+Functions

int SDLVisualTest_EnqueueAction (SDLVisualTest_ActionQueue *queue, SDLVisualTest_Action action)
 
int SDLVisualTest_DequeueAction (SDLVisualTest_ActionQueue *queue)
 
void SDLVisualTest_InitActionQueue (SDLVisualTest_ActionQueue *queue)
 
SDLVisualTest_ActionSDLVisualTest_GetQueueFront (SDLVisualTest_ActionQueue *queue)
 
int SDLVisualTest_IsActionQueueEmpty (SDLVisualTest_ActionQueue *queue)
 
void SDLVisualTest_EmptyActionQueue (SDLVisualTest_ActionQueue *queue)
 
int SDLVisualTest_InsertIntoActionQueue (SDLVisualTest_ActionQueue *queue, SDLVisualTest_Action action)
 
int SDLVisualTest_ParseActionConfig (char *file, SDLVisualTest_ActionQueue *queue)
 
+

Detailed Description

+

Source file for the parser for action config files.

+

Function Documentation

+ +
+
+ + + + + + + + +
int SDLVisualTest_DequeueAction (SDLVisualTest_ActionQueuequeue)
+
+

Remove an action from the front of the action queue pointed to by queue.

+
Returns
1 on success, 0 on failure.
+ +
+
+ +
+
+ + + + + + + + +
void SDLVisualTest_EmptyActionQueue (SDLVisualTest_ActionQueuequeue)
+
+

Dequeues all the elements in the queque pointed to by queue.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
int SDLVisualTest_EnqueueAction (SDLVisualTest_ActionQueuequeue,
SDLVisualTest_Action action 
)
+
+

Add an action pointed to by action to the rear of the action queue pointed to by queue.

+
Returns
1 on success, 0 on failure.
+ +
+
+ +
+
+ + + + + + + + +
SDLVisualTest_Action* SDLVisualTest_GetQueueFront (SDLVisualTest_ActionQueuequeue)
+
+

Get the action at the front of the action queue pointed to by queue. The returned action pointer may become invalid after subsequent dequeues.

+
Returns
pointer to the action on success, NULL on failure.
+ +
+
+ +
+
+ + + + + + + + +
void SDLVisualTest_InitActionQueue (SDLVisualTest_ActionQueuequeue)
+
+

Initialize the action queue pointed to by queue.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
int SDLVisualTest_InsertIntoActionQueue (SDLVisualTest_ActionQueuequeue,
SDLVisualTest_Action action 
)
+
+

Inserts an action action into the queue pointed to by queue such that the times of actions in the queue increase as we move from the front to the rear.

+
Returns
1 on success, 0 on failure.
+ +
+
+ +
+
+ + + + + + + + +
int SDLVisualTest_IsActionQueueEmpty (SDLVisualTest_ActionQueuequeue)
+
+

Check if the queue pointed to by queue is empty or not.

+
Returns
1 if the queue is empty, 0 otherwise.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
int SDLVisualTest_ParseActionConfig (char * file,
SDLVisualTest_ActionQueuequeue 
)
+
+

Parses an action config file with path file and populates an action queue pointed to by queue with actions.

+
Returns
1 on success, 0 on failure.
+ +
+
+
+ + + + diff --git a/visualtest/docs/html/annotated.html b/visualtest/docs/html/annotated.html new file mode 100755 index 0000000000000..38448736eb28b --- /dev/null +++ b/visualtest/docs/html/annotated.html @@ -0,0 +1,114 @@ + + + + + + +SDL Visual Test: Data Structures + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + +
+ + + + +
+ +
+ +
+
+
Data Structures
+
+ + + + + diff --git a/visualtest/docs/html/bc_s.png b/visualtest/docs/html/bc_s.png new file mode 100755 index 0000000000000000000000000000000000000000..224b29aa9847d5a4b3902efd602b7ddf7d33e6c2 GIT binary patch literal 676 zcmV;V0$crwP)y__>=_9%My z{n931IS})GlGUF8K#6VIbs%684A^L3@%PlP2>_sk`UWPq@f;rU*V%rPy_ekbhXT&s z(GN{DxFv}*vZp`F>S!r||M`I*nOwwKX+BC~3P5N3-)Y{65c;ywYiAh-1*hZcToLHK ztpl1xomJ+Yb}K(cfbJr2=GNOnT!UFA7Vy~fBz8?J>XHsbZoDad^8PxfSa0GDgENZS zuLCEqzb*xWX2CG*b&5IiO#NzrW*;`VC9455M`o1NBh+(k8~`XCEEoC1Ybwf;vr4K3 zg|EB<07?SOqHp9DhLpS&bzgo70I+ghB_#)K7H%AMU3v}xuyQq9&Bm~++VYhF09a+U zl7>n7Jjm$K#b*FONz~fj;I->Bf;ule1prFN9FovcDGBkpg>)O*-}eLnC{6oZHZ$o% zXKW$;0_{8hxHQ>l;_*HATI(`7t#^{$(zLe}h*mqwOc*nRY9=?Sx4OOeVIfI|0V(V2 zBrW#G7Ss9wvzr@>H*`r>zE z+e8bOBgqIgldUJlG(YUDviMB`9+DH8n-s9SXRLyJHO1!=wY^79WYZMTa(wiZ!zP66 zA~!21vmF3H2{ngD;+`6j#~6j;$*f*G_2ZD1E;9(yaw7d-QnSCpK(cR1zU3qU0000< KMNUMnLSTYoA~SLT literal 0 HcmV?d00001 diff --git a/visualtest/docs/html/bdwn.png b/visualtest/docs/html/bdwn.png new file mode 100755 index 0000000000000000000000000000000000000000..940a0b950443a0bb1b216ac03c45b8a16c955452 GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^>_E)H!3HEvS)PKZC{Gv1kP61Pb5HX&C2wk~_T + + + + + +SDL Visual Test: Data Structure Index + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + +
+ + + + +
+ +
+ +
+
+
Data Structure Index
+
+ + + + + diff --git a/visualtest/docs/html/closed.png b/visualtest/docs/html/closed.png new file mode 100755 index 0000000000000000000000000000000000000000..98cc2c909da37a6df914fbf67780eebd99c597f5 GIT binary patch literal 132 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{V-kvUwAr*{o@8{^CZMh(5KoB^r_<4^zF@3)Cp&&t3hdujKf f*?bjBoY!V+E))@{xMcbjXe@)LtDnm{r-UW|*e5JT literal 0 HcmV?d00001 diff --git a/visualtest/docs/html/config_8h_source.html b/visualtest/docs/html/config_8h_source.html new file mode 100755 index 0000000000000..25af01943ddb8 --- /dev/null +++ b/visualtest/docs/html/config_8h_source.html @@ -0,0 +1,117 @@ + + + + + + +SDL Visual Test: C:/Users/DELL/Work/sdlvisualtest/visualtest/config.h Source File + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + +
+ + + + +
+ +
+ +
+
+
C:/Users/DELL/Work/sdlvisualtest/visualtest/config.h
+
+
+
1 /* config.h. Generated from config.h.in by configure. */
+
2 /* config.h.in. Generated from configure.in by autoheader. */
+
3 
+
4 /* Define to the address where bug reports for this package should be sent. */
+
5 #define PACKAGE_BUGREPORT "apoorvupreti@gmail.com"
+
6 
+
7 /* Define to the full name of this package. */
+
8 #define PACKAGE_NAME "sdlvisualtest"
+
9 
+
10 /* Define to the full name and version of this package. */
+
11 #define PACKAGE_STRING "sdlvisualtest 0.01"
+
12 
+
13 /* Define to the one symbol short name of this package. */
+
14 #define PACKAGE_TARNAME "sdlvisualtest"
+
15 
+
16 /* Define to the home page for this package. */
+
17 #define PACKAGE_URL ""
+
18 
+
19 /* Define to the version of this package. */
+
20 #define PACKAGE_VERSION "0.01"
+
21 
+
22 /* Define to empty if `const' does not conform to ANSI C. */
+
23 /* #undef const */
+
+ + + + diff --git a/visualtest/docs/html/dir_244674c763b96fdad0a6ffe8d0250e08.html b/visualtest/docs/html/dir_244674c763b96fdad0a6ffe8d0250e08.html new file mode 100755 index 0000000000000..8720dd511e058 --- /dev/null +++ b/visualtest/docs/html/dir_244674c763b96fdad0a6ffe8d0250e08.html @@ -0,0 +1,98 @@ + + + + + + +SDL Visual Test: C:/Users/DELL/Work/sdlvisualtest/visualtest/unittest Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + +
+ +
+ + +
+
+
+
unittest Directory Reference
+
+
+ + + + +

+Files

file  testquit.c
 
+
+ + + + diff --git a/visualtest/docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html b/visualtest/docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html new file mode 100755 index 0000000000000..4795fcf2e082a --- /dev/null +++ b/visualtest/docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html @@ -0,0 +1,127 @@ + + + + + + +SDL Visual Test: C:/Users/DELL/Work/sdlvisualtest/visualtest/src Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + +
+ +
+ + +
+
+
+
src Directory Reference
+
+
+ + + + + + +

+Directories

directory  linux
 
directory  windows
 
+ + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

file  action_configparser.c
 
file  harness_argparser.c
 
file  mischelper.c
 
file  parsehelper.c
 
file  rwhelper.c
 
file  screenshot.c
 
file  sut_configparser.c
 
file  testharness.c
 
file  variator_common.c
 
file  variator_exhaustive.c
 
file  variator_random.c
 
file  variators.c
 
+
+ + + + diff --git a/visualtest/docs/html/dir_88e6415a3128b404f1102a130772bdb6.html b/visualtest/docs/html/dir_88e6415a3128b404f1102a130772bdb6.html new file mode 100755 index 0000000000000..d16c732632401 --- /dev/null +++ b/visualtest/docs/html/dir_88e6415a3128b404f1102a130772bdb6.html @@ -0,0 +1,98 @@ + + + + + + +SDL Visual Test: C:/Users/DELL/Work/sdlvisualtest/visualtest/linux Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + +
+ +
+ + +
+
+
+
linux Directory Reference
+
+
+ + + + +

+Files

file  linux_process.c
 
+
+ + + + diff --git a/visualtest/docs/html/dir_a18918b93668b435612395bbc2e8b82b.html b/visualtest/docs/html/dir_a18918b93668b435612395bbc2e8b82b.html new file mode 100755 index 0000000000000..73fd4b4708e85 --- /dev/null +++ b/visualtest/docs/html/dir_a18918b93668b435612395bbc2e8b82b.html @@ -0,0 +1,98 @@ + + + + + + +SDL Visual Test: C:/Users/DELL/Work/sdlvisualtest/visualtest/src/linux Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + +
+ +
+ + +
+
+
+
linux Directory Reference
+
+
+ + + + +

+Files

file  linux_process.c
 
+
+ + + + diff --git a/visualtest/docs/html/dir_d44c64559bbebec7f509842c48db8b23.html b/visualtest/docs/html/dir_d44c64559bbebec7f509842c48db8b23.html new file mode 100755 index 0000000000000..c2436fa5a6876 --- /dev/null +++ b/visualtest/docs/html/dir_d44c64559bbebec7f509842c48db8b23.html @@ -0,0 +1,120 @@ + + + + + + +SDL Visual Test: C:/Users/DELL/Work/sdlvisualtest/visualtest/include Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + +
+ +
+ + +
+
+
+
include Directory Reference
+
+ + + + + diff --git a/visualtest/docs/html/dir_f584182df4c69fab0b14563b4d535158.html b/visualtest/docs/html/dir_f584182df4c69fab0b14563b4d535158.html new file mode 100755 index 0000000000000..7d85b92c9985e --- /dev/null +++ b/visualtest/docs/html/dir_f584182df4c69fab0b14563b4d535158.html @@ -0,0 +1,100 @@ + + + + + + +SDL Visual Test: C:/Users/DELL/Work/sdlvisualtest/visualtest/src/windows Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + +
+ +
+ + +
+
+
+
windows Directory Reference
+
+
+ + + + + + +

+Files

file  windows_process.c
 
file  windows_screenshot.c
 
+
+ + + + diff --git a/visualtest/docs/html/dir_fe549de2418b81853b5f194edb4a7f34.html b/visualtest/docs/html/dir_fe549de2418b81853b5f194edb4a7f34.html new file mode 100755 index 0000000000000..a575feba651cc --- /dev/null +++ b/visualtest/docs/html/dir_fe549de2418b81853b5f194edb4a7f34.html @@ -0,0 +1,98 @@ + + + + + + +SDL Visual Test: C:/Users/DELL/Work/sdlvisualtest/visualtest/windows Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + +
+ +
+ + +
+
+
+
windows Directory Reference
+
+
+ + + + +

+Files

file  windows_process.c
 
+
+ + + + diff --git a/visualtest/docs/html/doxygen.css b/visualtest/docs/html/doxygen.css new file mode 100755 index 0000000000000..3ac2851134e13 --- /dev/null +++ b/visualtest/docs/html/doxygen.css @@ -0,0 +1,1186 @@ +/* The standard CSS for doxygen 1.8.4 */ + +body, table, div, p, dl { + font: 400 14px/22px Roboto,sans-serif; +} + +/* @group Heading Levels */ + +h1.groupheader { + font-size: 150%; +} + +.title { + font: 400 14px/28px Roboto,sans-serif; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h2.groupheader { + border-bottom: 1px solid #879ECB; + color: #354C7B; + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px cyan; +} + +dt { + font-weight: bold; +} + +div.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; +} + +p.startli, p.startdd, p.starttd { + margin-top: 2px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.qindex, div.navtab{ + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; +} + +div.qindex, div.navpath { + width: 100%; + line-height: 140%; +} + +div.navtab { + margin-right: 15px; +} + +/* @group Link Styling */ + +a { + color: #3D578C; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #4665A2; +} + +a:hover { + text-decoration: underline; +} + +a.qindex { + font-weight: bold; +} + +a.qindexHL { + font-weight: bold; + background-color: #9CAFD4; + color: #ffffff; + border: 1px double #869DCA; +} + +.contents a.qindexHL:visited { + color: #ffffff; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited { + color: #4665A2; +} + +a.codeRef, a.codeRef:visited { + color: #4665A2; +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +pre.fragment { + border: 1px solid #C4CFE5; + background-color: #FBFCFD; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: monospace, fixed; + font-size: 105%; +} + +div.fragment { + padding: 0px; + margin: 0px; + background-color: #FBFCFD; + border: 1px solid #C4CFE5; +} + +div.line { + font-family: monospace, fixed; + font-size: 13px; + min-height: 13px; + line-height: 1.0; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line.glow { + background-color: cyan; + box-shadow: 0 0 10px cyan; +} + + +span.lineno { + padding-right: 4px; + text-align: right; + border-right: 2px solid #0F0; + background-color: #E8E8E8; + white-space: pre; +} +span.lineno a { + background-color: #D8D8D8; +} + +span.lineno a:hover { + background-color: #C8C8C8; +} + +div.ah { + background-color: black; + font-weight: bold; + color: #ffffff; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000); +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + background-color: white; + color: black; + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +td.indexkey { + background-color: #EBEFF6; + font-weight: bold; + border: 1px solid #C4CFE5; + margin: 2px 0px 2px 0; + padding: 2px 10px; + white-space: nowrap; + vertical-align: top; +} + +td.indexvalue { + background-color: #EBEFF6; + border: 1px solid #C4CFE5; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #EEF1F7; +} + +p.formulaDsp { + text-align: center; +} + +img.formulaDsp { + +} + +img.formulaInl { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +blockquote { + background-color: #F7F8FB; + border-left: 2px solid #9CAFD4; + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +/* @end */ + +/* +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +*/ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #A3B4D7; +} + +th.dirtab { + background: #EBEFF6; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid #4A6AAA; +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: cyan; + box-shadow: 0 0 15px cyan; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #F9FAFC; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memSeparator { + border-bottom: 1px solid #DEE4F0; + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight { + width: 100%; +} + +.memTemplParams { + color: #4665A2; + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtemplate { + font-size: 80%; + color: #4665A2; + font-weight: normal; + margin-left: 9px; +} + +.memnav { + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px cyan; +} + +.memname { + font-weight: bold; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 0px 6px 0px; + color: #253555; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + /* opera specific markup */ + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; + border-top-left-radius: 4px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 4px; + -moz-border-radius-topleft: 4px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 4px; + -webkit-border-top-left-radius: 4px; + +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 10px 2px 10px; + background-color: #FBFCFD; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: #FFFFFF; + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} +.paramname code { + line-height: 14px; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir { + font-family: "courier new",courier,monospace; + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: #728DC1; + border-top:1px solid #5373B4; + border-left:1px solid #5373B4; + border-right:1px solid #C4CFE5; + border-bottom:1px solid #C4CFE5; + text-shadow: none; + color: white; + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view when not used as main index */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid #A8B8D9; + border-bottom: 1px solid #A8B8D9; + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.even { + padding-left: 6px; + background-color: #F7F8FB; +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: #3D578C; +} + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: #2A3D61; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + /*width: 100%;*/ + margin-bottom: 10px; + border: 1px solid #A8B8D9; + border-spacing: 0px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid #A8B8D9; + border-bottom: 1px solid #A8B8D9; + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid #A8B8D9; + /*width: 100%;*/ +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + font-size: 90%; + color: #253555; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid #A8B8D9; +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image:url('tab_b.png'); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:#8AA0CC; + border:solid 1px #C2CDE4; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#364D7C; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; + color: #283A5D; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color:#6884BD; +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color:#364D7C; + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F9FAFC; + margin: 0px; + border-bottom: 1px solid #C4CFE5; +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +dl +{ + padding: 0 0 0 10px; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */ +dl.section +{ + margin-left: 0px; + padding-left: 0px; +} + +dl.note +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #00D000; +} + +dl.deprecated +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #505050; +} + +dl.todo +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #00C0E0; +} + +dl.test +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #3030E0; +} + +dl.bug +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectname +{ + font: 300% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font: 120% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font: 50% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #5373B4; +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +div.zoom +{ + border: 1px solid #90A5CE; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:#334975; + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; +} + +dl.citelist dd { + margin:2px 0; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: #F4F6FA; + border: 1px solid #D8DFEE; + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 20px 10px 10px; + width: 200px; +} + +div.toc li { + background: url("bdwn.png") no-repeat scroll 0 5px transparent; + font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +div.toc h3 { + font: bold 12px/1.2 Arial,FreeSans,sans-serif; + color: #4665A2; + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 30px; +} + +div.toc li.level4 { + margin-left: 45px; +} + +.inherit_header { + font-weight: bold; + color: gray; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + diff --git a/visualtest/docs/html/doxygen.png b/visualtest/docs/html/doxygen.png new file mode 100755 index 0000000000000000000000000000000000000000..3ff17d807fd8aa003bed8bb2a69e8f0909592fd1 GIT binary patch literal 3779 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 literal 0 HcmV?d00001 diff --git a/visualtest/docs/html/dynsections.js b/visualtest/docs/html/dynsections.js new file mode 100755 index 0000000000000..ed092c7f63048 --- /dev/null +++ b/visualtest/docs/html/dynsections.js @@ -0,0 +1,97 @@ +function toggleVisibility(linkObj) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); +} +function toggleLevel(level) +{ + $('table.directory tr').each(function(){ + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (l + + + + + +SDL Visual Test: File List + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + +
+ + + + +
+ +
+ +
+
+
File List
+
+ + + + + diff --git a/visualtest/docs/html/ftv2blank.png b/visualtest/docs/html/ftv2blank.png new file mode 100755 index 0000000000000000000000000000000000000000..63c605bb4c3d941c921a4b6cfa74951e946bcb48 GIT binary patch literal 86 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr!3HExu9B$%QnH>djv*C{Z|`mdau^P8_z}#X h?B8GEpdi4(BFDx$je&7RrDQEg&ePS;Wt~$(69Dh@6T1Ka literal 0 HcmV?d00001 diff --git a/visualtest/docs/html/ftv2cl.png b/visualtest/docs/html/ftv2cl.png new file mode 100755 index 0000000000000000000000000000000000000000..132f6577bf7f085344904602815a260d29f55d9b GIT binary patch literal 453 zcmV;$0XqJPP)VBF;ev;toEj8_OB0EQg5eYilIj#JZG_m^33l3^k4mtzx!TVD?g)Y$ zrvwRDSqT!wLIM$dWCIa$vtxE|mzbTzu-y&$FvF6WA2a{Wr1g}`WdPT-0JzEZ0IxAv z-Z+ejZc&H;I5-pb_SUB}04j0^V)3t{`z<7asDl2Tw3w3sP%)0^8$bhEg)IOTBcRXv zFfq~3&gvJ$F-U7mpBW8z1GY~HK&7h4^YI~Orv~wLnC0PP_dAkv;nzX{9Q|8Gv=2ca z@v)c9T;D#h`TZ2X&&$ff2wedmot995de~-s3I)yauahg;7qn*?1n?F$e+PwP37}~; z1NKUk7reVK^7A;$QRW7qAx40HHUZ<|k3U%nz(Ec`#i+q9K!dgcROAlCS?`L= v>#=f?wF5ZND!1uAfQsk;KN^4&*8~0npJiJ%2dj9(00000NkvXXu0mjfWVFf_ literal 0 HcmV?d00001 diff --git a/visualtest/docs/html/ftv2doc.png b/visualtest/docs/html/ftv2doc.png new file mode 100755 index 0000000000000000000000000000000000000000..17edabff95f7b8da13c9516a04efe05493c29501 GIT binary patch literal 746 zcmV7=@pnbNXRFEm&G8P!&WHG=d)>K?YZ1bzou)2{$)) zumDct!>4SyxL;zgaG>wy`^Hv*+}0kUfCrz~BCOViSb$_*&;{TGGn2^x9K*!Sf0=lV zpP=7O;GA0*Jm*tTYj$IoXvimpnV4S1Z5f$p*f$Db2iq2zrVGQUz~yq`ahn7ck(|CE z7Gz;%OP~J6)tEZWDzjhL9h2hdfoU2)Nd%T<5Kt;Y0XLt&<@6pQx!nw*5`@bq#?l*?3z{Hlzoc=Pr>oB5(9i6~_&-}A(4{Q$>c>%rV&E|a(r&;?i5cQB=} zYSDU5nXG)NS4HEs0it2AHe2>shCyr7`6@4*6{r@8fXRbTA?=IFVWAQJL&H5H{)DpM#{W(GL+Idzf^)uRV@oB8u$ z8v{MfJbTiiRg4bza<41NAzrl{=3fl_D+$t+^!xlQ8S}{UtY`e z;;&9UhyZqQRN%2pot{*Ei0*4~hSF_3AH2@fKU!$NSflS>{@tZpDT4`M2WRTTVH+D? z)GFlEGGHe?koB}i|1w45!BF}N_q&^HJ&-tyR{(afC6H7|aml|tBBbv}55C5DNP8p3 z)~jLEO4Z&2hZmP^i-e%(@d!(E|KRafiU8Q5u(wU((j8un3OR*Hvj+t literal 0 HcmV?d00001 diff --git a/visualtest/docs/html/ftv2folderclosed.png b/visualtest/docs/html/ftv2folderclosed.png new file mode 100755 index 0000000000000000000000000000000000000000..bb8ab35edce8e97554e360005ee9fc5bffb36e66 GIT binary patch literal 616 zcmV-u0+;=XP)a9#ETzayK)T~Jw&MMH>OIr#&;dC}is*2Mqdf&akCc=O@`qC+4i z5Iu3w#1M@KqXCz8TIZd1wli&kkl2HVcAiZ8PUn5z_kG@-y;?yK06=cA0U%H0PH+kU zl6dp}OR(|r8-RG+YLu`zbI}5TlOU6ToR41{9=uz^?dGTNL;wIMf|V3`d1Wj3y!#6` zBLZ?xpKR~^2x}?~zA(_NUu3IaDB$tKma*XUdOZN~c=dLt_h_k!dbxm_*ibDM zlFX`g{k$X}yIe%$N)cn1LNu=q9_CS)*>A zsX_mM4L@`(cSNQKMFc$RtYbx{79#j-J7hk*>*+ZZhM4Hw?I?rsXCi#mRWJ=-0LGV5a-WR0Qgt<|Nqf)C-@80`5gIz45^_20000IqP)X=#(TiCT&PiIIVc55T}TU}EUh*{q$|`3@{d>{Tc9Bo>e= zfmF3!f>fbI9#GoEHh0f`i5)wkLpva0ztf%HpZneK?w-7AK@b4Itw{y|Zd3k!fH?q2 zlhckHd_V2M_X7+)U&_Xcfvtw60l;--DgZmLSw-Y?S>)zIqMyJ1#FwLU*%bl38ok+! zh78H87n`ZTS;uhzAR$M`zZ`bVhq=+%u9^$5jDplgxd44}9;IRqUH1YHH|@6oFe%z( zo4)_>E$F&^P-f(#)>(TrnbE>Pefs9~@iN=|)Rz|V`sGfHNrJ)0gJb8xx+SBmRf@1l zvuzt=vGfI)<-F9!o&3l?>9~0QbUDT(wFdnQPv%xdD)m*g%!20>Bc9iYmGAp<9YAa( z0QgYgTWqf1qN++Gqp z8@AYPTB3E|6s=WLG?xw0tm|U!o=&zd+H0oRYE;Dbx+Na9s^STqX|Gnq%H8s(nGDGJ j8vwW|`Ts`)fSK|Kx=IK@RG@g200000NkvXXu0mjfauFEA literal 0 HcmV?d00001 diff --git a/visualtest/docs/html/ftv2lastnode.png b/visualtest/docs/html/ftv2lastnode.png new file mode 100755 index 0000000000000000000000000000000000000000..63c605bb4c3d941c921a4b6cfa74951e946bcb48 GIT binary patch literal 86 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr!3HExu9B$%QnH>djv*C{Z|`mdau^P8_z}#X h?B8GEpdi4(BFDx$je&7RrDQEg&ePS;Wt~$(69Dh@6T1Ka literal 0 HcmV?d00001 diff --git a/visualtest/docs/html/ftv2link.png b/visualtest/docs/html/ftv2link.png new file mode 100755 index 0000000000000000000000000000000000000000..17edabff95f7b8da13c9516a04efe05493c29501 GIT binary patch literal 746 zcmV7=@pnbNXRFEm&G8P!&WHG=d)>K?YZ1bzou)2{$)) zumDct!>4SyxL;zgaG>wy`^Hv*+}0kUfCrz~BCOViSb$_*&;{TGGn2^x9K*!Sf0=lV zpP=7O;GA0*Jm*tTYj$IoXvimpnV4S1Z5f$p*f$Db2iq2zrVGQUz~yq`ahn7ck(|CE z7Gz;%OP~J6)tEZWDzjhL9h2hdfoU2)Nd%T<5Kt;Y0XLt&<@6pQx!nw*5`@bq#?l*?3z{Hlzoc=Pr>oB5(9i6~_&-}A(4{Q$>c>%rV&E|a(r&;?i5cQB=} zYSDU5nXG)NS4HEs0it2AHe2>shCyr7`6@4*6{r@8fXRbTA?=IFVWAQJL&H5H{)DpM#{W(GL+Idzf^)uRV@oB8u$ z8v{MfJbTiiRg4bza<41NAzrl{=3fl_D+$t+^!xlQ8S}{UtY`e z;;&9UhyZqQRN%2pot{*Ei0*4~hSF_3AH2@fKU!$NSflS>{@tZpDT4`M2WRTTVH+D? z)GFlEGGHe?koB}i|1w45!BF}N_q&^HJ&-tyR{(afC6H7|aml|tBBbv}55C5DNP8p3 z)~jLEO4Z&2hZmP^i-e%(@d!(E|KRafiU8Q5u(wU((j8un3OR*Hvj+t literal 0 HcmV?d00001 diff --git a/visualtest/docs/html/ftv2mlastnode.png b/visualtest/docs/html/ftv2mlastnode.png new file mode 100755 index 0000000000000000000000000000000000000000..0b63f6d38c4b9ec907b820192ebe9724ed6eca22 GIT binary patch literal 246 zcmVkw!R34#Lv2LOS^S2tZA31X++9RY}n zChwn@Z)Wz*WWHH{)HDtJnq&A2hk$b-y(>?@z0iHr41EKCGp#T5?07*qoM6N<$f(V3Pvj6}9 literal 0 HcmV?d00001 diff --git a/visualtest/docs/html/ftv2mnode.png b/visualtest/docs/html/ftv2mnode.png new file mode 100755 index 0000000000000000000000000000000000000000..0b63f6d38c4b9ec907b820192ebe9724ed6eca22 GIT binary patch literal 246 zcmVkw!R34#Lv2LOS^S2tZA31X++9RY}n zChwn@Z)Wz*WWHH{)HDtJnq&A2hk$b-y(>?@z0iHr41EKCGp#T5?07*qoM6N<$f(V3Pvj6}9 literal 0 HcmV?d00001 diff --git a/visualtest/docs/html/ftv2mo.png b/visualtest/docs/html/ftv2mo.png new file mode 100755 index 0000000000000000000000000000000000000000..4bfb80f76e65815989a9350ad79d8ce45380e2b1 GIT binary patch literal 403 zcmV;E0c`$>P)${!fXv7NWJ%@%u4(KapRY>T6_x;E zxE7kt!}Tiw8@d9Sd`rTGum>z#Q14vIm`wm1#-byD1muMi02@YNO5LRF0o!Y{`a!Ya z{^&p0Su|s705&2QxmqdexG+-zNKL3f@8gTQSJrKByfo+oNJ^-{|Mn||Q5SDwjQVsS zr1}7o5-QMs>gYIMD>GRw@$lT`z4r-_m{5U#cR{urD_)TOeY)(UD|qZ^&y`IVijqk~ xs(9-kWFr7E^!lgi8GsFK5kOY_{Xbgf0^etEU%fLevs?fG002ovPDHLkV1nB&vX1}& literal 0 HcmV?d00001 diff --git a/visualtest/docs/html/ftv2node.png b/visualtest/docs/html/ftv2node.png new file mode 100755 index 0000000000000000000000000000000000000000..63c605bb4c3d941c921a4b6cfa74951e946bcb48 GIT binary patch literal 86 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr!3HExu9B$%QnH>djv*C{Z|`mdau^P8_z}#X h?B8GEpdi4(BFDx$je&7RrDQEg&ePS;Wt~$(69Dh@6T1Ka literal 0 HcmV?d00001 diff --git a/visualtest/docs/html/ftv2ns.png b/visualtest/docs/html/ftv2ns.png new file mode 100755 index 0000000000000000000000000000000000000000..72e3d71c2892d6f00e259facebc88b45f6db2e35 GIT binary patch literal 388 zcmV-~0ek+5P)f+++#cT|!CkD&4pnIkeMEUEM*>`*9>+Juji$!h-mW%M^8s9957{3nvbrz^&=u<~TAUrFROkmt%^F~Ez+-c53Lv%iH3d38!Rv?K zrb&MYAhp;Gf<}wS;9ZZq2@;!uYG;=Z>~GKE^{HD4keu}lnyqhc>kWX^tQn|warJ~h zT+rtMkdz6aHoN%z(o|&wpu@@OpJnF_z{PA)6(FHw02iHslz^(N{4*+K9)QJHR87wT iTyp>aXaF{u2lxRou|^4tux6eB0000^P)R?RzRoKvklcaQ%HF6%rK2&ZgO(-ihJ_C zzrKgp4jgO( fd_(yg|3PpEQb#9`a?Pz_00000NkvXXu0mjftR`5K literal 0 HcmV?d00001 diff --git a/visualtest/docs/html/ftv2pnode.png b/visualtest/docs/html/ftv2pnode.png new file mode 100755 index 0000000000000000000000000000000000000000..c6ee22f937a07d1dbfc27c669d11f8ed13e2f152 GIT binary patch literal 229 zcmV^P)R?RzRoKvklcaQ%HF6%rK2&ZgO(-ihJ_C zzrKgp4jgO( fd_(yg|3PpEQb#9`a?Pz_00000NkvXXu0mjftR`5K literal 0 HcmV?d00001 diff --git a/visualtest/docs/html/ftv2splitbar.png b/visualtest/docs/html/ftv2splitbar.png new file mode 100755 index 0000000000000000000000000000000000000000..fe895f2c58179b471a22d8320b39a4bd7312ec8e GIT binary patch literal 314 zcmeAS@N?(olHy`uVBq!ia0vp^Yzz!63>-{AmhX=Jf(#6djGiuzAr*{o?=JLmPLyc> z_*`QK&+BH@jWrYJ7>r6%keRM@)Qyv8R=enp0jiI>aWlGyB58O zFVR20d+y`K7vDw(hJF3;>dD*3-?v=<8M)@x|EEGLnJsniYK!2U1 Y!`|5biEc?d1`HDhPgg&ebxsLQ02F6;9RL6T literal 0 HcmV?d00001 diff --git a/visualtest/docs/html/ftv2vertline.png b/visualtest/docs/html/ftv2vertline.png new file mode 100755 index 0000000000000000000000000000000000000000..63c605bb4c3d941c921a4b6cfa74951e946bcb48 GIT binary patch literal 86 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr!3HExu9B$%QnH>djv*C{Z|`mdau^P8_z}#X h?B8GEpdi4(BFDx$je&7RrDQEg&ePS;Wt~$(69Dh@6T1Ka literal 0 HcmV?d00001 diff --git a/visualtest/docs/html/functions.html b/visualtest/docs/html/functions.html new file mode 100755 index 0000000000000..98781fbd08c85 --- /dev/null +++ b/visualtest/docs/html/functions.html @@ -0,0 +1,309 @@ + + + + + + +SDL Visual Test: Data Fields + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + +
+ + + + +
+ +
+ +
+
Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:
+ +

- a -

+ + +

- b -

+ + +

- c -

+ + +

- d -

+ + +

- e -

+ + +

- f -

+ + +

- i -

+ + +

- m -

+ + +

- n -

+ + +

- o -

+ + +

- p -

+ + +

- r -

+ + +

- s -

+ + +

- t -

+ + +

- v -

+
+ + + + diff --git a/visualtest/docs/html/functions_vars.html b/visualtest/docs/html/functions_vars.html new file mode 100755 index 0000000000000..22983e40f4ff9 --- /dev/null +++ b/visualtest/docs/html/functions_vars.html @@ -0,0 +1,309 @@ + + + + + + +SDL Visual Test: Data Fields - Variables + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + +
+ + + + +
+ +
+ +
+  + +

- a -

+ + +

- b -

+ + +

- c -

+ + +

- d -

+ + +

- e -

+ + +

- f -

+ + +

- i -

+ + +

- m -

+ + +

- n -

+ + +

- o -

+ + +

- p -

+ + +

- r -

+ + +

- s -

+ + +

- t -

+ + +

- v -

+
+ + + + diff --git a/visualtest/docs/html/globals.html b/visualtest/docs/html/globals.html new file mode 100755 index 0000000000000..4844a74362079 --- /dev/null +++ b/visualtest/docs/html/globals.html @@ -0,0 +1,395 @@ + + + + + + +SDL Visual Test: Globals + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + +
+ + + + +
+ +
+ +
+
Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:
+ +

- a -

+ + +

- d -

+ + +

- k -

+ + +

- m -

+ + +

- s -

+ + +

- t -

+
+ + + + diff --git a/visualtest/docs/html/globals_defs.html b/visualtest/docs/html/globals_defs.html new file mode 100755 index 0000000000000..ab7b0d81ec90f --- /dev/null +++ b/visualtest/docs/html/globals_defs.html @@ -0,0 +1,150 @@ + + + + + + +SDL Visual Test: Globals + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + +
+ + + + +
+ +
+ +
+
+ + + + diff --git a/visualtest/docs/html/globals_enum.html b/visualtest/docs/html/globals_enum.html new file mode 100755 index 0000000000000..0f59b7f9e3ff4 --- /dev/null +++ b/visualtest/docs/html/globals_enum.html @@ -0,0 +1,111 @@ + + + + + + +SDL Visual Test: Globals + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + +
+ + + + +
+ +
+ +
+
+ + + + diff --git a/visualtest/docs/html/globals_eval.html b/visualtest/docs/html/globals_eval.html new file mode 100755 index 0000000000000..91b11bbaf668b --- /dev/null +++ b/visualtest/docs/html/globals_eval.html @@ -0,0 +1,117 @@ + + + + + + +SDL Visual Test: Globals + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + +
+ + + + +
+ +
+ +
+
+ + + + diff --git a/visualtest/docs/html/globals_func.html b/visualtest/docs/html/globals_func.html new file mode 100755 index 0000000000000..2b6d69034512d --- /dev/null +++ b/visualtest/docs/html/globals_func.html @@ -0,0 +1,261 @@ + + + + + + +SDL Visual Test: Globals + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + +
+ + + + +
+ +
+ +
+  + +

- m -

+ + +

- s -

+
+ + + + diff --git a/visualtest/docs/html/globals_type.html b/visualtest/docs/html/globals_type.html new file mode 100755 index 0000000000000..af65e6eeceb7b --- /dev/null +++ b/visualtest/docs/html/globals_type.html @@ -0,0 +1,147 @@ + + + + + + +SDL Visual Test: Globals + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + +
+ + + + +
+ +
+ +
+
+ + + + diff --git a/visualtest/docs/html/harness__argparser_8c.html b/visualtest/docs/html/harness__argparser_8c.html new file mode 100755 index 0000000000000..8048b333484fb --- /dev/null +++ b/visualtest/docs/html/harness__argparser_8c.html @@ -0,0 +1,203 @@ + + + + + + +SDL Visual Test: C:/Users/DELL/Work/sdlvisualtest/visualtest/src/harness_argparser.c File Reference + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
harness_argparser.c File Reference
+
+
+
#include <SDL_test.h>
+#include <stdio.h>
+#include <string.h>
+#include "SDL_visualtest_harness_argparser.h"
+#include "SDL_visualtest_rwhelper.h"
+
+ + + + + +

+Macros

#define MAX_CONFIG_LINE_LEN   400
 
#define DEFAULT_SUT_TIMEOUT   (60 * 1000)
 
+ + + + + +

+Functions

int SDLVisualTest_ParseHarnessArgs (char **argv, SDLVisualTest_HarnessState *state)
 
void SDLVisualTest_FreeHarnessState (SDLVisualTest_HarnessState *state)
 
+

Detailed Description

+

Source file for functions to parse arguments to the test harness.

+

Macro Definition Documentation

+ +
+
+ + + + +
#define DEFAULT_SUT_TIMEOUT   (60 * 1000)
+
+

Default value for the timeout after which the SUT is forcefully killed

+ +
+
+ +
+
+ + + + +
#define MAX_CONFIG_LINE_LEN   400
+
+

Maximum length of one line in the config file

+ +
+
+

Function Documentation

+ +
+
+ + + + + + + + +
void SDLVisualTest_FreeHarnessState (SDLVisualTest_HarnessStatestate)
+
+

Frees any resources associated with the state object pointed to by state.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
int SDLVisualTest_ParseHarnessArgs (char ** argv,
SDLVisualTest_HarnessStatestate 
)
+
+

Parse command line paramters to the test harness and populate a state object.

+
Parameters
+ + + +
argvThe array of command line parameters.
statePointer to the state object to be populated.
+
+
+
Returns
Non-zero on success, zero on failure.
+ +
+
+
+ + + + diff --git a/visualtest/docs/html/index.html b/visualtest/docs/html/index.html new file mode 100755 index 0000000000000..231c3cc230d0c --- /dev/null +++ b/visualtest/docs/html/index.html @@ -0,0 +1,222 @@ + + + + + + +SDL Visual Test: Visual and Interactive Test Automation for SDL 2.0 + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + +
+ + + + +
+ +
+ +
+
+
Visual and Interactive Test Automation for SDL 2.0
+
+
+

+License

+

Check the file COPYING.txt for licensing information.

+

+Introduction

+

The goal of this GSoC project is to automate the testing of testsprite2. testsprite2 takes 26 parameters which have thousands of valid combinations and is used to validate SDL's window, mouse and rendering behaviour. By having a test harness that runs testsprite2 with various command line argument strings and validates the output for each run, we can make testing an easier task for maintainers, contributors and testers. The test harness can be used by a continuous integration system (like buildbot or jenkins) to validate SDL after checkins.

+

SDL Homepage: http://libsdl.org/

+

+Building

+

+Building on Linux/Cygwin

+

./autogen.sh; ./configure; make;

+

+Building on Windows

+

Use the Visual Studio solution under SDL/VisualC/visualtest.

+

+Documentation

+

Documentation is available via Doxygen. To build the documentation, cd to the SDL/visualtest/docs directory and run doxygen. A good starting point for exploring the documentation is SDL/visualtest/docs/html/index.html

+

+Usage

+

To see all the options supported by the test harness, just run testharness with no arguments.

+

At the moment the following options are supported:

+
    +
  • sutapp - Path to the system under test (SUT) application
  • +
  • sutargs - Launch the SUT with the specified arguments string
  • +
  • timeout - The maximum time after which the SUT process will be killed; passed as hh:mm:ss; default 00:01:00
  • +
  • variator - Which variator to use; see Variators
  • +
  • num-variations - The number of variations to run for; taken to be 1 for the random variator and ALL for the exhaustive variator by default
  • +
  • no-launch - Just print the arguments string for each variation without launching the SUT or performing any actions
  • +
  • parameter-config - A config file that describes the command line parameters supported by the SUT; see The SUT Parameters File or the sample *.parameters files for more details
  • +
  • action-config - A config file with a list of actions to be performed while the SUT is running; see The Actions File or the sample *.actions files
  • +
  • output-dir - Path to the directory where screenshots should be saved; is created if it doesn't exist; taken to be "./output" by default
  • +
  • verify-dir - Path to the directory with the verification images; taken to be "./verify" by default
  • +
+

Paths can be relative or absolute.

+

Alternatively, the options can be passed as a config file for convenience:

+

testharness --config testsprite2_sample.config

+

For a sample, take a look at the *.config files in this repository.

+

We can also pass a config file and override certain options as necessary: testharness --config testsprite2_sample.config --num-variations 10

+

Note: You may find it convenient to copy the SUT executable along with any resources to the test harness directory. Also note that testsprite2 and its resources (icon.bmp) are automatically copied when using the Visual Studio solution.

+

+Usage examples:

+

Passing a custom arguments string: testharness --sutapp testsprite2 --sutargs "\-\-cyclecolor \-\-blend mod +\-\-iterations 2" --action-config xyz.actions

+

Using the random variator: testharness --sutapp testsprite2 --variator random --num-variations 5 --parameter-config xyz.parameters --action-config xyz.actions

+

+Config Files

+

Config files are an alternate way to pass parameters to the test harness. We describe the paramters in a config file and pass that to the test harness using the --config option. The config file consists of lines of the form "x=y" where x is an option and y is it's value. For boolean options, we simply give the name of the option to indicate that it is to be passed to the testharness.

+

The hash '#' character can be used to start a comment from that point to the end of the line.

+

+The SUT Parameters File

+

To generate variations we need to describe the parameters the will be passed to the SUT. This description is given in a parameters file. Each line of the parameters file (except the blank lines) represents one command line option with five comma separated fields: name, type, values, required, categories

+
    +
  • name is the name of the option, e.g., --cyclecolor.
  • +
  • type can have one of three values - integer, boolean and enum.
  • +
  • values - for integer options this is the valid range of values the option can take, i.e., [min max]. For enum options this is a list of strings that the option can take, e.g., [val1 val2 val3]. For boolean options this field is ignored.
  • +
  • required - true if the option is required, false otherwise.
  • +
  • categories - a list of categories that the option belongs to. For example, [video mouse audio]
  • +
+

Just like with config files, hash characters can be used to start comments.

+

+Additional Notes

+
    +
  • If you want to have an option that always takes a certain value, use an enum with only one value.
  • +
  • Currently there isn't any way to turn an option off, i.e., all options will be included in the command line options string that is generated using the config. If you don't want an option to be passed to the SUT, remove it from the config file or comment it out.
  • +
+

+Variators

+

Variators are the mechanism by which we generate strings of command line arguments to test the SUT with. A variator is quite simply an iterator that iterates through different variations of command line options. There are two variators supported at the moment:

+
    +
  • Exhaustive - Generate all possible combinations of command line arguments that are valid.
  • +
  • Random - Generate a random variation each time the variator is called.
  • +
+

As an example, let's try a simple .parameters file:
+ --blend, enum, [add mod], false, []
+ --fullscreen, boolean, [], false, []

+

The exhaustive variator would generate the following four variations:
+ --blend add
+ --blend mod
+ --blend add --fullscreen
+ --blend mod --fullscreen
+

+

The random variator would simply generate a random variation like the following:
+ --blend mod

+

+The Actions File

+

Once the SUT process has been launched, automated testing happens using a mechanism called actions. A list of actions is read from a file and each action is performed on the SUT process sequentially. Each line in the actions file describes an action. The format for an action is hh:mm:ss ACTION_NAME additional parameters. There are five actions supported at the moment:

+
    +
  • SCREENSHOT - Takes a screenshot of each window owned by the SUT process. The images are saved as [hash]_[i].bmp where [hash] is the 32 character long hexadecimal MD5 hash of the arguments string that was passed to the SUT while launching it and i is the window number. i = 1 is an exceptional case where the _[i] is dropped and the filename is simply [hash].bmp
    + Note: The screenshots are only of the window's client area.
  • +
  • VERIFY - Verifies the screenshots taken by the last SCREENSHOT action by comparing them against a verification image. Each [hash]_i.bmp image output by the SCREENSHOT action is compared against a [hash].bmp image in the verify-dir.
  • +
  • QUIT - Gracefully quits the SUT process. On Windows this means sending a WM_CLOSE message to each window owned by the SUT process. On Linux it means sending a SIGQUIT signal to the SUT process.
  • +
  • KILL - Forcefully kills the SUT process. This is useful when the SUT process doesn't respond to the QUIT action.
  • +
  • LAUNCH [/path/to/executable] [args] - Runs an executable with [args] as the arguments string.
  • +
+

Just like with config files, hash characters can be used to start comments.

+

+Continuous Integration (CI)

+

One of the goals of the project was to create a test harness that integrates with CI systems to provide automated visual and interactive testing to SDL.

+

At the moment the test harness can be run in two modes that are useful for CI:

+
    +
  • Crash testing mode - launch the SUT with every variation and all parameters, report to the CI if there's a crash
  • +
  • Visual testing mode - launch and visually verify the SUT for a smaller subset of the parameters
  • +
+

Look at the launch_harness.sh/launch_harness.cmd for an example scripts that run the test harness for all variations with all parameters and report an error on a crash. The script uses the testsprite2_crashtest config, so remember to copy those files over to the test harness executable directory along with the script.

+

+TODOs

+
    +
  • Allow specifying a clipping box along with the VERIFY action, i.e., hh:mm:ss VERIFY x, y, w, h
  • +
  • Add support for spaces between the equals sign in test harness config files
  • +
  • Implement the SCREENSHOT action on Linux
  • +
  • Add a pairwise variator
  • +
  • Add actions to inject keyboard/mouse events
  • +
  • Add actions to manipulate the SUT window, e.g., minimize, restore, resize
  • +
  • Add support to load and save screenshots as .pngs instead of .bmps
  • +
+

+Known Issues

+
    +
  • The QUIT action does not work on a testsprite2 process with multiple windows. This appears to be an issue with testsprite2.
  • +
  • The SCREENSHOT action doesn't capture the testsprite2 window correctly if the –fullscreen option is supplied. It works with –fullscreen-desktop, however.
  • +
+

+More Information

+

Author Contact Info:
+ Apoorv Upreti <apoor.nosp@m.vupr.nosp@m.eti@g.nosp@m.mail.nosp@m..com>

+

Other useful links:

+ +
+ + + + diff --git a/visualtest/docs/html/jquery.js b/visualtest/docs/html/jquery.js new file mode 100755 index 0000000000000..c197801c5d091 --- /dev/null +++ b/visualtest/docs/html/jquery.js @@ -0,0 +1,31 @@ +/*! + * jQuery JavaScript Library v1.7.1 + * http://jquery.com/ + * + * Copyright 2011, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Mon Nov 21 21:11:03 2011 -0500 + */ +(function(bb,L){var av=bb.document,bu=bb.navigator,bl=bb.location;var b=(function(){var bF=function(b0,b1){return new bF.fn.init(b0,b1,bD)},bU=bb.jQuery,bH=bb.$,bD,bY=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,bM=/\S/,bI=/^\s+/,bE=/\s+$/,bA=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,bN=/^[\],:{}\s]*$/,bW=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,bP=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,bJ=/(?:^|:|,)(?:\s*\[)+/g,by=/(webkit)[ \/]([\w.]+)/,bR=/(opera)(?:.*version)?[ \/]([\w.]+)/,bQ=/(msie) ([\w.]+)/,bS=/(mozilla)(?:.*? rv:([\w.]+))?/,bB=/-([a-z]|[0-9])/ig,bZ=/^-ms-/,bT=function(b0,b1){return(b1+"").toUpperCase()},bX=bu.userAgent,bV,bC,e,bL=Object.prototype.toString,bG=Object.prototype.hasOwnProperty,bz=Array.prototype.push,bK=Array.prototype.slice,bO=String.prototype.trim,bv=Array.prototype.indexOf,bx={};bF.fn=bF.prototype={constructor:bF,init:function(b0,b4,b3){var b2,b5,b1,b6;if(!b0){return this}if(b0.nodeType){this.context=this[0]=b0;this.length=1;return this}if(b0==="body"&&!b4&&av.body){this.context=av;this[0]=av.body;this.selector=b0;this.length=1;return this}if(typeof b0==="string"){if(b0.charAt(0)==="<"&&b0.charAt(b0.length-1)===">"&&b0.length>=3){b2=[null,b0,null]}else{b2=bY.exec(b0)}if(b2&&(b2[1]||!b4)){if(b2[1]){b4=b4 instanceof bF?b4[0]:b4;b6=(b4?b4.ownerDocument||b4:av);b1=bA.exec(b0);if(b1){if(bF.isPlainObject(b4)){b0=[av.createElement(b1[1])];bF.fn.attr.call(b0,b4,true)}else{b0=[b6.createElement(b1[1])]}}else{b1=bF.buildFragment([b2[1]],[b6]);b0=(b1.cacheable?bF.clone(b1.fragment):b1.fragment).childNodes}return bF.merge(this,b0)}else{b5=av.getElementById(b2[2]);if(b5&&b5.parentNode){if(b5.id!==b2[2]){return b3.find(b0)}this.length=1;this[0]=b5}this.context=av;this.selector=b0;return this}}else{if(!b4||b4.jquery){return(b4||b3).find(b0)}else{return this.constructor(b4).find(b0)}}}else{if(bF.isFunction(b0)){return b3.ready(b0)}}if(b0.selector!==L){this.selector=b0.selector;this.context=b0.context}return bF.makeArray(b0,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return bK.call(this,0)},get:function(b0){return b0==null?this.toArray():(b0<0?this[this.length+b0]:this[b0])},pushStack:function(b1,b3,b0){var b2=this.constructor();if(bF.isArray(b1)){bz.apply(b2,b1)}else{bF.merge(b2,b1)}b2.prevObject=this;b2.context=this.context;if(b3==="find"){b2.selector=this.selector+(this.selector?" ":"")+b0}else{if(b3){b2.selector=this.selector+"."+b3+"("+b0+")"}}return b2},each:function(b1,b0){return bF.each(this,b1,b0)},ready:function(b0){bF.bindReady();bC.add(b0);return this},eq:function(b0){b0=+b0;return b0===-1?this.slice(b0):this.slice(b0,b0+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bK.apply(this,arguments),"slice",bK.call(arguments).join(","))},map:function(b0){return this.pushStack(bF.map(this,function(b2,b1){return b0.call(b2,b1,b2)}))},end:function(){return this.prevObject||this.constructor(null)},push:bz,sort:[].sort,splice:[].splice};bF.fn.init.prototype=bF.fn;bF.extend=bF.fn.extend=function(){var b9,b2,b0,b1,b6,b7,b5=arguments[0]||{},b4=1,b3=arguments.length,b8=false;if(typeof b5==="boolean"){b8=b5;b5=arguments[1]||{};b4=2}if(typeof b5!=="object"&&!bF.isFunction(b5)){b5={}}if(b3===b4){b5=this;--b4}for(;b40){return}bC.fireWith(av,[bF]);if(bF.fn.trigger){bF(av).trigger("ready").off("ready")}}},bindReady:function(){if(bC){return}bC=bF.Callbacks("once memory");if(av.readyState==="complete"){return setTimeout(bF.ready,1)}if(av.addEventListener){av.addEventListener("DOMContentLoaded",e,false);bb.addEventListener("load",bF.ready,false)}else{if(av.attachEvent){av.attachEvent("onreadystatechange",e);bb.attachEvent("onload",bF.ready);var b0=false;try{b0=bb.frameElement==null}catch(b1){}if(av.documentElement.doScroll&&b0){bw()}}}},isFunction:function(b0){return bF.type(b0)==="function"},isArray:Array.isArray||function(b0){return bF.type(b0)==="array"},isWindow:function(b0){return b0&&typeof b0==="object"&&"setInterval" in b0},isNumeric:function(b0){return !isNaN(parseFloat(b0))&&isFinite(b0)},type:function(b0){return b0==null?String(b0):bx[bL.call(b0)]||"object"},isPlainObject:function(b2){if(!b2||bF.type(b2)!=="object"||b2.nodeType||bF.isWindow(b2)){return false}try{if(b2.constructor&&!bG.call(b2,"constructor")&&!bG.call(b2.constructor.prototype,"isPrototypeOf")){return false}}catch(b1){return false}var b0;for(b0 in b2){}return b0===L||bG.call(b2,b0)},isEmptyObject:function(b1){for(var b0 in b1){return false}return true},error:function(b0){throw new Error(b0)},parseJSON:function(b0){if(typeof b0!=="string"||!b0){return null}b0=bF.trim(b0);if(bb.JSON&&bb.JSON.parse){return bb.JSON.parse(b0)}if(bN.test(b0.replace(bW,"@").replace(bP,"]").replace(bJ,""))){return(new Function("return "+b0))()}bF.error("Invalid JSON: "+b0)},parseXML:function(b2){var b0,b1;try{if(bb.DOMParser){b1=new DOMParser();b0=b1.parseFromString(b2,"text/xml")}else{b0=new ActiveXObject("Microsoft.XMLDOM");b0.async="false";b0.loadXML(b2)}}catch(b3){b0=L}if(!b0||!b0.documentElement||b0.getElementsByTagName("parsererror").length){bF.error("Invalid XML: "+b2)}return b0},noop:function(){},globalEval:function(b0){if(b0&&bM.test(b0)){(bb.execScript||function(b1){bb["eval"].call(bb,b1)})(b0)}},camelCase:function(b0){return b0.replace(bZ,"ms-").replace(bB,bT)},nodeName:function(b1,b0){return b1.nodeName&&b1.nodeName.toUpperCase()===b0.toUpperCase()},each:function(b3,b6,b2){var b1,b4=0,b5=b3.length,b0=b5===L||bF.isFunction(b3);if(b2){if(b0){for(b1 in b3){if(b6.apply(b3[b1],b2)===false){break}}}else{for(;b40&&b0[0]&&b0[b1-1])||b1===0||bF.isArray(b0));if(b3){for(;b21?aJ.call(arguments,0):bG;if(!(--bw)){bC.resolveWith(bC,bx)}}}function bz(bF){return function(bG){bB[bF]=arguments.length>1?aJ.call(arguments,0):bG;bC.notifyWith(bE,bB)}}if(e>1){for(;bv
a";bI=bv.getElementsByTagName("*");bF=bv.getElementsByTagName("a")[0];if(!bI||!bI.length||!bF){return{}}bG=av.createElement("select");bx=bG.appendChild(av.createElement("option"));bE=bv.getElementsByTagName("input")[0];bJ={leadingWhitespace:(bv.firstChild.nodeType===3),tbody:!bv.getElementsByTagName("tbody").length,htmlSerialize:!!bv.getElementsByTagName("link").length,style:/top/.test(bF.getAttribute("style")),hrefNormalized:(bF.getAttribute("href")==="/a"),opacity:/^0.55/.test(bF.style.opacity),cssFloat:!!bF.style.cssFloat,checkOn:(bE.value==="on"),optSelected:bx.selected,getSetAttribute:bv.className!=="t",enctype:!!av.createElement("form").enctype,html5Clone:av.createElement("nav").cloneNode(true).outerHTML!=="<:nav>",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true};bE.checked=true;bJ.noCloneChecked=bE.cloneNode(true).checked;bG.disabled=true;bJ.optDisabled=!bx.disabled;try{delete bv.test}catch(bC){bJ.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent("onclick",function(){bJ.noCloneEvent=false});bv.cloneNode(true).fireEvent("onclick")}bE=av.createElement("input");bE.value="t";bE.setAttribute("type","radio");bJ.radioValue=bE.value==="t";bE.setAttribute("checked","checked");bv.appendChild(bE);bD=av.createDocumentFragment();bD.appendChild(bv.lastChild);bJ.checkClone=bD.cloneNode(true).cloneNode(true).lastChild.checked;bJ.appendChecked=bE.checked;bD.removeChild(bE);bD.appendChild(bv);bv.innerHTML="";if(bb.getComputedStyle){bA=av.createElement("div");bA.style.width="0";bA.style.marginRight="0";bv.style.width="2px";bv.appendChild(bA);bJ.reliableMarginRight=(parseInt((bb.getComputedStyle(bA,null)||{marginRight:0}).marginRight,10)||0)===0}if(bv.attachEvent){for(by in {submit:1,change:1,focusin:1}){bB="on"+by;bw=(bB in bv);if(!bw){bv.setAttribute(bB,"return;");bw=(typeof bv[bB]==="function")}bJ[by+"Bubbles"]=bw}}bD.removeChild(bv);bD=bG=bx=bA=bv=bE=null;b(function(){var bM,bU,bV,bT,bN,bO,bL,bS,bR,e,bP,bQ=av.getElementsByTagName("body")[0];if(!bQ){return}bL=1;bS="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;";bR="visibility:hidden;border:0;";e="style='"+bS+"border:5px solid #000;padding:0;'";bP="
";bM=av.createElement("div");bM.style.cssText=bR+"width:0;height:0;position:static;top:0;margin-top:"+bL+"px";bQ.insertBefore(bM,bQ.firstChild);bv=av.createElement("div");bM.appendChild(bv);bv.innerHTML="
t
";bz=bv.getElementsByTagName("td");bw=(bz[0].offsetHeight===0);bz[0].style.display="";bz[1].style.display="none";bJ.reliableHiddenOffsets=bw&&(bz[0].offsetHeight===0);bv.innerHTML="";bv.style.width=bv.style.paddingLeft="1px";b.boxModel=bJ.boxModel=bv.offsetWidth===2;if(typeof bv.style.zoom!=="undefined"){bv.style.display="inline";bv.style.zoom=1;bJ.inlineBlockNeedsLayout=(bv.offsetWidth===2);bv.style.display="";bv.innerHTML="
";bJ.shrinkWrapBlocks=(bv.offsetWidth!==2)}bv.style.cssText=bS+bR;bv.innerHTML=bP;bU=bv.firstChild;bV=bU.firstChild;bN=bU.nextSibling.firstChild.firstChild;bO={doesNotAddBorder:(bV.offsetTop!==5),doesAddBorderForTableAndCells:(bN.offsetTop===5)};bV.style.position="fixed";bV.style.top="20px";bO.fixedPosition=(bV.offsetTop===20||bV.offsetTop===15);bV.style.position=bV.style.top="";bU.style.overflow="hidden";bU.style.position="relative";bO.subtractsBorderForOverflowNotVisible=(bV.offsetTop===-5);bO.doesNotIncludeMarginInBodyOffset=(bQ.offsetTop!==bL);bQ.removeChild(bM);bv=bM=null;b.extend(bJ,bO)});return bJ})();var aS=/^(?:\{.*\}|\[.*\])$/,aA=/([A-Z])/g;b.extend({cache:{},uuid:0,expando:"jQuery"+(b.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(e){e=e.nodeType?b.cache[e[b.expando]]:e[b.expando];return !!e&&!S(e)},data:function(bx,bv,bz,by){if(!b.acceptData(bx)){return}var bG,bA,bD,bE=b.expando,bC=typeof bv==="string",bF=bx.nodeType,e=bF?b.cache:bx,bw=bF?bx[bE]:bx[bE]&&bE,bB=bv==="events";if((!bw||!e[bw]||(!bB&&!by&&!e[bw].data))&&bC&&bz===L){return}if(!bw){if(bF){bx[bE]=bw=++b.uuid}else{bw=bE}}if(!e[bw]){e[bw]={};if(!bF){e[bw].toJSON=b.noop}}if(typeof bv==="object"||typeof bv==="function"){if(by){e[bw]=b.extend(e[bw],bv)}else{e[bw].data=b.extend(e[bw].data,bv)}}bG=bA=e[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==L){bA[b.camelCase(bv)]=bz}if(bB&&!bA[bv]){return bG.events}if(bC){bD=bA[bv];if(bD==null){bD=bA[b.camelCase(bv)]}}else{bD=bA}return bD},removeData:function(bx,bv,by){if(!b.acceptData(bx)){return}var bB,bA,bz,bC=b.expando,bD=bx.nodeType,e=bD?b.cache:bx,bw=bD?bx[bC]:bC;if(!e[bw]){return}if(bv){bB=by?e[bw]:e[bw].data;if(bB){if(!b.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=b.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(" ")}}}for(bA=0,bz=bv.length;bA-1){return true}}return false},val:function(bx){var e,bv,by,bw=this[0];if(!arguments.length){if(bw){e=b.valHooks[bw.nodeName.toLowerCase()]||b.valHooks[bw.type];if(e&&"get" in e&&(bv=e.get(bw,"value"))!==L){return bv}bv=bw.value;return typeof bv==="string"?bv.replace(aU,""):bv==null?"":bv}return}by=b.isFunction(bx);return this.each(function(bA){var bz=b(this),bB;if(this.nodeType!==1){return}if(by){bB=bx.call(this,bA,bz.val())}else{bB=bx}if(bB==null){bB=""}else{if(typeof bB==="number"){bB+=""}else{if(b.isArray(bB)){bB=b.map(bB,function(bC){return bC==null?"":bC+""})}}}e=b.valHooks[this.nodeName.toLowerCase()]||b.valHooks[this.type];if(!e||!("set" in e)||e.set(this,bB,"value")===L){this.value=bB}})}});b.extend({valHooks:{option:{get:function(e){var bv=e.attributes.value;return !bv||bv.specified?e.value:e.text}},select:{get:function(e){var bA,bv,bz,bx,by=e.selectedIndex,bB=[],bC=e.options,bw=e.type==="select-one";if(by<0){return null}bv=bw?by:0;bz=bw?by+1:bC.length;for(;bv=0});if(!e.length){bv.selectedIndex=-1}return e}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(bA,bx,bB,bz){var bw,e,by,bv=bA.nodeType; +if(!bA||bv===3||bv===8||bv===2){return}if(bz&&bx in b.attrFn){return b(bA)[bx](bB)}if(typeof bA.getAttribute==="undefined"){return b.prop(bA,bx,bB)}by=bv!==1||!b.isXMLDoc(bA);if(by){bx=bx.toLowerCase();e=b.attrHooks[bx]||(ao.test(bx)?aY:be)}if(bB!==L){if(bB===null){b.removeAttr(bA,bx);return}else{if(e&&"set" in e&&by&&(bw=e.set(bA,bB,bx))!==L){return bw}else{bA.setAttribute(bx,""+bB);return bB}}}else{if(e&&"get" in e&&by&&(bw=e.get(bA,bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?L:bw}}},removeAttr:function(bx,bz){var by,bA,bv,e,bw=0;if(bz&&bx.nodeType===1){bA=bz.toLowerCase().split(af);e=bA.length;for(;bw=0)}}})});var bd=/^(?:textarea|input|select)$/i,n=/^([^\.]*)?(?:\.(.+))?$/,J=/\bhover(\.\S+)?\b/,aO=/^key/,bf=/^(?:mouse|contextmenu)|click/,T=/^(?:focusinfocus|focusoutblur)$/,U=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,Y=function(e){var bv=U.exec(e);if(bv){bv[1]=(bv[1]||"").toLowerCase();bv[3]=bv[3]&&new RegExp("(?:^|\\s)"+bv[3]+"(?:\\s|$)")}return bv},j=function(bw,e){var bv=bw.attributes||{};return((!e[1]||bw.nodeName.toLowerCase()===e[1])&&(!e[2]||(bv.id||{}).value===e[2])&&(!e[3]||e[3].test((bv["class"]||{}).value)))},bt=function(e){return b.event.special.hover?e:e.replace(J,"mouseenter$1 mouseleave$1")};b.event={add:function(bx,bC,bJ,bA,by){var bD,bB,bK,bI,bH,bF,e,bG,bv,bz,bw,bE;if(bx.nodeType===3||bx.nodeType===8||!bC||!bJ||!(bD=b._data(bx))){return}if(bJ.handler){bv=bJ;bJ=bv.handler}if(!bJ.guid){bJ.guid=b.guid++}bK=bD.events;if(!bK){bD.events=bK={}}bB=bD.handle;if(!bB){bD.handle=bB=function(bL){return typeof b!=="undefined"&&(!bL||b.event.triggered!==bL.type)?b.event.dispatch.apply(bB.elem,arguments):L};bB.elem=bx}bC=b.trim(bt(bC)).split(" ");for(bI=0;bI=0){bG=bG.slice(0,-1);bw=true}if(bG.indexOf(".")>=0){bx=bG.split(".");bG=bx.shift();bx.sort()}if((!bA||b.event.customEvent[bG])&&!b.event.global[bG]){return}bv=typeof bv==="object"?bv[b.expando]?bv:new b.Event(bG,bv):new b.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bw;bv.namespace=bx.join(".");bv.namespace_re=bv.namespace?new RegExp("(^|\\.)"+bx.join("\\.(?:.*\\.)?")+"(\\.|$)"):null;by=bG.indexOf(":")<0?"on"+bG:"";if(!bA){e=b.cache;for(bC in e){if(e[bC].events&&e[bC].events[bG]){b.event.trigger(bv,bD,e[bC].handle.elem,true)}}return}bv.result=L;if(!bv.target){bv.target=bA}bD=bD!=null?b.makeArray(bD):[];bD.unshift(bv);bF=b.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA,bD)===false){return}bB=[[bA,bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!b.isWindow(bA)){bI=bF.delegateType||bG;bH=T.test(bI+bG)?bA:bA.parentNode;bz=null;for(;bH;bH=bH.parentNode){bB.push([bH,bI]);bz=bH}if(bz&&bz===bA.ownerDocument){bB.push([bz.defaultView||bz.parentWindow||bb,bI])}}for(bC=0;bCbA){bH.push({elem:this,matches:bz.slice(bA)})}for(bC=0;bC0?this.on(e,null,bx,bw):this.trigger(e)};if(b.attrFn){b.attrFn[e]=true}if(aO.test(e)){b.event.fixHooks[e]=b.event.keyHooks}if(bf.test(e)){b.event.fixHooks[e]=b.event.mouseHooks}}); +/*! + * Sizzle CSS Selector Engine + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * More information: http://sizzlejs.com/ + */ +(function(){var bH=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bC="sizcache"+(Math.random()+"").replace(".",""),bI=0,bL=Object.prototype.toString,bB=false,bA=true,bK=/\\/g,bO=/\r\n/g,bQ=/\W/;[0,0].sort(function(){bA=false;return 0});var by=function(bV,e,bY,bZ){bY=bY||[];e=e||av;var b1=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bV||typeof bV!=="string"){return bY}var bS,b3,b6,bR,b2,b5,b4,bX,bU=true,bT=by.isXML(e),bW=[],b0=bV;do{bH.exec("");bS=bH.exec(b0);if(bS){b0=bS[3];bW.push(bS[1]);if(bS[2]){bR=bS[3];break}}}while(bS);if(bW.length>1&&bD.exec(bV)){if(bW.length===2&&bE.relative[bW[0]]){b3=bM(bW[0]+bW[1],e,bZ)}else{b3=bE.relative[bW[0]]?[e]:by(bW.shift(),e);while(bW.length){bV=bW.shift();if(bE.relative[bV]){bV+=bW.shift()}b3=bM(bV,b3,bZ)}}}else{if(!bZ&&bW.length>1&&e.nodeType===9&&!bT&&bE.match.ID.test(bW[0])&&!bE.match.ID.test(bW[bW.length-1])){b2=by.find(bW.shift(),e,bT);e=b2.expr?by.filter(b2.expr,b2.set)[0]:b2.set[0]}if(e){b2=bZ?{expr:bW.pop(),set:bF(bZ)}:by.find(bW.pop(),bW.length===1&&(bW[0]==="~"||bW[0]==="+")&&e.parentNode?e.parentNode:e,bT);b3=b2.expr?by.filter(b2.expr,b2.set):b2.set;if(bW.length>0){b6=bF(b3)}else{bU=false}while(bW.length){b5=bW.pop();b4=b5;if(!bE.relative[b5]){b5=""}else{b4=bW.pop()}if(b4==null){b4=e}bE.relative[b5](b6,b4,bT)}}else{b6=bW=[]}}if(!b6){b6=b3}if(!b6){by.error(b5||bV)}if(bL.call(b6)==="[object Array]"){if(!bU){bY.push.apply(bY,b6)}else{if(e&&e.nodeType===1){for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&(b6[bX]===true||b6[bX].nodeType===1&&by.contains(e,b6[bX]))){bY.push(b3[bX])}}}else{for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&b6[bX].nodeType===1){bY.push(b3[bX])}}}}}else{bF(b6,bY)}if(bR){by(bR,b1,bY,bZ);by.uniqueSort(bY)}return bY};by.uniqueSort=function(bR){if(bJ){bB=bA;bR.sort(bJ);if(bB){for(var e=1;e0};by.find=function(bX,e,bY){var bW,bS,bU,bT,bV,bR;if(!bX){return[]}for(bS=0,bU=bE.order.length;bS":function(bW,bR){var bV,bU=typeof bR==="string",bS=0,e=bW.length;if(bU&&!bQ.test(bR)){bR=bR.toLowerCase();for(;bS=0)){if(!bS){e.push(bV)}}else{if(bS){bR[bU]=false}}}}return false},ID:function(e){return e[1].replace(bK,"")},TAG:function(bR,e){return bR[1].replace(bK,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){by.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var bR=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bR[1]+(bR[2]||1))-0;e[3]=bR[3]-0}else{if(e[2]){by.error(e[0])}}e[0]=bI++;return e},ATTR:function(bU,bR,bS,e,bV,bW){var bT=bU[1]=bU[1].replace(bK,"");if(!bW&&bE.attrMap[bT]){bU[1]=bE.attrMap[bT]}bU[4]=(bU[4]||bU[5]||"").replace(bK,"");if(bU[2]==="~="){bU[4]=" "+bU[4]+" "}return bU},PSEUDO:function(bU,bR,bS,e,bV){if(bU[1]==="not"){if((bH.exec(bU[3])||"").length>1||/^\w/.test(bU[3])){bU[3]=by(bU[3],null,null,bR)}else{var bT=by.filter(bU[3],bR,bS,true^bV);if(!bS){e.push.apply(e,bT)}return false}}else{if(bE.match.POS.test(bU[0])||bE.match.CHILD.test(bU[0])){return true}}return bU},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(bS,bR,e){return !!by(e[3],bS).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(bS){var e=bS.getAttribute("type"),bR=bS.type;return bS.nodeName.toLowerCase()==="input"&&"text"===bR&&(e===bR||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===bR.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===bR.type},button:function(bR){var e=bR.nodeName.toLowerCase();return e==="input"&&"button"===bR.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(bR,e){return e===0},last:function(bS,bR,e,bT){return bR===bT.length-1},even:function(bR,e){return e%2===0},odd:function(bR,e){return e%2===1 +},lt:function(bS,bR,e){return bRe[3]-0},nth:function(bS,bR,e){return e[3]-0===bR},eq:function(bS,bR,e){return e[3]-0===bR}},filter:{PSEUDO:function(bS,bX,bW,bY){var e=bX[1],bR=bE.filters[e];if(bR){return bR(bS,bW,bX,bY)}else{if(e==="contains"){return(bS.textContent||bS.innerText||bw([bS])||"").indexOf(bX[3])>=0}else{if(e==="not"){var bT=bX[3];for(var bV=0,bU=bT.length;bV=0)}}},ID:function(bR,e){return bR.nodeType===1&&bR.getAttribute("id")===e},TAG:function(bR,e){return(e==="*"&&bR.nodeType===1)||!!bR.nodeName&&bR.nodeName.toLowerCase()===e},CLASS:function(bR,e){return(" "+(bR.className||bR.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(bV,bT){var bS=bT[1],e=by.attr?by.attr(bV,bS):bE.attrHandle[bS]?bE.attrHandle[bS](bV):bV[bS]!=null?bV[bS]:bV.getAttribute(bS),bW=e+"",bU=bT[2],bR=bT[4];return e==null?bU==="!=":!bU&&by.attr?e!=null:bU==="="?bW===bR:bU==="*="?bW.indexOf(bR)>=0:bU==="~="?(" "+bW+" ").indexOf(bR)>=0:!bR?bW&&e!==false:bU==="!="?bW!==bR:bU==="^="?bW.indexOf(bR)===0:bU==="$="?bW.substr(bW.length-bR.length)===bR:bU==="|="?bW===bR||bW.substr(0,bR.length+1)===bR+"-":false},POS:function(bU,bR,bS,bV){var e=bR[2],bT=bE.setFilters[e];if(bT){return bT(bU,bS,bR,bV)}}}};var bD=bE.match.POS,bx=function(bR,e){return"\\"+(e-0+1)};for(var bz in bE.match){bE.match[bz]=new RegExp(bE.match[bz].source+(/(?![^\[]*\])(?![^\(]*\))/.source));bE.leftMatch[bz]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bE.match[bz].source.replace(/\\(\d+)/g,bx))}var bF=function(bR,e){bR=Array.prototype.slice.call(bR,0);if(e){e.push.apply(e,bR);return e}return bR};try{Array.prototype.slice.call(av.documentElement.childNodes,0)[0].nodeType}catch(bP){bF=function(bU,bT){var bS=0,bR=bT||[];if(bL.call(bU)==="[object Array]"){Array.prototype.push.apply(bR,bU)}else{if(typeof bU.length==="number"){for(var e=bU.length;bS";e.insertBefore(bR,e.firstChild);if(av.getElementById(bS)){bE.find.ID=function(bU,bV,bW){if(typeof bV.getElementById!=="undefined"&&!bW){var bT=bV.getElementById(bU[1]);return bT?bT.id===bU[1]||typeof bT.getAttributeNode!=="undefined"&&bT.getAttributeNode("id").nodeValue===bU[1]?[bT]:L:[]}};bE.filter.ID=function(bV,bT){var bU=typeof bV.getAttributeNode!=="undefined"&&bV.getAttributeNode("id");return bV.nodeType===1&&bU&&bU.nodeValue===bT}}e.removeChild(bR);e=bR=null})();(function(){var e=av.createElement("div");e.appendChild(av.createComment(""));if(e.getElementsByTagName("*").length>0){bE.find.TAG=function(bR,bV){var bU=bV.getElementsByTagName(bR[1]);if(bR[1]==="*"){var bT=[];for(var bS=0;bU[bS];bS++){if(bU[bS].nodeType===1){bT.push(bU[bS])}}bU=bT}return bU}}e.innerHTML="";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bE.attrHandle.href=function(bR){return bR.getAttribute("href",2)}}e=null})();if(av.querySelectorAll){(function(){var e=by,bT=av.createElement("div"),bS="__sizzle__";bT.innerHTML="

";if(bT.querySelectorAll&&bT.querySelectorAll(".TEST").length===0){return}by=function(b4,bV,bZ,b3){bV=bV||av;if(!b3&&!by.isXML(bV)){var b2=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b4);if(b2&&(bV.nodeType===1||bV.nodeType===9)){if(b2[1]){return bF(bV.getElementsByTagName(b4),bZ)}else{if(b2[2]&&bE.find.CLASS&&bV.getElementsByClassName){return bF(bV.getElementsByClassName(b2[2]),bZ)}}}if(bV.nodeType===9){if(b4==="body"&&bV.body){return bF([bV.body],bZ)}else{if(b2&&b2[3]){var bY=bV.getElementById(b2[3]);if(bY&&bY.parentNode){if(bY.id===b2[3]){return bF([bY],bZ)}}else{return bF([],bZ)}}}try{return bF(bV.querySelectorAll(b4),bZ)}catch(b0){}}else{if(bV.nodeType===1&&bV.nodeName.toLowerCase()!=="object"){var bW=bV,bX=bV.getAttribute("id"),bU=bX||bS,b6=bV.parentNode,b5=/^\s*[+~]/.test(b4);if(!bX){bV.setAttribute("id",bU)}else{bU=bU.replace(/'/g,"\\$&")}if(b5&&b6){bV=bV.parentNode}try{if(!b5||b6){return bF(bV.querySelectorAll("[id='"+bU+"'] "+b4),bZ)}}catch(b1){}finally{if(!bX){bW.removeAttribute("id")}}}}}return e(b4,bV,bZ,b3)};for(var bR in e){by[bR]=e[bR]}bT=null})()}(function(){var e=av.documentElement,bS=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(bS){var bU=!bS.call(av.createElement("div"),"div"),bR=false;try{bS.call(av.documentElement,"[test!='']:sizzle")}catch(bT){bR=true}by.matchesSelector=function(bW,bY){bY=bY.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!by.isXML(bW)){try{if(bR||!bE.match.PSEUDO.test(bY)&&!/!=/.test(bY)){var bV=bS.call(bW,bY);if(bV||!bU||bW.document&&bW.document.nodeType!==11){return bV}}}catch(bX){}}return by(bY,null,null,[bW]).length>0}}})();(function(){var e=av.createElement("div");e.innerHTML="
";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bE.order.splice(1,0,"CLASS");bE.find.CLASS=function(bR,bS,bT){if(typeof bS.getElementsByClassName!=="undefined"&&!bT){return bS.getElementsByClassName(bR[1])}};e=null})();function bv(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT0){bU=e;break}}}e=e[bR]}bZ[bT]=bU}}}if(av.documentElement.contains){by.contains=function(bR,e){return bR!==e&&(bR.contains?bR.contains(e):true)}}else{if(av.documentElement.compareDocumentPosition){by.contains=function(bR,e){return !!(bR.compareDocumentPosition(e)&16)}}else{by.contains=function(){return false}}}by.isXML=function(e){var bR=(e?e.ownerDocument||e:0).documentElement;return bR?bR.nodeName!=="HTML":false};var bM=function(bS,e,bW){var bV,bX=[],bU="",bY=e.nodeType?[e]:e;while((bV=bE.match.PSEUDO.exec(bS))){bU+=bV[0];bS=bS.replace(bE.match.PSEUDO,"")}bS=bE.relative[bS]?bS+"*":bS;for(var bT=0,bR=bY.length;bT0){for(bB=bA;bB=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(by,bx){var bv=[],bw,e,bz=this[0];if(b.isArray(by)){var bB=1;while(bz&&bz.ownerDocument&&bz!==bx){for(bw=0;bw-1:b.find.matchesSelector(bz,by)){bv.push(bz);break}else{bz=bz.parentNode;if(!bz||!bz.ownerDocument||bz===bx||bz.nodeType===11){break}}}}bv=bv.length>1?b.unique(bv):bv;return this.pushStack(bv,"closest",by)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof e==="string"){return b.inArray(this[0],b(e))}return b.inArray(e.jquery?e[0]:e,this)},add:function(e,bv){var bx=typeof e==="string"?b(e,bv):b.makeArray(e&&e.nodeType?[e]:e),bw=b.merge(this.get(),bx);return this.pushStack(C(bx[0])||C(bw[0])?bw:b.unique(bw))},andSelf:function(){return this.add(this.prevObject)}});function C(e){return !e||!e.parentNode||e.parentNode.nodeType===11}b.each({parent:function(bv){var e=bv.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(bv,e,bw){return b.dir(bv,"parentNode",bw)},next:function(e){return b.nth(e,2,"nextSibling")},prev:function(e){return b.nth(e,2,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(bv,e,bw){return b.dir(bv,"nextSibling",bw)},prevUntil:function(bv,e,bw){return b.dir(bv,"previousSibling",bw)},siblings:function(e){return b.sibling(e.parentNode.firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.makeArray(e.childNodes)}},function(e,bv){b.fn[e]=function(by,bw){var bx=b.map(this,bv,by);if(!ab.test(e)){bw=by}if(bw&&typeof bw==="string"){bx=b.filter(bw,bx)}bx=this.length>1&&!ay[e]?b.unique(bx):bx;if((this.length>1||a9.test(bw))&&aq.test(e)){bx=bx.reverse()}return this.pushStack(bx,e,P.call(arguments).join(","))}});b.extend({filter:function(bw,e,bv){if(bv){bw=":not("+bw+")"}return e.length===1?b.find.matchesSelector(e[0],bw)?[e[0]]:[]:b.find.matches(bw,e)},dir:function(bw,bv,by){var e=[],bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===L||bx.nodeType!==1||!b(bx).is(by))){if(bx.nodeType===1){e.push(bx)}bx=bx[bv]}return e},nth:function(by,e,bw,bx){e=e||1;var bv=0;for(;by;by=by[bw]){if(by.nodeType===1&&++bv===e){break}}return by},sibling:function(bw,bv){var e=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){e.push(bw)}}return e}});function aG(bx,bw,e){bw=bw||0;if(b.isFunction(bw)){return b.grep(bx,function(bz,by){var bA=!!bw.call(bz,by,bz);return bA===e})}else{if(bw.nodeType){return b.grep(bx,function(bz,by){return(bz===bw)===e})}else{if(typeof bw==="string"){var bv=b.grep(bx,function(by){return by.nodeType===1});if(bp.test(bw)){return b.filter(bw,bv,!e)}else{bw=b.filter(bw,bv)}}}}return b.grep(bx,function(bz,by){return(b.inArray(bz,bw)>=0)===e})}function a(e){var bw=aR.split("|"),bv=e.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aR="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ag=/ jQuery\d+="(?:\d+|null)"/g,ar=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,d=/<([\w:]+)/,w=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},ac=a(av); +ax.optgroup=ax.option;ax.tbody=ax.tfoot=ax.colgroup=ax.caption=ax.thead;ax.th=ax.td;if(!b.support.htmlSerialize){ax._default=[1,"div
","
"]}b.fn.extend({text:function(e){if(b.isFunction(e)){return this.each(function(bw){var bv=b(this);bv.text(e.call(this,bw,bv.text()))})}if(typeof e!=="object"&&e!==L){return this.empty().append((this[0]&&this[0].ownerDocument||av).createTextNode(e))}return b.text(this)},wrapAll:function(e){if(b.isFunction(e)){return this.each(function(bw){b(this).wrapAll(e.call(this,bw))})}if(this[0]){var bv=b(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this},wrapInner:function(e){if(b.isFunction(e)){return this.each(function(bv){b(this).wrapInner(e.call(this,bv))})}return this.each(function(){var bv=b(this),bw=bv.contents();if(bw.length){bw.wrapAll(e)}else{bv.append(e)}})},wrap:function(e){var bv=b.isFunction(e);return this.each(function(bw){b(this).wrapAll(bv?e.call(this,bw):e)})},unwrap:function(){return this.parent().each(function(){if(!b.nodeName(this,"body")){b(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.insertBefore(e,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this)})}else{if(arguments.length){var e=b.clean(arguments);e.push.apply(e,this.toArray());return this.pushStack(e,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this,"after",arguments);e.push.apply(e,b.clean(arguments));return e}}},remove:function(e,bx){for(var bv=0,bw;(bw=this[bv])!=null;bv++){if(!e||b.filter(e,[bw]).length){if(!bx&&bw.nodeType===1){b.cleanData(bw.getElementsByTagName("*"));b.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this},empty:function(){for(var e=0,bv;(bv=this[e])!=null;e++){if(bv.nodeType===1){b.cleanData(bv.getElementsByTagName("*"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this},clone:function(bv,e){bv=bv==null?false:bv;e=e==null?bv:e;return this.map(function(){return b.clone(this,bv,e)})},html:function(bx){if(bx===L){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(ag,""):null}else{if(typeof bx==="string"&&!ae.test(bx)&&(b.support.leadingWhitespace||!ar.test(bx))&&!ax[(d.exec(bx)||["",""])[1].toLowerCase()]){bx=bx.replace(R,"<$1>");try{for(var bw=0,bv=this.length;bw1&&bw0?this.clone(true):this).get();b(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz,e,bC.selector)}}});function bg(e){if(typeof e.getElementsByTagName!=="undefined"){return e.getElementsByTagName("*")}else{if(typeof e.querySelectorAll!=="undefined"){return e.querySelectorAll("*")}else{return[]}}}function az(e){if(e.type==="checkbox"||e.type==="radio"){e.defaultChecked=e.checked}}function E(e){var bv=(e.nodeName||"").toLowerCase();if(bv==="input"){az(e)}else{if(bv!=="script"&&typeof e.getElementsByTagName!=="undefined"){b.grep(e.getElementsByTagName("input"),az)}}}function al(e){var bv=av.createElement("div");ac.appendChild(bv);bv.innerHTML=e.outerHTML;return bv.firstChild}b.extend({clone:function(by,bA,bw){var e,bv,bx,bz=b.support.html5Clone||!ah.test("<"+by.nodeName)?by.cloneNode(true):al(by);if((!b.support.noCloneEvent||!b.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!b.isXMLDoc(by)){ai(by,bz);e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){if(bv[bx]){ai(e[bx],bv[bx])}}}if(bA){t(by,bz);if(bw){e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){t(e[bx],bv[bx])}}}e=bv=null;return bz},clean:function(bw,by,bH,bA){var bF;by=by||av;if(typeof by.createElement==="undefined"){by=by.ownerDocument||by[0]&&by[0].ownerDocument||av}var bI=[],bB;for(var bE=0,bz;(bz=bw[bE])!=null;bE++){if(typeof bz==="number"){bz+=""}if(!bz){continue}if(typeof bz==="string"){if(!W.test(bz)){bz=by.createTextNode(bz)}else{bz=bz.replace(R,"<$1>");var bK=(d.exec(bz)||["",""])[1].toLowerCase(),bx=ax[bK]||ax._default,bD=bx[0],bv=by.createElement("div");if(by===av){ac.appendChild(bv)}else{a(by).appendChild(bv)}bv.innerHTML=bx[1]+bz+bx[2];while(bD--){bv=bv.lastChild}if(!b.support.tbody){var e=w.test(bz),bC=bK==="table"&&!e?bv.firstChild&&bv.firstChild.childNodes:bx[1]===""&&!e?bv.childNodes:[];for(bB=bC.length-1;bB>=0;--bB){if(b.nodeName(bC[bB],"tbody")&&!bC[bB].childNodes.length){bC[bB].parentNode.removeChild(bC[bB])}}}if(!b.support.leadingWhitespace&&ar.test(bz)){bv.insertBefore(by.createTextNode(ar.exec(bz)[0]),bv.firstChild)}bz=bv.childNodes}}var bG;if(!b.support.appendChecked){if(bz[0]&&typeof(bG=bz.length)==="number"){for(bB=0;bB=0){return bx+"px"}}else{return bx}}}});if(!b.support.opacity){b.cssHooks.opacity={get:function(bv,e){return au.test((e&&bv.currentStyle?bv.currentStyle.filter:bv.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":e?"1":""},set:function(by,bz){var bx=by.style,bv=by.currentStyle,e=b.isNumeric(bz)?"alpha(opacity="+bz*100+")":"",bw=bv&&bv.filter||bx.filter||"";bx.zoom=1;if(bz>=1&&b.trim(bw.replace(ak,""))===""){bx.removeAttribute("filter");if(bv&&!bv.filter){return}}bx.filter=ak.test(bw)?bw.replace(ak,e):bw+" "+e}}}b(function(){if(!b.support.reliableMarginRight){b.cssHooks.marginRight={get:function(bw,bv){var e;b.swap(bw,{display:"inline-block"},function(){if(bv){e=Z(bw,"margin-right","marginRight")}else{e=bw.style.marginRight}});return e}}}});if(av.defaultView&&av.defaultView.getComputedStyle){aI=function(by,bw){var bv,bx,e;bw=bw.replace(z,"-$1").toLowerCase();if((bx=by.ownerDocument.defaultView)&&(e=bx.getComputedStyle(by,null))){bv=e.getPropertyValue(bw);if(bv===""&&!b.contains(by.ownerDocument.documentElement,by)){bv=b.style(by,bw)}}return bv}}if(av.documentElement.currentStyle){aX=function(bz,bw){var bA,e,by,bv=bz.currentStyle&&bz.currentStyle[bw],bx=bz.style;if(bv===null&&bx&&(by=bx[bw])){bv=by}if(!bc.test(bv)&&bn.test(bv)){bA=bx.left;e=bz.runtimeStyle&&bz.runtimeStyle.left;if(e){bz.runtimeStyle.left=bz.currentStyle.left}bx.left=bw==="fontSize"?"1em":(bv||0);bv=bx.pixelLeft+"px";bx.left=bA;if(e){bz.runtimeStyle.left=e}}return bv===""?"auto":bv}}Z=aI||aX;function p(by,bw,bv){var bA=bw==="width"?by.offsetWidth:by.offsetHeight,bz=bw==="width"?an:a1,bx=0,e=bz.length; +if(bA>0){if(bv!=="border"){for(;bx)<[^<]*)*<\/script>/gi,q=/^(?:select|textarea)/i,h=/\s+/,br=/([?&])_=[^&]*/,K=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,A=b.fn.load,aa={},r={},aE,s,aV=["*/"]+["*"];try{aE=bl.href}catch(aw){aE=av.createElement("a");aE.href="";aE=aE.href}s=K.exec(aE.toLowerCase())||[];function f(e){return function(by,bA){if(typeof by!=="string"){bA=by;by="*"}if(b.isFunction(bA)){var bx=by.toLowerCase().split(h),bw=0,bz=bx.length,bv,bB,bC;for(;bw=0){var e=bw.slice(by,bw.length);bw=bw.slice(0,by)}var bx="GET";if(bz){if(b.isFunction(bz)){bA=bz;bz=L}else{if(typeof bz==="object"){bz=b.param(bz,b.ajaxSettings.traditional);bx="POST"}}}var bv=this;b.ajax({url:bw,type:bx,dataType:"html",data:bz,complete:function(bC,bB,bD){bD=bC.responseText;if(bC.isResolved()){bC.done(function(bE){bD=bE});bv.html(e?b("
").append(bD.replace(a6,"")).find(e):bD)}if(bA){bv.each(bA,[bD,bB,bC])}}});return this},serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||q.test(this.nodeName)||aZ.test(this.type))}).map(function(e,bv){var bw=b(this).val();return bw==null?null:b.isArray(bw)?b.map(bw,function(by,bx){return{name:bv.name,value:by.replace(bs,"\r\n")}}):{name:bv.name,value:bw.replace(bs,"\r\n")}}).get()}});b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,bv){b.fn[bv]=function(bw){return this.on(bv,bw)}});b.each(["get","post"],function(e,bv){b[bv]=function(bw,by,bz,bx){if(b.isFunction(by)){bx=bx||bz;bz=by;by=L}return b.ajax({type:bv,url:bw,data:by,success:bz,dataType:bx})}});b.extend({getScript:function(e,bv){return b.get(e,L,bv,"script")},getJSON:function(e,bv,bw){return b.get(e,bv,bw,"json")},ajaxSetup:function(bv,e){if(e){am(bv,b.ajaxSettings)}else{e=bv;bv=b.ajaxSettings}am(bv,e);return bv},ajaxSettings:{url:aE,isLocal:aM.test(s[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":aV},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":bb.String,"text html":true,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:f(aa),ajaxTransport:f(r),ajax:function(bz,bx){if(typeof bz==="object"){bx=bz;bz=L}bx=bx||{};var bD=b.ajaxSetup({},bx),bS=bD.context||bD,bG=bS!==bD&&(bS.nodeType||bS instanceof b)?b(bS):b.event,bR=b.Deferred(),bN=b.Callbacks("once memory"),bB=bD.statusCode||{},bC,bH={},bO={},bQ,by,bL,bE,bI,bA=0,bw,bK,bJ={readyState:0,setRequestHeader:function(bT,bU){if(!bA){var e=bT.toLowerCase();bT=bO[e]=bO[e]||bT;bH[bT]=bU}return this},getAllResponseHeaders:function(){return bA===2?bQ:null},getResponseHeader:function(bT){var e;if(bA===2){if(!by){by={};while((e=aD.exec(bQ))){by[e[1].toLowerCase()]=e[2]}}e=by[bT.toLowerCase()]}return e===L?null:e},overrideMimeType:function(e){if(!bA){bD.mimeType=e}return this},abort:function(e){e=e||"abort";if(bL){bL.abort(e)}bF(0,e);return this}};function bF(bZ,bU,b0,bW){if(bA===2){return}bA=2;if(bE){clearTimeout(bE)}bL=L;bQ=bW||"";bJ.readyState=bZ>0?4:0;var bT,b4,b3,bX=bU,bY=b0?bj(bD,bJ,b0):L,bV,b2;if(bZ>=200&&bZ<300||bZ===304){if(bD.ifModified){if((bV=bJ.getResponseHeader("Last-Modified"))){b.lastModified[bC]=bV}if((b2=bJ.getResponseHeader("Etag"))){b.etag[bC]=b2}}if(bZ===304){bX="notmodified";bT=true}else{try{b4=G(bD,bY);bX="success";bT=true}catch(b1){bX="parsererror";b3=b1}}}else{b3=bX;if(!bX||bZ){bX="error";if(bZ<0){bZ=0}}}bJ.status=bZ;bJ.statusText=""+(bU||bX);if(bT){bR.resolveWith(bS,[b4,bX,bJ])}else{bR.rejectWith(bS,[bJ,bX,b3])}bJ.statusCode(bB);bB=L;if(bw){bG.trigger("ajax"+(bT?"Success":"Error"),[bJ,bD,bT?b4:b3])}bN.fireWith(bS,[bJ,bX]);if(bw){bG.trigger("ajaxComplete",[bJ,bD]);if(!(--b.active)){b.event.trigger("ajaxStop")}}}bR.promise(bJ);bJ.success=bJ.done;bJ.error=bJ.fail;bJ.complete=bN.add;bJ.statusCode=function(bT){if(bT){var e;if(bA<2){for(e in bT){bB[e]=[bB[e],bT[e]]}}else{e=bT[bJ.status];bJ.then(e,e)}}return this};bD.url=((bz||bD.url)+"").replace(bq,"").replace(c,s[1]+"//");bD.dataTypes=b.trim(bD.dataType||"*").toLowerCase().split(h);if(bD.crossDomain==null){bI=K.exec(bD.url.toLowerCase());bD.crossDomain=!!(bI&&(bI[1]!=s[1]||bI[2]!=s[2]||(bI[3]||(bI[1]==="http:"?80:443))!=(s[3]||(s[1]==="http:"?80:443))))}if(bD.data&&bD.processData&&typeof bD.data!=="string"){bD.data=b.param(bD.data,bD.traditional)}aW(aa,bD,bx,bJ);if(bA===2){return false}bw=bD.global;bD.type=bD.type.toUpperCase();bD.hasContent=!aQ.test(bD.type);if(bw&&b.active++===0){b.event.trigger("ajaxStart")}if(!bD.hasContent){if(bD.data){bD.url+=(M.test(bD.url)?"&":"?")+bD.data;delete bD.data}bC=bD.url;if(bD.cache===false){var bv=b.now(),bP=bD.url.replace(br,"$1_="+bv);bD.url=bP+((bP===bD.url)?(M.test(bD.url)?"&":"?")+"_="+bv:"")}}if(bD.data&&bD.hasContent&&bD.contentType!==false||bx.contentType){bJ.setRequestHeader("Content-Type",bD.contentType)}if(bD.ifModified){bC=bC||bD.url;if(b.lastModified[bC]){bJ.setRequestHeader("If-Modified-Since",b.lastModified[bC])}if(b.etag[bC]){bJ.setRequestHeader("If-None-Match",b.etag[bC])}}bJ.setRequestHeader("Accept",bD.dataTypes[0]&&bD.accepts[bD.dataTypes[0]]?bD.accepts[bD.dataTypes[0]]+(bD.dataTypes[0]!=="*"?", "+aV+"; q=0.01":""):bD.accepts["*"]);for(bK in bD.headers){bJ.setRequestHeader(bK,bD.headers[bK])}if(bD.beforeSend&&(bD.beforeSend.call(bS,bJ,bD)===false||bA===2)){bJ.abort();return false}for(bK in {success:1,error:1,complete:1}){bJ[bK](bD[bK])}bL=aW(r,bD,bx,bJ);if(!bL){bF(-1,"No Transport")}else{bJ.readyState=1;if(bw){bG.trigger("ajaxSend",[bJ,bD])}if(bD.async&&bD.timeout>0){bE=setTimeout(function(){bJ.abort("timeout")},bD.timeout)}try{bA=1;bL.send(bH,bF)}catch(bM){if(bA<2){bF(-1,bM)}else{throw bM}}}return bJ},param:function(e,bw){var bv=[],by=function(bz,bA){bA=b.isFunction(bA)?bA():bA;bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===L){bw=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e,function(){by(this.name,this.value)})}else{for(var bx in e){v(bx,e[bx],bw,by)}}return bv.join("&").replace(k,"+")}});function v(bw,by,bv,bx){if(b.isArray(by)){b.each(by,function(bA,bz){if(bv||ap.test(bw)){bx(bw,bz)}else{v(bw+"["+(typeof bz==="object"||b.isArray(bz)?bA:"")+"]",bz,bv,bx)}})}else{if(!bv&&by!=null&&typeof by==="object"){for(var e in by){v(bw+"["+e+"]",by[e],bv,bx)}}else{bx(bw,by)}}}b.extend({active:0,lastModified:{},etag:{}});function bj(bD,bC,bz){var bv=bD.contents,bB=bD.dataTypes,bw=bD.responseFields,by,bA,bx,e;for(bA in bw){if(bA in bz){bC[bw[bA]]=bz[bA]}}while(bB[0]==="*"){bB.shift();if(by===L){by=bD.mimeType||bC.getResponseHeader("content-type")}}if(by){for(bA in bv){if(bv[bA]&&bv[bA].test(by)){bB.unshift(bA);break}}}if(bB[0] in bz){bx=bB[0]}else{for(bA in bz){if(!bB[0]||bD.converters[bA+" "+bB[0]]){bx=bA;break}if(!e){e=bA}}bx=bx||e}if(bx){if(bx!==bB[0]){bB.unshift(bx)}return bz[bx]}}function G(bH,bz){if(bH.dataFilter){bz=bH.dataFilter(bz,bH.dataType)}var bD=bH.dataTypes,bG={},bA,bE,bw=bD.length,bB,bC=bD[0],bx,by,bF,bv,e;for(bA=1;bA=bw.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bw.animatedProperties[this.prop]=true;for(bA in bw.animatedProperties){if(bw.animatedProperties[bA]!==true){e=false}}if(e){if(bw.overflow!=null&&!b.support.shrinkWrapBlocks){b.each(["","X","Y"],function(bC,bD){bz.style["overflow"+bD]=bw.overflow[bC]})}if(bw.hide){b(bz).hide()}if(bw.hide||bw.show){for(bA in bw.animatedProperties){b.style(bz,bA,bw.orig[bA]);b.removeData(bz,"fxshow"+bA,true);b.removeData(bz,"toggle"+bA,true)}}bv=bw.complete;if(bv){bw.complete=false;bv.call(bz)}}return false}else{if(bw.duration==Infinity){this.now=bx}else{bB=bx-this.startTime;this.state=bB/bw.duration;this.pos=b.easing[bw.animatedProperties[this.prop]](this.state,bB,0,1,bw.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx,{tick:function(){var bw,bv=b.timers,e=0;for(;e").appendTo(e),bw=bv.css("display");bv.remove();if(bw==="none"||bw===""){if(!a8){a8=av.createElement("iframe");a8.frameBorder=a8.width=a8.height=0}e.appendChild(a8);if(!m||!a8.createElement){m=(a8.contentWindow||a8.contentDocument).document;m.write((av.compatMode==="CSS1Compat"?"":"")+"");m.close()}bv=m.createElement(bx);m.body.appendChild(bv);bw=b.css(bv,"display");e.removeChild(a8)}Q[bx]=bw}return Q[bx]}var V=/^t(?:able|d|h)$/i,ad=/^(?:body|html)$/i;if("getBoundingClientRect" in av.documentElement){b.fn.offset=function(bI){var by=this[0],bB;if(bI){return this.each(function(e){b.offset.setOffset(this,bI,e)})}if(!by||!by.ownerDocument){return null}if(by===by.ownerDocument.body){return b.offset.bodyOffset(by)}try{bB=by.getBoundingClientRect()}catch(bF){}var bH=by.ownerDocument,bw=bH.documentElement;if(!bB||!b.contains(bw,by)){return bB?{top:bB.top,left:bB.left}:{top:0,left:0}}var bC=bH.body,bD=aK(bH),bA=bw.clientTop||bC.clientTop||0,bE=bw.clientLeft||bC.clientLeft||0,bv=bD.pageYOffset||b.support.boxModel&&bw.scrollTop||bC.scrollTop,bz=bD.pageXOffset||b.support.boxModel&&bw.scrollLeft||bC.scrollLeft,bG=bB.top+bv-bA,bx=bB.left+bz-bE;return{top:bG,left:bx}}}else{b.fn.offset=function(bF){var bz=this[0];if(bF){return this.each(function(bG){b.offset.setOffset(this,bF,bG)})}if(!bz||!bz.ownerDocument){return null}if(bz===bz.ownerDocument.body){return b.offset.bodyOffset(bz)}var bC,bw=bz.offsetParent,bv=bz,bE=bz.ownerDocument,bx=bE.documentElement,bA=bE.body,bB=bE.defaultView,e=bB?bB.getComputedStyle(bz,null):bz.currentStyle,bD=bz.offsetTop,by=bz.offsetLeft;while((bz=bz.parentNode)&&bz!==bA&&bz!==bx){if(b.support.fixedPosition&&e.position==="fixed"){break}bC=bB?bB.getComputedStyle(bz,null):bz.currentStyle;bD-=bz.scrollTop;by-=bz.scrollLeft;if(bz===bw){bD+=bz.offsetTop;by+=bz.offsetLeft;if(b.support.doesNotAddBorder&&!(b.support.doesAddBorderForTableAndCells&&V.test(bz.nodeName))){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}bv=bw;bw=bz.offsetParent}if(b.support.subtractsBorderForOverflowNotVisible&&bC.overflow!=="visible"){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}e=bC}if(e.position==="relative"||e.position==="static"){bD+=bA.offsetTop;by+=bA.offsetLeft}if(b.support.fixedPosition&&e.position==="fixed"){bD+=Math.max(bx.scrollTop,bA.scrollTop);by+=Math.max(bx.scrollLeft,bA.scrollLeft)}return{top:bD,left:by}}}b.offset={bodyOffset:function(e){var bw=e.offsetTop,bv=e.offsetLeft;if(b.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(b.css(e,"marginTop"))||0;bv+=parseFloat(b.css(e,"marginLeft"))||0}return{top:bw,left:bv}},setOffset:function(bx,bG,bA){var bB=b.css(bx,"position");if(bB==="static"){bx.style.position="relative"}var bz=b(bx),bv=bz.offset(),e=b.css(bx,"top"),bE=b.css(bx,"left"),bF=(bB==="absolute"||bB==="fixed")&&b.inArray("auto",[e,bE])>-1,bD={},bC={},bw,by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(e)||0;by=parseFloat(bE)||0}if(b.isFunction(bG)){bG=bG.call(bx,bA,bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx,bD)}else{bz.css(bD)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bw=this[0],bv=this.offsetParent(),bx=this.offset(),e=ad.test(bv[0].nodeName)?{top:0,left:0}:bv.offset();bx.top-=parseFloat(b.css(bw,"marginTop"))||0;bx.left-=parseFloat(b.css(bw,"marginLeft"))||0;e.top+=parseFloat(b.css(bv[0],"borderTopWidth"))||0;e.left+=parseFloat(b.css(bv[0],"borderLeftWidth"))||0;return{top:bx.top-e.top,left:bx.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||av.body;while(e&&(!ad.test(e.nodeName)&&b.css(e,"position")==="static")){e=e.offsetParent}return e})}});b.each(["Left","Top"],function(bv,e){var bw="scroll"+e;b.fn[bw]=function(bz){var bx,by;if(bz===L){bx=this[0];if(!bx){return null}by=aK(bx);return by?("pageXOffset" in by)?by[bv?"pageYOffset":"pageXOffset"]:b.support.boxModel&&by.document.documentElement[bw]||by.document.body[bw]:bx[bw]}return this.each(function(){by=aK(this);if(by){by.scrollTo(!bv?bz:b(by).scrollLeft(),bv?bz:b(by).scrollTop())}else{this[bw]=bz}})}});function aK(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each(["Height","Width"],function(bv,e){var bw=e.toLowerCase();b.fn["inner"+e]=function(){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,"padding")):this[bw]():null};b.fn["outer"+e]=function(by){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,by?"margin":"border")):this[bw]():null};b.fn[bw]=function(bz){var bA=this[0];if(!bA){return bz==null?null:this}if(b.isFunction(bz)){return this.each(function(bE){var bD=b(this);bD[bw](bz.call(this,bE,bD[bw]()))})}if(b.isWindow(bA)){var bB=bA.document.documentElement["client"+e],bx=bA.document.body;return bA.document.compatMode==="CSS1Compat"&&bB||bx&&bx["client"+e]||bB}else{if(bA.nodeType===9){return Math.max(bA.documentElement["client"+e],bA.body["scroll"+e],bA.documentElement["scroll"+e],bA.body["offset"+e],bA.documentElement["offset"+e])}else{if(bz===L){var bC=b.css(bA,bw),by=parseFloat(bC);return b.isNumeric(by)?by:bC}else{return this.css(bw,typeof bz==="string"?bz:bz+"px")}}}}});bb.jQuery=bb.$=b;if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery",[],function(){return b +})}})(window); diff --git a/visualtest/docs/html/linux__process_8c.html b/visualtest/docs/html/linux__process_8c.html new file mode 100755 index 0000000000000..fa15ec9138bc2 --- /dev/null +++ b/visualtest/docs/html/linux__process_8c.html @@ -0,0 +1,109 @@ + + + + + + +SDL Visual Test: C:/Users/DELL/Work/sdlvisualtest/visualtest/src/linux/linux_process.c File Reference + + + + + + + + + +
+
+
+ + + + + +
+
SDL Visual Test +
+
+ + + + + + + + + + +
+ +
+ + + +
+
+
linux_process.c File Reference
+
+
+
#include <SDL.h>
+#include <SDL_test.h>
+#include <sys/types.h>
+#include <sys/wait.h>
+#include <unistd.h>
+#include <errno.h>
+#include "SDL_visualtest_process.h"
+#include "SDL_visualtest_harness_argparser.h"
+#include "SDL_visualtest_parsehelper.h"
+

Detailed Description

+

Source file for the process API on linux.

+
+ + + + diff --git a/visualtest/docs/html/mischelper_8c.html b/visualtest/docs/html/mischelper_8c.html new file mode 100755 index 0000000000000..18fbc3fc38d22 --- /dev/null +++ b/visualtest/docs/html/mischelper_8c.html @@ -0,0 +1,138 @@ + + + + + + +SDL Visual Test: C:/Users/DELL/Work/sdlvisualtest/visualtest/src/mischelper.c File Reference + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
mischelper.c File Reference
+
+
+
#include <SDL_test.h>
+
+ + + +

+Functions

void SDLVisualTest_HashString (char *str, char hash[33])
 
+

Detailed Description

+

Header with miscellaneous helper functions.

+

Source file with miscellaneous helper functions.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
void SDLVisualTest_HashString (char * str,
char hash[33] 
)
+
+

Stores a 32 digit hexadecimal string representing the MD5 hash of the string str in hash.

+ +
+
+
+ + + + diff --git a/visualtest/docs/html/nav_f.png b/visualtest/docs/html/nav_f.png new file mode 100755 index 0000000000000000000000000000000000000000..72a58a529ed3a9ed6aa0c51a79cf207e026deee2 GIT binary patch literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI`!2~2XGqLUlQVE_ejv*C{Z|{2ZH7M}7UYxc) zn!W8uqtnIQ>_z8U literal 0 HcmV?d00001 diff --git a/visualtest/docs/html/nav_g.png b/visualtest/docs/html/nav_g.png new file mode 100755 index 0000000000000000000000000000000000000000..2093a237a94f6c83e19ec6e5fd42f7ddabdafa81 GIT binary patch literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrB!3HFm1ilyoDK$?Q$B+ufw|5PB85lU25BhtE tr?otc=hd~V+ws&_A@j8Fiv!KF$B+ufw|5=67#uj90@pIL wZ=Q8~_Ju`#59=RjDrmm`tMD@M=!-l18IR?&vFVdQ&MBb@0HFXL1|%O$WD@{VPM$7~Ar*{o?;hlAFyLXmaDC0y znK1_#cQqJWPES%4Uujug^TE?jMft$}Eq^WaR~)%f)vSNs&gek&x%A9X9sM + + + + + +SDL Visual Test: C:/Users/DELL/Work/sdlvisualtest/visualtest/src/parsehelper.c File Reference + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
parsehelper.c File Reference
+
+
+
#include <SDL_test.h>
+#include "SDL_visualtest_harness_argparser.h"
+
+ + + + + +

+Functions

char ** SDLVisualTest_Tokenize (char *str, int max_token_len)
 
char ** SDLVisualTest_ParseArgsToArgv (char *args)
 
+

Detailed Description

+

Source file with some helper functions for parsing strings.

+

Function Documentation

+ +
+
+ + + + + + + + +
char** SDLVisualTest_ParseArgsToArgv (char * args)
+
+

Takes an string of command line arguments and breaks them up into an array based on whitespace.

+
Parameters
+ + +
argsThe string of arguments.
+
+
+
Returns
NULL on failure, an array of strings on success. The last element of the array is NULL. The first element of the array is NULL and should be set to the path of the executable by the caller.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
char** SDLVisualTest_Tokenize (char * str,
int max_token_len 
)
+
+

Takes a string and breaks it into tokens by splitting on whitespace.

+
Parameters
+ + + +
strThe string to be split.
max_token_lenLength of each element in the array to be returned.
+
+
+
Returns
NULL on failure; an array of strings with the tokens on success. The last element of the array is NULL.
+ +
+
+
+ + + + diff --git a/visualtest/docs/html/rwhelper_8c.html b/visualtest/docs/html/rwhelper_8c.html new file mode 100755 index 0000000000000..417d79e9e2cd8 --- /dev/null +++ b/visualtest/docs/html/rwhelper_8c.html @@ -0,0 +1,244 @@ + + + + + + +SDL Visual Test: C:/Users/DELL/Work/sdlvisualtest/visualtest/src/rwhelper.c File Reference + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
rwhelper.c File Reference
+
+
+
#include <SDL_test.h>
+#include "SDL_visualtest_sut_configparser.h"
+#include "SDL_visualtest_rwhelper.h"
+
+ + + + + + + + + +

+Functions

void SDLVisualTest_RWHelperResetBuffer (SDLVisualTest_RWHelperBuffer *buffer)
 
char SDLVisualTest_RWHelperReadChar (SDL_RWops *rw, SDLVisualTest_RWHelperBuffer *buffer)
 
char * SDLVisualTest_RWHelperReadLine (SDL_RWops *rw, char *str, int size, SDLVisualTest_RWHelperBuffer *buffer, char comment_char)
 
int SDLVisualTest_RWHelperCountNonEmptyLines (SDL_RWops *rw, SDLVisualTest_RWHelperBuffer *buffer, char comment_char)
 
+

Detailed Description

+

Header file with some helper functions for working with SDL_RWops.

+

Source file with some helper functions for working with SDL_RWops.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
int SDLVisualTest_RWHelperCountNonEmptyLines (SDL_RWops * rw,
SDLVisualTest_RWHelperBufferbuffer,
char comment_char 
)
+
+

Counts the number of lines that are not all whitespace and comments using the SDL_RWops object pointed to by rw. comment_char indicates the character used for comments. Uses the buffer pointed to by buffer to read data in blocks.

+
Returns
Number of lines on success, -1 on failure.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
char SDLVisualTest_RWHelperReadChar (SDL_RWops * rw,
SDLVisualTest_RWHelperBufferbuffer 
)
+
+

Reads a single character using the SDL_RWops object pointed to by rw. This function reads data in blocks and stores them in the buffer pointed to by buffer, so other SDL_RWops functions should not be used in conjunction with this function.

+
Returns
The character that was read.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
char* SDLVisualTest_RWHelperReadLine (SDL_RWops * rw,
char * str,
int size,
SDLVisualTest_RWHelperBufferbuffer,
char comment_char 
)
+
+

Reads characters using the SDL_RWops object pointed to by rw into the character array pointed to by str (of size size) until either the array is full or a new line is encountered. If comment_char is encountered, all characters from that position till the end of the line are ignored. The new line is not included as part of the buffer. Lines with only whitespace and comments are ignored. This function reads data in blocks and stores them in the buffer pointed to by buffer, so other SDL_RWops functions should not be used in conjunction with this function.

+
Returns
pointer to the string on success, NULL on failure or EOF.
+ +
+
+ +
+
+ + + + + + + + +
void SDLVisualTest_RWHelperResetBuffer (SDLVisualTest_RWHelperBufferbuffer)
+
+

Resets the buffer pointed to by buffer used by some of the helper functions. This function should be called when you're using one of the helper functions with a new SDL_RWops object.

+ +
+
+
+ + + + diff --git a/visualtest/docs/html/screenshot_8c.html b/visualtest/docs/html/screenshot_8c.html new file mode 100755 index 0000000000000..2ff80294135a2 --- /dev/null +++ b/visualtest/docs/html/screenshot_8c.html @@ -0,0 +1,145 @@ + + + + + + +SDL Visual Test: C:/Users/DELL/Work/sdlvisualtest/visualtest/src/screenshot.c File Reference + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
screenshot.c File Reference
+
+
+
#include "SDL_visualtest_mischelper.h"
+#include <SDL_test.h>
+
+ + + +

+Functions

int SDLVisualTest_VerifyScreenshots (char *args, char *test_dir, char *verify_dir)
 
+

Detailed Description

+

Source file for the screenshot API.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
int SDLVisualTest_VerifyScreenshots (char * args,
char * test_dir,
char * verify_dir 
)
+
+

Compare a screenshot taken previously with SUT arguments args that is located in test_dir with a verification image that is located in verify_dir.

+
Returns
-1 on failure, 0 if the images were not equal, 1 if the images are equal and 2 if the verification image is not present.
+ +
+
+
+ + + + diff --git a/visualtest/docs/html/search/all_61.html b/visualtest/docs/html/search/all_61.html new file mode 100755 index 0000000000000..a78c8f988d236 --- /dev/null +++ b/visualtest/docs/html/search/all_61.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/all_61.js b/visualtest/docs/html/search/all_61.js new file mode 100755 index 0000000000000..321716292c4eb --- /dev/null +++ b/visualtest/docs/html/search/all_61.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['action',['action',['../struct_s_d_l_visual_test___action_node.html#af46ec45094cc74a7432626a6234c6575',1,'SDLVisualTest_ActionNode']]], + ['action_5fconfigparser_2ec',['action_configparser.c',['../action__configparser_8c.html',1,'']]], + ['action_5floop_5ffps',['ACTION_LOOP_FPS',['../testharness_8c.html#a70102426e83ed3944f9c060bd82fb54e',1,'testharness.c']]], + ['action_5fqueue',['action_queue',['../struct_s_d_l_visual_test___harness_state.html#ae25567527563fbd7373fa1cf7cdede61',1,'SDLVisualTest_HarnessState']]], + ['action_5ftimer_5fevent',['ACTION_TIMER_EVENT',['../testharness_8c.html#a0d1d5d1394089a10f0147ed2b89c1165',1,'testharness.c']]] +]; diff --git a/visualtest/docs/html/search/all_62.html b/visualtest/docs/html/search/all_62.html new file mode 100755 index 0000000000000..29fe20787f0aa --- /dev/null +++ b/visualtest/docs/html/search/all_62.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/all_62.js b/visualtest/docs/html/search/all_62.js new file mode 100755 index 0000000000000..d614f7b3f15d4 --- /dev/null +++ b/visualtest/docs/html/search/all_62.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['bool_5fvalue',['bool_value',['../union_s_d_l_visual_test___s_u_t_option_value.html#ace8ec6519c056e35443a6c401f3d0941',1,'SDLVisualTest_SUTOptionValue']]], + ['buffer',['buffer',['../struct_s_d_l_visual_test___exhaustive_variator.html#a2b599af5b00be0f525ffc18feb0775a8',1,'SDLVisualTest_ExhaustiveVariator::buffer()'],['../struct_s_d_l_visual_test___random_variator.html#a2b599af5b00be0f525ffc18feb0775a8',1,'SDLVisualTest_RandomVariator::buffer()'],['../struct_s_d_l_visual_test___r_w_helper_buffer.html#a5b528063c1aaa0e626f5d5e49de5baad',1,'SDLVisualTest_RWHelperBuffer::buffer()']]], + ['buffer_5fpos',['buffer_pos',['../struct_s_d_l_visual_test___r_w_helper_buffer.html#a8a37d41b7b076eced766d7418450477d',1,'SDLVisualTest_RWHelperBuffer']]], + ['buffer_5fwidth',['buffer_width',['../struct_s_d_l_visual_test___r_w_helper_buffer.html#adb2920cd89b7b8b8b014290e82746d8c',1,'SDLVisualTest_RWHelperBuffer']]] +]; diff --git a/visualtest/docs/html/search/all_63.html b/visualtest/docs/html/search/all_63.html new file mode 100755 index 0000000000000..a46f89492f995 --- /dev/null +++ b/visualtest/docs/html/search/all_63.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/all_63.js b/visualtest/docs/html/search/all_63.js new file mode 100755 index 0000000000000..dcc5243ac9a23 --- /dev/null +++ b/visualtest/docs/html/search/all_63.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['categories',['categories',['../struct_s_d_l_visual_test___s_u_t_option.html#a6744d43d3ad17d06068dba9ee7b78c83',1,'SDLVisualTest_SUTOption']]], + ['config',['config',['../struct_s_d_l_visual_test___exhaustive_variator.html#ab66b4220589b2e2b6e1fde7d6c20bd72',1,'SDLVisualTest_ExhaustiveVariator::config()'],['../struct_s_d_l_visual_test___random_variator.html#ab66b4220589b2e2b6e1fde7d6c20bd72',1,'SDLVisualTest_RandomVariator::config()']]] +]; diff --git a/visualtest/docs/html/search/all_64.html b/visualtest/docs/html/search/all_64.html new file mode 100755 index 0000000000000..6482501511844 --- /dev/null +++ b/visualtest/docs/html/search/all_64.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/all_64.js b/visualtest/docs/html/search/all_64.js new file mode 100755 index 0000000000000..5ab8d34644281 --- /dev/null +++ b/visualtest/docs/html/search/all_64.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['data',['data',['../struct_s_d_l_visual_test___s_u_t_option.html#aa9545bd4acd476f61533d04d53cdffdc',1,'SDLVisualTest_SUTOption::data()'],['../struct_s_d_l_visual_test___variator.html#af99a8790e729d599c656a2070e672e9a',1,'SDLVisualTest_Variator::data()']]], + ['default_5fsut_5ftimeout',['DEFAULT_SUT_TIMEOUT',['../harness__argparser_8c.html#a6669f8e5a07e7a0e4622dd23362831e7',1,'harness_argparser.c']]] +]; diff --git a/visualtest/docs/html/search/all_65.html b/visualtest/docs/html/search/all_65.html new file mode 100755 index 0000000000000..9004138c3c8af --- /dev/null +++ b/visualtest/docs/html/search/all_65.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/all_65.js b/visualtest/docs/html/search/all_65.js new file mode 100755 index 0000000000000..f1c225b11f929 --- /dev/null +++ b/visualtest/docs/html/search/all_65.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['enum_5fvalues',['enum_values',['../struct_s_d_l_visual_test___s_u_t_option.html#a596ff3567c4b736561dba1915a2cd38d',1,'SDLVisualTest_SUTOption']]], + ['enumerated',['enumerated',['../union_s_d_l_visual_test___s_u_t_option_value.html#ad40e26afd4b8532327b61897d5b009e3',1,'SDLVisualTest_SUTOptionValue']]], + ['exit_5fstatus',['exit_status',['../struct_s_d_l___process_exit_status.html#a9324a9ff7dc6697dd77f02998d5e77d7',1,'SDL_ProcessExitStatus']]], + ['exit_5fsuccess',['exit_success',['../struct_s_d_l___process_exit_status.html#a51df50c07437f2e816d6ce7ce99e1cac',1,'SDL_ProcessExitStatus']]], + ['extra',['extra',['../struct_s_d_l_visual_test___action.html#a4626514a67f261290b54fb3d85ca8ddd',1,'SDLVisualTest_Action']]] +]; diff --git a/visualtest/docs/html/search/all_66.html b/visualtest/docs/html/search/all_66.html new file mode 100755 index 0000000000000..5e2635f6c1dcc --- /dev/null +++ b/visualtest/docs/html/search/all_66.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/all_66.js b/visualtest/docs/html/search/all_66.js new file mode 100755 index 0000000000000..d89c380304687 --- /dev/null +++ b/visualtest/docs/html/search/all_66.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['front',['front',['../struct_s_d_l_visual_test___action_queue.html#a8b810b2fd2b05698be642ee08836a452',1,'SDLVisualTest_ActionQueue']]] +]; diff --git a/visualtest/docs/html/search/all_68.html b/visualtest/docs/html/search/all_68.html new file mode 100755 index 0000000000000..2db11df90d6f7 --- /dev/null +++ b/visualtest/docs/html/search/all_68.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/all_68.js b/visualtest/docs/html/search/all_68.js new file mode 100755 index 0000000000000..c2615b10c124e --- /dev/null +++ b/visualtest/docs/html/search/all_68.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['harness_5fargparser_2ec',['harness_argparser.c',['../harness__argparser_8c.html',1,'']]] +]; diff --git a/visualtest/docs/html/search/all_69.html b/visualtest/docs/html/search/all_69.html new file mode 100755 index 0000000000000..b8c83061031a7 --- /dev/null +++ b/visualtest/docs/html/search/all_69.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/all_69.js b/visualtest/docs/html/search/all_69.js new file mode 100755 index 0000000000000..d88f651d5a29f --- /dev/null +++ b/visualtest/docs/html/search/all_69.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['integer',['integer',['../union_s_d_l_visual_test___s_u_t_option_value.html#a4291d9ad3cfb3fe1645ea2732e11d68a',1,'SDLVisualTest_SUTOptionValue']]] +]; diff --git a/visualtest/docs/html/search/all_6b.html b/visualtest/docs/html/search/all_6b.html new file mode 100755 index 0000000000000..f4b97caa7eafd --- /dev/null +++ b/visualtest/docs/html/search/all_6b.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/all_6b.js b/visualtest/docs/html/search/all_6b.js new file mode 100755 index 0000000000000..831fa2c4e463c --- /dev/null +++ b/visualtest/docs/html/search/all_6b.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['kill_5ftimer_5fevent',['KILL_TIMER_EVENT',['../testharness_8c.html#acdc6cb4935ca89fbe3fda31a8f533b9a',1,'testharness.c']]] +]; diff --git a/visualtest/docs/html/search/all_6c.html b/visualtest/docs/html/search/all_6c.html new file mode 100755 index 0000000000000..131c91938fce2 --- /dev/null +++ b/visualtest/docs/html/search/all_6c.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/all_6c.js b/visualtest/docs/html/search/all_6c.js new file mode 100755 index 0000000000000..f6a1353d11e3c --- /dev/null +++ b/visualtest/docs/html/search/all_6c.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['linux_5fprocess_2ec',['linux_process.c',['../linux__process_8c.html',1,'']]] +]; diff --git a/visualtest/docs/html/search/all_6d.html b/visualtest/docs/html/search/all_6d.html new file mode 100755 index 0000000000000..650f0402c78f9 --- /dev/null +++ b/visualtest/docs/html/search/all_6d.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/all_6d.js b/visualtest/docs/html/search/all_6d.js new file mode 100755 index 0000000000000..bda2e469fc535 --- /dev/null +++ b/visualtest/docs/html/search/all_6d.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['main',['main',['../testharness_8c.html#a0ddf1224851353fc92bfbff6f499fa97',1,'testharness.c']]], + ['max',['max',['../struct_s_d_l_visual_test___s_u_t_int_range.html#ae1e1dde676c120fa6d10f3bb2c14059e',1,'SDLVisualTest_SUTIntRange']]], + ['max_5faction_5fline_5flength',['MAX_ACTION_LINE_LENGTH',['../_s_d_l__visualtest__action__configparser_8h.html#a19244c2e1556665be344807ace1556ed',1,'SDL_visualtest_action_configparser.h']]], + ['max_5fconfig_5fline_5flen',['MAX_CONFIG_LINE_LEN',['../harness__argparser_8c.html#a7186273cd88640b740b6333cd98ae243',1,'harness_argparser.c']]], + ['max_5fpath_5flen',['MAX_PATH_LEN',['../_s_d_l__visualtest__harness__argparser_8h.html#abdd33f362ae3bbdacb5de76473aa8a2f',1,'SDL_visualtest_harness_argparser.h']]], + ['max_5fsut_5fargs_5flen',['MAX_SUT_ARGS_LEN',['../_s_d_l__visualtest__harness__argparser_8h.html#a8485cbda108eca56406d67aaa685fcc5',1,'SDL_visualtest_harness_argparser.h']]], + ['max_5fsutoption_5fcategory_5flen',['MAX_SUTOPTION_CATEGORY_LEN',['../_s_d_l__visualtest__sut__configparser_8h.html#a21a678ced8cdf55b4cc70ad398bf33b6',1,'SDL_visualtest_sut_configparser.h']]], + ['max_5fsutoption_5fenumval_5flen',['MAX_SUTOPTION_ENUMVAL_LEN',['../_s_d_l__visualtest__sut__configparser_8h.html#a6c700fc8ff02cfa0c795b9593f86b9a0',1,'SDL_visualtest_sut_configparser.h']]], + ['max_5fsutoption_5fline_5flength',['MAX_SUTOPTION_LINE_LENGTH',['../_s_d_l__visualtest__sut__configparser_8h.html#a8f1a5749af5a592b30a194c72d848f75',1,'SDL_visualtest_sut_configparser.h']]], + ['max_5fsutoption_5fname_5flen',['MAX_SUTOPTION_NAME_LEN',['../_s_d_l__visualtest__sut__configparser_8h.html#a0a8b0c1f8eee787abf09bf3a840eccc7',1,'SDL_visualtest_sut_configparser.h']]], + ['min',['min',['../struct_s_d_l_visual_test___s_u_t_int_range.html#a3e202b201e6255d975cd6d3aff1f5a4d',1,'SDLVisualTest_SUTIntRange']]], + ['mischelper_2ec',['mischelper.c',['../mischelper_8c.html',1,'']]] +]; diff --git a/visualtest/docs/html/search/all_6e.html b/visualtest/docs/html/search/all_6e.html new file mode 100755 index 0000000000000..114330ba56f9d --- /dev/null +++ b/visualtest/docs/html/search/all_6e.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/all_6e.js b/visualtest/docs/html/search/all_6e.js new file mode 100755 index 0000000000000..7f753057243ef --- /dev/null +++ b/visualtest/docs/html/search/all_6e.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['name',['name',['../struct_s_d_l_visual_test___s_u_t_option.html#ad14ca616d8f7c9b61eff58baaead7f1f',1,'SDLVisualTest_SUTOption']]], + ['next',['next',['../struct_s_d_l_visual_test___action_node.html#ae6154b60b896ce1a184d060ee4664485',1,'SDLVisualTest_ActionNode']]], + ['no_5flaunch',['no_launch',['../struct_s_d_l_visual_test___harness_state.html#a091c0d08290b73216a736ff42ac8fa99',1,'SDLVisualTest_HarnessState']]], + ['num_5foptions',['num_options',['../struct_s_d_l_visual_test___s_u_t_config.html#a593108c2cc4b7dd3edecefd724edfd51',1,'SDLVisualTest_SUTConfig']]], + ['num_5fvariations',['num_variations',['../struct_s_d_l_visual_test___harness_state.html#a0bd4e04c0c6be7b94e68501bb31dd62c',1,'SDLVisualTest_HarnessState']]], + ['num_5fvars',['num_vars',['../struct_s_d_l_visual_test___variation.html#a2daded0b80f9ab7ed3703cc2686e5a92',1,'SDLVisualTest_Variation']]] +]; diff --git a/visualtest/docs/html/search/all_6f.html b/visualtest/docs/html/search/all_6f.html new file mode 100755 index 0000000000000..958ab689da3b6 --- /dev/null +++ b/visualtest/docs/html/search/all_6f.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/all_6f.js b/visualtest/docs/html/search/all_6f.js new file mode 100755 index 0000000000000..35f6f85420f39 --- /dev/null +++ b/visualtest/docs/html/search/all_6f.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['options',['options',['../struct_s_d_l_visual_test___s_u_t_config.html#afda1bef370f3d5ea6919b7b6a73d01c0',1,'SDLVisualTest_SUTConfig']]], + ['output_5fdir',['output_dir',['../struct_s_d_l_visual_test___harness_state.html#aafa9a2fb15490380b6c2edd704f4fcf0',1,'SDLVisualTest_HarnessState']]] +]; diff --git a/visualtest/docs/html/search/all_70.html b/visualtest/docs/html/search/all_70.html new file mode 100755 index 0000000000000..a28cb546618ce --- /dev/null +++ b/visualtest/docs/html/search/all_70.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/all_70.js b/visualtest/docs/html/search/all_70.js new file mode 100755 index 0000000000000..38c5827e2137b --- /dev/null +++ b/visualtest/docs/html/search/all_70.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['parsehelper_2ec',['parsehelper.c',['../parsehelper_8c.html',1,'']]], + ['process',['process',['../struct_s_d_l_visual_test___action.html#aa43e9883c9f24718f49b984b67b1afdc',1,'SDLVisualTest_Action']]] +]; diff --git a/visualtest/docs/html/search/all_72.html b/visualtest/docs/html/search/all_72.html new file mode 100755 index 0000000000000..d03b8a575c34e --- /dev/null +++ b/visualtest/docs/html/search/all_72.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/all_72.js b/visualtest/docs/html/search/all_72.js new file mode 100755 index 0000000000000..2216614a435d0 --- /dev/null +++ b/visualtest/docs/html/search/all_72.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['range',['range',['../struct_s_d_l_visual_test___s_u_t_option.html#a2bb1301268866e0e41d035ea0a4914e8',1,'SDLVisualTest_SUTOption']]], + ['rear',['rear',['../struct_s_d_l_visual_test___action_queue.html#a4aaf4563956932c81c65d05f9020f2ce',1,'SDLVisualTest_ActionQueue']]], + ['required',['required',['../struct_s_d_l_visual_test___s_u_t_option.html#a79305c1b10f7b4defee52e1eefde8fbc',1,'SDLVisualTest_SUTOption']]], + ['rwhelper_2ec',['rwhelper.c',['../rwhelper_8c.html',1,'']]] +]; diff --git a/visualtest/docs/html/search/all_73.html b/visualtest/docs/html/search/all_73.html new file mode 100755 index 0000000000000..a15b975fdc2b1 --- /dev/null +++ b/visualtest/docs/html/search/all_73.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/all_73.js b/visualtest/docs/html/search/all_73.js new file mode 100755 index 0000000000000..50733e93bfbc6 --- /dev/null +++ b/visualtest/docs/html/search/all_73.js @@ -0,0 +1,83 @@ +var searchData= +[ + ['screenshot_2ec',['screenshot.c',['../screenshot_8c.html',1,'']]], + ['sdl_5faction_5fkill',['SDL_ACTION_KILL',['../_s_d_l__visualtest__action__configparser_8h.html#a383e41b8547eab149a0a4af867b3ebc6a87880c4f665344d4c3e12f9aa3af7410',1,'SDL_visualtest_action_configparser.h']]], + ['sdl_5faction_5flaunch',['SDL_ACTION_LAUNCH',['../_s_d_l__visualtest__action__configparser_8h.html#a383e41b8547eab149a0a4af867b3ebc6ac5344bca6af9c07c4ee69ee4c2b18df2',1,'SDL_visualtest_action_configparser.h']]], + ['sdl_5faction_5fquit',['SDL_ACTION_QUIT',['../_s_d_l__visualtest__action__configparser_8h.html#a383e41b8547eab149a0a4af867b3ebc6ad3d17a830b7e1e46e37d916130d8802a',1,'SDL_visualtest_action_configparser.h']]], + ['sdl_5faction_5fscreenshot',['SDL_ACTION_SCREENSHOT',['../_s_d_l__visualtest__action__configparser_8h.html#a383e41b8547eab149a0a4af867b3ebc6af9b5d42cb90bf843f298be4593992fdb',1,'SDL_visualtest_action_configparser.h']]], + ['sdl_5faction_5fverify',['SDL_ACTION_VERIFY',['../_s_d_l__visualtest__action__configparser_8h.html#a383e41b8547eab149a0a4af867b3ebc6a0853f8be8363015b822658b9f3b013f4',1,'SDL_visualtest_action_configparser.h']]], + ['sdl_5fgetprocessexitstatus',['SDL_GetProcessExitStatus',['../_s_d_l__visualtest__process_8h.html#a54545d6b9f737a14030b4ce55ddd4a62',1,'SDL_visualtest_process.h']]], + ['sdl_5fisprocessrunning',['SDL_IsProcessRunning',['../_s_d_l__visualtest__process_8h.html#a3a131140a71bf68fa68a900f06872239',1,'SDL_visualtest_process.h']]], + ['sdl_5fkillprocess',['SDL_KillProcess',['../_s_d_l__visualtest__process_8h.html#ae66242e44a004831ab231693fd11c8d0',1,'SDL_visualtest_process.h']]], + ['sdl_5flaunchprocess',['SDL_LaunchProcess',['../_s_d_l__visualtest__process_8h.html#a12c16e5b870e2794d6bd5a1a3bb4582f',1,'SDL_visualtest_process.h']]], + ['sdl_5fprocessexitstatus',['SDL_ProcessExitStatus',['../struct_s_d_l___process_exit_status.html',1,'SDL_ProcessExitStatus'],['../_s_d_l__visualtest__process_8h.html#a5b7d5262f85e78bf4d53d88f3c509342',1,'SDL_ProcessExitStatus(): SDL_visualtest_process.h']]], + ['sdl_5fprocessinfo',['SDL_ProcessInfo',['../struct_s_d_l___process_info.html',1,'SDL_ProcessInfo'],['../_s_d_l__visualtest__process_8h.html#a94bc9e0b0b563a527ea50ef2eecd5402',1,'SDL_ProcessInfo(): SDL_visualtest_process.h']]], + ['sdl_5fquitprocess',['SDL_QuitProcess',['../_s_d_l__visualtest__process_8h.html#ad8a5b6725ad1f0e1bac623cf4b6fc28d',1,'SDL_visualtest_process.h']]], + ['sdl_5fsut_5finteger_5foption_5ftest_5fsteps',['SDL_SUT_INTEGER_OPTION_TEST_STEPS',['../_s_d_l__visualtest__variator__common_8h.html#afcdce86a10fbcdc9f3e47c47b70e3ea3',1,'SDL_visualtest_variator_common.h']]], + ['sdl_5fvisualtest_5faction_5fconfigparser_2eh',['SDL_visualtest_action_configparser.h',['../_s_d_l__visualtest__action__configparser_8h.html',1,'']]], + ['sdl_5fvisualtest_5fexhaustive_5fvariator_2eh',['SDL_visualtest_exhaustive_variator.h',['../_s_d_l__visualtest__exhaustive__variator_8h.html',1,'']]], + ['sdl_5fvisualtest_5fharness_5fargparser_2eh',['SDL_visualtest_harness_argparser.h',['../_s_d_l__visualtest__harness__argparser_8h.html',1,'']]], + ['sdl_5fvisualtest_5fparsehelper_2eh',['SDL_visualtest_parsehelper.h',['../_s_d_l__visualtest__parsehelper_8h.html',1,'']]], + ['sdl_5fvisualtest_5fprocess_2eh',['SDL_visualtest_process.h',['../_s_d_l__visualtest__process_8h.html',1,'']]], + ['sdl_5fvisualtest_5frandom_5fvariator_2eh',['SDL_visualtest_random_variator.h',['../_s_d_l__visualtest__random__variator_8h.html',1,'']]], + ['sdl_5fvisualtest_5fscreenshot_2eh',['SDL_visualtest_screenshot.h',['../_s_d_l__visualtest__screenshot_8h.html',1,'']]], + ['sdl_5fvisualtest_5fsut_5fconfigparser_2eh',['SDL_visualtest_sut_configparser.h',['../_s_d_l__visualtest__sut__configparser_8h.html',1,'']]], + ['sdl_5fvisualtest_5fvariator_5fcommon_2eh',['SDL_visualtest_variator_common.h',['../_s_d_l__visualtest__variator__common_8h.html',1,'']]], + ['sdl_5fvisualtest_5fvariators_2eh',['SDL_visualtest_variators.h',['../_s_d_l__visualtest__variators_8h.html',1,'']]], + ['sdlvisualtest_5faction',['SDLVisualTest_Action',['../struct_s_d_l_visual_test___action.html',1,'SDLVisualTest_Action'],['../_s_d_l__visualtest__action__configparser_8h.html#a89974e9149bfca6aabb3ff06cc9671d7',1,'SDLVisualTest_Action(): SDL_visualtest_action_configparser.h']]], + ['sdlvisualtest_5factionnode',['SDLVisualTest_ActionNode',['../struct_s_d_l_visual_test___action_node.html',1,'SDLVisualTest_ActionNode'],['../_s_d_l__visualtest__action__configparser_8h.html#a065d1acf0f98bde777d10bd8ab24d268',1,'SDLVisualTest_ActionNode(): SDL_visualtest_action_configparser.h']]], + ['sdlvisualtest_5factionqueue',['SDLVisualTest_ActionQueue',['../struct_s_d_l_visual_test___action_queue.html',1,'SDLVisualTest_ActionQueue'],['../_s_d_l__visualtest__action__configparser_8h.html#ac9ce1bb69d8774d1818c9f9d0f97c7f1',1,'SDLVisualTest_ActionQueue(): SDL_visualtest_action_configparser.h']]], + ['sdlvisualtest_5factiontype',['SDLVisualTest_ActionType',['../_s_d_l__visualtest__action__configparser_8h.html#a383e41b8547eab149a0a4af867b3ebc6',1,'SDL_visualtest_action_configparser.h']]], + ['sdlvisualtest_5fdequeueaction',['SDLVisualTest_DequeueAction',['../_s_d_l__visualtest__action__configparser_8h.html#a0e7998533e6e10590612a8d5dee7ec0b',1,'SDLVisualTest_DequeueAction(SDLVisualTest_ActionQueue *queue): action_configparser.c'],['../action__configparser_8c.html#a0e7998533e6e10590612a8d5dee7ec0b',1,'SDLVisualTest_DequeueAction(SDLVisualTest_ActionQueue *queue): action_configparser.c']]], + ['sdlvisualtest_5femptyactionqueue',['SDLVisualTest_EmptyActionQueue',['../_s_d_l__visualtest__action__configparser_8h.html#a677da0d0e4793df342f91974b4559efa',1,'SDLVisualTest_EmptyActionQueue(SDLVisualTest_ActionQueue *queue): action_configparser.c'],['../action__configparser_8c.html#a677da0d0e4793df342f91974b4559efa',1,'SDLVisualTest_EmptyActionQueue(SDLVisualTest_ActionQueue *queue): action_configparser.c']]], + ['sdlvisualtest_5fenqueueaction',['SDLVisualTest_EnqueueAction',['../_s_d_l__visualtest__action__configparser_8h.html#a647d1be8f0f27af2fb1e5d4da2100596',1,'SDLVisualTest_EnqueueAction(SDLVisualTest_ActionQueue *queue, SDLVisualTest_Action action): action_configparser.c'],['../action__configparser_8c.html#a647d1be8f0f27af2fb1e5d4da2100596',1,'SDLVisualTest_EnqueueAction(SDLVisualTest_ActionQueue *queue, SDLVisualTest_Action action): action_configparser.c']]], + ['sdlvisualtest_5fexhaustivevariator',['SDLVisualTest_ExhaustiveVariator',['../struct_s_d_l_visual_test___exhaustive_variator.html',1,'SDLVisualTest_ExhaustiveVariator'],['../_s_d_l__visualtest__exhaustive__variator_8h.html#ab64de6cf7d6a1e6d09d470c020940c25',1,'SDLVisualTest_ExhaustiveVariator(): SDL_visualtest_exhaustive_variator.h']]], + ['sdlvisualtest_5ffreeexhaustivevariator',['SDLVisualTest_FreeExhaustiveVariator',['../_s_d_l__visualtest__exhaustive__variator_8h.html#a7168b055fb86bbbb700d87ae842f7152',1,'SDLVisualTest_FreeExhaustiveVariator(SDLVisualTest_ExhaustiveVariator *variator): variator_exhaustive.c'],['../variator__exhaustive_8c.html#a7168b055fb86bbbb700d87ae842f7152',1,'SDLVisualTest_FreeExhaustiveVariator(SDLVisualTest_ExhaustiveVariator *variator): variator_exhaustive.c']]], + ['sdlvisualtest_5ffreeharnessstate',['SDLVisualTest_FreeHarnessState',['../_s_d_l__visualtest__harness__argparser_8h.html#a833147d8da541982c615645a797627cc',1,'SDLVisualTest_FreeHarnessState(SDLVisualTest_HarnessState *state): harness_argparser.c'],['../harness__argparser_8c.html#a833147d8da541982c615645a797627cc',1,'SDLVisualTest_FreeHarnessState(SDLVisualTest_HarnessState *state): harness_argparser.c']]], + ['sdlvisualtest_5ffreerandomvariator',['SDLVisualTest_FreeRandomVariator',['../_s_d_l__visualtest__random__variator_8h.html#ac95d9e0716e4c918c6902b10f9591d4b',1,'SDLVisualTest_FreeRandomVariator(SDLVisualTest_RandomVariator *variator): variator_random.c'],['../variator__random_8c.html#ac95d9e0716e4c918c6902b10f9591d4b',1,'SDLVisualTest_FreeRandomVariator(SDLVisualTest_RandomVariator *variator): variator_random.c']]], + ['sdlvisualtest_5ffreesutconfig',['SDLVisualTest_FreeSUTConfig',['../_s_d_l__visualtest__sut__configparser_8h.html#a1bddf9732c0d3ed1c24455d22193de9a',1,'SDLVisualTest_FreeSUTConfig(SDLVisualTest_SUTConfig *config): sut_configparser.c'],['../sut__configparser_8c.html#a1bddf9732c0d3ed1c24455d22193de9a',1,'SDLVisualTest_FreeSUTConfig(SDLVisualTest_SUTConfig *config): sut_configparser.c']]], + ['sdlvisualtest_5ffreevariator',['SDLVisualTest_FreeVariator',['../_s_d_l__visualtest__variators_8h.html#a98727ef649135c3312056d7603cb70b5',1,'SDLVisualTest_FreeVariator(SDLVisualTest_Variator *variator): variators.c'],['../variators_8c.html#a98727ef649135c3312056d7603cb70b5',1,'SDLVisualTest_FreeVariator(SDLVisualTest_Variator *variator): variators.c']]], + ['sdlvisualtest_5fgetnextexhaustivevariation',['SDLVisualTest_GetNextExhaustiveVariation',['../_s_d_l__visualtest__exhaustive__variator_8h.html#aa9e13a92945ef48308215b3fa068ed29',1,'SDLVisualTest_GetNextExhaustiveVariation(SDLVisualTest_ExhaustiveVariator *variator): variator_exhaustive.c'],['../variator__exhaustive_8c.html#aa9e13a92945ef48308215b3fa068ed29',1,'SDLVisualTest_GetNextExhaustiveVariation(SDLVisualTest_ExhaustiveVariator *variator): variator_exhaustive.c']]], + ['sdlvisualtest_5fgetnextrandomvariation',['SDLVisualTest_GetNextRandomVariation',['../_s_d_l__visualtest__random__variator_8h.html#a479aceb74b5355c1d22856fc7efce890',1,'SDLVisualTest_GetNextRandomVariation(SDLVisualTest_RandomVariator *variator): variator_random.c'],['../variator__random_8c.html#a479aceb74b5355c1d22856fc7efce890',1,'SDLVisualTest_GetNextRandomVariation(SDLVisualTest_RandomVariator *variator): variator_random.c']]], + ['sdlvisualtest_5fgetnextvariation',['SDLVisualTest_GetNextVariation',['../_s_d_l__visualtest__variators_8h.html#aebdd4c3c545b0063d16929fd56f1a79f',1,'SDLVisualTest_GetNextVariation(SDLVisualTest_Variator *variator): variators.c'],['../variators_8c.html#aebdd4c3c545b0063d16929fd56f1a79f',1,'SDLVisualTest_GetNextVariation(SDLVisualTest_Variator *variator): variators.c']]], + ['sdlvisualtest_5fgetqueuefront',['SDLVisualTest_GetQueueFront',['../_s_d_l__visualtest__action__configparser_8h.html#afb508801942e7c74084480bcdb6f8613',1,'SDLVisualTest_GetQueueFront(SDLVisualTest_ActionQueue *queue): action_configparser.c'],['../action__configparser_8c.html#afb508801942e7c74084480bcdb6f8613',1,'SDLVisualTest_GetQueueFront(SDLVisualTest_ActionQueue *queue): action_configparser.c']]], + ['sdlvisualtest_5fharnessstate',['SDLVisualTest_HarnessState',['../struct_s_d_l_visual_test___harness_state.html',1,'SDLVisualTest_HarnessState'],['../_s_d_l__visualtest__harness__argparser_8h.html#ab89725ad0ec988d4923faa6a85972455',1,'SDLVisualTest_HarnessState(): SDL_visualtest_harness_argparser.h']]], + ['sdlvisualtest_5fhashstring',['SDLVisualTest_HashString',['../mischelper_8c.html#a0dae46cdb4e58bdda78676260eaaf980',1,'mischelper.c']]], + ['sdlvisualtest_5finitactionqueue',['SDLVisualTest_InitActionQueue',['../_s_d_l__visualtest__action__configparser_8h.html#ae68c1c80f728e125869882139bec2c9e',1,'SDLVisualTest_InitActionQueue(SDLVisualTest_ActionQueue *queue): action_configparser.c'],['../action__configparser_8c.html#ae68c1c80f728e125869882139bec2c9e',1,'SDLVisualTest_InitActionQueue(SDLVisualTest_ActionQueue *queue): action_configparser.c']]], + ['sdlvisualtest_5finitexhaustivevariator',['SDLVisualTest_InitExhaustiveVariator',['../_s_d_l__visualtest__exhaustive__variator_8h.html#a9e213e530ddf5a18014786d10e9fdaee',1,'SDLVisualTest_InitExhaustiveVariator(SDLVisualTest_ExhaustiveVariator *variator, SDLVisualTest_SUTConfig *config): variator_exhaustive.c'],['../variator__exhaustive_8c.html#a9e213e530ddf5a18014786d10e9fdaee',1,'SDLVisualTest_InitExhaustiveVariator(SDLVisualTest_ExhaustiveVariator *variator, SDLVisualTest_SUTConfig *config): variator_exhaustive.c']]], + ['sdlvisualtest_5finitrandomvariator',['SDLVisualTest_InitRandomVariator',['../_s_d_l__visualtest__random__variator_8h.html#a807486069b7180c3b3bf8af4616d055f',1,'SDLVisualTest_InitRandomVariator(SDLVisualTest_RandomVariator *variator, SDLVisualTest_SUTConfig *config, Uint64 seed): variator_random.c'],['../variator__random_8c.html#a807486069b7180c3b3bf8af4616d055f',1,'SDLVisualTest_InitRandomVariator(SDLVisualTest_RandomVariator *variator, SDLVisualTest_SUTConfig *config, Uint64 seed): variator_random.c']]], + ['sdlvisualtest_5finitvariation',['SDLVisualTest_InitVariation',['../_s_d_l__visualtest__variator__common_8h.html#ac87934906c51364778dc910ebca47b6c',1,'SDLVisualTest_InitVariation(SDLVisualTest_Variation *variation, SDLVisualTest_SUTConfig *config): variator_common.c'],['../variator__common_8c.html#ac87934906c51364778dc910ebca47b6c',1,'SDLVisualTest_InitVariation(SDLVisualTest_Variation *variation, SDLVisualTest_SUTConfig *config): variator_common.c']]], + ['sdlvisualtest_5finitvariator',['SDLVisualTest_InitVariator',['../_s_d_l__visualtest__variators_8h.html#ac1d82ee387a19743e47a82c87d3fb7f4',1,'SDLVisualTest_InitVariator(SDLVisualTest_Variator *variator, SDLVisualTest_SUTConfig *config, SDLVisualTest_VariatorType type, Uint64 seed): variators.c'],['../variators_8c.html#ac1d82ee387a19743e47a82c87d3fb7f4',1,'SDLVisualTest_InitVariator(SDLVisualTest_Variator *variator, SDLVisualTest_SUTConfig *config, SDLVisualTest_VariatorType type, Uint64 seed): variators.c']]], + ['sdlvisualtest_5finsertintoactionqueue',['SDLVisualTest_InsertIntoActionQueue',['../_s_d_l__visualtest__action__configparser_8h.html#ace5374ef7509e95383929ff185aaf7e6',1,'SDLVisualTest_InsertIntoActionQueue(SDLVisualTest_ActionQueue *queue, SDLVisualTest_Action action): action_configparser.c'],['../action__configparser_8c.html#ace5374ef7509e95383929ff185aaf7e6',1,'SDLVisualTest_InsertIntoActionQueue(SDLVisualTest_ActionQueue *queue, SDLVisualTest_Action action): action_configparser.c']]], + ['sdlvisualtest_5fisactionqueueempty',['SDLVisualTest_IsActionQueueEmpty',['../_s_d_l__visualtest__action__configparser_8h.html#a8484ee36f78952192d4193c85fca2f17',1,'SDLVisualTest_IsActionQueueEmpty(SDLVisualTest_ActionQueue *queue): action_configparser.c'],['../action__configparser_8c.html#a8484ee36f78952192d4193c85fca2f17',1,'SDLVisualTest_IsActionQueueEmpty(SDLVisualTest_ActionQueue *queue): action_configparser.c']]], + ['sdlvisualtest_5fmakestrfromvariation',['SDLVisualTest_MakeStrFromVariation',['../_s_d_l__visualtest__variator__common_8h.html#ad981c2efab849e76dc878ef8da9d6017',1,'SDLVisualTest_MakeStrFromVariation(SDLVisualTest_Variation *variation, SDLVisualTest_SUTConfig *config, char *buffer, int size): variator_common.c'],['../variator__common_8c.html#ad981c2efab849e76dc878ef8da9d6017',1,'SDLVisualTest_MakeStrFromVariation(SDLVisualTest_Variation *variation, SDLVisualTest_SUTConfig *config, char *buffer, int size): variator_common.c']]], + ['sdlvisualtest_5fnextvalue',['SDLVisualTest_NextValue',['../_s_d_l__visualtest__variator__common_8h.html#aafcecc06c8feb24b6f6a509bfa9db681',1,'SDLVisualTest_NextValue(SDLVisualTest_SUTOptionValue *var, SDLVisualTest_SUTOption *opt): variator_common.c'],['../variator__common_8c.html#aafcecc06c8feb24b6f6a509bfa9db681',1,'SDLVisualTest_NextValue(SDLVisualTest_SUTOptionValue *var, SDLVisualTest_SUTOption *opt): variator_common.c']]], + ['sdlvisualtest_5fparseactionconfig',['SDLVisualTest_ParseActionConfig',['../_s_d_l__visualtest__action__configparser_8h.html#a8ef9dce4d464d6994596deeace6ffa2d',1,'SDLVisualTest_ParseActionConfig(char *file, SDLVisualTest_ActionQueue *queue): action_configparser.c'],['../action__configparser_8c.html#a8ef9dce4d464d6994596deeace6ffa2d',1,'SDLVisualTest_ParseActionConfig(char *file, SDLVisualTest_ActionQueue *queue): action_configparser.c']]], + ['sdlvisualtest_5fparseargstoargv',['SDLVisualTest_ParseArgsToArgv',['../_s_d_l__visualtest__parsehelper_8h.html#a5f168fdd02f9d40ddbad97bd8c0b6361',1,'SDLVisualTest_ParseArgsToArgv(char *args): parsehelper.c'],['../parsehelper_8c.html#a5f168fdd02f9d40ddbad97bd8c0b6361',1,'SDLVisualTest_ParseArgsToArgv(char *args): parsehelper.c']]], + ['sdlvisualtest_5fparseharnessargs',['SDLVisualTest_ParseHarnessArgs',['../_s_d_l__visualtest__harness__argparser_8h.html#a629609acc04ef21a21fdfbbf6c1589c8',1,'SDLVisualTest_ParseHarnessArgs(char **argv, SDLVisualTest_HarnessState *state): harness_argparser.c'],['../harness__argparser_8c.html#a629609acc04ef21a21fdfbbf6c1589c8',1,'SDLVisualTest_ParseHarnessArgs(char **argv, SDLVisualTest_HarnessState *state): harness_argparser.c']]], + ['sdlvisualtest_5fparsesutconfig',['SDLVisualTest_ParseSUTConfig',['../_s_d_l__visualtest__sut__configparser_8h.html#a8e178cd8a1f279f5d2cf908545e97544',1,'SDLVisualTest_ParseSUTConfig(char *file, SDLVisualTest_SUTConfig *config): sut_configparser.c'],['../sut__configparser_8c.html#a8e178cd8a1f279f5d2cf908545e97544',1,'SDLVisualTest_ParseSUTConfig(char *file, SDLVisualTest_SUTConfig *config): sut_configparser.c']]], + ['sdlvisualtest_5frandomvariator',['SDLVisualTest_RandomVariator',['../struct_s_d_l_visual_test___random_variator.html',1,'SDLVisualTest_RandomVariator'],['../_s_d_l__visualtest__random__variator_8h.html#ab0df6ee6ec21b5070bfd8e90a7d79974',1,'SDLVisualTest_RandomVariator(): SDL_visualtest_random_variator.h']]], + ['sdlvisualtest_5frwhelperbuffer',['SDLVisualTest_RWHelperBuffer',['../struct_s_d_l_visual_test___r_w_helper_buffer.html',1,'']]], + ['sdlvisualtest_5frwhelpercountnonemptylines',['SDLVisualTest_RWHelperCountNonEmptyLines',['../rwhelper_8c.html#ac7f94417fa973af01a27452acd0043e8',1,'rwhelper.c']]], + ['sdlvisualtest_5frwhelperreadchar',['SDLVisualTest_RWHelperReadChar',['../rwhelper_8c.html#a92794c04d5568bde0da9f3020d88f44c',1,'rwhelper.c']]], + ['sdlvisualtest_5frwhelperreadline',['SDLVisualTest_RWHelperReadLine',['../rwhelper_8c.html#af97cfdf8d58f716efa8fd9204666df12',1,'rwhelper.c']]], + ['sdlvisualtest_5frwhelperresetbuffer',['SDLVisualTest_RWHelperResetBuffer',['../rwhelper_8c.html#aa7878508e6d851b11dc1d1186324064a',1,'rwhelper.c']]], + ['sdlvisualtest_5fscreenshotdesktop',['SDLVisualTest_ScreenshotDesktop',['../_s_d_l__visualtest__screenshot_8h.html#a812c545e97db11a756145d43b3a8e5ee',1,'SDL_visualtest_screenshot.h']]], + ['sdlvisualtest_5fscreenshotprocess',['SDLVisualTest_ScreenshotProcess',['../_s_d_l__visualtest__screenshot_8h.html#aefe6b7dbca1fbfb7aef081545c3ca66d',1,'SDL_visualtest_screenshot.h']]], + ['sdlvisualtest_5fsutconfig',['SDLVisualTest_SUTConfig',['../struct_s_d_l_visual_test___s_u_t_config.html',1,'SDLVisualTest_SUTConfig'],['../_s_d_l__visualtest__sut__configparser_8h.html#a1b493a40d601932b62ee643390aec169',1,'SDLVisualTest_SUTConfig(): SDL_visualtest_sut_configparser.h']]], + ['sdlvisualtest_5fsutintrange',['SDLVisualTest_SUTIntRange',['../struct_s_d_l_visual_test___s_u_t_int_range.html',1,'SDLVisualTest_SUTIntRange'],['../_s_d_l__visualtest__sut__configparser_8h.html#a8cbe93330b2ce59cdf6da59e2eca6045',1,'SDLVisualTest_SUTIntRange(): SDL_visualtest_sut_configparser.h']]], + ['sdlvisualtest_5fsutoption',['SDLVisualTest_SUTOption',['../struct_s_d_l_visual_test___s_u_t_option.html',1,'SDLVisualTest_SUTOption'],['../_s_d_l__visualtest__sut__configparser_8h.html#a9f35b5fe1ce4ba831a9b9e1f2bc8b7f6',1,'SDLVisualTest_SUTOption(): SDL_visualtest_sut_configparser.h']]], + ['sdlvisualtest_5fsutoptiontype',['SDLVisualTest_SUTOptionType',['../_s_d_l__visualtest__sut__configparser_8h.html#af9893831d9f79360f57e84a67a90293c',1,'SDL_visualtest_sut_configparser.h']]], + ['sdlvisualtest_5fsutoptionvalue',['SDLVisualTest_SUTOptionValue',['../union_s_d_l_visual_test___s_u_t_option_value.html',1,'SDLVisualTest_SUTOptionValue'],['../_s_d_l__visualtest__variator__common_8h.html#aa4e5fb752f4cd087101ea3e1f6124dfb',1,'SDLVisualTest_SUTOptionValue(): SDL_visualtest_variator_common.h']]], + ['sdlvisualtest_5ftokenize',['SDLVisualTest_Tokenize',['../_s_d_l__visualtest__parsehelper_8h.html#a508e690ed938e09fc3b724d2faf06899',1,'SDLVisualTest_Tokenize(char *str, int max_token_len): parsehelper.c'],['../parsehelper_8c.html#a508e690ed938e09fc3b724d2faf06899',1,'SDLVisualTest_Tokenize(char *str, int max_token_len): parsehelper.c']]], + ['sdlvisualtest_5fvariation',['SDLVisualTest_Variation',['../struct_s_d_l_visual_test___variation.html',1,'SDLVisualTest_Variation'],['../_s_d_l__visualtest__variator__common_8h.html#a6b447c1467862ecd623cc8f37489faeb',1,'SDLVisualTest_Variation(): SDL_visualtest_variator_common.h']]], + ['sdlvisualtest_5fvariator',['SDLVisualTest_Variator',['../struct_s_d_l_visual_test___variator.html',1,'SDLVisualTest_Variator'],['../_s_d_l__visualtest__variators_8h.html#a520a2479efbe9c4a9d617735f7314e0a',1,'SDLVisualTest_Variator(): SDL_visualtest_variators.h']]], + ['sdlvisualtest_5fvariatortype',['SDLVisualTest_VariatorType',['../_s_d_l__visualtest__variator__common_8h.html#a04bfc880abe6940d69a63c06a33acdbd',1,'SDLVisualTest_VariatorType(): SDL_visualtest_variator_common.h'],['../_s_d_l__visualtest__variator__common_8h.html#a4a7752dc89880ce3f62a478b3d0d8d64',1,'SDLVisualTest_VariatorType(): SDL_visualtest_variator_common.h']]], + ['sdlvisualtest_5fverifyscreenshots',['SDLVisualTest_VerifyScreenshots',['../_s_d_l__visualtest__screenshot_8h.html#ac7b5335651144961676abc2116c38299',1,'SDLVisualTest_VerifyScreenshots(char *args, char *test_dir, char *verify_dir): screenshot.c'],['../screenshot_8c.html#ac7b5335651144961676abc2116c38299',1,'SDLVisualTest_VerifyScreenshots(char *args, char *test_dir, char *verify_dir): screenshot.c']]], + ['size',['size',['../struct_s_d_l_visual_test___action_queue.html#a439227feff9d7f55384e8780cfc2eb82',1,'SDLVisualTest_ActionQueue']]], + ['string',['string',['../union_s_d_l_visual_test___s_u_t_option_value.html#a2bf4b969ff9633c937e4d15118d1edc6',1,'SDLVisualTest_SUTOptionValue']]], + ['sut_5fconfig',['sut_config',['../struct_s_d_l_visual_test___harness_state.html#a42657080015a96da836e1640bbdf870e',1,'SDLVisualTest_HarnessState']]], + ['sut_5fconfigparser_2ec',['sut_configparser.c',['../sut__configparser_8c.html',1,'']]], + ['sutapp',['sutapp',['../struct_s_d_l_visual_test___harness_state.html#af277bbb5c712eb89e92337dd583a8b74',1,'SDLVisualTest_HarnessState']]], + ['sutargs',['sutargs',['../struct_s_d_l_visual_test___harness_state.html#a00fab9c7cf802b96b6b29e098292d24d',1,'SDLVisualTest_HarnessState']]] +]; diff --git a/visualtest/docs/html/search/all_74.html b/visualtest/docs/html/search/all_74.html new file mode 100755 index 0000000000000..d7dabea0ac097 --- /dev/null +++ b/visualtest/docs/html/search/all_74.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/all_74.js b/visualtest/docs/html/search/all_74.js new file mode 100755 index 0000000000000..a955b1c186f49 --- /dev/null +++ b/visualtest/docs/html/search/all_74.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['test_5ferror',['TEST_ERROR',['../testharness_8c.html#a8251bcdfc5c83845e0834adf211de033',1,'testharness.c']]], + ['test_5ffailed',['TEST_FAILED',['../testharness_8c.html#a8b8b91205df891e2c7837bd03795306f',1,'testharness.c']]], + ['test_5fpassed',['TEST_PASSED',['../testharness_8c.html#a562e15dd66cf158c98dbfec9f6afa1ae',1,'testharness.c']]], + ['testharness_2ec',['testharness.c',['../testharness_8c.html',1,'']]], + ['time',['time',['../struct_s_d_l_visual_test___action.html#a42715f65f02da52edc5b22021d8ae670',1,'SDLVisualTest_Action']]], + ['timeout',['timeout',['../struct_s_d_l_visual_test___harness_state.html#a493b57f443cc38b3d3df9c1e584d9d82',1,'SDLVisualTest_HarnessState']]], + ['type',['type',['../struct_s_d_l_visual_test___action.html#a3ab091b672fc470015f09e6c4c50dcf1',1,'SDLVisualTest_Action::type()'],['../struct_s_d_l_visual_test___s_u_t_option.html#a857b9e5ccfca26034b47a5f3236d822c',1,'SDLVisualTest_SUTOption::type()'],['../struct_s_d_l_visual_test___variator.html#a24d4399dc1877c1843e120e7b027ae64',1,'SDLVisualTest_Variator::type()']]] +]; diff --git a/visualtest/docs/html/search/all_76.html b/visualtest/docs/html/search/all_76.html new file mode 100755 index 0000000000000..33cae7d116274 --- /dev/null +++ b/visualtest/docs/html/search/all_76.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/all_76.js b/visualtest/docs/html/search/all_76.js new file mode 100755 index 0000000000000..39d4e4503c9db --- /dev/null +++ b/visualtest/docs/html/search/all_76.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['visual_20and_20interactive_20test_20automation_20for_20sdl_202_2e0',['Visual and Interactive Test Automation for SDL 2.0',['../index.html',1,'']]], + ['variation',['variation',['../struct_s_d_l_visual_test___exhaustive_variator.html#a11c2995cf19b41c4a1b1f8d9b4081ff7',1,'SDLVisualTest_ExhaustiveVariator::variation()'],['../struct_s_d_l_visual_test___random_variator.html#a11c2995cf19b41c4a1b1f8d9b4081ff7',1,'SDLVisualTest_RandomVariator::variation()']]], + ['variator_5fcommon_2ec',['variator_common.c',['../variator__common_8c.html',1,'']]], + ['variator_5fexhaustive_2ec',['variator_exhaustive.c',['../variator__exhaustive_8c.html',1,'']]], + ['variator_5frandom_2ec',['variator_random.c',['../variator__random_8c.html',1,'']]], + ['variator_5ftype',['variator_type',['../struct_s_d_l_visual_test___harness_state.html#aaaa989ae89caee6d39c722cfe6907466',1,'SDLVisualTest_HarnessState']]], + ['variators_2ec',['variators.c',['../variators_8c.html',1,'']]], + ['vars',['vars',['../struct_s_d_l_visual_test___variation.html#a1eab2e90f0195b4f4632eb19523aeadf',1,'SDLVisualTest_Variation']]], + ['verify_5fdir',['verify_dir',['../struct_s_d_l_visual_test___harness_state.html#adc871112f24f61e2fff74a7a7fb9794f',1,'SDLVisualTest_HarnessState']]] +]; diff --git a/visualtest/docs/html/search/all_77.html b/visualtest/docs/html/search/all_77.html new file mode 100755 index 0000000000000..d7ce72090058f --- /dev/null +++ b/visualtest/docs/html/search/all_77.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/all_77.js b/visualtest/docs/html/search/all_77.js new file mode 100755 index 0000000000000..06134db92ab6b --- /dev/null +++ b/visualtest/docs/html/search/all_77.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['windows_5fprocess_2ec',['windows_process.c',['../windows__process_8c.html',1,'']]], + ['windows_5fscreenshot_2ec',['windows_screenshot.c',['../windows__screenshot_8c.html',1,'']]] +]; diff --git a/visualtest/docs/html/search/classes_73.html b/visualtest/docs/html/search/classes_73.html new file mode 100755 index 0000000000000..0ddf5ea544f22 --- /dev/null +++ b/visualtest/docs/html/search/classes_73.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/classes_73.js b/visualtest/docs/html/search/classes_73.js new file mode 100755 index 0000000000000..e3d0f597de808 --- /dev/null +++ b/visualtest/docs/html/search/classes_73.js @@ -0,0 +1,18 @@ +var searchData= +[ + ['sdl_5fprocessexitstatus',['SDL_ProcessExitStatus',['../struct_s_d_l___process_exit_status.html',1,'']]], + ['sdl_5fprocessinfo',['SDL_ProcessInfo',['../struct_s_d_l___process_info.html',1,'']]], + ['sdlvisualtest_5faction',['SDLVisualTest_Action',['../struct_s_d_l_visual_test___action.html',1,'']]], + ['sdlvisualtest_5factionnode',['SDLVisualTest_ActionNode',['../struct_s_d_l_visual_test___action_node.html',1,'']]], + ['sdlvisualtest_5factionqueue',['SDLVisualTest_ActionQueue',['../struct_s_d_l_visual_test___action_queue.html',1,'']]], + ['sdlvisualtest_5fexhaustivevariator',['SDLVisualTest_ExhaustiveVariator',['../struct_s_d_l_visual_test___exhaustive_variator.html',1,'']]], + ['sdlvisualtest_5fharnessstate',['SDLVisualTest_HarnessState',['../struct_s_d_l_visual_test___harness_state.html',1,'']]], + ['sdlvisualtest_5frandomvariator',['SDLVisualTest_RandomVariator',['../struct_s_d_l_visual_test___random_variator.html',1,'']]], + ['sdlvisualtest_5frwhelperbuffer',['SDLVisualTest_RWHelperBuffer',['../struct_s_d_l_visual_test___r_w_helper_buffer.html',1,'']]], + ['sdlvisualtest_5fsutconfig',['SDLVisualTest_SUTConfig',['../struct_s_d_l_visual_test___s_u_t_config.html',1,'']]], + ['sdlvisualtest_5fsutintrange',['SDLVisualTest_SUTIntRange',['../struct_s_d_l_visual_test___s_u_t_int_range.html',1,'']]], + ['sdlvisualtest_5fsutoption',['SDLVisualTest_SUTOption',['../struct_s_d_l_visual_test___s_u_t_option.html',1,'']]], + ['sdlvisualtest_5fsutoptionvalue',['SDLVisualTest_SUTOptionValue',['../union_s_d_l_visual_test___s_u_t_option_value.html',1,'']]], + ['sdlvisualtest_5fvariation',['SDLVisualTest_Variation',['../struct_s_d_l_visual_test___variation.html',1,'']]], + ['sdlvisualtest_5fvariator',['SDLVisualTest_Variator',['../struct_s_d_l_visual_test___variator.html',1,'']]] +]; diff --git a/visualtest/docs/html/search/close.png b/visualtest/docs/html/search/close.png new file mode 100755 index 0000000000000000000000000000000000000000..9342d3dfeea7b7c4ee610987e717804b5a42ceb9 GIT binary patch literal 273 zcmV+s0q*{ZP)4(RlMby96)VwnbG{ zbe&}^BDn7x>$<{ck4zAK-=nT;=hHG)kmplIF${xqm8db3oX6wT3bvp`TE@m0cg;b) zBuSL}5?N7O(iZLdAlz@)b)Rd~DnSsSX&P5qC`XwuFwcAYLC+d2>+1(8on;wpt8QIC X2MT$R4iQDd00000NkvXXu0mjfia~GN literal 0 HcmV?d00001 diff --git a/visualtest/docs/html/search/defines_61.html b/visualtest/docs/html/search/defines_61.html new file mode 100755 index 0000000000000..32e073212004e --- /dev/null +++ b/visualtest/docs/html/search/defines_61.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/defines_61.js b/visualtest/docs/html/search/defines_61.js new file mode 100755 index 0000000000000..6c0916b160fd9 --- /dev/null +++ b/visualtest/docs/html/search/defines_61.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['action_5floop_5ffps',['ACTION_LOOP_FPS',['../testharness_8c.html#a70102426e83ed3944f9c060bd82fb54e',1,'testharness.c']]], + ['action_5ftimer_5fevent',['ACTION_TIMER_EVENT',['../testharness_8c.html#a0d1d5d1394089a10f0147ed2b89c1165',1,'testharness.c']]] +]; diff --git a/visualtest/docs/html/search/defines_64.html b/visualtest/docs/html/search/defines_64.html new file mode 100755 index 0000000000000..a3dd91d47d1fc --- /dev/null +++ b/visualtest/docs/html/search/defines_64.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/defines_64.js b/visualtest/docs/html/search/defines_64.js new file mode 100755 index 0000000000000..1d08f16aaefb2 --- /dev/null +++ b/visualtest/docs/html/search/defines_64.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['default_5fsut_5ftimeout',['DEFAULT_SUT_TIMEOUT',['../harness__argparser_8c.html#a6669f8e5a07e7a0e4622dd23362831e7',1,'harness_argparser.c']]] +]; diff --git a/visualtest/docs/html/search/defines_6b.html b/visualtest/docs/html/search/defines_6b.html new file mode 100755 index 0000000000000..82965dcbca7e3 --- /dev/null +++ b/visualtest/docs/html/search/defines_6b.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/defines_6b.js b/visualtest/docs/html/search/defines_6b.js new file mode 100755 index 0000000000000..831fa2c4e463c --- /dev/null +++ b/visualtest/docs/html/search/defines_6b.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['kill_5ftimer_5fevent',['KILL_TIMER_EVENT',['../testharness_8c.html#acdc6cb4935ca89fbe3fda31a8f533b9a',1,'testharness.c']]] +]; diff --git a/visualtest/docs/html/search/defines_6d.html b/visualtest/docs/html/search/defines_6d.html new file mode 100755 index 0000000000000..281ca78c5911c --- /dev/null +++ b/visualtest/docs/html/search/defines_6d.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/defines_6d.js b/visualtest/docs/html/search/defines_6d.js new file mode 100755 index 0000000000000..dc4bd5e3ef3a4 --- /dev/null +++ b/visualtest/docs/html/search/defines_6d.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['max_5faction_5fline_5flength',['MAX_ACTION_LINE_LENGTH',['../_s_d_l__visualtest__action__configparser_8h.html#a19244c2e1556665be344807ace1556ed',1,'SDL_visualtest_action_configparser.h']]], + ['max_5fconfig_5fline_5flen',['MAX_CONFIG_LINE_LEN',['../harness__argparser_8c.html#a7186273cd88640b740b6333cd98ae243',1,'harness_argparser.c']]], + ['max_5fpath_5flen',['MAX_PATH_LEN',['../_s_d_l__visualtest__harness__argparser_8h.html#abdd33f362ae3bbdacb5de76473aa8a2f',1,'SDL_visualtest_harness_argparser.h']]], + ['max_5fsut_5fargs_5flen',['MAX_SUT_ARGS_LEN',['../_s_d_l__visualtest__harness__argparser_8h.html#a8485cbda108eca56406d67aaa685fcc5',1,'SDL_visualtest_harness_argparser.h']]], + ['max_5fsutoption_5fcategory_5flen',['MAX_SUTOPTION_CATEGORY_LEN',['../_s_d_l__visualtest__sut__configparser_8h.html#a21a678ced8cdf55b4cc70ad398bf33b6',1,'SDL_visualtest_sut_configparser.h']]], + ['max_5fsutoption_5fenumval_5flen',['MAX_SUTOPTION_ENUMVAL_LEN',['../_s_d_l__visualtest__sut__configparser_8h.html#a6c700fc8ff02cfa0c795b9593f86b9a0',1,'SDL_visualtest_sut_configparser.h']]], + ['max_5fsutoption_5fline_5flength',['MAX_SUTOPTION_LINE_LENGTH',['../_s_d_l__visualtest__sut__configparser_8h.html#a8f1a5749af5a592b30a194c72d848f75',1,'SDL_visualtest_sut_configparser.h']]], + ['max_5fsutoption_5fname_5flen',['MAX_SUTOPTION_NAME_LEN',['../_s_d_l__visualtest__sut__configparser_8h.html#a0a8b0c1f8eee787abf09bf3a840eccc7',1,'SDL_visualtest_sut_configparser.h']]] +]; diff --git a/visualtest/docs/html/search/defines_73.html b/visualtest/docs/html/search/defines_73.html new file mode 100755 index 0000000000000..d101548a7cf62 --- /dev/null +++ b/visualtest/docs/html/search/defines_73.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/defines_73.js b/visualtest/docs/html/search/defines_73.js new file mode 100755 index 0000000000000..d23464e7a254b --- /dev/null +++ b/visualtest/docs/html/search/defines_73.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['sdl_5fsut_5finteger_5foption_5ftest_5fsteps',['SDL_SUT_INTEGER_OPTION_TEST_STEPS',['../_s_d_l__visualtest__variator__common_8h.html#afcdce86a10fbcdc9f3e47c47b70e3ea3',1,'SDL_visualtest_variator_common.h']]] +]; diff --git a/visualtest/docs/html/search/defines_74.html b/visualtest/docs/html/search/defines_74.html new file mode 100755 index 0000000000000..4b3c298751d24 --- /dev/null +++ b/visualtest/docs/html/search/defines_74.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/defines_74.js b/visualtest/docs/html/search/defines_74.js new file mode 100755 index 0000000000000..6845258a5fd16 --- /dev/null +++ b/visualtest/docs/html/search/defines_74.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['test_5ferror',['TEST_ERROR',['../testharness_8c.html#a8251bcdfc5c83845e0834adf211de033',1,'testharness.c']]], + ['test_5ffailed',['TEST_FAILED',['../testharness_8c.html#a8b8b91205df891e2c7837bd03795306f',1,'testharness.c']]], + ['test_5fpassed',['TEST_PASSED',['../testharness_8c.html#a562e15dd66cf158c98dbfec9f6afa1ae',1,'testharness.c']]] +]; diff --git a/visualtest/docs/html/search/enums_73.html b/visualtest/docs/html/search/enums_73.html new file mode 100755 index 0000000000000..7d2f3b303c9fa --- /dev/null +++ b/visualtest/docs/html/search/enums_73.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/enums_73.js b/visualtest/docs/html/search/enums_73.js new file mode 100755 index 0000000000000..de876b49d67ce --- /dev/null +++ b/visualtest/docs/html/search/enums_73.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['sdlvisualtest_5factiontype',['SDLVisualTest_ActionType',['../_s_d_l__visualtest__action__configparser_8h.html#a383e41b8547eab149a0a4af867b3ebc6',1,'SDL_visualtest_action_configparser.h']]], + ['sdlvisualtest_5fsutoptiontype',['SDLVisualTest_SUTOptionType',['../_s_d_l__visualtest__sut__configparser_8h.html#af9893831d9f79360f57e84a67a90293c',1,'SDL_visualtest_sut_configparser.h']]], + ['sdlvisualtest_5fvariatortype',['SDLVisualTest_VariatorType',['../_s_d_l__visualtest__variator__common_8h.html#a04bfc880abe6940d69a63c06a33acdbd',1,'SDL_visualtest_variator_common.h']]] +]; diff --git a/visualtest/docs/html/search/enumvalues_73.html b/visualtest/docs/html/search/enumvalues_73.html new file mode 100755 index 0000000000000..7379c7f5c991d --- /dev/null +++ b/visualtest/docs/html/search/enumvalues_73.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/enumvalues_73.js b/visualtest/docs/html/search/enumvalues_73.js new file mode 100755 index 0000000000000..4a3422677889d --- /dev/null +++ b/visualtest/docs/html/search/enumvalues_73.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['sdl_5faction_5fkill',['SDL_ACTION_KILL',['../_s_d_l__visualtest__action__configparser_8h.html#a383e41b8547eab149a0a4af867b3ebc6a87880c4f665344d4c3e12f9aa3af7410',1,'SDL_visualtest_action_configparser.h']]], + ['sdl_5faction_5flaunch',['SDL_ACTION_LAUNCH',['../_s_d_l__visualtest__action__configparser_8h.html#a383e41b8547eab149a0a4af867b3ebc6ac5344bca6af9c07c4ee69ee4c2b18df2',1,'SDL_visualtest_action_configparser.h']]], + ['sdl_5faction_5fquit',['SDL_ACTION_QUIT',['../_s_d_l__visualtest__action__configparser_8h.html#a383e41b8547eab149a0a4af867b3ebc6ad3d17a830b7e1e46e37d916130d8802a',1,'SDL_visualtest_action_configparser.h']]], + ['sdl_5faction_5fscreenshot',['SDL_ACTION_SCREENSHOT',['../_s_d_l__visualtest__action__configparser_8h.html#a383e41b8547eab149a0a4af867b3ebc6af9b5d42cb90bf843f298be4593992fdb',1,'SDL_visualtest_action_configparser.h']]], + ['sdl_5faction_5fverify',['SDL_ACTION_VERIFY',['../_s_d_l__visualtest__action__configparser_8h.html#a383e41b8547eab149a0a4af867b3ebc6a0853f8be8363015b822658b9f3b013f4',1,'SDL_visualtest_action_configparser.h']]] +]; diff --git a/visualtest/docs/html/search/files_61.html b/visualtest/docs/html/search/files_61.html new file mode 100755 index 0000000000000..c7378fc6d371b --- /dev/null +++ b/visualtest/docs/html/search/files_61.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/files_61.js b/visualtest/docs/html/search/files_61.js new file mode 100755 index 0000000000000..6cbf8398fd7a3 --- /dev/null +++ b/visualtest/docs/html/search/files_61.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['action_5fconfigparser_2ec',['action_configparser.c',['../action__configparser_8c.html',1,'']]] +]; diff --git a/visualtest/docs/html/search/files_68.html b/visualtest/docs/html/search/files_68.html new file mode 100755 index 0000000000000..0ecafca9893b6 --- /dev/null +++ b/visualtest/docs/html/search/files_68.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/files_68.js b/visualtest/docs/html/search/files_68.js new file mode 100755 index 0000000000000..c2615b10c124e --- /dev/null +++ b/visualtest/docs/html/search/files_68.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['harness_5fargparser_2ec',['harness_argparser.c',['../harness__argparser_8c.html',1,'']]] +]; diff --git a/visualtest/docs/html/search/files_6c.html b/visualtest/docs/html/search/files_6c.html new file mode 100755 index 0000000000000..3eda986dd2281 --- /dev/null +++ b/visualtest/docs/html/search/files_6c.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/files_6c.js b/visualtest/docs/html/search/files_6c.js new file mode 100755 index 0000000000000..f6a1353d11e3c --- /dev/null +++ b/visualtest/docs/html/search/files_6c.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['linux_5fprocess_2ec',['linux_process.c',['../linux__process_8c.html',1,'']]] +]; diff --git a/visualtest/docs/html/search/files_6d.html b/visualtest/docs/html/search/files_6d.html new file mode 100755 index 0000000000000..8148b75cce6bc --- /dev/null +++ b/visualtest/docs/html/search/files_6d.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/files_6d.js b/visualtest/docs/html/search/files_6d.js new file mode 100755 index 0000000000000..431dcf85aafb0 --- /dev/null +++ b/visualtest/docs/html/search/files_6d.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['mischelper_2ec',['mischelper.c',['../mischelper_8c.html',1,'']]] +]; diff --git a/visualtest/docs/html/search/files_70.html b/visualtest/docs/html/search/files_70.html new file mode 100755 index 0000000000000..a053becd4a7c0 --- /dev/null +++ b/visualtest/docs/html/search/files_70.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/files_70.js b/visualtest/docs/html/search/files_70.js new file mode 100755 index 0000000000000..1e471d83190c1 --- /dev/null +++ b/visualtest/docs/html/search/files_70.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['parsehelper_2ec',['parsehelper.c',['../parsehelper_8c.html',1,'']]] +]; diff --git a/visualtest/docs/html/search/files_72.html b/visualtest/docs/html/search/files_72.html new file mode 100755 index 0000000000000..a952842bacfb2 --- /dev/null +++ b/visualtest/docs/html/search/files_72.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/files_72.js b/visualtest/docs/html/search/files_72.js new file mode 100755 index 0000000000000..29b7e56101d1c --- /dev/null +++ b/visualtest/docs/html/search/files_72.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['rwhelper_2ec',['rwhelper.c',['../rwhelper_8c.html',1,'']]] +]; diff --git a/visualtest/docs/html/search/files_73.html b/visualtest/docs/html/search/files_73.html new file mode 100755 index 0000000000000..6d8f48898abb5 --- /dev/null +++ b/visualtest/docs/html/search/files_73.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/files_73.js b/visualtest/docs/html/search/files_73.js new file mode 100755 index 0000000000000..2d4c61f575e8b --- /dev/null +++ b/visualtest/docs/html/search/files_73.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['screenshot_2ec',['screenshot.c',['../screenshot_8c.html',1,'']]], + ['sdl_5fvisualtest_5faction_5fconfigparser_2eh',['SDL_visualtest_action_configparser.h',['../_s_d_l__visualtest__action__configparser_8h.html',1,'']]], + ['sdl_5fvisualtest_5fexhaustive_5fvariator_2eh',['SDL_visualtest_exhaustive_variator.h',['../_s_d_l__visualtest__exhaustive__variator_8h.html',1,'']]], + ['sdl_5fvisualtest_5fharness_5fargparser_2eh',['SDL_visualtest_harness_argparser.h',['../_s_d_l__visualtest__harness__argparser_8h.html',1,'']]], + ['sdl_5fvisualtest_5fparsehelper_2eh',['SDL_visualtest_parsehelper.h',['../_s_d_l__visualtest__parsehelper_8h.html',1,'']]], + ['sdl_5fvisualtest_5fprocess_2eh',['SDL_visualtest_process.h',['../_s_d_l__visualtest__process_8h.html',1,'']]], + ['sdl_5fvisualtest_5frandom_5fvariator_2eh',['SDL_visualtest_random_variator.h',['../_s_d_l__visualtest__random__variator_8h.html',1,'']]], + ['sdl_5fvisualtest_5fscreenshot_2eh',['SDL_visualtest_screenshot.h',['../_s_d_l__visualtest__screenshot_8h.html',1,'']]], + ['sdl_5fvisualtest_5fsut_5fconfigparser_2eh',['SDL_visualtest_sut_configparser.h',['../_s_d_l__visualtest__sut__configparser_8h.html',1,'']]], + ['sdl_5fvisualtest_5fvariator_5fcommon_2eh',['SDL_visualtest_variator_common.h',['../_s_d_l__visualtest__variator__common_8h.html',1,'']]], + ['sdl_5fvisualtest_5fvariators_2eh',['SDL_visualtest_variators.h',['../_s_d_l__visualtest__variators_8h.html',1,'']]], + ['sut_5fconfigparser_2ec',['sut_configparser.c',['../sut__configparser_8c.html',1,'']]] +]; diff --git a/visualtest/docs/html/search/files_74.html b/visualtest/docs/html/search/files_74.html new file mode 100755 index 0000000000000..b67c32ee7589e --- /dev/null +++ b/visualtest/docs/html/search/files_74.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/files_74.js b/visualtest/docs/html/search/files_74.js new file mode 100755 index 0000000000000..a339ccbe9b7b6 --- /dev/null +++ b/visualtest/docs/html/search/files_74.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['testharness_2ec',['testharness.c',['../testharness_8c.html',1,'']]] +]; diff --git a/visualtest/docs/html/search/files_76.html b/visualtest/docs/html/search/files_76.html new file mode 100755 index 0000000000000..2ea8e3c0830a9 --- /dev/null +++ b/visualtest/docs/html/search/files_76.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/files_76.js b/visualtest/docs/html/search/files_76.js new file mode 100755 index 0000000000000..d32b6a6fd4815 --- /dev/null +++ b/visualtest/docs/html/search/files_76.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['variator_5fcommon_2ec',['variator_common.c',['../variator__common_8c.html',1,'']]], + ['variator_5fexhaustive_2ec',['variator_exhaustive.c',['../variator__exhaustive_8c.html',1,'']]], + ['variator_5frandom_2ec',['variator_random.c',['../variator__random_8c.html',1,'']]], + ['variators_2ec',['variators.c',['../variators_8c.html',1,'']]] +]; diff --git a/visualtest/docs/html/search/files_77.html b/visualtest/docs/html/search/files_77.html new file mode 100755 index 0000000000000..cfba7eaf7c7d8 --- /dev/null +++ b/visualtest/docs/html/search/files_77.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/files_77.js b/visualtest/docs/html/search/files_77.js new file mode 100755 index 0000000000000..06134db92ab6b --- /dev/null +++ b/visualtest/docs/html/search/files_77.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['windows_5fprocess_2ec',['windows_process.c',['../windows__process_8c.html',1,'']]], + ['windows_5fscreenshot_2ec',['windows_screenshot.c',['../windows__screenshot_8c.html',1,'']]] +]; diff --git a/visualtest/docs/html/search/functions_6d.html b/visualtest/docs/html/search/functions_6d.html new file mode 100755 index 0000000000000..cc3d484f81959 --- /dev/null +++ b/visualtest/docs/html/search/functions_6d.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/functions_6d.js b/visualtest/docs/html/search/functions_6d.js new file mode 100755 index 0000000000000..f93b71f18a62f --- /dev/null +++ b/visualtest/docs/html/search/functions_6d.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['main',['main',['../testharness_8c.html#a0ddf1224851353fc92bfbff6f499fa97',1,'testharness.c']]] +]; diff --git a/visualtest/docs/html/search/functions_73.html b/visualtest/docs/html/search/functions_73.html new file mode 100755 index 0000000000000..071b44fbfb8ad --- /dev/null +++ b/visualtest/docs/html/search/functions_73.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/functions_73.js b/visualtest/docs/html/search/functions_73.js new file mode 100755 index 0000000000000..ee1ca980179cb --- /dev/null +++ b/visualtest/docs/html/search/functions_73.js @@ -0,0 +1,42 @@ +var searchData= +[ + ['sdl_5fgetprocessexitstatus',['SDL_GetProcessExitStatus',['../_s_d_l__visualtest__process_8h.html#a54545d6b9f737a14030b4ce55ddd4a62',1,'SDL_visualtest_process.h']]], + ['sdl_5fisprocessrunning',['SDL_IsProcessRunning',['../_s_d_l__visualtest__process_8h.html#a3a131140a71bf68fa68a900f06872239',1,'SDL_visualtest_process.h']]], + ['sdl_5fkillprocess',['SDL_KillProcess',['../_s_d_l__visualtest__process_8h.html#ae66242e44a004831ab231693fd11c8d0',1,'SDL_visualtest_process.h']]], + ['sdl_5flaunchprocess',['SDL_LaunchProcess',['../_s_d_l__visualtest__process_8h.html#a12c16e5b870e2794d6bd5a1a3bb4582f',1,'SDL_visualtest_process.h']]], + ['sdl_5fquitprocess',['SDL_QuitProcess',['../_s_d_l__visualtest__process_8h.html#ad8a5b6725ad1f0e1bac623cf4b6fc28d',1,'SDL_visualtest_process.h']]], + ['sdlvisualtest_5fdequeueaction',['SDLVisualTest_DequeueAction',['../_s_d_l__visualtest__action__configparser_8h.html#a0e7998533e6e10590612a8d5dee7ec0b',1,'SDLVisualTest_DequeueAction(SDLVisualTest_ActionQueue *queue): action_configparser.c'],['../action__configparser_8c.html#a0e7998533e6e10590612a8d5dee7ec0b',1,'SDLVisualTest_DequeueAction(SDLVisualTest_ActionQueue *queue): action_configparser.c']]], + ['sdlvisualtest_5femptyactionqueue',['SDLVisualTest_EmptyActionQueue',['../_s_d_l__visualtest__action__configparser_8h.html#a677da0d0e4793df342f91974b4559efa',1,'SDLVisualTest_EmptyActionQueue(SDLVisualTest_ActionQueue *queue): action_configparser.c'],['../action__configparser_8c.html#a677da0d0e4793df342f91974b4559efa',1,'SDLVisualTest_EmptyActionQueue(SDLVisualTest_ActionQueue *queue): action_configparser.c']]], + ['sdlvisualtest_5fenqueueaction',['SDLVisualTest_EnqueueAction',['../_s_d_l__visualtest__action__configparser_8h.html#a647d1be8f0f27af2fb1e5d4da2100596',1,'SDLVisualTest_EnqueueAction(SDLVisualTest_ActionQueue *queue, SDLVisualTest_Action action): action_configparser.c'],['../action__configparser_8c.html#a647d1be8f0f27af2fb1e5d4da2100596',1,'SDLVisualTest_EnqueueAction(SDLVisualTest_ActionQueue *queue, SDLVisualTest_Action action): action_configparser.c']]], + ['sdlvisualtest_5ffreeexhaustivevariator',['SDLVisualTest_FreeExhaustiveVariator',['../_s_d_l__visualtest__exhaustive__variator_8h.html#a7168b055fb86bbbb700d87ae842f7152',1,'SDLVisualTest_FreeExhaustiveVariator(SDLVisualTest_ExhaustiveVariator *variator): variator_exhaustive.c'],['../variator__exhaustive_8c.html#a7168b055fb86bbbb700d87ae842f7152',1,'SDLVisualTest_FreeExhaustiveVariator(SDLVisualTest_ExhaustiveVariator *variator): variator_exhaustive.c']]], + ['sdlvisualtest_5ffreeharnessstate',['SDLVisualTest_FreeHarnessState',['../_s_d_l__visualtest__harness__argparser_8h.html#a833147d8da541982c615645a797627cc',1,'SDLVisualTest_FreeHarnessState(SDLVisualTest_HarnessState *state): harness_argparser.c'],['../harness__argparser_8c.html#a833147d8da541982c615645a797627cc',1,'SDLVisualTest_FreeHarnessState(SDLVisualTest_HarnessState *state): harness_argparser.c']]], + ['sdlvisualtest_5ffreerandomvariator',['SDLVisualTest_FreeRandomVariator',['../_s_d_l__visualtest__random__variator_8h.html#ac95d9e0716e4c918c6902b10f9591d4b',1,'SDLVisualTest_FreeRandomVariator(SDLVisualTest_RandomVariator *variator): variator_random.c'],['../variator__random_8c.html#ac95d9e0716e4c918c6902b10f9591d4b',1,'SDLVisualTest_FreeRandomVariator(SDLVisualTest_RandomVariator *variator): variator_random.c']]], + ['sdlvisualtest_5ffreesutconfig',['SDLVisualTest_FreeSUTConfig',['../_s_d_l__visualtest__sut__configparser_8h.html#a1bddf9732c0d3ed1c24455d22193de9a',1,'SDLVisualTest_FreeSUTConfig(SDLVisualTest_SUTConfig *config): sut_configparser.c'],['../sut__configparser_8c.html#a1bddf9732c0d3ed1c24455d22193de9a',1,'SDLVisualTest_FreeSUTConfig(SDLVisualTest_SUTConfig *config): sut_configparser.c']]], + ['sdlvisualtest_5ffreevariator',['SDLVisualTest_FreeVariator',['../_s_d_l__visualtest__variators_8h.html#a98727ef649135c3312056d7603cb70b5',1,'SDLVisualTest_FreeVariator(SDLVisualTest_Variator *variator): variators.c'],['../variators_8c.html#a98727ef649135c3312056d7603cb70b5',1,'SDLVisualTest_FreeVariator(SDLVisualTest_Variator *variator): variators.c']]], + ['sdlvisualtest_5fgetnextexhaustivevariation',['SDLVisualTest_GetNextExhaustiveVariation',['../_s_d_l__visualtest__exhaustive__variator_8h.html#aa9e13a92945ef48308215b3fa068ed29',1,'SDLVisualTest_GetNextExhaustiveVariation(SDLVisualTest_ExhaustiveVariator *variator): variator_exhaustive.c'],['../variator__exhaustive_8c.html#aa9e13a92945ef48308215b3fa068ed29',1,'SDLVisualTest_GetNextExhaustiveVariation(SDLVisualTest_ExhaustiveVariator *variator): variator_exhaustive.c']]], + ['sdlvisualtest_5fgetnextrandomvariation',['SDLVisualTest_GetNextRandomVariation',['../_s_d_l__visualtest__random__variator_8h.html#a479aceb74b5355c1d22856fc7efce890',1,'SDLVisualTest_GetNextRandomVariation(SDLVisualTest_RandomVariator *variator): variator_random.c'],['../variator__random_8c.html#a479aceb74b5355c1d22856fc7efce890',1,'SDLVisualTest_GetNextRandomVariation(SDLVisualTest_RandomVariator *variator): variator_random.c']]], + ['sdlvisualtest_5fgetnextvariation',['SDLVisualTest_GetNextVariation',['../_s_d_l__visualtest__variators_8h.html#aebdd4c3c545b0063d16929fd56f1a79f',1,'SDLVisualTest_GetNextVariation(SDLVisualTest_Variator *variator): variators.c'],['../variators_8c.html#aebdd4c3c545b0063d16929fd56f1a79f',1,'SDLVisualTest_GetNextVariation(SDLVisualTest_Variator *variator): variators.c']]], + ['sdlvisualtest_5fgetqueuefront',['SDLVisualTest_GetQueueFront',['../_s_d_l__visualtest__action__configparser_8h.html#afb508801942e7c74084480bcdb6f8613',1,'SDLVisualTest_GetQueueFront(SDLVisualTest_ActionQueue *queue): action_configparser.c'],['../action__configparser_8c.html#afb508801942e7c74084480bcdb6f8613',1,'SDLVisualTest_GetQueueFront(SDLVisualTest_ActionQueue *queue): action_configparser.c']]], + ['sdlvisualtest_5fhashstring',['SDLVisualTest_HashString',['../mischelper_8c.html#a0dae46cdb4e58bdda78676260eaaf980',1,'mischelper.c']]], + ['sdlvisualtest_5finitactionqueue',['SDLVisualTest_InitActionQueue',['../_s_d_l__visualtest__action__configparser_8h.html#ae68c1c80f728e125869882139bec2c9e',1,'SDLVisualTest_InitActionQueue(SDLVisualTest_ActionQueue *queue): action_configparser.c'],['../action__configparser_8c.html#ae68c1c80f728e125869882139bec2c9e',1,'SDLVisualTest_InitActionQueue(SDLVisualTest_ActionQueue *queue): action_configparser.c']]], + ['sdlvisualtest_5finitexhaustivevariator',['SDLVisualTest_InitExhaustiveVariator',['../_s_d_l__visualtest__exhaustive__variator_8h.html#a9e213e530ddf5a18014786d10e9fdaee',1,'SDLVisualTest_InitExhaustiveVariator(SDLVisualTest_ExhaustiveVariator *variator, SDLVisualTest_SUTConfig *config): variator_exhaustive.c'],['../variator__exhaustive_8c.html#a9e213e530ddf5a18014786d10e9fdaee',1,'SDLVisualTest_InitExhaustiveVariator(SDLVisualTest_ExhaustiveVariator *variator, SDLVisualTest_SUTConfig *config): variator_exhaustive.c']]], + ['sdlvisualtest_5finitrandomvariator',['SDLVisualTest_InitRandomVariator',['../_s_d_l__visualtest__random__variator_8h.html#a807486069b7180c3b3bf8af4616d055f',1,'SDLVisualTest_InitRandomVariator(SDLVisualTest_RandomVariator *variator, SDLVisualTest_SUTConfig *config, Uint64 seed): variator_random.c'],['../variator__random_8c.html#a807486069b7180c3b3bf8af4616d055f',1,'SDLVisualTest_InitRandomVariator(SDLVisualTest_RandomVariator *variator, SDLVisualTest_SUTConfig *config, Uint64 seed): variator_random.c']]], + ['sdlvisualtest_5finitvariation',['SDLVisualTest_InitVariation',['../_s_d_l__visualtest__variator__common_8h.html#ac87934906c51364778dc910ebca47b6c',1,'SDLVisualTest_InitVariation(SDLVisualTest_Variation *variation, SDLVisualTest_SUTConfig *config): variator_common.c'],['../variator__common_8c.html#ac87934906c51364778dc910ebca47b6c',1,'SDLVisualTest_InitVariation(SDLVisualTest_Variation *variation, SDLVisualTest_SUTConfig *config): variator_common.c']]], + ['sdlvisualtest_5finitvariator',['SDLVisualTest_InitVariator',['../_s_d_l__visualtest__variators_8h.html#ac1d82ee387a19743e47a82c87d3fb7f4',1,'SDLVisualTest_InitVariator(SDLVisualTest_Variator *variator, SDLVisualTest_SUTConfig *config, SDLVisualTest_VariatorType type, Uint64 seed): variators.c'],['../variators_8c.html#ac1d82ee387a19743e47a82c87d3fb7f4',1,'SDLVisualTest_InitVariator(SDLVisualTest_Variator *variator, SDLVisualTest_SUTConfig *config, SDLVisualTest_VariatorType type, Uint64 seed): variators.c']]], + ['sdlvisualtest_5finsertintoactionqueue',['SDLVisualTest_InsertIntoActionQueue',['../_s_d_l__visualtest__action__configparser_8h.html#ace5374ef7509e95383929ff185aaf7e6',1,'SDLVisualTest_InsertIntoActionQueue(SDLVisualTest_ActionQueue *queue, SDLVisualTest_Action action): action_configparser.c'],['../action__configparser_8c.html#ace5374ef7509e95383929ff185aaf7e6',1,'SDLVisualTest_InsertIntoActionQueue(SDLVisualTest_ActionQueue *queue, SDLVisualTest_Action action): action_configparser.c']]], + ['sdlvisualtest_5fisactionqueueempty',['SDLVisualTest_IsActionQueueEmpty',['../_s_d_l__visualtest__action__configparser_8h.html#a8484ee36f78952192d4193c85fca2f17',1,'SDLVisualTest_IsActionQueueEmpty(SDLVisualTest_ActionQueue *queue): action_configparser.c'],['../action__configparser_8c.html#a8484ee36f78952192d4193c85fca2f17',1,'SDLVisualTest_IsActionQueueEmpty(SDLVisualTest_ActionQueue *queue): action_configparser.c']]], + ['sdlvisualtest_5fmakestrfromvariation',['SDLVisualTest_MakeStrFromVariation',['../_s_d_l__visualtest__variator__common_8h.html#ad981c2efab849e76dc878ef8da9d6017',1,'SDLVisualTest_MakeStrFromVariation(SDLVisualTest_Variation *variation, SDLVisualTest_SUTConfig *config, char *buffer, int size): variator_common.c'],['../variator__common_8c.html#ad981c2efab849e76dc878ef8da9d6017',1,'SDLVisualTest_MakeStrFromVariation(SDLVisualTest_Variation *variation, SDLVisualTest_SUTConfig *config, char *buffer, int size): variator_common.c']]], + ['sdlvisualtest_5fnextvalue',['SDLVisualTest_NextValue',['../_s_d_l__visualtest__variator__common_8h.html#aafcecc06c8feb24b6f6a509bfa9db681',1,'SDLVisualTest_NextValue(SDLVisualTest_SUTOptionValue *var, SDLVisualTest_SUTOption *opt): variator_common.c'],['../variator__common_8c.html#aafcecc06c8feb24b6f6a509bfa9db681',1,'SDLVisualTest_NextValue(SDLVisualTest_SUTOptionValue *var, SDLVisualTest_SUTOption *opt): variator_common.c']]], + ['sdlvisualtest_5fparseactionconfig',['SDLVisualTest_ParseActionConfig',['../_s_d_l__visualtest__action__configparser_8h.html#a8ef9dce4d464d6994596deeace6ffa2d',1,'SDLVisualTest_ParseActionConfig(char *file, SDLVisualTest_ActionQueue *queue): action_configparser.c'],['../action__configparser_8c.html#a8ef9dce4d464d6994596deeace6ffa2d',1,'SDLVisualTest_ParseActionConfig(char *file, SDLVisualTest_ActionQueue *queue): action_configparser.c']]], + ['sdlvisualtest_5fparseargstoargv',['SDLVisualTest_ParseArgsToArgv',['../_s_d_l__visualtest__parsehelper_8h.html#a5f168fdd02f9d40ddbad97bd8c0b6361',1,'SDLVisualTest_ParseArgsToArgv(char *args): parsehelper.c'],['../parsehelper_8c.html#a5f168fdd02f9d40ddbad97bd8c0b6361',1,'SDLVisualTest_ParseArgsToArgv(char *args): parsehelper.c']]], + ['sdlvisualtest_5fparseharnessargs',['SDLVisualTest_ParseHarnessArgs',['../_s_d_l__visualtest__harness__argparser_8h.html#a629609acc04ef21a21fdfbbf6c1589c8',1,'SDLVisualTest_ParseHarnessArgs(char **argv, SDLVisualTest_HarnessState *state): harness_argparser.c'],['../harness__argparser_8c.html#a629609acc04ef21a21fdfbbf6c1589c8',1,'SDLVisualTest_ParseHarnessArgs(char **argv, SDLVisualTest_HarnessState *state): harness_argparser.c']]], + ['sdlvisualtest_5fparsesutconfig',['SDLVisualTest_ParseSUTConfig',['../_s_d_l__visualtest__sut__configparser_8h.html#a8e178cd8a1f279f5d2cf908545e97544',1,'SDLVisualTest_ParseSUTConfig(char *file, SDLVisualTest_SUTConfig *config): sut_configparser.c'],['../sut__configparser_8c.html#a8e178cd8a1f279f5d2cf908545e97544',1,'SDLVisualTest_ParseSUTConfig(char *file, SDLVisualTest_SUTConfig *config): sut_configparser.c']]], + ['sdlvisualtest_5frwhelpercountnonemptylines',['SDLVisualTest_RWHelperCountNonEmptyLines',['../rwhelper_8c.html#ac7f94417fa973af01a27452acd0043e8',1,'rwhelper.c']]], + ['sdlvisualtest_5frwhelperreadchar',['SDLVisualTest_RWHelperReadChar',['../rwhelper_8c.html#a92794c04d5568bde0da9f3020d88f44c',1,'rwhelper.c']]], + ['sdlvisualtest_5frwhelperreadline',['SDLVisualTest_RWHelperReadLine',['../rwhelper_8c.html#af97cfdf8d58f716efa8fd9204666df12',1,'rwhelper.c']]], + ['sdlvisualtest_5frwhelperresetbuffer',['SDLVisualTest_RWHelperResetBuffer',['../rwhelper_8c.html#aa7878508e6d851b11dc1d1186324064a',1,'rwhelper.c']]], + ['sdlvisualtest_5fscreenshotdesktop',['SDLVisualTest_ScreenshotDesktop',['../_s_d_l__visualtest__screenshot_8h.html#a812c545e97db11a756145d43b3a8e5ee',1,'SDL_visualtest_screenshot.h']]], + ['sdlvisualtest_5fscreenshotprocess',['SDLVisualTest_ScreenshotProcess',['../_s_d_l__visualtest__screenshot_8h.html#aefe6b7dbca1fbfb7aef081545c3ca66d',1,'SDL_visualtest_screenshot.h']]], + ['sdlvisualtest_5ftokenize',['SDLVisualTest_Tokenize',['../_s_d_l__visualtest__parsehelper_8h.html#a508e690ed938e09fc3b724d2faf06899',1,'SDLVisualTest_Tokenize(char *str, int max_token_len): parsehelper.c'],['../parsehelper_8c.html#a508e690ed938e09fc3b724d2faf06899',1,'SDLVisualTest_Tokenize(char *str, int max_token_len): parsehelper.c']]], + ['sdlvisualtest_5fverifyscreenshots',['SDLVisualTest_VerifyScreenshots',['../_s_d_l__visualtest__screenshot_8h.html#ac7b5335651144961676abc2116c38299',1,'SDLVisualTest_VerifyScreenshots(char *args, char *test_dir, char *verify_dir): screenshot.c'],['../screenshot_8c.html#ac7b5335651144961676abc2116c38299',1,'SDLVisualTest_VerifyScreenshots(char *args, char *test_dir, char *verify_dir): screenshot.c']]] +]; diff --git a/visualtest/docs/html/search/mag_sel.png b/visualtest/docs/html/search/mag_sel.png new file mode 100755 index 0000000000000000000000000000000000000000..81f6040a2092402b4d98f9ffa8855d12a0d4ca17 GIT binary patch literal 563 zcmV-30?hr1P)zxx&tqG15pu7)IiiXFflOc2k;dXd>%13GZAy? zRz!q0=|E6a6vV)&ZBS~G9oe0kbqyw1*gvY`{Pop2oKq#FlzgXt@Xh-7fxh>}`Fxg> z$%N%{$!4=5nM{(;=c!aG1Ofr^Do{u%Ih{^&Fc@H2)+a-?TBXrw5DW&z%Nb6mQ!L9O zl}b@6mB?f=tX3;#vl)}ggh(Vpyh(IK z(Mb0D{l{U$FsRjP;!{($+bsaaVi8T#1c0V#qEIOCYa9@UVLV`f__E81L;?WEaRA;Y zUH;rZ;vb;mk7JX|$=i3O~&If0O@oZfLg8gfIjW=dcBsz;gI=!{-r4# z4%6v$&~;q^j7Fo67yJ(NJWuX+I~I!tj^nW3?}^9bq|<3^+vapS5sgM^x7!cs(+mMT z&y%j};&~po+YO)3hoUH4E*E;e9>?R6SS&`X)p`njycAVcg{rEb41T{~Hk(bl-7eSb zmFxA2uIqo#@R?lKm50ND`~6Nfn|-b1|L6O98vt3Tx@gKz#isxO002ovPDHLkV1kyW B_l^Jn literal 0 HcmV?d00001 diff --git a/visualtest/docs/html/search/nomatches.html b/visualtest/docs/html/search/nomatches.html new file mode 100755 index 0000000000000..b1ded27e9ad6a --- /dev/null +++ b/visualtest/docs/html/search/nomatches.html @@ -0,0 +1,12 @@ + + + + + + + +
+
No Matches
+
+ + diff --git a/visualtest/docs/html/search/pages_76.html b/visualtest/docs/html/search/pages_76.html new file mode 100755 index 0000000000000..c180e9b88ecac --- /dev/null +++ b/visualtest/docs/html/search/pages_76.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/pages_76.js b/visualtest/docs/html/search/pages_76.js new file mode 100755 index 0000000000000..9f2660f886c2d --- /dev/null +++ b/visualtest/docs/html/search/pages_76.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['visual_20and_20interactive_20test_20automation_20for_20sdl_202_2e0',['Visual and Interactive Test Automation for SDL 2.0',['../index.html',1,'']]] +]; diff --git a/visualtest/docs/html/search/search.css b/visualtest/docs/html/search/search.css new file mode 100755 index 0000000000000..4d7612ff63e3b --- /dev/null +++ b/visualtest/docs/html/search/search.css @@ -0,0 +1,271 @@ +/*---------------- Search Box */ + +#FSearchBox { + float: left; +} + +#MSearchBox { + white-space : nowrap; + position: absolute; + float: none; + display: inline; + margin-top: 8px; + right: 0px; + width: 170px; + z-index: 102; + background-color: white; +} + +#MSearchBox .left +{ + display:block; + position:absolute; + left:10px; + width:20px; + height:19px; + background:url('search_l.png') no-repeat; + background-position:right; +} + +#MSearchSelect { + display:block; + position:absolute; + width:20px; + height:19px; +} + +.left #MSearchSelect { + left:4px; +} + +.right #MSearchSelect { + right:5px; +} + +#MSearchField { + display:block; + position:absolute; + height:19px; + background:url('search_m.png') repeat-x; + border:none; + width:111px; + margin-left:20px; + padding-left:4px; + color: #909090; + outline: none; + font: 9pt Arial, Verdana, sans-serif; +} + +#FSearchBox #MSearchField { + margin-left:15px; +} + +#MSearchBox .right { + display:block; + position:absolute; + right:10px; + top:0px; + width:20px; + height:19px; + background:url('search_r.png') no-repeat; + background-position:left; +} + +#MSearchClose { + display: none; + position: absolute; + top: 4px; + background : none; + border: none; + margin: 0px 4px 0px 0px; + padding: 0px 0px; + outline: none; +} + +.left #MSearchClose { + left: 6px; +} + +.right #MSearchClose { + right: 2px; +} + +.MSearchBoxActive #MSearchField { + color: #000000; +} + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #90A5CE; + background-color: #F9FAFC; + z-index: 1; + padding-top: 4px; + padding-bottom: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +.SelectItem { + font: 8pt Arial, Verdana, sans-serif; + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: monospace; + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: #000000; + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: #000000; + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: #FFFFFF; + background-color: #3D578C; + outline-style: none; + text-decoration: none; + cursor: pointer; + display: block; +} + +/*---------------- Search results window */ + +iframe#MSearchResults { + width: 60ex; + height: 15em; +} + +#MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #000; + background-color: #EEF1F7; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; + padding-bottom: 15px; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +body.SRPage { + margin: 5px 2px; +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} + +span.SRScope { + padding-left: 4px; +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; +} + +.SRResult { + display: none; +} + +DIV.searchresults { + margin-left: 10px; + margin-right: 10px; +} + +/*---------------- External search page results */ + +.searchresult { + background-color: #F0F3F8; +} + +.pages b { + color: white; + padding: 5px 5px 3px 5px; + background-image: url("../tab_a.png"); + background-repeat: repeat-x; + text-shadow: 0 1px 1px #000000; +} + +.pages { + line-height: 17px; + margin-left: 4px; + text-decoration: none; +} + +.hl { + font-weight: bold; +} + +#searchresults { + margin-bottom: 20px; +} + +.searchpages { + margin-top: 10px; +} + diff --git a/visualtest/docs/html/search/search.js b/visualtest/docs/html/search/search.js new file mode 100755 index 0000000000000..e6bd04688c031 --- /dev/null +++ b/visualtest/docs/html/search/search.js @@ -0,0 +1,813 @@ +// Search script generated by doxygen +// Copyright (C) 2009 by Dimitri van Heesch. + +// The code in this file is loosly based on main.js, part of Natural Docs, +// which is Copyright (C) 2003-2008 Greg Valure +// Natural Docs is licensed under the GPL. + +var indexSectionsWithContent = +{ + 0: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111011011111101110110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + 1: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + 2: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000010001100101110110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + 3: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + 4: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111001000111101110100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + 5: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + 6: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + 7: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + 8: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100100000010100000110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + 9: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" +}; + +var indexSectionNames = +{ + 0: "all", + 1: "classes", + 2: "files", + 3: "functions", + 4: "variables", + 5: "typedefs", + 6: "enums", + 7: "enumvalues", + 8: "defines", + 9: "pages" +}; + +function convertToId(search) +{ + var result = ''; + for (i=0;i do a search + { + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex0) // Up + { + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } + else if (e.keyCode==13 || e.keyCode==27) + { + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() + { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() + { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() + { + this.keyTimeout = 0; + + // strip leading whitespace + var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + var code = searchValue.toLowerCase().charCodeAt(0); + var hexCode; + if (code<16) + { + hexCode="0"+code.toString(16); + } + else + { + hexCode=code.toString(16); + } + + var resultsPage; + var resultsPageWithSearch; + var hasResultsPage; + + if (indexSectionsWithContent[this.searchIndex].charAt(code) == '1') + { + resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html'; + resultsPageWithSearch = resultsPage+'?'+escape(searchValue); + hasResultsPage = true; + } + else // nothing available for this search term + { + resultsPage = this.resultsPath + '/nomatches.html'; + resultsPageWithSearch = resultsPage; + hasResultsPage = false; + } + + window.frames.MSearchResults.location = resultsPageWithSearch; + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + + if (domPopupSearchResultsWindow.style.display!='block') + { + var domSearchBox = this.DOMSearchBox(); + this.DOMSearchClose().style.display = 'inline'; + if (this.insideFrame) + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + domPopupSearchResultsWindow.style.position = 'relative'; + domPopupSearchResultsWindow.style.display = 'block'; + var width = document.body.clientWidth - 8; // the -8 is for IE :-( + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResults.style.width = width + 'px'; + } + else + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth; + var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + } + } + + this.lastSearchValue = searchValue; + this.lastResultsPage = resultsPage; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) + { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) + { + this.DOMSearchBox().className = 'MSearchBoxActive'; + + var searchField = this.DOMSearchField(); + + if (searchField.value == this.searchLabel) // clear "Search" term upon entry + { + searchField.value = ''; + this.searchActive = true; + } + } + else if (!isActive) // directly remove the panel + { + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.DOMSearchField().value = this.searchLabel; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults(name) +{ + // The number of matches from the last run of . + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) + { + var parentElement = document.getElementById(id); + var element = parentElement.firstChild; + + while (element && element!=parentElement) + { + if (element.nodeName == 'DIV' && element.className == 'SRChildren') + { + return element; + } + + if (element.nodeName == 'DIV' && element.hasChildNodes()) + { + element = element.firstChild; + } + else if (element.nextSibling) + { + element = element.nextSibling; + } + else + { + do + { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) + { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) + { + var element = this.FindChildElement(id); + if (element) + { + if (element.style.display == 'block') + { + element.style.display = 'none'; + } + else + { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) + { + if (!search) // get search word from URL + { + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + var resultRows = document.getElementsByTagName("div"); + var matches = 0; + + var i = 0; + while (i < resultRows.length) + { + var row = resultRows.item(i); + if (row.className == "SRResult") + { + var rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) + { + row.style.display = 'block'; + matches++; + } + else + { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) // no results + { + document.getElementById("NoMatches").style.display='block'; + } + else // at least one result + { + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) + { + if (e.type == "keydown") + { + this.repeatOn = false; + this.lastKey = e.keyCode; + } + else if (e.type == "keypress") + { + if (!this.repeatOn) + { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } + else if (e.type == "keyup") + { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + var newIndex = itemIndex-1; + var focusItem = this.NavPrev(newIndex); + if (focusItem) + { + var child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') // children visible + { + var n=0; + var tmpElem; + while (1) // search for last child + { + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) + { + focusItem = tmpElem; + } + else // found it! + { + break; + } + n++; + } + } + } + if (focusItem) + { + focusItem.focus(); + } + else // return focus to search field + { + parent.document.getElementById("MSearchField").focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = itemIndex+1; + var focusItem; + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') // children visible + { + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } + else if (this.lastKey==39) // Right + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } + else if (this.lastKey==37) // Left + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + if (childIndex>0) + { + var newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } + else // already at first child, jump to parent + { + document.getElementById('Item'+itemIndex).focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = childIndex+1; + var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) // last child, jump to parent next parent + { + elem = this.NavNext(itemIndex+1); + } + if (elem) + { + elem.focus(); + } + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } +} + +function setKeyActions(elem,action) +{ + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); +} + +function setClassAttr(elem,attr) +{ + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); +} + +function createResults() +{ + var results = document.getElementById("SRResults"); + for (var e=0; ek7RCwB~R6VQOP#AvB$vH7i{6H{96zot$7cZT<7246EF5Np6N}+$IbiG6W zg#87A+NFaX+=_^xM1#gCtshC=E{%9^uQX_%?YwXvo{#q&MnpJ8uh(O?ZRc&~_1%^SsPxG@rfElJg-?U zm!Cz-IOn(qJP3kDp-^~qt+FGbl=5jNli^Wj_xIBG{Rc0en{!oFvyoNC7{V~T8}b>| z=jL2WIReZzX(YN(_9fV;BBD$VXQIxNasAL8ATvEu822WQ%mvv4FO#qs` BFGc_W literal 0 HcmV?d00001 diff --git a/visualtest/docs/html/search/search_r.png b/visualtest/docs/html/search/search_r.png new file mode 100755 index 0000000000000000000000000000000000000000..97ee8b439687084201b79c6f776a41f495c6392a GIT binary patch literal 612 zcmV-q0-ODbP)PbXFRCwB?)W514K@j&X?z2*SxFI6-@HT2E2K=9X9%Pb zEK*!TBw&g(DMC;|A)uGlRkOS9vd-?zNs%bR4d$w+ox_iFnE8fvIvv7^5<(>Te12Li z7C)9srCzmK{ZcNM{YIl9j{DePFgOWiS%xG@5CnnnJa4nvY<^glbz7^|-ZY!dUkAwd z{gaTC@_>b5h~;ug#R0wRL0>o5!hxm*s0VW?8dr}O#zXTRTnrQm_Z7z1Mrnx>&p zD4qifUjzLvbVVWi?l?rUzwt^sdb~d!f_LEhsRVIXZtQ=qSxuxqm zEX#tf>$?M_Y1-LSDT)HqG?`%-%ZpY!#{N!rcNIiL;G7F0`l?)mNGTD9;f9F5Up3Kg zw}a<-JylhG&;=!>B+fZaCX+?C+kHYrP%c?X2!Zu_olK|GcS4A70HEy;vn)I0>0kLH z`jc(WIaaHc7!HS@f*^R^Znx8W=_jIl2oWJoQ*h1^$FX!>*PqR1J8k|fw}w_y}TpE>7m8DqDO<3z`OzXt$ccSejbEZCg@0000 + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/typedefs_73.js b/visualtest/docs/html/search/typedefs_73.js new file mode 100755 index 0000000000000..383282f9d6d7e --- /dev/null +++ b/visualtest/docs/html/search/typedefs_73.js @@ -0,0 +1,18 @@ +var searchData= +[ + ['sdl_5fprocessexitstatus',['SDL_ProcessExitStatus',['../_s_d_l__visualtest__process_8h.html#a5b7d5262f85e78bf4d53d88f3c509342',1,'SDL_visualtest_process.h']]], + ['sdl_5fprocessinfo',['SDL_ProcessInfo',['../_s_d_l__visualtest__process_8h.html#a94bc9e0b0b563a527ea50ef2eecd5402',1,'SDL_visualtest_process.h']]], + ['sdlvisualtest_5faction',['SDLVisualTest_Action',['../_s_d_l__visualtest__action__configparser_8h.html#a89974e9149bfca6aabb3ff06cc9671d7',1,'SDL_visualtest_action_configparser.h']]], + ['sdlvisualtest_5factionnode',['SDLVisualTest_ActionNode',['../_s_d_l__visualtest__action__configparser_8h.html#a065d1acf0f98bde777d10bd8ab24d268',1,'SDL_visualtest_action_configparser.h']]], + ['sdlvisualtest_5factionqueue',['SDLVisualTest_ActionQueue',['../_s_d_l__visualtest__action__configparser_8h.html#ac9ce1bb69d8774d1818c9f9d0f97c7f1',1,'SDL_visualtest_action_configparser.h']]], + ['sdlvisualtest_5fexhaustivevariator',['SDLVisualTest_ExhaustiveVariator',['../_s_d_l__visualtest__exhaustive__variator_8h.html#ab64de6cf7d6a1e6d09d470c020940c25',1,'SDL_visualtest_exhaustive_variator.h']]], + ['sdlvisualtest_5fharnessstate',['SDLVisualTest_HarnessState',['../_s_d_l__visualtest__harness__argparser_8h.html#ab89725ad0ec988d4923faa6a85972455',1,'SDL_visualtest_harness_argparser.h']]], + ['sdlvisualtest_5frandomvariator',['SDLVisualTest_RandomVariator',['../_s_d_l__visualtest__random__variator_8h.html#ab0df6ee6ec21b5070bfd8e90a7d79974',1,'SDL_visualtest_random_variator.h']]], + ['sdlvisualtest_5fsutconfig',['SDLVisualTest_SUTConfig',['../_s_d_l__visualtest__sut__configparser_8h.html#a1b493a40d601932b62ee643390aec169',1,'SDL_visualtest_sut_configparser.h']]], + ['sdlvisualtest_5fsutintrange',['SDLVisualTest_SUTIntRange',['../_s_d_l__visualtest__sut__configparser_8h.html#a8cbe93330b2ce59cdf6da59e2eca6045',1,'SDL_visualtest_sut_configparser.h']]], + ['sdlvisualtest_5fsutoption',['SDLVisualTest_SUTOption',['../_s_d_l__visualtest__sut__configparser_8h.html#a9f35b5fe1ce4ba831a9b9e1f2bc8b7f6',1,'SDL_visualtest_sut_configparser.h']]], + ['sdlvisualtest_5fsutoptionvalue',['SDLVisualTest_SUTOptionValue',['../_s_d_l__visualtest__variator__common_8h.html#aa4e5fb752f4cd087101ea3e1f6124dfb',1,'SDL_visualtest_variator_common.h']]], + ['sdlvisualtest_5fvariation',['SDLVisualTest_Variation',['../_s_d_l__visualtest__variator__common_8h.html#a6b447c1467862ecd623cc8f37489faeb',1,'SDL_visualtest_variator_common.h']]], + ['sdlvisualtest_5fvariator',['SDLVisualTest_Variator',['../_s_d_l__visualtest__variators_8h.html#a520a2479efbe9c4a9d617735f7314e0a',1,'SDL_visualtest_variators.h']]], + ['sdlvisualtest_5fvariatortype',['SDLVisualTest_VariatorType',['../_s_d_l__visualtest__variator__common_8h.html#a4a7752dc89880ce3f62a478b3d0d8d64',1,'SDL_visualtest_variator_common.h']]] +]; diff --git a/visualtest/docs/html/search/variables_61.html b/visualtest/docs/html/search/variables_61.html new file mode 100755 index 0000000000000..cbd2c67aaf7ba --- /dev/null +++ b/visualtest/docs/html/search/variables_61.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/variables_61.js b/visualtest/docs/html/search/variables_61.js new file mode 100755 index 0000000000000..759aa184c1bc0 --- /dev/null +++ b/visualtest/docs/html/search/variables_61.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['action',['action',['../struct_s_d_l_visual_test___action_node.html#af46ec45094cc74a7432626a6234c6575',1,'SDLVisualTest_ActionNode']]], + ['action_5fqueue',['action_queue',['../struct_s_d_l_visual_test___harness_state.html#ae25567527563fbd7373fa1cf7cdede61',1,'SDLVisualTest_HarnessState']]] +]; diff --git a/visualtest/docs/html/search/variables_62.html b/visualtest/docs/html/search/variables_62.html new file mode 100755 index 0000000000000..9c2628f7fc91a --- /dev/null +++ b/visualtest/docs/html/search/variables_62.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/variables_62.js b/visualtest/docs/html/search/variables_62.js new file mode 100755 index 0000000000000..d614f7b3f15d4 --- /dev/null +++ b/visualtest/docs/html/search/variables_62.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['bool_5fvalue',['bool_value',['../union_s_d_l_visual_test___s_u_t_option_value.html#ace8ec6519c056e35443a6c401f3d0941',1,'SDLVisualTest_SUTOptionValue']]], + ['buffer',['buffer',['../struct_s_d_l_visual_test___exhaustive_variator.html#a2b599af5b00be0f525ffc18feb0775a8',1,'SDLVisualTest_ExhaustiveVariator::buffer()'],['../struct_s_d_l_visual_test___random_variator.html#a2b599af5b00be0f525ffc18feb0775a8',1,'SDLVisualTest_RandomVariator::buffer()'],['../struct_s_d_l_visual_test___r_w_helper_buffer.html#a5b528063c1aaa0e626f5d5e49de5baad',1,'SDLVisualTest_RWHelperBuffer::buffer()']]], + ['buffer_5fpos',['buffer_pos',['../struct_s_d_l_visual_test___r_w_helper_buffer.html#a8a37d41b7b076eced766d7418450477d',1,'SDLVisualTest_RWHelperBuffer']]], + ['buffer_5fwidth',['buffer_width',['../struct_s_d_l_visual_test___r_w_helper_buffer.html#adb2920cd89b7b8b8b014290e82746d8c',1,'SDLVisualTest_RWHelperBuffer']]] +]; diff --git a/visualtest/docs/html/search/variables_63.html b/visualtest/docs/html/search/variables_63.html new file mode 100755 index 0000000000000..ea9fcda5f8f48 --- /dev/null +++ b/visualtest/docs/html/search/variables_63.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/variables_63.js b/visualtest/docs/html/search/variables_63.js new file mode 100755 index 0000000000000..dcc5243ac9a23 --- /dev/null +++ b/visualtest/docs/html/search/variables_63.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['categories',['categories',['../struct_s_d_l_visual_test___s_u_t_option.html#a6744d43d3ad17d06068dba9ee7b78c83',1,'SDLVisualTest_SUTOption']]], + ['config',['config',['../struct_s_d_l_visual_test___exhaustive_variator.html#ab66b4220589b2e2b6e1fde7d6c20bd72',1,'SDLVisualTest_ExhaustiveVariator::config()'],['../struct_s_d_l_visual_test___random_variator.html#ab66b4220589b2e2b6e1fde7d6c20bd72',1,'SDLVisualTest_RandomVariator::config()']]] +]; diff --git a/visualtest/docs/html/search/variables_64.html b/visualtest/docs/html/search/variables_64.html new file mode 100755 index 0000000000000..87ccbcc8e940a --- /dev/null +++ b/visualtest/docs/html/search/variables_64.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/variables_64.js b/visualtest/docs/html/search/variables_64.js new file mode 100755 index 0000000000000..738e92dfb814d --- /dev/null +++ b/visualtest/docs/html/search/variables_64.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['data',['data',['../struct_s_d_l_visual_test___s_u_t_option.html#aa9545bd4acd476f61533d04d53cdffdc',1,'SDLVisualTest_SUTOption::data()'],['../struct_s_d_l_visual_test___variator.html#af99a8790e729d599c656a2070e672e9a',1,'SDLVisualTest_Variator::data()']]] +]; diff --git a/visualtest/docs/html/search/variables_65.html b/visualtest/docs/html/search/variables_65.html new file mode 100755 index 0000000000000..9b98f6656318c --- /dev/null +++ b/visualtest/docs/html/search/variables_65.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/variables_65.js b/visualtest/docs/html/search/variables_65.js new file mode 100755 index 0000000000000..f1c225b11f929 --- /dev/null +++ b/visualtest/docs/html/search/variables_65.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['enum_5fvalues',['enum_values',['../struct_s_d_l_visual_test___s_u_t_option.html#a596ff3567c4b736561dba1915a2cd38d',1,'SDLVisualTest_SUTOption']]], + ['enumerated',['enumerated',['../union_s_d_l_visual_test___s_u_t_option_value.html#ad40e26afd4b8532327b61897d5b009e3',1,'SDLVisualTest_SUTOptionValue']]], + ['exit_5fstatus',['exit_status',['../struct_s_d_l___process_exit_status.html#a9324a9ff7dc6697dd77f02998d5e77d7',1,'SDL_ProcessExitStatus']]], + ['exit_5fsuccess',['exit_success',['../struct_s_d_l___process_exit_status.html#a51df50c07437f2e816d6ce7ce99e1cac',1,'SDL_ProcessExitStatus']]], + ['extra',['extra',['../struct_s_d_l_visual_test___action.html#a4626514a67f261290b54fb3d85ca8ddd',1,'SDLVisualTest_Action']]] +]; diff --git a/visualtest/docs/html/search/variables_66.html b/visualtest/docs/html/search/variables_66.html new file mode 100755 index 0000000000000..67d53d8b64bcc --- /dev/null +++ b/visualtest/docs/html/search/variables_66.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/variables_66.js b/visualtest/docs/html/search/variables_66.js new file mode 100755 index 0000000000000..d89c380304687 --- /dev/null +++ b/visualtest/docs/html/search/variables_66.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['front',['front',['../struct_s_d_l_visual_test___action_queue.html#a8b810b2fd2b05698be642ee08836a452',1,'SDLVisualTest_ActionQueue']]] +]; diff --git a/visualtest/docs/html/search/variables_69.html b/visualtest/docs/html/search/variables_69.html new file mode 100755 index 0000000000000..941e60775bdd4 --- /dev/null +++ b/visualtest/docs/html/search/variables_69.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/variables_69.js b/visualtest/docs/html/search/variables_69.js new file mode 100755 index 0000000000000..d88f651d5a29f --- /dev/null +++ b/visualtest/docs/html/search/variables_69.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['integer',['integer',['../union_s_d_l_visual_test___s_u_t_option_value.html#a4291d9ad3cfb3fe1645ea2732e11d68a',1,'SDLVisualTest_SUTOptionValue']]] +]; diff --git a/visualtest/docs/html/search/variables_6d.html b/visualtest/docs/html/search/variables_6d.html new file mode 100755 index 0000000000000..ca885469b8026 --- /dev/null +++ b/visualtest/docs/html/search/variables_6d.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/variables_6d.js b/visualtest/docs/html/search/variables_6d.js new file mode 100755 index 0000000000000..0115904f4f3c7 --- /dev/null +++ b/visualtest/docs/html/search/variables_6d.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['max',['max',['../struct_s_d_l_visual_test___s_u_t_int_range.html#ae1e1dde676c120fa6d10f3bb2c14059e',1,'SDLVisualTest_SUTIntRange']]], + ['min',['min',['../struct_s_d_l_visual_test___s_u_t_int_range.html#a3e202b201e6255d975cd6d3aff1f5a4d',1,'SDLVisualTest_SUTIntRange']]] +]; diff --git a/visualtest/docs/html/search/variables_6e.html b/visualtest/docs/html/search/variables_6e.html new file mode 100755 index 0000000000000..e0813cf1a07c1 --- /dev/null +++ b/visualtest/docs/html/search/variables_6e.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/variables_6e.js b/visualtest/docs/html/search/variables_6e.js new file mode 100755 index 0000000000000..7f753057243ef --- /dev/null +++ b/visualtest/docs/html/search/variables_6e.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['name',['name',['../struct_s_d_l_visual_test___s_u_t_option.html#ad14ca616d8f7c9b61eff58baaead7f1f',1,'SDLVisualTest_SUTOption']]], + ['next',['next',['../struct_s_d_l_visual_test___action_node.html#ae6154b60b896ce1a184d060ee4664485',1,'SDLVisualTest_ActionNode']]], + ['no_5flaunch',['no_launch',['../struct_s_d_l_visual_test___harness_state.html#a091c0d08290b73216a736ff42ac8fa99',1,'SDLVisualTest_HarnessState']]], + ['num_5foptions',['num_options',['../struct_s_d_l_visual_test___s_u_t_config.html#a593108c2cc4b7dd3edecefd724edfd51',1,'SDLVisualTest_SUTConfig']]], + ['num_5fvariations',['num_variations',['../struct_s_d_l_visual_test___harness_state.html#a0bd4e04c0c6be7b94e68501bb31dd62c',1,'SDLVisualTest_HarnessState']]], + ['num_5fvars',['num_vars',['../struct_s_d_l_visual_test___variation.html#a2daded0b80f9ab7ed3703cc2686e5a92',1,'SDLVisualTest_Variation']]] +]; diff --git a/visualtest/docs/html/search/variables_6f.html b/visualtest/docs/html/search/variables_6f.html new file mode 100755 index 0000000000000..a67864b54f986 --- /dev/null +++ b/visualtest/docs/html/search/variables_6f.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/variables_6f.js b/visualtest/docs/html/search/variables_6f.js new file mode 100755 index 0000000000000..35f6f85420f39 --- /dev/null +++ b/visualtest/docs/html/search/variables_6f.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['options',['options',['../struct_s_d_l_visual_test___s_u_t_config.html#afda1bef370f3d5ea6919b7b6a73d01c0',1,'SDLVisualTest_SUTConfig']]], + ['output_5fdir',['output_dir',['../struct_s_d_l_visual_test___harness_state.html#aafa9a2fb15490380b6c2edd704f4fcf0',1,'SDLVisualTest_HarnessState']]] +]; diff --git a/visualtest/docs/html/search/variables_70.html b/visualtest/docs/html/search/variables_70.html new file mode 100755 index 0000000000000..091e4bf8d7bf5 --- /dev/null +++ b/visualtest/docs/html/search/variables_70.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/variables_70.js b/visualtest/docs/html/search/variables_70.js new file mode 100755 index 0000000000000..f8676423706f6 --- /dev/null +++ b/visualtest/docs/html/search/variables_70.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['process',['process',['../struct_s_d_l_visual_test___action.html#aa43e9883c9f24718f49b984b67b1afdc',1,'SDLVisualTest_Action']]] +]; diff --git a/visualtest/docs/html/search/variables_72.html b/visualtest/docs/html/search/variables_72.html new file mode 100755 index 0000000000000..0e513f2d8e5b4 --- /dev/null +++ b/visualtest/docs/html/search/variables_72.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/variables_72.js b/visualtest/docs/html/search/variables_72.js new file mode 100755 index 0000000000000..2be3738acb9fd --- /dev/null +++ b/visualtest/docs/html/search/variables_72.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['range',['range',['../struct_s_d_l_visual_test___s_u_t_option.html#a2bb1301268866e0e41d035ea0a4914e8',1,'SDLVisualTest_SUTOption']]], + ['rear',['rear',['../struct_s_d_l_visual_test___action_queue.html#a4aaf4563956932c81c65d05f9020f2ce',1,'SDLVisualTest_ActionQueue']]], + ['required',['required',['../struct_s_d_l_visual_test___s_u_t_option.html#a79305c1b10f7b4defee52e1eefde8fbc',1,'SDLVisualTest_SUTOption']]] +]; diff --git a/visualtest/docs/html/search/variables_73.html b/visualtest/docs/html/search/variables_73.html new file mode 100755 index 0000000000000..3c65150e41452 --- /dev/null +++ b/visualtest/docs/html/search/variables_73.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/variables_73.js b/visualtest/docs/html/search/variables_73.js new file mode 100755 index 0000000000000..4ed0016698107 --- /dev/null +++ b/visualtest/docs/html/search/variables_73.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['size',['size',['../struct_s_d_l_visual_test___action_queue.html#a439227feff9d7f55384e8780cfc2eb82',1,'SDLVisualTest_ActionQueue']]], + ['string',['string',['../union_s_d_l_visual_test___s_u_t_option_value.html#a2bf4b969ff9633c937e4d15118d1edc6',1,'SDLVisualTest_SUTOptionValue']]], + ['sut_5fconfig',['sut_config',['../struct_s_d_l_visual_test___harness_state.html#a42657080015a96da836e1640bbdf870e',1,'SDLVisualTest_HarnessState']]], + ['sutapp',['sutapp',['../struct_s_d_l_visual_test___harness_state.html#af277bbb5c712eb89e92337dd583a8b74',1,'SDLVisualTest_HarnessState']]], + ['sutargs',['sutargs',['../struct_s_d_l_visual_test___harness_state.html#a00fab9c7cf802b96b6b29e098292d24d',1,'SDLVisualTest_HarnessState']]] +]; diff --git a/visualtest/docs/html/search/variables_74.html b/visualtest/docs/html/search/variables_74.html new file mode 100755 index 0000000000000..3a0726b441116 --- /dev/null +++ b/visualtest/docs/html/search/variables_74.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/variables_74.js b/visualtest/docs/html/search/variables_74.js new file mode 100755 index 0000000000000..75a24382f0726 --- /dev/null +++ b/visualtest/docs/html/search/variables_74.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['time',['time',['../struct_s_d_l_visual_test___action.html#a42715f65f02da52edc5b22021d8ae670',1,'SDLVisualTest_Action']]], + ['timeout',['timeout',['../struct_s_d_l_visual_test___harness_state.html#a493b57f443cc38b3d3df9c1e584d9d82',1,'SDLVisualTest_HarnessState']]], + ['type',['type',['../struct_s_d_l_visual_test___action.html#a3ab091b672fc470015f09e6c4c50dcf1',1,'SDLVisualTest_Action::type()'],['../struct_s_d_l_visual_test___s_u_t_option.html#a857b9e5ccfca26034b47a5f3236d822c',1,'SDLVisualTest_SUTOption::type()'],['../struct_s_d_l_visual_test___variator.html#a24d4399dc1877c1843e120e7b027ae64',1,'SDLVisualTest_Variator::type()']]] +]; diff --git a/visualtest/docs/html/search/variables_76.html b/visualtest/docs/html/search/variables_76.html new file mode 100755 index 0000000000000..cccf85023c5fe --- /dev/null +++ b/visualtest/docs/html/search/variables_76.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/visualtest/docs/html/search/variables_76.js b/visualtest/docs/html/search/variables_76.js new file mode 100755 index 0000000000000..fc860d9f819de --- /dev/null +++ b/visualtest/docs/html/search/variables_76.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['variation',['variation',['../struct_s_d_l_visual_test___exhaustive_variator.html#a11c2995cf19b41c4a1b1f8d9b4081ff7',1,'SDLVisualTest_ExhaustiveVariator::variation()'],['../struct_s_d_l_visual_test___random_variator.html#a11c2995cf19b41c4a1b1f8d9b4081ff7',1,'SDLVisualTest_RandomVariator::variation()']]], + ['variator_5ftype',['variator_type',['../struct_s_d_l_visual_test___harness_state.html#aaaa989ae89caee6d39c722cfe6907466',1,'SDLVisualTest_HarnessState']]], + ['vars',['vars',['../struct_s_d_l_visual_test___variation.html#a1eab2e90f0195b4f4632eb19523aeadf',1,'SDLVisualTest_Variation']]], + ['verify_5fdir',['verify_dir',['../struct_s_d_l_visual_test___harness_state.html#adc871112f24f61e2fff74a7a7fb9794f',1,'SDLVisualTest_HarnessState']]] +]; diff --git a/visualtest/docs/html/struct_s_d_l___process_exit_status.html b/visualtest/docs/html/struct_s_d_l___process_exit_status.html new file mode 100755 index 0000000000000..eb72824f60b07 --- /dev/null +++ b/visualtest/docs/html/struct_s_d_l___process_exit_status.html @@ -0,0 +1,139 @@ + + + + + + +SDL Visual Test: SDL_ProcessExitStatus Struct Reference + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + + +
+ +
+ +
+
+ +
+
SDL_ProcessExitStatus Struct Reference
+
+
+ +

#include <SDL_visualtest_process.h>

+ + + + + + +

+Data Fields

int exit_success
 
int exit_status
 
+

Detailed Description

+

This structure stores the exit status (value returned by main()) and whether the process exited sucessfully or not.

+

Field Documentation

+ +
+
+ + + + +
int exit_status
+
+

The exit status of the process. 8-bit value.

+ +
+
+ +
+
+ + + + +
int exit_success
+
+

Zero if the process exited successfully

+ +
+
+
The documentation for this struct was generated from the following file: +
+ + + + diff --git a/visualtest/docs/html/struct_s_d_l___process_info.html b/visualtest/docs/html/struct_s_d_l___process_info.html new file mode 100755 index 0000000000000..2287670c2192a --- /dev/null +++ b/visualtest/docs/html/struct_s_d_l___process_info.html @@ -0,0 +1,102 @@ + + + + + + +SDL Visual Test: SDL_ProcessInfo Struct Reference + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + + +
+ +
+ +
+
+
+
SDL_ProcessInfo Struct Reference
+
+
+ +

#include <SDL_visualtest_process.h>

+

Detailed Description

+

Struct to store a platform specific handle to a process.

+

The documentation for this struct was generated from the following file: +
+ + + + diff --git a/visualtest/docs/html/struct_s_d_l_visual_test___action.html b/visualtest/docs/html/struct_s_d_l_visual_test___action.html new file mode 100755 index 0000000000000..8e136641e5d0e --- /dev/null +++ b/visualtest/docs/html/struct_s_d_l_visual_test___action.html @@ -0,0 +1,175 @@ + + + + + + +SDL Visual Test: SDLVisualTest_Action Struct Reference + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + + +
+ +
+ +
+
+ +
+
SDLVisualTest_Action Struct Reference
+
+
+ +

#include <SDL_visualtest_action_configparser.h>

+ + + + + + + + + + + + + + + + +

+Data Fields

SDLVisualTest_ActionType type
 
int time
 
union {
   struct {
      char *   path
 
      char *   args
 
   }   process
 
extra
 
+

Detailed Description

+

Struct that defines an action that will be performed on the SUT process at a specific time.

+

Field Documentation

+ +
+
+ + + + +
union { ... } extra
+
+

Any additional information needed to perform the action.

+ +
+
+ +
+
+ + + + +
struct { ... } process
+
+

The path and arguments to the process to be launched

+ +
+
+ +
+
+ + + + +
int time
+
+

The time, in milliseconds from the launch of the SUT, when the action will be performed

+ +
+
+ +
+
+ + + + +
SDLVisualTest_ActionType type
+
+

The type of action to be performed

+ +
+
+
The documentation for this struct was generated from the following file: +
+ + + + diff --git a/visualtest/docs/html/struct_s_d_l_visual_test___action_node.html b/visualtest/docs/html/struct_s_d_l_visual_test___action_node.html new file mode 100755 index 0000000000000..28e75e48783e4 --- /dev/null +++ b/visualtest/docs/html/struct_s_d_l_visual_test___action_node.html @@ -0,0 +1,139 @@ + + + + + + +SDL Visual Test: SDLVisualTest_ActionNode Struct Reference + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + + +
+ +
+ +
+
+ +
+
SDLVisualTest_ActionNode Struct Reference
+
+
+ +

#include <SDL_visualtest_action_configparser.h>

+ + + + + + +

+Data Fields

SDLVisualTest_Action action
 
struct SDLVisualTest_ActionNodenext
 
+

Detailed Description

+

Struct for a node in the action queue.

+

Field Documentation

+ +
+
+ + + + +
SDLVisualTest_Action action
+
+

The action in this node

+ +
+
+ +
+
+ + + + +
struct SDLVisualTest_ActionNode* next
+
+

Pointer to the next element in the queue

+ +
+
+
The documentation for this struct was generated from the following file: +
+ + + + diff --git a/visualtest/docs/html/struct_s_d_l_visual_test___action_queue.html b/visualtest/docs/html/struct_s_d_l_visual_test___action_queue.html new file mode 100755 index 0000000000000..8292dcd9e026a --- /dev/null +++ b/visualtest/docs/html/struct_s_d_l_visual_test___action_queue.html @@ -0,0 +1,154 @@ + + + + + + +SDL Visual Test: SDLVisualTest_ActionQueue Struct Reference + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + + +
+ +
+ +
+
+ +
+
SDLVisualTest_ActionQueue Struct Reference
+
+
+ +

#include <SDL_visualtest_action_configparser.h>

+ + + + + + + + +

+Data Fields

SDLVisualTest_ActionNodefront
 
SDLVisualTest_ActionNoderear
 
int size
 
+

Detailed Description

+

Queue structure for actions loaded from the actions config file.

+

Field Documentation

+ +
+
+ + + + +
SDLVisualTest_ActionNode* front
+
+

Pointer to the front of the queue

+ +
+
+ +
+
+ + + + +
SDLVisualTest_ActionNode* rear
+
+

Pointer to the rear of the queue

+ +
+
+ +
+
+ + + + +
int size
+
+

Number of nodes in the queue

+ +
+
+
The documentation for this struct was generated from the following file: +
+ + + + diff --git a/visualtest/docs/html/struct_s_d_l_visual_test___exhaustive_variator.html b/visualtest/docs/html/struct_s_d_l_visual_test___exhaustive_variator.html new file mode 100755 index 0000000000000..12b472c3a985a --- /dev/null +++ b/visualtest/docs/html/struct_s_d_l_visual_test___exhaustive_variator.html @@ -0,0 +1,154 @@ + + + + + + +SDL Visual Test: SDLVisualTest_ExhaustiveVariator Struct Reference + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + + +
+ +
+ +
+
+ +
+
SDLVisualTest_ExhaustiveVariator Struct Reference
+
+
+ +

#include <SDL_visualtest_exhaustive_variator.h>

+ + + + + + + + +

+Data Fields

SDLVisualTest_Variation variation
 
SDLVisualTest_SUTConfig config
 
char buffer [MAX_SUT_ARGS_LEN]
 
+

Detailed Description

+

Struct for the variator that exhaustively iterates through all variations of command line arguments to the SUT.

+

Field Documentation

+ +
+
+ + + + +
char buffer[MAX_SUT_ARGS_LEN]
+
+

Buffer to store the arguments string built from the variation

+ +
+
+ +
+
+ + + + +
SDLVisualTest_SUTConfig config
+
+

Configuration object for the SUT that the variator is running for.

+ +
+
+ +
+
+ + + + +
SDLVisualTest_Variation variation
+
+

The current variation.

+ +
+
+
The documentation for this struct was generated from the following file: +
+ + + + diff --git a/visualtest/docs/html/struct_s_d_l_visual_test___harness_state.html b/visualtest/docs/html/struct_s_d_l_visual_test___harness_state.html new file mode 100755 index 0000000000000..a8db4701cb0b4 --- /dev/null +++ b/visualtest/docs/html/struct_s_d_l_visual_test___harness_state.html @@ -0,0 +1,259 @@ + + + + + + +SDL Visual Test: SDLVisualTest_HarnessState Struct Reference + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + + +
+ +
+ +
+
+ +
+
SDLVisualTest_HarnessState Struct Reference
+
+
+ +

#include <SDL_visualtest_harness_argparser.h>

+ + + + + + + + + + + + + + + + + + + + + + +

+Data Fields

char sutapp [MAX_PATH_LEN]
 
char sutargs [MAX_SUT_ARGS_LEN]
 
int timeout
 
SDLVisualTest_SUTConfig sut_config
 
SDLVisualTest_VariatorType variator_type
 
int num_variations
 
SDL_bool no_launch
 
SDLVisualTest_ActionQueue action_queue
 
char output_dir [MAX_PATH_LEN]
 
char verify_dir [MAX_PATH_LEN]
 
+

Detailed Description

+

Stores the state of the test harness.

+

Field Documentation

+ +
+
+ + + + +
SDLVisualTest_ActionQueue action_queue
+
+

A queue with actions to be performed while the SUT is running

+ +
+
+ +
+
+ + + + +
SDL_bool no_launch
+
+

If true, the test harness will just print the different variations without launching the SUT for each one

+ +
+
+ +
+
+ + + + +
int num_variations
+
+

The number of variations to generate

+ +
+
+ +
+
+ + + + +
char output_dir[MAX_PATH_LEN]
+
+

Output directory to save the screenshots

+ +
+
+ +
+
+ + + + +
SDLVisualTest_SUTConfig sut_config
+
+

Configuration object for the SUT

+ +
+
+ +
+
+ + + + +
char sutapp[MAX_PATH_LEN]
+
+

Path to the System Under Test (SUT) executable

+ +
+
+ +
+
+ + + + +
char sutargs[MAX_SUT_ARGS_LEN]
+
+

Command line arguments to be passed to the SUT

+ +
+
+ +
+
+ + + + +
int timeout
+
+

Time in milliseconds after which to kill the SUT

+ +
+
+ +
+
+ + + + +
SDLVisualTest_VariatorType variator_type
+
+

What type of variator to use to generate argument strings

+ +
+
+ +
+
+ + + + +
char verify_dir[MAX_PATH_LEN]
+
+

Path to directory with the verification images

+ +
+
+
The documentation for this struct was generated from the following file: +
+ + + + diff --git a/visualtest/docs/html/struct_s_d_l_visual_test___r_w_helper_buffer.html b/visualtest/docs/html/struct_s_d_l_visual_test___r_w_helper_buffer.html new file mode 100755 index 0000000000000..35a7139086fa2 --- /dev/null +++ b/visualtest/docs/html/struct_s_d_l_visual_test___r_w_helper_buffer.html @@ -0,0 +1,154 @@ + + + + + + +SDL Visual Test: SDLVisualTest_RWHelperBuffer Struct Reference + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + + +
+ +
+ +
+
+ +
+
SDLVisualTest_RWHelperBuffer Struct Reference
+
+
+ +

#include <SDL_visualtest_rwhelper.h>

+ + + + + + + + +

+Data Fields

char buffer [RWOPS_BUFFER_LEN]
 
int buffer_pos
 
int buffer_width
 
+

Detailed Description

+

Struct that is used as a buffer by the RW helper functions. Should be initialized by calling SDLVisualTest_RWHelperResetBuffer() before being used.

+

Field Documentation

+ +
+
+ + + + +
char buffer[RWOPS_BUFFER_LEN]
+
+

Character buffer that data is read into

+ +
+
+ +
+
+ + + + +
int buffer_pos
+
+

buffer[buffer_pos] is the next character to be read from the buffer

+ +
+
+ +
+
+ + + + +
int buffer_width
+
+

Number of character read into the buffer

+ +
+
+
The documentation for this struct was generated from the following file: +
+ + + + diff --git a/visualtest/docs/html/struct_s_d_l_visual_test___random_variator.html b/visualtest/docs/html/struct_s_d_l_visual_test___random_variator.html new file mode 100755 index 0000000000000..13a96fdb42f7a --- /dev/null +++ b/visualtest/docs/html/struct_s_d_l_visual_test___random_variator.html @@ -0,0 +1,154 @@ + + + + + + +SDL Visual Test: SDLVisualTest_RandomVariator Struct Reference + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + + +
+ +
+ +
+
+ +
+
SDLVisualTest_RandomVariator Struct Reference
+
+
+ +

#include <SDL_visualtest_random_variator.h>

+ + + + + + + + +

+Data Fields

SDLVisualTest_Variation variation
 
SDLVisualTest_SUTConfig config
 
char buffer [MAX_SUT_ARGS_LEN]
 
+

Detailed Description

+

Struct for the variator that randomly generates variations of command line arguments to the SUT.

+

Field Documentation

+ +
+
+ + + + +
char buffer[MAX_SUT_ARGS_LEN]
+
+

Buffer to store the arguments string built from the variation

+ +
+
+ +
+
+ + + + +
SDLVisualTest_SUTConfig config
+
+

Configuration object for the SUT that the variator is running for.

+ +
+
+ +
+
+ + + + +
SDLVisualTest_Variation variation
+
+

The current variation.

+ +
+
+
The documentation for this struct was generated from the following file: +
+ + + + diff --git a/visualtest/docs/html/struct_s_d_l_visual_test___s_u_t_config.html b/visualtest/docs/html/struct_s_d_l_visual_test___s_u_t_config.html new file mode 100755 index 0000000000000..0d4b6d09a1af2 --- /dev/null +++ b/visualtest/docs/html/struct_s_d_l_visual_test___s_u_t_config.html @@ -0,0 +1,139 @@ + + + + + + +SDL Visual Test: SDLVisualTest_SUTConfig Struct Reference + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + + +
+ +
+ +
+
+ +
+
SDLVisualTest_SUTConfig Struct Reference
+
+
+ +

#include <SDL_visualtest_sut_configparser.h>

+ + + + + + +

+Data Fields

SDLVisualTest_SUTOptionoptions
 
int num_options
 
+

Detailed Description

+

Struct to hold all the options to an SUT application.

+

Field Documentation

+ +
+
+ + + + +
int num_options
+
+

Number of options in options

+ +
+
+ +
+
+ + + + +
SDLVisualTest_SUTOption* options
+
+

Pointer to an array of options

+ +
+
+
The documentation for this struct was generated from the following file: +
+ + + + diff --git a/visualtest/docs/html/struct_s_d_l_visual_test___s_u_t_int_range.html b/visualtest/docs/html/struct_s_d_l_visual_test___s_u_t_int_range.html new file mode 100755 index 0000000000000..8d96bd0edab15 --- /dev/null +++ b/visualtest/docs/html/struct_s_d_l_visual_test___s_u_t_int_range.html @@ -0,0 +1,139 @@ + + + + + + +SDL Visual Test: SDLVisualTest_SUTIntRange Struct Reference + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + + +
+ +
+ +
+
+ +
+
SDLVisualTest_SUTIntRange Struct Reference
+
+
+ +

#include <SDL_visualtest_sut_configparser.h>

+ + + + + + +

+Data Fields

int min
 
int max
 
+

Detailed Description

+

Represents the range of values an integer option can take.

+

Field Documentation

+ +
+
+ + + + +
int max
+
+

Maximum value of the integer option

+ +
+
+ +
+
+ + + + +
int min
+
+

Minimum value of the integer option

+ +
+
+
The documentation for this struct was generated from the following file: +
+ + + + diff --git a/visualtest/docs/html/struct_s_d_l_visual_test___s_u_t_option.html b/visualtest/docs/html/struct_s_d_l_visual_test___s_u_t_option.html new file mode 100755 index 0000000000000..db0e19ed84d6f --- /dev/null +++ b/visualtest/docs/html/struct_s_d_l_visual_test___s_u_t_option.html @@ -0,0 +1,217 @@ + + + + + + +SDL Visual Test: SDLVisualTest_SUTOption Struct Reference + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + + +
+ +
+ +
+
+ +
+
SDLVisualTest_SUTOption Struct Reference
+
+
+ +

#include <SDL_visualtest_sut_configparser.h>

+ + + + + + + + + + + + + + + + + +

+Data Fields

char name [MAX_SUTOPTION_NAME_LEN]
 
char ** categories
 
SDLVisualTest_SUTOptionType type
 
SDL_bool required
 
union {
   SDLVisualTest_SUTIntRange   range
 
   char **   enum_values
 
data
 
+

Detailed Description

+

Struct that defines an option to be passed to the SUT.

+

Field Documentation

+ +
+
+ + + + +
char** categories
+
+

An array of categories that the option belongs to. The last element is NULL.

+ +
+
+ +
+
+ + + + +
union { ... } data
+
+

extra data that is required for certain types

+ +
+
+ +
+
+ + + + +
char** enum_values
+
+
This field is valid only for enum type options; it holds the list of values
+

that the option can take. The last element is NULL

+ +
+
+ +
+
+ + + + +
char name[MAX_SUTOPTION_NAME_LEN]
+
+

The name of the option. This is what you would pass in the command line along with two leading hyphens.

+ +
+
+ +
+
+ + + + +
SDLVisualTest_SUTIntRange range
+
+
This field is valid only for integer type options; it defines the
+

valid range for such an option

+ +
+
+ +
+
+ + + + +
SDL_bool required
+
+

Whether the option is required or not

+ +
+
+ +
+
+ + + + +
SDLVisualTest_SUTOptionType type
+
+

Type of the option - integer, boolean, etc.

+ +
+
+
The documentation for this struct was generated from the following file: +
+ + + + diff --git a/visualtest/docs/html/struct_s_d_l_visual_test___variation.html b/visualtest/docs/html/struct_s_d_l_visual_test___variation.html new file mode 100755 index 0000000000000..c48f02214f754 --- /dev/null +++ b/visualtest/docs/html/struct_s_d_l_visual_test___variation.html @@ -0,0 +1,139 @@ + + + + + + +SDL Visual Test: SDLVisualTest_Variation Struct Reference + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + + +
+ +
+ +
+
+ +
+
SDLVisualTest_Variation Struct Reference
+
+
+ +

#include <SDL_visualtest_variator_common.h>

+ + + + + + +

+Data Fields

SDLVisualTest_SUTOptionValuevars
 
int num_vars
 
+

Detailed Description

+

Represents a valid combination of parameters that can be passed to the SUT. The ordering of the values here is the same as the ordering of the options in the SDLVisualTest_SUTConfig object for this variation.

+

Field Documentation

+ +
+
+ + + + +
int num_vars
+
+

Number of option values in vars

+ +
+
+ +
+
+ + + + +
SDLVisualTest_SUTOptionValue* vars
+
+

Pointer to array of option values

+ +
+
+
The documentation for this struct was generated from the following file: +
+ + + + diff --git a/visualtest/docs/html/struct_s_d_l_visual_test___variator.html b/visualtest/docs/html/struct_s_d_l_visual_test___variator.html new file mode 100755 index 0000000000000..4ba116986495c --- /dev/null +++ b/visualtest/docs/html/struct_s_d_l_visual_test___variator.html @@ -0,0 +1,144 @@ + + + + + + +SDL Visual Test: SDLVisualTest_Variator Struct Reference + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + + +
+ +
+ +
+
+ +
+
SDLVisualTest_Variator Struct Reference
+
+
+ +

#include <SDL_visualtest_variators.h>

+ + + + + + + + + + + +

+Data Fields

SDLVisualTest_VariatorType type
 
union {
   SDLVisualTest_ExhaustiveVariator   exhaustive
 
   SDLVisualTest_RandomVariator   random
 
data
 
+

Detailed Description

+

Struct that acts like a wrapper around the different types of variators available.

+

Field Documentation

+ +
+
+ + + + +
union { ... } data
+
+

union object that stores the variator

+ +
+
+ +
+
+ + + + +
SDLVisualTest_VariatorType type
+
+

Type of the variator

+ +
+
+
The documentation for this struct was generated from the following file: +
+ + + + diff --git a/visualtest/docs/html/sut__configparser_8c.html b/visualtest/docs/html/sut__configparser_8c.html new file mode 100755 index 0000000000000..341ab14276f20 --- /dev/null +++ b/visualtest/docs/html/sut__configparser_8c.html @@ -0,0 +1,170 @@ + + + + + + +SDL Visual Test: C:/Users/DELL/Work/sdlvisualtest/visualtest/src/sut_configparser.c File Reference + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
sut_configparser.c File Reference
+
+
+
#include <limits.h>
+#include <string.h>
+#include <SDL_test.h>
+#include <SDL_rwops.h>
+#include "SDL_visualtest_sut_configparser.h"
+#include "SDL_visualtest_parsehelper.h"
+#include "SDL_visualtest_rwhelper.h"
+
+ + + + + +

+Functions

int SDLVisualTest_ParseSUTConfig (char *file, SDLVisualTest_SUTConfig *config)
 
void SDLVisualTest_FreeSUTConfig (SDLVisualTest_SUTConfig *config)
 
+

Detailed Description

+

Source file for the parser for SUT config files.

+

Function Documentation

+ +
+
+ + + + + + + + +
void SDLVisualTest_FreeSUTConfig (SDLVisualTest_SUTConfigconfig)
+
+

Free any resources associated with the config object pointed to by config.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
int SDLVisualTest_ParseSUTConfig (char * file,
SDLVisualTest_SUTConfigconfig 
)
+
+

Parses a configuration file that describes the command line options an SUT application will take and populates a SUT config object. All lines in the config file must be smaller than

+
Parameters
+ + + +
filePath to the configuration file.
configPointer to an object that represents an SUT configuration.
+
+
+
Returns
zero on failure, non-zero on success
+ +
+
+
+ + + + diff --git a/visualtest/docs/html/sync_off.png b/visualtest/docs/html/sync_off.png new file mode 100755 index 0000000000000000000000000000000000000000..3b443fc62892114406e3d399421b2a881b897acc GIT binary patch literal 853 zcmV-b1FHOqP)oT|#XixUYy%lpuf3i8{fX!o zUyDD0jOrAiT^tq>fLSOOABs-#u{dV^F$b{L9&!2=9&RmV;;8s^x&UqB$PCj4FdKbh zoB1WTskPUPu05XzFbA}=KZ-GP1fPpAfSs>6AHb12UlR%-i&uOlTpFNS7{jm@mkU1V zh`nrXr~+^lsV-s1dkZOaI|kYyVj3WBpPCY{n~yd%u%e+d=f%`N0FItMPtdgBb@py; zq@v6NVArhyTC7)ULw-Jy8y42S1~4n(3LkrW8mW(F-4oXUP3E`e#g**YyqI7h-J2zK zK{m9##m4ri!7N>CqQqCcnI3hqo1I;Yh&QLNY4T`*ptiQGozK>FF$!$+84Z`xwmeMh zJ0WT+OH$WYFALEaGj2_l+#DC3t7_S`vHpSivNeFbP6+r50cO8iu)`7i%Z4BTPh@_m3Tk!nAm^)5Bqnr%Ov|Baunj#&RPtRuK& z4RGz|D5HNrW83-#ydk}tVKJrNmyYt-sTxLGlJY5nc&Re zU4SgHNPx8~Yxwr$bsju?4q&%T1874xxzq+_%?h8_ofw~(bld=o3iC)LUNR*BY%c0y zWd_jX{Y8`l%z+ol1$@Qa?Cy!(0CVIEeYpKZ`(9{z>3$CIe;pJDQk$m3p}$>xBm4lb zKo{4S)`wdU9Ba9jJbVJ0C=SOefZe%d$8=2r={nu<_^a3~>c#t_U6dye5)JrR(_a^E f@}b6j1K9lwFJq@>o)+Ry00000NkvXXu0mjfWa5j* literal 0 HcmV?d00001 diff --git a/visualtest/docs/html/sync_on.png b/visualtest/docs/html/sync_on.png new file mode 100755 index 0000000000000000000000000000000000000000..e08320fb64e6fa33b573005ed6d8fe294e19db76 GIT binary patch literal 845 zcmV-T1G4;yP)Y;xxyHF2B5Wzm| zOOGupOTn@c(JmBOl)e;XMNnZuiTJP>rM8<|Q`7I_))aP?*T)ow&n59{}X4$3Goat zgjs?*aasfbrokzG5cT4K=uG`E14xZl@z)F={P0Y^?$4t z>v!teRnNZym<6h{7sLyF1V0HsfEl+l6TrZpsfr1}luH~F7L}ktXu|*uVX^RG$L0`K zWs3j|0tIvVe(N%_?2{(iCPFGf#B6Hjy6o&}D$A%W%jfO8_W%ZO#-mh}EM$LMn7joJ z05dHr!5Y92g+31l<%i1(=L1a1pXX+OYnalY>31V4K}BjyRe3)9n#;-cCVRD_IG1fT zOKGeNY8q;TL@K{dj@D^scf&VCs*-Jb>8b>|`b*osv52-!A?BpbYtTQBns5EAU**$m zSnVSm(teh>tQi*S*A>#ySc=n;`BHz`DuG4&g4Kf8lLhca+zvZ7t7RflD6-i-mcK=M z!=^P$*u2)bkY5asG4gsss!Hn%u~>}kIW`vMs%lJLH+u*9<4PaV_c6U`KqWXQH%+Nu zTv41O(^ZVi@qhjQdG!fbZw&y+2o!iYymO^?ud3{P*HdoX83YV*Uu_HB=?U&W9%AU# z80}k1SS-CXTU7dcQlsm<^oYLxVSseqY6NO}dc`Nj?8vrhNuCdm@^{a3AQ_>6myOj+ z`1RsLUXF|dm|3k7s2jD(B{rzE>WI2scH8i1;=O5Cc9xB3^aJk%fQjqsu+kH#0=_5a z0nCE8@dbQa-|YIuUVvG0L_IwHMEhOj$Mj4Uq05 X8=0q~qBNan00000NkvXXu0mjfptF>5 literal 0 HcmV?d00001 diff --git a/visualtest/docs/html/tab_a.png b/visualtest/docs/html/tab_a.png new file mode 100755 index 0000000000000000000000000000000000000000..3b725c41c5a527a3a3e40097077d0e206a681247 GIT binary patch literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QlXwMjv*C{Z|8b*H5dputLHD# z=<0|*y7z(Vor?d;H&?EG&cXR}?!j-Lm&u1OOI7AIF5&c)RFE;&p0MYK>*Kl@eiymD r@|NpwKX@^z+;{u_Z~trSBfrMKa%3`zocFjEXaR$#tDnm{r-UW|TZ1%4 literal 0 HcmV?d00001 diff --git a/visualtest/docs/html/tab_b.png b/visualtest/docs/html/tab_b.png new file mode 100755 index 0000000000000000000000000000000000000000..e2b4a8638cb3496a016eaed9e16ffc12846dea18 GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QU#tajv*C{Z}0l@H7kg?K0Lnr z!j&C6_(~HV9oQ0Pa6x{-v0AGV_E?vLn=ZI-;YrdjIl`U`uzuDWSP?o#Dmo{%SgM#oan kX~E1%D-|#H#QbHoIja2U-MgvsK&LQxy85}Sb4q9e0Efg%P5=M^ literal 0 HcmV?d00001 diff --git a/visualtest/docs/html/tabs.css b/visualtest/docs/html/tabs.css new file mode 100755 index 0000000000000..9cf578f23a154 --- /dev/null +++ b/visualtest/docs/html/tabs.css @@ -0,0 +1,60 @@ +.tabs, .tabs2, .tabs3 { + background-image: url('tab_b.png'); + width: 100%; + z-index: 101; + font-size: 13px; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +} + +.tabs2 { + font-size: 10px; +} +.tabs3 { + font-size: 9px; +} + +.tablist { + margin: 0; + padding: 0; + display: table; +} + +.tablist li { + float: left; + display: table-cell; + background-image: url('tab_b.png'); + line-height: 36px; + list-style: none; +} + +.tablist a { + display: block; + padding: 0 20px; + font-weight: bold; + background-image:url('tab_s.png'); + background-repeat:no-repeat; + background-position:right; + color: #283A5D; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; + outline: none; +} + +.tabs3 .tablist a { + padding: 0 10px; +} + +.tablist a:hover { + background-image: url('tab_h.png'); + background-repeat:repeat-x; + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); + text-decoration: none; +} + +.tablist li.current a { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} diff --git a/visualtest/docs/html/testharness_8c.html b/visualtest/docs/html/testharness_8c.html new file mode 100755 index 0000000000000..ccef4845e4aaf --- /dev/null +++ b/visualtest/docs/html/testharness_8c.html @@ -0,0 +1,240 @@ + + + + + + +SDL Visual Test: C:/Users/DELL/Work/sdlvisualtest/visualtest/src/testharness.c File Reference + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
testharness.c File Reference
+
+
+
#include <stdlib.h>
+#include <SDL_test.h>
+#include <SDL.h>
+#include <SDL_assert.h>
+#include "SDL_visualtest_harness_argparser.h"
+#include "SDL_visualtest_process.h"
+#include "SDL_visualtest_variators.h"
+#include "SDL_visualtest_screenshot.h"
+#include "SDL_visualtest_mischelper.h"
+
+ + + + + + + + + + + + + +

+Macros

#define ACTION_TIMER_EVENT   0
 
#define KILL_TIMER_EVENT   1
 
#define ACTION_LOOP_FPS   10
 
#define TEST_PASSED   1
 
#define TEST_FAILED   0
 
#define TEST_ERROR   -1
 
+ + + +

+Functions

int main (int argc, char *argv[])
 
+

Detailed Description

+

Source file for the test harness.

+

Macro Definition Documentation

+ +
+
+ + + + +
#define ACTION_LOOP_FPS   10
+
+

FPS value used for delays in the action loop

+ +
+
+ +
+
+ + + + +
#define ACTION_TIMER_EVENT   0
+
+

Code for the user event triggered when a new action is to be executed

+ +
+
+ +
+
+ + + + +
#define KILL_TIMER_EVENT   1
+
+

Code for the user event triggered when the maximum timeout is reached

+ +
+
+ +
+
+ + + + +
#define TEST_ERROR   -1
+
+

Value returned by RunSUTAndTest() on a fatal error

+ +
+
+ +
+
+ + + + +
#define TEST_FAILED   0
+
+

Value returned by RunSUTAndTest() when the test has failed

+ +
+
+ +
+
+ + + + +
#define TEST_PASSED   1
+
+

Value returned by RunSUTAndTest() when the test has passed

+ +
+
+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
int main (int argc,
char * argv[] 
)
+
+

Entry point for testharness

+ +
+
+
+ + + + diff --git a/visualtest/docs/html/union_s_d_l_visual_test___s_u_t_option_value.html b/visualtest/docs/html/union_s_d_l_visual_test___s_u_t_option_value.html new file mode 100755 index 0000000000000..2cab3efc27a1b --- /dev/null +++ b/visualtest/docs/html/union_s_d_l_visual_test___s_u_t_option_value.html @@ -0,0 +1,184 @@ + + + + + + +SDL Visual Test: SDLVisualTest_SUTOptionValue Union Reference + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + + +
+ +
+ +
+
+ +
+
SDLVisualTest_SUTOptionValue Union Reference
+
+
+ +

#include <SDL_visualtest_variator_common.h>

+ + + + + + + + + + + + + + + + + + + + + + + + + +

+Data Fields

SDL_bool bool_value
 
struct {
   int   value
 
   SDL_bool   on
 
integer
 
struct {
   int   index
 
   SDL_bool   on
 
enumerated
 
struct {
   char *   value
 
   SDL_bool   on
 
string
 
+

Detailed Description

+

One possible value for a command line option to the SUT.

+

Field Documentation

+ +
+
+ + + + +
SDL_bool bool_value
+
+

Value if the option is of type boolean

+ +
+
+ +
+
+ + + + +
struct { ... } enumerated
+
+

Index of the string in the enum_values field of the corresponding SDLVisualTest_SUTOption object. If on is true the option will passed to the SUT, otherwise it will be ignored.

+ +
+
+ +
+
+ + + + +
struct { ... } integer
+
+

Value if the option is of type integer. If on is true then the option will be passed to the SUT, otherwise it will be ignored.

+ +
+
+ +
+
+ + + + +
struct { ... } string
+
+

Value if the option is of type string. If on is true the option will be passed to the SUT, otherwise it will be ignored.

+ +
+
+
The documentation for this union was generated from the following file: +
+ + + + diff --git a/visualtest/docs/html/variator__common_8c.html b/visualtest/docs/html/variator__common_8c.html new file mode 100755 index 0000000000000..a2db16e8e380d --- /dev/null +++ b/visualtest/docs/html/variator__common_8c.html @@ -0,0 +1,233 @@ + + + + + + +SDL Visual Test: C:/Users/DELL/Work/sdlvisualtest/visualtest/src/variator_common.c File Reference + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
variator_common.c File Reference
+
+
+
#include <SDL_test.h>
+#include "SDL_visualtest_variator_common.h"
+
+ + + + + + + +

+Functions

int SDLVisualTest_NextValue (SDLVisualTest_SUTOptionValue *var, SDLVisualTest_SUTOption *opt)
 
int SDLVisualTest_MakeStrFromVariation (SDLVisualTest_Variation *variation, SDLVisualTest_SUTConfig *config, char *buffer, int size)
 
int SDLVisualTest_InitVariation (SDLVisualTest_Variation *variation, SDLVisualTest_SUTConfig *config)
 
+

Detailed Description

+

Source file for some common functionality used by variators.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
int SDLVisualTest_InitVariation (SDLVisualTest_Variationvariation,
SDLVisualTest_SUTConfigconfig 
)
+
+

Initializes the variation using the following rules:

+
    +
  • Boolean options are initialized to SDL_FALSE.
  • +
  • Integer options are initialized to the minimum valid value they can hold.
  • +
  • Enum options are initialized to the first element in the list of values they can take.
  • +
  • String options are initialized to the name of the option.
  • +
+
Returns
1 on success, 0 on failure.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int SDLVisualTest_MakeStrFromVariation (SDLVisualTest_Variationvariation,
SDLVisualTest_SUTConfigconfig,
char * buffer,
int size 
)
+
+

Converts a variation object into a string of command line arguments.

+
Parameters
+ + + + + +
variationVariation object to be converted.
configConfig object for the SUT.
bufferPointer to the buffer the arguments string will be copied into.
sizeSize of the buffer.
+
+
+
Returns
1 on success, 0 on failure
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
int SDLVisualTest_NextValue (SDLVisualTest_SUTOptionValuevar,
SDLVisualTest_SUTOptionopt 
)
+
+

"Increments" the value of the option by one and returns the carry. We wrap around to the initial value on overflow which makes the carry one. For example: "incrementing" an SDL_FALSE option makes it SDL_TRUE with no carry, and "incrementing" an SDL_TRUE option makes it SDL_FALSE with carry one. For integers, a random value in the valid range for the option is used.

+
Parameters
+ + + +
varValue of the option
optObject with metadata about the option
+
+
+
Returns
1 if there is a carry for enum and bool type options, 0 otherwise. 1 is always returned for integer and string type options. -1 is returned on error.
+ +
+
+
+ + + + diff --git a/visualtest/docs/html/variator__exhaustive_8c.html b/visualtest/docs/html/variator__exhaustive_8c.html new file mode 100755 index 0000000000000..7df560c7538d5 --- /dev/null +++ b/visualtest/docs/html/variator__exhaustive_8c.html @@ -0,0 +1,180 @@ + + + + + + +SDL Visual Test: C:/Users/DELL/Work/sdlvisualtest/visualtest/src/variator_exhaustive.c File Reference + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
variator_exhaustive.c File Reference
+
+
+
#include <time.h>
+#include <SDL_test.h>
+#include "SDL_visualtest_sut_configparser.h"
+#include "SDL_visualtest_exhaustive_variator.h"
+
+ + + + + + + +

+Functions

int SDLVisualTest_InitExhaustiveVariator (SDLVisualTest_ExhaustiveVariator *variator, SDLVisualTest_SUTConfig *config)
 
char * SDLVisualTest_GetNextExhaustiveVariation (SDLVisualTest_ExhaustiveVariator *variator)
 
void SDLVisualTest_FreeExhaustiveVariator (SDLVisualTest_ExhaustiveVariator *variator)
 
+

Detailed Description

+

Source file for the variator that tests the SUT with all the different variations of input parameters that are valid.

+

Function Documentation

+ +
+
+ + + + + + + + +
void SDLVisualTest_FreeExhaustiveVariator (SDLVisualTest_ExhaustiveVariatorvariator)
+
+

Frees any resources associated with the variator.

+ +
+
+ +
+
+ + + + + + + + +
char* SDLVisualTest_GetNextExhaustiveVariation (SDLVisualTest_ExhaustiveVariatorvariator)
+
+

Gets the arguments string for the next variation using the variator and updates the variator's current variation object to the next variation.

+
Returns
The arguments string representing the next variation on success, and NULL on failure or if we have iterated through all possible variations. In the latter case subsequent calls will start the variations again from the very beginning. The pointer returned should not be freed.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
int SDLVisualTest_InitExhaustiveVariator (SDLVisualTest_ExhaustiveVariatorvariator,
SDLVisualTest_SUTConfigconfig 
)
+
+

Initializes the variator.

+
Returns
1 on success, 0 on failure
+ +
+
+
+ + + + diff --git a/visualtest/docs/html/variator__random_8c.html b/visualtest/docs/html/variator__random_8c.html new file mode 100755 index 0000000000000..b9d776ffb2912 --- /dev/null +++ b/visualtest/docs/html/variator__random_8c.html @@ -0,0 +1,185 @@ + + + + + + +SDL Visual Test: C:/Users/DELL/Work/sdlvisualtest/visualtest/src/variator_random.c File Reference + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
variator_random.c File Reference
+
+
+
#include <time.h>
+#include <SDL_test.h>
+#include "SDL_visualtest_random_variator.h"
+
+ + + + + + + +

+Functions

int SDLVisualTest_InitRandomVariator (SDLVisualTest_RandomVariator *variator, SDLVisualTest_SUTConfig *config, Uint64 seed)
 
char * SDLVisualTest_GetNextRandomVariation (SDLVisualTest_RandomVariator *variator)
 
void SDLVisualTest_FreeRandomVariator (SDLVisualTest_RandomVariator *variator)
 
+

Detailed Description

+

Source file for the variator that tests the SUT with random variations to the input parameters.

+

Function Documentation

+ +
+
+ + + + + + + + +
void SDLVisualTest_FreeRandomVariator (SDLVisualTest_RandomVariatorvariator)
+
+

Frees any resources associated with the variator.

+ +
+
+ +
+
+ + + + + + + + +
char* SDLVisualTest_GetNextRandomVariation (SDLVisualTest_RandomVariatorvariator)
+
+

Generates a new random variation.

+
Returns
The arguments string representing the random variation on success, and NULL on failure. The pointer returned should not be freed.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
int SDLVisualTest_InitRandomVariator (SDLVisualTest_RandomVariatorvariator,
SDLVisualTest_SUTConfigconfig,
Uint64 seed 
)
+
+

Initializes the variator.

+
Returns
1 on success, 0 on failure
+ +
+
+
+ + + + diff --git a/visualtest/docs/html/variators_8c.html b/visualtest/docs/html/variators_8c.html new file mode 100755 index 0000000000000..d1b233cdc99d8 --- /dev/null +++ b/visualtest/docs/html/variators_8c.html @@ -0,0 +1,190 @@ + + + + + + +SDL Visual Test: C:/Users/DELL/Work/sdlvisualtest/visualtest/src/variators.c File Reference + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
variators.c File Reference
+
+
+
#include <SDL_test.h>
+#include "SDL_visualtest_variators.h"
+
+ + + + + + + +

+Functions

int SDLVisualTest_InitVariator (SDLVisualTest_Variator *variator, SDLVisualTest_SUTConfig *config, SDLVisualTest_VariatorType type, Uint64 seed)
 
char * SDLVisualTest_GetNextVariation (SDLVisualTest_Variator *variator)
 
void SDLVisualTest_FreeVariator (SDLVisualTest_Variator *variator)
 
+

Detailed Description

+

Source file for the operations that act on variators.

+

Function Documentation

+ +
+
+ + + + + + + + +
void SDLVisualTest_FreeVariator (SDLVisualTest_Variatorvariator)
+
+

Frees any resources associated with the variator.

+ +
+
+ +
+
+ + + + + + + + +
char* SDLVisualTest_GetNextVariation (SDLVisualTest_Variatorvariator)
+
+

Gets the next variation using the variator.

+
Returns
The arguments string representing the variation on success, and NULL on failure. The pointer returned should not be freed.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int SDLVisualTest_InitVariator (SDLVisualTest_Variatorvariator,
SDLVisualTest_SUTConfigconfig,
SDLVisualTest_VariatorType type,
Uint64 seed 
)
+
+

Initializes the variator object pointed to by variator of type type with information from the config object pointed to by config.

+
Returns
1 on success, 0 on failure
+ +
+
+
+ + + + diff --git a/visualtest/docs/html/windows__process_8c.html b/visualtest/docs/html/windows__process_8c.html new file mode 100755 index 0000000000000..d0cee344968be --- /dev/null +++ b/visualtest/docs/html/windows__process_8c.html @@ -0,0 +1,105 @@ + + + + + + +SDL Visual Test: C:/Users/DELL/Work/sdlvisualtest/visualtest/src/windows/windows_process.c File Reference + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + + +
+ +
+ + +
+
+
+
windows_process.c File Reference
+
+
+
#include <SDL.h>
+#include <SDL_test.h>
+#include <string.h>
+#include <stdlib.h>
+#include "SDL_visualtest_process.h"
+

Detailed Description

+

Source file for the process API on windows.

+
+ + + + diff --git a/visualtest/docs/html/windows__screenshot_8c.html b/visualtest/docs/html/windows__screenshot_8c.html new file mode 100755 index 0000000000000..a42ec278bf83d --- /dev/null +++ b/visualtest/docs/html/windows__screenshot_8c.html @@ -0,0 +1,103 @@ + + + + + + +SDL Visual Test: C:/Users/DELL/Work/sdlvisualtest/visualtest/src/windows/windows_screenshot.c File Reference + + + + + + + + + +
+
+ + + + + + +
+
SDL Visual Test +
+
+
+ + + + + + + + + +
+ +
+ + +
+
+
+
windows_screenshot.c File Reference
+
+
+
#include "SDL_visualtest_process.h"
+#include <SDL.h>
+#include <SDL_test.h>
+

Detailed Description

+

Source file for the screenshot API on windows.

+
+ + + + diff --git a/visualtest/docs/latex/_s_d_l__visualtest__action__configparser_8h.tex b/visualtest/docs/latex/_s_d_l__visualtest__action__configparser_8h.tex new file mode 100755 index 0000000000000..ee466d3db15e4 --- /dev/null +++ b/visualtest/docs/latex/_s_d_l__visualtest__action__configparser_8h.tex @@ -0,0 +1,193 @@ +\hypertarget{_s_d_l__visualtest__action__configparser_8h}{\section{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\-S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.h File Reference} +\label{_s_d_l__visualtest__action__configparser_8h}\index{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\-S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h@{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\-S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h}} +} +\subsection*{Data Structures} +\begin{DoxyCompactItemize} +\item +struct \hyperlink{struct_s_d_l_visual_test___action}{S\-D\-L\-Visual\-Test\-\_\-\-Action} +\item +struct \hyperlink{struct_s_d_l_visual_test___action_node}{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Node} +\item +struct \hyperlink{struct_s_d_l_visual_test___action_queue}{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue} +\end{DoxyCompactItemize} +\subsection*{Macros} +\begin{DoxyCompactItemize} +\item +\#define \hyperlink{_s_d_l__visualtest__action__configparser_8h_a19244c2e1556665be344807ace1556ed}{M\-A\-X\-\_\-\-A\-C\-T\-I\-O\-N\-\_\-\-L\-I\-N\-E\-\_\-\-L\-E\-N\-G\-T\-H}~300 +\end{DoxyCompactItemize} +\subsection*{Typedefs} +\begin{DoxyCompactItemize} +\item +typedef struct \hyperlink{struct_s_d_l_visual_test___action}{S\-D\-L\-Visual\-Test\-\_\-\-Action} \hyperlink{_s_d_l__visualtest__action__configparser_8h_a89974e9149bfca6aabb3ff06cc9671d7}{S\-D\-L\-Visual\-Test\-\_\-\-Action} +\item +typedef struct \\* +\hyperlink{struct_s_d_l_visual_test___action_node}{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Node} \hyperlink{_s_d_l__visualtest__action__configparser_8h_a065d1acf0f98bde777d10bd8ab24d268}{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Node} +\item +typedef struct \\* +\hyperlink{struct_s_d_l_visual_test___action_queue}{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue} \hyperlink{_s_d_l__visualtest__action__configparser_8h_ac9ce1bb69d8774d1818c9f9d0f97c7f1}{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue} +\end{DoxyCompactItemize} +\subsection*{Enumerations} +\begin{DoxyCompactItemize} +\item +enum \hyperlink{_s_d_l__visualtest__action__configparser_8h_a383e41b8547eab149a0a4af867b3ebc6}{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Type} \{ \\* +\hyperlink{_s_d_l__visualtest__action__configparser_8h_a383e41b8547eab149a0a4af867b3ebc6ac5344bca6af9c07c4ee69ee4c2b18df2}{S\-D\-L\-\_\-\-A\-C\-T\-I\-O\-N\-\_\-\-L\-A\-U\-N\-C\-H} = 0, +\hyperlink{_s_d_l__visualtest__action__configparser_8h_a383e41b8547eab149a0a4af867b3ebc6a87880c4f665344d4c3e12f9aa3af7410}{S\-D\-L\-\_\-\-A\-C\-T\-I\-O\-N\-\_\-\-K\-I\-L\-L}, +\hyperlink{_s_d_l__visualtest__action__configparser_8h_a383e41b8547eab149a0a4af867b3ebc6ad3d17a830b7e1e46e37d916130d8802a}{S\-D\-L\-\_\-\-A\-C\-T\-I\-O\-N\-\_\-\-Q\-U\-I\-T}, +\hyperlink{_s_d_l__visualtest__action__configparser_8h_a383e41b8547eab149a0a4af867b3ebc6af9b5d42cb90bf843f298be4593992fdb}{S\-D\-L\-\_\-\-A\-C\-T\-I\-O\-N\-\_\-\-S\-C\-R\-E\-E\-N\-S\-H\-O\-T}, +\\* +\hyperlink{_s_d_l__visualtest__action__configparser_8h_a383e41b8547eab149a0a4af867b3ebc6a0853f8be8363015b822658b9f3b013f4}{S\-D\-L\-\_\-\-A\-C\-T\-I\-O\-N\-\_\-\-V\-E\-R\-I\-F\-Y} + \} +\end{DoxyCompactItemize} +\subsection*{Functions} +\begin{DoxyCompactItemize} +\item +int \hyperlink{_s_d_l__visualtest__action__configparser_8h_a647d1be8f0f27af2fb1e5d4da2100596}{S\-D\-L\-Visual\-Test\-\_\-\-Enqueue\-Action} (\hyperlink{struct_s_d_l_visual_test___action_queue}{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue} $\ast$queue, \hyperlink{struct_s_d_l_visual_test___action}{S\-D\-L\-Visual\-Test\-\_\-\-Action} action) +\item +int \hyperlink{_s_d_l__visualtest__action__configparser_8h_a0e7998533e6e10590612a8d5dee7ec0b}{S\-D\-L\-Visual\-Test\-\_\-\-Dequeue\-Action} (\hyperlink{struct_s_d_l_visual_test___action_queue}{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue} $\ast$queue) +\item +void \hyperlink{_s_d_l__visualtest__action__configparser_8h_ae68c1c80f728e125869882139bec2c9e}{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Action\-Queue} (\hyperlink{struct_s_d_l_visual_test___action_queue}{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue} $\ast$queue) +\item +\hyperlink{struct_s_d_l_visual_test___action}{S\-D\-L\-Visual\-Test\-\_\-\-Action} $\ast$ \hyperlink{_s_d_l__visualtest__action__configparser_8h_afb508801942e7c74084480bcdb6f8613}{S\-D\-L\-Visual\-Test\-\_\-\-Get\-Queue\-Front} (\hyperlink{struct_s_d_l_visual_test___action_queue}{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue} $\ast$queue) +\item +int \hyperlink{_s_d_l__visualtest__action__configparser_8h_a8484ee36f78952192d4193c85fca2f17}{S\-D\-L\-Visual\-Test\-\_\-\-Is\-Action\-Queue\-Empty} (\hyperlink{struct_s_d_l_visual_test___action_queue}{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue} $\ast$queue) +\item +void \hyperlink{_s_d_l__visualtest__action__configparser_8h_a677da0d0e4793df342f91974b4559efa}{S\-D\-L\-Visual\-Test\-\_\-\-Empty\-Action\-Queue} (\hyperlink{struct_s_d_l_visual_test___action_queue}{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue} $\ast$queue) +\item +int \hyperlink{_s_d_l__visualtest__action__configparser_8h_ace5374ef7509e95383929ff185aaf7e6}{S\-D\-L\-Visual\-Test\-\_\-\-Insert\-Into\-Action\-Queue} (\hyperlink{struct_s_d_l_visual_test___action_queue}{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue} $\ast$queue, \hyperlink{struct_s_d_l_visual_test___action}{S\-D\-L\-Visual\-Test\-\_\-\-Action} action) +\item +int \hyperlink{_s_d_l__visualtest__action__configparser_8h_a8ef9dce4d464d6994596deeace6ffa2d}{S\-D\-L\-Visual\-Test\-\_\-\-Parse\-Action\-Config} (char $\ast$file, \hyperlink{struct_s_d_l_visual_test___action_queue}{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue} $\ast$queue) +\end{DoxyCompactItemize} + + +\subsection{Detailed Description} +Header file for the parser for action config files. + +\subsection{Macro Definition Documentation} +\hypertarget{_s_d_l__visualtest__action__configparser_8h_a19244c2e1556665be344807ace1556ed}{\index{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h@{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h}!M\-A\-X\-\_\-\-A\-C\-T\-I\-O\-N\-\_\-\-L\-I\-N\-E\-\_\-\-L\-E\-N\-G\-T\-H@{M\-A\-X\-\_\-\-A\-C\-T\-I\-O\-N\-\_\-\-L\-I\-N\-E\-\_\-\-L\-E\-N\-G\-T\-H}} +\index{M\-A\-X\-\_\-\-A\-C\-T\-I\-O\-N\-\_\-\-L\-I\-N\-E\-\_\-\-L\-E\-N\-G\-T\-H@{M\-A\-X\-\_\-\-A\-C\-T\-I\-O\-N\-\_\-\-L\-I\-N\-E\-\_\-\-L\-E\-N\-G\-T\-H}!SDL_visualtest_action_configparser.h@{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h}} +\subsubsection[{M\-A\-X\-\_\-\-A\-C\-T\-I\-O\-N\-\_\-\-L\-I\-N\-E\-\_\-\-L\-E\-N\-G\-T\-H}]{\setlength{\rightskip}{0pt plus 5cm}\#define M\-A\-X\-\_\-\-A\-C\-T\-I\-O\-N\-\_\-\-L\-I\-N\-E\-\_\-\-L\-E\-N\-G\-T\-H~300}}\label{_s_d_l__visualtest__action__configparser_8h_a19244c2e1556665be344807ace1556ed} +The maximum length of one line in the actions file + +\subsection{Typedef Documentation} +\hypertarget{_s_d_l__visualtest__action__configparser_8h_a89974e9149bfca6aabb3ff06cc9671d7}{\index{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h@{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h}!S\-D\-L\-Visual\-Test\-\_\-\-Action@{S\-D\-L\-Visual\-Test\-\_\-\-Action}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Action@{S\-D\-L\-Visual\-Test\-\_\-\-Action}!SDL_visualtest_action_configparser.h@{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Action}]{\setlength{\rightskip}{0pt plus 5cm}typedef struct {\bf S\-D\-L\-Visual\-Test\-\_\-\-Action} {\bf S\-D\-L\-Visual\-Test\-\_\-\-Action}}}\label{_s_d_l__visualtest__action__configparser_8h_a89974e9149bfca6aabb3ff06cc9671d7} +Struct that defines an action that will be performed on the S\-U\-T process at a specific time. \hypertarget{_s_d_l__visualtest__action__configparser_8h_a065d1acf0f98bde777d10bd8ab24d268}{\index{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h@{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h}!S\-D\-L\-Visual\-Test\-\_\-\-Action\-Node@{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Node}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Node@{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Node}!SDL_visualtest_action_configparser.h@{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Node}]{\setlength{\rightskip}{0pt plus 5cm}typedef struct {\bf S\-D\-L\-Visual\-Test\-\_\-\-Action\-Node} {\bf S\-D\-L\-Visual\-Test\-\_\-\-Action\-Node}}}\label{_s_d_l__visualtest__action__configparser_8h_a065d1acf0f98bde777d10bd8ab24d268} +Struct for a node in the action queue. \hypertarget{_s_d_l__visualtest__action__configparser_8h_ac9ce1bb69d8774d1818c9f9d0f97c7f1}{\index{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h@{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h}!S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue@{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue@{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue}!SDL_visualtest_action_configparser.h@{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue}]{\setlength{\rightskip}{0pt plus 5cm}typedef struct {\bf S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue} {\bf S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue}}}\label{_s_d_l__visualtest__action__configparser_8h_ac9ce1bb69d8774d1818c9f9d0f97c7f1} +Queue structure for actions loaded from the actions config file. + +\subsection{Enumeration Type Documentation} +\hypertarget{_s_d_l__visualtest__action__configparser_8h_a383e41b8547eab149a0a4af867b3ebc6}{\index{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h@{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h}!S\-D\-L\-Visual\-Test\-\_\-\-Action\-Type@{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Type}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Type@{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Type}!SDL_visualtest_action_configparser.h@{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Type}]{\setlength{\rightskip}{0pt plus 5cm}enum {\bf S\-D\-L\-Visual\-Test\-\_\-\-Action\-Type}}}\label{_s_d_l__visualtest__action__configparser_8h_a383e41b8547eab149a0a4af867b3ebc6} +Type of the action. \begin{Desc} +\item[Enumerator]\par +\begin{description} +\index{S\-D\-L\-\_\-\-A\-C\-T\-I\-O\-N\-\_\-\-L\-A\-U\-N\-C\-H@{S\-D\-L\-\_\-\-A\-C\-T\-I\-O\-N\-\_\-\-L\-A\-U\-N\-C\-H}!S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h@{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h}}\index{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h@{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h}!S\-D\-L\-\_\-\-A\-C\-T\-I\-O\-N\-\_\-\-L\-A\-U\-N\-C\-H@{S\-D\-L\-\_\-\-A\-C\-T\-I\-O\-N\-\_\-\-L\-A\-U\-N\-C\-H}}\item[{\em +\hypertarget{_s_d_l__visualtest__action__configparser_8h_a383e41b8547eab149a0a4af867b3ebc6ac5344bca6af9c07c4ee69ee4c2b18df2}{S\-D\-L\-\_\-\-A\-C\-T\-I\-O\-N\-\_\-\-L\-A\-U\-N\-C\-H}\label{_s_d_l__visualtest__action__configparser_8h_a383e41b8547eab149a0a4af867b3ebc6ac5344bca6af9c07c4ee69ee4c2b18df2} +}]Launch an application with some given arguments \index{S\-D\-L\-\_\-\-A\-C\-T\-I\-O\-N\-\_\-\-K\-I\-L\-L@{S\-D\-L\-\_\-\-A\-C\-T\-I\-O\-N\-\_\-\-K\-I\-L\-L}!S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h@{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h}}\index{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h@{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h}!S\-D\-L\-\_\-\-A\-C\-T\-I\-O\-N\-\_\-\-K\-I\-L\-L@{S\-D\-L\-\_\-\-A\-C\-T\-I\-O\-N\-\_\-\-K\-I\-L\-L}}\item[{\em +\hypertarget{_s_d_l__visualtest__action__configparser_8h_a383e41b8547eab149a0a4af867b3ebc6a87880c4f665344d4c3e12f9aa3af7410}{S\-D\-L\-\_\-\-A\-C\-T\-I\-O\-N\-\_\-\-K\-I\-L\-L}\label{_s_d_l__visualtest__action__configparser_8h_a383e41b8547eab149a0a4af867b3ebc6a87880c4f665344d4c3e12f9aa3af7410} +}]Kill the S\-U\-T process \index{S\-D\-L\-\_\-\-A\-C\-T\-I\-O\-N\-\_\-\-Q\-U\-I\-T@{S\-D\-L\-\_\-\-A\-C\-T\-I\-O\-N\-\_\-\-Q\-U\-I\-T}!S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h@{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h}}\index{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h@{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h}!S\-D\-L\-\_\-\-A\-C\-T\-I\-O\-N\-\_\-\-Q\-U\-I\-T@{S\-D\-L\-\_\-\-A\-C\-T\-I\-O\-N\-\_\-\-Q\-U\-I\-T}}\item[{\em +\hypertarget{_s_d_l__visualtest__action__configparser_8h_a383e41b8547eab149a0a4af867b3ebc6ad3d17a830b7e1e46e37d916130d8802a}{S\-D\-L\-\_\-\-A\-C\-T\-I\-O\-N\-\_\-\-Q\-U\-I\-T}\label{_s_d_l__visualtest__action__configparser_8h_a383e41b8547eab149a0a4af867b3ebc6ad3d17a830b7e1e46e37d916130d8802a} +}]Quit (Gracefully exit) the S\-U\-T process \index{S\-D\-L\-\_\-\-A\-C\-T\-I\-O\-N\-\_\-\-S\-C\-R\-E\-E\-N\-S\-H\-O\-T@{S\-D\-L\-\_\-\-A\-C\-T\-I\-O\-N\-\_\-\-S\-C\-R\-E\-E\-N\-S\-H\-O\-T}!S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h@{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h}}\index{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h@{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h}!S\-D\-L\-\_\-\-A\-C\-T\-I\-O\-N\-\_\-\-S\-C\-R\-E\-E\-N\-S\-H\-O\-T@{S\-D\-L\-\_\-\-A\-C\-T\-I\-O\-N\-\_\-\-S\-C\-R\-E\-E\-N\-S\-H\-O\-T}}\item[{\em +\hypertarget{_s_d_l__visualtest__action__configparser_8h_a383e41b8547eab149a0a4af867b3ebc6af9b5d42cb90bf843f298be4593992fdb}{S\-D\-L\-\_\-\-A\-C\-T\-I\-O\-N\-\_\-\-S\-C\-R\-E\-E\-N\-S\-H\-O\-T}\label{_s_d_l__visualtest__action__configparser_8h_a383e41b8547eab149a0a4af867b3ebc6af9b5d42cb90bf843f298be4593992fdb} +}]Take a screenshot of the S\-U\-T window \index{S\-D\-L\-\_\-\-A\-C\-T\-I\-O\-N\-\_\-\-V\-E\-R\-I\-F\-Y@{S\-D\-L\-\_\-\-A\-C\-T\-I\-O\-N\-\_\-\-V\-E\-R\-I\-F\-Y}!S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h@{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h}}\index{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h@{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h}!S\-D\-L\-\_\-\-A\-C\-T\-I\-O\-N\-\_\-\-V\-E\-R\-I\-F\-Y@{S\-D\-L\-\_\-\-A\-C\-T\-I\-O\-N\-\_\-\-V\-E\-R\-I\-F\-Y}}\item[{\em +\hypertarget{_s_d_l__visualtest__action__configparser_8h_a383e41b8547eab149a0a4af867b3ebc6a0853f8be8363015b822658b9f3b013f4}{S\-D\-L\-\_\-\-A\-C\-T\-I\-O\-N\-\_\-\-V\-E\-R\-I\-F\-Y}\label{_s_d_l__visualtest__action__configparser_8h_a383e41b8547eab149a0a4af867b3ebc6a0853f8be8363015b822658b9f3b013f4} +}]Verify a previously taken screenshot \end{description} +\end{Desc} + + +\subsection{Function Documentation} +\hypertarget{_s_d_l__visualtest__action__configparser_8h_a0e7998533e6e10590612a8d5dee7ec0b}{\index{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h@{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h}!S\-D\-L\-Visual\-Test\-\_\-\-Dequeue\-Action@{S\-D\-L\-Visual\-Test\-\_\-\-Dequeue\-Action}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Dequeue\-Action@{S\-D\-L\-Visual\-Test\-\_\-\-Dequeue\-Action}!SDL_visualtest_action_configparser.h@{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Dequeue\-Action}]{\setlength{\rightskip}{0pt plus 5cm}int S\-D\-L\-Visual\-Test\-\_\-\-Dequeue\-Action ( +\begin{DoxyParamCaption} +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue} $\ast$}]{queue} +\end{DoxyParamCaption} +)}}\label{_s_d_l__visualtest__action__configparser_8h_a0e7998533e6e10590612a8d5dee7ec0b} +Remove an action from the front of the action queue pointed to by {\ttfamily queue}. + +\begin{DoxyReturn}{Returns} +1 on success, 0 on failure. +\end{DoxyReturn} +\hypertarget{_s_d_l__visualtest__action__configparser_8h_a677da0d0e4793df342f91974b4559efa}{\index{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h@{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h}!S\-D\-L\-Visual\-Test\-\_\-\-Empty\-Action\-Queue@{S\-D\-L\-Visual\-Test\-\_\-\-Empty\-Action\-Queue}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Empty\-Action\-Queue@{S\-D\-L\-Visual\-Test\-\_\-\-Empty\-Action\-Queue}!SDL_visualtest_action_configparser.h@{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Empty\-Action\-Queue}]{\setlength{\rightskip}{0pt plus 5cm}void S\-D\-L\-Visual\-Test\-\_\-\-Empty\-Action\-Queue ( +\begin{DoxyParamCaption} +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue} $\ast$}]{queue} +\end{DoxyParamCaption} +)}}\label{_s_d_l__visualtest__action__configparser_8h_a677da0d0e4793df342f91974b4559efa} +Dequeues all the elements in the queque pointed to by {\ttfamily queue}. \hypertarget{_s_d_l__visualtest__action__configparser_8h_a647d1be8f0f27af2fb1e5d4da2100596}{\index{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h@{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h}!S\-D\-L\-Visual\-Test\-\_\-\-Enqueue\-Action@{S\-D\-L\-Visual\-Test\-\_\-\-Enqueue\-Action}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Enqueue\-Action@{S\-D\-L\-Visual\-Test\-\_\-\-Enqueue\-Action}!SDL_visualtest_action_configparser.h@{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Enqueue\-Action}]{\setlength{\rightskip}{0pt plus 5cm}int S\-D\-L\-Visual\-Test\-\_\-\-Enqueue\-Action ( +\begin{DoxyParamCaption} +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue} $\ast$}]{queue, } +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Action}}]{action} +\end{DoxyParamCaption} +)}}\label{_s_d_l__visualtest__action__configparser_8h_a647d1be8f0f27af2fb1e5d4da2100596} +Add an action pointed to by {\ttfamily action} to the rear of the action queue pointed to by {\ttfamily queue}. + +\begin{DoxyReturn}{Returns} +1 on success, 0 on failure. +\end{DoxyReturn} +\hypertarget{_s_d_l__visualtest__action__configparser_8h_afb508801942e7c74084480bcdb6f8613}{\index{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h@{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h}!S\-D\-L\-Visual\-Test\-\_\-\-Get\-Queue\-Front@{S\-D\-L\-Visual\-Test\-\_\-\-Get\-Queue\-Front}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Get\-Queue\-Front@{S\-D\-L\-Visual\-Test\-\_\-\-Get\-Queue\-Front}!SDL_visualtest_action_configparser.h@{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Get\-Queue\-Front}]{\setlength{\rightskip}{0pt plus 5cm}{\bf S\-D\-L\-Visual\-Test\-\_\-\-Action}$\ast$ S\-D\-L\-Visual\-Test\-\_\-\-Get\-Queue\-Front ( +\begin{DoxyParamCaption} +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue} $\ast$}]{queue} +\end{DoxyParamCaption} +)}}\label{_s_d_l__visualtest__action__configparser_8h_afb508801942e7c74084480bcdb6f8613} +Get the action at the front of the action queue pointed to by {\ttfamily queue}. The returned action pointer may become invalid after subsequent dequeues. + +\begin{DoxyReturn}{Returns} +pointer to the action on success, N\-U\-L\-L on failure. +\end{DoxyReturn} +\hypertarget{_s_d_l__visualtest__action__configparser_8h_ae68c1c80f728e125869882139bec2c9e}{\index{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h@{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h}!S\-D\-L\-Visual\-Test\-\_\-\-Init\-Action\-Queue@{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Action\-Queue}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Action\-Queue@{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Action\-Queue}!SDL_visualtest_action_configparser.h@{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Action\-Queue}]{\setlength{\rightskip}{0pt plus 5cm}void S\-D\-L\-Visual\-Test\-\_\-\-Init\-Action\-Queue ( +\begin{DoxyParamCaption} +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue} $\ast$}]{queue} +\end{DoxyParamCaption} +)}}\label{_s_d_l__visualtest__action__configparser_8h_ae68c1c80f728e125869882139bec2c9e} +Initialize the action queue pointed to by {\ttfamily queue}. \hypertarget{_s_d_l__visualtest__action__configparser_8h_ace5374ef7509e95383929ff185aaf7e6}{\index{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h@{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h}!S\-D\-L\-Visual\-Test\-\_\-\-Insert\-Into\-Action\-Queue@{S\-D\-L\-Visual\-Test\-\_\-\-Insert\-Into\-Action\-Queue}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Insert\-Into\-Action\-Queue@{S\-D\-L\-Visual\-Test\-\_\-\-Insert\-Into\-Action\-Queue}!SDL_visualtest_action_configparser.h@{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Insert\-Into\-Action\-Queue}]{\setlength{\rightskip}{0pt plus 5cm}int S\-D\-L\-Visual\-Test\-\_\-\-Insert\-Into\-Action\-Queue ( +\begin{DoxyParamCaption} +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue} $\ast$}]{queue, } +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Action}}]{action} +\end{DoxyParamCaption} +)}}\label{_s_d_l__visualtest__action__configparser_8h_ace5374ef7509e95383929ff185aaf7e6} +Inserts an action {\ttfamily action} into the queue pointed to by {\ttfamily queue} such that the times of actions in the queue increase as we move from the front to the rear. + +\begin{DoxyReturn}{Returns} +1 on success, 0 on failure. +\end{DoxyReturn} +\hypertarget{_s_d_l__visualtest__action__configparser_8h_a8484ee36f78952192d4193c85fca2f17}{\index{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h@{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h}!S\-D\-L\-Visual\-Test\-\_\-\-Is\-Action\-Queue\-Empty@{S\-D\-L\-Visual\-Test\-\_\-\-Is\-Action\-Queue\-Empty}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Is\-Action\-Queue\-Empty@{S\-D\-L\-Visual\-Test\-\_\-\-Is\-Action\-Queue\-Empty}!SDL_visualtest_action_configparser.h@{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Is\-Action\-Queue\-Empty}]{\setlength{\rightskip}{0pt plus 5cm}int S\-D\-L\-Visual\-Test\-\_\-\-Is\-Action\-Queue\-Empty ( +\begin{DoxyParamCaption} +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue} $\ast$}]{queue} +\end{DoxyParamCaption} +)}}\label{_s_d_l__visualtest__action__configparser_8h_a8484ee36f78952192d4193c85fca2f17} +Check if the queue pointed to by {\ttfamily queue} is empty or not. + +\begin{DoxyReturn}{Returns} +1 if the queue is empty, 0 otherwise. +\end{DoxyReturn} +\hypertarget{_s_d_l__visualtest__action__configparser_8h_a8ef9dce4d464d6994596deeace6ffa2d}{\index{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h@{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h}!S\-D\-L\-Visual\-Test\-\_\-\-Parse\-Action\-Config@{S\-D\-L\-Visual\-Test\-\_\-\-Parse\-Action\-Config}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Parse\-Action\-Config@{S\-D\-L\-Visual\-Test\-\_\-\-Parse\-Action\-Config}!SDL_visualtest_action_configparser.h@{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Parse\-Action\-Config}]{\setlength{\rightskip}{0pt plus 5cm}int S\-D\-L\-Visual\-Test\-\_\-\-Parse\-Action\-Config ( +\begin{DoxyParamCaption} +\item[{char $\ast$}]{file, } +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue} $\ast$}]{queue} +\end{DoxyParamCaption} +)}}\label{_s_d_l__visualtest__action__configparser_8h_a8ef9dce4d464d6994596deeace6ffa2d} +Parses an action config file with path {\ttfamily file} and populates an action queue pointed to by {\ttfamily queue} with actions. + +\begin{DoxyReturn}{Returns} +1 on success, 0 on failure. +\end{DoxyReturn} diff --git a/visualtest/docs/latex/_s_d_l__visualtest__exhaustive__variator_8h.tex b/visualtest/docs/latex/_s_d_l__visualtest__exhaustive__variator_8h.tex new file mode 100755 index 0000000000000..1d4c619f4e3bf --- /dev/null +++ b/visualtest/docs/latex/_s_d_l__visualtest__exhaustive__variator_8h.tex @@ -0,0 +1,69 @@ +\hypertarget{_s_d_l__visualtest__exhaustive__variator_8h}{\section{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\-S\-D\-L\-\_\-visualtest\-\_\-exhaustive\-\_\-variator.h File Reference} +\label{_s_d_l__visualtest__exhaustive__variator_8h}\index{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\-S\-D\-L\-\_\-visualtest\-\_\-exhaustive\-\_\-variator.\-h@{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\-S\-D\-L\-\_\-visualtest\-\_\-exhaustive\-\_\-variator.\-h}} +} +{\ttfamily \#include \char`\"{}S\-D\-L\-\_\-visualtest\-\_\-harness\-\_\-argparser.\-h\char`\"{}}\\* +{\ttfamily \#include \char`\"{}S\-D\-L\-\_\-visualtest\-\_\-variator\-\_\-common.\-h\char`\"{}}\\* +\subsection*{Data Structures} +\begin{DoxyCompactItemize} +\item +struct \hyperlink{struct_s_d_l_visual_test___exhaustive_variator}{S\-D\-L\-Visual\-Test\-\_\-\-Exhaustive\-Variator} +\end{DoxyCompactItemize} +\subsection*{Typedefs} +\begin{DoxyCompactItemize} +\item +typedef struct \\* +\hyperlink{struct_s_d_l_visual_test___exhaustive_variator}{S\-D\-L\-Visual\-Test\-\_\-\-Exhaustive\-Variator} \hyperlink{_s_d_l__visualtest__exhaustive__variator_8h_ab64de6cf7d6a1e6d09d470c020940c25}{S\-D\-L\-Visual\-Test\-\_\-\-Exhaustive\-Variator} +\end{DoxyCompactItemize} +\subsection*{Functions} +\begin{DoxyCompactItemize} +\item +int \hyperlink{_s_d_l__visualtest__exhaustive__variator_8h_a9e213e530ddf5a18014786d10e9fdaee}{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Exhaustive\-Variator} (\hyperlink{struct_s_d_l_visual_test___exhaustive_variator}{S\-D\-L\-Visual\-Test\-\_\-\-Exhaustive\-Variator} $\ast$variator, \hyperlink{struct_s_d_l_visual_test___s_u_t_config}{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config} $\ast$config) +\item +char $\ast$ \hyperlink{_s_d_l__visualtest__exhaustive__variator_8h_aa9e13a92945ef48308215b3fa068ed29}{S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Exhaustive\-Variation} (\hyperlink{struct_s_d_l_visual_test___exhaustive_variator}{S\-D\-L\-Visual\-Test\-\_\-\-Exhaustive\-Variator} $\ast$variator) +\item +void \hyperlink{_s_d_l__visualtest__exhaustive__variator_8h_a7168b055fb86bbbb700d87ae842f7152}{S\-D\-L\-Visual\-Test\-\_\-\-Free\-Exhaustive\-Variator} (\hyperlink{struct_s_d_l_visual_test___exhaustive_variator}{S\-D\-L\-Visual\-Test\-\_\-\-Exhaustive\-Variator} $\ast$variator) +\end{DoxyCompactItemize} + + +\subsection{Detailed Description} +Header for the exhaustive variator. + +\subsection{Typedef Documentation} +\hypertarget{_s_d_l__visualtest__exhaustive__variator_8h_ab64de6cf7d6a1e6d09d470c020940c25}{\index{S\-D\-L\-\_\-visualtest\-\_\-exhaustive\-\_\-variator.\-h@{S\-D\-L\-\_\-visualtest\-\_\-exhaustive\-\_\-variator.\-h}!S\-D\-L\-Visual\-Test\-\_\-\-Exhaustive\-Variator@{S\-D\-L\-Visual\-Test\-\_\-\-Exhaustive\-Variator}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Exhaustive\-Variator@{S\-D\-L\-Visual\-Test\-\_\-\-Exhaustive\-Variator}!SDL_visualtest_exhaustive_variator.h@{S\-D\-L\-\_\-visualtest\-\_\-exhaustive\-\_\-variator.\-h}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Exhaustive\-Variator}]{\setlength{\rightskip}{0pt plus 5cm}typedef struct {\bf S\-D\-L\-Visual\-Test\-\_\-\-Exhaustive\-Variator} {\bf S\-D\-L\-Visual\-Test\-\_\-\-Exhaustive\-Variator}}}\label{_s_d_l__visualtest__exhaustive__variator_8h_ab64de6cf7d6a1e6d09d470c020940c25} +Struct for the variator that exhaustively iterates through all variations of command line arguments to the S\-U\-T. + +\subsection{Function Documentation} +\hypertarget{_s_d_l__visualtest__exhaustive__variator_8h_a7168b055fb86bbbb700d87ae842f7152}{\index{S\-D\-L\-\_\-visualtest\-\_\-exhaustive\-\_\-variator.\-h@{S\-D\-L\-\_\-visualtest\-\_\-exhaustive\-\_\-variator.\-h}!S\-D\-L\-Visual\-Test\-\_\-\-Free\-Exhaustive\-Variator@{S\-D\-L\-Visual\-Test\-\_\-\-Free\-Exhaustive\-Variator}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Free\-Exhaustive\-Variator@{S\-D\-L\-Visual\-Test\-\_\-\-Free\-Exhaustive\-Variator}!SDL_visualtest_exhaustive_variator.h@{S\-D\-L\-\_\-visualtest\-\_\-exhaustive\-\_\-variator.\-h}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Free\-Exhaustive\-Variator}]{\setlength{\rightskip}{0pt plus 5cm}void S\-D\-L\-Visual\-Test\-\_\-\-Free\-Exhaustive\-Variator ( +\begin{DoxyParamCaption} +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Exhaustive\-Variator} $\ast$}]{variator} +\end{DoxyParamCaption} +)}}\label{_s_d_l__visualtest__exhaustive__variator_8h_a7168b055fb86bbbb700d87ae842f7152} +Frees any resources associated with the variator. \hypertarget{_s_d_l__visualtest__exhaustive__variator_8h_aa9e13a92945ef48308215b3fa068ed29}{\index{S\-D\-L\-\_\-visualtest\-\_\-exhaustive\-\_\-variator.\-h@{S\-D\-L\-\_\-visualtest\-\_\-exhaustive\-\_\-variator.\-h}!S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Exhaustive\-Variation@{S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Exhaustive\-Variation}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Exhaustive\-Variation@{S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Exhaustive\-Variation}!SDL_visualtest_exhaustive_variator.h@{S\-D\-L\-\_\-visualtest\-\_\-exhaustive\-\_\-variator.\-h}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Exhaustive\-Variation}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Exhaustive\-Variation ( +\begin{DoxyParamCaption} +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Exhaustive\-Variator} $\ast$}]{variator} +\end{DoxyParamCaption} +)}}\label{_s_d_l__visualtest__exhaustive__variator_8h_aa9e13a92945ef48308215b3fa068ed29} +Gets the arguments string for the next variation using the variator and updates the variator's current variation object to the next variation. + +\begin{DoxyReturn}{Returns} +The arguments string representing the next variation on success, and N\-U\-L\-L on failure or if we have iterated through all possible variations. In the latter case subsequent calls will start the variations again from the very beginning. The pointer returned should not be freed. +\end{DoxyReturn} +\hypertarget{_s_d_l__visualtest__exhaustive__variator_8h_a9e213e530ddf5a18014786d10e9fdaee}{\index{S\-D\-L\-\_\-visualtest\-\_\-exhaustive\-\_\-variator.\-h@{S\-D\-L\-\_\-visualtest\-\_\-exhaustive\-\_\-variator.\-h}!S\-D\-L\-Visual\-Test\-\_\-\-Init\-Exhaustive\-Variator@{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Exhaustive\-Variator}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Exhaustive\-Variator@{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Exhaustive\-Variator}!SDL_visualtest_exhaustive_variator.h@{S\-D\-L\-\_\-visualtest\-\_\-exhaustive\-\_\-variator.\-h}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Exhaustive\-Variator}]{\setlength{\rightskip}{0pt plus 5cm}int S\-D\-L\-Visual\-Test\-\_\-\-Init\-Exhaustive\-Variator ( +\begin{DoxyParamCaption} +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Exhaustive\-Variator} $\ast$}]{variator, } +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config} $\ast$}]{config} +\end{DoxyParamCaption} +)}}\label{_s_d_l__visualtest__exhaustive__variator_8h_a9e213e530ddf5a18014786d10e9fdaee} +Initializes the variator. + +\begin{DoxyReturn}{Returns} +1 on success, 0 on failure +\end{DoxyReturn} diff --git a/visualtest/docs/latex/_s_d_l__visualtest__harness__argparser_8h.tex b/visualtest/docs/latex/_s_d_l__visualtest__harness__argparser_8h.tex new file mode 100755 index 0000000000000..f6fea3ccbbd48 --- /dev/null +++ b/visualtest/docs/latex/_s_d_l__visualtest__harness__argparser_8h.tex @@ -0,0 +1,80 @@ +\hypertarget{_s_d_l__visualtest__harness__argparser_8h}{\section{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\-S\-D\-L\-\_\-visualtest\-\_\-harness\-\_\-argparser.h File Reference} +\label{_s_d_l__visualtest__harness__argparser_8h}\index{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\-S\-D\-L\-\_\-visualtest\-\_\-harness\-\_\-argparser.\-h@{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\-S\-D\-L\-\_\-visualtest\-\_\-harness\-\_\-argparser.\-h}} +} +{\ttfamily \#include $<$S\-D\-L.\-h$>$}\\* +{\ttfamily \#include \char`\"{}S\-D\-L\-\_\-visualtest\-\_\-sut\-\_\-configparser.\-h\char`\"{}}\\* +{\ttfamily \#include \char`\"{}S\-D\-L\-\_\-visualtest\-\_\-variator\-\_\-common.\-h\char`\"{}}\\* +{\ttfamily \#include \char`\"{}S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h\char`\"{}}\\* +\subsection*{Data Structures} +\begin{DoxyCompactItemize} +\item +struct \hyperlink{struct_s_d_l_visual_test___harness_state}{S\-D\-L\-Visual\-Test\-\_\-\-Harness\-State} +\end{DoxyCompactItemize} +\subsection*{Macros} +\begin{DoxyCompactItemize} +\item +\#define \hyperlink{_s_d_l__visualtest__harness__argparser_8h_abdd33f362ae3bbdacb5de76473aa8a2f}{M\-A\-X\-\_\-\-P\-A\-T\-H\-\_\-\-L\-E\-N}~300 +\item +\#define \hyperlink{_s_d_l__visualtest__harness__argparser_8h_a8485cbda108eca56406d67aaa685fcc5}{M\-A\-X\-\_\-\-S\-U\-T\-\_\-\-A\-R\-G\-S\-\_\-\-L\-E\-N}~600 +\end{DoxyCompactItemize} +\subsection*{Typedefs} +\begin{DoxyCompactItemize} +\item +typedef struct \\* +\hyperlink{struct_s_d_l_visual_test___harness_state}{S\-D\-L\-Visual\-Test\-\_\-\-Harness\-State} \hyperlink{_s_d_l__visualtest__harness__argparser_8h_ab89725ad0ec988d4923faa6a85972455}{S\-D\-L\-Visual\-Test\-\_\-\-Harness\-State} +\end{DoxyCompactItemize} +\subsection*{Functions} +\begin{DoxyCompactItemize} +\item +int \hyperlink{_s_d_l__visualtest__harness__argparser_8h_a629609acc04ef21a21fdfbbf6c1589c8}{S\-D\-L\-Visual\-Test\-\_\-\-Parse\-Harness\-Args} (char $\ast$$\ast$argv, \hyperlink{struct_s_d_l_visual_test___harness_state}{S\-D\-L\-Visual\-Test\-\_\-\-Harness\-State} $\ast$state) +\item +void \hyperlink{_s_d_l__visualtest__harness__argparser_8h_a833147d8da541982c615645a797627cc}{S\-D\-L\-Visual\-Test\-\_\-\-Free\-Harness\-State} (\hyperlink{struct_s_d_l_visual_test___harness_state}{S\-D\-L\-Visual\-Test\-\_\-\-Harness\-State} $\ast$state) +\end{DoxyCompactItemize} + + +\subsection{Detailed Description} +Provides functionality to parse command line arguments to the test harness. + +\subsection{Macro Definition Documentation} +\hypertarget{_s_d_l__visualtest__harness__argparser_8h_abdd33f362ae3bbdacb5de76473aa8a2f}{\index{S\-D\-L\-\_\-visualtest\-\_\-harness\-\_\-argparser.\-h@{S\-D\-L\-\_\-visualtest\-\_\-harness\-\_\-argparser.\-h}!M\-A\-X\-\_\-\-P\-A\-T\-H\-\_\-\-L\-E\-N@{M\-A\-X\-\_\-\-P\-A\-T\-H\-\_\-\-L\-E\-N}} +\index{M\-A\-X\-\_\-\-P\-A\-T\-H\-\_\-\-L\-E\-N@{M\-A\-X\-\_\-\-P\-A\-T\-H\-\_\-\-L\-E\-N}!SDL_visualtest_harness_argparser.h@{S\-D\-L\-\_\-visualtest\-\_\-harness\-\_\-argparser.\-h}} +\subsubsection[{M\-A\-X\-\_\-\-P\-A\-T\-H\-\_\-\-L\-E\-N}]{\setlength{\rightskip}{0pt plus 5cm}\#define M\-A\-X\-\_\-\-P\-A\-T\-H\-\_\-\-L\-E\-N~300}}\label{_s_d_l__visualtest__harness__argparser_8h_abdd33f362ae3bbdacb5de76473aa8a2f} +Maximum length of a path string \hypertarget{_s_d_l__visualtest__harness__argparser_8h_a8485cbda108eca56406d67aaa685fcc5}{\index{S\-D\-L\-\_\-visualtest\-\_\-harness\-\_\-argparser.\-h@{S\-D\-L\-\_\-visualtest\-\_\-harness\-\_\-argparser.\-h}!M\-A\-X\-\_\-\-S\-U\-T\-\_\-\-A\-R\-G\-S\-\_\-\-L\-E\-N@{M\-A\-X\-\_\-\-S\-U\-T\-\_\-\-A\-R\-G\-S\-\_\-\-L\-E\-N}} +\index{M\-A\-X\-\_\-\-S\-U\-T\-\_\-\-A\-R\-G\-S\-\_\-\-L\-E\-N@{M\-A\-X\-\_\-\-S\-U\-T\-\_\-\-A\-R\-G\-S\-\_\-\-L\-E\-N}!SDL_visualtest_harness_argparser.h@{S\-D\-L\-\_\-visualtest\-\_\-harness\-\_\-argparser.\-h}} +\subsubsection[{M\-A\-X\-\_\-\-S\-U\-T\-\_\-\-A\-R\-G\-S\-\_\-\-L\-E\-N}]{\setlength{\rightskip}{0pt plus 5cm}\#define M\-A\-X\-\_\-\-S\-U\-T\-\_\-\-A\-R\-G\-S\-\_\-\-L\-E\-N~600}}\label{_s_d_l__visualtest__harness__argparser_8h_a8485cbda108eca56406d67aaa685fcc5} +Maximum length of a string of S\-U\-T arguments + +\subsection{Typedef Documentation} +\hypertarget{_s_d_l__visualtest__harness__argparser_8h_ab89725ad0ec988d4923faa6a85972455}{\index{S\-D\-L\-\_\-visualtest\-\_\-harness\-\_\-argparser.\-h@{S\-D\-L\-\_\-visualtest\-\_\-harness\-\_\-argparser.\-h}!S\-D\-L\-Visual\-Test\-\_\-\-Harness\-State@{S\-D\-L\-Visual\-Test\-\_\-\-Harness\-State}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Harness\-State@{S\-D\-L\-Visual\-Test\-\_\-\-Harness\-State}!SDL_visualtest_harness_argparser.h@{S\-D\-L\-\_\-visualtest\-\_\-harness\-\_\-argparser.\-h}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Harness\-State}]{\setlength{\rightskip}{0pt plus 5cm}typedef struct {\bf S\-D\-L\-Visual\-Test\-\_\-\-Harness\-State} {\bf S\-D\-L\-Visual\-Test\-\_\-\-Harness\-State}}}\label{_s_d_l__visualtest__harness__argparser_8h_ab89725ad0ec988d4923faa6a85972455} +Stores the state of the test harness. + +\subsection{Function Documentation} +\hypertarget{_s_d_l__visualtest__harness__argparser_8h_a833147d8da541982c615645a797627cc}{\index{S\-D\-L\-\_\-visualtest\-\_\-harness\-\_\-argparser.\-h@{S\-D\-L\-\_\-visualtest\-\_\-harness\-\_\-argparser.\-h}!S\-D\-L\-Visual\-Test\-\_\-\-Free\-Harness\-State@{S\-D\-L\-Visual\-Test\-\_\-\-Free\-Harness\-State}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Free\-Harness\-State@{S\-D\-L\-Visual\-Test\-\_\-\-Free\-Harness\-State}!SDL_visualtest_harness_argparser.h@{S\-D\-L\-\_\-visualtest\-\_\-harness\-\_\-argparser.\-h}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Free\-Harness\-State}]{\setlength{\rightskip}{0pt plus 5cm}void S\-D\-L\-Visual\-Test\-\_\-\-Free\-Harness\-State ( +\begin{DoxyParamCaption} +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Harness\-State} $\ast$}]{state} +\end{DoxyParamCaption} +)}}\label{_s_d_l__visualtest__harness__argparser_8h_a833147d8da541982c615645a797627cc} +Frees any resources associated with the state object pointed to by {\ttfamily state}. \hypertarget{_s_d_l__visualtest__harness__argparser_8h_a629609acc04ef21a21fdfbbf6c1589c8}{\index{S\-D\-L\-\_\-visualtest\-\_\-harness\-\_\-argparser.\-h@{S\-D\-L\-\_\-visualtest\-\_\-harness\-\_\-argparser.\-h}!S\-D\-L\-Visual\-Test\-\_\-\-Parse\-Harness\-Args@{S\-D\-L\-Visual\-Test\-\_\-\-Parse\-Harness\-Args}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Parse\-Harness\-Args@{S\-D\-L\-Visual\-Test\-\_\-\-Parse\-Harness\-Args}!SDL_visualtest_harness_argparser.h@{S\-D\-L\-\_\-visualtest\-\_\-harness\-\_\-argparser.\-h}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Parse\-Harness\-Args}]{\setlength{\rightskip}{0pt plus 5cm}int S\-D\-L\-Visual\-Test\-\_\-\-Parse\-Harness\-Args ( +\begin{DoxyParamCaption} +\item[{char $\ast$$\ast$}]{argv, } +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Harness\-State} $\ast$}]{state} +\end{DoxyParamCaption} +)}}\label{_s_d_l__visualtest__harness__argparser_8h_a629609acc04ef21a21fdfbbf6c1589c8} +Parse command line paramters to the test harness and populate a state object. + + +\begin{DoxyParams}{Parameters} +{\em argv} & The array of command line parameters. \\ +\hline +{\em state} & Pointer to the state object to be populated.\\ +\hline +\end{DoxyParams} +\begin{DoxyReturn}{Returns} +Non-\/zero on success, zero on failure. +\end{DoxyReturn} diff --git a/visualtest/docs/latex/_s_d_l__visualtest__parsehelper_8h.tex b/visualtest/docs/latex/_s_d_l__visualtest__parsehelper_8h.tex new file mode 100755 index 0000000000000..f1773891d691c --- /dev/null +++ b/visualtest/docs/latex/_s_d_l__visualtest__parsehelper_8h.tex @@ -0,0 +1,53 @@ +\hypertarget{_s_d_l__visualtest__parsehelper_8h}{\section{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\-S\-D\-L\-\_\-visualtest\-\_\-parsehelper.h File Reference} +\label{_s_d_l__visualtest__parsehelper_8h}\index{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\-S\-D\-L\-\_\-visualtest\-\_\-parsehelper.\-h@{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\-S\-D\-L\-\_\-visualtest\-\_\-parsehelper.\-h}} +} +\subsection*{Functions} +\begin{DoxyCompactItemize} +\item +char $\ast$$\ast$ \hyperlink{_s_d_l__visualtest__parsehelper_8h_a5f168fdd02f9d40ddbad97bd8c0b6361}{S\-D\-L\-Visual\-Test\-\_\-\-Parse\-Args\-To\-Argv} (char $\ast$args) +\item +char $\ast$$\ast$ \hyperlink{_s_d_l__visualtest__parsehelper_8h_a508e690ed938e09fc3b724d2faf06899}{S\-D\-L\-Visual\-Test\-\_\-\-Tokenize} (char $\ast$str, int max\-\_\-token\-\_\-len) +\end{DoxyCompactItemize} + + +\subsection{Detailed Description} +Header with some helper functions for parsing strings. + +\subsection{Function Documentation} +\hypertarget{_s_d_l__visualtest__parsehelper_8h_a5f168fdd02f9d40ddbad97bd8c0b6361}{\index{S\-D\-L\-\_\-visualtest\-\_\-parsehelper.\-h@{S\-D\-L\-\_\-visualtest\-\_\-parsehelper.\-h}!S\-D\-L\-Visual\-Test\-\_\-\-Parse\-Args\-To\-Argv@{S\-D\-L\-Visual\-Test\-\_\-\-Parse\-Args\-To\-Argv}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Parse\-Args\-To\-Argv@{S\-D\-L\-Visual\-Test\-\_\-\-Parse\-Args\-To\-Argv}!SDL_visualtest_parsehelper.h@{S\-D\-L\-\_\-visualtest\-\_\-parsehelper.\-h}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Parse\-Args\-To\-Argv}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$$\ast$ S\-D\-L\-Visual\-Test\-\_\-\-Parse\-Args\-To\-Argv ( +\begin{DoxyParamCaption} +\item[{char $\ast$}]{args} +\end{DoxyParamCaption} +)}}\label{_s_d_l__visualtest__parsehelper_8h_a5f168fdd02f9d40ddbad97bd8c0b6361} +Takes an string of command line arguments and breaks them up into an array based on whitespace. + + +\begin{DoxyParams}{Parameters} +{\em args} & The string of arguments.\\ +\hline +\end{DoxyParams} +\begin{DoxyReturn}{Returns} +N\-U\-L\-L on failure, an array of strings on success. The last element of the array is N\-U\-L\-L. The first element of the array is N\-U\-L\-L and should be set to the path of the executable by the caller. +\end{DoxyReturn} +\hypertarget{_s_d_l__visualtest__parsehelper_8h_a508e690ed938e09fc3b724d2faf06899}{\index{S\-D\-L\-\_\-visualtest\-\_\-parsehelper.\-h@{S\-D\-L\-\_\-visualtest\-\_\-parsehelper.\-h}!S\-D\-L\-Visual\-Test\-\_\-\-Tokenize@{S\-D\-L\-Visual\-Test\-\_\-\-Tokenize}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Tokenize@{S\-D\-L\-Visual\-Test\-\_\-\-Tokenize}!SDL_visualtest_parsehelper.h@{S\-D\-L\-\_\-visualtest\-\_\-parsehelper.\-h}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Tokenize}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$$\ast$ S\-D\-L\-Visual\-Test\-\_\-\-Tokenize ( +\begin{DoxyParamCaption} +\item[{char $\ast$}]{str, } +\item[{int}]{max\-\_\-token\-\_\-len} +\end{DoxyParamCaption} +)}}\label{_s_d_l__visualtest__parsehelper_8h_a508e690ed938e09fc3b724d2faf06899} +Takes a string and breaks it into tokens by splitting on whitespace. + + +\begin{DoxyParams}{Parameters} +{\em str} & The string to be split. \\ +\hline +{\em max\-\_\-token\-\_\-len} & Length of each element in the array to be returned.\\ +\hline +\end{DoxyParams} +\begin{DoxyReturn}{Returns} +N\-U\-L\-L on failure; an array of strings with the tokens on success. The last element of the array is N\-U\-L\-L. +\end{DoxyReturn} diff --git a/visualtest/docs/latex/_s_d_l__visualtest__process_8h.tex b/visualtest/docs/latex/_s_d_l__visualtest__process_8h.tex new file mode 100755 index 0000000000000..d09cabf3c78e4 --- /dev/null +++ b/visualtest/docs/latex/_s_d_l__visualtest__process_8h.tex @@ -0,0 +1,140 @@ +\hypertarget{_s_d_l__visualtest__process_8h}{\section{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\-S\-D\-L\-\_\-visualtest\-\_\-process.h File Reference} +\label{_s_d_l__visualtest__process_8h}\index{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\-S\-D\-L\-\_\-visualtest\-\_\-process.\-h@{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\-S\-D\-L\-\_\-visualtest\-\_\-process.\-h}} +} +{\ttfamily \#include $<$S\-D\-L\-\_\-platform.\-h$>$}\\* +\subsection*{Data Structures} +\begin{DoxyCompactItemize} +\item +struct \hyperlink{struct_s_d_l___process_info}{S\-D\-L\-\_\-\-Process\-Info} +\item +struct \hyperlink{struct_s_d_l___process_exit_status}{S\-D\-L\-\_\-\-Process\-Exit\-Status} +\end{DoxyCompactItemize} +\subsection*{Typedefs} +\begin{DoxyCompactItemize} +\item +typedef struct \hyperlink{struct_s_d_l___process_info}{S\-D\-L\-\_\-\-Process\-Info} \hyperlink{_s_d_l__visualtest__process_8h_a94bc9e0b0b563a527ea50ef2eecd5402}{S\-D\-L\-\_\-\-Process\-Info} +\item +typedef struct \\* +\hyperlink{struct_s_d_l___process_exit_status}{S\-D\-L\-\_\-\-Process\-Exit\-Status} \hyperlink{_s_d_l__visualtest__process_8h_a5b7d5262f85e78bf4d53d88f3c509342}{S\-D\-L\-\_\-\-Process\-Exit\-Status} +\end{DoxyCompactItemize} +\subsection*{Functions} +\begin{DoxyCompactItemize} +\item +int \hyperlink{_s_d_l__visualtest__process_8h_a12c16e5b870e2794d6bd5a1a3bb4582f}{S\-D\-L\-\_\-\-Launch\-Process} (char $\ast$file, char $\ast$args, \hyperlink{struct_s_d_l___process_info}{S\-D\-L\-\_\-\-Process\-Info} $\ast$pinfo) +\item +int \hyperlink{_s_d_l__visualtest__process_8h_a3a131140a71bf68fa68a900f06872239}{S\-D\-L\-\_\-\-Is\-Process\-Running} (\hyperlink{struct_s_d_l___process_info}{S\-D\-L\-\_\-\-Process\-Info} $\ast$pinfo) +\item +int \hyperlink{_s_d_l__visualtest__process_8h_ae66242e44a004831ab231693fd11c8d0}{S\-D\-L\-\_\-\-Kill\-Process} (\hyperlink{struct_s_d_l___process_info}{S\-D\-L\-\_\-\-Process\-Info} $\ast$pinfo, \hyperlink{struct_s_d_l___process_exit_status}{S\-D\-L\-\_\-\-Process\-Exit\-Status} $\ast$ps) +\item +int \hyperlink{_s_d_l__visualtest__process_8h_ad8a5b6725ad1f0e1bac623cf4b6fc28d}{S\-D\-L\-\_\-\-Quit\-Process} (\hyperlink{struct_s_d_l___process_info}{S\-D\-L\-\_\-\-Process\-Info} $\ast$pinfo, \hyperlink{struct_s_d_l___process_exit_status}{S\-D\-L\-\_\-\-Process\-Exit\-Status} $\ast$ps) +\item +int \hyperlink{_s_d_l__visualtest__process_8h_a54545d6b9f737a14030b4ce55ddd4a62}{S\-D\-L\-\_\-\-Get\-Process\-Exit\-Status} (\hyperlink{struct_s_d_l___process_info}{S\-D\-L\-\_\-\-Process\-Info} $\ast$pinfo, \hyperlink{struct_s_d_l___process_exit_status}{S\-D\-L\-\_\-\-Process\-Exit\-Status} $\ast$ps) +\end{DoxyCompactItemize} + + +\subsection{Detailed Description} +Provides cross-\/platfrom process launching and termination functionality. + +\subsection{Typedef Documentation} +\hypertarget{_s_d_l__visualtest__process_8h_a5b7d5262f85e78bf4d53d88f3c509342}{\index{S\-D\-L\-\_\-visualtest\-\_\-process.\-h@{S\-D\-L\-\_\-visualtest\-\_\-process.\-h}!S\-D\-L\-\_\-\-Process\-Exit\-Status@{S\-D\-L\-\_\-\-Process\-Exit\-Status}} +\index{S\-D\-L\-\_\-\-Process\-Exit\-Status@{S\-D\-L\-\_\-\-Process\-Exit\-Status}!SDL_visualtest_process.h@{S\-D\-L\-\_\-visualtest\-\_\-process.\-h}} +\subsubsection[{S\-D\-L\-\_\-\-Process\-Exit\-Status}]{\setlength{\rightskip}{0pt plus 5cm}typedef struct {\bf S\-D\-L\-\_\-\-Process\-Exit\-Status} {\bf S\-D\-L\-\_\-\-Process\-Exit\-Status}}}\label{_s_d_l__visualtest__process_8h_a5b7d5262f85e78bf4d53d88f3c509342} +This structure stores the exit status (value returned by \hyperlink{testharness_8c_a0ddf1224851353fc92bfbff6f499fa97}{main()}) and whether the process exited sucessfully or not. \hypertarget{_s_d_l__visualtest__process_8h_a94bc9e0b0b563a527ea50ef2eecd5402}{\index{S\-D\-L\-\_\-visualtest\-\_\-process.\-h@{S\-D\-L\-\_\-visualtest\-\_\-process.\-h}!S\-D\-L\-\_\-\-Process\-Info@{S\-D\-L\-\_\-\-Process\-Info}} +\index{S\-D\-L\-\_\-\-Process\-Info@{S\-D\-L\-\_\-\-Process\-Info}!SDL_visualtest_process.h@{S\-D\-L\-\_\-visualtest\-\_\-process.\-h}} +\subsubsection[{S\-D\-L\-\_\-\-Process\-Info}]{\setlength{\rightskip}{0pt plus 5cm}typedef struct {\bf S\-D\-L\-\_\-\-Process\-Info} {\bf S\-D\-L\-\_\-\-Process\-Info}}}\label{_s_d_l__visualtest__process_8h_a94bc9e0b0b563a527ea50ef2eecd5402} +Struct to store a platform specific handle to a process. + +\subsection{Function Documentation} +\hypertarget{_s_d_l__visualtest__process_8h_a54545d6b9f737a14030b4ce55ddd4a62}{\index{S\-D\-L\-\_\-visualtest\-\_\-process.\-h@{S\-D\-L\-\_\-visualtest\-\_\-process.\-h}!S\-D\-L\-\_\-\-Get\-Process\-Exit\-Status@{S\-D\-L\-\_\-\-Get\-Process\-Exit\-Status}} +\index{S\-D\-L\-\_\-\-Get\-Process\-Exit\-Status@{S\-D\-L\-\_\-\-Get\-Process\-Exit\-Status}!SDL_visualtest_process.h@{S\-D\-L\-\_\-visualtest\-\_\-process.\-h}} +\subsubsection[{S\-D\-L\-\_\-\-Get\-Process\-Exit\-Status}]{\setlength{\rightskip}{0pt plus 5cm}int S\-D\-L\-\_\-\-Get\-Process\-Exit\-Status ( +\begin{DoxyParamCaption} +\item[{{\bf S\-D\-L\-\_\-\-Process\-Info} $\ast$}]{pinfo, } +\item[{{\bf S\-D\-L\-\_\-\-Process\-Exit\-Status} $\ast$}]{ps} +\end{DoxyParamCaption} +)}}\label{_s_d_l__visualtest__process_8h_a54545d6b9f737a14030b4ce55ddd4a62} +Gets the exit status of a process. If the exit status is -\/1, the process is still running. + + +\begin{DoxyParams}{Parameters} +{\em pinfo} & Pointer to a \hyperlink{struct_s_d_l___process_info}{S\-D\-L\-\_\-\-Process\-Info} object of the process to be checked. \\ +\hline +{\em ps} & Pointer to a \hyperlink{struct_s_d_l___process_exit_status}{S\-D\-L\-\_\-\-Process\-Exit\-Status} object which will be populated with the exit status.\\ +\hline +\end{DoxyParams} +\begin{DoxyReturn}{Returns} +1 on success, 0 on failure. +\end{DoxyReturn} +\hypertarget{_s_d_l__visualtest__process_8h_a3a131140a71bf68fa68a900f06872239}{\index{S\-D\-L\-\_\-visualtest\-\_\-process.\-h@{S\-D\-L\-\_\-visualtest\-\_\-process.\-h}!S\-D\-L\-\_\-\-Is\-Process\-Running@{S\-D\-L\-\_\-\-Is\-Process\-Running}} +\index{S\-D\-L\-\_\-\-Is\-Process\-Running@{S\-D\-L\-\_\-\-Is\-Process\-Running}!SDL_visualtest_process.h@{S\-D\-L\-\_\-visualtest\-\_\-process.\-h}} +\subsubsection[{S\-D\-L\-\_\-\-Is\-Process\-Running}]{\setlength{\rightskip}{0pt plus 5cm}int S\-D\-L\-\_\-\-Is\-Process\-Running ( +\begin{DoxyParamCaption} +\item[{{\bf S\-D\-L\-\_\-\-Process\-Info} $\ast$}]{pinfo} +\end{DoxyParamCaption} +)}}\label{_s_d_l__visualtest__process_8h_a3a131140a71bf68fa68a900f06872239} +Checks if a process is running or not. + + +\begin{DoxyParams}{Parameters} +{\em pinfo} & Pointer to \hyperlink{struct_s_d_l___process_info}{S\-D\-L\-\_\-\-Process\-Info} object of the process that needs to be checked.\\ +\hline +\end{DoxyParams} +\begin{DoxyReturn}{Returns} +1 if the process is still running; zero if it is not and -\/1 if the status could not be retrieved. +\end{DoxyReturn} +\hypertarget{_s_d_l__visualtest__process_8h_ae66242e44a004831ab231693fd11c8d0}{\index{S\-D\-L\-\_\-visualtest\-\_\-process.\-h@{S\-D\-L\-\_\-visualtest\-\_\-process.\-h}!S\-D\-L\-\_\-\-Kill\-Process@{S\-D\-L\-\_\-\-Kill\-Process}} +\index{S\-D\-L\-\_\-\-Kill\-Process@{S\-D\-L\-\_\-\-Kill\-Process}!SDL_visualtest_process.h@{S\-D\-L\-\_\-visualtest\-\_\-process.\-h}} +\subsubsection[{S\-D\-L\-\_\-\-Kill\-Process}]{\setlength{\rightskip}{0pt plus 5cm}int S\-D\-L\-\_\-\-Kill\-Process ( +\begin{DoxyParamCaption} +\item[{{\bf S\-D\-L\-\_\-\-Process\-Info} $\ast$}]{pinfo, } +\item[{{\bf S\-D\-L\-\_\-\-Process\-Exit\-Status} $\ast$}]{ps} +\end{DoxyParamCaption} +)}}\label{_s_d_l__visualtest__process_8h_ae66242e44a004831ab231693fd11c8d0} +Kills a currently running process. + + +\begin{DoxyParams}{Parameters} +{\em pinfo} & Pointer to a \hyperlink{struct_s_d_l___process_info}{S\-D\-L\-\_\-\-Process\-Info} object of the process to be terminated. \\ +\hline +{\em ps} & Pointer to a \hyperlink{struct_s_d_l___process_exit_status}{S\-D\-L\-\_\-\-Process\-Exit\-Status} object which will be populated with the exit status.\\ +\hline +\end{DoxyParams} +\begin{DoxyReturn}{Returns} +1 on success, 0 on failure. +\end{DoxyReturn} +\hypertarget{_s_d_l__visualtest__process_8h_a12c16e5b870e2794d6bd5a1a3bb4582f}{\index{S\-D\-L\-\_\-visualtest\-\_\-process.\-h@{S\-D\-L\-\_\-visualtest\-\_\-process.\-h}!S\-D\-L\-\_\-\-Launch\-Process@{S\-D\-L\-\_\-\-Launch\-Process}} +\index{S\-D\-L\-\_\-\-Launch\-Process@{S\-D\-L\-\_\-\-Launch\-Process}!SDL_visualtest_process.h@{S\-D\-L\-\_\-visualtest\-\_\-process.\-h}} +\subsubsection[{S\-D\-L\-\_\-\-Launch\-Process}]{\setlength{\rightskip}{0pt plus 5cm}int S\-D\-L\-\_\-\-Launch\-Process ( +\begin{DoxyParamCaption} +\item[{char $\ast$}]{file, } +\item[{char $\ast$}]{args, } +\item[{{\bf S\-D\-L\-\_\-\-Process\-Info} $\ast$}]{pinfo} +\end{DoxyParamCaption} +)}}\label{_s_d_l__visualtest__process_8h_a12c16e5b870e2794d6bd5a1a3bb4582f} +Launches a process with the given commandline arguments. + + +\begin{DoxyParams}{Parameters} +{\em file} & The path to the executable to be launched. \\ +\hline +{\em args} & The command line arguments to be passed to the process. \\ +\hline +{\em pinfo} & Pointer to an \hyperlink{struct_s_d_l___process_info}{S\-D\-L\-\_\-\-Process\-Info} object to be populated with platform specific information about the launched process.\\ +\hline +\end{DoxyParams} +\begin{DoxyReturn}{Returns} +Non-\/zero on success, zero on failure. +\end{DoxyReturn} +\hypertarget{_s_d_l__visualtest__process_8h_ad8a5b6725ad1f0e1bac623cf4b6fc28d}{\index{S\-D\-L\-\_\-visualtest\-\_\-process.\-h@{S\-D\-L\-\_\-visualtest\-\_\-process.\-h}!S\-D\-L\-\_\-\-Quit\-Process@{S\-D\-L\-\_\-\-Quit\-Process}} +\index{S\-D\-L\-\_\-\-Quit\-Process@{S\-D\-L\-\_\-\-Quit\-Process}!SDL_visualtest_process.h@{S\-D\-L\-\_\-visualtest\-\_\-process.\-h}} +\subsubsection[{S\-D\-L\-\_\-\-Quit\-Process}]{\setlength{\rightskip}{0pt plus 5cm}int S\-D\-L\-\_\-\-Quit\-Process ( +\begin{DoxyParamCaption} +\item[{{\bf S\-D\-L\-\_\-\-Process\-Info} $\ast$}]{pinfo, } +\item[{{\bf S\-D\-L\-\_\-\-Process\-Exit\-Status} $\ast$}]{ps} +\end{DoxyParamCaption} +)}}\label{_s_d_l__visualtest__process_8h_ad8a5b6725ad1f0e1bac623cf4b6fc28d} +Cleanly exits the process represented by {\ttfamily pinfo} and stores the exit status in the exit status object pointed to by {\ttfamily ps}. + +\begin{DoxyReturn}{Returns} +1 on success, 0 on failure. +\end{DoxyReturn} diff --git a/visualtest/docs/latex/_s_d_l__visualtest__random__variator_8h.tex b/visualtest/docs/latex/_s_d_l__visualtest__random__variator_8h.tex new file mode 100755 index 0000000000000..cbd8452ae7062 --- /dev/null +++ b/visualtest/docs/latex/_s_d_l__visualtest__random__variator_8h.tex @@ -0,0 +1,70 @@ +\hypertarget{_s_d_l__visualtest__random__variator_8h}{\section{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\-S\-D\-L\-\_\-visualtest\-\_\-random\-\_\-variator.h File Reference} +\label{_s_d_l__visualtest__random__variator_8h}\index{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\-S\-D\-L\-\_\-visualtest\-\_\-random\-\_\-variator.\-h@{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\-S\-D\-L\-\_\-visualtest\-\_\-random\-\_\-variator.\-h}} +} +{\ttfamily \#include \char`\"{}S\-D\-L\-\_\-visualtest\-\_\-harness\-\_\-argparser.\-h\char`\"{}}\\* +{\ttfamily \#include \char`\"{}S\-D\-L\-\_\-visualtest\-\_\-variator\-\_\-common.\-h\char`\"{}}\\* +\subsection*{Data Structures} +\begin{DoxyCompactItemize} +\item +struct \hyperlink{struct_s_d_l_visual_test___random_variator}{S\-D\-L\-Visual\-Test\-\_\-\-Random\-Variator} +\end{DoxyCompactItemize} +\subsection*{Typedefs} +\begin{DoxyCompactItemize} +\item +typedef struct \\* +\hyperlink{struct_s_d_l_visual_test___random_variator}{S\-D\-L\-Visual\-Test\-\_\-\-Random\-Variator} \hyperlink{_s_d_l__visualtest__random__variator_8h_ab0df6ee6ec21b5070bfd8e90a7d79974}{S\-D\-L\-Visual\-Test\-\_\-\-Random\-Variator} +\end{DoxyCompactItemize} +\subsection*{Functions} +\begin{DoxyCompactItemize} +\item +int \hyperlink{_s_d_l__visualtest__random__variator_8h_a807486069b7180c3b3bf8af4616d055f}{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Random\-Variator} (\hyperlink{struct_s_d_l_visual_test___random_variator}{S\-D\-L\-Visual\-Test\-\_\-\-Random\-Variator} $\ast$variator, \hyperlink{struct_s_d_l_visual_test___s_u_t_config}{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config} $\ast$config, Uint64 seed) +\item +char $\ast$ \hyperlink{_s_d_l__visualtest__random__variator_8h_a479aceb74b5355c1d22856fc7efce890}{S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Random\-Variation} (\hyperlink{struct_s_d_l_visual_test___random_variator}{S\-D\-L\-Visual\-Test\-\_\-\-Random\-Variator} $\ast$variator) +\item +void \hyperlink{_s_d_l__visualtest__random__variator_8h_ac95d9e0716e4c918c6902b10f9591d4b}{S\-D\-L\-Visual\-Test\-\_\-\-Free\-Random\-Variator} (\hyperlink{struct_s_d_l_visual_test___random_variator}{S\-D\-L\-Visual\-Test\-\_\-\-Random\-Variator} $\ast$variator) +\end{DoxyCompactItemize} + + +\subsection{Detailed Description} +Header for the random variator. + +\subsection{Typedef Documentation} +\hypertarget{_s_d_l__visualtest__random__variator_8h_ab0df6ee6ec21b5070bfd8e90a7d79974}{\index{S\-D\-L\-\_\-visualtest\-\_\-random\-\_\-variator.\-h@{S\-D\-L\-\_\-visualtest\-\_\-random\-\_\-variator.\-h}!S\-D\-L\-Visual\-Test\-\_\-\-Random\-Variator@{S\-D\-L\-Visual\-Test\-\_\-\-Random\-Variator}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Random\-Variator@{S\-D\-L\-Visual\-Test\-\_\-\-Random\-Variator}!SDL_visualtest_random_variator.h@{S\-D\-L\-\_\-visualtest\-\_\-random\-\_\-variator.\-h}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Random\-Variator}]{\setlength{\rightskip}{0pt plus 5cm}typedef struct {\bf S\-D\-L\-Visual\-Test\-\_\-\-Random\-Variator} {\bf S\-D\-L\-Visual\-Test\-\_\-\-Random\-Variator}}}\label{_s_d_l__visualtest__random__variator_8h_ab0df6ee6ec21b5070bfd8e90a7d79974} +Struct for the variator that randomly generates variations of command line arguments to the S\-U\-T. + +\subsection{Function Documentation} +\hypertarget{_s_d_l__visualtest__random__variator_8h_ac95d9e0716e4c918c6902b10f9591d4b}{\index{S\-D\-L\-\_\-visualtest\-\_\-random\-\_\-variator.\-h@{S\-D\-L\-\_\-visualtest\-\_\-random\-\_\-variator.\-h}!S\-D\-L\-Visual\-Test\-\_\-\-Free\-Random\-Variator@{S\-D\-L\-Visual\-Test\-\_\-\-Free\-Random\-Variator}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Free\-Random\-Variator@{S\-D\-L\-Visual\-Test\-\_\-\-Free\-Random\-Variator}!SDL_visualtest_random_variator.h@{S\-D\-L\-\_\-visualtest\-\_\-random\-\_\-variator.\-h}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Free\-Random\-Variator}]{\setlength{\rightskip}{0pt plus 5cm}void S\-D\-L\-Visual\-Test\-\_\-\-Free\-Random\-Variator ( +\begin{DoxyParamCaption} +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Random\-Variator} $\ast$}]{variator} +\end{DoxyParamCaption} +)}}\label{_s_d_l__visualtest__random__variator_8h_ac95d9e0716e4c918c6902b10f9591d4b} +Frees any resources associated with the variator. \hypertarget{_s_d_l__visualtest__random__variator_8h_a479aceb74b5355c1d22856fc7efce890}{\index{S\-D\-L\-\_\-visualtest\-\_\-random\-\_\-variator.\-h@{S\-D\-L\-\_\-visualtest\-\_\-random\-\_\-variator.\-h}!S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Random\-Variation@{S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Random\-Variation}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Random\-Variation@{S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Random\-Variation}!SDL_visualtest_random_variator.h@{S\-D\-L\-\_\-visualtest\-\_\-random\-\_\-variator.\-h}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Random\-Variation}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Random\-Variation ( +\begin{DoxyParamCaption} +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Random\-Variator} $\ast$}]{variator} +\end{DoxyParamCaption} +)}}\label{_s_d_l__visualtest__random__variator_8h_a479aceb74b5355c1d22856fc7efce890} +Generates a new random variation. + +\begin{DoxyReturn}{Returns} +The arguments string representing the random variation on success, and N\-U\-L\-L on failure. The pointer returned should not be freed. +\end{DoxyReturn} +\hypertarget{_s_d_l__visualtest__random__variator_8h_a807486069b7180c3b3bf8af4616d055f}{\index{S\-D\-L\-\_\-visualtest\-\_\-random\-\_\-variator.\-h@{S\-D\-L\-\_\-visualtest\-\_\-random\-\_\-variator.\-h}!S\-D\-L\-Visual\-Test\-\_\-\-Init\-Random\-Variator@{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Random\-Variator}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Random\-Variator@{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Random\-Variator}!SDL_visualtest_random_variator.h@{S\-D\-L\-\_\-visualtest\-\_\-random\-\_\-variator.\-h}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Random\-Variator}]{\setlength{\rightskip}{0pt plus 5cm}int S\-D\-L\-Visual\-Test\-\_\-\-Init\-Random\-Variator ( +\begin{DoxyParamCaption} +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Random\-Variator} $\ast$}]{variator, } +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config} $\ast$}]{config, } +\item[{Uint64}]{seed} +\end{DoxyParamCaption} +)}}\label{_s_d_l__visualtest__random__variator_8h_a807486069b7180c3b3bf8af4616d055f} +Initializes the variator. + +\begin{DoxyReturn}{Returns} +1 on success, 0 on failure +\end{DoxyReturn} diff --git a/visualtest/docs/latex/_s_d_l__visualtest__screenshot_8h.tex b/visualtest/docs/latex/_s_d_l__visualtest__screenshot_8h.tex new file mode 100755 index 0000000000000..63706fe2cdfc0 --- /dev/null +++ b/visualtest/docs/latex/_s_d_l__visualtest__screenshot_8h.tex @@ -0,0 +1,58 @@ +\hypertarget{_s_d_l__visualtest__screenshot_8h}{\section{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\-S\-D\-L\-\_\-visualtest\-\_\-screenshot.h File Reference} +\label{_s_d_l__visualtest__screenshot_8h}\index{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\-S\-D\-L\-\_\-visualtest\-\_\-screenshot.\-h@{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\-S\-D\-L\-\_\-visualtest\-\_\-screenshot.\-h}} +} +{\ttfamily \#include \char`\"{}S\-D\-L\-\_\-visualtest\-\_\-process.\-h\char`\"{}}\\* +\subsection*{Functions} +\begin{DoxyCompactItemize} +\item +int \hyperlink{_s_d_l__visualtest__screenshot_8h_aefe6b7dbca1fbfb7aef081545c3ca66d}{S\-D\-L\-Visual\-Test\-\_\-\-Screenshot\-Process} (\hyperlink{struct_s_d_l___process_info}{S\-D\-L\-\_\-\-Process\-Info} $\ast$pinfo, char $\ast$prefix) +\item +int \hyperlink{_s_d_l__visualtest__screenshot_8h_a812c545e97db11a756145d43b3a8e5ee}{S\-D\-L\-Visual\-Test\-\_\-\-Screenshot\-Desktop} (char $\ast$filename) +\item +int \hyperlink{_s_d_l__visualtest__screenshot_8h_ac7b5335651144961676abc2116c38299}{S\-D\-L\-Visual\-Test\-\_\-\-Verify\-Screenshots} (char $\ast$args, char $\ast$test\-\_\-dir, char $\ast$verify\-\_\-dir) +\end{DoxyCompactItemize} + + +\subsection{Detailed Description} +Header for the screenshot A\-P\-I. + +\subsection{Function Documentation} +\hypertarget{_s_d_l__visualtest__screenshot_8h_a812c545e97db11a756145d43b3a8e5ee}{\index{S\-D\-L\-\_\-visualtest\-\_\-screenshot.\-h@{S\-D\-L\-\_\-visualtest\-\_\-screenshot.\-h}!S\-D\-L\-Visual\-Test\-\_\-\-Screenshot\-Desktop@{S\-D\-L\-Visual\-Test\-\_\-\-Screenshot\-Desktop}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Screenshot\-Desktop@{S\-D\-L\-Visual\-Test\-\_\-\-Screenshot\-Desktop}!SDL_visualtest_screenshot.h@{S\-D\-L\-\_\-visualtest\-\_\-screenshot.\-h}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Screenshot\-Desktop}]{\setlength{\rightskip}{0pt plus 5cm}int S\-D\-L\-Visual\-Test\-\_\-\-Screenshot\-Desktop ( +\begin{DoxyParamCaption} +\item[{char $\ast$}]{filename} +\end{DoxyParamCaption} +)}}\label{_s_d_l__visualtest__screenshot_8h_a812c545e97db11a756145d43b3a8e5ee} +Takes a screenshot of the desktop and saves it into the file with path {\ttfamily filename}. + +\begin{DoxyReturn}{Returns} +1 on success, 0 on failure. +\end{DoxyReturn} +\hypertarget{_s_d_l__visualtest__screenshot_8h_aefe6b7dbca1fbfb7aef081545c3ca66d}{\index{S\-D\-L\-\_\-visualtest\-\_\-screenshot.\-h@{S\-D\-L\-\_\-visualtest\-\_\-screenshot.\-h}!S\-D\-L\-Visual\-Test\-\_\-\-Screenshot\-Process@{S\-D\-L\-Visual\-Test\-\_\-\-Screenshot\-Process}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Screenshot\-Process@{S\-D\-L\-Visual\-Test\-\_\-\-Screenshot\-Process}!SDL_visualtest_screenshot.h@{S\-D\-L\-\_\-visualtest\-\_\-screenshot.\-h}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Screenshot\-Process}]{\setlength{\rightskip}{0pt plus 5cm}int S\-D\-L\-Visual\-Test\-\_\-\-Screenshot\-Process ( +\begin{DoxyParamCaption} +\item[{{\bf S\-D\-L\-\_\-\-Process\-Info} $\ast$}]{pinfo, } +\item[{char $\ast$}]{prefix} +\end{DoxyParamCaption} +)}}\label{_s_d_l__visualtest__screenshot_8h_aefe6b7dbca1fbfb7aef081545c3ca66d} +Takes a screenshot of each window owned by the process {\ttfamily pinfo} and saves it in a file {\ttfamily prefix-\/i.\-png} where {\ttfamily prefix} is the full path to the file along with a prefix given to each screenshot. + +\begin{DoxyReturn}{Returns} +1 on success, 0 on failure. +\end{DoxyReturn} +\hypertarget{_s_d_l__visualtest__screenshot_8h_ac7b5335651144961676abc2116c38299}{\index{S\-D\-L\-\_\-visualtest\-\_\-screenshot.\-h@{S\-D\-L\-\_\-visualtest\-\_\-screenshot.\-h}!S\-D\-L\-Visual\-Test\-\_\-\-Verify\-Screenshots@{S\-D\-L\-Visual\-Test\-\_\-\-Verify\-Screenshots}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Verify\-Screenshots@{S\-D\-L\-Visual\-Test\-\_\-\-Verify\-Screenshots}!SDL_visualtest_screenshot.h@{S\-D\-L\-\_\-visualtest\-\_\-screenshot.\-h}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Verify\-Screenshots}]{\setlength{\rightskip}{0pt plus 5cm}int S\-D\-L\-Visual\-Test\-\_\-\-Verify\-Screenshots ( +\begin{DoxyParamCaption} +\item[{char $\ast$}]{args, } +\item[{char $\ast$}]{test\-\_\-dir, } +\item[{char $\ast$}]{verify\-\_\-dir} +\end{DoxyParamCaption} +)}}\label{_s_d_l__visualtest__screenshot_8h_ac7b5335651144961676abc2116c38299} +Compare a screenshot taken previously with S\-U\-T arguments {\ttfamily args} that is located in {\ttfamily test\-\_\-dir} with a verification image that is located in {\ttfamily verify\-\_\-dir}. + +\begin{DoxyReturn}{Returns} +-\/1 on failure, 0 if the images were not equal, 1 if the images are equal and 2 if the verification image is not present. +\end{DoxyReturn} diff --git a/visualtest/docs/latex/_s_d_l__visualtest__sut__configparser_8h.tex b/visualtest/docs/latex/_s_d_l__visualtest__sut__configparser_8h.tex new file mode 100755 index 0000000000000..5cff047b5308f --- /dev/null +++ b/visualtest/docs/latex/_s_d_l__visualtest__sut__configparser_8h.tex @@ -0,0 +1,117 @@ +\hypertarget{_s_d_l__visualtest__sut__configparser_8h}{\section{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\-S\-D\-L\-\_\-visualtest\-\_\-sut\-\_\-configparser.h File Reference} +\label{_s_d_l__visualtest__sut__configparser_8h}\index{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\-S\-D\-L\-\_\-visualtest\-\_\-sut\-\_\-configparser.\-h@{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\-S\-D\-L\-\_\-visualtest\-\_\-sut\-\_\-configparser.\-h}} +} +\subsection*{Data Structures} +\begin{DoxyCompactItemize} +\item +struct \hyperlink{struct_s_d_l_visual_test___s_u_t_int_range}{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Int\-Range} +\item +struct \hyperlink{struct_s_d_l_visual_test___s_u_t_option}{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option} +\item +struct \hyperlink{struct_s_d_l_visual_test___s_u_t_config}{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config} +\end{DoxyCompactItemize} +\subsection*{Macros} +\begin{DoxyCompactItemize} +\item +\#define \hyperlink{_s_d_l__visualtest__sut__configparser_8h_a0a8b0c1f8eee787abf09bf3a840eccc7}{M\-A\-X\-\_\-\-S\-U\-T\-O\-P\-T\-I\-O\-N\-\_\-\-N\-A\-M\-E\-\_\-\-L\-E\-N}~100 +\item +\#define \hyperlink{_s_d_l__visualtest__sut__configparser_8h_a21a678ced8cdf55b4cc70ad398bf33b6}{M\-A\-X\-\_\-\-S\-U\-T\-O\-P\-T\-I\-O\-N\-\_\-\-C\-A\-T\-E\-G\-O\-R\-Y\-\_\-\-L\-E\-N}~40 +\item +\#define \hyperlink{_s_d_l__visualtest__sut__configparser_8h_a6c700fc8ff02cfa0c795b9593f86b9a0}{M\-A\-X\-\_\-\-S\-U\-T\-O\-P\-T\-I\-O\-N\-\_\-\-E\-N\-U\-M\-V\-A\-L\-\_\-\-L\-E\-N}~40 +\item +\#define \hyperlink{_s_d_l__visualtest__sut__configparser_8h_a8f1a5749af5a592b30a194c72d848f75}{M\-A\-X\-\_\-\-S\-U\-T\-O\-P\-T\-I\-O\-N\-\_\-\-L\-I\-N\-E\-\_\-\-L\-E\-N\-G\-T\-H}~256 +\end{DoxyCompactItemize} +\subsection*{Typedefs} +\begin{DoxyCompactItemize} +\item +typedef struct \\* +\hyperlink{struct_s_d_l_visual_test___s_u_t_int_range}{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Int\-Range} \hyperlink{_s_d_l__visualtest__sut__configparser_8h_a8cbe93330b2ce59cdf6da59e2eca6045}{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Int\-Range} +\item +typedef struct \\* +\hyperlink{struct_s_d_l_visual_test___s_u_t_option}{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option} \hyperlink{_s_d_l__visualtest__sut__configparser_8h_a9f35b5fe1ce4ba831a9b9e1f2bc8b7f6}{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option} +\item +typedef struct \\* +\hyperlink{struct_s_d_l_visual_test___s_u_t_config}{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config} \hyperlink{_s_d_l__visualtest__sut__configparser_8h_a1b493a40d601932b62ee643390aec169}{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config} +\end{DoxyCompactItemize} +\subsection*{Enumerations} +\begin{DoxyCompactItemize} +\item +enum \hyperlink{_s_d_l__visualtest__sut__configparser_8h_af9893831d9f79360f57e84a67a90293c}{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option\-Type} \{ {\bfseries S\-D\-L\-\_\-\-S\-U\-T\-\_\-\-O\-P\-T\-I\-O\-N\-T\-Y\-P\-E\-\_\-\-S\-T\-R\-I\-N\-G} = 0, +{\bfseries S\-D\-L\-\_\-\-S\-U\-T\-\_\-\-O\-P\-T\-I\-O\-N\-T\-Y\-P\-E\-\_\-\-I\-N\-T}, +{\bfseries S\-D\-L\-\_\-\-S\-U\-T\-\_\-\-O\-P\-T\-I\-O\-N\-T\-Y\-P\-E\-\_\-\-E\-N\-U\-M}, +{\bfseries S\-D\-L\-\_\-\-S\-U\-T\-\_\-\-O\-P\-T\-I\-O\-N\-T\-Y\-P\-E\-\_\-\-B\-O\-O\-L} + \} +\end{DoxyCompactItemize} +\subsection*{Functions} +\begin{DoxyCompactItemize} +\item +int \hyperlink{_s_d_l__visualtest__sut__configparser_8h_a8e178cd8a1f279f5d2cf908545e97544}{S\-D\-L\-Visual\-Test\-\_\-\-Parse\-S\-U\-T\-Config} (char $\ast$file, \hyperlink{struct_s_d_l_visual_test___s_u_t_config}{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config} $\ast$config) +\item +void \hyperlink{_s_d_l__visualtest__sut__configparser_8h_a1bddf9732c0d3ed1c24455d22193de9a}{S\-D\-L\-Visual\-Test\-\_\-\-Free\-S\-U\-T\-Config} (\hyperlink{struct_s_d_l_visual_test___s_u_t_config}{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config} $\ast$config) +\end{DoxyCompactItemize} + + +\subsection{Detailed Description} +Header for the parser for S\-U\-T config files. + +\subsection{Macro Definition Documentation} +\hypertarget{_s_d_l__visualtest__sut__configparser_8h_a21a678ced8cdf55b4cc70ad398bf33b6}{\index{S\-D\-L\-\_\-visualtest\-\_\-sut\-\_\-configparser.\-h@{S\-D\-L\-\_\-visualtest\-\_\-sut\-\_\-configparser.\-h}!M\-A\-X\-\_\-\-S\-U\-T\-O\-P\-T\-I\-O\-N\-\_\-\-C\-A\-T\-E\-G\-O\-R\-Y\-\_\-\-L\-E\-N@{M\-A\-X\-\_\-\-S\-U\-T\-O\-P\-T\-I\-O\-N\-\_\-\-C\-A\-T\-E\-G\-O\-R\-Y\-\_\-\-L\-E\-N}} +\index{M\-A\-X\-\_\-\-S\-U\-T\-O\-P\-T\-I\-O\-N\-\_\-\-C\-A\-T\-E\-G\-O\-R\-Y\-\_\-\-L\-E\-N@{M\-A\-X\-\_\-\-S\-U\-T\-O\-P\-T\-I\-O\-N\-\_\-\-C\-A\-T\-E\-G\-O\-R\-Y\-\_\-\-L\-E\-N}!SDL_visualtest_sut_configparser.h@{S\-D\-L\-\_\-visualtest\-\_\-sut\-\_\-configparser.\-h}} +\subsubsection[{M\-A\-X\-\_\-\-S\-U\-T\-O\-P\-T\-I\-O\-N\-\_\-\-C\-A\-T\-E\-G\-O\-R\-Y\-\_\-\-L\-E\-N}]{\setlength{\rightskip}{0pt plus 5cm}\#define M\-A\-X\-\_\-\-S\-U\-T\-O\-P\-T\-I\-O\-N\-\_\-\-C\-A\-T\-E\-G\-O\-R\-Y\-\_\-\-L\-E\-N~40}}\label{_s_d_l__visualtest__sut__configparser_8h_a21a678ced8cdf55b4cc70ad398bf33b6} +Maximum length of the name of a category of an S\-U\-T option \hypertarget{_s_d_l__visualtest__sut__configparser_8h_a6c700fc8ff02cfa0c795b9593f86b9a0}{\index{S\-D\-L\-\_\-visualtest\-\_\-sut\-\_\-configparser.\-h@{S\-D\-L\-\_\-visualtest\-\_\-sut\-\_\-configparser.\-h}!M\-A\-X\-\_\-\-S\-U\-T\-O\-P\-T\-I\-O\-N\-\_\-\-E\-N\-U\-M\-V\-A\-L\-\_\-\-L\-E\-N@{M\-A\-X\-\_\-\-S\-U\-T\-O\-P\-T\-I\-O\-N\-\_\-\-E\-N\-U\-M\-V\-A\-L\-\_\-\-L\-E\-N}} +\index{M\-A\-X\-\_\-\-S\-U\-T\-O\-P\-T\-I\-O\-N\-\_\-\-E\-N\-U\-M\-V\-A\-L\-\_\-\-L\-E\-N@{M\-A\-X\-\_\-\-S\-U\-T\-O\-P\-T\-I\-O\-N\-\_\-\-E\-N\-U\-M\-V\-A\-L\-\_\-\-L\-E\-N}!SDL_visualtest_sut_configparser.h@{S\-D\-L\-\_\-visualtest\-\_\-sut\-\_\-configparser.\-h}} +\subsubsection[{M\-A\-X\-\_\-\-S\-U\-T\-O\-P\-T\-I\-O\-N\-\_\-\-E\-N\-U\-M\-V\-A\-L\-\_\-\-L\-E\-N}]{\setlength{\rightskip}{0pt plus 5cm}\#define M\-A\-X\-\_\-\-S\-U\-T\-O\-P\-T\-I\-O\-N\-\_\-\-E\-N\-U\-M\-V\-A\-L\-\_\-\-L\-E\-N~40}}\label{_s_d_l__visualtest__sut__configparser_8h_a6c700fc8ff02cfa0c795b9593f86b9a0} +Maximum length of one enum value of an S\-U\-T option \hypertarget{_s_d_l__visualtest__sut__configparser_8h_a8f1a5749af5a592b30a194c72d848f75}{\index{S\-D\-L\-\_\-visualtest\-\_\-sut\-\_\-configparser.\-h@{S\-D\-L\-\_\-visualtest\-\_\-sut\-\_\-configparser.\-h}!M\-A\-X\-\_\-\-S\-U\-T\-O\-P\-T\-I\-O\-N\-\_\-\-L\-I\-N\-E\-\_\-\-L\-E\-N\-G\-T\-H@{M\-A\-X\-\_\-\-S\-U\-T\-O\-P\-T\-I\-O\-N\-\_\-\-L\-I\-N\-E\-\_\-\-L\-E\-N\-G\-T\-H}} +\index{M\-A\-X\-\_\-\-S\-U\-T\-O\-P\-T\-I\-O\-N\-\_\-\-L\-I\-N\-E\-\_\-\-L\-E\-N\-G\-T\-H@{M\-A\-X\-\_\-\-S\-U\-T\-O\-P\-T\-I\-O\-N\-\_\-\-L\-I\-N\-E\-\_\-\-L\-E\-N\-G\-T\-H}!SDL_visualtest_sut_configparser.h@{S\-D\-L\-\_\-visualtest\-\_\-sut\-\_\-configparser.\-h}} +\subsubsection[{M\-A\-X\-\_\-\-S\-U\-T\-O\-P\-T\-I\-O\-N\-\_\-\-L\-I\-N\-E\-\_\-\-L\-E\-N\-G\-T\-H}]{\setlength{\rightskip}{0pt plus 5cm}\#define M\-A\-X\-\_\-\-S\-U\-T\-O\-P\-T\-I\-O\-N\-\_\-\-L\-I\-N\-E\-\_\-\-L\-E\-N\-G\-T\-H~256}}\label{_s_d_l__visualtest__sut__configparser_8h_a8f1a5749af5a592b30a194c72d848f75} +Maximum length of a line in the paramters file \hypertarget{_s_d_l__visualtest__sut__configparser_8h_a0a8b0c1f8eee787abf09bf3a840eccc7}{\index{S\-D\-L\-\_\-visualtest\-\_\-sut\-\_\-configparser.\-h@{S\-D\-L\-\_\-visualtest\-\_\-sut\-\_\-configparser.\-h}!M\-A\-X\-\_\-\-S\-U\-T\-O\-P\-T\-I\-O\-N\-\_\-\-N\-A\-M\-E\-\_\-\-L\-E\-N@{M\-A\-X\-\_\-\-S\-U\-T\-O\-P\-T\-I\-O\-N\-\_\-\-N\-A\-M\-E\-\_\-\-L\-E\-N}} +\index{M\-A\-X\-\_\-\-S\-U\-T\-O\-P\-T\-I\-O\-N\-\_\-\-N\-A\-M\-E\-\_\-\-L\-E\-N@{M\-A\-X\-\_\-\-S\-U\-T\-O\-P\-T\-I\-O\-N\-\_\-\-N\-A\-M\-E\-\_\-\-L\-E\-N}!SDL_visualtest_sut_configparser.h@{S\-D\-L\-\_\-visualtest\-\_\-sut\-\_\-configparser.\-h}} +\subsubsection[{M\-A\-X\-\_\-\-S\-U\-T\-O\-P\-T\-I\-O\-N\-\_\-\-N\-A\-M\-E\-\_\-\-L\-E\-N}]{\setlength{\rightskip}{0pt plus 5cm}\#define M\-A\-X\-\_\-\-S\-U\-T\-O\-P\-T\-I\-O\-N\-\_\-\-N\-A\-M\-E\-\_\-\-L\-E\-N~100}}\label{_s_d_l__visualtest__sut__configparser_8h_a0a8b0c1f8eee787abf09bf3a840eccc7} +Maximum length of the name of an S\-U\-T option + +\subsection{Typedef Documentation} +\hypertarget{_s_d_l__visualtest__sut__configparser_8h_a1b493a40d601932b62ee643390aec169}{\index{S\-D\-L\-\_\-visualtest\-\_\-sut\-\_\-configparser.\-h@{S\-D\-L\-\_\-visualtest\-\_\-sut\-\_\-configparser.\-h}!S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config@{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config@{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config}!SDL_visualtest_sut_configparser.h@{S\-D\-L\-\_\-visualtest\-\_\-sut\-\_\-configparser.\-h}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config}]{\setlength{\rightskip}{0pt plus 5cm}typedef struct {\bf S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config} {\bf S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config}}}\label{_s_d_l__visualtest__sut__configparser_8h_a1b493a40d601932b62ee643390aec169} +Struct to hold all the options to an S\-U\-T application. \hypertarget{_s_d_l__visualtest__sut__configparser_8h_a8cbe93330b2ce59cdf6da59e2eca6045}{\index{S\-D\-L\-\_\-visualtest\-\_\-sut\-\_\-configparser.\-h@{S\-D\-L\-\_\-visualtest\-\_\-sut\-\_\-configparser.\-h}!S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Int\-Range@{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Int\-Range}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Int\-Range@{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Int\-Range}!SDL_visualtest_sut_configparser.h@{S\-D\-L\-\_\-visualtest\-\_\-sut\-\_\-configparser.\-h}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Int\-Range}]{\setlength{\rightskip}{0pt plus 5cm}typedef struct {\bf S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Int\-Range} {\bf S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Int\-Range}}}\label{_s_d_l__visualtest__sut__configparser_8h_a8cbe93330b2ce59cdf6da59e2eca6045} +Represents the range of values an integer option can take. \hypertarget{_s_d_l__visualtest__sut__configparser_8h_a9f35b5fe1ce4ba831a9b9e1f2bc8b7f6}{\index{S\-D\-L\-\_\-visualtest\-\_\-sut\-\_\-configparser.\-h@{S\-D\-L\-\_\-visualtest\-\_\-sut\-\_\-configparser.\-h}!S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option@{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option@{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option}!SDL_visualtest_sut_configparser.h@{S\-D\-L\-\_\-visualtest\-\_\-sut\-\_\-configparser.\-h}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option}]{\setlength{\rightskip}{0pt plus 5cm}typedef struct {\bf S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option} {\bf S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option}}}\label{_s_d_l__visualtest__sut__configparser_8h_a9f35b5fe1ce4ba831a9b9e1f2bc8b7f6} +Struct that defines an option to be passed to the S\-U\-T. + +\subsection{Enumeration Type Documentation} +\hypertarget{_s_d_l__visualtest__sut__configparser_8h_af9893831d9f79360f57e84a67a90293c}{\index{S\-D\-L\-\_\-visualtest\-\_\-sut\-\_\-configparser.\-h@{S\-D\-L\-\_\-visualtest\-\_\-sut\-\_\-configparser.\-h}!S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option\-Type@{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option\-Type}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option\-Type@{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option\-Type}!SDL_visualtest_sut_configparser.h@{S\-D\-L\-\_\-visualtest\-\_\-sut\-\_\-configparser.\-h}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option\-Type}]{\setlength{\rightskip}{0pt plus 5cm}enum {\bf S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option\-Type}}}\label{_s_d_l__visualtest__sut__configparser_8h_af9893831d9f79360f57e84a67a90293c} +Describes the different kinds of options to the S\-U\-T. + +\subsection{Function Documentation} +\hypertarget{_s_d_l__visualtest__sut__configparser_8h_a1bddf9732c0d3ed1c24455d22193de9a}{\index{S\-D\-L\-\_\-visualtest\-\_\-sut\-\_\-configparser.\-h@{S\-D\-L\-\_\-visualtest\-\_\-sut\-\_\-configparser.\-h}!S\-D\-L\-Visual\-Test\-\_\-\-Free\-S\-U\-T\-Config@{S\-D\-L\-Visual\-Test\-\_\-\-Free\-S\-U\-T\-Config}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Free\-S\-U\-T\-Config@{S\-D\-L\-Visual\-Test\-\_\-\-Free\-S\-U\-T\-Config}!SDL_visualtest_sut_configparser.h@{S\-D\-L\-\_\-visualtest\-\_\-sut\-\_\-configparser.\-h}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Free\-S\-U\-T\-Config}]{\setlength{\rightskip}{0pt plus 5cm}void S\-D\-L\-Visual\-Test\-\_\-\-Free\-S\-U\-T\-Config ( +\begin{DoxyParamCaption} +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config} $\ast$}]{config} +\end{DoxyParamCaption} +)}}\label{_s_d_l__visualtest__sut__configparser_8h_a1bddf9732c0d3ed1c24455d22193de9a} +Free any resources associated with the config object pointed to by {\ttfamily config}. \hypertarget{_s_d_l__visualtest__sut__configparser_8h_a8e178cd8a1f279f5d2cf908545e97544}{\index{S\-D\-L\-\_\-visualtest\-\_\-sut\-\_\-configparser.\-h@{S\-D\-L\-\_\-visualtest\-\_\-sut\-\_\-configparser.\-h}!S\-D\-L\-Visual\-Test\-\_\-\-Parse\-S\-U\-T\-Config@{S\-D\-L\-Visual\-Test\-\_\-\-Parse\-S\-U\-T\-Config}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Parse\-S\-U\-T\-Config@{S\-D\-L\-Visual\-Test\-\_\-\-Parse\-S\-U\-T\-Config}!SDL_visualtest_sut_configparser.h@{S\-D\-L\-\_\-visualtest\-\_\-sut\-\_\-configparser.\-h}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Parse\-S\-U\-T\-Config}]{\setlength{\rightskip}{0pt plus 5cm}int S\-D\-L\-Visual\-Test\-\_\-\-Parse\-S\-U\-T\-Config ( +\begin{DoxyParamCaption} +\item[{char $\ast$}]{file, } +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config} $\ast$}]{config} +\end{DoxyParamCaption} +)}}\label{_s_d_l__visualtest__sut__configparser_8h_a8e178cd8a1f279f5d2cf908545e97544} +Parses a configuration file that describes the command line options an S\-U\-T application will take and populates a S\-U\-T config object. All lines in the config file must be smaller than + + +\begin{DoxyParams}{Parameters} +{\em file} & Path to the configuration file. \\ +\hline +{\em config} & Pointer to an object that represents an S\-U\-T configuration.\\ +\hline +\end{DoxyParams} +\begin{DoxyReturn}{Returns} +zero on failure, non-\/zero on success +\end{DoxyReturn} diff --git a/visualtest/docs/latex/_s_d_l__visualtest__variator__common_8h.tex b/visualtest/docs/latex/_s_d_l__visualtest__variator__common_8h.tex new file mode 100755 index 0000000000000..85527f745a4db --- /dev/null +++ b/visualtest/docs/latex/_s_d_l__visualtest__variator__common_8h.tex @@ -0,0 +1,141 @@ +\hypertarget{_s_d_l__visualtest__variator__common_8h}{\section{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\-S\-D\-L\-\_\-visualtest\-\_\-variator\-\_\-common.h File Reference} +\label{_s_d_l__visualtest__variator__common_8h}\index{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\-S\-D\-L\-\_\-visualtest\-\_\-variator\-\_\-common.\-h@{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\-S\-D\-L\-\_\-visualtest\-\_\-variator\-\_\-common.\-h}} +} +{\ttfamily \#include $<$S\-D\-L\-\_\-types.\-h$>$}\\* +{\ttfamily \#include \char`\"{}S\-D\-L\-\_\-visualtest\-\_\-sut\-\_\-configparser.\-h\char`\"{}}\\* +\subsection*{Data Structures} +\begin{DoxyCompactItemize} +\item +union \hyperlink{union_s_d_l_visual_test___s_u_t_option_value}{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option\-Value} +\item +struct \hyperlink{struct_s_d_l_visual_test___variation}{S\-D\-L\-Visual\-Test\-\_\-\-Variation} +\end{DoxyCompactItemize} +\subsection*{Macros} +\begin{DoxyCompactItemize} +\item +\#define \hyperlink{_s_d_l__visualtest__variator__common_8h_afcdce86a10fbcdc9f3e47c47b70e3ea3}{S\-D\-L\-\_\-\-S\-U\-T\-\_\-\-I\-N\-T\-E\-G\-E\-R\-\_\-\-O\-P\-T\-I\-O\-N\-\_\-\-T\-E\-S\-T\-\_\-\-S\-T\-E\-P\-S}~3 +\end{DoxyCompactItemize} +\subsection*{Typedefs} +\begin{DoxyCompactItemize} +\item +typedef enum \\* +\hyperlink{_s_d_l__visualtest__variator__common_8h_a04bfc880abe6940d69a63c06a33acdbd}{S\-D\-L\-Visual\-Test\-\_\-\-Variator\-Type} \hyperlink{_s_d_l__visualtest__variator__common_8h_a4a7752dc89880ce3f62a478b3d0d8d64}{S\-D\-L\-Visual\-Test\-\_\-\-Variator\-Type} +\item +typedef union \\* +\hyperlink{union_s_d_l_visual_test___s_u_t_option_value}{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option\-Value} \hyperlink{_s_d_l__visualtest__variator__common_8h_aa4e5fb752f4cd087101ea3e1f6124dfb}{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option\-Value} +\item +typedef struct \\* +\hyperlink{struct_s_d_l_visual_test___variation}{S\-D\-L\-Visual\-Test\-\_\-\-Variation} \hyperlink{_s_d_l__visualtest__variator__common_8h_a6b447c1467862ecd623cc8f37489faeb}{S\-D\-L\-Visual\-Test\-\_\-\-Variation} +\end{DoxyCompactItemize} +\subsection*{Enumerations} +\begin{DoxyCompactItemize} +\item +enum \hyperlink{_s_d_l__visualtest__variator__common_8h_a04bfc880abe6940d69a63c06a33acdbd}{S\-D\-L\-Visual\-Test\-\_\-\-Variator\-Type} \{ {\bfseries S\-D\-L\-\_\-\-V\-A\-R\-I\-A\-T\-O\-R\-\_\-\-N\-O\-N\-E} = 0, +{\bfseries S\-D\-L\-\_\-\-V\-A\-R\-I\-A\-T\-O\-R\-\_\-\-E\-X\-H\-A\-U\-S\-T\-I\-V\-E}, +{\bfseries S\-D\-L\-\_\-\-V\-A\-R\-I\-A\-T\-O\-R\-\_\-\-R\-A\-N\-D\-O\-M} + \} +\end{DoxyCompactItemize} +\subsection*{Functions} +\begin{DoxyCompactItemize} +\item +int \hyperlink{_s_d_l__visualtest__variator__common_8h_aafcecc06c8feb24b6f6a509bfa9db681}{S\-D\-L\-Visual\-Test\-\_\-\-Next\-Value} (\hyperlink{union_s_d_l_visual_test___s_u_t_option_value}{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option\-Value} $\ast$var, \hyperlink{struct_s_d_l_visual_test___s_u_t_option}{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option} $\ast$opt) +\item +int \hyperlink{_s_d_l__visualtest__variator__common_8h_ad981c2efab849e76dc878ef8da9d6017}{S\-D\-L\-Visual\-Test\-\_\-\-Make\-Str\-From\-Variation} (\hyperlink{struct_s_d_l_visual_test___variation}{S\-D\-L\-Visual\-Test\-\_\-\-Variation} $\ast$variation, \hyperlink{struct_s_d_l_visual_test___s_u_t_config}{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config} $\ast$config, char $\ast$buffer, int size) +\item +int \hyperlink{_s_d_l__visualtest__variator__common_8h_ac87934906c51364778dc910ebca47b6c}{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Variation} (\hyperlink{struct_s_d_l_visual_test___variation}{S\-D\-L\-Visual\-Test\-\_\-\-Variation} $\ast$variation, \hyperlink{struct_s_d_l_visual_test___s_u_t_config}{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config} $\ast$config) +\end{DoxyCompactItemize} + + +\subsection{Detailed Description} +Header for common functionality used by variators. + +\subsection{Macro Definition Documentation} +\hypertarget{_s_d_l__visualtest__variator__common_8h_afcdce86a10fbcdc9f3e47c47b70e3ea3}{\index{S\-D\-L\-\_\-visualtest\-\_\-variator\-\_\-common.\-h@{S\-D\-L\-\_\-visualtest\-\_\-variator\-\_\-common.\-h}!S\-D\-L\-\_\-\-S\-U\-T\-\_\-\-I\-N\-T\-E\-G\-E\-R\-\_\-\-O\-P\-T\-I\-O\-N\-\_\-\-T\-E\-S\-T\-\_\-\-S\-T\-E\-P\-S@{S\-D\-L\-\_\-\-S\-U\-T\-\_\-\-I\-N\-T\-E\-G\-E\-R\-\_\-\-O\-P\-T\-I\-O\-N\-\_\-\-T\-E\-S\-T\-\_\-\-S\-T\-E\-P\-S}} +\index{S\-D\-L\-\_\-\-S\-U\-T\-\_\-\-I\-N\-T\-E\-G\-E\-R\-\_\-\-O\-P\-T\-I\-O\-N\-\_\-\-T\-E\-S\-T\-\_\-\-S\-T\-E\-P\-S@{S\-D\-L\-\_\-\-S\-U\-T\-\_\-\-I\-N\-T\-E\-G\-E\-R\-\_\-\-O\-P\-T\-I\-O\-N\-\_\-\-T\-E\-S\-T\-\_\-\-S\-T\-E\-P\-S}!SDL_visualtest_variator_common.h@{S\-D\-L\-\_\-visualtest\-\_\-variator\-\_\-common.\-h}} +\subsubsection[{S\-D\-L\-\_\-\-S\-U\-T\-\_\-\-I\-N\-T\-E\-G\-E\-R\-\_\-\-O\-P\-T\-I\-O\-N\-\_\-\-T\-E\-S\-T\-\_\-\-S\-T\-E\-P\-S}]{\setlength{\rightskip}{0pt plus 5cm}\#define S\-D\-L\-\_\-\-S\-U\-T\-\_\-\-I\-N\-T\-E\-G\-E\-R\-\_\-\-O\-P\-T\-I\-O\-N\-\_\-\-T\-E\-S\-T\-\_\-\-S\-T\-E\-P\-S~3}}\label{_s_d_l__visualtest__variator__common_8h_afcdce86a10fbcdc9f3e47c47b70e3ea3} +The number of variations one integer option would generate + +\subsection{Typedef Documentation} +\hypertarget{_s_d_l__visualtest__variator__common_8h_aa4e5fb752f4cd087101ea3e1f6124dfb}{\index{S\-D\-L\-\_\-visualtest\-\_\-variator\-\_\-common.\-h@{S\-D\-L\-\_\-visualtest\-\_\-variator\-\_\-common.\-h}!S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option\-Value@{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option\-Value}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option\-Value@{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option\-Value}!SDL_visualtest_variator_common.h@{S\-D\-L\-\_\-visualtest\-\_\-variator\-\_\-common.\-h}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option\-Value}]{\setlength{\rightskip}{0pt plus 5cm}typedef union {\bf S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option\-Value} {\bf S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option\-Value}}}\label{_s_d_l__visualtest__variator__common_8h_aa4e5fb752f4cd087101ea3e1f6124dfb} +One possible value for a command line option to the S\-U\-T. \hypertarget{_s_d_l__visualtest__variator__common_8h_a6b447c1467862ecd623cc8f37489faeb}{\index{S\-D\-L\-\_\-visualtest\-\_\-variator\-\_\-common.\-h@{S\-D\-L\-\_\-visualtest\-\_\-variator\-\_\-common.\-h}!S\-D\-L\-Visual\-Test\-\_\-\-Variation@{S\-D\-L\-Visual\-Test\-\_\-\-Variation}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Variation@{S\-D\-L\-Visual\-Test\-\_\-\-Variation}!SDL_visualtest_variator_common.h@{S\-D\-L\-\_\-visualtest\-\_\-variator\-\_\-common.\-h}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Variation}]{\setlength{\rightskip}{0pt plus 5cm}typedef struct {\bf S\-D\-L\-Visual\-Test\-\_\-\-Variation} {\bf S\-D\-L\-Visual\-Test\-\_\-\-Variation}}}\label{_s_d_l__visualtest__variator__common_8h_a6b447c1467862ecd623cc8f37489faeb} +Represents a valid combination of parameters that can be passed to the S\-U\-T. The ordering of the values here is the same as the ordering of the options in the \hyperlink{struct_s_d_l_visual_test___s_u_t_config}{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config} object for this variation. \hypertarget{_s_d_l__visualtest__variator__common_8h_a4a7752dc89880ce3f62a478b3d0d8d64}{\index{S\-D\-L\-\_\-visualtest\-\_\-variator\-\_\-common.\-h@{S\-D\-L\-\_\-visualtest\-\_\-variator\-\_\-common.\-h}!S\-D\-L\-Visual\-Test\-\_\-\-Variator\-Type@{S\-D\-L\-Visual\-Test\-\_\-\-Variator\-Type}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Variator\-Type@{S\-D\-L\-Visual\-Test\-\_\-\-Variator\-Type}!SDL_visualtest_variator_common.h@{S\-D\-L\-\_\-visualtest\-\_\-variator\-\_\-common.\-h}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Variator\-Type}]{\setlength{\rightskip}{0pt plus 5cm}typedef enum {\bf S\-D\-L\-Visual\-Test\-\_\-\-Variator\-Type} {\bf S\-D\-L\-Visual\-Test\-\_\-\-Variator\-Type}}}\label{_s_d_l__visualtest__variator__common_8h_a4a7752dc89880ce3f62a478b3d0d8d64} +enum for indicating the type of variator being used + +\subsection{Enumeration Type Documentation} +\hypertarget{_s_d_l__visualtest__variator__common_8h_a04bfc880abe6940d69a63c06a33acdbd}{\index{S\-D\-L\-\_\-visualtest\-\_\-variator\-\_\-common.\-h@{S\-D\-L\-\_\-visualtest\-\_\-variator\-\_\-common.\-h}!S\-D\-L\-Visual\-Test\-\_\-\-Variator\-Type@{S\-D\-L\-Visual\-Test\-\_\-\-Variator\-Type}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Variator\-Type@{S\-D\-L\-Visual\-Test\-\_\-\-Variator\-Type}!SDL_visualtest_variator_common.h@{S\-D\-L\-\_\-visualtest\-\_\-variator\-\_\-common.\-h}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Variator\-Type}]{\setlength{\rightskip}{0pt plus 5cm}enum {\bf S\-D\-L\-Visual\-Test\-\_\-\-Variator\-Type}}}\label{_s_d_l__visualtest__variator__common_8h_a04bfc880abe6940d69a63c06a33acdbd} +enum for indicating the type of variator being used + +\subsection{Function Documentation} +\hypertarget{_s_d_l__visualtest__variator__common_8h_ac87934906c51364778dc910ebca47b6c}{\index{S\-D\-L\-\_\-visualtest\-\_\-variator\-\_\-common.\-h@{S\-D\-L\-\_\-visualtest\-\_\-variator\-\_\-common.\-h}!S\-D\-L\-Visual\-Test\-\_\-\-Init\-Variation@{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Variation}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Variation@{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Variation}!SDL_visualtest_variator_common.h@{S\-D\-L\-\_\-visualtest\-\_\-variator\-\_\-common.\-h}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Variation}]{\setlength{\rightskip}{0pt plus 5cm}int S\-D\-L\-Visual\-Test\-\_\-\-Init\-Variation ( +\begin{DoxyParamCaption} +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Variation} $\ast$}]{variation, } +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config} $\ast$}]{config} +\end{DoxyParamCaption} +)}}\label{_s_d_l__visualtest__variator__common_8h_ac87934906c51364778dc910ebca47b6c} +Initializes the variation using the following rules\-: +\begin{DoxyItemize} +\item Boolean options are initialized to S\-D\-L\-\_\-\-F\-A\-L\-S\-E. +\item Integer options are initialized to the minimum valid value they can hold. +\item Enum options are initialized to the first element in the list of values they can take. +\item String options are initialized to the name of the option. +\end{DoxyItemize} + +\begin{DoxyReturn}{Returns} +1 on success, 0 on failure. +\end{DoxyReturn} +\hypertarget{_s_d_l__visualtest__variator__common_8h_ad981c2efab849e76dc878ef8da9d6017}{\index{S\-D\-L\-\_\-visualtest\-\_\-variator\-\_\-common.\-h@{S\-D\-L\-\_\-visualtest\-\_\-variator\-\_\-common.\-h}!S\-D\-L\-Visual\-Test\-\_\-\-Make\-Str\-From\-Variation@{S\-D\-L\-Visual\-Test\-\_\-\-Make\-Str\-From\-Variation}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Make\-Str\-From\-Variation@{S\-D\-L\-Visual\-Test\-\_\-\-Make\-Str\-From\-Variation}!SDL_visualtest_variator_common.h@{S\-D\-L\-\_\-visualtest\-\_\-variator\-\_\-common.\-h}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Make\-Str\-From\-Variation}]{\setlength{\rightskip}{0pt plus 5cm}int S\-D\-L\-Visual\-Test\-\_\-\-Make\-Str\-From\-Variation ( +\begin{DoxyParamCaption} +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Variation} $\ast$}]{variation, } +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config} $\ast$}]{config, } +\item[{char $\ast$}]{buffer, } +\item[{int}]{size} +\end{DoxyParamCaption} +)}}\label{_s_d_l__visualtest__variator__common_8h_ad981c2efab849e76dc878ef8da9d6017} +Converts a variation object into a string of command line arguments. + + +\begin{DoxyParams}{Parameters} +{\em variation} & Variation object to be converted. \\ +\hline +{\em config} & Config object for the S\-U\-T. \\ +\hline +{\em buffer} & Pointer to the buffer the arguments string will be copied into. \\ +\hline +{\em size} & Size of the buffer.\\ +\hline +\end{DoxyParams} +\begin{DoxyReturn}{Returns} +1 on success, 0 on failure +\end{DoxyReturn} +\hypertarget{_s_d_l__visualtest__variator__common_8h_aafcecc06c8feb24b6f6a509bfa9db681}{\index{S\-D\-L\-\_\-visualtest\-\_\-variator\-\_\-common.\-h@{S\-D\-L\-\_\-visualtest\-\_\-variator\-\_\-common.\-h}!S\-D\-L\-Visual\-Test\-\_\-\-Next\-Value@{S\-D\-L\-Visual\-Test\-\_\-\-Next\-Value}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Next\-Value@{S\-D\-L\-Visual\-Test\-\_\-\-Next\-Value}!SDL_visualtest_variator_common.h@{S\-D\-L\-\_\-visualtest\-\_\-variator\-\_\-common.\-h}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Next\-Value}]{\setlength{\rightskip}{0pt plus 5cm}int S\-D\-L\-Visual\-Test\-\_\-\-Next\-Value ( +\begin{DoxyParamCaption} +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option\-Value} $\ast$}]{var, } +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option} $\ast$}]{opt} +\end{DoxyParamCaption} +)}}\label{_s_d_l__visualtest__variator__common_8h_aafcecc06c8feb24b6f6a509bfa9db681} +\char`\"{}\-Increments\char`\"{} the value of the option by one and returns the carry. We wrap around to the initial value on overflow which makes the carry one. For example\-: \char`\"{}incrementing\char`\"{} an S\-D\-L\-\_\-\-F\-A\-L\-S\-E option makes it S\-D\-L\-\_\-\-T\-R\-U\-E with no carry, and \char`\"{}incrementing\char`\"{} an S\-D\-L\-\_\-\-T\-R\-U\-E option makes it S\-D\-L\-\_\-\-F\-A\-L\-S\-E with carry one. For integers, a random value in the valid range for the option is used. + + +\begin{DoxyParams}{Parameters} +{\em var} & Value of the option \\ +\hline +{\em opt} & Object with metadata about the option\\ +\hline +\end{DoxyParams} +\begin{DoxyReturn}{Returns} +1 if there is a carry for enum and bool type options, 0 otherwise. 1 is always returned for integer and string type options. -\/1 is returned on error. +\end{DoxyReturn} diff --git a/visualtest/docs/latex/_s_d_l__visualtest__variators_8h.tex b/visualtest/docs/latex/_s_d_l__visualtest__variators_8h.tex new file mode 100755 index 0000000000000..1996113bb67d2 --- /dev/null +++ b/visualtest/docs/latex/_s_d_l__visualtest__variators_8h.tex @@ -0,0 +1,71 @@ +\hypertarget{_s_d_l__visualtest__variators_8h}{\section{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\-S\-D\-L\-\_\-visualtest\-\_\-variators.h File Reference} +\label{_s_d_l__visualtest__variators_8h}\index{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\-S\-D\-L\-\_\-visualtest\-\_\-variators.\-h@{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\-S\-D\-L\-\_\-visualtest\-\_\-variators.\-h}} +} +{\ttfamily \#include \char`\"{}S\-D\-L\-\_\-visualtest\-\_\-exhaustive\-\_\-variator.\-h\char`\"{}}\\* +{\ttfamily \#include \char`\"{}S\-D\-L\-\_\-visualtest\-\_\-random\-\_\-variator.\-h\char`\"{}}\\* +\subsection*{Data Structures} +\begin{DoxyCompactItemize} +\item +struct \hyperlink{struct_s_d_l_visual_test___variator}{S\-D\-L\-Visual\-Test\-\_\-\-Variator} +\end{DoxyCompactItemize} +\subsection*{Typedefs} +\begin{DoxyCompactItemize} +\item +typedef struct \\* +\hyperlink{struct_s_d_l_visual_test___variator}{S\-D\-L\-Visual\-Test\-\_\-\-Variator} \hyperlink{_s_d_l__visualtest__variators_8h_a520a2479efbe9c4a9d617735f7314e0a}{S\-D\-L\-Visual\-Test\-\_\-\-Variator} +\end{DoxyCompactItemize} +\subsection*{Functions} +\begin{DoxyCompactItemize} +\item +int \hyperlink{_s_d_l__visualtest__variators_8h_ac1d82ee387a19743e47a82c87d3fb7f4}{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Variator} (\hyperlink{struct_s_d_l_visual_test___variator}{S\-D\-L\-Visual\-Test\-\_\-\-Variator} $\ast$variator, \hyperlink{struct_s_d_l_visual_test___s_u_t_config}{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config} $\ast$config, \hyperlink{_s_d_l__visualtest__variator__common_8h_a04bfc880abe6940d69a63c06a33acdbd}{S\-D\-L\-Visual\-Test\-\_\-\-Variator\-Type} type, Uint64 seed) +\item +char $\ast$ \hyperlink{_s_d_l__visualtest__variators_8h_aebdd4c3c545b0063d16929fd56f1a79f}{S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Variation} (\hyperlink{struct_s_d_l_visual_test___variator}{S\-D\-L\-Visual\-Test\-\_\-\-Variator} $\ast$variator) +\item +void \hyperlink{_s_d_l__visualtest__variators_8h_a98727ef649135c3312056d7603cb70b5}{S\-D\-L\-Visual\-Test\-\_\-\-Free\-Variator} (\hyperlink{struct_s_d_l_visual_test___variator}{S\-D\-L\-Visual\-Test\-\_\-\-Variator} $\ast$variator) +\end{DoxyCompactItemize} + + +\subsection{Detailed Description} +Header for all the variators that vary input parameters to a S\-U\-T application. + +\subsection{Typedef Documentation} +\hypertarget{_s_d_l__visualtest__variators_8h_a520a2479efbe9c4a9d617735f7314e0a}{\index{S\-D\-L\-\_\-visualtest\-\_\-variators.\-h@{S\-D\-L\-\_\-visualtest\-\_\-variators.\-h}!S\-D\-L\-Visual\-Test\-\_\-\-Variator@{S\-D\-L\-Visual\-Test\-\_\-\-Variator}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Variator@{S\-D\-L\-Visual\-Test\-\_\-\-Variator}!SDL_visualtest_variators.h@{S\-D\-L\-\_\-visualtest\-\_\-variators.\-h}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Variator}]{\setlength{\rightskip}{0pt plus 5cm}typedef struct {\bf S\-D\-L\-Visual\-Test\-\_\-\-Variator} {\bf S\-D\-L\-Visual\-Test\-\_\-\-Variator}}}\label{_s_d_l__visualtest__variators_8h_a520a2479efbe9c4a9d617735f7314e0a} +Struct that acts like a wrapper around the different types of variators available. + +\subsection{Function Documentation} +\hypertarget{_s_d_l__visualtest__variators_8h_a98727ef649135c3312056d7603cb70b5}{\index{S\-D\-L\-\_\-visualtest\-\_\-variators.\-h@{S\-D\-L\-\_\-visualtest\-\_\-variators.\-h}!S\-D\-L\-Visual\-Test\-\_\-\-Free\-Variator@{S\-D\-L\-Visual\-Test\-\_\-\-Free\-Variator}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Free\-Variator@{S\-D\-L\-Visual\-Test\-\_\-\-Free\-Variator}!SDL_visualtest_variators.h@{S\-D\-L\-\_\-visualtest\-\_\-variators.\-h}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Free\-Variator}]{\setlength{\rightskip}{0pt plus 5cm}void S\-D\-L\-Visual\-Test\-\_\-\-Free\-Variator ( +\begin{DoxyParamCaption} +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Variator} $\ast$}]{variator} +\end{DoxyParamCaption} +)}}\label{_s_d_l__visualtest__variators_8h_a98727ef649135c3312056d7603cb70b5} +Frees any resources associated with the variator. \hypertarget{_s_d_l__visualtest__variators_8h_aebdd4c3c545b0063d16929fd56f1a79f}{\index{S\-D\-L\-\_\-visualtest\-\_\-variators.\-h@{S\-D\-L\-\_\-visualtest\-\_\-variators.\-h}!S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Variation@{S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Variation}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Variation@{S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Variation}!SDL_visualtest_variators.h@{S\-D\-L\-\_\-visualtest\-\_\-variators.\-h}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Variation}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Variation ( +\begin{DoxyParamCaption} +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Variator} $\ast$}]{variator} +\end{DoxyParamCaption} +)}}\label{_s_d_l__visualtest__variators_8h_aebdd4c3c545b0063d16929fd56f1a79f} +Gets the next variation using the variator. + +\begin{DoxyReturn}{Returns} +The arguments string representing the variation on success, and N\-U\-L\-L on failure. The pointer returned should not be freed. +\end{DoxyReturn} +\hypertarget{_s_d_l__visualtest__variators_8h_ac1d82ee387a19743e47a82c87d3fb7f4}{\index{S\-D\-L\-\_\-visualtest\-\_\-variators.\-h@{S\-D\-L\-\_\-visualtest\-\_\-variators.\-h}!S\-D\-L\-Visual\-Test\-\_\-\-Init\-Variator@{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Variator}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Variator@{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Variator}!SDL_visualtest_variators.h@{S\-D\-L\-\_\-visualtest\-\_\-variators.\-h}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Variator}]{\setlength{\rightskip}{0pt plus 5cm}int S\-D\-L\-Visual\-Test\-\_\-\-Init\-Variator ( +\begin{DoxyParamCaption} +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Variator} $\ast$}]{variator, } +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config} $\ast$}]{config, } +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Variator\-Type}}]{type, } +\item[{Uint64}]{seed} +\end{DoxyParamCaption} +)}}\label{_s_d_l__visualtest__variators_8h_ac1d82ee387a19743e47a82c87d3fb7f4} +Initializes the variator object pointed to by {\ttfamily variator} of type {\ttfamily type} with information from the config object pointed to by {\ttfamily config}. + +\begin{DoxyReturn}{Returns} +1 on success, 0 on failure +\end{DoxyReturn} diff --git a/visualtest/docs/latex/action__configparser_8c.tex b/visualtest/docs/latex/action__configparser_8c.tex new file mode 100755 index 0000000000000..a25e86b309787 --- /dev/null +++ b/visualtest/docs/latex/action__configparser_8c.tex @@ -0,0 +1,123 @@ +\hypertarget{action__configparser_8c}{\section{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/action\-\_\-configparser.c File Reference} +\label{action__configparser_8c}\index{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/action\-\_\-configparser.\-c@{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/action\-\_\-configparser.\-c}} +} +{\ttfamily \#include $<$S\-D\-L\-\_\-stdinc.\-h$>$}\\* +{\ttfamily \#include $<$S\-D\-L\-\_\-test.\-h$>$}\\* +{\ttfamily \#include $<$string.\-h$>$}\\* +{\ttfamily \#include \char`\"{}S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h\char`\"{}}\\* +{\ttfamily \#include \char`\"{}S\-D\-L\-\_\-visualtest\-\_\-rwhelper.\-h\char`\"{}}\\* +{\ttfamily \#include \char`\"{}S\-D\-L\-\_\-visualtest\-\_\-parsehelper.\-h\char`\"{}}\\* +\subsection*{Functions} +\begin{DoxyCompactItemize} +\item +int \hyperlink{action__configparser_8c_a647d1be8f0f27af2fb1e5d4da2100596}{S\-D\-L\-Visual\-Test\-\_\-\-Enqueue\-Action} (\hyperlink{struct_s_d_l_visual_test___action_queue}{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue} $\ast$queue, \hyperlink{struct_s_d_l_visual_test___action}{S\-D\-L\-Visual\-Test\-\_\-\-Action} action) +\item +int \hyperlink{action__configparser_8c_a0e7998533e6e10590612a8d5dee7ec0b}{S\-D\-L\-Visual\-Test\-\_\-\-Dequeue\-Action} (\hyperlink{struct_s_d_l_visual_test___action_queue}{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue} $\ast$queue) +\item +void \hyperlink{action__configparser_8c_ae68c1c80f728e125869882139bec2c9e}{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Action\-Queue} (\hyperlink{struct_s_d_l_visual_test___action_queue}{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue} $\ast$queue) +\item +\hyperlink{struct_s_d_l_visual_test___action}{S\-D\-L\-Visual\-Test\-\_\-\-Action} $\ast$ \hyperlink{action__configparser_8c_afb508801942e7c74084480bcdb6f8613}{S\-D\-L\-Visual\-Test\-\_\-\-Get\-Queue\-Front} (\hyperlink{struct_s_d_l_visual_test___action_queue}{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue} $\ast$queue) +\item +int \hyperlink{action__configparser_8c_a8484ee36f78952192d4193c85fca2f17}{S\-D\-L\-Visual\-Test\-\_\-\-Is\-Action\-Queue\-Empty} (\hyperlink{struct_s_d_l_visual_test___action_queue}{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue} $\ast$queue) +\item +void \hyperlink{action__configparser_8c_a677da0d0e4793df342f91974b4559efa}{S\-D\-L\-Visual\-Test\-\_\-\-Empty\-Action\-Queue} (\hyperlink{struct_s_d_l_visual_test___action_queue}{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue} $\ast$queue) +\item +int \hyperlink{action__configparser_8c_ace5374ef7509e95383929ff185aaf7e6}{S\-D\-L\-Visual\-Test\-\_\-\-Insert\-Into\-Action\-Queue} (\hyperlink{struct_s_d_l_visual_test___action_queue}{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue} $\ast$queue, \hyperlink{struct_s_d_l_visual_test___action}{S\-D\-L\-Visual\-Test\-\_\-\-Action} action) +\item +int \hyperlink{action__configparser_8c_a8ef9dce4d464d6994596deeace6ffa2d}{S\-D\-L\-Visual\-Test\-\_\-\-Parse\-Action\-Config} (char $\ast$file, \hyperlink{struct_s_d_l_visual_test___action_queue}{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue} $\ast$queue) +\end{DoxyCompactItemize} + + +\subsection{Detailed Description} +Source file for the parser for action config files. + +\subsection{Function Documentation} +\hypertarget{action__configparser_8c_a0e7998533e6e10590612a8d5dee7ec0b}{\index{action\-\_\-configparser.\-c@{action\-\_\-configparser.\-c}!S\-D\-L\-Visual\-Test\-\_\-\-Dequeue\-Action@{S\-D\-L\-Visual\-Test\-\_\-\-Dequeue\-Action}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Dequeue\-Action@{S\-D\-L\-Visual\-Test\-\_\-\-Dequeue\-Action}!action_configparser.c@{action\-\_\-configparser.\-c}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Dequeue\-Action}]{\setlength{\rightskip}{0pt plus 5cm}int S\-D\-L\-Visual\-Test\-\_\-\-Dequeue\-Action ( +\begin{DoxyParamCaption} +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue} $\ast$}]{queue} +\end{DoxyParamCaption} +)}}\label{action__configparser_8c_a0e7998533e6e10590612a8d5dee7ec0b} +Remove an action from the front of the action queue pointed to by {\ttfamily queue}. + +\begin{DoxyReturn}{Returns} +1 on success, 0 on failure. +\end{DoxyReturn} +\hypertarget{action__configparser_8c_a677da0d0e4793df342f91974b4559efa}{\index{action\-\_\-configparser.\-c@{action\-\_\-configparser.\-c}!S\-D\-L\-Visual\-Test\-\_\-\-Empty\-Action\-Queue@{S\-D\-L\-Visual\-Test\-\_\-\-Empty\-Action\-Queue}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Empty\-Action\-Queue@{S\-D\-L\-Visual\-Test\-\_\-\-Empty\-Action\-Queue}!action_configparser.c@{action\-\_\-configparser.\-c}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Empty\-Action\-Queue}]{\setlength{\rightskip}{0pt plus 5cm}void S\-D\-L\-Visual\-Test\-\_\-\-Empty\-Action\-Queue ( +\begin{DoxyParamCaption} +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue} $\ast$}]{queue} +\end{DoxyParamCaption} +)}}\label{action__configparser_8c_a677da0d0e4793df342f91974b4559efa} +Dequeues all the elements in the queque pointed to by {\ttfamily queue}. \hypertarget{action__configparser_8c_a647d1be8f0f27af2fb1e5d4da2100596}{\index{action\-\_\-configparser.\-c@{action\-\_\-configparser.\-c}!S\-D\-L\-Visual\-Test\-\_\-\-Enqueue\-Action@{S\-D\-L\-Visual\-Test\-\_\-\-Enqueue\-Action}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Enqueue\-Action@{S\-D\-L\-Visual\-Test\-\_\-\-Enqueue\-Action}!action_configparser.c@{action\-\_\-configparser.\-c}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Enqueue\-Action}]{\setlength{\rightskip}{0pt plus 5cm}int S\-D\-L\-Visual\-Test\-\_\-\-Enqueue\-Action ( +\begin{DoxyParamCaption} +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue} $\ast$}]{queue, } +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Action}}]{action} +\end{DoxyParamCaption} +)}}\label{action__configparser_8c_a647d1be8f0f27af2fb1e5d4da2100596} +Add an action pointed to by {\ttfamily action} to the rear of the action queue pointed to by {\ttfamily queue}. + +\begin{DoxyReturn}{Returns} +1 on success, 0 on failure. +\end{DoxyReturn} +\hypertarget{action__configparser_8c_afb508801942e7c74084480bcdb6f8613}{\index{action\-\_\-configparser.\-c@{action\-\_\-configparser.\-c}!S\-D\-L\-Visual\-Test\-\_\-\-Get\-Queue\-Front@{S\-D\-L\-Visual\-Test\-\_\-\-Get\-Queue\-Front}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Get\-Queue\-Front@{S\-D\-L\-Visual\-Test\-\_\-\-Get\-Queue\-Front}!action_configparser.c@{action\-\_\-configparser.\-c}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Get\-Queue\-Front}]{\setlength{\rightskip}{0pt plus 5cm}{\bf S\-D\-L\-Visual\-Test\-\_\-\-Action}$\ast$ S\-D\-L\-Visual\-Test\-\_\-\-Get\-Queue\-Front ( +\begin{DoxyParamCaption} +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue} $\ast$}]{queue} +\end{DoxyParamCaption} +)}}\label{action__configparser_8c_afb508801942e7c74084480bcdb6f8613} +Get the action at the front of the action queue pointed to by {\ttfamily queue}. The returned action pointer may become invalid after subsequent dequeues. + +\begin{DoxyReturn}{Returns} +pointer to the action on success, N\-U\-L\-L on failure. +\end{DoxyReturn} +\hypertarget{action__configparser_8c_ae68c1c80f728e125869882139bec2c9e}{\index{action\-\_\-configparser.\-c@{action\-\_\-configparser.\-c}!S\-D\-L\-Visual\-Test\-\_\-\-Init\-Action\-Queue@{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Action\-Queue}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Action\-Queue@{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Action\-Queue}!action_configparser.c@{action\-\_\-configparser.\-c}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Action\-Queue}]{\setlength{\rightskip}{0pt plus 5cm}void S\-D\-L\-Visual\-Test\-\_\-\-Init\-Action\-Queue ( +\begin{DoxyParamCaption} +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue} $\ast$}]{queue} +\end{DoxyParamCaption} +)}}\label{action__configparser_8c_ae68c1c80f728e125869882139bec2c9e} +Initialize the action queue pointed to by {\ttfamily queue}. \hypertarget{action__configparser_8c_ace5374ef7509e95383929ff185aaf7e6}{\index{action\-\_\-configparser.\-c@{action\-\_\-configparser.\-c}!S\-D\-L\-Visual\-Test\-\_\-\-Insert\-Into\-Action\-Queue@{S\-D\-L\-Visual\-Test\-\_\-\-Insert\-Into\-Action\-Queue}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Insert\-Into\-Action\-Queue@{S\-D\-L\-Visual\-Test\-\_\-\-Insert\-Into\-Action\-Queue}!action_configparser.c@{action\-\_\-configparser.\-c}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Insert\-Into\-Action\-Queue}]{\setlength{\rightskip}{0pt plus 5cm}int S\-D\-L\-Visual\-Test\-\_\-\-Insert\-Into\-Action\-Queue ( +\begin{DoxyParamCaption} +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue} $\ast$}]{queue, } +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Action}}]{action} +\end{DoxyParamCaption} +)}}\label{action__configparser_8c_ace5374ef7509e95383929ff185aaf7e6} +Inserts an action {\ttfamily action} into the queue pointed to by {\ttfamily queue} such that the times of actions in the queue increase as we move from the front to the rear. + +\begin{DoxyReturn}{Returns} +1 on success, 0 on failure. +\end{DoxyReturn} +\hypertarget{action__configparser_8c_a8484ee36f78952192d4193c85fca2f17}{\index{action\-\_\-configparser.\-c@{action\-\_\-configparser.\-c}!S\-D\-L\-Visual\-Test\-\_\-\-Is\-Action\-Queue\-Empty@{S\-D\-L\-Visual\-Test\-\_\-\-Is\-Action\-Queue\-Empty}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Is\-Action\-Queue\-Empty@{S\-D\-L\-Visual\-Test\-\_\-\-Is\-Action\-Queue\-Empty}!action_configparser.c@{action\-\_\-configparser.\-c}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Is\-Action\-Queue\-Empty}]{\setlength{\rightskip}{0pt plus 5cm}int S\-D\-L\-Visual\-Test\-\_\-\-Is\-Action\-Queue\-Empty ( +\begin{DoxyParamCaption} +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue} $\ast$}]{queue} +\end{DoxyParamCaption} +)}}\label{action__configparser_8c_a8484ee36f78952192d4193c85fca2f17} +Check if the queue pointed to by {\ttfamily queue} is empty or not. + +\begin{DoxyReturn}{Returns} +1 if the queue is empty, 0 otherwise. +\end{DoxyReturn} +\hypertarget{action__configparser_8c_a8ef9dce4d464d6994596deeace6ffa2d}{\index{action\-\_\-configparser.\-c@{action\-\_\-configparser.\-c}!S\-D\-L\-Visual\-Test\-\_\-\-Parse\-Action\-Config@{S\-D\-L\-Visual\-Test\-\_\-\-Parse\-Action\-Config}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Parse\-Action\-Config@{S\-D\-L\-Visual\-Test\-\_\-\-Parse\-Action\-Config}!action_configparser.c@{action\-\_\-configparser.\-c}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Parse\-Action\-Config}]{\setlength{\rightskip}{0pt plus 5cm}int S\-D\-L\-Visual\-Test\-\_\-\-Parse\-Action\-Config ( +\begin{DoxyParamCaption} +\item[{char $\ast$}]{file, } +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue} $\ast$}]{queue} +\end{DoxyParamCaption} +)}}\label{action__configparser_8c_a8ef9dce4d464d6994596deeace6ffa2d} +Parses an action config file with path {\ttfamily file} and populates an action queue pointed to by {\ttfamily queue} with actions. + +\begin{DoxyReturn}{Returns} +1 on success, 0 on failure. +\end{DoxyReturn} diff --git a/visualtest/docs/latex/annotated.tex b/visualtest/docs/latex/annotated.tex new file mode 100755 index 0000000000000..9b865bd8945e8 --- /dev/null +++ b/visualtest/docs/latex/annotated.tex @@ -0,0 +1,18 @@ +\section{Data Structures} +Here are the data structures with brief descriptions\-:\begin{DoxyCompactList} +\item\contentsline{section}{\hyperlink{struct_s_d_l___process_exit_status}{S\-D\-L\-\_\-\-Process\-Exit\-Status} }{\pageref{struct_s_d_l___process_exit_status}}{} +\item\contentsline{section}{\hyperlink{struct_s_d_l___process_info}{S\-D\-L\-\_\-\-Process\-Info} }{\pageref{struct_s_d_l___process_info}}{} +\item\contentsline{section}{\hyperlink{struct_s_d_l_visual_test___action}{S\-D\-L\-Visual\-Test\-\_\-\-Action} }{\pageref{struct_s_d_l_visual_test___action}}{} +\item\contentsline{section}{\hyperlink{struct_s_d_l_visual_test___action_node}{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Node} }{\pageref{struct_s_d_l_visual_test___action_node}}{} +\item\contentsline{section}{\hyperlink{struct_s_d_l_visual_test___action_queue}{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue} }{\pageref{struct_s_d_l_visual_test___action_queue}}{} +\item\contentsline{section}{\hyperlink{struct_s_d_l_visual_test___exhaustive_variator}{S\-D\-L\-Visual\-Test\-\_\-\-Exhaustive\-Variator} }{\pageref{struct_s_d_l_visual_test___exhaustive_variator}}{} +\item\contentsline{section}{\hyperlink{struct_s_d_l_visual_test___harness_state}{S\-D\-L\-Visual\-Test\-\_\-\-Harness\-State} }{\pageref{struct_s_d_l_visual_test___harness_state}}{} +\item\contentsline{section}{\hyperlink{struct_s_d_l_visual_test___random_variator}{S\-D\-L\-Visual\-Test\-\_\-\-Random\-Variator} }{\pageref{struct_s_d_l_visual_test___random_variator}}{} +\item\contentsline{section}{\hyperlink{struct_s_d_l_visual_test___r_w_helper_buffer}{S\-D\-L\-Visual\-Test\-\_\-\-R\-W\-Helper\-Buffer} }{\pageref{struct_s_d_l_visual_test___r_w_helper_buffer}}{} +\item\contentsline{section}{\hyperlink{struct_s_d_l_visual_test___s_u_t_config}{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config} }{\pageref{struct_s_d_l_visual_test___s_u_t_config}}{} +\item\contentsline{section}{\hyperlink{struct_s_d_l_visual_test___s_u_t_int_range}{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Int\-Range} }{\pageref{struct_s_d_l_visual_test___s_u_t_int_range}}{} +\item\contentsline{section}{\hyperlink{struct_s_d_l_visual_test___s_u_t_option}{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option} }{\pageref{struct_s_d_l_visual_test___s_u_t_option}}{} +\item\contentsline{section}{\hyperlink{union_s_d_l_visual_test___s_u_t_option_value}{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option\-Value} }{\pageref{union_s_d_l_visual_test___s_u_t_option_value}}{} +\item\contentsline{section}{\hyperlink{struct_s_d_l_visual_test___variation}{S\-D\-L\-Visual\-Test\-\_\-\-Variation} }{\pageref{struct_s_d_l_visual_test___variation}}{} +\item\contentsline{section}{\hyperlink{struct_s_d_l_visual_test___variator}{S\-D\-L\-Visual\-Test\-\_\-\-Variator} }{\pageref{struct_s_d_l_visual_test___variator}}{} +\end{DoxyCompactList} diff --git a/visualtest/docs/latex/dir_244674c763b96fdad0a6ffe8d0250e08.tex b/visualtest/docs/latex/dir_244674c763b96fdad0a6ffe8d0250e08.tex new file mode 100755 index 0000000000000..6ae929c048eb8 --- /dev/null +++ b/visualtest/docs/latex/dir_244674c763b96fdad0a6ffe8d0250e08.tex @@ -0,0 +1,8 @@ +\hypertarget{dir_244674c763b96fdad0a6ffe8d0250e08}{\section{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/unittest Directory Reference} +\label{dir_244674c763b96fdad0a6ffe8d0250e08}\index{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/unittest Directory Reference@{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/unittest Directory Reference}} +} +\subsection*{Files} +\begin{DoxyCompactItemize} +\item +file {\bfseries testquit.\-c} +\end{DoxyCompactItemize} diff --git a/visualtest/docs/latex/dir_68267d1309a1af8e8297ef4c3efbcdba.tex b/visualtest/docs/latex/dir_68267d1309a1af8e8297ef4c3efbcdba.tex new file mode 100755 index 0000000000000..636633334a667 --- /dev/null +++ b/visualtest/docs/latex/dir_68267d1309a1af8e8297ef4c3efbcdba.tex @@ -0,0 +1,37 @@ +\hypertarget{dir_68267d1309a1af8e8297ef4c3efbcdba}{\section{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src Directory Reference} +\label{dir_68267d1309a1af8e8297ef4c3efbcdba}\index{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src Directory Reference@{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src Directory Reference}} +} +\subsection*{Directories} +\begin{DoxyCompactItemize} +\item +directory \hyperlink{dir_a18918b93668b435612395bbc2e8b82b}{linux} +\item +directory \hyperlink{dir_f584182df4c69fab0b14563b4d535158}{windows} +\end{DoxyCompactItemize} +\subsection*{Files} +\begin{DoxyCompactItemize} +\item +file \hyperlink{action__configparser_8c}{action\-\_\-configparser.\-c} +\item +file \hyperlink{harness__argparser_8c}{harness\-\_\-argparser.\-c} +\item +file \hyperlink{mischelper_8c}{mischelper.\-c} +\item +file \hyperlink{parsehelper_8c}{parsehelper.\-c} +\item +file \hyperlink{rwhelper_8c}{rwhelper.\-c} +\item +file \hyperlink{screenshot_8c}{screenshot.\-c} +\item +file \hyperlink{sut__configparser_8c}{sut\-\_\-configparser.\-c} +\item +file \hyperlink{testharness_8c}{testharness.\-c} +\item +file \hyperlink{variator__common_8c}{variator\-\_\-common.\-c} +\item +file \hyperlink{variator__exhaustive_8c}{variator\-\_\-exhaustive.\-c} +\item +file \hyperlink{variator__random_8c}{variator\-\_\-random.\-c} +\item +file \hyperlink{variators_8c}{variators.\-c} +\end{DoxyCompactItemize} diff --git a/visualtest/docs/latex/dir_88e6415a3128b404f1102a130772bdb6.tex b/visualtest/docs/latex/dir_88e6415a3128b404f1102a130772bdb6.tex new file mode 100755 index 0000000000000..da3c158e2d734 --- /dev/null +++ b/visualtest/docs/latex/dir_88e6415a3128b404f1102a130772bdb6.tex @@ -0,0 +1,8 @@ +\hypertarget{dir_88e6415a3128b404f1102a130772bdb6}{\section{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/linux Directory Reference} +\label{dir_88e6415a3128b404f1102a130772bdb6}\index{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/linux Directory Reference@{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/linux Directory Reference}} +} +\subsection*{Files} +\begin{DoxyCompactItemize} +\item +file {\bfseries linux\-\_\-process.\-c} +\end{DoxyCompactItemize} diff --git a/visualtest/docs/latex/dir_a18918b93668b435612395bbc2e8b82b.tex b/visualtest/docs/latex/dir_a18918b93668b435612395bbc2e8b82b.tex new file mode 100755 index 0000000000000..863c6e4f91769 --- /dev/null +++ b/visualtest/docs/latex/dir_a18918b93668b435612395bbc2e8b82b.tex @@ -0,0 +1,8 @@ +\hypertarget{dir_a18918b93668b435612395bbc2e8b82b}{\section{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/linux Directory Reference} +\label{dir_a18918b93668b435612395bbc2e8b82b}\index{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/linux Directory Reference@{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/linux Directory Reference}} +} +\subsection*{Files} +\begin{DoxyCompactItemize} +\item +file \hyperlink{linux__process_8c}{linux\-\_\-process.\-c} +\end{DoxyCompactItemize} diff --git a/visualtest/docs/latex/dir_d44c64559bbebec7f509842c48db8b23.tex b/visualtest/docs/latex/dir_d44c64559bbebec7f509842c48db8b23.tex new file mode 100755 index 0000000000000..07211c0703c60 --- /dev/null +++ b/visualtest/docs/latex/dir_d44c64559bbebec7f509842c48db8b23.tex @@ -0,0 +1,30 @@ +\hypertarget{dir_d44c64559bbebec7f509842c48db8b23}{\section{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include Directory Reference} +\label{dir_d44c64559bbebec7f509842c48db8b23}\index{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include Directory Reference@{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include Directory Reference}} +} +\subsection*{Files} +\begin{DoxyCompactItemize} +\item +file \hyperlink{_s_d_l__visualtest__action__configparser_8h}{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h} +\item +file \hyperlink{_s_d_l__visualtest__exhaustive__variator_8h}{S\-D\-L\-\_\-visualtest\-\_\-exhaustive\-\_\-variator.\-h} +\item +file \hyperlink{_s_d_l__visualtest__harness__argparser_8h}{S\-D\-L\-\_\-visualtest\-\_\-harness\-\_\-argparser.\-h} +\item +file {\bfseries S\-D\-L\-\_\-visualtest\-\_\-mischelper.\-h} +\item +file \hyperlink{_s_d_l__visualtest__parsehelper_8h}{S\-D\-L\-\_\-visualtest\-\_\-parsehelper.\-h} +\item +file \hyperlink{_s_d_l__visualtest__process_8h}{S\-D\-L\-\_\-visualtest\-\_\-process.\-h} +\item +file \hyperlink{_s_d_l__visualtest__random__variator_8h}{S\-D\-L\-\_\-visualtest\-\_\-random\-\_\-variator.\-h} +\item +file {\bfseries S\-D\-L\-\_\-visualtest\-\_\-rwhelper.\-h} +\item +file \hyperlink{_s_d_l__visualtest__screenshot_8h}{S\-D\-L\-\_\-visualtest\-\_\-screenshot.\-h} +\item +file \hyperlink{_s_d_l__visualtest__sut__configparser_8h}{S\-D\-L\-\_\-visualtest\-\_\-sut\-\_\-configparser.\-h} +\item +file \hyperlink{_s_d_l__visualtest__variator__common_8h}{S\-D\-L\-\_\-visualtest\-\_\-variator\-\_\-common.\-h} +\item +file \hyperlink{_s_d_l__visualtest__variators_8h}{S\-D\-L\-\_\-visualtest\-\_\-variators.\-h} +\end{DoxyCompactItemize} diff --git a/visualtest/docs/latex/dir_f584182df4c69fab0b14563b4d535158.tex b/visualtest/docs/latex/dir_f584182df4c69fab0b14563b4d535158.tex new file mode 100755 index 0000000000000..390006c7066b7 --- /dev/null +++ b/visualtest/docs/latex/dir_f584182df4c69fab0b14563b4d535158.tex @@ -0,0 +1,10 @@ +\hypertarget{dir_f584182df4c69fab0b14563b4d535158}{\section{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/windows Directory Reference} +\label{dir_f584182df4c69fab0b14563b4d535158}\index{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/windows Directory Reference@{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/windows Directory Reference}} +} +\subsection*{Files} +\begin{DoxyCompactItemize} +\item +file \hyperlink{windows__process_8c}{windows\-\_\-process.\-c} +\item +file \hyperlink{windows__screenshot_8c}{windows\-\_\-screenshot.\-c} +\end{DoxyCompactItemize} diff --git a/visualtest/docs/latex/dir_fe549de2418b81853b5f194edb4a7f34.tex b/visualtest/docs/latex/dir_fe549de2418b81853b5f194edb4a7f34.tex new file mode 100755 index 0000000000000..98e2c43023f6f --- /dev/null +++ b/visualtest/docs/latex/dir_fe549de2418b81853b5f194edb4a7f34.tex @@ -0,0 +1,8 @@ +\hypertarget{dir_fe549de2418b81853b5f194edb4a7f34}{\section{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/windows Directory Reference} +\label{dir_fe549de2418b81853b5f194edb4a7f34}\index{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/windows Directory Reference@{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/windows Directory Reference}} +} +\subsection*{Files} +\begin{DoxyCompactItemize} +\item +file \hyperlink{windows__process_8c}{windows\-\_\-process.\-c} +\end{DoxyCompactItemize} diff --git a/visualtest/docs/latex/doxygen.sty b/visualtest/docs/latex/doxygen.sty new file mode 100755 index 0000000000000..199abf8d59422 --- /dev/null +++ b/visualtest/docs/latex/doxygen.sty @@ -0,0 +1,464 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{doxygen} + +% Packages used by this style file +\RequirePackage{alltt} +\RequirePackage{array} +\RequirePackage{calc} +\RequirePackage{float} +\RequirePackage{ifthen} +\RequirePackage{verbatim} +\RequirePackage[table]{xcolor} +\RequirePackage{xtab} + +%---------- Internal commands used in this style file ---------------- + +\newcommand{\ensurespace}[1]{% + \begingroup% + \setlength{\dimen@}{#1}% + \vskip\z@\@plus\dimen@% + \penalty -100\vskip\z@\@plus -\dimen@% + \vskip\dimen@% + \penalty 9999% + \vskip -\dimen@% + \vskip\z@skip% hide the previous |\vskip| from |\addvspace| + \endgroup% +} + +\newcommand{\DoxyLabelFont}{} +\newcommand{\entrylabel}[1]{% + {% + \parbox[b]{\labelwidth-4pt}{% + \makebox[0pt][l]{\DoxyLabelFont#1}% + \vspace{1.5\baselineskip}% + }% + }% +} + +\newenvironment{DoxyDesc}[1]{% + \ensurespace{4\baselineskip}% + \begin{list}{}{% + \settowidth{\labelwidth}{20pt}% + \setlength{\parsep}{0pt}% + \setlength{\itemsep}{0pt}% + \setlength{\leftmargin}{\labelwidth+\labelsep}% + \renewcommand{\makelabel}{\entrylabel}% + }% + \item[#1]% +}{% + \end{list}% +} + +\newsavebox{\xrefbox} +\newlength{\xreflength} +\newcommand{\xreflabel}[1]{% + \sbox{\xrefbox}{#1}% + \setlength{\xreflength}{\wd\xrefbox}% + \ifthenelse{\xreflength>\labelwidth}{% + \begin{minipage}{\textwidth}% + \setlength{\parindent}{0pt}% + \hangindent=15pt\bfseries #1\vspace{1.2\itemsep}% + \end{minipage}% + }{% + \parbox[b]{\labelwidth}{\makebox[0pt][l]{\textbf{#1}}}% + }% +} + +%---------- Commands used by doxygen LaTeX output generator ---------- + +% Used by
 ... 
+\newenvironment{DoxyPre}{% + \small% + \begin{alltt}% +}{% + \end{alltt}% + \normalsize% +} + +% Used by @code ... @endcode +\newenvironment{DoxyCode}{% + \par% + \scriptsize% + \begin{alltt}% +}{% + \end{alltt}% + \normalsize% +} + +% Used by @example, @include, @includelineno and @dontinclude +\newenvironment{DoxyCodeInclude}{% + \DoxyCode% +}{% + \endDoxyCode% +} + +% Used by @verbatim ... @endverbatim +\newenvironment{DoxyVerb}{% + \footnotesize% + \verbatim% +}{% + \endverbatim% + \normalsize% +} + +% Used by @verbinclude +\newenvironment{DoxyVerbInclude}{% + \DoxyVerb% +}{% + \endDoxyVerb% +} + +% Used by numbered lists (using '-#' or
    ...
) +\newenvironment{DoxyEnumerate}{% + \enumerate% +}{% + \endenumerate% +} + +% Used by bullet lists (using '-', @li, @arg, or
    ...
) +\newenvironment{DoxyItemize}{% + \itemize% +}{% + \enditemize% +} + +% Used by description lists (using
...
) +\newenvironment{DoxyDescription}{% + \description% +}{% + \enddescription% +} + +% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc +% (only if caption is specified) +\newenvironment{DoxyImage}{% + \begin{figure}[H]% + \begin{center}% +}{% + \end{center}% + \end{figure}% +} + +% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc +% (only if no caption is specified) +\newenvironment{DoxyImageNoCaption}{% +}{% +} + +% Used by @attention +\newenvironment{DoxyAttention}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @author and @authors +\newenvironment{DoxyAuthor}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @date +\newenvironment{DoxyDate}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @invariant +\newenvironment{DoxyInvariant}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @note +\newenvironment{DoxyNote}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @post +\newenvironment{DoxyPostcond}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @pre +\newenvironment{DoxyPrecond}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @copyright +\newenvironment{DoxyCopyright}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @remark +\newenvironment{DoxyRemark}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @return and @returns +\newenvironment{DoxyReturn}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @since +\newenvironment{DoxySince}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @see +\newenvironment{DoxySeeAlso}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @version +\newenvironment{DoxyVersion}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @warning +\newenvironment{DoxyWarning}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @internal +\newenvironment{DoxyInternal}[1]{% + \paragraph*{#1}% +}{% +} + +% Used by @par and @paragraph +\newenvironment{DoxyParagraph}[1]{% + \begin{list}{}{% + \settowidth{\labelwidth}{40pt}% + \setlength{\leftmargin}{\labelwidth}% + \setlength{\parsep}{0pt}% + \setlength{\itemsep}{-4pt}% + \renewcommand{\makelabel}{\entrylabel}% + }% + \item[#1]% +}{% + \end{list}% +} + +% Used by parameter lists +\newenvironment{DoxyParams}[2][]{% + \par% + \tabletail{\hline}% + \tablelasttail{\hline}% + \tablefirsthead{}% + \tablehead{}% + \ifthenelse{\equal{#1}{}}% + {\tablefirsthead{\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]}% + \begin{xtabular}{|>{\raggedleft\hspace{0pt}}p{0.15\textwidth}|% + p{0.805\textwidth}|}}% + {\ifthenelse{\equal{#1}{1}}% + {\tablefirsthead{\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]}% + \begin{xtabular}{|>{\centering}p{0.10\textwidth}|% + >{\raggedleft\hspace{0pt}}p{0.15\textwidth}|% + p{0.678\textwidth}|}}% + {\tablefirsthead{\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]}% + \begin{xtabular}{|>{\centering}p{0.10\textwidth}|% + >{\centering\hspace{0pt}}p{0.15\textwidth}|% + >{\raggedleft\hspace{0pt}}p{0.15\textwidth}|% + p{0.501\textwidth}|}}% + }\hline% +}{% + \end{xtabular}% + \tablefirsthead{}% + \vspace{6pt}% +} + +% Used for fields of simple structs +\newenvironment{DoxyFields}[1]{% + \par% + \tabletail{\hline}% + \tablelasttail{\hline}% + \tablehead{}% + \tablefirsthead{\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]}% + \begin{xtabular}{|>{\raggedleft\hspace{0pt}}p{0.15\textwidth}|% + p{0.15\textwidth}|% + p{0.63\textwidth}|}% + \hline% +}{% + \end{xtabular}% + \tablefirsthead{}% + \vspace{6pt}% +} + +% Used for parameters within a detailed function description +\newenvironment{DoxyParamCaption}{% + \renewcommand{\item}[2][]{##1 {\em ##2}}% +}{% +} + +% Used by return value lists +\newenvironment{DoxyRetVals}[1]{% + \par% + \tabletail{\hline}% + \tablelasttail{\hline}% + \tablehead{}% + \tablefirsthead{\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]}% + \begin{xtabular}{|>{\raggedleft\hspace{0pt}}p{0.25\textwidth}|% + p{0.705\textwidth}|}% + \hline% +}{% + \end{xtabular}% + \tablefirsthead{}% + \vspace{6pt}% +} + +% Used by exception lists +\newenvironment{DoxyExceptions}[1]{% + \par% + \tabletail{\hline}% + \tablelasttail{\hline}% + \tablehead{}% + \tablefirsthead{\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]}% + \begin{xtabular}{|>{\raggedleft\hspace{0pt}}p{0.25\textwidth}|% + p{0.705\textwidth}|}% + \hline% +}{% + \end{xtabular}% + \tablefirsthead{}% + \vspace{6pt}% +} + +% Used by template parameter lists +\newenvironment{DoxyTemplParams}[1]{% + \par% + \tabletail{\hline}% + \tablelasttail{\hline}% + \tablehead{}% + \tablefirsthead{\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]}% + \begin{xtabular}{|>{\raggedleft\hspace{0pt}}p{0.25\textwidth}|% + p{0.705\textwidth}|}% + \hline% +}{% + \end{xtabular}% + \tablefirsthead{}% + \vspace{6pt}% +} + +% Used for member lists +\newenvironment{DoxyCompactItemize}{% + \begin{itemize}% + \setlength{\itemsep}{-3pt}% + \setlength{\parsep}{0pt}% + \setlength{\topsep}{0pt}% + \setlength{\partopsep}{0pt}% +}{% + \end{itemize}% +} + +% Used for member descriptions +\newenvironment{DoxyCompactList}{% + \begin{list}{}{% + \setlength{\leftmargin}{0.5cm}% + \setlength{\itemsep}{0pt}% + \setlength{\parsep}{0pt}% + \setlength{\topsep}{0pt}% + \renewcommand{\makelabel}{\hfill}% + }% +}{% + \end{list}% +} + +% Used for reference lists (@bug, @deprecated, @todo, etc.) +\newenvironment{DoxyRefList}{% + \begin{list}{}{% + \setlength{\labelwidth}{10pt}% + \setlength{\leftmargin}{\labelwidth}% + \addtolength{\leftmargin}{\labelsep}% + \renewcommand{\makelabel}{\xreflabel}% + }% +}{% + \end{list}% +} + +% Used by @bug, @deprecated, @todo, etc. +\newenvironment{DoxyRefDesc}[1]{% + \begin{list}{}{% + \renewcommand\makelabel[1]{\textbf{##1}}% + \settowidth\labelwidth{\makelabel{#1}}% + \setlength\leftmargin{\labelwidth+\labelsep}% + }% +}{% + \end{list}% +} + +% Used by parameter lists and simple sections +\newenvironment{Desc} +{\begin{list}{}{% + \settowidth{\labelwidth}{40pt}% + \setlength{\leftmargin}{\labelwidth}% + \setlength{\parsep}{0pt}% + \setlength{\itemsep}{-4pt}% + \renewcommand{\makelabel}{\entrylabel}% + } +}{% + \end{list}% +} + +% Used by tables +\newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp}% +\newlength{\tmplength}% +\newenvironment{TabularC}[1]% +{% +\setlength{\tmplength}% + {\linewidth/(#1)-\tabcolsep*2-\arrayrulewidth*(#1+1)/(#1)}% + \par\begin{xtabular*}{\linewidth}% + {*{#1}{|>{\PBS\raggedright\hspace{0pt}}p{\the\tmplength}}|}% +}% +{\end{xtabular*}\par}% + +% Used for member group headers +\newenvironment{Indent}{% + \begin{list}{}{% + \setlength{\leftmargin}{0.5cm}% + }% + \item[]\ignorespaces% +}{% + \unskip% + \end{list}% +} + +% Used when hyperlinks are turned off +\newcommand{\doxyref}[3]{% + \textbf{#1} (\textnormal{#2}\,\pageref{#3})% +} + +% Used for syntax highlighting +\definecolor{comment}{rgb}{0.5,0.0,0.0} +\definecolor{keyword}{rgb}{0.0,0.5,0.0} +\definecolor{keywordtype}{rgb}{0.38,0.25,0.125} +\definecolor{keywordflow}{rgb}{0.88,0.5,0.0} +\definecolor{preprocessor}{rgb}{0.5,0.38,0.125} +\definecolor{stringliteral}{rgb}{0.0,0.125,0.25} +\definecolor{charliteral}{rgb}{0.0,0.5,0.5} +\definecolor{vhdldigit}{rgb}{1.0,0.0,1.0} +\definecolor{vhdlkeyword}{rgb}{0.43,0.0,0.43} +\definecolor{vhdllogic}{rgb}{1.0,0.0,0.0} +\definecolor{vhdlchar}{rgb}{0.0,0.0,0.0} diff --git a/visualtest/docs/latex/files.tex b/visualtest/docs/latex/files.tex new file mode 100755 index 0000000000000..ef70e9b544733 --- /dev/null +++ b/visualtest/docs/latex/files.tex @@ -0,0 +1,31 @@ +\section{File List} +Here is a list of all documented files with brief descriptions\-:\begin{DoxyCompactList} +\item\contentsline{section}{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/{\bfseries config.\-h} }{\pageref{config_8h}}{} +\item\contentsline{section}{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\hyperlink{_s_d_l__visualtest__action__configparser_8h}{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h} }{\pageref{_s_d_l__visualtest__action__configparser_8h}}{} +\item\contentsline{section}{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\hyperlink{_s_d_l__visualtest__exhaustive__variator_8h}{S\-D\-L\-\_\-visualtest\-\_\-exhaustive\-\_\-variator.\-h} }{\pageref{_s_d_l__visualtest__exhaustive__variator_8h}}{} +\item\contentsline{section}{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\hyperlink{_s_d_l__visualtest__harness__argparser_8h}{S\-D\-L\-\_\-visualtest\-\_\-harness\-\_\-argparser.\-h} }{\pageref{_s_d_l__visualtest__harness__argparser_8h}}{} +\item\contentsline{section}{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/{\bfseries S\-D\-L\-\_\-visualtest\-\_\-mischelper.\-h} }{\pageref{_s_d_l__visualtest__mischelper_8h}}{} +\item\contentsline{section}{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\hyperlink{_s_d_l__visualtest__parsehelper_8h}{S\-D\-L\-\_\-visualtest\-\_\-parsehelper.\-h} }{\pageref{_s_d_l__visualtest__parsehelper_8h}}{} +\item\contentsline{section}{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\hyperlink{_s_d_l__visualtest__process_8h}{S\-D\-L\-\_\-visualtest\-\_\-process.\-h} }{\pageref{_s_d_l__visualtest__process_8h}}{} +\item\contentsline{section}{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\hyperlink{_s_d_l__visualtest__random__variator_8h}{S\-D\-L\-\_\-visualtest\-\_\-random\-\_\-variator.\-h} }{\pageref{_s_d_l__visualtest__random__variator_8h}}{} +\item\contentsline{section}{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/{\bfseries S\-D\-L\-\_\-visualtest\-\_\-rwhelper.\-h} }{\pageref{_s_d_l__visualtest__rwhelper_8h}}{} +\item\contentsline{section}{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\hyperlink{_s_d_l__visualtest__screenshot_8h}{S\-D\-L\-\_\-visualtest\-\_\-screenshot.\-h} }{\pageref{_s_d_l__visualtest__screenshot_8h}}{} +\item\contentsline{section}{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\hyperlink{_s_d_l__visualtest__sut__configparser_8h}{S\-D\-L\-\_\-visualtest\-\_\-sut\-\_\-configparser.\-h} }{\pageref{_s_d_l__visualtest__sut__configparser_8h}}{} +\item\contentsline{section}{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\hyperlink{_s_d_l__visualtest__variator__common_8h}{S\-D\-L\-\_\-visualtest\-\_\-variator\-\_\-common.\-h} }{\pageref{_s_d_l__visualtest__variator__common_8h}}{} +\item\contentsline{section}{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\hyperlink{_s_d_l__visualtest__variators_8h}{S\-D\-L\-\_\-visualtest\-\_\-variators.\-h} }{\pageref{_s_d_l__visualtest__variators_8h}}{} +\item\contentsline{section}{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/\hyperlink{action__configparser_8c}{action\-\_\-configparser.\-c} }{\pageref{action__configparser_8c}}{} +\item\contentsline{section}{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/\hyperlink{harness__argparser_8c}{harness\-\_\-argparser.\-c} }{\pageref{harness__argparser_8c}}{} +\item\contentsline{section}{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/\hyperlink{mischelper_8c}{mischelper.\-c} }{\pageref{mischelper_8c}}{} +\item\contentsline{section}{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/\hyperlink{parsehelper_8c}{parsehelper.\-c} }{\pageref{parsehelper_8c}}{} +\item\contentsline{section}{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/\hyperlink{rwhelper_8c}{rwhelper.\-c} }{\pageref{rwhelper_8c}}{} +\item\contentsline{section}{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/\hyperlink{screenshot_8c}{screenshot.\-c} }{\pageref{screenshot_8c}}{} +\item\contentsline{section}{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/\hyperlink{sut__configparser_8c}{sut\-\_\-configparser.\-c} }{\pageref{sut__configparser_8c}}{} +\item\contentsline{section}{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/\hyperlink{testharness_8c}{testharness.\-c} }{\pageref{testharness_8c}}{} +\item\contentsline{section}{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/\hyperlink{variator__common_8c}{variator\-\_\-common.\-c} }{\pageref{variator__common_8c}}{} +\item\contentsline{section}{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/\hyperlink{variator__exhaustive_8c}{variator\-\_\-exhaustive.\-c} }{\pageref{variator__exhaustive_8c}}{} +\item\contentsline{section}{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/\hyperlink{variator__random_8c}{variator\-\_\-random.\-c} }{\pageref{variator__random_8c}}{} +\item\contentsline{section}{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/\hyperlink{variators_8c}{variators.\-c} }{\pageref{variators_8c}}{} +\item\contentsline{section}{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/linux/\hyperlink{linux__process_8c}{linux\-\_\-process.\-c} }{\pageref{linux__process_8c}}{} +\item\contentsline{section}{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/windows/\hyperlink{windows__process_8c}{windows\-\_\-process.\-c} }{\pageref{windows__process_8c}}{} +\item\contentsline{section}{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/windows/\hyperlink{windows__screenshot_8c}{windows\-\_\-screenshot.\-c} }{\pageref{windows__screenshot_8c}}{} +\end{DoxyCompactList} diff --git a/visualtest/docs/latex/harness__argparser_8c.tex b/visualtest/docs/latex/harness__argparser_8c.tex new file mode 100755 index 0000000000000..bf025f8ff9641 --- /dev/null +++ b/visualtest/docs/latex/harness__argparser_8c.tex @@ -0,0 +1,64 @@ +\hypertarget{harness__argparser_8c}{\section{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/harness\-\_\-argparser.c File Reference} +\label{harness__argparser_8c}\index{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/harness\-\_\-argparser.\-c@{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/harness\-\_\-argparser.\-c}} +} +{\ttfamily \#include $<$S\-D\-L\-\_\-test.\-h$>$}\\* +{\ttfamily \#include $<$stdio.\-h$>$}\\* +{\ttfamily \#include $<$string.\-h$>$}\\* +{\ttfamily \#include \char`\"{}S\-D\-L\-\_\-visualtest\-\_\-harness\-\_\-argparser.\-h\char`\"{}}\\* +{\ttfamily \#include \char`\"{}S\-D\-L\-\_\-visualtest\-\_\-rwhelper.\-h\char`\"{}}\\* +\subsection*{Macros} +\begin{DoxyCompactItemize} +\item +\#define \hyperlink{harness__argparser_8c_a7186273cd88640b740b6333cd98ae243}{M\-A\-X\-\_\-\-C\-O\-N\-F\-I\-G\-\_\-\-L\-I\-N\-E\-\_\-\-L\-E\-N}~400 +\item +\#define \hyperlink{harness__argparser_8c_a6669f8e5a07e7a0e4622dd23362831e7}{D\-E\-F\-A\-U\-L\-T\-\_\-\-S\-U\-T\-\_\-\-T\-I\-M\-E\-O\-U\-T}~(60 $\ast$ 1000) +\end{DoxyCompactItemize} +\subsection*{Functions} +\begin{DoxyCompactItemize} +\item +int \hyperlink{harness__argparser_8c_a629609acc04ef21a21fdfbbf6c1589c8}{S\-D\-L\-Visual\-Test\-\_\-\-Parse\-Harness\-Args} (char $\ast$$\ast$argv, \hyperlink{struct_s_d_l_visual_test___harness_state}{S\-D\-L\-Visual\-Test\-\_\-\-Harness\-State} $\ast$state) +\item +void \hyperlink{harness__argparser_8c_a833147d8da541982c615645a797627cc}{S\-D\-L\-Visual\-Test\-\_\-\-Free\-Harness\-State} (\hyperlink{struct_s_d_l_visual_test___harness_state}{S\-D\-L\-Visual\-Test\-\_\-\-Harness\-State} $\ast$state) +\end{DoxyCompactItemize} + + +\subsection{Detailed Description} +Source file for functions to parse arguments to the test harness. + +\subsection{Macro Definition Documentation} +\hypertarget{harness__argparser_8c_a6669f8e5a07e7a0e4622dd23362831e7}{\index{harness\-\_\-argparser.\-c@{harness\-\_\-argparser.\-c}!D\-E\-F\-A\-U\-L\-T\-\_\-\-S\-U\-T\-\_\-\-T\-I\-M\-E\-O\-U\-T@{D\-E\-F\-A\-U\-L\-T\-\_\-\-S\-U\-T\-\_\-\-T\-I\-M\-E\-O\-U\-T}} +\index{D\-E\-F\-A\-U\-L\-T\-\_\-\-S\-U\-T\-\_\-\-T\-I\-M\-E\-O\-U\-T@{D\-E\-F\-A\-U\-L\-T\-\_\-\-S\-U\-T\-\_\-\-T\-I\-M\-E\-O\-U\-T}!harness_argparser.c@{harness\-\_\-argparser.\-c}} +\subsubsection[{D\-E\-F\-A\-U\-L\-T\-\_\-\-S\-U\-T\-\_\-\-T\-I\-M\-E\-O\-U\-T}]{\setlength{\rightskip}{0pt plus 5cm}\#define D\-E\-F\-A\-U\-L\-T\-\_\-\-S\-U\-T\-\_\-\-T\-I\-M\-E\-O\-U\-T~(60 $\ast$ 1000)}}\label{harness__argparser_8c_a6669f8e5a07e7a0e4622dd23362831e7} +Default value for the timeout after which the S\-U\-T is forcefully killed \hypertarget{harness__argparser_8c_a7186273cd88640b740b6333cd98ae243}{\index{harness\-\_\-argparser.\-c@{harness\-\_\-argparser.\-c}!M\-A\-X\-\_\-\-C\-O\-N\-F\-I\-G\-\_\-\-L\-I\-N\-E\-\_\-\-L\-E\-N@{M\-A\-X\-\_\-\-C\-O\-N\-F\-I\-G\-\_\-\-L\-I\-N\-E\-\_\-\-L\-E\-N}} +\index{M\-A\-X\-\_\-\-C\-O\-N\-F\-I\-G\-\_\-\-L\-I\-N\-E\-\_\-\-L\-E\-N@{M\-A\-X\-\_\-\-C\-O\-N\-F\-I\-G\-\_\-\-L\-I\-N\-E\-\_\-\-L\-E\-N}!harness_argparser.c@{harness\-\_\-argparser.\-c}} +\subsubsection[{M\-A\-X\-\_\-\-C\-O\-N\-F\-I\-G\-\_\-\-L\-I\-N\-E\-\_\-\-L\-E\-N}]{\setlength{\rightskip}{0pt plus 5cm}\#define M\-A\-X\-\_\-\-C\-O\-N\-F\-I\-G\-\_\-\-L\-I\-N\-E\-\_\-\-L\-E\-N~400}}\label{harness__argparser_8c_a7186273cd88640b740b6333cd98ae243} +Maximum length of one line in the config file + +\subsection{Function Documentation} +\hypertarget{harness__argparser_8c_a833147d8da541982c615645a797627cc}{\index{harness\-\_\-argparser.\-c@{harness\-\_\-argparser.\-c}!S\-D\-L\-Visual\-Test\-\_\-\-Free\-Harness\-State@{S\-D\-L\-Visual\-Test\-\_\-\-Free\-Harness\-State}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Free\-Harness\-State@{S\-D\-L\-Visual\-Test\-\_\-\-Free\-Harness\-State}!harness_argparser.c@{harness\-\_\-argparser.\-c}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Free\-Harness\-State}]{\setlength{\rightskip}{0pt plus 5cm}void S\-D\-L\-Visual\-Test\-\_\-\-Free\-Harness\-State ( +\begin{DoxyParamCaption} +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Harness\-State} $\ast$}]{state} +\end{DoxyParamCaption} +)}}\label{harness__argparser_8c_a833147d8da541982c615645a797627cc} +Frees any resources associated with the state object pointed to by {\ttfamily state}. \hypertarget{harness__argparser_8c_a629609acc04ef21a21fdfbbf6c1589c8}{\index{harness\-\_\-argparser.\-c@{harness\-\_\-argparser.\-c}!S\-D\-L\-Visual\-Test\-\_\-\-Parse\-Harness\-Args@{S\-D\-L\-Visual\-Test\-\_\-\-Parse\-Harness\-Args}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Parse\-Harness\-Args@{S\-D\-L\-Visual\-Test\-\_\-\-Parse\-Harness\-Args}!harness_argparser.c@{harness\-\_\-argparser.\-c}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Parse\-Harness\-Args}]{\setlength{\rightskip}{0pt plus 5cm}int S\-D\-L\-Visual\-Test\-\_\-\-Parse\-Harness\-Args ( +\begin{DoxyParamCaption} +\item[{char $\ast$$\ast$}]{argv, } +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Harness\-State} $\ast$}]{state} +\end{DoxyParamCaption} +)}}\label{harness__argparser_8c_a629609acc04ef21a21fdfbbf6c1589c8} +Parse command line paramters to the test harness and populate a state object. + + +\begin{DoxyParams}{Parameters} +{\em argv} & The array of command line parameters. \\ +\hline +{\em state} & Pointer to the state object to be populated.\\ +\hline +\end{DoxyParams} +\begin{DoxyReturn}{Returns} +Non-\/zero on success, zero on failure. +\end{DoxyReturn} diff --git a/visualtest/docs/latex/index.tex b/visualtest/docs/latex/index.tex new file mode 100755 index 0000000000000..ef8943caf5018 --- /dev/null +++ b/visualtest/docs/latex/index.tex @@ -0,0 +1,80 @@ +\hypertarget{index_license_sec}{}\section{License}\label{index_license_sec} +Check the file {\ttfamily C\-O\-P\-Y\-I\-N\-G.\-txt} for licensing information.\hypertarget{index_intro_sec}{}\section{Introduction}\label{index_intro_sec} +The goal of this G\-So\-C project is to automate the testing of testsprite2. testsprite2 takes 26 parameters which have thousands of valid combinations and is used to validate S\-D\-L's window, mouse and rendering behaviour. By having a test harness that runs testsprite2 with various command line argument strings and validates the output for each run, we can make testing an easier task for maintainers, contributors and testers. The test harness can be used by a continuous integration system (like buildbot or jenkins) to validate S\-D\-L after checkins. + +S\-D\-L Homepage\-: \href{http://libsdl.org/}{\tt http\-://libsdl.\-org/}\hypertarget{index_build_sec}{}\section{Building}\label{index_build_sec} +\hypertarget{index_build_linux}{}\subsection{Building on Linux/\-Cygwin}\label{index_build_linux} +{\ttfamily ./autogen.sh; ./configure; make;}\hypertarget{index_build_windows}{}\subsection{Building on Windows}\label{index_build_windows} +Use the Visual Studio solution under {\ttfamily S\-D\-L/\-Visual\-C/visualtest}.\hypertarget{index_docs_sec}{}\section{Documentation}\label{index_docs_sec} +Documentation is available via Doxygen. To build the documentation, cd to the S\-D\-L/visualtest/docs directory and run {\ttfamily doxygen}. A good starting point for exploring the documentation is {\ttfamily S\-D\-L/visualtest/docs/html/index.\-html} \hypertarget{index_usage_sec}{}\section{Usage}\label{index_usage_sec} +To see all the options supported by the test harness, just run {\ttfamily testharness} with no arguments. + +At the moment the following options are supported\-: \begin{DoxyItemize} +\item {\ttfamily sutapp} -\/ Path to the system under test (S\-U\-T) application \item {\ttfamily sutargs} -\/ Launch the S\-U\-T with the specified arguments string \item {\ttfamily timeout} -\/ The maximum time after which the S\-U\-T process will be killed; passed as hh\-:mm\-:ss; default 00\-:01\-:00 \item {\ttfamily variator} -\/ Which variator to use; see \hyperlink{index_variators_sec}{Variators} \item {\ttfamily num-\/variations} -\/ The number of variations to run for; taken to be 1 for the random variator and A\-L\-L for the exhaustive variator by default \item {\ttfamily no-\/launch} -\/ Just print the arguments string for each variation without launching the S\-U\-T or performing any actions \item {\ttfamily parameter-\/config} -\/ A config file that describes the command line parameters supported by the S\-U\-T; see \hyperlink{index_paramconfig_sec}{The S\-U\-T Parameters File} or the sample $\ast$.parameters files for more details \item {\ttfamily action-\/config} -\/ A config file with a list of actions to be performed while the S\-U\-T is running; see \hyperlink{index_actionconfig_sec}{The Actions File} or the sample $\ast$.actions files \item {\ttfamily output-\/dir} -\/ Path to the directory where screenshots should be saved; is created if it doesn't exist; taken to be \char`\"{}./output\char`\"{} by default \item {\ttfamily verify-\/dir} -\/ Path to the directory with the verification images; taken to be \char`\"{}./verify\char`\"{} by default\end{DoxyItemize} +Paths can be relative or absolute. + +Alternatively, the options can be passed as a config file for convenience\-: + +{\ttfamily testharness -\/-\/config testsprite2\-\_\-sample.\-config} + +For a sample, take a look at the $\ast$.config files in this repository. + +We can also pass a config file and override certain options as necessary\-: {\ttfamily testharness -\/-\/config testsprite2\-\_\-sample.\-config -\/-\/num-\/variations 10} + +Note\-: You may find it convenient to copy the S\-U\-T executable along with any resources to the test harness directory. Also note that testsprite2 and its resources (icon.\-bmp) are automatically copied when using the Visual Studio solution.\hypertarget{index_usageexamples_subsec}{}\subsection{Usage examples\-:}\label{index_usageexamples_subsec} +Passing a custom arguments string\-: {\ttfamily testharness -\/-\/sutapp testsprite2 -\/-\/sutargs \char`\"{}\textbackslash{}-\/\textbackslash{}-\/cyclecolor \textbackslash{}-\/\textbackslash{}-\/blend mod +\textbackslash{}-\/\textbackslash{}-\/iterations 2\char`\"{} -\/-\/action-\/config xyz.\-actions} + +Using the random variator\-: {\ttfamily testharness -\/-\/sutapp testsprite2 -\/-\/variator random -\/-\/num-\/variations 5 -\/-\/parameter-\/config xyz.\-parameters -\/-\/action-\/config xyz.\-actions}\hypertarget{index_config_subsec}{}\subsection{Config Files}\label{index_config_subsec} +Config files are an alternate way to pass parameters to the test harness. We describe the paramters in a config file and pass that to the test harness using the -\/-\/config option. The config file consists of lines of the form \char`\"{}x=y\char`\"{} where x is an option and y is it's value. For boolean options, we simply give the name of the option to indicate that it is to be passed to the testharness. + +The hash '\#' character can be used to start a comment from that point to the end of the line.\hypertarget{index_paramconfig_sec}{}\section{The S\-U\-T Parameters File}\label{index_paramconfig_sec} +To generate variations we need to describe the parameters the will be passed to the S\-U\-T. This description is given in a parameters file. Each line of the parameters file (except the blank lines) represents one command line option with five comma separated fields\-: {\ttfamily name, type, values, required, categories} + +\begin{DoxyItemize} +\item {\ttfamily name} is the name of the option, e.\-g., {\ttfamily -\/-\/cyclecolor}. \item {\ttfamily type} can have one of three values -\/ integer, boolean and enum. \item {\ttfamily values} -\/ for integer options this is the valid range of values the option can take, i.\-e., \mbox{[}min max\mbox{]}. For enum options this is a list of strings that the option can take, e.\-g., \mbox{[}val1 val2 val3\mbox{]}. For boolean options this field is ignored. \item {\ttfamily required} -\/ true if the option is required, false otherwise. \item {\ttfamily categories} -\/ a list of categories that the option belongs to. For example, \mbox{[}video mouse audio\mbox{]}\end{DoxyItemize} +Just like with config files, hash characters can be used to start comments.\hypertarget{index_additionalnotes_subsec}{}\subsection{Additional Notes}\label{index_additionalnotes_subsec} +\begin{DoxyItemize} +\item If you want to have an option that always takes a certain value, use an enum with only one value. \item Currently there isn't any way to turn an option off, i.\-e., all options will be included in the command line options string that is generated using the config. If you don't want an option to be passed to the S\-U\-T, remove it from the config file or comment it out.\end{DoxyItemize} +\hypertarget{index_variators_sec}{}\section{Variators}\label{index_variators_sec} +Variators are the mechanism by which we generate strings of command line arguments to test the S\-U\-T with. A variator is quite simply an iterator that iterates through different variations of command line options. There are two variators supported at the moment\-: \begin{DoxyItemize} +\item {\bfseries Exhaustive} -\/ Generate all possible combinations of command line arguments that are valid. \item {\bfseries Random} -\/ Generate a random variation each time the variator is called.\end{DoxyItemize} +As an example, let's try a simple .parameters file\-:\par + {\ttfamily -\/-\/blend, enum, \mbox{[}add mod\mbox{]}, false, \mbox{[}\mbox{]} \par + -\/-\/fullscreen, boolean, \mbox{[}\mbox{]}, false, \mbox{[}\mbox{]} } + +The exhaustive variator would generate the following four variations\-:\par + {\ttfamily -\/-\/blend add \par + -\/-\/blend mod \par + -\/-\/blend add -\/-\/fullscreen \par + -\/-\/blend mod -\/-\/fullscreen \par + } + +The random variator would simply generate a random variation like the following\-:\par + {\ttfamily -\/-\/blend mod}\hypertarget{index_actionconfig_sec}{}\section{The Actions File}\label{index_actionconfig_sec} +Once the S\-U\-T process has been launched, automated testing happens using a mechanism called actions. A list of actions is read from a file and each action is performed on the S\-U\-T process sequentially. Each line in the actions file describes an action. The format for an action is {\ttfamily hh\-:mm\-:ss A\-C\-T\-I\-O\-N\-\_\-\-N\-A\-M\-E additional parameters}. There are five actions supported at the moment\-: \begin{DoxyItemize} +\item {\bfseries S\-C\-R\-E\-E\-N\-S\-H\-O\-T} -\/ Takes a screenshot of each window owned by the S\-U\-T process. The images are saved as {\ttfamily }\mbox{[}hash\mbox{]}\-\_\-\mbox{[}i\mbox{]}.bmp where {\ttfamily }\mbox{[}hash\mbox{]} is the 32 character long hexadecimal M\-D5 hash of the arguments string that was passed to the S\-U\-T while launching it and {\ttfamily i} is the window number. i = 1 is an exceptional case where the {\ttfamily \-\_\-}\mbox{[}i\mbox{]} is dropped and the filename is simply {\ttfamily }\mbox{[}hash\mbox{]}.bmp\par + Note\-: The screenshots are only of the window's client area. \item {\bfseries V\-E\-R\-I\-F\-Y} -\/ Verifies the screenshots taken by the last S\-C\-R\-E\-E\-N\-S\-H\-O\-T action by comparing them against a verification image. Each {\ttfamily }\mbox{[}hash\mbox{]}\-\_\-i.\-bmp image output by the S\-C\-R\-E\-E\-N\-S\-H\-O\-T action is compared against a {\ttfamily }\mbox{[}hash\mbox{]}.bmp image in the verify-\/dir. \item {\bfseries Q\-U\-I\-T} -\/ Gracefully quits the S\-U\-T process. On Windows this means sending a W\-M\-\_\-\-C\-L\-O\-S\-E message to each window owned by the S\-U\-T process. On Linux it means sending a S\-I\-G\-Q\-U\-I\-T signal to the S\-U\-T process. \item {\bfseries K\-I\-L\-L} -\/ Forcefully kills the S\-U\-T process. This is useful when the S\-U\-T process doesn't respond to the Q\-U\-I\-T action. \item {\bfseries L\-A\-U\-N\-C\-H \mbox{[}/path/to/executable\mbox{]} \mbox{[}args\mbox{]}} -\/ Runs an executable with {\ttfamily }\mbox{[}args\mbox{]} as the arguments string.\end{DoxyItemize} +Just like with config files, hash characters can be used to start comments.\hypertarget{index_contint_sec}{}\section{Continuous Integration (\-C\-I)}\label{index_contint_sec} +One of the goals of the project was to create a test harness that integrates with C\-I systems to provide automated visual and interactive testing to S\-D\-L. + +At the moment the test harness can be run in two modes that are useful for C\-I\-: \begin{DoxyItemize} +\item Crash testing mode -\/ launch the S\-U\-T with every variation and all parameters, report to the C\-I if there's a crash \item Visual testing mode -\/ launch and visually verify the S\-U\-T for a smaller subset of the parameters\end{DoxyItemize} +Look at the launch\-\_\-harness.\-sh/launch\-\_\-harness.cmd for an example scripts that run the test harness for all variations with all parameters and report an error on a crash. The script uses the testsprite2\-\_\-crashtest config, so remember to copy those files over to the test harness executable directory along with the script.\hypertarget{index_todo_sec}{}\section{T\-O\-D\-Os}\label{index_todo_sec} +\begin{DoxyItemize} +\item Allow specifying a clipping box along with the V\-E\-R\-I\-F\-Y action, i.\-e., hh\-:mm\-:ss V\-E\-R\-I\-F\-Y x, y, w, h \item Add support for spaces between the equals sign in test harness config files \item Implement the S\-C\-R\-E\-E\-N\-S\-H\-O\-T action on Linux \item Add a pairwise variator \item Add actions to inject keyboard/mouse events \item Add actions to manipulate the S\-U\-T window, e.\-g., minimize, restore, resize \item Add support to load and save screenshots as .pngs instead of .bmps\end{DoxyItemize} +\hypertarget{index_issues_sec}{}\section{Known Issues}\label{index_issues_sec} +\begin{DoxyItemize} +\item The Q\-U\-I\-T action does not work on a testsprite2 process with multiple windows. This appears to be an issue with testsprite2. \item The S\-C\-R\-E\-E\-N\-S\-H\-O\-T action doesn't capture the testsprite2 window correctly if the --fullscreen option is supplied. It works with --fullscreen-\/desktop, however.\end{DoxyItemize} +\hypertarget{index_moreinfo_sec}{}\section{More Information}\label{index_moreinfo_sec} +Author Contact Info\-:\par + Apoorv Upreti {\ttfamily $<$\href{mailto:apoorvupreti@gmail.com}{\tt apoorvupreti@gmail.\-com}$>$} + +Other useful links\-: +\begin{DoxyItemize} +\item Project Repository\-: \href{https://bitbucket.org/nerdap/sdlvisualtest}{\tt https\-://bitbucket.\-org/nerdap/sdlvisualtest} +\item Project Wiki\-: \href{https://github.com/nerdap/autotestsprite2/wiki}{\tt https\-://github.\-com/nerdap/autotestsprite2/wiki} +\item Project Blog\-: \href{http://nerdap.github.io}{\tt http\-://nerdap.\-github.\-io} +\item Verification images for testsprite2\-\_\-blendmodes\-: \href{https://www.dropbox.com/s/nm02aem76m812ng/testsprite2_blendmodes.zip}{\tt https\-://www.\-dropbox.\-com/s/nm02aem76m812ng/testsprite2\-\_\-blendmodes.\-zip} +\item Verification images for testsprite2\-\_\-geometry\-: \href{https://www.dropbox.com/s/csypwryopaslpaf/testsprite2_geometry.zip}{\tt https\-://www.\-dropbox.\-com/s/csypwryopaslpaf/testsprite2\-\_\-geometry.\-zip} +\end{DoxyItemize} \ No newline at end of file diff --git a/visualtest/docs/latex/linux__process_8c.tex b/visualtest/docs/latex/linux__process_8c.tex new file mode 100755 index 0000000000000..42b01f1f270e9 --- /dev/null +++ b/visualtest/docs/latex/linux__process_8c.tex @@ -0,0 +1,16 @@ +\hypertarget{linux__process_8c}{\section{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/linux/linux\-\_\-process.c File Reference} +\label{linux__process_8c}\index{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/linux/linux\-\_\-process.\-c@{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/linux/linux\-\_\-process.\-c}} +} +{\ttfamily \#include $<$S\-D\-L.\-h$>$}\\* +{\ttfamily \#include $<$S\-D\-L\-\_\-test.\-h$>$}\\* +{\ttfamily \#include $<$sys/types.\-h$>$}\\* +{\ttfamily \#include $<$sys/wait.\-h$>$}\\* +{\ttfamily \#include $<$unistd.\-h$>$}\\* +{\ttfamily \#include $<$errno.\-h$>$}\\* +{\ttfamily \#include \char`\"{}S\-D\-L\-\_\-visualtest\-\_\-process.\-h\char`\"{}}\\* +{\ttfamily \#include \char`\"{}S\-D\-L\-\_\-visualtest\-\_\-harness\-\_\-argparser.\-h\char`\"{}}\\* +{\ttfamily \#include \char`\"{}S\-D\-L\-\_\-visualtest\-\_\-parsehelper.\-h\char`\"{}}\\* + + +\subsection{Detailed Description} +Source file for the process A\-P\-I on linux. \ No newline at end of file diff --git a/visualtest/docs/latex/make.bat b/visualtest/docs/latex/make.bat new file mode 100755 index 0000000000000..817e9f5ea7ecb --- /dev/null +++ b/visualtest/docs/latex/make.bat @@ -0,0 +1,25 @@ +del /s /f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl refman.pdf + +pdflatex refman +echo ---- +makeindex refman.idx +echo ---- +pdflatex refman + +setlocal enabledelayedexpansion +set count=5 +:repeat +set content=X +for /F "tokens=*" %%T in ( 'findstr /C:"Rerun LaTeX" refman.log' ) do set content="%%~T" +if !content! == X for /F "tokens=*" %%T in ( 'findstr /C:"Rerun to get cross-references right" refman.log' ) do set content="%%~T" +if !content! == X goto :skip +set /a count-=1 +if !count! EQU 0 goto :skip + +echo ---- +pdflatex refman +goto :repeat +:skip +endlocal +makeindex refman.idx +pdflatex refman diff --git a/visualtest/docs/latex/mischelper_8c.tex b/visualtest/docs/latex/mischelper_8c.tex new file mode 100755 index 0000000000000..5447f5bd3d5a1 --- /dev/null +++ b/visualtest/docs/latex/mischelper_8c.tex @@ -0,0 +1,26 @@ +\hypertarget{mischelper_8c}{\section{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/mischelper.c File Reference} +\label{mischelper_8c}\index{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/mischelper.\-c@{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/mischelper.\-c}} +} +{\ttfamily \#include $<$S\-D\-L\-\_\-test.\-h$>$}\\* +\subsection*{Functions} +\begin{DoxyCompactItemize} +\item +void \hyperlink{mischelper_8c_a0dae46cdb4e58bdda78676260eaaf980}{S\-D\-L\-Visual\-Test\-\_\-\-Hash\-String} (char $\ast$str, char hash\mbox{[}33\mbox{]}) +\end{DoxyCompactItemize} + + +\subsection{Detailed Description} +Header with miscellaneous helper functions. + +Source file with miscellaneous helper functions. + +\subsection{Function Documentation} +\hypertarget{mischelper_8c_a0dae46cdb4e58bdda78676260eaaf980}{\index{mischelper.\-c@{mischelper.\-c}!S\-D\-L\-Visual\-Test\-\_\-\-Hash\-String@{S\-D\-L\-Visual\-Test\-\_\-\-Hash\-String}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Hash\-String@{S\-D\-L\-Visual\-Test\-\_\-\-Hash\-String}!mischelper.c@{mischelper.\-c}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Hash\-String}]{\setlength{\rightskip}{0pt plus 5cm}void S\-D\-L\-Visual\-Test\-\_\-\-Hash\-String ( +\begin{DoxyParamCaption} +\item[{char $\ast$}]{str, } +\item[{char}]{hash\mbox{[}33\mbox{]}} +\end{DoxyParamCaption} +)}}\label{mischelper_8c_a0dae46cdb4e58bdda78676260eaaf980} +Stores a 32 digit hexadecimal string representing the M\-D5 hash of the string {\ttfamily str} in {\ttfamily hash}. \ No newline at end of file diff --git a/visualtest/docs/latex/parsehelper_8c.tex b/visualtest/docs/latex/parsehelper_8c.tex new file mode 100755 index 0000000000000..28b075c484d89 --- /dev/null +++ b/visualtest/docs/latex/parsehelper_8c.tex @@ -0,0 +1,55 @@ +\hypertarget{parsehelper_8c}{\section{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/parsehelper.c File Reference} +\label{parsehelper_8c}\index{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/parsehelper.\-c@{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/parsehelper.\-c}} +} +{\ttfamily \#include $<$S\-D\-L\-\_\-test.\-h$>$}\\* +{\ttfamily \#include \char`\"{}S\-D\-L\-\_\-visualtest\-\_\-harness\-\_\-argparser.\-h\char`\"{}}\\* +\subsection*{Functions} +\begin{DoxyCompactItemize} +\item +char $\ast$$\ast$ \hyperlink{parsehelper_8c_a508e690ed938e09fc3b724d2faf06899}{S\-D\-L\-Visual\-Test\-\_\-\-Tokenize} (char $\ast$str, int max\-\_\-token\-\_\-len) +\item +char $\ast$$\ast$ \hyperlink{parsehelper_8c_a5f168fdd02f9d40ddbad97bd8c0b6361}{S\-D\-L\-Visual\-Test\-\_\-\-Parse\-Args\-To\-Argv} (char $\ast$args) +\end{DoxyCompactItemize} + + +\subsection{Detailed Description} +Source file with some helper functions for parsing strings. + +\subsection{Function Documentation} +\hypertarget{parsehelper_8c_a5f168fdd02f9d40ddbad97bd8c0b6361}{\index{parsehelper.\-c@{parsehelper.\-c}!S\-D\-L\-Visual\-Test\-\_\-\-Parse\-Args\-To\-Argv@{S\-D\-L\-Visual\-Test\-\_\-\-Parse\-Args\-To\-Argv}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Parse\-Args\-To\-Argv@{S\-D\-L\-Visual\-Test\-\_\-\-Parse\-Args\-To\-Argv}!parsehelper.c@{parsehelper.\-c}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Parse\-Args\-To\-Argv}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$$\ast$ S\-D\-L\-Visual\-Test\-\_\-\-Parse\-Args\-To\-Argv ( +\begin{DoxyParamCaption} +\item[{char $\ast$}]{args} +\end{DoxyParamCaption} +)}}\label{parsehelper_8c_a5f168fdd02f9d40ddbad97bd8c0b6361} +Takes an string of command line arguments and breaks them up into an array based on whitespace. + + +\begin{DoxyParams}{Parameters} +{\em args} & The string of arguments.\\ +\hline +\end{DoxyParams} +\begin{DoxyReturn}{Returns} +N\-U\-L\-L on failure, an array of strings on success. The last element of the array is N\-U\-L\-L. The first element of the array is N\-U\-L\-L and should be set to the path of the executable by the caller. +\end{DoxyReturn} +\hypertarget{parsehelper_8c_a508e690ed938e09fc3b724d2faf06899}{\index{parsehelper.\-c@{parsehelper.\-c}!S\-D\-L\-Visual\-Test\-\_\-\-Tokenize@{S\-D\-L\-Visual\-Test\-\_\-\-Tokenize}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Tokenize@{S\-D\-L\-Visual\-Test\-\_\-\-Tokenize}!parsehelper.c@{parsehelper.\-c}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Tokenize}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$$\ast$ S\-D\-L\-Visual\-Test\-\_\-\-Tokenize ( +\begin{DoxyParamCaption} +\item[{char $\ast$}]{str, } +\item[{int}]{max\-\_\-token\-\_\-len} +\end{DoxyParamCaption} +)}}\label{parsehelper_8c_a508e690ed938e09fc3b724d2faf06899} +Takes a string and breaks it into tokens by splitting on whitespace. + + +\begin{DoxyParams}{Parameters} +{\em str} & The string to be split. \\ +\hline +{\em max\-\_\-token\-\_\-len} & Length of each element in the array to be returned.\\ +\hline +\end{DoxyParams} +\begin{DoxyReturn}{Returns} +N\-U\-L\-L on failure; an array of strings with the tokens on success. The last element of the array is N\-U\-L\-L. +\end{DoxyReturn} diff --git a/visualtest/docs/latex/refman.tex b/visualtest/docs/latex/refman.tex new file mode 100755 index 0000000000000..e181c02d44fd6 --- /dev/null +++ b/visualtest/docs/latex/refman.tex @@ -0,0 +1,189 @@ +\documentclass[twoside]{book} + +% Packages required by doxygen +\usepackage{calc} +\usepackage{doxygen} +\usepackage{graphicx} +\usepackage[utf8]{inputenc} +\usepackage{makeidx} +\usepackage{multicol} +\usepackage{multirow} +\usepackage{textcomp} +\usepackage[table]{xcolor} + +% Font selection +\usepackage[T1]{fontenc} +\usepackage{mathptmx} +\usepackage[scaled=.90]{helvet} +\usepackage{courier} +\usepackage{amssymb} +\usepackage{sectsty} +\renewcommand{\familydefault}{\sfdefault} +\allsectionsfont{% + \fontseries{bc}\selectfont% + \color{darkgray}% +} +\renewcommand{\DoxyLabelFont}{% + \fontseries{bc}\selectfont% + \color{darkgray}% +} + +% Page & text layout +\usepackage{geometry} +\geometry{% + a4paper,% + top=2.5cm,% + bottom=2.5cm,% + left=2.5cm,% + right=2.5cm% +} +\tolerance=750 +\hfuzz=15pt +\hbadness=750 +\setlength{\emergencystretch}{15pt} +\setlength{\parindent}{0cm} +\setlength{\parskip}{0.2cm} +\makeatletter +\renewcommand{\paragraph}{% + \@startsection{paragraph}{4}{0ex}{-1.0ex}{1.0ex}{% + \normalfont\normalsize\bfseries\SS@parafont% + }% +} +\renewcommand{\subparagraph}{% + \@startsection{subparagraph}{5}{0ex}{-1.0ex}{1.0ex}{% + \normalfont\normalsize\bfseries\SS@subparafont% + }% +} +\makeatother + +% Headers & footers +\usepackage{fancyhdr} +\pagestyle{fancyplain} +\fancyhead[LE]{\fancyplain{}{\bfseries\thepage}} +\fancyhead[CE]{\fancyplain{}{}} +\fancyhead[RE]{\fancyplain{}{\bfseries\leftmark}} +\fancyhead[LO]{\fancyplain{}{\bfseries\rightmark}} +\fancyhead[CO]{\fancyplain{}{}} +\fancyhead[RO]{\fancyplain{}{\bfseries\thepage}} +\fancyfoot[LE]{\fancyplain{}{}} +\fancyfoot[CE]{\fancyplain{}{}} +\fancyfoot[RE]{\fancyplain{}{\bfseries\scriptsize Generated on Thu Sep 26 2013 00:18:24 for SDL Visual Test by Doxygen }} +\fancyfoot[LO]{\fancyplain{}{\bfseries\scriptsize Generated on Thu Sep 26 2013 00:18:24 for SDL Visual Test by Doxygen }} +\fancyfoot[CO]{\fancyplain{}{}} +\fancyfoot[RO]{\fancyplain{}{}} +\renewcommand{\footrulewidth}{0.4pt} +\renewcommand{\chaptermark}[1]{% + \markboth{#1}{}% +} +\renewcommand{\sectionmark}[1]{% + \markright{\thesection\ #1}% +} + +% Indices & bibliography +\usepackage{natbib} +\usepackage[titles]{tocloft} +\setcounter{tocdepth}{3} +\setcounter{secnumdepth}{5} +\makeindex + +% Hyperlinks (required, but should be loaded last) +\usepackage{ifpdf} +\ifpdf + \usepackage[pdftex,pagebackref=true]{hyperref} +\else + \usepackage[ps2pdf,pagebackref=true]{hyperref} +\fi +\hypersetup{% + colorlinks=true,% + linkcolor=blue,% + citecolor=blue,% + unicode% +} + +% Custom commands +\newcommand{\clearemptydoublepage}{% + \newpage{\pagestyle{empty}\cleardoublepage}% +} + + +%===== C O N T E N T S ===== + +\begin{document} + +% Titlepage & ToC +\hypersetup{pageanchor=false} +\pagenumbering{roman} +\begin{titlepage} +\vspace*{7cm} +\begin{center}% +{\Large S\-D\-L Visual Test }\\ +\vspace*{1cm} +{\large Generated by Doxygen 1.8.4}\\ +\vspace*{0.5cm} +{\small Thu Sep 26 2013 00:18:24}\\ +\end{center} +\end{titlepage} +\clearemptydoublepage +\tableofcontents +\clearemptydoublepage +\pagenumbering{arabic} +\hypersetup{pageanchor=true} + +%--- Begin generated contents --- +\chapter{Visual and Interactive Test Automation for S\-D\-L 2.0} +\label{index}\hypertarget{index}{}\input{index} +\chapter{Data Structure Index} +\input{annotated} +\chapter{File Index} +\input{files} +\chapter{Data Structure Documentation} +\input{struct_s_d_l___process_exit_status} +\input{struct_s_d_l___process_info} +\input{struct_s_d_l_visual_test___action} +\input{struct_s_d_l_visual_test___action_node} +\input{struct_s_d_l_visual_test___action_queue} +\input{struct_s_d_l_visual_test___exhaustive_variator} +\input{struct_s_d_l_visual_test___harness_state} +\input{struct_s_d_l_visual_test___random_variator} +\input{struct_s_d_l_visual_test___r_w_helper_buffer} +\input{struct_s_d_l_visual_test___s_u_t_config} +\input{struct_s_d_l_visual_test___s_u_t_int_range} +\input{struct_s_d_l_visual_test___s_u_t_option} +\input{union_s_d_l_visual_test___s_u_t_option_value} +\input{struct_s_d_l_visual_test___variation} +\input{struct_s_d_l_visual_test___variator} +\chapter{File Documentation} +\input{_s_d_l__visualtest__action__configparser_8h} +\input{_s_d_l__visualtest__exhaustive__variator_8h} +\input{_s_d_l__visualtest__harness__argparser_8h} +\input{_s_d_l__visualtest__parsehelper_8h} +\input{_s_d_l__visualtest__process_8h} +\input{_s_d_l__visualtest__random__variator_8h} +\input{_s_d_l__visualtest__screenshot_8h} +\input{_s_d_l__visualtest__sut__configparser_8h} +\input{_s_d_l__visualtest__variator__common_8h} +\input{_s_d_l__visualtest__variators_8h} +\input{action__configparser_8c} +\input{harness__argparser_8c} +\input{linux__process_8c} +\input{mischelper_8c} +\input{parsehelper_8c} +\input{rwhelper_8c} +\input{screenshot_8c} +\input{sut__configparser_8c} +\input{testharness_8c} +\input{variator__common_8c} +\input{variator__exhaustive_8c} +\input{variator__random_8c} +\input{variators_8c} +\input{windows__process_8c} +\input{windows__screenshot_8c} +%--- End generated contents --- + +% Index +\newpage +\phantomsection +\addcontentsline{toc}{part}{Index} +\printindex + +\end{document} diff --git a/visualtest/docs/latex/rwhelper_8c.tex b/visualtest/docs/latex/rwhelper_8c.tex new file mode 100755 index 0000000000000..0a72b74918d64 --- /dev/null +++ b/visualtest/docs/latex/rwhelper_8c.tex @@ -0,0 +1,76 @@ +\hypertarget{rwhelper_8c}{\section{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/rwhelper.c File Reference} +\label{rwhelper_8c}\index{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/rwhelper.\-c@{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/rwhelper.\-c}} +} +{\ttfamily \#include $<$S\-D\-L\-\_\-test.\-h$>$}\\* +{\ttfamily \#include \char`\"{}S\-D\-L\-\_\-visualtest\-\_\-sut\-\_\-configparser.\-h\char`\"{}}\\* +{\ttfamily \#include \char`\"{}S\-D\-L\-\_\-visualtest\-\_\-rwhelper.\-h\char`\"{}}\\* +\subsection*{Functions} +\begin{DoxyCompactItemize} +\item +void \hyperlink{rwhelper_8c_aa7878508e6d851b11dc1d1186324064a}{S\-D\-L\-Visual\-Test\-\_\-\-R\-W\-Helper\-Reset\-Buffer} (\hyperlink{struct_s_d_l_visual_test___r_w_helper_buffer}{S\-D\-L\-Visual\-Test\-\_\-\-R\-W\-Helper\-Buffer} $\ast$buffer) +\item +char \hyperlink{rwhelper_8c_a92794c04d5568bde0da9f3020d88f44c}{S\-D\-L\-Visual\-Test\-\_\-\-R\-W\-Helper\-Read\-Char} (S\-D\-L\-\_\-\-R\-Wops $\ast$rw, \hyperlink{struct_s_d_l_visual_test___r_w_helper_buffer}{S\-D\-L\-Visual\-Test\-\_\-\-R\-W\-Helper\-Buffer} $\ast$buffer) +\item +char $\ast$ \hyperlink{rwhelper_8c_af97cfdf8d58f716efa8fd9204666df12}{S\-D\-L\-Visual\-Test\-\_\-\-R\-W\-Helper\-Read\-Line} (S\-D\-L\-\_\-\-R\-Wops $\ast$rw, char $\ast$str, int size, \hyperlink{struct_s_d_l_visual_test___r_w_helper_buffer}{S\-D\-L\-Visual\-Test\-\_\-\-R\-W\-Helper\-Buffer} $\ast$buffer, char comment\-\_\-char) +\item +int \hyperlink{rwhelper_8c_ac7f94417fa973af01a27452acd0043e8}{S\-D\-L\-Visual\-Test\-\_\-\-R\-W\-Helper\-Count\-Non\-Empty\-Lines} (S\-D\-L\-\_\-\-R\-Wops $\ast$rw, \hyperlink{struct_s_d_l_visual_test___r_w_helper_buffer}{S\-D\-L\-Visual\-Test\-\_\-\-R\-W\-Helper\-Buffer} $\ast$buffer, char comment\-\_\-char) +\end{DoxyCompactItemize} + + +\subsection{Detailed Description} +Header file with some helper functions for working with S\-D\-L\-\_\-\-R\-Wops. + +Source file with some helper functions for working with S\-D\-L\-\_\-\-R\-Wops. + +\subsection{Function Documentation} +\hypertarget{rwhelper_8c_ac7f94417fa973af01a27452acd0043e8}{\index{rwhelper.\-c@{rwhelper.\-c}!S\-D\-L\-Visual\-Test\-\_\-\-R\-W\-Helper\-Count\-Non\-Empty\-Lines@{S\-D\-L\-Visual\-Test\-\_\-\-R\-W\-Helper\-Count\-Non\-Empty\-Lines}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-R\-W\-Helper\-Count\-Non\-Empty\-Lines@{S\-D\-L\-Visual\-Test\-\_\-\-R\-W\-Helper\-Count\-Non\-Empty\-Lines}!rwhelper.c@{rwhelper.\-c}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-R\-W\-Helper\-Count\-Non\-Empty\-Lines}]{\setlength{\rightskip}{0pt plus 5cm}int S\-D\-L\-Visual\-Test\-\_\-\-R\-W\-Helper\-Count\-Non\-Empty\-Lines ( +\begin{DoxyParamCaption} +\item[{S\-D\-L\-\_\-\-R\-Wops $\ast$}]{rw, } +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-R\-W\-Helper\-Buffer} $\ast$}]{buffer, } +\item[{char}]{comment\-\_\-char} +\end{DoxyParamCaption} +)}}\label{rwhelper_8c_ac7f94417fa973af01a27452acd0043e8} +Counts the number of lines that are not all whitespace and comments using the S\-D\-L\-\_\-\-R\-Wops object pointed to by {\ttfamily rw}. {\ttfamily comment\-\_\-char} indicates the character used for comments. Uses the buffer pointed to by {\ttfamily buffer} to read data in blocks. + +\begin{DoxyReturn}{Returns} +Number of lines on success, -\/1 on failure. +\end{DoxyReturn} +\hypertarget{rwhelper_8c_a92794c04d5568bde0da9f3020d88f44c}{\index{rwhelper.\-c@{rwhelper.\-c}!S\-D\-L\-Visual\-Test\-\_\-\-R\-W\-Helper\-Read\-Char@{S\-D\-L\-Visual\-Test\-\_\-\-R\-W\-Helper\-Read\-Char}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-R\-W\-Helper\-Read\-Char@{S\-D\-L\-Visual\-Test\-\_\-\-R\-W\-Helper\-Read\-Char}!rwhelper.c@{rwhelper.\-c}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-R\-W\-Helper\-Read\-Char}]{\setlength{\rightskip}{0pt plus 5cm}char S\-D\-L\-Visual\-Test\-\_\-\-R\-W\-Helper\-Read\-Char ( +\begin{DoxyParamCaption} +\item[{S\-D\-L\-\_\-\-R\-Wops $\ast$}]{rw, } +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-R\-W\-Helper\-Buffer} $\ast$}]{buffer} +\end{DoxyParamCaption} +)}}\label{rwhelper_8c_a92794c04d5568bde0da9f3020d88f44c} +Reads a single character using the S\-D\-L\-\_\-\-R\-Wops object pointed to by {\ttfamily rw}. This function reads data in blocks and stores them in the buffer pointed to by {\ttfamily buffer}, so other S\-D\-L\-\_\-\-R\-Wops functions should not be used in conjunction with this function. + +\begin{DoxyReturn}{Returns} +The character that was read. +\end{DoxyReturn} +\hypertarget{rwhelper_8c_af97cfdf8d58f716efa8fd9204666df12}{\index{rwhelper.\-c@{rwhelper.\-c}!S\-D\-L\-Visual\-Test\-\_\-\-R\-W\-Helper\-Read\-Line@{S\-D\-L\-Visual\-Test\-\_\-\-R\-W\-Helper\-Read\-Line}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-R\-W\-Helper\-Read\-Line@{S\-D\-L\-Visual\-Test\-\_\-\-R\-W\-Helper\-Read\-Line}!rwhelper.c@{rwhelper.\-c}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-R\-W\-Helper\-Read\-Line}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ S\-D\-L\-Visual\-Test\-\_\-\-R\-W\-Helper\-Read\-Line ( +\begin{DoxyParamCaption} +\item[{S\-D\-L\-\_\-\-R\-Wops $\ast$}]{rw, } +\item[{char $\ast$}]{str, } +\item[{int}]{size, } +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-R\-W\-Helper\-Buffer} $\ast$}]{buffer, } +\item[{char}]{comment\-\_\-char} +\end{DoxyParamCaption} +)}}\label{rwhelper_8c_af97cfdf8d58f716efa8fd9204666df12} +Reads characters using the S\-D\-L\-\_\-\-R\-Wops object pointed to by {\ttfamily rw} into the character array pointed to by {\ttfamily str} (of size {\ttfamily size}) until either the array is full or a new line is encountered. If {\ttfamily comment\-\_\-char} is encountered, all characters from that position till the end of the line are ignored. The new line is not included as part of the buffer. Lines with only whitespace and comments are ignored. This function reads data in blocks and stores them in the buffer pointed to by {\ttfamily buffer}, so other S\-D\-L\-\_\-\-R\-Wops functions should not be used in conjunction with this function. + +\begin{DoxyReturn}{Returns} +pointer to the string on success, N\-U\-L\-L on failure or E\-O\-F. +\end{DoxyReturn} +\hypertarget{rwhelper_8c_aa7878508e6d851b11dc1d1186324064a}{\index{rwhelper.\-c@{rwhelper.\-c}!S\-D\-L\-Visual\-Test\-\_\-\-R\-W\-Helper\-Reset\-Buffer@{S\-D\-L\-Visual\-Test\-\_\-\-R\-W\-Helper\-Reset\-Buffer}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-R\-W\-Helper\-Reset\-Buffer@{S\-D\-L\-Visual\-Test\-\_\-\-R\-W\-Helper\-Reset\-Buffer}!rwhelper.c@{rwhelper.\-c}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-R\-W\-Helper\-Reset\-Buffer}]{\setlength{\rightskip}{0pt plus 5cm}void S\-D\-L\-Visual\-Test\-\_\-\-R\-W\-Helper\-Reset\-Buffer ( +\begin{DoxyParamCaption} +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-R\-W\-Helper\-Buffer} $\ast$}]{buffer} +\end{DoxyParamCaption} +)}}\label{rwhelper_8c_aa7878508e6d851b11dc1d1186324064a} +Resets the buffer pointed to by {\ttfamily buffer} used by some of the helper functions. This function should be called when you're using one of the helper functions with a new S\-D\-L\-\_\-\-R\-Wops object. \ No newline at end of file diff --git a/visualtest/docs/latex/screenshot_8c.tex b/visualtest/docs/latex/screenshot_8c.tex new file mode 100755 index 0000000000000..991374fe07e57 --- /dev/null +++ b/visualtest/docs/latex/screenshot_8c.tex @@ -0,0 +1,30 @@ +\hypertarget{screenshot_8c}{\section{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/screenshot.c File Reference} +\label{screenshot_8c}\index{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/screenshot.\-c@{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/screenshot.\-c}} +} +{\ttfamily \#include \char`\"{}S\-D\-L\-\_\-visualtest\-\_\-mischelper.\-h\char`\"{}}\\* +{\ttfamily \#include $<$S\-D\-L\-\_\-test.\-h$>$}\\* +\subsection*{Functions} +\begin{DoxyCompactItemize} +\item +int \hyperlink{screenshot_8c_ac7b5335651144961676abc2116c38299}{S\-D\-L\-Visual\-Test\-\_\-\-Verify\-Screenshots} (char $\ast$args, char $\ast$test\-\_\-dir, char $\ast$verify\-\_\-dir) +\end{DoxyCompactItemize} + + +\subsection{Detailed Description} +Source file for the screenshot A\-P\-I. + +\subsection{Function Documentation} +\hypertarget{screenshot_8c_ac7b5335651144961676abc2116c38299}{\index{screenshot.\-c@{screenshot.\-c}!S\-D\-L\-Visual\-Test\-\_\-\-Verify\-Screenshots@{S\-D\-L\-Visual\-Test\-\_\-\-Verify\-Screenshots}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Verify\-Screenshots@{S\-D\-L\-Visual\-Test\-\_\-\-Verify\-Screenshots}!screenshot.c@{screenshot.\-c}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Verify\-Screenshots}]{\setlength{\rightskip}{0pt plus 5cm}int S\-D\-L\-Visual\-Test\-\_\-\-Verify\-Screenshots ( +\begin{DoxyParamCaption} +\item[{char $\ast$}]{args, } +\item[{char $\ast$}]{test\-\_\-dir, } +\item[{char $\ast$}]{verify\-\_\-dir} +\end{DoxyParamCaption} +)}}\label{screenshot_8c_ac7b5335651144961676abc2116c38299} +Compare a screenshot taken previously with S\-U\-T arguments {\ttfamily args} that is located in {\ttfamily test\-\_\-dir} with a verification image that is located in {\ttfamily verify\-\_\-dir}. + +\begin{DoxyReturn}{Returns} +-\/1 on failure, 0 if the images were not equal, 1 if the images are equal and 2 if the verification image is not present. +\end{DoxyReturn} diff --git a/visualtest/docs/latex/struct_s_d_l___process_exit_status.tex b/visualtest/docs/latex/struct_s_d_l___process_exit_status.tex new file mode 100755 index 0000000000000..2b9da419f2842 --- /dev/null +++ b/visualtest/docs/latex/struct_s_d_l___process_exit_status.tex @@ -0,0 +1,31 @@ +\hypertarget{struct_s_d_l___process_exit_status}{\section{S\-D\-L\-\_\-\-Process\-Exit\-Status Struct Reference} +\label{struct_s_d_l___process_exit_status}\index{S\-D\-L\-\_\-\-Process\-Exit\-Status@{S\-D\-L\-\_\-\-Process\-Exit\-Status}} +} + + +{\ttfamily \#include $<$S\-D\-L\-\_\-visualtest\-\_\-process.\-h$>$} + +\subsection*{Data Fields} +\begin{DoxyCompactItemize} +\item +int \hyperlink{struct_s_d_l___process_exit_status_a51df50c07437f2e816d6ce7ce99e1cac}{exit\-\_\-success} +\item +int \hyperlink{struct_s_d_l___process_exit_status_a9324a9ff7dc6697dd77f02998d5e77d7}{exit\-\_\-status} +\end{DoxyCompactItemize} + + +\subsection{Detailed Description} +This structure stores the exit status (value returned by \hyperlink{testharness_8c_a0ddf1224851353fc92bfbff6f499fa97}{main()}) and whether the process exited sucessfully or not. + +\subsection{Field Documentation} +\hypertarget{struct_s_d_l___process_exit_status_a9324a9ff7dc6697dd77f02998d5e77d7}{\index{S\-D\-L\-\_\-\-Process\-Exit\-Status@{S\-D\-L\-\_\-\-Process\-Exit\-Status}!exit\-\_\-status@{exit\-\_\-status}} +\index{exit\-\_\-status@{exit\-\_\-status}!SDL_ProcessExitStatus@{S\-D\-L\-\_\-\-Process\-Exit\-Status}} +\subsubsection[{exit\-\_\-status}]{\setlength{\rightskip}{0pt plus 5cm}int exit\-\_\-status}}\label{struct_s_d_l___process_exit_status_a9324a9ff7dc6697dd77f02998d5e77d7} +The exit status of the process. 8-\/bit value. \hypertarget{struct_s_d_l___process_exit_status_a51df50c07437f2e816d6ce7ce99e1cac}{\index{S\-D\-L\-\_\-\-Process\-Exit\-Status@{S\-D\-L\-\_\-\-Process\-Exit\-Status}!exit\-\_\-success@{exit\-\_\-success}} +\index{exit\-\_\-success@{exit\-\_\-success}!SDL_ProcessExitStatus@{S\-D\-L\-\_\-\-Process\-Exit\-Status}} +\subsubsection[{exit\-\_\-success}]{\setlength{\rightskip}{0pt plus 5cm}int exit\-\_\-success}}\label{struct_s_d_l___process_exit_status_a51df50c07437f2e816d6ce7ce99e1cac} +Zero if the process exited successfully + +The documentation for this struct was generated from the following file\-:\begin{DoxyCompactItemize} +\item +C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\hyperlink{_s_d_l__visualtest__process_8h}{S\-D\-L\-\_\-visualtest\-\_\-process.\-h}\end{DoxyCompactItemize} diff --git a/visualtest/docs/latex/struct_s_d_l___process_info.tex b/visualtest/docs/latex/struct_s_d_l___process_info.tex new file mode 100755 index 0000000000000..2bbcf9cf3aa2e --- /dev/null +++ b/visualtest/docs/latex/struct_s_d_l___process_info.tex @@ -0,0 +1,15 @@ +\hypertarget{struct_s_d_l___process_info}{\section{S\-D\-L\-\_\-\-Process\-Info Struct Reference} +\label{struct_s_d_l___process_info}\index{S\-D\-L\-\_\-\-Process\-Info@{S\-D\-L\-\_\-\-Process\-Info}} +} + + +{\ttfamily \#include $<$S\-D\-L\-\_\-visualtest\-\_\-process.\-h$>$} + + + +\subsection{Detailed Description} +Struct to store a platform specific handle to a process. + +The documentation for this struct was generated from the following file\-:\begin{DoxyCompactItemize} +\item +C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\hyperlink{_s_d_l__visualtest__process_8h}{S\-D\-L\-\_\-visualtest\-\_\-process.\-h}\end{DoxyCompactItemize} diff --git a/visualtest/docs/latex/struct_s_d_l_visual_test___action.tex b/visualtest/docs/latex/struct_s_d_l_visual_test___action.tex new file mode 100755 index 0000000000000..b153bd83ed30c --- /dev/null +++ b/visualtest/docs/latex/struct_s_d_l_visual_test___action.tex @@ -0,0 +1,47 @@ +\hypertarget{struct_s_d_l_visual_test___action}{\section{S\-D\-L\-Visual\-Test\-\_\-\-Action Struct Reference} +\label{struct_s_d_l_visual_test___action}\index{S\-D\-L\-Visual\-Test\-\_\-\-Action@{S\-D\-L\-Visual\-Test\-\_\-\-Action}} +} + + +{\ttfamily \#include $<$S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h$>$} + +\subsection*{Data Fields} +\begin{DoxyCompactItemize} +\item +\hyperlink{_s_d_l__visualtest__action__configparser_8h_a383e41b8547eab149a0a4af867b3ebc6}{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Type} \hyperlink{struct_s_d_l_visual_test___action_a3ab091b672fc470015f09e6c4c50dcf1}{type} +\item +int \hyperlink{struct_s_d_l_visual_test___action_a42715f65f02da52edc5b22021d8ae670}{time} +\item +\begin{tabbing} +xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=\kill +union \{\\ +\>struct \{\\ +\>\>char $\ast$ {\bfseries path}\\ +\>\>char $\ast$ {\bfseries args}\\ +\>\} \hyperlink{struct_s_d_l_visual_test___action_aa43e9883c9f24718f49b984b67b1afdc}{process}\\ +\} \hyperlink{struct_s_d_l_visual_test___action_a4626514a67f261290b54fb3d85ca8ddd}{extra}\\ + +\end{tabbing}\end{DoxyCompactItemize} + + +\subsection{Detailed Description} +Struct that defines an action that will be performed on the S\-U\-T process at a specific time. + +\subsection{Field Documentation} +\hypertarget{struct_s_d_l_visual_test___action_a4626514a67f261290b54fb3d85ca8ddd}{\index{S\-D\-L\-Visual\-Test\-\_\-\-Action@{S\-D\-L\-Visual\-Test\-\_\-\-Action}!extra@{extra}} +\index{extra@{extra}!SDLVisualTest_Action@{S\-D\-L\-Visual\-Test\-\_\-\-Action}} +\subsubsection[{extra}]{\setlength{\rightskip}{0pt plus 5cm}union \{ ... \} extra}}\label{struct_s_d_l_visual_test___action_a4626514a67f261290b54fb3d85ca8ddd} +Any additional information needed to perform the action. \hypertarget{struct_s_d_l_visual_test___action_aa43e9883c9f24718f49b984b67b1afdc}{\index{S\-D\-L\-Visual\-Test\-\_\-\-Action@{S\-D\-L\-Visual\-Test\-\_\-\-Action}!process@{process}} +\index{process@{process}!SDLVisualTest_Action@{S\-D\-L\-Visual\-Test\-\_\-\-Action}} +\subsubsection[{process}]{\setlength{\rightskip}{0pt plus 5cm}struct \{ ... \} process}}\label{struct_s_d_l_visual_test___action_aa43e9883c9f24718f49b984b67b1afdc} +The path and arguments to the process to be launched \hypertarget{struct_s_d_l_visual_test___action_a42715f65f02da52edc5b22021d8ae670}{\index{S\-D\-L\-Visual\-Test\-\_\-\-Action@{S\-D\-L\-Visual\-Test\-\_\-\-Action}!time@{time}} +\index{time@{time}!SDLVisualTest_Action@{S\-D\-L\-Visual\-Test\-\_\-\-Action}} +\subsubsection[{time}]{\setlength{\rightskip}{0pt plus 5cm}int time}}\label{struct_s_d_l_visual_test___action_a42715f65f02da52edc5b22021d8ae670} +The time, in milliseconds from the launch of the S\-U\-T, when the action will be performed \hypertarget{struct_s_d_l_visual_test___action_a3ab091b672fc470015f09e6c4c50dcf1}{\index{S\-D\-L\-Visual\-Test\-\_\-\-Action@{S\-D\-L\-Visual\-Test\-\_\-\-Action}!type@{type}} +\index{type@{type}!SDLVisualTest_Action@{S\-D\-L\-Visual\-Test\-\_\-\-Action}} +\subsubsection[{type}]{\setlength{\rightskip}{0pt plus 5cm}{\bf S\-D\-L\-Visual\-Test\-\_\-\-Action\-Type} type}}\label{struct_s_d_l_visual_test___action_a3ab091b672fc470015f09e6c4c50dcf1} +The type of action to be performed + +The documentation for this struct was generated from the following file\-:\begin{DoxyCompactItemize} +\item +C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\hyperlink{_s_d_l__visualtest__action__configparser_8h}{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h}\end{DoxyCompactItemize} diff --git a/visualtest/docs/latex/struct_s_d_l_visual_test___action_node.tex b/visualtest/docs/latex/struct_s_d_l_visual_test___action_node.tex new file mode 100755 index 0000000000000..a818ece3a211b --- /dev/null +++ b/visualtest/docs/latex/struct_s_d_l_visual_test___action_node.tex @@ -0,0 +1,31 @@ +\hypertarget{struct_s_d_l_visual_test___action_node}{\section{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Node Struct Reference} +\label{struct_s_d_l_visual_test___action_node}\index{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Node@{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Node}} +} + + +{\ttfamily \#include $<$S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h$>$} + +\subsection*{Data Fields} +\begin{DoxyCompactItemize} +\item +\hyperlink{struct_s_d_l_visual_test___action}{S\-D\-L\-Visual\-Test\-\_\-\-Action} \hyperlink{struct_s_d_l_visual_test___action_node_af46ec45094cc74a7432626a6234c6575}{action} +\item +struct \hyperlink{struct_s_d_l_visual_test___action_node}{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Node} $\ast$ \hyperlink{struct_s_d_l_visual_test___action_node_ae6154b60b896ce1a184d060ee4664485}{next} +\end{DoxyCompactItemize} + + +\subsection{Detailed Description} +Struct for a node in the action queue. + +\subsection{Field Documentation} +\hypertarget{struct_s_d_l_visual_test___action_node_af46ec45094cc74a7432626a6234c6575}{\index{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Node@{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Node}!action@{action}} +\index{action@{action}!SDLVisualTest_ActionNode@{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Node}} +\subsubsection[{action}]{\setlength{\rightskip}{0pt plus 5cm}{\bf S\-D\-L\-Visual\-Test\-\_\-\-Action} action}}\label{struct_s_d_l_visual_test___action_node_af46ec45094cc74a7432626a6234c6575} +The action in this node \hypertarget{struct_s_d_l_visual_test___action_node_ae6154b60b896ce1a184d060ee4664485}{\index{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Node@{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Node}!next@{next}} +\index{next@{next}!SDLVisualTest_ActionNode@{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Node}} +\subsubsection[{next}]{\setlength{\rightskip}{0pt plus 5cm}struct {\bf S\-D\-L\-Visual\-Test\-\_\-\-Action\-Node}$\ast$ next}}\label{struct_s_d_l_visual_test___action_node_ae6154b60b896ce1a184d060ee4664485} +Pointer to the next element in the queue + +The documentation for this struct was generated from the following file\-:\begin{DoxyCompactItemize} +\item +C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\hyperlink{_s_d_l__visualtest__action__configparser_8h}{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h}\end{DoxyCompactItemize} diff --git a/visualtest/docs/latex/struct_s_d_l_visual_test___action_queue.tex b/visualtest/docs/latex/struct_s_d_l_visual_test___action_queue.tex new file mode 100755 index 0000000000000..40ecaf2394958 --- /dev/null +++ b/visualtest/docs/latex/struct_s_d_l_visual_test___action_queue.tex @@ -0,0 +1,36 @@ +\hypertarget{struct_s_d_l_visual_test___action_queue}{\section{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue Struct Reference} +\label{struct_s_d_l_visual_test___action_queue}\index{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue@{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue}} +} + + +{\ttfamily \#include $<$S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h$>$} + +\subsection*{Data Fields} +\begin{DoxyCompactItemize} +\item +\hyperlink{struct_s_d_l_visual_test___action_node}{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Node} $\ast$ \hyperlink{struct_s_d_l_visual_test___action_queue_a8b810b2fd2b05698be642ee08836a452}{front} +\item +\hyperlink{struct_s_d_l_visual_test___action_node}{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Node} $\ast$ \hyperlink{struct_s_d_l_visual_test___action_queue_a4aaf4563956932c81c65d05f9020f2ce}{rear} +\item +int \hyperlink{struct_s_d_l_visual_test___action_queue_a439227feff9d7f55384e8780cfc2eb82}{size} +\end{DoxyCompactItemize} + + +\subsection{Detailed Description} +Queue structure for actions loaded from the actions config file. + +\subsection{Field Documentation} +\hypertarget{struct_s_d_l_visual_test___action_queue_a8b810b2fd2b05698be642ee08836a452}{\index{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue@{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue}!front@{front}} +\index{front@{front}!SDLVisualTest_ActionQueue@{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue}} +\subsubsection[{front}]{\setlength{\rightskip}{0pt plus 5cm}{\bf S\-D\-L\-Visual\-Test\-\_\-\-Action\-Node}$\ast$ front}}\label{struct_s_d_l_visual_test___action_queue_a8b810b2fd2b05698be642ee08836a452} +Pointer to the front of the queue \hypertarget{struct_s_d_l_visual_test___action_queue_a4aaf4563956932c81c65d05f9020f2ce}{\index{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue@{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue}!rear@{rear}} +\index{rear@{rear}!SDLVisualTest_ActionQueue@{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue}} +\subsubsection[{rear}]{\setlength{\rightskip}{0pt plus 5cm}{\bf S\-D\-L\-Visual\-Test\-\_\-\-Action\-Node}$\ast$ rear}}\label{struct_s_d_l_visual_test___action_queue_a4aaf4563956932c81c65d05f9020f2ce} +Pointer to the rear of the queue \hypertarget{struct_s_d_l_visual_test___action_queue_a439227feff9d7f55384e8780cfc2eb82}{\index{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue@{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue}!size@{size}} +\index{size@{size}!SDLVisualTest_ActionQueue@{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue}} +\subsubsection[{size}]{\setlength{\rightskip}{0pt plus 5cm}int size}}\label{struct_s_d_l_visual_test___action_queue_a439227feff9d7f55384e8780cfc2eb82} +Number of nodes in the queue + +The documentation for this struct was generated from the following file\-:\begin{DoxyCompactItemize} +\item +C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\hyperlink{_s_d_l__visualtest__action__configparser_8h}{S\-D\-L\-\_\-visualtest\-\_\-action\-\_\-configparser.\-h}\end{DoxyCompactItemize} diff --git a/visualtest/docs/latex/struct_s_d_l_visual_test___exhaustive_variator.tex b/visualtest/docs/latex/struct_s_d_l_visual_test___exhaustive_variator.tex new file mode 100755 index 0000000000000..030308f30c488 --- /dev/null +++ b/visualtest/docs/latex/struct_s_d_l_visual_test___exhaustive_variator.tex @@ -0,0 +1,36 @@ +\hypertarget{struct_s_d_l_visual_test___exhaustive_variator}{\section{S\-D\-L\-Visual\-Test\-\_\-\-Exhaustive\-Variator Struct Reference} +\label{struct_s_d_l_visual_test___exhaustive_variator}\index{S\-D\-L\-Visual\-Test\-\_\-\-Exhaustive\-Variator@{S\-D\-L\-Visual\-Test\-\_\-\-Exhaustive\-Variator}} +} + + +{\ttfamily \#include $<$S\-D\-L\-\_\-visualtest\-\_\-exhaustive\-\_\-variator.\-h$>$} + +\subsection*{Data Fields} +\begin{DoxyCompactItemize} +\item +\hyperlink{struct_s_d_l_visual_test___variation}{S\-D\-L\-Visual\-Test\-\_\-\-Variation} \hyperlink{struct_s_d_l_visual_test___exhaustive_variator_a11c2995cf19b41c4a1b1f8d9b4081ff7}{variation} +\item +\hyperlink{struct_s_d_l_visual_test___s_u_t_config}{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config} \hyperlink{struct_s_d_l_visual_test___exhaustive_variator_ab66b4220589b2e2b6e1fde7d6c20bd72}{config} +\item +char \hyperlink{struct_s_d_l_visual_test___exhaustive_variator_a2b599af5b00be0f525ffc18feb0775a8}{buffer} \mbox{[}\hyperlink{_s_d_l__visualtest__harness__argparser_8h_a8485cbda108eca56406d67aaa685fcc5}{M\-A\-X\-\_\-\-S\-U\-T\-\_\-\-A\-R\-G\-S\-\_\-\-L\-E\-N}\mbox{]} +\end{DoxyCompactItemize} + + +\subsection{Detailed Description} +Struct for the variator that exhaustively iterates through all variations of command line arguments to the S\-U\-T. + +\subsection{Field Documentation} +\hypertarget{struct_s_d_l_visual_test___exhaustive_variator_a2b599af5b00be0f525ffc18feb0775a8}{\index{S\-D\-L\-Visual\-Test\-\_\-\-Exhaustive\-Variator@{S\-D\-L\-Visual\-Test\-\_\-\-Exhaustive\-Variator}!buffer@{buffer}} +\index{buffer@{buffer}!SDLVisualTest_ExhaustiveVariator@{S\-D\-L\-Visual\-Test\-\_\-\-Exhaustive\-Variator}} +\subsubsection[{buffer}]{\setlength{\rightskip}{0pt plus 5cm}char buffer\mbox{[}{\bf M\-A\-X\-\_\-\-S\-U\-T\-\_\-\-A\-R\-G\-S\-\_\-\-L\-E\-N}\mbox{]}}}\label{struct_s_d_l_visual_test___exhaustive_variator_a2b599af5b00be0f525ffc18feb0775a8} +Buffer to store the arguments string built from the variation \hypertarget{struct_s_d_l_visual_test___exhaustive_variator_ab66b4220589b2e2b6e1fde7d6c20bd72}{\index{S\-D\-L\-Visual\-Test\-\_\-\-Exhaustive\-Variator@{S\-D\-L\-Visual\-Test\-\_\-\-Exhaustive\-Variator}!config@{config}} +\index{config@{config}!SDLVisualTest_ExhaustiveVariator@{S\-D\-L\-Visual\-Test\-\_\-\-Exhaustive\-Variator}} +\subsubsection[{config}]{\setlength{\rightskip}{0pt plus 5cm}{\bf S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config} config}}\label{struct_s_d_l_visual_test___exhaustive_variator_ab66b4220589b2e2b6e1fde7d6c20bd72} +Configuration object for the S\-U\-T that the variator is running for. \hypertarget{struct_s_d_l_visual_test___exhaustive_variator_a11c2995cf19b41c4a1b1f8d9b4081ff7}{\index{S\-D\-L\-Visual\-Test\-\_\-\-Exhaustive\-Variator@{S\-D\-L\-Visual\-Test\-\_\-\-Exhaustive\-Variator}!variation@{variation}} +\index{variation@{variation}!SDLVisualTest_ExhaustiveVariator@{S\-D\-L\-Visual\-Test\-\_\-\-Exhaustive\-Variator}} +\subsubsection[{variation}]{\setlength{\rightskip}{0pt plus 5cm}{\bf S\-D\-L\-Visual\-Test\-\_\-\-Variation} variation}}\label{struct_s_d_l_visual_test___exhaustive_variator_a11c2995cf19b41c4a1b1f8d9b4081ff7} +The current variation. + +The documentation for this struct was generated from the following file\-:\begin{DoxyCompactItemize} +\item +C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\hyperlink{_s_d_l__visualtest__exhaustive__variator_8h}{S\-D\-L\-\_\-visualtest\-\_\-exhaustive\-\_\-variator.\-h}\end{DoxyCompactItemize} diff --git a/visualtest/docs/latex/struct_s_d_l_visual_test___harness_state.tex b/visualtest/docs/latex/struct_s_d_l_visual_test___harness_state.tex new file mode 100755 index 0000000000000..35c315b790e7d --- /dev/null +++ b/visualtest/docs/latex/struct_s_d_l_visual_test___harness_state.tex @@ -0,0 +1,71 @@ +\hypertarget{struct_s_d_l_visual_test___harness_state}{\section{S\-D\-L\-Visual\-Test\-\_\-\-Harness\-State Struct Reference} +\label{struct_s_d_l_visual_test___harness_state}\index{S\-D\-L\-Visual\-Test\-\_\-\-Harness\-State@{S\-D\-L\-Visual\-Test\-\_\-\-Harness\-State}} +} + + +{\ttfamily \#include $<$S\-D\-L\-\_\-visualtest\-\_\-harness\-\_\-argparser.\-h$>$} + +\subsection*{Data Fields} +\begin{DoxyCompactItemize} +\item +char \hyperlink{struct_s_d_l_visual_test___harness_state_af277bbb5c712eb89e92337dd583a8b74}{sutapp} \mbox{[}\hyperlink{_s_d_l__visualtest__harness__argparser_8h_abdd33f362ae3bbdacb5de76473aa8a2f}{M\-A\-X\-\_\-\-P\-A\-T\-H\-\_\-\-L\-E\-N}\mbox{]} +\item +char \hyperlink{struct_s_d_l_visual_test___harness_state_a00fab9c7cf802b96b6b29e098292d24d}{sutargs} \mbox{[}\hyperlink{_s_d_l__visualtest__harness__argparser_8h_a8485cbda108eca56406d67aaa685fcc5}{M\-A\-X\-\_\-\-S\-U\-T\-\_\-\-A\-R\-G\-S\-\_\-\-L\-E\-N}\mbox{]} +\item +int \hyperlink{struct_s_d_l_visual_test___harness_state_a493b57f443cc38b3d3df9c1e584d9d82}{timeout} +\item +\hyperlink{struct_s_d_l_visual_test___s_u_t_config}{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config} \hyperlink{struct_s_d_l_visual_test___harness_state_a42657080015a96da836e1640bbdf870e}{sut\-\_\-config} +\item +\hyperlink{_s_d_l__visualtest__variator__common_8h_a04bfc880abe6940d69a63c06a33acdbd}{S\-D\-L\-Visual\-Test\-\_\-\-Variator\-Type} \hyperlink{struct_s_d_l_visual_test___harness_state_aaaa989ae89caee6d39c722cfe6907466}{variator\-\_\-type} +\item +int \hyperlink{struct_s_d_l_visual_test___harness_state_a0bd4e04c0c6be7b94e68501bb31dd62c}{num\-\_\-variations} +\item +S\-D\-L\-\_\-bool \hyperlink{struct_s_d_l_visual_test___harness_state_a091c0d08290b73216a736ff42ac8fa99}{no\-\_\-launch} +\item +\hyperlink{struct_s_d_l_visual_test___action_queue}{S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue} \hyperlink{struct_s_d_l_visual_test___harness_state_ae25567527563fbd7373fa1cf7cdede61}{action\-\_\-queue} +\item +char \hyperlink{struct_s_d_l_visual_test___harness_state_aafa9a2fb15490380b6c2edd704f4fcf0}{output\-\_\-dir} \mbox{[}\hyperlink{_s_d_l__visualtest__harness__argparser_8h_abdd33f362ae3bbdacb5de76473aa8a2f}{M\-A\-X\-\_\-\-P\-A\-T\-H\-\_\-\-L\-E\-N}\mbox{]} +\item +char \hyperlink{struct_s_d_l_visual_test___harness_state_adc871112f24f61e2fff74a7a7fb9794f}{verify\-\_\-dir} \mbox{[}\hyperlink{_s_d_l__visualtest__harness__argparser_8h_abdd33f362ae3bbdacb5de76473aa8a2f}{M\-A\-X\-\_\-\-P\-A\-T\-H\-\_\-\-L\-E\-N}\mbox{]} +\end{DoxyCompactItemize} + + +\subsection{Detailed Description} +Stores the state of the test harness. + +\subsection{Field Documentation} +\hypertarget{struct_s_d_l_visual_test___harness_state_ae25567527563fbd7373fa1cf7cdede61}{\index{S\-D\-L\-Visual\-Test\-\_\-\-Harness\-State@{S\-D\-L\-Visual\-Test\-\_\-\-Harness\-State}!action\-\_\-queue@{action\-\_\-queue}} +\index{action\-\_\-queue@{action\-\_\-queue}!SDLVisualTest_HarnessState@{S\-D\-L\-Visual\-Test\-\_\-\-Harness\-State}} +\subsubsection[{action\-\_\-queue}]{\setlength{\rightskip}{0pt plus 5cm}{\bf S\-D\-L\-Visual\-Test\-\_\-\-Action\-Queue} action\-\_\-queue}}\label{struct_s_d_l_visual_test___harness_state_ae25567527563fbd7373fa1cf7cdede61} +A queue with actions to be performed while the S\-U\-T is running \hypertarget{struct_s_d_l_visual_test___harness_state_a091c0d08290b73216a736ff42ac8fa99}{\index{S\-D\-L\-Visual\-Test\-\_\-\-Harness\-State@{S\-D\-L\-Visual\-Test\-\_\-\-Harness\-State}!no\-\_\-launch@{no\-\_\-launch}} +\index{no\-\_\-launch@{no\-\_\-launch}!SDLVisualTest_HarnessState@{S\-D\-L\-Visual\-Test\-\_\-\-Harness\-State}} +\subsubsection[{no\-\_\-launch}]{\setlength{\rightskip}{0pt plus 5cm}S\-D\-L\-\_\-bool no\-\_\-launch}}\label{struct_s_d_l_visual_test___harness_state_a091c0d08290b73216a736ff42ac8fa99} +If true, the test harness will just print the different variations without launching the S\-U\-T for each one \hypertarget{struct_s_d_l_visual_test___harness_state_a0bd4e04c0c6be7b94e68501bb31dd62c}{\index{S\-D\-L\-Visual\-Test\-\_\-\-Harness\-State@{S\-D\-L\-Visual\-Test\-\_\-\-Harness\-State}!num\-\_\-variations@{num\-\_\-variations}} +\index{num\-\_\-variations@{num\-\_\-variations}!SDLVisualTest_HarnessState@{S\-D\-L\-Visual\-Test\-\_\-\-Harness\-State}} +\subsubsection[{num\-\_\-variations}]{\setlength{\rightskip}{0pt plus 5cm}int num\-\_\-variations}}\label{struct_s_d_l_visual_test___harness_state_a0bd4e04c0c6be7b94e68501bb31dd62c} +The number of variations to generate \hypertarget{struct_s_d_l_visual_test___harness_state_aafa9a2fb15490380b6c2edd704f4fcf0}{\index{S\-D\-L\-Visual\-Test\-\_\-\-Harness\-State@{S\-D\-L\-Visual\-Test\-\_\-\-Harness\-State}!output\-\_\-dir@{output\-\_\-dir}} +\index{output\-\_\-dir@{output\-\_\-dir}!SDLVisualTest_HarnessState@{S\-D\-L\-Visual\-Test\-\_\-\-Harness\-State}} +\subsubsection[{output\-\_\-dir}]{\setlength{\rightskip}{0pt plus 5cm}char output\-\_\-dir\mbox{[}{\bf M\-A\-X\-\_\-\-P\-A\-T\-H\-\_\-\-L\-E\-N}\mbox{]}}}\label{struct_s_d_l_visual_test___harness_state_aafa9a2fb15490380b6c2edd704f4fcf0} +Output directory to save the screenshots \hypertarget{struct_s_d_l_visual_test___harness_state_a42657080015a96da836e1640bbdf870e}{\index{S\-D\-L\-Visual\-Test\-\_\-\-Harness\-State@{S\-D\-L\-Visual\-Test\-\_\-\-Harness\-State}!sut\-\_\-config@{sut\-\_\-config}} +\index{sut\-\_\-config@{sut\-\_\-config}!SDLVisualTest_HarnessState@{S\-D\-L\-Visual\-Test\-\_\-\-Harness\-State}} +\subsubsection[{sut\-\_\-config}]{\setlength{\rightskip}{0pt plus 5cm}{\bf S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config} sut\-\_\-config}}\label{struct_s_d_l_visual_test___harness_state_a42657080015a96da836e1640bbdf870e} +Configuration object for the S\-U\-T \hypertarget{struct_s_d_l_visual_test___harness_state_af277bbb5c712eb89e92337dd583a8b74}{\index{S\-D\-L\-Visual\-Test\-\_\-\-Harness\-State@{S\-D\-L\-Visual\-Test\-\_\-\-Harness\-State}!sutapp@{sutapp}} +\index{sutapp@{sutapp}!SDLVisualTest_HarnessState@{S\-D\-L\-Visual\-Test\-\_\-\-Harness\-State}} +\subsubsection[{sutapp}]{\setlength{\rightskip}{0pt plus 5cm}char sutapp\mbox{[}{\bf M\-A\-X\-\_\-\-P\-A\-T\-H\-\_\-\-L\-E\-N}\mbox{]}}}\label{struct_s_d_l_visual_test___harness_state_af277bbb5c712eb89e92337dd583a8b74} +Path to the System Under Test (S\-U\-T) executable \hypertarget{struct_s_d_l_visual_test___harness_state_a00fab9c7cf802b96b6b29e098292d24d}{\index{S\-D\-L\-Visual\-Test\-\_\-\-Harness\-State@{S\-D\-L\-Visual\-Test\-\_\-\-Harness\-State}!sutargs@{sutargs}} +\index{sutargs@{sutargs}!SDLVisualTest_HarnessState@{S\-D\-L\-Visual\-Test\-\_\-\-Harness\-State}} +\subsubsection[{sutargs}]{\setlength{\rightskip}{0pt plus 5cm}char sutargs\mbox{[}{\bf M\-A\-X\-\_\-\-S\-U\-T\-\_\-\-A\-R\-G\-S\-\_\-\-L\-E\-N}\mbox{]}}}\label{struct_s_d_l_visual_test___harness_state_a00fab9c7cf802b96b6b29e098292d24d} +Command line arguments to be passed to the S\-U\-T \hypertarget{struct_s_d_l_visual_test___harness_state_a493b57f443cc38b3d3df9c1e584d9d82}{\index{S\-D\-L\-Visual\-Test\-\_\-\-Harness\-State@{S\-D\-L\-Visual\-Test\-\_\-\-Harness\-State}!timeout@{timeout}} +\index{timeout@{timeout}!SDLVisualTest_HarnessState@{S\-D\-L\-Visual\-Test\-\_\-\-Harness\-State}} +\subsubsection[{timeout}]{\setlength{\rightskip}{0pt plus 5cm}int timeout}}\label{struct_s_d_l_visual_test___harness_state_a493b57f443cc38b3d3df9c1e584d9d82} +Time in milliseconds after which to kill the S\-U\-T \hypertarget{struct_s_d_l_visual_test___harness_state_aaaa989ae89caee6d39c722cfe6907466}{\index{S\-D\-L\-Visual\-Test\-\_\-\-Harness\-State@{S\-D\-L\-Visual\-Test\-\_\-\-Harness\-State}!variator\-\_\-type@{variator\-\_\-type}} +\index{variator\-\_\-type@{variator\-\_\-type}!SDLVisualTest_HarnessState@{S\-D\-L\-Visual\-Test\-\_\-\-Harness\-State}} +\subsubsection[{variator\-\_\-type}]{\setlength{\rightskip}{0pt plus 5cm}{\bf S\-D\-L\-Visual\-Test\-\_\-\-Variator\-Type} variator\-\_\-type}}\label{struct_s_d_l_visual_test___harness_state_aaaa989ae89caee6d39c722cfe6907466} +What type of variator to use to generate argument strings \hypertarget{struct_s_d_l_visual_test___harness_state_adc871112f24f61e2fff74a7a7fb9794f}{\index{S\-D\-L\-Visual\-Test\-\_\-\-Harness\-State@{S\-D\-L\-Visual\-Test\-\_\-\-Harness\-State}!verify\-\_\-dir@{verify\-\_\-dir}} +\index{verify\-\_\-dir@{verify\-\_\-dir}!SDLVisualTest_HarnessState@{S\-D\-L\-Visual\-Test\-\_\-\-Harness\-State}} +\subsubsection[{verify\-\_\-dir}]{\setlength{\rightskip}{0pt plus 5cm}char verify\-\_\-dir\mbox{[}{\bf M\-A\-X\-\_\-\-P\-A\-T\-H\-\_\-\-L\-E\-N}\mbox{]}}}\label{struct_s_d_l_visual_test___harness_state_adc871112f24f61e2fff74a7a7fb9794f} +Path to directory with the verification images + +The documentation for this struct was generated from the following file\-:\begin{DoxyCompactItemize} +\item +C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\hyperlink{_s_d_l__visualtest__harness__argparser_8h}{S\-D\-L\-\_\-visualtest\-\_\-harness\-\_\-argparser.\-h}\end{DoxyCompactItemize} diff --git a/visualtest/docs/latex/struct_s_d_l_visual_test___r_w_helper_buffer.tex b/visualtest/docs/latex/struct_s_d_l_visual_test___r_w_helper_buffer.tex new file mode 100755 index 0000000000000..22367cdb8ab1d --- /dev/null +++ b/visualtest/docs/latex/struct_s_d_l_visual_test___r_w_helper_buffer.tex @@ -0,0 +1,36 @@ +\hypertarget{struct_s_d_l_visual_test___r_w_helper_buffer}{\section{S\-D\-L\-Visual\-Test\-\_\-\-R\-W\-Helper\-Buffer Struct Reference} +\label{struct_s_d_l_visual_test___r_w_helper_buffer}\index{S\-D\-L\-Visual\-Test\-\_\-\-R\-W\-Helper\-Buffer@{S\-D\-L\-Visual\-Test\-\_\-\-R\-W\-Helper\-Buffer}} +} + + +{\ttfamily \#include $<$S\-D\-L\-\_\-visualtest\-\_\-rwhelper.\-h$>$} + +\subsection*{Data Fields} +\begin{DoxyCompactItemize} +\item +char \hyperlink{struct_s_d_l_visual_test___r_w_helper_buffer_a5b528063c1aaa0e626f5d5e49de5baad}{buffer} \mbox{[}R\-W\-O\-P\-S\-\_\-\-B\-U\-F\-F\-E\-R\-\_\-\-L\-E\-N\mbox{]} +\item +int \hyperlink{struct_s_d_l_visual_test___r_w_helper_buffer_a8a37d41b7b076eced766d7418450477d}{buffer\-\_\-pos} +\item +int \hyperlink{struct_s_d_l_visual_test___r_w_helper_buffer_adb2920cd89b7b8b8b014290e82746d8c}{buffer\-\_\-width} +\end{DoxyCompactItemize} + + +\subsection{Detailed Description} +Struct that is used as a buffer by the R\-W helper functions. Should be initialized by calling \hyperlink{rwhelper_8c_aa7878508e6d851b11dc1d1186324064a}{S\-D\-L\-Visual\-Test\-\_\-\-R\-W\-Helper\-Reset\-Buffer()} before being used. + +\subsection{Field Documentation} +\hypertarget{struct_s_d_l_visual_test___r_w_helper_buffer_a5b528063c1aaa0e626f5d5e49de5baad}{\index{S\-D\-L\-Visual\-Test\-\_\-\-R\-W\-Helper\-Buffer@{S\-D\-L\-Visual\-Test\-\_\-\-R\-W\-Helper\-Buffer}!buffer@{buffer}} +\index{buffer@{buffer}!SDLVisualTest_RWHelperBuffer@{S\-D\-L\-Visual\-Test\-\_\-\-R\-W\-Helper\-Buffer}} +\subsubsection[{buffer}]{\setlength{\rightskip}{0pt plus 5cm}char buffer\mbox{[}R\-W\-O\-P\-S\-\_\-\-B\-U\-F\-F\-E\-R\-\_\-\-L\-E\-N\mbox{]}}}\label{struct_s_d_l_visual_test___r_w_helper_buffer_a5b528063c1aaa0e626f5d5e49de5baad} +Character buffer that data is read into \hypertarget{struct_s_d_l_visual_test___r_w_helper_buffer_a8a37d41b7b076eced766d7418450477d}{\index{S\-D\-L\-Visual\-Test\-\_\-\-R\-W\-Helper\-Buffer@{S\-D\-L\-Visual\-Test\-\_\-\-R\-W\-Helper\-Buffer}!buffer\-\_\-pos@{buffer\-\_\-pos}} +\index{buffer\-\_\-pos@{buffer\-\_\-pos}!SDLVisualTest_RWHelperBuffer@{S\-D\-L\-Visual\-Test\-\_\-\-R\-W\-Helper\-Buffer}} +\subsubsection[{buffer\-\_\-pos}]{\setlength{\rightskip}{0pt plus 5cm}int buffer\-\_\-pos}}\label{struct_s_d_l_visual_test___r_w_helper_buffer_a8a37d41b7b076eced766d7418450477d} +buffer\mbox{[}buffer\-\_\-pos\mbox{]} is the next character to be read from the buffer \hypertarget{struct_s_d_l_visual_test___r_w_helper_buffer_adb2920cd89b7b8b8b014290e82746d8c}{\index{S\-D\-L\-Visual\-Test\-\_\-\-R\-W\-Helper\-Buffer@{S\-D\-L\-Visual\-Test\-\_\-\-R\-W\-Helper\-Buffer}!buffer\-\_\-width@{buffer\-\_\-width}} +\index{buffer\-\_\-width@{buffer\-\_\-width}!SDLVisualTest_RWHelperBuffer@{S\-D\-L\-Visual\-Test\-\_\-\-R\-W\-Helper\-Buffer}} +\subsubsection[{buffer\-\_\-width}]{\setlength{\rightskip}{0pt plus 5cm}int buffer\-\_\-width}}\label{struct_s_d_l_visual_test___r_w_helper_buffer_adb2920cd89b7b8b8b014290e82746d8c} +Number of character read into the buffer + +The documentation for this struct was generated from the following file\-:\begin{DoxyCompactItemize} +\item +C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/S\-D\-L\-\_\-visualtest\-\_\-rwhelper.\-h\end{DoxyCompactItemize} diff --git a/visualtest/docs/latex/struct_s_d_l_visual_test___random_variator.tex b/visualtest/docs/latex/struct_s_d_l_visual_test___random_variator.tex new file mode 100755 index 0000000000000..25ae5a5ef370b --- /dev/null +++ b/visualtest/docs/latex/struct_s_d_l_visual_test___random_variator.tex @@ -0,0 +1,36 @@ +\hypertarget{struct_s_d_l_visual_test___random_variator}{\section{S\-D\-L\-Visual\-Test\-\_\-\-Random\-Variator Struct Reference} +\label{struct_s_d_l_visual_test___random_variator}\index{S\-D\-L\-Visual\-Test\-\_\-\-Random\-Variator@{S\-D\-L\-Visual\-Test\-\_\-\-Random\-Variator}} +} + + +{\ttfamily \#include $<$S\-D\-L\-\_\-visualtest\-\_\-random\-\_\-variator.\-h$>$} + +\subsection*{Data Fields} +\begin{DoxyCompactItemize} +\item +\hyperlink{struct_s_d_l_visual_test___variation}{S\-D\-L\-Visual\-Test\-\_\-\-Variation} \hyperlink{struct_s_d_l_visual_test___random_variator_a11c2995cf19b41c4a1b1f8d9b4081ff7}{variation} +\item +\hyperlink{struct_s_d_l_visual_test___s_u_t_config}{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config} \hyperlink{struct_s_d_l_visual_test___random_variator_ab66b4220589b2e2b6e1fde7d6c20bd72}{config} +\item +char \hyperlink{struct_s_d_l_visual_test___random_variator_a2b599af5b00be0f525ffc18feb0775a8}{buffer} \mbox{[}\hyperlink{_s_d_l__visualtest__harness__argparser_8h_a8485cbda108eca56406d67aaa685fcc5}{M\-A\-X\-\_\-\-S\-U\-T\-\_\-\-A\-R\-G\-S\-\_\-\-L\-E\-N}\mbox{]} +\end{DoxyCompactItemize} + + +\subsection{Detailed Description} +Struct for the variator that randomly generates variations of command line arguments to the S\-U\-T. + +\subsection{Field Documentation} +\hypertarget{struct_s_d_l_visual_test___random_variator_a2b599af5b00be0f525ffc18feb0775a8}{\index{S\-D\-L\-Visual\-Test\-\_\-\-Random\-Variator@{S\-D\-L\-Visual\-Test\-\_\-\-Random\-Variator}!buffer@{buffer}} +\index{buffer@{buffer}!SDLVisualTest_RandomVariator@{S\-D\-L\-Visual\-Test\-\_\-\-Random\-Variator}} +\subsubsection[{buffer}]{\setlength{\rightskip}{0pt plus 5cm}char buffer\mbox{[}{\bf M\-A\-X\-\_\-\-S\-U\-T\-\_\-\-A\-R\-G\-S\-\_\-\-L\-E\-N}\mbox{]}}}\label{struct_s_d_l_visual_test___random_variator_a2b599af5b00be0f525ffc18feb0775a8} +Buffer to store the arguments string built from the variation \hypertarget{struct_s_d_l_visual_test___random_variator_ab66b4220589b2e2b6e1fde7d6c20bd72}{\index{S\-D\-L\-Visual\-Test\-\_\-\-Random\-Variator@{S\-D\-L\-Visual\-Test\-\_\-\-Random\-Variator}!config@{config}} +\index{config@{config}!SDLVisualTest_RandomVariator@{S\-D\-L\-Visual\-Test\-\_\-\-Random\-Variator}} +\subsubsection[{config}]{\setlength{\rightskip}{0pt plus 5cm}{\bf S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config} config}}\label{struct_s_d_l_visual_test___random_variator_ab66b4220589b2e2b6e1fde7d6c20bd72} +Configuration object for the S\-U\-T that the variator is running for. \hypertarget{struct_s_d_l_visual_test___random_variator_a11c2995cf19b41c4a1b1f8d9b4081ff7}{\index{S\-D\-L\-Visual\-Test\-\_\-\-Random\-Variator@{S\-D\-L\-Visual\-Test\-\_\-\-Random\-Variator}!variation@{variation}} +\index{variation@{variation}!SDLVisualTest_RandomVariator@{S\-D\-L\-Visual\-Test\-\_\-\-Random\-Variator}} +\subsubsection[{variation}]{\setlength{\rightskip}{0pt plus 5cm}{\bf S\-D\-L\-Visual\-Test\-\_\-\-Variation} variation}}\label{struct_s_d_l_visual_test___random_variator_a11c2995cf19b41c4a1b1f8d9b4081ff7} +The current variation. + +The documentation for this struct was generated from the following file\-:\begin{DoxyCompactItemize} +\item +C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\hyperlink{_s_d_l__visualtest__random__variator_8h}{S\-D\-L\-\_\-visualtest\-\_\-random\-\_\-variator.\-h}\end{DoxyCompactItemize} diff --git a/visualtest/docs/latex/struct_s_d_l_visual_test___s_u_t_config.tex b/visualtest/docs/latex/struct_s_d_l_visual_test___s_u_t_config.tex new file mode 100755 index 0000000000000..90177adb7d370 --- /dev/null +++ b/visualtest/docs/latex/struct_s_d_l_visual_test___s_u_t_config.tex @@ -0,0 +1,31 @@ +\hypertarget{struct_s_d_l_visual_test___s_u_t_config}{\section{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config Struct Reference} +\label{struct_s_d_l_visual_test___s_u_t_config}\index{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config@{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config}} +} + + +{\ttfamily \#include $<$S\-D\-L\-\_\-visualtest\-\_\-sut\-\_\-configparser.\-h$>$} + +\subsection*{Data Fields} +\begin{DoxyCompactItemize} +\item +\hyperlink{struct_s_d_l_visual_test___s_u_t_option}{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option} $\ast$ \hyperlink{struct_s_d_l_visual_test___s_u_t_config_afda1bef370f3d5ea6919b7b6a73d01c0}{options} +\item +int \hyperlink{struct_s_d_l_visual_test___s_u_t_config_a593108c2cc4b7dd3edecefd724edfd51}{num\-\_\-options} +\end{DoxyCompactItemize} + + +\subsection{Detailed Description} +Struct to hold all the options to an S\-U\-T application. + +\subsection{Field Documentation} +\hypertarget{struct_s_d_l_visual_test___s_u_t_config_a593108c2cc4b7dd3edecefd724edfd51}{\index{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config@{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config}!num\-\_\-options@{num\-\_\-options}} +\index{num\-\_\-options@{num\-\_\-options}!SDLVisualTest_SUTConfig@{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config}} +\subsubsection[{num\-\_\-options}]{\setlength{\rightskip}{0pt plus 5cm}int num\-\_\-options}}\label{struct_s_d_l_visual_test___s_u_t_config_a593108c2cc4b7dd3edecefd724edfd51} +Number of options in {\ttfamily options} \hypertarget{struct_s_d_l_visual_test___s_u_t_config_afda1bef370f3d5ea6919b7b6a73d01c0}{\index{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config@{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config}!options@{options}} +\index{options@{options}!SDLVisualTest_SUTConfig@{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config}} +\subsubsection[{options}]{\setlength{\rightskip}{0pt plus 5cm}{\bf S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option}$\ast$ options}}\label{struct_s_d_l_visual_test___s_u_t_config_afda1bef370f3d5ea6919b7b6a73d01c0} +Pointer to an array of options + +The documentation for this struct was generated from the following file\-:\begin{DoxyCompactItemize} +\item +C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\hyperlink{_s_d_l__visualtest__sut__configparser_8h}{S\-D\-L\-\_\-visualtest\-\_\-sut\-\_\-configparser.\-h}\end{DoxyCompactItemize} diff --git a/visualtest/docs/latex/struct_s_d_l_visual_test___s_u_t_int_range.tex b/visualtest/docs/latex/struct_s_d_l_visual_test___s_u_t_int_range.tex new file mode 100755 index 0000000000000..28a49eb04f28a --- /dev/null +++ b/visualtest/docs/latex/struct_s_d_l_visual_test___s_u_t_int_range.tex @@ -0,0 +1,31 @@ +\hypertarget{struct_s_d_l_visual_test___s_u_t_int_range}{\section{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Int\-Range Struct Reference} +\label{struct_s_d_l_visual_test___s_u_t_int_range}\index{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Int\-Range@{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Int\-Range}} +} + + +{\ttfamily \#include $<$S\-D\-L\-\_\-visualtest\-\_\-sut\-\_\-configparser.\-h$>$} + +\subsection*{Data Fields} +\begin{DoxyCompactItemize} +\item +int \hyperlink{struct_s_d_l_visual_test___s_u_t_int_range_a3e202b201e6255d975cd6d3aff1f5a4d}{min} +\item +int \hyperlink{struct_s_d_l_visual_test___s_u_t_int_range_ae1e1dde676c120fa6d10f3bb2c14059e}{max} +\end{DoxyCompactItemize} + + +\subsection{Detailed Description} +Represents the range of values an integer option can take. + +\subsection{Field Documentation} +\hypertarget{struct_s_d_l_visual_test___s_u_t_int_range_ae1e1dde676c120fa6d10f3bb2c14059e}{\index{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Int\-Range@{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Int\-Range}!max@{max}} +\index{max@{max}!SDLVisualTest_SUTIntRange@{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Int\-Range}} +\subsubsection[{max}]{\setlength{\rightskip}{0pt plus 5cm}int max}}\label{struct_s_d_l_visual_test___s_u_t_int_range_ae1e1dde676c120fa6d10f3bb2c14059e} +Maximum value of the integer option \hypertarget{struct_s_d_l_visual_test___s_u_t_int_range_a3e202b201e6255d975cd6d3aff1f5a4d}{\index{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Int\-Range@{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Int\-Range}!min@{min}} +\index{min@{min}!SDLVisualTest_SUTIntRange@{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Int\-Range}} +\subsubsection[{min}]{\setlength{\rightskip}{0pt plus 5cm}int min}}\label{struct_s_d_l_visual_test___s_u_t_int_range_a3e202b201e6255d975cd6d3aff1f5a4d} +Minimum value of the integer option + +The documentation for this struct was generated from the following file\-:\begin{DoxyCompactItemize} +\item +C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\hyperlink{_s_d_l__visualtest__sut__configparser_8h}{S\-D\-L\-\_\-visualtest\-\_\-sut\-\_\-configparser.\-h}\end{DoxyCompactItemize} diff --git a/visualtest/docs/latex/struct_s_d_l_visual_test___s_u_t_option.tex b/visualtest/docs/latex/struct_s_d_l_visual_test___s_u_t_option.tex new file mode 100755 index 0000000000000..a6ada4a22cf84 --- /dev/null +++ b/visualtest/docs/latex/struct_s_d_l_visual_test___s_u_t_option.tex @@ -0,0 +1,62 @@ +\hypertarget{struct_s_d_l_visual_test___s_u_t_option}{\section{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option Struct Reference} +\label{struct_s_d_l_visual_test___s_u_t_option}\index{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option@{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option}} +} + + +{\ttfamily \#include $<$S\-D\-L\-\_\-visualtest\-\_\-sut\-\_\-configparser.\-h$>$} + +\subsection*{Data Fields} +\begin{DoxyCompactItemize} +\item +char \hyperlink{struct_s_d_l_visual_test___s_u_t_option_ad14ca616d8f7c9b61eff58baaead7f1f}{name} \mbox{[}\hyperlink{_s_d_l__visualtest__sut__configparser_8h_a0a8b0c1f8eee787abf09bf3a840eccc7}{M\-A\-X\-\_\-\-S\-U\-T\-O\-P\-T\-I\-O\-N\-\_\-\-N\-A\-M\-E\-\_\-\-L\-E\-N}\mbox{]} +\item +char $\ast$$\ast$ \hyperlink{struct_s_d_l_visual_test___s_u_t_option_a6744d43d3ad17d06068dba9ee7b78c83}{categories} +\item +\hyperlink{_s_d_l__visualtest__sut__configparser_8h_af9893831d9f79360f57e84a67a90293c}{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option\-Type} \hyperlink{struct_s_d_l_visual_test___s_u_t_option_a857b9e5ccfca26034b47a5f3236d822c}{type} +\item +S\-D\-L\-\_\-bool \hyperlink{struct_s_d_l_visual_test___s_u_t_option_a79305c1b10f7b4defee52e1eefde8fbc}{required} +\item +\begin{tabbing} +xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=\kill +union \{\\ +\>\hyperlink{struct_s_d_l_visual_test___s_u_t_int_range}{SDLVisualTest\_SUTIntRange} \hyperlink{struct_s_d_l_visual_test___s_u_t_option_a2bb1301268866e0e41d035ea0a4914e8}{range}\\ +\>char $\ast$$\ast$ \hyperlink{struct_s_d_l_visual_test___s_u_t_option_a596ff3567c4b736561dba1915a2cd38d}{enum\_values}\\ +\} \hyperlink{struct_s_d_l_visual_test___s_u_t_option_aa9545bd4acd476f61533d04d53cdffdc}{data}\\ + +\end{tabbing}\end{DoxyCompactItemize} + + +\subsection{Detailed Description} +Struct that defines an option to be passed to the S\-U\-T. + +\subsection{Field Documentation} +\hypertarget{struct_s_d_l_visual_test___s_u_t_option_a6744d43d3ad17d06068dba9ee7b78c83}{\index{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option@{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option}!categories@{categories}} +\index{categories@{categories}!SDLVisualTest_SUTOption@{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option}} +\subsubsection[{categories}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$$\ast$ categories}}\label{struct_s_d_l_visual_test___s_u_t_option_a6744d43d3ad17d06068dba9ee7b78c83} +An array of categories that the option belongs to. The last element is N\-U\-L\-L. \hypertarget{struct_s_d_l_visual_test___s_u_t_option_aa9545bd4acd476f61533d04d53cdffdc}{\index{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option@{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option}!data@{data}} +\index{data@{data}!SDLVisualTest_SUTOption@{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option}} +\subsubsection[{data}]{\setlength{\rightskip}{0pt plus 5cm}union \{ ... \} data}}\label{struct_s_d_l_visual_test___s_u_t_option_aa9545bd4acd476f61533d04d53cdffdc} +extra data that is required for certain types \hypertarget{struct_s_d_l_visual_test___s_u_t_option_a596ff3567c4b736561dba1915a2cd38d}{\index{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option@{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option}!enum\-\_\-values@{enum\-\_\-values}} +\index{enum\-\_\-values@{enum\-\_\-values}!SDLVisualTest_SUTOption@{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option}} +\subsubsection[{enum\-\_\-values}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$$\ast$ enum\-\_\-values}}\label{struct_s_d_l_visual_test___s_u_t_option_a596ff3567c4b736561dba1915a2cd38d} +\begin{DoxyVerb}This field is valid only for enum type options; it holds the list of values +\end{DoxyVerb} + that the option can take. The last element is N\-U\-L\-L \hypertarget{struct_s_d_l_visual_test___s_u_t_option_ad14ca616d8f7c9b61eff58baaead7f1f}{\index{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option@{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option}!name@{name}} +\index{name@{name}!SDLVisualTest_SUTOption@{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option}} +\subsubsection[{name}]{\setlength{\rightskip}{0pt plus 5cm}char name\mbox{[}{\bf M\-A\-X\-\_\-\-S\-U\-T\-O\-P\-T\-I\-O\-N\-\_\-\-N\-A\-M\-E\-\_\-\-L\-E\-N}\mbox{]}}}\label{struct_s_d_l_visual_test___s_u_t_option_ad14ca616d8f7c9b61eff58baaead7f1f} +The name of the option. This is what you would pass in the command line along with two leading hyphens. \hypertarget{struct_s_d_l_visual_test___s_u_t_option_a2bb1301268866e0e41d035ea0a4914e8}{\index{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option@{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option}!range@{range}} +\index{range@{range}!SDLVisualTest_SUTOption@{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option}} +\subsubsection[{range}]{\setlength{\rightskip}{0pt plus 5cm}{\bf S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Int\-Range} range}}\label{struct_s_d_l_visual_test___s_u_t_option_a2bb1301268866e0e41d035ea0a4914e8} +\begin{DoxyVerb}This field is valid only for integer type options; it defines the +\end{DoxyVerb} + valid range for such an option \hypertarget{struct_s_d_l_visual_test___s_u_t_option_a79305c1b10f7b4defee52e1eefde8fbc}{\index{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option@{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option}!required@{required}} +\index{required@{required}!SDLVisualTest_SUTOption@{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option}} +\subsubsection[{required}]{\setlength{\rightskip}{0pt plus 5cm}S\-D\-L\-\_\-bool required}}\label{struct_s_d_l_visual_test___s_u_t_option_a79305c1b10f7b4defee52e1eefde8fbc} +Whether the option is required or not \hypertarget{struct_s_d_l_visual_test___s_u_t_option_a857b9e5ccfca26034b47a5f3236d822c}{\index{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option@{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option}!type@{type}} +\index{type@{type}!SDLVisualTest_SUTOption@{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option}} +\subsubsection[{type}]{\setlength{\rightskip}{0pt plus 5cm}{\bf S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option\-Type} type}}\label{struct_s_d_l_visual_test___s_u_t_option_a857b9e5ccfca26034b47a5f3236d822c} +Type of the option -\/ integer, boolean, etc. + +The documentation for this struct was generated from the following file\-:\begin{DoxyCompactItemize} +\item +C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\hyperlink{_s_d_l__visualtest__sut__configparser_8h}{S\-D\-L\-\_\-visualtest\-\_\-sut\-\_\-configparser.\-h}\end{DoxyCompactItemize} diff --git a/visualtest/docs/latex/struct_s_d_l_visual_test___variation.tex b/visualtest/docs/latex/struct_s_d_l_visual_test___variation.tex new file mode 100755 index 0000000000000..846aa2c176be8 --- /dev/null +++ b/visualtest/docs/latex/struct_s_d_l_visual_test___variation.tex @@ -0,0 +1,31 @@ +\hypertarget{struct_s_d_l_visual_test___variation}{\section{S\-D\-L\-Visual\-Test\-\_\-\-Variation Struct Reference} +\label{struct_s_d_l_visual_test___variation}\index{S\-D\-L\-Visual\-Test\-\_\-\-Variation@{S\-D\-L\-Visual\-Test\-\_\-\-Variation}} +} + + +{\ttfamily \#include $<$S\-D\-L\-\_\-visualtest\-\_\-variator\-\_\-common.\-h$>$} + +\subsection*{Data Fields} +\begin{DoxyCompactItemize} +\item +\hyperlink{union_s_d_l_visual_test___s_u_t_option_value}{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option\-Value} $\ast$ \hyperlink{struct_s_d_l_visual_test___variation_a1eab2e90f0195b4f4632eb19523aeadf}{vars} +\item +int \hyperlink{struct_s_d_l_visual_test___variation_a2daded0b80f9ab7ed3703cc2686e5a92}{num\-\_\-vars} +\end{DoxyCompactItemize} + + +\subsection{Detailed Description} +Represents a valid combination of parameters that can be passed to the S\-U\-T. The ordering of the values here is the same as the ordering of the options in the \hyperlink{struct_s_d_l_visual_test___s_u_t_config}{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config} object for this variation. + +\subsection{Field Documentation} +\hypertarget{struct_s_d_l_visual_test___variation_a2daded0b80f9ab7ed3703cc2686e5a92}{\index{S\-D\-L\-Visual\-Test\-\_\-\-Variation@{S\-D\-L\-Visual\-Test\-\_\-\-Variation}!num\-\_\-vars@{num\-\_\-vars}} +\index{num\-\_\-vars@{num\-\_\-vars}!SDLVisualTest_Variation@{S\-D\-L\-Visual\-Test\-\_\-\-Variation}} +\subsubsection[{num\-\_\-vars}]{\setlength{\rightskip}{0pt plus 5cm}int num\-\_\-vars}}\label{struct_s_d_l_visual_test___variation_a2daded0b80f9ab7ed3703cc2686e5a92} +Number of option values in {\ttfamily vars} \hypertarget{struct_s_d_l_visual_test___variation_a1eab2e90f0195b4f4632eb19523aeadf}{\index{S\-D\-L\-Visual\-Test\-\_\-\-Variation@{S\-D\-L\-Visual\-Test\-\_\-\-Variation}!vars@{vars}} +\index{vars@{vars}!SDLVisualTest_Variation@{S\-D\-L\-Visual\-Test\-\_\-\-Variation}} +\subsubsection[{vars}]{\setlength{\rightskip}{0pt plus 5cm}{\bf S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option\-Value}$\ast$ vars}}\label{struct_s_d_l_visual_test___variation_a1eab2e90f0195b4f4632eb19523aeadf} +Pointer to array of option values + +The documentation for this struct was generated from the following file\-:\begin{DoxyCompactItemize} +\item +C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\hyperlink{_s_d_l__visualtest__variator__common_8h}{S\-D\-L\-\_\-visualtest\-\_\-variator\-\_\-common.\-h}\end{DoxyCompactItemize} diff --git a/visualtest/docs/latex/struct_s_d_l_visual_test___variator.tex b/visualtest/docs/latex/struct_s_d_l_visual_test___variator.tex new file mode 100755 index 0000000000000..f834ddfca8e65 --- /dev/null +++ b/visualtest/docs/latex/struct_s_d_l_visual_test___variator.tex @@ -0,0 +1,37 @@ +\hypertarget{struct_s_d_l_visual_test___variator}{\section{S\-D\-L\-Visual\-Test\-\_\-\-Variator Struct Reference} +\label{struct_s_d_l_visual_test___variator}\index{S\-D\-L\-Visual\-Test\-\_\-\-Variator@{S\-D\-L\-Visual\-Test\-\_\-\-Variator}} +} + + +{\ttfamily \#include $<$S\-D\-L\-\_\-visualtest\-\_\-variators.\-h$>$} + +\subsection*{Data Fields} +\begin{DoxyCompactItemize} +\item +\hyperlink{_s_d_l__visualtest__variator__common_8h_a04bfc880abe6940d69a63c06a33acdbd}{S\-D\-L\-Visual\-Test\-\_\-\-Variator\-Type} \hyperlink{struct_s_d_l_visual_test___variator_a24d4399dc1877c1843e120e7b027ae64}{type} +\item +\begin{tabbing} +xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=\kill +union \{\\ +\>\hyperlink{struct_s_d_l_visual_test___exhaustive_variator}{SDLVisualTest\_ExhaustiveVariator} {\bfseries exhaustive}\\ +\>\hyperlink{struct_s_d_l_visual_test___random_variator}{SDLVisualTest\_RandomVariator} {\bfseries random}\\ +\} \hyperlink{struct_s_d_l_visual_test___variator_af99a8790e729d599c656a2070e672e9a}{data}\\ + +\end{tabbing}\end{DoxyCompactItemize} + + +\subsection{Detailed Description} +Struct that acts like a wrapper around the different types of variators available. + +\subsection{Field Documentation} +\hypertarget{struct_s_d_l_visual_test___variator_af99a8790e729d599c656a2070e672e9a}{\index{S\-D\-L\-Visual\-Test\-\_\-\-Variator@{S\-D\-L\-Visual\-Test\-\_\-\-Variator}!data@{data}} +\index{data@{data}!SDLVisualTest_Variator@{S\-D\-L\-Visual\-Test\-\_\-\-Variator}} +\subsubsection[{data}]{\setlength{\rightskip}{0pt plus 5cm}union \{ ... \} data}}\label{struct_s_d_l_visual_test___variator_af99a8790e729d599c656a2070e672e9a} +union object that stores the variator \hypertarget{struct_s_d_l_visual_test___variator_a24d4399dc1877c1843e120e7b027ae64}{\index{S\-D\-L\-Visual\-Test\-\_\-\-Variator@{S\-D\-L\-Visual\-Test\-\_\-\-Variator}!type@{type}} +\index{type@{type}!SDLVisualTest_Variator@{S\-D\-L\-Visual\-Test\-\_\-\-Variator}} +\subsubsection[{type}]{\setlength{\rightskip}{0pt plus 5cm}{\bf S\-D\-L\-Visual\-Test\-\_\-\-Variator\-Type} type}}\label{struct_s_d_l_visual_test___variator_a24d4399dc1877c1843e120e7b027ae64} +Type of the variator + +The documentation for this struct was generated from the following file\-:\begin{DoxyCompactItemize} +\item +C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\hyperlink{_s_d_l__visualtest__variators_8h}{S\-D\-L\-\_\-visualtest\-\_\-variators.\-h}\end{DoxyCompactItemize} diff --git a/visualtest/docs/latex/sut__configparser_8c.tex b/visualtest/docs/latex/sut__configparser_8c.tex new file mode 100755 index 0000000000000..429fe70703937 --- /dev/null +++ b/visualtest/docs/latex/sut__configparser_8c.tex @@ -0,0 +1,50 @@ +\hypertarget{sut__configparser_8c}{\section{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/sut\-\_\-configparser.c File Reference} +\label{sut__configparser_8c}\index{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/sut\-\_\-configparser.\-c@{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/sut\-\_\-configparser.\-c}} +} +{\ttfamily \#include $<$limits.\-h$>$}\\* +{\ttfamily \#include $<$string.\-h$>$}\\* +{\ttfamily \#include $<$S\-D\-L\-\_\-test.\-h$>$}\\* +{\ttfamily \#include $<$S\-D\-L\-\_\-rwops.\-h$>$}\\* +{\ttfamily \#include \char`\"{}S\-D\-L\-\_\-visualtest\-\_\-sut\-\_\-configparser.\-h\char`\"{}}\\* +{\ttfamily \#include \char`\"{}S\-D\-L\-\_\-visualtest\-\_\-parsehelper.\-h\char`\"{}}\\* +{\ttfamily \#include \char`\"{}S\-D\-L\-\_\-visualtest\-\_\-rwhelper.\-h\char`\"{}}\\* +\subsection*{Functions} +\begin{DoxyCompactItemize} +\item +int \hyperlink{sut__configparser_8c_a8e178cd8a1f279f5d2cf908545e97544}{S\-D\-L\-Visual\-Test\-\_\-\-Parse\-S\-U\-T\-Config} (char $\ast$file, \hyperlink{struct_s_d_l_visual_test___s_u_t_config}{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config} $\ast$config) +\item +void \hyperlink{sut__configparser_8c_a1bddf9732c0d3ed1c24455d22193de9a}{S\-D\-L\-Visual\-Test\-\_\-\-Free\-S\-U\-T\-Config} (\hyperlink{struct_s_d_l_visual_test___s_u_t_config}{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config} $\ast$config) +\end{DoxyCompactItemize} + + +\subsection{Detailed Description} +Source file for the parser for S\-U\-T config files. + +\subsection{Function Documentation} +\hypertarget{sut__configparser_8c_a1bddf9732c0d3ed1c24455d22193de9a}{\index{sut\-\_\-configparser.\-c@{sut\-\_\-configparser.\-c}!S\-D\-L\-Visual\-Test\-\_\-\-Free\-S\-U\-T\-Config@{S\-D\-L\-Visual\-Test\-\_\-\-Free\-S\-U\-T\-Config}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Free\-S\-U\-T\-Config@{S\-D\-L\-Visual\-Test\-\_\-\-Free\-S\-U\-T\-Config}!sut_configparser.c@{sut\-\_\-configparser.\-c}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Free\-S\-U\-T\-Config}]{\setlength{\rightskip}{0pt plus 5cm}void S\-D\-L\-Visual\-Test\-\_\-\-Free\-S\-U\-T\-Config ( +\begin{DoxyParamCaption} +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config} $\ast$}]{config} +\end{DoxyParamCaption} +)}}\label{sut__configparser_8c_a1bddf9732c0d3ed1c24455d22193de9a} +Free any resources associated with the config object pointed to by {\ttfamily config}. \hypertarget{sut__configparser_8c_a8e178cd8a1f279f5d2cf908545e97544}{\index{sut\-\_\-configparser.\-c@{sut\-\_\-configparser.\-c}!S\-D\-L\-Visual\-Test\-\_\-\-Parse\-S\-U\-T\-Config@{S\-D\-L\-Visual\-Test\-\_\-\-Parse\-S\-U\-T\-Config}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Parse\-S\-U\-T\-Config@{S\-D\-L\-Visual\-Test\-\_\-\-Parse\-S\-U\-T\-Config}!sut_configparser.c@{sut\-\_\-configparser.\-c}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Parse\-S\-U\-T\-Config}]{\setlength{\rightskip}{0pt plus 5cm}int S\-D\-L\-Visual\-Test\-\_\-\-Parse\-S\-U\-T\-Config ( +\begin{DoxyParamCaption} +\item[{char $\ast$}]{file, } +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config} $\ast$}]{config} +\end{DoxyParamCaption} +)}}\label{sut__configparser_8c_a8e178cd8a1f279f5d2cf908545e97544} +Parses a configuration file that describes the command line options an S\-U\-T application will take and populates a S\-U\-T config object. All lines in the config file must be smaller than + + +\begin{DoxyParams}{Parameters} +{\em file} & Path to the configuration file. \\ +\hline +{\em config} & Pointer to an object that represents an S\-U\-T configuration.\\ +\hline +\end{DoxyParams} +\begin{DoxyReturn}{Returns} +zero on failure, non-\/zero on success +\end{DoxyReturn} diff --git a/visualtest/docs/latex/testharness_8c.tex b/visualtest/docs/latex/testharness_8c.tex new file mode 100755 index 0000000000000..b3b7bb103bb6d --- /dev/null +++ b/visualtest/docs/latex/testharness_8c.tex @@ -0,0 +1,68 @@ +\hypertarget{testharness_8c}{\section{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/testharness.c File Reference} +\label{testharness_8c}\index{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/testharness.\-c@{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/testharness.\-c}} +} +{\ttfamily \#include $<$stdlib.\-h$>$}\\* +{\ttfamily \#include $<$S\-D\-L\-\_\-test.\-h$>$}\\* +{\ttfamily \#include $<$S\-D\-L.\-h$>$}\\* +{\ttfamily \#include $<$S\-D\-L\-\_\-assert.\-h$>$}\\* +{\ttfamily \#include \char`\"{}S\-D\-L\-\_\-visualtest\-\_\-harness\-\_\-argparser.\-h\char`\"{}}\\* +{\ttfamily \#include \char`\"{}S\-D\-L\-\_\-visualtest\-\_\-process.\-h\char`\"{}}\\* +{\ttfamily \#include \char`\"{}S\-D\-L\-\_\-visualtest\-\_\-variators.\-h\char`\"{}}\\* +{\ttfamily \#include \char`\"{}S\-D\-L\-\_\-visualtest\-\_\-screenshot.\-h\char`\"{}}\\* +{\ttfamily \#include \char`\"{}S\-D\-L\-\_\-visualtest\-\_\-mischelper.\-h\char`\"{}}\\* +\subsection*{Macros} +\begin{DoxyCompactItemize} +\item +\#define \hyperlink{testharness_8c_a0d1d5d1394089a10f0147ed2b89c1165}{A\-C\-T\-I\-O\-N\-\_\-\-T\-I\-M\-E\-R\-\_\-\-E\-V\-E\-N\-T}~0 +\item +\#define \hyperlink{testharness_8c_acdc6cb4935ca89fbe3fda31a8f533b9a}{K\-I\-L\-L\-\_\-\-T\-I\-M\-E\-R\-\_\-\-E\-V\-E\-N\-T}~1 +\item +\#define \hyperlink{testharness_8c_a70102426e83ed3944f9c060bd82fb54e}{A\-C\-T\-I\-O\-N\-\_\-\-L\-O\-O\-P\-\_\-\-F\-P\-S}~10 +\item +\#define \hyperlink{testharness_8c_a562e15dd66cf158c98dbfec9f6afa1ae}{T\-E\-S\-T\-\_\-\-P\-A\-S\-S\-E\-D}~1 +\item +\#define \hyperlink{testharness_8c_a8b8b91205df891e2c7837bd03795306f}{T\-E\-S\-T\-\_\-\-F\-A\-I\-L\-E\-D}~0 +\item +\#define \hyperlink{testharness_8c_a8251bcdfc5c83845e0834adf211de033}{T\-E\-S\-T\-\_\-\-E\-R\-R\-O\-R}~-\/1 +\end{DoxyCompactItemize} +\subsection*{Functions} +\begin{DoxyCompactItemize} +\item +int \hyperlink{testharness_8c_a0ddf1224851353fc92bfbff6f499fa97}{main} (int argc, char $\ast$argv\mbox{[}$\,$\mbox{]}) +\end{DoxyCompactItemize} + + +\subsection{Detailed Description} +Source file for the test harness. + +\subsection{Macro Definition Documentation} +\hypertarget{testharness_8c_a70102426e83ed3944f9c060bd82fb54e}{\index{testharness.\-c@{testharness.\-c}!A\-C\-T\-I\-O\-N\-\_\-\-L\-O\-O\-P\-\_\-\-F\-P\-S@{A\-C\-T\-I\-O\-N\-\_\-\-L\-O\-O\-P\-\_\-\-F\-P\-S}} +\index{A\-C\-T\-I\-O\-N\-\_\-\-L\-O\-O\-P\-\_\-\-F\-P\-S@{A\-C\-T\-I\-O\-N\-\_\-\-L\-O\-O\-P\-\_\-\-F\-P\-S}!testharness.c@{testharness.\-c}} +\subsubsection[{A\-C\-T\-I\-O\-N\-\_\-\-L\-O\-O\-P\-\_\-\-F\-P\-S}]{\setlength{\rightskip}{0pt plus 5cm}\#define A\-C\-T\-I\-O\-N\-\_\-\-L\-O\-O\-P\-\_\-\-F\-P\-S~10}}\label{testharness_8c_a70102426e83ed3944f9c060bd82fb54e} +F\-P\-S value used for delays in the action loop \hypertarget{testharness_8c_a0d1d5d1394089a10f0147ed2b89c1165}{\index{testharness.\-c@{testharness.\-c}!A\-C\-T\-I\-O\-N\-\_\-\-T\-I\-M\-E\-R\-\_\-\-E\-V\-E\-N\-T@{A\-C\-T\-I\-O\-N\-\_\-\-T\-I\-M\-E\-R\-\_\-\-E\-V\-E\-N\-T}} +\index{A\-C\-T\-I\-O\-N\-\_\-\-T\-I\-M\-E\-R\-\_\-\-E\-V\-E\-N\-T@{A\-C\-T\-I\-O\-N\-\_\-\-T\-I\-M\-E\-R\-\_\-\-E\-V\-E\-N\-T}!testharness.c@{testharness.\-c}} +\subsubsection[{A\-C\-T\-I\-O\-N\-\_\-\-T\-I\-M\-E\-R\-\_\-\-E\-V\-E\-N\-T}]{\setlength{\rightskip}{0pt plus 5cm}\#define A\-C\-T\-I\-O\-N\-\_\-\-T\-I\-M\-E\-R\-\_\-\-E\-V\-E\-N\-T~0}}\label{testharness_8c_a0d1d5d1394089a10f0147ed2b89c1165} +Code for the user event triggered when a new action is to be executed \hypertarget{testharness_8c_acdc6cb4935ca89fbe3fda31a8f533b9a}{\index{testharness.\-c@{testharness.\-c}!K\-I\-L\-L\-\_\-\-T\-I\-M\-E\-R\-\_\-\-E\-V\-E\-N\-T@{K\-I\-L\-L\-\_\-\-T\-I\-M\-E\-R\-\_\-\-E\-V\-E\-N\-T}} +\index{K\-I\-L\-L\-\_\-\-T\-I\-M\-E\-R\-\_\-\-E\-V\-E\-N\-T@{K\-I\-L\-L\-\_\-\-T\-I\-M\-E\-R\-\_\-\-E\-V\-E\-N\-T}!testharness.c@{testharness.\-c}} +\subsubsection[{K\-I\-L\-L\-\_\-\-T\-I\-M\-E\-R\-\_\-\-E\-V\-E\-N\-T}]{\setlength{\rightskip}{0pt plus 5cm}\#define K\-I\-L\-L\-\_\-\-T\-I\-M\-E\-R\-\_\-\-E\-V\-E\-N\-T~1}}\label{testharness_8c_acdc6cb4935ca89fbe3fda31a8f533b9a} +Code for the user event triggered when the maximum timeout is reached \hypertarget{testharness_8c_a8251bcdfc5c83845e0834adf211de033}{\index{testharness.\-c@{testharness.\-c}!T\-E\-S\-T\-\_\-\-E\-R\-R\-O\-R@{T\-E\-S\-T\-\_\-\-E\-R\-R\-O\-R}} +\index{T\-E\-S\-T\-\_\-\-E\-R\-R\-O\-R@{T\-E\-S\-T\-\_\-\-E\-R\-R\-O\-R}!testharness.c@{testharness.\-c}} +\subsubsection[{T\-E\-S\-T\-\_\-\-E\-R\-R\-O\-R}]{\setlength{\rightskip}{0pt plus 5cm}\#define T\-E\-S\-T\-\_\-\-E\-R\-R\-O\-R~-\/1}}\label{testharness_8c_a8251bcdfc5c83845e0834adf211de033} +Value returned by Run\-S\-U\-T\-And\-Test() on a fatal error \hypertarget{testharness_8c_a8b8b91205df891e2c7837bd03795306f}{\index{testharness.\-c@{testharness.\-c}!T\-E\-S\-T\-\_\-\-F\-A\-I\-L\-E\-D@{T\-E\-S\-T\-\_\-\-F\-A\-I\-L\-E\-D}} +\index{T\-E\-S\-T\-\_\-\-F\-A\-I\-L\-E\-D@{T\-E\-S\-T\-\_\-\-F\-A\-I\-L\-E\-D}!testharness.c@{testharness.\-c}} +\subsubsection[{T\-E\-S\-T\-\_\-\-F\-A\-I\-L\-E\-D}]{\setlength{\rightskip}{0pt plus 5cm}\#define T\-E\-S\-T\-\_\-\-F\-A\-I\-L\-E\-D~0}}\label{testharness_8c_a8b8b91205df891e2c7837bd03795306f} +Value returned by Run\-S\-U\-T\-And\-Test() when the test has failed \hypertarget{testharness_8c_a562e15dd66cf158c98dbfec9f6afa1ae}{\index{testharness.\-c@{testharness.\-c}!T\-E\-S\-T\-\_\-\-P\-A\-S\-S\-E\-D@{T\-E\-S\-T\-\_\-\-P\-A\-S\-S\-E\-D}} +\index{T\-E\-S\-T\-\_\-\-P\-A\-S\-S\-E\-D@{T\-E\-S\-T\-\_\-\-P\-A\-S\-S\-E\-D}!testharness.c@{testharness.\-c}} +\subsubsection[{T\-E\-S\-T\-\_\-\-P\-A\-S\-S\-E\-D}]{\setlength{\rightskip}{0pt plus 5cm}\#define T\-E\-S\-T\-\_\-\-P\-A\-S\-S\-E\-D~1}}\label{testharness_8c_a562e15dd66cf158c98dbfec9f6afa1ae} +Value returned by Run\-S\-U\-T\-And\-Test() when the test has passed + +\subsection{Function Documentation} +\hypertarget{testharness_8c_a0ddf1224851353fc92bfbff6f499fa97}{\index{testharness.\-c@{testharness.\-c}!main@{main}} +\index{main@{main}!testharness.c@{testharness.\-c}} +\subsubsection[{main}]{\setlength{\rightskip}{0pt plus 5cm}int main ( +\begin{DoxyParamCaption} +\item[{int}]{argc, } +\item[{char $\ast$}]{argv\mbox{[}$\,$\mbox{]}} +\end{DoxyParamCaption} +)}}\label{testharness_8c_a0ddf1224851353fc92bfbff6f499fa97} +Entry point for testharness \ No newline at end of file diff --git a/visualtest/docs/latex/union_s_d_l_visual_test___s_u_t_option_value.tex b/visualtest/docs/latex/union_s_d_l_visual_test___s_u_t_option_value.tex new file mode 100755 index 0000000000000..5c2a05e4db8f5 --- /dev/null +++ b/visualtest/docs/latex/union_s_d_l_visual_test___s_u_t_option_value.tex @@ -0,0 +1,59 @@ +\hypertarget{union_s_d_l_visual_test___s_u_t_option_value}{\section{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option\-Value Union Reference} +\label{union_s_d_l_visual_test___s_u_t_option_value}\index{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option\-Value@{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option\-Value}} +} + + +{\ttfamily \#include $<$S\-D\-L\-\_\-visualtest\-\_\-variator\-\_\-common.\-h$>$} + +\subsection*{Data Fields} +\begin{DoxyCompactItemize} +\item +S\-D\-L\-\_\-bool \hyperlink{union_s_d_l_visual_test___s_u_t_option_value_ace8ec6519c056e35443a6c401f3d0941}{bool\-\_\-value} +\item +\begin{tabbing} +xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=\kill +struct \{\\ +\>int {\bfseries value}\\ +\>SDL\_bool {\bfseries on}\\ +\} \hyperlink{union_s_d_l_visual_test___s_u_t_option_value_a4291d9ad3cfb3fe1645ea2732e11d68a}{integer}\\ + +\end{tabbing}\item +\begin{tabbing} +xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=\kill +struct \{\\ +\>int {\bfseries index}\\ +\>SDL\_bool {\bfseries on}\\ +\} \hyperlink{union_s_d_l_visual_test___s_u_t_option_value_ad40e26afd4b8532327b61897d5b009e3}{enumerated}\\ + +\end{tabbing}\item +\begin{tabbing} +xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=\kill +struct \{\\ +\>char $\ast$ {\bfseries value}\\ +\>SDL\_bool {\bfseries on}\\ +\} \hyperlink{union_s_d_l_visual_test___s_u_t_option_value_a2bf4b969ff9633c937e4d15118d1edc6}{string}\\ + +\end{tabbing}\end{DoxyCompactItemize} + + +\subsection{Detailed Description} +One possible value for a command line option to the S\-U\-T. + +\subsection{Field Documentation} +\hypertarget{union_s_d_l_visual_test___s_u_t_option_value_ace8ec6519c056e35443a6c401f3d0941}{\index{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option\-Value@{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option\-Value}!bool\-\_\-value@{bool\-\_\-value}} +\index{bool\-\_\-value@{bool\-\_\-value}!SDLVisualTest_SUTOptionValue@{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option\-Value}} +\subsubsection[{bool\-\_\-value}]{\setlength{\rightskip}{0pt plus 5cm}S\-D\-L\-\_\-bool bool\-\_\-value}}\label{union_s_d_l_visual_test___s_u_t_option_value_ace8ec6519c056e35443a6c401f3d0941} +Value if the option is of type boolean \hypertarget{union_s_d_l_visual_test___s_u_t_option_value_ad40e26afd4b8532327b61897d5b009e3}{\index{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option\-Value@{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option\-Value}!enumerated@{enumerated}} +\index{enumerated@{enumerated}!SDLVisualTest_SUTOptionValue@{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option\-Value}} +\subsubsection[{enumerated}]{\setlength{\rightskip}{0pt plus 5cm}struct \{ ... \} enumerated}}\label{union_s_d_l_visual_test___s_u_t_option_value_ad40e26afd4b8532327b61897d5b009e3} +Index of the string in the enum\-\_\-values field of the corresponding \hyperlink{struct_s_d_l_visual_test___s_u_t_option}{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option} object. If on is true the option will passed to the S\-U\-T, otherwise it will be ignored. \hypertarget{union_s_d_l_visual_test___s_u_t_option_value_a4291d9ad3cfb3fe1645ea2732e11d68a}{\index{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option\-Value@{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option\-Value}!integer@{integer}} +\index{integer@{integer}!SDLVisualTest_SUTOptionValue@{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option\-Value}} +\subsubsection[{integer}]{\setlength{\rightskip}{0pt plus 5cm}struct \{ ... \} integer}}\label{union_s_d_l_visual_test___s_u_t_option_value_a4291d9ad3cfb3fe1645ea2732e11d68a} +Value if the option is of type integer. If on is true then the option will be passed to the S\-U\-T, otherwise it will be ignored. \hypertarget{union_s_d_l_visual_test___s_u_t_option_value_a2bf4b969ff9633c937e4d15118d1edc6}{\index{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option\-Value@{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option\-Value}!string@{string}} +\index{string@{string}!SDLVisualTest_SUTOptionValue@{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option\-Value}} +\subsubsection[{string}]{\setlength{\rightskip}{0pt plus 5cm}struct \{ ... \} string}}\label{union_s_d_l_visual_test___s_u_t_option_value_a2bf4b969ff9633c937e4d15118d1edc6} +Value if the option is of type string. If on is true the option will be passed to the S\-U\-T, otherwise it will be ignored. + +The documentation for this union was generated from the following file\-:\begin{DoxyCompactItemize} +\item +C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\hyperlink{_s_d_l__visualtest__variator__common_8h}{S\-D\-L\-\_\-visualtest\-\_\-variator\-\_\-common.\-h}\end{DoxyCompactItemize} diff --git a/visualtest/docs/latex/variator__common_8c.tex b/visualtest/docs/latex/variator__common_8c.tex new file mode 100755 index 0000000000000..a88bc08e9f02e --- /dev/null +++ b/visualtest/docs/latex/variator__common_8c.tex @@ -0,0 +1,85 @@ +\hypertarget{variator__common_8c}{\section{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/variator\-\_\-common.c File Reference} +\label{variator__common_8c}\index{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/variator\-\_\-common.\-c@{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/variator\-\_\-common.\-c}} +} +{\ttfamily \#include $<$S\-D\-L\-\_\-test.\-h$>$}\\* +{\ttfamily \#include \char`\"{}S\-D\-L\-\_\-visualtest\-\_\-variator\-\_\-common.\-h\char`\"{}}\\* +\subsection*{Functions} +\begin{DoxyCompactItemize} +\item +int \hyperlink{variator__common_8c_aafcecc06c8feb24b6f6a509bfa9db681}{S\-D\-L\-Visual\-Test\-\_\-\-Next\-Value} (\hyperlink{union_s_d_l_visual_test___s_u_t_option_value}{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option\-Value} $\ast$var, \hyperlink{struct_s_d_l_visual_test___s_u_t_option}{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option} $\ast$opt) +\item +int \hyperlink{variator__common_8c_ad981c2efab849e76dc878ef8da9d6017}{S\-D\-L\-Visual\-Test\-\_\-\-Make\-Str\-From\-Variation} (\hyperlink{struct_s_d_l_visual_test___variation}{S\-D\-L\-Visual\-Test\-\_\-\-Variation} $\ast$variation, \hyperlink{struct_s_d_l_visual_test___s_u_t_config}{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config} $\ast$config, char $\ast$buffer, int size) +\item +int \hyperlink{variator__common_8c_ac87934906c51364778dc910ebca47b6c}{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Variation} (\hyperlink{struct_s_d_l_visual_test___variation}{S\-D\-L\-Visual\-Test\-\_\-\-Variation} $\ast$variation, \hyperlink{struct_s_d_l_visual_test___s_u_t_config}{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config} $\ast$config) +\end{DoxyCompactItemize} + + +\subsection{Detailed Description} +Source file for some common functionality used by variators. + +\subsection{Function Documentation} +\hypertarget{variator__common_8c_ac87934906c51364778dc910ebca47b6c}{\index{variator\-\_\-common.\-c@{variator\-\_\-common.\-c}!S\-D\-L\-Visual\-Test\-\_\-\-Init\-Variation@{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Variation}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Variation@{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Variation}!variator_common.c@{variator\-\_\-common.\-c}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Variation}]{\setlength{\rightskip}{0pt plus 5cm}int S\-D\-L\-Visual\-Test\-\_\-\-Init\-Variation ( +\begin{DoxyParamCaption} +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Variation} $\ast$}]{variation, } +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config} $\ast$}]{config} +\end{DoxyParamCaption} +)}}\label{variator__common_8c_ac87934906c51364778dc910ebca47b6c} +Initializes the variation using the following rules\-: +\begin{DoxyItemize} +\item Boolean options are initialized to S\-D\-L\-\_\-\-F\-A\-L\-S\-E. +\item Integer options are initialized to the minimum valid value they can hold. +\item Enum options are initialized to the first element in the list of values they can take. +\item String options are initialized to the name of the option. +\end{DoxyItemize} + +\begin{DoxyReturn}{Returns} +1 on success, 0 on failure. +\end{DoxyReturn} +\hypertarget{variator__common_8c_ad981c2efab849e76dc878ef8da9d6017}{\index{variator\-\_\-common.\-c@{variator\-\_\-common.\-c}!S\-D\-L\-Visual\-Test\-\_\-\-Make\-Str\-From\-Variation@{S\-D\-L\-Visual\-Test\-\_\-\-Make\-Str\-From\-Variation}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Make\-Str\-From\-Variation@{S\-D\-L\-Visual\-Test\-\_\-\-Make\-Str\-From\-Variation}!variator_common.c@{variator\-\_\-common.\-c}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Make\-Str\-From\-Variation}]{\setlength{\rightskip}{0pt plus 5cm}int S\-D\-L\-Visual\-Test\-\_\-\-Make\-Str\-From\-Variation ( +\begin{DoxyParamCaption} +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Variation} $\ast$}]{variation, } +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config} $\ast$}]{config, } +\item[{char $\ast$}]{buffer, } +\item[{int}]{size} +\end{DoxyParamCaption} +)}}\label{variator__common_8c_ad981c2efab849e76dc878ef8da9d6017} +Converts a variation object into a string of command line arguments. + + +\begin{DoxyParams}{Parameters} +{\em variation} & Variation object to be converted. \\ +\hline +{\em config} & Config object for the S\-U\-T. \\ +\hline +{\em buffer} & Pointer to the buffer the arguments string will be copied into. \\ +\hline +{\em size} & Size of the buffer.\\ +\hline +\end{DoxyParams} +\begin{DoxyReturn}{Returns} +1 on success, 0 on failure +\end{DoxyReturn} +\hypertarget{variator__common_8c_aafcecc06c8feb24b6f6a509bfa9db681}{\index{variator\-\_\-common.\-c@{variator\-\_\-common.\-c}!S\-D\-L\-Visual\-Test\-\_\-\-Next\-Value@{S\-D\-L\-Visual\-Test\-\_\-\-Next\-Value}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Next\-Value@{S\-D\-L\-Visual\-Test\-\_\-\-Next\-Value}!variator_common.c@{variator\-\_\-common.\-c}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Next\-Value}]{\setlength{\rightskip}{0pt plus 5cm}int S\-D\-L\-Visual\-Test\-\_\-\-Next\-Value ( +\begin{DoxyParamCaption} +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option\-Value} $\ast$}]{var, } +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Option} $\ast$}]{opt} +\end{DoxyParamCaption} +)}}\label{variator__common_8c_aafcecc06c8feb24b6f6a509bfa9db681} +\char`\"{}\-Increments\char`\"{} the value of the option by one and returns the carry. We wrap around to the initial value on overflow which makes the carry one. For example\-: \char`\"{}incrementing\char`\"{} an S\-D\-L\-\_\-\-F\-A\-L\-S\-E option makes it S\-D\-L\-\_\-\-T\-R\-U\-E with no carry, and \char`\"{}incrementing\char`\"{} an S\-D\-L\-\_\-\-T\-R\-U\-E option makes it S\-D\-L\-\_\-\-F\-A\-L\-S\-E with carry one. For integers, a random value in the valid range for the option is used. + + +\begin{DoxyParams}{Parameters} +{\em var} & Value of the option \\ +\hline +{\em opt} & Object with metadata about the option\\ +\hline +\end{DoxyParams} +\begin{DoxyReturn}{Returns} +1 if there is a carry for enum and bool type options, 0 otherwise. 1 is always returned for integer and string type options. -\/1 is returned on error. +\end{DoxyReturn} diff --git a/visualtest/docs/latex/variator__exhaustive_8c.tex b/visualtest/docs/latex/variator__exhaustive_8c.tex new file mode 100755 index 0000000000000..104baf3b51c1f --- /dev/null +++ b/visualtest/docs/latex/variator__exhaustive_8c.tex @@ -0,0 +1,54 @@ +\hypertarget{variator__exhaustive_8c}{\section{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/variator\-\_\-exhaustive.c File Reference} +\label{variator__exhaustive_8c}\index{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/variator\-\_\-exhaustive.\-c@{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/variator\-\_\-exhaustive.\-c}} +} +{\ttfamily \#include $<$time.\-h$>$}\\* +{\ttfamily \#include $<$S\-D\-L\-\_\-test.\-h$>$}\\* +{\ttfamily \#include \char`\"{}S\-D\-L\-\_\-visualtest\-\_\-sut\-\_\-configparser.\-h\char`\"{}}\\* +{\ttfamily \#include \char`\"{}S\-D\-L\-\_\-visualtest\-\_\-exhaustive\-\_\-variator.\-h\char`\"{}}\\* +\subsection*{Functions} +\begin{DoxyCompactItemize} +\item +int \hyperlink{variator__exhaustive_8c_a9e213e530ddf5a18014786d10e9fdaee}{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Exhaustive\-Variator} (\hyperlink{struct_s_d_l_visual_test___exhaustive_variator}{S\-D\-L\-Visual\-Test\-\_\-\-Exhaustive\-Variator} $\ast$variator, \hyperlink{struct_s_d_l_visual_test___s_u_t_config}{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config} $\ast$config) +\item +char $\ast$ \hyperlink{variator__exhaustive_8c_aa9e13a92945ef48308215b3fa068ed29}{S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Exhaustive\-Variation} (\hyperlink{struct_s_d_l_visual_test___exhaustive_variator}{S\-D\-L\-Visual\-Test\-\_\-\-Exhaustive\-Variator} $\ast$variator) +\item +void \hyperlink{variator__exhaustive_8c_a7168b055fb86bbbb700d87ae842f7152}{S\-D\-L\-Visual\-Test\-\_\-\-Free\-Exhaustive\-Variator} (\hyperlink{struct_s_d_l_visual_test___exhaustive_variator}{S\-D\-L\-Visual\-Test\-\_\-\-Exhaustive\-Variator} $\ast$variator) +\end{DoxyCompactItemize} + + +\subsection{Detailed Description} +Source file for the variator that tests the S\-U\-T with all the different variations of input parameters that are valid. + +\subsection{Function Documentation} +\hypertarget{variator__exhaustive_8c_a7168b055fb86bbbb700d87ae842f7152}{\index{variator\-\_\-exhaustive.\-c@{variator\-\_\-exhaustive.\-c}!S\-D\-L\-Visual\-Test\-\_\-\-Free\-Exhaustive\-Variator@{S\-D\-L\-Visual\-Test\-\_\-\-Free\-Exhaustive\-Variator}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Free\-Exhaustive\-Variator@{S\-D\-L\-Visual\-Test\-\_\-\-Free\-Exhaustive\-Variator}!variator_exhaustive.c@{variator\-\_\-exhaustive.\-c}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Free\-Exhaustive\-Variator}]{\setlength{\rightskip}{0pt plus 5cm}void S\-D\-L\-Visual\-Test\-\_\-\-Free\-Exhaustive\-Variator ( +\begin{DoxyParamCaption} +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Exhaustive\-Variator} $\ast$}]{variator} +\end{DoxyParamCaption} +)}}\label{variator__exhaustive_8c_a7168b055fb86bbbb700d87ae842f7152} +Frees any resources associated with the variator. \hypertarget{variator__exhaustive_8c_aa9e13a92945ef48308215b3fa068ed29}{\index{variator\-\_\-exhaustive.\-c@{variator\-\_\-exhaustive.\-c}!S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Exhaustive\-Variation@{S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Exhaustive\-Variation}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Exhaustive\-Variation@{S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Exhaustive\-Variation}!variator_exhaustive.c@{variator\-\_\-exhaustive.\-c}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Exhaustive\-Variation}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Exhaustive\-Variation ( +\begin{DoxyParamCaption} +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Exhaustive\-Variator} $\ast$}]{variator} +\end{DoxyParamCaption} +)}}\label{variator__exhaustive_8c_aa9e13a92945ef48308215b3fa068ed29} +Gets the arguments string for the next variation using the variator and updates the variator's current variation object to the next variation. + +\begin{DoxyReturn}{Returns} +The arguments string representing the next variation on success, and N\-U\-L\-L on failure or if we have iterated through all possible variations. In the latter case subsequent calls will start the variations again from the very beginning. The pointer returned should not be freed. +\end{DoxyReturn} +\hypertarget{variator__exhaustive_8c_a9e213e530ddf5a18014786d10e9fdaee}{\index{variator\-\_\-exhaustive.\-c@{variator\-\_\-exhaustive.\-c}!S\-D\-L\-Visual\-Test\-\_\-\-Init\-Exhaustive\-Variator@{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Exhaustive\-Variator}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Exhaustive\-Variator@{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Exhaustive\-Variator}!variator_exhaustive.c@{variator\-\_\-exhaustive.\-c}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Exhaustive\-Variator}]{\setlength{\rightskip}{0pt plus 5cm}int S\-D\-L\-Visual\-Test\-\_\-\-Init\-Exhaustive\-Variator ( +\begin{DoxyParamCaption} +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Exhaustive\-Variator} $\ast$}]{variator, } +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config} $\ast$}]{config} +\end{DoxyParamCaption} +)}}\label{variator__exhaustive_8c_a9e213e530ddf5a18014786d10e9fdaee} +Initializes the variator. + +\begin{DoxyReturn}{Returns} +1 on success, 0 on failure +\end{DoxyReturn} diff --git a/visualtest/docs/latex/variator__random_8c.tex b/visualtest/docs/latex/variator__random_8c.tex new file mode 100755 index 0000000000000..d8109cdb21026 --- /dev/null +++ b/visualtest/docs/latex/variator__random_8c.tex @@ -0,0 +1,54 @@ +\hypertarget{variator__random_8c}{\section{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/variator\-\_\-random.c File Reference} +\label{variator__random_8c}\index{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/variator\-\_\-random.\-c@{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/variator\-\_\-random.\-c}} +} +{\ttfamily \#include $<$time.\-h$>$}\\* +{\ttfamily \#include $<$S\-D\-L\-\_\-test.\-h$>$}\\* +{\ttfamily \#include \char`\"{}S\-D\-L\-\_\-visualtest\-\_\-random\-\_\-variator.\-h\char`\"{}}\\* +\subsection*{Functions} +\begin{DoxyCompactItemize} +\item +int \hyperlink{variator__random_8c_a807486069b7180c3b3bf8af4616d055f}{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Random\-Variator} (\hyperlink{struct_s_d_l_visual_test___random_variator}{S\-D\-L\-Visual\-Test\-\_\-\-Random\-Variator} $\ast$variator, \hyperlink{struct_s_d_l_visual_test___s_u_t_config}{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config} $\ast$config, Uint64 seed) +\item +char $\ast$ \hyperlink{variator__random_8c_a479aceb74b5355c1d22856fc7efce890}{S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Random\-Variation} (\hyperlink{struct_s_d_l_visual_test___random_variator}{S\-D\-L\-Visual\-Test\-\_\-\-Random\-Variator} $\ast$variator) +\item +void \hyperlink{variator__random_8c_ac95d9e0716e4c918c6902b10f9591d4b}{S\-D\-L\-Visual\-Test\-\_\-\-Free\-Random\-Variator} (\hyperlink{struct_s_d_l_visual_test___random_variator}{S\-D\-L\-Visual\-Test\-\_\-\-Random\-Variator} $\ast$variator) +\end{DoxyCompactItemize} + + +\subsection{Detailed Description} +Source file for the variator that tests the S\-U\-T with random variations to the input parameters. + +\subsection{Function Documentation} +\hypertarget{variator__random_8c_ac95d9e0716e4c918c6902b10f9591d4b}{\index{variator\-\_\-random.\-c@{variator\-\_\-random.\-c}!S\-D\-L\-Visual\-Test\-\_\-\-Free\-Random\-Variator@{S\-D\-L\-Visual\-Test\-\_\-\-Free\-Random\-Variator}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Free\-Random\-Variator@{S\-D\-L\-Visual\-Test\-\_\-\-Free\-Random\-Variator}!variator_random.c@{variator\-\_\-random.\-c}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Free\-Random\-Variator}]{\setlength{\rightskip}{0pt plus 5cm}void S\-D\-L\-Visual\-Test\-\_\-\-Free\-Random\-Variator ( +\begin{DoxyParamCaption} +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Random\-Variator} $\ast$}]{variator} +\end{DoxyParamCaption} +)}}\label{variator__random_8c_ac95d9e0716e4c918c6902b10f9591d4b} +Frees any resources associated with the variator. \hypertarget{variator__random_8c_a479aceb74b5355c1d22856fc7efce890}{\index{variator\-\_\-random.\-c@{variator\-\_\-random.\-c}!S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Random\-Variation@{S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Random\-Variation}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Random\-Variation@{S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Random\-Variation}!variator_random.c@{variator\-\_\-random.\-c}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Random\-Variation}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Random\-Variation ( +\begin{DoxyParamCaption} +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Random\-Variator} $\ast$}]{variator} +\end{DoxyParamCaption} +)}}\label{variator__random_8c_a479aceb74b5355c1d22856fc7efce890} +Generates a new random variation. + +\begin{DoxyReturn}{Returns} +The arguments string representing the random variation on success, and N\-U\-L\-L on failure. The pointer returned should not be freed. +\end{DoxyReturn} +\hypertarget{variator__random_8c_a807486069b7180c3b3bf8af4616d055f}{\index{variator\-\_\-random.\-c@{variator\-\_\-random.\-c}!S\-D\-L\-Visual\-Test\-\_\-\-Init\-Random\-Variator@{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Random\-Variator}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Random\-Variator@{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Random\-Variator}!variator_random.c@{variator\-\_\-random.\-c}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Random\-Variator}]{\setlength{\rightskip}{0pt plus 5cm}int S\-D\-L\-Visual\-Test\-\_\-\-Init\-Random\-Variator ( +\begin{DoxyParamCaption} +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Random\-Variator} $\ast$}]{variator, } +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config} $\ast$}]{config, } +\item[{Uint64}]{seed} +\end{DoxyParamCaption} +)}}\label{variator__random_8c_a807486069b7180c3b3bf8af4616d055f} +Initializes the variator. + +\begin{DoxyReturn}{Returns} +1 on success, 0 on failure +\end{DoxyReturn} diff --git a/visualtest/docs/latex/variators_8c.tex b/visualtest/docs/latex/variators_8c.tex new file mode 100755 index 0000000000000..a2bef60d429e7 --- /dev/null +++ b/visualtest/docs/latex/variators_8c.tex @@ -0,0 +1,54 @@ +\hypertarget{variators_8c}{\section{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/variators.c File Reference} +\label{variators_8c}\index{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/variators.\-c@{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/variators.\-c}} +} +{\ttfamily \#include $<$S\-D\-L\-\_\-test.\-h$>$}\\* +{\ttfamily \#include \char`\"{}S\-D\-L\-\_\-visualtest\-\_\-variators.\-h\char`\"{}}\\* +\subsection*{Functions} +\begin{DoxyCompactItemize} +\item +int \hyperlink{variators_8c_ac1d82ee387a19743e47a82c87d3fb7f4}{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Variator} (\hyperlink{struct_s_d_l_visual_test___variator}{S\-D\-L\-Visual\-Test\-\_\-\-Variator} $\ast$variator, \hyperlink{struct_s_d_l_visual_test___s_u_t_config}{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config} $\ast$config, \hyperlink{_s_d_l__visualtest__variator__common_8h_a04bfc880abe6940d69a63c06a33acdbd}{S\-D\-L\-Visual\-Test\-\_\-\-Variator\-Type} type, Uint64 seed) +\item +char $\ast$ \hyperlink{variators_8c_aebdd4c3c545b0063d16929fd56f1a79f}{S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Variation} (\hyperlink{struct_s_d_l_visual_test___variator}{S\-D\-L\-Visual\-Test\-\_\-\-Variator} $\ast$variator) +\item +void \hyperlink{variators_8c_a98727ef649135c3312056d7603cb70b5}{S\-D\-L\-Visual\-Test\-\_\-\-Free\-Variator} (\hyperlink{struct_s_d_l_visual_test___variator}{S\-D\-L\-Visual\-Test\-\_\-\-Variator} $\ast$variator) +\end{DoxyCompactItemize} + + +\subsection{Detailed Description} +Source file for the operations that act on variators. + +\subsection{Function Documentation} +\hypertarget{variators_8c_a98727ef649135c3312056d7603cb70b5}{\index{variators.\-c@{variators.\-c}!S\-D\-L\-Visual\-Test\-\_\-\-Free\-Variator@{S\-D\-L\-Visual\-Test\-\_\-\-Free\-Variator}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Free\-Variator@{S\-D\-L\-Visual\-Test\-\_\-\-Free\-Variator}!variators.c@{variators.\-c}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Free\-Variator}]{\setlength{\rightskip}{0pt plus 5cm}void S\-D\-L\-Visual\-Test\-\_\-\-Free\-Variator ( +\begin{DoxyParamCaption} +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Variator} $\ast$}]{variator} +\end{DoxyParamCaption} +)}}\label{variators_8c_a98727ef649135c3312056d7603cb70b5} +Frees any resources associated with the variator. \hypertarget{variators_8c_aebdd4c3c545b0063d16929fd56f1a79f}{\index{variators.\-c@{variators.\-c}!S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Variation@{S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Variation}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Variation@{S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Variation}!variators.c@{variators.\-c}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Variation}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Variation ( +\begin{DoxyParamCaption} +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Variator} $\ast$}]{variator} +\end{DoxyParamCaption} +)}}\label{variators_8c_aebdd4c3c545b0063d16929fd56f1a79f} +Gets the next variation using the variator. + +\begin{DoxyReturn}{Returns} +The arguments string representing the variation on success, and N\-U\-L\-L on failure. The pointer returned should not be freed. +\end{DoxyReturn} +\hypertarget{variators_8c_ac1d82ee387a19743e47a82c87d3fb7f4}{\index{variators.\-c@{variators.\-c}!S\-D\-L\-Visual\-Test\-\_\-\-Init\-Variator@{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Variator}} +\index{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Variator@{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Variator}!variators.c@{variators.\-c}} +\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Variator}]{\setlength{\rightskip}{0pt plus 5cm}int S\-D\-L\-Visual\-Test\-\_\-\-Init\-Variator ( +\begin{DoxyParamCaption} +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Variator} $\ast$}]{variator, } +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config} $\ast$}]{config, } +\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Variator\-Type}}]{type, } +\item[{Uint64}]{seed} +\end{DoxyParamCaption} +)}}\label{variators_8c_ac1d82ee387a19743e47a82c87d3fb7f4} +Initializes the variator object pointed to by {\ttfamily variator} of type {\ttfamily type} with information from the config object pointed to by {\ttfamily config}. + +\begin{DoxyReturn}{Returns} +1 on success, 0 on failure +\end{DoxyReturn} diff --git a/visualtest/docs/latex/windows__process_8c.tex b/visualtest/docs/latex/windows__process_8c.tex new file mode 100755 index 0000000000000..f042295485327 --- /dev/null +++ b/visualtest/docs/latex/windows__process_8c.tex @@ -0,0 +1,12 @@ +\hypertarget{windows__process_8c}{\section{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/windows/windows\-\_\-process.c File Reference} +\label{windows__process_8c}\index{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/windows/windows\-\_\-process.\-c@{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/windows/windows\-\_\-process.\-c}} +} +{\ttfamily \#include $<$S\-D\-L.\-h$>$}\\* +{\ttfamily \#include $<$S\-D\-L\-\_\-test.\-h$>$}\\* +{\ttfamily \#include $<$string.\-h$>$}\\* +{\ttfamily \#include $<$stdlib.\-h$>$}\\* +{\ttfamily \#include \char`\"{}S\-D\-L\-\_\-visualtest\-\_\-process.\-h\char`\"{}}\\* + + +\subsection{Detailed Description} +Source file for the process A\-P\-I on windows. \ No newline at end of file diff --git a/visualtest/docs/latex/windows__screenshot_8c.tex b/visualtest/docs/latex/windows__screenshot_8c.tex new file mode 100755 index 0000000000000..b84a39ed1bef0 --- /dev/null +++ b/visualtest/docs/latex/windows__screenshot_8c.tex @@ -0,0 +1,10 @@ +\hypertarget{windows__screenshot_8c}{\section{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/windows/windows\-\_\-screenshot.c File Reference} +\label{windows__screenshot_8c}\index{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/windows/windows\-\_\-screenshot.\-c@{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/windows/windows\-\_\-screenshot.\-c}} +} +{\ttfamily \#include \char`\"{}S\-D\-L\-\_\-visualtest\-\_\-process.\-h\char`\"{}}\\* +{\ttfamily \#include $<$S\-D\-L.\-h$>$}\\* +{\ttfamily \#include $<$S\-D\-L\-\_\-test.\-h$>$}\\* + + +\subsection{Detailed Description} +Source file for the screenshot A\-P\-I on windows. \ No newline at end of file diff --git a/visualtest/include/SDL_visualtest_action_configparser.h b/visualtest/include/SDL_visualtest_action_configparser.h new file mode 100755 index 0000000000000..856f81968132f --- /dev/null +++ b/visualtest/include/SDL_visualtest_action_configparser.h @@ -0,0 +1,147 @@ +/* See COPYING.txt for the full license governing this code. */ +/** + * \file SDL_visualtest_action_configparser.h + * + * Header file for the parser for action config files. + */ + +#ifndef _SDL_visualtest_action_configparser_h +#define _SDL_visualtest_action_configparser_h + +/** The maximum length of one line in the actions file */ +#define MAX_ACTION_LINE_LENGTH 300 + +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Type of the action. + */ +typedef enum +{ + /*! Launch an application with some given arguments */ + SDL_ACTION_LAUNCH = 0, + /*! Kill the SUT process */ + SDL_ACTION_KILL, + /*! Quit (Gracefully exit) the SUT process */ + SDL_ACTION_QUIT, + /*! Take a screenshot of the SUT window */ + SDL_ACTION_SCREENSHOT, + /*! Verify a previously taken screenshot */ + SDL_ACTION_VERIFY +} SDLVisualTest_ActionType; + +/** + * Struct that defines an action that will be performed on the SUT process at + * a specific time. + */ +typedef struct SDLVisualTest_Action +{ + /*! The type of action to be performed */ + SDLVisualTest_ActionType type; + /*! The time, in milliseconds from the launch of the SUT, when the action + will be performed */ + int time; + /*! Any additional information needed to perform the action. */ + union + { + /*! The path and arguments to the process to be launched */ + struct + { + char* path; + char* args; + } process; + } extra; +} SDLVisualTest_Action; + +/** + * Struct for a node in the action queue. + */ +typedef struct SDLVisualTest_ActionNode +{ + /*! The action in this node */ + SDLVisualTest_Action action; + /*! Pointer to the next element in the queue */ + struct SDLVisualTest_ActionNode* next; +} SDLVisualTest_ActionNode; + +/** + * Queue structure for actions loaded from the actions config file. + */ +typedef struct SDLVisualTest_ActionQueue +{ + /*! Pointer to the front of the queue */ + SDLVisualTest_ActionNode* front; + /*! Pointer to the rear of the queue */ + SDLVisualTest_ActionNode* rear; + /*! Number of nodes in the queue */ + int size; +} SDLVisualTest_ActionQueue; + +/** + * Add an action pointed to by \c action to the rear of the action queue pointed + * to by \c queue. + * + * \return 1 on success, 0 on failure. + */ +int SDLVisualTest_EnqueueAction(SDLVisualTest_ActionQueue* queue, + SDLVisualTest_Action action); + +/** + * Remove an action from the front of the action queue pointed to by \c queue. + * + * \return 1 on success, 0 on failure. + */ +int SDLVisualTest_DequeueAction(SDLVisualTest_ActionQueue* queue); + +/** + * Initialize the action queue pointed to by \c queue. + */ +void SDLVisualTest_InitActionQueue(SDLVisualTest_ActionQueue* queue); + +/** + * Get the action at the front of the action queue pointed to by \c queue. + * The returned action pointer may become invalid after subsequent dequeues. + * + * \return pointer to the action on success, NULL on failure. + */ +SDLVisualTest_Action* SDLVisualTest_GetQueueFront(SDLVisualTest_ActionQueue* queue); + +/** + * Check if the queue pointed to by \c queue is empty or not. + * + * \return 1 if the queue is empty, 0 otherwise. + */ +int SDLVisualTest_IsActionQueueEmpty(SDLVisualTest_ActionQueue* queue); + +/** + * Dequeues all the elements in the queque pointed to by \c queue. + */ +void SDLVisualTest_EmptyActionQueue(SDLVisualTest_ActionQueue* queue); + +/** + * Inserts an action \c action into the queue pointed to by \c queue such that + * the times of actions in the queue increase as we move from the front to the + * rear. + * + * \return 1 on success, 0 on failure. + */ +int SDLVisualTest_InsertIntoActionQueue(SDLVisualTest_ActionQueue* queue, + SDLVisualTest_Action action); + +/** + * Parses an action config file with path \c file and populates an action queue + * pointed to by \c queue with actions. + * + * \return 1 on success, 0 on failure. + */ +int SDLVisualTest_ParseActionConfig(char* file, SDLVisualTest_ActionQueue* queue); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif + +#endif /* _SDL_visualtest_action_configparser_h */ \ No newline at end of file diff --git a/visualtest/include/SDL_visualtest_exhaustive_variator.h b/visualtest/include/SDL_visualtest_exhaustive_variator.h new file mode 100755 index 0000000000000..f8f7bc33280cd --- /dev/null +++ b/visualtest/include/SDL_visualtest_exhaustive_variator.h @@ -0,0 +1,62 @@ +/* See COPYING.txt for the full license governing this code. */ +/** + * \file SDL_visualtest_exhaustive_variator.h + * + * Header for the exhaustive variator. + */ + +#include "SDL_visualtest_harness_argparser.h" +#include "SDL_visualtest_variator_common.h" + +#ifndef _SDL_visualtest_exhaustive_variator_h +#define _SDL_visualtest_exhaustive_variator_h + +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Struct for the variator that exhaustively iterates through all variations of + * command line arguments to the SUT. + */ +typedef struct SDLVisualTest_ExhaustiveVariator +{ + /*! The current variation. */ + SDLVisualTest_Variation variation; + /*! Configuration object for the SUT that the variator is running for. */ + SDLVisualTest_SUTConfig config; + /*! Buffer to store the arguments string built from the variation */ + char buffer[MAX_SUT_ARGS_LEN]; +} SDLVisualTest_ExhaustiveVariator; + +/** + * Initializes the variator. + * + * \return 1 on success, 0 on failure + */ +int SDLVisualTest_InitExhaustiveVariator(SDLVisualTest_ExhaustiveVariator* variator, + SDLVisualTest_SUTConfig* config); + +/** + * Gets the arguments string for the next variation using the variator and updates + * the variator's current variation object to the next variation. + * + * \return The arguments string representing the next variation on success, and + * NULL on failure or if we have iterated through all possible variations. + * In the latter case subsequent calls will start the variations again from + * the very beginning. The pointer returned should not be freed. + */ +char* SDLVisualTest_GetNextExhaustiveVariation(SDLVisualTest_ExhaustiveVariator* variator); + +/** + * Frees any resources associated with the variator. + */ +void SDLVisualTest_FreeExhaustiveVariator(SDLVisualTest_ExhaustiveVariator* variator); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif + +#endif /* _SDL_visualtest_exhaustive_variator_h */ \ No newline at end of file diff --git a/visualtest/include/SDL_visualtest_harness_argparser.h b/visualtest/include/SDL_visualtest_harness_argparser.h new file mode 100755 index 0000000000000..b5fac7eb38ac8 --- /dev/null +++ b/visualtest/include/SDL_visualtest_harness_argparser.h @@ -0,0 +1,73 @@ +/** + * \file SDL_visualtest_harness_argparser.h + * + * Provides functionality to parse command line arguments to the test harness. + */ + +#include +#include "SDL_visualtest_sut_configparser.h" +#include "SDL_visualtest_variator_common.h" +#include "SDL_visualtest_action_configparser.h" + +#ifndef _SDL_visualtest_harness_argparser_h +#define _SDL_visualtest_harness_argparser_h + +/** Maximum length of a path string */ +#define MAX_PATH_LEN 300 +/** Maximum length of a string of SUT arguments */ +#define MAX_SUT_ARGS_LEN 600 + +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Stores the state of the test harness. + */ +typedef struct SDLVisualTest_HarnessState +{ + /*! Path to the System Under Test (SUT) executable */ + char sutapp[MAX_PATH_LEN]; + /*! Command line arguments to be passed to the SUT */ + char sutargs[MAX_SUT_ARGS_LEN]; + /*! Time in milliseconds after which to kill the SUT */ + int timeout; + /*! Configuration object for the SUT */ + SDLVisualTest_SUTConfig sut_config; + /*! What type of variator to use to generate argument strings */ + SDLVisualTest_VariatorType variator_type; + /*! The number of variations to generate */ + int num_variations; + /*! If true, the test harness will just print the different variations + without launching the SUT for each one */ + SDL_bool no_launch; + /*! A queue with actions to be performed while the SUT is running */ + SDLVisualTest_ActionQueue action_queue; + /*! Output directory to save the screenshots */ + char output_dir[MAX_PATH_LEN]; + /*! Path to directory with the verification images */ + char verify_dir[MAX_PATH_LEN]; +} SDLVisualTest_HarnessState; + +/** + * Parse command line paramters to the test harness and populate a state object. + * + * \param argv The array of command line parameters. + * \param state Pointer to the state object to be populated. + * + * \return Non-zero on success, zero on failure. + */ +int SDLVisualTest_ParseHarnessArgs(char** argv, SDLVisualTest_HarnessState* state); + +/** + * Frees any resources associated with the state object pointed to by \c state. + */ +void SDLVisualTest_FreeHarnessState(SDLVisualTest_HarnessState* state); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif + +#endif /* _SDL_visualtest_harness_argparser_h */ diff --git a/visualtest/include/SDL_visualtest_mischelper.h b/visualtest/include/SDL_visualtest_mischelper.h new file mode 100755 index 0000000000000..34323896e9b2c --- /dev/null +++ b/visualtest/include/SDL_visualtest_mischelper.h @@ -0,0 +1,26 @@ +/** + * \file mischelper.c + * + * Header with miscellaneous helper functions. + */ + +#ifndef _SDL_visualtest_mischelper_h +#define _SDL_visualtest_mischelper_h + +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Stores a 32 digit hexadecimal string representing the MD5 hash of the + * string \c str in \c hash. + */ +void SDLVisualTest_HashString(char* str, char hash[33]); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif + +#endif /* _SDL_visualtest_mischelper_h */ \ No newline at end of file diff --git a/visualtest/include/SDL_visualtest_parsehelper.h b/visualtest/include/SDL_visualtest_parsehelper.h new file mode 100755 index 0000000000000..f0f654c891e57 --- /dev/null +++ b/visualtest/include/SDL_visualtest_parsehelper.h @@ -0,0 +1,44 @@ +/* See COPYING.txt for the full license governing this code. */ +/** + * \file SDL_visualtest_parsehelper.h + * + * Header with some helper functions for parsing strings. + */ + +#ifndef _SDL_visualtest_parsehelper_h +#define _SDL_visualtest_parsehelper_h + +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Takes an string of command line arguments and breaks them up into an array + * based on whitespace. + * + * \param args The string of arguments. + * + * \return NULL on failure, an array of strings on success. The last element + * of the array is NULL. The first element of the array is NULL and should + * be set to the path of the executable by the caller. + */ +char** SDLVisualTest_ParseArgsToArgv(char* args); + +/** + * Takes a string and breaks it into tokens by splitting on whitespace. + * + * \param str The string to be split. + * \param max_token_len Length of each element in the array to be returned. + * + * \return NULL on failure; an array of strings with the tokens on success. The + * last element of the array is NULL. + */ +char** SDLVisualTest_Tokenize(char* str, int max_token_len); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif + +#endif /* _SDL_visualtest_parsehelper_h */ diff --git a/visualtest/include/SDL_visualtest_process.h b/visualtest/include/SDL_visualtest_process.h new file mode 100755 index 0000000000000..ea65cbab3a8b9 --- /dev/null +++ b/visualtest/include/SDL_visualtest_process.h @@ -0,0 +1,111 @@ +/* See COPYING.txt for the full license governing this code. */ +/** + * \file SDL_visualtest_process.h + * + * Provides cross-platfrom process launching and termination functionality. + */ + +#include + +#if defined(__WIN32__) +#include +#include +#elif defined(__LINUX__) +#include +#else +#error "Unsupported platform." +#endif + +#ifndef _SDL_visualtest_process_h +#define _SDL_visualtest_process_h + +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Struct to store a platform specific handle to a process. + */ +typedef struct SDL_ProcessInfo +{ +//#if defined(_WIN32) || defined(__WIN32__) +#if defined(__WIN32__) + PROCESS_INFORMATION pi; +//#elif defined(__linux__) +#elif defined(__LINUX__) + int pid; +#endif +} SDL_ProcessInfo; + +/** + * This structure stores the exit status (value returned by main()) and + * whether the process exited sucessfully or not. + */ +typedef struct SDL_ProcessExitStatus +{ + int exit_success; /*!< Zero if the process exited successfully */ + int exit_status; /*!< The exit status of the process. 8-bit value. */ +} SDL_ProcessExitStatus; + +/** + * Launches a process with the given commandline arguments. + * + * \param file The path to the executable to be launched. + * \param args The command line arguments to be passed to the process. + * \param pinfo Pointer to an SDL_ProcessInfo object to be populated with + * platform specific information about the launched process. + * + * \return Non-zero on success, zero on failure. + */ +int SDL_LaunchProcess(char* file, char* args, SDL_ProcessInfo* pinfo); + +/** + * Checks if a process is running or not. + * + * \param pinfo Pointer to SDL_ProcessInfo object of the process that needs to be + * checked. + * + * \return 1 if the process is still running; zero if it is not and -1 if the + * status could not be retrieved. + */ +int SDL_IsProcessRunning(SDL_ProcessInfo* pinfo); + +/** + * Kills a currently running process. + * + * \param pinfo Pointer to a SDL_ProcessInfo object of the process to be terminated. + * \param ps Pointer to a SDL_ProcessExitStatus object which will be populated + * with the exit status. + * + * \return 1 on success, 0 on failure. + */ +int SDL_KillProcess(SDL_ProcessInfo* pinfo, SDL_ProcessExitStatus* ps); + +/** + * Cleanly exits the process represented by \c pinfo and stores the exit status + * in the exit status object pointed to by \c ps. + * + * \return 1 on success, 0 on failure. + */ +int SDL_QuitProcess(SDL_ProcessInfo* pinfo, SDL_ProcessExitStatus* ps); + +/** + * Gets the exit status of a process. If the exit status is -1, the process is + * still running. + * + * \param pinfo Pointer to a SDL_ProcessInfo object of the process to be checked. + * \param ps Pointer to a SDL_ProcessExitStatus object which will be populated + * with the exit status. + * + * \return 1 on success, 0 on failure. + */ +int SDL_GetProcessExitStatus(SDL_ProcessInfo* pinfo, SDL_ProcessExitStatus* ps); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif + +#endif /* _SDL_visualtest_process_h */ + diff --git a/visualtest/include/SDL_visualtest_random_variator.h b/visualtest/include/SDL_visualtest_random_variator.h new file mode 100755 index 0000000000000..7ec79f22bd8c6 --- /dev/null +++ b/visualtest/include/SDL_visualtest_random_variator.h @@ -0,0 +1,59 @@ +/* See COPYING.txt for the full license governing this code. */ +/** + * \file SDL_visualtest_random_variator.h + * + * Header for the random variator. + */ + +#include "SDL_visualtest_harness_argparser.h" +#include "SDL_visualtest_variator_common.h" + +#ifndef _SDL_visualtest_random_variator_h +#define _SDL_visualtest_random_variator_h + +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Struct for the variator that randomly generates variations of command line + * arguments to the SUT. + */ +typedef struct SDLVisualTest_RandomVariator +{ + /*! The current variation. */ + SDLVisualTest_Variation variation; + /*! Configuration object for the SUT that the variator is running for. */ + SDLVisualTest_SUTConfig config; + /*! Buffer to store the arguments string built from the variation */ + char buffer[MAX_SUT_ARGS_LEN]; +} SDLVisualTest_RandomVariator; + +/** + * Initializes the variator. + * + * \return 1 on success, 0 on failure + */ +int SDLVisualTest_InitRandomVariator(SDLVisualTest_RandomVariator* variator, + SDLVisualTest_SUTConfig* config, Uint64 seed); + +/** + * Generates a new random variation. + * + * \return The arguments string representing the random variation on success, and + * NULL on failure. The pointer returned should not be freed. + */ +char* SDLVisualTest_GetNextRandomVariation(SDLVisualTest_RandomVariator* variator); + +/** + * Frees any resources associated with the variator. + */ +void SDLVisualTest_FreeRandomVariator(SDLVisualTest_RandomVariator* variator); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif + +#endif /* _SDL_visualtest_random_variator_h */ \ No newline at end of file diff --git a/visualtest/include/SDL_visualtest_rwhelper.h b/visualtest/include/SDL_visualtest_rwhelper.h new file mode 100755 index 0000000000000..470039e9c65db --- /dev/null +++ b/visualtest/include/SDL_visualtest_rwhelper.h @@ -0,0 +1,85 @@ +/* See COPYING.txt for the full license governing this code. */ +/** + * \file rwhelper.c + * + * Header file with some helper functions for working with SDL_RWops. + */ + +#include + +#ifndef _SDL_visualtest_rwhelper_h +#define _SDL_visualtest_rwhelper_h + +/** Length of the buffer in SDLVisualTest_RWHelperBuffer */ +#define RWOPS_BUFFER_LEN 256 + +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Struct that is used as a buffer by the RW helper functions. Should be initialized by calling + * SDLVisualTest_RWHelperResetBuffer() before being used. + */ +typedef struct SDLVisualTest_RWHelperBuffer +{ + /*! Character buffer that data is read into */ + char buffer[RWOPS_BUFFER_LEN]; + /*! buffer[buffer_pos] is the next character to be read from the buffer */ + int buffer_pos; + /*! Number of character read into the buffer */ + int buffer_width; +} SDLVisualTest_RWHelperBuffer; + +/** + * Resets the buffer pointed to by \c buffer used by some of the helper functions. + * This function should be called when you're using one of the helper functions + * with a new SDL_RWops object. + */ +void SDLVisualTest_RWHelperResetBuffer(SDLVisualTest_RWHelperBuffer* buffer); + +/** + * Reads a single character using the SDL_RWops object pointed to by \c rw. + * This function reads data in blocks and stores them in the buffer pointed to by + * \c buffer, so other SDL_RWops functions should not be used in conjunction + * with this function. + * + * \return The character that was read. + */ +char SDLVisualTest_RWHelperReadChar(SDL_RWops* rw, + SDLVisualTest_RWHelperBuffer* buffer); + +/** + * Reads characters using the SDL_RWops object pointed to by \c rw into the + * character array pointed to by \c str (of size \c size) until either the + * array is full or a new line is encountered. If \c comment_char is encountered, + * all characters from that position till the end of the line are ignored. The new line + * is not included as part of the buffer. Lines with only whitespace and comments + * are ignored. This function reads data in blocks and stores them in the buffer + * pointed to by \c buffer, so other SDL_RWops functions should not be used in + * conjunction with this function. + * + * \return pointer to the string on success, NULL on failure or EOF. + */ +char* SDLVisualTest_RWHelperReadLine(SDL_RWops* rw, char* str, int size, + SDLVisualTest_RWHelperBuffer* buffer, + char comment_char); + +/** + * Counts the number of lines that are not all whitespace and comments using the + * SDL_RWops object pointed to by \c rw. \c comment_char indicates the character + * used for comments. Uses the buffer pointed to by \c buffer to read data in blocks. + * + * \return Number of lines on success, -1 on failure. + */ +int SDLVisualTest_RWHelperCountNonEmptyLines(SDL_RWops* rw, + SDLVisualTest_RWHelperBuffer* buffer, + char comment_char); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif + +#endif /* _SDL_visualtest_rwhelper_h */ \ No newline at end of file diff --git a/visualtest/include/SDL_visualtest_screenshot.h b/visualtest/include/SDL_visualtest_screenshot.h new file mode 100755 index 0000000000000..96e7d20491b7b --- /dev/null +++ b/visualtest/include/SDL_visualtest_screenshot.h @@ -0,0 +1,50 @@ +/* See COPYING.txt for the full license governing this code. */ +/** + * \file SDL_visualtest_screenshot.h + * + * Header for the screenshot API. + */ + +#include "SDL_visualtest_process.h" + +#ifndef _SDL_visualtest_screenshot_h +#define _SDL_visualtest_screenshot_h + +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Takes a screenshot of each window owned by the process \c pinfo and saves + * it in a file \c prefix-i.png where \c prefix is the full path to the file + * along with a prefix given to each screenshot. + * + * \return 1 on success, 0 on failure. + */ +int SDLVisualTest_ScreenshotProcess(SDL_ProcessInfo* pinfo, char* prefix); + +/** + * Takes a screenshot of the desktop and saves it into the file with path + * \c filename. + * + * \return 1 on success, 0 on failure. + */ +int SDLVisualTest_ScreenshotDesktop(char* filename); + +/** + * Compare a screenshot taken previously with SUT arguments \c args that is + * located in \c test_dir with a verification image that is located in + * \c verify_dir. + * + * \return -1 on failure, 0 if the images were not equal, 1 if the images are equal + * and 2 if the verification image is not present. + */ +int SDLVisualTest_VerifyScreenshots(char* args, char* test_dir, char* verify_dir); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif + +#endif /* _SDL_visualtest_screenshot_h */ \ No newline at end of file diff --git a/visualtest/include/SDL_visualtest_sut_configparser.h b/visualtest/include/SDL_visualtest_sut_configparser.h new file mode 100755 index 0000000000000..9296155650e5d --- /dev/null +++ b/visualtest/include/SDL_visualtest_sut_configparser.h @@ -0,0 +1,103 @@ +/* See COPYING.txt for the full license governing this code. */ +/** + * \file SDL_visualtest_sut_configparser.h + * + * Header for the parser for SUT config files. + */ + +#ifndef _SDL_visualtest_sut_configparser_h +#define _SDL_visualtest_sut_configparser_h + +/** Maximum length of the name of an SUT option */ +#define MAX_SUTOPTION_NAME_LEN 100 +/** Maximum length of the name of a category of an SUT option */ +#define MAX_SUTOPTION_CATEGORY_LEN 40 +/** Maximum length of one enum value of an SUT option */ +#define MAX_SUTOPTION_ENUMVAL_LEN 40 +/** Maximum length of a line in the paramters file */ +#define MAX_SUTOPTION_LINE_LENGTH 256 + +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Describes the different kinds of options to the SUT. + */ +typedef enum { + SDL_SUT_OPTIONTYPE_STRING = 0, + SDL_SUT_OPTIONTYPE_INT, + SDL_SUT_OPTIONTYPE_ENUM, + SDL_SUT_OPTIONTYPE_BOOL +} SDLVisualTest_SUTOptionType; + +/** + * Represents the range of values an integer option can take. + */ +typedef struct SDLVisualTest_SUTIntRange { + /*! Minimum value of the integer option */ + int min; + /*! Maximum value of the integer option */ + int max; +} SDLVisualTest_SUTIntRange; + +/** + * Struct that defines an option to be passed to the SUT. + */ +typedef struct SDLVisualTest_SUTOption { + /*! The name of the option. This is what you would pass in the command line + along with two leading hyphens. */ + char name[MAX_SUTOPTION_NAME_LEN]; + /*! An array of categories that the option belongs to. The last element is + NULL. */ + char** categories; + /*! Type of the option - integer, boolean, etc. */ + SDLVisualTest_SUTOptionType type; + /*! Whether the option is required or not */ + SDL_bool required; + /*! extra data that is required for certain types */ + union { + /*! This field is valid only for integer type options; it defines the + valid range for such an option */ + SDLVisualTest_SUTIntRange range; + /*! This field is valid only for enum type options; it holds the list of values + that the option can take. The last element is NULL */ + char** enum_values; + } data; +} SDLVisualTest_SUTOption; + +/** + * Struct to hold all the options to an SUT application. + */ +typedef struct SDLVisualTest_SUTConfig +{ + /*! Pointer to an array of options */ + SDLVisualTest_SUTOption* options; + /*! Number of options in \c options */ + int num_options; +} SDLVisualTest_SUTConfig; + +/** + * Parses a configuration file that describes the command line options an SUT + * application will take and populates a SUT config object. All lines in the + * config file must be smaller than + * + * \param file Path to the configuration file. + * \param config Pointer to an object that represents an SUT configuration. + * + * \return zero on failure, non-zero on success + */ +int SDLVisualTest_ParseSUTConfig(char* file, SDLVisualTest_SUTConfig* config); + +/** + * Free any resources associated with the config object pointed to by \c config. + */ +void SDLVisualTest_FreeSUTConfig(SDLVisualTest_SUTConfig* config); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif + +#endif /* _SDL_visualtest_sut_configparser_h */ diff --git a/visualtest/include/SDL_visualtest_variator_common.h b/visualtest/include/SDL_visualtest_variator_common.h new file mode 100755 index 0000000000000..451e81b747f31 --- /dev/null +++ b/visualtest/include/SDL_visualtest_variator_common.h @@ -0,0 +1,120 @@ +/* See COPYING.txt for the full license governing this code. */ +/** + * \file SDL_visualtest_variator_common.h + * + * Header for common functionality used by variators. + */ + +#include +#include "SDL_visualtest_sut_configparser.h" + +#ifndef _SDL_visualtest_variator_common_h +#define _SDL_visualtest_variator_common_h + +/** The number of variations one integer option would generate */ +#define SDL_SUT_INTEGER_OPTION_TEST_STEPS 3 + +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** enum for indicating the type of variator being used */ +typedef enum SDLVisualTest_VariatorType +{ + SDL_VARIATOR_NONE = 0, + SDL_VARIATOR_EXHAUSTIVE, + SDL_VARIATOR_RANDOM +} SDLVisualTest_VariatorType; + +/** + * One possible value for a command line option to the SUT. + */ +typedef union SDLVisualTest_SUTOptionValue +{ + /*! Value if the option is of type boolean */ + SDL_bool bool_value; + /*! Value if the option is of type integer. If on is true then the option + will be passed to the SUT, otherwise it will be ignored. */ + struct { + int value; + SDL_bool on; + } integer; + /*! Index of the string in the enum_values field of the corresponding + SDLVisualTest_SUTOption object. If on is true the option will passed + to the SUT, otherwise it will be ignored. */ + struct { + int index; + SDL_bool on; + } enumerated; + /*! Value if the option is of type string. If on is true the option will + be passed to the SUT, otherwise it will be ignored. */ + struct { + char* value; + SDL_bool on; + } string; +} SDLVisualTest_SUTOptionValue; + +/** + * Represents a valid combination of parameters that can be passed to the SUT. + * The ordering of the values here is the same as the ordering of the options in + * the SDLVisualTest_SUTConfig object for this variation. + */ +typedef struct SDLVisualTest_Variation +{ + /*! Pointer to array of option values */ + SDLVisualTest_SUTOptionValue* vars; + /*! Number of option values in \c vars */ + int num_vars; +} SDLVisualTest_Variation; + +/** + * "Increments" the value of the option by one and returns the carry. We wrap + * around to the initial value on overflow which makes the carry one. + * For example: "incrementing" an SDL_FALSE option makes it SDL_TRUE with no + * carry, and "incrementing" an SDL_TRUE option makes it SDL_FALSE with carry + * one. For integers, a random value in the valid range for the option is used. + * + * \param var Value of the option + * \param opt Object with metadata about the option + * + * \return 1 if there is a carry for enum and bool type options, 0 otherwise. + * 1 is always returned for integer and string type options. -1 is + * returned on error. + */ +int SDLVisualTest_NextValue(SDLVisualTest_SUTOptionValue* var, + SDLVisualTest_SUTOption* opt); + +/** + * Converts a variation object into a string of command line arguments. + * + * \param variation Variation object to be converted. + * \param config Config object for the SUT. + * \param buffer Pointer to the buffer the arguments string will be copied into. + * \param size Size of the buffer. + * + * \return 1 on success, 0 on failure + */ +int SDLVisualTest_MakeStrFromVariation(SDLVisualTest_Variation* variation, + SDLVisualTest_SUTConfig* config, + char* buffer, int size); + +/** + * Initializes the variation using the following rules: + * - Boolean options are initialized to SDL_FALSE. + * - Integer options are initialized to the minimum valid value they can hold. + * - Enum options are initialized to the first element in the list of values they + * can take. + * - String options are initialized to the name of the option. + * + * \return 1 on success, 0 on failure. + */ +int SDLVisualTest_InitVariation(SDLVisualTest_Variation* variation, + SDLVisualTest_SUTConfig* config); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif + +#endif /* _SDL_visualtest_variator_common_h */ \ No newline at end of file diff --git a/visualtest/include/SDL_visualtest_variators.h b/visualtest/include/SDL_visualtest_variators.h new file mode 100755 index 0000000000000..7aec36bc40cdf --- /dev/null +++ b/visualtest/include/SDL_visualtest_variators.h @@ -0,0 +1,64 @@ +/* See COPYING.txt for the full license governing this code. */ +/** + * \file SDL_visualtest_variators.h + * + * Header for all the variators that vary input parameters to a SUT application. + */ + +#include "SDL_visualtest_exhaustive_variator.h" +#include "SDL_visualtest_random_variator.h" + +#ifndef _SDL_visualtest_variators_h +#define _SDL_visualtest_variators_h + +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Struct that acts like a wrapper around the different types of variators + * available. + */ +typedef struct SDLVisualTest_Variator +{ + /*! Type of the variator */ + SDLVisualTest_VariatorType type; + /*! union object that stores the variator */ + union + { + SDLVisualTest_ExhaustiveVariator exhaustive; + SDLVisualTest_RandomVariator random; + } data; +} SDLVisualTest_Variator; + +/** + * Initializes the variator object pointed to by \c variator of type \c type + * with information from the config object pointed to by \c config. + * + * \return 1 on success, 0 on failure + */ +int SDLVisualTest_InitVariator(SDLVisualTest_Variator* variator, + SDLVisualTest_SUTConfig* config, + SDLVisualTest_VariatorType type, + Uint64 seed); + +/** + * Gets the next variation using the variator. + * + * \return The arguments string representing the variation on success, and + * NULL on failure. The pointer returned should not be freed. + */ +char* SDLVisualTest_GetNextVariation(SDLVisualTest_Variator* variator); + +/** + * Frees any resources associated with the variator. + */ +void SDLVisualTest_FreeVariator(SDLVisualTest_Variator* variator); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif + +#endif /* _SDL_visualtest_variators_h */ \ No newline at end of file diff --git a/visualtest/install-sh b/visualtest/install-sh new file mode 100755 index 0000000000000..205f21c6b8945 --- /dev/null +++ b/visualtest/install-sh @@ -0,0 +1 @@ +/usr/share/automake-1.11/install-sh \ No newline at end of file diff --git a/visualtest/launch_harness.cmd b/visualtest/launch_harness.cmd new file mode 100755 index 0000000000000..93462a9d28d7a --- /dev/null +++ b/visualtest/launch_harness.cmd @@ -0,0 +1,2 @@ +start /wait testharness.exe --config testsprite2_crashtest.config > testrun.log 2>&1 +if %ERRORLEVEL% NEQ 0 echo TEST RUN FAILED (see testrun.log) \ No newline at end of file diff --git a/visualtest/launch_harness.sh b/visualtest/launch_harness.sh new file mode 100755 index 0000000000000..a2d1471c837b6 --- /dev/null +++ b/visualtest/launch_harness.sh @@ -0,0 +1,6 @@ +#!/bin/bash +./testharness.exe --config testsprite2_crashtest.config > testrun.log 2>&1 +if [ "$?" != "0" ]; then + echo TEST RUN FAILED (see testrun.log) + # report error code to CI +fi \ No newline at end of file diff --git a/visualtest/missing b/visualtest/missing new file mode 100755 index 0000000000000..20bc5b0ed9f0c --- /dev/null +++ b/visualtest/missing @@ -0,0 +1 @@ +/usr/share/automake-1.11/missing \ No newline at end of file diff --git a/visualtest/src/action_configparser.c b/visualtest/src/action_configparser.c new file mode 100755 index 0000000000000..bab7fc13e83db --- /dev/null +++ b/visualtest/src/action_configparser.c @@ -0,0 +1,396 @@ +/* See COPYING.txt for the full license governing this code. */ +/** + * \file action_configparser.c + * + * Source file for the parser for action config files. + */ + +#include +#include +#include +#include "SDL_visualtest_action_configparser.h" +#include "SDL_visualtest_rwhelper.h" +#include "SDL_visualtest_parsehelper.h" + +static void +FreeAction(SDLVisualTest_Action* action) +{ + if(!action) + return; + switch(action->type) + { + case SDL_ACTION_LAUNCH: + { + char* path; + char* args; + + path = action->extra.process.path; + args = action->extra.process.args; + + if(path) + SDL_free(path); + if(args) + SDL_free(args); + + action->extra.process.path = NULL; + action->extra.process.args = NULL; + } + break; + } +} + +int +SDLVisualTest_EnqueueAction(SDLVisualTest_ActionQueue* queue, + SDLVisualTest_Action action) +{ + SDLVisualTest_ActionNode* node; + if(!queue) + { + SDLTest_LogError("queue argument cannot be NULL"); + return 0; + } + + node = (SDLVisualTest_ActionNode*)SDL_malloc( + sizeof(SDLVisualTest_ActionNode)); + if(!node) + { + SDLTest_LogError("malloc() failed"); + return 0; + } + node->action = action; + node->next = NULL; + queue->size++; + if(!queue->rear) + queue->rear = queue->front = node; + else + { + queue->rear->next = node; + queue->rear = node; + } + return 1; +} + +int +SDLVisualTest_DequeueAction(SDLVisualTest_ActionQueue* queue) +{ + SDLVisualTest_ActionNode* node; + if(!queue) + { + SDLTest_LogError("queue argument cannot be NULL"); + return 0; + } + if(SDLVisualTest_IsActionQueueEmpty(queue)) + { + SDLTest_LogError("cannot dequeue from empty queue"); + return 0; + } + if(queue->front == queue->rear) + { + FreeAction(&queue->front->action); + SDL_free(queue->front); + queue->front = queue->rear = NULL; + } + else + { + node = queue->front; + queue->front = queue->front->next; + FreeAction(&node->action); + SDL_free(node); + } + queue->size--; + return 1; +} + +void +SDLVisualTest_InitActionQueue(SDLVisualTest_ActionQueue* queue) +{ + if(!queue) + { + SDLTest_LogError("queue argument cannot be NULL"); + return; + } + queue->front = NULL; + queue->rear = NULL; + queue->size = 0; +} + +SDLVisualTest_Action* +SDLVisualTest_GetQueueFront(SDLVisualTest_ActionQueue* queue) +{ + if(!queue) + { + SDLTest_LogError("queue argument cannot be NULL"); + return NULL; + } + if(!queue->front) + { + SDLTest_LogError("cannot get front of empty queue"); + return NULL; + } + + return &queue->front->action; +} + +int +SDLVisualTest_IsActionQueueEmpty(SDLVisualTest_ActionQueue* queue) +{ + if(!queue) + { + SDLTest_LogError("queue argument cannot be NULL"); + return 1; + } + + if(queue->size > 0) + return 0; + return 1; +} + +void +SDLVisualTest_EmptyActionQueue(SDLVisualTest_ActionQueue* queue) +{ + if(queue) + { + while(!SDLVisualTest_IsActionQueueEmpty(queue)) + SDLVisualTest_DequeueAction(queue); + } +} + +/* Since the size of the queue is not likely to be larger than 100 elements + we can get away with using insertion sort. */ +static void +SortQueue(SDLVisualTest_ActionQueue* queue) +{ + SDLVisualTest_ActionNode* head; + SDLVisualTest_ActionNode* tail; + + if(!queue || SDLVisualTest_IsActionQueueEmpty(queue)) + return; + + head = queue->front; + for(tail = head; tail && tail->next;) + { + SDLVisualTest_ActionNode* pos; + SDLVisualTest_ActionNode* element = tail->next; + + if(element->action.time < head->action.time) + { + tail->next = tail->next->next; + element->next = head; + head = element; + } + else if(element->action.time >= tail->action.time) + { + tail = tail->next; + } + else + { + for(pos = head; + (pos->next->action.time < element->action.time); + pos = pos->next); + tail->next = tail->next->next; + element->next = pos->next; + pos->next = element; + } + } + + queue->front = head; + queue->rear = tail; +} + +int +SDLVisualTest_InsertIntoActionQueue(SDLVisualTest_ActionQueue* queue, + SDLVisualTest_Action action) +{ + SDLVisualTest_ActionNode* n; + SDLVisualTest_ActionNode* prev; + SDLVisualTest_ActionNode* newnode; + if(!queue) + { + SDLTest_LogError("queue argument cannot be NULL"); + return 0; + } + + if(SDLVisualTest_IsActionQueueEmpty(queue)) + { + if(!SDLVisualTest_EnqueueAction(queue, action)) + { + SDLTest_LogError("SDLVisualTest_EnqueueAction() failed"); + return 0; + } + return 1; + } + + newnode = (SDLVisualTest_ActionNode*)malloc(sizeof(SDLVisualTest_ActionNode)); + if(!newnode) + { + SDLTest_LogError("malloc() failed"); + return 0; + } + newnode->action = action; + + queue->size++; + for(n = queue->front, prev = NULL; n; n = n->next) + { + if(action.time < n->action.time) + { + if(prev) + { + prev->next = newnode; + newnode->next = n; + } + else + { + newnode->next = queue->front; + queue->front = newnode; + } + return 1; + } + prev = n; + } + + queue->rear->next = newnode; + newnode->next = NULL; + queue->rear = newnode; + + return 1; +} + +int +SDLVisualTest_ParseActionConfig(char* file, SDLVisualTest_ActionQueue* queue) +{ + char line[MAX_ACTION_LINE_LENGTH]; + SDLVisualTest_RWHelperBuffer buffer; + char* token_ptr; + int linenum; + SDL_RWops* rw; + + if(!file) + { + SDLTest_LogError("file argument cannot be NULL"); + return 0; + } + if(!queue) + { + SDLTest_LogError("queue argument cannot be NULL"); + return 0; + } + + rw = SDL_RWFromFile(file, "r"); + if(!rw) + { + SDLTest_LogError("SDL_RWFromFile() failed"); + return 0; + } + + SDLVisualTest_RWHelperResetBuffer(&buffer); + SDLVisualTest_InitActionQueue(queue); + linenum = 0; + while(SDLVisualTest_RWHelperReadLine(rw, line, MAX_ACTION_LINE_LENGTH, + &buffer, '#')) + { + SDLVisualTest_Action action; + int hr, min, sec; + + /* parse time */ + token_ptr = strtok(line, " "); + if(!token_ptr || + (SDL_sscanf(token_ptr, "%d:%d:%d", &hr, &min, &sec) != 3)) + { + SDLTest_LogError("Could not parse time token at line: %d", + linenum); + SDLVisualTest_EmptyActionQueue(queue); + SDL_RWclose(rw); + return 0; + } + action.time = (((hr * 60 + min) * 60) + sec) * 1000; + + /* parse type */ + token_ptr = strtok(NULL, " "); + if(SDL_strcasecmp(token_ptr, "launch") == 0) + action.type = SDL_ACTION_LAUNCH; + else if(SDL_strcasecmp(token_ptr, "kill") == 0) + action.type = SDL_ACTION_KILL; + else if(SDL_strcasecmp(token_ptr, "quit") == 0) + action.type = SDL_ACTION_QUIT; + else if(SDL_strcasecmp(token_ptr, "screenshot") == 0) + action.type = SDL_ACTION_SCREENSHOT; + else if(SDL_strcasecmp(token_ptr, "verify") == 0) + action.type = SDL_ACTION_VERIFY; + else + { + SDLTest_LogError("Could not parse type token at line: %d", + linenum); + SDLVisualTest_EmptyActionQueue(queue); + SDL_RWclose(rw); + return 0; + } + + /* parse the extra field */ + if(action.type == SDL_ACTION_LAUNCH) + { + int len; + char* args; + char* path; + token_ptr = strtok(NULL, " "); + len = token_ptr ? SDL_strlen(token_ptr) : 0; + if(len <= 0) + { + SDLTest_LogError("Please specify the process to launch at line: %d", + linenum); + SDLVisualTest_EmptyActionQueue(queue); + SDL_RWclose(rw); + return 0; + } + path = (char*)SDL_malloc(sizeof(char) * (len + 1)); + if(!path) + { + SDLTest_LogError("malloc() failed"); + SDLVisualTest_EmptyActionQueue(queue); + SDL_RWclose(rw); + return 0; + } + SDL_strlcpy(path, token_ptr, len + 1); + + token_ptr = strtok(NULL, ""); + len = token_ptr ? SDL_strlen(token_ptr) : 0; + if(len > 0) + { + args = (char*)SDL_malloc(sizeof(char) * (len + 1)); + if(!args) + { + SDLTest_LogError("malloc() failed"); + SDL_free(path); + SDLVisualTest_EmptyActionQueue(queue); + SDL_RWclose(rw); + return 0; + } + SDL_strlcpy(args, token_ptr, len + 1); + } + else + args = NULL; + + action.extra.process.path = path; + action.extra.process.args = args; + } + + /* add the action to the queue */ + if(!SDLVisualTest_EnqueueAction(queue, action)) + { + SDLTest_LogError("SDLVisualTest_EnqueueAction() failed"); + if(action.type == SDL_ACTION_LAUNCH) + { + SDL_free(action.extra.process.path); + if(action.extra.process.args) + SDL_free(action.extra.process.args); + } + SDLVisualTest_EmptyActionQueue(queue); + SDL_RWclose(rw); + return 0; + } + } + /* sort the queue of actions */ + SortQueue(queue); + + SDL_RWclose(rw); + return 1; +} \ No newline at end of file diff --git a/visualtest/src/harness_argparser.c b/visualtest/src/harness_argparser.c new file mode 100755 index 0000000000000..93cf614a338d4 --- /dev/null +++ b/visualtest/src/harness_argparser.c @@ -0,0 +1,358 @@ +/* See COPYING.txt for the full license governing this code. */ +/** + * \file harness_argparser.c + * + * Source file for functions to parse arguments to the test harness. + */ + +#include +#include +#include + +#include "SDL_visualtest_harness_argparser.h" +#include "SDL_visualtest_rwhelper.h" + +/** Maximum length of one line in the config file */ +#define MAX_CONFIG_LINE_LEN 400 +/** Default value for the timeout after which the SUT is forcefully killed */ +#define DEFAULT_SUT_TIMEOUT (60 * 1000) + +/* String compare s1 and s2 ignoring leading hyphens */ +static int +StrCaseCmpIgnoreHyphen(char* s1, char* s2) +{ + /* treat NULL pointer as empty strings */ + if(!s1) + s1 = ""; + if(!s2) + s2 = ""; + + while(*s1 == '-') + s1++; + while(*s2 == '-') + s2++; + + return SDL_strcasecmp(s1, s2); +} + +/* parser an argument, updates the state object and returns the number of + arguments processed; returns -1 on failure */ +static int +ParseArg(char** argv, int index, SDLVisualTest_HarnessState* state) +{ + if(!argv || !argv[index] || !state) + return 0; + + if(StrCaseCmpIgnoreHyphen("sutapp", argv[index]) == 0) + { + index++; + if(!argv[index]) + { + SDLTest_LogError("Arguments parsing error: Invalid argument for sutapp."); + return -1; + } + SDL_strlcpy(state->sutapp, argv[index], MAX_PATH_LEN); + SDLTest_Log("SUT Application: %s", state->sutapp); + return 2; + } + else if(StrCaseCmpIgnoreHyphen("output-dir", argv[index]) == 0) + { + index++; + if(!argv[index]) + { + SDLTest_LogError("Arguments parsing error: Invalid argument for output-dir."); + return -1; + } + SDL_strlcpy(state->output_dir, argv[index], MAX_PATH_LEN); + SDLTest_Log("Screenshot Output Directory: %s", state->output_dir); + return 2; + } + else if(StrCaseCmpIgnoreHyphen("verify-dir", argv[index]) == 0) + { + index++; + if(!argv[index]) + { + SDLTest_LogError("Arguments parsing error: Invalid argument for verify-dir."); + return -1; + } + SDL_strlcpy(state->verify_dir, argv[index], MAX_PATH_LEN); + SDLTest_Log("Screenshot Verification Directory: %s", state->verify_dir); + return 2; + } + else if(StrCaseCmpIgnoreHyphen("sutargs", argv[index]) == 0) + { + index++; + if(!argv[index]) + { + SDLTest_LogError("Arguments parsing error: Invalid argument for sutargs."); + return -1; + } + SDL_strlcpy(state->sutargs, argv[index], MAX_SUT_ARGS_LEN); + SDLTest_Log("SUT Arguments: %s", state->sutargs); + return 2; + } + else if(StrCaseCmpIgnoreHyphen("timeout", argv[index]) == 0) + { + int hr, min, sec; + index++; + if(!argv[index] || SDL_sscanf(argv[index], "%d:%d:%d", &hr, &min, &sec) != 3) + { + SDLTest_LogError("Arguments parsing error: Invalid argument for timeout."); + return -1; + } + state->timeout = (((hr * 60) + min) * 60 + sec) * 1000; + SDLTest_Log("Maximum Timeout for each SUT run: %d milliseconds", + state->timeout); + return 2; + } + else if(StrCaseCmpIgnoreHyphen("parameter-config", argv[index]) == 0) + { + index++; + if(!argv[index]) + { + SDLTest_LogError("Arguments parsing error: Invalid argument for parameter-config."); + return -1; + } + SDLTest_Log("SUT Parameters file: %s", argv[index]); + SDLVisualTest_FreeSUTConfig(&state->sut_config); + if(!SDLVisualTest_ParseSUTConfig(argv[index], &state->sut_config)) + { + SDLTest_LogError("Failed to parse SUT parameters file"); + return -1; + } + return 2; + } + else if(StrCaseCmpIgnoreHyphen("variator", argv[index]) == 0) + { + index++; + if(!argv[index]) + { + SDLTest_LogError("Arguments parsing error: Invalid argument for variator."); + return -1; + } + SDLTest_Log("Variator: %s", argv[index]); + if(SDL_strcasecmp("exhaustive", argv[index]) == 0) + state->variator_type = SDL_VARIATOR_EXHAUSTIVE; + else if(SDL_strcasecmp("random", argv[index]) == 0) + state->variator_type = SDL_VARIATOR_RANDOM; + else + { + SDLTest_LogError("Arguments parsing error: Invalid variator name."); + return -1; + } + return 2; + } + else if(StrCaseCmpIgnoreHyphen("num-variations", argv[index]) == 0) + { + index++; + if(!argv[index]) + { + SDLTest_LogError("Arguments parsing error: Invalid argument for num-variations."); + return -1; + } + state->num_variations = SDL_atoi(argv[index]); + SDLTest_Log("Number of variations to run: %d", state->num_variations); + if(state->num_variations <= 0) + { + SDLTest_LogError("Arguments parsing error: num-variations must be positive."); + return -1; + } + return 2; + } + else if(StrCaseCmpIgnoreHyphen("no-launch", argv[index]) == 0) + { + state->no_launch = SDL_TRUE; + SDLTest_Log("SUT will not be launched."); + return 1; + } + else if(StrCaseCmpIgnoreHyphen("action-config", argv[index]) == 0) + { + index++; + if(!argv[index]) + { + SDLTest_LogError("Arguments parsing error: invalid argument for action-config"); + return -1; + } + SDLTest_Log("Action Config file: %s", argv[index]); + SDLVisualTest_EmptyActionQueue(&state->action_queue); + if(!SDLVisualTest_ParseActionConfig(argv[index], &state->action_queue)) + { + SDLTest_LogError("SDLVisualTest_ParseActionConfig() failed"); + return -1; + } + return 2; + } + else if(StrCaseCmpIgnoreHyphen("config", argv[index]) == 0) + { + index++; + if(!argv[index]) + { + SDLTest_LogError("Arguments parsing error: invalid argument for config"); + return -1; + } + + /* do nothing, this option has already been handled */ + return 2; + } + return 0; +} + +/* TODO: Trailing/leading spaces and spaces between equals sign not supported. */ +static int +ParseConfig(char* file, SDLVisualTest_HarnessState* state) +{ + SDL_RWops* rw; + SDLVisualTest_RWHelperBuffer buffer; + char line[MAX_CONFIG_LINE_LEN]; + + rw = SDL_RWFromFile(file, "r"); + if(!rw) + { + SDLTest_LogError("SDL_RWFromFile() failed"); + return 0; + } + + SDLVisualTest_RWHelperResetBuffer(&buffer); + while(SDLVisualTest_RWHelperReadLine(rw, line, MAX_CONFIG_LINE_LEN, + &buffer, '#')) + { + char** argv; + int i, num_params; + + /* count number of parameters and replace the trailing newline with 0 */ + num_params = 1; + for(i = 0; line[i]; i++) + { + if(line[i] == '=') + { + num_params = 2; + break; + } + } + + /* populate argv */ + argv = (char**)SDL_malloc((num_params + 1) * sizeof(char*)); + if(!argv) + { + SDLTest_LogError("malloc() failed."); + SDL_RWclose(rw); + return 0; + } + + argv[num_params] = NULL; + for(i = 0; i < num_params; i++) + { + argv[i] = strtok(i == 0 ? line : NULL, "="); + } + + if(ParseArg(argv, 0, state) == -1) + { + SDLTest_LogError("ParseArg() failed"); + SDL_free(argv); + SDL_RWclose(rw); + return 0; + } + SDL_free(argv); + } + SDL_RWclose(rw); + + if(!state->sutapp[0]) + return 0; + return 1; +} + +int +SDLVisualTest_ParseHarnessArgs(char** argv, SDLVisualTest_HarnessState* state) +{ + int i; + + SDLTest_Log("Parsing commandline arguments.."); + + if(!argv) + { + SDLTest_LogError("argv is NULL"); + return 0; + } + if(!state) + { + SDLTest_LogError("state is NULL"); + return 0; + } + + /* initialize the state object */ + state->sutargs[0] = '\0'; + state->sutapp[0] = '\0'; + state->output_dir[0] = '\0'; + state->verify_dir[0] = '\0'; + state->timeout = DEFAULT_SUT_TIMEOUT; + SDL_memset(&state->sut_config, 0, sizeof(SDLVisualTest_SUTConfig)); + SDL_memset(&state->action_queue, 0, sizeof(SDLVisualTest_ActionQueue)); + state->variator_type = SDL_VARIATOR_RANDOM; + state->num_variations = -1; + state->no_launch = SDL_FALSE; + + /* parse config file if passed */ + for(i = 0; argv[i]; i++) + { + if(StrCaseCmpIgnoreHyphen("config", argv[i]) == 0) + { + if(!argv[i + 1]) + { + SDLTest_Log("Arguments parsing error: invalid argument for config."); + return 0; + } + if(!ParseConfig(argv[i + 1], state)) + { + SDLTest_LogError("ParseConfig() failed"); + return 0; + } + } + } + + /* parse the arguments */ + for(i = 0; argv[i];) + { + int consumed = ParseArg(argv, i, state); + if(consumed == -1 || consumed == 0) + { + SDLTest_LogError("ParseArg() failed"); + return 0; + } + i += consumed; + } + + if(state->variator_type == SDL_VARIATOR_RANDOM && state->num_variations == -1) + state->num_variations = 1; + + /* check to see if required options have been passed */ + if(!state->sutapp[0]) + { + SDLTest_LogError("sutapp must be passed."); + return 0; + } + if(!state->sutargs[0] && !state->sut_config.options) + { + SDLTest_LogError("Either sutargs or parameter-config must be passed."); + return 0; + } + if(!state->output_dir[0]) + { + SDL_strlcpy(state->output_dir, "./output", MAX_PATH_LEN); + } + if(!state->verify_dir[0]) + { + SDL_strlcpy(state->verify_dir, "./verify", MAX_PATH_LEN); + } + + return 1; +} + +void +SDLVisualTest_FreeHarnessState(SDLVisualTest_HarnessState* state) +{ + if(state) + { + SDLVisualTest_EmptyActionQueue(&state->action_queue); + SDLVisualTest_FreeSUTConfig(&state->sut_config); + } +} \ No newline at end of file diff --git a/visualtest/src/linux/linux_process.c b/visualtest/src/linux/linux_process.c new file mode 100755 index 0000000000000..27765c5621401 --- /dev/null +++ b/visualtest/src/linux/linux_process.c @@ -0,0 +1,199 @@ +/* See COPYING.txt for the full license governing this code. */ +/** + * \file linux_process.c + * + * Source file for the process API on linux. + */ + + +#include +#include +#include +#include +#include +#include + +#include "SDL_visualtest_process.h" +#include "SDL_visualtest_harness_argparser.h" +#include "SDL_visualtest_parsehelper.h" + +#if defined(__LINUX__) + +static void +LogLastError(char* str) +{ + char* error = (char*)strerror(errno); + if(!str || !error) + return; + SDLTest_LogError("%s: %s", str, error); +} + +int +SDL_LaunchProcess(char* file, char* args, SDL_ProcessInfo* pinfo) +{ + pid_t pid; + char** argv; + + if(!file) + { + SDLTest_LogError("file argument cannot be NULL"); + return 0; + } + if(!pinfo) + { + SDLTest_LogError("pinfo cannot be NULL"); + return 0; + } + pid = fork(); + if(pid == -1) + { + LogLastError("fork() failed"); + return 0; + } + else if(pid == 0) + { + /* parse the arguments string */ + argv = SDLVisualTest_ParseArgsToArgv(args); + argv[0] = file; + execv(file, argv); + LogLastError("execv() failed"); + return 0; + } + else + { + pinfo->pid = pid; + return 1; + } + + /* never executed */ + return 0; +} + +int +SDL_GetProcessExitStatus(SDL_ProcessInfo* pinfo, SDL_ProcessExitStatus* ps) +{ + int success, status; + if(!pinfo) + { + SDLTest_LogError("pinfo argument cannot be NULL"); + return 0; + } + if(!ps) + { + SDLTest_LogError("ps argument cannot be NULL"); + return 0; + } + success = waitpid(pinfo->pid, &status, WNOHANG); + if(success == -1) + { + LogLastError("waitpid() failed"); + return 0; + } + else if(success == 0) + { + ps->exit_status = -1; + ps->exit_success = 1; + } + else + { + ps->exit_success = WIFEXITED(status); + ps->exit_status = WEXITSTATUS(status); + } + return 1; +} + +int +SDL_IsProcessRunning(SDL_ProcessInfo* pinfo) +{ + int success; + + if(!pinfo) + { + SDLTest_LogError("pinfo cannot be NULL"); + return -1; + } + + success = kill(pinfo->pid, 0); + if(success == -1) + { + if(errno == ESRCH) /* process is not running */ + return 0; + else + { + LogLastError("kill() failed"); + return -1; + } + } + return 1; +} + +int +SDL_QuitProcess(SDL_ProcessInfo* pinfo, SDL_ProcessExitStatus* ps) +{ + int success, status; + + if(!pinfo) + { + SDLTest_LogError("pinfo argument cannot be NULL"); + return 0; + } + if(!ps) + { + SDLTest_LogError("ps argument cannot be NULL"); + return 0; + } + + success = kill(pinfo->pid, SIGQUIT); + if(success == -1) + { + LogLastError("kill() failed"); + return 0; + } + + success = waitpid(pinfo->pid, &status, 0); + if(success == -1) + { + LogLastError("waitpid() failed"); + return 0; + } + + ps->exit_success = WIFEXITED(status); + ps->exit_status = WEXITSTATUS(status); + return 1; +} + +int +SDL_KillProcess(SDL_ProcessInfo* pinfo, SDL_ProcessExitStatus* ps) +{ + int success, status; + + if(!pinfo) + { + SDLTest_LogError("pinfo argument cannot be NULL"); + return 0; + } + if(!ps) + { + SDLTest_LogError("ps argument cannot be NULL"); + return 0; + } + + success = kill(pinfo->pid, SIGKILL); + if(success == -1) + { + LogLastError("kill() failed"); + return 0; + } + success = waitpid(pinfo->pid, &status, 0); + if(success == -1) + { + LogLastError("waitpid() failed"); + return 0; + } + + ps->exit_success = WIFEXITED(status); + ps->exit_status = WEXITSTATUS(status); + return 1; +} + +#endif diff --git a/visualtest/src/mischelper.c b/visualtest/src/mischelper.c new file mode 100755 index 0000000000000..a61f0c89a761a --- /dev/null +++ b/visualtest/src/mischelper.c @@ -0,0 +1,28 @@ +/** + * \file mischelper.c + * + * Source file with miscellaneous helper functions. + */ + +#include + +void +SDLVisualTest_HashString(char* str, char hash[33]) +{ + SDLTest_Md5Context md5c; + int i; + + if(!str) + { + SDLTest_LogError("str argument cannot be NULL"); + return; + } + + SDLTest_Md5Init(&md5c); + SDLTest_Md5Update(&md5c, (unsigned char*)str, SDL_strlen(str)); + SDLTest_Md5Final(&md5c); + + /* convert the md5 hash to an array of hexadecimal digits */ + for(i = 0; i < 16; i++) + SDL_snprintf(hash + 2 * i, 33 - 2 * i, "%02x", (int)md5c.digest[i]); +} \ No newline at end of file diff --git a/visualtest/src/parsehelper.c b/visualtest/src/parsehelper.c new file mode 100755 index 0000000000000..7d601179ba32a --- /dev/null +++ b/visualtest/src/parsehelper.c @@ -0,0 +1,231 @@ +/* See COPYING.txt for the full license governing this code. */ +/** + * \file parsehelper.c + * + * Source file with some helper functions for parsing strings. + */ + +#include +#include "SDL_visualtest_harness_argparser.h" + +/* this function uses a DFA to count the number of tokens in an agruments string. + state 0 is taken to be the start and end state. State 1 handles a double quoted + argument and state 2 handles unquoted arguments. */ +static int +CountTokens(char* args) +{ + int index, num_tokens; + int state; /* current state of the DFA */ + + if(!args) + return -1; + + index = 0; + state = 0; + num_tokens = 0; + while(args[index]) + { + char ch = args[index]; + switch(state) + { + case 0: + if(ch == '\"') + { + state = 1; + num_tokens++; + } + else if(!SDL_isspace(ch)) + { + state = 2; + num_tokens++; + } + break; + + case 1: + if(ch == '\"') + { + state = 0; + } + break; + + case 2: + if(SDL_isspace(ch)) + { + state = 0; + } + break; + } + index++; + } + return num_tokens; +} + +/* - size of tokens is num_tokens + 1 +- uses the same DFA used in CountTokens() to split args into an array of strings */ +static int +TokenizeHelper(char* str, char** tokens, int num_tokens, int max_token_len) +{ + int index, state, done, st_index, token_index; + + if(!str) + { + SDLTest_LogError("str argument cannot be NULL"); + return 0; + } + if(!tokens) + { + SDLTest_LogError("tokens argument cannot be NULL"); + return 0; + } + if(num_tokens <= 0) + { + SDLTest_LogError("num_tokens argument must be positive"); + return 0; + } + if(max_token_len <= 0) + { + SDLTest_LogError("max_token_len argument must be positive"); + return 0; + } + + /* allocate memory for the tokens */ + tokens[num_tokens] = NULL; + for(index = 0; index < num_tokens; index++) + { + tokens[index] = (char*)SDL_malloc(max_token_len); + if(!tokens[index]) + { + int i; + SDLTest_LogError("malloc() failed."); + for(i = 0; i < index; i++) + SDL_free(tokens[i]); + return 0; + } + tokens[index][0] = '\0'; + } + + /* copy the tokens into the array */ + st_index = 0; + index = 0; + token_index = 0; + state = 0; + done = 0; + while(!done) + { + char ch = str[index]; + switch(state) + { + case 0: + if(ch == '\"') + { + state = 1; + st_index = index + 1; + } + else if(!ch) + done = 1; + else if(ch && !SDL_isspace(ch)) + { + state = 2; + st_index = index; + } + break; + + case 1: + if(ch == '\"') + { + int i; + state = 0; + for(i = st_index; i < index; i++) + { + tokens[token_index][i - st_index] = str[i]; + } + tokens[token_index][i - st_index] = '\0'; + token_index++; + } + else if(!ch) + { + SDLTest_LogError("Parsing Error!"); + done = 1; + } + break; + + case 2: + if(!ch) + done = 1; + if(SDL_isspace(ch) || !ch) + { + int i; + state = 0; + for(i = st_index; i < index; i++) + { + tokens[token_index][i - st_index] = str[i]; + } + tokens[token_index][i - st_index] = '\0'; + token_index++; + } + break; + } + index++; + } + return 1; +} + +char** +SDLVisualTest_Tokenize(char* str, int max_token_len) +{ + int num_tokens; + char** tokens; + + if(!str) + { + SDLTest_LogError("str argument cannot be NULL"); + return NULL; + } + if(max_token_len <= 0) + { + SDLTest_LogError("max_token_len argument must be positive"); + return NULL; + } + + num_tokens = CountTokens(str); + if(num_tokens == 0) + return NULL; + + tokens = (char**)SDL_malloc(sizeof(char*) * (num_tokens + 1)); + if(!TokenizeHelper(str, tokens, num_tokens, max_token_len)) + { + SDLTest_LogError("TokenizeHelper() failed"); + SDL_free(tokens); + return NULL; + } + return tokens; +} + +char** +SDLVisualTest_ParseArgsToArgv(char* args) +{ + char** argv; + int num_tokens; + + num_tokens = CountTokens(args); + if(num_tokens == 0) + return NULL; + + /* allocate space for arguments */ + argv = (char**)SDL_malloc((num_tokens + 2) * sizeof(char*)); + if(!argv) + { + SDLTest_LogError("malloc() failed."); + return NULL; + } + + /* tokenize */ + if(!TokenizeHelper(args, argv + 1, num_tokens, MAX_SUT_ARGS_LEN)) + { + SDLTest_LogError("TokenizeHelper() failed"); + SDL_free(argv); + return NULL; + } + argv[0] = NULL; + return argv; +} diff --git a/visualtest/src/rwhelper.c b/visualtest/src/rwhelper.c new file mode 100755 index 0000000000000..a50254006c980 --- /dev/null +++ b/visualtest/src/rwhelper.c @@ -0,0 +1,131 @@ +/* See COPYING.txt for the full license governing this code. */ +/** + * \file rwhelper.c + * + * Source file with some helper functions for working with SDL_RWops. + */ + +#include +#include "SDL_visualtest_sut_configparser.h" +#include "SDL_visualtest_rwhelper.h" + +void +SDLVisualTest_RWHelperResetBuffer(SDLVisualTest_RWHelperBuffer* buffer) +{ + if(!buffer) + { + SDLTest_LogError("buffer argument cannot be NULL"); + return; + } + buffer->buffer_pos = 0; + buffer->buffer_width = 0; +} + +char +SDLVisualTest_RWHelperReadChar(SDL_RWops* rw, SDLVisualTest_RWHelperBuffer* buffer) +{ + if(!rw || !buffer) + return 0; + /* if the buffer has been consumed, we fill it up again */ + if(buffer->buffer_pos == buffer->buffer_width) + { + buffer->buffer_width = SDL_RWread(rw, buffer->buffer, 1, RWOPS_BUFFER_LEN); + buffer->buffer_pos = 0; + if(buffer->buffer_width == 0) + return 0; + } + buffer->buffer_pos++; + return buffer->buffer[buffer->buffer_pos - 1]; +} + +/* does not include new lines in the buffer and adds a trailing null character */ +char* +SDLVisualTest_RWHelperReadLine(SDL_RWops* rw, char* str, int size, + SDLVisualTest_RWHelperBuffer* buffer, + char comment_char) +{ + char ch; + int current_pos, done; + if(!rw) + { + SDLTest_LogError("rw argument cannot be NULL"); + return NULL; + } + if(!str) + { + SDLTest_LogError("str argument cannot be NULL"); + return NULL; + } + if(!buffer) + { + SDLTest_LogError("buffer argument cannot be NULL"); + return NULL; + } + if(size <= 0) + { + SDLTest_LogError("size argument should be positive"); + return NULL; + } + + done = 0; + while(!done) + { + /* ignore leading whitespace */ + for(ch = SDLVisualTest_RWHelperReadChar(rw, buffer); ch && SDL_isspace(ch); + ch = SDLVisualTest_RWHelperReadChar(rw, buffer)); + + for(current_pos = 0; + ch && ch != '\n' && ch != '\r' && ch != comment_char; + current_pos++) + { + str[current_pos] = ch; + if(current_pos >= size - 2) + { + current_pos++; + break; + } + ch = SDLVisualTest_RWHelperReadChar(rw, buffer); + } + + done = 1; + if(ch == comment_char) /* discard all characters until the next line */ + { + do + { + ch = SDLVisualTest_RWHelperReadChar(rw, buffer); + }while(ch && ch != '\n' && ch != '\r'); + + if(current_pos == 0) + done = 0; + } + } + if(current_pos == 0) + return NULL; + + str[current_pos] = '\0'; + return str; +} + +/* Lines with all whitespace are ignored */ +int +SDLVisualTest_RWHelperCountNonEmptyLines(SDL_RWops* rw, + SDLVisualTest_RWHelperBuffer* buffer, + char comment_char) +{ + int num_lines = 0; + char str[MAX_SUTOPTION_LINE_LENGTH]; + if(!rw) + { + SDLTest_LogError("rw argument cannot be NULL"); + return -1; + } + if(!buffer) + { + SDLTest_LogError("buffer argument cannot be NULL"); + return -1; + } + while(SDLVisualTest_RWHelperReadLine(rw, str, MAX_SUTOPTION_LINE_LENGTH, + buffer, comment_char)) + num_lines++; + return num_lines; +} \ No newline at end of file diff --git a/visualtest/src/screenshot.c b/visualtest/src/screenshot.c new file mode 100755 index 0000000000000..7d19c7f88aa33 --- /dev/null +++ b/visualtest/src/screenshot.c @@ -0,0 +1,136 @@ +/* See COPYING.txt for the full license governing this code. */ +/** + * \file screenshot.c + * + * Source file for the screenshot API. + */ + +#include "SDL_visualtest_mischelper.h" +#include + +int +SDLVisualTest_VerifyScreenshots(char* args, char* test_dir, char* verify_dir) +{ + int i, verify_len, return_code, test_len; + char hash[33]; + char* verify_path; /* path to the bmp file used for verification */ + char* test_path; /* path to the bmp file to be verified */ + SDL_RWops* rw; + SDL_Surface* verifybmp; + + return_code = 1; + + if(!args) + { + SDLTest_LogError("args argument cannot be NULL"); + return_code = -1; + goto verifyscreenshots_cleanup_generic; + } + if(!test_dir) + { + SDLTest_LogError("test_dir argument cannot be NULL"); + return_code = -1; + goto verifyscreenshots_cleanup_generic; + } + if(!verify_dir) + { + SDLTest_LogError("verify_dir argument cannot be NULL"); + return_code = -1; + goto verifyscreenshots_cleanup_generic; + } + + /* generate the MD5 hash */ + SDLVisualTest_HashString(args, hash); + + /* find the verification image */ + /* path_len + hash_len + some number of extra characters */ + verify_len = SDL_strlen(verify_dir) + 32 + 10; + verify_path = (char*)SDL_malloc(verify_len * sizeof(char)); + if(!verify_path) + { + SDLTest_LogError("malloc() failed"); + return_code = -1; + goto verifyscreenshots_cleanup_generic; + } + SDL_snprintf(verify_path, verify_len - 1, + "%s/%s.bmp", verify_dir, hash); + rw = SDL_RWFromFile(verify_path, "rb"); + if(!rw) + { + SDLTest_Log("Verification image does not exist." + " Please manually verify that the SUT is working correctly."); + return_code = 2; + goto verifyscreenshots_cleanup_verifypath; + } + + /* load the verification image */ + verifybmp = SDL_LoadBMP_RW(rw, 1); + if(!verifybmp) + { + SDLTest_LogError("SDL_LoadBMP_RW() failed"); + return_code = -1; + goto verifyscreenshots_cleanup_verifypath; + } + + /* load the test images and compare with the verification image */ + /* path_len + hash_len + some number of extra characters */ + test_len = SDL_strlen(test_dir) + 32 + 10; + test_path = (char*)SDL_malloc(test_len * sizeof(char)); + if(!test_path) + { + SDLTest_LogError("malloc() failed"); + return_code = -1; + goto verifyscreenshots_cleanup_verifybmp; + } + + for(i = 1; ; i++) + { + SDL_RWops* testrw; + SDL_Surface* testbmp; + + if(i == 1) + SDL_snprintf(test_path, test_len - 1, "%s/%s.bmp", test_dir, hash); + else + SDL_snprintf(test_path, test_len - 1, "%s/%s_%d.bmp", test_dir, hash, i); + testrw = SDL_RWFromFile(test_path, "rb"); + + /* we keep going until we've iterated through the screenshots each + SUT window */ + if(!testrw) + break; + + /* load the test screenshot */ + testbmp = SDL_LoadBMP_RW(testrw, 1); + if(!testbmp) + { + SDLTest_LogError("SDL_LoadBMP_RW() failed"); + return_code = -1; + goto verifyscreenshots_cleanup_verifybmp; + } + + /* compare with the verification image */ + if(SDLTest_CompareSurfaces(testbmp, verifybmp, 0) != 0) + { + return_code = 0; + SDL_FreeSurface(testbmp); + goto verifyscreenshots_cleanup_verifybmp; + } + + SDL_FreeSurface(testbmp); + } + + if(i == 1) + { + SDLTest_LogError("No verification images found"); + return_code = -1; + } + +verifyscreenshots_cleanup_verifybmp: + SDL_FreeSurface(verifybmp); + +verifyscreenshots_cleanup_verifypath: + SDL_free(verify_path); + +verifyscreenshots_cleanup_generic: + return return_code; +} diff --git a/visualtest/src/sut_configparser.c b/visualtest/src/sut_configparser.c new file mode 100755 index 0000000000000..cf18b6208f8c2 --- /dev/null +++ b/visualtest/src/sut_configparser.c @@ -0,0 +1,232 @@ +/* See COPYING.txt for the full license governing this code. */ +/** + * \file sut_configparser.c + * + * Source file for the parser for SUT config files. + */ + +#include +#include +#include +#include +#include "SDL_visualtest_sut_configparser.h" +#include "SDL_visualtest_parsehelper.h" +#include "SDL_visualtest_rwhelper.h" + +int +SDLVisualTest_ParseSUTConfig(char* file, SDLVisualTest_SUTConfig* config) +{ + char line[MAX_SUTOPTION_LINE_LENGTH]; + SDLVisualTest_RWHelperBuffer buffer; + char* token_ptr; + char* token_end; + int num_lines, i, token_len; + SDL_RWops* rw; + + if(!file) + { + SDLTest_LogError("file argument cannot be NULL"); + return 0; + } + if(!config) + { + SDLTest_LogError("config argument cannot be NULL"); + return 0; + } + + /* count the number of lines */ + rw = SDL_RWFromFile(file, "r"); + if(!rw) + { + SDLTest_LogError("SDL_RWFromFile() failed"); + return 0; + } + SDLVisualTest_RWHelperResetBuffer(&buffer); + num_lines = SDLVisualTest_RWHelperCountNonEmptyLines(rw, &buffer, '#'); + if(num_lines == -1) + return 0; + else if(num_lines == 0) + { + config->options = NULL; + config->num_options = 0; + SDL_RWclose(rw); + return 1; + } + + /* allocate memory */ + SDL_RWseek(rw, 0, RW_SEEK_SET); + SDLVisualTest_RWHelperResetBuffer(&buffer); + config->num_options = num_lines; + config->options = (SDLVisualTest_SUTOption*)SDL_malloc(num_lines * + sizeof(SDLVisualTest_SUTOption)); + if(!config->options) + { + SDLTest_LogError("malloc() failed"); + SDL_RWclose(rw); + return 0; + } + + /* actually parse the options */ + for(i = 0; i < num_lines; i++) + { + if(!SDLVisualTest_RWHelperReadLine(rw, line, MAX_SUTOPTION_LINE_LENGTH, + &buffer, '#')) + { + SDLTest_LogError("SDLVisualTest_RWHelperReadLine() failed"); + SDL_free(config->options); + SDL_RWclose(rw); + return 0; + } + + /* parse name */ + token_ptr = strtok(line, ", "); + if(!token_ptr) + { + SDLTest_LogError("Could not parse line %d", i + 1); + SDL_free(config->options); + SDL_RWclose(rw); + return 0; + } + token_len = SDL_strlen(token_ptr) + 1; + SDL_strlcpy(config->options[i].name, token_ptr, token_len); + + /* parse type */ + token_ptr = strtok(NULL, ", "); + if(!token_ptr) + { + SDLTest_LogError("Could not parse line %d", i + 1); + SDL_free(config->options); + SDL_RWclose(rw); + return 0; + } + if(SDL_strcmp(token_ptr, "string") == 0) + config->options[i].type = SDL_SUT_OPTIONTYPE_STRING; + else if(SDL_strcmp(token_ptr, "integer") == 0) + config->options[i].type = SDL_SUT_OPTIONTYPE_INT; + else if(SDL_strcmp(token_ptr, "enum") == 0) + config->options[i].type = SDL_SUT_OPTIONTYPE_ENUM; + else if(SDL_strcmp(token_ptr, "boolean") == 0) + config->options[i].type = SDL_SUT_OPTIONTYPE_BOOL; + else + { + SDLTest_LogError("Could not parse type token at line %d", i + 1); + SDL_free(config->options); + SDL_RWclose(rw); + return 0; + } + + /* parse values */ + token_ptr = strtok(NULL, "]"); + if(!token_ptr) + { + SDLTest_LogError("Could not parse line %d", i + 1); + SDL_free(config->options); + SDL_RWclose(rw); + return 0; + } + token_ptr = SDL_strchr(token_ptr, '['); + if(!token_ptr) + { + SDLTest_LogError("Could not parse enum token at line %d", i + 1); + SDL_free(config->options); + SDL_RWclose(rw); + return 0; + } + token_ptr++; + if(config->options[i].type == SDL_SUT_OPTIONTYPE_INT) + { + if(SDL_sscanf(token_ptr, "%d %d", &config->options[i].data.range.min, + &config->options[i].data.range.max) != 2) + { + config->options[i].data.range.min = INT_MIN; + config->options[i].data.range.max = INT_MAX; + } + } + else if(config->options[i].type == SDL_SUT_OPTIONTYPE_ENUM) + { + config->options[i].data.enum_values = SDLVisualTest_Tokenize(token_ptr, + MAX_SUTOPTION_ENUMVAL_LEN); + if(!config->options[i].data.enum_values) + { + SDLTest_LogError("Could not parse enum token at line %d", i + 1); + SDL_free(config->options); + SDL_RWclose(rw); + return 0; + } + } + + /* parse required */ + token_ptr = strtok(NULL, ", "); + if(!token_ptr) + { + SDLTest_LogError("Could not parse line %d", i + 1); + SDL_free(config->options); + SDL_RWclose(rw); + return 0; + } + + if(SDL_strcmp(token_ptr, "true") == 0) + config->options[i].required = SDL_TRUE; + else if(SDL_strcmp(token_ptr, "false") == 0) + config->options[i].required = SDL_FALSE; + else + { + SDLTest_LogError("Could not parse required token at line %d", i + 1); + SDL_free(config->options); + SDL_RWclose(rw); + return 0; + } + + /* parse categories */ + token_ptr = strtok(NULL, ","); + if(!token_ptr) + { + SDLTest_LogError("Could not parse line %d", i + 1); + SDL_free(config->options); + SDL_RWclose(rw); + return 0; + } + token_ptr = SDL_strchr(token_ptr, '['); + if(!token_ptr) + { + SDLTest_LogError("Could not parse enum token at line %d", i + 1); + SDL_free(config->options); + SDL_RWclose(rw); + return 0; + } + token_ptr++; + token_end = SDL_strchr(token_ptr, ']'); + *token_end = '\0'; + if(!token_end) + { + SDLTest_LogError("Could not parse enum token at line %d", i + 1); + SDL_free(config->options); + SDL_RWclose(rw); + return 0; + } + config->options[i].categories = SDLVisualTest_Tokenize(token_ptr, + MAX_SUTOPTION_CATEGORY_LEN); + } + SDL_RWclose(rw); + return 1; +} + +void +SDLVisualTest_FreeSUTConfig(SDLVisualTest_SUTConfig* config) +{ + if(config && config->options) + { + SDLVisualTest_SUTOption* option; + for(option = config->options; + option != config->options + config->num_options; option++) + { + if(option->categories) + SDL_free(option->categories); + if(option->type == SDL_SUT_OPTIONTYPE_ENUM && option->data.enum_values) + SDL_free(option->data.enum_values); + } + SDL_free(config->options); + config->options = NULL; + config->num_options = 0; + } +} diff --git a/visualtest/src/testharness.c b/visualtest/src/testharness.c new file mode 100755 index 0000000000000..25e41a611fd11 --- /dev/null +++ b/visualtest/src/testharness.c @@ -0,0 +1,533 @@ +/* See COPYING.txt for the full license governing this code. */ +/** + * \file testharness.c + * + * Source file for the test harness. + */ + +#include +#include +#include +#include +#include "SDL_visualtest_harness_argparser.h" +#include "SDL_visualtest_process.h" +#include "SDL_visualtest_variators.h" +#include "SDL_visualtest_screenshot.h" +#include "SDL_visualtest_mischelper.h" + +#if defined(__WIN32__) && !defined(__CYGWIN__) +#include +#elif defined(__WIN32__) && defined(__CYGWIN__) +#include +#elif defined(__LINUX__) +#include +#include +#include +#else +#error "Unsupported platform" +#endif + +/** Code for the user event triggered when a new action is to be executed */ +#define ACTION_TIMER_EVENT 0 +/** Code for the user event triggered when the maximum timeout is reached */ +#define KILL_TIMER_EVENT 1 +/** FPS value used for delays in the action loop */ +#define ACTION_LOOP_FPS 10 + +/** Value returned by RunSUTAndTest() when the test has passed */ +#define TEST_PASSED 1 +/** Value returned by RunSUTAndTest() when the test has failed */ +#define TEST_FAILED 0 +/** Value returned by RunSUTAndTest() on a fatal error */ +#define TEST_ERROR -1 + +static SDL_ProcessInfo pinfo; +static SDL_ProcessExitStatus sut_exitstatus; +static SDLVisualTest_HarnessState state; +static SDLVisualTest_Variator variator; +static SDLVisualTest_ActionNode* current; /* the current action being performed */ +static SDL_TimerID action_timer, kill_timer; + +/* returns a char* to be passed as the format argument of a printf-style function. */ +static char* +usage() +{ + return "Usage: \n%s --sutapp xyz" + " [--sutargs abc | --parameter-config xyz.parameters" + " [--variator exhaustive|random]" + " [--num-variations N] [--no-launch]] [--timeout hh:mm:ss]" + " [--action-config xyz.actions]" + " [--output-dir /path/to/output]" + " [--verify-dir /path/to/verify]" + " or --config app.config"; +} + +/* register Ctrl+C handlers */ +#if defined(__LINUX__) || defined(__CYGWIN__) +static void +CtrlCHandlerCallback(int signum) +{ + SDL_Event event; + SDLTest_Log("Ctrl+C received"); + event.type = SDL_QUIT; + SDL_PushEvent(&event); +} +#endif + +static Uint32 +ActionTimerCallback(Uint32 interval, void* param) +{ + SDL_Event event; + SDL_UserEvent userevent; + Uint32 next_action_time; + + /* push an event to handle the action */ + userevent.type = SDL_USEREVENT; + userevent.code = ACTION_TIMER_EVENT; + userevent.data1 = ¤t->action; + userevent.data2 = NULL; + + event.type = SDL_USEREVENT; + event.user = userevent; + SDL_PushEvent(&event); + + /* calculate the new interval and return it */ + if(current->next) + next_action_time = current->next->action.time - current->action.time; + else + { + next_action_time = 0; + action_timer = 0; + } + + current = current->next; + return next_action_time; +} + +static Uint32 +KillTimerCallback(Uint32 interval, void* param) +{ + SDL_Event event; + SDL_UserEvent userevent; + + userevent.type = SDL_USEREVENT; + userevent.code = KILL_TIMER_EVENT; + userevent.data1 = NULL; + userevent.data2 = NULL; + + event.type = SDL_USEREVENT; + event.user = userevent; + SDL_PushEvent(&event); + + kill_timer = 0; + return 0; +} + +static int +ProcessAction(SDLVisualTest_Action* action, int* sut_running, char* args) +{ + if(!action || !sut_running) + return TEST_ERROR; + + switch(action->type) + { + case SDL_ACTION_KILL: + SDLTest_Log("Action: Kill SUT"); + if(SDL_IsProcessRunning(&pinfo) == 1 && + !SDL_KillProcess(&pinfo, &sut_exitstatus)) + { + SDLTest_LogError("SDL_KillProcess() failed"); + return TEST_ERROR; + } + *sut_running = 0; + break; + + case SDL_ACTION_QUIT: + SDLTest_Log("Action: Quit SUT"); + if(SDL_IsProcessRunning(&pinfo) == 1 && + !SDL_QuitProcess(&pinfo, &sut_exitstatus)) + { + SDLTest_LogError("SDL_QuitProcess() failed"); + return TEST_FAILED; + } + *sut_running = 0; + break; + + case SDL_ACTION_LAUNCH: + { + char* path; + char* args; + SDL_ProcessInfo action_process; + SDL_ProcessExitStatus ps; + + path = action->extra.process.path; + args = action->extra.process.args; + if(args) + { + SDLTest_Log("Action: Launch process: %s with arguments: %s", + path, args); + } + else + SDLTest_Log("Action: Launch process: %s", path); + if(!SDL_LaunchProcess(path, args, &action_process)) + { + SDLTest_LogError("SDL_LaunchProcess() failed"); + return TEST_ERROR; + } + + /* small delay so that the process can do its job */ + SDL_Delay(1000); + + if(SDL_IsProcessRunning(&action_process) > 0) + { + SDLTest_LogError("Process %s took too long too complete." + " Force killing...", action->extra); + if(!SDL_KillProcess(&action_process, &ps)) + { + SDLTest_LogError("SDL_KillProcess() failed"); + return TEST_ERROR; + } + } + } + break; + + case SDL_ACTION_SCREENSHOT: + { + char path[MAX_PATH_LEN], hash[33]; + + SDLTest_Log("Action: Take screenshot"); + /* can't take a screenshot if the SUT isn't running */ + if(SDL_IsProcessRunning(&pinfo) != 1) + { + SDLTest_LogError("SUT has quit."); + *sut_running = 0; + return TEST_FAILED; + } + + /* file name for the screenshot image */ + SDLVisualTest_HashString(args, hash); + SDL_snprintf(path, MAX_PATH_LEN, "%s/%s", state.output_dir, hash); + if(!SDLVisualTest_ScreenshotProcess(&pinfo, path)) + { + SDLTest_LogError("SDLVisualTest_ScreenshotProcess() failed"); + return TEST_ERROR; + } + } + break; + + case SDL_ACTION_VERIFY: + { + int ret; + + SDLTest_Log("Action: Verify screenshot"); + ret = SDLVisualTest_VerifyScreenshots(args, state.output_dir, + state.verify_dir); + + if(ret == -1) + { + SDLTest_LogError("SDLVisualTest_VerifyScreenshots() failed"); + return TEST_ERROR; + } + else if(ret == 0) + { + SDLTest_Log("Verification failed: Images were not equal."); + return TEST_FAILED; + } + else if(ret == 1) + SDLTest_Log("Verification successful."); + else + { + SDLTest_Log("Verfication skipped."); + return TEST_FAILED; + } + } + break; + + default: + SDLTest_LogError("Invalid action type"); + return TEST_ERROR; + break; + } + + return TEST_PASSED; +} + +static int +RunSUTAndTest(char* sutargs, int variation_num) +{ + int success, sut_running, return_code; + char hash[33]; + SDL_Event event; + + return_code = TEST_PASSED; + + if(!sutargs) + { + SDLTest_LogError("sutargs argument cannot be NULL"); + return_code = TEST_ERROR; + goto runsutandtest_cleanup_generic; + } + + SDLVisualTest_HashString(sutargs, hash); + SDLTest_Log("Hash: %s", hash); + + success = SDL_LaunchProcess(state.sutapp, sutargs, &pinfo); + if(!success) + { + SDLTest_Log("Could not launch SUT."); + return_code = TEST_ERROR; + goto runsutandtest_cleanup_generic; + } + SDLTest_Log("SUT launch successful."); + SDLTest_Log("Process will be killed in %d milliseconds", state.timeout); + sut_running = 1; + + /* launch the timers */ + SDLTest_Log("Performing actions.."); + current = state.action_queue.front; + action_timer = 0; + kill_timer = 0; + if(current) + { + action_timer = SDL_AddTimer(current->action.time, ActionTimerCallback, NULL); + if(!action_timer) + { + SDLTest_LogError("SDL_AddTimer() failed"); + return_code = TEST_ERROR; + goto runsutandtest_cleanup_timer; + } + } + kill_timer = SDL_AddTimer(state.timeout, KillTimerCallback, NULL); + if(!kill_timer) + { + SDLTest_LogError("SDL_AddTimer() failed"); + return_code = TEST_ERROR; + goto runsutandtest_cleanup_timer; + } + + /* the timer stops running if the actions queue is empty, and the + SUT stops running if it crashes or if we encounter a KILL/QUIT action */ + while(sut_running) + { + /* process the actions by using an event queue */ + while(SDL_PollEvent(&event)) + { + if(event.type == SDL_USEREVENT) + { + if(event.user.code == ACTION_TIMER_EVENT) + { + SDLVisualTest_Action* action; + + action = (SDLVisualTest_Action*)event.user.data1; + + switch(ProcessAction(action, &sut_running, sutargs)) + { + case TEST_PASSED: + break; + + case TEST_FAILED: + return_code = TEST_FAILED; + goto runsutandtest_cleanup_timer; + break; + + default: + SDLTest_LogError("ProcessAction() failed"); + return_code = TEST_ERROR; + goto runsutandtest_cleanup_timer; + } + } + else if(event.user.code == KILL_TIMER_EVENT) + { + SDLTest_LogError("Maximum timeout reached. Force killing.."); + return_code = TEST_FAILED; + goto runsutandtest_cleanup_timer; + } + } + else if(event.type == SDL_QUIT) + { + SDLTest_LogError("Received QUIT event. Testharness is quitting.."); + return_code = TEST_ERROR; + goto runsutandtest_cleanup_timer; + } + } + SDL_Delay(1000/ACTION_LOOP_FPS); + } + + SDLTest_Log("SUT exit code was: %d", sut_exitstatus.exit_status); + if(sut_exitstatus.exit_status == 0) + { + return_code = TEST_PASSED; + goto runsutandtest_cleanup_timer; + } + else + { + return_code = TEST_FAILED; + goto runsutandtest_cleanup_timer; + } + + return_code = TEST_ERROR; + goto runsutandtest_cleanup_generic; + +runsutandtest_cleanup_timer: + if(action_timer && !SDL_RemoveTimer(action_timer)) + { + SDLTest_Log("SDL_RemoveTimer() failed"); + return_code = TEST_ERROR; + } + + if(kill_timer && !SDL_RemoveTimer(kill_timer)) + { + SDLTest_Log("SDL_RemoveTimer() failed"); + return_code = TEST_ERROR; + } +/* runsutandtest_cleanup_process: */ + if(SDL_IsProcessRunning(&pinfo) && !SDL_KillProcess(&pinfo, &sut_exitstatus)) + { + SDLTest_Log("SDL_KillProcess() failed"); + return_code = TEST_ERROR; + } +runsutandtest_cleanup_generic: + return return_code; +} + +/** Entry point for testharness */ +int +main(int argc, char* argv[]) +{ + int i, passed, return_code, failed; + + /* freeing resources, linux style! */ + return_code = 0; + + if(argc < 2) + { + SDLTest_Log(usage(), argv[0]); + goto cleanup_generic; + } + +#if defined(__LINUX__) || defined(__CYGWIN__) + signal(SIGINT, CtrlCHandlerCallback); +#endif + + /* parse arguments */ + if(!SDLVisualTest_ParseHarnessArgs(argv + 1, &state)) + { + SDLTest_Log(usage(), argv[0]); + return_code = 1; + goto cleanup_generic; + } + SDLTest_Log("Parsed harness arguments successfully."); + + /* initialize SDL */ + if(SDL_Init(SDL_INIT_TIMER) == -1) + { + SDLTest_LogError("SDL_Init() failed."); + SDLVisualTest_FreeHarnessState(&state); + return_code = 1; + goto cleanup_harness_state; + } + + /* create an output directory if none exists */ +#if defined(__LINUX__) || defined(__CYGWIN__) + mkdir(state.output_dir, 0777); +#elif defined(__WIN32__) + _mkdir(state.output_dir); +#else +#error "Unsupported platform" +#endif + + /* test with sutargs */ + if(SDL_strlen(state.sutargs)) + { + SDLTest_Log("Running: %s %s", state.sutapp, state.sutargs); + if(!state.no_launch) + { + switch(RunSUTAndTest(state.sutargs, 0)) + { + case TEST_PASSED: + SDLTest_Log("Status: PASSED"); + break; + + case TEST_FAILED: + SDLTest_Log("Status: FAILED"); + break; + + case TEST_ERROR: + SDLTest_LogError("Some error occurred while testing."); + return_code = 1; + goto cleanup_sdl; + break; + } + } + } + + if(state.sut_config.num_options > 0) + { + char* variator_name = state.variator_type == SDL_VARIATOR_RANDOM ? + "RANDOM" : "EXHAUSTIVE"; + if(state.num_variations > 0) + SDLTest_Log("Testing SUT with variator: %s for %d variations", + variator_name, state.num_variations); + else + SDLTest_Log("Testing SUT with variator: %s and ALL variations", + variator_name); + /* initialize the variator */ + if(!SDLVisualTest_InitVariator(&variator, &state.sut_config, + state.variator_type, 0)) + { + SDLTest_LogError("Could not initialize variator"); + return_code = 1; + goto cleanup_sdl; + } + + /* iterate through all the variations */ + passed = 0; + failed = 0; + for(i = 0; state.num_variations > 0 ? (i < state.num_variations) : 1; i++) + { + char* args = SDLVisualTest_GetNextVariation(&variator); + if(!args) + break; + SDLTest_Log("\nVariation number: %d\nArguments: %s", i + 1, args); + + if(!state.no_launch) + { + switch(RunSUTAndTest(args, i + 1)) + { + case TEST_PASSED: + SDLTest_Log("Status: PASSED"); + passed++; + break; + + case TEST_FAILED: + SDLTest_Log("Status: FAILED"); + failed++; + break; + + case TEST_ERROR: + SDLTest_LogError("Some error occurred while testing."); + goto cleanup_variator; + break; + } + } + } + if(!state.no_launch) + { + /* report stats */ + SDLTest_Log("Testing complete."); + SDLTest_Log("%d/%d tests passed.", passed, passed + failed); + } + goto cleanup_variator; + } + + goto cleanup_sdl; + +cleanup_variator: + SDLVisualTest_FreeVariator(&variator); +cleanup_sdl: + SDL_Quit(); +cleanup_harness_state: + SDLVisualTest_FreeHarnessState(&state); +cleanup_generic: + return return_code; +} diff --git a/visualtest/src/variator_common.c b/visualtest/src/variator_common.c new file mode 100755 index 0000000000000..dec3d8aacb749 --- /dev/null +++ b/visualtest/src/variator_common.c @@ -0,0 +1,225 @@ +/* See COPYING.txt for the full license governing this code. */ +/** + * \file variator_common.c + * + * Source file for some common functionality used by variators. + */ + +#include +#include "SDL_visualtest_variator_common.h" + +int +SDLVisualTest_NextValue(SDLVisualTest_SUTOptionValue* var, + SDLVisualTest_SUTOption* opt) +{ + if(!var) + { + SDLTest_LogError("var argument cannot be NULL"); + return -1; + } + if(!opt) + { + SDLTest_LogError("opt argument cannot be NULL"); + return -1; + } + + switch(opt->type) + { + case SDL_SUT_OPTIONTYPE_BOOL: + if(var->bool_value) + { + var->bool_value = SDL_FALSE; + return 1; + } + else + { + var->bool_value = SDL_TRUE; + return 0; + } + break; + + case SDL_SUT_OPTIONTYPE_ENUM: + var->enumerated.index++; + if(!opt->data.enum_values[var->enumerated.index]) + { + var->enumerated.index = 0; + return 1; + } + return 0; + break; + + case SDL_SUT_OPTIONTYPE_INT: + { + int increment = (opt->data.range.max - opt->data.range.min) / + SDL_SUT_INTEGER_OPTION_TEST_STEPS; + /* prevents infinite loop when rounding */ + if(increment == 0) + increment = 1; + var->integer.value += increment; + if(var->integer.value > opt->data.range.max) + { + var->integer.value = opt->data.range.min; + return 1; + } + return 0; + } + break; + + case SDL_SUT_OPTIONTYPE_STRING: + return 1; + break; + } + return -1; +} + +int +SDLVisualTest_MakeStrFromVariation(SDLVisualTest_Variation* variation, + SDLVisualTest_SUTConfig* config, + char* buffer, int size) +{ + int i, index; + SDLVisualTest_SUTOptionValue* vars; + SDLVisualTest_SUTOption* options; + if(!variation) + { + SDLTest_LogError("variation argument cannot be NULL"); + return 0; + } + if(!config) + { + SDLTest_LogError("config argument cannot be NULL"); + return 0; + } + if(!buffer) + { + SDLTest_LogError("buffer argument cannot be NULL"); + return 0; + } + if(size <= 0) + { + SDLTest_LogError("size argument should be positive"); + return 0; + } + + index = 0; + buffer[0] = '\0'; + options = config->options; + vars = variation->vars; + for(i = 0; i < variation->num_vars; i++) + { + int n, enum_index; + if(index >= size - 1) + { + SDLTest_LogError("String did not fit in buffer size"); + return 0; + } + switch(options[i].type) + { + case SDL_SUT_OPTIONTYPE_BOOL: + if(vars[i].bool_value) + { + n = SDL_snprintf(buffer + index, size - index, "%s ", + options[i].name); + if(n <= 0) + { + SDLTest_LogError("SDL_snprintf() failed"); + return 0; + } + index += n; + } + break; + + case SDL_SUT_OPTIONTYPE_ENUM: + if(vars[i].enumerated.on) + { + enum_index = vars[i].enumerated.index; + n = SDL_snprintf(buffer + index, size - index, "%s %s ", + options[i].name, options[i].data.enum_values[enum_index]); + index += n; + } + break; + + case SDL_SUT_OPTIONTYPE_INT: + if(vars[i].integer.on) + { + n = SDL_snprintf(buffer + index, size - index, "%s %d ", + options[i].name, vars[i].integer.value); + index += n; + } + break; + + case SDL_SUT_OPTIONTYPE_STRING: + if(vars[i].string.on) + { + n = SDL_snprintf(buffer + index, size - index, "%s %s ", + options[i].name, vars[i].string.value); + index += n; + } + break; + } + } + return 1; +} + +int +SDLVisualTest_InitVariation(SDLVisualTest_Variation* variation, + SDLVisualTest_SUTConfig* config) +{ + int i; + SDLVisualTest_SUTOptionValue* vars; + SDLVisualTest_SUTOption* options; + if(!variation) + { + SDLTest_LogError("variation argument cannot be NULL"); + return 0; + } + if(!config) + { + SDLTest_LogError("config argument cannot be NULL"); + return 0; + } + + /* initialize the first variation */ + if(config->num_options <= 0) + { + SDLTest_LogError("config->num_options must be positive"); + return 0; + } + variation->vars = (SDLVisualTest_SUTOptionValue*)SDL_malloc(config->num_options * + sizeof(SDLVisualTest_SUTOptionValue)); + if(!variation->vars) + { + SDLTest_LogError("malloc() failed"); + return 0; + } + variation->num_vars = config->num_options; + vars = variation->vars; + options = config->options; + for(i = 0; i < variation->num_vars; i++) + { + switch(options[i].type) + { + case SDL_SUT_OPTIONTYPE_BOOL: + vars[i].bool_value = SDL_FALSE; + break; + + case SDL_SUT_OPTIONTYPE_ENUM: + vars[i].enumerated.on = SDL_TRUE; + vars[i].enumerated.index = 0; + break; + + case SDL_SUT_OPTIONTYPE_INT: + { + vars[i].integer.on = SDL_TRUE; + vars[i].integer.value = options[i].data.range.min; + } + break; + + case SDL_SUT_OPTIONTYPE_STRING: + vars[i].string.on = SDL_TRUE; + vars[i].string.value = options[i].name; + break; + } + } + return 1; +} \ No newline at end of file diff --git a/visualtest/src/variator_exhaustive.c b/visualtest/src/variator_exhaustive.c new file mode 100755 index 0000000000000..2a0ab35c72f96 --- /dev/null +++ b/visualtest/src/variator_exhaustive.c @@ -0,0 +1,132 @@ +/* See COPYING.txt for the full license governing this code. */ +/** + * \file variator_exhaustive.c + * + * Source file for the variator that tests the SUT with all the different + * variations of input parameters that are valid. + */ + +#include +#include +#include "SDL_visualtest_sut_configparser.h" +#include "SDL_visualtest_exhaustive_variator.h" + +static int +NextVariation(SDLVisualTest_Variation* variation, + SDLVisualTest_SUTConfig* config) +{ + int i, carry; + if(!variation) + { + SDLTest_LogError("variation argument cannot be NULL"); + return -1; + } + if(!config) + { + SDLTest_LogError("config argument cannot be NULL"); + return -1; + } + + carry = 1; + for(i = 0; i < variation->num_vars; i++) + { + carry = SDLVisualTest_NextValue(&variation->vars[i], &config->options[i]); + if(carry != 1) + break; + } + + if(carry == 1) /* we're done, we've tried all possible variations */ + return 0; + if(carry == 0) + return 1; + SDLTest_LogError("NextVariation() failed"); + return -1; +} + +int +SDLVisualTest_InitExhaustiveVariator(SDLVisualTest_ExhaustiveVariator* variator, + SDLVisualTest_SUTConfig* config) +{ + if(!variator) + { + SDLTest_LogError("variator argument cannot be NULL"); + return 0; + } + if(!config) + { + SDLTest_LogError("config argument cannot be NULL"); + return 0; + } + + SDLTest_FuzzerInit(time(NULL)); + + variator->config = *config; + variator->variation.num_vars = 0; + variator->variation.vars = NULL; + + return 1; +} + +/* TODO: Right now variations where an option is not specified at all are not + tested for. This can be implemented by switching the on attribute for integer, + enum and string options to true and false. */ +char* +SDLVisualTest_GetNextExhaustiveVariation(SDLVisualTest_ExhaustiveVariator* variator) +{ + int success; + if(!variator) + { + SDLTest_LogError("variator argument cannot be NULL"); + return NULL; + } + + if(!variator->variation.vars) /* the first time this function is called */ + { + success = SDLVisualTest_InitVariation(&variator->variation, + &variator->config); + if(!success) + { + SDLTest_LogError("SDLVisualTest_InitVariation() failed"); + return NULL; + } + success = SDLVisualTest_MakeStrFromVariation(&variator->variation, + &variator->config, variator->buffer, MAX_SUT_ARGS_LEN); + if(!success) + { + SDLTest_LogError("SDLVisualTest_MakeStrFromVariation() failed"); + return NULL; + } + return variator->buffer; + } + else + { + success = NextVariation(&variator->variation, &variator->config); + if(success == 1) + { + success = SDLVisualTest_MakeStrFromVariation(&variator->variation, + &variator->config, variator->buffer, MAX_SUT_ARGS_LEN); + if(!success) + { + SDLTest_LogError("SDLVisualTest_MakeStrFromVariation() failed"); + return NULL; + } + return variator->buffer; + } + else if(success == -1) + SDLTest_LogError("NextVariation() failed."); + return NULL; + } + return NULL; +} + +void +SDLVisualTest_FreeExhaustiveVariator(SDLVisualTest_ExhaustiveVariator* variator) +{ + if(!variator) + { + SDLTest_LogError("variator argument cannot be NULL"); + return; + } + SDL_free(variator->variation.vars); + variator->variation.vars = NULL; +} \ No newline at end of file diff --git a/visualtest/src/variator_random.c b/visualtest/src/variator_random.c new file mode 100755 index 0000000000000..14b5d48a80285 --- /dev/null +++ b/visualtest/src/variator_random.c @@ -0,0 +1,111 @@ +/* See COPYING.txt for the full license governing this code. */ +/** + * \file variator_random.c + * + * Source file for the variator that tests the SUT with random variations to the + * input parameters. + */ + +#include +#include +#include "SDL_visualtest_random_variator.h" + +int +SDLVisualTest_InitRandomVariator(SDLVisualTest_RandomVariator* variator, + SDLVisualTest_SUTConfig* config, Uint64 seed) +{ + if(!variator) + { + SDLTest_LogError("variator argument cannot be NULL"); + return 0; + } + if(!config) + { + SDLTest_LogError("config argument cannot be NULL"); + return 0; + } + + if(seed) + SDLTest_FuzzerInit(seed); + else + SDLTest_FuzzerInit(time(NULL)); + + variator->config = *config; + + if(!SDLVisualTest_InitVariation(&variator->variation, &variator->config)) + { + SDLTest_LogError("SDLVisualTest_InitVariation() failed"); + return 0; + } + + return 1; +} + +char* +SDLVisualTest_GetNextRandomVariation(SDLVisualTest_RandomVariator* variator) +{ + SDLVisualTest_SUTOptionValue* vars; + SDLVisualTest_SUTOption* options; + int i; + if(!variator) + { + SDLTest_LogError("variator argument cannot be NULL"); + return NULL; + } + + /* to save typing */ + vars = variator->variation.vars; + options = variator->config.options; + + /* generate a random variation */ + for(i = 0; i < variator->variation.num_vars; i++) + { + switch(options[i].type) + { + case SDL_SUT_OPTIONTYPE_BOOL: + vars[i].bool_value = SDLTest_RandomIntegerInRange(0, 1) ? SDL_FALSE : + SDL_TRUE; + break; + + case SDL_SUT_OPTIONTYPE_ENUM: + { + int emx = 0; + while(options[i].data.enum_values[emx]) + emx++; + vars[i].enumerated.index = SDLTest_RandomIntegerInRange(0, emx - 1); + } + break; + + case SDL_SUT_OPTIONTYPE_INT: + vars[i].integer.value = SDLTest_RandomIntegerInRange( + options[i].data.range.min, + options[i].data.range.max); + break; + + case SDL_SUT_OPTIONTYPE_STRING: + // String values are left unchanged + break; + } + } + + /* convert variation to an arguments string */ + if(!SDLVisualTest_MakeStrFromVariation(&variator->variation, &variator->config, + variator->buffer, MAX_SUT_ARGS_LEN)) + { + SDLTest_LogError("SDLVisualTest_MakeStrFromVariation() failed"); + return NULL; + } + + return variator->buffer; +} + +void SDLVisualTest_FreeRandomVariator(SDLVisualTest_RandomVariator* variator) +{ + if(!variator) + { + SDLTest_LogError("variator argument cannot be NULL"); + return; + } + SDL_free(variator->variation.vars); + variator->variation.vars = NULL; +} \ No newline at end of file diff --git a/visualtest/src/variators.c b/visualtest/src/variators.c new file mode 100755 index 0000000000000..2d63113c532ac --- /dev/null +++ b/visualtest/src/variators.c @@ -0,0 +1,93 @@ +/* See COPYING.txt for the full license governing this code. */ +/** + * \file variators.c + * + * Source file for the operations that act on variators. + */ + +#include +#include "SDL_visualtest_variators.h" + +int +SDLVisualTest_InitVariator(SDLVisualTest_Variator* variator, + SDLVisualTest_SUTConfig* config, + SDLVisualTest_VariatorType type, + Uint64 seed) +{ + if(!variator) + { + SDLTest_LogError("variator argument cannot be NULL"); + return 0; + } + if(!config) + { + SDLTest_LogError("config argument cannot be NULL"); + return 0; + } + + variator->type = type; + switch(type) + { + case SDL_VARIATOR_EXHAUSTIVE: + return SDLVisualTest_InitExhaustiveVariator(&variator->data.exhaustive, + config); + break; + + case SDL_VARIATOR_RANDOM: + return SDLVisualTest_InitRandomVariator(&variator->data.random, + config, seed); + break; + + default: + SDLTest_LogError("Invalid value for variator type"); + return 0; + } + return 0; +} + +char* +SDLVisualTest_GetNextVariation(SDLVisualTest_Variator* variator) +{ + if(!variator) + { + SDLTest_LogError("variator argument cannot be NULL"); + return NULL; + } + switch(variator->type) + { + case SDL_VARIATOR_EXHAUSTIVE: + return SDLVisualTest_GetNextExhaustiveVariation(&variator->data.exhaustive); + break; + + case SDL_VARIATOR_RANDOM: + return SDLVisualTest_GetNextRandomVariation(&variator->data.random); + break; + + default: + SDLTest_LogError("Invalid value for variator type"); + return NULL; + } + return NULL; +} + +void SDLVisualTest_FreeVariator(SDLVisualTest_Variator* variator) +{ + if(!variator) + { + SDLTest_LogError("variator argument cannot be NULL"); + return; + } + switch(variator->type) + { + case SDL_VARIATOR_EXHAUSTIVE: + SDLVisualTest_FreeExhaustiveVariator(&variator->data.exhaustive); + break; + + case SDL_VARIATOR_RANDOM: + SDLVisualTest_FreeRandomVariator(&variator->data.random); + break; + + default: + SDLTest_LogError("Invalid value for variator type"); + } +} \ No newline at end of file diff --git a/visualtest/src/windows/windows_process.c b/visualtest/src/windows/windows_process.c new file mode 100755 index 0000000000000..ad0938951e8be --- /dev/null +++ b/visualtest/src/windows/windows_process.c @@ -0,0 +1,284 @@ +/* See COPYING.txt for the full license governing this code. */ +/** + * \file windows_process.c + * + * Source file for the process API on windows. + */ + + +#include +#include +#include +#include + +#include "SDL_visualtest_process.h" + +#if defined(__WIN32__) + +void +LogLastError(char* str) +{ + LPVOID buffer; + DWORD dw = GetLastError(); + FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_SYSTEM| + FORMAT_MESSAGE_IGNORE_INSERTS, NULL, dw, + MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR)&buffer, + 0, NULL); + SDLTest_LogError("%s: %s", str, (char*)buffer); + LocalFree(buffer); +} + +int +SDL_LaunchProcess(char* file, char* args, SDL_ProcessInfo* pinfo) +{ + BOOL success; + char* working_directory; + char* command_line; + int path_length, args_length; + STARTUPINFO sui = {0}; + sui.cb = sizeof(sui); + + if(!file) + { + SDLTest_LogError("Path to executable to launched cannot be NULL."); + return 0; + } + if(!pinfo) + { + SDLTest_LogError("pinfo cannot be NULL."); + return 0; + } + + /* get the working directory of the process being launched, so that + the process can load any resources it has in it's working directory */ + path_length = SDL_strlen(file); + if(path_length == 0) + { + SDLTest_LogError("Length of the file parameter is zero."); + return 0; + } + + working_directory = (char*)SDL_malloc(path_length + 1); + if(!working_directory) + { + SDLTest_LogError("Could not allocate working_directory - malloc() failed."); + return 0; + } + + SDL_memcpy(working_directory, file, path_length + 1); + PathRemoveFileSpec(working_directory); + if(SDL_strlen(working_directory) == 0) + { + SDL_free(working_directory); + working_directory = NULL; + } + + /* join the file path and the args string together */ + if(!args) + args = ""; + args_length = SDL_strlen(args); + command_line = (char*)SDL_malloc(path_length + args_length + 2); + if(!command_line) + { + SDLTest_LogError("Could not allocate command_line - malloc() failed."); + return 0; + } + SDL_memcpy(command_line, file, path_length); + command_line[path_length] = ' '; + SDL_memcpy(command_line + path_length + 1, args, args_length + 1); + + /* create the process */ + success = CreateProcess(NULL, command_line, NULL, NULL, FALSE, + NORMAL_PRIORITY_CLASS | CREATE_NO_WINDOW, + NULL, working_directory, &sui, &pinfo->pi); + if(working_directory) + { + SDL_free(working_directory); + working_directory = NULL; + } + SDL_free(command_line); + if(!success) + { + LogLastError("CreateProcess() failed"); + return 0; + } + + return 1; +} + +int +SDL_GetProcessExitStatus(SDL_ProcessInfo* pinfo, SDL_ProcessExitStatus* ps) +{ + DWORD exit_status; + BOOL success; + + if(!pinfo) + { + SDLTest_LogError("pinfo cannot be NULL"); + return 0; + } + if(!ps) + { + SDLTest_LogError("ps cannot be NULL"); + return 0; + } + + /* get the exit code */ + success = GetExitCodeProcess(pinfo->pi.hProcess, &exit_status); + if(!success) + { + LogLastError("GetExitCodeProcess() failed"); + return 0; + } + + if(exit_status == STILL_ACTIVE) + ps->exit_status = -1; + else + ps->exit_status = exit_status; + ps->exit_success = 1; + return 1; +} + + +int +SDL_IsProcessRunning(SDL_ProcessInfo* pinfo) +{ + DWORD exit_status; + BOOL success; + + if(!pinfo) + { + SDLTest_LogError("pinfo cannot be NULL"); + return -1; + } + + success = GetExitCodeProcess(pinfo->pi.hProcess, &exit_status); + if(!success) + { + LogLastError("GetExitCodeProcess() failed"); + return -1; + } + + if(exit_status == STILL_ACTIVE) + return 1; + return 0; +} + +static BOOL CALLBACK +CloseWindowCallback(HWND hwnd, LPARAM lparam) +{ + DWORD pid; + SDL_ProcessInfo* pinfo; + + pinfo = (SDL_ProcessInfo*)lparam; + + GetWindowThreadProcessId(hwnd, &pid); + if(pid == pinfo->pi.dwProcessId) + { + DWORD result; + if(!SendMessageTimeout(hwnd, WM_CLOSE, 0, 0, SMTO_BLOCK, + 1000, &result)) + { + if(GetLastError() != ERROR_TIMEOUT) + { + LogLastError("SendMessageTimeout() failed"); + return FALSE; + } + } + } + return TRUE; +} + +int +SDL_QuitProcess(SDL_ProcessInfo* pinfo, SDL_ProcessExitStatus* ps) +{ + DWORD wait_result; + if(!pinfo) + { + SDLTest_LogError("pinfo argument cannot be NULL"); + return 0; + } + if(!ps) + { + SDLTest_LogError("ps argument cannot be NULL"); + return 0; + } + + /* enumerate through all the windows, trying to close each one */ + if(!EnumWindows(CloseWindowCallback, (LPARAM)pinfo)) + { + SDLTest_LogError("EnumWindows() failed"); + return 0; + } + + /* wait until the process terminates */ + wait_result = WaitForSingleObject(pinfo->pi.hProcess, 1000); + if(wait_result == WAIT_FAILED) + { + LogLastError("WaitForSingleObject() failed"); + return 0; + } + if(wait_result != WAIT_OBJECT_0) + { + SDLTest_LogError("Process did not quit."); + return 0; + } + + /* get the exit code */ + if(!SDL_GetProcessExitStatus(pinfo, ps)) + { + SDLTest_LogError("SDL_GetProcessExitStatus() failed"); + return 0; + } + + return 1; +} + +int +SDL_KillProcess(SDL_ProcessInfo* pinfo, SDL_ProcessExitStatus* ps) +{ + BOOL success; + DWORD exit_status, wait_result; + + if(!pinfo) + { + SDLTest_LogError("pinfo argument cannot be NULL"); + return 0; + } + if(!ps) + { + SDLTest_LogError("ps argument cannot be NULL"); + return 0; + } + + /* initiate termination of the process */ + success = TerminateProcess(pinfo->pi.hProcess, 0); + if(!success) + { + LogLastError("TerminateProcess() failed"); + return 0; + } + + /* wait until the process terminates */ + wait_result = WaitForSingleObject(pinfo->pi.hProcess, INFINITE); + if(wait_result == WAIT_FAILED) + { + LogLastError("WaitForSingleObject() failed"); + return 0; + } + + /* get the exit code */ + success = GetExitCodeProcess(pinfo->pi.hProcess, &exit_status); + if(!success) + { + LogLastError("GetExitCodeProcess() failed"); + return 0; + } + + ps->exit_status = exit_status; + ps->exit_success = 1; + + return 1; +} + +#endif diff --git a/visualtest/src/windows/windows_screenshot.c b/visualtest/src/windows/windows_screenshot.c new file mode 100755 index 0000000000000..78559035932d5 --- /dev/null +++ b/visualtest/src/windows/windows_screenshot.c @@ -0,0 +1,349 @@ +/* See COPYING.txt for the full license governing this code. */ +/** + * \file windows_screenshot.c + * + * Source file for the screenshot API on windows. + */ + +#include "SDL_visualtest_process.h" +#include +#include + +#if defined(__CYGWIN__) +#include +#endif + +#if defined(__WIN32__) +#include + +void LogLastError(char* str); + +static int img_num; +static SDL_ProcessInfo screenshot_pinfo; + +/* Saves a bitmap to a file using hdc as a device context */ +static int +SaveBitmapToFile(HDC hdc, HBITMAP hbitmap, char* filename) +{ + BITMAP bitmap; + BITMAPFILEHEADER bfh; + BITMAPINFOHEADER bih; + DWORD bmpsize, bytes_written; + HANDLE hdib, hfile; + char* bmpdata; + int return_code = 1; + + if(!hdc) + { + SDLTest_LogError("hdc argument is NULL"); + return 0; + } + if(!hbitmap) + { + SDLTest_LogError("hbitmap argument is NULL"); + return 0; + } + if(!filename) + { + SDLTest_LogError("filename argument is NULL"); + return 0; + } + + if(!GetObject(hbitmap, sizeof(BITMAP), (void*)&bitmap)) + { + SDLTest_LogError("GetObject() failed"); + return_code = 0; + goto savebitmaptofile_cleanup_generic; + } + + bih.biSize = sizeof(BITMAPINFOHEADER); + bih.biWidth = bitmap.bmWidth; + bih.biHeight = bitmap.bmHeight; + bih.biPlanes = 1; + bih.biBitCount = 32; + bih.biCompression = BI_RGB; + bih.biSizeImage = 0; + bih.biXPelsPerMeter = 0; + bih.biYPelsPerMeter = 0; + bih.biClrUsed = 0; + bih.biClrImportant = 0; + + bmpsize = ((bitmap.bmWidth * bih.biBitCount + 31) / 32) * 4 * bitmap.bmHeight; + + hdib = GlobalAlloc(GHND, bmpsize); + if(!hdib) + { + LogLastError("GlobalAlloc() failed"); + return_code = 0; + goto savebitmaptofile_cleanup_generic; + } + bmpdata = (char*)GlobalLock(hdib); + if(!bmpdata) + { + LogLastError("GlobalLock() failed"); + return_code = 0; + goto savebitmaptofile_cleanup_hdib; + } + + if(!GetDIBits(hdc, hbitmap, 0, (UINT)bitmap.bmHeight, bmpdata, + (LPBITMAPINFO)&bih, DIB_RGB_COLORS)) + { + SDLTest_LogError("GetDIBits() failed"); + return_code = 0; + goto savebitmaptofile_cleanup_unlockhdib; + } + + hfile = CreateFile(filename, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, + FILE_ATTRIBUTE_NORMAL, NULL); + if(hfile == INVALID_HANDLE_VALUE) + { + LogLastError("CreateFile()"); + return_code = 0; + goto savebitmaptofile_cleanup_unlockhdib; + } + bfh.bfOffBits = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER); + bfh.bfSize = bmpsize + bfh.bfOffBits; + bfh.bfType = 0x4D42; + + bytes_written = 0; + if(!WriteFile(hfile, (void*)&bfh, sizeof(BITMAPFILEHEADER), &bytes_written, NULL) || + !WriteFile(hfile, (void*)&bih, sizeof(BITMAPINFOHEADER), &bytes_written, NULL) || + !WriteFile(hfile, (void*)bmpdata, bmpsize, &bytes_written, NULL)) + { + LogLastError("WriteFile() failed"); + return_code = 0; + goto savebitmaptofile_cleanup_hfile; + } + +savebitmaptofile_cleanup_hfile: + CloseHandle(hfile); + +/* make the screenshot file writable on cygwin, since it could be overwritten later */ +#if defined(__CYGWIN__) + if(chmod(filename, 0777) == -1) + { + SDLTest_LogError("chmod() failed"); + return_code = 0; + } +#endif + +savebitmaptofile_cleanup_unlockhdib: + GlobalUnlock(hdib); + +savebitmaptofile_cleanup_hdib: + GlobalFree(hdib); + +savebitmaptofile_cleanup_generic: + return return_code; +} + +/* Takes the screenshot of a window and saves it to a file. If only_client_area + is true, then only the client area of the window is considered */ +static int +ScreenshotWindow(HWND hwnd, char* filename, SDL_bool only_client_area) +{ + int width, height; + RECT dimensions; + HDC windowdc, capturedc; + HBITMAP capturebitmap; + HGDIOBJ select_success; + BOOL blt_success; + int return_code = 1; + + if(!filename) + { + SDLTest_LogError("filename argument cannot be NULL"); + return_code = 0; + goto screenshotwindow_cleanup_generic; + } + if(!hwnd) + { + SDLTest_LogError("hwnd argument cannot be NULL"); + return_code = 0; + goto screenshotwindow_cleanup_generic; + } + + if(!GetWindowRect(hwnd, &dimensions)) + { + LogLastError("GetWindowRect() failed"); + return_code = 0; + goto screenshotwindow_cleanup_generic; + } + + if(only_client_area) + { + RECT crect; + if(!GetClientRect(hwnd, &crect)) + { + SDLTest_LogError("GetClientRect() failed"); + return_code = 0; + goto screenshotwindow_cleanup_generic; + } + + width = crect.right; + height = crect.bottom; + windowdc = GetDC(hwnd); + if(!windowdc) + { + SDLTest_LogError("GetDC() failed"); + return_code = 0; + goto screenshotwindow_cleanup_generic; + } + } + else + { + width = dimensions.right - dimensions.left; + height = dimensions.bottom - dimensions.top; + windowdc = GetWindowDC(hwnd); + if(!windowdc) + { + SDLTest_LogError("GetWindowDC() failed"); + return_code = 0; + goto screenshotwindow_cleanup_generic; + } + } + + capturedc = CreateCompatibleDC(windowdc); + if(!capturedc) + { + SDLTest_LogError("CreateCompatibleDC() failed"); + return_code = 0; + goto screenshotwindow_cleanup_windowdc; + } + capturebitmap = CreateCompatibleBitmap(windowdc, width, height); + if(!capturebitmap) + { + SDLTest_LogError("CreateCompatibleBitmap() failed"); + return_code = 0; + goto screenshotwindow_cleanup_capturedc; + } + select_success = SelectObject(capturedc, capturebitmap); + if(!select_success || select_success == HGDI_ERROR) + { + SDLTest_LogError("SelectObject() failed"); + return_code = 0; + goto screenshotwindow_cleanup_capturebitmap; + } + blt_success = BitBlt(capturedc, 0, 0, width, height, windowdc, + 0, 0, SRCCOPY|CAPTUREBLT); + if(!blt_success) + { + LogLastError("BitBlt() failed"); + return_code = 0; + goto screenshotwindow_cleanup_capturebitmap; + } + + /* save bitmap as file */ + if(!SaveBitmapToFile(windowdc, capturebitmap, filename)) + { + SDLTest_LogError("SaveBitmapToFile() failed"); + return_code = 0; + goto screenshotwindow_cleanup_capturebitmap; + } + + /* free resources */ + +screenshotwindow_cleanup_capturebitmap: + if(!DeleteObject(capturebitmap)) + { + SDLTest_LogError("DeleteObjectFailed"); + return_code = 0; + } + +screenshotwindow_cleanup_capturedc: + if(!DeleteDC(capturedc)) + { + SDLTest_LogError("DeleteDC() failed"); + return_code = 0; + } + +screenshotwindow_cleanup_windowdc: + if(!ReleaseDC(hwnd, windowdc)) + { + SDLTest_LogError("ReleaseDC() failed"); + return_code = 0;; + } + +screenshotwindow_cleanup_generic: + return return_code; +} + +/* Takes the screenshot of the entire desktop and saves it to a file */ +int SDLVisualTest_ScreenshotDesktop(char* filename) +{ + HWND hwnd; + hwnd = GetDesktopWindow(); + return ScreenshotWindow(hwnd, filename, SDL_FALSE); +} + +/* take screenshot of a window and save it to a file */ +static BOOL CALLBACK +ScreenshotHwnd(HWND hwnd, LPARAM lparam) +{ + int len; + DWORD pid; + char* prefix; + char* filename; + + GetWindowThreadProcessId(hwnd, &pid); + if(pid != screenshot_pinfo.pi.dwProcessId) + return TRUE; + + if(!IsWindowVisible(hwnd)) + return TRUE; + + prefix = (char*)lparam; + len = SDL_strlen(prefix) + 100; + filename = (char*)SDL_malloc(len * sizeof(char)); + if(!filename) + { + SDLTest_LogError("malloc() failed"); + return FALSE; + } + + /* restore the window and bring it to the top */ + ShowWindowAsync(hwnd, SW_RESTORE); + /* restore is not instantaneous */ + SDL_Delay(500); + + /* take a screenshot of the client area */ + if(img_num == 1) + SDL_snprintf(filename, len, "%s.bmp", prefix); + else + SDL_snprintf(filename, len, "%s_%d.bmp", prefix, img_num); + img_num++; + ScreenshotWindow(hwnd, filename, SDL_TRUE); + + SDL_free(filename); + return TRUE; +} + + +/* each window of the process will have a screenshot taken. The file name will be + prefix-i.png for the i'th window. */ +int +SDLVisualTest_ScreenshotProcess(SDL_ProcessInfo* pinfo, char* prefix) +{ + if(!pinfo) + { + SDLTest_LogError("pinfo argument cannot be NULL"); + return 0; + } + if(!prefix) + { + SDLTest_LogError("prefix argument cannot be NULL"); + return 0; + } + + img_num = 1; + screenshot_pinfo = *pinfo; + if(!EnumWindows(ScreenshotHwnd, (LPARAM)prefix)) + { + SDLTest_LogError("EnumWindows() failed"); + return 0; + } + + return 1; +} + +#endif diff --git a/visualtest/stamp-h1 b/visualtest/stamp-h1 new file mode 100755 index 0000000000000..4547fe1b5efa9 --- /dev/null +++ b/visualtest/stamp-h1 @@ -0,0 +1 @@ +timestamp for config.h diff --git a/visualtest/testsprite2_sample.actions b/visualtest/testsprite2_sample.actions new file mode 100755 index 0000000000000..c0e9ab8b9e353 --- /dev/null +++ b/visualtest/testsprite2_sample.actions @@ -0,0 +1,3 @@ +00:00:02 SCREENSHOT # Take a screenshot of each window owned by the SUT process +00:00:05 VERIFY # Verify each screenshot taken with verification images +00:00:10 QUIT # Gracefully quit the SUT process \ No newline at end of file diff --git a/visualtest/testsprite2_sample.config b/visualtest/testsprite2_sample.config new file mode 100755 index 0000000000000..14eb4622c2a91 --- /dev/null +++ b/visualtest/testsprite2_sample.config @@ -0,0 +1,6 @@ +parameter-config=testsprite2_sample.parameters +num-variations=10 +variator=random +sutapp=testsprite2 +timeout=00:00:20 +action-config=testsprite2_sample.actions \ No newline at end of file diff --git a/visualtest/testsprite2_sample.parameters b/visualtest/testsprite2_sample.parameters new file mode 100755 index 0000000000000..29e34cd284cde --- /dev/null +++ b/visualtest/testsprite2_sample.parameters @@ -0,0 +1,29 @@ +# parameter name, type, value range, required, categories +--gldebug, boolean, [], false, [] +--info, enum, [all video modes render event], false, [] +--log, enum, [all error system audio video render input], false, [] +--display, integer, [1 5], false, [] +--fullscreen, boolean, [], false, [] +--fullscreen-desktop, boolean, [], false, [] +# --windows, integer, [1 5], false, [] # this option is not supported yet +--title, enum, [vartest bartest footest], false, [] +--icon, enum, [icon.bmp], false, [] +--center, boolean, [], false, [] +--position, enum, [300,300], false, [] +--geometry, enum, [500x500], false, [] +--min-geometry, enum, [100x100], false, [] +--max-geometry, enum, [600x600 700x700], false, [] +--logical, enum, [500x500 550x450], false, [] +--scale, integer, [1 5], false, [] +--depth, integer, [1 5], false, [] +--refresh, integer, [1 5], false, [] +--vsync, boolean, [], false, [] +--noframe, boolean, [], false, [] +--resize, boolean, [], false, [] +--minimize, boolean, [], false, [] +--maximize, boolean, [], false, [] +--grab, boolean, [], false, [mouse] +--blend, enum, [none blend add mod], false, [] +--cyclecolor, boolean, [], false, [] +--cyclealpha, boolean, [], false, [] +--iterations, integer, [10 100], false, [] \ No newline at end of file diff --git a/visualtest/unittest/testquit.actions b/visualtest/unittest/testquit.actions new file mode 100755 index 0000000000000..fa68805200629 --- /dev/null +++ b/visualtest/unittest/testquit.actions @@ -0,0 +1 @@ +00:00:05 QUIT \ No newline at end of file diff --git a/visualtest/unittest/testquit.c b/visualtest/unittest/testquit.c new file mode 100755 index 0000000000000..ceb83b0aaf144 --- /dev/null +++ b/visualtest/unittest/testquit.c @@ -0,0 +1,101 @@ +/* + Copyright (C) 2013 Apoorv Upreti + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely. +*/ +/* Quits, hangs or crashes based on the command line options passed. */ + +#include +#include + +static SDLTest_CommonState *state; +static int exit_code; +static SDL_bool hang; +static SDL_bool crash; + +int +main(int argc, char** argv) +{ + int i, done; + SDL_Event event; + + state = SDLTest_CommonCreateState(argv, SDL_INIT_VIDEO); + if(!state) + return 1; + + state->window_flags |= SDL_WINDOW_RESIZABLE; + + exit_code = 0; + hang = SDL_FALSE; + crash = SDL_FALSE; + + for(i = 1; i < argc; ) + { + int consumed; + consumed = SDLTest_CommonArg(state, i); + if(consumed == 0) + { + consumed = -1; + if(SDL_strcasecmp(argv[i], "--exit-code") == 0) + { + if(argv[i + 1]) + { + exit_code = SDL_atoi(argv[i + 1]); + consumed = 2; + } + } + else if(SDL_strcasecmp(argv[i], "--hang") == 0) + { + hang = SDL_TRUE; + consumed = 1; + } + else if(SDL_strcasecmp(argv[i], "--crash") == 0) + { + crash = SDL_TRUE; + consumed = 1; + } + } + + if(consumed < 0) + { + SDLTest_Log("Usage: %s %s [--exit-code N] [--crash] [--hang]", argv[0], SDLTest_CommonUsage(state)); + SDLTest_CommonQuit(state); + return 1; + } + i += consumed; + } + + if(!SDLTest_CommonInit(state)) + { + SDLTest_CommonQuit(state); + return 1; + } + + /* infinite loop to hang the process */ + while(hang) + SDL_Delay(10); + + /* dereference NULL pointer to crash process */ + if(crash) + { + int* p = NULL; + *p = 5; + } + + /* event loop */ + done = 0; + while(!done) + { + while(SDL_PollEvent(&event)) + SDLTest_CommonEvent(state, &event, &done); + SDL_Delay(10); + } + + return exit_code; +} \ No newline at end of file diff --git a/visualtest/unittest/testquit.config b/visualtest/unittest/testquit.config new file mode 100755 index 0000000000000..756dec8ac1517 --- /dev/null +++ b/visualtest/unittest/testquit.config @@ -0,0 +1,5 @@ +sutconfig=testquit.parameters +action-config=testquit.actions +variator=exhaustive +sutapp=testquit +timeout=00:00:10 \ No newline at end of file diff --git a/visualtest/unittest/testquit.parameters b/visualtest/unittest/testquit.parameters new file mode 100755 index 0000000000000..6e5887ce57a8f --- /dev/null +++ b/visualtest/unittest/testquit.parameters @@ -0,0 +1,3 @@ +--exit-code, integer, [-1 1], false, [] # The exit code returned by the executable +--crash, boolean, [], false, [] # Crashes the SUT executable +--hang, boolean, [], false, [] # Runs the SUT in the infinite loop and ignores all events \ No newline at end of file From 92b12812ac7ef74bc4e76ffc464e0c61c0f69230 Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Sun, 10 Nov 2013 00:38:37 -0500 Subject: [PATCH 032/143] Added Ben Henning's GSoC2013 work: premake build system. --- include/SDL_config.h | 4 +- .../Cygwin/build-scripts/clean_premake.bat | 4 + premake/Cygwin/build-scripts/cygwin.bat | 4 + premake/Cygwin/build-scripts/make.debug.bat | 5 + premake/Cygwin/build-scripts/make.release.bat | 5 + premake/Cygwin/build-scripts/premake4.exe | Bin 0 -> 483840 bytes .../Cygwin/build-scripts/run.tests.debug.bat | 68 + .../build-scripts/run.tests.release.bat | 68 + premake/Linux/SDL_config_premake.h | 311 ++ premake/Linux/build-scripts/clean_premake.sh | 6 + premake/Linux/build-scripts/gmake.sh | 6 + premake/Linux/build-scripts/premake4 | Bin 0 -> 339312 bytes premake/Linux/build-scripts/run.tests.sh | 94 + premake/MinGW/SDL_config_premake.h | 193 ++ premake/MinGW/build-scripts/clean_premake.bat | 4 + premake/MinGW/build-scripts/mingw.bat | 4 + premake/MinGW/build-scripts/premake4.exe | Bin 0 -> 483840 bytes premake/MinGW/build-scripts/run.tests.bat | 108 + premake/README-cygwin.txt | 29 + premake/README-ios.txt | 33 + premake/README-linux.txt | 46 + premake/README-macosx.txt | 34 + premake/README-mingw.txt | 39 + premake/README-windows.txt | 37 + premake/README.txt | 330 ++ premake/VisualC/VS2008/SDL.sln | 487 +++ premake/VisualC/VS2008/SDL2/SDL2.vcproj | 3004 +++++++++++++++++ .../VisualC/VS2008/SDL2main/SDL2main.vcproj | 199 ++ .../VisualC/VS2008/SDL2test/SDL2test.vcproj | 254 ++ premake/VisualC/VS2008/SDL_config_premake.h | 202 ++ .../VS2008/tests/checkkeys/checkkeys.vcproj | 208 ++ .../VS2008/tests/loopwave/loopwave.vcproj | 208 ++ .../VS2008/tests/testatomic/testatomic.vcproj | 208 ++ .../tests/testaudioinfo/testaudioinfo.vcproj | 208 ++ .../testautomation/testautomation.vcproj | 280 ++ .../testchessboard/testchessboard.vcproj | 208 ++ .../VS2008/tests/testdraw2/testdraw2.vcproj | 208 ++ .../VS2008/tests/testerror/testerror.vcproj | 208 ++ .../VS2008/tests/testfile/testfile.vcproj | 208 ++ .../testfilesystem/testfilesystem.vcproj | 208 ++ .../testgamecontroller.vcproj | 208 ++ .../tests/testgesture/testgesture.vcproj | 208 ++ .../VS2008/tests/testgl2/testgl2.vcproj | 208 ++ .../VS2008/tests/testgles/testgles.vcproj | 208 ++ .../VS2008/tests/testhaptic/testhaptic.vcproj | 208 ++ .../VS2008/tests/testiconv/testiconv.vcproj | 208 ++ .../VS2008/tests/testime/testime.vcproj | 208 ++ .../tests/testjoystick/testjoystick.vcproj | 208 ++ .../VS2008/tests/testkeys/testkeys.vcproj | 208 ++ .../VS2008/tests/testloadso/testloadso.vcproj | 208 ++ .../VS2008/tests/testlock/testlock.vcproj | 208 ++ .../tests/testmessage/testmessage.vcproj | 208 ++ .../testmultiaudio/testmultiaudio.vcproj | 208 ++ .../VS2008/tests/testnative/testnative.vcproj | 216 ++ .../tests/testoverlay2/testoverlay2.vcproj | 208 ++ .../tests/testplatform/testplatform.vcproj | 208 ++ .../VS2008/tests/testpower/testpower.vcproj | 208 ++ .../tests/testrelative/testrelative.vcproj | 208 ++ .../testrendercopyex/testrendercopyex.vcproj | 208 ++ .../testrendertarget/testrendertarget.vcproj | 208 ++ .../tests/testresample/testresample.vcproj | 208 ++ .../VS2008/tests/testrumble/testrumble.vcproj | 208 ++ .../VS2008/tests/testscale/testscale.vcproj | 208 ++ .../VS2008/tests/testsem/testsem.vcproj | 208 ++ .../VS2008/tests/testshader/testshader.vcproj | 208 ++ .../VS2008/tests/testshape/testshape.vcproj | 208 ++ .../tests/testsprite2/testsprite2.vcproj | 208 ++ .../testspriteminimal.vcproj | 208 ++ .../tests/teststreaming/teststreaming.vcproj | 208 ++ .../VS2008/tests/testthread/testthread.vcproj | 208 ++ .../VS2008/tests/testtimer/testtimer.vcproj | 208 ++ .../VS2008/tests/testver/testver.vcproj | 208 ++ .../VS2008/tests/testwm2/testwm2.vcproj | 208 ++ .../tests/torturethread/torturethread.vcproj | 208 ++ premake/VisualC/VS2010/SDL.sln | 487 +++ premake/VisualC/VS2010/SDL2/SDL2.vcxproj | 430 +++ .../VisualC/VS2010/SDL2/SDL2.vcxproj.filters | 708 ++++ .../VisualC/VS2010/SDL2main/SDL2main.vcxproj | 115 + .../VS2010/SDL2main/SDL2main.vcxproj.filters | 19 + .../VisualC/VS2010/SDL2test/SDL2test.vcxproj | 157 + .../VS2010/SDL2test/SDL2test.vcxproj.filters | 58 + premake/VisualC/VS2010/SDL_config_premake.h | 202 ++ .../VS2010/tests/checkkeys/checkkeys.vcxproj | 129 + .../tests/checkkeys/checkkeys.vcxproj.filters | 13 + .../VS2010/tests/loopwave/loopwave.vcxproj | 129 + .../tests/loopwave/loopwave.vcxproj.filters | 13 + .../tests/testatomic/testatomic.vcxproj | 129 + .../testatomic/testatomic.vcxproj.filters | 13 + .../tests/testaudioinfo/testaudioinfo.vcxproj | 129 + .../testaudioinfo.vcxproj.filters | 13 + .../testautomation/testautomation.vcxproj | 169 + .../testautomation.vcxproj.filters | 69 + .../testchessboard/testchessboard.vcxproj | 129 + .../testchessboard.vcxproj.filters | 13 + .../VS2010/tests/testdraw2/testdraw2.vcxproj | 132 + .../tests/testdraw2/testdraw2.vcxproj.filters | 13 + .../VS2010/tests/testerror/testerror.vcxproj | 129 + .../tests/testerror/testerror.vcxproj.filters | 13 + .../VS2010/tests/testfile/testfile.vcxproj | 129 + .../tests/testfile/testfile.vcxproj.filters | 13 + .../testfilesystem/testfilesystem.vcxproj | 129 + .../testfilesystem.vcxproj.filters | 13 + .../testgamecontroller.vcxproj | 129 + .../testgamecontroller.vcxproj.filters | 13 + .../tests/testgesture/testgesture.vcxproj | 129 + .../testgesture/testgesture.vcxproj.filters | 13 + .../VS2010/tests/testgl2/testgl2.vcxproj | 134 + .../tests/testgl2/testgl2.vcxproj.filters | 13 + .../VS2010/tests/testgles/testgles.vcxproj | 132 + .../tests/testgles/testgles.vcxproj.filters | 13 + .../tests/testhaptic/testhaptic.vcxproj | 129 + .../testhaptic/testhaptic.vcxproj.filters | 13 + .../VS2010/tests/testiconv/testiconv.vcxproj | 129 + .../tests/testiconv/testiconv.vcxproj.filters | 13 + .../VS2010/tests/testime/testime.vcxproj | 132 + .../tests/testime/testime.vcxproj.filters | 13 + .../tests/testjoystick/testjoystick.vcxproj | 129 + .../testjoystick/testjoystick.vcxproj.filters | 13 + .../VS2010/tests/testkeys/testkeys.vcxproj | 129 + .../tests/testkeys/testkeys.vcxproj.filters | 13 + .../tests/testloadso/testloadso.vcxproj | 129 + .../testloadso/testloadso.vcxproj.filters | 13 + .../VS2010/tests/testlock/testlock.vcxproj | 129 + .../tests/testlock/testlock.vcxproj.filters | 13 + .../tests/testmessage/testmessage.vcxproj | 129 + .../testmessage/testmessage.vcxproj.filters | 13 + .../testmultiaudio/testmultiaudio.vcxproj | 129 + .../testmultiaudio.vcxproj.filters | 13 + .../tests/testnative/testnative.vcxproj | 134 + .../testnative/testnative.vcxproj.filters | 21 + .../tests/testoverlay2/testoverlay2.vcxproj | 129 + .../testoverlay2/testoverlay2.vcxproj.filters | 13 + .../tests/testplatform/testplatform.vcxproj | 129 + .../testplatform/testplatform.vcxproj.filters | 13 + .../VS2010/tests/testpower/testpower.vcxproj | 129 + .../tests/testpower/testpower.vcxproj.filters | 13 + .../tests/testrelative/testrelative.vcxproj | 132 + .../testrelative/testrelative.vcxproj.filters | 13 + .../testrendercopyex/testrendercopyex.vcxproj | 132 + .../testrendercopyex.vcxproj.filters | 13 + .../testrendertarget/testrendertarget.vcxproj | 132 + .../testrendertarget.vcxproj.filters | 13 + .../tests/testresample/testresample.vcxproj | 129 + .../testresample/testresample.vcxproj.filters | 13 + .../tests/testrumble/testrumble.vcxproj | 129 + .../testrumble/testrumble.vcxproj.filters | 13 + .../VS2010/tests/testscale/testscale.vcxproj | 132 + .../tests/testscale/testscale.vcxproj.filters | 13 + .../VS2010/tests/testsem/testsem.vcxproj | 129 + .../tests/testsem/testsem.vcxproj.filters | 13 + .../tests/testshader/testshader.vcxproj | 131 + .../testshader/testshader.vcxproj.filters | 13 + .../VS2010/tests/testshape/testshape.vcxproj | 129 + .../tests/testshape/testshape.vcxproj.filters | 13 + .../tests/testsprite2/testsprite2.vcxproj | 132 + .../testsprite2/testsprite2.vcxproj.filters | 13 + .../testspriteminimal.vcxproj | 129 + .../testspriteminimal.vcxproj.filters | 13 + .../tests/teststreaming/teststreaming.vcxproj | 129 + .../teststreaming.vcxproj.filters | 13 + .../tests/testthread/testthread.vcxproj | 129 + .../testthread/testthread.vcxproj.filters | 13 + .../VS2010/tests/testtimer/testtimer.vcxproj | 129 + .../tests/testtimer/testtimer.vcxproj.filters | 13 + .../VS2010/tests/testver/testver.vcxproj | 129 + .../tests/testver/testver.vcxproj.filters | 13 + .../VS2010/tests/testwm2/testwm2.vcxproj | 132 + .../tests/testwm2/testwm2.vcxproj.filters | 13 + .../tests/torturethread/torturethread.vcxproj | 129 + .../torturethread.vcxproj.filters | 13 + premake/VisualC/VS2012/SDL.sln | 487 +++ premake/VisualC/VS2012/SDL2/SDL2.vcxproj | 432 +++ .../VisualC/VS2012/SDL2/SDL2.vcxproj.filters | 708 ++++ .../VisualC/VS2012/SDL2main/SDL2main.vcxproj | 117 + .../VS2012/SDL2main/SDL2main.vcxproj.filters | 19 + .../VisualC/VS2012/SDL2test/SDL2test.vcxproj | 159 + .../VS2012/SDL2test/SDL2test.vcxproj.filters | 58 + premake/VisualC/VS2012/SDL_config_premake.h | 202 ++ .../VS2012/tests/checkkeys/checkkeys.vcxproj | 131 + .../tests/checkkeys/checkkeys.vcxproj.filters | 13 + .../VS2012/tests/loopwave/loopwave.vcxproj | 131 + .../tests/loopwave/loopwave.vcxproj.filters | 13 + .../tests/testatomic/testatomic.vcxproj | 131 + .../testatomic/testatomic.vcxproj.filters | 13 + .../tests/testaudioinfo/testaudioinfo.vcxproj | 131 + .../testaudioinfo.vcxproj.filters | 13 + .../testautomation/testautomation.vcxproj | 171 + .../testautomation.vcxproj.filters | 69 + .../testchessboard/testchessboard.vcxproj | 131 + .../testchessboard.vcxproj.filters | 13 + .../VS2012/tests/testdraw2/testdraw2.vcxproj | 134 + .../tests/testdraw2/testdraw2.vcxproj.filters | 13 + .../VS2012/tests/testerror/testerror.vcxproj | 131 + .../tests/testerror/testerror.vcxproj.filters | 13 + .../VS2012/tests/testfile/testfile.vcxproj | 131 + .../tests/testfile/testfile.vcxproj.filters | 13 + .../testfilesystem/testfilesystem.vcxproj | 131 + .../testfilesystem.vcxproj.filters | 13 + .../testgamecontroller.vcxproj | 131 + .../testgamecontroller.vcxproj.filters | 13 + .../tests/testgesture/testgesture.vcxproj | 131 + .../testgesture/testgesture.vcxproj.filters | 13 + .../VS2012/tests/testgl2/testgl2.vcxproj | 136 + .../tests/testgl2/testgl2.vcxproj.filters | 13 + .../VS2012/tests/testgles/testgles.vcxproj | 134 + .../tests/testgles/testgles.vcxproj.filters | 13 + .../tests/testhaptic/testhaptic.vcxproj | 131 + .../testhaptic/testhaptic.vcxproj.filters | 13 + .../VS2012/tests/testiconv/testiconv.vcxproj | 131 + .../tests/testiconv/testiconv.vcxproj.filters | 13 + .../VS2012/tests/testime/testime.vcxproj | 134 + .../tests/testime/testime.vcxproj.filters | 13 + .../tests/testjoystick/testjoystick.vcxproj | 131 + .../testjoystick/testjoystick.vcxproj.filters | 13 + .../VS2012/tests/testkeys/testkeys.vcxproj | 131 + .../tests/testkeys/testkeys.vcxproj.filters | 13 + .../tests/testloadso/testloadso.vcxproj | 131 + .../testloadso/testloadso.vcxproj.filters | 13 + .../VS2012/tests/testlock/testlock.vcxproj | 131 + .../tests/testlock/testlock.vcxproj.filters | 13 + .../tests/testmessage/testmessage.vcxproj | 131 + .../testmessage/testmessage.vcxproj.filters | 13 + .../testmultiaudio/testmultiaudio.vcxproj | 131 + .../testmultiaudio.vcxproj.filters | 13 + .../tests/testnative/testnative.vcxproj | 136 + .../testnative/testnative.vcxproj.filters | 21 + .../tests/testoverlay2/testoverlay2.vcxproj | 131 + .../testoverlay2/testoverlay2.vcxproj.filters | 13 + .../tests/testplatform/testplatform.vcxproj | 131 + .../testplatform/testplatform.vcxproj.filters | 13 + .../VS2012/tests/testpower/testpower.vcxproj | 131 + .../tests/testpower/testpower.vcxproj.filters | 13 + .../tests/testrelative/testrelative.vcxproj | 134 + .../testrelative/testrelative.vcxproj.filters | 13 + .../testrendercopyex/testrendercopyex.vcxproj | 134 + .../testrendercopyex.vcxproj.filters | 13 + .../testrendertarget/testrendertarget.vcxproj | 134 + .../testrendertarget.vcxproj.filters | 13 + .../tests/testresample/testresample.vcxproj | 131 + .../testresample/testresample.vcxproj.filters | 13 + .../tests/testrumble/testrumble.vcxproj | 131 + .../testrumble/testrumble.vcxproj.filters | 13 + .../VS2012/tests/testscale/testscale.vcxproj | 134 + .../tests/testscale/testscale.vcxproj.filters | 13 + .../VS2012/tests/testsem/testsem.vcxproj | 131 + .../tests/testsem/testsem.vcxproj.filters | 13 + .../tests/testshader/testshader.vcxproj | 133 + .../testshader/testshader.vcxproj.filters | 13 + .../VS2012/tests/testshape/testshape.vcxproj | 131 + .../tests/testshape/testshape.vcxproj.filters | 13 + .../tests/testsprite2/testsprite2.vcxproj | 134 + .../testsprite2/testsprite2.vcxproj.filters | 13 + .../testspriteminimal.vcxproj | 131 + .../testspriteminimal.vcxproj.filters | 13 + .../tests/teststreaming/teststreaming.vcxproj | 131 + .../teststreaming.vcxproj.filters | 13 + .../tests/testthread/testthread.vcxproj | 131 + .../testthread/testthread.vcxproj.filters | 13 + .../VS2012/tests/testtimer/testtimer.vcxproj | 131 + .../tests/testtimer/testtimer.vcxproj.filters | 13 + .../VS2012/tests/testver/testver.vcxproj | 131 + .../tests/testver/testver.vcxproj.filters | 13 + .../VS2012/tests/testwm2/testwm2.vcxproj | 134 + .../tests/testwm2/testwm2.vcxproj.filters | 13 + .../tests/torturethread/torturethread.vcxproj | 131 + .../torturethread.vcxproj.filters | 13 + .../build-scripts/build.all.vs2010.bat | 5 + .../check.bin.compatibility.vs2010.bat | 81 + .../VisualC/build-scripts/clean_premake.bat | 9 + .../VisualC/build-scripts/generate.all.bat | 9 + premake/VisualC/build-scripts/premake4.exe | Bin 0 -> 483840 bytes .../build-scripts/run.tests.vs2010.bat | 108 + premake/VisualC/build-scripts/vs2008.bat | 4 + premake/VisualC/build-scripts/vs2010.bat | 4 + premake/VisualC/build-scripts/vs2012.bat | 4 + .../accelerometer.xcodeproj/project.pbxproj | 366 ++ .../fireworks.xcodeproj/project.pbxproj | 362 ++ .../happy/happy.xcodeproj/project.pbxproj | 362 ++ .../keyboard.xcodeproj/project.pbxproj | 370 ++ .../mixer/mixer.xcodeproj/project.pbxproj | 382 +++ .../rectangles.xcodeproj/project.pbxproj | 350 ++ .../touch/touch.xcodeproj/project.pbxproj | 362 ++ .../SDL.xcworkspace/contents.xcworkspacedata | 34 + .../SDL2/SDL2.xcodeproj/project.pbxproj | 1033 ++++++ .../SDL2main.xcodeproj/project.pbxproj | 241 ++ .../SDL2test.xcodeproj/project.pbxproj | 430 +++ premake/Xcode-iOS/SDL_config_premake.h | 163 + .../build-scripts/clean_premake.command | 4 + premake/Xcode-iOS/build-scripts/premake4 | Bin 0 -> 419580 bytes .../Xcode-iOS/build-scripts/xcode3.command | 4 + .../Xcode-iOS/build-scripts/xcode4.command | 4 + .../SDL2/SDL2.xcodeproj/project.pbxproj | 1231 +++++++ .../SDL2main.xcodeproj/project.pbxproj | 323 ++ .../SDL2test.xcodeproj/project.pbxproj | 520 +++ premake/Xcode/Xcode3/SDL_config_premake.h | 205 ++ .../checkkeys.xcodeproj/project.pbxproj | 457 +++ .../loopwave.xcodeproj/project.pbxproj | 474 +++ .../testatomic.xcodeproj/project.pbxproj | 457 +++ .../testaudioinfo.xcodeproj/project.pbxproj | 457 +++ .../testautomation.xcodeproj/project.pbxproj | 570 ++++ .../testchessboard.xcodeproj/project.pbxproj | 457 +++ .../testdraw2.xcodeproj/project.pbxproj | 500 +++ .../testerror.xcodeproj/project.pbxproj | 457 +++ .../testfile.xcodeproj/project.pbxproj | 457 +++ .../testfilesystem.xcodeproj/project.pbxproj | 457 +++ .../project.pbxproj | 457 +++ .../testgesture.xcodeproj/project.pbxproj | 457 +++ .../testgl2/testgl2.xcodeproj/project.pbxproj | 504 +++ .../testgles.xcodeproj/project.pbxproj | 500 +++ .../testhaptic.xcodeproj/project.pbxproj | 457 +++ .../testiconv.xcodeproj/project.pbxproj | 474 +++ .../testime/testime.xcodeproj/project.pbxproj | 500 +++ .../testjoystick.xcodeproj/project.pbxproj | 457 +++ .../testkeys.xcodeproj/project.pbxproj | 457 +++ .../testloadso.xcodeproj/project.pbxproj | 457 +++ .../testlock.xcodeproj/project.pbxproj | 457 +++ .../testmessage.xcodeproj/project.pbxproj | 457 +++ .../testmultiaudio.xcodeproj/project.pbxproj | 474 +++ .../testnative.xcodeproj/project.pbxproj | 480 +++ .../testoverlay2.xcodeproj/project.pbxproj | 474 +++ .../testplatform.xcodeproj/project.pbxproj | 457 +++ .../testpower.xcodeproj/project.pbxproj | 457 +++ .../testrelative.xcodeproj/project.pbxproj | 500 +++ .../project.pbxproj | 517 +++ .../project.pbxproj | 517 +++ .../testresample.xcodeproj/project.pbxproj | 474 +++ .../testrumble.xcodeproj/project.pbxproj | 457 +++ .../testscale.xcodeproj/project.pbxproj | 517 +++ .../testsem/testsem.xcodeproj/project.pbxproj | 457 +++ .../testshader.xcodeproj/project.pbxproj | 478 +++ .../testshape.xcodeproj/project.pbxproj | 474 +++ .../testsprite2.xcodeproj/project.pbxproj | 517 +++ .../project.pbxproj | 474 +++ .../teststreaming.xcodeproj/project.pbxproj | 474 +++ .../testthread.xcodeproj/project.pbxproj | 457 +++ .../testtimer.xcodeproj/project.pbxproj | 457 +++ .../testver/testver.xcodeproj/project.pbxproj | 457 +++ .../testwm2/testwm2.xcodeproj/project.pbxproj | 500 +++ .../torturethread.xcodeproj/project.pbxproj | 457 +++ .../SDL.xcworkspace/contents.xcworkspacedata | 145 + .../SDL2/SDL2.xcodeproj/project.pbxproj | 1229 +++++++ .../SDL2main.xcodeproj/project.pbxproj | 321 ++ .../SDL2test.xcodeproj/project.pbxproj | 518 +++ premake/Xcode/Xcode4/SDL_config_premake.h | 205 ++ .../checkkeys.xcodeproj/project.pbxproj | 455 +++ .../loopwave.xcodeproj/project.pbxproj | 472 +++ .../testatomic.xcodeproj/project.pbxproj | 455 +++ .../testaudioinfo.xcodeproj/project.pbxproj | 455 +++ .../testautomation.xcodeproj/project.pbxproj | 568 ++++ .../testchessboard.xcodeproj/project.pbxproj | 455 +++ .../testdraw2.xcodeproj/project.pbxproj | 498 +++ .../testerror.xcodeproj/project.pbxproj | 455 +++ .../testfile.xcodeproj/project.pbxproj | 455 +++ .../testfilesystem.xcodeproj/project.pbxproj | 455 +++ .../project.pbxproj | 455 +++ .../testgesture.xcodeproj/project.pbxproj | 455 +++ .../testgl2/testgl2.xcodeproj/project.pbxproj | 502 +++ .../testgles.xcodeproj/project.pbxproj | 498 +++ .../testhaptic.xcodeproj/project.pbxproj | 455 +++ .../testiconv.xcodeproj/project.pbxproj | 472 +++ .../testime/testime.xcodeproj/project.pbxproj | 498 +++ .../testjoystick.xcodeproj/project.pbxproj | 455 +++ .../testkeys.xcodeproj/project.pbxproj | 455 +++ .../testloadso.xcodeproj/project.pbxproj | 455 +++ .../testlock.xcodeproj/project.pbxproj | 455 +++ .../testmessage.xcodeproj/project.pbxproj | 455 +++ .../testmultiaudio.xcodeproj/project.pbxproj | 472 +++ .../testnative.xcodeproj/project.pbxproj | 478 +++ .../testoverlay2.xcodeproj/project.pbxproj | 472 +++ .../testplatform.xcodeproj/project.pbxproj | 455 +++ .../testpower.xcodeproj/project.pbxproj | 455 +++ .../testrelative.xcodeproj/project.pbxproj | 498 +++ .../project.pbxproj | 515 +++ .../project.pbxproj | 515 +++ .../testresample.xcodeproj/project.pbxproj | 472 +++ .../testrumble.xcodeproj/project.pbxproj | 455 +++ .../testscale.xcodeproj/project.pbxproj | 515 +++ .../testsem/testsem.xcodeproj/project.pbxproj | 455 +++ .../testshader.xcodeproj/project.pbxproj | 476 +++ .../testshape.xcodeproj/project.pbxproj | 472 +++ .../testsprite2.xcodeproj/project.pbxproj | 515 +++ .../project.pbxproj | 472 +++ .../teststreaming.xcodeproj/project.pbxproj | 472 +++ .../testthread.xcodeproj/project.pbxproj | 455 +++ .../testtimer.xcodeproj/project.pbxproj | 455 +++ .../testver/testver.xcodeproj/project.pbxproj | 455 +++ .../testwm2/testwm2.xcodeproj/project.pbxproj | 498 +++ .../torturethread.xcodeproj/project.pbxproj | 455 +++ .../build.all.xcode3.i386.command | 35 + .../build.all.xcode3.x86_64.command | 35 + .../build.all.xcode4.i386.command | 33 + .../build.all.xcode4.x86_64.command | 33 + .../Xcode/build-scripts/clean_premake.command | 4 + premake/Xcode/build-scripts/premake4 | Bin 0 -> 419580 bytes premake/Xcode/build-scripts/run.tests.command | 93 + premake/Xcode/build-scripts/xcode3.command | 4 + premake/Xcode/build-scripts/xcode4.command | 4 + premake/changelog | 828 +++++ premake/config/SDL_config_cygwin.template.h | 173 + premake/config/SDL_config_iphoneos.template.h | 113 + premake/config/SDL_config_linux.template.h | 180 + premake/config/SDL_config_macosx.template.h | 161 + premake/config/SDL_config_minimal.template.h | 78 + premake/config/SDL_config_windows.template.h | 149 + premake/patches/709.patch | 29 + premake/patches/711.patch | 30 + premake/patches/712.patch | 58 + premake/patches/713.patch | 64 + premake/patches/iOS.patch | 71 + premake/patches/premake.patches.txt | 26 + premake/premake4.lua | 482 +++ premake/projects/SDL2.lua | 404 +++ premake/projects/SDL2main.lua | 31 + premake/projects/SDL2test.lua | 28 + premake/projects/accelerometer.lua | 28 + premake/projects/checkkeys.lua | 28 + premake/projects/fireworks.lua | 28 + premake/projects/happy.lua | 28 + premake/projects/keyboard.lua | 28 + premake/projects/loopwave.lua | 30 + premake/projects/mixer.lua | 30 + premake/projects/rectangles.lua | 28 + premake/projects/testatomic.lua | 28 + premake/projects/testaudioinfo.lua | 28 + premake/projects/testautomation.lua | 28 + premake/projects/testdraw2.lua | 28 + premake/projects/testdrawchessboard.lua | 28 + premake/projects/testerror.lua | 28 + premake/projects/testfile.lua | 28 + premake/projects/testfilesystem.lua | 28 + premake/projects/testgamecontroller.lua | 28 + premake/projects/testgesture.lua | 28 + premake/projects/testgl2.lua | 34 + premake/projects/testgles.lua | 28 + premake/projects/testhaptic.lua | 28 + premake/projects/testiconv.lua | 29 + premake/projects/testime.lua | 28 + premake/projects/testintersection.lua | 28 + premake/projects/testjoystick.lua | 28 + premake/projects/testkeys.lua | 28 + premake/projects/testloadso.lua | 28 + premake/projects/testlock.lua | 28 + premake/projects/testmessage.lua | 28 + premake/projects/testmultiaudio.lua | 29 + premake/projects/testnative.lua | 40 + premake/projects/testoverlay2.lua | 30 + premake/projects/testplatform.lua | 28 + premake/projects/testpower.lua | 28 + premake/projects/testrelative.lua | 28 + premake/projects/testrendercopyex.lua | 29 + premake/projects/testrendertarget.lua | 30 + premake/projects/testresample.lua | 30 + premake/projects/testrumble.lua | 28 + premake/projects/testscale.lua | 30 + premake/projects/testsem.lua | 28 + premake/projects/testshader.lua | 35 + premake/projects/testshape.lua | 32 + premake/projects/testsprite2.lua | 30 + premake/projects/testspriteminimal.lua | 29 + premake/projects/teststreaming.lua | 29 + premake/projects/testthread.lua | 28 + premake/projects/testtimer.lua | 28 + premake/projects/testver.lua | 28 + premake/projects/testwm2.lua | 28 + premake/projects/torturethread.lua | 28 + premake/projects/touch.lua | 28 + premake/util/sdl_check_compile.lua | 307 ++ premake/util/sdl_dependency_checkers.lua | 204 ++ premake/util/sdl_depends.lua | 74 + premake/util/sdl_file.lua | 141 + premake/util/sdl_gen_config.lua | 68 + premake/util/sdl_projects.lua | 461 +++ premake/util/sdl_string.lua | 103 + 473 files changed, 89151 insertions(+), 1 deletion(-) create mode 100755 premake/Cygwin/build-scripts/clean_premake.bat create mode 100755 premake/Cygwin/build-scripts/cygwin.bat create mode 100755 premake/Cygwin/build-scripts/make.debug.bat create mode 100755 premake/Cygwin/build-scripts/make.release.bat create mode 100755 premake/Cygwin/build-scripts/premake4.exe create mode 100755 premake/Cygwin/build-scripts/run.tests.debug.bat create mode 100755 premake/Cygwin/build-scripts/run.tests.release.bat create mode 100755 premake/Linux/SDL_config_premake.h create mode 100755 premake/Linux/build-scripts/clean_premake.sh create mode 100755 premake/Linux/build-scripts/gmake.sh create mode 100755 premake/Linux/build-scripts/premake4 create mode 100755 premake/Linux/build-scripts/run.tests.sh create mode 100755 premake/MinGW/SDL_config_premake.h create mode 100755 premake/MinGW/build-scripts/clean_premake.bat create mode 100755 premake/MinGW/build-scripts/mingw.bat create mode 100755 premake/MinGW/build-scripts/premake4.exe create mode 100755 premake/MinGW/build-scripts/run.tests.bat create mode 100755 premake/README-cygwin.txt create mode 100755 premake/README-ios.txt create mode 100755 premake/README-linux.txt create mode 100755 premake/README-macosx.txt create mode 100755 premake/README-mingw.txt create mode 100755 premake/README-windows.txt create mode 100755 premake/README.txt create mode 100755 premake/VisualC/VS2008/SDL.sln create mode 100755 premake/VisualC/VS2008/SDL2/SDL2.vcproj create mode 100755 premake/VisualC/VS2008/SDL2main/SDL2main.vcproj create mode 100755 premake/VisualC/VS2008/SDL2test/SDL2test.vcproj create mode 100755 premake/VisualC/VS2008/SDL_config_premake.h create mode 100755 premake/VisualC/VS2008/tests/checkkeys/checkkeys.vcproj create mode 100755 premake/VisualC/VS2008/tests/loopwave/loopwave.vcproj create mode 100755 premake/VisualC/VS2008/tests/testatomic/testatomic.vcproj create mode 100755 premake/VisualC/VS2008/tests/testaudioinfo/testaudioinfo.vcproj create mode 100755 premake/VisualC/VS2008/tests/testautomation/testautomation.vcproj create mode 100755 premake/VisualC/VS2008/tests/testchessboard/testchessboard.vcproj create mode 100755 premake/VisualC/VS2008/tests/testdraw2/testdraw2.vcproj create mode 100755 premake/VisualC/VS2008/tests/testerror/testerror.vcproj create mode 100755 premake/VisualC/VS2008/tests/testfile/testfile.vcproj create mode 100755 premake/VisualC/VS2008/tests/testfilesystem/testfilesystem.vcproj create mode 100755 premake/VisualC/VS2008/tests/testgamecontroller/testgamecontroller.vcproj create mode 100755 premake/VisualC/VS2008/tests/testgesture/testgesture.vcproj create mode 100755 premake/VisualC/VS2008/tests/testgl2/testgl2.vcproj create mode 100755 premake/VisualC/VS2008/tests/testgles/testgles.vcproj create mode 100755 premake/VisualC/VS2008/tests/testhaptic/testhaptic.vcproj create mode 100755 premake/VisualC/VS2008/tests/testiconv/testiconv.vcproj create mode 100755 premake/VisualC/VS2008/tests/testime/testime.vcproj create mode 100755 premake/VisualC/VS2008/tests/testjoystick/testjoystick.vcproj create mode 100755 premake/VisualC/VS2008/tests/testkeys/testkeys.vcproj create mode 100755 premake/VisualC/VS2008/tests/testloadso/testloadso.vcproj create mode 100755 premake/VisualC/VS2008/tests/testlock/testlock.vcproj create mode 100755 premake/VisualC/VS2008/tests/testmessage/testmessage.vcproj create mode 100755 premake/VisualC/VS2008/tests/testmultiaudio/testmultiaudio.vcproj create mode 100755 premake/VisualC/VS2008/tests/testnative/testnative.vcproj create mode 100755 premake/VisualC/VS2008/tests/testoverlay2/testoverlay2.vcproj create mode 100755 premake/VisualC/VS2008/tests/testplatform/testplatform.vcproj create mode 100755 premake/VisualC/VS2008/tests/testpower/testpower.vcproj create mode 100755 premake/VisualC/VS2008/tests/testrelative/testrelative.vcproj create mode 100755 premake/VisualC/VS2008/tests/testrendercopyex/testrendercopyex.vcproj create mode 100755 premake/VisualC/VS2008/tests/testrendertarget/testrendertarget.vcproj create mode 100755 premake/VisualC/VS2008/tests/testresample/testresample.vcproj create mode 100755 premake/VisualC/VS2008/tests/testrumble/testrumble.vcproj create mode 100755 premake/VisualC/VS2008/tests/testscale/testscale.vcproj create mode 100755 premake/VisualC/VS2008/tests/testsem/testsem.vcproj create mode 100755 premake/VisualC/VS2008/tests/testshader/testshader.vcproj create mode 100755 premake/VisualC/VS2008/tests/testshape/testshape.vcproj create mode 100755 premake/VisualC/VS2008/tests/testsprite2/testsprite2.vcproj create mode 100755 premake/VisualC/VS2008/tests/testspriteminimal/testspriteminimal.vcproj create mode 100755 premake/VisualC/VS2008/tests/teststreaming/teststreaming.vcproj create mode 100755 premake/VisualC/VS2008/tests/testthread/testthread.vcproj create mode 100755 premake/VisualC/VS2008/tests/testtimer/testtimer.vcproj create mode 100755 premake/VisualC/VS2008/tests/testver/testver.vcproj create mode 100755 premake/VisualC/VS2008/tests/testwm2/testwm2.vcproj create mode 100755 premake/VisualC/VS2008/tests/torturethread/torturethread.vcproj create mode 100755 premake/VisualC/VS2010/SDL.sln create mode 100755 premake/VisualC/VS2010/SDL2/SDL2.vcxproj create mode 100755 premake/VisualC/VS2010/SDL2/SDL2.vcxproj.filters create mode 100755 premake/VisualC/VS2010/SDL2main/SDL2main.vcxproj create mode 100755 premake/VisualC/VS2010/SDL2main/SDL2main.vcxproj.filters create mode 100755 premake/VisualC/VS2010/SDL2test/SDL2test.vcxproj create mode 100755 premake/VisualC/VS2010/SDL2test/SDL2test.vcxproj.filters create mode 100755 premake/VisualC/VS2010/SDL_config_premake.h create mode 100755 premake/VisualC/VS2010/tests/checkkeys/checkkeys.vcxproj create mode 100755 premake/VisualC/VS2010/tests/checkkeys/checkkeys.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/loopwave/loopwave.vcxproj create mode 100755 premake/VisualC/VS2010/tests/loopwave/loopwave.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testatomic/testatomic.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testatomic/testatomic.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testaudioinfo/testaudioinfo.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testaudioinfo/testaudioinfo.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testautomation/testautomation.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testautomation/testautomation.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testchessboard/testchessboard.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testchessboard/testchessboard.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testdraw2/testdraw2.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testdraw2/testdraw2.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testerror/testerror.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testerror/testerror.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testfile/testfile.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testfile/testfile.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testfilesystem/testfilesystem.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testfilesystem/testfilesystem.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testgamecontroller/testgamecontroller.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testgamecontroller/testgamecontroller.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testgesture/testgesture.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testgesture/testgesture.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testgl2/testgl2.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testgl2/testgl2.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testgles/testgles.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testgles/testgles.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testhaptic/testhaptic.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testhaptic/testhaptic.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testiconv/testiconv.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testiconv/testiconv.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testime/testime.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testime/testime.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testjoystick/testjoystick.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testjoystick/testjoystick.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testkeys/testkeys.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testkeys/testkeys.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testloadso/testloadso.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testloadso/testloadso.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testlock/testlock.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testlock/testlock.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testmessage/testmessage.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testmessage/testmessage.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testmultiaudio/testmultiaudio.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testmultiaudio/testmultiaudio.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testnative/testnative.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testnative/testnative.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testoverlay2/testoverlay2.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testoverlay2/testoverlay2.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testplatform/testplatform.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testplatform/testplatform.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testpower/testpower.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testpower/testpower.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testrelative/testrelative.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testrelative/testrelative.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testrendercopyex/testrendercopyex.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testrendercopyex/testrendercopyex.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testrendertarget/testrendertarget.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testrendertarget/testrendertarget.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testresample/testresample.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testresample/testresample.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testrumble/testrumble.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testrumble/testrumble.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testscale/testscale.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testscale/testscale.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testsem/testsem.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testsem/testsem.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testshader/testshader.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testshader/testshader.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testshape/testshape.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testshape/testshape.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testsprite2/testsprite2.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testsprite2/testsprite2.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testspriteminimal/testspriteminimal.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testspriteminimal/testspriteminimal.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/teststreaming/teststreaming.vcxproj create mode 100755 premake/VisualC/VS2010/tests/teststreaming/teststreaming.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testthread/testthread.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testthread/testthread.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testtimer/testtimer.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testtimer/testtimer.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testver/testver.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testver/testver.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testwm2/testwm2.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testwm2/testwm2.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/torturethread/torturethread.vcxproj create mode 100755 premake/VisualC/VS2010/tests/torturethread/torturethread.vcxproj.filters create mode 100755 premake/VisualC/VS2012/SDL.sln create mode 100755 premake/VisualC/VS2012/SDL2/SDL2.vcxproj create mode 100755 premake/VisualC/VS2012/SDL2/SDL2.vcxproj.filters create mode 100755 premake/VisualC/VS2012/SDL2main/SDL2main.vcxproj create mode 100755 premake/VisualC/VS2012/SDL2main/SDL2main.vcxproj.filters create mode 100755 premake/VisualC/VS2012/SDL2test/SDL2test.vcxproj create mode 100755 premake/VisualC/VS2012/SDL2test/SDL2test.vcxproj.filters create mode 100755 premake/VisualC/VS2012/SDL_config_premake.h create mode 100755 premake/VisualC/VS2012/tests/checkkeys/checkkeys.vcxproj create mode 100755 premake/VisualC/VS2012/tests/checkkeys/checkkeys.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/loopwave/loopwave.vcxproj create mode 100755 premake/VisualC/VS2012/tests/loopwave/loopwave.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testatomic/testatomic.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testatomic/testatomic.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testaudioinfo/testaudioinfo.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testaudioinfo/testaudioinfo.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testautomation/testautomation.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testautomation/testautomation.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testchessboard/testchessboard.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testchessboard/testchessboard.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testdraw2/testdraw2.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testdraw2/testdraw2.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testerror/testerror.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testerror/testerror.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testfile/testfile.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testfile/testfile.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testfilesystem/testfilesystem.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testfilesystem/testfilesystem.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testgamecontroller/testgamecontroller.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testgamecontroller/testgamecontroller.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testgesture/testgesture.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testgesture/testgesture.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testgl2/testgl2.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testgl2/testgl2.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testgles/testgles.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testgles/testgles.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testhaptic/testhaptic.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testhaptic/testhaptic.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testiconv/testiconv.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testiconv/testiconv.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testime/testime.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testime/testime.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testjoystick/testjoystick.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testjoystick/testjoystick.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testkeys/testkeys.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testkeys/testkeys.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testloadso/testloadso.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testloadso/testloadso.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testlock/testlock.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testlock/testlock.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testmessage/testmessage.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testmessage/testmessage.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testmultiaudio/testmultiaudio.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testmultiaudio/testmultiaudio.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testnative/testnative.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testnative/testnative.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testoverlay2/testoverlay2.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testoverlay2/testoverlay2.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testplatform/testplatform.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testplatform/testplatform.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testpower/testpower.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testpower/testpower.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testrelative/testrelative.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testrelative/testrelative.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testrendercopyex/testrendercopyex.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testrendercopyex/testrendercopyex.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testrendertarget/testrendertarget.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testrendertarget/testrendertarget.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testresample/testresample.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testresample/testresample.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testrumble/testrumble.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testrumble/testrumble.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testscale/testscale.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testscale/testscale.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testsem/testsem.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testsem/testsem.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testshader/testshader.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testshader/testshader.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testshape/testshape.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testshape/testshape.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testsprite2/testsprite2.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testsprite2/testsprite2.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testspriteminimal/testspriteminimal.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testspriteminimal/testspriteminimal.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/teststreaming/teststreaming.vcxproj create mode 100755 premake/VisualC/VS2012/tests/teststreaming/teststreaming.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testthread/testthread.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testthread/testthread.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testtimer/testtimer.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testtimer/testtimer.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testver/testver.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testver/testver.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testwm2/testwm2.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testwm2/testwm2.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/torturethread/torturethread.vcxproj create mode 100755 premake/VisualC/VS2012/tests/torturethread/torturethread.vcxproj.filters create mode 100755 premake/VisualC/build-scripts/build.all.vs2010.bat create mode 100755 premake/VisualC/build-scripts/check.bin.compatibility.vs2010.bat create mode 100755 premake/VisualC/build-scripts/clean_premake.bat create mode 100755 premake/VisualC/build-scripts/generate.all.bat create mode 100755 premake/VisualC/build-scripts/premake4.exe create mode 100755 premake/VisualC/build-scripts/run.tests.vs2010.bat create mode 100755 premake/VisualC/build-scripts/vs2008.bat create mode 100755 premake/VisualC/build-scripts/vs2010.bat create mode 100755 premake/VisualC/build-scripts/vs2012.bat create mode 100755 premake/Xcode-iOS/Demos/accelerometer/accelerometer.xcodeproj/project.pbxproj create mode 100755 premake/Xcode-iOS/Demos/fireworks/fireworks.xcodeproj/project.pbxproj create mode 100755 premake/Xcode-iOS/Demos/happy/happy.xcodeproj/project.pbxproj create mode 100755 premake/Xcode-iOS/Demos/keyboard/keyboard.xcodeproj/project.pbxproj create mode 100755 premake/Xcode-iOS/Demos/mixer/mixer.xcodeproj/project.pbxproj create mode 100755 premake/Xcode-iOS/Demos/rectangles/rectangles.xcodeproj/project.pbxproj create mode 100755 premake/Xcode-iOS/Demos/touch/touch.xcodeproj/project.pbxproj create mode 100755 premake/Xcode-iOS/SDL.xcworkspace/contents.xcworkspacedata create mode 100755 premake/Xcode-iOS/SDL2/SDL2.xcodeproj/project.pbxproj create mode 100755 premake/Xcode-iOS/SDL2main/SDL2main.xcodeproj/project.pbxproj create mode 100755 premake/Xcode-iOS/SDL2test/SDL2test.xcodeproj/project.pbxproj create mode 100755 premake/Xcode-iOS/SDL_config_premake.h create mode 100755 premake/Xcode-iOS/build-scripts/clean_premake.command create mode 100755 premake/Xcode-iOS/build-scripts/premake4 create mode 100755 premake/Xcode-iOS/build-scripts/xcode3.command create mode 100755 premake/Xcode-iOS/build-scripts/xcode4.command create mode 100755 premake/Xcode/Xcode3/SDL2/SDL2.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/SDL2main/SDL2main.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/SDL2test/SDL2test.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/SDL_config_premake.h create mode 100755 premake/Xcode/Xcode3/tests/checkkeys/checkkeys.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/loopwave/loopwave.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testatomic/testatomic.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testaudioinfo/testaudioinfo.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testautomation/testautomation.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testchessboard/testchessboard.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testdraw2/testdraw2.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testerror/testerror.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testfile/testfile.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testfilesystem/testfilesystem.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testgamecontroller/testgamecontroller.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testgesture/testgesture.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testgl2/testgl2.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testgles/testgles.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testhaptic/testhaptic.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testiconv/testiconv.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testime/testime.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testjoystick/testjoystick.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testkeys/testkeys.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testloadso/testloadso.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testlock/testlock.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testmessage/testmessage.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testmultiaudio/testmultiaudio.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testnative/testnative.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testoverlay2/testoverlay2.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testplatform/testplatform.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testpower/testpower.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testrelative/testrelative.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testrendercopyex/testrendercopyex.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testrendertarget/testrendertarget.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testresample/testresample.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testrumble/testrumble.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testscale/testscale.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testsem/testsem.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testshader/testshader.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testshape/testshape.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testsprite2/testsprite2.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testspriteminimal/testspriteminimal.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/teststreaming/teststreaming.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testthread/testthread.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testtimer/testtimer.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testver/testver.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testwm2/testwm2.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/torturethread/torturethread.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/SDL.xcworkspace/contents.xcworkspacedata create mode 100755 premake/Xcode/Xcode4/SDL2/SDL2.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/SDL2main/SDL2main.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/SDL2test/SDL2test.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/SDL_config_premake.h create mode 100755 premake/Xcode/Xcode4/tests/checkkeys/checkkeys.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/loopwave/loopwave.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testatomic/testatomic.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testaudioinfo/testaudioinfo.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testautomation/testautomation.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testchessboard/testchessboard.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testdraw2/testdraw2.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testerror/testerror.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testfile/testfile.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testfilesystem/testfilesystem.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testgamecontroller/testgamecontroller.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testgesture/testgesture.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testgl2/testgl2.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testgles/testgles.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testhaptic/testhaptic.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testiconv/testiconv.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testime/testime.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testjoystick/testjoystick.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testkeys/testkeys.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testloadso/testloadso.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testlock/testlock.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testmessage/testmessage.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testmultiaudio/testmultiaudio.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testnative/testnative.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testoverlay2/testoverlay2.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testplatform/testplatform.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testpower/testpower.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testrelative/testrelative.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testrendercopyex/testrendercopyex.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testrendertarget/testrendertarget.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testresample/testresample.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testrumble/testrumble.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testscale/testscale.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testsem/testsem.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testshader/testshader.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testshape/testshape.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testsprite2/testsprite2.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testspriteminimal/testspriteminimal.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/teststreaming/teststreaming.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testthread/testthread.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testtimer/testtimer.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testver/testver.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testwm2/testwm2.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/torturethread/torturethread.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/build-scripts/build.all.xcode3.i386.command create mode 100755 premake/Xcode/build-scripts/build.all.xcode3.x86_64.command create mode 100755 premake/Xcode/build-scripts/build.all.xcode4.i386.command create mode 100755 premake/Xcode/build-scripts/build.all.xcode4.x86_64.command create mode 100755 premake/Xcode/build-scripts/clean_premake.command create mode 100755 premake/Xcode/build-scripts/premake4 create mode 100755 premake/Xcode/build-scripts/run.tests.command create mode 100755 premake/Xcode/build-scripts/xcode3.command create mode 100755 premake/Xcode/build-scripts/xcode4.command create mode 100755 premake/changelog create mode 100755 premake/config/SDL_config_cygwin.template.h create mode 100755 premake/config/SDL_config_iphoneos.template.h create mode 100755 premake/config/SDL_config_linux.template.h create mode 100755 premake/config/SDL_config_macosx.template.h create mode 100755 premake/config/SDL_config_minimal.template.h create mode 100755 premake/config/SDL_config_windows.template.h create mode 100755 premake/patches/709.patch create mode 100755 premake/patches/711.patch create mode 100755 premake/patches/712.patch create mode 100755 premake/patches/713.patch create mode 100755 premake/patches/iOS.patch create mode 100755 premake/patches/premake.patches.txt create mode 100755 premake/premake4.lua create mode 100755 premake/projects/SDL2.lua create mode 100755 premake/projects/SDL2main.lua create mode 100755 premake/projects/SDL2test.lua create mode 100755 premake/projects/accelerometer.lua create mode 100755 premake/projects/checkkeys.lua create mode 100755 premake/projects/fireworks.lua create mode 100755 premake/projects/happy.lua create mode 100755 premake/projects/keyboard.lua create mode 100755 premake/projects/loopwave.lua create mode 100755 premake/projects/mixer.lua create mode 100755 premake/projects/rectangles.lua create mode 100755 premake/projects/testatomic.lua create mode 100755 premake/projects/testaudioinfo.lua create mode 100755 premake/projects/testautomation.lua create mode 100755 premake/projects/testdraw2.lua create mode 100755 premake/projects/testdrawchessboard.lua create mode 100755 premake/projects/testerror.lua create mode 100755 premake/projects/testfile.lua create mode 100755 premake/projects/testfilesystem.lua create mode 100755 premake/projects/testgamecontroller.lua create mode 100755 premake/projects/testgesture.lua create mode 100755 premake/projects/testgl2.lua create mode 100755 premake/projects/testgles.lua create mode 100755 premake/projects/testhaptic.lua create mode 100755 premake/projects/testiconv.lua create mode 100755 premake/projects/testime.lua create mode 100755 premake/projects/testintersection.lua create mode 100755 premake/projects/testjoystick.lua create mode 100755 premake/projects/testkeys.lua create mode 100755 premake/projects/testloadso.lua create mode 100755 premake/projects/testlock.lua create mode 100755 premake/projects/testmessage.lua create mode 100755 premake/projects/testmultiaudio.lua create mode 100755 premake/projects/testnative.lua create mode 100755 premake/projects/testoverlay2.lua create mode 100755 premake/projects/testplatform.lua create mode 100755 premake/projects/testpower.lua create mode 100755 premake/projects/testrelative.lua create mode 100755 premake/projects/testrendercopyex.lua create mode 100755 premake/projects/testrendertarget.lua create mode 100755 premake/projects/testresample.lua create mode 100755 premake/projects/testrumble.lua create mode 100755 premake/projects/testscale.lua create mode 100755 premake/projects/testsem.lua create mode 100755 premake/projects/testshader.lua create mode 100755 premake/projects/testshape.lua create mode 100755 premake/projects/testsprite2.lua create mode 100755 premake/projects/testspriteminimal.lua create mode 100755 premake/projects/teststreaming.lua create mode 100755 premake/projects/testthread.lua create mode 100755 premake/projects/testtimer.lua create mode 100755 premake/projects/testver.lua create mode 100755 premake/projects/testwm2.lua create mode 100755 premake/projects/torturethread.lua create mode 100755 premake/projects/touch.lua create mode 100755 premake/util/sdl_check_compile.lua create mode 100755 premake/util/sdl_dependency_checkers.lua create mode 100755 premake/util/sdl_depends.lua create mode 100755 premake/util/sdl_file.lua create mode 100755 premake/util/sdl_gen_config.lua create mode 100755 premake/util/sdl_projects.lua create mode 100755 premake/util/sdl_string.lua diff --git a/include/SDL_config.h b/include/SDL_config.h index 7440940add0ae..4d74bab7aa7af 100644 --- a/include/SDL_config.h +++ b/include/SDL_config.h @@ -29,7 +29,9 @@ */ /* Add any platform that doesn't build using the configure system. */ -#if defined(__WIN32__) +#ifdef USING_PREMAKE_CONFIG_H +#include "SDL_config_premake.h" +#elif defined(__WIN32__) #include "SDL_config_windows.h" #elif defined(__MACOSX__) #include "SDL_config_macosx.h" diff --git a/premake/Cygwin/build-scripts/clean_premake.bat b/premake/Cygwin/build-scripts/clean_premake.bat new file mode 100755 index 0000000000000..0b34a39c6db88 --- /dev/null +++ b/premake/Cygwin/build-scripts/clean_premake.bat @@ -0,0 +1,4 @@ +@echo off +cd .. +%~dp0\premake4.exe --file=..\premake4.lua --to=.\Cygwin --cygwin clean +pause \ No newline at end of file diff --git a/premake/Cygwin/build-scripts/cygwin.bat b/premake/Cygwin/build-scripts/cygwin.bat new file mode 100755 index 0000000000000..1710a01124611 --- /dev/null +++ b/premake/Cygwin/build-scripts/cygwin.bat @@ -0,0 +1,4 @@ +@echo off +cd .. +%~dp0\premake4.exe --file=..\premake4.lua --to=.\Cygwin --cygwin gmake +pause \ No newline at end of file diff --git a/premake/Cygwin/build-scripts/make.debug.bat b/premake/Cygwin/build-scripts/make.debug.bat new file mode 100755 index 0000000000000..21c90a64cec5f --- /dev/null +++ b/premake/Cygwin/build-scripts/make.debug.bat @@ -0,0 +1,5 @@ +@echo off +echo This script assumes Cygwin's make utility is in your Path +cd .. +make config=debug +pause \ No newline at end of file diff --git a/premake/Cygwin/build-scripts/make.release.bat b/premake/Cygwin/build-scripts/make.release.bat new file mode 100755 index 0000000000000..c57e37f524ece --- /dev/null +++ b/premake/Cygwin/build-scripts/make.release.bat @@ -0,0 +1,5 @@ +@echo off +echo This script assumes Cygwin's make utility is in your Path +cd .. +make config=release +pause \ No newline at end of file diff --git a/premake/Cygwin/build-scripts/premake4.exe b/premake/Cygwin/build-scripts/premake4.exe new file mode 100755 index 0000000000000000000000000000000000000000..ab66e76c68bd931fc7a1f0c4306bd3825cf40d3b GIT binary patch literal 483840 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�^ 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�qdc@C%`der!d(zcAn7KW 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%0Di{*3#6Mk>vUWm@BZVRXA98w8|H!9qY-Z) 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 F{|8cPb};|| literal 0 HcmV?d00001 diff --git a/premake/Cygwin/build-scripts/run.tests.debug.bat b/premake/Cygwin/build-scripts/run.tests.debug.bat new file mode 100755 index 0000000000000..23a5dd8d14929 --- /dev/null +++ b/premake/Cygwin/build-scripts/run.tests.debug.bat @@ -0,0 +1,68 @@ +@echo off + +cd ..\tests + +call :pass checkkeys +call :pass loopwave +call :pass testatomic +call :pass testaudioinfo +call :pass testautomation +call :pass testdraw2 +call :pass testerror +call :pass testfile +call :pass testgamecontroller +call :pass testgesture +call :pass testgl2 +call :pass testgles +call :pass testhaptic +call :pass testiconv +call :pass testime +call :pass testintersection +call :pass testjoystick +call :pass testkeys +::call :pass testloadso +call :pass testlock +call :pass testmessage +call :pass testmultiaudio +call :pass testnative +call :pass testoverlay2 +call :pass testplatform +call :pass testpower +call :pass testrelative +call :pass testrendercopyex +call :pass testrendertarget +::call :pass testresample +call :pass testrumble +call :pass testscale +call :pass testsem 1 +call :pass testshader +call :pass testshape sample.bmp +call :pass testsprite2 +call :pass testspriteminimal +call :pass teststreaming +call :pass testthread +call :pass testtimer +call :pass testver +call :pass testwm2 +call :pass torturethread + +:: leave the tests directory +cd .. + +:: exit batch +goto :eof + +:: pass label (similar to pass function in the Xcode tests command script) +:pass +:: if it does not exist, break procedure +if not exist %1\Win32\Debug goto endfunc +:: goto directory +echo Testing: %1 +title Testing: %1 +cd %1\Win32\Debug +:: execute test +".\%1.exe" %2 +cd ..\..\.. +pause +:endfunc +goto :eof \ No newline at end of file diff --git a/premake/Cygwin/build-scripts/run.tests.release.bat b/premake/Cygwin/build-scripts/run.tests.release.bat new file mode 100755 index 0000000000000..7af5141cd4833 --- /dev/null +++ b/premake/Cygwin/build-scripts/run.tests.release.bat @@ -0,0 +1,68 @@ +@echo off + +cd ..\tests + +call :pass checkkeys +call :pass loopwave +call :pass testatomic +call :pass testaudioinfo +call :pass testautomation +call :pass testdraw2 +call :pass testerror +call :pass testfile +call :pass testgamecontroller +call :pass testgesture +call :pass testgl2 +call :pass testgles +call :pass testhaptic +call :pass testiconv +call :pass testime +call :pass testintersection +call :pass testjoystick +call :pass testkeys +::call :pass testloadso +call :pass testlock +call :pass testmessage +call :pass testmultiaudio +call :pass testnative +call :pass testoverlay2 +call :pass testplatform +call :pass testpower +call :pass testrelative +call :pass testrendercopyex +call :pass testrendertarget +::call :pass testresample +call :pass testrumble +call :pass testscale +call :pass testsem 1 +call :pass testshader +call :pass testshape sample.bmp +call :pass testsprite2 +call :pass testspriteminimal +call :pass teststreaming +call :pass testthread +call :pass testtimer +call :pass testver +call :pass testwm2 +call :pass torturethread + +:: leave the tests directory +cd .. + +:: exit batch +goto :eof + +:: pass label (similar to pass function in the Xcode tests command script) +:pass +:: if it does not exist, break procedure +if not exist %1\Win32\Release goto endfunc +:: goto directory +echo Testing: %1 +title Testing: %1 +cd %1\Win32\Debug +:: execute test +".\%1.exe" %2 +cd ..\..\.. +pause +:endfunc +goto :eof \ No newline at end of file diff --git a/premake/Linux/SDL_config_premake.h b/premake/Linux/SDL_config_premake.h new file mode 100755 index 0000000000000..dfb017ab8e6e4 --- /dev/null +++ b/premake/Linux/SDL_config_premake.h @@ -0,0 +1,311 @@ +/* include/SDL_config.h. Generated from SDL_config.h.in by configure. */ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2013 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef _SDL_config_linux_h +#define _SDL_config_linux_h + +/** + * \file SDL_config.h.in + * + * This is a set of defines to configure the SDL features + */ + +/* General platform specific identifiers */ +#include "SDL_platform.h" + +/* Make sure that this isn't included by Visual C++ */ +#ifdef _MSC_VER +#error You should run hg revert SDL_config.h +#endif + +/* C language features */ +/* #undef const */ +/* #undef inline */ +/* #undef volatile */ + +/* C datatypes */ +#ifdef __LP64__ +#define SIZEOF_VOIDP 8 +#else +#define SIZEOF_VOIDP 4 +#endif +#define HAVE_GCC_ATOMICS 1 +/* #undef HAVE_GCC_SYNC_LOCK_TEST_AND_SET */ +#define HAVE_PTHREAD_SPINLOCK 1 + +/* Comment this if you want to build without any C library requirements */ +#define HAVE_LIBC 1 +#if HAVE_LIBC + +/* Useful headers */ +#define HAVE_ALLOCA_H 1 +#define HAVE_SYS_TYPES_H 1 +#define HAVE_STDIO_H 1 +#define STDC_HEADERS 1 +#define HAVE_STDLIB_H 1 +#define HAVE_STDARG_H 1 +#define HAVE_MALLOC_H 1 +#define HAVE_MEMORY_H 1 +#define HAVE_STRING_H 1 +#define HAVE_STRINGS_H 1 +#define HAVE_INTTYPES_H 1 +#define HAVE_STDINT_H 1 +#define HAVE_CTYPE_H 1 +#define HAVE_MATH_H 1 +#define HAVE_ICONV_H 1 +#define HAVE_SIGNAL_H 1 +/* #undef HAVE_ALTIVEC_H */ +/* #undef HAVE_PTHREAD_NP_H */ +/* #undef HAVE_LIBUDEV_H */ +#define HAVE_DBUS_DBUS_H 1 + +/* C library functions */ +#define HAVE_MALLOC 1 +#define HAVE_CALLOC 1 +#define HAVE_REALLOC 1 +#define HAVE_FREE 1 +#define HAVE_ALLOCA 1 +#ifndef __WIN32__ /* Don't use C runtime versions of these on Windows */ +#define HAVE_GETENV 1 +#define HAVE_SETENV 1 +#define HAVE_PUTENV 1 +#define HAVE_UNSETENV 1 +#endif +#define HAVE_QSORT 1 +#define HAVE_ABS 1 +#define HAVE_BCOPY 1 +#define HAVE_MEMSET 1 +#define HAVE_MEMCPY 1 +#define HAVE_MEMMOVE 1 +#define HAVE_MEMCMP 1 +#define HAVE_STRLEN 1 +/* #undef HAVE_STRLCPY */ +/* #undef HAVE_STRLCAT */ +#define HAVE_STRDUP 1 +/* #undef HAVE__STRREV */ +/* #undef HAVE__STRUPR */ +/* #undef HAVE__STRLWR */ +/* #undef HAVE_INDEX */ +/* #undef HAVE_RINDEX */ +#define HAVE_STRCHR 1 +#define HAVE_STRRCHR 1 +#define HAVE_STRSTR 1 +/* #undef HAVE_ITOA */ +/* #undef HAVE__LTOA */ +/* #undef HAVE__UITOA */ +/* #undef HAVE__ULTOA */ +#define HAVE_STRTOL 1 +#define HAVE_STRTOUL 1 +/* #undef HAVE__I64TOA */ +/* #undef HAVE__UI64TOA */ +#define HAVE_STRTOLL 1 +#define HAVE_STRTOULL 1 +#define HAVE_STRTOD 1 +#define HAVE_ATOI 1 +#define HAVE_ATOF 1 +#define HAVE_STRCMP 1 +#define HAVE_STRNCMP 1 +/* #undef HAVE__STRICMP */ +#define HAVE_STRCASECMP 1 +/* #undef HAVE__STRNICMP */ +#define HAVE_STRNCASECMP 1 +#define HAVE_SSCANF 1 +#define HAVE_SNPRINTF 1 +#define HAVE_VSNPRINTF 1 +#define HAVE_M_PI /**/ +#define HAVE_ATAN 1 +#define HAVE_ATAN2 1 +#define HAVE_CEIL 1 +#define HAVE_COPYSIGN 1 +#define HAVE_COS 1 +#define HAVE_COSF 1 +#define HAVE_FABS 1 +#define HAVE_FLOOR 1 +#define HAVE_LOG 1 +#define HAVE_POW 1 +#define HAVE_SCALBN 1 +#define HAVE_SIN 1 +#define HAVE_SINF 1 +#define HAVE_SQRT 1 +#define HAVE_FSEEKO 1 +#define HAVE_FSEEKO64 1 +#define HAVE_SIGACTION 1 +#define HAVE_SA_SIGACTION 1 +#define HAVE_SETJMP 1 +#define HAVE_NANOSLEEP 1 +#define HAVE_SYSCONF 1 +/* #undef HAVE_SYSCTLBYNAME */ +#define HAVE_CLOCK_GETTIME 1 +/* #undef HAVE_GETPAGESIZE */ +#define HAVE_MPROTECT 1 +#define HAVE_ICONV 1 +#define HAVE_PTHREAD_SETNAME_NP 1 +/* #undef HAVE_PTHREAD_SET_NAME_NP */ +#define HAVE_SEM_TIMEDWAIT 1 + +#else +#define HAVE_STDARG_H 1 +#define HAVE_STDDEF_H 1 +#define HAVE_STDINT_H 1 +#endif /* HAVE_LIBC */ + +/* SDL internal assertion support */ +/* #undef SDL_DEFAULT_ASSERT_LEVEL */ + +#ifndef SDL_AUDIO_DRIVER_DUMMY +#define SDL_AUDIO_DRIVER_DUMMY 1 +#endif +#ifndef SDL_AUDIO_DRIVER_DISK +#define SDL_AUDIO_DRIVER_DISK 1 +#endif +#ifndef SDL_VIDEO_DRIVER_DUMMY +#define SDL_VIDEO_DRIVER_DUMMY 1 +#endif +#ifndef SDL_VIDEO_RENDER_OGL +#define SDL_VIDEO_RENDER_OGL 1 +#endif +#ifndef SDL_VIDEO_OPENGL +#define SDL_VIDEO_OPENGL 1 +#endif +#ifndef SDL_VIDEO_OPENGL_GLX +#define SDL_VIDEO_OPENGL_GLX 1 +#endif +#ifndef SDL_LOADSO_DLOPEN +#define SDL_LOADSO_DLOPEN 1 +#endif +#ifndef SDL_AUDIO_DRIVER_ALSA +#define SDL_AUDIO_DRIVER_ALSA 1 +#endif +#ifndef SDL_AUDIO_DRIVER_ALSA_DYNAMIC +#define SDL_AUDIO_DRIVER_ALSA_DYNAMIC "libasound.so" +#endif +#ifndef SDL_AUDIO_DRIVER_PULSEAUDIO_DYNAMIC +#define SDL_AUDIO_DRIVER_PULSEAUDIO_DYNAMIC "libpulse-simple.so" +#endif +#ifndef SDL_AUDIO_DRIVER_PULSEAUDIO +#define SDL_AUDIO_DRIVER_PULSEAUDIO 1 +#endif +#ifndef SDL_AUDIO_DRIVER_ESD +#define SDL_AUDIO_DRIVER_ESD 1 +#endif +#ifndef SDL_AUDIO_DRIVER_ESD_DYNAMIC +#define SDL_AUDIO_DRIVER_ESD_DYNAMIC "libesd.so" +#endif +#ifndef SDL_AUDIO_DRIVER_NAS +#define SDL_AUDIO_DRIVER_NAS 1 +#endif +#ifndef SDL_AUDIO_DRIVER_NAS_DYNAMIC +#define SDL_AUDIO_DRIVER_NAS_DYNAMIC "libaudio.so" +#endif +#ifndef SDL_AUDIO_DRIVER_OSS +#define SDL_AUDIO_DRIVER_OSS 1 +#endif +#ifndef SDL_VIDEO_DRIVER_X11_XINERAMA +#define SDL_VIDEO_DRIVER_X11_XINERAMA 1 +#endif +#ifndef SDL_VIDEO_DRIVER_X11 +#define SDL_VIDEO_DRIVER_X11 1 +#endif +#ifndef SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT +#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT "libXext.so" +#endif +#ifndef SDL_VIDEO_DRIVER_X11_XCURSOR +#define SDL_VIDEO_DRIVER_X11_XCURSOR 1 +#endif +#ifndef SDL_VIDEO_DRIVER_X11_HAS_XKBKEYCODETOKEYSYM +#define SDL_VIDEO_DRIVER_X11_HAS_XKBKEYCODETOKEYSYM 1 +#endif +#ifndef SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT2 +#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT2 "libXi.so" +#endif +#ifndef SDL_VIDEO_DRIVER_X11_XVIDMODE +#define SDL_VIDEO_DRIVER_X11_XVIDMODE 1 +#endif +#ifndef SDL_VIDEO_DRIVER_X11_DYNAMIC_XINERAMA +#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XINERAMA "libXinerama.so" +#endif +#ifndef SDL_VIDEO_DRIVER_X11_CONST_PARAM_XEXTADDDISPLAY +#define SDL_VIDEO_DRIVER_X11_CONST_PARAM_XEXTADDDISPLAY 1 +#endif +#ifndef SDL_VIDEO_DRIVER_X11_DYNAMIC +#define SDL_VIDEO_DRIVER_X11_DYNAMIC "libX11.so" +#endif +#ifndef SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS +#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS "libXss.so" +#endif +#ifndef SDL_VIDEO_DRIVER_X11_XINPUT2 +#define SDL_VIDEO_DRIVER_X11_XINPUT2 1 +#endif +#ifndef SDL_VIDEO_DRIVER_X11_SUPPORTS_GENERIC_EVENTS +#define SDL_VIDEO_DRIVER_X11_SUPPORTS_GENERIC_EVENTS 1 +#endif +#ifndef SDL_VIDEO_DRIVER_X11_XSCRNSAVER +#define SDL_VIDEO_DRIVER_X11_XSCRNSAVER 1 +#endif +#ifndef SDL_VIDEO_DRIVER_X11_XSHAPE +#define SDL_VIDEO_DRIVER_X11_XSHAPE 1 +#endif +#ifndef SDL_VIDEO_DRIVER_X11_XINPUT2_SUPPORTS_MULTITOUCH +#define SDL_VIDEO_DRIVER_X11_XINPUT2_SUPPORTS_MULTITOUCH 1 +#endif +#ifndef SDL_VIDEO_DRIVER_X11_XRANDR +#define SDL_VIDEO_DRIVER_X11_XRANDR 1 +#endif +#ifndef SDL_VIDEO_DRIVER_X11_DYNAMIC_XVIDMODE +#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XVIDMODE "libXxf86vm.so" +#endif +#ifndef SDL_VIDEO_DRIVER_X11_DYNAMIC_XCURSOR +#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XCURSOR "libXcursor.so" +#endif +#ifndef SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR +#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR "libXrandr.so" +#endif +#ifndef SDL_INPUT_LINUXEV +#define SDL_INPUT_LINUXEV 1 +#endif +#ifndef SDL_HAPTIC_LINUX +#define SDL_HAPTIC_LINUX 1 +#endif +#ifndef SDL_THREAD_PTHREAD_RECURSIVE_MUTEX +#define SDL_THREAD_PTHREAD_RECURSIVE_MUTEX 1 +#endif +#ifndef SDL_JOYSTICK_LINUX +#define SDL_JOYSTICK_LINUX 1 +#endif +#ifndef SDL_THREAD_PTHREAD +#define SDL_THREAD_PTHREAD 1 +#endif +#ifndef SDL_POWER_LINUX +#define SDL_POWER_LINUX 1 +#endif +#ifndef SDL_TIMER_UNIX +#define SDL_TIMER_UNIX 1 +#endif +#ifndef SDL_FILESYSTEM_UNIX +#define SDL_FILESYSTEM_UNIX 1 +#endif + +/* Enable assembly routines */ +#define SDL_ASSEMBLY_ROUTINES 1 +/* #undef SDL_ALTIVEC_BLITTERS */ + +#endif /* _SDL_config_h */ diff --git a/premake/Linux/build-scripts/clean_premake.sh b/premake/Linux/build-scripts/clean_premake.sh new file mode 100755 index 0000000000000..a29feb8cfba25 --- /dev/null +++ b/premake/Linux/build-scripts/clean_premake.sh @@ -0,0 +1,6 @@ +#!/bin/sh +# change to directory above shell file +SCRIPTPATH=`readlink -f $0` +SCRIPTDIR=`dirname $SCRIPTPATH` +cd $SCRIPTDIR/.. +$SCRIPTDIR//premake4 --file=../premake4.lua --to=./Linux clean \ No newline at end of file diff --git a/premake/Linux/build-scripts/gmake.sh b/premake/Linux/build-scripts/gmake.sh new file mode 100755 index 0000000000000..0a9d80b41f1db --- /dev/null +++ b/premake/Linux/build-scripts/gmake.sh @@ -0,0 +1,6 @@ +#!/bin/sh +# change to directory above shell file +SCRIPTPATH=`readlink -f $0` +SCRIPTDIR=`dirname $SCRIPTPATH` +cd $SCRIPTDIR/.. +$SCRIPTDIR/premake4 --file=../premake4.lua --to=./Linux gmake \ No newline at end of file diff --git a/premake/Linux/build-scripts/premake4 b/premake/Linux/build-scripts/premake4 new file mode 100755 index 0000000000000000000000000000000000000000..3df9741537334c1864ec2ec3138e55f4901c93a6 GIT binary patch literal 339312 zcmc$Hdwdi{690q*vOITz08v2$1P!8?AZj8gS(3m6f`mr|K@1@eh=e30yS#itpi|6 zNySCKRP|)uTNP{bZj)qMB<@kTlG{l{a=TQ1FzRxj5lH}WOzJ2)6%Ce!uxZVy3LbPM=$zhR9 zJ;nkenPYH~4N&?U*<%L&y!i76zj*lNiO>GyajkQQS+O3ZRpKH(op8;*wyJ5WR%Nq2 zc`!N3@j{d>vZH2uIInv4=DgAgsZrT$;^K!ou6itP<+!2GHC>;5zb!H&-d6qcpmENZ zdbL~I&2jybi2f0)YkGL9Cq?wN#dnCd-F+ykU4MtZHZE>yWSpi=et442c5kP?9g;i= ztF^dx86D#ExNeyPyV#mGwU5by2rQ2acQ>v@xR&5De@pSO4A)9r)wmwUW&J$@U=1z< zmscg!;{G_UU*md0;pp}xuHP#7Dcskq=ilT09IoeaZNT+MTz|s#XIz*6UIOA}h5W0! zzk>VUac#u)hQhst`zBoPD7a4D-^Kl(xO}+Y$5oGOE3QUd+i-2iwG-DaT)T16Zx5~y z`AO40!TnS9ychR<>X~kz;o6Vu0Iq-GqTg4zzQ%P3*EhJn#q}MoBe?vy0=VdR4A%)< zCkeo>1=lHDr*WOZbr#n-T;}f=^>9Jm+mTV?7m0fmt_}+Bh04oIFRD*H)A~@m_V@@BIl`!xsFxanFmnDQ|Y& z`2KYxs^hBWeEUq=`?^z*m4~(x592xVkh12`qmVfO% z+oLCRyfA!5+@{R${!v)h z?$$lA^Pj$N^5`Az!ovAqrEHB`J}CAocbC1p@B8)A;fG_c>v4GGp}ue5dw59VS4MJL z$-<^}E1wXr@6Y|{<0m)XrHx+m+g(3Qs7Sf>T>7iyzp0-;dfeOZe)HstwC=AAUvU59 zeU9!s+3mgk&yT>^JP@zYKW2{?GF}rX6sm3|;iq`WwE?`Q3}+{*j$i z7WsEX%zbtVxzj8E;9PrLA>|1;;w$03Vd$H~(9?K#B|hZ;u7uADLvQPNW%|zG6L$sq ze+t9@&M82XpO@P8u=p9Nv~WQXCiJPiIw znEEb916)aOQ^S<|d>H3VXVdQ@_4E^vh<%%$TmWII_Vfa57M*r7@;S(K3o`x{= z6nkAspMApc`8W)p8DZpnHVpqUVfefk27d$i#NoR9*DZ{kWgxs#y^e>WUmHe#if69G zhvKd);a7*juL;8^H;g%!p2flnN+%YQTFxT@EoSrRiylfR#p{0GNMJk4F{cTDkL zQUx4F>u3EylREB5qU#w3kIb#+`{A~*F zSNLCYB|cx_uU7J}z9{ik3f~@zrS`f|An_9wei6&rS(`pW;uTu^o8r?!=|4^-T&3D& z%qx-}V)HLb$^WL(r`aw;Y_izqtyDEc8vKij6KGA3Q&14=(#Rr}I-Ouv~*{;~O~ z4Bx_kvBm>^ch|1crVlD)42t95&#GNMoSVw<3W?UHt8#}bJ)k)L?NR*qD}9>f?pO61 z_K#Gin-0G8yFuw^zLNiDiPoM}@;~=TDr3@>J-n^>*zS|~sfvD~DmQD2#6PC+&nY?k zDm}+3{O=T>WF`Mlg`cJ5`OExN#+Y_;Qt{82De=P<{V_#9{T_*zt)pod6#b|%5`S3H zzoO*1Rq-)>)EQ-m%T>Ejd_ccz6#iRfKNBQcyI0x6J9(*$@hJSw@ITa!*_X9rt*USN z97$iQ=npDAzgQ{prhho7%Dq$3(>O;zpQ`V%(WwN6ey=M&164crQYnoJpYmWTV~Q01 z5rr=*kobiPKTq`wr)n>V!M_Vip8Hk1k5zcT(&w2Osf_8X@Xss$JKPd~ox5eouq}hlsykq_`9-G znetBxKS#A!g7TkU#phS5-Je(bT(0n+D|>THkbEd!r{8oX=g7i(w<&eT3RD7yb zyW}YRK*eWCX)0sPb;&eE{~Oir`HDUn?dX90>#DsJT8mQcdt9}b>GzUVeSNbff3shB zl>ReQrGDlsMst+>AE|aR>-8UnzeCllpQ7)j_-8JV{6{GKNTttQRj%3Z#wz@d5=noL zqF)bxN#jmJmc)Oj@ROB(-dZT-j8*t&6`y}7zj3R=-=p+4W|pLG+ zDf}Hu|2Af1;u{{p3@?Q-4`^ohJEDSNJkj-(O9X_;(b(4)zm=a@P(tEnFu2qU_3+FX=}q`fF6V zS6@~ypTfVV+G~=cAFSHzyc##ncDzT~XT7r9d5ZqH;?r04BXivUQSrIEM9Q;9(N9(N z-KOleTH*Jqc7N$*N#94|t5vx#DtXNIdR*a$D|sGM^oy1Lt42#c^A&!p(r2==XOsUq z)vy1p`d3dy|G1L#&?L#{!3dd9iF$R1{x>N7zpU{4Rk%0!eTB)y=?Dzqs5!Z&32wlqc!EiqDsd|0}9p z%=&gx{9jP^Y2y1T`NzE?`8=TbOjY=f#S*_u;YTR@%vJu-Y+nug@(XAi{&p=lbLxcL zg2IZzxy6;P!iuRA(n`uo3#aDIDJj%)bLTE7E6uHR-&fylk;nR8hF3Tq`M{zm>(M^Rzr9X(eTIwLDi|=`am{ z<`I~bs3BjGmS0$0qUC{-)3wTl6)qCJphO-aC@9Gt{evMfI(CAX+DKd%&m z09&aQ$#!4~-6h%rS#c^o&&7&i6)`ueDJd^EH{Z3iyfAkT38kSPg)BBK5n?Z;`g7yp z+z6^%QD`ctlsJ~l;))hm6uSy3HLn1~rFl?Yo~x`_DuQ)ZP+TNcO0q!l3+6N0EZkM* zE-x>vU=gVO$Us=iHUe%SCV+Al&2bk|eJt8>bFsOZ6LYyOh=*)BX@xKy*rDn|3-VwB zMKXa1%V0i`o;unR7>`RUt0YQN8RyEcbmtZom!d-MJW@bzaTz^A!oqx*2&|1k6znQP zw?YbPU+OBH3zGt?iUp)-ptEu*H&{ww@jP^QCP$UboM6KC!*~E~>|JGZ%F19Or7|~q zNy&mjR~{2Wft7_71?aspF|Pt;bMJ#N<>+u)HKMUsec$7nc@EEfp6O zmaZO(f;mt+r9p&wWo5EumMkb+#4M-l*d_sZ-^ zV)9fnNwq7hlP#p6aE^N}6NWU397Q2z&CTb;lETVL*F4#zT()U8kd67kJ;D>CI>nW3 zVlt&`9``p&E1UCR3H+9sr%gdhE0SqP!A!o4&2;hAL!Z z=AY{nOEiGJ3-6v!UMdVY;Q4`c6Z%$=diCd+Wl)+vjq;=-G%JWK#*^*RClPfoym9IO6H+OJS549?_SS5xe zjL*bI_5~^E+)6h)G0D5l;LsHLMefpkvtwuFVqCW-m%>f4GsrJ1Un)mSVqMtQLAlO( zrAxU?*oDQ;A%S!}xw&&H*+olU#g*h(AaQZ!?Zf9NyDU?#3y&NM+ z-rTmnSBmHbX<0P*6iCxDt5CS4FkkheER2eI7A3Q2p?;FZ;)TY7{E&y|%D34v!WA0Q zO;P6LA)e#1iMhpJv{@KBqnj1L9saV;2^WeefEl<;O@B^?*k%k_xy06N3$n*cc>qDG z&o6Uh_y8wz0hZn;s~s{SP|H?>YVn-Em`zx9Wy-DCEy$~!Po|PTPYp&e8YPpdTaL~O zwXs>5qtkMS4IMW0w$O7@Qt0v4p~FMZZBKWEa5Q&shf}lizbL-bDcbfSTqMrcQmXtb z={kf`typ?)qcu~^yP0O*sT4CUI`q_rYfH0%lCDUc5SQg+LdZ`rTxFj^#3!LoG6k6@8QvbD-M_Y>SD}HqqS!-@1~!W@bdI1 zOL_-Bi%a?G_rw!VVFue#`z!Jj&UF>>vuSTBIHtH5Q|1m@y@LBN++N$GU|D`7^QZhh zIlZ0s8Pe(3dR-ykQHW;F;R#{xGGWRJ6|2iSmFE&o{$Fv=F zZ~Mhr@aEbUr6ySLWXa|)(SpYmJ@iYq;Hhl$mukUN-OQhE!IMnpFWZ8req#QnTku#S z3H@eU@Jf}OHqV0Z5~9ZY92UH}#zDzTEck8~`YH?FZo#jy;7uE$|`7QDHpOv#%q_}&)!dJEoMBctS97JRIQzR7|&*H|g}3k%*{ zyCM8R3;r5HsGqRl`|+ma=8U>u4xi}i3LBD5b9TD!QWycabIJ>CtC1pE%+o0e!T@h%!1!w!P7Wz z{$94=%{>oF+i1bxW)kDR*@8FMtSPzPg1^H;zsrJ8w&0sA_!JBN3k&{E3;v)5Kf;0+ z7QEG;w^;CZS?F6W_`5B5Z9tp-n|lD1Y_s4~E%Xix-f6+dTJYvtFeS%X@M#wM1Peah zf={&IGc5RI3x13RpK8I6wcvFNUbo=0E%;0ee!2xe&Vrw9!H>7#=UMPs7JRt{Kf!`u zV!_{I!B<)E6D{~P7JRk^zt(~`_h2Y_y#+tnLchU+pJKtkY{5^p;5Se9!g11@lc^16Gf}dl-$6E0D7JQrqUtqx}Sn#q3%EUwqzQ{tKY{Ad9;8QL5Vhdik z;2*T$vn}}f7W{MzzQlr`ZNV?F;OANJr51d-1z%>tFR|duE%+)6exU`w#)3EZXen9u z9JA@(_P_l$UejypUF}6~? z{Y?y45KJMeznVt5?EWLExihDQ@j zA*X*f!*>#l7+>>eGdzr73O)U)4BtpFg`ECGh6fN#p{75M;j0Oz5Yz8qxCg-$TKYAH zI}uDFrN8AO5QEwgOrfOzAj9Xr0ZbvJzlq^f1XJkfuV?ru!4xw3H!^&fU6*A)epC@RI~nXy?}$ew1Je>HIAhsQwQV97pg$hL;gcA)LR7;R=E& zbo19U{2;*t3Es%?9D*rS^KW2y2El^}Ud!-gf+;lfS1~+};2Q`oXLvNh6pHz0Gkhn( zg9*-Nco@MHdihfszL8)Gx%`O?4TH!5KN(uKb7HE2&Rz7pUChF1XHNvk7M{5 zf+@uDI~abFU{ zgzz^pe2QQS9sKnSA0?PV2LDEe4--tGf`0?UUlL3qf`2W;dkLn{z+c7i9)c+(@Ru{Z zm0$`5{IeOZBbY(}e>TH!5KKeAKb7HE2%brBBEv5bOd)_jj^SqrrlH^OVE9RbX~_3$ z3_nUR4fXz(pSk@Bo=xyUhL;gcL%Y9;;R=FjNcYz>{2;;k1aD+`4#6~p`!_H=gJ2rE z{c9PXOfU`E{wjvY5lln1zntOG1k(WIpUv={1Q!#W&G0aSA0#-H;Ts8_PjDi`0|=&} z*&oO7)dbU!>~}ESgJ2qp{Tg6rj?=i{oSJF;m@{RPs6;>3jYi$rDaNj+$7XQ|LrJE0 zcs!ns?P4efin^+&otp2&7r`K<-vQTJbKLF7G7hI3CkRu7!N%B5PxCHl+KiconB~0R zIjeDP((z2=(+70puYmnay7ArOcC#8cQyLBIKhAoel7a{A*Hsa2GeIVOLu(}Hbz`gEaCDR& z(WDzY^iMCkk-v^;^_sn*{D)Qks=Gdgel&OY9OM)$VGy%+wD$oOak`P>1Ko3%{v`-p z*Mvmqp7XwjuTp?M*fh((99jH}@TX{PPSRc<1rAemX>n%}1Gt z`W|4=9=g%s8!OqORB*n4vXb_CKIVpd4r4Mk^fRq(!hDZ$nS{v>39|=TE*IuJ2}r`s zM8h@~ttBaZS}L+uA9K*Hc166cK=(!sqG3!oR>#|bMfuGriW==Ey*54G7U*1c?tXXV z4(%2_SpTSF^^jl+?CBnJS&Vp6-HY#o=8b)JP zp#1faYiBfy)pm}JqMKe@65np;SQ|ZGA``t?2j0d>(F$IWs;j;;%~67y`^of>V)7Y)wf}q=v^&#cNgcilWEOYAfT@zBNx8KEl7dF0 zOu9}b-9SkdGAS)erbVi>&Xjg903!_n?CN+D6BU=bM8&_NVym}NJz)w{s0Qb^Q0)-$ z#_7iQr~igO;y6N^q`gUJNS6o%vFl|mwh3gO74fl}tCQ|s z5$_Ps{0MnG+v2$SxoxwP&WJ}$gP75{c8W58)Eq6o7Ihc*qf1sLYusO4{dD69X>r4Z z2rcPMO})DdN{+2QLM9r3JvNIJvh(U~lvNc&rb9|Jj)-E)winsDdZ)(6HXQBdIThhK z9APw(+Cc-Q%YIFr?;AvZRMvY^i^dM|HEP!;yK|Z%&NPC~d*N-TlAnDIx!#ZC^0tdD zFh3s!U@$f~Uvb}0Y(VJHu8En(_RPV@Gix7;5KofD8z(Z29a+Xv6v;;T+Ua00ZAa8l zX~|@<(p+m-bPZ+={$9*Nrc89I2vElclIiVkP3TnM7uD$`ICFUfT(~Q=F@U}ImjzNz zs^J_E>E7iIF_;?2_)nIBzmdX*>cT0Jhj%`}^>*eqPT__SNj*?0Z!(Q2H9^?!EmSjN zvFQ{)#ERGG0S)qJ+>`2Os*I%ApD^Xnz2#(Ax@SjEaS*(eT602PRkfPf#l$)~Ot!=K zCuwukfg5^?j+mN+eBLV#*d#^$@P|}v5{4=^mXo4#ylVCS-t_ob?m2_#>n3+;Rrt1% zeccWb1?#S(ey;4mXhH{+vgpQzDb8%+WHD5I-NTdW1L;*Odk%HofJ((;!LO zs}jD8LvVnBhr;hHxSa>kj6RCZ*-F0`_W+(y1244Q)eAn+zIqR(rR>PEk8Sb$@Jx=f zC#21y9^0HX_^|j3nkdj&!Xf}b4OjaRhxqm=ce0P#k(&aIxP?+8i5Y+%@J^xTeizeR zGTrMC=%b(*)%589olTvmhy2X?6+snQ!&UAuyQnuS4 z|Bk$CeZZDw{Nx{nMAQ5+7GBy;+cB?HO%!QqqAEmD)I=YKnkXL?y1a?jp&{8YsEMq6 zO{<^F+{x8ZQ1ONyfktv=lNPQ+0b=3FV9@LEoNMQ@d(L%r52O;0p~L|C)KOpbQ)ayJ zJ&0x5Zr$+vt_~%9jD)~<<}h+QtjL!o6UAhz0leyTD(y?CIiyAnhUJ^A$cBLIly1K< zJwA~L|6nEj-0aY*J1IMy>YIklh`uhoKLZa_P}z-W+e?P-mw`YyQBNKTu|@@ltPR{Z zeNdz(I-u$(5T+^S<1wi|qvl)t>a9q!Z(1E+jeEL%Q&xPXUi)7B!xBo5uh=pd1=i8j zoNdcUkDo{6RY2f*wtZ82{3<+5r-zkz$fk#f@SxMf3OuCJ!*V<%)59`6B+|oDJS5P= z5rIpxp-HXq}{9cx?-!AMBM3a3o-|ywYE^NGIsH} zOQTh$@e8?w)4scahf2{LvG5X?G=~icNSsGP)YMaFAFdDnqAmzl917mWPsV??;BEA9a-SE*m3=F))v)6_T0uPb#d#d zJDm3op<Skl!0~Ppwc>Qa6ulWAro;z&5q zeoe{olzbRZgyG}}m3*3#+f#CqHTPlaUZACDR2(74WHi^MgF@zRL^6$*&S~VfGmZU8 zd!19A#*ay7a{dXW^MnK8V61o;9nS2(i}37!kyeoI{*3vnGR}{M6%6laPO6-MFR&vJt}2>rO;? zGlo(nay0V1pYj`YskMSC4*S_5PC>UxyQN1*H|0D|7!6{Gnh~%IUaJ{%X&5~& z9ea~@ixrq!pjG#p^I{q$X=Rz6)DG9Z80}q?GCjLw?3-mYAa*v+VzxJ~HYS2W_>Z%n zW<@ll>{)T6o_|iy->nb+M2|QrZVO;k!PElca%?D2326hEuhMv}d&ef|BgSTCkcxl{asH}Vx_6>O&;JR!)r~#+kZG}c!?`Fu;*?%} zj%ZemtU11_T_6bzlZ~SdhokiTz53u?dP>u(Xyb&qSO9UoX$gA6cTmoJhn_OeQHhE6 zJO`T)h5LHSS=XIDX6 zVRIU~EoJMf{f*wSvx|%|vr(mKXyAwC)b^ONOL%5O3e&GGd8qFktODzS#pC;CK|aoHelbGN~EBb>S8sfv{VS)SnO!T z@WPZ4cqU^MU(&eJRrjJU*)85|D7ux)q}(Y@6-RW>Q6x=4sZ9Pikn7&@K1*S!@j zx-raK(P~tnc|e%5b@5T%+nw5M61CaP#vEx*#!r;pIoaJC@?`5NV-wt6e53HzFFfp9 zvk>F(TIB?Auf9O$M>4nvbF;9OCF0w8D+=k2@K}wWi$NDU5u8HQPX}Lsf7pC4>eeV$fEJ#430zDU zIGm)t-D)&7azt=H@iKO@p}`SFx}drvV)1|o@{0D~*4sB>+Pp2cQTz%n!y_U+ ztr7O82-_(7BP-eq6AJsfde6CN`?{?in<#~1kI#70C@x^&NT<0RPp?k`(yK49@#_pV+U3Y{C(dd$DLG7Io z(J*tCvFlQvg_rQ0W|8Y^#jyvwLm0(Y8od2igPRhK^%jpT&}t;jR%ym1((#2RQrWb6 zSJWxH15FC8G3n1(CuCBzACq1sNnO#H3f-jfiYBYL34~tVhP9^ME=O>;E1Ji;2pjUXW~~T%*)rI{=MFgES3e>H5wL>VsO~P8c1!yz1L*aj&kVnLI>k z7PDv#6ZD;_|9K}vLW~0#moQ?GTs(O|i5I3!5yOboXoSIeTBBTdu8Q`wM!H7^;ykVG zUEMsb(QfpCNE8$oK(84gQt;JQJ-;c?7x6mHS5~9aw2DSW5t#%0_c~{y^_yljiv3st zXCv)~(s>-jIGGwpqn6l$G-+q9t}rvUV+fc4FQhTSdYRegj#8K$+1bS^mGfvj&$$kZ zV}tSgXQNYqD9{a+H%?%{Yu<4)PTYryk*f@iG5(Ma>x9g3Q;M4)pD zn>;l+QlWAk?o?k=(MLC8u)2!iPTcws`BOaUUZA}5q3&i;`W+UGGi*^{r5hPw1rIA@ zMy!&Z$uwHs?ftntUZ15UELzda!VDj4(6y6-{xwJ;b3n0Zz$+K~-U@56o^4d@O#h$$ zp(X~^#}1p z6u*J*uf}iW`&;q#e19*#3HM73Pj)9#!qAX3n7t+HwX5S>h}dY}nI2DZu!eizL`F@G zPoODYtPXkN#OaM7tKN1HNto*J78P{`s`MqJ*GJ2loiMO6PObnBp;>(PAgxHvMzdfz z%m0W+%)xs&s;SND)DpOkhHr05DAtPDp&Ki0-lg!neuuHr5&Xz=A?W@RVU-ya@kmG; z9%Ku!>@(z5$%JUeB@Kd7bR!Wsj+xjY%uJ(xZj@ytwo%-Kq5 z9lmCvt6jOD^h7t|Uea|LB1l+@rH|awE`s`q4DT-OBV6`Vv`CsyV^Mood-4$-(a9+c z4q(tD_qV!<%m)71b+uF}H6yX(fsbp?{!VIsEZD&j6Q$?pXjdoC&o)=A=jRS?gx171 zR%M1Yz`qenU*fH*q7rzl4n%_hkW{M*Tu#vfPN+Hc+Hoyt(KykSwLjkxM>c&)t2Xeu zdiYko?a=>dRWe)gkABp$2rb}GWXr0>Tv5ovzyWy^VJBobwK)gH8y%?Oa$0mmPdTj= z@tUy?YMI({CKa(x58C`~i(cMbO0^{MsVgY)kZ(A-1mh%v^AOP>Cc4ff!VI8UyhKFOnv8Y34szo{vur=; z1tg1evgitFc&v(cb@7~o)g&Fq(Bq!Qy^n_2OjLSYEX`!b17gI^hpWI%+V;350gN7r zylTS&V(+S1+(>2jlwC^3lI|~=gd5io964fAa>m%NpFJ>z;_E30#T}4I?90WWw(ag7 zXi8Wwy6=c=M+GJq*$xc8w0E3=cniDzGOD1KL-f(j_*jg_nn0#epEV>cH8cN1?9%(T zPfgXxrC{hRL3{F~1GO-^#Op)Gr-~0}nS3-lWMZmr&>;dC z1_U7P_k+7w10EbX9Q*uw(p8kb+C=uo=cZlJbPl}{G z&YY}9^GxFh#OWQ}Y`YXwkP^z{zy&2{8GHPrFz@2_YqW0~+o>@JakS?mmI^OSnWTGj zphukU zEkoz?@%row|Nie-#yOqZqvi|+eiWaiVmR-h9x)x{;X50+a++7GS(+Tx+ax+iOBCn` zn`lWnG^RiLwUUzuW!mJYu#ju&<0JvKYm>#}mqyKDB7A?i~ZyRPVCWqR!4Sa%Ay#px8GXZtvruILuD)uIt{9 zhngDd7A#JeTNaqxF8_)G+!<&A^q;dd<^0%x!&NG7I_WD1_UHCN0|O3>czwQ4lFAVv;!fDyWP zrA_?sIWJ1$@W?Fad4jD@i&Hx_WGX!&6qJ^UNM|!K(BUyK#DAq5U&vB&pg0<@-X)ef zS>Cy*?*-aN=mN2^&rUnq-=94oF2E0B;mi1R@V^iTtZJW`vVBpfias^HxU+D^Y<*9QuCU^Ms3q2&2CLMJ5huuKF#S@8)q zyI1xmTTS-8DN{f{83T5}uKF1f|C*Z|%&dn&KK_i9d8|qeNLX3^0+o}YeIkYS$rReB zQfRNc?x4^P(@-xikpXy z%F7T&6S-90U6Sh%R0z&E%%U+z?(&URiwebH2X}QVHuOS#sKrr49V)_nzd$+U(n9;h zo3Mf&!0P2u$t3Bx*b3SQus)!U3raJ*=%#rRzia)xqgI8y1HhB!CV_=Hby&<>!COQ*OxV*BGE z&<3J$eTwc1-LbyxR^ARd&pSHWmKD1%kQ1?x&AFP=~#f#-=@|t=qmPN(8 zW9n!vg%d>&D4DUBwh471neiMqK9j7xq#;+MW~Q>Isx}gfApnmA+uZ$R0qwY8x7||a zbEw74Sy{$Gp2g4rq}Grg=dxCIL)B@)2up!4ppZ*Rla7;diiPq>2bNEGZS8K@MX0;| z72QO2v60LXn`x*f_l0+{&xNBns%vmyFAf1GPs%pt)c(qT1NqboQ;gH3gu4h_+*5Xh zg|taVMqPVS=4 z{bD{c`-Y-zDBt5Bhg8{vV(1@$WGl_8E$AAYV0RBDFuuG zOL*UjWL{KhQTIJesA^>VP$`qq?6ha>$IjF~aOR>`~BqZ z#%G?K*vG&YMW6!~Ff-srX^}R-rzPrg(Pcu8??u!QlF8mA(qI!x&fAonlTE?In@4D| z{0DNIawDNx6e2f;emw{|7kr@rL<85hhS+?7icq3yOz%)UWoqg7;K(MAIL3$Pz{qst zB2po|c#^ad3DKP?CsqiY06=U^Jzo3~dd~F5#LF{Xnee1y4wwe)PUEEWpVVN^v&~MN zLiCJ`*W5nm{m3M{hV%$$5BUAxL8ZI>?|_(l#?u%@P>XJ!<+g~GG~9`YXtk&|Ef%XD zIa#%@$Hvh?v#i?q-W>Qr*V%zj&R|mwKshz!%k78{)xP6U-cD#(ptd#HEU&9x3 zsD))xnnj-dul3RAkd;N~4H3LJLPy69DWuz(#tU_HXaWwC@~N{E?4Whyb8?-h5kVzG zG)wrlIz9mi6b3VL!1il1VzZ2b_&9_KvFIfp? zdK*bB^&*`y431R5AqXaGDiAv)NYr~jm^^Q0We zA|gfCZ($2JldO&KB4}0f7{Ey}6G`4Q8-if`*(Do#9fASnlCf2cA$O(2oWd9#(D>51 zIj6EyQ%-l%;*R3!Z-T+vl7tA=TcTl6@EJYL&f@fZ7!(hKCQz8PSE{Z8UR_bIhOILt zhB-*;#JR6~L7Raw_L_9#sH7hadNXet!jV8XiSGinq}R@lNH-2k#Pvu-@RLr10}ZlM zYxeSlaLL4wXEshtr`%B-It;l@SB$~--|+Uti8n$1ObQO47 zJGqbf49jBMxyB`6@A4@IQ!-Ch~!y4n~>|b+B|pxOxZdvgX4f1iwHjW`G+y9kr6# z>3H8Sw7%twDI&2Biv$u218!qDZ>1YQ_#06El%zB7--k?M*e+=tITQzRb* z8_Z(mn$JRpFrAp`w@;8eI$}MV6&;g(XFNKNb&+zC=!_gH5@@C)Ft4Jrp4JYon7ZGg zMa&ej98NOOJp{f1Ds({1pXHQKOa?-Y*X+6OYo=bpMX7D<$50iJ%h02@2lW|)eyN0! zN5Uy=GRQ-q)&2qowdEK$a9oSvJnEm8Gd1gwIaGQJhyl#>FT}$Xb)x6IxJ&Yq6U%%_ z!&MOP0{~+lq2;V6;xhijt^9YG{JRtXI=MP~Ub6Z#{2mEHr$)qhsehSrw*6F$5eYHWM+)>qv0cMh#7?jkzN|MXdOS0+erQcA=av4`^+sL+8n#iv$!HU9t$5*#Knq zHmVg?3fg=JE2S7_Al=W|i1=gS^*cL?z)bYV`R6WrHR$#0`=%~(i$gZ11H zun>I+I}^zvL@U|>E~UF~xs)31^dGnj_;yG@EhO$n7Et^r)KR#5h~C6j=@dRDtVwgCioE;VGmt=jo!k10wc`4q8w&bQ=eXof0SuS#}wf-j-}i0IY|Da zN8RgI?MFkOhDaZLkRu_M;$CS?H-iPbigLuwL20w%YFH&7ylWN(DA?d73pTg{GJc~O z0ipN+^}xBMtLk&lHqG=L#Ot1Ijl#5_DYIpVz6{jJ$ij;S62M%vJ=IIP^viNTWi|Tu z6hM^Xbt|wRqeY0XtIaK4#!a_!E42datPJkMIPqU2=_o7tFbUL=*~!Wj$jZPgX2N@! zjZLqh@tOk<7L!FBimCg{GISd?38f&)OYZIwa8dzw&cD>eQjEvbrJb=7gI_2<)5!_Y zGW<4oALo5k|E*|nbFA>^U?~6_Q7dth@3u)V#cS{5+^i<yZNI&?$6`>TZ?rBPY1xs3zRT&q5ji6j!r#U@)EvJ^P}eLEzEZXoUuQtx5GX zb>Q>IWOTBN`5_LdpdRt^0h$;d0R(-YmA;kTcpnOJVaareUG#>G0K_s-&m2q(7M6G9 z{&X%>fk-K*-E2hhBIFEoR<-Ee*8X^T5nfo<<(y=$=eLO7XgAYBrfx}GnXc8{L^jbT z`dWyNy!nE)Ofqdl?@jl{zg7-vK6Qf#K)eK=PR}oq80Kuaw|Czf7z77GOQn?O5hUaN z(_Of>pR(WA^|1?)I8imdA>fcF$e)KV40J(iJyFkxW@pY~xv1iohGpH3Lha^oJ9odO zotsfeO+EJncUR(L2OlIJ~qX!zTwiMM1KsWPIMaARpY!d$E#MLRVIau?MBorP>$)9S~P1! zZuQuTN6A*`sWefGSbPV~%x;0awdHstl;_EDW^pB|xHm93Fh8EbRw6kdM_;uM9W!4i26gF^^)kC-+@t#B0w+&p<$auG!9fuxr*s7gYEUug>%IM!wd zl`XmuLm9TZP&R7E#wOkb4<7Z+zN*6p&~7(``ulwJq|l)EcjOJ3OF#wgf5ZI&T6eWn z!8utxO`V)KIWDh54zxpcIl320%r;e>V2X0Bw2^y1pUFHkgldf-8v)5J*_4BWE= z@-0*9@y+7z&<-Nxz)hi?Rmd4w90E(I3q6DKYU(#XPsU(RZ=sAu2B>vDJ}6QJouCO9K2MxLqsMd5?fI-aXh>hn>0!F{-E?@GyPLPrO6@rEciGPXJxky8fOoW8fg$W z(BsnRb^yG#a)52`7h~%U9A%qMgbxh~m&(G~SO4AG5>sFk!CmfK&26?Q6sa6=FC?KN zoL{_)>a&3ZBW6$so)u!;Pl_2+x0|XgYtk&pp#_G7@?@b$D8}zVziesp#P#eZ)bhBi zA(ZnYkcO=OU6eH|q;`mjZ6-Cx&6ajeQ>gg}B;eqvY@D8hh@YaeA#0wC64?2XE6u6< z#%vkx{AeCpxRZ-gN_et|eCmiaToSwYKH-4`ubO79N@YwCgU=-;=2}bq3G}K&KIOr6 zqvCjhlg@aES>R8V*=kmm3Vn#iQQ9e?mnP)gdMd)lOA0z;s*ePF%q)l&ZFrYtiW*MO zi>atKXzBt~Uka4O-O?@9Z6JqCXmJiEL^RQ46ekGtrR)cFN3kd-bJ=7rjEG$xO4Y<5 z?v!fDq=+zljsZ;0P(g4jL9rj^0=CFs<>6rI7k)tN5JPK zd>8w?neRdDKb*k$!&>fJ3T)ml{QoO z#hnQFPd@QTZ>BiufI;NSYbce^8+JdFhIc~ny$>8bIV*0@rb?&cElDFMwQXV1i2Hi&LFlRjvjGzxEqMbJ?yO2g|owNYzV_VVh#;Ki+9JcmYAZAtxYI^?qJTM>cs z8@$HpKzye6rg*t5y%lEV)jS7B(RynyiF*<_qtSCd=>8nDNqOXqXJt5>HOkm09;ZBb zSHbw$b7Yj~;x+En>hnR=-gT|9r{QRylzpyV4c~OAJ~XNxZ`6EKPc8N@!xrd;RDYl9 z!&?0+t>I7y&z`G0?lBx}P3%DAE@z-GUi&3(6rXrelJ0#-GyWqkpaV#uu;|6FyJi?W z)RrYJ$;;f%NdZ_DXZR2qXu+Ri7bn(^M}Ze+qQ+r&WV&&R(dif&9=retimL9$yH>Qu zFSh_`yM7Bv(RKjLImJ6IQTN{BU7YMRn#3|vLPmBO;XrM+ zbIS*8Lg2n?3q`!b!w1H?8$%Oa%kZi4%aFbLxNR%#=A3RL+ESBYv$n zEs^YFN+KP1t1I*6JDYY`P zi1{N4$KwK@Hbqo?gtim7EgH|WSn@3$g!4$_;{`-OW0QEnB=C0dw06b13puTOY{9J! zhr3A&mcFaY8gB%AQdO|yR-=0(K1$`rIlyQl!{H(wZ9T@8RU1|9^lF1(2wKOjP6O{C zjIr^+<()QCukBLZa2TyYy#%bN%XDlqBK)^NDUGslcr+A#uWe@syqb&(r^d1m=rD*{ z&=`Z4z)23(&S`XY{Q{G4F@|o z8xD5s*wS&Acd{+LW4*D%--@QI9f#Mw>y1;sYmwdm5oFTy$0m*#JA7px0;rD4)N;TW zdn1{#dTmzqFWv~JQSXFDanf5tDFif#4$kU>+?`TdR$VVqeKK$~FdeVD_O6}U8?*YY zE90Owr6wq|Hmf&Qim7mF5&q(3NZ@V|m__Z_0!i1@8CWL+6dv1T-)VAf9OzRQwqg3k>!y>LT6&E7~fC@8N@e<8A5Qv@W2dy*0w_ zCO4F3+Zjm;4cO?l*L#8D15)f?`EcZEQ396UNK6Yn=Q`UTSr1~of|Lzuq`x~sd$}8t zF|Zh$9Faz8BNbzl;X8h)#%~DC6Ck-l%xE1gsb1 zTy1TawT6IJyxj+pDODdfEh*3&%u+sb*-4j2lg?27D5}JKRDukOyJpUoix^N)Pkaq2 z^vwWoS@O=Y?Arw1G2|ueE(jQ~N!SJ7Yxojf1nZw&C_+*m`SSVfWFe5x^N`lbZO1uE zz1EE*T+Lzw<#apJy$fQ}Q%=}dZ$g=bpZPO+Xt!N`Q6`H)SAi433h|)vu~|%pVzHqI z|Ch9z=cdh0j@4OtM%r+31GEKy4+4;*(!A{h$`C;Z5TqOU5)CH3+r?Z66Nq+tJ_=?S zC)2%^iC%Y1hS8dC90CCbigcrLxTu9FkT?Sil*S<-Nsy($?aXjM9Nc2)mTnZM9G#0#EL_SKI<`o*0wi?lyX3+{oAI8bA+@!+xgp;YR^tCk_r zJphi^26rhBJ|OaTknfaxWmw3HiVq|qqgxs=3G*bX8yEyrr!8ALGLb-0t9)IPZV1kat2I|qg6o@I`p zy=EL9{ny}6CZaDwq!1zof9wfcY2C?RLjuwB{SAQ?{BU1Gpc1cj;sD#OWgYCRqfO!m z8Uiyd_>*SF?p@+BjzAfw><=^u?`wRRjc^Xe-PZu#P2e2phd<(jzd|KFk=Xu;IQZ~~7RMoYT!v-)b&NpX&hn0*u-Mb{&&3_hl0Y6s1yXEb#sTp-%y(xbt?(LY zT`*ac#wXk9BAsFAORUMB)Lohq5EOoEuG=fRc`mlI*Zcy&zYBl3b^n70)w=uWv6c?> z8(;eHu?x-r4q;IAVd}fe6E7}<7jC67A(AFKf!RAFX>bWlS3du9SYKegr?rc#pPDwG z6n}=+ygBHaq{HAI(Tn>nEA&~A!@J5+r6-qnQv3xC5K<{70_d>FXjI0~mje6zgdCV; zz|ynh>*c;t3BzufvGY}dJn2q`)+=IVgNWJD+T&VFUXc)(W_klq96&r*izd{vE z_vVij-vXhI7)8_YHo>O+rcv*sQB3@V8Y+ShAe6<8A%v3WUZy#5z{>d8dG7=cy6J5- zJ{Cvu6~}a4P8%{W&&6)`M`oi}I;R?VU-lP>wI2%k0PpQguc9TUkHt6K zd@*`$Weg5*0I`=5nCDgE$np20CnVaUMt8LF=|B6sfFBX=LPL8-bav-h2U>()JXz}H zz8h5{2J3&MGjo>?#Te|o5us=X@f`dZMh4P0D&ct$%hBJhQO-;(jiw8AQG;C1BAAPYHtTvoTs(38?ViAT*?t?%vz&~71Psw zE&4-nVj}kVoN({HtHBPl!ld1SyR03nS!6+RJm%3dFgn(IY`DB8oPL_^G{ZQ^Q$gP~ z;6X+)o-GLzK!}!!c2s@@&&^jo0 z;dpeaKqOxOA_JktnDLOSDCu9(FguoT!Ya5JsOCeU%I?g1P+I4K@Mg#%ZUJiWN>lt@oN=cY&w zDN-rPT}ggKyo1M`X&i3^Zb0}+W&R#@ghRv|3pCWZ+XcGexHeS}(P<3a5y>v!nx_7t z8Zg>*8;$cF!yTdRjZW7YERV4v2ajX@JgQ<@BPajdk9Ko9KWjK!Hv=I7mU| zR{Dp&wLmgu8gC{5OKV@$Xk*dNfdQ1dMx}OPj+h4cXha~I3Mg6@#^t1=Z0FS4(ZQUj zab92;h|XU0{LDug>CD?^AT)dWE@$;Gh+4H(b{L9rGxc-e*RI1<2nAh>TBNq7+-{nPqE`Ewy3Oz4Y zq6APTotf#UO(16Jr;)YogwsW2q~p!K!T7Qx8oNK_+*}J$R3`zFO6=Xn02Xs6HiVY7 zv-ym&coYmdc%EU|P@{1}{PSaoKu;umZ}2m#D7tRvAib-3q(Ibu5MtZ5-oBCYE3JsB zSY$$6kD<9)to4PcY4p-fJ%J|>bczc?p}BSZz;wo)}n zD)}lpodZrejrTsyb=;T(x8jj4Xq>KQUlT8E1~;7jwsNZkw``VN95eMb1D%KW zY;j=4fl66+3s>`zNO>d}%a*sTe*_!S8{iIv?|GEz?X?OB-#J#~NwH@GaA>^lzE}B^ ztN7k9Fi_1k;D9rSbi6Wj=Fq;n3fTfnkp!bcXQuc1$vfhhv5xOQY?N3o}`k(&xzmcaOL z1v!G=E-Q0ziqw@|>+Vd`844s20E^X#Qs}rCzJH?019_jR%>PDnq#MTr?Sk8DakN0? z5mPvW`zS@vU!XAF+wgs8*fu@S|Lib%zl4gG zwQI#8WlQajVlci!?Vj9$+C8AY^0=L|gyii7g}_;%|G924T_!22VoZ=26q`~_|#Y#sYQb4e>&{OkX$Fq zWK&2X)RX>&kROhBJ~itva1;J*=(CdYcW6dBemELK5t4l)P!tUO15_yFUWwZ!)-=kr z1$mA~jCli^?MftdqmUmT){NukP?Lty2?l6 zfoD%U5IEnv=H*n)o^ez>%Bh|`QNRMmG2~sgjGCZ*qCi~*Em*2$go|z61Huf1)<_u? zh6%UQ8SC@C*J)V%fj|141?%pG)fie&HV+BP%{Uc&(LZW%nRmx}5qc)gM&R}6;|@Qg z)1aHsTR(n!L{I6f-$nA{+%Qd~eQzs!8;1@n-(@-txnyJ|#z5|nL;JxBWIL$^w^=us!K>k4E#3^q8KSNI;R)hwoz{ zab&hdyaH#+J)>=)qXj7p0~gmJ#iKq1!I2kPnLG~kJiJ@TV8=mBp6wyNB|IsXnqwI7 z%8<81c=Bj>V@n$9X{M7_iDa`+QStfswvo|Xb7o1jxCSt0F9BE}2gV4R$O|Eydm7Eg zU)IR3OY~rCzY%H_F>t%w-)1yo9!1}(;19Xoi0>ltM_2mmBNith?x&4Y<6i8I(kDjo zBG{18^!dnk!Cn0QLIi}T#ru%Drhdsa_=*PT@wJx8Af23mcbf5S!}Z>%hXc`=q{|OA z(Ra+dd(K6=`d}I9_N01z#P_zqQ2VB7l}Ys}2Uf&4%B@gW=jtQ$Ie-z1vjQEkRaKd? z!~Sgj>UviszMjEiD?48A$a)bt@m{+#6@pMLwY`fzCwnz6(fsZl~cR2!4n3pE%Ln8J3 z{q!+SeDRX!wJSQ;9Iu;BuE{=etGT%gHMFOX6-UXKeQ~)laUNH}m{_uAS^+lT#+K8k zYznY{I}gyrgaBebrww0`Rc#SDWMMqM43*%ysIBa%kC>Rf7zb1v-8l2GI2%)plphvd zuMhq~-~7>s@~1ca9I4x1-(`$*(KoH|Z4&c~Ip$Ijwhyp3tmi-A(&vAbphxCr!wkh| zs4{iC>*ULBIwW9q-YVaLd=VQE6n4@|p7~uW`H7YMQWwn(<{t;EGO#)!43iaoQYbV3 zGaVnHp)aUL(uWEcws`*!ZSMjfb#e9o=LRGQY$_;GQKQB-h}xiN6A79n8`!``qkz(a zN*kfHctP0(luJT4(QLM9wY9Ci+iF|;^l5FMT7*Ly2ZD0(anJv@kwG&MPJR%ekV}zf$zKL@U4~ieoY^6cycOlzLl5Fui%1nsAP=q zyF*BbUp93tb%pa=Hv3wzaaD|y5m~

=mQ=qL$Rw04bHPP+4mD#@L6=c6%{ohJT3{_oex?d^G(E0Y%AJGWKl2lH4jsps^U48 zmo+$Hd@a}1WHN=MI&wK%?x(Tj4!8{9&|=N#r`MRgwY!H1v|L|{&Sd-mA6mLRsgNb) z5>VvvxBpi*Vf!ectT~Zu+5@AqS(jSxA=_Bc>TCZFPmrP?XOyG&*R>D(5ga_e^t_M! zY+s|Vb3py!>5*esyeWf}$Utu2MBmQiEbXPH*Rp*rS5P)JfZFkuz)d7r|C*|Bf$&%y z@CDwjXdDecucuAwu@TpbU5H_wva@xGQ}BtYdQRv~$Y?~Xm-4y9yy3yQ*?$9*l` zyk|;e7FySFJ*}DQ`*|_??yMZJR>biH6 zzv8Xu2?BI{M=IE4j6YnO%T(U}LlUSUvb1MC%(-l7*oJWu8BJfdOw6}fsEX$q-^%&( z+lQS`8zYuohdPgShuIWgx+0H@=2cB^j*VQ}zBs$$!16aU9jkdEb!OAjl1p+T=R3!c zLmc#&Krscvr+7VVJkGXV?)&!TbgQmme|0?XVJ%%>Y33NDP~VKl6>#u<5r4vM?xvUt0g%)rB;r1y2>Mn$0p~(ThMOBaXFiVW2@d zf5ishx4+Diow@=2X8V%DwQmn$`2Luj@eMcRvrzL7RrRsB{*mUv5GQ^r#NZb}QE1~$}y}_vA zENx<8swmVjDO`h}yR+-&y;B;>T~uGoN*;=r*S1gCR@Z_6dtFJP-+9>MOuER|vR&wJ zUsA4+VA3G*oA3P=Eu@cK)ukY!r=t?QbXAw>xvP4NeiBQxig#5P>zA+zu3A%jtumfX z_N?UhsJwEHuX!QAjmK7oe9hM@WeSI?{H9KwPT~^<|;IsS%g) z#j3v5LeaNnQj6M2P2twXI$o=CLt0&|_jvs*49E1;@^r^7WQ$i_hvmeoxr#{Ot3g{q zn5Xyxr0pf;wp-?h*8uC&w2ur%5T7tXd9a_@WBmJ}sOnOC*6K(6I3`wowmsbam)!bl~4u-4~3BetVV6ofuWcjx!P@4yrw)jss?W~2MZh1 zHxc)kGf=q%qcw$vc2}#~CcE04jRiG^2e?7R1A0x`0deYbC*kce7yeN@wGA4k(JzML z^Gj2w`s2fX;g0o#J?l-*gV2#xyaEU`k)^B^)2B9WQ+=UWG0FW%=Iztqivqia4~~RM zq3Oev5DD$Mo7u|vvZPvH;HcTK|9nu?C^-#o{!Ik6Di)gl;epPM>Uf$%s0E$%dog#7 z*E{!~h->oijw3be-@QCI5+-n{7gycpfGxPd8G~wr(kHTj8N|NL?ncskkp~f~B#x&w zV_N&1qqF&vh8BkiGuQ-}q1d;r5;0um8`o$%AAZla z+xLg8YhvHXM+o3HuJObZj0gULs%UlL~Y>BVb7gmFyL}(Vg>Fh7_(oV|myPd=p8-zAD=<9K0 zbGb|mgAIyJF>I^c$Oq$tHtM&{pHn_QCo&}QV```BZ&77xP@==Vg?W>YLHO@htJ%l$ zMh1?UaF@z|S`i4Ls;dZ0;Hu-$I8_j==nP*BOTzc@mRt6vMuY&7xsGlAuEe%XCyLZk zbtr~4|E|P`ndEFGa|vsooK(tgf|4>BkZU_!lOD>mCK#-NR?LjtmwHqb?j3>3MBsh6 z1F*{aghgSeXW-groSM6smz#X4 z+fUoWnRpBr%bmBmG&t|+QgeNc?cr2@=wWGW-pnBPpS5X?Ro4@=4sZ^tXW53%DKTg_ zrk-~jKYD}5?6AQ7hs7S=B2-7aoH?-hhvp?dtE*ZU3=BqB2`vcHape&Lq_-)fMrvJ9 zWFEs11PJ7%m3baUhqYqK%;HP4vgX9Azt&kjJ9|#7de-uDDOnmEMd^;-jXj}oeGjf1 zcM6$VuT(}=e8jX;>%p$5Sfl=_$*!p2)xVxQ1(9|pT+zFOgX#F9nXCjWj;My^-V!jB zNs+zZJV<38Je*3sVX0nxspgPvq|}ZHU73NtVtPeqW54z>hI%(DY7x}rcv3`+1E99$LgHKST7c5TkvPvgL z@Amf)o?`xd5VlxsnC=#`s-SO`V|YT4kTBaO1a=oA$OKB}$9CaxirwHF;Dp7rG_%-O zvzW5P^nA=RTQdW%^9++YWbdH-o#5MC;gl4pIaaV7b z7Y^X)>Yvxx$m_hjNF!d>XZ>qsM4;XI*9GH_$BO|h9=)cn^yiAy)!nsEVdR`&e2ZD zU>)H)@JYKj7`tt6eEGrHZ3kO6qcw~@AA1r{9b*?1-tv6voi67S9$gsuTlP2Z!AIX_ zU+q(PGqX;j2^e%p%+Q*Vq{u<%lQCS4nQ$(->}R#x4puUAQc zM)@5s?D)49ZCRD|m>bzW)yCxoe4o~q@j#aoAAc}59%i_UMfZh8yAT!;#9*Hpq16^d zX0DB2%kb1-CrfaGQ1P8 zt`H(wr2KWUO`%apC;s-!xhJh`q1d33TEMN#oe0sQ$~24b(*)!RA&0wF>^qTUxb0Ps z#G7AJ@kC>XGck}$TD7xq1pte2qZp>u-(lzL=Mp?!L2V|R->f>EwbeDeK`igJZ{&qy zCNy$;>P(F&TB`Qt^b{A(il%#Ud~rU(D*7M+T}I*3trE{IhPVet?yH~#ajo?}=kL1HQFju2FMyuFFQlv5U<6B#DOYi;&ctvDf~Q&A%=9ayqU-UCgv#AAz;5u?b{CT>7fTx_R%9xGjODH62qc@f1B|%`8 zwgm*u>g6W_?Bx$ckPux4)D}{DL9NSOR0ZV~dR!(Ho1b6HybQ(4>SBwSs`Uy$FpSt{ z78at&$d!UB{yRNZ#XSEVnuTaB&*-Ty<``nQojmvOO?3I!?BK{w!xboN-Rzu5r|p}y z3)gmtn&gc3?Lzgd0xCxrG&*%f=R`hBUUAZVc(|!_dZObjgS64wstZ$`GEfV5_~Hv# ztryhyQN!coDY*8CR_wjWi`F2qXI!Pj7>Wq))w5>KxUQ@@v5B)5o;_#WrmV>EiPuDYg#cz?n^whwkpfyvhN3v#7v%2*jhc%n$p<`*Ych%4Wpl2 zsCh?V1Vetzd;(60 zEQor;g+}t{hUB-$*kJ!=RD!5Ha;X2gC=5=i)!PS z76n=xXl!!X@=>)TpX(LrY9Wx2@4(UaR_A@?%Rf?us`g-0zyKHmvGDx2X znct;9s{>jeixgA5fPEM-3W`wu0jpaSxC@{M70Xv_DmGbqRFgJc-bBf3rm04H!Iu}b zJ*)9rkf7xvwfCwQVZ4o1I0)e^t|!$$dRtLe1YOuG<|fL-m(9|nipQ5-r^kzU^sQVr zU(Z9_^UZqBanHBtc|XDkc^2q-7tf)F+4Z6L4PfS#0BR$7i<;Cv<~Kq*2Z?})+RFTz z)IdBEvY8H;r+H1yt&6?IyInJKXR`p&S91?v{F)>(KOW8GAz&arS$}U$vEW)-}z8ev7_+~GDeqxtvve2Uh4*^+V*ca8Pffu99>lZ*0B+A*=dJ;23bje z!z4*hRniU&9`TaS?#!bZS}QYe@l9Vy9v@#?mTw+8I$@Ae2tfh!7)@kq5BAos?T5mx z)RdE!?!gbdLPp#xttRt)$Gk;XMNwc5l>`#QQ9^k6XwI~B+`x>|1u45=ng>zbNp0gw zS%ZJ`3`>Shb4HlATfi~A$=C%jf+ezl3)`ttHDmpq+ia^ig8Mv znF{Aqp;whm=3IsAWRmDr2zlBH36|6F46|^H>dNZ*hi(t=&a^URwUXh=R?{g+hpS>t zAxWg-ZddU)(iJ1Z6m?Y<^O^6&9<|)vGiPsqPbyYAvBp8dULv0fZ{B5CM4o3r!U~I~f0~>Qo#Sx^^Yv|E>jhTTrL0 zUaSv&MuKfP?^N8W@WDKa1$0|g15d#&)raP)N`_i21#VQjs-}CdMf&Zks&_wA-A_JzVJ`t7Qk<$kWy52;o5*DdUl&F$SqG*Jy#vMw*g zoaD6}v*moUHcXjr&n{wntc!+R)8SG>q%uw}HP77dQm0yp%S+8M-*KrkNrj1|^DcI& zK~l@psk!EBq{^+C?pci9JmcyP;W8N_RXZZz$_dAW^O>9N^`)r+?ZY-&ns30*N^&Gw z0`ZA6xe+sLZ2h2RgLsjA(wFAmy`pVOep_`x zbXULV_K%tl^=qvz@ZBLTk#FVGx@3%yqrOHrmxpE1+$8)DWqX>T!xsiuc zph^)<@kPNdQDL#XY}qP% zw1rEG{n7oo$!DpjX-R%Qp~?^f7nGoF)hKxLD*G?GnJ9c5)i()^?v9XM6j0RL3qz-B zovZU+3gOzRD(|J=-C*H-?`7P4UT_;wQ`{4z4Fuijx)X$>DaAaMiiB--BSyn*d$0&P zRRJIhFdOoiO|LVd*g+i=_mM*2bqpJbDXy*9AU}20cD|(sSZ5>ft+-X-K~ai; zWZ<|_DP%F32;w-NnEZBnN6olvRpExit@=ZbPE`G%CEN3fb?qX|( zay(3X^X3QIBFLY6I%{Tw#3_r>wrbau{WQ9Z`EX6PUGPFKN=wlY8`w3zh%+$mB)}4j zQF0X;Kca4+H8LAr&-`=;KWP^kiZ_<~+a~7wn=UJ0M10Nf0LY?&mE7n34ho#qah3VL zW?6Yu7Wi70l9K#MuD1D$&_PTrgUr}Um4}b9So%S5&qIC?iSM6wmA=x%;w zFHBteSsN~7eP%`nwTeYL8ugceftJWXCNc7kYvB?B^N8LWlfE5NbcZW-3yT-TY?I2$kJLiHe{}t%kZSd14_p*Ndk)9p z=qYFKCnhz{me}bz*)8(V)KAl;idAYJ8gfc)qf}PJ7hPPGyS%oms^}P+OI2}^FH&sN z2%tE>(4rOo#3GSbVz18!<9P}PHvCiC4EDD9oj}13U(2!3w(Z|4(2la@s`6*HOD`b% z15CRFNcNWG?-^Xil2#^ig1xB78_GlM+3k@jMs(ORZiHjnnBAf5gVDu>xyw0Yo}ZuQ zV%_E+WbfI?+1YM;HeIoC=|5cQv8l<_THKrSSLDRb2Y($KiH6Ws+WX}WTSvNlcPe2Y z!Lkk&?n!0=s7=A~j%D%5x9L}H{EmC+ouFsWQB@nWuc26Dl^tk*^sy#B=PvgF#bU2- zr_hj8U39y?R`z?G0HV67csAr4irFg7iGtCo|O)CkU8ZD(x=G0U>M%`2!y6r!zm z>`jHYyn;5SCZ9G$yoH2ISh&}Zww}66Ar$Jrw#upP8z;!`|JsAO-&n)>z@W9;b1L>O z^F@yoE+6>R5vfUb?u2MYzC`Ki(!TlEzLDdvcu!frlFqVi2U!}fnpxX0ak|b(91S)X zuA=#5H-BiBML{Duu}Z8YuW44nN1*#m92qNfEsC^Hp`AhMQO`zy#Z95ctr+JFlZKIf z^Ew%m}jXSCA6l#Yrjxk3qGu@_BiUwQD^v0K{j)ZC(E(_K+EUM=$$M!3GEk9G4B>hiesDtve1n4=|zQ8I&GIx@_WzTDTntf{)g>)fU)!v43rD zWN4WpYexoQ^_jmWnH$>_-Jb2%RK#7@;J^M^!;AAFe)L=A{RZ{hOTe8{^|%!wx~hp! zZkjl}OW>Ki|t!Zyn#V>LP+sg3He8)3QAsiPKZZ_WP%aO>rFW zN1VE;I28YlKuaw~NRhcwZlGXac<2N9;T*+!Ut$??0Ww8CYV6b$yX?Hf(59E2@7ZPN z#GlhCXytjSqLjI={rY~TcCpr)R#VT%NWWn0B-P1G%e84S81>bV_lOc!Q(wyx=0Dyq z{4>#@dJ4O=$xvGNQ6!gP{-))p<@xRy!79RJo}lZ)tF-*LHx?W1c#}C=U!u$HO)5qk z%d7P2MHHk;tD^kVHu_xG{##Lf>dgH$1p^`&GuM2auw}G$K2{aM_zlGhV}gC;0katq z24k3DZPx@ldbP0$<&w}c9>KCHp^U%xe(!Mwsz{?u6-~0%PbfD{q`M8|HGo|kzouSM zFj`)W9Iw*y(^MCq6Lf1yibBEoN&dD8Y<&(OI3W@slvt?%Ny)UMI;tIeO?_&ee?J03 zVGUwKd88Hug-VXGR66>_XSTBjgc=Se@3xiYq5NhG362n@YS{Y?vtbNyWtN`yIo z=Y-R8KwlX{uvn|%D6OZl+ne~7)G4?>K7o#*PQP(+uwfHAqxLb6`(qPIf=>1{0Wd|L zLH>#fB}@CMx?EKS5^A$;EvvM*O`=zY6)r5Z8$iZku{lO4rePaFh@;_o#nx3=JTfS@ z_s0i5sHn+b0HduEqZJmvJ69t%Z7#+$RSQo>NJi9}&WGBkc86j~^VH|1AG!fnTQgli zcKnCxuO^*HFc~i$*S$Ty_L`U z#|h@qtWNr0WLiL*No|^`!RX@ptjKOIyG-@4V|~tvEf9aPJyP0PQ(SF^q9uh9bH?Ol z!a541Zj)7$+#gq5J*e?j%`jE73QE?$Mz5x8i|748ya9br1Rj&jW)n4L1cF~?jmIKigj6e;9+p^9Q}H^CBLRFfKA$3B-xHr9M^?UrM8jS zM12Y22uZdfekTvX1N&tgk1E!Rv5qa*OAA3`*^4d+wpW*SRhN+Sf924@Salh^G)MT` zV`j5TP&6-sf3#)A*2jqZ5ON=~`0yV9v6dq7#^R>N)3SBf`nlvk-eE&DvAFF@O>H-? zClu(aKylNY0*)-|tI!dY5q`DGCSqGr8jPWWm|xmfRor@IKBZc{0%Ydf@%G!51^d?x zh@987n08J<{lJk&UMp>A8;L1iq4j7uG&!F!qaNC&9yVXpg#SnF3IDzq=6Xd6XY%U$ zIo}fLuy5KUn-`P2LKkh^nJ!;X!_a`;EJ0BBNB*TQ&biaGNl|Pr5#Z(K`?FB$wd{_U zhMkjJ5#-mX)iSBn6?#3P3D(#0Mr==bglV25X8M}KF8)3f&2cvwQp3$$zFA+gk`k;X z)w6u?+{_u;H`>(7bs7~%@%iU$(>dFoAozZ{0Z)cf61uFne^-5cBaGiA(wOcZhPq4( z1%lXF=i_Z-0~?Vyde#TH0v~h!o(V%FM~G?Vn^r*=JZ1o$p@$tO(sJT>m_N&3dQ-F>cPTc&oHn zb8TlIM>u&Yz<1qwlu&nKZFygE!Kh zU1AC)Ywrzt#i)Lqiz4A;nwAbe!cA-ck#PTD_OKFmJTRGTwk(E*ENKL}WL!jR867M7 z)jO`G>J=LVuUq2Tde=(CaeaAI(1Dj{u*oX6fPQM9277%v^gU{;c$sKG?Rdi7Ykr`7#FzI;V{IL>F}q4y+zf1EE16wbz;vs z(BI1lJm#XsLiC&9_i-i;-ozur-3?2B`;FPA8fxMEDtR6x*&Z3%@jHf_5uVV#^a9U- zIS_l_eDm8#McHI==114v>WI7Ey=EbJY1~E&_I?Z^_3O^zMpML#GjJso44vX$g7(pn z?e3(NXLTgLllDvtaHJNbgLHkwbfQM2nQ*_R^0UIe4qcjctv!KRt-q}%yYl*QdF74a z{*_;iT*dZKbBAm49l#G5NT}xTGkfHec`|;jm@YKp|68^h3KXewuh9v}DS(+O4RVa@ zrG2C{YY?9LTt|Z1T&q{nYKrZ2pyF`20Pf>!c?XEq;bxjaNEwpur&xIERI*@!oSrJ{ z7t$YkxdKcn>IHTfI#JDRBK*@l9_U%QPBSfWFt@ow5xdfkIW$G?BbkaYYBCc)A_wxs zM)NI**h0U@{D>j8h^xtp;6J7t+QY?&Ybp6Z>^UXN`)68mQ-HINwOelne|o#4dfWXM z{d29U?F;)fc$^>iG+vXoZ^dBT(iOj{M*gXWEsZ zM$Ff7uyu?k)qD4(34(P4m5XPY2R{Dg9Z+Mxe8+z2GP5*a;P1qknt`{7&e2aNe}fp` z>%e4>SPYf#qJ1WzX@N|5*W)CJoyQqH+k3M&FrEq->%1lG*=BQ?7hNG!5J1m}_yS@i53TyOMS>7qwoMt%cVbCfO-hf1^xh`N5Kv7lhX_KqyLol}!-YwPJ5 zA0PIcGG&+K%}Q!|uC_TXLK$igrqbkzW+0A(E6=5b@k_XCaOi)>f>76#MxW?XOKhA;OP z7Qn)d1DKY7L19kT_7OqX;@0v_^Ep8F@c#8hl#X*Vb$8@s43QH19EHkSXAMyqcFbyH zEnUn~Xcs~oq{E@}Lvz2Q1B(rgSY{;uPGh}9)bjDq7m1*~!T8W1nt--0bN>we9!0xJ z_JzH!>Mu8=>8vLpbeomXrX@QNm$^0kHxV&ium?*Yk|Pz&6u6%ufr0IS2iozVF>?mz zj-)+>9s?ObiowJybUZw;11UNyvBM$3yhlyFp&K-6(C(k;r3URo;oV(LiWFLk6pIAs zX94~-8E5oIPmva|f>5b*yU+d4;KbmVU5-p#Ao~(0xmVc3*$j*2V%mFH_xNt)R%t4@ z;qoQU%w&IFQm5nOms{}co$<|A+FqV+s(2u-{g-DdSGT;$+W-SlHZcZ%N?BwvyCy`= zPrT)3dsW$PGsa=*RJR9z1reCi78rBNE%wFy7;foB_f1c}4;bdvRm`T2O5p3u-M?_V zmP@9e=Ozjtsf?^9-z>62LK2`$mcK_k$VPKU=??Rk-7L74 zU*}kg(#-|bU@2fDZG=nB-S2DZzz%6oEe;7h`lyZdkDTg_4WQww$UOf+A9{Wkw94sL zn)7`NQs!MyE6L1;5*&+jtJ*c|J2vAk+Tzu^5q68H0809)-}06SEvN7}#Y-hP!bgwZ=mxs~c*`L`=Ca8lep%}lX}qu#h|G2cgULc@>8R+Hx z#!KWKsJ!tDnk!3G)9Txa5ob|i&JdF07c_Vu&_g+oM`ob=@D)C+zKm2$GUmO5u1yQv zU7WOZTnI<7)4oU6-Tld`q;k4v7#v%VaR^UL>W=-+E7#`uGhScbDOZ?@%?$hoJhY!L@69>v+^f@ zi3(@MF3Huh3y$Y)6&M08wii*LqaM2QYM!rq`?5Mg8Hq64XJZv8nX3&E*MqiGTYNI= zWtu}8M%779L}FbNGGqA2VUr({Yj1f2#Nn!N(NM>@rqK>+l_2MPslko{PqT~9TGb^n zVlhC&9`>B6j7!R$U@-h&8eZD(d)es1D@crPaC(x=)}1@|vh2T>CZ>QFZ1FH`tys5k zaVHo%0XMn=uvuyuc+K0811x9H(>!+%cv zLZnNT7lQ@B^(TJiC7eS7>I*&%{NGyp7;Z1Iu*<+4rC`Hz`}6AaBacOoTpR9iB&kz= zUqZGWOM*5gy*cM2p}sn(tp`i>nZ?lan#deebD2e+FR@@cVs$*rmncm2>p0hv^parf zlWUJXRCy&w|UKzWU||rjuA}9#QpTllbdg#VYi22!-VN^awZ8LhB=JI zIPgEv(G*Pih$;}vRg~j_k#j3d80R7XnTSrJ9Jct?c|B{!(PU$+I&XQQgxAF1EObdY zddAnMyjtMET|&TsDVh`Ob@3f-p9~0fPHHCK3K%-@9emU+QhPup)vGl*aG^EcpA!F) zmXAt{^ZyL#&G#SGL+!QA3s8dp(H%ev zjr4TPppC>~wLqPBv2-P8lB}2KsF4QnmE>y)lIGee|BUV2Ksx{(%Z}j?#t3^P-0bhi_^e7CqeK zYwqdKP#tFA4)tS{z8pP#y02Lm7@~*2;A`1QTJjJZpXlLnzUF!cu5ma_!`D2H57EPw zzLpKjaUUO|hiCYj_fviJ@N!@CwYJQ~zLxv-eHY&~6hCLIlSt5?2@~)BinKWS+q`7ukttdUy4=;B#baaZ94C51pvXn~XQ_8C^)hAQ`VhR_9Wvp$ zlf?ttf<*FORYQB%(;n9jj+OSy3Ve-fMAt)m)^PD3Omv(ACK9J04k-UFZCO48$4K5Q zOpJ@=KC0Eq*K#>EeU@^6p&W&ZXft{8XDqWU-IlLq7l413W+u62PE<21KVzBWdz*=V z#v-r(()Q*AHFMc#Eb|~`EarSIBR*r1rLGx;7)ToCLG10M)?#>DxTNtI_?)lh0p3%E zaKG@e(IYc`E%)gC6wB9GqwEk@dP6*5KNRp^eE%dOvDKTHkGrDc^kSWFvS?e;xuYL_ zEf71y*L)EL8%uc|7+&1y)6HF9%k5bJHk}W=4i0~nzh8|+k_9f|mhgFvLr9tvKAyif zMrNjp_zj0Y&)%iY>*PcVoYL>KhFN|qOk$=L=S+V|Rn5FN2G+D+m$&5;tE%J` zn354`GVfTuS z!_|m<`j~%Brt*fNjF82hulaaV9dmkA0+IE}VNU?e{bbdpS}PyUi4Uva-&q_+5c@+WY={hj%ddz*IVg->;>?9=alO6MX4DHf4yAx(0KZF(<)->QDv9JP zPKNgkOtgR!h$tApG1xg_`nkc_a%8Y8t1!&2UtP?wbxkN%p36G_=}(`Q>1ms(aB#EBG{-k}t!eqRjK3$Nd2#{-!IW(Hv>bORM+g~B zIsBiNW43bK=H)o`({fZR$Eu00j>DW&iFtDt+S{wslw*I5%kg4w4$oh>#7We%8w1kf zTc6>NO7Sc7+xr;nkSo&)AUUXf8hOT7x+!(CUGlkZ!~L-YX&g@tD(N94^3`kk9H`i_ z{1soRlyc_lv?*1AgG?F+1h%6ax%y*`-0&%le7SEU*M7W_oKG~;i-A)qX&&-M;@_O~ zcsTOpM%&HVpl~(vP2-ON`M?LnS|p;*HT@R;K+&D;m7>)%EW-&GDLTRxoa44U0G`~b zT=M%orm5I+4*ppn$nOs;p)K&HBx94U63O{d?{Q=H0s>*%FADkwI;Qw37?m@knX zssI3suOde_mr~ePM>@1(E_Rg_d&l{`19%M;nFU^xMdbPfkyk3m&Ep+V`>)C5=#8k3 zM*k;d@~|vTt{K2P8_g3ham5~^7`hf)cb}lX78fr`?MPP!nSXj<+(qtS1I}ty(~tEc z64%gZ^0^^$Gw5EG1@*mn{0=D&k55+FZ>Bn3!N+HB16fUx2jR)&`b5|L%JEyTo)547 zlpLoj$Ne7M|NgWbhf$51@vs1O=HXAv@uG69x!C3SLEjvGyZSeB9o^OYNO4`w^+snp zg+GmC%wjcBSM8cOuWu7>{(NYzRE`flWEA$v(b4oBrkSyqA3ikaJ5JGW^IeYF?}WQ_ ze58qZq{r1>{Z$K9zX!b>8^{6N9X;tx<}`9BC69`wxE*_~d;im~(|YHgUPe-%xRXH6 zXckAT^tdROK@Lj+`Yg)XC*-KJNM=^7jYU0NszBp2LObQ*_KK*z9jTey-a#AEc7{go z2xiY)43@mpb<`Sx7|L}lI;dD4CAo%`u01~R#|IDy*H^4vN@TjVOHU5Po}^B|Y5yBj ze@Od?f>mq=vZ5d6`YzpulDccnVersCIXifOP!^km6>ArbsBIwRYr{X}A>&(BYUJ<*aHxuS%W^A|4;>KUeNM4I(K64^?A54u*0<;{sjBxd=;J0HSTf1#@u(97oX419-%u^xB9{EAj6?g}?4t-qBFs%R zN=shA#;^8*Fa;1a#8+hy_S6)_0*ClrUMOwMU!Y1Ux`zwguS1QF7%rL(3EfC$uS2iV zes42d940!ZxIs3%K&_YYB{Fh7$D;_s@ywvr)FLyLA1})f$4nr*+Gy7ILs&}|bEcBTmLFSs@TGIVo zVs?f~Yp(;$Gw>#txC$;QQabIAmi}J!p#GxmSmd8+xUA4;9;aLB6cc8YGcOHSP+_Ts zv1gDnH;3dONy3HDjNydDJLn98U7WXxVyRDr59_@X{D=GGLxp{}l)zPkQd$U}` zG6QDeL0u=b+ll^zOjoaI@IEt9yUn@1nTyHHjJA{DVVB)p1zt09ggu>ObCoy;ausE= z7MKHH$_&ZsZMGErw&sNnx7&TioFLImI`4If7x)Za=Tavr9;(Dn=j*s7%}#Y_a^>pB ze}FqFZ2o9-tF22NHvbg4LaAPFW$ttX6qAVxaivCDN4FdB1tO-H>GfQ=M=yIbPcS`d zK~n0nOxY7Di&ju+4r|6mpqUn*q zXpQC>qMp=h`oo7rE*?-pV#2bRZVR0$6I|(K<7d!QGC~p0{KZV`axMH1LN)?==ODKx1?$J$Y}tjDl%(jpVJ4)2P<7 zRZZ6@vfMzWnNp9^C(d>)FcuEFMz0KGkjZm{#r8He*ljLgn62qcWF#hjwzK9Xk)9jv zLer?>5V!0!emj!0*}pI20H7yag4)EK>V_+Fika4%b2vGzpqo103Zn{8hyjxt91cQ8 zuj%zo=gm8}nBU4A@|cpflifGQLgM)wk>zrF5U;b7-NW9)AhY8vp~qgcH^UBRI*^kZ z?+Te8ek9ajf=Mmi)*2N2D{iZtzFN!7=?5(GMBrt%GNJB|H01iAlSj8TJqqTH%z!?P zGe^wbG-X-o#xQPpY~4jl67;t9jQ~jNX)6e6ZhF_Tw56hECPrnmRsX2o&gpc>tDGxe z7|L*n@Xe#DyOZj0C!F4;*nmycWmi=52vTciZT&uj0c-k#l^)zF!1*M3XboK2Cu@V{ zF5Py8GiULIhWnUU41)?~;+Fy5@|EAyn1+30W)}U(3e9OeJW5|;8!e#7y634cLB=ve zs;`7V{-yN2=ZVDkw2Jy__9~MG+#0OA3tO6XPKrh&5qsW@8f{S&8SD*xE7?;Qte!$e z9ar^Y@;NI)iL?!WF%)?^l-S*gKKo(+1Y*s18y`PjAOk;AI>ni2g> z(*?YDp(NL>64{$;){fpSY}A{x$qemm8R!?AH-lKqI@+-O$h7z*^QNQe`=o5Q8x=P2 zNDSU^{0(r@9NHY3OiqdHZq$}RrKuC#4Er0sg@n_Lq!Nf>oY;Qset?>F-{5&#cS5W( znd!7j%IcZI&rbd%L~iCcd|bVUC*>X^pfttIcSu%>6yu4DNjBSHRZ0mekFBvkHLms; zXRmB!=0VEJcv&Xn%a-qT%e>317CN-(lEqc?nEUEzZY4cd;q4SA_svKanT&OlbRW(m z_&cXLyLsXK3XY0dc#n2XxMhr%S&rlXudWFz|3m|FO{mKmqn}Ro@9FAU_tc(fk8jcY z(VhW|a$^VAw@*CSK5VPFbitPOu@7Pgi7gR*_0;gd==K3Uo1<&;pV_WRAb8VRlfQOP z{)!%{?icNgp{M;(6|!~q7I$HC?3MWu{NrbbOB?fBp8j)o_`Fn!f`OdMP0GlLY>o%m zz7amT|7|(pg$v#O!HNN1^ap0Z`|7jZO5!>_-@JP+UC{cEGKKC|Yzr@I z%ZhIAuACmh)`T3^=^j`#zdxUx9Mlci7xbOA2LA`#Z`__8d}>#)V4ac_M|zE`MFu|> znx>1g!e2CvV$qn>p<`*shx`u<_i#3;!MydOY|4iF|AOYzUEgEr$f4ZX)WyKsg(ZgK2H}1@jm99 zPx`wiI+wJ)P63tc%l|FdvC+YooV*nJ+pf%RI)vBqHMG+>qUlgW_}ZpJ*ZG>Yk7zn{ zrmrPLV@X}CZ#p#J*SyyzFYvWoKnlK9qKC>B48e={I?kkP3S-l<&_Ls1km~b;F*)rl zTQy8ODlYQ-0(+Ckex_3KEW+{($-D?ZTG1DCbXWz7>veX|zkFsxODT#6UdN+Ya~_e3G8><=JHb0PJO|J=M;G-&M#9zk|w@Nc|9> z^`jI(2f9PuTd_f4cm_^V4%tcVzr3w~P#qWMht`eUk$BFXnT4`korA$Kdhv5-8jkL4v7&6-`Q{vs`+tipii-Oh^+G&B3 zi%7&5igk5r^+81Gv`eUFe7$)H!L{QBG-s>Je(Y8Nw|s0gAMphz3bD82l`Zr6X0F!c zcM|D?wSBfx85_K3tuTr3J!Rx4@6VmiGGf_RYK&n0Hzy}-I%`SZjaQX+{8WI=HLM!dtNCzq>OTV(mSunknX1 zTgZyOU8P(a82~ax;ZZ#S z@Iy1sD}O7P5>AQSwU=WKuly9>RcmO)32*XeH9=!>l%9Gg6|g{@J*Gr|51M*ck@*3& zFu}YN9o-{Ek7z^UGA`|Wl*52-iP{nvu(y6j%e(cOC*N){`eT(g7uESI$8W|>RU zut`5?FUus_6nHQCR+(7N(bl4+aGbloK&|>>9v+1tb+9Kq3OvjckXru$!OY9l36m)8 z)e;n?K9~53i|R*3O%kwPHh$qbx}i+A_!2s~svO&gd?q3`7eOzctQJN`jezg-UN@mP zXLomE%kEpbYHB6Q$EaG<0j*|05r#!9_#PzRK!SccU>@|HeTzU8V1IbZz@RY7)05`8!i*6gUlJE+6xky zv_j+a(vq39Vdg`?C11~`#GXtlEKI3S_MCG)=e!;7Wj>5BCqtGVHhi`t8RTpOS0E=h z`h=w|i-n~+tkAf{t}iJyFKWCPJa?(%^PFC#20QAY)1!E0NP>=L?M<)E9kM;Pm`ESs z;c5P~qjZ6|gD|(OK1MrrZ2F@)L{3pTa{|8YZ>lUg%`SA2 z!KRi0!C9ZS@cHJSB|ro#;1-Hq%_59`ayf&PI0Qnh`~q3(cyJ@gCm^OoX^r2*kRt1A zX3RQS58~7E(t~DJ+V}kQaGBrQ_d$sx4$pRr%Rzg>8>XIhrrG8gmL8%N>ohLrMw?oc zIPA)iPnMqXX(JLj_gLmj$|R*kiV1hpy50ltO)zc8G_$ujg+Wc;&*xCPi!VVh?2>Mm zbJPQ&SgNl5kGhL$p8g8RoL6~f1P^e5l58|M=Y%R;Dd+P1x8g;(>EBL${f%0F`F&|7Me9RUzfU-8LAK!!o;#*W08B}i~-7Gye*;}e*m+A~8 zoN?;nzlaL(!G-4?>{COr2H=}l>@H8TE>z=dm>5o-)st|ZfNarKEs=oW2?*4Rv{UYW zDqUig`w8f0PFHmh1awtPtU}DKsq%N$EXXl0Pb5`_7IJAF%R%(C;ZeHATldIEiFA9+ z)xQ$9YdqOk9C%VD8skD0NM-*)c7$M(e53H`~h+`@#s zQ!D-AXCRr!Xkb8XYzrI~8)U`!;l|X^*uD_QA-^IQ%vsTTQbVMOORQJ9(Y)&*P5WUk zqy6AtEH}>ixOd}u+7x@6or?oEmErfJW>WSRT=`;Eb!^9bRA32AXIU#41N$BKL}l6A z=w+68r0=nsU?AQw6C2v4xI$ZigN;TuR8wa9SEnfMU)9r?m9<)uo|*H8x>;R@IaquF z%w8UPQpX0f*K)>!WLg;P%EKKb1YhwUK7Y%W?g*-KIS&fO#t?~9p6iaoWlCNcpGu8L zr2BAXVs$mN~I$K`o7rjBSunyE0WiX%T{&VqGHdCl+Ue z-xpxr7D0ti_w-a{Et-@%gHT74g7M)a_u|q09^b>w6IHAAdz3rA4BzOu{YHQAZ+nxI z(@S^R;ifWt*_8`9sZ+Ul5}#5QuPbYwEzEf4Gda5ntTqdr46&$OXJabc~&{S6_K%v5TO_ePavW2DtTQRWZx5=3FlJX)8BV%)F{0s4l|^{Cq041K%(uNIT_f2gq_`)icf0 zE?YUXYd&E&G-;XhWq$oeas6I=j_kWIbmNFN9^u-|9_tK~i!$kJA;}F}Bygpf+m-T- z=iU3)mOFB0*Z4xqZN?AN&+2>zy(`E59iK0iMe>)lfEl&OBXt_ah_&%CC4S$-cTaVL ztJsxSmW9TiY|QHohPz zG^9>ux`hLi$3}41W*Cd^Q?V(wZt2U>55_W4kA;pC;*O$@Z6C_^t$P00 z>flnmYA?Vg*V2+=rex5+TB-&ADm1Q*wqxd*?H29jwGI2@lY^R)J99N9_xTA*+?6L$ z0Eu!{*x9%Xs$n)BZ)c;uuv3g%2TjLo{_a|5?e@1$4NO)6g*@Up z)K)#;w{lC*npOsHT0S>>S%9-v>rbk#bNt}!)OhQ*P<|74NuPd=1gL}g7F1u$E4-!7 zY}wpZ;|8e44iL3q{+$)80W&`%$7;Q~(T#1w?41if>f%+zR!gySSBl?{L!jds0 zHoIW?V_d>^TT4RWY_(U|PzBEjjBUt^9P7t1F*kHvoyk>T*ES2PxCq7c(dKj!sA0)8Hga<_TldF>;ue-8_oUC7Nw<^pFO zu$)fwZ7L_qnw=%pZV++o2dmWB zWB#&$_ox>T*`CZpHmo0bjE(waW)s5Kqe79a`QpA?U1XBDfi6az}W@=Yzjo}*8T zAs6<^Ow%z9`Vj*jB~s@n$G~$!@rE)KBo@c1(>1xv8AoAn7%#DP<|68|aV_37Q67cg z=Z|Lvjcr7gH?E(Cc=I?JpGL;0^dShzmX?0-P4m$=GNo(0(*L#9)e@qX6ao<~1#GNv z^Di>vJzWi(;pFC+z+UD_0I}dy+t*WC-+xA4-W7m6e+Yho10@$`(~mNd46sS)okZdV zI2!;qaw5Ktk>ppZzROJ|v1;^WDwxu$`H|xsb1SC@f!MxSr<(Z{%>c%6)RE}#Dl%t7 z4;DlUdYJhJ*^*tlBtk`-pLG?^qe9B6{Y=@t%c*s2yM0<=TKJzh6I+(Zf$ z0I}`nnaZKd3W@u@9RF61K8R4L32p*r8CNB&2}x>6_Cv@eqi)w~3!fZ|=9HL=6y zNit;+Q}C{E5P3SGAyszW^w%swoa_$7m*km0Lhq~t=wMKqvI+?A=6EW#Pr_8r*X=|i zwsGBI_5p#|AyqV87#*DW9}o0cmnCf(jAzL6@(&=-=c!NRDH^|k6T0+tva$sgrO8#~ ztBH4kG_1v%cp_W=CjbEYRXM9K;`8U}bb7||dM1*Mrrmu{IjX3qd(4tTficYM^5X~H zw{syng5+Mn1=7e+fpfo@EL{hE=uq*L-)(m6b4e`bug`W9b2+(``$lGEI(Mge&igux zugQ}@8ny~0^{S!>P&}1)3IyPb-JK%;kQY0{&JFLzz~bOV5%z66RbnY$9APjpbF~TP5ZgICiRB{g)-Qnf; z1W^0kHbq}lg_gME0bCn3_P1H=F|;?yY%GG>n@rQ*B)OF?AV$y&fBW?%*(L|DtqTP^ zTMp2%G+Fy&Z<#M5ra;+GWf;RLHX+O}{5$ zv#=cS(E1R#NnYwODdd?DyHAcR+S?R|F8aYqzB?j(wOk?i%=X_8$jZ+5wFqg+t5u4Y zH}RsDucT#+(NKvfC29ss#-EhVf$mL+8FL-AK4NnWj+}wt7P+otfp56GWQ*#FR}}@@ zhus;^iEdvL-E?w{gSnbXetZI?bc-rGT^m(J2AJ6}tW=>X;YZn0{lKMW>ucgRdrT*7 zu|NXaB5f%7{a{Z|&!d2ym6{cdJB6z4^o6Jufl4d;;0UsX18DD20G-)$NmEbLKdWLn zY$@pWcD{PNjp%$%?L!jLa$sZUF_8Nt6OIs0qXt&oVc$3SroAjy&HGsk1Ik6A|)Z#FDcU}DRewfoOSLl2G^tJ4f_yZ4=+{_kk;UqKmtIWHR4liZ~ zkcxDY{Klu?!~vuQVjrYAeyskw4lyEg73@Lz?xJ!r|JwN3CB%i9UQ-b+2}tb{DF$z- zU8YUBq#G^8RH)F zcZ4Z+txV{Se1I~4vID7Y&I@uHQNdE3Y@_(N!M2Y3$WvH3N%gW4vYd?JxmgI66iqk^jx+}dqqY>N6(WxLZD>dxnc|ne%*77$i zc?W+&@!8N@UP;qpD1UGwX{W;;V-m=?Br{xApkwGc4Asy#&AR17bNi=&hh(HZqGqEF zix8wKJll(LBk6HQuVv4Exd*XBh8Ol_Kg*``lR8-0@V0#L8eekp3NMTv#6sas-jcW5q)K1&U+lxhzUEc-;fubOE*?_XjMEsnc-@VskMr4= z-|%IeZbOD=jgzMqUkjH3U0vf&RPs&!M|4```}PaUsq4UzrKwAxDtkZH|A=s#)Yi!V zh!C2T{NR5?qGs{|`>3%^awn8ji3Qesfd3KcLM+z(k7xu^js8cZg-$Kus0B}?LJYGI$9!`k6?+0GmeEduAFp4NlAC1rv5yvj)F zisi-9g`q(k##$%8d5vPTKQw9tJnS(aupEf^cACXB=O>PQG0Dy^%+Ix4IgwM|X$3fP zH9p2V%`t+_y?2|1eDrf4#c_A6al7qJYVH7=YiCL(n^#FU%QDzXt6l2N2G-{lOG+$^ zT+>}v)(fY3NBFBQ>8UQ2QI`Kod!#V>X{XG5&tA&5x*m00I+#FwQJ#AA)(qB=27|2Z z2kn+4)NrzxFH|bURQik)q79ywFMS(S` zWVMzqx+PyH4}Kk%=K*YY1~bAZJLv$c`)*T!4lBB(c$^!ua6Tcx+~7R}e&xrX0mu6m zD93ZJuKDTl*h^#zTU2P;hUoeOA$L6 zv%uJ!@=-sIV&0jbA*~4a=d8ChGSWsTwltJF*<)1QGTXLOD&G_KCr;PYNm_fVj6ikn zE`VoSAQqBTM=r*NmL{cn-r4LzA4OCoIvL^pT5C8&n?mzP1VN(S&lF7gz?53RNaSO* z=#S4V$#0+ZZuEofg+&CD;OvzaRBgYR$d20%Y{{*uY!7C~UhrE}@5Bg4m54CQ05dbu zGV=?~lpkUi50_MBtEwhv>}s)sQpXCcZW?A_HPcMva&XG&QW-c57dXPMN_{C1zbVhW zi*V|(#XGeNm(1MFOD8O z*Vobpe5s)tzqxMwz8XC^BeDp`>W&2;t2#P)(T08ujK!NoAqxZcQ1-)1P*Cb#4RAmyi(OLU6wxI;VQpbnW=hT-o8}f54zAW9L&w#iq49XuB z51(q6?$|m;_YW)!{)*kpVUg8kfswnj=T;&~iCoS10H9V+DwC2osxtffX>&rtO?+Zy z&n8U_tD!f)WQ}DAJUc;mkN{PptySeG98~YT<(sWjzS#wxiI{DWP_4f(glnbF&ez0a zKQ~1Bsli!o)sxsBv6-l5RN!Lm{Le9^dDgDN-KI{zQAK<8#=6ktJw_53`h#>0ET^&_ z)ig2#y)x~z0Q1$|Ny??Stg-!82`5%n6WidHS#0#8$=Qs7r<6uE0+%|nAHMoX zPj(h+=R~pShlZzvN{Iz%ix^^tfli>%OkFJ8JDp)!;B>MiVk~l4GQTY~7P zO-NVuOs#q(1XpjNsP;p9u=X?!7dr%Zq)m1(H9Gi7YIR~?l*ZBM{FGzYn zIpQK}1^Lj`PlmmYFO-|We2vxGm{}ZYYMPyEQR6y%u*6^`wBB4~$El_`6A3ByHi)1U7C=$KpnrB) zs^{ymv-&z-tBbp;=epO~*yi9YwCW#N*AJFNU$cK_sT>i#yQ)i-&TqZ2+ZMK^u$*wq(_(N=wpMeo#4dvrUs z{Qr*CQ0%@CT>x$0uGLonx4E>`EMn7HA zVlM?g*A>;A(Z9~nN|8FuuGW*lmfwC6^S zuN4aIo~>sd=f18qSM~Nzd~($=n0q*af@LMp9^w2 zhK*adT!1x98${$bbdeFvuwKg@y;*|d8kUmS)q{wMlm)N1CiSv!^FoYbm*t#WZVj&8 z)z4nbG1k9CY6OaoK z+k^Ln;$zmO>S`-)oWyyejBCuIYO0I zHFG=X0pV<4uAewM$)E9D7r(F$3$i~2otxVo3$cPgYhzc>IxetTG17GN9*E6iJzpQh zE)n0U#UV)z$+oKE&g%R;@hS!JAq=d7xyHKQy}vUsst9AE8Vm#n^*ruBjVPCec&$es zM~P4vpFe0)Y{YA*A9~hR?Bk?p;jt@@z`ibN9GES^)mZ0d(GAqKt&dc|$`L)X)p^md zJCcR{%y|x08{|jcq|eto(NEhZ6~l1`0B^CJT504JH9GogZflUhn1n}-f6o!_u|dT$ z?M;Z~s7c~pJA?0DljZVas7IC}K@PJD`&@}?E-B>`!gjD!v!k0`1Ej}nxq-cTYHYB* zMJBhw3Pdm2*6uNr&f%V4-oYcXW}JF51PE2G4-r1BFrIg(zm@oAJsY$)C=8Be*LO=o zWqwSVVEk^|)F*6a%W+(cVp%XE}kdbfn zD9D-LXA266wd_l|p_P}{ikf_#gfft5aWkH~U`P$*i99AQu-z8>qeEY|-& zApM!oTclgNaG62P?lTA*7z6|26l)#eto6Yjsr8fGKR`V=avQegoKIrJ^M8Z#-v>U9 z-uhtdU*>))kqfSj-y^%j5QUhF1r#!{m3GfQo|kCm_C?}Gl$cyJ`1|Q%Y<6?@|3YN1 zpK1G>A+mh+?^B3u$5{~BwQz+02O=9okN#I8duIQ~u|Vkdw}}PcjWBt+nFwPO&Tm?ta}Lpv+UMlfRlK!e2**mFBY$qi`o@CP@!ShN z79J;sSNoOOp^9C%{5AT1HsZX!hJr6>ZXBV9wsd2jJHr_Qc-Ne|cxBGnxnMen*cX`M zABNf|ckX!0OdRQ-dR*pO5sq5yHY@R$MV#8n6~*BxQ?$YQNASQiY>`er5@`FPdG6gK zY?x0*Yu0-G$u8QZ;`m(U$X6#|78C!6xVM3iyDIa=lO`=Oluks1`T~rhwG&9wrc`KJ zkWQPlGm_9sTLIfrr;|xDHpzs{Okbq5Wz((Vytwci259A_utmuK`+c5selL?rTD-enKhn(a{LXpKbDr~@=j}Y_{20n( z>OD4N8&z7uIse+M)i6W?0<#xyAu!J&zF3*?9)1l~ienm`qu&*gQ!O%OrgI^9%P~V6Rd~|jk z>FPXIS?Ba%am!s#ILTPM6t|fR5%-?hvS-QO6RFVXt7y3Q#I>P)e}f-;&e?mSBed^H zDO(xZe+x*-IKR$+=bCELXeyjk)3++d+36wB)fnu+C<$a*aM#pHo zpE}|52?O(HZWkc~e(9Jj9O1$IxiJJp=O?$l7t03}bz-NZ0fz7ejJ>p~(nNqIzVO=H zh$$s+1!G4~Q2;IJn>91^N8hAtGx|>=LY#{*nA1 zMPcQdTu9};|0qyJ8UTuY*6Ettxr=HgGbCU*Tqg7=*nsD~=lXo4550>c!ye2L=L%8m zPao*$P|xenAftI|@xc53LM9MRZ+Sm!Kj(Z-I^E}Ka3at&G|MNCa$r75T*=y^}G)qk8Ye&YNtMqjjosiarqeJcHz#wORDm4UM`z;pjYcI zM%}$jX2WTz&QITaV>Nhm4XStCv3Jo%IG>}}BA-Y658i*eW(jw3c<8BNS0j8TNdJfU z4ag=as>7uu8R5V!0=M||Ozv+!8;9DG@5aY?R;d@R^;={483(?uo&Pf`;Y;wtZ@rC6 zoDl1~=wgC^`A~cd%+9Ddj*Rghh39c1q89gs$ot|6yyT}Me?|iY7wL<-9oaM!-*v3R zCuMLz@Jsjt133Qn@1UQ;ukk&?*<1!^QZD@#CnT_<5RiqPH`ey6UC(>|6%3zgm$l>? zFI%5G1BMF>l5N$+4;%+I$L=rAK$N@f4Rf=F@EI6ORlnX|CA-@uO1}*K#kgH1yA$TT zrg#-o!TAy)x&tb`rn-|sdWna_0*{4a4{-pG#6oc-*FWw&_CZtm5C}Q78t?CIeMHyf z{`*krVVr8?+^Rd$c1J9<@*#YFG1m6zp0$OCnjYg#a`EKdB!1gNdqM~91U=9Xcx2f* z2YPDDRo4RVHx8?E<7bVuFaPwYJ(>HuBTXzPq!EPu{w`BFz1xc zcjAV0U_90}vsjD206o$%6K-Jg-q`RV^!`*WRLmK5W4W`(?%jWI=W~MQFBHv2bcy@~ zEPeow!|al~2#)e%i+J^m@r$q>j?^*dhrn9q6n*^_h!DT00}>QFg(6t5&4KgN7nW8rhF8w-UW5Q2;TP`pD?XupOsB=l8FpHC z%v{nj^Crx~L$TpIFbg=THoWV-bz_DODnFh7PIu)i2+cucdYsbqcqfD?{GrevJxR)s z;P@prdw%WwOOa8p(Ej^T+F4z~@ihD(S*8>h04rh3DhSyn8|%czgM@#qcoaCn#p1xf zj%01dYYwtT76)lCHi*e*o##Oj0R9rM%Zb9P*n8rlTzt>zdrw>#+E0crweCGJH+S9M z6IX=xe-6(u`|I$j)}kadjb^LkwA#UxfATwFl-x6=oj8~!%=GKhnSi|S91a9EwfI_| ztuo>zx~a6O3w}o@bMqOMaXJ+WZrOo(L`=`|Fy;47VJaZJcxMTB!M;*@52616qen@R z2U4K_qMORXX*dOB6p37Y`zkkOn7oLCxO3GvDql^rnJOq;2 zK;zG1qt{`m3!5Rd8N2(&n=;z`yJBNM7M1r5C65)G*xWOxj|#7;0)c9!UcLE+Yr*am zp<$;A3y{AeMuZ-L<>8dbstBosRjpuA)2fBb=zJUTmH6n|X>ws^D0W8&wj=f*>GNY{RR z6o)x~@JE3+uO7zTJI*~doaC2cH91KwaQ+XTB@?9hL)2}(56XLq4vqG1POEVyP9ab zA`o5ebf8Cx3j?QTolA)iAu)>V#9=^SE%RIB0vw0GjynrcSPFM8!P%Ag=!)uW-TwPR z`)-5`;dDHR=}>Kd^IhZ&9|N@>FY*AXuut*ZT;g6BLauR^0K_eg%1-kGfd?Axkb7T0 zlW`MaFYqiDhx0jkihF}`Pyk@A_OPuuF$@FflUl- zyIOih@*tx4N1YE~Xb4+`_AyZyAB}mVCiJ;h{4CAD<;0==AI8t(zp^J-lB>BA_0xMW zCLbR|oS=X>KDZm!1_Qs5;#Z|A^JuD{-@ABr4o3)_*TCUKZzfod0q*MOLkAW>H$5mZ z48~#pNd`WIt&G=Wg|lWk3mGOI!L8PCkx7zU&ve~UK9(+Cy7%q*G?s0==yj(NO-dgi zPc0pO37-LfiiYE=SILL3J3TP-*g4$0MWH|1K+SwR5k>MOg@^MBVx!VjC9?BPv=iBa zB>)=DI1RARmkQhl5zwzf2TEgB_yIUn?oc`E{0-;{*%2meh;)3s8L>kJiz3j;SylyT zmze7BeoLy)F^{7}1nhO#`3im=__)X)xD~Wj|8%+z=Bt!(ZNJ<$6?diPKf-;1SayX= zLqxV;cU}c!y0m)_#B`8+I4S=Oyy|dOeg-&q7Iq`1hd%d1st6D?M$ea2rm_LL_YsyU za?YbT=FRyO@0-8?v5_y%;zDwrVi7cOJ^vRpGdyE1J>PnTtMKAuSfz9ojI5u}uE1Bg zTL`q^X7XM31Gmn0lt2s_DOGo%gtm|fTmoU;6(RFEQ&?@Zxwf>Pa|AAW8R8FXAcDEA za?X1VjkpHx&Mkt22IWps`E0!HMR+l>>ch^Lxw;W5C3I);2|Oqim=rHLe+H`tSF%!~9f{5jCc-*|xx=hF|BUGd^xJoGy$eU&3~pfw zmKM_(K3Q!8x3tln3k)_=^^?Q~sL8`lk?ZE+6>gWU5lFXrJ{4rT817N#L73`YiTn!=qP?RX>FDeD_tq{#*F?TMwf7 z%J7{`@5A-9SM50sLOs8-bSb1}4!>*jOG;;luDK7v#c2#Ie&#f&S?p5ZS^6rwiH+!` zySV4z-V2sZ=d~=WPM3#iv9FZg$0wPk)<+(Fax^wJGOfJdHN$)A5WaW?Uvd1&Sm`Wu zbK1+e+Y8qU{si6K`gY*7>0G+-v);?ToW?$AFgD3C_qF0YB ztD|lBB@hb(zy#$#43JY8YkiVmC3!%Ao|$hzzSi#3+n4k#+A|gB*h*WC8HykqR_9%D zt`-zI_y4_^p6~6vC>4$$`dv*&`Zqs*;DHC)Yf_6!mqsCQW}cpJ7{0NtW_NvTq$bWy z(A=Y4Bi%4RAjxh!a0_?^(+g(!{8~(PEf2%tHkOetTr-JlTF9OJSQ7G@Mi(}~A85c= zx@J`m@4B?ED)&D5j0%p5P@ZEx;V5-L2OTS29&LMI*Zt9^2M|0zU6x!t`D$$I@yMf3 zgPSiwf?q4{gbah1Bm6XF4ylT~bMieSt7jJYp;-K0(=f8M4(mXOSgHp~(YAlx1uwz7 zxntcAmZIM%(_dthzx5GuqLEnj4}U>krCkBpBe#M%)jJtXpu@r!IP!v~%<@5o#B$}_ z<%_iFbR=agmo?j+uyzv{TE;U8d5-4j4fHYC>x3;565u46W8Bh14 zpM$3Ma8p5{4K*=D^RJKv+CH)k*UDUVdgsVMxE*;BowGi;d#Xdj&f7-D7^l+RnCn^S^E9g{Nq%NB&Co!AumBlo=YuaPb9#uJHa^&E# z4Byiri5g&rb~LGT{t7N#J6Z_~M62(?d^AL%SH}*u-Jkzo(x{{QIf&bsmQDo3#! zSB;9Tk96SX%HuzxHB&lwq-OuY-P5ZNx3~Q)wCd;Wp;ZtQchiAUrCiq^+z=#k~&IEDs8F^T`4k?%Ystqj*QQJ6=EZ-OHF z085WA#qB}wmQ$pf@&CFL&ytxRgQ-V8@v{_fmjoA4;-YIRQs)MSIb`YctZsc(K02}- znl)d4;OpQV45IWt=-2%FAc$%pfDYamI`AER0af?SF7^cP2~OX$?5MZ`hB$xR8N-P% z;rufw3Pk%n`Xn!FE*vTzLZ5ao1B6}o5o$F}fLsj+>u?_ADu^x+q||F_k?n$});FSp*V`eHwbAp za>p{#!MhRc8<+^r=_rQQw?!Se8(}ICfY{&lC}DmV-5A{XSj5)7S}Eq62xfc2hpzfv zNYd%_qr0D5uK0FyZ?!Y}0s{h5a-Sm4w%f3q^FBBqJmYa!sLLsRxP7$W9V_unzUs#V zGvizjRPdFTJwGkIKYA@dA2|K5NqJpL#rxs0;i3oM(44twAVxXtDrB|_?h7fXO+ zrpTF&d?vj8v(i+gq2C`ua8NJ<%Fnr>i-lVe4`-*JtN)R^r!Y=%bMW`k%Cv~C^>|^O zch2q#v~;`OftDVn0fP*BE^3snb!m49!+{JZPS*muj|Z=Pxtz{F0Tb&`;YK@uhn5)B z*)C<8o)=Ep{Woyu41vWsqNEj^%(V{A+hBG>vd0xjlX?7vV8at63H;I<&sxE6Ko5(3 zBO);CH&TRbC~la_7~$>ov}G*8+piXdsdy0531wF_z=<(X}7J5$LCPJ(iy#u7OMkkLj{TmeB%4XNbKQogu1-&YbxZbn4F% z)!Q`03`I1af{OxBIQ!paQzdtuJNI{^U^Fi)>~{R*6>z}mi1QD42(GZ7A_dA!(Fi8S zPPrHy3!Jy*R1^+`fuYf!x7uMCn52UsnWvu24P{Ze)!AS*vv@sl^ox(Df?W6r9?|pd zAci3NA^c?q1+RLN6pJ&VBrywCRD1(5N{Hf)re~wWZ&%|OKfp&vYny*SQrM~c>g)er zxC7^_oE)J0JMU(1_q*eBzKd@6A4HA(0y}1B8G7(7lh!f>_ev8*Q0DOlC^{d4HAHau zZDhOmV-6v6EmF>N;0+}*tbZp0vW|ARiy6o85Z!a`L>*Xk(`B0*;tsIec`mCoi^uaq z2YTGaG9NO>#reNr$Dsoz-)JVFmGau7OWeCaMJ(y>l|Izb_Uui5Xir1Ly3m#a8a|e7 z5yv?(=ORJ^;p{YgMj_qS(e~0!S08|tB9nI-8WMZk(s>n2$WMab;F-fg85!{s*o^pD zaN3*j|EJsTh>otDvg^I2^U$TCzkY6^uzTS+Y2*ACeeclIS*pS zLkI9l3(hHw3>Cs6=U8F7gNPYV_fN0ddB%ZP0EFyx1IpkTO&5`L=Q=qCX5|oD)j8Wy zgRyfYVmy*t2p1XN#}el|#7IiX1lUQq+qufEID(DTmyl57Jn>_!bC_$&Wp+!H%1_E$kXr40SYbJz#9v%l3z;i$kh39hY5`}h3#Sdg&>kr{{hjz8(3!Eq!#s!pN97(9 ztB$t)bWagmy~S^#t1dclN8*QmQ`=dSYH%LM3WxWQJAcnKu;q*rZfmK@wKAC7S6ag} z@@mQTp^d{G#{CDSkc!mg0~Bg!mAZrx%n89GP7f-o)h3lCC>iBqo`fE@oWRL*N5=({}kf965tdyJ!@QYD#5D*tD z;mdA}XWUbJ2f9EO^ucJ`U3*@Dby0f1F7y0SK)z~pp+ocHkJ)KqT1VRpd$7B8#Ce)d z`2-XA#4WbRgZSl}zzBNAiB3+UlcI--zhA}Q3Yc>Ozu>~zfnUHJ8MCPk!3hNZLVg5X zIe{;huIR+YBVA&6#t|+d?px7CS2Z>ckKn^XeC^EA&QaJ|lgDK;E9;zhqbOQfF`Xm) zCn8o=88MRd#AodQkKh*&TLi>#AF+^hQ6-W>m@&}fl9RU{8*=^|ZLxDN7X^97f%lt9 zK93;-tis{mh6Y}NCX1if+-gP{VpsQ^_JPiP;_%Aaj~`w+wd(N7Y1M~Uo>qH!WnJCj zmG8pedi*`T%AP`B+J0-b&t}E`J-n#BxbJfs{#}aCGmIT##>ULjnYUd46j1m9OTlbQJ2+|3m`x=w$wk}0J^D)Nv5mq`jvh)pn3yOC)L+3%A#tT1YT;yNd3wKz&s7y3kc8-ZcNW_fR zH?kPStb7}G1vZShlkh%lBXuFaf_Xk-(VYvTsxE@^DLiB}YxJ7V(cLq7WzKPQif?U1 z*LIF>nQ3lt2WrBsTvpTwH}rS#9dHv}!2B#gyB)^sn{c$j6Ywk!u*cFQ=bKD@`35|&L6AFg>y*uX$bA32ITwsoaJ79YhE$7A02k4VtcFM>?l$)fJI&Cvww=>WjI!~ z6w3@>fP1)9i-QXf1EcpC{7Tzj4qf+f=|y~@=i$^yAB&S8y+hC5OtluLEfAU?>l%qH8qvzB(8a=^p~;1FC>)#q1vO)FCal-_0RB1 z&R7D9b1@q}lVoWnsXz4w8}qFPhj-W2G3E<(=8Ive>sZCVQ5I_F17Cn4vK;2}S+^h2K7;?|J!5MGEO{r=m(g2YcP zrBJSO&TT^*z^cRhX}GBqB15SEoD!EALInt{J7n+UPRQNp*pEZ|p=ZQh0q_IPH}ykC z`WZDGVp)8tzO>V$J0w36GHCjr0>QUoh$?;ssq(%vY! z^+-$NR|z|+?pax z$e7m(J%7}>9&|Ey4ZcJ;Bg>C!H}_rl2TEZq0XH}XG=gKnLilf#`&PY4NqG)~gCH$7Pm zr#M=DH!}6BL;v*_s{R0ro9Tf5R2tt7uX&paQ7a!@L zA1`d2pKHW;&qKXlhL&gzLS5Z5eHL3dAAwxGb^5HmPu1qO5EXPQC~#vD8-620$Yneh zJM_ks(H)@wvIv>9E|&cH$XTBU+dYE$y#Qv`w)0s29@uuVrr*X6{reQ$6*1C&%kRjU zZFj&TW)z1?^6(p1fE!W-DhKZHxdp2lG>RK|@(7&tEa!S-6= z$J85(I;&qB#oYXf(1$N7`YWyb{D6YmQ@G0rqUbX#{vA+&>Qe z7x`2Ms_`b`(7u&e(D*VGSdtr_oc~`Ulc_i#54cHL234GK{B9Z4Q?)lgrGx5}K|Q5| z!ncpAe`^L6ef>_}=t8Rl1IIZMnRQ@WI^9h7m7`~IlYl+7LV6Xyf~?^7!q}msGj4v4 z@SG}muqZ%$^U%?AoR?vGA}Y;{%A?N8C$OeF^b=%YhT<}5`!@PM^wK#pVael6N$9LT zZV;h#N1TP4uw$mIGz53dEJkmBhNB^JA^c|NB(EX}59p|~=Qt329T$0$@t;43b2|fH zGvPey#MU!M$v>+wEq?)6LIbeDWE30z49v;*U{|^(e+HExjN3BnR@pQLiwIyVNj=&-*zK)!QKMWezVf>InI)1szHwQ8Dhw1zJ>LNE#v~LD*ir7{7 z&+B`c%==}S_j>&IZp}eMN)ud|v*6!ce}^-4n|M2XYLFM#!6DjkFDi6Z6*rStg-sYN zEq489qB>JhJriiW3;#`V+P;S)RGF!;OK2CmrDM_!*& zRixXf&3HR5w0rSSw51qHMsOKD5gl1mhuHLtvHNqia9O8Chj9e(qkvEAgO!0q8-zP^$RK-Px5fp2lV1V4c zogsgiRg@9?U!t)R+W!z3_Vy3KATs44+{se>Aqv629fjYqJ=8<=&E2N6VVGEhv9{QbAxRmYjmSIoZddX*H2oKu0d`g&i}RcT^W6}>hgdHT!~Dce zh>(G=9~Q|I;xRfod5Z%z;S!{j6^lwQNU6ttQfe|~g|NtH>e_b0lHQ2(^S$6Z4*I{r z3&fzmbg;M_B^aR@-l=OppP~SYo}&1*Pf;v9kA3}!Lg*+6-=W<^NygXjP&E?=t3_4S zc8aQ*`~sJbS3bxjb#0PnVRRE559u(W}$$$R2- zO>U}k-grSM@b!bG_Rhj1Kj1Cms@0gI*x;;sQG69_i9Ca4>UgqjS zNByQfW(8ih2;R>(jg2jVZH2F=Vd`rSIWv%9I{LNY+Nw8%CyIX##)MLrW#eBY!?+YW zf85NnQEKgNkA?Pq8V!nT@DCM)j8Z;TaC4LUrAgSe1fPP&M!jy8UX?y z;6u!j##6BxkKk^p_yTDE8`2&b*IdduYvIMKOI?MH_|o7;#LJOmDno3WPXgkU^1Y$` z>!9pP@51?>g~iW-YtR>|^AyKNauyJ#b{2o{tSbeJob9=1D|ZABz{(%|vi= zWbIUlt+Q(J7mE-Gf0as;1fY2 z{NHrpb6Moy&*|$L*$5|OX+ylJ6hHK4Z4_Jq4#HJ^^%U#1bRcQ3BZ~D+g26!)d`P0I zW9!(0j_M;FOLom#v>P7T2~{@jI9=4>?D-ig;_QAyJb7nF(-Fa#JlbCPRcW5 z_gir1GxV49*N9MbascowTOa8xTpKQZEIN|=Vr}6VbldQgS3r+Z2xHlbtJD5^1gB|e z?{o4o9@za7iKvlq844JVfRpqv&fDA(ZTtD2?}WZjkG0T6BSH+_(GLz|I)t&Yr2_T4 z+Nj@eVb_@qP@F9TQs1m=hN`y8*qB0HrjL-MITNAd6qbzP}0de1W1bR0X#)OQH{U5^y|k(+?% zMz0sZ!@a*I2>^uIj=9(qmSb#V*iPbp`W-pU5rUx%6r9bo6Fg2*s0n>vZ^>IzhYzdY zOPIJ5IyQWT6aOzb(xELMtAN;ffU8bM@ACd{Ful1nry$K8={x zROfs6!=MAsR)HQJRhyU!g7d1-2;H-ujE&CyY~cc2pEY|2{_y)+@ICf<-XA)DDU2n=DUZ{g9XsonkP5idpp<`J zZrI?&;|N3dESy+}QNq*V&`dmFjCRy2;Go&Tvm!8%m|V^gw<`Rmq;0sy{v8Jq)F`rKPkxl}!$% z2Xm}3J3B83c_@|0rOHv5=j(eY)t}imt_G0^Co}oJ?(je+7v7u-Cz8ojHk<0Ml2_Xk zS$WZu$q#f_MF+y+{J_?M%=UqBYG^1k6rSB3&Lorhp;UKxdoKs3&C>&0lnDK~bbqQU zoBm9yYG`xSyzbPtdHJElKzF9UYWDmE*ZTjPYab^0VXN4`RZ5X;)pAgFD7~dO7mh4% z3b(ekEu6bx{`^H@Y?ilVhPE_^SFc+>_v&<}D%KHguiCWw>W;4Hl^vTt(Q);f_^PYQ znxo|cG;duH{#YWL83?aV4Q)*iWW&Haoa;@6SA&*`t^Aw$G-libw|v#=>#mNkjIFKO zv}#S&rs(pu1imSH^-4UgTFoc?7}VyQ`V;Aas(FJ$ndH1|s;_5WYDcOnolR`cX8Q8E zR8_JU3{^#zA;(m0N@p)wxH+9e6_#&F<&xXG`Nw6N1o*H!Gmru=;a55<&E)q$0+XP> zQaf_`E1OFU;pbKY8%*SSv#G>TvbSoep9OfCtIFro-Bqc9ZgP09;eGzu_2sBMU3=A1 z`CIhlo9Bb(`6=`Kq=EN>d5(Nc+rMm{Z!ynrndgVD)b}-CQF=r= z^|{VGH+1Q9RoVZ}Fz-9pRDSPr=kiruUD2!Bt9tSSNv`^ECffogNrF3iBFX;l=5R|( zOH)05g)a|hb3<5lEj^hbOtiku4-6)fTO)~~Elo}JL#bST$Pa>bn(8sX^?jLSqA%?B zGME_3rZ)9;Z^~viB{Ku)3jb^(H#OO+>7i_{Ioy}X=1d8gCJQ8P4Bu1_48jm=sc?EA zoX)iHXVwQI+?}cKVS7~PyTv`}f$m7-1&z(&*5+_-D34y!J&=;DvitJzK)R2MZlGRZ znl{<|<_KzQrMcl&9S538CA4a6)J9T6F%9;Y9!U1(yHm5X7d1}QpHRir+q9)Gv)Mvm z?;LyhBKEA*GxbOW%#y4%QY;(s185TBY-$c~6XFaeFi2Y=+eFG3I_9WdT0Wgg4@6kf z93D3(+c2e^yHsB`Rj<_{qEbUS(}099HCPM(83rIcd3NU;_;L>V(il~GGi8Mx6y*Y_ zEG(7fte|Q-8)@8*>Y44?#wJ5#t$?B57;c=MZRzgo!))SLBiMm3lqir@sex^g#?`o{ z8AK=M9?0HAdTYKSK;Q(J*^GkZkBU$`3 z?4|v>&h|}}x-vvk8k{Q1<)Fe?I*pB$m}K1iH_n3snAg`0dbDtTHZ}?W7;4L(mX>hi z;zr1b@HS-?FhPJ*49+@LO?IZFts-KlM-)%Q%=Wl0=3%&(EL=PVl^A^ibt{*LE zl>RF=beowUwvjfWEWvW=>CgEVj6qw*tBa333(5yYAR1xe2N`-OmCg52@_>MU;l{HNYdlMj$Ni z%WO{#fzX#<9!_`LCtb!m(oL5vT$awoGTGePor5V6x%G`Z7F~k!#^(CQbVC0o`n&bV z;9%1HAY}WH1v|049@5&UTa1N)kznG9l(jh`U@not24PBR8IvMK!+}jOQey6k2W`W* zWdh*pRm(fptXXw6ETiSI_}Y%;Yu8=f;fVwb$1K`%FqwRAFrUlxL>g1c-b{E_Y}J~z zYp+{v0n~dPdNpCMgGJ`{vlGmpslq>&%68TDg0?x(*2i#VL>I=xaHX|qFWY7UD*2>u zPlEEA1xh-X{IG~=wMCTCn#28x?AGS+_QXI=)QC(8%NC2>CMH>=v1Oi>XnX}CYYnKU zi~UTqIRSe%=o3-?diVmWMZg08)2!{WiF+K z&f61xTd~qyq;xiHOY|j>L;;&Rkdh>hR_sR&tPcSt6B4mao9fjM;_{K#1F*Ow{VJWc zv0COn2wH$jvhE`8q>IC$FPkVyB6QJ$Z&_k$80Is4Wkh0yVYrB4MG!G|+QaILl>>!n zT*p$Vi!Y!yEQ`u}dOy0+Aa^ z>wrcQs*melEzkeR{?#t$SjTs-L)@HC_vO+9o5Z6u%uVMqNF0_#2JJG!18SzzJ(0nH zT!UD{a+^nU3`>qi02G#(0E3ISD3>;_zkc3E*zU$?1{eZ^t;3qKj--jY0(9KTKr;KD ziydK=CRt^My~MYs1#K0cjx7UGjCcn+35-%IN?+1^Yf$`)bV4hcB2rFAYtY2#ZB%rLo?+WnFrl&T2Amwu^|=@M|n#U`0Zv zTN!#hXcbW&Xw{YE3Bs0$SHvf#?CiP2;Iw$|wXg@2mJPvhpo73d%5w-?W&03hiwp{H zs<6guI-5H4VOEAd3n(vRaDvIh;5TSRKmUQvg-w7h`b9tomX?rhKwLh*)jPO2wPUa^ z)18XQ!jJ`NEfHa4#YDN8zgt~)G$;tmsng{(XtC-S3)|GQWWYQb-L0=MLH^cUT5e+< z-B2#DjAwx^vh>0q9gmIaPMAfU6j`|9&IU0NC9FkCl%UFSD^rZtj%uS~5`5iz;!&meDh|Lhxl8Jiro(YcNUxGYx{w4Qxcx?z~7qM(P^W z(qT2FXd@cIz}Kz>afO5J+M6O5Ircy3>zq<_eCL?2G-pLLD1Jhsuy5g9(=$Y}Mp@E2 z@fITtXA*>l(%Y~?tbkAUwhB55$qkkydl$IH3z`?mQj#*T6g*bHs{sfT_Xg7{HNe=o z*JJtcC#Ag(v3z`!3~&5Y`$@fi-i8eu)qpOaWz&;Jj0}^@^bbxvx}g-r4au1uN;ZeP zv$>{v{379uaqY?}6gSnQLZx@oj>}WpLQMirfWme@Q3vnFEnxp-;Ju)$Xz*WMzNT-y zwgswF(%n0N(tK+Y3mZ~6>)V_l3@9c9NKR!7MAdvO%UXg1@MB$NC6qQ%$O*>6rc$C6 zrB^&_aBMR);Z~(G*Ol)P!e245@yH-9^L;*J;2@wVXNo`S_HOk!in0}FGq(h3|( z(O{yHoayW4Pnfu=?fl_0rUOPcwVBMC+h7n@uxoguuB!81)aC%o{GZIId&zZ-NfQPO`bCTldRLDDR}1Vy~+L$nMM z&PK7|#wBvO)X)ItL4T;!W|4s%SwH)t*)6l@&c1&3tl5#-O|xfjY@$?}J$rU57-OPl zvoA!95!E)#pFepuQ)$5@umlE$G@Z?fIz*)fgvEFP>sjkohb46IJV3L9U_C9_coRBc ze*2(>$I;b`B8uH`ry>Br;<{ z=NY0R7!de4CIn#2vd9Cen$68^CjXl zi!vYrwG5KX2c$vdqnJ@M0*cb|F-c{y^?amdT|-d=Oj?u2^8-0-1{SW@Jj`wx?1M2xX$z-M*b* zG$usB%m(aoQ2Sd*mH|u@#!wHIy{RCBaB1p)O~mMUZR0o{ZBm8q%1U+LHkoN&E}Y8Xn+X{=V*w1@`Ler{W^%Ks{=wYN z2y7WMdDNkl1}tJDm%+3_xiRRH&&uFU&Hfmhjlo;4Qy;U!*!`2Mt9erH8#h?R1OBDQ zo+stTt*M<^&XZ+1K0~bDsP-si*e1?}kua!MJ`WK#XbxjTjD#}Xv8)o|`cp$&QYYEL z_&q4MwOJ_V7lTTQ^;Y+ zUeIoQEKNB_R&ny$Ij$!#KMg#=LAuJ&e!3yi8Y@-a68bW~> z^;VI|OpQrMe+8f53?dLsQ<l60UHT(A6Yf$Ru!&94=S?hR$K*<_}F5HUWkBATKy;?-*|p1Ad3_Toue4`i~v3FL?) z8!Jm{@JD$LaObb7M>CV_kH=FE+KCVk^Z1a4$EQgby;qP%8RsvIU1(}6$%Y!S6B zhzPZ`NRcZm4WhP+Kkj3Mu_^@wc68JN3DvxvEd!#7Te^}HAJNKIk0)S^H;1`Hf~YWZ z1<_ZK@DUe+hm9en2UE%J+Lh%%%XA~Q8WAIaTHxw{#zwbH?7}Z45nmb-8B4`fR0(Iw zY#Wzap2E=VWXl<*zMowvG#hbvKu#hoZ0XA8`RX)E1)X> zc)Y77kevi1XkH%1wDn{6T&xrt7`tXfj5gq~NmzEp4Up!r$>=K^ z1qZr5fw-gKLmN5~WYx0zNXhM!bXPm_1e%o95ttOs8-*U(KIACDu~1e+zA;XxfbcD; z1kx4l_;Jc+z`jwP?=Oh}hB6ji{lTG6PY4jFVR)oQ8qn|ttq8~zdys8C!18PYvWGM< zha_xu^9YldH3F8I9hG4U29986d1*3b@4?{_bF9aVX9DhGMUv1JC}n_rG@c9}rLhtJ z*5QMFLoy;fZ5YON`zmxYksD|RY#2ueqwYmEgF^)D%d$usEW(hUL=&udq5pvLw1gJT zy9(W}C!qD|jq1=$Hq@+3F+*TLCk4&m%}~cNt4C~8WBI#hN{HI6gS0Gz_TXY&!GVi^h4FG^o%f`+L zKx;Ko#DE4j2G*L`X3+FD0Ht_@=ZI29Q?bA1xUM(ZnQI=qg^cOyFUC#n9;1IP0qj7= z)X5H}l4)>!H;-9`PtprJfda=-4mpU5GjV!ykB4(HNZlbYx&=R%)_qq>qwu)OE zgF1Zog&nCms_6AWPYUGZ{J5Q9N78Mm5CM=KyOdDq?xSf6Y&=dfT;u|(ESIJ808;QM zIqIh1wvr<362z@!$=xE;AyZyfRcR;hX{8Hr!9{*ycw`2=&>xodylU3&awVCd3^^t< z$LYt;sEL&Fhk>Yc^Yfs*B%0!i$~2-jLM#DJm0Bnigab~i0iNr17iwkHO!hUaTRktM z(FJCpaL_I_MW)lJMEc(aZe4W(>?2G`E-W@zeAS*Zo!MH*dGk0xy0UKo9UCSUm8uX_ zjNcr#Fy#q>d&cilvczw!&kRVv5VXeXHzfDj&4JEfW7&#{=FP4vkWenUEWFuJcfg#( zzDeT=in?tYoNx~#07sIzIbA%I$zZ=ZJ&?|&6MfyOK^|n(C5@9fpcR568B2nCEdnKM z7cvZmXWCk}NN1I@s&2xTEro!n(=!0yOlU$53)j2P2BJa>+v*ntsDt!llX7JtZAOZH z5`eJ5s*@}5e5C=f7OJn3v@&RDvp@?)#G^#{xHUVs44WNk6Lt6XlR{wtvfv_Na@)Eu zm4LDDQH9TeCW?$zb{Hc_StTZ|HqFFTCY1Ttl4t+O^jNv#t~IP9!w2O= zFpdtjQl(ZpF`nyZ2f)7=J9UDe4NY|)V`6;s?bP|WS1T%OM!?I;+Im$yM^bL@g!{CQCLtL0%1OT8=1zBCb z=ot!{Vc}@B?D9t23Tc!`0`D7831Xt=5>OY3&Ns}ot!M!bv`*16TFN|VELzzu0OI&efQ8sZRBaX;8<6;TnKrjJZWLUZq zIh9XL=aq>H*7kGd(uD3Gjuwg*! zz$XP1!~p5!W?~qW6FzkLV?C11H=4IJ4w0 zXu3yL^3XU;&FdBhe!Dfjn2K2YQPG!^tzCnOXlbraAR--8aoZ6nK9=#a+h`=2C%0p< z9Yq8-)r)pYYdy3zzm&US-S&_OzCftOm0q}Py^t6Zvvfg3*hbeXjA3~YEG*HjZ1#`F zdK6x5WBMBebt?E)Ftc+Kv|bGPjlbcJ)>bCU-V91+p=^_?=K@mNX%YpdtU(IfVzR5w z2GF2D;7fPG2gQY@KWd%o!WW=^o7LhSU_2P#=p2g7kN>0#zv7Hpt>qtIVA!(5BFFPY z3<@v$GCWmU7~V9bAUkBOgmkH2F6E2_v4IB#!HG3cHp!hkO3m#0oJ3JQu8>NKn;jR( zBkV;Kp+N!3tO>&oF4I^lxu{tJxN5pq3Xy z8eBiPQIC1T_S0Dg&uS7ZyAhmF$7sjOd{E|R2imz5AQgb^1$I1;DAKVRu9^lF;kyK> zz+jb0JJ4-bmD$E2JwO1z0&oSM#$hS?SqqDA!dez4AXx&ss!RM@8kqqThu{JPn1B@q zBsD-+KJp>;xR84UTleX`4NVF=5mFWlso)(p@gN8?HZ5Jj5Ci+)IHnvgqG_2@MCbT} zhA<5cB4CKY$PovLnKhL})@ZIyBj3`gC}S+Pcj@mg0am^dUbO8@Dd|GxS!==ET?4=* z0x?O<*p{~q_|OnF09HgT{)-)V3(Chv#AK7)la_`yLcIx$Fqbgw%y#OjuI6w)o67cL z>q*H3G%RAW9u;Ll6wxC^S#i}2Cs_!V5RzSN2`J40&JSM+W1z_&4$hb%7D{%#{k4(t zAx)N2fn3(IahIOpHX_934kO2SGTYxf((OS5d)QB(ym(C|mO>x_Bu@<_)3{L$6rY5R z{A$UHI3vt32w9nCH^et@vJ6Zu+?=+R)r{0bBi>=RRj({i=s?G(etC6{UD&KCJj5#8 z38=ukD!w2WQDubm$+u~2-C-DZq|OZqk!7(vqcWLy9P@#8Nkp6&rL zU(%FYmy~m3T`re{J~FLbir9U?91;s2lk;;BrrF%wfcr-n(RcHbGmuT-3VV@VWF64D=>DbJ^|qIx223u5t0z4RL809>A7g0oJUXK?-moJ?ThUy)OCyf zbzSC3CI(21h`L+|Ln0GCWioj5cZ-aarxw;oDqkmV%M%74_ZkU6=_FqV6`5{MaV{uf zji^Do;ozVdzv(>Ks$xZp9V0>kVBMMAfX~U684VJiII8eS@^2=f@3D?-QRM!&oi6>29KO=N-NuOSQw z=-me5akqU7++q zgXqcgaBi-*9K@t3+eYskb=o)55v zOL^SfNyRgczIL20bfqtAa~--;L1dUsVpV1gtSsL$^|6iulR1O^(1`iktVdJ>ZG$Uq zlIFZOw48<%$$}hFHOs^@31=8Y;G5w1-A0ycDmS!meU0l4Y$1>lRxI*eQ6U%ha97$+ zm|G3wSnh^#i1y|8|3ZgvD4ykO0n0XORq$saI~wACttW;e)HdVC|Nw{cB5oos%w= z5KtM(-eK^`jY?w2xOl1gDwKgM1sV~J2k*_bm1@Cba8eD#O?Gkjkq!_27xbB3wyXDt_ubC1hFNDQyZuRncv6WT(sOI)6yX>bdV=KE8Xf!UzVytd-Y?xAT@sA*YDHn~8WdoPpdIZ8a zWX?suCNT7RkC1pL6DV#H=EzT2+&APMf|CkfJE#WG5;3A&c3xK^xoQp7MESryD_@3T z<{g96p$moS*pD9qz_+;9X(LKg33?e>D?)Ej$m{S27^PrHZO7Niw9e7niHCZ zWnY;w>#HCJ*1XkL6lTKe<$c-v{sdzN4|IgCL_(L|>L6)M4GUhhCZKyOJSe5g`{NLZ zjAxOR*Ra-ESw}MXiY+ZF+^=x$I%9??kO}QD*K#^FtA|X#$U-J<{_#gQBEgF8#BX5&SV(C#%1AcJN7<3vbMe1XE9=TIKCsF zu)xe9o53BUc_ngR@|e8g>y>t@F6zxY^ym3umQJqY!AgNk1#xYZL7OR3_@IYWz;#9D z`aB&Cqat_-^8v{D=xuOwbH`W@b~CIa27CP#^$H}tZAjz#rWUu2{9_B?Piz!-YQ%~| z^r~3q5C|f96dkVyy#oHHgG%<|JV=ULoN_&mc?8~) z8Y{H(?uH-VaG{w%4*@Sar`PO=b?#y-Cw~M?Wg*j>2*mN2N<*$^?8BEZ;qKRPzswE# zc{^ct;Rb?&fMM9hEPFQ}+>&ZhV z1%1&qJNq}6YbLLHIU9~+KX)X^ZiFg=jzDye!F3=kqML|Uaxm&SD4`d~z>^>xX}3!X zB>|2>`-cv{+3Tefy-YC3Q^&fjW1+jtr{iZKSYl_Otd!IjmUCHUGrynaXB1Ol*@TaV zg$6S6**v+xVKcZ&QxsKZHrHdrb$bTidZ6V*(a;P_T#k_XO5E*Pw~l2`z=r6;g`0ST ziw0;nAPp1O*h^NE!n1X^rc%HTaVp&DAlDKY&)DmkEN{*v+ot2V1J(wun{D_O60W5{ zN|3G-c@lzbat$eS4$|8vmD}8OhYOn9-1}4E43xFd?B>2E$1rwiJf=XHPr5e8aBN>j zKUAs*g8OP2^=8?NW12{|n3>Y+`^^J(n%G1)FLWjYwgMNXH5W`DEV5jZ&Q<~{Hp)kE zV#dH0S%+1F1GC07@>yX9fOok%MN6Z8u7f&^Fi=Ny57fVnEx@Ji$JlP1A^7s>rR}3^iP#4)e3IF~D25$p^T_)t?I`FC@vH2k?0)Wqd5n>jT^TE>Z+W z4|&|lMIs^)^-P~!LE!04i5_Oxv!xuq(r6+Hq^sMK$}gp~wz43ID@{DjL!;G93c5CR zCmn|L#G$CsSq2ZzJgFkFxw2Pu3iO@Ko;MLJv) znelfSOUN~6f~@S%F(pGX_IaPWR>g&Dm|GT8Fwn38C0*?e>;!{gK(YeP6{IvS_?G!b z50W;7ZhYt<%m!Lw<(apJUCgM+@uUSrn(QBW=_(c~u;j{NbJp0XTo4rKyz@^tcf4xI zcR+QQTS+s!v^M*br`#1IIP0EN#78~TKhTk$gGYymx=_91LMR)8>VJ)?3H$3%%uH5Z zCN6N_S`pR*T5_3);TsAlp@~@t9Du*4z?67Qt$gCE=*PKkQb3Pz<)#I1(N zpg6+4iEP>`1<4vwdfN0i!@^)k@D{92z7_S>SZ@>Au--K>Ps&Zon8b-pF|CF`CYeIx zzX5`?>uqzNKRb+_s!?i< zEjUUVe{zizqr}m$1!NOz)oRoxVajo6qG}LL*lwGwD_)YrIq0LzV!3>R*azYp*j~7pI>vK{oI}9>=ql?6f>l!_L<@%Uq_# z{UD!*hMl~*b94C0a#(o~flR`)T!KLh`Fw&IN3V2o*n?C)Z7*#%DFuY<$0<6cXLm-s z(WYx34SDWldQKN^NZhmy z+vwu7krfsi*1+s-Voeme?9`jiAO^M)o{(nVdj>K#V`t^ug%#m5GMgFT$*Dcn%B$mi4 z9UQ4;>zj?!3+#!NJwyJRrk^75c{+0^QxPpf7l!bTzC z(8g8t89b#A%B=VGh(lcvmUfDA;BTpaIS-rgmo+{K6I91RTXT63N3!15-)L`db^-MQ zoeYzyK`FLXRADR&qW(7q)1ZR&&!08^?1X9njObu16grmc&!S02wn&*>C&8Qb@>$YV zea|rec&OmD%rad&d1a8d<-&JLc9-~b=XN0&#d!Y!1Y{C^GJoRI|gz?bo_1vAP$ms%mg)~h~2PANzD@J-k|Pv%Qu#-Rt@wKqJ8A6 zo7ksi(*Qyi1y%^e9Rz=&-lyrjx|D2UO+T4jVtMSiI$%ioAsJ4bJC{o!8%DxA?g;|A z-uH)xGWjjNRQWiczz@R@!SqXI4V@!Cu9o9d6opyDo-;$hD&iA5U~ORGlN#VQ(idxi z;e<7A>X66PXiaiYxS}TnNeUbA*yK*}i{s@heL|wmor}hE=Z4qPNpZt9NGIqsG{GhW z=mXqf`S)42V?ss({MefcZ$X6tvm<4E7Di%48o&x}1lHL`?L$K&=qhCeuS7iH9O26p z2@sp%GlX7v`C+yt+<^^XeIPLDP^w@x$hlGJz6TCq23lpyV(G)MFuULdXhYbzNhx0w zFiL&vX6{_W-K=fP!^^=Eo6!bek-_4}wJxBG@cdjd3i)8}T>lzi95!4R=V2>1m_#2snHVH_aL z{6af2StpgbNxU*#Ti{luG_xba4|G5_;7%yIhhHgko|0r`EHNJkkw*dq1Fx*@#g?28 zXW0zo;>0CEzM(_+fvD(pr`9#g-Vh+ytBXH_3fSJ!wXI_{0|OS7)iBLgBc*|TR*f&S zCaGq%m6d>$w;~dK%9Xm#E%$`CUrG6u5SgIQm}i4i+ViR{S{P!|TiP*(}R409r!h6TsD znFBuH0!Z}n^VB<8Hk4`!uY?T3Pi@I%MG#Q8?!r`RvQ*3=A2lVz;VOtzRiOn<9folwzQQ8ILHy_ZWc`ID*5x{Cj zOb-kI;XF}bI#nRpas*-^!>|#7U&_hu2whD|L1fR_<)l47v5N-S9S{&qOB-46Tw46Hp>`esq85pNgM&H=Xl>BI|g1jHIp7Z8TZ!R(UUKH1BjURfz3z%Xx!-{3#6O+(lx(5?MaGf!$^2w7L_tNIp2XF&oh)cO9r&{muQhbODCAb1<2|_{*p!z!* z0-#ac1s0d0f+gVDhbJ8=zjp~l6-9Hgf8&Y-wpEeUl%cZU8P@AnDQq}=dBn%BNuzOe z;Zpa>Dzj)5`a2oksp37(0Wu>YvB$9%r&Ny?pMP(YA3)DG_ZX$C#xNZbWl^0U!}%%&P*TE_Nz5?rxZ70msG)4g)#X7qf8NVI5M%E z&w#brELOzY%xWxeq)geC{X18~DV7kem2aN%*c{Kg4k_yR{a7gSaUQEtDMnFGW|CMm z{P7>G14YH!Bc2`QVWf+NnoMd}FtB_`P*A}_v!CNotIh^QRcjivNJR;>uO_m%vH|5% zPf;Op{jbCsGog|ezx(A@Vv7m1JP2s-F7Yc7w?}dYjMzY*bLTFnthP%7uVvj*2X9Z& zI+my|87Kimd0?)IR=^L$*GagzDFdum2)7eoCJ2fFEDZX#bF8B|lv1Bo0xeWubLVb1 z?o^fs5qF9+>Raw?394Hs&BxwhZ1tpu)MC(3o}atK5KuF~oqnz#Ps_bSQjSv^KpwOe zr7*tZV4ox~2OCgOm@f%~Bj^;UtvgTTI=`&uZ`andEXTA|4bQ7A_>bOu0A8*_q6+gr z!g7KI?!8vG!Jf|yq(b=H$zXMd1RIgT>;=~IWiR-%DS{v*A%PU(e*rA?&Pc07xv9w4 zCN);7Q<%_opjT$LGOXzJeM3g2pxw=PH~-Pl#T_US$V8i{#MlkiQy$s`0=#e&2#5^G z09FuuCb$VmrWuDg8MRBMvU25+Gz#uZo!ZEZFg*pY2i$E0QXtw)06ZgR3E#RoJ0?z{ zTY{MZO;UM>FwBOcm+a22{1SlARstwP+B^VXPqwJ+{s+xH(>u*@3?le7LXqk+e7Prq ziyU29NO}q|@Y*KJ%N#++@+G$eHB#>#ai&(aU|IrSD|EZmX8!oT0M+r)9hTiQla&v? z(u=G-zGBx>P1s7CrFJCy^4&0`alnp&IGa6W%6(kP)}~Z9uzXGRD{&l>Db(CCTSJ#j z*`7RTA+jb|DR@bzU~2~AEq-?#M4H1Eq)*jQL%(W{;d6z&_(2u5Qp0Q+$fTM?XR}6G z)kh4iNIGirb9Ox|*tn@^al6QgZQveNU@bQf>*Ak$lGs=hle~;{jG05VQ7w~TVJ>Y& zu8=`EsAdVrEMmX9pegR^L2MtK>Ogt zv%5fLFagRu_*E8dHNgX?VfevLSt|hDD877iJp$5Xz~VweVLuyw|Qr@6HQH%0v*WC6=`B5OH68;JV2>Qy3`Z9^!ii8B_3m=o{PxM_4 zQsPE<+qeS4tCz>@+pE{EjqC4K_PD4(w@-3NF<2tUL#1dJE6L&K8@oJuqmQ)I0 zXU~aBJA8~e$&b>Qhisz9{KlOxT@ZPE0bykH{=gP6eec>#6oNdBRE0HzDV`BU$~)F3 z7aKl_$M$pd_h(Xbn%&|oPr3SD@!9{{jKyt=FN~$SQNeaDyXT@p0Y(1$v>7(m?W@#8 zNUrxF$n8Ylqo}`a&EZW{)*7q{tPe4Lp!T-e9%;0A&D9t%dp4RVPCaf48}k{fceeI0LNtBH%S>~)(N&NwCYxbx@_Xq5ZTe1ifwp?* zx*l3J0Jr zzQhDzq=JNbBtjwa&&ykzFTR9ZXbJ;ak=7*3;(niWb6P_=j0z`v&4o_uqsx}JcdSTk zPJ&nGw=TGN;YTjHbWz*fjl8vh;i_<1Pqd+klL}S>ZfpMk*?aT8xQ-=F*njI&oGx1p zTtlJNi!7-d0kWCa!Yd?O{j)s$P*I?|E-1RHkkEMi-QVYlC6{yZR28!9tM0j;=_~5w z9vK;1Mn-(QB2KPraBC2c0=8g?LV7DC zH|+f?+n}2P7gDum=r;Qg<#Pn6IQE3kbT4+~bAJ?Dq}6fVRQxN{7L{h>2|WSh;(mz$ zj({TQJ_zPHgy+cOitCyhS^vhjV9Qj}t5 z77GxBZ{nMz-vWEGiHABkP|lh*&&SM>xEZ>Xsm-nlc5JTCGHn2@HeT2(*{aZ)-mII^ z&mNbDLd+@r9UiBK{^`pViuKHe)#+%V6dgf23IJ6iaxys^++s)rSd>G zFbP3?4)|_nxyNlW4+63=d#IlrJfpl0DEM%UX$5hli8v`;CG^-^*xJ!-G+xI4u2u}M zhFKBV*(M|b1FTV4OHzcvX`yBhI=8U8L)cU%{jo*NU=RXH^eUT5tdX;)m?x5%(}*S^ zu$mwPu}|wyBLZ@C*)pkF2g)2e#zor*a($A3#-_~fRd}=&l>iZgDsVFRKQ1)wH_n}M z{%UnQ6aGtGmZ56lYUW^!)Z$+FgFc9F2$X8u6*h^=L9UWqcB3Q$NBz1(Oeb02jMGuv zGk{5mk%5XN(=^&ZtfVLei1gE&&OEHvAfAuJ!<_A(!UD&bPIpbEOgBalN|B+nbBZ}Y z0+X3=vE;vZ%z+9PN}Vx%(GdZPp(c_g1%L{c0x>eUNRO)(f+HH&@uNJ0DCqQcmSHE8 zc911!Vn-P3aI_dQ;bKxMQfFu%mZt7MXI!zXw+{^IM!?ucKQZSIpqm*nR9s9*L!_En zy_7NvH7T8I9zrFV8S>+*lpzR|7^VXTGoq~WJ9~?y-g~?~auRL?*n-TIMi!GNz_l6> zS?!+kQ?F_n0CyNjCJ|UiRA~Jqp6j{F+K~9bW z2&vOqU~(8M>!L|%4f$l1>Lu9}y~q#JE@k>*&T$1cCqSpnT|}S0#1ycg+Q_2(>B!A~ zlmcIBC2o6Y>oV|@X0Of3g$vKN-Xfb=q&uhWvtpJtf#9u{i$j=zMnO}~OmYE~W3-4d z``?FXb56HhakYWVC(zN*8&Qjj3fi)`YKVYNax1@z5Q}%+rm4b?&5?M1$Nj54U9kca5Owfz5$=OYa@nv#_Bf|pz+n@sGrY-b^Oxx)TU9*H5 zs^b=mjLfMt;2z%wQ^yfQBrcwxYMK-R^TLgj;qHo`qZ{8_ZUP&;>)s+qUebaX|>FOy;%@_>M=4p{7&_> zW<@Pl+D&$lk(h5;Cx-;+_;iCZcpY#4bTS}^6SxFXs|{-Y@+q{KW0y$~V0 zCe$E$?+#(ElZnw%8~>9EwBA~Aj0r4t6uZNM@C_k=bXUKN8UewE^#n>HH-nbym&iy8 zLP}3{=t&!t+(9Jd$F`VG${O8P; zI$=IrZmsO43N`g1!o~({n^9Rn8)kuyYgQ}+s>vNqixcE;qnPrX2|dLZ52yWi0AaKh zfe83-k}-L)&RkjgAWZmc}#!_x_h1lSoNq6vSH0)-zt)( znN@b>{evx+Avemv1t?nyl3aZ9X#$V%%q|8;B|4&Wg_$Ri|Z_+}(v(0CrE>jlZ?)&%{P9ppdOug5G^Mq>7@`>Mm+<5e28=nz$ zwKpD!^BF&Hz8Q_+WOz_*uEUWC)LLAr@m8ykxYL=N^>0-NNtSRzJKsNfQGLI;iFc&E z-um&EU#@g2+;pOR^bW;U=PA;(|8#(7D9C7R|H)10?^nX4n{(ErBbT3d_sRD2InzFw zARjbmR&^c^_?BdJG_9oFa&OWLvp*S~j-(c19pjY}VxBz4mumT>H$ffzr;9xE&Z^EX za#f1P#yPMrcE)OO44k!As_M;^KHPa!*q~>8lguK%vp%SH6^km}#P4wXb9BJ_2hhGH z!?0W3;rRjXU1v_=O@DaS#D=ZG1g<+|JLoTY4L+x{(WJSW7JU1@55IqCUC`$EScdxN z0itUj9U%k^m>gaRpp-ta8nzJqMzh#)BpZTdUQR{#5=&Zx6@)KK^!; zd~-1P_1t##2l?B!5xzmlkt#iP9?9QUU?~^{U64!?F*1-Hv3j~!z4Sgoi6reRs&w`| z1*;;5$3J9I#5HvaM4s09sNtSd3j>tT+tg(S@s)ar#)(IMd=I<~);WQ{15gwfDX-sK z*0q%;L@#dMaEKD9H*c)H9w6d}F6iQ`TWR4}x6(pH)8(VO117!af(=d;+@SS4E?{mz zY=nf|(olwOYlvw`+#sJz7*6I?Y^B3wtp>zSqKo|386eT6t?g`bGcDN#=F3ZK2%I;o zWg0)>QUt6#7zP?~@p^P|^DB4>YiBR<6TUsyO10(~iMDepHy(1!u1)`6+46kAagutuyygJ^tRa2NgZjXo9s&Urp$vd*mJ$% zRtTF59w{#IwH0qCxtIm2p-t*IUu%S-_IA;!zSioI#P)n2fEH*Mq*g#9C0zKzJg58* z8$~HM&@?H!xbPzQ+Gj<0D`iCoW6y-$6KINGVSLWz)z(fX6Vk6xaw97NC%&?sJ@Vp= z)_#HzRIUAl<3Bz?jg)puhBMS~vMH~<4N*o$ zV@|E{b_+E|CxhvloPf16eba@CO$xpClne0hkv6YAC8G=9165vo3Jx5eP|1XKN_^w# zPnCKX7ZIY_Q!|_X>1Yk_3hn(F8a^4x<1gz@mxwxJq;!*Rot$uQUEWf^PJL2_7QbET zot@dJfY9T|TWq;{1+r3Gsn#}-o=~v4GCZ`8gz}^H^T~J}uQQ~GeSLLnvA!towDcuK z=qpHEjULf7n;C_~YH;(Luc|fq^WvMY_AwFtady^=e>M6ptbJbZ=nz%X2^JPz?4&*~ zpA9m8>l*dEa+3kwv$ONH;oBQ)&_>Z4Fecgjyv$B)tsPD;n)#M1UWHBnX)xI8Gf_Z- z6*?>tqgs2sTdnPUvHWP~!PD; zBe4bU6saH5_CvLPWl4>7gCmZhFQ~G<*WV2W`{Q%yXG_2QBD?2DF*z-;x~V-QJ4Hy-h@%+S{+RnnC$!gG~P)NTs3Vf)f$Bw2TDU9NbFvcYs5lfc2yz-RoNE^-bzRJt8)B3u5aZ34 z>G?B(^3!m2?SfFDD3+m11RR1w2D!{eX@&iV&EoJqE+Gd!u#S0Ckys`+pXOK@j^waH z2H6vu3LrGi0LaoB0kSqapRVa^)O(#JdSw!_d~2n4h^}X;XVFq;sU1A2%oh;X4lB1P zOjx$C1^y>qOUF^6*GUJ6w*OfVF;nc$D|?#V*_8|>FNMYOII z&FO-}oYd6x*AvGlzFz4xd7YyoC z(C;oNzeh_Xz!}g0gW$F)YIc?BLs&znqH0nw?4f-_W;OIO5A%jC(3-SUMI}!~^NWju zAbCXPTz)aLMv=O8*515>QAr$R^u`SrLWnm*J2CWqF&C%baYwl5DYNzb6#||PwSatg zN#KmmaEo+uWb)7gl*J}8o4J81FWi-p>Q95j>*^8;{pV5mrL`SA{iOT{%ASdVP0$6B zIytS=VSGvKa`+VqrWBR!axA($y?l8%I5@sXT2!#Ey+kVVsT3|qs34KSd*#W9!T3Bd z5>#+r(f}v)##Zla_MU8p>+5cbw7u-D-D{YxxW*cV`%4WYG=VjvO2o2?yn%>Hr4_( zJl8v29+;)zxq@v9?PY;BaitjT^TGcbrT0@+NPWxxdn=@26@R`$T0E4q6~e`7&?hA+ z7*PKbQQ>mR;AagQF0atd12iUe_Hd%XN^M?uJ&pdbaI#oRJN;TcctUdw1ig? z)Yt=;9u3dwP9kC04Ul|_B32~Mi$s$zDLhmdfu<`$WIlsp*Fn-cY%(k5x= zvZEMIULWwr-|yrBS}1QRX#2=;sJp<|LK#4*=8=H6pUdz2(-k`_G_K}Tf{8}wihI1US4LgKJ~c@{ zPVhVWvC0!L1e!fs?(CX->{TrLK+~w0lN?ebisvbP%c}j|XWKM^@Bg^{Y!7p#ueEd# z3O1ka{^zru?|*n6iaJ*()m6ALRNe@G6>7oS;HkOf5#b#tw706CM;h}J>815q%g=}o zea?H@3Bq=TX33uh$>abWbm$iu&0f=`=3=wKFTvP`>d93 z!8k->REKj0JJY{NM0Nku>h|WXqC-1*j5+h#nMei#3Z%c-+jqhyM@M%$(u+eCiuKjC z>$hz)YRXXi#$hNzc`t)$x!g#b*V#HfEqJRO2YRC5H8^1*3zqi3Ik<|Fl zjZHZa&22P1NVu`l4{{C!<4UK2DST~Huu5U=_B#bZHhwbjLm&^H9=HQ(;^U2XVEume zW;#8)v%U`IfW*|}!RUMfS)~hiyLFQnY-!EYXy>cHjObmAwKSAV6>tn}!0UtFuRvV; zhP`&-!&n{d0A8B6kH^A1$LSk>b<*u3t6dnxuP2WDvG!opg(vwbUK9H)I`4RS>Qws3 zXrMks!vC&9s1uN}<@pq;d6#i_;#238F#S8dA>K-W+Hh|_^Cd9gv%NmmJDc$81O6g@ zI?UdUmE+a8*M|Wm3L#np<(nwKbLRonM&ujJ9dua-HG&U)TGb^Ib*x82;3=dkVcXI- zCx_01XCCeh)B9KaOoG+oN6d=>8@YBCL^RBTonZ?k{4D*cwT3V&AMT3WcSu#-;j=Ox zh=>n7;#hMYB6p%MXTc(N;?$U9i9HqISG2u)waeJfld}W3q*C6~S`nPFSayhGxFnSf zK|!oJ1itDJz1O(zD0Pm4&}|P={QUV#Ey?y#T0!2~yon}#WmAnyDb>)FWperrSe&>{ zDRcv`cVN67>))?54|WN{x>NgS%S(6v?c!uunZNiw384*gjW#%__c|}0KV18!!?b;; zhX+HDl6#%^$QNGy+kLnNNOR(_BKv;W-hG~1t8smG>F!Uy@6~iL9ik8L;rj>*>`IpM zM64)fh>l-Hy+(~Pn)t)~v;Pji#$~?~9{1sUghvcqXUJ+}N`?gsUeTWvw4MHt4&$9M zo|@yKDW>BOimAr2BirSPaE~RC0^VXZ*E?9tk^x9w-F_-ESOxFE>G{F%A)e0m$I^GQ+hD}OlSIdme(ZK0 z0|`zHCa}ZH;{cg_7~J5MkLSMnKOSJTpLU*XJ=?|;93U9L16?5Y*{gTPheHBhvmEGq z2)KBbmX!^&x#=UQ+UPb6vA=hpjF>2by@#2z>#%Qgy9fPInE63>&ZsjKzNp-B7v6+I z>3H0118k-|_zH#`Uhn#Y<2TcLoojh1A9|^ndatu~QT4w3a!o^nCo47VStt7VG2?M@ z23t5IUAZu34jJ{L;C2KCJS9Ju?*bqH4!$mWr_Eb>z}2#y-&spHbk|4t>_Bq9mfWJ$-3~6PO__n7XSMB#kGy^mP8FP%5@uy)ZKttFUZsTy_3Vq{_8%D zymBeQ680lFK*+4uL1R!OeypdE6elEmD!;Th8jtaW4*`w%GV^34&b`oUA?DR>9dB@SjmdvJ8Nmo=T|#&W zQu(7kYO78T{yqYw!Qna?obs=);z1(AN!XB`7dw|xxX{Dx>mj)%88T{{Hv-YvKLPaa zb#BCA$nNsPo)TI&e&BA~(LLN3CSU|LL;$EzB2#do25MDu0SwVq{aYZ#k=qP-RzgF` zhq!i~%4Bl5L-Eh?ufZ?Bl(X%r4VIV-ktozhpd{sRK$eQ^oXdW|6g|XgP6Qe7yml&` zxL>y%Pu8n($J}lj`$$EX=Qve3$Z^j^U@;2C9jlQQOpnLUc13kOWq#OZq$}A!IG>J$ z=!RE%@smnJwa(?CUd`nd^b0T!G>G00PAQYoDd>VI?xQ&6zqS75fT9ZeG@_Gqp&_#O z({&Ulsr4q>jhjVJVxd0et3)xt>Y8c#K(bf8sm_A$mBa(uQc_vWP06Sq- z$=GD%+%^{wf;%)U12{nW9&B2agox&BmSDJ^7m=Lp`GfQ;oK%i3{T|YLdH?9wfQmut z7m6}WOt8&3j(YfF{p3QaToB}vlyq@un?HbBzXEqjh+{Mbp!xu7KpD~W*HAaoyGAv; zI;{Tnzs^U~@2*btU&D-aa@nvpOQjrjrk>nJIvwy~f!*r+oNQ=1$lHATpk8Q{i$q{S z2!LNzg3;0EZD{K0pc_P==s&tY&6WEyfG`ULpqgTs*iv!<&L5Ge1yJ@c&(QfL~0M9h_s9S zmy-{2shM-`SJ(KqS_>O_by%7*9C=F$U`g9ZuIgv2K1%(7)g{^>>XFg<=_-S(k^86K z_rVdQoCT4lu^eNJB0Q@^z(w+_m5AXX$RuSm0QQ2_(0TuqVG&?u(Z_W(Wa_Fuz8HfI zCYlP9r}iacc&^}7VKtaAf$FDs z0}>y4b|3RC>G^IhYDYhx9>I>DTg`bQ_Ji@XdICeVlF=QP7voe)FfA+6VWLLaXZhCvFy~ z3L|s}m5rsUa$P?G&Mv|r5KO*~PPHM1^n?R(ISn&AX`rswHCpOWzT~>DE*NZuKPP(4 zFVSn8GnG4rf3VU{FbRWve1O}^izp;4#`B=!gO3RY#QO*0N#>a}16!yHNd#~9L1w1l zcPRT-VwM5dp{B;5-O1kW^@q>{`iFYSM3iS=Zi<+L%8D`MJq4`M5uczp!4p%p)g5qTGp9G*MQr71X2^~HTz<g0vN&VmDhh3U@< zPt2(%LLdwl9WCF|XYNS_u`uzB?0H;_=W1ip>tD4naXn^XTAV(!QM9H0Hz3r1mKxH^ zz=_)7R>mj_l+ZJr1QH0hmo+cG%+-UDSQ6TuQNehWU~$wgbz_fD&*@`VZSfH!Zj|&Z z6l$sWM5YdqsD0IU@2ox1SZinCi$t`*8 ze4~OLH94}BmL%q>IAz4$!iiHKqha+_oT1dF%AMIET|epLvD~!3<&#v|$;=EYb#}P3 zv^s3Ki=$Q|4~OZy)^wM%CGq$Pi~|&`_Z))^PBF$L@>}zJ&@EZ56yEZ$t{xu%HpsK= z%;6w**V_Ii)>+2|k7tsaY3pS*d#&$su=$zHDeT|Tx_Z{f)4{QeB$Zx2=%PrNv)z=z zu_fQ}%D8MzDOjFF-jG3eG?ot~-0DXr!;7%7VXhX%j|p*y+QP=y2rc7swY_NGE4CZYW)I#p!#2iFHmQBwbeAq^l2t-u z_<|#*xXi#X5G$6GL#9+pE;H0r4il=Q8PI(VvDJw5_@6+&>`;YX6MBcnR;ouOMS;3C zbp|qknDGGGJdklzeX~mkueOxr42I<--@@fg+>lEi%yducD-!8dJm^Kim2+ROldKxl zJ<^;G1Xq&oBgcU-2;0b_Q~;MgXXt-tH($i3L{A0y|hQk)Y{AHy*z(27$5E)jHmCP z!|{kJ%zcK0y}Mp0sJE?47WY*LPlb&fhJaawb*%`Os^%j9jB)Vt(y&XrVIRG(_@zEQ z9V?)4XpkJPxV?ARXG{Q1Q~L+!MjVQGba&nLC6@hJnuE^PTu9ZwRLm_RbnrNn>_-hk zrva@$F(-mwh_%uko2g zBLc(WrG`(8v$Idi?d(HZ9&IWyo)NCd&w~gGhJ^_Iq*j`cNejiNK{$(FacVsqu1RRE z8N7Im(P|cGZH2c;F{GE>cGn&slWBw@q_aE6lk?Zhoma2OdSBr`u-{Na|F9~R)}VS( zu5fi(YvAA3DhP$iVXm&UR`~*@%gf!h6{&^VUtC?jdfgfzsy$Qc2rM1n8}=3M&wg)o z_MYJ@m(^fJDVx4RN3b2 z5}Ih$!4X4q;&yXzvHHdG-VfW49zFlh-R+eXJNU1r_=>a*PoA$-y|ZfV=ovcEkxSE} zw_m9xCQ_~cCnkce!o%V9RqoR&rc?NY85X;ST6APYq71N;U$I7k7~+N2AVIepfAhMzt98+`Vy)d=FBTU@$M(yLNP_AM6N18<8c!xkDM8RZUZ>j0fV#}riF%w& z!jzi8JfgaIV0zu;p|5A9(jx~X;+SN9)by9>p~<&YjIIkaQ<5b4Tnv2Igd)R2PD1E} z#BEW@`#sVN+R;gP=vz*L!M?)>dqme8X}|jKm(_J~QUiWvH z8`Mb8mNbuj*tmW&`7e92*}kT%7#{l(n&~gu<_@;sT-1ZMBiediv+jzy1O;oKjTbt~G+1 z&PcE>4Mzv|2j@;eK(6#z?4=P6bvrDtZM-}o-%K005ULCy@OouP^5Dv?qp&?CUZM5K zI5A!x=an^dkw5(yrHVOM{Kv9O#kXv<+&$(V&VI+nYV3q(NOQvMKHb}SxmrCQoPPfk zp1QyVaP$4~y8%Pg0StfDyEfp==I8QaO$Qb5P~{?%*4J(Fr^bxu-M?oZ;PW`kCuAuI z(3fNm`cMynfb$M0VlxSZ-8sl}Bo(JvW8W!?Y$Go_?2u#Xevb6=AqqAGf57`XSp!J` zBgNx&!D^>lgNd%#I+q@m)_9F$f5j&q_~hfQvrM)(foCb-*O3%luH~6N%j2;KJ_5e> zbgh6?@#e^NZ?o8a_Vj;kZ$96v?%Y%PCX*)Ota5$? z$Oony7!yt~#SR_by6^7(@bt-l-l_10x)Q7sU_titab4WB`lxrOTx!e)NH>f5bLBxo zjS#D5{)ej*QO7wr@>?jgk%!c_L| z4mL@)p_=Db!zPzlm7)gV^4F}*7iBod?^h(7ft8Q_5;UJVy&$?Uy@PG6?Y8`` zS20u&1Ph!{Gha=4r8o&al)OS#U4y7ig+ag zVpLSPd=c4YM$jqjZ7}n5K$Mi|8}UUj2-+9R=y+@A*$UkfM-{p*ku1O3()MP|@|j^W zI37!QLj3f_v(0VcyB{z`=y}QWWlXkxo~ZgqW*RI*ln_oJE>CO;YC?hS2xj)Zvwm*{ ze?5J?x4VtxE>@+gvesg3vLe7Eh$q_9`s=|ddgBucMs9)0#=b}&E0^um#&H2eg%4oS zYrgLz&ha^lRl+~m{m}%E2bYVBc()fOrcV3~qHnC)yOz*Uppw*nGSd+e0dRy7&CSi=9VX_`c@_ zwn;uSf{K%Nia-jwA1#2Lv>vP_gj3j%+3jrC(CEXlp?zB&(1jXtcfC@wM?v)BN*u_W zye(^i@?~tB;}go20Sz7GsqvRp#z&}P;IZu>655|>Z9uMn0W?MZ%;M|2!rSHku)XwB zUD}LRs__XA)B2=Z|F34(Udtz*P#*i_$JC+E1tG#(8zvg@sMR)fPSF;Ogl`gQnYM@> z{6gL$w{ps^xvgt<|E^HxVY`EHL8E*4pF`gh=#aG7gGA!VV?qt{w!)o)+287R4{K}Z z`FATy;J=Zz&fxEyt*F&*L*Vh_iav%`{m0ehRHFHCec7O8(}8>NYsAg6kKk!?D*_Sk z-)m4MZ0r-Vi<>?Tsfw0VmTkU#nSQ;v(9avslCOS$kxv1{7QA&gOkr?DbArVp316$q z>Y=|cmaWv$r>c?@3!yow3%leYq=e8<%A3=_QDF|^)MYZRTFFsRf_e9oiA^*YN9zil zdUMLl!4G1PlC6@aRV#vQQ;R4340A2t|X#>$24=_>^PiXsj0oVK=r%yHsQp!0ci zx!!HO+Tfy{*QV2EZKgXAH=zY)o%a3#lTO8K*O2Y%zxqy5d@-G`4hz89hcj^aO8XpUquPa$Yj3!FOf?`&lCIzR$XGGp=hZsyDY zY6Y`#Rmr$EDv2G(m7nZ8os|5322n_8MkJ<6Jz8T|IEi+D$v|PH@0TyL1>4Usv`(Zp zpi=KF97fhDm~z^w|752n5VChkjY_ncv8U_6yYK&u-mu>^k4@#7!tz6A`1lP2i&Bd zEER0XjO=b!dOVGpaX$AdfQ^z;wMN@PG%!F=61|=0nirFWmN-%{SgehEJkaHqBv7rb z>B!SEDmnzJtCcI9ReVg)gP#dkQVDN_)Y}k154JbR||rp-0*t z_R=2S5Mq{Maia3H?A6VThYD!uAFsTI6VtDORp>S{?v4Ftd?i8g`o$3E$$6=rJ7Xph z!(r`-JqC4uy`fAV_ugazysQtWiOUsI65z(ZOPiG_#9T~SvsLqx+y;Wk2U$z+XX2#p zvPfaB&zFcuR0Erc1Wtm~){H&qkq3cS`1tarevJ_cm7t_{4dHl^0fxlcWg5;i(fQ)v zJ4iG2kVE`C)p@{86?%N`;p<)A#$e7m7~m8PqQ;1GnIN|sn4MiT?}(4VqRls1zx}?L zT{~_yt=i^Y*hHq9Sv$3Sa~4J@U1+Xt5TzOs`Av4#K(&L3h0J7o?1evkH-d!|5(3)7 z6H0@dm{lH^thMku(aJ~bJUG{%vl1d~iWoxWsGNhC-L2N1LOVD*3j43*F0g#VV%uLH zjmGiFpkx5T>yFod2Lv3^g@}Pb5Y1q!B!X9S))^+_leW27XAU&xWg*kGZe_lK0R$+!C_{N>Uwx3$ zE5M#4hV@G7=;WmG=omtSM$z*WcmQj9E3FVbIDL=r!T|Aa`*od=8m$b7vkCr>Lr_Vh zH=<7iOP?=xv9Zj>TPN4#`VKbIymXw5;1zb9+l=}d_5`d@tt}h*=j=8?vxPJ%Be&MK zF?YN)JoAIje-*5HGz9(*{{G49{^4PtFL1e9tw&ezbW=$78S^*Y2(!dCV=>zfiYpU0 z1zCZKc)S2p|0W5LEQe8l%hB7^7tMC~%od}*`ZjBvVgixNR>=})DCuC^7V^vpK&dBR z?3}JPku?cn1+0evjLU3GnCVJwYeIpXG%Udhl5S@xzB3%XgFQ@>b{~L`si@gLrxmZ! zKA;hP-5`!jOi)lqIwL}iC`9nb_A`%YWq3p&zQ!_NjcyKchx9}!6Dk1Da6guHEA@V3 zmsSz69;8ONvd3W+8Wm4gnf$$ZC*tUB@*C!zilHW+!??f{ z375VGvDt0zZQ68Ui`&~&^S6;B2!s-o0goeucNL}KWEzmAzTbWly3?Qcz&GL1XLQtI5pMVM7MW5&br_~#U{fy{V1 zfpZP|03u?%h*Hl-FbpBz6aJ6JXyEnW^#GA`-fMX5ANRUXwx7d+>kXXtEi+Yhg13Uz z>pq;ErW%JkMxz_{-}Z+FJGB9b9teLAw+WOkJLK??m)O0D9u+})xBZ|S81UAocOY7d zrNs7}h7j3oM?OArqLI*T{_#w46g`g|^tNs9hl)Q%`@mI+KhthZ5M%;ec)oL4wudwgECE+jtTGvZzbJ#f3qccF4^CJuqwN$IEW-~ zu!`i%)}}fRMVi*GoZimqgT4Ef_)E6`+5Spg@j~uDUo1zIp%xhSa>bpX!YOwni$T&4 zzqkS=hP=E#_ycV}iOxEyLW#llppmYhj)tS-QMHcXf_J|7cMPY>DgKBDms3l|07+B# zk*il%k#RtA6-E?zKP1EZggNM^;yT2Q`3qcjd~=L4cmD?X#jS->&`apIHp znBq!4uXg+6HI;+xu?wV}vjJ3NF?Wjf7&M9~Fkir8kI}%Kc$Xr@W^hV@J5_4WM6aUV zx_AOMyb!*jopL*u>Qtx$6XTp4&$*qo*W^|I{5hX-7gz0QsAMtWycxT^+$27)TyJke z88I^JR+m(|kQ6koT+KD-aYMorojH<7x+x|RnIsXBT@0{L3BW=Acl8B*vK)Z+Cx5#7 z9L-Sk>R4s6Q!d9vcMYlH%Bwo+zMYllTue$TO=otU>eEO&7Q|Hx8Uo+5|)O13!^O>Kl zx0C7l;a~)FQMB#GZ?#%itRxy6*zO9{DbdSe3){e-o4YUYn*3yN0lr8lfX-w2bJy)0 zDAdQWQi!ODH*et6#W!DhC-{>eZr<<@q0U#g{L{r(w@_zy@1}pipZM_d_2}Z}SJyZy z|E%ygzWyG`tgnDUB=kxG@)rN7UCVy%UJWeX*F3}3-Kz6;a^u>y+g|9GD>Q557b5`@ zdO4C@nJ_slR;=Gs4&YOhBd=1%Bzu{RI0M-}1=9|``c6R*X+A~vozkRV0qtQi6o{FmvksIuo^j4(|$5% z+OGtyV8kL4w|8zEbsd@h&^diB79Ie|9J}|8PbMqA88yq@jceD5a>-qg&zd5Trw(=e z7n1?z-q@9pFbwv2Ah6; zP*X}n*T8w3Z|X29cdw)?M4~oS(B9g|@s2UI85^#bs*S!vV_xXu|KT4W$(9jn1cVV_ zYfoZ$yN6pBF4!B&P! z-gq<_9ZjodQwW54MyJulMv4Qz!)@2-9UO~4&CpLLlOA$5G=e`(PW$k?Ku9S3f61V5 zPNV^n``O8PhsV>&IR|3isp3OELQum2<+P6gHgp`(fJY9%q+_Amz%=IsmkrXC9K$$) z9yN+|eDB?7M7-7$n9|4A4)#guu?ngj?Ohqqh`qe+VHy_+80NKAGTqvNPXn~V0Gcs) z?3WMVJCT)#kW;=5Z4InE)K?-8ylEN0Oq8z5qS|l2LqS~R+)}|@=gQu3gU1gK4%p_^0EFF$NI+gYd1u- zZ60eF;#aRo%nU#4BA|C}cFA+I1ApbWD+sd19A&1c3fZ9EES)SMe@nd&JMb{$JHTjh zp=$hT>CMo2=S58ZE7j)61^+Q>b2|QC#Kzqs=EEsw?whGBT8T^IcVb4R3z<6n<{g+c z;f3wJxS=&yz^`8mg4Mp&P>blNu7kJ93OBEPeNFW40#Uh6q9Pe69*$vPe1{Bp6ftgf zTd0i|klK9a@O7GKRv=mf!V@Pe!?#*(f4-rXqh`6=l%g5BZe&su6|$4|@i_iowe)KI z>U8M}YISW;^R`dl1o%|-9!H$(iw?7-ZGjfvySg+_>~r10)U3x=p!ya#e)iWMFU(`aAncF>npKtNomElZB9kI zYPnqQ{C0KnJ8s%(z6K@s|CO)sit}EA4OqQ0&D3mj({JbJ1AEN8eR^o!C+=9^4@a*L z?41E(v+B=1#5jh~y6gblOj84KQa}nXGY}5MWk+n=@!FS5FI;Y7&u*+PX{S$syxpsO zUnegF2Gts$YT%}fUFq>fb<7O2&nAa)wIKVtY%5ID^~i*A8BeK~^Y0ykHTw|h(lg!Yh zMp1D&MI*T1DtR6lkPsvuKfz71L@7kR3OSSh9E7)D$@9+eK9uoM<jbWr-A}qgq>ExkI>?Hn9qz~aD_vUJkX(z;3RR=YccnmuGue5 z@Ca9~A;=~yB&4op@vP;(r{(PBrIg?f58uSVXw|!ja1m~&<&x=~nZdo8KvxX?HTGjX zj5%5JY~o-dl8j52=C~!<(*YhNNuvizE7nP0+%TaVw^o<#5?V@xZ?7&r>koHPh#ttV zz@cP*QWvE{TQ>a3v(?ar$u0+<*7tgOi{p+~zMaz-XL847?Htrxp^2$&}XZ_)5>{0!bS1WLZ@qKYGn%GPj9yAPvv*7RR>~E_uCt{;X%m1 zAu~hD{F*_0Fg!Zk>%GB=a~WxY{;pHvtU5RFPw2$v{5^OP=j>98^Cw@bEgGZV6%4W8 zH}QMVvJWX(0DWYN9}e`6dOFv7A7$nHK3$<7Bf$C93m z5bNsn@L+uSXz+S`FdpH>bBP}>fcK#|V|VI-TQK0Ot5+&k|vF*WBG=K#o! zr{`x+5&ETN)$vln>-}HOGLUnrjwvQNa9Q9ED$WR6=V%=0vU<2T^Bz;Zx8P#wGa6(ZT`5GYJu+Voh zu35e6dTB~}iN1<8FqOGOVr$epr;sGxGqqzWL%lvf-g|%YdNfSN$zf#0?LcC;8$+Bk z4#e5sy7ui?5kfnsJuqF)VJLW$0cH*gVv0PCJcwB{h3AvePY3G5lprCRJVjdRlfnN< z&OpARP_Ec$xZq#+*s@%5*6%}mXhRmI205QkxiQf$C8f0&Gnn|Z{xQOk_s75|NUS@E zBQhQ_FGr+3y6|V>=f`r`LIne5_X35|TF;qAk`Q8uz>UfFcsv@n?()L}?2lJ&U!&D{ z#Mk$-)wa(dn?V4;=;TpZLR|aytbf!WLzdF)zNX^AhcZ#`9AXf)^j#0wBIc8ZI@EVV zz;b(}jlu7Ro?GYz2FZY*@iBnjcrw@I{FqIGd4N?A`U5;Et>S8<7#dJt&s_=(TO*f3 z61BiW-va|qgch9-hm_zhw@{J!C>?`zaYO_t(V+uPaB-kUP$?**UA+xXsCO9Ch8(3FPOg^ncR5h;*YAnJkS49^ey ztkKk696ggt_$2+N{lKPz#Kj_P+DQ1_BASx_Sv0YEYHXW4EXG|ib$z%{oIoT%NYxpj zCO46%Ul~W-4N9GO-G;rL5wQn&aqwE~eqxRb20L*W*AP=4!pFet5^5E8Fu@5)Jf9;) z#?O4Zzz{IAfG0dle}VL{eag5V8+*H3NQ80>sg_2hItdPyUe2%e;uNmDpd5$utM2`O zkM{awhz7H&lKfBmQbVU9YDA6tCzX&L<_#nYt|GE!k<_BnY4opNK0X%lLD)vEjPiM* zOLTM$lY61$#j{6+uk{r2r7AGf>}<0jU1LgR{Y*R7B`2XlES^Hz9@}!gzA_Dv4!mA| zZ)IDsqEMrOrT5`z2&pcaSzhzSY0r_{V3e0rvQVAOwG))vC_fJR@7S^Z6bckOv9Hg^ z41|MP-X7FSNF~;NX*%T$)_IqDccS;iRwoXh_*AZIwm2Gdk~;iZx6-|4f-lRV3q}&W z$=hDbQBITUIP=e+z1Suje7NywZ=25h$wRrcUQKil2CYD8&3$#GQlV@pRRA{?LAXbb zH!MVxMB^Qj%pl>^L0|CaSvp6tmAKUCcD~TtO_?wkt=&=C^vV=58x5|{YCy@e(c(r} zs~PWfaQRway`@JnJ5P({<=-w&hK!j-mz;YYnlA8Er#CtT3B1QQXLJc)yME*Ljn2OX zo+zgE(5)h*qb-aw_d4c)zWL>s#Osp4e44 zG!Mj15nR&ks_e|%L_a$=cAo>|)j;tKBR!T|R0Zqj08j94LtD z8(SVAv{ZkN%7IQq$v8n2J~)WZ?J9e)uaX5um|~l`ucBASc;Uz{+^6E^Xlpfb(15qP zrL`8+QhUV~x1u;#cT1gCvq~nd}k8;IPo8og}Jbaxs9*Wbk z3@>4fXsH$hiKfV$Rn1e>F z@^WSfzgS0G-g9Xv7T8+pB4x9=7?3s0pUk@UnRHOP)d=fQi0LiGJ-k9bM6wBN6X%*v zHMvEIlf-2LF!F7mGKa5}(tV<0NykBM&eqNuN?%x({`)0Plc}kg1G9@JypQUE2>xIR zbq@q*ht>+22<3UG9IZedFpNtP&>~>4Vx&OP>AhL{7*~iRr;t6ubykh%D-0oz_osZf z&8g`TeKO)_&wYqc?iOSQJU0Wa_cNI6NtkEeVsL&09%52^3QffrUBM|B@5HVTHz)?z zqJT?XYQet9Gj&mr{>)ne69vV9d z$S~sWb4Y3Rk9l`aV>FDa2tF200TNnB{1LqJ>VI^8+}wQh5&;(skYkRxc+0GnLNbR| zAZQU7ucl$s{EToBzST#t7+Cn@jLgPO5-c|AnJio0d?y%AsS;EZh@l#+Jy}#k?c`K5 z$E1;4W!J84_=klCWe#806O*=v;m=OzDsI(ecUfEA*DBLwvY(+ zahC2OiY=rB2nQ?3tDsjdPbh~lO<)IMf|~#3`1NWE6Z(K)Iv76HS^1Xuf@#IK36Qr^ z($7%z)f7B>7rDhX@ao|Y{R1du39B+`Anw1bNB-q52{euBQB*Km9fWA9ijCBN;b@c2 zLE8uN?w6bt28!Hq*Pg;>7v?zs9x5BlqvjT>vFAvHFHeA-_zEcjaSZkpUiVFwIkM2! z5TC^;jMhVy{&-rdMHo;{^@%E-fYe14@NFdad8h!FY=bG!wuY-+_g=(UR}w1hvVlUC zifx`0#bhzPs<646)`J)lM3_v{c{17t%59t;V#lGypNmDGN3Ts8BniJp>5Y}R9v#pn zrli0ZDpZiMW|aEaWK`{QZwkn*rWceJORAXCHeEFU4)7*K8HSD&*iMVXJeUR`Qe&aD zX|L3wi}Y71spP_wYYC?S_W=kOk1=-Z;SDH8x{{vc1~F1m8KRxo#Le;ZlI%*}#$i|3lGqDQ z??n${zHrv0tMK&)jErjpSS8}EuHWiM+Y*+n#-r8h8W*lgXB=j4TZKk%>7jfQ!vZj& zFsR)B8X~n}Ey=^R0uT!j!Yy-9F!eU?UgxGOVZhbaA%tcn@Y$0biJlDIlXEq^~rd1MMrD@x$ThVEXU?R^W23^3YR*BTc%g)AlO0L0ox>i zPe#w4Ki^4LZum^Y6mzC$Q1q4REPdw^I^;O2XU#fqj#?lpvxW_ur@SyCvPORUiDssB z3F=9}ulv)D3GWuCJEy6oEu%4YkUtsyp>AuF%>}}!`O8@i*+vu0D{Bt3`39_lH1a7y z0`txFj^}U2qx0ind&x#N+NUiS9Xi=?z2Z#m8em>J8=|51n|fh5KIK#y_Pp^ybmzFW zTHVBYauSewe5AY0X67#9ooD;2NaM)rWCr%}h469%)CPh z0&O$!rAW9+yzh0GooMsfbMcEgKTFiFY#MvvT2p&dZHh6&Eftw2>*FCacH)QMj%|?+ zI_zD{3zd`v#Cun9xPsRl|8+)o3QOE_oB`-t@+0MwYP&UWAZ&Yf*%`DTIx0vA%Ei%nC$N?s(M@du}3$%j!8`}N@hZ^3j8-ND(Fq}F0gt0% z(81xM8^=Ks5qAu8W1DufW1*1&-)6N%Z2(v zZJlm17$&N1<uM&V|QQn}rAAD22M zkxJ>kqkP_m^g(wnvz=xT@#*??j+|~8C_eG`viz!tJD>I|@T-f%e&;D@@(M8*C^+orA=)tayymbVZIuXCL;w*EWPbm4#AC<=YoXg zNV5n*NrqD43ZVUHM&)e9>8!ZXkg?!VD(US+ri*gLpCh;EQLKwxu8fHXmR3nLEB`v1 z6i|#-t*VU-7$sgvvr4tJ4j4lVih|8>-I`gS7Y=Y%3$a zX*#5Z1FPVZG&3G(4O&08FZw+Ro3=Z~107s^(v4GApO8`KXAKeVlI-lCxEhJx2PpCJ zfc*ny&xM4gXO_w^y;PnrE|pplpMBjxU=t48sY{KDwH{2K#MoaZ4*GD$uw*RQSVdPs zlk{_<9pe0)&A4xEoro4_(x%8IRUD3^NtV{YHhqQ(Gq2CGUL-Ts<0^O8nbb*OBn`sg z$v3Aeks9v&VR?iTDG4EeYW0>?SWR02q1vJ@D!Wlz!uILg!FVJOf0HZgInxrE16PV?lh@ekU(G3AJ_uq0 zT}pFQeNgv>XGR*-;R_lCP{Hl|G&m*cGB78E(rsvS@(r)6Mkfy#Mc~peh3XDVgkq`~pXZBb7 zT3Wew|5N`pp8*bfaC#hFyf>5c$oytG9n^sAJsiE~%X%3IAS0>5(P#j|9a{b;0^;T4 zM-+V*0+DW{K7#mZd~kNw9~atfoL}Hh622$EdcN8$){M}09L&6;n~2wf8Ji{Co4KYr zh>_!I&1jVZpdI_#OR$In9@me`20ujP=dIz+2_P9iJ(%S-jkW5R>jkV|yN6;9+ds zE!?xW4jyGcV70<-jXgA zq9Lfk0>0jAWl)*z%xXF}NvVD}`AJ65CtGn=29Wgwp|)XbG{RE3a_zW0B-3468X>a$1lovYadmsB+2mx!mEG89@nKc zZEvfnD=Hvz%@(R(1I49wPxX(9UR*SX%em(QqvZ|4U_)@&*<&F>XiXBGJ6f}ejfaBy zt1GZ@9Z@x@l1lgEW}%Uu3)pHCc|acZiXjsq72C~W5PmZeM;zh6}QGjU2EM+`G2i&F*JnM|WO2nUxP}%D)_bem@Ue79cj3Jgpua=aO z7rzG5ZgfR{D@Sz>5USV*i}jm!oqt*=7?F+#W!pJ$9`mD>+b6+@Y|15;kNem$=N%Z? z-kZ@ogx-_2+{%-M4a}y&mi`AYvW5=6 zH5{!Z*7c*^4k0wfTT#dlk8Z6@+^K}*)(dLy#4=l;oK)iAB zbz+wIf)k_8&&suks8TN_0ZXr@RFj~~d42@@xs|l{;PqByutm%zbeHG>?A)U}qTg3j z#$+V&;UBm~qu3((`(H}tK&DZ9J0x2!@~#mi924rJ@j*zY*{!grD+E2uw&A~5N`8K zUNS2V+cX>9CH)U9+o?7Ez>1Y?SBs-xWy1nx; z;`2_Il@@+j=Af&{lX4AI+PVyToTq8h5k9ZwCl^X+mY+Km8~JRlpBg58O&O3c&2VWT zoY;gyG}D+k$T~lQb|V~*IT7J?Fx?Y$Wdcmb=fyUywl%W9NF+pfsng@~x|GJ$$%GR1tOw8e zl(F!9c^`|HF8~ikLKtk%`f^w8oB;7BM$^;&)Ua1ho$6Lv7o@7Qar(a6+hb zPc_A(=I1m#(v+omt2`i6XUkbvBh!>OXbdxEuB=NBv~fNi!Gi<$bl$NdDCxtTrQe#n z@)Vqxo*AB3GC;yZJQvq&T7Gcy?f&nTNvstQa+FB{*T4)#QNkwMHSU=C1I$1lA^g78 zJb|>Uz(hghuBAxJCUNQQGsNnT5d`mW)&_#BA~?#_n2E1|VZ@*G-}NU`ZR_9LlB?bB zhQxyb3gBhR>{97hNsKzYsx8KjFGHsK88sfNFUT|$CL^wDeXmrG!CDGh>IcQCR2V0w zI1=WiraSZpP9;av!3=KL(y)C$)`4H7MAN5(=o$9juG z{rb30rt+cDl@;87j@V>(*ZmhIdz^=sUJNH2eHq2M?}(2CEJ}my=EWj4-VGja_u*Xh zl9x3MgBrfxT@QcO8a_g}Ae8BS;C)z3d?fIjyX$!=VCaYz9Y#}C=|IBcr2aU(=M15lQh@~Z*<1f|9qry@)v&Z@8_*}vskKS zS{?R2C~z_BpKqb_S4sVcow&Q6e=^)?hRYUNFIRwOU#t(YC5CVNFqG0@pJJs8_J_OKfBpPOvT_ zS__UV9c#S4UzW`1Qdfpy>n=x0@b{&=Go$36Pmk8V(eU_$84>m_BwCuqL20%$4W2sB z!|Pwf@lJ)X`wYDOW;#8)v%Wq-5bTqKN%v&X8;>TVqbcmiC+mkyxkSl${bVBKcAXb8 z9d1+tgPD6Xv8;i*IeL~jIf~owzeh}?v-HI0-bWP}od$8e*Qs7DeX*RWlPj;5NMK(r z;opuRWLC^cX5=8XzVuRGp~=tJf6=>ArM0fDHHPcK@B$pb9J6HA0?Z(2Lw-Z zN&0o8%`+<$2mr82{dk~U$?WDGHgL}ZD_!>||4#evW;rPDBeNt3mY|Fs48QaZ4KNdN zu|vMe`!t{<4r}s7_Qu`qLK~%C6w_oe$F`9 zosi(hwy*I=nQorcD^}03MbE#4DrHsQx3{F^EoE46=&gY&IC@Kb@o@dxQqGL-)_TJR z(5896F^m^P_7g}Tlv3@x#)BmwdC2>B|MvA88Y4M=vd)aq5b1JClbH%48<9%KBuC+H z8iy<=R1JEN(VLb3`^B=8fj}T6Z@18=1cND@(3B&hNKP;CS$z)zBrH#C$_xZqeJBOC z9)2@B+9!;dk|OQeHNrY4JnU<0oOq@)cH3lJ$b^z2#9fUmQ(-6Am;t9A?+Fiz z`5$&6IIO&S6-rVTitph{pbJaI3339QVOJ-ebU(H)5HNDGOeXPhdPkVt4&`#i`y2o{ zPXpuU6)f$Lf#2YMURjLLC#DRHJ=9SR5F|FJr-?;%O92Qp+@jZx72Rk2Mhaiar<96G zfzVI}0kVqnn`@!U8|ZDUiZFGf)8YGiZ4)L0;rK3=kHM8R`wt*l9!JQlxxG-A|B!m3DX4xQ^E`vCm`Es{63+~5QNekr_xLP8`hIKwuBwEGiz^m zDa6WS+5k(*bos2$P;~c!o+oG1yX)zsLS_oKu-%$+!k-u=xWkauk^wV-LHSY+GnH4=nn2QbUbzIv&gC4Ai54-N zr_2+zgJ2+kpq8(he1R>5FC=*Dl2cflQze5S0mU{8fHCCxbipO&`BX55F*5k6fg+u! zk7+lhzWLb(mp0wVAO!-;Qc!HFl8`AKuriUxI7^H&DiGtrfQHzPFbo8X@*yQ8WP#;e zofxZ0SPG-7opq-oNr9<|EyhL;9sbMO8uYsA1Zl~R-dD&EKCXn?VDBVCIuzH#L;XHI znEZ;JnBcac8X*DV=!ho_RE3h-qYeyEB91h;8SHq~VA@T{1E{T}3#=xfw?hQQ z4UfvJGsd5v-~*W5YBfPByks598f~1|p^0M^u?@;!A4sDQ5TM3|^_c{id{H67T5TL5 z>b>ynnT^)gyn`U^JF2FcN=wcdiWkur!|=q#lEgWTAOQb+z}Y1P{aO~DVrL^gFPUs{D9vB6n* zi*8f)y{nC&LICQ>`+@*N-(gccEwX)O&_5oIULOo2nP%JUX!sWBovH#o2i^B=>OZ+{ z$a76t=c+c9()`QPDw_yvq%b3j@$dld$_xMv@$(m=EJ!^g+*k!CnhU5CLuu_f?S(mS(lHg;E6j#K_Eo$Tz1Wiy zy>kXa88C4@fQ+*8wTwlUt1`no!b)6%NFasiG|%`_x7)Un2nf66Gyr=UUtfa!UdiQJ zr*LwBWh5S#tWmK0HNP&cmJWp2N{rs%@rh`&7GMmS*-1j0U%@XaOEwTjuId7ktahkm zcUJ8^ks60(!jKhVf|FdBO3Bj?ORKpq?0GRe_6ItAj7=Imct1rdUeWVhsI_;-sqKX0 zIms9Kwm;3-fPcf1I&ZI|WkJ(Jg3*i=0wBmbden31=nn%5_Q$%6(_x$gf3(a&Qj#t>eu?&PK6N$5qffv*m*dal9$qDgZyhI0PygtwM~@lYQdxHBw_DO9~z3BU7wGc zD#J_acoLdcJ>b@uJR7%PrjE&Gv;E4nlsfLk~UNOQEN-E#aQPN!BsGP;PCsp^{& z5O|$-0Gqeaz4)u8x1jXbyE98(h(jM_K(o3lR=_6@dOom1ZW`1Go2JUpC)X=iD&wDp zd>Jy&(s#^w3h!M$vs~73a&9myXe~G85$siPfAQQ9GEV(lI)>wwQpT3V68RK-!C(n_ z>IIH(z9xMyyf66{f)7gkz6gULvMI=e*kx(MGC|ZbpIJ>&T=c}sOjV<)rO!B|g}Es_Va2r-N4p~y<)=gqHMj~-Ey5Z^eR^&cIq zIgSpI2(Jd70x+@pFq55u7#!}~lM<)T!_E`N}muJ^%kXbcG>*=OuO zjz_VHP$v?lMk^@+`jW07S*_050NU0Y?nWE^xK3Dx2_z8B%(#q8aM%!OLJ$&bfhr_Y zcJ`Fl>QRL+#u>#i{O;;iIPMoqS7e4^RJk_Me2^6N&k|3c%>G0m*p&&8jW;F{5_2as zV@Q?U3ZSuoqx)bylOkxW0?W(bnH8VZU^J@=05z+)4y{?nI|476t^&{>Z?{4KilF2f zhvXs0M#+$od3fJh5^^acj$!Y@wgT4`k2Er?Leaii59@_43j5Fxxiocr<62IaLw?Ii z#`(i%&$a2Kxmkdjo5LN!WP}j8HQnifgudBoWAgsAhl@F%T^NVmfgTlBGM-Kc#WhII zJzAe~3RKrZNIq(L@qAVF&+U_V*Mpw9KiwC0FgPvE2gZ-L{XB~vht@m0LK?m7POns6 zf^a#l-t2LVyS7iHec5oODJ(T4tPGpY3Cv1;c^|nU`!J539`Efu-im$)zy!(ZSx%TK z6j9UZ*Rgbfgg=^ zDhY}tpJfpMQVsBAuFb`;ztFL^ZymF|Y7vO`sf+50RhWujA*ZMVX9Pj!PGK}CQ$Uz> z=!!aU7!k4a%a6|1g5arUBLu_`VwpBV=6mr0u`U{kz^@2Z%4W)Y3r`?O%|UH}SMoZw zeB$cYPa0){#1=)woqD1`5vW^=mR92kO7d#LD-H<)Hw~52gu~Z>g!B@iP|AOWyk~jh zW~aD)8X{6DZf>McL-EFEM_BXABCJUp znFv`DYJ0ovn>8{bU{ZwT7LnbleS$VJRt-y#FlaRo3#qJaz+w@`#g-U8=jzykV97k4 zB!hOr{mC!X2#jWfn@xWyQp9WmWd|qrr&5TzH(9<}TXCtxcgMv=3tAOL!lGOjq?V%s zn~vl+qd+FWzCU@5#{(HAC42%{84}H=rZHxjrLq(lN>)*>V$9p=wLQw@*r~D5Z>$@T zd@_=IQ;`Y!F+a1=gp+}K9$VqW0Qt1>-N0ywQzOByS7aoyAcsqGnf*7TktRBgWb>>Z zDKZ2IqDW-j=P{j0b?x+k4xd1bkz?b3^R78w>Z?NQ@%st5#)weOXyoAkg?RqHuI9)F zWTE*ONXR~5!)Z*4b5A3N{?Vz|#+y0w`na`;(+6zMylK{x0Q7%++UaO>W}S`7Nf*%R zAS7VhCszT>Et(5Bs+DIfIT$Y*{P&~sUMtBIO{c2pk_X2+yF!4lF8<|}xE59iFn%M!!Wh99;Fo;> z75xp!7sl?1neJ(%O|GLPp&@y96hBYa5665e)dZel^(_zNiOxB3A_o56X8B;S7VPxYLc z@Om7h5Ey>hP}j#~l-5EF8m?G~A-Q;9mp8%!om0)%Q8TGRMcynCva#<{No1E#RS`(? zD?8V378u)45ezd=PnM{Jwm%W&{aq;&pNAb2i9_yV=UohzPZVY$3>Q?SVf$s@k&YYU zZrKY0OagmF)A+0^nbuY40ScJ!RCt>l-A5ZXbDJfMy$D8{n|!g57H1f0uS7d(DW8boARLq6neVB)aS2D9)pkKF zG^!F&F&(dgr)gn^p=kl`{Bz@g42d~~Y;jz1%}nH68Opl~PoI`+1i&QDFpwSMRh2o# zfTzrIXsh4QV1H8gmy%JZeC6UGimbN5i5fbM&3m05y0wY>(JG-I+zp86$MSwrJcr~@ zcNU$1;r9+j-$$;nVMbE0U{TbGe-SthPFd^d-A$sO5X(mOko68?|st2#r|&rac1G+j=n+YM92 zGgh<#8Bk+>?9VQgFVUkdw%nuR!R4k|15?^{p3gd68^IiE;&>7(iW>{4C+(!3d5k8X ze-?C6C*Hc;#KoBBli@GkrJN1%mJZ(&jOzqU0OblCO01;gylyCN=}01`%&Sy`nmIq# zCtn`Ha=Q8Pkl6uFHtFVJ3iU~lwKfTI5U8BgeDC25%qfsn6aO%2=>htvAS7X6UUlG2 zWsi?+xW>y4wim<)ZPs@j-1U@XgbA>qL@1!H)0LvJAxhmvAGl-gU?3P z`+9Hm*1T}v^<=cWX_wAAZdeF4WlsJV&MtqVW5Z~twwbbB$$pXpgzcP%PYTH(Pabl- z=CF1Aamgm^Q+V5=*hpu-QUE$@3idPlRGThZn+_}bwZk|1jYxxmzD>9h8u)#h1XOS5GdVD9`yA9V&~$Q zI<>~8)VPB*KgB0-i$;hsTmgD?B=(*4YP=Mmml_dcmZ*k%J^bmfFt7-D5yZ!@pk?W+ z{d*m}uKD9ZW>jR*8?Y6LSz&&;+H}Ty zC$(IpFG+vgRFhWWB`F-8A+#O9#lMSrF+za^5cp(V!~<7Oo@(r-Zyi+`v7?}{H$=TG z9Mbh?T?kF{M;Q}!MmmpIqZ-KW@Niyiyswzx?NV! z)fsCde9JJU$Cr=X-R!Y>{zmSyu(Fet`>1OtWoQ`!&H@%d1F{3i$isBg%ELLbg|#e0 zDa7H2=45D-hR|Wc$k~0u#ql#`T43Xsc$kmIYH%a1wKa!lvIVAAW5+gjkg5PXnj0K= zS@a_EMAXmUE;^jUm>)#th-R%$bd0u|qH)tK_C26|1Cg+z!Oc&B96`FY*>_!*k6v zSJJ3K8HF$V_*Rmh4PhM|3tJj8(UintnG|x<Sdj=6H6e#S znmLRbtC2KD>5|OnCL6I)$+n%~&Olz~-TA}*SqyxJ>`BEp1lIox9^UA&sJ(@rBa0#l z*Gz%aNV4EwAOh(}B8HL%8=h1rf4xt5v#>$2gxI$9RzBH~> zz!>oqa&UO;cBe$6MuF&ZAyJ1`J{p}v0YFG-JS^|mEJ4DnniilTXt9t;k>H01X>t^8Utpev(@c$rA%%c z8?eYuy)1VOQV>*c$CY?<-nZ>kbofh|r6A=B67rgRA z&`MdaR^y?dE)V$xhZOTigsB7r)x>yZUR`;oCcq7Vl{@8b^gJXnZkUIN0gD@lKnWCo}p??%XF7=9^N^;)eN z^-lZmG~6U2O@QVeL$ov33r5z~0F5^gE@JWq_Y1^nD@B=R>8|#s=ZAw)1)YiY4sr82 z9*DDz)I>eM0FQBuYPosX6!TA9JJ8W+66WC@y@Tj5dN)BK0y_*2_jy&XwE&QCMUTtT zcuU_uw4cG%gJp^P18z68Gj|VGhSu3+z0EJblz%?&glba;{Q$UV~GSNwnRC^#oQM4>Bcnr_Lr&#|9hF@vjDyZ8f>a4wEt2+teySBV18 zo*jNk#}Jt^_ks3QD2>t4R7dYk*l{v}TF@r(7CkxmwGVQs=ax!z+E(6zw|5}Iq0!X# zX_yrV-FThcJTz+>*4F1y?!czuh0VoyFGiJ;1=&gWCQi51v;y+S-RU9zJ!7%>=KDCl ztyy_!;Cos)-qOIzLwz+e012DqK&$iJoq&ZtQ=&m8v^Q}OIZ7EG$Bq4E=5@IXsdq+ZxCQa48S8Nel}qtP0$+cH08JlnxeEr zs|Lq90qvD1@*s?RqkmxzSJdOrK2$evti2vg<-2(O`S-7G`FBW?Zy|Ia48>EhqYbL? zl}*DB?LynORN-VoeL!^ZbdR6#4}M@N@YkU6G=vJO*I$4}3chrKX=ebvcr5o)6Z(8RnjM$ty|mf*=sR8WBuOB#}!5u2yc24v6w*Ch5C9^sT3n66voxdO*zVM z`n_MWdK5#L8O#8tp#346=z=X|@a5_aVzg_vc(>>_WgP;?nE$TS<+|$o{ z@|@ql6+c4fksk7@7Z-)EhwtHdS|0Dnvl5hxPYS)Als>BUZlcv)*R}bd`rx(i7cJih zz0-0>uTN~vwT|8$yloB~A{s{6iAN|q2Jz2|B~s@ z1mj{!6_!F1h6J5VQIj76Rua?vKVYZ&K*$PuKuyKaq)x30F3RD}XVnBhwXa##Cfw>! zjXQ%BP>%S5&7m-zO*&K!hu@74kP&no6Kv>&jt58SNO%o>3=I|^WmRuNnHWLRp}KFZ z%JgLDwXhKlHO4u80m=&R;u84dm_ zVZ8ciwju-vMOHbTl&?s>b&*9#dx_^-;3A9GDqbRk=}``oA)9qYYB4`bsh;gndO*ulmmeue8p;a_w;gU8c2|C3-U8V&wSG6x1{ge3?94bGo8fhc zfTA}#=>pNPP;0uzwq0s=n44auiY>Df;nQSVA@)! z*`bD$ZGulIp{ogP#85SW#ewvSE0-uwT`1gd)<(GB>G#g%j`S5CR@ULWNN_(N( zHC!A_0zF%nN}3rE72)qx9N!8!l6r-mG)=+O3zR{{w_k z{-!&|{r%`<`PwSX3txZr^~yisb8%IW)|w^(r~%4%DQv+S6@DjtIPRR9_X3AjGptL2 z^Y}3KH<~{5E*pAus-Oo+fSS5tiC8YEs;e+Tl|Ie~7!(zHnj-#g0i!L{FY}t=!pPSc z*Tj5h)+2E{>5}ql7YGnANYImqT|`zr)%g4La0qaMUanm6(}7-4Pk#=0#p{q!sY0=e zl>rGOgg|m>t=-ORq_xn73zbeW2rfIqPtsSqJK37}j~f%}GR_%7EFi(iWV+1%p$o~e zKevHBBz*Qwl~8zZeYv`?qzj6#>5SPdfH@ za)}G4EPM}5{nfAV_V-ef&23q9UvYKWU2Zu?ExS_uXNNmH)A)QMO2X1C7 zWFbCG5Ab?>%**WE@#x~cfS8KIR08J`$0uE|w&CHpf0|+I65tXxq1jPB3&UgqKOi|c zJ7Cbf(io1}0rps0p?BQ~z*azOhaCT0ydNA2WN;rHwyD|P@DP=H4uW0WEW-IC-#;IK zo8X*I=#&ntWC6EKz!VlGipVI(#uX^xe=h5^1 z-Dgj?UTi+!+uz!Grc~F(gM@k}^j5JTDh*k!=1HF^me^ZABMG3B@X5!O5V9=+SP6|& zaH)6&mt&5C`TJnO2|2b%l7wZQD~SlDe#jHXgMK5Is%-%;LH^@(^zJm-gN`dXXRp_A z;7N}<3-7?*(-+S+xA&htefm5Fy}|%Q%;}uKL=0R1KXdN`-(^+)|KGfaihz?0lZx`~ zgf^7FG8Gh*v5kL@ZNgAgbPP6NGPb!t{83DDgql;Ss8CT!(KIo!Fsb;M6_xdH4S zRA^XMRFqWIR{K4#>s;r)@ArG}q1NZ~`2Ow(?Dan9y3YUWT<1D}?sI4I(R#R+uTJq{ zGOe5LOqhUrFvwM5qa4F)ZdxeoTy7kVPg5cV9j|urEqC=EGMIVFJ7CNz7A~Rxa?YWu zsaB5qQjdO8!UmI?3lbc=@|vMThUVpsJbT#CVWTh<$wL^%Eu}>%Sq#ms3t|!Yw325h z$GB0QC^Dv%i#cO20QSgo%}~C=728HbLvnEn6H*l~zFfnWnZBLh+9ZO>>qO1rHkpjg z;q2hHd2&LGqUT82P_H`xnc%ijT zbFYySYiV4Pu?kd%bIc5qbDb`}oC#G6bW&4uksT$B)AS%91QN4W*G^j796NO9Qc|*X zc2Pd@QmaD6PE*knQ8m+1bhrFRorhyI^!OHjMxD5#G;8|F6>}>lk1 zyTxVONwY?%ypos56^V3Au2R)>MkC5`o4)k*B>DH1fsDqrsjmr_UX*|}s|<}Uckv;? z%nTa`RS43D5ETqJQo$xJS#0%#uNNLO2}S2>D#GV9uPcYf63y!xBdzS{DfVv81a0|? zm;!pkPiJ?k7yK&;gp2hrZQayvAPhFtcUR%=SVo0ju$Hl3#TioLJ=R1&RZ+*@$g`G; z8NTA<7q$JT0vSkDJ#e^L?=Q?-v7~k(^+;>RRx7Sj->ajg3cnvC?^H+~Sq>TGV`5Cw zECldXG54aNL@l<7q82x2dd_04jFyutb}Dh zWXyGOtq6OS-IidJvM$K$AWgCu6pvKb3m8?xB?C$p9-fb9Nz>Hv+7EBkL$_LIp(FJk zNpGuB33UAN=Z!wUpm+?gt`?3v_x$2>M~^Nn8Z-9%^JE#V+(POQ7j}S9TZB94@gcB@ zF(fvahs?9xX@oed>n3~+S7jn&#^t^tc7IfUGUa>hxtj0d^NZ8+EdhJTb~Jj$GZV8x zGS_1IRiYWQbH2;YxG5>w@j+8FlsYVHW6o-gOck0Zm4kOnk=>elx%&*kiYaZ-viOC^()5>NR4;!_BFE;ClKntkiO$i&@4$TypIQ>3ovzt>8OJlg?LC$R;o?efD z*434ZjnGYryIMESQVJAfiT6F@2p4?9p04U7?7C?qc}ncIoZ@RQTw1oMqnSXrVS{L5 zqeY7DFhxOAy3wZRL8IJ>NXGHPXsJU5siHJTkDD_2{PV|;ol-n5f6Te(78Q;@r=Xy4 z^!ZL-sMIChJ_325R&H?lp!!1%YO%i!5A%kt>l6K>@He5KZi&+F{T9ctDKYntRd9p;!Np8FK zrJj3c*q{Xcw|96_BS}p?eNOdu=b}B^Od0iD*x^(267_qTnVS}5IfV`y>OfcHX(~{f zK2>SQtaH~T+~xr3g|gSvc2p$AZkf}B8HjI5rC9PAR<50L^9?T|(QThEweYD8L8iSJ zNZ9U{eQ08-w(EIqCIeq;N@hj7dhKQ_WbO@NbBD2em5wIU$;QYuYmXL+HM-e%QP!iD zS8L}#TDf_Pb%0QkG$lK}Y3FJ6s7qL;=*8O5R;Bl|=^1iR>QEJEbZOEqO&2x2*H@44^P^J&MdyBYZor##me{=icQG;5fwA!g+=e>(A@*hXh=BPldki2 zCVMV9OhZeKUp^ffIX&T`@Z6;w(0J+P>I*e`6oKSjt`P{6Wv74}1$=%usnbIijDsry z+@RM3TkfJ-8x=)9w5Yy9!&52v%GyX;gX)5Z2~>ClAfr&E3RPM(b`OC`XQ&-?tfbsG zpuoLs_|4i-8)QuFKhX!Sd-bj*!o1GGHt&gzjl{MDFY+%ikdtWYCEW1)%vZnX& z*>8x|t7F>6GU_skXO?RL9!h-dFEw28;xyxq}v(JV2>8`T+N2Eke79-ebVK^#^+oVEZQAWD8rVgs=8B_=qp`>w5*@d=toBU z0ch+pD}1Q((rmyUHxdYH=L204r6XE&sisk;Y(;gi8rENcsg0_knWz+$TwZX+?8@22 z1+xmLRnD1RJgc(2pkmr=m`cke0<#1qBdK2q@xv#Pu(~#9YUT9ODP^-}s@YrVei2Dd z^@^&dMI%jIX5 zn_8NsczHP^bNG&idSY9h<9_>kj^(p>ZbfnFY$gX`Rte+s<K>`6T)kQ zcz}^oNT(T8P~0-R)P-2&d>$ZN`^T9(shkVYNK7D+)?Vw9CNg<^xO(WnVxutgl9jj58&3LF~X{B{dtb zfNl+IU(xfu+#lp+B9f*^2^p%h=$_ZTBqxuC@5$j3)-x~zEC z?1GZY>E+YPN{cJYW=rZ`<}@;i*XDUzAE~e4s@4{X@-GtUN|oG!67P(&i!PC)o1xt1 z)HW{RlMmcx>}9o(?p-;1`qa|O=|#n*71JxOh^3oTTQ2O}^|%k1%DEXM|z=sMO;~S6EhlMP>Q4 zg4xtd#jNS&)Q8iFQu0VI7FL!Nlun&fFjd%`9KpG`zIFU~8&joqTq=CYIsEo#ym>?c z7nkbDR#;wMSvOz$l&#glr&7(HIy@7qZiwRg$tEdvl#QvCFSune@c-E}4 zS<*vd;uR$4s6Pnd-sbWI*Fd zUAWrxX0=+>R6(Y27!($!WcuV;1+%V559BgsT8ccx+b8;pp|9Vv(vmB*N84aX0JTcQ zUd4vitMc6BV7hUZdiTSFF9{d&KgYYk6TFesPY_uVh9coL%iy))Zlw&D&86EkpyK_8qZEjtGxvAJ|YGu z_|g~C8_$K%tq0?mTF~0Guer)s^~x%yF{LV;Qc^H=HWHwmu}t#v0Rj+P5boDWqHXQl!5&5UBJ2}c63Ya!q_lzEW^OYek#}ZkdWII zHzi-i89%FzUNLQAO(wC8xEyOfoVU^)vBCdO%<=B4f0<_Wsf!iwc)i#H&_Xe(WBTQk zf;$H3Br8+mJ+5?!EU7%v^W0aJ{;lY{O-Lk8s@yN$WXe-&g$OepP4nVUkoH_2Ib5mL z?sNz*veV+x!d!UeyU&ALj+2VwhC)bBbMmcfETxb#2E>jE9#ejZgPz3dEen|88m{OB*AOmCGBI>+ zbe)qv$)t`%uKiqAVq0@|d1FexrZ;mDaIJe~%fD?v88fk#x?MZ39x^2!bp*MucSQnM9e7QjJFle)O4$NEgvI+G@8tZVb*$VQEy=fg&0BQCg)H!=FGXu7hp!BfLDsbyj}^h?*p(@WS4U(A~V+_ohb{c-wRexZ0r`m-`}h)yac z*6O-PVxqC@dmSlh?sl6ZYD#_rOxLTJ(=P)t?id}vrJQd{;Coh53~xi6hc4qW?b@^TDt zxjR@IwJIBfw75=D^ukJ#3G*7iL(!e&5y6(}hjqscSL9mX5nDS}_dY=8i2#ileZ)D| zGTLpUVvCdOXX=;gilCGK_=Ld;mS5LNDOJ>*!gRGW-L2K*ZI%)!)@mBHUA`l&KrKl| z!ik6U4=i%o1&yjQOf)>AoOGSY+DbRr;sJbHNw3wzhrTgV0+=Al9mC3$gA|djsYbDE zq6UOVw`5t(w1#1?GjqGRO;GnDg;P{HVu^5|TRNGWo0C*@x6;amRuirzXj=Ut`Ouak zLO<_bxiE8G`#i^L+RL~`;gT3e0bLC46~>8JTEZ53x5s2Kv zDwo`_VZnqf$1h^UcM;uK6RM9Jr31)Em?Vm{Msi(Sd%9~|Cy`cBu6&xZI|&orYvS6( z`lxb9<7pYJeY>@uH!4%bUcyo&LQ{5)C_3Prp}Jvhs=3~?IwOtO+2rQMcxSR$x%t4e zhA*4-zzQAK@J&dqJud{|kd#t8-Rww5)jGh268Up1&fo46ll!@x2j@s8r(D|=dSj4h zx^pU|Phsc|&$#QHJR)VdF(8#gUouJcioed3N-1~!E7dbh8mhf45vHHv)O2d#jOPZ^ zSklk^rIO=^i&7~Sna&TntYumai3QF?4i`LJ3^v)3_LD9ec&kIH`N&`RrJv9zl_hOX z62G@xzKUx%%}qGwmxH;1Zp65pi{&d}GA)~MxxX&mc`ykR1KNGICT9%a{Po`x3q{#w zE_P=+l2+%_9u>y-*5Sm~tmLRkyc>w#FrDCs+VDm1l-Z4pH1c&Fr*ynab!ij_hYd#N zsx?Ii3?t6XP3jI)+%F`L9LZHM(A|Wa>W~j^NndgG!vcj*iw4Wl@%sWchxwFOEDB=2 z)>*}J-rUWFgdEnfeymMmed}5ZFPLY&Ec*0~lPJVPEOPPw{gK|DW(h)PNTRf@lB{kHI#Y7=Ry!8%xk#5;5@T-Jgu+uN7$B?5%t9YfMDf*C{ z3|d6s!&pXBZd^?b$Jg%h(HyKOp~(g5V=(fmTP3- z!|6q^Lkf#uHY$qrd;D#_rlKHQc&SpoRCq6~;v1xk>pP0F^Hcy=dQ)Iua zBYoU=sf?8)_E@}fQkk{mSS7lxPOMjFx!FFNvqvd^V?%Q-UtCJ&gkN=wehwSy&Adpt zx!n9a34|#zO=xBQ^M4b$eM0JgH}>+`W8+m6j~oe;wg}IX$4=eZ>QrjeApGDnYG1B_rEU-K83Id;g9a3;Ci@|Rq5WcZe_2vIZ4hm z!e~`WGsLGTVNJ9BoKEx0U~X;W-%-Yv!wf3W`k8}B3C46XTlKc^?LN{dZDeQPtnuD*%;h|1)^c7#ZhD1&=I8UM{#58G1oPiWwvT%i1v^E%fyP>vT)VtSVp_Wy>L#Q{#)KYA;2RsQOtnli%CO+%U{P&NU3GJKvafk0gL1=)8ty(3MJpSa zF-04W5TbG2@Y;PSAxspV9F?*WG9;|=>AZUr!9;X7oA4JbM`ywmZ=Dn(xxb=Qfj zeI-4dApv8snDg7$_7BsYPl+ z#zi$%Ev-#8Bg0!hjy-1jaDH_{Up=*TMo(jC^*>z~NUdDj*pH1`PcdO|W2%>_N^9;) zxeFrCbr;bIDpYZ|YZce1j*ZWQvaHvj3NQ+&+Hw@p)z>bnX>QSe=2tkE$Hs1pLr3l& zBGE%6%cCAHN6cmxTvE*GzL_&Q<>%EGjpZ+A%uDBq23E7@XtX>#i8w5N%YQS6>+OG6r1bJsJInEK&hB0L_tLueT}$Q z)`NF>p<3)AOb-RN&+L^p$ZbrbK&_&Zytgnis?TWsMeo z5lCxVGVBOeXO?8KeBkc_x-fT-@?M%n=Dzdi51&d;&m}?oUSGpf_NJQR+nDYYlKb)y z->(WQ)^!L;x?!nHRszZg1ua>XR=gx`Rk+>bR(-2q!K58T4F0|7(#C;EmVBQ_nBH;p zuFZ3FO--&;Ox=4ODa{pH%nRf@xM~VGu4anULut*L5RP|RV9n8@yd2JS)k}_idk$^R zmFx`nvp1VrM%nX1!+@1%zhgXfue_Wh4wOrYtTT+(eiR@%3kf8N)zmMqZEC2OyC%h3 z2gx8T*b$%m$W4F3Wp`fj31vrg0Ciz6ONG$O`PW|pHnzu7GJF%(sxKfYYX4D zZoVKnYh-eIO;amhLapUn&P!GePnL{KP8-P%O>#=@;?^1&#Tt?yN?txPSy&_2dl7if ztda|oD^{!!buKaE7nB#2PA|M5*(%fD77P={KJ5{r-FPfNv97q zzM!(CjKj@Efes2H`rO~;Zp2&0ejhfbq#8_Y=B=vwU=rnPs^NWw`al}YuM9*fpa{4S zx_%X=Lo;8BZI=3?GRYYwYOaxYtdb3jlDuTQxF)Ett&=fFt)eK3%1SDTuR3xn$ye?| zzFWGuCRv3Y=UXM>sgqYIlFM4T$8Uk$*IYlMzGktSIbnH~MMOTzaMTr?al?|QYv8Ju zq>FKAb&$)zx`W@9sS^#uO}UsH>Aqgwc5E(}s{XSr%5Rb0M*) z#U}F0LG&nGtoeK>&lI(k>>&keb_SJ|zKkOL$)SybeB-1^KbO9Ux~-``BUr!(wfK^@ zG&$|Ka#a-3#5@i%R}Tv+r>amPP2hFX`dYN7|EzUQQ>Vj&j&hq1HXmM530xmlaoFx-1UMO$e1sGk@+=4Or zB5Ps-G5e~jcI_BwYXwbJD=?5rfFA@AKwttov9y87j$jm7OGAC@vIR9w!OBMI|Kz@* zk*1{(O)ccD70pb$H%g$!Dn8sRKg45MYn{`UK``KkBK!xxZ`lv&}u++!|@@kB@JR@m****>I|1)<<3ZrRM(R8t1;++&{m`xj%ld z%kPUToV(iS*BSp(bB{H5v$>7B9y+VD4R$xe@E9hR8L?t%^*43=^Y0kZClKz};*kHKEaAyy=-TXcN%G`fT!+z^s z`~wVEyiFW!d~*#~ebUAAQNue8KV$f$;qMLqW_a8N7w!qex=%TGi($Ik`|mY+Pq^CX zx256n8(sXT8Gg`ksNrzKv4-uRar{%weSzU+h6@cF4R11>W#JYY-f*{zXO^LNd#p46 zo^YPgFS^IY^LBBp@t3?qeAd$YzG2{=HHHD!W2L?ebWu_Szol<5F;Cqhz;b8qFd3sT z%{a@rux0_jE(rRbh_%n(V0OJ)ivi|hAU0;$9n|U)A6diTU7ObWr9txIRGtZHXI>OI zdnLu>SX5U(yEV87b1jUK4(1rWcK?|qZh!;dGonfrT2AM`m# zf6?3>4?6cx&3&r5Uo-d8O^)uzqi>q~4@N)9++P3RXzsro{lLR6e6Kc_zww`SZa+Sp zX8e7Pe&k+9Kh@j^?sx7W?OBrM{^^4@eptAVTl!xApKktnXYu*6#s>Ks$*^E?UBdzl z8C@S08%(PeLDt$8OJ!Iv@v6eBgF-*IL9%31cUdD!-l=L?Fl<@TAO@wjUq%Lqa@_+= z@!FE|`$ zSYY_Vlg{6}J>C0zoR`M${r_EDY4PoNhw&aTevcz9|Bso!$2I1jXmp>?`R4w-;ihe_ z{AWIu8GmB*>kYsB7W_V*e;S|6ia8VAx_C))89U(g?QkaTelV%4mUW4s5E~*sclFag zH}lXbU1-yzRQ+TnCVy)9vv$(d(A-RFEu1fqIrgZ+5jtsKAWL${c_7bYyIpx7FucU@ zONP%Gwiy2S2af+Mh7TAXH2jX?Ck(e5e*7nvj^W)eJNH4uMf;pvCdV=rkrzV)o~u6L z`tSW_zaF^7xjXtgJN7BFceh{X-2d}whgZJg;yd|H$N$Aa&cD<6r(EsaZ&-Y5|K<3- zzI^0S=Ozm&&(M)$@-gXb0$kU?EMAN|>eC%u2;?@Bv!bbEIOPn6)-4Lh80oGuP((U| z*$p%Lg%Y7fR9UGm87^J)C ze*fDq9e;z-U$pf6{NZAAuQ2*P;}6mvpFf{&Pvxn!^7;I)wEX$}6dV0UOYcvwyZqg3 z?v~e_+vn$Obak5b& z5MBw#`c6~cP%O5g3j>6&zNV_lt$#5O;q%^gNv8I?m={iUife+iN6>fcM8FYbo8GIz zCZB=ONs+FIIqRsES0C$nlLS_oD$$i>VJJxV7SmCeX;~V8E~`veU4_kf_0`fDICsr~ z0EW5huz$rOgUl)@(%Te|))J~|URcG~Hk(p6c=D^Gle7pYnR|ha zAE%gmlDSVach^51{|C(dGjr#d`)lUTHTT`-&NlZ7a}PK7H!S^&%st2GqkZ^)xb%9P zd!W(JGxxquN1tHs`^`Ps+^fw!&D>X-yTsi27Js?9U--L=ufp6X8UJ?E&$~Mu{R*RR zvi#4t@%n2P-_=I{ip96Y+@CS`yUpEd?q%klZSE#>k1_WL&3&@DgS2P-eX|~%@{5mO z90bpGb#?usz>yDMJZMBwMaLN@x=aU$Z}P!lk|%UKV@{4U+KFAaLvle*`oUZVv|Td zt8}}^Poi1)<+>*NO_;cObWgnRiL&1y3(}lNav3$=tEAXh2bHpNAXZ2vISS*G%^<&* z;Wr3aDA2h4W{m9EaM{BJNyaECjkyDTOUW_Ei!RFwVm9fL0)tOWaAB_tg9|TYgd92Q zV%hz=Fm?}IGecm_C_G284F8toQ4(Kz6x@-~a|9{GFnCZhr$8@)(=0VN#B-Dqf^(Za z(WGIJN;ovOLb*657}fW}z8CjBqwffr9dhe{6Q61YA{GNr*5O@!G0^FO7ccsXmwnQW z1BXs@UF8~cf7sk9%s966c6_6Z{z4z;e!pQle~rbrIN|u}%v~BdcRIhg^Xf4{u~LG* zCk0ozfi{^Fb zfBur3ojZ3PJXldNV8Md51A|M;qndm4)2_XrF#M9?PQzV>KQMgR@POfO4c|2EG(7Gz zF5bR|*@mYWzQ^!=h95M{G5nC>S%xDG&ovxxIKl8|mhQ#oE;1}PEHRv8SYtTPu-b5$ zVXNT{hHZwv=4O^%Rvd^bxReo84{+L=)Hrf5sn@5A$#TDko zFUQ3XM=LG9+%uI-2?~meg4uH>2Q%lC1Vz&?3%EctC@;G_m{U44C@rf9N{UMZE=ema zs0e1vEDwq=4N5A4isISs50M5H1=C9kxpOjbH&_MSv?`Zw1r_`#DJv_N%*YL!L19VR z>|*^pXI62*B~}HqrUs*!8;WA9oU0F}uxwJx`j)uE zH__Y!&HWy8k2}@TrZ>dW>}ENR4=LPB=%cp zkoH?PpzWs#I>&uo5SD6MYV5acey|}pEXbY6ftDsd>QNudv>a^-nAzC;P#Kue#yD(= zN!EqrFcfjLw(ugS*mKLPSf*YaR&v1PcA0)2h6NsaPNlnz9$~nTPy?r zBoe)Pkkh9Ldcx2vHLq}M0qkL72N;_cX)1{f}*pbxrEUl$vo@}wO8KkWns0aiL zR>@$&q#%%54&>7(7|$zMTp~RGsOqAF7w}Dc#q*`!$%Ca8h+7mhvBn^y9~c)_(Q{&4c+lz5kDFBINQXUOtqct zXpL+Qh9y1xE6c=-(W!c7N`{o`8uYCk5>|_c(^cl+Y^1(cyvpw-2#>rXPT+~G@_pw9 zCkML?e`feg!`~R5y4vxbY51iz&Rt^IXgEI2J*x-z7u#I;ZyUaDc;Z^;Kicq0!_OGL zVmRodj<3$}CBswJIsX-ghrRn2=l`Z*!>!K!zS|t$Yxonx0UvYzUo!m1UC#a9+Z}$& zu+y;r9nOEU;ReGl!!O_I=%-mcD-7SY-uZ7c{Pf42`w_zxpKxxSR3IH_6}NopJ*#S-`~+SAKU@n z3O@NjN7oK;!{&~zec%@GFnAOkFpzfwKHJfi2bP1=z$p)Qbgc((0=I!%z&+sThdR1~ zQ-fe5mQJHbAKg5cCAi66WLoCbauoDaSLt^{8L z*MslbMm*q|;Pc?s-~q554Bi_A-vpCj<5R=~eiB>)J_@b@zYcB$Ujes)eZELM;QPP> zU_N*hTnUbTANdC7gYW(l;lPW)ZQxSyd9WQk0A_8c{@))2i@>z!x0$dM%7Tf_I2KRx*Um+Y=2M+om^$kt~M}C!h2RDI_g1KKKJ@E73 zVekMr==2~c-3dRq5}Xe{1KtY$3fv6-4%`9W|6k-2d=xwiz61_R2Eo*4ktc9II2T+7 zHiA3BjbQJucXT}mt_2T+4}g8n2!ii{N${88IPl%ikv`ZAt_Ob#J_klHt;cUA9(UE@ze7j)3F9)4xl(z&3C*_y+hqc=UPX=0ibn!S_iAEC5%63&4%w=fFMS zF7OTTHLy=^5Pa*usV}f(H*x`1f*Zki{{Vil3G93#sfAI&Cqk`bBUy=^^IJgqr1Fi>8IY{}z2Jis53G6dE2s*%W z@X6PSAN&@$8T=u*1NIQlo_8$1La21ovub{-o9(|kTV zxEtIC{v3QBeE1OjV9_6lKc6#M;C%4jKT;oHzr*l>4}k;D4T6*Y3>|z3To0b|Cglfz z2=+OTb~-{l;2U5gSp6633A_<}4!i~22fhLx1%D3?I6nx^`78AW&IilEkAf?~$HC3u z-@)g>et)B$z;_*`eB&55!E*4ie;|k8M?2sHmv$m2Es_g{S5LAZU*;&e+GleK`=Lme1rFa<>2{e58v*8<=x0 z`38Rq=1rykz-i#b^WXG4K4_9-)KDndsrk z#19?<=Yr=Hk}vQ!@KJDf5%~gN0SA?02NhF4;4ZKc96FVJfFrp9PPCN5Mhm*vqr17jO(X7rYEy3El*51V0Pz0KWz9178P^f+x%-{H2r^ z90y(umV;ZsHQoz_Y=*;7o8O*Z^(>w}CsrAA$S8Bj8c6WiH_>(3jw7@Fj2w*m4E+3_c6) z0bjm~_MgMJe+~5qt_PQZe+Sotm&}I`yuFI@Tt>MUzz046HiCZuH-hsPk`HhXcmSMK z4gclnX>c@npawYv$1bA1!OOwTU_H14yaU_=z6`zr-n^LbbJ5?|5)OPATm!CM3Lp3~ zcoZzEBmOJMA2=8MI=BY>4Y(QnC%6L~wv74#o57>t-C*)c=274{u(+P^;G^Jr@aGN4 z8JN>V{ai(Rf`h{?E_!BE%gC@V;$*LqCY-H zzQASR8t@TtGx!SlJhviPUH!k4n7LrcNg^!KC>SERfQe=3E~5nfa}30 zz-{2`;2v<`2GU)CJr99pc>AYm*M&jw;m=SWa6333{L0U_%xWT!CnN%fqw$$g8u~B6%M}k0P%re z-b{UhV?Imzi>P;SG`JI70zUr;?FU}-IpPJ+e3bGprhkKT!E+v?Jm9V10q_~{D7fSE zq`QRq*5jlHu6mMmz(0Y>TEcx1e{ei_D_96_248!caTNUWmkEC@_4N$tfX{+!z?L24 z2YeLV117&heSlS9pQY5-SJ8{$_^-haeiD2X{2TZjID9Ah03QJd)lvW8G_d?x>H~b} zIplO1^Q&)=J~#?22bY6uz>;s0K6o>@4}261>gl)NLSDgsyJ#=)F>o6==G){GTnHWp zPx=n!Z(w`@%fU6@rQG1D&r^TkBj2a~8)@(Vrrh8Juo1i$d=&gPxCiXNn{tEsV4v$4 zAHY1Y5u5}*49*98|A6`h`@cwj!Li_BF!&Me-GtnMCe9> zzun36qc#>xFw^jQ;J{Jsm%8apHhU*#(TCwvSWT09D} z2dqm>%O2F0Rg|5SA9xgG%d{^*bb>ng?i9Ys*#p{zye_LCJK5Gdag%aR&h8^b7w;x; zH~b$F529&Hlx1&T(<{-SF^VU$%Ku&b&%3>&>u=(r=@&@)GqSg3CEoBE5E_q^=?MS- z2>)y1q4Abxk525C684e$7}yKl(%#W^ve9RfDG4_m|E>5}n15U1((KK>ZV1DbKtBLo z@)S&kRGr;N!d2sc1pi@SxW&Ghfz;hv=)oNwU4Ioi^>SCDBzw@ES(CGqcl4f|o!5R` zLH6i%#}{OeYdfJJds5=X>~VM$Waq&!IeQQRrn+=?6VDfjXS~FtyUrC@RO~?6~5Xp#)a^^Anq_!Ce21WNGQ5B<1Lc64pA`n*fxH@TWBay3Qd zYKq9!)a>%CRlT|iR+OH|$MD{)C2i>Fx>n*Ny>$s~@3QP|$*j^|sTC*nHV^*i*LHL< zlvw$SQ_DwtCgy1I3VrdU9XAke-lyVn7|P3PpNjO;o$x&e-}@zgd&GY){@=o%Au@a< z-b45g{IvON{)@bx3guP84?K=FFZlX}p`D%_j{h|Lcc%Fl;eQDK_s0Asy?OZm9)E@i zt1tSs>mT#u=xd>$7t&iox|SdM zJ zOZsLHnyMYOxSvxAMOqf=KXrtgM7W9!;Sy7|MjSJANoN!M)$mWvz<(X-&?I!w)N~}@ zdkNP}xU(f3UtJcR!`{JWJO0lOFfGlbtB$?stNx8T1*{GxIaBja_gPu~TQ_AY_{ zcknM1uc&{as}q;|(n75HcH%z*f2k{%9%`g5 ztER6GRK@+`1D3>d2>vnf%Wwb4@7^c6c+%x-F#eLCc>7B^^YI^!|D_U%mXnrl%bJQd zL&4#Jy(96?gKrLexx#0U$Ycxt)%a_FgT0N$Pu6A+kj9tzH$eX|^sh=7rO(Jd+$-@! zeEik&!#Cibj;`B$-CiofP>w#v9TC0`XrXUb^#qJGxNxF+M}Xsny0>l#R}_J8;vCO!%4;=4ACPwHa} z^rxVYHTt@Qwli|I)K|CG+iv)F!Z$PI3){t|N4rRRN8o!EzB1!$OC-d^(?{q7QTzk$ z?dX~l(Zd32`Jop>*LKzN*ZAPB{Lo9FYd_F-NiBbQto%~uwea5re_DM}KKhyKIpIJo z{M+IG0{l#s;`OWiQoq;4;+Om$g#Qryw+p}KH*uTKu+(qw{>;rbb#%2EeO*H9P4x6C zU%|pR9KJ8Y=k-=|7`rfB)%H&4C%k3 zr?&WlsQfcfei=T*Mfs+YFKvJPAH{#9`L`wNe06HRD=eH$Azl2Gzb#AZvnn3{YWTW{ zCvG=Lx*PBh?oS=3CEr`|{|o$HZr91Up6w! z#@9~x-}OM$Pwx=*-7a!q_BZx1nn5NTbOdCH_tD&57}u-baPZ z!TNCp6MhqY$%WcYdkH6JX1sp3aO7(S;V#kmz12jQ(Qs1k{_kRqnsDcePf9&54$~-s zln-ACd<%pxt=vU2Z=>7|eYM;u7FTXbFOM9Af+S&i=J9_m@m)iFw~7bscgea)eEwe) z&i{*<|4-|iJ#I$o0sw+p+;4K~^sP9Q*Mr2rj`&L@{*-bhCi#L%efP(}+M2QaG)@oo zE&Z;DaE}r0LW!UJx6Alp`o3NhC=T_bq|*ZbcKFW@`DsJrpG8V!Q42&Y{B&U@ovnoX z9O0@ngkv5l3lxMCqU#s?;eQ4G8u8F_(;RJC(yPn-az+uP-b|zhJ;+|O%xks&b)JlR zxubV+>iSC&_5XXVXBs+Oe<4+oixT2FKs=Mfc<5i<+ObgP+q7fWsm!;@3vv;Uh}JF8O>_=vsfIXXV!VqsQ9%6}oRy z;)|(*N{F!8RG)1izJ*&lx^9#BwB2-^6Vo9az+ee>@@E%(6gPbG`L!4Suj9X6e6{@a zr*_(%@)t_~r2L6b`U-IUM8frF0&wBOaXU=cd2~EXOz$R`nrV@rBEl^o+%9W(TeqTB zZQY9W+K!)*y=PL^BfYf2i4qZu7o02y?Zor*M@&DXE3TxL#eWO_uj8NOw|_(qcH;kg z{JoxQOGI|4(Dy?>0$t*8?N%DLo6tLwR!H{y~2V`n5)1m$<~+Mf7two`}vk1mBzR{YLmyPJ3Ku6+L?mdiIiT{j<0qv5#{L zu=J?3W>ovIf(40|M?1RCxBRpvTEqN`9&3SqJM=7*mv+gotsjVxAB@>G(hghTzlO7! zw^)3(E{lXDT6{Z5yu0E1FZd3He73HM>F|;=`q9qy>rVJreLk{-nFl@PGb-^79z>sb zJQ|lwue<)RMk5S6uH>@>{%ZKI4AT$gg^ETyGr^ViY=Q67@LgnlZHd)BS*^bf(6>YP z;}!WT@eC4vJM`C}7lh%XbycD7g`TxFbNnUHk3c^I`YRG%^#iSFcHa~mzY|w8fL{_D zuW9#kuQCYZ7ivUr6k)(`CB9EceA-WR-CWw|TBkLr_u_t+YK;}Tl1TloCfxB)*gTUs z+Y^jWem{gP#m6%#*H-w?hQFtJ+YNm>^i2Iw(mMqG66kmHTgu%|iNf@5)ZDR?AVeo0 zgE8Es7?77ubfDPDi8q3?wL ztJHKvZhjn3XA6ASKV|EUt{qbP-7e_&LvIP=QT-?JRK?462)^IKR~PcBoQld}{Tpec z{32%q`7`p1q$m1G)61IN%Q7zYm=C?;OHu!{d5zQ$3Wos1GXcJN@Ldnz@A)n59v>H( zjINV$xb67FUTyg_MLLimn+Tt~z56=hcKpxAKfW#{^1U1XarkR}t9+|nsrt$_a9C}s zXFB1Z0l(juqJ6H4x6fbVPkp|7(y`(xmJ5dXNnDdii2|4H~)2tSM4@o|8nHTGq^`W6lU9SphMZVHzy zh{<3DcVi@j(2~Fn_Ub#eXpVAHe@c@wZ3(^YOnKf7MGd z{}TMaia*oO@DcuM{J-eqH;VYL#{X;hGffE}@!x>|)A)Zl^mX;O7612tId%OuAD&(K ze*pgs>vy(IKux7hc%{E|5^f3Mc1k)?e{t)_PiobL9Y)$?coNxx-|Mq=ERJ9gqCc(; z>sjQb0>12LSSK?3#`**DZu{9$e-JyXBU6Xa_9vcKiRS|1jI}@gDw>ZA-!AyxgfCkE z(D?!_?8XU^6RFoj@D1FNTHg}BHw~YS|9ANvONVvF#13Du5=g`0djh@(GL%c_IZ?T$ zX3x*M{#g5|sGeXo@pXR1E$y9Ngk1d-SB69 zjkDF_q530Q&+_v=G=0i?mb6#z9OgZQ+i2lz{Xz9tbpAl~m()pPruLHhDIuQQiAVQ` zS!S_)a@v7)>|K3LBNVHONGwlvr|S!m&rQVl@Xn5|Pg}lhpUuU$w!3`phQHr`b#yfd ze^g)aCl>nZl6)S4Zx(zi_sZwjA1@8fwQ2ogw%fFRWf0JO-TRT$d(oMky&}G+B;BYV zX+BrD80kkCkZyTX`;?S#HQ~;Gw%dATsn(ZUk_-Ev@Nb2`5&qR-I@s6im?q`B2{U{&$E6`PM zK`)0W;Y#rT3I4k7;KG@;>*B40{txIQ!+2BI&D){(`FeCdWu0t_>UPU2xJVpF(C)`oOU6H^+dU1P+ zRU$k8G9&xBURf6=?N{1$enyfdzfCeqx_8MwTDNuD0%xzU%v#zz z(|{+D@ko3{!&txiK}XlbRC�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 J)m5kNzX1AQN7w)W literal 0 HcmV?d00001 diff --git a/premake/Linux/build-scripts/run.tests.sh b/premake/Linux/build-scripts/run.tests.sh new file mode 100755 index 0000000000000..1f87e662c3f25 --- /dev/null +++ b/premake/Linux/build-scripts/run.tests.sh @@ -0,0 +1,94 @@ +#!/bin/bash + +function pause() { + read -p "$*" +} + +function pass() { + if [ -d "$1/Build/Debug" ]; then + cd $1/Build/Debug + echo "Testing:" $1 + "./$@" + cd ../../.. + pause "Press any key to continue..." + fi +} + +function randomfile() { + fcount=($1/*.*) + fcount=${#fcount[@]} + fpick=$(($RANDOM % $fcount)) + for d in $1/*.*; do + if [[ $fpick -eq 0 ]]; then + RETURN=$d + echo $d + return + fi + fpick=$(($fpick - 1)) + done +} + +function testspecial() { + if [ -d "$1/Build/Debug" ]; then + cd $1/Build/Debug + randomfile $2 + cd ../../.. + pass $1 $RETURN + fi +} + +# change to directory above shell file +SCRIPTPATH=`readlink -f $0` +SCRIPTDIR=`dirname $SCRIPTPATH` +cd $SCRIPTDIR/.. +cd tests + +pass "checkkeys" +pass "loopwave" +pass "testatomic" +pass "testaudioinfo" +pass "testautomation" +pass "testdraw2" +pass "testchessboard" +pass "testerror" +pass "testfile" +pass "testfilesystem" +pass "testgamecontroller" +pass "testgesture" +pass "testgl2" +pass "testgles" +pass "testhaptic" +pass "testiconv" +pass "testime" +pass "testintersection" +pass "testjoystick" +pass "testkeys" +#pass "testloadso" +pass "testlock" +pass "testmessage" +#pass "testmultiaudio" +pass "testnative" +pass "testoverlay2" +pass "testplatform" +pass "testpower" +pass "testrelative" +pass "testrendercopyex" +pass "testrendertarget" +pass "testresample" "sample.wav" "newsample.wav" "44100" +pass "testrumble" +pass "testscale" +pass "testsem" 1 +pass "testshader" +testspecial "testshape" ./shapes +testspecial "testshape" ./shapes +testspecial "testshape" ./shapes +pass "testsprite2" +pass "testspriteminimal" +pass "teststreaming" +pass "testthread" +pass "testtimer" +pass "testver" +pass "testwm2" +pass "torturethread" + +cd .. \ No newline at end of file diff --git a/premake/MinGW/SDL_config_premake.h b/premake/MinGW/SDL_config_premake.h new file mode 100755 index 0000000000000..c696dd20fbce9 --- /dev/null +++ b/premake/MinGW/SDL_config_premake.h @@ -0,0 +1,193 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2013 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef _SDL_config_windows_h +#define _SDL_config_windows_h + +#include "SDL_platform.h" + +/* This is a set of defines to configure the SDL features */ + +#if !defined(_STDINT_H_) && (!defined(HAVE_STDINT_H) || !_HAVE_STDINT_H) +#if defined(__GNUC__) || defined(__DMC__) || defined(__WATCOMC__) +#define HAVE_STDINT_H 1 +#elif defined(_MSC_VER) +typedef signed __int8 int8_t; +typedef unsigned __int8 uint8_t; +typedef signed __int16 int16_t; +typedef unsigned __int16 uint16_t; +typedef signed __int32 int32_t; +typedef unsigned __int32 uint32_t; +typedef signed __int64 int64_t; +typedef unsigned __int64 uint64_t; +#ifndef _UINTPTR_T_DEFINED +#ifdef _WIN64 +typedef unsigned __int64 uintptr_t; +#else +typedef unsigned int uintptr_t; +#endif +#define _UINTPTR_T_DEFINED +#endif +/* Older Visual C++ headers don't have the Win64-compatible typedefs... */ +#if ((_MSC_VER <= 1200) && (!defined(DWORD_PTR))) +#define DWORD_PTR DWORD +#endif +#if ((_MSC_VER <= 1200) && (!defined(LONG_PTR))) +#define LONG_PTR LONG +#endif +#else /* !__GNUC__ && !_MSC_VER */ +typedef signed char int8_t; +typedef unsigned char uint8_t; +typedef signed short int16_t; +typedef unsigned short uint16_t; +typedef signed int int32_t; +typedef unsigned int uint32_t; +typedef signed long long int64_t; +typedef unsigned long long uint64_t; +#ifndef _SIZE_T_DEFINED_ +#define _SIZE_T_DEFINED_ +typedef unsigned int size_t; +#endif +typedef unsigned int uintptr_t; +#endif /* __GNUC__ || _MSC_VER */ +#endif /* !_STDINT_H_ && !HAVE_STDINT_H */ + +#ifdef _WIN64 +# define SIZEOF_VOIDP 8 +#else +# define SIZEOF_VOIDP 4 +#endif + +/* This is disabled by default to avoid C runtime dependencies and manifest requirements */ +#ifdef HAVE_LIBC +/* Useful headers */ +#define HAVE_STDIO_H 1 +#define STDC_HEADERS 1 +#define HAVE_STRING_H 1 +#define HAVE_CTYPE_H 1 +#define HAVE_MATH_H 1 +#define HAVE_SIGNAL_H 1 + +/* C library functions */ +#define HAVE_MALLOC 1 +#define HAVE_CALLOC 1 +#define HAVE_REALLOC 1 +#define HAVE_FREE 1 +#define HAVE_ALLOCA 1 +#define HAVE_QSORT 1 +#define HAVE_ABS 1 +#define HAVE_MEMSET 1 +#define HAVE_MEMCPY 1 +#define HAVE_MEMMOVE 1 +#define HAVE_MEMCMP 1 +#define HAVE_STRLEN 1 +#define HAVE__STRREV 1 +#define HAVE__STRUPR 1 +#define HAVE__STRLWR 1 +#define HAVE_STRCHR 1 +#define HAVE_STRRCHR 1 +#define HAVE_STRSTR 1 +#define HAVE_ITOA 1 +#define HAVE__LTOA 1 +#define HAVE__ULTOA 1 +#define HAVE_STRTOL 1 +#define HAVE_STRTOUL 1 +#define HAVE_STRTOLL 1 +#define HAVE_STRTOD 1 +#define HAVE_ATOI 1 +#define HAVE_ATOF 1 +#define HAVE_STRCMP 1 +#define HAVE_STRNCMP 1 +#define HAVE__STRICMP 1 +#define HAVE__STRNICMP 1 +#define HAVE_SSCANF 1 +#define HAVE_M_PI 1 +#define HAVE_ATAN 1 +#define HAVE_ATAN2 1 +#define HAVE_CEIL 1 +#define HAVE_COPYSIGN 1 +#define HAVE_COS 1 +#define HAVE_COSF 1 +#define HAVE_FABS 1 +#define HAVE_FLOOR 1 +#define HAVE_LOG 1 +#define HAVE_POW 1 +#define HAVE_SCALBN 1 +#define HAVE_SIN 1 +#define HAVE_SINF 1 +#define HAVE_SQRT 1 +#else +#define HAVE_STDARG_H 1 +#define HAVE_STDDEF_H 1 +#endif + +#ifndef SDL_AUDIO_DRIVER_DUMMY +#define SDL_AUDIO_DRIVER_DUMMY 1 +#endif +#ifndef SDL_AUDIO_DRIVER_DISK +#define SDL_AUDIO_DRIVER_DISK 1 +#endif +#ifndef SDL_VIDEO_DRIVER_DUMMY +#define SDL_VIDEO_DRIVER_DUMMY 1 +#endif +#ifndef SDL_TIMER_WINDOWS +#define SDL_TIMER_WINDOWS 1 +#endif +#ifndef SDL_AUDIO_DRIVER_WINMM +#define SDL_AUDIO_DRIVER_WINMM 1 +#endif +#ifndef SDL_FILESYSTEM_WINDOWS +#define SDL_FILESYSTEM_WINDOWS 1 +#endif +#ifndef SDL_POWER_WINDOWS +#define SDL_POWER_WINDOWS 1 +#endif +#ifndef SDL_LOADSO_WINDOWS +#define SDL_LOADSO_WINDOWS 1 +#endif +#ifndef SDL_VIDEO_DRIVER_WINDOWS +#define SDL_VIDEO_DRIVER_WINDOWS 1 +#endif +#ifndef SDL_THREAD_WINDOWS +#define SDL_THREAD_WINDOWS 1 +#endif +#ifndef SDL_HAPTIC_DUMMY +#define SDL_HAPTIC_DUMMY 1 +#endif +#ifndef SDL_JOYSTICK_DUMMY +#define SDL_JOYSTICK_DUMMY 1 +#endif +#ifndef SDL_VIDEO_RENDER_OGL +#define SDL_VIDEO_RENDER_OGL 1 +#endif +#ifndef SDL_VIDEO_OPENGL +#define SDL_VIDEO_OPENGL 1 +#endif +#ifndef SDL_VIDEO_OPENGL_WGL +#define SDL_VIDEO_OPENGL_WGL 1 +#endif + +/* Enable assembly routines (Win64 doesn't have inline asm) */ +#ifndef _WIN64 +#define SDL_ASSEMBLY_ROUTINES 1 +#endif + +#endif /* _SDL_config_windows_h */ diff --git a/premake/MinGW/build-scripts/clean_premake.bat b/premake/MinGW/build-scripts/clean_premake.bat new file mode 100755 index 0000000000000..099e3fd4b2bf2 --- /dev/null +++ b/premake/MinGW/build-scripts/clean_premake.bat @@ -0,0 +1,4 @@ +@echo off +cd .. +%~dp0\premake4.exe --file=..\premake4.lua --to=.\MinGW --mingw clean +pause \ No newline at end of file diff --git a/premake/MinGW/build-scripts/mingw.bat b/premake/MinGW/build-scripts/mingw.bat new file mode 100755 index 0000000000000..347c4d97bd2a4 --- /dev/null +++ b/premake/MinGW/build-scripts/mingw.bat @@ -0,0 +1,4 @@ +@echo off +cd .. +%~dp0\premake4.exe --file=..\premake4.lua --to=.\MinGW --mingw gmake +pause \ No newline at end of file diff --git a/premake/MinGW/build-scripts/premake4.exe b/premake/MinGW/build-scripts/premake4.exe new file mode 100755 index 0000000000000000000000000000000000000000..ab66e76c68bd931fc7a1f0c4306bd3825cf40d3b GIT binary patch literal 483840 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�^ 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�qdc@C%`der!d(zcAn7KW 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%0Di{*3#6Mk>vUWm@BZVRXA98w8|H!9qY-Z) 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 F{|8cPb};|| literal 0 HcmV?d00001 diff --git a/premake/MinGW/build-scripts/run.tests.bat b/premake/MinGW/build-scripts/run.tests.bat new file mode 100755 index 0000000000000..cac7a3e05295d --- /dev/null +++ b/premake/MinGW/build-scripts/run.tests.bat @@ -0,0 +1,108 @@ +@echo off + +cd ..\tests + +call :pass checkkeys +call :pass loopwave +call :pass testatomic +call :pass testaudioinfo +call :pass testautomation +call :pass testdraw2 +call :pass testdrawchessboard +call :pass testerror +call :pass testfile +call :pass testfilesystem +call :pass testgamecontroller +call :pass testgesture +call :pass testgl2 +call :pass testgles +call :pass testhaptic +call :pass testiconv +call :pass testime +call :pass testintersection +call :pass testjoystick +call :pass testkeys +::call :pass testloadso +call :pass testlock +call :pass testmessage +call :pass testmultiaudio +call :pass testnative +call :pass testoverlay2 +call :pass testplatform +call :pass testpower +call :pass testrelative +call :pass testrendercopyex +call :pass testrendertarget +call :pass testresample sample.wav newsample.wav 44100 +call :pass testrumble +call :pass testscale +call :pass testsem 1 +call :pass testshader +call :testspecial testshape .\shapes +call :testspecial testshape .\shapes +call :testspecial testshape .\shapes +call :pass testsprite2 +call :pass testspriteminimal +call :pass teststreaming +call :pass testthread +call :pass testtimer +call :pass testver +call :pass testwm2 +call :pass torturethread + +:: leave the tests directory +cd .. + +:: exit batch +goto :eof + +:testspecial +if not exist %1\Win32\Debug goto :eof +cd %1\Win32\Debug +call :randomfile %2 +cd ..\..\.. +call :pass testshape %RETURN% +goto :eof + +:: pass label (similar to pass function in the Xcode tests command script) +:pass +setlocal enabledelayedexpansion +set args= +set /A count=0 +for %%x IN (%*) DO ( + if NOT !count! EQU 0 set args=!args! %%x + set /A count=%count% + 1 +) +endlocal & set callargs=%args% +:: if it does not exist, break procedure +if not exist %1\Win32\Debug goto endfunc +:: goto directory +echo Testing: %1 +title Testing: %1 +cd %1\Win32\Debug +:: execute test +".\%1.exe"%callargs% +cd ..\..\.. +pause +:endfunc +goto :eof + +:randomfile +setlocal enabledelayedexpansion +set count=0 +if not exist %1 goto :eof +for %%d in (%1\*.*) DO ( + set /A count=count + 1 +) +set /A count=%RANDOM% %% %count% +for %%d in (%1\*.*) DO ( + if !count! EQU 0 ( + set rfile=%%d + goto endrfile + ) + set /A count=count-1 +) +:endrfile +set tmprfile=!rfile! +endlocal & set RETURN=%tmprfile% +goto :eof \ No newline at end of file diff --git a/premake/README-cygwin.txt b/premake/README-cygwin.txt new file mode 100755 index 0000000000000..47be2e1cfb123 --- /dev/null +++ b/premake/README-cygwin.txt @@ -0,0 +1,29 @@ +There is a script in the Cygwin/build-scripts folder for generating a series of +GNU makefiles for building the SDL2 project and some parts of its test suite. +These work similarly to the MinGW makefiles, but the overall Cygwin project has +significant limitations. + +The current project will not build correctly. It's experimental and has a lot of +tweaking needed to be built. It was built successfully once, but it has not been +maintained in any way. + +The Cygwin project is limited in that it is not expected to be able to run +anything visual at all. It is not difficult to enable all of the visual tests +and support (such as X11 support or OpenGL), but it is not a goal for this +project. For the complexity of having a compatible desktop environment setup on +Cygwin, it's assumed that will not be the case for most users of the generated +Cygwin project. As a result, only the core tests and library are built for +Cygwin, focusing on things like thread support, file operations, and various +system queries and information gathering. + +The Cygwin directory does have automated tests to run through the tests +supported by Cygwin. It also has separate build scripts for both debug and +release builds, though this is assuming the GNU make utility is located in the +user's PATH. + +The Cygwin project has no outstanding dependencies, since it is designed to be +mostly minimalistic and just relied on the POSIX functionality provided by +Cygwin. + +Like the other projects, you may cleanup the entire directory of any generated +or built files using the clean script located in Cygwin/build-scripts. \ No newline at end of file diff --git a/premake/README-ios.txt b/premake/README-ios.txt new file mode 100755 index 0000000000000..cb491036dde10 --- /dev/null +++ b/premake/README-ios.txt @@ -0,0 +1,33 @@ +Use the Xcode command files (located in the Xcode-iOS/build-scripts folder) +to conveniently generate a workspace for Xcode 3 or Xcode 4. It also +contains a cleaner script and a convenient script for automatically +running all the test suites. + +The iOS project will be referencing all files related to the top-level iOS +project. The core library will use the top-level include and src directories, +just like the other generated projects, but it will build projects for each of +the Demos in the top-level Xcode-iOS folder. These projects will have any +resources they need copied to be copied over and included as resources. They +will also reference the Info.plist file in Xcode-iOS/Demos. + +iOS support is currently experimental, but it should work just fine for any and +all applications. All of the demos that work from the manually-created Xcode +projects also work for the generated projects. There are a few minor things that +need improving, but nothing major. + +The iOS projects have no major dependencies other than the ones in the manual +Xcode-iOS project. Those are: + + -AudioToolbox.framework + -QuartzCore.framework + -OpenGLES.framework + -CoreGraphics.framework + -UIKit.framework + -Foundation.framework + -CoreAudio.framework + +All of these frameworks are part of the iOS SDK, not part of the core OS X +system. + +Run the clean script to clear out the directory of Xcode-related files +and binaries. \ No newline at end of file diff --git a/premake/README-linux.txt b/premake/README-linux.txt new file mode 100755 index 0000000000000..9374b728432c1 --- /dev/null +++ b/premake/README-linux.txt @@ -0,0 +1,46 @@ +You may generate GNU makefiles for building SDL2 and its related test suite by +using the gmake shell script in the Linux/build-scripts folder. + +Linux support is currently experimental for the meta-build system. Most of the +progress made on this support happened toward the end of the meta-build system +project, so there is a lot currently missing that could be added in the future. +For the most part, the Linux support works well, but there is a significant +amount of testing needed to verify it can be built in many different +environments. + +The Linux project does not target every dependency it should (as seen in the +autotools configure script or in the CMake script), but it does target the +following dependencies: + + -D-Bus (required to build Linux at all) + -DLOpen (most of the other dependencies are dependent on this) + -ALSA + -PulseAudio + -ESD + -NAS + -OSS + -X11 + -OpenGL + +Also, the Linux system should be building the SDL2 library as a shared library, +but it builds it as a static library because of a few premake-related issues. +This is because when the makefile generated by premake tells the linker where to +find the definitions library (libSDL2.o), it also gives a hint to the loader to +find libSDL2.so in the same place, with a relative path. This means in order to +execute the program dynamically linked to SDL2, it's looking in some path like: + + "../../SDL2/Build/Debug" + +Now, while this path works at the location of the makefile (such as +./tests/testsprite), it does not make sense from the actual location of the +executable (./tests/testsprite/Build/Debug). Furthermore, it's just massively +inconvenient to have a relative path to look for the shared object. Moving +libSDL2.so into the same directory as the executable does not solve this issue. +Unfortunately, premake also does not allow an install target to be created for +the makefiles, which is another one of the major issues related to building SDL2 +as a shared library on Linux. Once these problems are solved, this support +should be very straightforward to add to this system in the future. + +The Linux system does have both an automated test and cleaning shell files for +running through the entire supported test suite and cleaning up the generated +and built files, respectively. \ No newline at end of file diff --git a/premake/README-macosx.txt b/premake/README-macosx.txt new file mode 100755 index 0000000000000..599e96e3c8311 --- /dev/null +++ b/premake/README-macosx.txt @@ -0,0 +1,34 @@ +Use the Xcode command files (located in the Xcode/build-scripts folder) +to conveniently generate a workspace for Xcode 3 or Xcode 4. It also +contains a cleaner script and a convenient script for automatically +running all the test suites. + +If you use the script to automatically build the workspace file, you +need to open the workspace at least once after generating it, or it +will give errors that certain schema do not exist within the workspace. +Also, the script depends on Xcode command line tools being installed. + +There are separate build files for building for i386 architecture +versus x86_64 architecture. There are separate build scripts for +Xcode 3 versus Xcode 4, but these just use the different toolchains. + +There is a script for automatically running through all known supported +tests on that platform. + +The Mac OS X projects currently have reliance on the following dependencies: + + -AudioToolbox.framework + -AudioUnit.framework + -Cocoa.framework + -CoreAudio.framework + -IOKit.framework + -Carbon.framework + -ForceFeedback.framework + -CoreFoundation.framework + +It will also link to OpenGL.framework, as the dependency function for OpenGL +assumes that OpenGL always exists on Mac OS X. However, this is defined in +a segmented way to allow the possibility of no OpenGL support on Mac OS X. + +Run the clean script to clear out the directory of Xcode-related files +and binaries. \ No newline at end of file diff --git a/premake/README-mingw.txt b/premake/README-mingw.txt new file mode 100755 index 0000000000000..8eb90c34e0653 --- /dev/null +++ b/premake/README-mingw.txt @@ -0,0 +1,39 @@ +MinGW requires both the MinGW system and MSYS. + +There is a script for generating a series of GNU makefiles targeted +at MinGW on Windows. These makefiles will build the SDL library and +test executables with static links to libgcc and the same features +as the Visual Studio builds. That is, they have full OpenGL support +and they have no dependency on MinGW. + +After generating the scripts, simply navigate to the directory in +a MSYS terminal and execute: + + make + +If you wish to clean the directory, you can use either the clean +batch file, or call: + + make clean + +The former will remove the actual makefiles and the latter will +perform a typical clean operation. You can target specific +build configurations as such: + + make config=debug + +Verbosity is initially set to off. All verbosity controls is +whether the resulting gcc and ar commands are printed to the +console. You can enable verbose output by setting verbose to any +value: + + make verbose=1 + +There is currently no install target, but that is intended +eventually. + +Ben: +There is no DirectX support currently, but you can use the +command option '--directx' when generating the makefiles to +explicitly force the DirectX dependency on. This may have +undefined behavior, so use it cautiously. \ No newline at end of file diff --git a/premake/README-windows.txt b/premake/README-windows.txt new file mode 100755 index 0000000000000..759a814f213ff --- /dev/null +++ b/premake/README-windows.txt @@ -0,0 +1,37 @@ +Use the Visual Studio batch files (located in the VisualC folder) to +conveniently generate solutions for Visual Studio 2008, 2010, and 2012. +It also contains a cleaner script and a convenient script for automatically +running all the test suites. + +There is a script (check.bin.compatibility.vs2010.bat) in VisualC\build-scripts +which will build \VisualC (which is not generated by this premake +system) and build SDL2.dll using the generated SDL2.sln in the VS2010 folder. It +will copy the SDL2.dll over to each test project in \VisualC and +subsequently run those tests to verify binary compatibility between the SDL2.dll +that came from the premake solution and the executables which were built using +the old solution files. + +The windows project currently depends on most of the libraries inherently +added to the links list by Visual Studio. The additional libraries SDL2 depends +on are as follows: + + -imm32 + -oleaut32 + -winmm + -version + -OpenGL32 + -DirectX + +OpenGL32 is an optional dependency. If it is not located for whatever reason, +SDL2 will build fine without it. DirectX is another optional dependency for +SDL2. Unlike the manually-created VS projects, the meta-build system supports +not having DirectX support and still being able to build and run through most of +the projects (using the OpenGL renderer or the software renderer). + +Run the clean script to clear out the directory of VS-related files and +binaries. + +Ben: +Please note that the script for building the VS2012 solution from the +command prompt seems to not be working properly. This issue is +currently unresolved. \ No newline at end of file diff --git a/premake/README.txt b/premake/README.txt new file mode 100755 index 0000000000000..02c2bb41cf132 --- /dev/null +++ b/premake/README.txt @@ -0,0 +1,330 @@ +Author: Ben Henning + +The goal of this project is to provide a lightweight and portable meta-build +system for generating build systems for various platforms and architectures, all +for the SDL2 library and subsequently dependent executables. + +Following is a table of contents for the entire README file. + +[0] OVERVIEW +[1] GENERATING PROJECTS AND COMMAND-LINE OPTIONS +[2] STRUCTURE +[3] SUPPORT ON WINDOWS AND VISUAL STUDIO +[4] SUPPORT ON MAC OS X AND XCODE +[5] SUPPORT FOR IOS +[6] SUPPORT FOR LINUX +[7] SUPPORT FOR MINGW +[8] SUPPORT FOR CYGWIN +[9] EXTENDING THE SYSTEM TO NEW PROJECTS OR PLATFORMS (code samples) + +[0] OVERVIEW + +The system is capable of generating projects for many different platforms and +architectures. How to generically generate projects is described in the next +section. Subsequent sections thereafter describe more specific ways to generate +projects and dependencies projects have. + +All of the projects inherently have things in common, such as depending on the +same source tree for header and source files. All projects generated will also +have both debug and release configurations available to be built. More +information on how to build either will be provided below. + +To view a list of progress on the project, view the changelog. + +[1] GENERATING PROJECTS AND COMMAND-LINE OPTIONS + +To receive help with various premake actions and command-line options, or to +view the options available for the current premake environment, run the +following command: + + ./premake4 --file=./path/to/premake4.lua help + +To construct the project files, run this local command from any command line: + + .\premake4 --file=.\path\to\premake4.lua --to=.\resultDirectory [opts] [vs2008/vs2010/vs2012] +OR + ./premake4 --file=./path/to/premake4.lua --to=./resultDirectory [opts] [xcode3/xcode4/gmake] + +opts may be one of: + --mingw + --cygwin + --ios + +opts may also include any of the following: + --alsa : Force the ALSA dependency on for Linux targets. + --dbus : Force the D-Bus dependency on for Linux targets. + --directx : Force the DirectX dependency on for Windows, MinGW, and Cygwin targets. + --dlopen : Force the DLOpen dependency on for Linux targets. + --esd : Force the ESD dependency on for Linux targets. + --nas : Force the NAS dependency on for Linux targets. + --opengl : Force the OpenGL dependency on for any target. + --oss : Force the OSS dependency on for Linux targets. + --pulseaudio : Force the PulseAudio dependency on for Linux targets. + --x11 : Force the X11 dependency on for Linux targets. + +All projects have debug and release configurations that may be built. For IDE +projects such as Visual Studio and Xcode, there are configurations in the former +and schemas in the latter to handle this. + +For make files, the following command line may be used: + make config=debug +or: + make config=release + +The make files also have a level of verbosity that will print all compiler and +linking commands to the command line. This can be enabled with the following +command: + make verbose=1 + +[2] STRUCTURE + +The structure of the meta-build system is split into three parts: + + 1. The core system which runs all of the other scripts, generates the premake + Lua file that is used to generate the actual build system, and sets up + premake to generate it. (premake4.lua) + + 2. The utility files for performing various convenience operations, ranging + from string operations and a file wrapper to custom project definitions and + complex dependency checking using CMake-esque functions. There is also a + file containing custom dependency functions for checked support. + (everything in the util folder) + + 3. The project definition files, which define each and every project related + to SDL2. This includes the SDL2 library itself, along with all of its + current tests and iOS Demos. These files also related to dependency handling + and help build dependency trees for the various projects. + (everything in the projects folder) + +The premake4.lua file is lightly documented and commented to explain how it +interfaces with the other utility files and project files. It is not extensively +documented because the actual generation process is not considered to be +pertinent to the overall usage of the meta-build system. + +The utility files have thorough documentation, since they are the foundation for +the entire project definition and dependency handling systems. + +The project definition files are lightly documented, since they are expected to +be self-explanatory. Look through each and every project definition file +(especially SDL2.lua, testgl2.lua, testshape.lua, testsprite2.lua, and +testnative.lua) to gain experience and familiarity with most of the project +definition system. + +The dependency system is very straightforward. As explained in both +sdl_projects.lua and sdl_dependency_checkers.lua, a function for checking the +actual dependency support is registered by its name and then referenced to in +the project definitions (such as for SDL2.lua). These definitions are allowed to +do anything necessary to determine whether the appropriate support exists in the +current build environment or not. The possibilities for checking can be seen +specifically in the function for checking DirectX support and any of the Linux +dependency functions using the sdl_check_compile.lua functions. + +As far as building the projects is concerned, the project definitions are +allowed to set configuration key-value pairs which will be translated and placed +inside a generated SDL config header file, similar to the one generated by both +autotools and CMake. + +[3] SUPPORT ON WINDOWS AND VISUAL STUDIO + +Check the Windows README for more information on SDL2 support on Windows and +Visual Studio. Current support exists for Visual Studio 2008, 2010, and 2012. + +[4] SUPPORT ON MAC OS X AND XCODE + +Check the Mac OS X README for more information on SDL2 support on Mac OS X using +Xcode. Current support should exist for Mac OS X 10.6, 10.7, and 10.8 (as +tested, but more may be supported). Supported Xcode versions are 3 and 4. It +supports building for both i686 and x86_64 architectures, as well as support for +universal 32-bit binaries, universal 64-bit binaries, and universal combined +binaries. + +[5] SUPPORT FOR IOS + +EXPERIMENTAL SUPPORT + +Check the iOS README for more information on SDL2 support on iOS using Xcode. +Current support has been tested on the iOS 6 emulators for iPhone and iPad, +using both Xcode 3 and Xcode 4. The iOS project will reference all the Demos +the manual project does. + +[6] SUPPORT FOR LINUX + +EXPERIMENTAL SUPPORT + +Check the Linux README for more information on SDL2 support on Linux. Currently, +only a subset of the Linux dependencies are supported, and they are supported +partially. Linux also builds to a static library instead of a shared library. +The tests run well and as expected. + +[7] SUPPORT FOR MINGW + +Check the MinGW README for more information on SDL2 support on MinGW. Currently, +all of the tests that work using the Visual Studio projects also seem to work +with MinGW, minus DirectX support. DirectX is not inherently supported, but can +be forcibly turned on if the user knows what they are doing. + +[8] SUPPORT FOR CYGWIN + +BROKEN SUPPORT + +Check the Cygwin README for more information on the progress of supporting SDL2 +on Cygwin. + +[9] EXTENDING THE SYSTEM TO NEW PROJECTS OR PLATFORMS + +In order to create a new project, simply create a Lua file and place it within +the projects directory. The meta-build system will automatically include it. +It must contain a SDL_project definition. Projects *must* have source files as +well, otherwise they will be ignored by the meta-build system. There are a +plethora of examples demonstrating how to defined projects, link them to various +dependencies, and to create dependencies. + +Here is an example that creates a new project named foo, it's a ConsoleApp +(which is the default for SDL projects, look at http://industriousone.com/kind +for more information). Its language is C and its source directory is "../test" +(this path is relative to the location of premake4.lua). It's project location +is "tests", which means it will be placed in the ./tests/ folder of whichever +destination directory is set while generating the project (for example, +./VisualC/tests). It is including all the files starting with "foo." from the +"../test" folder. + + SDL_project "foo" + SDL_kind "ConsoleApp" + SDL_language "C" + SDL_sourcedir "../test" + SDL_projectLocation "tests" + SDL_files { "/testrendercopyex.*" } + +Now, we can extend this project slightly: + + SDL_project "foo" + SDL_kind "ConsoleApp" + SDL_notos "ios|cygwin" + SDL_language "C" + SDL_sourcedir "../test" + SDL_projectLocation "tests" + SDL_projectDependencies { "SDL2main", "SDL2test", "SDL2" } + SDL_files { "/foo.*" } + SDL_copy { "icon.bmp", "sample.bmp" } + +We now specified that this application will not work on iOS or Cygwin targets, +so it will be discluded when generating projects for those platforms. We have +also specified that this project depends on 'SDL2main', 'SDL2test', and 'SDL2', +which are other projects that are already defined. We can set the dependency +to any projects the SDL2 meta-build system is aware of. We also have an +interesting SDL_copy directive, which will automatically copy the files +"icon.bmp" and "sample.bmp" from "/test" to the directory of foo's +executable when it's built. + +Let's take a look at another example: + + SDL_project "testgl2" + SDL_kind "ConsoleApp" + SDL_notos "ios|cygwin" + SDL_language "C" + SDL_sourcedir "../test" + SDL_projectLocation "tests" + SDL_projectDependencies { "SDL2main", "SDL2test", "SDL2" } + SDL_defines { "HAVE_OPENGL" } + SDL_dependency "OpenGL" + -- opengl is platform independent + SDL_depfunc "OpenGL" + SDL_files { "/testgl2.*" } + +This is a copy of the testgl2.lua file. Most of this is already familiar, but +there are a few new things to point out. We can set preprocessor definitions by +using the 'SDL_defines' directive. We can also create a dependency for the +project on some varied criteria. For example, testgl2 is obviously dependent on +the presence of the OpenGL library. So, the only way it will include the +"testgl2.*" (testgl2.c/testgl2.h) files is if the dependency function "OpenGL" +returns information regarding the whereabouts of the OpenGL library on the +current system. This function is registered in sdl_dependency_checkers.lua: + + function openGLDep() + print("Checking OpenGL dependencies...") + ... + return { found = foundLib, libDirs = { }, libs = { libname } } + end + ... + SDL_registerDependencyChecker("OpenGL", openGLDep) + +This function is called when it's time to decide whether testgl2 should be +generated or not. openGLDep can use any and all functions to decide whether +OpenGL is supported. + +Dependencies and projects can become much more sophisticate, if necessary. Take +the following example from the SDL2.lua project definition: + + -- DirectX dependency + SDL_dependency "directx" + SDL_os "windows|mingw" + SDL_depfunc "DirectX" + SDL_config + { + ["SDL_AUDIO_DRIVER_DSOUND"] = 1, + ["SDL_AUDIO_DRIVER_XAUDIO2"] = 1, + ["SDL_JOYSTICK_DINPUT"] = 1, + ["SDL_HAPTIC_DINPUT"] = 1, + ["SDL_VIDEO_RENDER_D3D"] = 1 + } + SDL_paths + { + "/audio/directsound/", + "/audio/xaudio2/", + "/render/direct3d/", + -- these two depend on Xinput + "/haptic/windows/", + "/joystick/windows/", + } + +This dependency is, as expected, for DirectX. One thing to note here is even +dependencies can be dependent on an operating system. This dependency will not +even be resolved if SDL2 is being generated on, say, Linux or Mac OS X. Two new +things shown here are 'SDL_config' and 'SDL_paths' directives. SDL_config allows +you to set preprocessor definitions that will be pasted into +SDL_config_premake.h (which acts as a replacement to SDL_config.h when building +the project). This allows for significant flexibility (look around SDL2.lua's +dependencies, especially for Linux). SDL_paths works like SDL_files, except it +includes all .c, .h, and .m files within that directory. The directory is still +relative to the source directory of the project (in this case, /src). + +Finally, dependency checking can be done in a huge variety of ways, ranging +from simply checking for an environmental variable to scanning directories on +Windows. Even more flexibly, the build environment itself can be checked using +functions similar to those provided in CMake to check if a function compiles, +library exists, etc. The following example comes from +sdl_dependency_checkers.lua and is used by the Linux dependency in the SDL2 +project to determine whether the OSS sound system is supported: + + function ossDep() + print("Checking for OSS support...") + if not check_cxx_source_compiles([[ + #include + int main() { int arg = SNDCTL_DSP_SETFRAGMENT; return 0; }]]) + and not check_cxx_source_compiles([[ + #include + int main() { int arg = SNDCTL_DSP_SETFRAGMENT; return 0; }]]) then + print("Warning: OSS unsupported!") + return { found = false } + end + return { found = true } + end + +Notice how it uses 'check_cxx_source_compiles'. There are even more functions +than this to check and, rather than going in detail with them here, I encourage +you to look at the documented functions within ./util/sdl_check_compile.lua. + +In order to support new platforms, start with the minimal configuration template +provided and work off of the initial SDL2 project. You may add additional +dependencies to define other source files specific to that platform (see how +it's done with Windows and Mac OS X), or you can add special dependencies that +rely on dependency functions you may implement yourself (see DirectX and +OpenGL). Dependencies can use the 'SDL_config' directive to specify special +values that can be pasted into the resulting configuration header file upon +generation. + +For more detailed information about the functions supported and how they work, +look at all of the Lua files in the util directory, as well as any of the +example projects in the projects directory to demonstrate how many of these +functions are used. The information above is only a quick subset of the +capabilities of the meta-build system. \ No newline at end of file diff --git a/premake/VisualC/VS2008/SDL.sln b/premake/VisualC/VS2008/SDL.sln new file mode 100755 index 0000000000000..bd0dcbb15c351 --- /dev/null +++ b/premake/VisualC/VS2008/SDL.sln @@ -0,0 +1,487 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testjoystick", "tests\testjoystick\testjoystick.vcproj", "{AE94B4D8-1CF9-E843-8AD0-7C7613F66BEA}" + ProjectSection(ProjectDependencies) = postProject + {10E5D730-F9B4-3541-90B0-5AA85E0256C0} = {10E5D730-F9B4-3541-90B0-5AA85E0256C0} + {CB2E0D61-6692-7844-B1B9-550870AF8286} = {CB2E0D61-6692-7844-B1B9-550870AF8286} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testfilesystem", "tests\testfilesystem\testfilesystem.vcproj", "{67EC9A94-2489-CA44-8E03-3BA3553B8854}" + ProjectSection(ProjectDependencies) = postProject + {10E5D730-F9B4-3541-90B0-5AA85E0256C0} = {10E5D730-F9B4-3541-90B0-5AA85E0256C0} + {CB2E0D61-6692-7844-B1B9-550870AF8286} = {CB2E0D61-6692-7844-B1B9-550870AF8286} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testsem", "tests\testsem\testsem.vcproj", "{4678247F-21BB-EF4F-95F7-D4C23C9CEC21}" + ProjectSection(ProjectDependencies) = postProject + {10E5D730-F9B4-3541-90B0-5AA85E0256C0} = {10E5D730-F9B4-3541-90B0-5AA85E0256C0} + {CB2E0D61-6692-7844-B1B9-550870AF8286} = {CB2E0D61-6692-7844-B1B9-550870AF8286} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testnative", "tests\testnative\testnative.vcproj", "{D81E6981-B313-9A4D-8B92-6E0D61888E17}" + ProjectSection(ProjectDependencies) = postProject + {10E5D730-F9B4-3541-90B0-5AA85E0256C0} = {10E5D730-F9B4-3541-90B0-5AA85E0256C0} + {CB2E0D61-6692-7844-B1B9-550870AF8286} = {CB2E0D61-6692-7844-B1B9-550870AF8286} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testscale", "tests\testscale\testscale.vcproj", "{A7823B01-4361-164B-A2D4-76F2A64E8D29}" + ProjectSection(ProjectDependencies) = postProject + {10E5D730-F9B4-3541-90B0-5AA85E0256C0} = {10E5D730-F9B4-3541-90B0-5AA85E0256C0} + {CED8A756-F422-7B49-94A2-032634A75A8A} = {CED8A756-F422-7B49-94A2-032634A75A8A} + {CB2E0D61-6692-7844-B1B9-550870AF8286} = {CB2E0D61-6692-7844-B1B9-550870AF8286} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testgamecontroller", "tests\testgamecontroller\testgamecontroller.vcproj", "{520C8236-74BC-5D49-B3F0-E48DC59472D6}" + ProjectSection(ProjectDependencies) = postProject + {10E5D730-F9B4-3541-90B0-5AA85E0256C0} = {10E5D730-F9B4-3541-90B0-5AA85E0256C0} + {CB2E0D61-6692-7844-B1B9-550870AF8286} = {CB2E0D61-6692-7844-B1B9-550870AF8286} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testrendertarget", "tests\testrendertarget\testrendertarget.vcproj", "{51DA1764-30F0-7A47-BBF4-0A97880EF162}" + ProjectSection(ProjectDependencies) = postProject + {10E5D730-F9B4-3541-90B0-5AA85E0256C0} = {10E5D730-F9B4-3541-90B0-5AA85E0256C0} + {CED8A756-F422-7B49-94A2-032634A75A8A} = {CED8A756-F422-7B49-94A2-032634A75A8A} + {CB2E0D61-6692-7844-B1B9-550870AF8286} = {CB2E0D61-6692-7844-B1B9-550870AF8286} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testver", "tests\testver\testver.vcproj", "{58633022-DFA5-5045-8BFD-E6D63375CBE6}" + ProjectSection(ProjectDependencies) = postProject + {10E5D730-F9B4-3541-90B0-5AA85E0256C0} = {10E5D730-F9B4-3541-90B0-5AA85E0256C0} + {CB2E0D61-6692-7844-B1B9-550870AF8286} = {CB2E0D61-6692-7844-B1B9-550870AF8286} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testkeys", "tests\testkeys\testkeys.vcproj", "{6C32C77B-89B7-044C-899A-350E2B5E34D9}" + ProjectSection(ProjectDependencies) = postProject + {10E5D730-F9B4-3541-90B0-5AA85E0256C0} = {10E5D730-F9B4-3541-90B0-5AA85E0256C0} + {CB2E0D61-6692-7844-B1B9-550870AF8286} = {CB2E0D61-6692-7844-B1B9-550870AF8286} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testloadso", "tests\testloadso\testloadso.vcproj", "{3744EA3C-502A-6741-A100-0AE7DEB1FB34}" + ProjectSection(ProjectDependencies) = postProject + {10E5D730-F9B4-3541-90B0-5AA85E0256C0} = {10E5D730-F9B4-3541-90B0-5AA85E0256C0} + {CB2E0D61-6692-7844-B1B9-550870AF8286} = {CB2E0D61-6692-7844-B1B9-550870AF8286} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testtimer", "tests\testtimer\testtimer.vcproj", "{CCD36FA9-CC1F-9342-8A31-3635B32BDBAB}" + ProjectSection(ProjectDependencies) = postProject + {10E5D730-F9B4-3541-90B0-5AA85E0256C0} = {10E5D730-F9B4-3541-90B0-5AA85E0256C0} + {CB2E0D61-6692-7844-B1B9-550870AF8286} = {CB2E0D61-6692-7844-B1B9-550870AF8286} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testoverlay2", "tests\testoverlay2\testoverlay2.vcproj", "{076A9E71-1DCB-2D48-AD91-1C8760A9C0B4}" + ProjectSection(ProjectDependencies) = postProject + {10E5D730-F9B4-3541-90B0-5AA85E0256C0} = {10E5D730-F9B4-3541-90B0-5AA85E0256C0} + {CB2E0D61-6692-7844-B1B9-550870AF8286} = {CB2E0D61-6692-7844-B1B9-550870AF8286} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "torturethread", "tests\torturethread\torturethread.vcproj", "{9272D376-B1EC-3746-9B0C-E25D7C4DA8E0}" + ProjectSection(ProjectDependencies) = postProject + {10E5D730-F9B4-3541-90B0-5AA85E0256C0} = {10E5D730-F9B4-3541-90B0-5AA85E0256C0} + {CB2E0D61-6692-7844-B1B9-550870AF8286} = {CB2E0D61-6692-7844-B1B9-550870AF8286} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testplatform", "tests\testplatform\testplatform.vcproj", "{BEB73BB4-60A4-7E4E-B9A4-C1AB0D378AB5}" + ProjectSection(ProjectDependencies) = postProject + {10E5D730-F9B4-3541-90B0-5AA85E0256C0} = {10E5D730-F9B4-3541-90B0-5AA85E0256C0} + {CB2E0D61-6692-7844-B1B9-550870AF8286} = {CB2E0D61-6692-7844-B1B9-550870AF8286} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testgesture", "tests\testgesture\testgesture.vcproj", "{CE632109-B49D-FC43-851F-7BF92A3CDB80}" + ProjectSection(ProjectDependencies) = postProject + {10E5D730-F9B4-3541-90B0-5AA85E0256C0} = {10E5D730-F9B4-3541-90B0-5AA85E0256C0} + {CB2E0D61-6692-7844-B1B9-550870AF8286} = {CB2E0D61-6692-7844-B1B9-550870AF8286} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testaudioinfo", "tests\testaudioinfo\testaudioinfo.vcproj", "{AA54CD08-6B46-BA4B-9161-15D7BED7D354}" + ProjectSection(ProjectDependencies) = postProject + {10E5D730-F9B4-3541-90B0-5AA85E0256C0} = {10E5D730-F9B4-3541-90B0-5AA85E0256C0} + {CB2E0D61-6692-7844-B1B9-550870AF8286} = {CB2E0D61-6692-7844-B1B9-550870AF8286} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "loopwave", "tests\loopwave\loopwave.vcproj", "{12505F46-1148-9B4F-A319-BAB797F2CB7A}" + ProjectSection(ProjectDependencies) = postProject + {10E5D730-F9B4-3541-90B0-5AA85E0256C0} = {10E5D730-F9B4-3541-90B0-5AA85E0256C0} + {CB2E0D61-6692-7844-B1B9-550870AF8286} = {CB2E0D61-6692-7844-B1B9-550870AF8286} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testthread", "tests\testthread\testthread.vcproj", "{50B18708-62EC-DE43-8523-B3832ED628C6}" + ProjectSection(ProjectDependencies) = postProject + {10E5D730-F9B4-3541-90B0-5AA85E0256C0} = {10E5D730-F9B4-3541-90B0-5AA85E0256C0} + {CB2E0D61-6692-7844-B1B9-550870AF8286} = {CB2E0D61-6692-7844-B1B9-550870AF8286} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "teststreaming", "tests\teststreaming\teststreaming.vcproj", "{52D41AEF-9480-9D40-B7C7-EB7EDDE84F5B}" + ProjectSection(ProjectDependencies) = postProject + {10E5D730-F9B4-3541-90B0-5AA85E0256C0} = {10E5D730-F9B4-3541-90B0-5AA85E0256C0} + {CB2E0D61-6692-7844-B1B9-550870AF8286} = {CB2E0D61-6692-7844-B1B9-550870AF8286} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "checkkeys", "tests\checkkeys\checkkeys.vcproj", "{800464F4-3881-A447-9B95-83869584B8BE}" + ProjectSection(ProjectDependencies) = postProject + {10E5D730-F9B4-3541-90B0-5AA85E0256C0} = {10E5D730-F9B4-3541-90B0-5AA85E0256C0} + {CB2E0D61-6692-7844-B1B9-550870AF8286} = {CB2E0D61-6692-7844-B1B9-550870AF8286} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testspriteminimal", "tests\testspriteminimal\testspriteminimal.vcproj", "{D729516D-75F5-F344-86E9-9A4B36EA795F}" + ProjectSection(ProjectDependencies) = postProject + {10E5D730-F9B4-3541-90B0-5AA85E0256C0} = {10E5D730-F9B4-3541-90B0-5AA85E0256C0} + {CB2E0D61-6692-7844-B1B9-550870AF8286} = {CB2E0D61-6692-7844-B1B9-550870AF8286} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testsprite2", "tests\testsprite2\testsprite2.vcproj", "{0E4487F9-8E7C-224F-99CC-F1FEC7124A60}" + ProjectSection(ProjectDependencies) = postProject + {10E5D730-F9B4-3541-90B0-5AA85E0256C0} = {10E5D730-F9B4-3541-90B0-5AA85E0256C0} + {CED8A756-F422-7B49-94A2-032634A75A8A} = {CED8A756-F422-7B49-94A2-032634A75A8A} + {CB2E0D61-6692-7844-B1B9-550870AF8286} = {CB2E0D61-6692-7844-B1B9-550870AF8286} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testgles", "tests\testgles\testgles.vcproj", "{9117F5E0-4F8C-B24F-A581-0095E34D61B0}" + ProjectSection(ProjectDependencies) = postProject + {10E5D730-F9B4-3541-90B0-5AA85E0256C0} = {10E5D730-F9B4-3541-90B0-5AA85E0256C0} + {CED8A756-F422-7B49-94A2-032634A75A8A} = {CED8A756-F422-7B49-94A2-032634A75A8A} + {CB2E0D61-6692-7844-B1B9-550870AF8286} = {CB2E0D61-6692-7844-B1B9-550870AF8286} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testatomic", "tests\testatomic\testatomic.vcproj", "{36D0D004-9F44-0247-825B-61EFD8A0394F}" + ProjectSection(ProjectDependencies) = postProject + {10E5D730-F9B4-3541-90B0-5AA85E0256C0} = {10E5D730-F9B4-3541-90B0-5AA85E0256C0} + {CB2E0D61-6692-7844-B1B9-550870AF8286} = {CB2E0D61-6692-7844-B1B9-550870AF8286} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2test", "SDL2test\SDL2test.vcproj", "{CED8A756-F422-7B49-94A2-032634A75A8A}" + ProjectSection(ProjectDependencies) = postProject + {10E5D730-F9B4-3541-90B0-5AA85E0256C0} = {10E5D730-F9B4-3541-90B0-5AA85E0256C0} + {CB2E0D61-6692-7844-B1B9-550870AF8286} = {CB2E0D61-6692-7844-B1B9-550870AF8286} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testhaptic", "tests\testhaptic\testhaptic.vcproj", "{93670ED4-2FDA-E343-86D3-E730C4B3B784}" + ProjectSection(ProjectDependencies) = postProject + {10E5D730-F9B4-3541-90B0-5AA85E0256C0} = {10E5D730-F9B4-3541-90B0-5AA85E0256C0} + {CB2E0D61-6692-7844-B1B9-550870AF8286} = {CB2E0D61-6692-7844-B1B9-550870AF8286} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testgl2", "tests\testgl2\testgl2.vcproj", "{E3DDC4FA-079A-3548-8207-C972B9FC94D9}" + ProjectSection(ProjectDependencies) = postProject + {10E5D730-F9B4-3541-90B0-5AA85E0256C0} = {10E5D730-F9B4-3541-90B0-5AA85E0256C0} + {CED8A756-F422-7B49-94A2-032634A75A8A} = {CED8A756-F422-7B49-94A2-032634A75A8A} + {CB2E0D61-6692-7844-B1B9-550870AF8286} = {CB2E0D61-6692-7844-B1B9-550870AF8286} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2", "SDL2\SDL2.vcproj", "{CB2E0D61-6692-7844-B1B9-550870AF8286}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testerror", "tests\testerror\testerror.vcproj", "{845E9430-36ED-FF4C-8078-3F9B69DEA8E6}" + ProjectSection(ProjectDependencies) = postProject + {10E5D730-F9B4-3541-90B0-5AA85E0256C0} = {10E5D730-F9B4-3541-90B0-5AA85E0256C0} + {CB2E0D61-6692-7844-B1B9-550870AF8286} = {CB2E0D61-6692-7844-B1B9-550870AF8286} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testrumble", "tests\testrumble\testrumble.vcproj", "{3FAEC7C2-053A-C142-AF02-42FD74DE2295}" + ProjectSection(ProjectDependencies) = postProject + {10E5D730-F9B4-3541-90B0-5AA85E0256C0} = {10E5D730-F9B4-3541-90B0-5AA85E0256C0} + {CB2E0D61-6692-7844-B1B9-550870AF8286} = {CB2E0D61-6692-7844-B1B9-550870AF8286} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testresample", "tests\testresample\testresample.vcproj", "{1CD5DA6F-75A5-5A4A-993B-984FAFBA9CF1}" + ProjectSection(ProjectDependencies) = postProject + {10E5D730-F9B4-3541-90B0-5AA85E0256C0} = {10E5D730-F9B4-3541-90B0-5AA85E0256C0} + {CB2E0D61-6692-7844-B1B9-550870AF8286} = {CB2E0D61-6692-7844-B1B9-550870AF8286} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testrendercopyex", "tests\testrendercopyex\testrendercopyex.vcproj", "{E896D80E-AD87-E54B-939D-82B5A35B70E4}" + ProjectSection(ProjectDependencies) = postProject + {10E5D730-F9B4-3541-90B0-5AA85E0256C0} = {10E5D730-F9B4-3541-90B0-5AA85E0256C0} + {CED8A756-F422-7B49-94A2-032634A75A8A} = {CED8A756-F422-7B49-94A2-032634A75A8A} + {CB2E0D61-6692-7844-B1B9-550870AF8286} = {CB2E0D61-6692-7844-B1B9-550870AF8286} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testpower", "tests\testpower\testpower.vcproj", "{FE5F64B1-85CA-3F41-93FE-C9E96C6D8E11}" + ProjectSection(ProjectDependencies) = postProject + {10E5D730-F9B4-3541-90B0-5AA85E0256C0} = {10E5D730-F9B4-3541-90B0-5AA85E0256C0} + {CB2E0D61-6692-7844-B1B9-550870AF8286} = {CB2E0D61-6692-7844-B1B9-550870AF8286} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testchessboard", "tests\testchessboard\testchessboard.vcproj", "{7024BA1F-5E24-184A-8411-833692EE8EF7}" + ProjectSection(ProjectDependencies) = postProject + {10E5D730-F9B4-3541-90B0-5AA85E0256C0} = {10E5D730-F9B4-3541-90B0-5AA85E0256C0} + {CB2E0D61-6692-7844-B1B9-550870AF8286} = {CB2E0D61-6692-7844-B1B9-550870AF8286} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2main", "SDL2main\SDL2main.vcproj", "{10E5D730-F9B4-3541-90B0-5AA85E0256C0}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testrelative", "tests\testrelative\testrelative.vcproj", "{32F5BC66-EC0C-1042-800A-AE3691202DA0}" + ProjectSection(ProjectDependencies) = postProject + {10E5D730-F9B4-3541-90B0-5AA85E0256C0} = {10E5D730-F9B4-3541-90B0-5AA85E0256C0} + {CED8A756-F422-7B49-94A2-032634A75A8A} = {CED8A756-F422-7B49-94A2-032634A75A8A} + {CB2E0D61-6692-7844-B1B9-550870AF8286} = {CB2E0D61-6692-7844-B1B9-550870AF8286} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testlock", "tests\testlock\testlock.vcproj", "{42F52BDF-E44E-9C46-A315-9AF8DF0C53F4}" + ProjectSection(ProjectDependencies) = postProject + {10E5D730-F9B4-3541-90B0-5AA85E0256C0} = {10E5D730-F9B4-3541-90B0-5AA85E0256C0} + {CB2E0D61-6692-7844-B1B9-550870AF8286} = {CB2E0D61-6692-7844-B1B9-550870AF8286} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testmultiaudio", "tests\testmultiaudio\testmultiaudio.vcproj", "{288BDEFD-9FEC-EB4C-908D-AC7DB41C20A8}" + ProjectSection(ProjectDependencies) = postProject + {10E5D730-F9B4-3541-90B0-5AA85E0256C0} = {10E5D730-F9B4-3541-90B0-5AA85E0256C0} + {CB2E0D61-6692-7844-B1B9-550870AF8286} = {CB2E0D61-6692-7844-B1B9-550870AF8286} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testmessage", "tests\testmessage\testmessage.vcproj", "{24DE8359-B930-CB4A-B91B-415C5EF66827}" + ProjectSection(ProjectDependencies) = postProject + {10E5D730-F9B4-3541-90B0-5AA85E0256C0} = {10E5D730-F9B4-3541-90B0-5AA85E0256C0} + {CB2E0D61-6692-7844-B1B9-550870AF8286} = {CB2E0D61-6692-7844-B1B9-550870AF8286} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testdraw2", "tests\testdraw2\testdraw2.vcproj", "{F28096FA-74ED-1240-A110-D8A925897232}" + ProjectSection(ProjectDependencies) = postProject + {10E5D730-F9B4-3541-90B0-5AA85E0256C0} = {10E5D730-F9B4-3541-90B0-5AA85E0256C0} + {CED8A756-F422-7B49-94A2-032634A75A8A} = {CED8A756-F422-7B49-94A2-032634A75A8A} + {CB2E0D61-6692-7844-B1B9-550870AF8286} = {CB2E0D61-6692-7844-B1B9-550870AF8286} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testshape", "tests\testshape\testshape.vcproj", "{3A964B91-6CDD-F24A-8803-2D3E517FEA68}" + ProjectSection(ProjectDependencies) = postProject + {10E5D730-F9B4-3541-90B0-5AA85E0256C0} = {10E5D730-F9B4-3541-90B0-5AA85E0256C0} + {CB2E0D61-6692-7844-B1B9-550870AF8286} = {CB2E0D61-6692-7844-B1B9-550870AF8286} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testwm2", "tests\testwm2\testwm2.vcproj", "{A88183B1-BB10-0644-AD64-FE6CA99B9D6B}" + ProjectSection(ProjectDependencies) = postProject + {10E5D730-F9B4-3541-90B0-5AA85E0256C0} = {10E5D730-F9B4-3541-90B0-5AA85E0256C0} + {CED8A756-F422-7B49-94A2-032634A75A8A} = {CED8A756-F422-7B49-94A2-032634A75A8A} + {CB2E0D61-6692-7844-B1B9-550870AF8286} = {CB2E0D61-6692-7844-B1B9-550870AF8286} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testautomation", "tests\testautomation\testautomation.vcproj", "{5B19ABEA-4A6E-664E-A996-8BE161B4D155}" + ProjectSection(ProjectDependencies) = postProject + {10E5D730-F9B4-3541-90B0-5AA85E0256C0} = {10E5D730-F9B4-3541-90B0-5AA85E0256C0} + {CED8A756-F422-7B49-94A2-032634A75A8A} = {CED8A756-F422-7B49-94A2-032634A75A8A} + {CB2E0D61-6692-7844-B1B9-550870AF8286} = {CB2E0D61-6692-7844-B1B9-550870AF8286} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testiconv", "tests\testiconv\testiconv.vcproj", "{D853E04D-DF9C-B644-9F50-B201EAAF5E18}" + ProjectSection(ProjectDependencies) = postProject + {10E5D730-F9B4-3541-90B0-5AA85E0256C0} = {10E5D730-F9B4-3541-90B0-5AA85E0256C0} + {CB2E0D61-6692-7844-B1B9-550870AF8286} = {CB2E0D61-6692-7844-B1B9-550870AF8286} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testfile", "tests\testfile\testfile.vcproj", "{CC1D6E91-BDCC-D84A-B6BA-5C986D8DB67C}" + ProjectSection(ProjectDependencies) = postProject + {10E5D730-F9B4-3541-90B0-5AA85E0256C0} = {10E5D730-F9B4-3541-90B0-5AA85E0256C0} + {CB2E0D61-6692-7844-B1B9-550870AF8286} = {CB2E0D61-6692-7844-B1B9-550870AF8286} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testime", "tests\testime\testime.vcproj", "{CC4ED7AD-FD78-B940-8ED1-A0C67638FE19}" + ProjectSection(ProjectDependencies) = postProject + {10E5D730-F9B4-3541-90B0-5AA85E0256C0} = {10E5D730-F9B4-3541-90B0-5AA85E0256C0} + {CED8A756-F422-7B49-94A2-032634A75A8A} = {CED8A756-F422-7B49-94A2-032634A75A8A} + {CB2E0D61-6692-7844-B1B9-550870AF8286} = {CB2E0D61-6692-7844-B1B9-550870AF8286} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testshader", "tests\testshader\testshader.vcproj", "{DB434F64-0D1E-FC46-A116-56DBB68C1869}" + ProjectSection(ProjectDependencies) = postProject + {10E5D730-F9B4-3541-90B0-5AA85E0256C0} = {10E5D730-F9B4-3541-90B0-5AA85E0256C0} + {CB2E0D61-6692-7844-B1B9-550870AF8286} = {CB2E0D61-6692-7844-B1B9-550870AF8286} + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {AE94B4D8-1CF9-E843-8AD0-7C7613F66BEA}.Debug|Win32.ActiveCfg = Debug|Win32 + {AE94B4D8-1CF9-E843-8AD0-7C7613F66BEA}.Debug|Win32.Build.0 = Debug|Win32 + {AE94B4D8-1CF9-E843-8AD0-7C7613F66BEA}.Release|Win32.ActiveCfg = Release|Win32 + {AE94B4D8-1CF9-E843-8AD0-7C7613F66BEA}.Release|Win32.Build.0 = Release|Win32 + {67EC9A94-2489-CA44-8E03-3BA3553B8854}.Debug|Win32.ActiveCfg = Debug|Win32 + {67EC9A94-2489-CA44-8E03-3BA3553B8854}.Debug|Win32.Build.0 = Debug|Win32 + {67EC9A94-2489-CA44-8E03-3BA3553B8854}.Release|Win32.ActiveCfg = Release|Win32 + {67EC9A94-2489-CA44-8E03-3BA3553B8854}.Release|Win32.Build.0 = Release|Win32 + {4678247F-21BB-EF4F-95F7-D4C23C9CEC21}.Debug|Win32.ActiveCfg = Debug|Win32 + {4678247F-21BB-EF4F-95F7-D4C23C9CEC21}.Debug|Win32.Build.0 = Debug|Win32 + {4678247F-21BB-EF4F-95F7-D4C23C9CEC21}.Release|Win32.ActiveCfg = Release|Win32 + {4678247F-21BB-EF4F-95F7-D4C23C9CEC21}.Release|Win32.Build.0 = Release|Win32 + {D81E6981-B313-9A4D-8B92-6E0D61888E17}.Debug|Win32.ActiveCfg = Debug|Win32 + {D81E6981-B313-9A4D-8B92-6E0D61888E17}.Debug|Win32.Build.0 = Debug|Win32 + {D81E6981-B313-9A4D-8B92-6E0D61888E17}.Release|Win32.ActiveCfg = Release|Win32 + {D81E6981-B313-9A4D-8B92-6E0D61888E17}.Release|Win32.Build.0 = Release|Win32 + {A7823B01-4361-164B-A2D4-76F2A64E8D29}.Debug|Win32.ActiveCfg = Debug|Win32 + {A7823B01-4361-164B-A2D4-76F2A64E8D29}.Debug|Win32.Build.0 = Debug|Win32 + {A7823B01-4361-164B-A2D4-76F2A64E8D29}.Release|Win32.ActiveCfg = Release|Win32 + {A7823B01-4361-164B-A2D4-76F2A64E8D29}.Release|Win32.Build.0 = Release|Win32 + {520C8236-74BC-5D49-B3F0-E48DC59472D6}.Debug|Win32.ActiveCfg = Debug|Win32 + {520C8236-74BC-5D49-B3F0-E48DC59472D6}.Debug|Win32.Build.0 = Debug|Win32 + {520C8236-74BC-5D49-B3F0-E48DC59472D6}.Release|Win32.ActiveCfg = Release|Win32 + {520C8236-74BC-5D49-B3F0-E48DC59472D6}.Release|Win32.Build.0 = Release|Win32 + {51DA1764-30F0-7A47-BBF4-0A97880EF162}.Debug|Win32.ActiveCfg = Debug|Win32 + {51DA1764-30F0-7A47-BBF4-0A97880EF162}.Debug|Win32.Build.0 = Debug|Win32 + {51DA1764-30F0-7A47-BBF4-0A97880EF162}.Release|Win32.ActiveCfg = Release|Win32 + {51DA1764-30F0-7A47-BBF4-0A97880EF162}.Release|Win32.Build.0 = Release|Win32 + {58633022-DFA5-5045-8BFD-E6D63375CBE6}.Debug|Win32.ActiveCfg = Debug|Win32 + {58633022-DFA5-5045-8BFD-E6D63375CBE6}.Debug|Win32.Build.0 = Debug|Win32 + {58633022-DFA5-5045-8BFD-E6D63375CBE6}.Release|Win32.ActiveCfg = Release|Win32 + {58633022-DFA5-5045-8BFD-E6D63375CBE6}.Release|Win32.Build.0 = Release|Win32 + {6C32C77B-89B7-044C-899A-350E2B5E34D9}.Debug|Win32.ActiveCfg = Debug|Win32 + {6C32C77B-89B7-044C-899A-350E2B5E34D9}.Debug|Win32.Build.0 = Debug|Win32 + {6C32C77B-89B7-044C-899A-350E2B5E34D9}.Release|Win32.ActiveCfg = Release|Win32 + {6C32C77B-89B7-044C-899A-350E2B5E34D9}.Release|Win32.Build.0 = Release|Win32 + {3744EA3C-502A-6741-A100-0AE7DEB1FB34}.Debug|Win32.ActiveCfg = Debug|Win32 + {3744EA3C-502A-6741-A100-0AE7DEB1FB34}.Debug|Win32.Build.0 = Debug|Win32 + {3744EA3C-502A-6741-A100-0AE7DEB1FB34}.Release|Win32.ActiveCfg = Release|Win32 + {3744EA3C-502A-6741-A100-0AE7DEB1FB34}.Release|Win32.Build.0 = Release|Win32 + {CCD36FA9-CC1F-9342-8A31-3635B32BDBAB}.Debug|Win32.ActiveCfg = Debug|Win32 + {CCD36FA9-CC1F-9342-8A31-3635B32BDBAB}.Debug|Win32.Build.0 = Debug|Win32 + {CCD36FA9-CC1F-9342-8A31-3635B32BDBAB}.Release|Win32.ActiveCfg = Release|Win32 + {CCD36FA9-CC1F-9342-8A31-3635B32BDBAB}.Release|Win32.Build.0 = Release|Win32 + {076A9E71-1DCB-2D48-AD91-1C8760A9C0B4}.Debug|Win32.ActiveCfg = Debug|Win32 + {076A9E71-1DCB-2D48-AD91-1C8760A9C0B4}.Debug|Win32.Build.0 = Debug|Win32 + {076A9E71-1DCB-2D48-AD91-1C8760A9C0B4}.Release|Win32.ActiveCfg = Release|Win32 + {076A9E71-1DCB-2D48-AD91-1C8760A9C0B4}.Release|Win32.Build.0 = Release|Win32 + {9272D376-B1EC-3746-9B0C-E25D7C4DA8E0}.Debug|Win32.ActiveCfg = Debug|Win32 + {9272D376-B1EC-3746-9B0C-E25D7C4DA8E0}.Debug|Win32.Build.0 = Debug|Win32 + {9272D376-B1EC-3746-9B0C-E25D7C4DA8E0}.Release|Win32.ActiveCfg = Release|Win32 + {9272D376-B1EC-3746-9B0C-E25D7C4DA8E0}.Release|Win32.Build.0 = Release|Win32 + {BEB73BB4-60A4-7E4E-B9A4-C1AB0D378AB5}.Debug|Win32.ActiveCfg = Debug|Win32 + {BEB73BB4-60A4-7E4E-B9A4-C1AB0D378AB5}.Debug|Win32.Build.0 = Debug|Win32 + {BEB73BB4-60A4-7E4E-B9A4-C1AB0D378AB5}.Release|Win32.ActiveCfg = Release|Win32 + {BEB73BB4-60A4-7E4E-B9A4-C1AB0D378AB5}.Release|Win32.Build.0 = Release|Win32 + {CE632109-B49D-FC43-851F-7BF92A3CDB80}.Debug|Win32.ActiveCfg = Debug|Win32 + {CE632109-B49D-FC43-851F-7BF92A3CDB80}.Debug|Win32.Build.0 = Debug|Win32 + {CE632109-B49D-FC43-851F-7BF92A3CDB80}.Release|Win32.ActiveCfg = Release|Win32 + {CE632109-B49D-FC43-851F-7BF92A3CDB80}.Release|Win32.Build.0 = Release|Win32 + {AA54CD08-6B46-BA4B-9161-15D7BED7D354}.Debug|Win32.ActiveCfg = Debug|Win32 + {AA54CD08-6B46-BA4B-9161-15D7BED7D354}.Debug|Win32.Build.0 = Debug|Win32 + {AA54CD08-6B46-BA4B-9161-15D7BED7D354}.Release|Win32.ActiveCfg = Release|Win32 + {AA54CD08-6B46-BA4B-9161-15D7BED7D354}.Release|Win32.Build.0 = Release|Win32 + {12505F46-1148-9B4F-A319-BAB797F2CB7A}.Debug|Win32.ActiveCfg = Debug|Win32 + {12505F46-1148-9B4F-A319-BAB797F2CB7A}.Debug|Win32.Build.0 = Debug|Win32 + {12505F46-1148-9B4F-A319-BAB797F2CB7A}.Release|Win32.ActiveCfg = Release|Win32 + {12505F46-1148-9B4F-A319-BAB797F2CB7A}.Release|Win32.Build.0 = Release|Win32 + {50B18708-62EC-DE43-8523-B3832ED628C6}.Debug|Win32.ActiveCfg = Debug|Win32 + {50B18708-62EC-DE43-8523-B3832ED628C6}.Debug|Win32.Build.0 = Debug|Win32 + {50B18708-62EC-DE43-8523-B3832ED628C6}.Release|Win32.ActiveCfg = Release|Win32 + {50B18708-62EC-DE43-8523-B3832ED628C6}.Release|Win32.Build.0 = Release|Win32 + {52D41AEF-9480-9D40-B7C7-EB7EDDE84F5B}.Debug|Win32.ActiveCfg = Debug|Win32 + {52D41AEF-9480-9D40-B7C7-EB7EDDE84F5B}.Debug|Win32.Build.0 = Debug|Win32 + {52D41AEF-9480-9D40-B7C7-EB7EDDE84F5B}.Release|Win32.ActiveCfg = Release|Win32 + {52D41AEF-9480-9D40-B7C7-EB7EDDE84F5B}.Release|Win32.Build.0 = Release|Win32 + {800464F4-3881-A447-9B95-83869584B8BE}.Debug|Win32.ActiveCfg = Debug|Win32 + {800464F4-3881-A447-9B95-83869584B8BE}.Debug|Win32.Build.0 = Debug|Win32 + {800464F4-3881-A447-9B95-83869584B8BE}.Release|Win32.ActiveCfg = Release|Win32 + {800464F4-3881-A447-9B95-83869584B8BE}.Release|Win32.Build.0 = Release|Win32 + {D729516D-75F5-F344-86E9-9A4B36EA795F}.Debug|Win32.ActiveCfg = Debug|Win32 + {D729516D-75F5-F344-86E9-9A4B36EA795F}.Debug|Win32.Build.0 = Debug|Win32 + {D729516D-75F5-F344-86E9-9A4B36EA795F}.Release|Win32.ActiveCfg = Release|Win32 + {D729516D-75F5-F344-86E9-9A4B36EA795F}.Release|Win32.Build.0 = Release|Win32 + {0E4487F9-8E7C-224F-99CC-F1FEC7124A60}.Debug|Win32.ActiveCfg = Debug|Win32 + {0E4487F9-8E7C-224F-99CC-F1FEC7124A60}.Debug|Win32.Build.0 = Debug|Win32 + {0E4487F9-8E7C-224F-99CC-F1FEC7124A60}.Release|Win32.ActiveCfg = Release|Win32 + {0E4487F9-8E7C-224F-99CC-F1FEC7124A60}.Release|Win32.Build.0 = Release|Win32 + {9117F5E0-4F8C-B24F-A581-0095E34D61B0}.Debug|Win32.ActiveCfg = Debug|Win32 + {9117F5E0-4F8C-B24F-A581-0095E34D61B0}.Debug|Win32.Build.0 = Debug|Win32 + {9117F5E0-4F8C-B24F-A581-0095E34D61B0}.Release|Win32.ActiveCfg = Release|Win32 + {9117F5E0-4F8C-B24F-A581-0095E34D61B0}.Release|Win32.Build.0 = Release|Win32 + {36D0D004-9F44-0247-825B-61EFD8A0394F}.Debug|Win32.ActiveCfg = Debug|Win32 + {36D0D004-9F44-0247-825B-61EFD8A0394F}.Debug|Win32.Build.0 = Debug|Win32 + {36D0D004-9F44-0247-825B-61EFD8A0394F}.Release|Win32.ActiveCfg = Release|Win32 + {36D0D004-9F44-0247-825B-61EFD8A0394F}.Release|Win32.Build.0 = Release|Win32 + {CED8A756-F422-7B49-94A2-032634A75A8A}.Debug|Win32.ActiveCfg = Debug|Win32 + {CED8A756-F422-7B49-94A2-032634A75A8A}.Debug|Win32.Build.0 = Debug|Win32 + {CED8A756-F422-7B49-94A2-032634A75A8A}.Release|Win32.ActiveCfg = Release|Win32 + {CED8A756-F422-7B49-94A2-032634A75A8A}.Release|Win32.Build.0 = Release|Win32 + {93670ED4-2FDA-E343-86D3-E730C4B3B784}.Debug|Win32.ActiveCfg = Debug|Win32 + {93670ED4-2FDA-E343-86D3-E730C4B3B784}.Debug|Win32.Build.0 = Debug|Win32 + {93670ED4-2FDA-E343-86D3-E730C4B3B784}.Release|Win32.ActiveCfg = Release|Win32 + {93670ED4-2FDA-E343-86D3-E730C4B3B784}.Release|Win32.Build.0 = Release|Win32 + {E3DDC4FA-079A-3548-8207-C972B9FC94D9}.Debug|Win32.ActiveCfg = Debug|Win32 + {E3DDC4FA-079A-3548-8207-C972B9FC94D9}.Debug|Win32.Build.0 = Debug|Win32 + {E3DDC4FA-079A-3548-8207-C972B9FC94D9}.Release|Win32.ActiveCfg = Release|Win32 + {E3DDC4FA-079A-3548-8207-C972B9FC94D9}.Release|Win32.Build.0 = Release|Win32 + {CB2E0D61-6692-7844-B1B9-550870AF8286}.Debug|Win32.ActiveCfg = Debug|Win32 + {CB2E0D61-6692-7844-B1B9-550870AF8286}.Debug|Win32.Build.0 = Debug|Win32 + {CB2E0D61-6692-7844-B1B9-550870AF8286}.Release|Win32.ActiveCfg = Release|Win32 + {CB2E0D61-6692-7844-B1B9-550870AF8286}.Release|Win32.Build.0 = Release|Win32 + {845E9430-36ED-FF4C-8078-3F9B69DEA8E6}.Debug|Win32.ActiveCfg = Debug|Win32 + {845E9430-36ED-FF4C-8078-3F9B69DEA8E6}.Debug|Win32.Build.0 = Debug|Win32 + {845E9430-36ED-FF4C-8078-3F9B69DEA8E6}.Release|Win32.ActiveCfg = Release|Win32 + {845E9430-36ED-FF4C-8078-3F9B69DEA8E6}.Release|Win32.Build.0 = Release|Win32 + {3FAEC7C2-053A-C142-AF02-42FD74DE2295}.Debug|Win32.ActiveCfg = Debug|Win32 + {3FAEC7C2-053A-C142-AF02-42FD74DE2295}.Debug|Win32.Build.0 = Debug|Win32 + {3FAEC7C2-053A-C142-AF02-42FD74DE2295}.Release|Win32.ActiveCfg = Release|Win32 + {3FAEC7C2-053A-C142-AF02-42FD74DE2295}.Release|Win32.Build.0 = Release|Win32 + {1CD5DA6F-75A5-5A4A-993B-984FAFBA9CF1}.Debug|Win32.ActiveCfg = Debug|Win32 + {1CD5DA6F-75A5-5A4A-993B-984FAFBA9CF1}.Debug|Win32.Build.0 = Debug|Win32 + {1CD5DA6F-75A5-5A4A-993B-984FAFBA9CF1}.Release|Win32.ActiveCfg = Release|Win32 + {1CD5DA6F-75A5-5A4A-993B-984FAFBA9CF1}.Release|Win32.Build.0 = Release|Win32 + {E896D80E-AD87-E54B-939D-82B5A35B70E4}.Debug|Win32.ActiveCfg = Debug|Win32 + {E896D80E-AD87-E54B-939D-82B5A35B70E4}.Debug|Win32.Build.0 = Debug|Win32 + {E896D80E-AD87-E54B-939D-82B5A35B70E4}.Release|Win32.ActiveCfg = Release|Win32 + {E896D80E-AD87-E54B-939D-82B5A35B70E4}.Release|Win32.Build.0 = Release|Win32 + {FE5F64B1-85CA-3F41-93FE-C9E96C6D8E11}.Debug|Win32.ActiveCfg = Debug|Win32 + {FE5F64B1-85CA-3F41-93FE-C9E96C6D8E11}.Debug|Win32.Build.0 = Debug|Win32 + {FE5F64B1-85CA-3F41-93FE-C9E96C6D8E11}.Release|Win32.ActiveCfg = Release|Win32 + {FE5F64B1-85CA-3F41-93FE-C9E96C6D8E11}.Release|Win32.Build.0 = Release|Win32 + {7024BA1F-5E24-184A-8411-833692EE8EF7}.Debug|Win32.ActiveCfg = Debug|Win32 + {7024BA1F-5E24-184A-8411-833692EE8EF7}.Debug|Win32.Build.0 = Debug|Win32 + {7024BA1F-5E24-184A-8411-833692EE8EF7}.Release|Win32.ActiveCfg = Release|Win32 + {7024BA1F-5E24-184A-8411-833692EE8EF7}.Release|Win32.Build.0 = Release|Win32 + {10E5D730-F9B4-3541-90B0-5AA85E0256C0}.Debug|Win32.ActiveCfg = Debug|Win32 + {10E5D730-F9B4-3541-90B0-5AA85E0256C0}.Debug|Win32.Build.0 = Debug|Win32 + {10E5D730-F9B4-3541-90B0-5AA85E0256C0}.Release|Win32.ActiveCfg = Release|Win32 + {10E5D730-F9B4-3541-90B0-5AA85E0256C0}.Release|Win32.Build.0 = Release|Win32 + {32F5BC66-EC0C-1042-800A-AE3691202DA0}.Debug|Win32.ActiveCfg = Debug|Win32 + {32F5BC66-EC0C-1042-800A-AE3691202DA0}.Debug|Win32.Build.0 = Debug|Win32 + {32F5BC66-EC0C-1042-800A-AE3691202DA0}.Release|Win32.ActiveCfg = Release|Win32 + {32F5BC66-EC0C-1042-800A-AE3691202DA0}.Release|Win32.Build.0 = Release|Win32 + {42F52BDF-E44E-9C46-A315-9AF8DF0C53F4}.Debug|Win32.ActiveCfg = Debug|Win32 + {42F52BDF-E44E-9C46-A315-9AF8DF0C53F4}.Debug|Win32.Build.0 = Debug|Win32 + {42F52BDF-E44E-9C46-A315-9AF8DF0C53F4}.Release|Win32.ActiveCfg = Release|Win32 + {42F52BDF-E44E-9C46-A315-9AF8DF0C53F4}.Release|Win32.Build.0 = Release|Win32 + {288BDEFD-9FEC-EB4C-908D-AC7DB41C20A8}.Debug|Win32.ActiveCfg = Debug|Win32 + {288BDEFD-9FEC-EB4C-908D-AC7DB41C20A8}.Debug|Win32.Build.0 = Debug|Win32 + {288BDEFD-9FEC-EB4C-908D-AC7DB41C20A8}.Release|Win32.ActiveCfg = Release|Win32 + {288BDEFD-9FEC-EB4C-908D-AC7DB41C20A8}.Release|Win32.Build.0 = Release|Win32 + {24DE8359-B930-CB4A-B91B-415C5EF66827}.Debug|Win32.ActiveCfg = Debug|Win32 + {24DE8359-B930-CB4A-B91B-415C5EF66827}.Debug|Win32.Build.0 = Debug|Win32 + {24DE8359-B930-CB4A-B91B-415C5EF66827}.Release|Win32.ActiveCfg = Release|Win32 + {24DE8359-B930-CB4A-B91B-415C5EF66827}.Release|Win32.Build.0 = Release|Win32 + {F28096FA-74ED-1240-A110-D8A925897232}.Debug|Win32.ActiveCfg = Debug|Win32 + {F28096FA-74ED-1240-A110-D8A925897232}.Debug|Win32.Build.0 = Debug|Win32 + {F28096FA-74ED-1240-A110-D8A925897232}.Release|Win32.ActiveCfg = Release|Win32 + {F28096FA-74ED-1240-A110-D8A925897232}.Release|Win32.Build.0 = Release|Win32 + {3A964B91-6CDD-F24A-8803-2D3E517FEA68}.Debug|Win32.ActiveCfg = Debug|Win32 + {3A964B91-6CDD-F24A-8803-2D3E517FEA68}.Debug|Win32.Build.0 = Debug|Win32 + {3A964B91-6CDD-F24A-8803-2D3E517FEA68}.Release|Win32.ActiveCfg = Release|Win32 + {3A964B91-6CDD-F24A-8803-2D3E517FEA68}.Release|Win32.Build.0 = Release|Win32 + {A88183B1-BB10-0644-AD64-FE6CA99B9D6B}.Debug|Win32.ActiveCfg = Debug|Win32 + {A88183B1-BB10-0644-AD64-FE6CA99B9D6B}.Debug|Win32.Build.0 = Debug|Win32 + {A88183B1-BB10-0644-AD64-FE6CA99B9D6B}.Release|Win32.ActiveCfg = Release|Win32 + {A88183B1-BB10-0644-AD64-FE6CA99B9D6B}.Release|Win32.Build.0 = Release|Win32 + {5B19ABEA-4A6E-664E-A996-8BE161B4D155}.Debug|Win32.ActiveCfg = Debug|Win32 + {5B19ABEA-4A6E-664E-A996-8BE161B4D155}.Debug|Win32.Build.0 = Debug|Win32 + {5B19ABEA-4A6E-664E-A996-8BE161B4D155}.Release|Win32.ActiveCfg = Release|Win32 + {5B19ABEA-4A6E-664E-A996-8BE161B4D155}.Release|Win32.Build.0 = Release|Win32 + {D853E04D-DF9C-B644-9F50-B201EAAF5E18}.Debug|Win32.ActiveCfg = Debug|Win32 + {D853E04D-DF9C-B644-9F50-B201EAAF5E18}.Debug|Win32.Build.0 = Debug|Win32 + {D853E04D-DF9C-B644-9F50-B201EAAF5E18}.Release|Win32.ActiveCfg = Release|Win32 + {D853E04D-DF9C-B644-9F50-B201EAAF5E18}.Release|Win32.Build.0 = Release|Win32 + {CC1D6E91-BDCC-D84A-B6BA-5C986D8DB67C}.Debug|Win32.ActiveCfg = Debug|Win32 + {CC1D6E91-BDCC-D84A-B6BA-5C986D8DB67C}.Debug|Win32.Build.0 = Debug|Win32 + {CC1D6E91-BDCC-D84A-B6BA-5C986D8DB67C}.Release|Win32.ActiveCfg = Release|Win32 + {CC1D6E91-BDCC-D84A-B6BA-5C986D8DB67C}.Release|Win32.Build.0 = Release|Win32 + {CC4ED7AD-FD78-B940-8ED1-A0C67638FE19}.Debug|Win32.ActiveCfg = Debug|Win32 + {CC4ED7AD-FD78-B940-8ED1-A0C67638FE19}.Debug|Win32.Build.0 = Debug|Win32 + {CC4ED7AD-FD78-B940-8ED1-A0C67638FE19}.Release|Win32.ActiveCfg = Release|Win32 + {CC4ED7AD-FD78-B940-8ED1-A0C67638FE19}.Release|Win32.Build.0 = Release|Win32 + {DB434F64-0D1E-FC46-A116-56DBB68C1869}.Debug|Win32.ActiveCfg = Debug|Win32 + {DB434F64-0D1E-FC46-A116-56DBB68C1869}.Debug|Win32.Build.0 = Debug|Win32 + {DB434F64-0D1E-FC46-A116-56DBB68C1869}.Release|Win32.ActiveCfg = Release|Win32 + {DB434F64-0D1E-FC46-A116-56DBB68C1869}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/premake/VisualC/VS2008/SDL2/SDL2.vcproj b/premake/VisualC/VS2008/SDL2/SDL2.vcproj new file mode 100755 index 0000000000000..20ff3d60515fc --- /dev/null +++ b/premake/VisualC/VS2008/SDL2/SDL2.vcproj @@ -0,0 +1,3004 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/premake/VisualC/VS2008/SDL2main/SDL2main.vcproj b/premake/VisualC/VS2008/SDL2main/SDL2main.vcproj new file mode 100755 index 0000000000000..2a1cd616b4109 --- /dev/null +++ b/premake/VisualC/VS2008/SDL2main/SDL2main.vcproj @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/premake/VisualC/VS2008/SDL2test/SDL2test.vcproj b/premake/VisualC/VS2008/SDL2test/SDL2test.vcproj new file mode 100755 index 0000000000000..ca3acaa88a350 --- /dev/null +++ b/premake/VisualC/VS2008/SDL2test/SDL2test.vcproj @@ -0,0 +1,254 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/premake/VisualC/VS2008/SDL_config_premake.h b/premake/VisualC/VS2008/SDL_config_premake.h new file mode 100755 index 0000000000000..be158a4f00a52 --- /dev/null +++ b/premake/VisualC/VS2008/SDL_config_premake.h @@ -0,0 +1,202 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2013 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef _SDL_config_windows_h +#define _SDL_config_windows_h + +#include "SDL_platform.h" + +/* This is a set of defines to configure the SDL features */ + +#if !defined(_STDINT_H_) && (!defined(HAVE_STDINT_H) || !_HAVE_STDINT_H) +#if defined(__GNUC__) || defined(__DMC__) || defined(__WATCOMC__) +#define HAVE_STDINT_H 1 +#elif defined(_MSC_VER) +typedef signed __int8 int8_t; +typedef unsigned __int8 uint8_t; +typedef signed __int16 int16_t; +typedef unsigned __int16 uint16_t; +typedef signed __int32 int32_t; +typedef unsigned __int32 uint32_t; +typedef signed __int64 int64_t; +typedef unsigned __int64 uint64_t; +#ifndef _UINTPTR_T_DEFINED +#ifdef _WIN64 +typedef unsigned __int64 uintptr_t; +#else +typedef unsigned int uintptr_t; +#endif +#define _UINTPTR_T_DEFINED +#endif +/* Older Visual C++ headers don't have the Win64-compatible typedefs... */ +#if ((_MSC_VER <= 1200) && (!defined(DWORD_PTR))) +#define DWORD_PTR DWORD +#endif +#if ((_MSC_VER <= 1200) && (!defined(LONG_PTR))) +#define LONG_PTR LONG +#endif +#else /* !__GNUC__ && !_MSC_VER */ +typedef signed char int8_t; +typedef unsigned char uint8_t; +typedef signed short int16_t; +typedef unsigned short uint16_t; +typedef signed int int32_t; +typedef unsigned int uint32_t; +typedef signed long long int64_t; +typedef unsigned long long uint64_t; +#ifndef _SIZE_T_DEFINED_ +#define _SIZE_T_DEFINED_ +typedef unsigned int size_t; +#endif +typedef unsigned int uintptr_t; +#endif /* __GNUC__ || _MSC_VER */ +#endif /* !_STDINT_H_ && !HAVE_STDINT_H */ + +#ifdef _WIN64 +# define SIZEOF_VOIDP 8 +#else +# define SIZEOF_VOIDP 4 +#endif + +/* This is disabled by default to avoid C runtime dependencies and manifest requirements */ +#ifdef HAVE_LIBC +/* Useful headers */ +#define HAVE_STDIO_H 1 +#define STDC_HEADERS 1 +#define HAVE_STRING_H 1 +#define HAVE_CTYPE_H 1 +#define HAVE_MATH_H 1 +#define HAVE_SIGNAL_H 1 + +/* C library functions */ +#define HAVE_MALLOC 1 +#define HAVE_CALLOC 1 +#define HAVE_REALLOC 1 +#define HAVE_FREE 1 +#define HAVE_ALLOCA 1 +#define HAVE_QSORT 1 +#define HAVE_ABS 1 +#define HAVE_MEMSET 1 +#define HAVE_MEMCPY 1 +#define HAVE_MEMMOVE 1 +#define HAVE_MEMCMP 1 +#define HAVE_STRLEN 1 +#define HAVE__STRREV 1 +#define HAVE__STRUPR 1 +#define HAVE__STRLWR 1 +#define HAVE_STRCHR 1 +#define HAVE_STRRCHR 1 +#define HAVE_STRSTR 1 +#define HAVE_ITOA 1 +#define HAVE__LTOA 1 +#define HAVE__ULTOA 1 +#define HAVE_STRTOL 1 +#define HAVE_STRTOUL 1 +#define HAVE_STRTOLL 1 +#define HAVE_STRTOD 1 +#define HAVE_ATOI 1 +#define HAVE_ATOF 1 +#define HAVE_STRCMP 1 +#define HAVE_STRNCMP 1 +#define HAVE__STRICMP 1 +#define HAVE__STRNICMP 1 +#define HAVE_SSCANF 1 +#define HAVE_M_PI 1 +#define HAVE_ATAN 1 +#define HAVE_ATAN2 1 +#define HAVE_CEIL 1 +#define HAVE_COPYSIGN 1 +#define HAVE_COS 1 +#define HAVE_COSF 1 +#define HAVE_FABS 1 +#define HAVE_FLOOR 1 +#define HAVE_LOG 1 +#define HAVE_POW 1 +#define HAVE_SCALBN 1 +#define HAVE_SIN 1 +#define HAVE_SINF 1 +#define HAVE_SQRT 1 +#else +#define HAVE_STDARG_H 1 +#define HAVE_STDDEF_H 1 +#endif + +#ifndef SDL_AUDIO_DRIVER_DUMMY +#define SDL_AUDIO_DRIVER_DUMMY 1 +#endif +#ifndef SDL_AUDIO_DRIVER_DISK +#define SDL_AUDIO_DRIVER_DISK 1 +#endif +#ifndef SDL_VIDEO_DRIVER_DUMMY +#define SDL_VIDEO_DRIVER_DUMMY 1 +#endif +#ifndef SDL_TIMER_WINDOWS +#define SDL_TIMER_WINDOWS 1 +#endif +#ifndef SDL_AUDIO_DRIVER_WINMM +#define SDL_AUDIO_DRIVER_WINMM 1 +#endif +#ifndef SDL_FILESYSTEM_WINDOWS +#define SDL_FILESYSTEM_WINDOWS 1 +#endif +#ifndef SDL_POWER_WINDOWS +#define SDL_POWER_WINDOWS 1 +#endif +#ifndef SDL_LOADSO_WINDOWS +#define SDL_LOADSO_WINDOWS 1 +#endif +#ifndef SDL_VIDEO_DRIVER_WINDOWS +#define SDL_VIDEO_DRIVER_WINDOWS 1 +#endif +#ifndef SDL_THREAD_WINDOWS +#define SDL_THREAD_WINDOWS 1 +#endif +#ifndef SDL_AUDIO_DRIVER_DSOUND +#define SDL_AUDIO_DRIVER_DSOUND 1 +#endif +#ifndef SDL_JOYSTICK_DINPUT +#define SDL_JOYSTICK_DINPUT 1 +#endif +#ifndef SDL_VIDEO_RENDER_D3D +#define SDL_VIDEO_RENDER_D3D 1 +#endif +#ifndef SDL_HAPTIC_DINPUT +#define SDL_HAPTIC_DINPUT 1 +#endif +#ifndef SDL_AUDIO_DRIVER_XAUDIO2 +#define SDL_AUDIO_DRIVER_XAUDIO2 1 +#endif +#ifndef SDL_VIDEO_RENDER_OGL +#define SDL_VIDEO_RENDER_OGL 1 +#endif +#ifndef SDL_VIDEO_OPENGL +#define SDL_VIDEO_OPENGL 1 +#endif +#ifndef SDL_VIDEO_OPENGL_WGL +#define SDL_VIDEO_OPENGL_WGL 1 +#endif + +/* Enable assembly routines (Win64 doesn't have inline asm) */ +#ifndef _WIN64 +#define SDL_ASSEMBLY_ROUTINES 1 +#endif + +#endif /* _SDL_config_windows_h */ diff --git a/premake/VisualC/VS2008/tests/checkkeys/checkkeys.vcproj b/premake/VisualC/VS2008/tests/checkkeys/checkkeys.vcproj new file mode 100755 index 0000000000000..b7fcec99cb7d6 --- /dev/null +++ b/premake/VisualC/VS2008/tests/checkkeys/checkkeys.vcproj @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/premake/VisualC/VS2008/tests/loopwave/loopwave.vcproj b/premake/VisualC/VS2008/tests/loopwave/loopwave.vcproj new file mode 100755 index 0000000000000..25ff149100f40 --- /dev/null +++ b/premake/VisualC/VS2008/tests/loopwave/loopwave.vcproj @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/premake/VisualC/VS2008/tests/testatomic/testatomic.vcproj b/premake/VisualC/VS2008/tests/testatomic/testatomic.vcproj new file mode 100755 index 0000000000000..125944afcd508 --- /dev/null +++ b/premake/VisualC/VS2008/tests/testatomic/testatomic.vcproj @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/premake/VisualC/VS2008/tests/testaudioinfo/testaudioinfo.vcproj b/premake/VisualC/VS2008/tests/testaudioinfo/testaudioinfo.vcproj new file mode 100755 index 0000000000000..40916a581536e --- /dev/null +++ b/premake/VisualC/VS2008/tests/testaudioinfo/testaudioinfo.vcproj @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/premake/VisualC/VS2008/tests/testautomation/testautomation.vcproj b/premake/VisualC/VS2008/tests/testautomation/testautomation.vcproj new file mode 100755 index 0000000000000..0f3f94db91ba9 --- /dev/null +++ b/premake/VisualC/VS2008/tests/testautomation/testautomation.vcproj @@ -0,0 +1,280 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/premake/VisualC/VS2008/tests/testchessboard/testchessboard.vcproj b/premake/VisualC/VS2008/tests/testchessboard/testchessboard.vcproj new file mode 100755 index 0000000000000..5471af45ffd8f --- /dev/null +++ b/premake/VisualC/VS2008/tests/testchessboard/testchessboard.vcproj @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/premake/VisualC/VS2008/tests/testdraw2/testdraw2.vcproj b/premake/VisualC/VS2008/tests/testdraw2/testdraw2.vcproj new file mode 100755 index 0000000000000..825a857083185 --- /dev/null +++ b/premake/VisualC/VS2008/tests/testdraw2/testdraw2.vcproj @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/premake/VisualC/VS2008/tests/testerror/testerror.vcproj b/premake/VisualC/VS2008/tests/testerror/testerror.vcproj new file mode 100755 index 0000000000000..5e44ad45be4b4 --- /dev/null +++ b/premake/VisualC/VS2008/tests/testerror/testerror.vcproj @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/premake/VisualC/VS2008/tests/testfile/testfile.vcproj b/premake/VisualC/VS2008/tests/testfile/testfile.vcproj new file mode 100755 index 0000000000000..79e86b69fc7af --- /dev/null +++ b/premake/VisualC/VS2008/tests/testfile/testfile.vcproj @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/premake/VisualC/VS2008/tests/testfilesystem/testfilesystem.vcproj b/premake/VisualC/VS2008/tests/testfilesystem/testfilesystem.vcproj new file mode 100755 index 0000000000000..986bb419a83fd --- /dev/null +++ b/premake/VisualC/VS2008/tests/testfilesystem/testfilesystem.vcproj @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/premake/VisualC/VS2008/tests/testgamecontroller/testgamecontroller.vcproj b/premake/VisualC/VS2008/tests/testgamecontroller/testgamecontroller.vcproj new file mode 100755 index 0000000000000..9fba8c49a9b65 --- /dev/null +++ b/premake/VisualC/VS2008/tests/testgamecontroller/testgamecontroller.vcproj @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/premake/VisualC/VS2008/tests/testgesture/testgesture.vcproj b/premake/VisualC/VS2008/tests/testgesture/testgesture.vcproj new file mode 100755 index 0000000000000..f717a9a737c83 --- /dev/null +++ b/premake/VisualC/VS2008/tests/testgesture/testgesture.vcproj @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/premake/VisualC/VS2008/tests/testgl2/testgl2.vcproj b/premake/VisualC/VS2008/tests/testgl2/testgl2.vcproj new file mode 100755 index 0000000000000..638d29d8e6fb7 --- /dev/null +++ b/premake/VisualC/VS2008/tests/testgl2/testgl2.vcproj @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/premake/VisualC/VS2008/tests/testgles/testgles.vcproj b/premake/VisualC/VS2008/tests/testgles/testgles.vcproj new file mode 100755 index 0000000000000..4eec648d97ef5 --- /dev/null +++ b/premake/VisualC/VS2008/tests/testgles/testgles.vcproj @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/premake/VisualC/VS2008/tests/testhaptic/testhaptic.vcproj b/premake/VisualC/VS2008/tests/testhaptic/testhaptic.vcproj new file mode 100755 index 0000000000000..b969f766340b3 --- /dev/null +++ b/premake/VisualC/VS2008/tests/testhaptic/testhaptic.vcproj @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/premake/VisualC/VS2008/tests/testiconv/testiconv.vcproj b/premake/VisualC/VS2008/tests/testiconv/testiconv.vcproj new file mode 100755 index 0000000000000..c3d0179f6fe6c --- /dev/null +++ b/premake/VisualC/VS2008/tests/testiconv/testiconv.vcproj @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/premake/VisualC/VS2008/tests/testime/testime.vcproj b/premake/VisualC/VS2008/tests/testime/testime.vcproj new file mode 100755 index 0000000000000..7075a1c48caaa --- /dev/null +++ b/premake/VisualC/VS2008/tests/testime/testime.vcproj @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/premake/VisualC/VS2008/tests/testjoystick/testjoystick.vcproj b/premake/VisualC/VS2008/tests/testjoystick/testjoystick.vcproj new file mode 100755 index 0000000000000..9215d052d2185 --- /dev/null +++ b/premake/VisualC/VS2008/tests/testjoystick/testjoystick.vcproj @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/premake/VisualC/VS2008/tests/testkeys/testkeys.vcproj b/premake/VisualC/VS2008/tests/testkeys/testkeys.vcproj new file mode 100755 index 0000000000000..aed4baa14b2fc --- /dev/null +++ b/premake/VisualC/VS2008/tests/testkeys/testkeys.vcproj @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/premake/VisualC/VS2008/tests/testloadso/testloadso.vcproj b/premake/VisualC/VS2008/tests/testloadso/testloadso.vcproj new file mode 100755 index 0000000000000..3c97a72133ff8 --- /dev/null +++ b/premake/VisualC/VS2008/tests/testloadso/testloadso.vcproj @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/premake/VisualC/VS2008/tests/testlock/testlock.vcproj b/premake/VisualC/VS2008/tests/testlock/testlock.vcproj new file mode 100755 index 0000000000000..fb6c4d45dfb90 --- /dev/null +++ b/premake/VisualC/VS2008/tests/testlock/testlock.vcproj @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/premake/VisualC/VS2008/tests/testmessage/testmessage.vcproj b/premake/VisualC/VS2008/tests/testmessage/testmessage.vcproj new file mode 100755 index 0000000000000..9f11fc5046f3e --- /dev/null +++ b/premake/VisualC/VS2008/tests/testmessage/testmessage.vcproj @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/premake/VisualC/VS2008/tests/testmultiaudio/testmultiaudio.vcproj b/premake/VisualC/VS2008/tests/testmultiaudio/testmultiaudio.vcproj new file mode 100755 index 0000000000000..cea612876b360 --- /dev/null +++ b/premake/VisualC/VS2008/tests/testmultiaudio/testmultiaudio.vcproj @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/premake/VisualC/VS2008/tests/testnative/testnative.vcproj b/premake/VisualC/VS2008/tests/testnative/testnative.vcproj new file mode 100755 index 0000000000000..086b2f957188a --- /dev/null +++ b/premake/VisualC/VS2008/tests/testnative/testnative.vcproj @@ -0,0 +1,216 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/premake/VisualC/VS2008/tests/testoverlay2/testoverlay2.vcproj b/premake/VisualC/VS2008/tests/testoverlay2/testoverlay2.vcproj new file mode 100755 index 0000000000000..a8c569476896a --- /dev/null +++ b/premake/VisualC/VS2008/tests/testoverlay2/testoverlay2.vcproj @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/premake/VisualC/VS2008/tests/testplatform/testplatform.vcproj b/premake/VisualC/VS2008/tests/testplatform/testplatform.vcproj new file mode 100755 index 0000000000000..cc2c547270889 --- /dev/null +++ b/premake/VisualC/VS2008/tests/testplatform/testplatform.vcproj @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/premake/VisualC/VS2008/tests/testpower/testpower.vcproj b/premake/VisualC/VS2008/tests/testpower/testpower.vcproj new file mode 100755 index 0000000000000..6aaccf8f03ca0 --- /dev/null +++ b/premake/VisualC/VS2008/tests/testpower/testpower.vcproj @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/premake/VisualC/VS2008/tests/testrelative/testrelative.vcproj b/premake/VisualC/VS2008/tests/testrelative/testrelative.vcproj new file mode 100755 index 0000000000000..d0f2164f881aa --- /dev/null +++ b/premake/VisualC/VS2008/tests/testrelative/testrelative.vcproj @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/premake/VisualC/VS2008/tests/testrendercopyex/testrendercopyex.vcproj b/premake/VisualC/VS2008/tests/testrendercopyex/testrendercopyex.vcproj new file mode 100755 index 0000000000000..8875013411172 --- /dev/null +++ b/premake/VisualC/VS2008/tests/testrendercopyex/testrendercopyex.vcproj @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/premake/VisualC/VS2008/tests/testrendertarget/testrendertarget.vcproj b/premake/VisualC/VS2008/tests/testrendertarget/testrendertarget.vcproj new file mode 100755 index 0000000000000..4bfa7610d1ede --- /dev/null +++ b/premake/VisualC/VS2008/tests/testrendertarget/testrendertarget.vcproj @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/premake/VisualC/VS2008/tests/testresample/testresample.vcproj b/premake/VisualC/VS2008/tests/testresample/testresample.vcproj new file mode 100755 index 0000000000000..ed0449637c29a --- /dev/null +++ b/premake/VisualC/VS2008/tests/testresample/testresample.vcproj @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/premake/VisualC/VS2008/tests/testrumble/testrumble.vcproj b/premake/VisualC/VS2008/tests/testrumble/testrumble.vcproj new file mode 100755 index 0000000000000..7fbff94e9a75b --- /dev/null +++ b/premake/VisualC/VS2008/tests/testrumble/testrumble.vcproj @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/premake/VisualC/VS2008/tests/testscale/testscale.vcproj b/premake/VisualC/VS2008/tests/testscale/testscale.vcproj new file mode 100755 index 0000000000000..ce2569490f2f4 --- /dev/null +++ b/premake/VisualC/VS2008/tests/testscale/testscale.vcproj @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/premake/VisualC/VS2008/tests/testsem/testsem.vcproj b/premake/VisualC/VS2008/tests/testsem/testsem.vcproj new file mode 100755 index 0000000000000..df4c25ec5edc4 --- /dev/null +++ b/premake/VisualC/VS2008/tests/testsem/testsem.vcproj @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/premake/VisualC/VS2008/tests/testshader/testshader.vcproj b/premake/VisualC/VS2008/tests/testshader/testshader.vcproj new file mode 100755 index 0000000000000..c003b897d4017 --- /dev/null +++ b/premake/VisualC/VS2008/tests/testshader/testshader.vcproj @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/premake/VisualC/VS2008/tests/testshape/testshape.vcproj b/premake/VisualC/VS2008/tests/testshape/testshape.vcproj new file mode 100755 index 0000000000000..6d33fd2e114bb --- /dev/null +++ b/premake/VisualC/VS2008/tests/testshape/testshape.vcproj @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/premake/VisualC/VS2008/tests/testsprite2/testsprite2.vcproj b/premake/VisualC/VS2008/tests/testsprite2/testsprite2.vcproj new file mode 100755 index 0000000000000..dc952d3b4bec2 --- /dev/null +++ b/premake/VisualC/VS2008/tests/testsprite2/testsprite2.vcproj @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/premake/VisualC/VS2008/tests/testspriteminimal/testspriteminimal.vcproj b/premake/VisualC/VS2008/tests/testspriteminimal/testspriteminimal.vcproj new file mode 100755 index 0000000000000..526385a158029 --- /dev/null +++ b/premake/VisualC/VS2008/tests/testspriteminimal/testspriteminimal.vcproj @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/premake/VisualC/VS2008/tests/teststreaming/teststreaming.vcproj b/premake/VisualC/VS2008/tests/teststreaming/teststreaming.vcproj new file mode 100755 index 0000000000000..d0447d4c9a43f --- /dev/null +++ b/premake/VisualC/VS2008/tests/teststreaming/teststreaming.vcproj @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/premake/VisualC/VS2008/tests/testthread/testthread.vcproj b/premake/VisualC/VS2008/tests/testthread/testthread.vcproj new file mode 100755 index 0000000000000..8b325054b0b11 --- /dev/null +++ b/premake/VisualC/VS2008/tests/testthread/testthread.vcproj @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/premake/VisualC/VS2008/tests/testtimer/testtimer.vcproj b/premake/VisualC/VS2008/tests/testtimer/testtimer.vcproj new file mode 100755 index 0000000000000..a59a8c2fed7de --- /dev/null +++ b/premake/VisualC/VS2008/tests/testtimer/testtimer.vcproj @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/premake/VisualC/VS2008/tests/testver/testver.vcproj b/premake/VisualC/VS2008/tests/testver/testver.vcproj new file mode 100755 index 0000000000000..ec988697dae1a --- /dev/null +++ b/premake/VisualC/VS2008/tests/testver/testver.vcproj @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/premake/VisualC/VS2008/tests/testwm2/testwm2.vcproj b/premake/VisualC/VS2008/tests/testwm2/testwm2.vcproj new file mode 100755 index 0000000000000..5c23a2677eef5 --- /dev/null +++ b/premake/VisualC/VS2008/tests/testwm2/testwm2.vcproj @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/premake/VisualC/VS2008/tests/torturethread/torturethread.vcproj b/premake/VisualC/VS2008/tests/torturethread/torturethread.vcproj new file mode 100755 index 0000000000000..30924a49a9f86 --- /dev/null +++ b/premake/VisualC/VS2008/tests/torturethread/torturethread.vcproj @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/premake/VisualC/VS2010/SDL.sln b/premake/VisualC/VS2010/SDL.sln new file mode 100755 index 0000000000000..58e4a33570297 --- /dev/null +++ b/premake/VisualC/VS2010/SDL.sln @@ -0,0 +1,487 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testjoystick", "tests\testjoystick\testjoystick.vcxproj", "{901EBC4D-735F-D84D-9C4A-AC25E87CAD4A}" + ProjectSection(ProjectDependencies) = postProject + {859DF586-61E5-5749-AE72-0B8CC7C817D7} = {859DF586-61E5-5749-AE72-0B8CC7C817D7} + {A114B178-D2BB-CF42-A049-034C4C50596F} = {A114B178-D2BB-CF42-A049-034C4C50596F} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testfilesystem", "tests\testfilesystem\testfilesystem.vcxproj", "{9B14A8B6-4187-1A41-9664-CAB1C3919CC7}" + ProjectSection(ProjectDependencies) = postProject + {859DF586-61E5-5749-AE72-0B8CC7C817D7} = {859DF586-61E5-5749-AE72-0B8CC7C817D7} + {A114B178-D2BB-CF42-A049-034C4C50596F} = {A114B178-D2BB-CF42-A049-034C4C50596F} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testsem", "tests\testsem\testsem.vcxproj", "{C73D37B5-71B8-E842-BBBE-278EBB71D245}" + ProjectSection(ProjectDependencies) = postProject + {859DF586-61E5-5749-AE72-0B8CC7C817D7} = {859DF586-61E5-5749-AE72-0B8CC7C817D7} + {A114B178-D2BB-CF42-A049-034C4C50596F} = {A114B178-D2BB-CF42-A049-034C4C50596F} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testnative", "tests\testnative\testnative.vcxproj", "{6BD39C1C-1CC2-E946-AE2C-420BADA7F6CB}" + ProjectSection(ProjectDependencies) = postProject + {859DF586-61E5-5749-AE72-0B8CC7C817D7} = {859DF586-61E5-5749-AE72-0B8CC7C817D7} + {A114B178-D2BB-CF42-A049-034C4C50596F} = {A114B178-D2BB-CF42-A049-034C4C50596F} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testscale", "tests\testscale\testscale.vcxproj", "{48F4500B-46C3-CD46-942E-59482243211C}" + ProjectSection(ProjectDependencies) = postProject + {859DF586-61E5-5749-AE72-0B8CC7C817D7} = {859DF586-61E5-5749-AE72-0B8CC7C817D7} + {72D8473C-9ED1-6041-877A-B45552307F3A} = {72D8473C-9ED1-6041-877A-B45552307F3A} + {A114B178-D2BB-CF42-A049-034C4C50596F} = {A114B178-D2BB-CF42-A049-034C4C50596F} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testgamecontroller", "tests\testgamecontroller\testgamecontroller.vcxproj", "{2953CE1F-0332-784D-B123-BDA28C15776A}" + ProjectSection(ProjectDependencies) = postProject + {859DF586-61E5-5749-AE72-0B8CC7C817D7} = {859DF586-61E5-5749-AE72-0B8CC7C817D7} + {A114B178-D2BB-CF42-A049-034C4C50596F} = {A114B178-D2BB-CF42-A049-034C4C50596F} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testrendertarget", "tests\testrendertarget\testrendertarget.vcxproj", "{81602E3E-93FC-2740-B4BD-BC80BCD715D6}" + ProjectSection(ProjectDependencies) = postProject + {859DF586-61E5-5749-AE72-0B8CC7C817D7} = {859DF586-61E5-5749-AE72-0B8CC7C817D7} + {72D8473C-9ED1-6041-877A-B45552307F3A} = {72D8473C-9ED1-6041-877A-B45552307F3A} + {A114B178-D2BB-CF42-A049-034C4C50596F} = {A114B178-D2BB-CF42-A049-034C4C50596F} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testver", "tests\testver\testver.vcxproj", "{8FB2FB8C-FA28-D146-A767-0CB74E35643C}" + ProjectSection(ProjectDependencies) = postProject + {859DF586-61E5-5749-AE72-0B8CC7C817D7} = {859DF586-61E5-5749-AE72-0B8CC7C817D7} + {A114B178-D2BB-CF42-A049-034C4C50596F} = {A114B178-D2BB-CF42-A049-034C4C50596F} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testkeys", "tests\testkeys\testkeys.vcxproj", "{068A675B-F525-714D-BA49-636E8A4B0564}" + ProjectSection(ProjectDependencies) = postProject + {859DF586-61E5-5749-AE72-0B8CC7C817D7} = {859DF586-61E5-5749-AE72-0B8CC7C817D7} + {A114B178-D2BB-CF42-A049-034C4C50596F} = {A114B178-D2BB-CF42-A049-034C4C50596F} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testloadso", "tests\testloadso\testloadso.vcxproj", "{63154644-828E-7F40-8024-6EEDF62436D1}" + ProjectSection(ProjectDependencies) = postProject + {859DF586-61E5-5749-AE72-0B8CC7C817D7} = {859DF586-61E5-5749-AE72-0B8CC7C817D7} + {A114B178-D2BB-CF42-A049-034C4C50596F} = {A114B178-D2BB-CF42-A049-034C4C50596F} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testtimer", "tests\testtimer\testtimer.vcxproj", "{F999361E-C0B3-ED43-975D-26D9A9CF5DDE}" + ProjectSection(ProjectDependencies) = postProject + {859DF586-61E5-5749-AE72-0B8CC7C817D7} = {859DF586-61E5-5749-AE72-0B8CC7C817D7} + {A114B178-D2BB-CF42-A049-034C4C50596F} = {A114B178-D2BB-CF42-A049-034C4C50596F} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testoverlay2", "tests\testoverlay2\testoverlay2.vcxproj", "{858D4FF2-0931-604C-853C-017D94C11F66}" + ProjectSection(ProjectDependencies) = postProject + {859DF586-61E5-5749-AE72-0B8CC7C817D7} = {859DF586-61E5-5749-AE72-0B8CC7C817D7} + {A114B178-D2BB-CF42-A049-034C4C50596F} = {A114B178-D2BB-CF42-A049-034C4C50596F} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "torturethread", "tests\torturethread\torturethread.vcxproj", "{B4CE343D-65CF-FB45-9505-D1D9EE28CE57}" + ProjectSection(ProjectDependencies) = postProject + {859DF586-61E5-5749-AE72-0B8CC7C817D7} = {859DF586-61E5-5749-AE72-0B8CC7C817D7} + {A114B178-D2BB-CF42-A049-034C4C50596F} = {A114B178-D2BB-CF42-A049-034C4C50596F} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testplatform", "tests\testplatform\testplatform.vcxproj", "{5BFF537B-8785-D14E-9C7D-25B693477FB8}" + ProjectSection(ProjectDependencies) = postProject + {859DF586-61E5-5749-AE72-0B8CC7C817D7} = {859DF586-61E5-5749-AE72-0B8CC7C817D7} + {A114B178-D2BB-CF42-A049-034C4C50596F} = {A114B178-D2BB-CF42-A049-034C4C50596F} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testgesture", "tests\testgesture\testgesture.vcxproj", "{1F585797-33BC-3643-B0E3-9BD491AF4852}" + ProjectSection(ProjectDependencies) = postProject + {859DF586-61E5-5749-AE72-0B8CC7C817D7} = {859DF586-61E5-5749-AE72-0B8CC7C817D7} + {A114B178-D2BB-CF42-A049-034C4C50596F} = {A114B178-D2BB-CF42-A049-034C4C50596F} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testaudioinfo", "tests\testaudioinfo\testaudioinfo.vcxproj", "{0C330D16-E8D8-EA43-9E18-BE3E51FE1347}" + ProjectSection(ProjectDependencies) = postProject + {859DF586-61E5-5749-AE72-0B8CC7C817D7} = {859DF586-61E5-5749-AE72-0B8CC7C817D7} + {A114B178-D2BB-CF42-A049-034C4C50596F} = {A114B178-D2BB-CF42-A049-034C4C50596F} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "loopwave", "tests\loopwave\loopwave.vcxproj", "{5C06F962-7A40-964D-B60B-A919A32EE303}" + ProjectSection(ProjectDependencies) = postProject + {859DF586-61E5-5749-AE72-0B8CC7C817D7} = {859DF586-61E5-5749-AE72-0B8CC7C817D7} + {A114B178-D2BB-CF42-A049-034C4C50596F} = {A114B178-D2BB-CF42-A049-034C4C50596F} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testthread", "tests\testthread\testthread.vcxproj", "{0DD89D04-2A0A-2348-A5E1-12A7AEE4200D}" + ProjectSection(ProjectDependencies) = postProject + {859DF586-61E5-5749-AE72-0B8CC7C817D7} = {859DF586-61E5-5749-AE72-0B8CC7C817D7} + {A114B178-D2BB-CF42-A049-034C4C50596F} = {A114B178-D2BB-CF42-A049-034C4C50596F} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "teststreaming", "tests\teststreaming\teststreaming.vcxproj", "{4076F581-39F7-4144-A5B8-5FDBDB3B128B}" + ProjectSection(ProjectDependencies) = postProject + {859DF586-61E5-5749-AE72-0B8CC7C817D7} = {859DF586-61E5-5749-AE72-0B8CC7C817D7} + {A114B178-D2BB-CF42-A049-034C4C50596F} = {A114B178-D2BB-CF42-A049-034C4C50596F} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "checkkeys", "tests\checkkeys\checkkeys.vcxproj", "{9BC42316-43AF-B84A-9B45-133C29C126A0}" + ProjectSection(ProjectDependencies) = postProject + {859DF586-61E5-5749-AE72-0B8CC7C817D7} = {859DF586-61E5-5749-AE72-0B8CC7C817D7} + {A114B178-D2BB-CF42-A049-034C4C50596F} = {A114B178-D2BB-CF42-A049-034C4C50596F} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testspriteminimal", "tests\testspriteminimal\testspriteminimal.vcxproj", "{262FA1CF-740E-2746-B72E-B0330B9F1337}" + ProjectSection(ProjectDependencies) = postProject + {859DF586-61E5-5749-AE72-0B8CC7C817D7} = {859DF586-61E5-5749-AE72-0B8CC7C817D7} + {A114B178-D2BB-CF42-A049-034C4C50596F} = {A114B178-D2BB-CF42-A049-034C4C50596F} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testsprite2", "tests\testsprite2\testsprite2.vcxproj", "{DEB1CD6C-9CCF-4B44-A29F-3067FDB33838}" + ProjectSection(ProjectDependencies) = postProject + {859DF586-61E5-5749-AE72-0B8CC7C817D7} = {859DF586-61E5-5749-AE72-0B8CC7C817D7} + {72D8473C-9ED1-6041-877A-B45552307F3A} = {72D8473C-9ED1-6041-877A-B45552307F3A} + {A114B178-D2BB-CF42-A049-034C4C50596F} = {A114B178-D2BB-CF42-A049-034C4C50596F} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testgles", "tests\testgles\testgles.vcxproj", "{9937576E-DD2A-0B41-9D97-9D3CF1478963}" + ProjectSection(ProjectDependencies) = postProject + {859DF586-61E5-5749-AE72-0B8CC7C817D7} = {859DF586-61E5-5749-AE72-0B8CC7C817D7} + {72D8473C-9ED1-6041-877A-B45552307F3A} = {72D8473C-9ED1-6041-877A-B45552307F3A} + {A114B178-D2BB-CF42-A049-034C4C50596F} = {A114B178-D2BB-CF42-A049-034C4C50596F} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testatomic", "tests\testatomic\testatomic.vcxproj", "{A7E1C8B0-F3FA-E740-ABEF-DA22747D8B7F}" + ProjectSection(ProjectDependencies) = postProject + {859DF586-61E5-5749-AE72-0B8CC7C817D7} = {859DF586-61E5-5749-AE72-0B8CC7C817D7} + {A114B178-D2BB-CF42-A049-034C4C50596F} = {A114B178-D2BB-CF42-A049-034C4C50596F} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2test", "SDL2test\SDL2test.vcxproj", "{72D8473C-9ED1-6041-877A-B45552307F3A}" + ProjectSection(ProjectDependencies) = postProject + {859DF586-61E5-5749-AE72-0B8CC7C817D7} = {859DF586-61E5-5749-AE72-0B8CC7C817D7} + {A114B178-D2BB-CF42-A049-034C4C50596F} = {A114B178-D2BB-CF42-A049-034C4C50596F} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testhaptic", "tests\testhaptic\testhaptic.vcxproj", "{4BCD98A1-3F51-3244-8D09-C510E02D045B}" + ProjectSection(ProjectDependencies) = postProject + {859DF586-61E5-5749-AE72-0B8CC7C817D7} = {859DF586-61E5-5749-AE72-0B8CC7C817D7} + {A114B178-D2BB-CF42-A049-034C4C50596F} = {A114B178-D2BB-CF42-A049-034C4C50596F} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testgl2", "tests\testgl2\testgl2.vcxproj", "{05B569B7-8C6D-FE47-8AFB-3F5C9B6EC7F4}" + ProjectSection(ProjectDependencies) = postProject + {859DF586-61E5-5749-AE72-0B8CC7C817D7} = {859DF586-61E5-5749-AE72-0B8CC7C817D7} + {72D8473C-9ED1-6041-877A-B45552307F3A} = {72D8473C-9ED1-6041-877A-B45552307F3A} + {A114B178-D2BB-CF42-A049-034C4C50596F} = {A114B178-D2BB-CF42-A049-034C4C50596F} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2", "SDL2\SDL2.vcxproj", "{A114B178-D2BB-CF42-A049-034C4C50596F}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testerror", "tests\testerror\testerror.vcxproj", "{0232629C-6FEC-A541-9EF6-CD4560D95327}" + ProjectSection(ProjectDependencies) = postProject + {859DF586-61E5-5749-AE72-0B8CC7C817D7} = {859DF586-61E5-5749-AE72-0B8CC7C817D7} + {A114B178-D2BB-CF42-A049-034C4C50596F} = {A114B178-D2BB-CF42-A049-034C4C50596F} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testrumble", "tests\testrumble\testrumble.vcxproj", "{C9ABF4FE-1D59-7A41-80B6-87C169B9FCB5}" + ProjectSection(ProjectDependencies) = postProject + {859DF586-61E5-5749-AE72-0B8CC7C817D7} = {859DF586-61E5-5749-AE72-0B8CC7C817D7} + {A114B178-D2BB-CF42-A049-034C4C50596F} = {A114B178-D2BB-CF42-A049-034C4C50596F} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testresample", "tests\testresample\testresample.vcxproj", "{60819005-330D-4948-AFC5-173584DCBA84}" + ProjectSection(ProjectDependencies) = postProject + {859DF586-61E5-5749-AE72-0B8CC7C817D7} = {859DF586-61E5-5749-AE72-0B8CC7C817D7} + {A114B178-D2BB-CF42-A049-034C4C50596F} = {A114B178-D2BB-CF42-A049-034C4C50596F} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testrendercopyex", "tests\testrendercopyex\testrendercopyex.vcxproj", "{4F5CC446-A806-DD43-A1C4-73C4C37D1895}" + ProjectSection(ProjectDependencies) = postProject + {859DF586-61E5-5749-AE72-0B8CC7C817D7} = {859DF586-61E5-5749-AE72-0B8CC7C817D7} + {72D8473C-9ED1-6041-877A-B45552307F3A} = {72D8473C-9ED1-6041-877A-B45552307F3A} + {A114B178-D2BB-CF42-A049-034C4C50596F} = {A114B178-D2BB-CF42-A049-034C4C50596F} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testpower", "tests\testpower\testpower.vcxproj", "{0DD0AD84-3DE8-2F49-B31F-4B8F41864A89}" + ProjectSection(ProjectDependencies) = postProject + {859DF586-61E5-5749-AE72-0B8CC7C817D7} = {859DF586-61E5-5749-AE72-0B8CC7C817D7} + {A114B178-D2BB-CF42-A049-034C4C50596F} = {A114B178-D2BB-CF42-A049-034C4C50596F} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testchessboard", "tests\testchessboard\testchessboard.vcxproj", "{541CA31C-B613-A346-AFEB-FE0614CEF765}" + ProjectSection(ProjectDependencies) = postProject + {859DF586-61E5-5749-AE72-0B8CC7C817D7} = {859DF586-61E5-5749-AE72-0B8CC7C817D7} + {A114B178-D2BB-CF42-A049-034C4C50596F} = {A114B178-D2BB-CF42-A049-034C4C50596F} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2main", "SDL2main\SDL2main.vcxproj", "{859DF586-61E5-5749-AE72-0B8CC7C817D7}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testrelative", "tests\testrelative\testrelative.vcxproj", "{49527EB7-9A96-9743-BAE3-CA18CAD2FC54}" + ProjectSection(ProjectDependencies) = postProject + {859DF586-61E5-5749-AE72-0B8CC7C817D7} = {859DF586-61E5-5749-AE72-0B8CC7C817D7} + {72D8473C-9ED1-6041-877A-B45552307F3A} = {72D8473C-9ED1-6041-877A-B45552307F3A} + {A114B178-D2BB-CF42-A049-034C4C50596F} = {A114B178-D2BB-CF42-A049-034C4C50596F} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testlock", "tests\testlock\testlock.vcxproj", "{F0F3C9F2-2F1A-C842-9757-40DC67F4219D}" + ProjectSection(ProjectDependencies) = postProject + {859DF586-61E5-5749-AE72-0B8CC7C817D7} = {859DF586-61E5-5749-AE72-0B8CC7C817D7} + {A114B178-D2BB-CF42-A049-034C4C50596F} = {A114B178-D2BB-CF42-A049-034C4C50596F} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testmultiaudio", "tests\testmultiaudio\testmultiaudio.vcxproj", "{E1DD1D32-C9B7-B14B-BD41-EA39A0A39F6D}" + ProjectSection(ProjectDependencies) = postProject + {859DF586-61E5-5749-AE72-0B8CC7C817D7} = {859DF586-61E5-5749-AE72-0B8CC7C817D7} + {A114B178-D2BB-CF42-A049-034C4C50596F} = {A114B178-D2BB-CF42-A049-034C4C50596F} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testmessage", "tests\testmessage\testmessage.vcxproj", "{48910BD1-FBB6-5D47-A5D2-4EA2E5D91F72}" + ProjectSection(ProjectDependencies) = postProject + {859DF586-61E5-5749-AE72-0B8CC7C817D7} = {859DF586-61E5-5749-AE72-0B8CC7C817D7} + {A114B178-D2BB-CF42-A049-034C4C50596F} = {A114B178-D2BB-CF42-A049-034C4C50596F} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testdraw2", "tests\testdraw2\testdraw2.vcxproj", "{296FF26A-1980-3B44-ADDA-EAE72242B4B0}" + ProjectSection(ProjectDependencies) = postProject + {859DF586-61E5-5749-AE72-0B8CC7C817D7} = {859DF586-61E5-5749-AE72-0B8CC7C817D7} + {72D8473C-9ED1-6041-877A-B45552307F3A} = {72D8473C-9ED1-6041-877A-B45552307F3A} + {A114B178-D2BB-CF42-A049-034C4C50596F} = {A114B178-D2BB-CF42-A049-034C4C50596F} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testshape", "tests\testshape\testshape.vcxproj", "{14B1A8FE-44AC-C04E-BFDE-7AC1D72E37DA}" + ProjectSection(ProjectDependencies) = postProject + {859DF586-61E5-5749-AE72-0B8CC7C817D7} = {859DF586-61E5-5749-AE72-0B8CC7C817D7} + {A114B178-D2BB-CF42-A049-034C4C50596F} = {A114B178-D2BB-CF42-A049-034C4C50596F} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testwm2", "tests\testwm2\testwm2.vcxproj", "{41F4E0C8-9F68-7E4E-BEF1-AB5279264003}" + ProjectSection(ProjectDependencies) = postProject + {859DF586-61E5-5749-AE72-0B8CC7C817D7} = {859DF586-61E5-5749-AE72-0B8CC7C817D7} + {72D8473C-9ED1-6041-877A-B45552307F3A} = {72D8473C-9ED1-6041-877A-B45552307F3A} + {A114B178-D2BB-CF42-A049-034C4C50596F} = {A114B178-D2BB-CF42-A049-034C4C50596F} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testautomation", "tests\testautomation\testautomation.vcxproj", "{1F19F525-2F86-1949-94DD-639C09639634}" + ProjectSection(ProjectDependencies) = postProject + {859DF586-61E5-5749-AE72-0B8CC7C817D7} = {859DF586-61E5-5749-AE72-0B8CC7C817D7} + {72D8473C-9ED1-6041-877A-B45552307F3A} = {72D8473C-9ED1-6041-877A-B45552307F3A} + {A114B178-D2BB-CF42-A049-034C4C50596F} = {A114B178-D2BB-CF42-A049-034C4C50596F} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testiconv", "tests\testiconv\testiconv.vcxproj", "{B2DD9042-38C1-6140-852D-ACEF33E172F6}" + ProjectSection(ProjectDependencies) = postProject + {859DF586-61E5-5749-AE72-0B8CC7C817D7} = {859DF586-61E5-5749-AE72-0B8CC7C817D7} + {A114B178-D2BB-CF42-A049-034C4C50596F} = {A114B178-D2BB-CF42-A049-034C4C50596F} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testfile", "tests\testfile\testfile.vcxproj", "{D19A3C76-2C05-2643-8D45-E06B9268EDE2}" + ProjectSection(ProjectDependencies) = postProject + {859DF586-61E5-5749-AE72-0B8CC7C817D7} = {859DF586-61E5-5749-AE72-0B8CC7C817D7} + {A114B178-D2BB-CF42-A049-034C4C50596F} = {A114B178-D2BB-CF42-A049-034C4C50596F} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testime", "tests\testime\testime.vcxproj", "{9EA7D8D7-6D83-0549-92E8-226A16D1BC51}" + ProjectSection(ProjectDependencies) = postProject + {859DF586-61E5-5749-AE72-0B8CC7C817D7} = {859DF586-61E5-5749-AE72-0B8CC7C817D7} + {72D8473C-9ED1-6041-877A-B45552307F3A} = {72D8473C-9ED1-6041-877A-B45552307F3A} + {A114B178-D2BB-CF42-A049-034C4C50596F} = {A114B178-D2BB-CF42-A049-034C4C50596F} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testshader", "tests\testshader\testshader.vcxproj", "{1246F077-C27B-F346-9D88-4CD5AA23CCB4}" + ProjectSection(ProjectDependencies) = postProject + {859DF586-61E5-5749-AE72-0B8CC7C817D7} = {859DF586-61E5-5749-AE72-0B8CC7C817D7} + {A114B178-D2BB-CF42-A049-034C4C50596F} = {A114B178-D2BB-CF42-A049-034C4C50596F} + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {901EBC4D-735F-D84D-9C4A-AC25E87CAD4A}.Debug|Win32.ActiveCfg = Debug|Win32 + {901EBC4D-735F-D84D-9C4A-AC25E87CAD4A}.Debug|Win32.Build.0 = Debug|Win32 + {901EBC4D-735F-D84D-9C4A-AC25E87CAD4A}.Release|Win32.ActiveCfg = Release|Win32 + {901EBC4D-735F-D84D-9C4A-AC25E87CAD4A}.Release|Win32.Build.0 = Release|Win32 + {9B14A8B6-4187-1A41-9664-CAB1C3919CC7}.Debug|Win32.ActiveCfg = Debug|Win32 + {9B14A8B6-4187-1A41-9664-CAB1C3919CC7}.Debug|Win32.Build.0 = Debug|Win32 + {9B14A8B6-4187-1A41-9664-CAB1C3919CC7}.Release|Win32.ActiveCfg = Release|Win32 + {9B14A8B6-4187-1A41-9664-CAB1C3919CC7}.Release|Win32.Build.0 = Release|Win32 + {C73D37B5-71B8-E842-BBBE-278EBB71D245}.Debug|Win32.ActiveCfg = Debug|Win32 + {C73D37B5-71B8-E842-BBBE-278EBB71D245}.Debug|Win32.Build.0 = Debug|Win32 + {C73D37B5-71B8-E842-BBBE-278EBB71D245}.Release|Win32.ActiveCfg = Release|Win32 + {C73D37B5-71B8-E842-BBBE-278EBB71D245}.Release|Win32.Build.0 = Release|Win32 + {6BD39C1C-1CC2-E946-AE2C-420BADA7F6CB}.Debug|Win32.ActiveCfg = Debug|Win32 + {6BD39C1C-1CC2-E946-AE2C-420BADA7F6CB}.Debug|Win32.Build.0 = Debug|Win32 + {6BD39C1C-1CC2-E946-AE2C-420BADA7F6CB}.Release|Win32.ActiveCfg = Release|Win32 + {6BD39C1C-1CC2-E946-AE2C-420BADA7F6CB}.Release|Win32.Build.0 = Release|Win32 + {48F4500B-46C3-CD46-942E-59482243211C}.Debug|Win32.ActiveCfg = Debug|Win32 + {48F4500B-46C3-CD46-942E-59482243211C}.Debug|Win32.Build.0 = Debug|Win32 + {48F4500B-46C3-CD46-942E-59482243211C}.Release|Win32.ActiveCfg = Release|Win32 + {48F4500B-46C3-CD46-942E-59482243211C}.Release|Win32.Build.0 = Release|Win32 + {2953CE1F-0332-784D-B123-BDA28C15776A}.Debug|Win32.ActiveCfg = Debug|Win32 + {2953CE1F-0332-784D-B123-BDA28C15776A}.Debug|Win32.Build.0 = Debug|Win32 + {2953CE1F-0332-784D-B123-BDA28C15776A}.Release|Win32.ActiveCfg = Release|Win32 + {2953CE1F-0332-784D-B123-BDA28C15776A}.Release|Win32.Build.0 = Release|Win32 + {81602E3E-93FC-2740-B4BD-BC80BCD715D6}.Debug|Win32.ActiveCfg = Debug|Win32 + {81602E3E-93FC-2740-B4BD-BC80BCD715D6}.Debug|Win32.Build.0 = Debug|Win32 + {81602E3E-93FC-2740-B4BD-BC80BCD715D6}.Release|Win32.ActiveCfg = Release|Win32 + {81602E3E-93FC-2740-B4BD-BC80BCD715D6}.Release|Win32.Build.0 = Release|Win32 + {8FB2FB8C-FA28-D146-A767-0CB74E35643C}.Debug|Win32.ActiveCfg = Debug|Win32 + {8FB2FB8C-FA28-D146-A767-0CB74E35643C}.Debug|Win32.Build.0 = Debug|Win32 + {8FB2FB8C-FA28-D146-A767-0CB74E35643C}.Release|Win32.ActiveCfg = Release|Win32 + {8FB2FB8C-FA28-D146-A767-0CB74E35643C}.Release|Win32.Build.0 = Release|Win32 + {068A675B-F525-714D-BA49-636E8A4B0564}.Debug|Win32.ActiveCfg = Debug|Win32 + {068A675B-F525-714D-BA49-636E8A4B0564}.Debug|Win32.Build.0 = Debug|Win32 + {068A675B-F525-714D-BA49-636E8A4B0564}.Release|Win32.ActiveCfg = Release|Win32 + {068A675B-F525-714D-BA49-636E8A4B0564}.Release|Win32.Build.0 = Release|Win32 + {63154644-828E-7F40-8024-6EEDF62436D1}.Debug|Win32.ActiveCfg = Debug|Win32 + {63154644-828E-7F40-8024-6EEDF62436D1}.Debug|Win32.Build.0 = Debug|Win32 + {63154644-828E-7F40-8024-6EEDF62436D1}.Release|Win32.ActiveCfg = Release|Win32 + {63154644-828E-7F40-8024-6EEDF62436D1}.Release|Win32.Build.0 = Release|Win32 + {F999361E-C0B3-ED43-975D-26D9A9CF5DDE}.Debug|Win32.ActiveCfg = Debug|Win32 + {F999361E-C0B3-ED43-975D-26D9A9CF5DDE}.Debug|Win32.Build.0 = Debug|Win32 + {F999361E-C0B3-ED43-975D-26D9A9CF5DDE}.Release|Win32.ActiveCfg = Release|Win32 + {F999361E-C0B3-ED43-975D-26D9A9CF5DDE}.Release|Win32.Build.0 = Release|Win32 + {858D4FF2-0931-604C-853C-017D94C11F66}.Debug|Win32.ActiveCfg = Debug|Win32 + {858D4FF2-0931-604C-853C-017D94C11F66}.Debug|Win32.Build.0 = Debug|Win32 + {858D4FF2-0931-604C-853C-017D94C11F66}.Release|Win32.ActiveCfg = Release|Win32 + {858D4FF2-0931-604C-853C-017D94C11F66}.Release|Win32.Build.0 = Release|Win32 + {B4CE343D-65CF-FB45-9505-D1D9EE28CE57}.Debug|Win32.ActiveCfg = Debug|Win32 + {B4CE343D-65CF-FB45-9505-D1D9EE28CE57}.Debug|Win32.Build.0 = Debug|Win32 + {B4CE343D-65CF-FB45-9505-D1D9EE28CE57}.Release|Win32.ActiveCfg = Release|Win32 + {B4CE343D-65CF-FB45-9505-D1D9EE28CE57}.Release|Win32.Build.0 = Release|Win32 + {5BFF537B-8785-D14E-9C7D-25B693477FB8}.Debug|Win32.ActiveCfg = Debug|Win32 + {5BFF537B-8785-D14E-9C7D-25B693477FB8}.Debug|Win32.Build.0 = Debug|Win32 + {5BFF537B-8785-D14E-9C7D-25B693477FB8}.Release|Win32.ActiveCfg = Release|Win32 + {5BFF537B-8785-D14E-9C7D-25B693477FB8}.Release|Win32.Build.0 = Release|Win32 + {1F585797-33BC-3643-B0E3-9BD491AF4852}.Debug|Win32.ActiveCfg = Debug|Win32 + {1F585797-33BC-3643-B0E3-9BD491AF4852}.Debug|Win32.Build.0 = Debug|Win32 + {1F585797-33BC-3643-B0E3-9BD491AF4852}.Release|Win32.ActiveCfg = Release|Win32 + {1F585797-33BC-3643-B0E3-9BD491AF4852}.Release|Win32.Build.0 = Release|Win32 + {0C330D16-E8D8-EA43-9E18-BE3E51FE1347}.Debug|Win32.ActiveCfg = Debug|Win32 + {0C330D16-E8D8-EA43-9E18-BE3E51FE1347}.Debug|Win32.Build.0 = Debug|Win32 + {0C330D16-E8D8-EA43-9E18-BE3E51FE1347}.Release|Win32.ActiveCfg = Release|Win32 + {0C330D16-E8D8-EA43-9E18-BE3E51FE1347}.Release|Win32.Build.0 = Release|Win32 + {5C06F962-7A40-964D-B60B-A919A32EE303}.Debug|Win32.ActiveCfg = Debug|Win32 + {5C06F962-7A40-964D-B60B-A919A32EE303}.Debug|Win32.Build.0 = Debug|Win32 + {5C06F962-7A40-964D-B60B-A919A32EE303}.Release|Win32.ActiveCfg = Release|Win32 + {5C06F962-7A40-964D-B60B-A919A32EE303}.Release|Win32.Build.0 = Release|Win32 + {0DD89D04-2A0A-2348-A5E1-12A7AEE4200D}.Debug|Win32.ActiveCfg = Debug|Win32 + {0DD89D04-2A0A-2348-A5E1-12A7AEE4200D}.Debug|Win32.Build.0 = Debug|Win32 + {0DD89D04-2A0A-2348-A5E1-12A7AEE4200D}.Release|Win32.ActiveCfg = Release|Win32 + {0DD89D04-2A0A-2348-A5E1-12A7AEE4200D}.Release|Win32.Build.0 = Release|Win32 + {4076F581-39F7-4144-A5B8-5FDBDB3B128B}.Debug|Win32.ActiveCfg = Debug|Win32 + {4076F581-39F7-4144-A5B8-5FDBDB3B128B}.Debug|Win32.Build.0 = Debug|Win32 + {4076F581-39F7-4144-A5B8-5FDBDB3B128B}.Release|Win32.ActiveCfg = Release|Win32 + {4076F581-39F7-4144-A5B8-5FDBDB3B128B}.Release|Win32.Build.0 = Release|Win32 + {9BC42316-43AF-B84A-9B45-133C29C126A0}.Debug|Win32.ActiveCfg = Debug|Win32 + {9BC42316-43AF-B84A-9B45-133C29C126A0}.Debug|Win32.Build.0 = Debug|Win32 + {9BC42316-43AF-B84A-9B45-133C29C126A0}.Release|Win32.ActiveCfg = Release|Win32 + {9BC42316-43AF-B84A-9B45-133C29C126A0}.Release|Win32.Build.0 = Release|Win32 + {262FA1CF-740E-2746-B72E-B0330B9F1337}.Debug|Win32.ActiveCfg = Debug|Win32 + {262FA1CF-740E-2746-B72E-B0330B9F1337}.Debug|Win32.Build.0 = Debug|Win32 + {262FA1CF-740E-2746-B72E-B0330B9F1337}.Release|Win32.ActiveCfg = Release|Win32 + {262FA1CF-740E-2746-B72E-B0330B9F1337}.Release|Win32.Build.0 = Release|Win32 + {DEB1CD6C-9CCF-4B44-A29F-3067FDB33838}.Debug|Win32.ActiveCfg = Debug|Win32 + {DEB1CD6C-9CCF-4B44-A29F-3067FDB33838}.Debug|Win32.Build.0 = Debug|Win32 + {DEB1CD6C-9CCF-4B44-A29F-3067FDB33838}.Release|Win32.ActiveCfg = Release|Win32 + {DEB1CD6C-9CCF-4B44-A29F-3067FDB33838}.Release|Win32.Build.0 = Release|Win32 + {9937576E-DD2A-0B41-9D97-9D3CF1478963}.Debug|Win32.ActiveCfg = Debug|Win32 + {9937576E-DD2A-0B41-9D97-9D3CF1478963}.Debug|Win32.Build.0 = Debug|Win32 + {9937576E-DD2A-0B41-9D97-9D3CF1478963}.Release|Win32.ActiveCfg = Release|Win32 + {9937576E-DD2A-0B41-9D97-9D3CF1478963}.Release|Win32.Build.0 = Release|Win32 + {A7E1C8B0-F3FA-E740-ABEF-DA22747D8B7F}.Debug|Win32.ActiveCfg = Debug|Win32 + {A7E1C8B0-F3FA-E740-ABEF-DA22747D8B7F}.Debug|Win32.Build.0 = Debug|Win32 + {A7E1C8B0-F3FA-E740-ABEF-DA22747D8B7F}.Release|Win32.ActiveCfg = Release|Win32 + {A7E1C8B0-F3FA-E740-ABEF-DA22747D8B7F}.Release|Win32.Build.0 = Release|Win32 + {72D8473C-9ED1-6041-877A-B45552307F3A}.Debug|Win32.ActiveCfg = Debug|Win32 + {72D8473C-9ED1-6041-877A-B45552307F3A}.Debug|Win32.Build.0 = Debug|Win32 + {72D8473C-9ED1-6041-877A-B45552307F3A}.Release|Win32.ActiveCfg = Release|Win32 + {72D8473C-9ED1-6041-877A-B45552307F3A}.Release|Win32.Build.0 = Release|Win32 + {4BCD98A1-3F51-3244-8D09-C510E02D045B}.Debug|Win32.ActiveCfg = Debug|Win32 + {4BCD98A1-3F51-3244-8D09-C510E02D045B}.Debug|Win32.Build.0 = Debug|Win32 + {4BCD98A1-3F51-3244-8D09-C510E02D045B}.Release|Win32.ActiveCfg = Release|Win32 + {4BCD98A1-3F51-3244-8D09-C510E02D045B}.Release|Win32.Build.0 = Release|Win32 + {05B569B7-8C6D-FE47-8AFB-3F5C9B6EC7F4}.Debug|Win32.ActiveCfg = Debug|Win32 + {05B569B7-8C6D-FE47-8AFB-3F5C9B6EC7F4}.Debug|Win32.Build.0 = Debug|Win32 + {05B569B7-8C6D-FE47-8AFB-3F5C9B6EC7F4}.Release|Win32.ActiveCfg = Release|Win32 + {05B569B7-8C6D-FE47-8AFB-3F5C9B6EC7F4}.Release|Win32.Build.0 = Release|Win32 + {A114B178-D2BB-CF42-A049-034C4C50596F}.Debug|Win32.ActiveCfg = Debug|Win32 + {A114B178-D2BB-CF42-A049-034C4C50596F}.Debug|Win32.Build.0 = Debug|Win32 + {A114B178-D2BB-CF42-A049-034C4C50596F}.Release|Win32.ActiveCfg = Release|Win32 + {A114B178-D2BB-CF42-A049-034C4C50596F}.Release|Win32.Build.0 = Release|Win32 + {0232629C-6FEC-A541-9EF6-CD4560D95327}.Debug|Win32.ActiveCfg = Debug|Win32 + {0232629C-6FEC-A541-9EF6-CD4560D95327}.Debug|Win32.Build.0 = Debug|Win32 + {0232629C-6FEC-A541-9EF6-CD4560D95327}.Release|Win32.ActiveCfg = Release|Win32 + {0232629C-6FEC-A541-9EF6-CD4560D95327}.Release|Win32.Build.0 = Release|Win32 + {C9ABF4FE-1D59-7A41-80B6-87C169B9FCB5}.Debug|Win32.ActiveCfg = Debug|Win32 + {C9ABF4FE-1D59-7A41-80B6-87C169B9FCB5}.Debug|Win32.Build.0 = Debug|Win32 + {C9ABF4FE-1D59-7A41-80B6-87C169B9FCB5}.Release|Win32.ActiveCfg = Release|Win32 + {C9ABF4FE-1D59-7A41-80B6-87C169B9FCB5}.Release|Win32.Build.0 = Release|Win32 + {60819005-330D-4948-AFC5-173584DCBA84}.Debug|Win32.ActiveCfg = Debug|Win32 + {60819005-330D-4948-AFC5-173584DCBA84}.Debug|Win32.Build.0 = Debug|Win32 + {60819005-330D-4948-AFC5-173584DCBA84}.Release|Win32.ActiveCfg = Release|Win32 + {60819005-330D-4948-AFC5-173584DCBA84}.Release|Win32.Build.0 = Release|Win32 + {4F5CC446-A806-DD43-A1C4-73C4C37D1895}.Debug|Win32.ActiveCfg = Debug|Win32 + {4F5CC446-A806-DD43-A1C4-73C4C37D1895}.Debug|Win32.Build.0 = Debug|Win32 + {4F5CC446-A806-DD43-A1C4-73C4C37D1895}.Release|Win32.ActiveCfg = Release|Win32 + {4F5CC446-A806-DD43-A1C4-73C4C37D1895}.Release|Win32.Build.0 = Release|Win32 + {0DD0AD84-3DE8-2F49-B31F-4B8F41864A89}.Debug|Win32.ActiveCfg = Debug|Win32 + {0DD0AD84-3DE8-2F49-B31F-4B8F41864A89}.Debug|Win32.Build.0 = Debug|Win32 + {0DD0AD84-3DE8-2F49-B31F-4B8F41864A89}.Release|Win32.ActiveCfg = Release|Win32 + {0DD0AD84-3DE8-2F49-B31F-4B8F41864A89}.Release|Win32.Build.0 = Release|Win32 + {541CA31C-B613-A346-AFEB-FE0614CEF765}.Debug|Win32.ActiveCfg = Debug|Win32 + {541CA31C-B613-A346-AFEB-FE0614CEF765}.Debug|Win32.Build.0 = Debug|Win32 + {541CA31C-B613-A346-AFEB-FE0614CEF765}.Release|Win32.ActiveCfg = Release|Win32 + {541CA31C-B613-A346-AFEB-FE0614CEF765}.Release|Win32.Build.0 = Release|Win32 + {859DF586-61E5-5749-AE72-0B8CC7C817D7}.Debug|Win32.ActiveCfg = Debug|Win32 + {859DF586-61E5-5749-AE72-0B8CC7C817D7}.Debug|Win32.Build.0 = Debug|Win32 + {859DF586-61E5-5749-AE72-0B8CC7C817D7}.Release|Win32.ActiveCfg = Release|Win32 + {859DF586-61E5-5749-AE72-0B8CC7C817D7}.Release|Win32.Build.0 = Release|Win32 + {49527EB7-9A96-9743-BAE3-CA18CAD2FC54}.Debug|Win32.ActiveCfg = Debug|Win32 + {49527EB7-9A96-9743-BAE3-CA18CAD2FC54}.Debug|Win32.Build.0 = Debug|Win32 + {49527EB7-9A96-9743-BAE3-CA18CAD2FC54}.Release|Win32.ActiveCfg = Release|Win32 + {49527EB7-9A96-9743-BAE3-CA18CAD2FC54}.Release|Win32.Build.0 = Release|Win32 + {F0F3C9F2-2F1A-C842-9757-40DC67F4219D}.Debug|Win32.ActiveCfg = Debug|Win32 + {F0F3C9F2-2F1A-C842-9757-40DC67F4219D}.Debug|Win32.Build.0 = Debug|Win32 + {F0F3C9F2-2F1A-C842-9757-40DC67F4219D}.Release|Win32.ActiveCfg = Release|Win32 + {F0F3C9F2-2F1A-C842-9757-40DC67F4219D}.Release|Win32.Build.0 = Release|Win32 + {E1DD1D32-C9B7-B14B-BD41-EA39A0A39F6D}.Debug|Win32.ActiveCfg = Debug|Win32 + {E1DD1D32-C9B7-B14B-BD41-EA39A0A39F6D}.Debug|Win32.Build.0 = Debug|Win32 + {E1DD1D32-C9B7-B14B-BD41-EA39A0A39F6D}.Release|Win32.ActiveCfg = Release|Win32 + {E1DD1D32-C9B7-B14B-BD41-EA39A0A39F6D}.Release|Win32.Build.0 = Release|Win32 + {48910BD1-FBB6-5D47-A5D2-4EA2E5D91F72}.Debug|Win32.ActiveCfg = Debug|Win32 + {48910BD1-FBB6-5D47-A5D2-4EA2E5D91F72}.Debug|Win32.Build.0 = Debug|Win32 + {48910BD1-FBB6-5D47-A5D2-4EA2E5D91F72}.Release|Win32.ActiveCfg = Release|Win32 + {48910BD1-FBB6-5D47-A5D2-4EA2E5D91F72}.Release|Win32.Build.0 = Release|Win32 + {296FF26A-1980-3B44-ADDA-EAE72242B4B0}.Debug|Win32.ActiveCfg = Debug|Win32 + {296FF26A-1980-3B44-ADDA-EAE72242B4B0}.Debug|Win32.Build.0 = Debug|Win32 + {296FF26A-1980-3B44-ADDA-EAE72242B4B0}.Release|Win32.ActiveCfg = Release|Win32 + {296FF26A-1980-3B44-ADDA-EAE72242B4B0}.Release|Win32.Build.0 = Release|Win32 + {14B1A8FE-44AC-C04E-BFDE-7AC1D72E37DA}.Debug|Win32.ActiveCfg = Debug|Win32 + {14B1A8FE-44AC-C04E-BFDE-7AC1D72E37DA}.Debug|Win32.Build.0 = Debug|Win32 + {14B1A8FE-44AC-C04E-BFDE-7AC1D72E37DA}.Release|Win32.ActiveCfg = Release|Win32 + {14B1A8FE-44AC-C04E-BFDE-7AC1D72E37DA}.Release|Win32.Build.0 = Release|Win32 + {41F4E0C8-9F68-7E4E-BEF1-AB5279264003}.Debug|Win32.ActiveCfg = Debug|Win32 + {41F4E0C8-9F68-7E4E-BEF1-AB5279264003}.Debug|Win32.Build.0 = Debug|Win32 + {41F4E0C8-9F68-7E4E-BEF1-AB5279264003}.Release|Win32.ActiveCfg = Release|Win32 + {41F4E0C8-9F68-7E4E-BEF1-AB5279264003}.Release|Win32.Build.0 = Release|Win32 + {1F19F525-2F86-1949-94DD-639C09639634}.Debug|Win32.ActiveCfg = Debug|Win32 + {1F19F525-2F86-1949-94DD-639C09639634}.Debug|Win32.Build.0 = Debug|Win32 + {1F19F525-2F86-1949-94DD-639C09639634}.Release|Win32.ActiveCfg = Release|Win32 + {1F19F525-2F86-1949-94DD-639C09639634}.Release|Win32.Build.0 = Release|Win32 + {B2DD9042-38C1-6140-852D-ACEF33E172F6}.Debug|Win32.ActiveCfg = Debug|Win32 + {B2DD9042-38C1-6140-852D-ACEF33E172F6}.Debug|Win32.Build.0 = Debug|Win32 + {B2DD9042-38C1-6140-852D-ACEF33E172F6}.Release|Win32.ActiveCfg = Release|Win32 + {B2DD9042-38C1-6140-852D-ACEF33E172F6}.Release|Win32.Build.0 = Release|Win32 + {D19A3C76-2C05-2643-8D45-E06B9268EDE2}.Debug|Win32.ActiveCfg = Debug|Win32 + {D19A3C76-2C05-2643-8D45-E06B9268EDE2}.Debug|Win32.Build.0 = Debug|Win32 + {D19A3C76-2C05-2643-8D45-E06B9268EDE2}.Release|Win32.ActiveCfg = Release|Win32 + {D19A3C76-2C05-2643-8D45-E06B9268EDE2}.Release|Win32.Build.0 = Release|Win32 + {9EA7D8D7-6D83-0549-92E8-226A16D1BC51}.Debug|Win32.ActiveCfg = Debug|Win32 + {9EA7D8D7-6D83-0549-92E8-226A16D1BC51}.Debug|Win32.Build.0 = Debug|Win32 + {9EA7D8D7-6D83-0549-92E8-226A16D1BC51}.Release|Win32.ActiveCfg = Release|Win32 + {9EA7D8D7-6D83-0549-92E8-226A16D1BC51}.Release|Win32.Build.0 = Release|Win32 + {1246F077-C27B-F346-9D88-4CD5AA23CCB4}.Debug|Win32.ActiveCfg = Debug|Win32 + {1246F077-C27B-F346-9D88-4CD5AA23CCB4}.Debug|Win32.Build.0 = Debug|Win32 + {1246F077-C27B-F346-9D88-4CD5AA23CCB4}.Release|Win32.ActiveCfg = Release|Win32 + {1246F077-C27B-F346-9D88-4CD5AA23CCB4}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/premake/VisualC/VS2010/SDL2/SDL2.vcxproj b/premake/VisualC/VS2010/SDL2/SDL2.vcxproj new file mode 100755 index 0000000000000..a34fa4b06caf7 --- /dev/null +++ b/premake/VisualC/VS2010/SDL2/SDL2.vcxproj @@ -0,0 +1,430 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {A114B178-D2BB-CF42-A049-034C4C50596F} + SDL2 + Win32Proj + + + + DynamicLibrary + true + MultiByte + + + DynamicLibrary + false + MultiByte + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + SDL2 + .dll + false + true + + + Win32\Release\ + obj\Release\ + SDL2 + .dll + false + false + + + + Disabled + ..;..\..\..\..\include;$(DXSDK_DIR)\Include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)SDL2.pdb + + + USING_PREMAKE_CONFIG_H;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + ..;..\..\..\..\include;$(DXSDK_DIR)\Include;%(AdditionalIncludeDirectories) + + + Windows + true + imm32.lib;oleaut32.lib;winmm.lib;version.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;uuid.lib;odbc32.lib;odbccp32.lib;OpenGL32.lib;%(AdditionalDependencies) + $(OutDir)SDL2.dll + $(DXSDK_DIR)\Lib\x86;%(AdditionalLibraryDirectories) + Win32\Debug\SDL2.lib + + + + + MaxSpeed + ..;..\..\..\..\include;$(DXSDK_DIR)\Include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + + + USING_PREMAKE_CONFIG_H;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + ..;..\..\..\..\include;$(DXSDK_DIR)\Include;%(AdditionalIncludeDirectories) + + + Windows + false + true + true + imm32.lib;oleaut32.lib;winmm.lib;version.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;uuid.lib;odbc32.lib;odbccp32.lib;OpenGL32.lib;%(AdditionalDependencies) + $(OutDir)SDL2.dll + $(DXSDK_DIR)\Lib\x86;%(AdditionalLibraryDirectories) + Win32\Release\SDL2.lib + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/premake/VisualC/VS2010/SDL2/SDL2.vcxproj.filters b/premake/VisualC/VS2010/SDL2/SDL2.vcxproj.filters new file mode 100755 index 0000000000000..e5af43ce40b13 --- /dev/null +++ b/premake/VisualC/VS2010/SDL2/SDL2.vcxproj.filters @@ -0,0 +1,708 @@ + + + + + {83552F35-9E27-8349-941D-D42C8C683F29} + + + {DCF63369-8F8C-844D-AA77-7A1C3389F75A} + + + {4B46A9AC-5C90-D74F-9516-6E459B135E58} + + + {2B838705-E332-2B46-B5FB-D82D76CAC47C} + + + {62756ECB-7D43-2646-B2F6-D0C2F73A6C31} + + + {7838C0FB-1AE8-D94A-87B4-FCFC3C8B84DC} + + + {9D0A2730-A1A5-3643-BDC3-D192D36B7DA7} + + + {A49D9D80-CFF5-C44A-8615-139DD4BB9344} + + + {A01C7BA1-F2D9-9D46-AB04-728BA7C88072} + + + {25D8CA3D-05B5-EA42-9348-6C948C86A1BB} + + + {29D9529E-8294-5A47-A9B3-994992801BA2} + + + {21817AB4-FA71-0F4A-BE78-011FACC15F5F} + + + {D3438262-E7D4-4C46-B3BB-02356842965E} + + + {68106057-FA4B-6147-951D-380F735D10E1} + + + {F8F2FC95-D2DF-B349-9A48-21E164456323} + + + {93E4CD66-FBB2-3343-9837-5167CF17E2AD} + + + {BA23138E-35A5-8C4C-B6AE-BC40C73E7899} + + + {935C1E64-0EA6-3D41-B173-DC2790AEA36B} + + + {894EC8C0-D665-5549-958A-8CE69F48B841} + + + {5178DC7D-3740-F04F-A4F5-E8ECF505986D} + + + {E858B76A-CA16-EA4C-9C24-2D30D7F57F30} + + + {A0882EB2-818B-6C4C-83FA-5D1A16294D71} + + + {B8CFBF32-5285-F841-9EE6-500733BF84E3} + + + {7F1F162F-25CB-794B-800A-DC4A6771A090} + + + {56A66F9F-D266-E24B-885B-6675CFB3CD7A} + + + {7D9CA672-E7B3-1A40-BC8D-45550C5DB87C} + + + {74579AE9-AD11-3C4B-8748-111B86027197} + + + {B0FBF7F5-ACA2-8C41-85A6-65340E33240F} + + + {BAF5077D-8616-8748-9C7A-A7FD13A7CAEA} + + + {BC4F478C-9137-1842-B7B4-6F2A15DD90DA} + + + {ED28E680-8BFF-4244-BAFF-E91CFD47EF86} + + + {A9AF8524-CB9F-9F4E-9DA5-B93A49937102} + + + {1C0AEE74-C5A7-B445-ACF3-BC2EFD681916} + + + {451C1FED-B064-E540-AE86-F0B8861EAC4D} + + + {43B99060-F4F4-1041-AE01-934B1D0743F6} + + + {D77A2123-6457-D247-AD87-936651AE255B} + + + {0795129F-E4B3-B548-88FA-823A653118BD} + + + + + src + + + src + + + src\audio + + + src\audio + + + src\audio + + + src\audio + + + src\audio + + + src\audio\disk + + + src\audio\dummy + + + src\events + + + src\events + + + src\events + + + src\events + + + src\events + + + src\events + + + src\events + + + src\events + + + src\events + + + src\events + + + src\events + + + src\events + + + src\events + + + src\events + + + src\events + + + src\haptic + + + src\haptic + + + src\joystick + + + src\joystick + + + src\joystick + + + src\render + + + src\render + + + src\render + + + src\render\software + + + src\render\software + + + src\render\software + + + src\render\software + + + src\render\software + + + src\render\software + + + src\render\software + + + src\render\software + + + src\thread + + + src\thread + + + src\timer + + + src\video + + + src\video + + + src\video + + + src\video + + + src\video + + + src\video + + + src\video + + + src\video + + + src\video + + + src\video + + + src\video\dummy + + + src\video\dummy + + + src\video\dummy + + + src\thread\generic + + + src\audio\winmm + + + src\core\windows + + + src\libm + + + src\libm + + + src\thread\windows + + + src\video\windows + + + src\video\windows + + + src\video\windows + + + src\video\windows + + + src\video\windows + + + src\video\windows + + + src\video\windows + + + src\video\windows + + + src\video\windows + + + src\video\windows + + + src\video\windows + + + src\video\windows + + + src\video\windows + + + src\video\windows + + + src\audio\directsound + + + src\audio\directsound + + + src\joystick\windows + + + src\render\opengl + + + src\render\opengl + + + + + src + + + src + + + src + + + src + + + src + + + src\atomic + + + src\atomic + + + src\audio + + + src\audio + + + src\audio + + + src\audio + + + src\audio + + + src\audio + + + src\audio\disk + + + src\audio\dummy + + + src\cpuinfo + + + src\events + + + src\events + + + src\events + + + src\events + + + src\events + + + src\events + + + src\events + + + src\events + + + src\events + + + src\file + + + src\haptic + + + src\joystick + + + src\joystick + + + src\power + + + src\render + + + src\render + + + src\render + + + src\render\software + + + src\render\software + + + src\render\software + + + src\render\software + + + src\render\software + + + src\render\software + + + src\render\software + + + src\stdlib + + + src\stdlib + + + src\stdlib + + + src\stdlib + + + src\stdlib + + + src\stdlib + + + src\thread + + + src\timer + + + src\video + + + src\video + + + src\video + + + src\video + + + src\video + + + src\video + + + src\video + + + src\video + + + src\video + + + src\video + + + src\video + + + src\video + + + src\video + + + src\video + + + src\video + + + src\video + + + src\video + + + src\video + + + src\video + + + src\video\dummy + + + src\video\dummy + + + src\video\dummy + + + src\thread\generic + + + src\audio\winmm + + + src\core\windows + + + src\libm + + + src\libm + + + src\libm + + + src\libm + + + src\libm + + + src\libm + + + src\libm + + + src\libm + + + src\libm + + + src\libm + + + src\libm + + + src\libm + + + src\libm + + + src\libm + + + src\libm + + + src\loadso\windows + + + src\power\windows + + + src\thread\windows + + + src\thread\windows + + + src\thread\windows + + + src\thread\windows + + + src\timer\windows + + + src\video\windows + + + src\video\windows + + + src\video\windows + + + src\video\windows + + + src\video\windows + + + src\video\windows + + + src\video\windows + + + src\video\windows + + + src\video\windows + + + src\video\windows + + + src\video\windows + + + src\filesystem\windows + + + src\audio\directsound + + + src\audio\xaudio2 + + + src\render\direct3d + + + src\haptic\windows + + + src\joystick\windows + + + src\joystick\windows + + + src\render\opengl + + + src\render\opengl + + + diff --git a/premake/VisualC/VS2010/SDL2main/SDL2main.vcxproj b/premake/VisualC/VS2010/SDL2main/SDL2main.vcxproj new file mode 100755 index 0000000000000..d34704d1807a7 --- /dev/null +++ b/premake/VisualC/VS2010/SDL2main/SDL2main.vcxproj @@ -0,0 +1,115 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {859DF586-61E5-5749-AE72-0B8CC7C817D7} + SDL2main + Win32Proj + + + + StaticLibrary + true + MultiByte + + + StaticLibrary + false + MultiByte + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + SDL2main + .lib + + + Win32\Release\ + obj\Release\ + SDL2main + .lib + + + + Disabled + ..;..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)SDL2main.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..;..\..\..\..\include;%(AdditionalIncludeDirectories) + + + $(OutDir)SDL2main.lib + + + Windows + true + + + + + MaxSpeed + ..;..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..;..\..\..\..\include;%(AdditionalIncludeDirectories) + + + $(OutDir)SDL2main.lib + + + Windows + false + true + true + + + + + + + + + + diff --git a/premake/VisualC/VS2010/SDL2main/SDL2main.vcxproj.filters b/premake/VisualC/VS2010/SDL2main/SDL2main.vcxproj.filters new file mode 100755 index 0000000000000..7da1a45d13e33 --- /dev/null +++ b/premake/VisualC/VS2010/SDL2main/SDL2main.vcxproj.filters @@ -0,0 +1,19 @@ + + + + + {E255A4C8-F0EF-A243-91DC-06312A35FE57} + + + {FD7C1EC4-B745-E943-9324-5B10122E141B} + + + {E2DAA459-291E-D347-80AD-52463F3EEB2E} + + + + + src\main\windows + + + diff --git a/premake/VisualC/VS2010/SDL2test/SDL2test.vcxproj b/premake/VisualC/VS2010/SDL2test/SDL2test.vcxproj new file mode 100755 index 0000000000000..8968e6001624c --- /dev/null +++ b/premake/VisualC/VS2010/SDL2test/SDL2test.vcxproj @@ -0,0 +1,157 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {72D8473C-9ED1-6041-877A-B45552307F3A} + SDL2test + Win32Proj + + + + StaticLibrary + true + MultiByte + + + StaticLibrary + false + MultiByte + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + SDL2test + .lib + + + Win32\Release\ + obj\Release\ + SDL2test + .lib + + + + Disabled + ..;..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)SDL2test.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..;..\..\..\..\include;%(AdditionalIncludeDirectories) + + + $(OutDir)SDL2test.lib + + + Windows + true + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..;..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..;..\..\..\..\include;%(AdditionalIncludeDirectories) + + + $(OutDir)SDL2test.lib + + + Windows + false + true + true + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {859DF586-61E5-5749-AE72-0B8CC7C817D7} + + + {A114B178-D2BB-CF42-A049-034C4C50596F} + + + + + + diff --git a/premake/VisualC/VS2010/SDL2test/SDL2test.vcxproj.filters b/premake/VisualC/VS2010/SDL2test/SDL2test.vcxproj.filters new file mode 100755 index 0000000000000..aa8e791ea00ff --- /dev/null +++ b/premake/VisualC/VS2010/SDL2test/SDL2test.vcxproj.filters @@ -0,0 +1,58 @@ + + + + + {C34FFA8B-A517-F348-A88F-A091C2A0CE27} + + + {78F57D3C-A9F3-134E-B9BC-C73A2E71C6AA} + + + + + src\test + + + src\test + + + src\test + + + src\test + + + src\test + + + src\test + + + src\test + + + src\test + + + src\test + + + src\test + + + src\test + + + src\test + + + src\test + + + src\test + + + src\test + + + diff --git a/premake/VisualC/VS2010/SDL_config_premake.h b/premake/VisualC/VS2010/SDL_config_premake.h new file mode 100755 index 0000000000000..be158a4f00a52 --- /dev/null +++ b/premake/VisualC/VS2010/SDL_config_premake.h @@ -0,0 +1,202 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2013 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef _SDL_config_windows_h +#define _SDL_config_windows_h + +#include "SDL_platform.h" + +/* This is a set of defines to configure the SDL features */ + +#if !defined(_STDINT_H_) && (!defined(HAVE_STDINT_H) || !_HAVE_STDINT_H) +#if defined(__GNUC__) || defined(__DMC__) || defined(__WATCOMC__) +#define HAVE_STDINT_H 1 +#elif defined(_MSC_VER) +typedef signed __int8 int8_t; +typedef unsigned __int8 uint8_t; +typedef signed __int16 int16_t; +typedef unsigned __int16 uint16_t; +typedef signed __int32 int32_t; +typedef unsigned __int32 uint32_t; +typedef signed __int64 int64_t; +typedef unsigned __int64 uint64_t; +#ifndef _UINTPTR_T_DEFINED +#ifdef _WIN64 +typedef unsigned __int64 uintptr_t; +#else +typedef unsigned int uintptr_t; +#endif +#define _UINTPTR_T_DEFINED +#endif +/* Older Visual C++ headers don't have the Win64-compatible typedefs... */ +#if ((_MSC_VER <= 1200) && (!defined(DWORD_PTR))) +#define DWORD_PTR DWORD +#endif +#if ((_MSC_VER <= 1200) && (!defined(LONG_PTR))) +#define LONG_PTR LONG +#endif +#else /* !__GNUC__ && !_MSC_VER */ +typedef signed char int8_t; +typedef unsigned char uint8_t; +typedef signed short int16_t; +typedef unsigned short uint16_t; +typedef signed int int32_t; +typedef unsigned int uint32_t; +typedef signed long long int64_t; +typedef unsigned long long uint64_t; +#ifndef _SIZE_T_DEFINED_ +#define _SIZE_T_DEFINED_ +typedef unsigned int size_t; +#endif +typedef unsigned int uintptr_t; +#endif /* __GNUC__ || _MSC_VER */ +#endif /* !_STDINT_H_ && !HAVE_STDINT_H */ + +#ifdef _WIN64 +# define SIZEOF_VOIDP 8 +#else +# define SIZEOF_VOIDP 4 +#endif + +/* This is disabled by default to avoid C runtime dependencies and manifest requirements */ +#ifdef HAVE_LIBC +/* Useful headers */ +#define HAVE_STDIO_H 1 +#define STDC_HEADERS 1 +#define HAVE_STRING_H 1 +#define HAVE_CTYPE_H 1 +#define HAVE_MATH_H 1 +#define HAVE_SIGNAL_H 1 + +/* C library functions */ +#define HAVE_MALLOC 1 +#define HAVE_CALLOC 1 +#define HAVE_REALLOC 1 +#define HAVE_FREE 1 +#define HAVE_ALLOCA 1 +#define HAVE_QSORT 1 +#define HAVE_ABS 1 +#define HAVE_MEMSET 1 +#define HAVE_MEMCPY 1 +#define HAVE_MEMMOVE 1 +#define HAVE_MEMCMP 1 +#define HAVE_STRLEN 1 +#define HAVE__STRREV 1 +#define HAVE__STRUPR 1 +#define HAVE__STRLWR 1 +#define HAVE_STRCHR 1 +#define HAVE_STRRCHR 1 +#define HAVE_STRSTR 1 +#define HAVE_ITOA 1 +#define HAVE__LTOA 1 +#define HAVE__ULTOA 1 +#define HAVE_STRTOL 1 +#define HAVE_STRTOUL 1 +#define HAVE_STRTOLL 1 +#define HAVE_STRTOD 1 +#define HAVE_ATOI 1 +#define HAVE_ATOF 1 +#define HAVE_STRCMP 1 +#define HAVE_STRNCMP 1 +#define HAVE__STRICMP 1 +#define HAVE__STRNICMP 1 +#define HAVE_SSCANF 1 +#define HAVE_M_PI 1 +#define HAVE_ATAN 1 +#define HAVE_ATAN2 1 +#define HAVE_CEIL 1 +#define HAVE_COPYSIGN 1 +#define HAVE_COS 1 +#define HAVE_COSF 1 +#define HAVE_FABS 1 +#define HAVE_FLOOR 1 +#define HAVE_LOG 1 +#define HAVE_POW 1 +#define HAVE_SCALBN 1 +#define HAVE_SIN 1 +#define HAVE_SINF 1 +#define HAVE_SQRT 1 +#else +#define HAVE_STDARG_H 1 +#define HAVE_STDDEF_H 1 +#endif + +#ifndef SDL_AUDIO_DRIVER_DUMMY +#define SDL_AUDIO_DRIVER_DUMMY 1 +#endif +#ifndef SDL_AUDIO_DRIVER_DISK +#define SDL_AUDIO_DRIVER_DISK 1 +#endif +#ifndef SDL_VIDEO_DRIVER_DUMMY +#define SDL_VIDEO_DRIVER_DUMMY 1 +#endif +#ifndef SDL_TIMER_WINDOWS +#define SDL_TIMER_WINDOWS 1 +#endif +#ifndef SDL_AUDIO_DRIVER_WINMM +#define SDL_AUDIO_DRIVER_WINMM 1 +#endif +#ifndef SDL_FILESYSTEM_WINDOWS +#define SDL_FILESYSTEM_WINDOWS 1 +#endif +#ifndef SDL_POWER_WINDOWS +#define SDL_POWER_WINDOWS 1 +#endif +#ifndef SDL_LOADSO_WINDOWS +#define SDL_LOADSO_WINDOWS 1 +#endif +#ifndef SDL_VIDEO_DRIVER_WINDOWS +#define SDL_VIDEO_DRIVER_WINDOWS 1 +#endif +#ifndef SDL_THREAD_WINDOWS +#define SDL_THREAD_WINDOWS 1 +#endif +#ifndef SDL_AUDIO_DRIVER_DSOUND +#define SDL_AUDIO_DRIVER_DSOUND 1 +#endif +#ifndef SDL_JOYSTICK_DINPUT +#define SDL_JOYSTICK_DINPUT 1 +#endif +#ifndef SDL_VIDEO_RENDER_D3D +#define SDL_VIDEO_RENDER_D3D 1 +#endif +#ifndef SDL_HAPTIC_DINPUT +#define SDL_HAPTIC_DINPUT 1 +#endif +#ifndef SDL_AUDIO_DRIVER_XAUDIO2 +#define SDL_AUDIO_DRIVER_XAUDIO2 1 +#endif +#ifndef SDL_VIDEO_RENDER_OGL +#define SDL_VIDEO_RENDER_OGL 1 +#endif +#ifndef SDL_VIDEO_OPENGL +#define SDL_VIDEO_OPENGL 1 +#endif +#ifndef SDL_VIDEO_OPENGL_WGL +#define SDL_VIDEO_OPENGL_WGL 1 +#endif + +/* Enable assembly routines (Win64 doesn't have inline asm) */ +#ifndef _WIN64 +#define SDL_ASSEMBLY_ROUTINES 1 +#endif + +#endif /* _SDL_config_windows_h */ diff --git a/premake/VisualC/VS2010/tests/checkkeys/checkkeys.vcxproj b/premake/VisualC/VS2010/tests/checkkeys/checkkeys.vcxproj new file mode 100755 index 0000000000000..178526f95b74e --- /dev/null +++ b/premake/VisualC/VS2010/tests/checkkeys/checkkeys.vcxproj @@ -0,0 +1,129 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {9BC42316-43AF-B84A-9B45-133C29C126A0} + checkkeys + Win32Proj + + + + Application + true + MultiByte + + + Application + false + MultiByte + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + checkkeys + .exe + true + + + Win32\Release\ + obj\Release\ + checkkeys + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)checkkeys.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)checkkeys.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)checkkeys.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {859DF586-61E5-5749-AE72-0B8CC7C817D7} + + + {A114B178-D2BB-CF42-A049-034C4C50596F} + + + + + + diff --git a/premake/VisualC/VS2010/tests/checkkeys/checkkeys.vcxproj.filters b/premake/VisualC/VS2010/tests/checkkeys/checkkeys.vcxproj.filters new file mode 100755 index 0000000000000..57a60f8e9c173 --- /dev/null +++ b/premake/VisualC/VS2010/tests/checkkeys/checkkeys.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {326BE6BA-4C4D-0447-9A9E-9BBE40EA0BA8} + + + + + test + + + diff --git a/premake/VisualC/VS2010/tests/loopwave/loopwave.vcxproj b/premake/VisualC/VS2010/tests/loopwave/loopwave.vcxproj new file mode 100755 index 0000000000000..f72bbe0326539 --- /dev/null +++ b/premake/VisualC/VS2010/tests/loopwave/loopwave.vcxproj @@ -0,0 +1,129 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {5C06F962-7A40-964D-B60B-A919A32EE303} + loopwave + Win32Proj + + + + Application + true + MultiByte + + + Application + false + MultiByte + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + loopwave + .exe + true + + + Win32\Release\ + obj\Release\ + loopwave + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)loopwave.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)loopwave.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" copy ".\..\..\..\..\..\test\sample.wav" ".\Win32\Debug\sample.wav" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)loopwave.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" copy ".\..\..\..\..\..\test\sample.wav" ".\Win32\Release\sample.wav" + + + + + + + + + {859DF586-61E5-5749-AE72-0B8CC7C817D7} + + + {A114B178-D2BB-CF42-A049-034C4C50596F} + + + + + + diff --git a/premake/VisualC/VS2010/tests/loopwave/loopwave.vcxproj.filters b/premake/VisualC/VS2010/tests/loopwave/loopwave.vcxproj.filters new file mode 100755 index 0000000000000..6caed42f8d8ed --- /dev/null +++ b/premake/VisualC/VS2010/tests/loopwave/loopwave.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {08C69A69-D27F-AD47-B368-F0FF4C4508B2} + + + + + test + + + diff --git a/premake/VisualC/VS2010/tests/testatomic/testatomic.vcxproj b/premake/VisualC/VS2010/tests/testatomic/testatomic.vcxproj new file mode 100755 index 0000000000000..28492f7937685 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testatomic/testatomic.vcxproj @@ -0,0 +1,129 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {A7E1C8B0-F3FA-E740-ABEF-DA22747D8B7F} + testatomic + Win32Proj + + + + Application + true + MultiByte + + + Application + false + MultiByte + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testatomic + .exe + true + + + Win32\Release\ + obj\Release\ + testatomic + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testatomic.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testatomic.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testatomic.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {859DF586-61E5-5749-AE72-0B8CC7C817D7} + + + {A114B178-D2BB-CF42-A049-034C4C50596F} + + + + + + diff --git a/premake/VisualC/VS2010/tests/testatomic/testatomic.vcxproj.filters b/premake/VisualC/VS2010/tests/testatomic/testatomic.vcxproj.filters new file mode 100755 index 0000000000000..6a735dae2ce76 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testatomic/testatomic.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {0A6BA529-9324-DF4C-9218-4E58872F768F} + + + + + test + + + diff --git a/premake/VisualC/VS2010/tests/testaudioinfo/testaudioinfo.vcxproj b/premake/VisualC/VS2010/tests/testaudioinfo/testaudioinfo.vcxproj new file mode 100755 index 0000000000000..a863187197b96 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testaudioinfo/testaudioinfo.vcxproj @@ -0,0 +1,129 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {0C330D16-E8D8-EA43-9E18-BE3E51FE1347} + testaudioinfo + Win32Proj + + + + Application + true + MultiByte + + + Application + false + MultiByte + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testaudioinfo + .exe + true + + + Win32\Release\ + obj\Release\ + testaudioinfo + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testaudioinfo.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testaudioinfo.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testaudioinfo.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {859DF586-61E5-5749-AE72-0B8CC7C817D7} + + + {A114B178-D2BB-CF42-A049-034C4C50596F} + + + + + + diff --git a/premake/VisualC/VS2010/tests/testaudioinfo/testaudioinfo.vcxproj.filters b/premake/VisualC/VS2010/tests/testaudioinfo/testaudioinfo.vcxproj.filters new file mode 100755 index 0000000000000..b026ac6b66e62 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testaudioinfo/testaudioinfo.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {24BD95DA-0646-4F4F-8423-4DE68EDA4365} + + + + + test + + + diff --git a/premake/VisualC/VS2010/tests/testautomation/testautomation.vcxproj b/premake/VisualC/VS2010/tests/testautomation/testautomation.vcxproj new file mode 100755 index 0000000000000..2c0099c1ca5f1 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testautomation/testautomation.vcxproj @@ -0,0 +1,169 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {1F19F525-2F86-1949-94DD-639C09639634} + testautomation + Win32Proj + + + + Application + true + MultiByte + + + Application + false + MultiByte + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testautomation + .exe + true + + + Win32\Release\ + obj\Release\ + testautomation + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testautomation.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testautomation.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testautomation.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {859DF586-61E5-5749-AE72-0B8CC7C817D7} + + + {72D8473C-9ED1-6041-877A-B45552307F3A} + + + {A114B178-D2BB-CF42-A049-034C4C50596F} + + + + + + diff --git a/premake/VisualC/VS2010/tests/testautomation/testautomation.vcxproj.filters b/premake/VisualC/VS2010/tests/testautomation/testautomation.vcxproj.filters new file mode 100755 index 0000000000000..6426e826ca597 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testautomation/testautomation.vcxproj.filters @@ -0,0 +1,69 @@ + + + + + {EDC1E280-1E61-6543-B304-CEC57120CA49} + + + + + test + + + + + test + + + test + + + test + + + test + + + test + + + test + + + test + + + test + + + test + + + test + + + test + + + test + + + test + + + test + + + test + + + test + + + test + + + test + + + diff --git a/premake/VisualC/VS2010/tests/testchessboard/testchessboard.vcxproj b/premake/VisualC/VS2010/tests/testchessboard/testchessboard.vcxproj new file mode 100755 index 0000000000000..2c2ff0fa74ad0 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testchessboard/testchessboard.vcxproj @@ -0,0 +1,129 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {541CA31C-B613-A346-AFEB-FE0614CEF765} + testchessboard + Win32Proj + + + + Application + true + MultiByte + + + Application + false + MultiByte + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testchessboard + .exe + true + + + Win32\Release\ + obj\Release\ + testchessboard + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testchessboard.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testchessboard.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testchessboard.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {859DF586-61E5-5749-AE72-0B8CC7C817D7} + + + {A114B178-D2BB-CF42-A049-034C4C50596F} + + + + + + diff --git a/premake/VisualC/VS2010/tests/testchessboard/testchessboard.vcxproj.filters b/premake/VisualC/VS2010/tests/testchessboard/testchessboard.vcxproj.filters new file mode 100755 index 0000000000000..a175d02580b29 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testchessboard/testchessboard.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {0A88D931-6879-004A-A203-ADF96E842CE1} + + + + + test + + + diff --git a/premake/VisualC/VS2010/tests/testdraw2/testdraw2.vcxproj b/premake/VisualC/VS2010/tests/testdraw2/testdraw2.vcxproj new file mode 100755 index 0000000000000..ee27cc6c4db9e --- /dev/null +++ b/premake/VisualC/VS2010/tests/testdraw2/testdraw2.vcxproj @@ -0,0 +1,132 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {296FF26A-1980-3B44-ADDA-EAE72242B4B0} + testdraw2 + Win32Proj + + + + Application + true + MultiByte + + + Application + false + MultiByte + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testdraw2 + .exe + true + + + Win32\Release\ + obj\Release\ + testdraw2 + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testdraw2.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testdraw2.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testdraw2.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {859DF586-61E5-5749-AE72-0B8CC7C817D7} + + + {72D8473C-9ED1-6041-877A-B45552307F3A} + + + {A114B178-D2BB-CF42-A049-034C4C50596F} + + + + + + diff --git a/premake/VisualC/VS2010/tests/testdraw2/testdraw2.vcxproj.filters b/premake/VisualC/VS2010/tests/testdraw2/testdraw2.vcxproj.filters new file mode 100755 index 0000000000000..9a3579bba3b98 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testdraw2/testdraw2.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {4F033489-2DFF-6946-96D7-A7DE7D37AAD4} + + + + + test + + + diff --git a/premake/VisualC/VS2010/tests/testerror/testerror.vcxproj b/premake/VisualC/VS2010/tests/testerror/testerror.vcxproj new file mode 100755 index 0000000000000..3368637303e00 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testerror/testerror.vcxproj @@ -0,0 +1,129 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {0232629C-6FEC-A541-9EF6-CD4560D95327} + testerror + Win32Proj + + + + Application + true + MultiByte + + + Application + false + MultiByte + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testerror + .exe + true + + + Win32\Release\ + obj\Release\ + testerror + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testerror.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testerror.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testerror.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {859DF586-61E5-5749-AE72-0B8CC7C817D7} + + + {A114B178-D2BB-CF42-A049-034C4C50596F} + + + + + + diff --git a/premake/VisualC/VS2010/tests/testerror/testerror.vcxproj.filters b/premake/VisualC/VS2010/tests/testerror/testerror.vcxproj.filters new file mode 100755 index 0000000000000..43fd6ccaba4ef --- /dev/null +++ b/premake/VisualC/VS2010/tests/testerror/testerror.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {5C705227-B483-A34B-B448-F770ECD3F6F6} + + + + + test + + + diff --git a/premake/VisualC/VS2010/tests/testfile/testfile.vcxproj b/premake/VisualC/VS2010/tests/testfile/testfile.vcxproj new file mode 100755 index 0000000000000..b864e98659aa0 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testfile/testfile.vcxproj @@ -0,0 +1,129 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {D19A3C76-2C05-2643-8D45-E06B9268EDE2} + testfile + Win32Proj + + + + Application + true + MultiByte + + + Application + false + MultiByte + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testfile + .exe + true + + + Win32\Release\ + obj\Release\ + testfile + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testfile.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testfile.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testfile.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {859DF586-61E5-5749-AE72-0B8CC7C817D7} + + + {A114B178-D2BB-CF42-A049-034C4C50596F} + + + + + + diff --git a/premake/VisualC/VS2010/tests/testfile/testfile.vcxproj.filters b/premake/VisualC/VS2010/tests/testfile/testfile.vcxproj.filters new file mode 100755 index 0000000000000..c60e2ce079579 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testfile/testfile.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {D3335365-50F5-5849-9BEC-622319AD299E} + + + + + test + + + diff --git a/premake/VisualC/VS2010/tests/testfilesystem/testfilesystem.vcxproj b/premake/VisualC/VS2010/tests/testfilesystem/testfilesystem.vcxproj new file mode 100755 index 0000000000000..62f9095beb955 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testfilesystem/testfilesystem.vcxproj @@ -0,0 +1,129 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {9B14A8B6-4187-1A41-9664-CAB1C3919CC7} + testfilesystem + Win32Proj + + + + Application + true + MultiByte + + + Application + false + MultiByte + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testfilesystem + .exe + true + + + Win32\Release\ + obj\Release\ + testfilesystem + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testfilesystem.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testfilesystem.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testfilesystem.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {859DF586-61E5-5749-AE72-0B8CC7C817D7} + + + {A114B178-D2BB-CF42-A049-034C4C50596F} + + + + + + diff --git a/premake/VisualC/VS2010/tests/testfilesystem/testfilesystem.vcxproj.filters b/premake/VisualC/VS2010/tests/testfilesystem/testfilesystem.vcxproj.filters new file mode 100755 index 0000000000000..d95a263c1208a --- /dev/null +++ b/premake/VisualC/VS2010/tests/testfilesystem/testfilesystem.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {9D8635B9-1BB8-CD4D-AA2E-53256B52FEFC} + + + + + test + + + diff --git a/premake/VisualC/VS2010/tests/testgamecontroller/testgamecontroller.vcxproj b/premake/VisualC/VS2010/tests/testgamecontroller/testgamecontroller.vcxproj new file mode 100755 index 0000000000000..f30829742bfd3 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testgamecontroller/testgamecontroller.vcxproj @@ -0,0 +1,129 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {2953CE1F-0332-784D-B123-BDA28C15776A} + testgamecontroller + Win32Proj + + + + Application + true + MultiByte + + + Application + false + MultiByte + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testgamecontroller + .exe + true + + + Win32\Release\ + obj\Release\ + testgamecontroller + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testgamecontroller.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testgamecontroller.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testgamecontroller.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {859DF586-61E5-5749-AE72-0B8CC7C817D7} + + + {A114B178-D2BB-CF42-A049-034C4C50596F} + + + + + + diff --git a/premake/VisualC/VS2010/tests/testgamecontroller/testgamecontroller.vcxproj.filters b/premake/VisualC/VS2010/tests/testgamecontroller/testgamecontroller.vcxproj.filters new file mode 100755 index 0000000000000..c1d809b821b02 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testgamecontroller/testgamecontroller.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {2176E079-7D52-BD4A-BD71-B7D3F42322B7} + + + + + test + + + diff --git a/premake/VisualC/VS2010/tests/testgesture/testgesture.vcxproj b/premake/VisualC/VS2010/tests/testgesture/testgesture.vcxproj new file mode 100755 index 0000000000000..c1f35a6c44565 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testgesture/testgesture.vcxproj @@ -0,0 +1,129 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {1F585797-33BC-3643-B0E3-9BD491AF4852} + testgesture + Win32Proj + + + + Application + true + MultiByte + + + Application + false + MultiByte + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testgesture + .exe + true + + + Win32\Release\ + obj\Release\ + testgesture + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testgesture.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testgesture.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testgesture.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {859DF586-61E5-5749-AE72-0B8CC7C817D7} + + + {A114B178-D2BB-CF42-A049-034C4C50596F} + + + + + + diff --git a/premake/VisualC/VS2010/tests/testgesture/testgesture.vcxproj.filters b/premake/VisualC/VS2010/tests/testgesture/testgesture.vcxproj.filters new file mode 100755 index 0000000000000..a2061358ee7bc --- /dev/null +++ b/premake/VisualC/VS2010/tests/testgesture/testgesture.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {F5111E7F-A327-714B-A976-D2CF9C22AC14} + + + + + test + + + diff --git a/premake/VisualC/VS2010/tests/testgl2/testgl2.vcxproj b/premake/VisualC/VS2010/tests/testgl2/testgl2.vcxproj new file mode 100755 index 0000000000000..6fe5017832941 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testgl2/testgl2.vcxproj @@ -0,0 +1,134 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {05B569B7-8C6D-FE47-8AFB-3F5C9B6EC7F4} + testgl2 + Win32Proj + + + + Application + true + MultiByte + + + Application + false + MultiByte + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testgl2 + .exe + true + + + Win32\Release\ + obj\Release\ + testgl2 + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;HAVE_OPENGL;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testgl2.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;HAVE_OPENGL;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + OpenGL32.lib;%(AdditionalDependencies) + $(OutDir)testgl2.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;HAVE_OPENGL;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;HAVE_OPENGL;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + OpenGL32.lib;%(AdditionalDependencies) + $(OutDir)testgl2.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {859DF586-61E5-5749-AE72-0B8CC7C817D7} + + + {72D8473C-9ED1-6041-877A-B45552307F3A} + + + {A114B178-D2BB-CF42-A049-034C4C50596F} + + + + + + diff --git a/premake/VisualC/VS2010/tests/testgl2/testgl2.vcxproj.filters b/premake/VisualC/VS2010/tests/testgl2/testgl2.vcxproj.filters new file mode 100755 index 0000000000000..507c6b6140e13 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testgl2/testgl2.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {A5B30912-1F76-7C40-954E-6D010DBC40E3} + + + + + test + + + diff --git a/premake/VisualC/VS2010/tests/testgles/testgles.vcxproj b/premake/VisualC/VS2010/tests/testgles/testgles.vcxproj new file mode 100755 index 0000000000000..a9c27f344cb97 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testgles/testgles.vcxproj @@ -0,0 +1,132 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {9937576E-DD2A-0B41-9D97-9D3CF1478963} + testgles + Win32Proj + + + + Application + true + MultiByte + + + Application + false + MultiByte + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testgles + .exe + true + + + Win32\Release\ + obj\Release\ + testgles + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testgles.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testgles.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testgles.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {859DF586-61E5-5749-AE72-0B8CC7C817D7} + + + {72D8473C-9ED1-6041-877A-B45552307F3A} + + + {A114B178-D2BB-CF42-A049-034C4C50596F} + + + + + + diff --git a/premake/VisualC/VS2010/tests/testgles/testgles.vcxproj.filters b/premake/VisualC/VS2010/tests/testgles/testgles.vcxproj.filters new file mode 100755 index 0000000000000..3b54f57a8d476 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testgles/testgles.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {C77DA963-9918-E049-9FA0-8DF33A9B4CCD} + + + + + test + + + diff --git a/premake/VisualC/VS2010/tests/testhaptic/testhaptic.vcxproj b/premake/VisualC/VS2010/tests/testhaptic/testhaptic.vcxproj new file mode 100755 index 0000000000000..1a7c88773acf4 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testhaptic/testhaptic.vcxproj @@ -0,0 +1,129 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {4BCD98A1-3F51-3244-8D09-C510E02D045B} + testhaptic + Win32Proj + + + + Application + true + MultiByte + + + Application + false + MultiByte + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testhaptic + .exe + true + + + Win32\Release\ + obj\Release\ + testhaptic + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testhaptic.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testhaptic.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testhaptic.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {859DF586-61E5-5749-AE72-0B8CC7C817D7} + + + {A114B178-D2BB-CF42-A049-034C4C50596F} + + + + + + diff --git a/premake/VisualC/VS2010/tests/testhaptic/testhaptic.vcxproj.filters b/premake/VisualC/VS2010/tests/testhaptic/testhaptic.vcxproj.filters new file mode 100755 index 0000000000000..6e2d2a6529bc4 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testhaptic/testhaptic.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {4379B678-4F5D-1A47-AA63-731BC2761A0F} + + + + + test + + + diff --git a/premake/VisualC/VS2010/tests/testiconv/testiconv.vcxproj b/premake/VisualC/VS2010/tests/testiconv/testiconv.vcxproj new file mode 100755 index 0000000000000..b4718c5f3e3bd --- /dev/null +++ b/premake/VisualC/VS2010/tests/testiconv/testiconv.vcxproj @@ -0,0 +1,129 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {B2DD9042-38C1-6140-852D-ACEF33E172F6} + testiconv + Win32Proj + + + + Application + true + MultiByte + + + Application + false + MultiByte + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testiconv + .exe + true + + + Win32\Release\ + obj\Release\ + testiconv + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testiconv.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testiconv.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" copy ".\..\..\..\..\..\test\utf8.txt" ".\Win32\Debug\utf8.txt" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testiconv.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" copy ".\..\..\..\..\..\test\utf8.txt" ".\Win32\Release\utf8.txt" + + + + + + + + + {859DF586-61E5-5749-AE72-0B8CC7C817D7} + + + {A114B178-D2BB-CF42-A049-034C4C50596F} + + + + + + diff --git a/premake/VisualC/VS2010/tests/testiconv/testiconv.vcxproj.filters b/premake/VisualC/VS2010/tests/testiconv/testiconv.vcxproj.filters new file mode 100755 index 0000000000000..b87c1439a9dd7 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testiconv/testiconv.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {EF1D3B02-621B-794C-9D27-E8A8C1559E5E} + + + + + test + + + diff --git a/premake/VisualC/VS2010/tests/testime/testime.vcxproj b/premake/VisualC/VS2010/tests/testime/testime.vcxproj new file mode 100755 index 0000000000000..d1877480babf9 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testime/testime.vcxproj @@ -0,0 +1,132 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {9EA7D8D7-6D83-0549-92E8-226A16D1BC51} + testime + Win32Proj + + + + Application + true + MultiByte + + + Application + false + MultiByte + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testime + .exe + true + + + Win32\Release\ + obj\Release\ + testime + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testime.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testime.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testime.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {859DF586-61E5-5749-AE72-0B8CC7C817D7} + + + {72D8473C-9ED1-6041-877A-B45552307F3A} + + + {A114B178-D2BB-CF42-A049-034C4C50596F} + + + + + + diff --git a/premake/VisualC/VS2010/tests/testime/testime.vcxproj.filters b/premake/VisualC/VS2010/tests/testime/testime.vcxproj.filters new file mode 100755 index 0000000000000..df6acd02ffd53 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testime/testime.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {D49EDF16-AE15-294B-A234-69C8AAC47BCD} + + + + + test + + + diff --git a/premake/VisualC/VS2010/tests/testjoystick/testjoystick.vcxproj b/premake/VisualC/VS2010/tests/testjoystick/testjoystick.vcxproj new file mode 100755 index 0000000000000..6abf1b96de34e --- /dev/null +++ b/premake/VisualC/VS2010/tests/testjoystick/testjoystick.vcxproj @@ -0,0 +1,129 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {901EBC4D-735F-D84D-9C4A-AC25E87CAD4A} + testjoystick + Win32Proj + + + + Application + true + MultiByte + + + Application + false + MultiByte + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testjoystick + .exe + true + + + Win32\Release\ + obj\Release\ + testjoystick + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testjoystick.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testjoystick.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testjoystick.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {859DF586-61E5-5749-AE72-0B8CC7C817D7} + + + {A114B178-D2BB-CF42-A049-034C4C50596F} + + + + + + diff --git a/premake/VisualC/VS2010/tests/testjoystick/testjoystick.vcxproj.filters b/premake/VisualC/VS2010/tests/testjoystick/testjoystick.vcxproj.filters new file mode 100755 index 0000000000000..fd11e957a40e3 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testjoystick/testjoystick.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {0307F038-A465-704A-90F6-FBDDD201C0AC} + + + + + test + + + diff --git a/premake/VisualC/VS2010/tests/testkeys/testkeys.vcxproj b/premake/VisualC/VS2010/tests/testkeys/testkeys.vcxproj new file mode 100755 index 0000000000000..5548cc5363956 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testkeys/testkeys.vcxproj @@ -0,0 +1,129 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {068A675B-F525-714D-BA49-636E8A4B0564} + testkeys + Win32Proj + + + + Application + true + MultiByte + + + Application + false + MultiByte + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testkeys + .exe + true + + + Win32\Release\ + obj\Release\ + testkeys + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testkeys.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testkeys.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testkeys.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {859DF586-61E5-5749-AE72-0B8CC7C817D7} + + + {A114B178-D2BB-CF42-A049-034C4C50596F} + + + + + + diff --git a/premake/VisualC/VS2010/tests/testkeys/testkeys.vcxproj.filters b/premake/VisualC/VS2010/tests/testkeys/testkeys.vcxproj.filters new file mode 100755 index 0000000000000..178b2fa95bf95 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testkeys/testkeys.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {4A2194D5-EDA7-B349-B29B-9DE407F0C8D0} + + + + + test + + + diff --git a/premake/VisualC/VS2010/tests/testloadso/testloadso.vcxproj b/premake/VisualC/VS2010/tests/testloadso/testloadso.vcxproj new file mode 100755 index 0000000000000..bf2ba2bc032c9 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testloadso/testloadso.vcxproj @@ -0,0 +1,129 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {63154644-828E-7F40-8024-6EEDF62436D1} + testloadso + Win32Proj + + + + Application + true + MultiByte + + + Application + false + MultiByte + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testloadso + .exe + true + + + Win32\Release\ + obj\Release\ + testloadso + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testloadso.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testloadso.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testloadso.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {859DF586-61E5-5749-AE72-0B8CC7C817D7} + + + {A114B178-D2BB-CF42-A049-034C4C50596F} + + + + + + diff --git a/premake/VisualC/VS2010/tests/testloadso/testloadso.vcxproj.filters b/premake/VisualC/VS2010/tests/testloadso/testloadso.vcxproj.filters new file mode 100755 index 0000000000000..ef5cf6a13caeb --- /dev/null +++ b/premake/VisualC/VS2010/tests/testloadso/testloadso.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {CE5A3405-8AF3-454C-89FB-1B0BB87D4492} + + + + + test + + + diff --git a/premake/VisualC/VS2010/tests/testlock/testlock.vcxproj b/premake/VisualC/VS2010/tests/testlock/testlock.vcxproj new file mode 100755 index 0000000000000..79ba6784f0609 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testlock/testlock.vcxproj @@ -0,0 +1,129 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {F0F3C9F2-2F1A-C842-9757-40DC67F4219D} + testlock + Win32Proj + + + + Application + true + MultiByte + + + Application + false + MultiByte + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testlock + .exe + true + + + Win32\Release\ + obj\Release\ + testlock + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testlock.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testlock.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testlock.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {859DF586-61E5-5749-AE72-0B8CC7C817D7} + + + {A114B178-D2BB-CF42-A049-034C4C50596F} + + + + + + diff --git a/premake/VisualC/VS2010/tests/testlock/testlock.vcxproj.filters b/premake/VisualC/VS2010/tests/testlock/testlock.vcxproj.filters new file mode 100755 index 0000000000000..ace4dc56e39cf --- /dev/null +++ b/premake/VisualC/VS2010/tests/testlock/testlock.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {FEC01265-26F6-864A-B022-454E000897D8} + + + + + test + + + diff --git a/premake/VisualC/VS2010/tests/testmessage/testmessage.vcxproj b/premake/VisualC/VS2010/tests/testmessage/testmessage.vcxproj new file mode 100755 index 0000000000000..0811de0993ed6 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testmessage/testmessage.vcxproj @@ -0,0 +1,129 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {48910BD1-FBB6-5D47-A5D2-4EA2E5D91F72} + testmessage + Win32Proj + + + + Application + true + MultiByte + + + Application + false + MultiByte + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testmessage + .exe + true + + + Win32\Release\ + obj\Release\ + testmessage + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testmessage.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testmessage.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testmessage.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {859DF586-61E5-5749-AE72-0B8CC7C817D7} + + + {A114B178-D2BB-CF42-A049-034C4C50596F} + + + + + + diff --git a/premake/VisualC/VS2010/tests/testmessage/testmessage.vcxproj.filters b/premake/VisualC/VS2010/tests/testmessage/testmessage.vcxproj.filters new file mode 100755 index 0000000000000..540335a645a0a --- /dev/null +++ b/premake/VisualC/VS2010/tests/testmessage/testmessage.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {C9093CDD-7437-DD4D-AC04-D8FAD1E1BB0C} + + + + + test + + + diff --git a/premake/VisualC/VS2010/tests/testmultiaudio/testmultiaudio.vcxproj b/premake/VisualC/VS2010/tests/testmultiaudio/testmultiaudio.vcxproj new file mode 100755 index 0000000000000..0d271213e4140 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testmultiaudio/testmultiaudio.vcxproj @@ -0,0 +1,129 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {E1DD1D32-C9B7-B14B-BD41-EA39A0A39F6D} + testmultiaudio + Win32Proj + + + + Application + true + MultiByte + + + Application + false + MultiByte + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testmultiaudio + .exe + true + + + Win32\Release\ + obj\Release\ + testmultiaudio + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testmultiaudio.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testmultiaudio.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" copy ".\..\..\..\..\..\test\sample.wav" ".\Win32\Debug\sample.wav" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testmultiaudio.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" copy ".\..\..\..\..\..\test\sample.wav" ".\Win32\Release\sample.wav" + + + + + + + + + {859DF586-61E5-5749-AE72-0B8CC7C817D7} + + + {A114B178-D2BB-CF42-A049-034C4C50596F} + + + + + + diff --git a/premake/VisualC/VS2010/tests/testmultiaudio/testmultiaudio.vcxproj.filters b/premake/VisualC/VS2010/tests/testmultiaudio/testmultiaudio.vcxproj.filters new file mode 100755 index 0000000000000..3ce784e79a71b --- /dev/null +++ b/premake/VisualC/VS2010/tests/testmultiaudio/testmultiaudio.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {C0BB9EF7-2D7E-D149-83FE-EC5225B3EB63} + + + + + test + + + diff --git a/premake/VisualC/VS2010/tests/testnative/testnative.vcxproj b/premake/VisualC/VS2010/tests/testnative/testnative.vcxproj new file mode 100755 index 0000000000000..652295b08e07f --- /dev/null +++ b/premake/VisualC/VS2010/tests/testnative/testnative.vcxproj @@ -0,0 +1,134 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {6BD39C1C-1CC2-E946-AE2C-420BADA7F6CB} + testnative + Win32Proj + + + + Application + true + MultiByte + + + Application + false + MultiByte + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testnative + .exe + true + + + Win32\Release\ + obj\Release\ + testnative + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testnative.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testnative.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" copy ".\..\..\..\..\..\test\icon.bmp" ".\Win32\Debug\icon.bmp" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testnative.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" copy ".\..\..\..\..\..\test\icon.bmp" ".\Win32\Release\icon.bmp" + + + + + + + + + + + + + + {859DF586-61E5-5749-AE72-0B8CC7C817D7} + + + {A114B178-D2BB-CF42-A049-034C4C50596F} + + + + + + diff --git a/premake/VisualC/VS2010/tests/testnative/testnative.vcxproj.filters b/premake/VisualC/VS2010/tests/testnative/testnative.vcxproj.filters new file mode 100755 index 0000000000000..2fe621edfaf73 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testnative/testnative.vcxproj.filters @@ -0,0 +1,21 @@ + + + + + {5FE70C28-86C3-DF4B-A4C3-02735F707D80} + + + + + test + + + + + test + + + test + + + diff --git a/premake/VisualC/VS2010/tests/testoverlay2/testoverlay2.vcxproj b/premake/VisualC/VS2010/tests/testoverlay2/testoverlay2.vcxproj new file mode 100755 index 0000000000000..8d8645087e56f --- /dev/null +++ b/premake/VisualC/VS2010/tests/testoverlay2/testoverlay2.vcxproj @@ -0,0 +1,129 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {858D4FF2-0931-604C-853C-017D94C11F66} + testoverlay2 + Win32Proj + + + + Application + true + MultiByte + + + Application + false + MultiByte + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testoverlay2 + .exe + true + + + Win32\Release\ + obj\Release\ + testoverlay2 + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testoverlay2.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testoverlay2.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" copy ".\..\..\..\..\..\test\moose.dat" ".\Win32\Debug\moose.dat" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testoverlay2.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" copy ".\..\..\..\..\..\test\moose.dat" ".\Win32\Release\moose.dat" + + + + + + + + + {859DF586-61E5-5749-AE72-0B8CC7C817D7} + + + {A114B178-D2BB-CF42-A049-034C4C50596F} + + + + + + diff --git a/premake/VisualC/VS2010/tests/testoverlay2/testoverlay2.vcxproj.filters b/premake/VisualC/VS2010/tests/testoverlay2/testoverlay2.vcxproj.filters new file mode 100755 index 0000000000000..00fc93dd5e5ab --- /dev/null +++ b/premake/VisualC/VS2010/tests/testoverlay2/testoverlay2.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {CFB6C314-736C-EC4D-9A33-3B3E6E9B8F64} + + + + + test + + + diff --git a/premake/VisualC/VS2010/tests/testplatform/testplatform.vcxproj b/premake/VisualC/VS2010/tests/testplatform/testplatform.vcxproj new file mode 100755 index 0000000000000..bff2c1162e0af --- /dev/null +++ b/premake/VisualC/VS2010/tests/testplatform/testplatform.vcxproj @@ -0,0 +1,129 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {5BFF537B-8785-D14E-9C7D-25B693477FB8} + testplatform + Win32Proj + + + + Application + true + MultiByte + + + Application + false + MultiByte + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testplatform + .exe + true + + + Win32\Release\ + obj\Release\ + testplatform + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testplatform.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testplatform.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testplatform.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {859DF586-61E5-5749-AE72-0B8CC7C817D7} + + + {A114B178-D2BB-CF42-A049-034C4C50596F} + + + + + + diff --git a/premake/VisualC/VS2010/tests/testplatform/testplatform.vcxproj.filters b/premake/VisualC/VS2010/tests/testplatform/testplatform.vcxproj.filters new file mode 100755 index 0000000000000..d706cc07eb6f1 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testplatform/testplatform.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {D32741B4-2D14-2C44-9815-497A65480F87} + + + + + test + + + diff --git a/premake/VisualC/VS2010/tests/testpower/testpower.vcxproj b/premake/VisualC/VS2010/tests/testpower/testpower.vcxproj new file mode 100755 index 0000000000000..cb71db82f2867 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testpower/testpower.vcxproj @@ -0,0 +1,129 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {0DD0AD84-3DE8-2F49-B31F-4B8F41864A89} + testpower + Win32Proj + + + + Application + true + MultiByte + + + Application + false + MultiByte + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testpower + .exe + true + + + Win32\Release\ + obj\Release\ + testpower + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testpower.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testpower.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testpower.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {859DF586-61E5-5749-AE72-0B8CC7C817D7} + + + {A114B178-D2BB-CF42-A049-034C4C50596F} + + + + + + diff --git a/premake/VisualC/VS2010/tests/testpower/testpower.vcxproj.filters b/premake/VisualC/VS2010/tests/testpower/testpower.vcxproj.filters new file mode 100755 index 0000000000000..edaf2722ec885 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testpower/testpower.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {7FCC575D-C9C2-3146-8E3D-5D4E43B20EB3} + + + + + test + + + diff --git a/premake/VisualC/VS2010/tests/testrelative/testrelative.vcxproj b/premake/VisualC/VS2010/tests/testrelative/testrelative.vcxproj new file mode 100755 index 0000000000000..192a679cb0cf4 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testrelative/testrelative.vcxproj @@ -0,0 +1,132 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {49527EB7-9A96-9743-BAE3-CA18CAD2FC54} + testrelative + Win32Proj + + + + Application + true + MultiByte + + + Application + false + MultiByte + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testrelative + .exe + true + + + Win32\Release\ + obj\Release\ + testrelative + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testrelative.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testrelative.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testrelative.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {859DF586-61E5-5749-AE72-0B8CC7C817D7} + + + {72D8473C-9ED1-6041-877A-B45552307F3A} + + + {A114B178-D2BB-CF42-A049-034C4C50596F} + + + + + + diff --git a/premake/VisualC/VS2010/tests/testrelative/testrelative.vcxproj.filters b/premake/VisualC/VS2010/tests/testrelative/testrelative.vcxproj.filters new file mode 100755 index 0000000000000..5be0e713ac0c7 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testrelative/testrelative.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {B674DEFB-2B8A-B641-9B90-E38E9E9275A3} + + + + + test + + + diff --git a/premake/VisualC/VS2010/tests/testrendercopyex/testrendercopyex.vcxproj b/premake/VisualC/VS2010/tests/testrendercopyex/testrendercopyex.vcxproj new file mode 100755 index 0000000000000..0a8b11a4bb0ce --- /dev/null +++ b/premake/VisualC/VS2010/tests/testrendercopyex/testrendercopyex.vcxproj @@ -0,0 +1,132 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {4F5CC446-A806-DD43-A1C4-73C4C37D1895} + testrendercopyex + Win32Proj + + + + Application + true + MultiByte + + + Application + false + MultiByte + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testrendercopyex + .exe + true + + + Win32\Release\ + obj\Release\ + testrendercopyex + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testrendercopyex.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testrendercopyex.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" copy ".\..\..\..\..\..\test\icon.bmp" ".\Win32\Debug\icon.bmp" copy ".\..\..\..\..\..\test\sample.bmp" ".\Win32\Debug\sample.bmp" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testrendercopyex.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" copy ".\..\..\..\..\..\test\icon.bmp" ".\Win32\Release\icon.bmp" copy ".\..\..\..\..\..\test\sample.bmp" ".\Win32\Release\sample.bmp" + + + + + + + + + {859DF586-61E5-5749-AE72-0B8CC7C817D7} + + + {72D8473C-9ED1-6041-877A-B45552307F3A} + + + {A114B178-D2BB-CF42-A049-034C4C50596F} + + + + + + diff --git a/premake/VisualC/VS2010/tests/testrendercopyex/testrendercopyex.vcxproj.filters b/premake/VisualC/VS2010/tests/testrendercopyex/testrendercopyex.vcxproj.filters new file mode 100755 index 0000000000000..e7c89f7826200 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testrendercopyex/testrendercopyex.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {B3395C27-9611-834E-95FB-A4B6D1593513} + + + + + test + + + diff --git a/premake/VisualC/VS2010/tests/testrendertarget/testrendertarget.vcxproj b/premake/VisualC/VS2010/tests/testrendertarget/testrendertarget.vcxproj new file mode 100755 index 0000000000000..ce3792e353f4b --- /dev/null +++ b/premake/VisualC/VS2010/tests/testrendertarget/testrendertarget.vcxproj @@ -0,0 +1,132 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {81602E3E-93FC-2740-B4BD-BC80BCD715D6} + testrendertarget + Win32Proj + + + + Application + true + MultiByte + + + Application + false + MultiByte + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testrendertarget + .exe + true + + + Win32\Release\ + obj\Release\ + testrendertarget + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testrendertarget.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testrendertarget.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" copy ".\..\..\..\..\..\test\sample.bmp" ".\Win32\Debug\sample.bmp" copy ".\..\..\..\..\..\test\icon.bmp" ".\Win32\Debug\icon.bmp" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testrendertarget.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" copy ".\..\..\..\..\..\test\sample.bmp" ".\Win32\Release\sample.bmp" copy ".\..\..\..\..\..\test\icon.bmp" ".\Win32\Release\icon.bmp" + + + + + + + + + {859DF586-61E5-5749-AE72-0B8CC7C817D7} + + + {72D8473C-9ED1-6041-877A-B45552307F3A} + + + {A114B178-D2BB-CF42-A049-034C4C50596F} + + + + + + diff --git a/premake/VisualC/VS2010/tests/testrendertarget/testrendertarget.vcxproj.filters b/premake/VisualC/VS2010/tests/testrendertarget/testrendertarget.vcxproj.filters new file mode 100755 index 0000000000000..b266a4fdfc537 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testrendertarget/testrendertarget.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {646A115A-D0C0-B842-95ED-837835BB681D} + + + + + test + + + diff --git a/premake/VisualC/VS2010/tests/testresample/testresample.vcxproj b/premake/VisualC/VS2010/tests/testresample/testresample.vcxproj new file mode 100755 index 0000000000000..a920b67457e2e --- /dev/null +++ b/premake/VisualC/VS2010/tests/testresample/testresample.vcxproj @@ -0,0 +1,129 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {60819005-330D-4948-AFC5-173584DCBA84} + testresample + Win32Proj + + + + Application + true + MultiByte + + + Application + false + MultiByte + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testresample + .exe + true + + + Win32\Release\ + obj\Release\ + testresample + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testresample.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testresample.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" copy ".\..\..\..\..\..\test\sample.wav" ".\Win32\Debug\sample.wav" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testresample.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" copy ".\..\..\..\..\..\test\sample.wav" ".\Win32\Release\sample.wav" + + + + + + + + + {859DF586-61E5-5749-AE72-0B8CC7C817D7} + + + {A114B178-D2BB-CF42-A049-034C4C50596F} + + + + + + diff --git a/premake/VisualC/VS2010/tests/testresample/testresample.vcxproj.filters b/premake/VisualC/VS2010/tests/testresample/testresample.vcxproj.filters new file mode 100755 index 0000000000000..23679655ca93b --- /dev/null +++ b/premake/VisualC/VS2010/tests/testresample/testresample.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {3E668F4B-40FD-E342-8C8A-62F0879DF843} + + + + + test + + + diff --git a/premake/VisualC/VS2010/tests/testrumble/testrumble.vcxproj b/premake/VisualC/VS2010/tests/testrumble/testrumble.vcxproj new file mode 100755 index 0000000000000..8f1e916222573 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testrumble/testrumble.vcxproj @@ -0,0 +1,129 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {C9ABF4FE-1D59-7A41-80B6-87C169B9FCB5} + testrumble + Win32Proj + + + + Application + true + MultiByte + + + Application + false + MultiByte + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testrumble + .exe + true + + + Win32\Release\ + obj\Release\ + testrumble + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testrumble.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testrumble.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testrumble.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {859DF586-61E5-5749-AE72-0B8CC7C817D7} + + + {A114B178-D2BB-CF42-A049-034C4C50596F} + + + + + + diff --git a/premake/VisualC/VS2010/tests/testrumble/testrumble.vcxproj.filters b/premake/VisualC/VS2010/tests/testrumble/testrumble.vcxproj.filters new file mode 100755 index 0000000000000..62191ca077ae0 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testrumble/testrumble.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {FB88A5FA-D8AB-4341-B4CF-4BBFB048885D} + + + + + test + + + diff --git a/premake/VisualC/VS2010/tests/testscale/testscale.vcxproj b/premake/VisualC/VS2010/tests/testscale/testscale.vcxproj new file mode 100755 index 0000000000000..16cf37aa955ae --- /dev/null +++ b/premake/VisualC/VS2010/tests/testscale/testscale.vcxproj @@ -0,0 +1,132 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {48F4500B-46C3-CD46-942E-59482243211C} + testscale + Win32Proj + + + + Application + true + MultiByte + + + Application + false + MultiByte + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testscale + .exe + true + + + Win32\Release\ + obj\Release\ + testscale + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testscale.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testscale.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" copy ".\..\..\..\..\..\test\sample.bmp" ".\Win32\Debug\sample.bmp" copy ".\..\..\..\..\..\test\icon.bmp" ".\Win32\Debug\icon.bmp" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testscale.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" copy ".\..\..\..\..\..\test\sample.bmp" ".\Win32\Release\sample.bmp" copy ".\..\..\..\..\..\test\icon.bmp" ".\Win32\Release\icon.bmp" + + + + + + + + + {859DF586-61E5-5749-AE72-0B8CC7C817D7} + + + {72D8473C-9ED1-6041-877A-B45552307F3A} + + + {A114B178-D2BB-CF42-A049-034C4C50596F} + + + + + + diff --git a/premake/VisualC/VS2010/tests/testscale/testscale.vcxproj.filters b/premake/VisualC/VS2010/tests/testscale/testscale.vcxproj.filters new file mode 100755 index 0000000000000..42664423e86eb --- /dev/null +++ b/premake/VisualC/VS2010/tests/testscale/testscale.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {99327280-5F3F-C948-8249-0325B27EB330} + + + + + test + + + diff --git a/premake/VisualC/VS2010/tests/testsem/testsem.vcxproj b/premake/VisualC/VS2010/tests/testsem/testsem.vcxproj new file mode 100755 index 0000000000000..9fdcebb996f92 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testsem/testsem.vcxproj @@ -0,0 +1,129 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {C73D37B5-71B8-E842-BBBE-278EBB71D245} + testsem + Win32Proj + + + + Application + true + MultiByte + + + Application + false + MultiByte + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testsem + .exe + true + + + Win32\Release\ + obj\Release\ + testsem + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testsem.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testsem.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testsem.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {859DF586-61E5-5749-AE72-0B8CC7C817D7} + + + {A114B178-D2BB-CF42-A049-034C4C50596F} + + + + + + diff --git a/premake/VisualC/VS2010/tests/testsem/testsem.vcxproj.filters b/premake/VisualC/VS2010/tests/testsem/testsem.vcxproj.filters new file mode 100755 index 0000000000000..8cf1dde2f8e9f --- /dev/null +++ b/premake/VisualC/VS2010/tests/testsem/testsem.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {FE68A305-6A4C-B043-9351-4D57EBD44E6A} + + + + + test + + + diff --git a/premake/VisualC/VS2010/tests/testshader/testshader.vcxproj b/premake/VisualC/VS2010/tests/testshader/testshader.vcxproj new file mode 100755 index 0000000000000..994155ba4e4c7 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testshader/testshader.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {1246F077-C27B-F346-9D88-4CD5AA23CCB4} + testshader + Win32Proj + + + + Application + true + MultiByte + + + Application + false + MultiByte + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testshader + .exe + true + + + Win32\Release\ + obj\Release\ + testshader + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;HAVE_OPENGL;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testshader.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;HAVE_OPENGL;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + OpenGL32.lib;%(AdditionalDependencies) + $(OutDir)testshader.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" copy ".\..\..\..\..\..\test\icon.bmp" ".\Win32\Debug\icon.bmp" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;HAVE_OPENGL;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;HAVE_OPENGL;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + OpenGL32.lib;%(AdditionalDependencies) + $(OutDir)testshader.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" copy ".\..\..\..\..\..\test\icon.bmp" ".\Win32\Release\icon.bmp" + + + + + + + + + {859DF586-61E5-5749-AE72-0B8CC7C817D7} + + + {A114B178-D2BB-CF42-A049-034C4C50596F} + + + + + + diff --git a/premake/VisualC/VS2010/tests/testshader/testshader.vcxproj.filters b/premake/VisualC/VS2010/tests/testshader/testshader.vcxproj.filters new file mode 100755 index 0000000000000..044bee5286c26 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testshader/testshader.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {87916299-E52F-1E4E-B936-38E2140B0369} + + + + + test + + + diff --git a/premake/VisualC/VS2010/tests/testshape/testshape.vcxproj b/premake/VisualC/VS2010/tests/testshape/testshape.vcxproj new file mode 100755 index 0000000000000..6d92e99f03415 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testshape/testshape.vcxproj @@ -0,0 +1,129 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {14B1A8FE-44AC-C04E-BFDE-7AC1D72E37DA} + testshape + Win32Proj + + + + Application + true + MultiByte + + + Application + false + MultiByte + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testshape + .exe + true + + + Win32\Release\ + obj\Release\ + testshape + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testshape.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testshape.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" if not exist ".\Win32\Debug\shapes" ( mkdir ".\Win32\Debug\shapes" ) copy ".\..\..\..\..\..\test\shapes\*.bmp" ".\Win32\Debug\shapes\*.bmp" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testshape.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" if not exist ".\Win32\Release\shapes" ( mkdir ".\Win32\Release\shapes" ) copy ".\..\..\..\..\..\test\shapes\*.bmp" ".\Win32\Release\shapes\*.bmp" + + + + + + + + + {859DF586-61E5-5749-AE72-0B8CC7C817D7} + + + {A114B178-D2BB-CF42-A049-034C4C50596F} + + + + + + diff --git a/premake/VisualC/VS2010/tests/testshape/testshape.vcxproj.filters b/premake/VisualC/VS2010/tests/testshape/testshape.vcxproj.filters new file mode 100755 index 0000000000000..579a9f970a088 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testshape/testshape.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {85FFB357-D912-AB4D-BE80-D5DC957EF836} + + + + + test + + + diff --git a/premake/VisualC/VS2010/tests/testsprite2/testsprite2.vcxproj b/premake/VisualC/VS2010/tests/testsprite2/testsprite2.vcxproj new file mode 100755 index 0000000000000..793edeccd855e --- /dev/null +++ b/premake/VisualC/VS2010/tests/testsprite2/testsprite2.vcxproj @@ -0,0 +1,132 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {DEB1CD6C-9CCF-4B44-A29F-3067FDB33838} + testsprite2 + Win32Proj + + + + Application + true + MultiByte + + + Application + false + MultiByte + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testsprite2 + .exe + true + + + Win32\Release\ + obj\Release\ + testsprite2 + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testsprite2.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testsprite2.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" copy ".\..\..\..\..\..\test\icon.bmp" ".\Win32\Debug\icon.bmp" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testsprite2.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" copy ".\..\..\..\..\..\test\icon.bmp" ".\Win32\Release\icon.bmp" + + + + + + + + + {859DF586-61E5-5749-AE72-0B8CC7C817D7} + + + {72D8473C-9ED1-6041-877A-B45552307F3A} + + + {A114B178-D2BB-CF42-A049-034C4C50596F} + + + + + + diff --git a/premake/VisualC/VS2010/tests/testsprite2/testsprite2.vcxproj.filters b/premake/VisualC/VS2010/tests/testsprite2/testsprite2.vcxproj.filters new file mode 100755 index 0000000000000..ad7fee707f7e3 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testsprite2/testsprite2.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {E40CCFF9-BD96-E647-8B8F-BCC4CAA08BC5} + + + + + test + + + diff --git a/premake/VisualC/VS2010/tests/testspriteminimal/testspriteminimal.vcxproj b/premake/VisualC/VS2010/tests/testspriteminimal/testspriteminimal.vcxproj new file mode 100755 index 0000000000000..1a290a7b34f27 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testspriteminimal/testspriteminimal.vcxproj @@ -0,0 +1,129 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {262FA1CF-740E-2746-B72E-B0330B9F1337} + testspriteminimal + Win32Proj + + + + Application + true + MultiByte + + + Application + false + MultiByte + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testspriteminimal + .exe + true + + + Win32\Release\ + obj\Release\ + testspriteminimal + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testspriteminimal.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testspriteminimal.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" copy ".\..\..\..\..\..\test\icon.bmp" ".\Win32\Debug\icon.bmp" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testspriteminimal.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" copy ".\..\..\..\..\..\test\icon.bmp" ".\Win32\Release\icon.bmp" + + + + + + + + + {859DF586-61E5-5749-AE72-0B8CC7C817D7} + + + {A114B178-D2BB-CF42-A049-034C4C50596F} + + + + + + diff --git a/premake/VisualC/VS2010/tests/testspriteminimal/testspriteminimal.vcxproj.filters b/premake/VisualC/VS2010/tests/testspriteminimal/testspriteminimal.vcxproj.filters new file mode 100755 index 0000000000000..6da0d95207c70 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testspriteminimal/testspriteminimal.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {C1F3E1A3-1C29-604B-BAD9-FC8981990202} + + + + + test + + + diff --git a/premake/VisualC/VS2010/tests/teststreaming/teststreaming.vcxproj b/premake/VisualC/VS2010/tests/teststreaming/teststreaming.vcxproj new file mode 100755 index 0000000000000..21fb1bb21ae4e --- /dev/null +++ b/premake/VisualC/VS2010/tests/teststreaming/teststreaming.vcxproj @@ -0,0 +1,129 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {4076F581-39F7-4144-A5B8-5FDBDB3B128B} + teststreaming + Win32Proj + + + + Application + true + MultiByte + + + Application + false + MultiByte + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + teststreaming + .exe + true + + + Win32\Release\ + obj\Release\ + teststreaming + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)teststreaming.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)teststreaming.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" copy ".\..\..\..\..\..\test\moose.dat" ".\Win32\Debug\moose.dat" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)teststreaming.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" copy ".\..\..\..\..\..\test\moose.dat" ".\Win32\Release\moose.dat" + + + + + + + + + {859DF586-61E5-5749-AE72-0B8CC7C817D7} + + + {A114B178-D2BB-CF42-A049-034C4C50596F} + + + + + + diff --git a/premake/VisualC/VS2010/tests/teststreaming/teststreaming.vcxproj.filters b/premake/VisualC/VS2010/tests/teststreaming/teststreaming.vcxproj.filters new file mode 100755 index 0000000000000..d144858dab106 --- /dev/null +++ b/premake/VisualC/VS2010/tests/teststreaming/teststreaming.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {76FE2D97-05DA-1A43-AEFF-BE8B330AD00B} + + + + + test + + + diff --git a/premake/VisualC/VS2010/tests/testthread/testthread.vcxproj b/premake/VisualC/VS2010/tests/testthread/testthread.vcxproj new file mode 100755 index 0000000000000..11c03a6bfbc6d --- /dev/null +++ b/premake/VisualC/VS2010/tests/testthread/testthread.vcxproj @@ -0,0 +1,129 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {0DD89D04-2A0A-2348-A5E1-12A7AEE4200D} + testthread + Win32Proj + + + + Application + true + MultiByte + + + Application + false + MultiByte + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testthread + .exe + true + + + Win32\Release\ + obj\Release\ + testthread + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testthread.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testthread.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testthread.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {859DF586-61E5-5749-AE72-0B8CC7C817D7} + + + {A114B178-D2BB-CF42-A049-034C4C50596F} + + + + + + diff --git a/premake/VisualC/VS2010/tests/testthread/testthread.vcxproj.filters b/premake/VisualC/VS2010/tests/testthread/testthread.vcxproj.filters new file mode 100755 index 0000000000000..c961965f75841 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testthread/testthread.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {734113B6-1B28-9F4D-BCAC-9A7D215B7112} + + + + + test + + + diff --git a/premake/VisualC/VS2010/tests/testtimer/testtimer.vcxproj b/premake/VisualC/VS2010/tests/testtimer/testtimer.vcxproj new file mode 100755 index 0000000000000..c2e3c6bce2856 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testtimer/testtimer.vcxproj @@ -0,0 +1,129 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {F999361E-C0B3-ED43-975D-26D9A9CF5DDE} + testtimer + Win32Proj + + + + Application + true + MultiByte + + + Application + false + MultiByte + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testtimer + .exe + true + + + Win32\Release\ + obj\Release\ + testtimer + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testtimer.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testtimer.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testtimer.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {859DF586-61E5-5749-AE72-0B8CC7C817D7} + + + {A114B178-D2BB-CF42-A049-034C4C50596F} + + + + + + diff --git a/premake/VisualC/VS2010/tests/testtimer/testtimer.vcxproj.filters b/premake/VisualC/VS2010/tests/testtimer/testtimer.vcxproj.filters new file mode 100755 index 0000000000000..9353a5e3c2560 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testtimer/testtimer.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {EB3B2709-1B71-694E-9031-647CA07835C3} + + + + + test + + + diff --git a/premake/VisualC/VS2010/tests/testver/testver.vcxproj b/premake/VisualC/VS2010/tests/testver/testver.vcxproj new file mode 100755 index 0000000000000..d2675c53e9022 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testver/testver.vcxproj @@ -0,0 +1,129 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {8FB2FB8C-FA28-D146-A767-0CB74E35643C} + testver + Win32Proj + + + + Application + true + MultiByte + + + Application + false + MultiByte + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testver + .exe + true + + + Win32\Release\ + obj\Release\ + testver + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testver.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testver.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testver.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {859DF586-61E5-5749-AE72-0B8CC7C817D7} + + + {A114B178-D2BB-CF42-A049-034C4C50596F} + + + + + + diff --git a/premake/VisualC/VS2010/tests/testver/testver.vcxproj.filters b/premake/VisualC/VS2010/tests/testver/testver.vcxproj.filters new file mode 100755 index 0000000000000..596fa62e0dd84 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testver/testver.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {C091566F-B02C-844D-B140-F6562E245374} + + + + + test + + + diff --git a/premake/VisualC/VS2010/tests/testwm2/testwm2.vcxproj b/premake/VisualC/VS2010/tests/testwm2/testwm2.vcxproj new file mode 100755 index 0000000000000..12b0c33894492 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testwm2/testwm2.vcxproj @@ -0,0 +1,132 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {41F4E0C8-9F68-7E4E-BEF1-AB5279264003} + testwm2 + Win32Proj + + + + Application + true + MultiByte + + + Application + false + MultiByte + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testwm2 + .exe + true + + + Win32\Release\ + obj\Release\ + testwm2 + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testwm2.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testwm2.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testwm2.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {859DF586-61E5-5749-AE72-0B8CC7C817D7} + + + {72D8473C-9ED1-6041-877A-B45552307F3A} + + + {A114B178-D2BB-CF42-A049-034C4C50596F} + + + + + + diff --git a/premake/VisualC/VS2010/tests/testwm2/testwm2.vcxproj.filters b/premake/VisualC/VS2010/tests/testwm2/testwm2.vcxproj.filters new file mode 100755 index 0000000000000..b8341acf412c0 --- /dev/null +++ b/premake/VisualC/VS2010/tests/testwm2/testwm2.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {42AD74BA-CF00-7046-A4A7-8E421336F7C0} + + + + + test + + + diff --git a/premake/VisualC/VS2010/tests/torturethread/torturethread.vcxproj b/premake/VisualC/VS2010/tests/torturethread/torturethread.vcxproj new file mode 100755 index 0000000000000..3722180420df3 --- /dev/null +++ b/premake/VisualC/VS2010/tests/torturethread/torturethread.vcxproj @@ -0,0 +1,129 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {B4CE343D-65CF-FB45-9505-D1D9EE28CE57} + torturethread + Win32Proj + + + + Application + true + MultiByte + + + Application + false + MultiByte + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + torturethread + .exe + true + + + Win32\Release\ + obj\Release\ + torturethread + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)torturethread.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)torturethread.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)torturethread.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {859DF586-61E5-5749-AE72-0B8CC7C817D7} + + + {A114B178-D2BB-CF42-A049-034C4C50596F} + + + + + + diff --git a/premake/VisualC/VS2010/tests/torturethread/torturethread.vcxproj.filters b/premake/VisualC/VS2010/tests/torturethread/torturethread.vcxproj.filters new file mode 100755 index 0000000000000..48450120f5ed2 --- /dev/null +++ b/premake/VisualC/VS2010/tests/torturethread/torturethread.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {C7381C10-2E45-444F-AB84-98854EED617F} + + + + + test + + + diff --git a/premake/VisualC/VS2012/SDL.sln b/premake/VisualC/VS2012/SDL.sln new file mode 100755 index 0000000000000..fc3fd0dd9b0b8 --- /dev/null +++ b/premake/VisualC/VS2012/SDL.sln @@ -0,0 +1,487 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2012 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testjoystick", "tests\testjoystick\testjoystick.vcxproj", "{867A2823-E792-3749-A47C-1B5F118FD1F9}" + ProjectSection(ProjectDependencies) = postProject + {47B50335-DB5D-B948-B80C-E361ED5793F5} = {47B50335-DB5D-B948-B80C-E361ED5793F5} + {7F1E020B-52F6-584E-B841-8B390015238B} = {7F1E020B-52F6-584E-B841-8B390015238B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testfilesystem", "tests\testfilesystem\testfilesystem.vcxproj", "{259763DF-AC86-B445-A465-064452171EB6}" + ProjectSection(ProjectDependencies) = postProject + {47B50335-DB5D-B948-B80C-E361ED5793F5} = {47B50335-DB5D-B948-B80C-E361ED5793F5} + {7F1E020B-52F6-584E-B841-8B390015238B} = {7F1E020B-52F6-584E-B841-8B390015238B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testsem", "tests\testsem\testsem.vcxproj", "{15C9C3A3-A6CD-F24B-AA55-74C46DFB123D}" + ProjectSection(ProjectDependencies) = postProject + {47B50335-DB5D-B948-B80C-E361ED5793F5} = {47B50335-DB5D-B948-B80C-E361ED5793F5} + {7F1E020B-52F6-584E-B841-8B390015238B} = {7F1E020B-52F6-584E-B841-8B390015238B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testnative", "tests\testnative\testnative.vcxproj", "{BC693F25-4940-BB43-8529-E27D65275975}" + ProjectSection(ProjectDependencies) = postProject + {47B50335-DB5D-B948-B80C-E361ED5793F5} = {47B50335-DB5D-B948-B80C-E361ED5793F5} + {7F1E020B-52F6-584E-B841-8B390015238B} = {7F1E020B-52F6-584E-B841-8B390015238B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testscale", "tests\testscale\testscale.vcxproj", "{8BBBF780-F9F4-0843-85B4-6100C0771E09}" + ProjectSection(ProjectDependencies) = postProject + {47B50335-DB5D-B948-B80C-E361ED5793F5} = {47B50335-DB5D-B948-B80C-E361ED5793F5} + {E544B08A-C532-884E-A0BE-0F6F7F700067} = {E544B08A-C532-884E-A0BE-0F6F7F700067} + {7F1E020B-52F6-584E-B841-8B390015238B} = {7F1E020B-52F6-584E-B841-8B390015238B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testgamecontroller", "tests\testgamecontroller\testgamecontroller.vcxproj", "{24AB4CEE-B82E-9C42-8ED2-9F3F7F3006AE}" + ProjectSection(ProjectDependencies) = postProject + {47B50335-DB5D-B948-B80C-E361ED5793F5} = {47B50335-DB5D-B948-B80C-E361ED5793F5} + {7F1E020B-52F6-584E-B841-8B390015238B} = {7F1E020B-52F6-584E-B841-8B390015238B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testrendertarget", "tests\testrendertarget\testrendertarget.vcxproj", "{98CD7D27-4B74-4942-81DC-C82474A2E822}" + ProjectSection(ProjectDependencies) = postProject + {47B50335-DB5D-B948-B80C-E361ED5793F5} = {47B50335-DB5D-B948-B80C-E361ED5793F5} + {E544B08A-C532-884E-A0BE-0F6F7F700067} = {E544B08A-C532-884E-A0BE-0F6F7F700067} + {7F1E020B-52F6-584E-B841-8B390015238B} = {7F1E020B-52F6-584E-B841-8B390015238B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testver", "tests\testver\testver.vcxproj", "{8B16A430-9090-B747-8825-BDE4B9A06538}" + ProjectSection(ProjectDependencies) = postProject + {47B50335-DB5D-B948-B80C-E361ED5793F5} = {47B50335-DB5D-B948-B80C-E361ED5793F5} + {7F1E020B-52F6-584E-B841-8B390015238B} = {7F1E020B-52F6-584E-B841-8B390015238B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testkeys", "tests\testkeys\testkeys.vcxproj", "{A22567A8-5E3D-4046-A9EE-32148A1996DE}" + ProjectSection(ProjectDependencies) = postProject + {47B50335-DB5D-B948-B80C-E361ED5793F5} = {47B50335-DB5D-B948-B80C-E361ED5793F5} + {7F1E020B-52F6-584E-B841-8B390015238B} = {7F1E020B-52F6-584E-B841-8B390015238B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testloadso", "tests\testloadso\testloadso.vcxproj", "{F81F2611-F8C5-334F-9ED8-1ABE38A1B106}" + ProjectSection(ProjectDependencies) = postProject + {47B50335-DB5D-B948-B80C-E361ED5793F5} = {47B50335-DB5D-B948-B80C-E361ED5793F5} + {7F1E020B-52F6-584E-B841-8B390015238B} = {7F1E020B-52F6-584E-B841-8B390015238B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testtimer", "tests\testtimer\testtimer.vcxproj", "{87AECED3-5F20-8E46-9DFD-17A9E01D7E37}" + ProjectSection(ProjectDependencies) = postProject + {47B50335-DB5D-B948-B80C-E361ED5793F5} = {47B50335-DB5D-B948-B80C-E361ED5793F5} + {7F1E020B-52F6-584E-B841-8B390015238B} = {7F1E020B-52F6-584E-B841-8B390015238B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testoverlay2", "tests\testoverlay2\testoverlay2.vcxproj", "{8ABC84ED-C999-DE4A-A929-CD6A79647804}" + ProjectSection(ProjectDependencies) = postProject + {47B50335-DB5D-B948-B80C-E361ED5793F5} = {47B50335-DB5D-B948-B80C-E361ED5793F5} + {7F1E020B-52F6-584E-B841-8B390015238B} = {7F1E020B-52F6-584E-B841-8B390015238B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "torturethread", "tests\torturethread\torturethread.vcxproj", "{615744A9-90A8-A643-B2A7-223FEA845A00}" + ProjectSection(ProjectDependencies) = postProject + {47B50335-DB5D-B948-B80C-E361ED5793F5} = {47B50335-DB5D-B948-B80C-E361ED5793F5} + {7F1E020B-52F6-584E-B841-8B390015238B} = {7F1E020B-52F6-584E-B841-8B390015238B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testplatform", "tests\testplatform\testplatform.vcxproj", "{189FC042-4838-4342-9276-9514BB403092}" + ProjectSection(ProjectDependencies) = postProject + {47B50335-DB5D-B948-B80C-E361ED5793F5} = {47B50335-DB5D-B948-B80C-E361ED5793F5} + {7F1E020B-52F6-584E-B841-8B390015238B} = {7F1E020B-52F6-584E-B841-8B390015238B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testgesture", "tests\testgesture\testgesture.vcxproj", "{356BDC7D-2137-DA40-B20E-057366ADDEB7}" + ProjectSection(ProjectDependencies) = postProject + {47B50335-DB5D-B948-B80C-E361ED5793F5} = {47B50335-DB5D-B948-B80C-E361ED5793F5} + {7F1E020B-52F6-584E-B841-8B390015238B} = {7F1E020B-52F6-584E-B841-8B390015238B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testaudioinfo", "tests\testaudioinfo\testaudioinfo.vcxproj", "{7A1312CF-BE73-8849-AFE9-48A028FB6C88}" + ProjectSection(ProjectDependencies) = postProject + {47B50335-DB5D-B948-B80C-E361ED5793F5} = {47B50335-DB5D-B948-B80C-E361ED5793F5} + {7F1E020B-52F6-584E-B841-8B390015238B} = {7F1E020B-52F6-584E-B841-8B390015238B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "loopwave", "tests\loopwave\loopwave.vcxproj", "{B4860E68-BEB0-2242-A6F6-A2D6FDCB5FD6}" + ProjectSection(ProjectDependencies) = postProject + {47B50335-DB5D-B948-B80C-E361ED5793F5} = {47B50335-DB5D-B948-B80C-E361ED5793F5} + {7F1E020B-52F6-584E-B841-8B390015238B} = {7F1E020B-52F6-584E-B841-8B390015238B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testthread", "tests\testthread\testthread.vcxproj", "{299C1DAB-6EB1-3D4C-8101-7CDEDE92928D}" + ProjectSection(ProjectDependencies) = postProject + {47B50335-DB5D-B948-B80C-E361ED5793F5} = {47B50335-DB5D-B948-B80C-E361ED5793F5} + {7F1E020B-52F6-584E-B841-8B390015238B} = {7F1E020B-52F6-584E-B841-8B390015238B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "teststreaming", "tests\teststreaming\teststreaming.vcxproj", "{187FC8D5-3BD2-394C-811A-8CBA0476B0DC}" + ProjectSection(ProjectDependencies) = postProject + {47B50335-DB5D-B948-B80C-E361ED5793F5} = {47B50335-DB5D-B948-B80C-E361ED5793F5} + {7F1E020B-52F6-584E-B841-8B390015238B} = {7F1E020B-52F6-584E-B841-8B390015238B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "checkkeys", "tests\checkkeys\checkkeys.vcxproj", "{0C2EE701-0ABA-5E48-9253-B3A54ECD5107}" + ProjectSection(ProjectDependencies) = postProject + {47B50335-DB5D-B948-B80C-E361ED5793F5} = {47B50335-DB5D-B948-B80C-E361ED5793F5} + {7F1E020B-52F6-584E-B841-8B390015238B} = {7F1E020B-52F6-584E-B841-8B390015238B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testspriteminimal", "tests\testspriteminimal\testspriteminimal.vcxproj", "{170EE42E-8EE9-8E49-B04F-F412A203DF1D}" + ProjectSection(ProjectDependencies) = postProject + {47B50335-DB5D-B948-B80C-E361ED5793F5} = {47B50335-DB5D-B948-B80C-E361ED5793F5} + {7F1E020B-52F6-584E-B841-8B390015238B} = {7F1E020B-52F6-584E-B841-8B390015238B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testsprite2", "tests\testsprite2\testsprite2.vcxproj", "{5B2F2D57-A129-C849-9C06-5B2D35B74E07}" + ProjectSection(ProjectDependencies) = postProject + {47B50335-DB5D-B948-B80C-E361ED5793F5} = {47B50335-DB5D-B948-B80C-E361ED5793F5} + {E544B08A-C532-884E-A0BE-0F6F7F700067} = {E544B08A-C532-884E-A0BE-0F6F7F700067} + {7F1E020B-52F6-584E-B841-8B390015238B} = {7F1E020B-52F6-584E-B841-8B390015238B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testgles", "tests\testgles\testgles.vcxproj", "{1BC2C664-E0D9-314C-BDDE-6DF601ADE701}" + ProjectSection(ProjectDependencies) = postProject + {47B50335-DB5D-B948-B80C-E361ED5793F5} = {47B50335-DB5D-B948-B80C-E361ED5793F5} + {E544B08A-C532-884E-A0BE-0F6F7F700067} = {E544B08A-C532-884E-A0BE-0F6F7F700067} + {7F1E020B-52F6-584E-B841-8B390015238B} = {7F1E020B-52F6-584E-B841-8B390015238B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testatomic", "tests\testatomic\testatomic.vcxproj", "{D2F26E24-D261-C54C-A334-F8F0EA68AA51}" + ProjectSection(ProjectDependencies) = postProject + {47B50335-DB5D-B948-B80C-E361ED5793F5} = {47B50335-DB5D-B948-B80C-E361ED5793F5} + {7F1E020B-52F6-584E-B841-8B390015238B} = {7F1E020B-52F6-584E-B841-8B390015238B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2test", "SDL2test\SDL2test.vcxproj", "{E544B08A-C532-884E-A0BE-0F6F7F700067}" + ProjectSection(ProjectDependencies) = postProject + {47B50335-DB5D-B948-B80C-E361ED5793F5} = {47B50335-DB5D-B948-B80C-E361ED5793F5} + {7F1E020B-52F6-584E-B841-8B390015238B} = {7F1E020B-52F6-584E-B841-8B390015238B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testhaptic", "tests\testhaptic\testhaptic.vcxproj", "{84FB19AD-E26F-984D-8F1F-9D92BC817E75}" + ProjectSection(ProjectDependencies) = postProject + {47B50335-DB5D-B948-B80C-E361ED5793F5} = {47B50335-DB5D-B948-B80C-E361ED5793F5} + {7F1E020B-52F6-584E-B841-8B390015238B} = {7F1E020B-52F6-584E-B841-8B390015238B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testgl2", "tests\testgl2\testgl2.vcxproj", "{114BFA65-28CD-704A-A34B-99E354525E81}" + ProjectSection(ProjectDependencies) = postProject + {47B50335-DB5D-B948-B80C-E361ED5793F5} = {47B50335-DB5D-B948-B80C-E361ED5793F5} + {E544B08A-C532-884E-A0BE-0F6F7F700067} = {E544B08A-C532-884E-A0BE-0F6F7F700067} + {7F1E020B-52F6-584E-B841-8B390015238B} = {7F1E020B-52F6-584E-B841-8B390015238B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2", "SDL2\SDL2.vcxproj", "{7F1E020B-52F6-584E-B841-8B390015238B}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testerror", "tests\testerror\testerror.vcxproj", "{DFD06E4E-B317-B745-8FB4-7063244DCA3E}" + ProjectSection(ProjectDependencies) = postProject + {47B50335-DB5D-B948-B80C-E361ED5793F5} = {47B50335-DB5D-B948-B80C-E361ED5793F5} + {7F1E020B-52F6-584E-B841-8B390015238B} = {7F1E020B-52F6-584E-B841-8B390015238B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testrumble", "tests\testrumble\testrumble.vcxproj", "{C72B0123-A5BD-FD45-90F1-1C29D45B5C92}" + ProjectSection(ProjectDependencies) = postProject + {47B50335-DB5D-B948-B80C-E361ED5793F5} = {47B50335-DB5D-B948-B80C-E361ED5793F5} + {7F1E020B-52F6-584E-B841-8B390015238B} = {7F1E020B-52F6-584E-B841-8B390015238B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testresample", "tests\testresample\testresample.vcxproj", "{E8FC2B01-864C-1E4A-8E32-7103EF479048}" + ProjectSection(ProjectDependencies) = postProject + {47B50335-DB5D-B948-B80C-E361ED5793F5} = {47B50335-DB5D-B948-B80C-E361ED5793F5} + {7F1E020B-52F6-584E-B841-8B390015238B} = {7F1E020B-52F6-584E-B841-8B390015238B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testrendercopyex", "tests\testrendercopyex\testrendercopyex.vcxproj", "{7BAE36E7-E655-B24D-B110-D2567316D6EA}" + ProjectSection(ProjectDependencies) = postProject + {47B50335-DB5D-B948-B80C-E361ED5793F5} = {47B50335-DB5D-B948-B80C-E361ED5793F5} + {E544B08A-C532-884E-A0BE-0F6F7F700067} = {E544B08A-C532-884E-A0BE-0F6F7F700067} + {7F1E020B-52F6-584E-B841-8B390015238B} = {7F1E020B-52F6-584E-B841-8B390015238B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testpower", "tests\testpower\testpower.vcxproj", "{E3D41488-DCA1-A34B-87D3-E9820E500DA9}" + ProjectSection(ProjectDependencies) = postProject + {47B50335-DB5D-B948-B80C-E361ED5793F5} = {47B50335-DB5D-B948-B80C-E361ED5793F5} + {7F1E020B-52F6-584E-B841-8B390015238B} = {7F1E020B-52F6-584E-B841-8B390015238B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testchessboard", "tests\testchessboard\testchessboard.vcxproj", "{15323EAE-0CB5-4245-8324-A4BF2EA72D6B}" + ProjectSection(ProjectDependencies) = postProject + {47B50335-DB5D-B948-B80C-E361ED5793F5} = {47B50335-DB5D-B948-B80C-E361ED5793F5} + {7F1E020B-52F6-584E-B841-8B390015238B} = {7F1E020B-52F6-584E-B841-8B390015238B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2main", "SDL2main\SDL2main.vcxproj", "{47B50335-DB5D-B948-B80C-E361ED5793F5}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testrelative", "tests\testrelative\testrelative.vcxproj", "{3186A875-B682-2D4D-97EC-CCF61AEEEAC7}" + ProjectSection(ProjectDependencies) = postProject + {47B50335-DB5D-B948-B80C-E361ED5793F5} = {47B50335-DB5D-B948-B80C-E361ED5793F5} + {E544B08A-C532-884E-A0BE-0F6F7F700067} = {E544B08A-C532-884E-A0BE-0F6F7F700067} + {7F1E020B-52F6-584E-B841-8B390015238B} = {7F1E020B-52F6-584E-B841-8B390015238B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testlock", "tests\testlock\testlock.vcxproj", "{E2DDA701-A62F-9542-8BA9-296CBF281945}" + ProjectSection(ProjectDependencies) = postProject + {47B50335-DB5D-B948-B80C-E361ED5793F5} = {47B50335-DB5D-B948-B80C-E361ED5793F5} + {7F1E020B-52F6-584E-B841-8B390015238B} = {7F1E020B-52F6-584E-B841-8B390015238B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testmultiaudio", "tests\testmultiaudio\testmultiaudio.vcxproj", "{B7DA3C1F-B34B-A14A-BF10-BF628BA69C1B}" + ProjectSection(ProjectDependencies) = postProject + {47B50335-DB5D-B948-B80C-E361ED5793F5} = {47B50335-DB5D-B948-B80C-E361ED5793F5} + {7F1E020B-52F6-584E-B841-8B390015238B} = {7F1E020B-52F6-584E-B841-8B390015238B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testmessage", "tests\testmessage\testmessage.vcxproj", "{461B95F1-FB8D-9B45-8FF9-8E0A9F56CA1B}" + ProjectSection(ProjectDependencies) = postProject + {47B50335-DB5D-B948-B80C-E361ED5793F5} = {47B50335-DB5D-B948-B80C-E361ED5793F5} + {7F1E020B-52F6-584E-B841-8B390015238B} = {7F1E020B-52F6-584E-B841-8B390015238B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testdraw2", "tests\testdraw2\testdraw2.vcxproj", "{E4477807-2D9E-CC43-9EF3-AEB1ADEDF79C}" + ProjectSection(ProjectDependencies) = postProject + {47B50335-DB5D-B948-B80C-E361ED5793F5} = {47B50335-DB5D-B948-B80C-E361ED5793F5} + {E544B08A-C532-884E-A0BE-0F6F7F700067} = {E544B08A-C532-884E-A0BE-0F6F7F700067} + {7F1E020B-52F6-584E-B841-8B390015238B} = {7F1E020B-52F6-584E-B841-8B390015238B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testshape", "tests\testshape\testshape.vcxproj", "{A916A09F-93F3-0A4F-9A95-9938BD96CF05}" + ProjectSection(ProjectDependencies) = postProject + {47B50335-DB5D-B948-B80C-E361ED5793F5} = {47B50335-DB5D-B948-B80C-E361ED5793F5} + {7F1E020B-52F6-584E-B841-8B390015238B} = {7F1E020B-52F6-584E-B841-8B390015238B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testwm2", "tests\testwm2\testwm2.vcxproj", "{0DC21429-28DC-194C-AFFB-8BAB95022180}" + ProjectSection(ProjectDependencies) = postProject + {47B50335-DB5D-B948-B80C-E361ED5793F5} = {47B50335-DB5D-B948-B80C-E361ED5793F5} + {E544B08A-C532-884E-A0BE-0F6F7F700067} = {E544B08A-C532-884E-A0BE-0F6F7F700067} + {7F1E020B-52F6-584E-B841-8B390015238B} = {7F1E020B-52F6-584E-B841-8B390015238B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testautomation", "tests\testautomation\testautomation.vcxproj", "{F7EAB41D-92CB-6B49-8131-48A61120F3C4}" + ProjectSection(ProjectDependencies) = postProject + {47B50335-DB5D-B948-B80C-E361ED5793F5} = {47B50335-DB5D-B948-B80C-E361ED5793F5} + {E544B08A-C532-884E-A0BE-0F6F7F700067} = {E544B08A-C532-884E-A0BE-0F6F7F700067} + {7F1E020B-52F6-584E-B841-8B390015238B} = {7F1E020B-52F6-584E-B841-8B390015238B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testiconv", "tests\testiconv\testiconv.vcxproj", "{4CF625C3-2F83-7F4F-8ADD-15BEEFCD24E7}" + ProjectSection(ProjectDependencies) = postProject + {47B50335-DB5D-B948-B80C-E361ED5793F5} = {47B50335-DB5D-B948-B80C-E361ED5793F5} + {7F1E020B-52F6-584E-B841-8B390015238B} = {7F1E020B-52F6-584E-B841-8B390015238B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testfile", "tests\testfile\testfile.vcxproj", "{07A396E5-1642-6148-82DA-2FF06644E542}" + ProjectSection(ProjectDependencies) = postProject + {47B50335-DB5D-B948-B80C-E361ED5793F5} = {47B50335-DB5D-B948-B80C-E361ED5793F5} + {7F1E020B-52F6-584E-B841-8B390015238B} = {7F1E020B-52F6-584E-B841-8B390015238B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testime", "tests\testime\testime.vcxproj", "{98C363EE-E394-564A-8F5D-8649BE4EA3A5}" + ProjectSection(ProjectDependencies) = postProject + {47B50335-DB5D-B948-B80C-E361ED5793F5} = {47B50335-DB5D-B948-B80C-E361ED5793F5} + {E544B08A-C532-884E-A0BE-0F6F7F700067} = {E544B08A-C532-884E-A0BE-0F6F7F700067} + {7F1E020B-52F6-584E-B841-8B390015238B} = {7F1E020B-52F6-584E-B841-8B390015238B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testshader", "tests\testshader\testshader.vcxproj", "{51ADEB0F-09DD-5242-87FC-6DD5C4A098E3}" + ProjectSection(ProjectDependencies) = postProject + {47B50335-DB5D-B948-B80C-E361ED5793F5} = {47B50335-DB5D-B948-B80C-E361ED5793F5} + {7F1E020B-52F6-584E-B841-8B390015238B} = {7F1E020B-52F6-584E-B841-8B390015238B} + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {867A2823-E792-3749-A47C-1B5F118FD1F9}.Debug|Win32.ActiveCfg = Debug|Win32 + {867A2823-E792-3749-A47C-1B5F118FD1F9}.Debug|Win32.Build.0 = Debug|Win32 + {867A2823-E792-3749-A47C-1B5F118FD1F9}.Release|Win32.ActiveCfg = Release|Win32 + {867A2823-E792-3749-A47C-1B5F118FD1F9}.Release|Win32.Build.0 = Release|Win32 + {259763DF-AC86-B445-A465-064452171EB6}.Debug|Win32.ActiveCfg = Debug|Win32 + {259763DF-AC86-B445-A465-064452171EB6}.Debug|Win32.Build.0 = Debug|Win32 + {259763DF-AC86-B445-A465-064452171EB6}.Release|Win32.ActiveCfg = Release|Win32 + {259763DF-AC86-B445-A465-064452171EB6}.Release|Win32.Build.0 = Release|Win32 + {15C9C3A3-A6CD-F24B-AA55-74C46DFB123D}.Debug|Win32.ActiveCfg = Debug|Win32 + {15C9C3A3-A6CD-F24B-AA55-74C46DFB123D}.Debug|Win32.Build.0 = Debug|Win32 + {15C9C3A3-A6CD-F24B-AA55-74C46DFB123D}.Release|Win32.ActiveCfg = Release|Win32 + {15C9C3A3-A6CD-F24B-AA55-74C46DFB123D}.Release|Win32.Build.0 = Release|Win32 + {BC693F25-4940-BB43-8529-E27D65275975}.Debug|Win32.ActiveCfg = Debug|Win32 + {BC693F25-4940-BB43-8529-E27D65275975}.Debug|Win32.Build.0 = Debug|Win32 + {BC693F25-4940-BB43-8529-E27D65275975}.Release|Win32.ActiveCfg = Release|Win32 + {BC693F25-4940-BB43-8529-E27D65275975}.Release|Win32.Build.0 = Release|Win32 + {8BBBF780-F9F4-0843-85B4-6100C0771E09}.Debug|Win32.ActiveCfg = Debug|Win32 + {8BBBF780-F9F4-0843-85B4-6100C0771E09}.Debug|Win32.Build.0 = Debug|Win32 + {8BBBF780-F9F4-0843-85B4-6100C0771E09}.Release|Win32.ActiveCfg = Release|Win32 + {8BBBF780-F9F4-0843-85B4-6100C0771E09}.Release|Win32.Build.0 = Release|Win32 + {24AB4CEE-B82E-9C42-8ED2-9F3F7F3006AE}.Debug|Win32.ActiveCfg = Debug|Win32 + {24AB4CEE-B82E-9C42-8ED2-9F3F7F3006AE}.Debug|Win32.Build.0 = Debug|Win32 + {24AB4CEE-B82E-9C42-8ED2-9F3F7F3006AE}.Release|Win32.ActiveCfg = Release|Win32 + {24AB4CEE-B82E-9C42-8ED2-9F3F7F3006AE}.Release|Win32.Build.0 = Release|Win32 + {98CD7D27-4B74-4942-81DC-C82474A2E822}.Debug|Win32.ActiveCfg = Debug|Win32 + {98CD7D27-4B74-4942-81DC-C82474A2E822}.Debug|Win32.Build.0 = Debug|Win32 + {98CD7D27-4B74-4942-81DC-C82474A2E822}.Release|Win32.ActiveCfg = Release|Win32 + {98CD7D27-4B74-4942-81DC-C82474A2E822}.Release|Win32.Build.0 = Release|Win32 + {8B16A430-9090-B747-8825-BDE4B9A06538}.Debug|Win32.ActiveCfg = Debug|Win32 + {8B16A430-9090-B747-8825-BDE4B9A06538}.Debug|Win32.Build.0 = Debug|Win32 + {8B16A430-9090-B747-8825-BDE4B9A06538}.Release|Win32.ActiveCfg = Release|Win32 + {8B16A430-9090-B747-8825-BDE4B9A06538}.Release|Win32.Build.0 = Release|Win32 + {A22567A8-5E3D-4046-A9EE-32148A1996DE}.Debug|Win32.ActiveCfg = Debug|Win32 + {A22567A8-5E3D-4046-A9EE-32148A1996DE}.Debug|Win32.Build.0 = Debug|Win32 + {A22567A8-5E3D-4046-A9EE-32148A1996DE}.Release|Win32.ActiveCfg = Release|Win32 + {A22567A8-5E3D-4046-A9EE-32148A1996DE}.Release|Win32.Build.0 = Release|Win32 + {F81F2611-F8C5-334F-9ED8-1ABE38A1B106}.Debug|Win32.ActiveCfg = Debug|Win32 + {F81F2611-F8C5-334F-9ED8-1ABE38A1B106}.Debug|Win32.Build.0 = Debug|Win32 + {F81F2611-F8C5-334F-9ED8-1ABE38A1B106}.Release|Win32.ActiveCfg = Release|Win32 + {F81F2611-F8C5-334F-9ED8-1ABE38A1B106}.Release|Win32.Build.0 = Release|Win32 + {87AECED3-5F20-8E46-9DFD-17A9E01D7E37}.Debug|Win32.ActiveCfg = Debug|Win32 + {87AECED3-5F20-8E46-9DFD-17A9E01D7E37}.Debug|Win32.Build.0 = Debug|Win32 + {87AECED3-5F20-8E46-9DFD-17A9E01D7E37}.Release|Win32.ActiveCfg = Release|Win32 + {87AECED3-5F20-8E46-9DFD-17A9E01D7E37}.Release|Win32.Build.0 = Release|Win32 + {8ABC84ED-C999-DE4A-A929-CD6A79647804}.Debug|Win32.ActiveCfg = Debug|Win32 + {8ABC84ED-C999-DE4A-A929-CD6A79647804}.Debug|Win32.Build.0 = Debug|Win32 + {8ABC84ED-C999-DE4A-A929-CD6A79647804}.Release|Win32.ActiveCfg = Release|Win32 + {8ABC84ED-C999-DE4A-A929-CD6A79647804}.Release|Win32.Build.0 = Release|Win32 + {615744A9-90A8-A643-B2A7-223FEA845A00}.Debug|Win32.ActiveCfg = Debug|Win32 + {615744A9-90A8-A643-B2A7-223FEA845A00}.Debug|Win32.Build.0 = Debug|Win32 + {615744A9-90A8-A643-B2A7-223FEA845A00}.Release|Win32.ActiveCfg = Release|Win32 + {615744A9-90A8-A643-B2A7-223FEA845A00}.Release|Win32.Build.0 = Release|Win32 + {189FC042-4838-4342-9276-9514BB403092}.Debug|Win32.ActiveCfg = Debug|Win32 + {189FC042-4838-4342-9276-9514BB403092}.Debug|Win32.Build.0 = Debug|Win32 + {189FC042-4838-4342-9276-9514BB403092}.Release|Win32.ActiveCfg = Release|Win32 + {189FC042-4838-4342-9276-9514BB403092}.Release|Win32.Build.0 = Release|Win32 + {356BDC7D-2137-DA40-B20E-057366ADDEB7}.Debug|Win32.ActiveCfg = Debug|Win32 + {356BDC7D-2137-DA40-B20E-057366ADDEB7}.Debug|Win32.Build.0 = Debug|Win32 + {356BDC7D-2137-DA40-B20E-057366ADDEB7}.Release|Win32.ActiveCfg = Release|Win32 + {356BDC7D-2137-DA40-B20E-057366ADDEB7}.Release|Win32.Build.0 = Release|Win32 + {7A1312CF-BE73-8849-AFE9-48A028FB6C88}.Debug|Win32.ActiveCfg = Debug|Win32 + {7A1312CF-BE73-8849-AFE9-48A028FB6C88}.Debug|Win32.Build.0 = Debug|Win32 + {7A1312CF-BE73-8849-AFE9-48A028FB6C88}.Release|Win32.ActiveCfg = Release|Win32 + {7A1312CF-BE73-8849-AFE9-48A028FB6C88}.Release|Win32.Build.0 = Release|Win32 + {B4860E68-BEB0-2242-A6F6-A2D6FDCB5FD6}.Debug|Win32.ActiveCfg = Debug|Win32 + {B4860E68-BEB0-2242-A6F6-A2D6FDCB5FD6}.Debug|Win32.Build.0 = Debug|Win32 + {B4860E68-BEB0-2242-A6F6-A2D6FDCB5FD6}.Release|Win32.ActiveCfg = Release|Win32 + {B4860E68-BEB0-2242-A6F6-A2D6FDCB5FD6}.Release|Win32.Build.0 = Release|Win32 + {299C1DAB-6EB1-3D4C-8101-7CDEDE92928D}.Debug|Win32.ActiveCfg = Debug|Win32 + {299C1DAB-6EB1-3D4C-8101-7CDEDE92928D}.Debug|Win32.Build.0 = Debug|Win32 + {299C1DAB-6EB1-3D4C-8101-7CDEDE92928D}.Release|Win32.ActiveCfg = Release|Win32 + {299C1DAB-6EB1-3D4C-8101-7CDEDE92928D}.Release|Win32.Build.0 = Release|Win32 + {187FC8D5-3BD2-394C-811A-8CBA0476B0DC}.Debug|Win32.ActiveCfg = Debug|Win32 + {187FC8D5-3BD2-394C-811A-8CBA0476B0DC}.Debug|Win32.Build.0 = Debug|Win32 + {187FC8D5-3BD2-394C-811A-8CBA0476B0DC}.Release|Win32.ActiveCfg = Release|Win32 + {187FC8D5-3BD2-394C-811A-8CBA0476B0DC}.Release|Win32.Build.0 = Release|Win32 + {0C2EE701-0ABA-5E48-9253-B3A54ECD5107}.Debug|Win32.ActiveCfg = Debug|Win32 + {0C2EE701-0ABA-5E48-9253-B3A54ECD5107}.Debug|Win32.Build.0 = Debug|Win32 + {0C2EE701-0ABA-5E48-9253-B3A54ECD5107}.Release|Win32.ActiveCfg = Release|Win32 + {0C2EE701-0ABA-5E48-9253-B3A54ECD5107}.Release|Win32.Build.0 = Release|Win32 + {170EE42E-8EE9-8E49-B04F-F412A203DF1D}.Debug|Win32.ActiveCfg = Debug|Win32 + {170EE42E-8EE9-8E49-B04F-F412A203DF1D}.Debug|Win32.Build.0 = Debug|Win32 + {170EE42E-8EE9-8E49-B04F-F412A203DF1D}.Release|Win32.ActiveCfg = Release|Win32 + {170EE42E-8EE9-8E49-B04F-F412A203DF1D}.Release|Win32.Build.0 = Release|Win32 + {5B2F2D57-A129-C849-9C06-5B2D35B74E07}.Debug|Win32.ActiveCfg = Debug|Win32 + {5B2F2D57-A129-C849-9C06-5B2D35B74E07}.Debug|Win32.Build.0 = Debug|Win32 + {5B2F2D57-A129-C849-9C06-5B2D35B74E07}.Release|Win32.ActiveCfg = Release|Win32 + {5B2F2D57-A129-C849-9C06-5B2D35B74E07}.Release|Win32.Build.0 = Release|Win32 + {1BC2C664-E0D9-314C-BDDE-6DF601ADE701}.Debug|Win32.ActiveCfg = Debug|Win32 + {1BC2C664-E0D9-314C-BDDE-6DF601ADE701}.Debug|Win32.Build.0 = Debug|Win32 + {1BC2C664-E0D9-314C-BDDE-6DF601ADE701}.Release|Win32.ActiveCfg = Release|Win32 + {1BC2C664-E0D9-314C-BDDE-6DF601ADE701}.Release|Win32.Build.0 = Release|Win32 + {D2F26E24-D261-C54C-A334-F8F0EA68AA51}.Debug|Win32.ActiveCfg = Debug|Win32 + {D2F26E24-D261-C54C-A334-F8F0EA68AA51}.Debug|Win32.Build.0 = Debug|Win32 + {D2F26E24-D261-C54C-A334-F8F0EA68AA51}.Release|Win32.ActiveCfg = Release|Win32 + {D2F26E24-D261-C54C-A334-F8F0EA68AA51}.Release|Win32.Build.0 = Release|Win32 + {E544B08A-C532-884E-A0BE-0F6F7F700067}.Debug|Win32.ActiveCfg = Debug|Win32 + {E544B08A-C532-884E-A0BE-0F6F7F700067}.Debug|Win32.Build.0 = Debug|Win32 + {E544B08A-C532-884E-A0BE-0F6F7F700067}.Release|Win32.ActiveCfg = Release|Win32 + {E544B08A-C532-884E-A0BE-0F6F7F700067}.Release|Win32.Build.0 = Release|Win32 + {84FB19AD-E26F-984D-8F1F-9D92BC817E75}.Debug|Win32.ActiveCfg = Debug|Win32 + {84FB19AD-E26F-984D-8F1F-9D92BC817E75}.Debug|Win32.Build.0 = Debug|Win32 + {84FB19AD-E26F-984D-8F1F-9D92BC817E75}.Release|Win32.ActiveCfg = Release|Win32 + {84FB19AD-E26F-984D-8F1F-9D92BC817E75}.Release|Win32.Build.0 = Release|Win32 + {114BFA65-28CD-704A-A34B-99E354525E81}.Debug|Win32.ActiveCfg = Debug|Win32 + {114BFA65-28CD-704A-A34B-99E354525E81}.Debug|Win32.Build.0 = Debug|Win32 + {114BFA65-28CD-704A-A34B-99E354525E81}.Release|Win32.ActiveCfg = Release|Win32 + {114BFA65-28CD-704A-A34B-99E354525E81}.Release|Win32.Build.0 = Release|Win32 + {7F1E020B-52F6-584E-B841-8B390015238B}.Debug|Win32.ActiveCfg = Debug|Win32 + {7F1E020B-52F6-584E-B841-8B390015238B}.Debug|Win32.Build.0 = Debug|Win32 + {7F1E020B-52F6-584E-B841-8B390015238B}.Release|Win32.ActiveCfg = Release|Win32 + {7F1E020B-52F6-584E-B841-8B390015238B}.Release|Win32.Build.0 = Release|Win32 + {DFD06E4E-B317-B745-8FB4-7063244DCA3E}.Debug|Win32.ActiveCfg = Debug|Win32 + {DFD06E4E-B317-B745-8FB4-7063244DCA3E}.Debug|Win32.Build.0 = Debug|Win32 + {DFD06E4E-B317-B745-8FB4-7063244DCA3E}.Release|Win32.ActiveCfg = Release|Win32 + {DFD06E4E-B317-B745-8FB4-7063244DCA3E}.Release|Win32.Build.0 = Release|Win32 + {C72B0123-A5BD-FD45-90F1-1C29D45B5C92}.Debug|Win32.ActiveCfg = Debug|Win32 + {C72B0123-A5BD-FD45-90F1-1C29D45B5C92}.Debug|Win32.Build.0 = Debug|Win32 + {C72B0123-A5BD-FD45-90F1-1C29D45B5C92}.Release|Win32.ActiveCfg = Release|Win32 + {C72B0123-A5BD-FD45-90F1-1C29D45B5C92}.Release|Win32.Build.0 = Release|Win32 + {E8FC2B01-864C-1E4A-8E32-7103EF479048}.Debug|Win32.ActiveCfg = Debug|Win32 + {E8FC2B01-864C-1E4A-8E32-7103EF479048}.Debug|Win32.Build.0 = Debug|Win32 + {E8FC2B01-864C-1E4A-8E32-7103EF479048}.Release|Win32.ActiveCfg = Release|Win32 + {E8FC2B01-864C-1E4A-8E32-7103EF479048}.Release|Win32.Build.0 = Release|Win32 + {7BAE36E7-E655-B24D-B110-D2567316D6EA}.Debug|Win32.ActiveCfg = Debug|Win32 + {7BAE36E7-E655-B24D-B110-D2567316D6EA}.Debug|Win32.Build.0 = Debug|Win32 + {7BAE36E7-E655-B24D-B110-D2567316D6EA}.Release|Win32.ActiveCfg = Release|Win32 + {7BAE36E7-E655-B24D-B110-D2567316D6EA}.Release|Win32.Build.0 = Release|Win32 + {E3D41488-DCA1-A34B-87D3-E9820E500DA9}.Debug|Win32.ActiveCfg = Debug|Win32 + {E3D41488-DCA1-A34B-87D3-E9820E500DA9}.Debug|Win32.Build.0 = Debug|Win32 + {E3D41488-DCA1-A34B-87D3-E9820E500DA9}.Release|Win32.ActiveCfg = Release|Win32 + {E3D41488-DCA1-A34B-87D3-E9820E500DA9}.Release|Win32.Build.0 = Release|Win32 + {15323EAE-0CB5-4245-8324-A4BF2EA72D6B}.Debug|Win32.ActiveCfg = Debug|Win32 + {15323EAE-0CB5-4245-8324-A4BF2EA72D6B}.Debug|Win32.Build.0 = Debug|Win32 + {15323EAE-0CB5-4245-8324-A4BF2EA72D6B}.Release|Win32.ActiveCfg = Release|Win32 + {15323EAE-0CB5-4245-8324-A4BF2EA72D6B}.Release|Win32.Build.0 = Release|Win32 + {47B50335-DB5D-B948-B80C-E361ED5793F5}.Debug|Win32.ActiveCfg = Debug|Win32 + {47B50335-DB5D-B948-B80C-E361ED5793F5}.Debug|Win32.Build.0 = Debug|Win32 + {47B50335-DB5D-B948-B80C-E361ED5793F5}.Release|Win32.ActiveCfg = Release|Win32 + {47B50335-DB5D-B948-B80C-E361ED5793F5}.Release|Win32.Build.0 = Release|Win32 + {3186A875-B682-2D4D-97EC-CCF61AEEEAC7}.Debug|Win32.ActiveCfg = Debug|Win32 + {3186A875-B682-2D4D-97EC-CCF61AEEEAC7}.Debug|Win32.Build.0 = Debug|Win32 + {3186A875-B682-2D4D-97EC-CCF61AEEEAC7}.Release|Win32.ActiveCfg = Release|Win32 + {3186A875-B682-2D4D-97EC-CCF61AEEEAC7}.Release|Win32.Build.0 = Release|Win32 + {E2DDA701-A62F-9542-8BA9-296CBF281945}.Debug|Win32.ActiveCfg = Debug|Win32 + {E2DDA701-A62F-9542-8BA9-296CBF281945}.Debug|Win32.Build.0 = Debug|Win32 + {E2DDA701-A62F-9542-8BA9-296CBF281945}.Release|Win32.ActiveCfg = Release|Win32 + {E2DDA701-A62F-9542-8BA9-296CBF281945}.Release|Win32.Build.0 = Release|Win32 + {B7DA3C1F-B34B-A14A-BF10-BF628BA69C1B}.Debug|Win32.ActiveCfg = Debug|Win32 + {B7DA3C1F-B34B-A14A-BF10-BF628BA69C1B}.Debug|Win32.Build.0 = Debug|Win32 + {B7DA3C1F-B34B-A14A-BF10-BF628BA69C1B}.Release|Win32.ActiveCfg = Release|Win32 + {B7DA3C1F-B34B-A14A-BF10-BF628BA69C1B}.Release|Win32.Build.0 = Release|Win32 + {461B95F1-FB8D-9B45-8FF9-8E0A9F56CA1B}.Debug|Win32.ActiveCfg = Debug|Win32 + {461B95F1-FB8D-9B45-8FF9-8E0A9F56CA1B}.Debug|Win32.Build.0 = Debug|Win32 + {461B95F1-FB8D-9B45-8FF9-8E0A9F56CA1B}.Release|Win32.ActiveCfg = Release|Win32 + {461B95F1-FB8D-9B45-8FF9-8E0A9F56CA1B}.Release|Win32.Build.0 = Release|Win32 + {E4477807-2D9E-CC43-9EF3-AEB1ADEDF79C}.Debug|Win32.ActiveCfg = Debug|Win32 + {E4477807-2D9E-CC43-9EF3-AEB1ADEDF79C}.Debug|Win32.Build.0 = Debug|Win32 + {E4477807-2D9E-CC43-9EF3-AEB1ADEDF79C}.Release|Win32.ActiveCfg = Release|Win32 + {E4477807-2D9E-CC43-9EF3-AEB1ADEDF79C}.Release|Win32.Build.0 = Release|Win32 + {A916A09F-93F3-0A4F-9A95-9938BD96CF05}.Debug|Win32.ActiveCfg = Debug|Win32 + {A916A09F-93F3-0A4F-9A95-9938BD96CF05}.Debug|Win32.Build.0 = Debug|Win32 + {A916A09F-93F3-0A4F-9A95-9938BD96CF05}.Release|Win32.ActiveCfg = Release|Win32 + {A916A09F-93F3-0A4F-9A95-9938BD96CF05}.Release|Win32.Build.0 = Release|Win32 + {0DC21429-28DC-194C-AFFB-8BAB95022180}.Debug|Win32.ActiveCfg = Debug|Win32 + {0DC21429-28DC-194C-AFFB-8BAB95022180}.Debug|Win32.Build.0 = Debug|Win32 + {0DC21429-28DC-194C-AFFB-8BAB95022180}.Release|Win32.ActiveCfg = Release|Win32 + {0DC21429-28DC-194C-AFFB-8BAB95022180}.Release|Win32.Build.0 = Release|Win32 + {F7EAB41D-92CB-6B49-8131-48A61120F3C4}.Debug|Win32.ActiveCfg = Debug|Win32 + {F7EAB41D-92CB-6B49-8131-48A61120F3C4}.Debug|Win32.Build.0 = Debug|Win32 + {F7EAB41D-92CB-6B49-8131-48A61120F3C4}.Release|Win32.ActiveCfg = Release|Win32 + {F7EAB41D-92CB-6B49-8131-48A61120F3C4}.Release|Win32.Build.0 = Release|Win32 + {4CF625C3-2F83-7F4F-8ADD-15BEEFCD24E7}.Debug|Win32.ActiveCfg = Debug|Win32 + {4CF625C3-2F83-7F4F-8ADD-15BEEFCD24E7}.Debug|Win32.Build.0 = Debug|Win32 + {4CF625C3-2F83-7F4F-8ADD-15BEEFCD24E7}.Release|Win32.ActiveCfg = Release|Win32 + {4CF625C3-2F83-7F4F-8ADD-15BEEFCD24E7}.Release|Win32.Build.0 = Release|Win32 + {07A396E5-1642-6148-82DA-2FF06644E542}.Debug|Win32.ActiveCfg = Debug|Win32 + {07A396E5-1642-6148-82DA-2FF06644E542}.Debug|Win32.Build.0 = Debug|Win32 + {07A396E5-1642-6148-82DA-2FF06644E542}.Release|Win32.ActiveCfg = Release|Win32 + {07A396E5-1642-6148-82DA-2FF06644E542}.Release|Win32.Build.0 = Release|Win32 + {98C363EE-E394-564A-8F5D-8649BE4EA3A5}.Debug|Win32.ActiveCfg = Debug|Win32 + {98C363EE-E394-564A-8F5D-8649BE4EA3A5}.Debug|Win32.Build.0 = Debug|Win32 + {98C363EE-E394-564A-8F5D-8649BE4EA3A5}.Release|Win32.ActiveCfg = Release|Win32 + {98C363EE-E394-564A-8F5D-8649BE4EA3A5}.Release|Win32.Build.0 = Release|Win32 + {51ADEB0F-09DD-5242-87FC-6DD5C4A098E3}.Debug|Win32.ActiveCfg = Debug|Win32 + {51ADEB0F-09DD-5242-87FC-6DD5C4A098E3}.Debug|Win32.Build.0 = Debug|Win32 + {51ADEB0F-09DD-5242-87FC-6DD5C4A098E3}.Release|Win32.ActiveCfg = Release|Win32 + {51ADEB0F-09DD-5242-87FC-6DD5C4A098E3}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/premake/VisualC/VS2012/SDL2/SDL2.vcxproj b/premake/VisualC/VS2012/SDL2/SDL2.vcxproj new file mode 100755 index 0000000000000..c7dd06f0937ec --- /dev/null +++ b/premake/VisualC/VS2012/SDL2/SDL2.vcxproj @@ -0,0 +1,432 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {7F1E020B-52F6-584E-B841-8B390015238B} + SDL2 + Win32Proj + + + + DynamicLibrary + true + MultiByte + v110 + + + DynamicLibrary + false + MultiByte + v110 + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + SDL2 + .dll + false + true + + + Win32\Release\ + obj\Release\ + SDL2 + .dll + false + false + + + + Disabled + ..;..\..\..\..\include;$(DXSDK_DIR)\Include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)SDL2.pdb + + + USING_PREMAKE_CONFIG_H;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + ..;..\..\..\..\include;$(DXSDK_DIR)\Include;%(AdditionalIncludeDirectories) + + + Windows + true + imm32.lib;oleaut32.lib;winmm.lib;version.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;uuid.lib;odbc32.lib;odbccp32.lib;OpenGL32.lib;%(AdditionalDependencies) + $(OutDir)SDL2.dll + $(DXSDK_DIR)\Lib\x86;%(AdditionalLibraryDirectories) + Win32\Debug\SDL2.lib + + + + + MaxSpeed + ..;..\..\..\..\include;$(DXSDK_DIR)\Include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + + + USING_PREMAKE_CONFIG_H;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + ..;..\..\..\..\include;$(DXSDK_DIR)\Include;%(AdditionalIncludeDirectories) + + + Windows + false + true + true + imm32.lib;oleaut32.lib;winmm.lib;version.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;uuid.lib;odbc32.lib;odbccp32.lib;OpenGL32.lib;%(AdditionalDependencies) + $(OutDir)SDL2.dll + $(DXSDK_DIR)\Lib\x86;%(AdditionalLibraryDirectories) + Win32\Release\SDL2.lib + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/premake/VisualC/VS2012/SDL2/SDL2.vcxproj.filters b/premake/VisualC/VS2012/SDL2/SDL2.vcxproj.filters new file mode 100755 index 0000000000000..32b1bdd2ff10d --- /dev/null +++ b/premake/VisualC/VS2012/SDL2/SDL2.vcxproj.filters @@ -0,0 +1,708 @@ + + + + + {ADEFAB0B-D006-ED47-8FD7-779EFC05AFB2} + + + {A1283406-E167-EA43-9A12-C9643EF0AD90} + + + {DCFE7352-8A02-AD43-BCAA-BFA4C48BA1D8} + + + {00074231-3E71-9540-BBC3-A658F83A8C5B} + + + {60C70DBB-2483-EB4D-B3F1-EDC2ABE33218} + + + {E86C7CE6-D84F-0246-8305-CAC9DC111CAC} + + + {03FDB100-C243-F649-8F61-04B9266FC837} + + + {A2439046-92D5-6C41-9576-D853A0B88EE3} + + + {3FF1D4EB-FFD6-1245-AFC5-34BAB778C0F0} + + + {153D1C69-37A5-C545-AD9D-78D09A346B1C} + + + {14A04DE3-1267-C54F-8365-E562E2E86DD9} + + + {72FBA0ED-9CB3-9C48-A84C-477143562BA5} + + + {3736406C-1551-DC46-9B99-AF49D75A6784} + + + {583C21C4-F3F3-C944-9B0B-24E4A9723FAB} + + + {79FB2D01-A2D5-0F4D-BDC6-C9C18DB07984} + + + {7AA190FE-2F3B-064B-B036-0D1FF60EF305} + + + {2C6F3941-9CD8-DE4E-9E25-74B5BEA589ED} + + + {924161C5-B81D-4242-AE02-AE1943EC47FE} + + + {4BD8963D-3790-E342-B9CA-E267E826DD8E} + + + {37D45504-44FB-064F-948D-0C4316D8C723} + + + {EB7B98EE-8FA2-A045-A368-76A0E7B3F8F5} + + + {F960D69D-08A1-9B47-955D-47CC3829F33C} + + + {BCA2F63F-C00E-2A40-BE35-3CE306F43BFB} + + + {6A0ECA48-36B8-C64F-B49C-4BAACBD9B8DA} + + + {0E805449-4B85-0444-A84E-C695B58CC05A} + + + {204FE516-51EF-8543-92E7-937448E29811} + + + {F7EE16F3-C152-9B4C-8EAD-60C0D26EC6F4} + + + {A2CE2FA2-A19D-4043-9357-11A1B6C4F52C} + + + {0CC475AD-60C6-094A-AC63-3EAD99353006} + + + {AC6445E9-E301-F04A-9654-E865A433336B} + + + {31A54CC4-B967-054E-AB77-4D3E84BB9F65} + + + {00BC1056-E15A-8D41-9864-D6023213DB30} + + + {6242F67B-F1A5-BD4F-A2FF-A8339675C1E4} + + + {F56E2DCC-68AE-9244-A6B9-ABB6E802360E} + + + {96C5297F-FF4C-0548-A942-2F037DAE6F02} + + + {3BF27E48-AFAF-2542-B591-6BAD55FF360F} + + + {37119F6F-20C4-A547-A574-E4DDF7BF8E80} + + + + + src + + + src + + + src\audio + + + src\audio + + + src\audio + + + src\audio + + + src\audio + + + src\audio\disk + + + src\audio\dummy + + + src\events + + + src\events + + + src\events + + + src\events + + + src\events + + + src\events + + + src\events + + + src\events + + + src\events + + + src\events + + + src\events + + + src\events + + + src\events + + + src\events + + + src\events + + + src\haptic + + + src\haptic + + + src\joystick + + + src\joystick + + + src\joystick + + + src\render + + + src\render + + + src\render + + + src\render\software + + + src\render\software + + + src\render\software + + + src\render\software + + + src\render\software + + + src\render\software + + + src\render\software + + + src\render\software + + + src\thread + + + src\thread + + + src\timer + + + src\video + + + src\video + + + src\video + + + src\video + + + src\video + + + src\video + + + src\video + + + src\video + + + src\video + + + src\video + + + src\video\dummy + + + src\video\dummy + + + src\video\dummy + + + src\thread\generic + + + src\audio\winmm + + + src\core\windows + + + src\libm + + + src\libm + + + src\thread\windows + + + src\video\windows + + + src\video\windows + + + src\video\windows + + + src\video\windows + + + src\video\windows + + + src\video\windows + + + src\video\windows + + + src\video\windows + + + src\video\windows + + + src\video\windows + + + src\video\windows + + + src\video\windows + + + src\video\windows + + + src\video\windows + + + src\audio\directsound + + + src\audio\directsound + + + src\joystick\windows + + + src\render\opengl + + + src\render\opengl + + + + + src + + + src + + + src + + + src + + + src + + + src\atomic + + + src\atomic + + + src\audio + + + src\audio + + + src\audio + + + src\audio + + + src\audio + + + src\audio + + + src\audio\disk + + + src\audio\dummy + + + src\cpuinfo + + + src\events + + + src\events + + + src\events + + + src\events + + + src\events + + + src\events + + + src\events + + + src\events + + + src\events + + + src\file + + + src\haptic + + + src\joystick + + + src\joystick + + + src\power + + + src\render + + + src\render + + + src\render + + + src\render\software + + + src\render\software + + + src\render\software + + + src\render\software + + + src\render\software + + + src\render\software + + + src\render\software + + + src\stdlib + + + src\stdlib + + + src\stdlib + + + src\stdlib + + + src\stdlib + + + src\stdlib + + + src\thread + + + src\timer + + + src\video + + + src\video + + + src\video + + + src\video + + + src\video + + + src\video + + + src\video + + + src\video + + + src\video + + + src\video + + + src\video + + + src\video + + + src\video + + + src\video + + + src\video + + + src\video + + + src\video + + + src\video + + + src\video + + + src\video\dummy + + + src\video\dummy + + + src\video\dummy + + + src\thread\generic + + + src\audio\winmm + + + src\core\windows + + + src\libm + + + src\libm + + + src\libm + + + src\libm + + + src\libm + + + src\libm + + + src\libm + + + src\libm + + + src\libm + + + src\libm + + + src\libm + + + src\libm + + + src\libm + + + src\libm + + + src\libm + + + src\loadso\windows + + + src\power\windows + + + src\thread\windows + + + src\thread\windows + + + src\thread\windows + + + src\thread\windows + + + src\timer\windows + + + src\video\windows + + + src\video\windows + + + src\video\windows + + + src\video\windows + + + src\video\windows + + + src\video\windows + + + src\video\windows + + + src\video\windows + + + src\video\windows + + + src\video\windows + + + src\video\windows + + + src\filesystem\windows + + + src\audio\directsound + + + src\audio\xaudio2 + + + src\render\direct3d + + + src\haptic\windows + + + src\joystick\windows + + + src\joystick\windows + + + src\render\opengl + + + src\render\opengl + + + diff --git a/premake/VisualC/VS2012/SDL2main/SDL2main.vcxproj b/premake/VisualC/VS2012/SDL2main/SDL2main.vcxproj new file mode 100755 index 0000000000000..b4a2aab10ddd8 --- /dev/null +++ b/premake/VisualC/VS2012/SDL2main/SDL2main.vcxproj @@ -0,0 +1,117 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {47B50335-DB5D-B948-B80C-E361ED5793F5} + SDL2main + Win32Proj + + + + StaticLibrary + true + MultiByte + v110 + + + StaticLibrary + false + MultiByte + v110 + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + SDL2main + .lib + + + Win32\Release\ + obj\Release\ + SDL2main + .lib + + + + Disabled + ..;..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)SDL2main.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..;..\..\..\..\include;%(AdditionalIncludeDirectories) + + + $(OutDir)SDL2main.lib + + + Windows + true + + + + + MaxSpeed + ..;..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..;..\..\..\..\include;%(AdditionalIncludeDirectories) + + + $(OutDir)SDL2main.lib + + + Windows + false + true + true + + + + + + + + + + diff --git a/premake/VisualC/VS2012/SDL2main/SDL2main.vcxproj.filters b/premake/VisualC/VS2012/SDL2main/SDL2main.vcxproj.filters new file mode 100755 index 0000000000000..8ec9712503259 --- /dev/null +++ b/premake/VisualC/VS2012/SDL2main/SDL2main.vcxproj.filters @@ -0,0 +1,19 @@ + + + + + {20668DBD-C997-D94C-82BC-FFA6F1FAC562} + + + {720C56A4-94A2-2D40-9B68-6BEA7F78FA66} + + + {ED0BAA99-5AE2-534E-BFF9-D9D488FF2771} + + + + + src\main\windows + + + diff --git a/premake/VisualC/VS2012/SDL2test/SDL2test.vcxproj b/premake/VisualC/VS2012/SDL2test/SDL2test.vcxproj new file mode 100755 index 0000000000000..e6ef535a66d1d --- /dev/null +++ b/premake/VisualC/VS2012/SDL2test/SDL2test.vcxproj @@ -0,0 +1,159 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {E544B08A-C532-884E-A0BE-0F6F7F700067} + SDL2test + Win32Proj + + + + StaticLibrary + true + MultiByte + v110 + + + StaticLibrary + false + MultiByte + v110 + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + SDL2test + .lib + + + Win32\Release\ + obj\Release\ + SDL2test + .lib + + + + Disabled + ..;..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)SDL2test.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..;..\..\..\..\include;%(AdditionalIncludeDirectories) + + + $(OutDir)SDL2test.lib + + + Windows + true + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..;..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..;..\..\..\..\include;%(AdditionalIncludeDirectories) + + + $(OutDir)SDL2test.lib + + + Windows + false + true + true + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {47B50335-DB5D-B948-B80C-E361ED5793F5} + + + {7F1E020B-52F6-584E-B841-8B390015238B} + + + + + + diff --git a/premake/VisualC/VS2012/SDL2test/SDL2test.vcxproj.filters b/premake/VisualC/VS2012/SDL2test/SDL2test.vcxproj.filters new file mode 100755 index 0000000000000..223778b5d289c --- /dev/null +++ b/premake/VisualC/VS2012/SDL2test/SDL2test.vcxproj.filters @@ -0,0 +1,58 @@ + + + + + {225F6BF5-1223-DE4D-AE58-119A06816C3F} + + + {50B2248A-623E-474D-B912-19B250D06132} + + + + + src\test + + + src\test + + + src\test + + + src\test + + + src\test + + + src\test + + + src\test + + + src\test + + + src\test + + + src\test + + + src\test + + + src\test + + + src\test + + + src\test + + + src\test + + + diff --git a/premake/VisualC/VS2012/SDL_config_premake.h b/premake/VisualC/VS2012/SDL_config_premake.h new file mode 100755 index 0000000000000..be158a4f00a52 --- /dev/null +++ b/premake/VisualC/VS2012/SDL_config_premake.h @@ -0,0 +1,202 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2013 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef _SDL_config_windows_h +#define _SDL_config_windows_h + +#include "SDL_platform.h" + +/* This is a set of defines to configure the SDL features */ + +#if !defined(_STDINT_H_) && (!defined(HAVE_STDINT_H) || !_HAVE_STDINT_H) +#if defined(__GNUC__) || defined(__DMC__) || defined(__WATCOMC__) +#define HAVE_STDINT_H 1 +#elif defined(_MSC_VER) +typedef signed __int8 int8_t; +typedef unsigned __int8 uint8_t; +typedef signed __int16 int16_t; +typedef unsigned __int16 uint16_t; +typedef signed __int32 int32_t; +typedef unsigned __int32 uint32_t; +typedef signed __int64 int64_t; +typedef unsigned __int64 uint64_t; +#ifndef _UINTPTR_T_DEFINED +#ifdef _WIN64 +typedef unsigned __int64 uintptr_t; +#else +typedef unsigned int uintptr_t; +#endif +#define _UINTPTR_T_DEFINED +#endif +/* Older Visual C++ headers don't have the Win64-compatible typedefs... */ +#if ((_MSC_VER <= 1200) && (!defined(DWORD_PTR))) +#define DWORD_PTR DWORD +#endif +#if ((_MSC_VER <= 1200) && (!defined(LONG_PTR))) +#define LONG_PTR LONG +#endif +#else /* !__GNUC__ && !_MSC_VER */ +typedef signed char int8_t; +typedef unsigned char uint8_t; +typedef signed short int16_t; +typedef unsigned short uint16_t; +typedef signed int int32_t; +typedef unsigned int uint32_t; +typedef signed long long int64_t; +typedef unsigned long long uint64_t; +#ifndef _SIZE_T_DEFINED_ +#define _SIZE_T_DEFINED_ +typedef unsigned int size_t; +#endif +typedef unsigned int uintptr_t; +#endif /* __GNUC__ || _MSC_VER */ +#endif /* !_STDINT_H_ && !HAVE_STDINT_H */ + +#ifdef _WIN64 +# define SIZEOF_VOIDP 8 +#else +# define SIZEOF_VOIDP 4 +#endif + +/* This is disabled by default to avoid C runtime dependencies and manifest requirements */ +#ifdef HAVE_LIBC +/* Useful headers */ +#define HAVE_STDIO_H 1 +#define STDC_HEADERS 1 +#define HAVE_STRING_H 1 +#define HAVE_CTYPE_H 1 +#define HAVE_MATH_H 1 +#define HAVE_SIGNAL_H 1 + +/* C library functions */ +#define HAVE_MALLOC 1 +#define HAVE_CALLOC 1 +#define HAVE_REALLOC 1 +#define HAVE_FREE 1 +#define HAVE_ALLOCA 1 +#define HAVE_QSORT 1 +#define HAVE_ABS 1 +#define HAVE_MEMSET 1 +#define HAVE_MEMCPY 1 +#define HAVE_MEMMOVE 1 +#define HAVE_MEMCMP 1 +#define HAVE_STRLEN 1 +#define HAVE__STRREV 1 +#define HAVE__STRUPR 1 +#define HAVE__STRLWR 1 +#define HAVE_STRCHR 1 +#define HAVE_STRRCHR 1 +#define HAVE_STRSTR 1 +#define HAVE_ITOA 1 +#define HAVE__LTOA 1 +#define HAVE__ULTOA 1 +#define HAVE_STRTOL 1 +#define HAVE_STRTOUL 1 +#define HAVE_STRTOLL 1 +#define HAVE_STRTOD 1 +#define HAVE_ATOI 1 +#define HAVE_ATOF 1 +#define HAVE_STRCMP 1 +#define HAVE_STRNCMP 1 +#define HAVE__STRICMP 1 +#define HAVE__STRNICMP 1 +#define HAVE_SSCANF 1 +#define HAVE_M_PI 1 +#define HAVE_ATAN 1 +#define HAVE_ATAN2 1 +#define HAVE_CEIL 1 +#define HAVE_COPYSIGN 1 +#define HAVE_COS 1 +#define HAVE_COSF 1 +#define HAVE_FABS 1 +#define HAVE_FLOOR 1 +#define HAVE_LOG 1 +#define HAVE_POW 1 +#define HAVE_SCALBN 1 +#define HAVE_SIN 1 +#define HAVE_SINF 1 +#define HAVE_SQRT 1 +#else +#define HAVE_STDARG_H 1 +#define HAVE_STDDEF_H 1 +#endif + +#ifndef SDL_AUDIO_DRIVER_DUMMY +#define SDL_AUDIO_DRIVER_DUMMY 1 +#endif +#ifndef SDL_AUDIO_DRIVER_DISK +#define SDL_AUDIO_DRIVER_DISK 1 +#endif +#ifndef SDL_VIDEO_DRIVER_DUMMY +#define SDL_VIDEO_DRIVER_DUMMY 1 +#endif +#ifndef SDL_TIMER_WINDOWS +#define SDL_TIMER_WINDOWS 1 +#endif +#ifndef SDL_AUDIO_DRIVER_WINMM +#define SDL_AUDIO_DRIVER_WINMM 1 +#endif +#ifndef SDL_FILESYSTEM_WINDOWS +#define SDL_FILESYSTEM_WINDOWS 1 +#endif +#ifndef SDL_POWER_WINDOWS +#define SDL_POWER_WINDOWS 1 +#endif +#ifndef SDL_LOADSO_WINDOWS +#define SDL_LOADSO_WINDOWS 1 +#endif +#ifndef SDL_VIDEO_DRIVER_WINDOWS +#define SDL_VIDEO_DRIVER_WINDOWS 1 +#endif +#ifndef SDL_THREAD_WINDOWS +#define SDL_THREAD_WINDOWS 1 +#endif +#ifndef SDL_AUDIO_DRIVER_DSOUND +#define SDL_AUDIO_DRIVER_DSOUND 1 +#endif +#ifndef SDL_JOYSTICK_DINPUT +#define SDL_JOYSTICK_DINPUT 1 +#endif +#ifndef SDL_VIDEO_RENDER_D3D +#define SDL_VIDEO_RENDER_D3D 1 +#endif +#ifndef SDL_HAPTIC_DINPUT +#define SDL_HAPTIC_DINPUT 1 +#endif +#ifndef SDL_AUDIO_DRIVER_XAUDIO2 +#define SDL_AUDIO_DRIVER_XAUDIO2 1 +#endif +#ifndef SDL_VIDEO_RENDER_OGL +#define SDL_VIDEO_RENDER_OGL 1 +#endif +#ifndef SDL_VIDEO_OPENGL +#define SDL_VIDEO_OPENGL 1 +#endif +#ifndef SDL_VIDEO_OPENGL_WGL +#define SDL_VIDEO_OPENGL_WGL 1 +#endif + +/* Enable assembly routines (Win64 doesn't have inline asm) */ +#ifndef _WIN64 +#define SDL_ASSEMBLY_ROUTINES 1 +#endif + +#endif /* _SDL_config_windows_h */ diff --git a/premake/VisualC/VS2012/tests/checkkeys/checkkeys.vcxproj b/premake/VisualC/VS2012/tests/checkkeys/checkkeys.vcxproj new file mode 100755 index 0000000000000..ca918da8037af --- /dev/null +++ b/premake/VisualC/VS2012/tests/checkkeys/checkkeys.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {0C2EE701-0ABA-5E48-9253-B3A54ECD5107} + checkkeys + Win32Proj + + + + Application + true + MultiByte + v110 + + + Application + false + MultiByte + v110 + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + checkkeys + .exe + true + + + Win32\Release\ + obj\Release\ + checkkeys + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)checkkeys.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)checkkeys.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)checkkeys.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {47B50335-DB5D-B948-B80C-E361ED5793F5} + + + {7F1E020B-52F6-584E-B841-8B390015238B} + + + + + + diff --git a/premake/VisualC/VS2012/tests/checkkeys/checkkeys.vcxproj.filters b/premake/VisualC/VS2012/tests/checkkeys/checkkeys.vcxproj.filters new file mode 100755 index 0000000000000..0c73111f1a02e --- /dev/null +++ b/premake/VisualC/VS2012/tests/checkkeys/checkkeys.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {DDC55830-A554-F24D-83EF-9B5E4E3A0B37} + + + + + test + + + diff --git a/premake/VisualC/VS2012/tests/loopwave/loopwave.vcxproj b/premake/VisualC/VS2012/tests/loopwave/loopwave.vcxproj new file mode 100755 index 0000000000000..cd0070ecb3abd --- /dev/null +++ b/premake/VisualC/VS2012/tests/loopwave/loopwave.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {B4860E68-BEB0-2242-A6F6-A2D6FDCB5FD6} + loopwave + Win32Proj + + + + Application + true + MultiByte + v110 + + + Application + false + MultiByte + v110 + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + loopwave + .exe + true + + + Win32\Release\ + obj\Release\ + loopwave + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)loopwave.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)loopwave.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" copy ".\..\..\..\..\..\test\sample.wav" ".\Win32\Debug\sample.wav" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)loopwave.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" copy ".\..\..\..\..\..\test\sample.wav" ".\Win32\Release\sample.wav" + + + + + + + + + {47B50335-DB5D-B948-B80C-E361ED5793F5} + + + {7F1E020B-52F6-584E-B841-8B390015238B} + + + + + + diff --git a/premake/VisualC/VS2012/tests/loopwave/loopwave.vcxproj.filters b/premake/VisualC/VS2012/tests/loopwave/loopwave.vcxproj.filters new file mode 100755 index 0000000000000..f96f16d7aa676 --- /dev/null +++ b/premake/VisualC/VS2012/tests/loopwave/loopwave.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {A020565A-7C60-7A48-9BDD-9967A2C31012} + + + + + test + + + diff --git a/premake/VisualC/VS2012/tests/testatomic/testatomic.vcxproj b/premake/VisualC/VS2012/tests/testatomic/testatomic.vcxproj new file mode 100755 index 0000000000000..d152e00f7f364 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testatomic/testatomic.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {D2F26E24-D261-C54C-A334-F8F0EA68AA51} + testatomic + Win32Proj + + + + Application + true + MultiByte + v110 + + + Application + false + MultiByte + v110 + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testatomic + .exe + true + + + Win32\Release\ + obj\Release\ + testatomic + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testatomic.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testatomic.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testatomic.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {47B50335-DB5D-B948-B80C-E361ED5793F5} + + + {7F1E020B-52F6-584E-B841-8B390015238B} + + + + + + diff --git a/premake/VisualC/VS2012/tests/testatomic/testatomic.vcxproj.filters b/premake/VisualC/VS2012/tests/testatomic/testatomic.vcxproj.filters new file mode 100755 index 0000000000000..27dc079a9e05f --- /dev/null +++ b/premake/VisualC/VS2012/tests/testatomic/testatomic.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {4A3ED0B0-F175-F048-8051-524A5DB3BC0D} + + + + + test + + + diff --git a/premake/VisualC/VS2012/tests/testaudioinfo/testaudioinfo.vcxproj b/premake/VisualC/VS2012/tests/testaudioinfo/testaudioinfo.vcxproj new file mode 100755 index 0000000000000..bbfa3471b226a --- /dev/null +++ b/premake/VisualC/VS2012/tests/testaudioinfo/testaudioinfo.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {7A1312CF-BE73-8849-AFE9-48A028FB6C88} + testaudioinfo + Win32Proj + + + + Application + true + MultiByte + v110 + + + Application + false + MultiByte + v110 + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testaudioinfo + .exe + true + + + Win32\Release\ + obj\Release\ + testaudioinfo + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testaudioinfo.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testaudioinfo.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testaudioinfo.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {47B50335-DB5D-B948-B80C-E361ED5793F5} + + + {7F1E020B-52F6-584E-B841-8B390015238B} + + + + + + diff --git a/premake/VisualC/VS2012/tests/testaudioinfo/testaudioinfo.vcxproj.filters b/premake/VisualC/VS2012/tests/testaudioinfo/testaudioinfo.vcxproj.filters new file mode 100755 index 0000000000000..94996b3893adc --- /dev/null +++ b/premake/VisualC/VS2012/tests/testaudioinfo/testaudioinfo.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {CF8F9A91-CC78-F041-B59E-7C77C527C6DD} + + + + + test + + + diff --git a/premake/VisualC/VS2012/tests/testautomation/testautomation.vcxproj b/premake/VisualC/VS2012/tests/testautomation/testautomation.vcxproj new file mode 100755 index 0000000000000..2418c726a6b0e --- /dev/null +++ b/premake/VisualC/VS2012/tests/testautomation/testautomation.vcxproj @@ -0,0 +1,171 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {F7EAB41D-92CB-6B49-8131-48A61120F3C4} + testautomation + Win32Proj + + + + Application + true + MultiByte + v110 + + + Application + false + MultiByte + v110 + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testautomation + .exe + true + + + Win32\Release\ + obj\Release\ + testautomation + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testautomation.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testautomation.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testautomation.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {47B50335-DB5D-B948-B80C-E361ED5793F5} + + + {E544B08A-C532-884E-A0BE-0F6F7F700067} + + + {7F1E020B-52F6-584E-B841-8B390015238B} + + + + + + diff --git a/premake/VisualC/VS2012/tests/testautomation/testautomation.vcxproj.filters b/premake/VisualC/VS2012/tests/testautomation/testautomation.vcxproj.filters new file mode 100755 index 0000000000000..e7507d9f31e82 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testautomation/testautomation.vcxproj.filters @@ -0,0 +1,69 @@ + + + + + {F6971E40-42B2-5345-BF72-1CC2592B74DF} + + + + + test + + + + + test + + + test + + + test + + + test + + + test + + + test + + + test + + + test + + + test + + + test + + + test + + + test + + + test + + + test + + + test + + + test + + + test + + + test + + + diff --git a/premake/VisualC/VS2012/tests/testchessboard/testchessboard.vcxproj b/premake/VisualC/VS2012/tests/testchessboard/testchessboard.vcxproj new file mode 100755 index 0000000000000..5a30dfa1e0539 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testchessboard/testchessboard.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {15323EAE-0CB5-4245-8324-A4BF2EA72D6B} + testchessboard + Win32Proj + + + + Application + true + MultiByte + v110 + + + Application + false + MultiByte + v110 + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testchessboard + .exe + true + + + Win32\Release\ + obj\Release\ + testchessboard + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testchessboard.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testchessboard.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testchessboard.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {47B50335-DB5D-B948-B80C-E361ED5793F5} + + + {7F1E020B-52F6-584E-B841-8B390015238B} + + + + + + diff --git a/premake/VisualC/VS2012/tests/testchessboard/testchessboard.vcxproj.filters b/premake/VisualC/VS2012/tests/testchessboard/testchessboard.vcxproj.filters new file mode 100755 index 0000000000000..033a62e152024 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testchessboard/testchessboard.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {6DF84982-7F01-BE4C-8B7A-77B30F0B6FA7} + + + + + test + + + diff --git a/premake/VisualC/VS2012/tests/testdraw2/testdraw2.vcxproj b/premake/VisualC/VS2012/tests/testdraw2/testdraw2.vcxproj new file mode 100755 index 0000000000000..ff096816b9a2d --- /dev/null +++ b/premake/VisualC/VS2012/tests/testdraw2/testdraw2.vcxproj @@ -0,0 +1,134 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {E4477807-2D9E-CC43-9EF3-AEB1ADEDF79C} + testdraw2 + Win32Proj + + + + Application + true + MultiByte + v110 + + + Application + false + MultiByte + v110 + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testdraw2 + .exe + true + + + Win32\Release\ + obj\Release\ + testdraw2 + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testdraw2.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testdraw2.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testdraw2.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {47B50335-DB5D-B948-B80C-E361ED5793F5} + + + {E544B08A-C532-884E-A0BE-0F6F7F700067} + + + {7F1E020B-52F6-584E-B841-8B390015238B} + + + + + + diff --git a/premake/VisualC/VS2012/tests/testdraw2/testdraw2.vcxproj.filters b/premake/VisualC/VS2012/tests/testdraw2/testdraw2.vcxproj.filters new file mode 100755 index 0000000000000..77aff40bd31e1 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testdraw2/testdraw2.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {27B9E572-B60D-5F4E-BD5B-B637509EFC33} + + + + + test + + + diff --git a/premake/VisualC/VS2012/tests/testerror/testerror.vcxproj b/premake/VisualC/VS2012/tests/testerror/testerror.vcxproj new file mode 100755 index 0000000000000..fd949f71bf96c --- /dev/null +++ b/premake/VisualC/VS2012/tests/testerror/testerror.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {DFD06E4E-B317-B745-8FB4-7063244DCA3E} + testerror + Win32Proj + + + + Application + true + MultiByte + v110 + + + Application + false + MultiByte + v110 + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testerror + .exe + true + + + Win32\Release\ + obj\Release\ + testerror + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testerror.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testerror.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testerror.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {47B50335-DB5D-B948-B80C-E361ED5793F5} + + + {7F1E020B-52F6-584E-B841-8B390015238B} + + + + + + diff --git a/premake/VisualC/VS2012/tests/testerror/testerror.vcxproj.filters b/premake/VisualC/VS2012/tests/testerror/testerror.vcxproj.filters new file mode 100755 index 0000000000000..732cfa0c50566 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testerror/testerror.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {120F793B-1E83-CE45-983C-A8AB8F664742} + + + + + test + + + diff --git a/premake/VisualC/VS2012/tests/testfile/testfile.vcxproj b/premake/VisualC/VS2012/tests/testfile/testfile.vcxproj new file mode 100755 index 0000000000000..74500a4ce3dc5 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testfile/testfile.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {07A396E5-1642-6148-82DA-2FF06644E542} + testfile + Win32Proj + + + + Application + true + MultiByte + v110 + + + Application + false + MultiByte + v110 + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testfile + .exe + true + + + Win32\Release\ + obj\Release\ + testfile + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testfile.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testfile.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testfile.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {47B50335-DB5D-B948-B80C-E361ED5793F5} + + + {7F1E020B-52F6-584E-B841-8B390015238B} + + + + + + diff --git a/premake/VisualC/VS2012/tests/testfile/testfile.vcxproj.filters b/premake/VisualC/VS2012/tests/testfile/testfile.vcxproj.filters new file mode 100755 index 0000000000000..ed6f911c38d0f --- /dev/null +++ b/premake/VisualC/VS2012/tests/testfile/testfile.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {82BC5087-1504-A84A-889B-B4DE722A521E} + + + + + test + + + diff --git a/premake/VisualC/VS2012/tests/testfilesystem/testfilesystem.vcxproj b/premake/VisualC/VS2012/tests/testfilesystem/testfilesystem.vcxproj new file mode 100755 index 0000000000000..9894aa4e6a828 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testfilesystem/testfilesystem.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {259763DF-AC86-B445-A465-064452171EB6} + testfilesystem + Win32Proj + + + + Application + true + MultiByte + v110 + + + Application + false + MultiByte + v110 + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testfilesystem + .exe + true + + + Win32\Release\ + obj\Release\ + testfilesystem + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testfilesystem.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testfilesystem.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testfilesystem.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {47B50335-DB5D-B948-B80C-E361ED5793F5} + + + {7F1E020B-52F6-584E-B841-8B390015238B} + + + + + + diff --git a/premake/VisualC/VS2012/tests/testfilesystem/testfilesystem.vcxproj.filters b/premake/VisualC/VS2012/tests/testfilesystem/testfilesystem.vcxproj.filters new file mode 100755 index 0000000000000..363fd16872b23 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testfilesystem/testfilesystem.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {33CB845D-7186-0246-98CA-B981CF4C67E2} + + + + + test + + + diff --git a/premake/VisualC/VS2012/tests/testgamecontroller/testgamecontroller.vcxproj b/premake/VisualC/VS2012/tests/testgamecontroller/testgamecontroller.vcxproj new file mode 100755 index 0000000000000..08dc0d9067576 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testgamecontroller/testgamecontroller.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {24AB4CEE-B82E-9C42-8ED2-9F3F7F3006AE} + testgamecontroller + Win32Proj + + + + Application + true + MultiByte + v110 + + + Application + false + MultiByte + v110 + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testgamecontroller + .exe + true + + + Win32\Release\ + obj\Release\ + testgamecontroller + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testgamecontroller.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testgamecontroller.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testgamecontroller.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {47B50335-DB5D-B948-B80C-E361ED5793F5} + + + {7F1E020B-52F6-584E-B841-8B390015238B} + + + + + + diff --git a/premake/VisualC/VS2012/tests/testgamecontroller/testgamecontroller.vcxproj.filters b/premake/VisualC/VS2012/tests/testgamecontroller/testgamecontroller.vcxproj.filters new file mode 100755 index 0000000000000..a50e3df7017f0 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testgamecontroller/testgamecontroller.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {0C36D1A5-969C-A340-85C5-368C8B115CB5} + + + + + test + + + diff --git a/premake/VisualC/VS2012/tests/testgesture/testgesture.vcxproj b/premake/VisualC/VS2012/tests/testgesture/testgesture.vcxproj new file mode 100755 index 0000000000000..30a9b0e925732 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testgesture/testgesture.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {356BDC7D-2137-DA40-B20E-057366ADDEB7} + testgesture + Win32Proj + + + + Application + true + MultiByte + v110 + + + Application + false + MultiByte + v110 + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testgesture + .exe + true + + + Win32\Release\ + obj\Release\ + testgesture + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testgesture.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testgesture.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testgesture.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {47B50335-DB5D-B948-B80C-E361ED5793F5} + + + {7F1E020B-52F6-584E-B841-8B390015238B} + + + + + + diff --git a/premake/VisualC/VS2012/tests/testgesture/testgesture.vcxproj.filters b/premake/VisualC/VS2012/tests/testgesture/testgesture.vcxproj.filters new file mode 100755 index 0000000000000..db568e7bf5dde --- /dev/null +++ b/premake/VisualC/VS2012/tests/testgesture/testgesture.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {16E9BA0C-AA3E-694D-A7CD-B6A9827E1C17} + + + + + test + + + diff --git a/premake/VisualC/VS2012/tests/testgl2/testgl2.vcxproj b/premake/VisualC/VS2012/tests/testgl2/testgl2.vcxproj new file mode 100755 index 0000000000000..dc75c2ef04c03 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testgl2/testgl2.vcxproj @@ -0,0 +1,136 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {114BFA65-28CD-704A-A34B-99E354525E81} + testgl2 + Win32Proj + + + + Application + true + MultiByte + v110 + + + Application + false + MultiByte + v110 + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testgl2 + .exe + true + + + Win32\Release\ + obj\Release\ + testgl2 + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;HAVE_OPENGL;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testgl2.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;HAVE_OPENGL;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + OpenGL32.lib;%(AdditionalDependencies) + $(OutDir)testgl2.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;HAVE_OPENGL;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;HAVE_OPENGL;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + OpenGL32.lib;%(AdditionalDependencies) + $(OutDir)testgl2.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {47B50335-DB5D-B948-B80C-E361ED5793F5} + + + {E544B08A-C532-884E-A0BE-0F6F7F700067} + + + {7F1E020B-52F6-584E-B841-8B390015238B} + + + + + + diff --git a/premake/VisualC/VS2012/tests/testgl2/testgl2.vcxproj.filters b/premake/VisualC/VS2012/tests/testgl2/testgl2.vcxproj.filters new file mode 100755 index 0000000000000..bd75b0661df63 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testgl2/testgl2.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {3D8A3797-C7C6-784C-AD6D-7C39C0E4CA74} + + + + + test + + + diff --git a/premake/VisualC/VS2012/tests/testgles/testgles.vcxproj b/premake/VisualC/VS2012/tests/testgles/testgles.vcxproj new file mode 100755 index 0000000000000..5e270f3ab3e15 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testgles/testgles.vcxproj @@ -0,0 +1,134 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {1BC2C664-E0D9-314C-BDDE-6DF601ADE701} + testgles + Win32Proj + + + + Application + true + MultiByte + v110 + + + Application + false + MultiByte + v110 + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testgles + .exe + true + + + Win32\Release\ + obj\Release\ + testgles + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testgles.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testgles.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testgles.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {47B50335-DB5D-B948-B80C-E361ED5793F5} + + + {E544B08A-C532-884E-A0BE-0F6F7F700067} + + + {7F1E020B-52F6-584E-B841-8B390015238B} + + + + + + diff --git a/premake/VisualC/VS2012/tests/testgles/testgles.vcxproj.filters b/premake/VisualC/VS2012/tests/testgles/testgles.vcxproj.filters new file mode 100755 index 0000000000000..b2daed5d43870 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testgles/testgles.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {058C37BE-CF61-1046-947A-FE43F37E9899} + + + + + test + + + diff --git a/premake/VisualC/VS2012/tests/testhaptic/testhaptic.vcxproj b/premake/VisualC/VS2012/tests/testhaptic/testhaptic.vcxproj new file mode 100755 index 0000000000000..a0158e39af378 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testhaptic/testhaptic.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {84FB19AD-E26F-984D-8F1F-9D92BC817E75} + testhaptic + Win32Proj + + + + Application + true + MultiByte + v110 + + + Application + false + MultiByte + v110 + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testhaptic + .exe + true + + + Win32\Release\ + obj\Release\ + testhaptic + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testhaptic.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testhaptic.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testhaptic.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {47B50335-DB5D-B948-B80C-E361ED5793F5} + + + {7F1E020B-52F6-584E-B841-8B390015238B} + + + + + + diff --git a/premake/VisualC/VS2012/tests/testhaptic/testhaptic.vcxproj.filters b/premake/VisualC/VS2012/tests/testhaptic/testhaptic.vcxproj.filters new file mode 100755 index 0000000000000..057c6ad665300 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testhaptic/testhaptic.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {3EB2A30F-A974-B143-9921-BFB46BFC5AA7} + + + + + test + + + diff --git a/premake/VisualC/VS2012/tests/testiconv/testiconv.vcxproj b/premake/VisualC/VS2012/tests/testiconv/testiconv.vcxproj new file mode 100755 index 0000000000000..587755c471bf4 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testiconv/testiconv.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {4CF625C3-2F83-7F4F-8ADD-15BEEFCD24E7} + testiconv + Win32Proj + + + + Application + true + MultiByte + v110 + + + Application + false + MultiByte + v110 + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testiconv + .exe + true + + + Win32\Release\ + obj\Release\ + testiconv + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testiconv.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testiconv.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" copy ".\..\..\..\..\..\test\utf8.txt" ".\Win32\Debug\utf8.txt" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testiconv.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" copy ".\..\..\..\..\..\test\utf8.txt" ".\Win32\Release\utf8.txt" + + + + + + + + + {47B50335-DB5D-B948-B80C-E361ED5793F5} + + + {7F1E020B-52F6-584E-B841-8B390015238B} + + + + + + diff --git a/premake/VisualC/VS2012/tests/testiconv/testiconv.vcxproj.filters b/premake/VisualC/VS2012/tests/testiconv/testiconv.vcxproj.filters new file mode 100755 index 0000000000000..e1e447097f9bc --- /dev/null +++ b/premake/VisualC/VS2012/tests/testiconv/testiconv.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {66870B1E-295C-1F42-BA63-8DE33CFAF7BF} + + + + + test + + + diff --git a/premake/VisualC/VS2012/tests/testime/testime.vcxproj b/premake/VisualC/VS2012/tests/testime/testime.vcxproj new file mode 100755 index 0000000000000..bb99427647dd7 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testime/testime.vcxproj @@ -0,0 +1,134 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {98C363EE-E394-564A-8F5D-8649BE4EA3A5} + testime + Win32Proj + + + + Application + true + MultiByte + v110 + + + Application + false + MultiByte + v110 + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testime + .exe + true + + + Win32\Release\ + obj\Release\ + testime + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testime.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testime.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testime.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {47B50335-DB5D-B948-B80C-E361ED5793F5} + + + {E544B08A-C532-884E-A0BE-0F6F7F700067} + + + {7F1E020B-52F6-584E-B841-8B390015238B} + + + + + + diff --git a/premake/VisualC/VS2012/tests/testime/testime.vcxproj.filters b/premake/VisualC/VS2012/tests/testime/testime.vcxproj.filters new file mode 100755 index 0000000000000..263f006be3aeb --- /dev/null +++ b/premake/VisualC/VS2012/tests/testime/testime.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {D3A0B367-C2EE-F44D-8824-309CB7E1084D} + + + + + test + + + diff --git a/premake/VisualC/VS2012/tests/testjoystick/testjoystick.vcxproj b/premake/VisualC/VS2012/tests/testjoystick/testjoystick.vcxproj new file mode 100755 index 0000000000000..f6260c3764111 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testjoystick/testjoystick.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {867A2823-E792-3749-A47C-1B5F118FD1F9} + testjoystick + Win32Proj + + + + Application + true + MultiByte + v110 + + + Application + false + MultiByte + v110 + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testjoystick + .exe + true + + + Win32\Release\ + obj\Release\ + testjoystick + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testjoystick.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testjoystick.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testjoystick.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {47B50335-DB5D-B948-B80C-E361ED5793F5} + + + {7F1E020B-52F6-584E-B841-8B390015238B} + + + + + + diff --git a/premake/VisualC/VS2012/tests/testjoystick/testjoystick.vcxproj.filters b/premake/VisualC/VS2012/tests/testjoystick/testjoystick.vcxproj.filters new file mode 100755 index 0000000000000..3f1c12548a3ea --- /dev/null +++ b/premake/VisualC/VS2012/tests/testjoystick/testjoystick.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {CD715A5E-DB2F-284E-81E8-8BD37B7EF33A} + + + + + test + + + diff --git a/premake/VisualC/VS2012/tests/testkeys/testkeys.vcxproj b/premake/VisualC/VS2012/tests/testkeys/testkeys.vcxproj new file mode 100755 index 0000000000000..99afad0ae21fa --- /dev/null +++ b/premake/VisualC/VS2012/tests/testkeys/testkeys.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {A22567A8-5E3D-4046-A9EE-32148A1996DE} + testkeys + Win32Proj + + + + Application + true + MultiByte + v110 + + + Application + false + MultiByte + v110 + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testkeys + .exe + true + + + Win32\Release\ + obj\Release\ + testkeys + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testkeys.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testkeys.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testkeys.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {47B50335-DB5D-B948-B80C-E361ED5793F5} + + + {7F1E020B-52F6-584E-B841-8B390015238B} + + + + + + diff --git a/premake/VisualC/VS2012/tests/testkeys/testkeys.vcxproj.filters b/premake/VisualC/VS2012/tests/testkeys/testkeys.vcxproj.filters new file mode 100755 index 0000000000000..4676ce579a864 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testkeys/testkeys.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {F26EFCDD-F088-4548-A10A-A1705E0B1664} + + + + + test + + + diff --git a/premake/VisualC/VS2012/tests/testloadso/testloadso.vcxproj b/premake/VisualC/VS2012/tests/testloadso/testloadso.vcxproj new file mode 100755 index 0000000000000..bee9743313fae --- /dev/null +++ b/premake/VisualC/VS2012/tests/testloadso/testloadso.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {F81F2611-F8C5-334F-9ED8-1ABE38A1B106} + testloadso + Win32Proj + + + + Application + true + MultiByte + v110 + + + Application + false + MultiByte + v110 + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testloadso + .exe + true + + + Win32\Release\ + obj\Release\ + testloadso + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testloadso.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testloadso.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testloadso.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {47B50335-DB5D-B948-B80C-E361ED5793F5} + + + {7F1E020B-52F6-584E-B841-8B390015238B} + + + + + + diff --git a/premake/VisualC/VS2012/tests/testloadso/testloadso.vcxproj.filters b/premake/VisualC/VS2012/tests/testloadso/testloadso.vcxproj.filters new file mode 100755 index 0000000000000..b7fac772cee91 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testloadso/testloadso.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {02AC69A3-6E6E-0C47-958F-A78F9350334D} + + + + + test + + + diff --git a/premake/VisualC/VS2012/tests/testlock/testlock.vcxproj b/premake/VisualC/VS2012/tests/testlock/testlock.vcxproj new file mode 100755 index 0000000000000..6b4a5d3b858cc --- /dev/null +++ b/premake/VisualC/VS2012/tests/testlock/testlock.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {E2DDA701-A62F-9542-8BA9-296CBF281945} + testlock + Win32Proj + + + + Application + true + MultiByte + v110 + + + Application + false + MultiByte + v110 + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testlock + .exe + true + + + Win32\Release\ + obj\Release\ + testlock + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testlock.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testlock.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testlock.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {47B50335-DB5D-B948-B80C-E361ED5793F5} + + + {7F1E020B-52F6-584E-B841-8B390015238B} + + + + + + diff --git a/premake/VisualC/VS2012/tests/testlock/testlock.vcxproj.filters b/premake/VisualC/VS2012/tests/testlock/testlock.vcxproj.filters new file mode 100755 index 0000000000000..4dad063d4a7d4 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testlock/testlock.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {55B1451D-618D-CE49-86E7-BDF5665C1530} + + + + + test + + + diff --git a/premake/VisualC/VS2012/tests/testmessage/testmessage.vcxproj b/premake/VisualC/VS2012/tests/testmessage/testmessage.vcxproj new file mode 100755 index 0000000000000..f6957d9d68320 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testmessage/testmessage.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {461B95F1-FB8D-9B45-8FF9-8E0A9F56CA1B} + testmessage + Win32Proj + + + + Application + true + MultiByte + v110 + + + Application + false + MultiByte + v110 + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testmessage + .exe + true + + + Win32\Release\ + obj\Release\ + testmessage + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testmessage.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testmessage.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testmessage.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {47B50335-DB5D-B948-B80C-E361ED5793F5} + + + {7F1E020B-52F6-584E-B841-8B390015238B} + + + + + + diff --git a/premake/VisualC/VS2012/tests/testmessage/testmessage.vcxproj.filters b/premake/VisualC/VS2012/tests/testmessage/testmessage.vcxproj.filters new file mode 100755 index 0000000000000..424191e2eed1a --- /dev/null +++ b/premake/VisualC/VS2012/tests/testmessage/testmessage.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {767F50ED-D92E-0344-B5C3-8D2A543AA4BF} + + + + + test + + + diff --git a/premake/VisualC/VS2012/tests/testmultiaudio/testmultiaudio.vcxproj b/premake/VisualC/VS2012/tests/testmultiaudio/testmultiaudio.vcxproj new file mode 100755 index 0000000000000..e00671f3bb308 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testmultiaudio/testmultiaudio.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {B7DA3C1F-B34B-A14A-BF10-BF628BA69C1B} + testmultiaudio + Win32Proj + + + + Application + true + MultiByte + v110 + + + Application + false + MultiByte + v110 + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testmultiaudio + .exe + true + + + Win32\Release\ + obj\Release\ + testmultiaudio + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testmultiaudio.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testmultiaudio.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" copy ".\..\..\..\..\..\test\sample.wav" ".\Win32\Debug\sample.wav" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testmultiaudio.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" copy ".\..\..\..\..\..\test\sample.wav" ".\Win32\Release\sample.wav" + + + + + + + + + {47B50335-DB5D-B948-B80C-E361ED5793F5} + + + {7F1E020B-52F6-584E-B841-8B390015238B} + + + + + + diff --git a/premake/VisualC/VS2012/tests/testmultiaudio/testmultiaudio.vcxproj.filters b/premake/VisualC/VS2012/tests/testmultiaudio/testmultiaudio.vcxproj.filters new file mode 100755 index 0000000000000..54c6daef9046a --- /dev/null +++ b/premake/VisualC/VS2012/tests/testmultiaudio/testmultiaudio.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {B96B8EBD-B8BB-D44A-83CD-350E98FF464A} + + + + + test + + + diff --git a/premake/VisualC/VS2012/tests/testnative/testnative.vcxproj b/premake/VisualC/VS2012/tests/testnative/testnative.vcxproj new file mode 100755 index 0000000000000..c2bd439e4a617 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testnative/testnative.vcxproj @@ -0,0 +1,136 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {BC693F25-4940-BB43-8529-E27D65275975} + testnative + Win32Proj + + + + Application + true + MultiByte + v110 + + + Application + false + MultiByte + v110 + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testnative + .exe + true + + + Win32\Release\ + obj\Release\ + testnative + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testnative.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testnative.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" copy ".\..\..\..\..\..\test\icon.bmp" ".\Win32\Debug\icon.bmp" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testnative.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" copy ".\..\..\..\..\..\test\icon.bmp" ".\Win32\Release\icon.bmp" + + + + + + + + + + + + + + {47B50335-DB5D-B948-B80C-E361ED5793F5} + + + {7F1E020B-52F6-584E-B841-8B390015238B} + + + + + + diff --git a/premake/VisualC/VS2012/tests/testnative/testnative.vcxproj.filters b/premake/VisualC/VS2012/tests/testnative/testnative.vcxproj.filters new file mode 100755 index 0000000000000..c6908aab4ac56 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testnative/testnative.vcxproj.filters @@ -0,0 +1,21 @@ + + + + + {FA1E5497-4A56-EE4B-B13A-3A8A6B3DD1AA} + + + + + test + + + + + test + + + test + + + diff --git a/premake/VisualC/VS2012/tests/testoverlay2/testoverlay2.vcxproj b/premake/VisualC/VS2012/tests/testoverlay2/testoverlay2.vcxproj new file mode 100755 index 0000000000000..22e15acf217b8 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testoverlay2/testoverlay2.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {8ABC84ED-C999-DE4A-A929-CD6A79647804} + testoverlay2 + Win32Proj + + + + Application + true + MultiByte + v110 + + + Application + false + MultiByte + v110 + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testoverlay2 + .exe + true + + + Win32\Release\ + obj\Release\ + testoverlay2 + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testoverlay2.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testoverlay2.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" copy ".\..\..\..\..\..\test\moose.dat" ".\Win32\Debug\moose.dat" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testoverlay2.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" copy ".\..\..\..\..\..\test\moose.dat" ".\Win32\Release\moose.dat" + + + + + + + + + {47B50335-DB5D-B948-B80C-E361ED5793F5} + + + {7F1E020B-52F6-584E-B841-8B390015238B} + + + + + + diff --git a/premake/VisualC/VS2012/tests/testoverlay2/testoverlay2.vcxproj.filters b/premake/VisualC/VS2012/tests/testoverlay2/testoverlay2.vcxproj.filters new file mode 100755 index 0000000000000..522989593bbb2 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testoverlay2/testoverlay2.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {BBDD5904-0E37-5943-A257-C0A7AC077FED} + + + + + test + + + diff --git a/premake/VisualC/VS2012/tests/testplatform/testplatform.vcxproj b/premake/VisualC/VS2012/tests/testplatform/testplatform.vcxproj new file mode 100755 index 0000000000000..15403ac007581 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testplatform/testplatform.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {189FC042-4838-4342-9276-9514BB403092} + testplatform + Win32Proj + + + + Application + true + MultiByte + v110 + + + Application + false + MultiByte + v110 + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testplatform + .exe + true + + + Win32\Release\ + obj\Release\ + testplatform + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testplatform.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testplatform.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testplatform.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {47B50335-DB5D-B948-B80C-E361ED5793F5} + + + {7F1E020B-52F6-584E-B841-8B390015238B} + + + + + + diff --git a/premake/VisualC/VS2012/tests/testplatform/testplatform.vcxproj.filters b/premake/VisualC/VS2012/tests/testplatform/testplatform.vcxproj.filters new file mode 100755 index 0000000000000..00b5d5a24f0b7 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testplatform/testplatform.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {C0D0B000-9F95-7A4C-B713-8504FF3ED72E} + + + + + test + + + diff --git a/premake/VisualC/VS2012/tests/testpower/testpower.vcxproj b/premake/VisualC/VS2012/tests/testpower/testpower.vcxproj new file mode 100755 index 0000000000000..e53fe430eb2d0 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testpower/testpower.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {E3D41488-DCA1-A34B-87D3-E9820E500DA9} + testpower + Win32Proj + + + + Application + true + MultiByte + v110 + + + Application + false + MultiByte + v110 + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testpower + .exe + true + + + Win32\Release\ + obj\Release\ + testpower + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testpower.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testpower.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testpower.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {47B50335-DB5D-B948-B80C-E361ED5793F5} + + + {7F1E020B-52F6-584E-B841-8B390015238B} + + + + + + diff --git a/premake/VisualC/VS2012/tests/testpower/testpower.vcxproj.filters b/premake/VisualC/VS2012/tests/testpower/testpower.vcxproj.filters new file mode 100755 index 0000000000000..a23bef4337ff7 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testpower/testpower.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {EBE8E727-7C40-1342-A7B2-3B9B744F579D} + + + + + test + + + diff --git a/premake/VisualC/VS2012/tests/testrelative/testrelative.vcxproj b/premake/VisualC/VS2012/tests/testrelative/testrelative.vcxproj new file mode 100755 index 0000000000000..8fa7fbb045a61 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testrelative/testrelative.vcxproj @@ -0,0 +1,134 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {3186A875-B682-2D4D-97EC-CCF61AEEEAC7} + testrelative + Win32Proj + + + + Application + true + MultiByte + v110 + + + Application + false + MultiByte + v110 + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testrelative + .exe + true + + + Win32\Release\ + obj\Release\ + testrelative + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testrelative.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testrelative.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testrelative.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {47B50335-DB5D-B948-B80C-E361ED5793F5} + + + {E544B08A-C532-884E-A0BE-0F6F7F700067} + + + {7F1E020B-52F6-584E-B841-8B390015238B} + + + + + + diff --git a/premake/VisualC/VS2012/tests/testrelative/testrelative.vcxproj.filters b/premake/VisualC/VS2012/tests/testrelative/testrelative.vcxproj.filters new file mode 100755 index 0000000000000..2b369b565b5fd --- /dev/null +++ b/premake/VisualC/VS2012/tests/testrelative/testrelative.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {311BAE6A-3DEC-BD41-BE15-111121D1D3DA} + + + + + test + + + diff --git a/premake/VisualC/VS2012/tests/testrendercopyex/testrendercopyex.vcxproj b/premake/VisualC/VS2012/tests/testrendercopyex/testrendercopyex.vcxproj new file mode 100755 index 0000000000000..a03b3a8abc624 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testrendercopyex/testrendercopyex.vcxproj @@ -0,0 +1,134 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {7BAE36E7-E655-B24D-B110-D2567316D6EA} + testrendercopyex + Win32Proj + + + + Application + true + MultiByte + v110 + + + Application + false + MultiByte + v110 + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testrendercopyex + .exe + true + + + Win32\Release\ + obj\Release\ + testrendercopyex + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testrendercopyex.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testrendercopyex.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" copy ".\..\..\..\..\..\test\icon.bmp" ".\Win32\Debug\icon.bmp" copy ".\..\..\..\..\..\test\sample.bmp" ".\Win32\Debug\sample.bmp" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testrendercopyex.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" copy ".\..\..\..\..\..\test\icon.bmp" ".\Win32\Release\icon.bmp" copy ".\..\..\..\..\..\test\sample.bmp" ".\Win32\Release\sample.bmp" + + + + + + + + + {47B50335-DB5D-B948-B80C-E361ED5793F5} + + + {E544B08A-C532-884E-A0BE-0F6F7F700067} + + + {7F1E020B-52F6-584E-B841-8B390015238B} + + + + + + diff --git a/premake/VisualC/VS2012/tests/testrendercopyex/testrendercopyex.vcxproj.filters b/premake/VisualC/VS2012/tests/testrendercopyex/testrendercopyex.vcxproj.filters new file mode 100755 index 0000000000000..6a752913806f1 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testrendercopyex/testrendercopyex.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {F854DD7A-2868-7F45-A731-E60210FB8320} + + + + + test + + + diff --git a/premake/VisualC/VS2012/tests/testrendertarget/testrendertarget.vcxproj b/premake/VisualC/VS2012/tests/testrendertarget/testrendertarget.vcxproj new file mode 100755 index 0000000000000..b0cdbc0563d6f --- /dev/null +++ b/premake/VisualC/VS2012/tests/testrendertarget/testrendertarget.vcxproj @@ -0,0 +1,134 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {98CD7D27-4B74-4942-81DC-C82474A2E822} + testrendertarget + Win32Proj + + + + Application + true + MultiByte + v110 + + + Application + false + MultiByte + v110 + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testrendertarget + .exe + true + + + Win32\Release\ + obj\Release\ + testrendertarget + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testrendertarget.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testrendertarget.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" copy ".\..\..\..\..\..\test\sample.bmp" ".\Win32\Debug\sample.bmp" copy ".\..\..\..\..\..\test\icon.bmp" ".\Win32\Debug\icon.bmp" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testrendertarget.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" copy ".\..\..\..\..\..\test\sample.bmp" ".\Win32\Release\sample.bmp" copy ".\..\..\..\..\..\test\icon.bmp" ".\Win32\Release\icon.bmp" + + + + + + + + + {47B50335-DB5D-B948-B80C-E361ED5793F5} + + + {E544B08A-C532-884E-A0BE-0F6F7F700067} + + + {7F1E020B-52F6-584E-B841-8B390015238B} + + + + + + diff --git a/premake/VisualC/VS2012/tests/testrendertarget/testrendertarget.vcxproj.filters b/premake/VisualC/VS2012/tests/testrendertarget/testrendertarget.vcxproj.filters new file mode 100755 index 0000000000000..bb3789015e0d4 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testrendertarget/testrendertarget.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {C93D5E8A-7F18-0A4B-9B1F-4FA9BE2BEA4A} + + + + + test + + + diff --git a/premake/VisualC/VS2012/tests/testresample/testresample.vcxproj b/premake/VisualC/VS2012/tests/testresample/testresample.vcxproj new file mode 100755 index 0000000000000..42b2c179f5169 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testresample/testresample.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {E8FC2B01-864C-1E4A-8E32-7103EF479048} + testresample + Win32Proj + + + + Application + true + MultiByte + v110 + + + Application + false + MultiByte + v110 + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testresample + .exe + true + + + Win32\Release\ + obj\Release\ + testresample + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testresample.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testresample.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" copy ".\..\..\..\..\..\test\sample.wav" ".\Win32\Debug\sample.wav" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testresample.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" copy ".\..\..\..\..\..\test\sample.wav" ".\Win32\Release\sample.wav" + + + + + + + + + {47B50335-DB5D-B948-B80C-E361ED5793F5} + + + {7F1E020B-52F6-584E-B841-8B390015238B} + + + + + + diff --git a/premake/VisualC/VS2012/tests/testresample/testresample.vcxproj.filters b/premake/VisualC/VS2012/tests/testresample/testresample.vcxproj.filters new file mode 100755 index 0000000000000..e5ac622352235 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testresample/testresample.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {2EB4B18A-3CA7-DF4A-B634-EAC5842AD3DA} + + + + + test + + + diff --git a/premake/VisualC/VS2012/tests/testrumble/testrumble.vcxproj b/premake/VisualC/VS2012/tests/testrumble/testrumble.vcxproj new file mode 100755 index 0000000000000..f2ffaba482b02 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testrumble/testrumble.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {C72B0123-A5BD-FD45-90F1-1C29D45B5C92} + testrumble + Win32Proj + + + + Application + true + MultiByte + v110 + + + Application + false + MultiByte + v110 + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testrumble + .exe + true + + + Win32\Release\ + obj\Release\ + testrumble + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testrumble.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testrumble.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testrumble.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {47B50335-DB5D-B948-B80C-E361ED5793F5} + + + {7F1E020B-52F6-584E-B841-8B390015238B} + + + + + + diff --git a/premake/VisualC/VS2012/tests/testrumble/testrumble.vcxproj.filters b/premake/VisualC/VS2012/tests/testrumble/testrumble.vcxproj.filters new file mode 100755 index 0000000000000..3d1ca80181108 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testrumble/testrumble.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {6FC911A2-4E27-F443-97BD-634C2615F7A1} + + + + + test + + + diff --git a/premake/VisualC/VS2012/tests/testscale/testscale.vcxproj b/premake/VisualC/VS2012/tests/testscale/testscale.vcxproj new file mode 100755 index 0000000000000..f870175029dc5 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testscale/testscale.vcxproj @@ -0,0 +1,134 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {8BBBF780-F9F4-0843-85B4-6100C0771E09} + testscale + Win32Proj + + + + Application + true + MultiByte + v110 + + + Application + false + MultiByte + v110 + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testscale + .exe + true + + + Win32\Release\ + obj\Release\ + testscale + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testscale.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testscale.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" copy ".\..\..\..\..\..\test\sample.bmp" ".\Win32\Debug\sample.bmp" copy ".\..\..\..\..\..\test\icon.bmp" ".\Win32\Debug\icon.bmp" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testscale.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" copy ".\..\..\..\..\..\test\sample.bmp" ".\Win32\Release\sample.bmp" copy ".\..\..\..\..\..\test\icon.bmp" ".\Win32\Release\icon.bmp" + + + + + + + + + {47B50335-DB5D-B948-B80C-E361ED5793F5} + + + {E544B08A-C532-884E-A0BE-0F6F7F700067} + + + {7F1E020B-52F6-584E-B841-8B390015238B} + + + + + + diff --git a/premake/VisualC/VS2012/tests/testscale/testscale.vcxproj.filters b/premake/VisualC/VS2012/tests/testscale/testscale.vcxproj.filters new file mode 100755 index 0000000000000..7ba14abb7ec47 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testscale/testscale.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {D31D64B5-A036-F448-8ABF-550A54FDBCA9} + + + + + test + + + diff --git a/premake/VisualC/VS2012/tests/testsem/testsem.vcxproj b/premake/VisualC/VS2012/tests/testsem/testsem.vcxproj new file mode 100755 index 0000000000000..c543fbc5aed53 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testsem/testsem.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {15C9C3A3-A6CD-F24B-AA55-74C46DFB123D} + testsem + Win32Proj + + + + Application + true + MultiByte + v110 + + + Application + false + MultiByte + v110 + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testsem + .exe + true + + + Win32\Release\ + obj\Release\ + testsem + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testsem.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testsem.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testsem.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {47B50335-DB5D-B948-B80C-E361ED5793F5} + + + {7F1E020B-52F6-584E-B841-8B390015238B} + + + + + + diff --git a/premake/VisualC/VS2012/tests/testsem/testsem.vcxproj.filters b/premake/VisualC/VS2012/tests/testsem/testsem.vcxproj.filters new file mode 100755 index 0000000000000..5e5c9bd078f8e --- /dev/null +++ b/premake/VisualC/VS2012/tests/testsem/testsem.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {7035C9E5-695A-1642-8EB9-7AF88EFECF03} + + + + + test + + + diff --git a/premake/VisualC/VS2012/tests/testshader/testshader.vcxproj b/premake/VisualC/VS2012/tests/testshader/testshader.vcxproj new file mode 100755 index 0000000000000..d00e547c5dfa4 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testshader/testshader.vcxproj @@ -0,0 +1,133 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {51ADEB0F-09DD-5242-87FC-6DD5C4A098E3} + testshader + Win32Proj + + + + Application + true + MultiByte + v110 + + + Application + false + MultiByte + v110 + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testshader + .exe + true + + + Win32\Release\ + obj\Release\ + testshader + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;HAVE_OPENGL;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testshader.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;HAVE_OPENGL;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + OpenGL32.lib;%(AdditionalDependencies) + $(OutDir)testshader.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" copy ".\..\..\..\..\..\test\icon.bmp" ".\Win32\Debug\icon.bmp" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;HAVE_OPENGL;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;HAVE_OPENGL;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + OpenGL32.lib;%(AdditionalDependencies) + $(OutDir)testshader.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" copy ".\..\..\..\..\..\test\icon.bmp" ".\Win32\Release\icon.bmp" + + + + + + + + + {47B50335-DB5D-B948-B80C-E361ED5793F5} + + + {7F1E020B-52F6-584E-B841-8B390015238B} + + + + + + diff --git a/premake/VisualC/VS2012/tests/testshader/testshader.vcxproj.filters b/premake/VisualC/VS2012/tests/testshader/testshader.vcxproj.filters new file mode 100755 index 0000000000000..cae699fa4c5d6 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testshader/testshader.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {E9B40D10-C5D8-6D4E-9994-A4EF637B307B} + + + + + test + + + diff --git a/premake/VisualC/VS2012/tests/testshape/testshape.vcxproj b/premake/VisualC/VS2012/tests/testshape/testshape.vcxproj new file mode 100755 index 0000000000000..fcb68dc998338 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testshape/testshape.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {A916A09F-93F3-0A4F-9A95-9938BD96CF05} + testshape + Win32Proj + + + + Application + true + MultiByte + v110 + + + Application + false + MultiByte + v110 + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testshape + .exe + true + + + Win32\Release\ + obj\Release\ + testshape + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testshape.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testshape.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" if not exist ".\Win32\Debug\shapes" ( mkdir ".\Win32\Debug\shapes" ) copy ".\..\..\..\..\..\test\shapes\*.bmp" ".\Win32\Debug\shapes\*.bmp" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testshape.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" if not exist ".\Win32\Release\shapes" ( mkdir ".\Win32\Release\shapes" ) copy ".\..\..\..\..\..\test\shapes\*.bmp" ".\Win32\Release\shapes\*.bmp" + + + + + + + + + {47B50335-DB5D-B948-B80C-E361ED5793F5} + + + {7F1E020B-52F6-584E-B841-8B390015238B} + + + + + + diff --git a/premake/VisualC/VS2012/tests/testshape/testshape.vcxproj.filters b/premake/VisualC/VS2012/tests/testshape/testshape.vcxproj.filters new file mode 100755 index 0000000000000..77081ca37001b --- /dev/null +++ b/premake/VisualC/VS2012/tests/testshape/testshape.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {25FFEBD5-1004-164B-9DDE-4A7C0DE978C5} + + + + + test + + + diff --git a/premake/VisualC/VS2012/tests/testsprite2/testsprite2.vcxproj b/premake/VisualC/VS2012/tests/testsprite2/testsprite2.vcxproj new file mode 100755 index 0000000000000..c670db69bc255 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testsprite2/testsprite2.vcxproj @@ -0,0 +1,134 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {5B2F2D57-A129-C849-9C06-5B2D35B74E07} + testsprite2 + Win32Proj + + + + Application + true + MultiByte + v110 + + + Application + false + MultiByte + v110 + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testsprite2 + .exe + true + + + Win32\Release\ + obj\Release\ + testsprite2 + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testsprite2.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testsprite2.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" copy ".\..\..\..\..\..\test\icon.bmp" ".\Win32\Debug\icon.bmp" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testsprite2.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" copy ".\..\..\..\..\..\test\icon.bmp" ".\Win32\Release\icon.bmp" + + + + + + + + + {47B50335-DB5D-B948-B80C-E361ED5793F5} + + + {E544B08A-C532-884E-A0BE-0F6F7F700067} + + + {7F1E020B-52F6-584E-B841-8B390015238B} + + + + + + diff --git a/premake/VisualC/VS2012/tests/testsprite2/testsprite2.vcxproj.filters b/premake/VisualC/VS2012/tests/testsprite2/testsprite2.vcxproj.filters new file mode 100755 index 0000000000000..52f9e4782b686 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testsprite2/testsprite2.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {84C81BC1-234F-7147-8E00-5F182F55B746} + + + + + test + + + diff --git a/premake/VisualC/VS2012/tests/testspriteminimal/testspriteminimal.vcxproj b/premake/VisualC/VS2012/tests/testspriteminimal/testspriteminimal.vcxproj new file mode 100755 index 0000000000000..eb9f1c5bcdeb2 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testspriteminimal/testspriteminimal.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {170EE42E-8EE9-8E49-B04F-F412A203DF1D} + testspriteminimal + Win32Proj + + + + Application + true + MultiByte + v110 + + + Application + false + MultiByte + v110 + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testspriteminimal + .exe + true + + + Win32\Release\ + obj\Release\ + testspriteminimal + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testspriteminimal.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testspriteminimal.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" copy ".\..\..\..\..\..\test\icon.bmp" ".\Win32\Debug\icon.bmp" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testspriteminimal.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" copy ".\..\..\..\..\..\test\icon.bmp" ".\Win32\Release\icon.bmp" + + + + + + + + + {47B50335-DB5D-B948-B80C-E361ED5793F5} + + + {7F1E020B-52F6-584E-B841-8B390015238B} + + + + + + diff --git a/premake/VisualC/VS2012/tests/testspriteminimal/testspriteminimal.vcxproj.filters b/premake/VisualC/VS2012/tests/testspriteminimal/testspriteminimal.vcxproj.filters new file mode 100755 index 0000000000000..01a9ed262df43 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testspriteminimal/testspriteminimal.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {D2F7522F-04A1-5246-A5D1-8C39E97E17F6} + + + + + test + + + diff --git a/premake/VisualC/VS2012/tests/teststreaming/teststreaming.vcxproj b/premake/VisualC/VS2012/tests/teststreaming/teststreaming.vcxproj new file mode 100755 index 0000000000000..deb4b7aee84a5 --- /dev/null +++ b/premake/VisualC/VS2012/tests/teststreaming/teststreaming.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {187FC8D5-3BD2-394C-811A-8CBA0476B0DC} + teststreaming + Win32Proj + + + + Application + true + MultiByte + v110 + + + Application + false + MultiByte + v110 + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + teststreaming + .exe + true + + + Win32\Release\ + obj\Release\ + teststreaming + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)teststreaming.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)teststreaming.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" copy ".\..\..\..\..\..\test\moose.dat" ".\Win32\Debug\moose.dat" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)teststreaming.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" copy ".\..\..\..\..\..\test\moose.dat" ".\Win32\Release\moose.dat" + + + + + + + + + {47B50335-DB5D-B948-B80C-E361ED5793F5} + + + {7F1E020B-52F6-584E-B841-8B390015238B} + + + + + + diff --git a/premake/VisualC/VS2012/tests/teststreaming/teststreaming.vcxproj.filters b/premake/VisualC/VS2012/tests/teststreaming/teststreaming.vcxproj.filters new file mode 100755 index 0000000000000..2589604f52f89 --- /dev/null +++ b/premake/VisualC/VS2012/tests/teststreaming/teststreaming.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {1060A052-EB7B-2C42-AFAD-83D7180A34BD} + + + + + test + + + diff --git a/premake/VisualC/VS2012/tests/testthread/testthread.vcxproj b/premake/VisualC/VS2012/tests/testthread/testthread.vcxproj new file mode 100755 index 0000000000000..ae8024d89ad39 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testthread/testthread.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {299C1DAB-6EB1-3D4C-8101-7CDEDE92928D} + testthread + Win32Proj + + + + Application + true + MultiByte + v110 + + + Application + false + MultiByte + v110 + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testthread + .exe + true + + + Win32\Release\ + obj\Release\ + testthread + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testthread.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testthread.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testthread.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {47B50335-DB5D-B948-B80C-E361ED5793F5} + + + {7F1E020B-52F6-584E-B841-8B390015238B} + + + + + + diff --git a/premake/VisualC/VS2012/tests/testthread/testthread.vcxproj.filters b/premake/VisualC/VS2012/tests/testthread/testthread.vcxproj.filters new file mode 100755 index 0000000000000..ddbf299894884 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testthread/testthread.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {6FB768AE-AE3D-CF41-A6B2-F3D0E72A0640} + + + + + test + + + diff --git a/premake/VisualC/VS2012/tests/testtimer/testtimer.vcxproj b/premake/VisualC/VS2012/tests/testtimer/testtimer.vcxproj new file mode 100755 index 0000000000000..9a72dea16e3ec --- /dev/null +++ b/premake/VisualC/VS2012/tests/testtimer/testtimer.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {87AECED3-5F20-8E46-9DFD-17A9E01D7E37} + testtimer + Win32Proj + + + + Application + true + MultiByte + v110 + + + Application + false + MultiByte + v110 + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testtimer + .exe + true + + + Win32\Release\ + obj\Release\ + testtimer + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testtimer.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testtimer.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testtimer.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {47B50335-DB5D-B948-B80C-E361ED5793F5} + + + {7F1E020B-52F6-584E-B841-8B390015238B} + + + + + + diff --git a/premake/VisualC/VS2012/tests/testtimer/testtimer.vcxproj.filters b/premake/VisualC/VS2012/tests/testtimer/testtimer.vcxproj.filters new file mode 100755 index 0000000000000..02d948f827ff7 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testtimer/testtimer.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {2A784C7E-C9A5-D545-B4E7-D002318AA2DF} + + + + + test + + + diff --git a/premake/VisualC/VS2012/tests/testver/testver.vcxproj b/premake/VisualC/VS2012/tests/testver/testver.vcxproj new file mode 100755 index 0000000000000..e1e2c9a427c1e --- /dev/null +++ b/premake/VisualC/VS2012/tests/testver/testver.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {8B16A430-9090-B747-8825-BDE4B9A06538} + testver + Win32Proj + + + + Application + true + MultiByte + v110 + + + Application + false + MultiByte + v110 + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testver + .exe + true + + + Win32\Release\ + obj\Release\ + testver + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testver.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testver.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testver.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {47B50335-DB5D-B948-B80C-E361ED5793F5} + + + {7F1E020B-52F6-584E-B841-8B390015238B} + + + + + + diff --git a/premake/VisualC/VS2012/tests/testver/testver.vcxproj.filters b/premake/VisualC/VS2012/tests/testver/testver.vcxproj.filters new file mode 100755 index 0000000000000..795aaa14b2a30 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testver/testver.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {9180AF77-6382-5548-B4AA-BD901007D9EC} + + + + + test + + + diff --git a/premake/VisualC/VS2012/tests/testwm2/testwm2.vcxproj b/premake/VisualC/VS2012/tests/testwm2/testwm2.vcxproj new file mode 100755 index 0000000000000..aa8499c4c9ad4 --- /dev/null +++ b/premake/VisualC/VS2012/tests/testwm2/testwm2.vcxproj @@ -0,0 +1,134 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {0DC21429-28DC-194C-AFFB-8BAB95022180} + testwm2 + Win32Proj + + + + Application + true + MultiByte + v110 + + + Application + false + MultiByte + v110 + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + testwm2 + .exe + true + + + Win32\Release\ + obj\Release\ + testwm2 + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)testwm2.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)testwm2.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)testwm2.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {47B50335-DB5D-B948-B80C-E361ED5793F5} + + + {E544B08A-C532-884E-A0BE-0F6F7F700067} + + + {7F1E020B-52F6-584E-B841-8B390015238B} + + + + + + diff --git a/premake/VisualC/VS2012/tests/testwm2/testwm2.vcxproj.filters b/premake/VisualC/VS2012/tests/testwm2/testwm2.vcxproj.filters new file mode 100755 index 0000000000000..61c44c64a794a --- /dev/null +++ b/premake/VisualC/VS2012/tests/testwm2/testwm2.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {239E5CDD-9DC6-9C4B-98DF-FE2025E99820} + + + + + test + + + diff --git a/premake/VisualC/VS2012/tests/torturethread/torturethread.vcxproj b/premake/VisualC/VS2012/tests/torturethread/torturethread.vcxproj new file mode 100755 index 0000000000000..53d532db9f49d --- /dev/null +++ b/premake/VisualC/VS2012/tests/torturethread/torturethread.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {615744A9-90A8-A643-B2A7-223FEA845A00} + torturethread + Win32Proj + + + + Application + true + MultiByte + v110 + + + Application + false + MultiByte + v110 + + + + + + + + + + + + + Win32\Debug\ + obj\Debug\ + torturethread + .exe + true + + + Win32\Release\ + obj\Release\ + torturethread + .exe + false + + + + Disabled + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + Level3 + false + EditAndContinue + $(OutDir)torturethread.pdb + CompileAsC + + + USING_PREMAKE_CONFIG_H;_DEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + true + $(OutDir)torturethread.exe + mainCRTStartup + + + if not exist ".\Win32\Debug" ( mkdir ".\Win32\Debug" ) copy ".\..\..\SDL2\Win32\Debug\SDL2.dll" ".\Win32\Debug\SDL2.dll" + + + + + MaxSpeed + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + false + true + MultiThreadedDLL + true + + Level3 + false + + CompileAsC + + + USING_PREMAKE_CONFIG_H;NDEBUG;%(PreprocessorDefinitions) + ..\..;..\..\..\..\..\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + $(OutDir)torturethread.exe + mainCRTStartup + + + if not exist ".\Win32\Release" ( mkdir ".\Win32\Release" ) copy ".\..\..\SDL2\Win32\Release\SDL2.dll" ".\Win32\Release\SDL2.dll" + + + + + + + + + {47B50335-DB5D-B948-B80C-E361ED5793F5} + + + {7F1E020B-52F6-584E-B841-8B390015238B} + + + + + + diff --git a/premake/VisualC/VS2012/tests/torturethread/torturethread.vcxproj.filters b/premake/VisualC/VS2012/tests/torturethread/torturethread.vcxproj.filters new file mode 100755 index 0000000000000..60d08012e37b8 --- /dev/null +++ b/premake/VisualC/VS2012/tests/torturethread/torturethread.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {C6601DE1-8668-8F4F-8099-B1905C51063C} + + + + + test + + + diff --git a/premake/VisualC/build-scripts/build.all.vs2010.bat b/premake/VisualC/build-scripts/build.all.vs2010.bat new file mode 100755 index 0000000000000..a3cc1df13c4c6 --- /dev/null +++ b/premake/VisualC/build-scripts/build.all.vs2010.bat @@ -0,0 +1,5 @@ +@echo off +cd ..\VS2010 +call "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" +msbuild /m SDL.sln /property:Configuration=Debug +pause \ No newline at end of file diff --git a/premake/VisualC/build-scripts/check.bin.compatibility.vs2010.bat b/premake/VisualC/build-scripts/check.bin.compatibility.vs2010.bat new file mode 100755 index 0000000000000..baeabbbed8c91 --- /dev/null +++ b/premake/VisualC/build-scripts/check.bin.compatibility.vs2010.bat @@ -0,0 +1,81 @@ +@echo off +title Building Premake VS2010 Environment... +call build.all.vs2010.bat + +title Building SDL VS2010 Environment... +cd %~dp0 +cd ..\..\..\VisualC +msbuild /m SDL_VS2010.sln /t:Clean,Build /property:Configuration=Debug +pause + +title Running SDL VS2010 tests with premake SDL2.dll... +cd tests + +call :pass checkkeys +call :pass loopwave +call :pass testatomic +call :pass testaudioinfo +call :pass testautomation +call :pass testdraw2 +call :pass testerror +call :pass testfile +call :pass testgamecontroller +call :pass testgesture +call :pass testgl2 +call :pass testgles +call :pass testhaptic +call :pass testiconv +call :pass testime +call :pass testintersection +call :pass testjoystick +call :pass testkeys +::call :pass testloadso +call :pass testlock +call :pass testmessage +call :pass testmultiaudio +call :pass testnative +call :pass testoverlay2 +call :pass testplatform +call :pass testpower +call :pass testrelative +call :pass testrendercopyex +call :pass testrendertarget +::call :pass testresample +call :pass testrumble +call :pass testscale +call :pass testsem 0 +call :pass testshader +call :pass testshape "../../../../../../test/sample.bmp" +call :pass testsprite2 +call :pass testspriteminimal +call :pass teststreaming +call :pass testthread +call :pass testtimer +call :pass testver +call :pass testwm2 +call :pass torturethread + +:: leave the tests directory +cd .. + +:: exit batch +goto :eof + +:: pass label (similar to pass function in the Xcode tests command script) +:pass +:: if it does not exist, break procedure +if not exist %1\Win32\Debug goto endfunc +:: goto directory +echo Running SDL VS2010 %1 with premake SDL2.dll... +title Running SDL VS2010 %1 with premake SDL2.dll... +cd %1\Win32\Debug +:: remove old SDL2.dll +rm SDL2.dll +:: copy new SDL2.dll (~dp0 is get directory of current location of batch file) +copy %~dp0\..\SDL2\Win32\Debug\SDL2.dll .\SDL2.dll +:: execute test +".\%1.exe" %2 +cd ..\..\.. +pause +:endfunc +goto :eof \ No newline at end of file diff --git a/premake/VisualC/build-scripts/clean_premake.bat b/premake/VisualC/build-scripts/clean_premake.bat new file mode 100755 index 0000000000000..154979a027547 --- /dev/null +++ b/premake/VisualC/build-scripts/clean_premake.bat @@ -0,0 +1,9 @@ +@echo off +cd .. +%~dp0\premake4.exe --file=..\premake4.lua --to=.\VisualC\VS2008 clean +%~dp0\premake4.exe --file=..\premake4.lua --to=.\VisualC\VS2010 clean +%~dp0\premake4.exe --file=..\premake4.lua --to=.\VisualC\VS2012 clean +if exist VS2008 rmdir VS2008 +if exist VS2010 rmdir VS2010 +if exist VS2012 rmdir VS2012 +pause \ No newline at end of file diff --git a/premake/VisualC/build-scripts/generate.all.bat b/premake/VisualC/build-scripts/generate.all.bat new file mode 100755 index 0000000000000..331c0cd061ea1 --- /dev/null +++ b/premake/VisualC/build-scripts/generate.all.bat @@ -0,0 +1,9 @@ +@echo off +cd .. +title Generating VS2008... +%~dp0\premake4.exe --file=..\premake4.lua --to=.\VisualC\VS2008 vs2008 +title Generating VS2010... +%~dp0\premake4.exe --file=..\premake4.lua --to=.\VisualC\VS2010 vs2010 +title Generating VS2012... +%~dp0\premake4.exe --file=..\premake4.lua --to=.\VisualC\VS2012 vs2012 +pause \ No newline at end of file diff --git a/premake/VisualC/build-scripts/premake4.exe b/premake/VisualC/build-scripts/premake4.exe new file mode 100755 index 0000000000000000000000000000000000000000..ab66e76c68bd931fc7a1f0c4306bd3825cf40d3b GIT binary patch literal 483840 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�^ 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�qdc@C%`der!d(zcAn7KW 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%0Di{*3#6Mk>vUWm@BZVRXA98w8|H!9qY-Z) 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 F{|8cPb};|| literal 0 HcmV?d00001 diff --git a/premake/VisualC/build-scripts/run.tests.vs2010.bat b/premake/VisualC/build-scripts/run.tests.vs2010.bat new file mode 100755 index 0000000000000..41215d5270bb5 --- /dev/null +++ b/premake/VisualC/build-scripts/run.tests.vs2010.bat @@ -0,0 +1,108 @@ +@echo off + +cd ..\VS2010\tests + +call :pass checkkeys +call :pass loopwave +call :pass testatomic +call :pass testaudioinfo +call :pass testautomation +call :pass testdraw2 +call :pass testchessboard +call :pass testerror +call :pass testfile +call :pass testfilesystem +call :pass testgamecontroller +call :pass testgesture +call :pass testgl2 +call :pass testgles +call :pass testhaptic +call :pass testiconv +call :pass testime +call :pass testintersection +call :pass testjoystick +call :pass testkeys +::call :pass testloadso +call :pass testlock +call :pass testmessage +call :pass testmultiaudio +call :pass testnative +call :pass testoverlay2 +call :pass testplatform +call :pass testpower +call :pass testrelative +call :pass testrendercopyex +call :pass testrendertarget +call :pass testresample sample.wav newsample.wav 44100 +call :pass testrumble +call :pass testscale +call :pass testsem 1 +call :pass testshader +call :testspecial testshape .\shapes +call :testspecial testshape .\shapes +call :testspecial testshape .\shapes +call :pass testsprite2 +call :pass testspriteminimal +call :pass teststreaming +call :pass testthread +call :pass testtimer +call :pass testver +call :pass testwm2 +call :pass torturethread + +:: leave the tests directory +cd .. + +:: exit batch +goto :eof + +:testspecial +if not exist %1\Win32\Debug goto :eof +cd %1\Win32\Debug +call :randomfile %2 +cd ..\..\.. +call :pass %1 %RETURN% +goto :eof + +:: pass label (similar to pass function in the Xcode tests command script) +:pass +setlocal enabledelayedexpansion +set args= +set /A count=0 +for %%x IN (%*) DO ( + if NOT !count! EQU 0 set args=!args! %%x + set /A count=%count% + 1 +) +endlocal & set callargs=%args% +:: if it does not exist, break procedure +if not exist %1\Win32\Debug goto endfunc +:: goto directory +echo Testing: %1 +title Testing: %1 +cd %1\Win32\Debug +:: execute test +".\%1.exe"%callargs% +cd ..\..\.. +pause +:endfunc +goto :eof + +:randomfile +setlocal enabledelayedexpansion +set count=0 +if not exist %1 goto :eof +for %%d in (%1\*.*) DO ( + set /A count=count + 1 +) +set /A count=%RANDOM% %% %count% +for %%d in (%1\*.*) DO ( + if !count! EQU 0 ( + set rfile=%%d + goto endrfile + ) + set /A count=count-1 +) +:endrfile +set tmprfile=!rfile! +endlocal & set RETURN=%tmprfile% +goto :eof \ No newline at end of file diff --git a/premake/VisualC/build-scripts/vs2008.bat b/premake/VisualC/build-scripts/vs2008.bat new file mode 100755 index 0000000000000..11c7733d2e94f --- /dev/null +++ b/premake/VisualC/build-scripts/vs2008.bat @@ -0,0 +1,4 @@ +@echo off +cd .. +%~dp0\premake4.exe --file=..\premake4.lua --to=.\VisualC\VS2008 vs2008 +pause \ No newline at end of file diff --git a/premake/VisualC/build-scripts/vs2010.bat b/premake/VisualC/build-scripts/vs2010.bat new file mode 100755 index 0000000000000..1aa902c0c4549 --- /dev/null +++ b/premake/VisualC/build-scripts/vs2010.bat @@ -0,0 +1,4 @@ +@echo off +cd .. +%~dp0\premake4.exe --file=..\premake4.lua --to=.\VisualC\VS2010 vs2010 +pause \ No newline at end of file diff --git a/premake/VisualC/build-scripts/vs2012.bat b/premake/VisualC/build-scripts/vs2012.bat new file mode 100755 index 0000000000000..1e00b0c8fd605 --- /dev/null +++ b/premake/VisualC/build-scripts/vs2012.bat @@ -0,0 +1,4 @@ +@echo off +cd .. +%~dp0\premake4.exe --file=..\premake4.lua --to=.\VisualC\VS2012 vs2012 +pause \ No newline at end of file diff --git a/premake/Xcode-iOS/Demos/accelerometer/accelerometer.xcodeproj/project.pbxproj b/premake/Xcode-iOS/Demos/accelerometer/accelerometer.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..cc5ab09d7aafe --- /dev/null +++ b/premake/Xcode-iOS/Demos/accelerometer/accelerometer.xcodeproj/project.pbxproj @@ -0,0 +1,366 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 674906CF330F50E3203B3BE2 /* ship.bmp in Resources */ = {isa = PBXBuildFile; fileRef = 324B72283F7756BA003D4F89 /* ship.bmp */; }; + 7D6E4948535F13803EB24793 /* space.bmp in Resources */ = {isa = PBXBuildFile; fileRef = 75D70D1032D7609D1FF110D8 /* space.bmp */; }; + 05BC137B00F21C1E34222E13 /* accelerometer.c in Sources */ = {isa = PBXBuildFile; fileRef = 0F0668AE7894542751932A92 /* accelerometer.c */; }; + 26993FB748FA383F4D1609ED /* common.c in Sources */ = {isa = PBXBuildFile; fileRef = 1AD060ED78CA41CC628541A4 /* common.c */; }; + 0D4139CC20C575FB6FE0714B /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 13373F7C6C961F2D4D281BE9 /* AudioToolbox.framework */; }; + 21C26FE40025290D321B186A /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 761E2DD50F5B34C04FFD2AAE /* QuartzCore.framework */; }; + 27DC096C4EBF1C4910E8113A /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 691C3F7C7CBC50FC7AF4543F /* OpenGLES.framework */; }; + 188D7C0554AA68A621F77BC2 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7CF62CCC24035B7636970CDF /* CoreGraphics.framework */; }; + 1C4B220C7E566D3B6FEA219B /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0FF410EE17A75CBF37A16A7A /* UIKit.framework */; }; + 3AB556FB793A74F25F5554E7 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4EE13E2B3520069A797D2E12 /* Foundation.framework */; }; + 128C61D42B537987446C3DAE /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 09C44E3B227D56962A4C6F18 /* CoreAudio.framework */; }; + 6B4A5750488819AB41E467FB /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5EF20F1D796452C879872F95 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 7C9A632C62AF516279D47C47 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 3CC27DC669FE34F16DE15E07 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 224D2C85085A7BA60E532655; + remoteInfo = "libSDL2.a"; + }; + 3694413107B7067430080ECD /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 3CC27DC669FE34F16DE15E07 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 515D4C462ACD2DA8180E7783; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 2FE912395DD5772A6A7E1F33 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "Info.plist"; path = "../../../../Xcode-iOS/Demos/Info.plist"; sourceTree = ""; }; + 324B72283F7756BA003D4F89 /* ship.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; name = "ship.bmp"; path = "../../../../Xcode-iOS/Demos/data/ship.bmp"; sourceTree = ""; }; + 75D70D1032D7609D1FF110D8 /* space.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; name = "space.bmp"; path = "../../../../Xcode-iOS/Demos/data/space.bmp"; sourceTree = ""; }; + 0F0668AE7894542751932A92 /* accelerometer.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "accelerometer.c"; path = "../../../../Xcode-iOS/Demos/src/accelerometer.c"; sourceTree = ""; }; + 1AD060ED78CA41CC628541A4 /* common.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "common.c"; path = "../../../../Xcode-iOS/Demos/src/common.c"; sourceTree = ""; }; + 6717384817185E66201700F1 /* common.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "common.h"; path = "../../../../Xcode-iOS/Demos/src/common.h"; sourceTree = ""; }; + 13373F7C6C961F2D4D281BE9 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "System/Library/Frameworks/AudioToolbox.framework"; sourceTree = "SDKROOT"; }; + 761E2DD50F5B34C04FFD2AAE /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "QuartzCore.framework"; path = "System/Library/Frameworks/QuartzCore.framework"; sourceTree = "SDKROOT"; }; + 691C3F7C7CBC50FC7AF4543F /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGLES.framework"; path = "System/Library/Frameworks/OpenGLES.framework"; sourceTree = "SDKROOT"; }; + 7CF62CCC24035B7636970CDF /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreGraphics.framework"; path = "System/Library/Frameworks/CoreGraphics.framework"; sourceTree = "SDKROOT"; }; + 0FF410EE17A75CBF37A16A7A /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "UIKit.framework"; path = "System/Library/Frameworks/UIKit.framework"; sourceTree = "SDKROOT"; }; + 4EE13E2B3520069A797D2E12 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Foundation.framework"; path = "System/Library/Frameworks/Foundation.framework"; sourceTree = "SDKROOT"; }; + 09C44E3B227D56962A4C6F18 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "System/Library/Frameworks/CoreAudio.framework"; sourceTree = "SDKROOT"; }; + 61D70B5D29674F5D75141737 /* accelerometer */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; name = "accelerometer"; path = "accelerometer"; sourceTree = BUILT_PRODUCTS_DIR; }; + 3CC27DC669FE34F16DE15E07 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 4F2B411B72F5599B7711251B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 0D4139CC20C575FB6FE0714B /* AudioToolbox.framework in Frameworks */, + 21C26FE40025290D321B186A /* QuartzCore.framework in Frameworks */, + 27DC096C4EBF1C4910E8113A /* OpenGLES.framework in Frameworks */, + 188D7C0554AA68A621F77BC2 /* CoreGraphics.framework in Frameworks */, + 1C4B220C7E566D3B6FEA219B /* UIKit.framework in Frameworks */, + 3AB556FB793A74F25F5554E7 /* Foundation.framework in Frameworks */, + 128C61D42B537987446C3DAE /* CoreAudio.framework in Frameworks */, + 6B4A5750488819AB41E467FB /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 1BCF64F206ED3FFA6FCB3744 /* accelerometer */ = { + isa = PBXGroup; + children = ( + 57EA49B528E153D23CAA746B /* Xcode-iOS */, + 04022578784D401A06614C4C /* Frameworks */, + 0682642E36227AF649AD15E1 /* Products */, + 10934AB6192843925A2C3FCB /* Projects */, + ); + name = "accelerometer"; + sourceTree = ""; + }; + 57EA49B528E153D23CAA746B /* Xcode-iOS */ = { + isa = PBXGroup; + children = ( + 440746E769CB3C2666172B92 /* Demos */, + ); + name = "Xcode-iOS"; + sourceTree = ""; + }; + 440746E769CB3C2666172B92 /* Demos */ = { + isa = PBXGroup; + children = ( + 2FE912395DD5772A6A7E1F33 /* Info.plist */, + 09B436A542BB045D05CC2009 /* data */, + 0D4A117E0EF119EE7D3E77A5 /* src */, + ); + name = "Demos"; + sourceTree = ""; + }; + 09B436A542BB045D05CC2009 /* data */ = { + isa = PBXGroup; + children = ( + 324B72283F7756BA003D4F89 /* ship.bmp */, + 75D70D1032D7609D1FF110D8 /* space.bmp */, + ); + name = "data"; + sourceTree = ""; + }; + 0D4A117E0EF119EE7D3E77A5 /* src */ = { + isa = PBXGroup; + children = ( + 0F0668AE7894542751932A92 /* accelerometer.c */, + 1AD060ED78CA41CC628541A4 /* common.c */, + 6717384817185E66201700F1 /* common.h */, + ); + name = "src"; + sourceTree = ""; + }; + 04022578784D401A06614C4C /* Frameworks */ = { + isa = PBXGroup; + children = ( + 13373F7C6C961F2D4D281BE9 /* AudioToolbox.framework */, + 761E2DD50F5B34C04FFD2AAE /* QuartzCore.framework */, + 691C3F7C7CBC50FC7AF4543F /* OpenGLES.framework */, + 7CF62CCC24035B7636970CDF /* CoreGraphics.framework */, + 0FF410EE17A75CBF37A16A7A /* UIKit.framework */, + 4EE13E2B3520069A797D2E12 /* Foundation.framework */, + 09C44E3B227D56962A4C6F18 /* CoreAudio.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 0682642E36227AF649AD15E1 /* Products */ = { + isa = PBXGroup; + children = ( + 61D70B5D29674F5D75141737 /* accelerometer */, + ); + name = "Products"; + sourceTree = ""; + }; + 10934AB6192843925A2C3FCB /* Projects */ = { + isa = PBXGroup; + children = ( + 3CC27DC669FE34F16DE15E07 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 00327F6B64F33A717B2750FC /* Products */ = { + isa = PBXGroup; + children = ( + 5EF20F1D796452C879872F95 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 206349984FD364256139268B /* accelerometer */ = { + isa = PBXNativeTarget; + buildConfigurationList = 31FC2F13262437C908FF3C38 /* Build configuration list for PBXNativeTarget "accelerometer" */; + buildPhases = ( + 1CE11A4948F84856205D72AA /* Resources */, + 0A7A791967E92509752E3940 /* Sources */, + 4F2B411B72F5599B7711251B /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 59ED738603BF22172E103B9C /* PBXTargetDependency */, + ); + name = "accelerometer"; + productInstallPath = "$(HOME)/Applications"; + productName = "accelerometer"; + productReference = 61D70B5D29674F5D75141737 /* accelerometer */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "accelerometer" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 1BCF64F206ED3FFA6FCB3744 /* accelerometer */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 00327F6B64F33A717B2750FC /* Products */; + ProjectRef = 3CC27DC669FE34F16DE15E07 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 206349984FD364256139268B /* accelerometer */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 5EF20F1D796452C879872F95 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 7C9A632C62AF516279D47C47 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 1CE11A4948F84856205D72AA /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 674906CF330F50E3203B3BE2 /* ship.bmp in Resources */, + 7D6E4948535F13803EB24793 /* space.bmp in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 0A7A791967E92509752E3940 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 05BC137B00F21C1E34222E13 /* accelerometer.c in Sources */, + 26993FB748FA383F4D1609ED /* common.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 59ED738603BF22172E103B9C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 3694413107B7067430080ECD /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 25FD2ACB1A5E4A7146666462 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INFOPLIST_FILE = "../../../../Xcode-iOS/Demos/Info.plist"; + INSTALL_PATH = "$(HOME)/Applications"; + PRODUCT_NAME = "accelerometer"; + }; + name = "Debug"; + }; + 171926D866766FC058847A16 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INFOPLIST_FILE = "../../../../Xcode-iOS/Demos/Info.plist"; + INSTALL_PATH = "$(HOME)/Applications"; + PRODUCT_NAME = "accelerometer"; + }; + name = "Release"; + }; + 6505556E31F8228178087816 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)"; + SDKROOT = iphoneos; + CODE_SIGN_IDENTITY = "iPhone Developer"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../include", + ); + OBJROOT = "obj/iOS/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug"; + }; + 50AE5630181E7A0D22AF4CB3 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)"; + SDKROOT = iphoneos; + CODE_SIGN_IDENTITY = "iPhone Developer"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../include", + ); + OBJROOT = "obj/iOS/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 31FC2F13262437C908FF3C38 /* Build configuration list for PBXNativeTarget "accelerometer" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 25FD2ACB1A5E4A7146666462 /* Debug */, + 171926D866766FC058847A16 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "accelerometer" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 6505556E31F8228178087816 /* Debug */, + 50AE5630181E7A0D22AF4CB3 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode-iOS/Demos/fireworks/fireworks.xcodeproj/project.pbxproj b/premake/Xcode-iOS/Demos/fireworks/fireworks.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..11f99dd6e543a --- /dev/null +++ b/premake/Xcode-iOS/Demos/fireworks/fireworks.xcodeproj/project.pbxproj @@ -0,0 +1,362 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 10E2774011786F995B805C7F /* stroke.bmp in Resources */ = {isa = PBXBuildFile; fileRef = 6730111A6BFB5F5C14DD4871 /* stroke.bmp */; }; + 79D87D07048610C3209314C6 /* common.c in Sources */ = {isa = PBXBuildFile; fileRef = 0EBB33113E847AA430B96B69 /* common.c */; }; + 71A12A290ADF47D43590019A /* fireworks.c in Sources */ = {isa = PBXBuildFile; fileRef = 596447B07498655C0C243381 /* fireworks.c */; }; + 79C17D3407632C1F2E3E0E60 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 123376C8576F65BC595A6307 /* AudioToolbox.framework */; }; + 73360C2A26FB4CA511D62254 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 60711C343D703F8D4C67108C /* QuartzCore.framework */; }; + 527D0CDF1702119E424E4A1F /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 633F528E066847D70E7013C4 /* OpenGLES.framework */; }; + 098672276FAD7A58464B0720 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E802A784A7A29545AD836CD /* CoreGraphics.framework */; }; + 5FA3503D55AC13E211914909 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7B22322B31D5351E536A0626 /* UIKit.framework */; }; + 25665D894EE1308D14544C71 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 230B36B52E4826A148913E3B /* Foundation.framework */; }; + 4C2479ED4E2C5193217C6EC9 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CE031D65AB00DD264007083 /* CoreAudio.framework */; }; + 0A231ED87C3D466409B42038 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 36533B8A10B0217136B82153 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 21963BEC278D360D2CC829A9 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 460E547038C062D10E9E3D5F /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 224D2C85085A7BA60E532655; + remoteInfo = "libSDL2.a"; + }; + 50E70FB957213B36609376FC /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 460E547038C062D10E9E3D5F /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 515D4C462ACD2DA8180E7783; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 0671155E7F8E65FF744F0C39 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "Info.plist"; path = "../../../../Xcode-iOS/Demos/Info.plist"; sourceTree = ""; }; + 6730111A6BFB5F5C14DD4871 /* stroke.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; name = "stroke.bmp"; path = "../../../../Xcode-iOS/Demos/data/stroke.bmp"; sourceTree = ""; }; + 0EBB33113E847AA430B96B69 /* common.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "common.c"; path = "../../../../Xcode-iOS/Demos/src/common.c"; sourceTree = ""; }; + 5E933B3601CB6D550A35284B /* common.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "common.h"; path = "../../../../Xcode-iOS/Demos/src/common.h"; sourceTree = ""; }; + 596447B07498655C0C243381 /* fireworks.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "fireworks.c"; path = "../../../../Xcode-iOS/Demos/src/fireworks.c"; sourceTree = ""; }; + 123376C8576F65BC595A6307 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "System/Library/Frameworks/AudioToolbox.framework"; sourceTree = "SDKROOT"; }; + 60711C343D703F8D4C67108C /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "QuartzCore.framework"; path = "System/Library/Frameworks/QuartzCore.framework"; sourceTree = "SDKROOT"; }; + 633F528E066847D70E7013C4 /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGLES.framework"; path = "System/Library/Frameworks/OpenGLES.framework"; sourceTree = "SDKROOT"; }; + 5E802A784A7A29545AD836CD /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreGraphics.framework"; path = "System/Library/Frameworks/CoreGraphics.framework"; sourceTree = "SDKROOT"; }; + 7B22322B31D5351E536A0626 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "UIKit.framework"; path = "System/Library/Frameworks/UIKit.framework"; sourceTree = "SDKROOT"; }; + 230B36B52E4826A148913E3B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Foundation.framework"; path = "System/Library/Frameworks/Foundation.framework"; sourceTree = "SDKROOT"; }; + 4CE031D65AB00DD264007083 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "System/Library/Frameworks/CoreAudio.framework"; sourceTree = "SDKROOT"; }; + 30200E315CB6417F29DA5065 /* fireworks */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; name = "fireworks"; path = "fireworks"; sourceTree = BUILT_PRODUCTS_DIR; }; + 460E547038C062D10E9E3D5F /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 00003F873C025B1226283799 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 79C17D3407632C1F2E3E0E60 /* AudioToolbox.framework in Frameworks */, + 73360C2A26FB4CA511D62254 /* QuartzCore.framework in Frameworks */, + 527D0CDF1702119E424E4A1F /* OpenGLES.framework in Frameworks */, + 098672276FAD7A58464B0720 /* CoreGraphics.framework in Frameworks */, + 5FA3503D55AC13E211914909 /* UIKit.framework in Frameworks */, + 25665D894EE1308D14544C71 /* Foundation.framework in Frameworks */, + 4C2479ED4E2C5193217C6EC9 /* CoreAudio.framework in Frameworks */, + 0A231ED87C3D466409B42038 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 792F068F49A57B4638B70EC5 /* fireworks */ = { + isa = PBXGroup; + children = ( + 49E04FED520F68E0695A1DB6 /* Xcode-iOS */, + 501A0CA8227D64CE52083875 /* Frameworks */, + 07354BC83E791D3F4F231D23 /* Products */, + 6E052C166223126769C05956 /* Projects */, + ); + name = "fireworks"; + sourceTree = ""; + }; + 49E04FED520F68E0695A1DB6 /* Xcode-iOS */ = { + isa = PBXGroup; + children = ( + 31BA2F820B3B5C9778AE27A2 /* Demos */, + ); + name = "Xcode-iOS"; + sourceTree = ""; + }; + 31BA2F820B3B5C9778AE27A2 /* Demos */ = { + isa = PBXGroup; + children = ( + 0671155E7F8E65FF744F0C39 /* Info.plist */, + 142A121F4562529546B6158D /* data */, + 30930BB2673975194C004BD3 /* src */, + ); + name = "Demos"; + sourceTree = ""; + }; + 142A121F4562529546B6158D /* data */ = { + isa = PBXGroup; + children = ( + 6730111A6BFB5F5C14DD4871 /* stroke.bmp */, + ); + name = "data"; + sourceTree = ""; + }; + 30930BB2673975194C004BD3 /* src */ = { + isa = PBXGroup; + children = ( + 0EBB33113E847AA430B96B69 /* common.c */, + 5E933B3601CB6D550A35284B /* common.h */, + 596447B07498655C0C243381 /* fireworks.c */, + ); + name = "src"; + sourceTree = ""; + }; + 501A0CA8227D64CE52083875 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 123376C8576F65BC595A6307 /* AudioToolbox.framework */, + 60711C343D703F8D4C67108C /* QuartzCore.framework */, + 633F528E066847D70E7013C4 /* OpenGLES.framework */, + 5E802A784A7A29545AD836CD /* CoreGraphics.framework */, + 7B22322B31D5351E536A0626 /* UIKit.framework */, + 230B36B52E4826A148913E3B /* Foundation.framework */, + 4CE031D65AB00DD264007083 /* CoreAudio.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 07354BC83E791D3F4F231D23 /* Products */ = { + isa = PBXGroup; + children = ( + 30200E315CB6417F29DA5065 /* fireworks */, + ); + name = "Products"; + sourceTree = ""; + }; + 6E052C166223126769C05956 /* Projects */ = { + isa = PBXGroup; + children = ( + 460E547038C062D10E9E3D5F /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 69CE07AB71092E5823634CFF /* Products */ = { + isa = PBXGroup; + children = ( + 36533B8A10B0217136B82153 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 449B2B3766C40168684F5081 /* fireworks */ = { + isa = PBXNativeTarget; + buildConfigurationList = 6476261C1F55185646DD5A1D /* Build configuration list for PBXNativeTarget "fireworks" */; + buildPhases = ( + 602E226C0419148750F91DB2 /* Resources */, + 376F64A66D4239294A6949B6 /* Sources */, + 00003F873C025B1226283799 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 39CF02464D5053C66EA47AC0 /* PBXTargetDependency */, + ); + name = "fireworks"; + productInstallPath = "$(HOME)/Applications"; + productName = "fireworks"; + productReference = 30200E315CB6417F29DA5065 /* fireworks */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "fireworks" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 792F068F49A57B4638B70EC5 /* fireworks */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 69CE07AB71092E5823634CFF /* Products */; + ProjectRef = 460E547038C062D10E9E3D5F /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 449B2B3766C40168684F5081 /* fireworks */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 36533B8A10B0217136B82153 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 21963BEC278D360D2CC829A9 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 602E226C0419148750F91DB2 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 10E2774011786F995B805C7F /* stroke.bmp in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 376F64A66D4239294A6949B6 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 79D87D07048610C3209314C6 /* common.c in Sources */, + 71A12A290ADF47D43590019A /* fireworks.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 39CF02464D5053C66EA47AC0 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 50E70FB957213B36609376FC /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 670D1D77032D31C655C83E60 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INFOPLIST_FILE = "../../../../Xcode-iOS/Demos/Info.plist"; + INSTALL_PATH = "$(HOME)/Applications"; + PRODUCT_NAME = "fireworks"; + }; + name = "Debug"; + }; + 3777705C388527704EAB5951 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INFOPLIST_FILE = "../../../../Xcode-iOS/Demos/Info.plist"; + INSTALL_PATH = "$(HOME)/Applications"; + PRODUCT_NAME = "fireworks"; + }; + name = "Release"; + }; + 11105FF3697A04D35F3C1869 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)"; + SDKROOT = iphoneos; + CODE_SIGN_IDENTITY = "iPhone Developer"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../include", + ); + OBJROOT = "obj/iOS/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug"; + }; + 75EF49955C93529475B6356E /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)"; + SDKROOT = iphoneos; + CODE_SIGN_IDENTITY = "iPhone Developer"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../include", + ); + OBJROOT = "obj/iOS/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 6476261C1F55185646DD5A1D /* Build configuration list for PBXNativeTarget "fireworks" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 670D1D77032D31C655C83E60 /* Debug */, + 3777705C388527704EAB5951 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "fireworks" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 11105FF3697A04D35F3C1869 /* Debug */, + 75EF49955C93529475B6356E /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode-iOS/Demos/happy/happy.xcodeproj/project.pbxproj b/premake/Xcode-iOS/Demos/happy/happy.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..fdac9bda7f94b --- /dev/null +++ b/premake/Xcode-iOS/Demos/happy/happy.xcodeproj/project.pbxproj @@ -0,0 +1,362 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 43587E112FDE41E3486A5141 /* icon.bmp in Resources */ = {isa = PBXBuildFile; fileRef = 67E105821F9D19C248BF17B6 /* icon.bmp */; }; + 2F5A7AB72FA52C3D029335B6 /* common.c in Sources */ = {isa = PBXBuildFile; fileRef = 49AD32CF351438B316C15B7A /* common.c */; }; + 66455D1E7E3179156E546AA8 /* happy.c in Sources */ = {isa = PBXBuildFile; fileRef = 1F0270E77CC100E968633EBA /* happy.c */; }; + 04CE7E9842C4612763496460 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2C147BCA187412202A676460 /* AudioToolbox.framework */; }; + 5DC8148934C32F3407541C0F /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5DDB080C0C872DF96CEE0B62 /* QuartzCore.framework */; }; + 039E2FCB749D2AE6705435A4 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B210870772357A20E4576EE /* OpenGLES.framework */; }; + 263A59BA6D20796421AC3870 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 603E37DB4001230953C943FD /* CoreGraphics.framework */; }; + 7E2000C447ED370218691A83 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 49C87CB0268927E071506CEA /* UIKit.framework */; }; + 081D5E427A420BEA66DF6129 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 489C1A076394164C7F853083 /* Foundation.framework */; }; + 65AC30DF305741C6521420A7 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7AF1729947305D7E10DA777D /* CoreAudio.framework */; }; + 424C13DC60653FEE6370536B /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 327333F1228F1B0D0A582BEC /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 73DD36916E01179F50147B85 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 45B64B000539221732843506 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 224D2C85085A7BA60E532655; + remoteInfo = "libSDL2.a"; + }; + 6D92213A249742C860667923 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 45B64B000539221732843506 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 515D4C462ACD2DA8180E7783; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 4E8504577F0B2DC43C2073B9 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "Info.plist"; path = "../../../../Xcode-iOS/Demos/Info.plist"; sourceTree = ""; }; + 67E105821F9D19C248BF17B6 /* icon.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; name = "icon.bmp"; path = "../../../../Xcode-iOS/Demos/data/icon.bmp"; sourceTree = ""; }; + 49AD32CF351438B316C15B7A /* common.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "common.c"; path = "../../../../Xcode-iOS/Demos/src/common.c"; sourceTree = ""; }; + 4346585005E47029491C60D0 /* common.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "common.h"; path = "../../../../Xcode-iOS/Demos/src/common.h"; sourceTree = ""; }; + 1F0270E77CC100E968633EBA /* happy.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "happy.c"; path = "../../../../Xcode-iOS/Demos/src/happy.c"; sourceTree = ""; }; + 2C147BCA187412202A676460 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "System/Library/Frameworks/AudioToolbox.framework"; sourceTree = "SDKROOT"; }; + 5DDB080C0C872DF96CEE0B62 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "QuartzCore.framework"; path = "System/Library/Frameworks/QuartzCore.framework"; sourceTree = "SDKROOT"; }; + 3B210870772357A20E4576EE /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGLES.framework"; path = "System/Library/Frameworks/OpenGLES.framework"; sourceTree = "SDKROOT"; }; + 603E37DB4001230953C943FD /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreGraphics.framework"; path = "System/Library/Frameworks/CoreGraphics.framework"; sourceTree = "SDKROOT"; }; + 49C87CB0268927E071506CEA /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "UIKit.framework"; path = "System/Library/Frameworks/UIKit.framework"; sourceTree = "SDKROOT"; }; + 489C1A076394164C7F853083 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Foundation.framework"; path = "System/Library/Frameworks/Foundation.framework"; sourceTree = "SDKROOT"; }; + 7AF1729947305D7E10DA777D /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "System/Library/Frameworks/CoreAudio.framework"; sourceTree = "SDKROOT"; }; + 65F833BA06B514AD0EE36218 /* happy */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; name = "happy"; path = "happy"; sourceTree = BUILT_PRODUCTS_DIR; }; + 45B64B000539221732843506 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 42BC7BB86D0D2AE72C3C307D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 04CE7E9842C4612763496460 /* AudioToolbox.framework in Frameworks */, + 5DC8148934C32F3407541C0F /* QuartzCore.framework in Frameworks */, + 039E2FCB749D2AE6705435A4 /* OpenGLES.framework in Frameworks */, + 263A59BA6D20796421AC3870 /* CoreGraphics.framework in Frameworks */, + 7E2000C447ED370218691A83 /* UIKit.framework in Frameworks */, + 081D5E427A420BEA66DF6129 /* Foundation.framework in Frameworks */, + 65AC30DF305741C6521420A7 /* CoreAudio.framework in Frameworks */, + 424C13DC60653FEE6370536B /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 3555679049400DAA17916DD7 /* happy */ = { + isa = PBXGroup; + children = ( + 7CFE361B495F31F009A616F6 /* Xcode-iOS */, + 532F72873A65662513E35533 /* Frameworks */, + 343C7E606DE365001C7D0B84 /* Products */, + 20D87CCB7D1E6AC128B72992 /* Projects */, + ); + name = "happy"; + sourceTree = ""; + }; + 7CFE361B495F31F009A616F6 /* Xcode-iOS */ = { + isa = PBXGroup; + children = ( + 224D240956AC3D2636C95904 /* Demos */, + ); + name = "Xcode-iOS"; + sourceTree = ""; + }; + 224D240956AC3D2636C95904 /* Demos */ = { + isa = PBXGroup; + children = ( + 4E8504577F0B2DC43C2073B9 /* Info.plist */, + 1EEF027C57A725660BCF6FB9 /* data */, + 1F3D1DBD7857554A0C1C1965 /* src */, + ); + name = "Demos"; + sourceTree = ""; + }; + 1EEF027C57A725660BCF6FB9 /* data */ = { + isa = PBXGroup; + children = ( + 67E105821F9D19C248BF17B6 /* icon.bmp */, + ); + name = "data"; + sourceTree = ""; + }; + 1F3D1DBD7857554A0C1C1965 /* src */ = { + isa = PBXGroup; + children = ( + 49AD32CF351438B316C15B7A /* common.c */, + 4346585005E47029491C60D0 /* common.h */, + 1F0270E77CC100E968633EBA /* happy.c */, + ); + name = "src"; + sourceTree = ""; + }; + 532F72873A65662513E35533 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 2C147BCA187412202A676460 /* AudioToolbox.framework */, + 5DDB080C0C872DF96CEE0B62 /* QuartzCore.framework */, + 3B210870772357A20E4576EE /* OpenGLES.framework */, + 603E37DB4001230953C943FD /* CoreGraphics.framework */, + 49C87CB0268927E071506CEA /* UIKit.framework */, + 489C1A076394164C7F853083 /* Foundation.framework */, + 7AF1729947305D7E10DA777D /* CoreAudio.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 343C7E606DE365001C7D0B84 /* Products */ = { + isa = PBXGroup; + children = ( + 65F833BA06B514AD0EE36218 /* happy */, + ); + name = "Products"; + sourceTree = ""; + }; + 20D87CCB7D1E6AC128B72992 /* Projects */ = { + isa = PBXGroup; + children = ( + 45B64B000539221732843506 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 452A4F211058019E46671F0C /* Products */ = { + isa = PBXGroup; + children = ( + 327333F1228F1B0D0A582BEC /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 2CAD44D858E6037A6F811B90 /* happy */ = { + isa = PBXNativeTarget; + buildConfigurationList = 233F10BA36C35A146C6A4B3E /* Build configuration list for PBXNativeTarget "happy" */; + buildPhases = ( + 779B1C3D74C34A815E3A3F7E /* Resources */, + 059733C83C381D451EFA5F5A /* Sources */, + 42BC7BB86D0D2AE72C3C307D /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 1F023F2F3EDE66E20BCC17E1 /* PBXTargetDependency */, + ); + name = "happy"; + productInstallPath = "$(HOME)/Applications"; + productName = "happy"; + productReference = 65F833BA06B514AD0EE36218 /* happy */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "happy" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 3555679049400DAA17916DD7 /* happy */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 452A4F211058019E46671F0C /* Products */; + ProjectRef = 45B64B000539221732843506 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 2CAD44D858E6037A6F811B90 /* happy */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 327333F1228F1B0D0A582BEC /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 73DD36916E01179F50147B85 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 779B1C3D74C34A815E3A3F7E /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 43587E112FDE41E3486A5141 /* icon.bmp in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 059733C83C381D451EFA5F5A /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 2F5A7AB72FA52C3D029335B6 /* common.c in Sources */, + 66455D1E7E3179156E546AA8 /* happy.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 1F023F2F3EDE66E20BCC17E1 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 6D92213A249742C860667923 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 563C339925F445BB2F1E01DB /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INFOPLIST_FILE = "../../../../Xcode-iOS/Demos/Info.plist"; + INSTALL_PATH = "$(HOME)/Applications"; + PRODUCT_NAME = "happy"; + }; + name = "Debug"; + }; + 205A208D2C4F2495443E582F /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INFOPLIST_FILE = "../../../../Xcode-iOS/Demos/Info.plist"; + INSTALL_PATH = "$(HOME)/Applications"; + PRODUCT_NAME = "happy"; + }; + name = "Release"; + }; + 115846ED1EDF44EA13E06D02 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)"; + SDKROOT = iphoneos; + CODE_SIGN_IDENTITY = "iPhone Developer"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../include", + ); + OBJROOT = "obj/iOS/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug"; + }; + 3536279D443370B3347E7CB6 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)"; + SDKROOT = iphoneos; + CODE_SIGN_IDENTITY = "iPhone Developer"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../include", + ); + OBJROOT = "obj/iOS/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 233F10BA36C35A146C6A4B3E /* Build configuration list for PBXNativeTarget "happy" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 563C339925F445BB2F1E01DB /* Debug */, + 205A208D2C4F2495443E582F /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "happy" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 115846ED1EDF44EA13E06D02 /* Debug */, + 3536279D443370B3347E7CB6 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode-iOS/Demos/keyboard/keyboard.xcodeproj/project.pbxproj b/premake/Xcode-iOS/Demos/keyboard/keyboard.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..8502fa999440f --- /dev/null +++ b/premake/Xcode-iOS/Demos/keyboard/keyboard.xcodeproj/project.pbxproj @@ -0,0 +1,370 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 45273A68360C0E815D1B1BC0 /* kromasky_16x16.bmp in Resources */ = {isa = PBXBuildFile; fileRef = 5F9758D31B3F59084DC82795 /* kromasky_16x16.bmp */; }; + 324160D025840B5270143D94 /* common.c in Sources */ = {isa = PBXBuildFile; fileRef = 6E0951906832624606980FA7 /* common.c */; }; + 4CBC542E1F7005322C280595 /* keyboard.c in Sources */ = {isa = PBXBuildFile; fileRef = 2987762A782C33F9516B55E5 /* keyboard.c */; }; + 7BBF522D0B3425221AC07065 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2343286F2DA963733BDB4BFF /* AudioToolbox.framework */; }; + 79421BCE00DF36EC439A5CD4 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 29F4734C35942DEA723A5A77 /* QuartzCore.framework */; }; + 06A76AFF0ED4094D53875FC7 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7E0C550168CA5DF878D253AB /* OpenGLES.framework */; }; + 3D133C292D622B105EE9453E /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 422B29AA759D18C60A831E77 /* CoreGraphics.framework */; }; + 05431A973AEA7EE57FA27595 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 750F39EC6BA274B14FCF2602 /* UIKit.framework */; }; + 69605E6F6C651372297A0B12 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 243E12D229FC131B064C7705 /* Foundation.framework */; }; + 05CF5EDB7CA80D6B0B8E1F8D /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7256748A485906120EDA0EC6 /* CoreAudio.framework */; }; + 152755650FEB31C909EC00E4 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 72750F76468F6580744A4BC9 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 5034364C4E5B3FD958D13B5C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 4EC774AF1C8B11653EDD4CF5 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 224D2C85085A7BA60E532655; + remoteInfo = "libSDL2.a"; + }; + 47316C104E515CB0638F45FE /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 4EC774AF1C8B11653EDD4CF5 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 515D4C462ACD2DA8180E7783; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 3EAB5300634A1F997DFB781B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "Info.plist"; path = "../../../../Xcode-iOS/Demos/Info.plist"; sourceTree = ""; }; + 5F9758D31B3F59084DC82795 /* kromasky_16x16.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; name = "kromasky_16x16.bmp"; path = "../../../../Xcode-iOS/Demos/data/bitmapfont/kromasky_16x16.bmp"; sourceTree = ""; }; + 6E0951906832624606980FA7 /* common.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "common.c"; path = "../../../../Xcode-iOS/Demos/src/common.c"; sourceTree = ""; }; + 4D90349C274323322B1A6BBA /* common.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "common.h"; path = "../../../../Xcode-iOS/Demos/src/common.h"; sourceTree = ""; }; + 2987762A782C33F9516B55E5 /* keyboard.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "keyboard.c"; path = "../../../../Xcode-iOS/Demos/src/keyboard.c"; sourceTree = ""; }; + 2343286F2DA963733BDB4BFF /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "System/Library/Frameworks/AudioToolbox.framework"; sourceTree = "SDKROOT"; }; + 29F4734C35942DEA723A5A77 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "QuartzCore.framework"; path = "System/Library/Frameworks/QuartzCore.framework"; sourceTree = "SDKROOT"; }; + 7E0C550168CA5DF878D253AB /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGLES.framework"; path = "System/Library/Frameworks/OpenGLES.framework"; sourceTree = "SDKROOT"; }; + 422B29AA759D18C60A831E77 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreGraphics.framework"; path = "System/Library/Frameworks/CoreGraphics.framework"; sourceTree = "SDKROOT"; }; + 750F39EC6BA274B14FCF2602 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "UIKit.framework"; path = "System/Library/Frameworks/UIKit.framework"; sourceTree = "SDKROOT"; }; + 243E12D229FC131B064C7705 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Foundation.framework"; path = "System/Library/Frameworks/Foundation.framework"; sourceTree = "SDKROOT"; }; + 7256748A485906120EDA0EC6 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "System/Library/Frameworks/CoreAudio.framework"; sourceTree = "SDKROOT"; }; + 759B2B246CC126C15CAC3E9A /* keyboard */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; name = "keyboard"; path = "keyboard"; sourceTree = BUILT_PRODUCTS_DIR; }; + 4EC774AF1C8B11653EDD4CF5 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 34184B7037081F3645C941EF /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 7BBF522D0B3425221AC07065 /* AudioToolbox.framework in Frameworks */, + 79421BCE00DF36EC439A5CD4 /* QuartzCore.framework in Frameworks */, + 06A76AFF0ED4094D53875FC7 /* OpenGLES.framework in Frameworks */, + 3D133C292D622B105EE9453E /* CoreGraphics.framework in Frameworks */, + 05431A973AEA7EE57FA27595 /* UIKit.framework in Frameworks */, + 69605E6F6C651372297A0B12 /* Foundation.framework in Frameworks */, + 05CF5EDB7CA80D6B0B8E1F8D /* CoreAudio.framework in Frameworks */, + 152755650FEB31C909EC00E4 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 677B6BC5125065EF671517AF /* keyboard */ = { + isa = PBXGroup; + children = ( + 7B4430D456083F22037D36EF /* Xcode-iOS */, + 12A204F705CD6EA85EED2785 /* Frameworks */, + 648E631128706545491A6FF5 /* Products */, + 5C50345624874A655FED50DE /* Projects */, + ); + name = "keyboard"; + sourceTree = ""; + }; + 7B4430D456083F22037D36EF /* Xcode-iOS */ = { + isa = PBXGroup; + children = ( + 0CDD3A6150551D1F7A057966 /* Demos */, + ); + name = "Xcode-iOS"; + sourceTree = ""; + }; + 0CDD3A6150551D1F7A057966 /* Demos */ = { + isa = PBXGroup; + children = ( + 3EAB5300634A1F997DFB781B /* Info.plist */, + 49C73F1123DD22E36DB26715 /* data */, + 70CD296F51F07063761032D3 /* src */, + ); + name = "Demos"; + sourceTree = ""; + }; + 49C73F1123DD22E36DB26715 /* data */ = { + isa = PBXGroup; + children = ( + 4B1E1F4E75081D4125E24E30 /* bitmapfont */, + ); + name = "data"; + sourceTree = ""; + }; + 4B1E1F4E75081D4125E24E30 /* bitmapfont */ = { + isa = PBXGroup; + children = ( + 5F9758D31B3F59084DC82795 /* kromasky_16x16.bmp */, + ); + name = "bitmapfont"; + sourceTree = ""; + }; + 70CD296F51F07063761032D3 /* src */ = { + isa = PBXGroup; + children = ( + 6E0951906832624606980FA7 /* common.c */, + 4D90349C274323322B1A6BBA /* common.h */, + 2987762A782C33F9516B55E5 /* keyboard.c */, + ); + name = "src"; + sourceTree = ""; + }; + 12A204F705CD6EA85EED2785 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 2343286F2DA963733BDB4BFF /* AudioToolbox.framework */, + 29F4734C35942DEA723A5A77 /* QuartzCore.framework */, + 7E0C550168CA5DF878D253AB /* OpenGLES.framework */, + 422B29AA759D18C60A831E77 /* CoreGraphics.framework */, + 750F39EC6BA274B14FCF2602 /* UIKit.framework */, + 243E12D229FC131B064C7705 /* Foundation.framework */, + 7256748A485906120EDA0EC6 /* CoreAudio.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 648E631128706545491A6FF5 /* Products */ = { + isa = PBXGroup; + children = ( + 759B2B246CC126C15CAC3E9A /* keyboard */, + ); + name = "Products"; + sourceTree = ""; + }; + 5C50345624874A655FED50DE /* Projects */ = { + isa = PBXGroup; + children = ( + 4EC774AF1C8B11653EDD4CF5 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 644325D14FD20B88184F7B96 /* Products */ = { + isa = PBXGroup; + children = ( + 72750F76468F6580744A4BC9 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 73176F12128359B77F276047 /* keyboard */ = { + isa = PBXNativeTarget; + buildConfigurationList = 2CB14BD0504177BD395A5721 /* Build configuration list for PBXNativeTarget "keyboard" */; + buildPhases = ( + 4684144777C328C125E4477A /* Resources */, + 46C76D2668D37A606FA41834 /* Sources */, + 34184B7037081F3645C941EF /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 49D96F9A0B0A7D6D315D6561 /* PBXTargetDependency */, + ); + name = "keyboard"; + productInstallPath = "$(HOME)/Applications"; + productName = "keyboard"; + productReference = 759B2B246CC126C15CAC3E9A /* keyboard */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "keyboard" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 677B6BC5125065EF671517AF /* keyboard */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 644325D14FD20B88184F7B96 /* Products */; + ProjectRef = 4EC774AF1C8B11653EDD4CF5 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 73176F12128359B77F276047 /* keyboard */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 72750F76468F6580744A4BC9 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 5034364C4E5B3FD958D13B5C /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 4684144777C328C125E4477A /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 45273A68360C0E815D1B1BC0 /* kromasky_16x16.bmp in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 46C76D2668D37A606FA41834 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 324160D025840B5270143D94 /* common.c in Sources */, + 4CBC542E1F7005322C280595 /* keyboard.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 49D96F9A0B0A7D6D315D6561 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 47316C104E515CB0638F45FE /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 29CD6D214B7C539E454E3F7F /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INFOPLIST_FILE = "../../../../Xcode-iOS/Demos/Info.plist"; + INSTALL_PATH = "$(HOME)/Applications"; + PRODUCT_NAME = "keyboard"; + }; + name = "Debug"; + }; + 4F111B6B1ABD2B982AD67BF5 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INFOPLIST_FILE = "../../../../Xcode-iOS/Demos/Info.plist"; + INSTALL_PATH = "$(HOME)/Applications"; + PRODUCT_NAME = "keyboard"; + }; + name = "Release"; + }; + 5BB564CA490F15C1418B1116 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)"; + SDKROOT = iphoneos; + CODE_SIGN_IDENTITY = "iPhone Developer"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../include", + ); + OBJROOT = "obj/iOS/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug"; + }; + 1CB3517C5A08534D77F33340 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)"; + SDKROOT = iphoneos; + CODE_SIGN_IDENTITY = "iPhone Developer"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../include", + ); + OBJROOT = "obj/iOS/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 2CB14BD0504177BD395A5721 /* Build configuration list for PBXNativeTarget "keyboard" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 29CD6D214B7C539E454E3F7F /* Debug */, + 4F111B6B1ABD2B982AD67BF5 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "keyboard" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 5BB564CA490F15C1418B1116 /* Debug */, + 1CB3517C5A08534D77F33340 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode-iOS/Demos/mixer/mixer.xcodeproj/project.pbxproj b/premake/Xcode-iOS/Demos/mixer/mixer.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..cccd2a9e45ac2 --- /dev/null +++ b/premake/Xcode-iOS/Demos/mixer/mixer.xcodeproj/project.pbxproj @@ -0,0 +1,382 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 0B6859393B9143B32E541E7E /* ds_brush_snare.wav in Resources */ = {isa = PBXBuildFile; fileRef = 422733DF08FD31034D304460 /* ds_brush_snare.wav */; }; + 1D620E24175E3BDC68B364CC /* ds_china.wav in Resources */ = {isa = PBXBuildFile; fileRef = 79E53A83260455FE38C33693 /* ds_china.wav */; }; + 0CFA1EA63AE91AEB435040F4 /* ds_kick_big_amb.wav in Resources */ = {isa = PBXBuildFile; fileRef = 1F722A62118969EF6675146F /* ds_kick_big_amb.wav */; }; + 3C721D7F0BE567BA03824EC3 /* ds_loose_skin_mute.wav in Resources */ = {isa = PBXBuildFile; fileRef = 7FFF7D0619C10C5C2CDB1303 /* ds_loose_skin_mute.wav */; }; + 562A04E23F4F62DB1A77086F /* common.c in Sources */ = {isa = PBXBuildFile; fileRef = 10786FA134B253174C941340 /* common.c */; }; + 6BEA7CEB63D02B4D066E34E5 /* mixer.c in Sources */ = {isa = PBXBuildFile; fileRef = 687637245A2B505F4A160613 /* mixer.c */; }; + 081C234807FF0C5C139957D8 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 203A4FD6274F474708165F11 /* AudioToolbox.framework */; }; + 5B59651D06310F6C10D32C9D /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 32982470375E18A1721C3319 /* QuartzCore.framework */; }; + 4CB53808503156A666854E29 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 19A945435C744703450D6DB4 /* OpenGLES.framework */; }; + 4B5D5AA06F9A6DDF6E6955BE /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 06A616C9757B111D082B6699 /* CoreGraphics.framework */; }; + 660D132301FE4FC469482A6A /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 68A35894181D26234E8906BB /* UIKit.framework */; }; + 40135577196C0B49113E1344 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4F39495026702A5475264C60 /* Foundation.framework */; }; + 5DE82D615C365F4C08B4227B /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 102040E91CCC47744B866018 /* CoreAudio.framework */; }; + 42B32C7E1256594210637026 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 387D44E21004100A08F954C0 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 3DF962F5699217AC4FE77606 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 4FC72EC24B0D47FF42BB412E /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 224D2C85085A7BA60E532655; + remoteInfo = "libSDL2.a"; + }; + 0BD816BC3B2176BC65117275 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 4FC72EC24B0D47FF42BB412E /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 515D4C462ACD2DA8180E7783; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 65434775530A460B247312EC /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "Info.plist"; path = "../../../../Xcode-iOS/Demos/Info.plist"; sourceTree = ""; }; + 422733DF08FD31034D304460 /* ds_brush_snare.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; name = "ds_brush_snare.wav"; path = "../../../../Xcode-iOS/Demos/data/drums/ds_brush_snare.wav"; sourceTree = ""; }; + 79E53A83260455FE38C33693 /* ds_china.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; name = "ds_china.wav"; path = "../../../../Xcode-iOS/Demos/data/drums/ds_china.wav"; sourceTree = ""; }; + 1F722A62118969EF6675146F /* ds_kick_big_amb.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; name = "ds_kick_big_amb.wav"; path = "../../../../Xcode-iOS/Demos/data/drums/ds_kick_big_amb.wav"; sourceTree = ""; }; + 7FFF7D0619C10C5C2CDB1303 /* ds_loose_skin_mute.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; name = "ds_loose_skin_mute.wav"; path = "../../../../Xcode-iOS/Demos/data/drums/ds_loose_skin_mute.wav"; sourceTree = ""; }; + 10786FA134B253174C941340 /* common.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "common.c"; path = "../../../../Xcode-iOS/Demos/src/common.c"; sourceTree = ""; }; + 61A137E9413B20467DD00CE4 /* common.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "common.h"; path = "../../../../Xcode-iOS/Demos/src/common.h"; sourceTree = ""; }; + 687637245A2B505F4A160613 /* mixer.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "mixer.c"; path = "../../../../Xcode-iOS/Demos/src/mixer.c"; sourceTree = ""; }; + 203A4FD6274F474708165F11 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "System/Library/Frameworks/AudioToolbox.framework"; sourceTree = "SDKROOT"; }; + 32982470375E18A1721C3319 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "QuartzCore.framework"; path = "System/Library/Frameworks/QuartzCore.framework"; sourceTree = "SDKROOT"; }; + 19A945435C744703450D6DB4 /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGLES.framework"; path = "System/Library/Frameworks/OpenGLES.framework"; sourceTree = "SDKROOT"; }; + 06A616C9757B111D082B6699 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreGraphics.framework"; path = "System/Library/Frameworks/CoreGraphics.framework"; sourceTree = "SDKROOT"; }; + 68A35894181D26234E8906BB /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "UIKit.framework"; path = "System/Library/Frameworks/UIKit.framework"; sourceTree = "SDKROOT"; }; + 4F39495026702A5475264C60 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Foundation.framework"; path = "System/Library/Frameworks/Foundation.framework"; sourceTree = "SDKROOT"; }; + 102040E91CCC47744B866018 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "System/Library/Frameworks/CoreAudio.framework"; sourceTree = "SDKROOT"; }; + 17915AFB41DD5216489A7D9D /* mixer */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; name = "mixer"; path = "mixer"; sourceTree = BUILT_PRODUCTS_DIR; }; + 4FC72EC24B0D47FF42BB412E /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 3F9F772D4BEA703C31557097 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 081C234807FF0C5C139957D8 /* AudioToolbox.framework in Frameworks */, + 5B59651D06310F6C10D32C9D /* QuartzCore.framework in Frameworks */, + 4CB53808503156A666854E29 /* OpenGLES.framework in Frameworks */, + 4B5D5AA06F9A6DDF6E6955BE /* CoreGraphics.framework in Frameworks */, + 660D132301FE4FC469482A6A /* UIKit.framework in Frameworks */, + 40135577196C0B49113E1344 /* Foundation.framework in Frameworks */, + 5DE82D615C365F4C08B4227B /* CoreAudio.framework in Frameworks */, + 42B32C7E1256594210637026 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 64F72912178E0E0A529D547E /* mixer */ = { + isa = PBXGroup; + children = ( + 30E07F1023C3109F689531C0 /* Xcode-iOS */, + 447E63AC35FA5F3B5457493C /* Frameworks */, + 56F83BF965B964C63D7C584C /* Products */, + 6BBD4CDF46EE53A457CF775A /* Projects */, + ); + name = "mixer"; + sourceTree = ""; + }; + 30E07F1023C3109F689531C0 /* Xcode-iOS */ = { + isa = PBXGroup; + children = ( + 5687680358D406927F8D3122 /* Demos */, + ); + name = "Xcode-iOS"; + sourceTree = ""; + }; + 5687680358D406927F8D3122 /* Demos */ = { + isa = PBXGroup; + children = ( + 65434775530A460B247312EC /* Info.plist */, + 4525302B7F940E66616B446F /* data */, + 682F19D924A4152E215F01F1 /* src */, + ); + name = "Demos"; + sourceTree = ""; + }; + 4525302B7F940E66616B446F /* data */ = { + isa = PBXGroup; + children = ( + 69E5397630F2065F749834A8 /* drums */, + ); + name = "data"; + sourceTree = ""; + }; + 69E5397630F2065F749834A8 /* drums */ = { + isa = PBXGroup; + children = ( + 422733DF08FD31034D304460 /* ds_brush_snare.wav */, + 79E53A83260455FE38C33693 /* ds_china.wav */, + 1F722A62118969EF6675146F /* ds_kick_big_amb.wav */, + 7FFF7D0619C10C5C2CDB1303 /* ds_loose_skin_mute.wav */, + ); + name = "drums"; + sourceTree = ""; + }; + 682F19D924A4152E215F01F1 /* src */ = { + isa = PBXGroup; + children = ( + 10786FA134B253174C941340 /* common.c */, + 61A137E9413B20467DD00CE4 /* common.h */, + 687637245A2B505F4A160613 /* mixer.c */, + ); + name = "src"; + sourceTree = ""; + }; + 447E63AC35FA5F3B5457493C /* Frameworks */ = { + isa = PBXGroup; + children = ( + 203A4FD6274F474708165F11 /* AudioToolbox.framework */, + 32982470375E18A1721C3319 /* QuartzCore.framework */, + 19A945435C744703450D6DB4 /* OpenGLES.framework */, + 06A616C9757B111D082B6699 /* CoreGraphics.framework */, + 68A35894181D26234E8906BB /* UIKit.framework */, + 4F39495026702A5475264C60 /* Foundation.framework */, + 102040E91CCC47744B866018 /* CoreAudio.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 56F83BF965B964C63D7C584C /* Products */ = { + isa = PBXGroup; + children = ( + 17915AFB41DD5216489A7D9D /* mixer */, + ); + name = "Products"; + sourceTree = ""; + }; + 6BBD4CDF46EE53A457CF775A /* Projects */ = { + isa = PBXGroup; + children = ( + 4FC72EC24B0D47FF42BB412E /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 14184545582D7FB768DA7DD1 /* Products */ = { + isa = PBXGroup; + children = ( + 387D44E21004100A08F954C0 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 5D8A3C36241715841B63245E /* mixer */ = { + isa = PBXNativeTarget; + buildConfigurationList = 071B02257AE01E935E8D1379 /* Build configuration list for PBXNativeTarget "mixer" */; + buildPhases = ( + 0DD66F6149F315524B87203F /* Resources */, + 241A48291BAC50147F677AD3 /* Sources */, + 3F9F772D4BEA703C31557097 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 1C743B7F1E84122F06736C69 /* PBXTargetDependency */, + ); + name = "mixer"; + productInstallPath = "$(HOME)/Applications"; + productName = "mixer"; + productReference = 17915AFB41DD5216489A7D9D /* mixer */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "mixer" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 64F72912178E0E0A529D547E /* mixer */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 14184545582D7FB768DA7DD1 /* Products */; + ProjectRef = 4FC72EC24B0D47FF42BB412E /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 5D8A3C36241715841B63245E /* mixer */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 387D44E21004100A08F954C0 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 3DF962F5699217AC4FE77606 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 0DD66F6149F315524B87203F /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0B6859393B9143B32E541E7E /* ds_brush_snare.wav in Resources */, + 1D620E24175E3BDC68B364CC /* ds_china.wav in Resources */, + 0CFA1EA63AE91AEB435040F4 /* ds_kick_big_amb.wav in Resources */, + 3C721D7F0BE567BA03824EC3 /* ds_loose_skin_mute.wav in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 241A48291BAC50147F677AD3 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 562A04E23F4F62DB1A77086F /* common.c in Sources */, + 6BEA7CEB63D02B4D066E34E5 /* mixer.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 1C743B7F1E84122F06736C69 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 0BD816BC3B2176BC65117275 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 6BF263503A1012B07427361E /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INFOPLIST_FILE = "../../../../Xcode-iOS/Demos/Info.plist"; + INSTALL_PATH = "$(HOME)/Applications"; + PRODUCT_NAME = "mixer"; + }; + name = "Debug"; + }; + 004C079411BA6B4276C04983 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INFOPLIST_FILE = "../../../../Xcode-iOS/Demos/Info.plist"; + INSTALL_PATH = "$(HOME)/Applications"; + PRODUCT_NAME = "mixer"; + }; + name = "Release"; + }; + 010032F924AD1A8604875C13 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)"; + SDKROOT = iphoneos; + CODE_SIGN_IDENTITY = "iPhone Developer"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../include", + ); + OBJROOT = "obj/iOS/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug"; + }; + 62BE3AE0053C3D574C260D65 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)"; + SDKROOT = iphoneos; + CODE_SIGN_IDENTITY = "iPhone Developer"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../include", + ); + OBJROOT = "obj/iOS/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 071B02257AE01E935E8D1379 /* Build configuration list for PBXNativeTarget "mixer" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 6BF263503A1012B07427361E /* Debug */, + 004C079411BA6B4276C04983 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "mixer" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 010032F924AD1A8604875C13 /* Debug */, + 62BE3AE0053C3D574C260D65 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode-iOS/Demos/rectangles/rectangles.xcodeproj/project.pbxproj b/premake/Xcode-iOS/Demos/rectangles/rectangles.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..1e17181034ec5 --- /dev/null +++ b/premake/Xcode-iOS/Demos/rectangles/rectangles.xcodeproj/project.pbxproj @@ -0,0 +1,350 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 3E683D8F380B72331D966705 /* common.c in Sources */ = {isa = PBXBuildFile; fileRef = 2813245205F14A8C59584160 /* common.c */; }; + 6C1A3816543D7795144223E1 /* rectangles.c in Sources */ = {isa = PBXBuildFile; fileRef = 1A6027E7619B1FF276F1647F /* rectangles.c */; }; + 538E114C2E7E62F427035765 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 34F76EF742501A5342D32B4D /* AudioToolbox.framework */; }; + 541C7B547AFB75F808F11178 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 39BB5FD3409327B862A33D0D /* QuartzCore.framework */; }; + 3ADA65AC17A56E470D723A3C /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C104A979ED6C3F551705B5 /* OpenGLES.framework */; }; + 2DB765A563272C8C413C7066 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 49F32DF021A1011108AA6CFA /* CoreGraphics.framework */; }; + 1B941B1F31474FB121373844 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 628A573103CA605A5BC832E0 /* UIKit.framework */; }; + 73672D2A32625F0C346242FA /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D9D37B445D828F112A73D2F /* Foundation.framework */; }; + 04FB3B665FEE29384B9B42F1 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 342B2F6F3B5B137C31E424CE /* CoreAudio.framework */; }; + 28C530DA667726EB4DF6727F /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 45EF5D8025B92F4F04680040 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 368972B01B321F625EDD3C27 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0436345602702CD6400A6247 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 224D2C85085A7BA60E532655; + remoteInfo = "libSDL2.a"; + }; + 4D7C0BD571B740A9497C22A5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0436345602702CD6400A6247 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 515D4C462ACD2DA8180E7783; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 5227088F1D3F252018614672 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "Info.plist"; path = "../../../../Xcode-iOS/Demos/Info.plist"; sourceTree = ""; }; + 2813245205F14A8C59584160 /* common.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "common.c"; path = "../../../../Xcode-iOS/Demos/src/common.c"; sourceTree = ""; }; + 36B01E185907089C3F291E5B /* common.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "common.h"; path = "../../../../Xcode-iOS/Demos/src/common.h"; sourceTree = ""; }; + 1A6027E7619B1FF276F1647F /* rectangles.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "rectangles.c"; path = "../../../../Xcode-iOS/Demos/src/rectangles.c"; sourceTree = ""; }; + 34F76EF742501A5342D32B4D /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "System/Library/Frameworks/AudioToolbox.framework"; sourceTree = "SDKROOT"; }; + 39BB5FD3409327B862A33D0D /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "QuartzCore.framework"; path = "System/Library/Frameworks/QuartzCore.framework"; sourceTree = "SDKROOT"; }; + 00C104A979ED6C3F551705B5 /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGLES.framework"; path = "System/Library/Frameworks/OpenGLES.framework"; sourceTree = "SDKROOT"; }; + 49F32DF021A1011108AA6CFA /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreGraphics.framework"; path = "System/Library/Frameworks/CoreGraphics.framework"; sourceTree = "SDKROOT"; }; + 628A573103CA605A5BC832E0 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "UIKit.framework"; path = "System/Library/Frameworks/UIKit.framework"; sourceTree = "SDKROOT"; }; + 1D9D37B445D828F112A73D2F /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Foundation.framework"; path = "System/Library/Frameworks/Foundation.framework"; sourceTree = "SDKROOT"; }; + 342B2F6F3B5B137C31E424CE /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "System/Library/Frameworks/CoreAudio.framework"; sourceTree = "SDKROOT"; }; + 7332796826E47C595AC15526 /* rectangles */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; name = "rectangles"; path = "rectangles"; sourceTree = BUILT_PRODUCTS_DIR; }; + 0436345602702CD6400A6247 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 57DD0560107127536F5B5B69 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 538E114C2E7E62F427035765 /* AudioToolbox.framework in Frameworks */, + 541C7B547AFB75F808F11178 /* QuartzCore.framework in Frameworks */, + 3ADA65AC17A56E470D723A3C /* OpenGLES.framework in Frameworks */, + 2DB765A563272C8C413C7066 /* CoreGraphics.framework in Frameworks */, + 1B941B1F31474FB121373844 /* UIKit.framework in Frameworks */, + 73672D2A32625F0C346242FA /* Foundation.framework in Frameworks */, + 04FB3B665FEE29384B9B42F1 /* CoreAudio.framework in Frameworks */, + 28C530DA667726EB4DF6727F /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 288A2F3007DA183E3DA11892 /* rectangles */ = { + isa = PBXGroup; + children = ( + 483D233459853EE340090F93 /* Xcode-iOS */, + 2792239319A468A14CAA48C7 /* Frameworks */, + 6F89456E4C5C59BF2F18556B /* Products */, + 6546611D6AF04A5720535BA8 /* Projects */, + ); + name = "rectangles"; + sourceTree = ""; + }; + 483D233459853EE340090F93 /* Xcode-iOS */ = { + isa = PBXGroup; + children = ( + 38DD5DD6376F629A6DED1DE9 /* Demos */, + ); + name = "Xcode-iOS"; + sourceTree = ""; + }; + 38DD5DD6376F629A6DED1DE9 /* Demos */ = { + isa = PBXGroup; + children = ( + 5227088F1D3F252018614672 /* Info.plist */, + 6CF216180B8F014E40C62052 /* src */, + ); + name = "Demos"; + sourceTree = ""; + }; + 6CF216180B8F014E40C62052 /* src */ = { + isa = PBXGroup; + children = ( + 2813245205F14A8C59584160 /* common.c */, + 36B01E185907089C3F291E5B /* common.h */, + 1A6027E7619B1FF276F1647F /* rectangles.c */, + ); + name = "src"; + sourceTree = ""; + }; + 2792239319A468A14CAA48C7 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 34F76EF742501A5342D32B4D /* AudioToolbox.framework */, + 39BB5FD3409327B862A33D0D /* QuartzCore.framework */, + 00C104A979ED6C3F551705B5 /* OpenGLES.framework */, + 49F32DF021A1011108AA6CFA /* CoreGraphics.framework */, + 628A573103CA605A5BC832E0 /* UIKit.framework */, + 1D9D37B445D828F112A73D2F /* Foundation.framework */, + 342B2F6F3B5B137C31E424CE /* CoreAudio.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 6F89456E4C5C59BF2F18556B /* Products */ = { + isa = PBXGroup; + children = ( + 7332796826E47C595AC15526 /* rectangles */, + ); + name = "Products"; + sourceTree = ""; + }; + 6546611D6AF04A5720535BA8 /* Projects */ = { + isa = PBXGroup; + children = ( + 0436345602702CD6400A6247 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 0DC524DC289165A2096A1B8A /* Products */ = { + isa = PBXGroup; + children = ( + 45EF5D8025B92F4F04680040 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 4F6855E4129920DC7A9153FC /* rectangles */ = { + isa = PBXNativeTarget; + buildConfigurationList = 79D259543EB15FB103D110D7 /* Build configuration list for PBXNativeTarget "rectangles" */; + buildPhases = ( + 3CAC6B4F48AA464B710068C1 /* Resources */, + 0BE0523D5BE05C0B02A52BA6 /* Sources */, + 57DD0560107127536F5B5B69 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 1B3B41B9731B1B0D007A7AC1 /* PBXTargetDependency */, + ); + name = "rectangles"; + productInstallPath = "$(HOME)/Applications"; + productName = "rectangles"; + productReference = 7332796826E47C595AC15526 /* rectangles */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "rectangles" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 288A2F3007DA183E3DA11892 /* rectangles */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 0DC524DC289165A2096A1B8A /* Products */; + ProjectRef = 0436345602702CD6400A6247 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 4F6855E4129920DC7A9153FC /* rectangles */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 45EF5D8025B92F4F04680040 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 368972B01B321F625EDD3C27 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 3CAC6B4F48AA464B710068C1 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 0BE0523D5BE05C0B02A52BA6 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 3E683D8F380B72331D966705 /* common.c in Sources */, + 6C1A3816543D7795144223E1 /* rectangles.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 1B3B41B9731B1B0D007A7AC1 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 4D7C0BD571B740A9497C22A5 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 241D072A6F2D0EA442E9032F /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INFOPLIST_FILE = "../../../../Xcode-iOS/Demos/Info.plist"; + INSTALL_PATH = "$(HOME)/Applications"; + PRODUCT_NAME = "rectangles"; + }; + name = "Debug"; + }; + 29F11E745BAF53647A9017A1 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INFOPLIST_FILE = "../../../../Xcode-iOS/Demos/Info.plist"; + INSTALL_PATH = "$(HOME)/Applications"; + PRODUCT_NAME = "rectangles"; + }; + name = "Release"; + }; + 2CD758AE2ACB76894D9F26D0 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)"; + SDKROOT = iphoneos; + CODE_SIGN_IDENTITY = "iPhone Developer"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../include", + ); + OBJROOT = "obj/iOS/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug"; + }; + 743958EA264E002121B2360E /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)"; + SDKROOT = iphoneos; + CODE_SIGN_IDENTITY = "iPhone Developer"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../include", + ); + OBJROOT = "obj/iOS/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 79D259543EB15FB103D110D7 /* Build configuration list for PBXNativeTarget "rectangles" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 241D072A6F2D0EA442E9032F /* Debug */, + 29F11E745BAF53647A9017A1 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "rectangles" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 2CD758AE2ACB76894D9F26D0 /* Debug */, + 743958EA264E002121B2360E /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode-iOS/Demos/touch/touch.xcodeproj/project.pbxproj b/premake/Xcode-iOS/Demos/touch/touch.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..ce0a3702794f8 --- /dev/null +++ b/premake/Xcode-iOS/Demos/touch/touch.xcodeproj/project.pbxproj @@ -0,0 +1,362 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 44A5650B6BCF70612F3A3EED /* stroke.bmp in Resources */ = {isa = PBXBuildFile; fileRef = 102B12A4027156F83A0D40AB /* stroke.bmp */; }; + 31906B8700A178D233233F36 /* common.c in Sources */ = {isa = PBXBuildFile; fileRef = 02F347371F52568E12CF75FA /* common.c */; }; + 2DAD6F6C37366013402423CD /* touch.c in Sources */ = {isa = PBXBuildFile; fileRef = 6D5059D32C6D47053C146426 /* touch.c */; }; + 1FCF7B9250267C474FFF1317 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5EB40C466A044452147954FE /* AudioToolbox.framework */; }; + 3F8614FA2BB9118010E402BD /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 65156B5F67D37E3634D1353B /* QuartzCore.framework */; }; + 4DE269AF156A670F15C76C20 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B790E684F1661FD3CDE50BD /* OpenGLES.framework */; }; + 1B9025D4163C6DF452CB4B15 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2BFD013C2EC12CDF6D7213E4 /* CoreGraphics.framework */; }; + 1067012C0CF4170C465A4732 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0D4E119A347A3D9916C6457B /* UIKit.framework */; }; + 250771553F7A720752E02B11 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 37FD4C8345287A1C74820723 /* Foundation.framework */; }; + 57E9417D75CB142C653E02C3 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 059525A845FC5C9E20953252 /* CoreAudio.framework */; }; + 6B1F7AF166A178AA61071706 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D931F88425701C078B07720 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 33B14F0C4EDF4A8D301C10A8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 73C70F1E01C8127431B70DD1 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 224D2C85085A7BA60E532655; + remoteInfo = "libSDL2.a"; + }; + 1C2D50527874154867FC7A7A /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 73C70F1E01C8127431B70DD1 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 515D4C462ACD2DA8180E7783; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 5D7268702730733A7D936748 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "Info.plist"; path = "../../../../Xcode-iOS/Demos/Info.plist"; sourceTree = ""; }; + 102B12A4027156F83A0D40AB /* stroke.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; name = "stroke.bmp"; path = "../../../../Xcode-iOS/Demos/data/stroke.bmp"; sourceTree = ""; }; + 02F347371F52568E12CF75FA /* common.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "common.c"; path = "../../../../Xcode-iOS/Demos/src/common.c"; sourceTree = ""; }; + 278274AA7EA5160202BE0835 /* common.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "common.h"; path = "../../../../Xcode-iOS/Demos/src/common.h"; sourceTree = ""; }; + 6D5059D32C6D47053C146426 /* touch.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "touch.c"; path = "../../../../Xcode-iOS/Demos/src/touch.c"; sourceTree = ""; }; + 5EB40C466A044452147954FE /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "System/Library/Frameworks/AudioToolbox.framework"; sourceTree = "SDKROOT"; }; + 65156B5F67D37E3634D1353B /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "QuartzCore.framework"; path = "System/Library/Frameworks/QuartzCore.framework"; sourceTree = "SDKROOT"; }; + 4B790E684F1661FD3CDE50BD /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGLES.framework"; path = "System/Library/Frameworks/OpenGLES.framework"; sourceTree = "SDKROOT"; }; + 2BFD013C2EC12CDF6D7213E4 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreGraphics.framework"; path = "System/Library/Frameworks/CoreGraphics.framework"; sourceTree = "SDKROOT"; }; + 0D4E119A347A3D9916C6457B /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "UIKit.framework"; path = "System/Library/Frameworks/UIKit.framework"; sourceTree = "SDKROOT"; }; + 37FD4C8345287A1C74820723 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Foundation.framework"; path = "System/Library/Frameworks/Foundation.framework"; sourceTree = "SDKROOT"; }; + 059525A845FC5C9E20953252 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "System/Library/Frameworks/CoreAudio.framework"; sourceTree = "SDKROOT"; }; + 79DA5CF10F7848015B0E7B10 /* touch */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; name = "touch"; path = "touch"; sourceTree = BUILT_PRODUCTS_DIR; }; + 73C70F1E01C8127431B70DD1 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 1DAD583D4ABE25DC3C232F7A /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 1FCF7B9250267C474FFF1317 /* AudioToolbox.framework in Frameworks */, + 3F8614FA2BB9118010E402BD /* QuartzCore.framework in Frameworks */, + 4DE269AF156A670F15C76C20 /* OpenGLES.framework in Frameworks */, + 1B9025D4163C6DF452CB4B15 /* CoreGraphics.framework in Frameworks */, + 1067012C0CF4170C465A4732 /* UIKit.framework in Frameworks */, + 250771553F7A720752E02B11 /* Foundation.framework in Frameworks */, + 57E9417D75CB142C653E02C3 /* CoreAudio.framework in Frameworks */, + 6B1F7AF166A178AA61071706 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 492E166D57477FA478990772 /* touch */ = { + isa = PBXGroup; + children = ( + 5C73413941CE7C1842690DE9 /* Xcode-iOS */, + 01AA4ABB3DF9507B6FCA472B /* Frameworks */, + 604E40BE080514F15A952943 /* Products */, + 05931ED004651CC60E5C655D /* Projects */, + ); + name = "touch"; + sourceTree = ""; + }; + 5C73413941CE7C1842690DE9 /* Xcode-iOS */ = { + isa = PBXGroup; + children = ( + 3D7B6D34290A516832BD26C9 /* Demos */, + ); + name = "Xcode-iOS"; + sourceTree = ""; + }; + 3D7B6D34290A516832BD26C9 /* Demos */ = { + isa = PBXGroup; + children = ( + 5D7268702730733A7D936748 /* Info.plist */, + 32253DCA52F637CC52874AE1 /* data */, + 61A878F7300F30FB49712375 /* src */, + ); + name = "Demos"; + sourceTree = ""; + }; + 32253DCA52F637CC52874AE1 /* data */ = { + isa = PBXGroup; + children = ( + 102B12A4027156F83A0D40AB /* stroke.bmp */, + ); + name = "data"; + sourceTree = ""; + }; + 61A878F7300F30FB49712375 /* src */ = { + isa = PBXGroup; + children = ( + 02F347371F52568E12CF75FA /* common.c */, + 278274AA7EA5160202BE0835 /* common.h */, + 6D5059D32C6D47053C146426 /* touch.c */, + ); + name = "src"; + sourceTree = ""; + }; + 01AA4ABB3DF9507B6FCA472B /* Frameworks */ = { + isa = PBXGroup; + children = ( + 5EB40C466A044452147954FE /* AudioToolbox.framework */, + 65156B5F67D37E3634D1353B /* QuartzCore.framework */, + 4B790E684F1661FD3CDE50BD /* OpenGLES.framework */, + 2BFD013C2EC12CDF6D7213E4 /* CoreGraphics.framework */, + 0D4E119A347A3D9916C6457B /* UIKit.framework */, + 37FD4C8345287A1C74820723 /* Foundation.framework */, + 059525A845FC5C9E20953252 /* CoreAudio.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 604E40BE080514F15A952943 /* Products */ = { + isa = PBXGroup; + children = ( + 79DA5CF10F7848015B0E7B10 /* touch */, + ); + name = "Products"; + sourceTree = ""; + }; + 05931ED004651CC60E5C655D /* Projects */ = { + isa = PBXGroup; + children = ( + 73C70F1E01C8127431B70DD1 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 7BDA644C79FE323076F70739 /* Products */ = { + isa = PBXGroup; + children = ( + 1D931F88425701C078B07720 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 7E3B5FEB754A0B5520235C50 /* touch */ = { + isa = PBXNativeTarget; + buildConfigurationList = 371D55C1257826A923E4771B /* Build configuration list for PBXNativeTarget "touch" */; + buildPhases = ( + 160D35EC4E82653C03C52EAD /* Resources */, + 193B23AC765E2C585B1560FD /* Sources */, + 1DAD583D4ABE25DC3C232F7A /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 7BF075F418D41E8C1DD347F7 /* PBXTargetDependency */, + ); + name = "touch"; + productInstallPath = "$(HOME)/Applications"; + productName = "touch"; + productReference = 79DA5CF10F7848015B0E7B10 /* touch */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "touch" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 492E166D57477FA478990772 /* touch */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 7BDA644C79FE323076F70739 /* Products */; + ProjectRef = 73C70F1E01C8127431B70DD1 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 7E3B5FEB754A0B5520235C50 /* touch */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 1D931F88425701C078B07720 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 33B14F0C4EDF4A8D301C10A8 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 160D35EC4E82653C03C52EAD /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 44A5650B6BCF70612F3A3EED /* stroke.bmp in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 193B23AC765E2C585B1560FD /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 31906B8700A178D233233F36 /* common.c in Sources */, + 2DAD6F6C37366013402423CD /* touch.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 7BF075F418D41E8C1DD347F7 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 1C2D50527874154867FC7A7A /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 551D11A047DA4F2C7C7D0823 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INFOPLIST_FILE = "../../../../Xcode-iOS/Demos/Info.plist"; + INSTALL_PATH = "$(HOME)/Applications"; + PRODUCT_NAME = "touch"; + }; + name = "Debug"; + }; + 623B2822705365B569AE5529 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INFOPLIST_FILE = "../../../../Xcode-iOS/Demos/Info.plist"; + INSTALL_PATH = "$(HOME)/Applications"; + PRODUCT_NAME = "touch"; + }; + name = "Release"; + }; + 5BBE2AC31114434E5C1F7758 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)"; + SDKROOT = iphoneos; + CODE_SIGN_IDENTITY = "iPhone Developer"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../include", + ); + OBJROOT = "obj/iOS/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug"; + }; + 7C575288033B53977BD57638 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)"; + SDKROOT = iphoneos; + CODE_SIGN_IDENTITY = "iPhone Developer"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../include", + ); + OBJROOT = "obj/iOS/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 371D55C1257826A923E4771B /* Build configuration list for PBXNativeTarget "touch" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 551D11A047DA4F2C7C7D0823 /* Debug */, + 623B2822705365B569AE5529 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "touch" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 5BBE2AC31114434E5C1F7758 /* Debug */, + 7C575288033B53977BD57638 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode-iOS/SDL.xcworkspace/contents.xcworkspacedata b/premake/Xcode-iOS/SDL.xcworkspace/contents.xcworkspacedata new file mode 100755 index 0000000000000..7788c7732c81d --- /dev/null +++ b/premake/Xcode-iOS/SDL.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/premake/Xcode-iOS/SDL2/SDL2.xcodeproj/project.pbxproj b/premake/Xcode-iOS/SDL2/SDL2.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..4dbfb523c67fa --- /dev/null +++ b/premake/Xcode-iOS/SDL2/SDL2.xcodeproj/project.pbxproj @@ -0,0 +1,1033 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 4B806D3A32321C1562DC068A /* SDL.c in Sources */ = {isa = PBXBuildFile; fileRef = 1754411A221209B96C327B00 /* SDL.c */; }; + 312A55E27C22567927096421 /* SDL_assert.c in Sources */ = {isa = PBXBuildFile; fileRef = 50127CF143E2409B00E82007 /* SDL_assert.c */; }; + 59EC4DD65AC8132A334525C2 /* SDL_error.c in Sources */ = {isa = PBXBuildFile; fileRef = 3E6760E518A1332F0C066AEE /* SDL_error.c */; }; + 777A6B9724EA08530C265065 /* SDL_hints.c in Sources */ = {isa = PBXBuildFile; fileRef = 61943EC860253DA55758786D /* SDL_hints.c */; }; + 7E5108A73256684F3D264AFD /* SDL_log.c in Sources */ = {isa = PBXBuildFile; fileRef = 24541855198526E106FB61C9 /* SDL_log.c */; }; + 0FC3034E04AD7E6F3AA825C8 /* SDL_atomic.c in Sources */ = {isa = PBXBuildFile; fileRef = 1FB5255373F013CC70D8002D /* SDL_atomic.c */; }; + 5E007EF93C286858239D38F9 /* SDL_spinlock.c in Sources */ = {isa = PBXBuildFile; fileRef = 2137310F68926D6D476C07A1 /* SDL_spinlock.c */; }; + 0CD02D154F366D7153274AFB /* SDL_audio.c in Sources */ = {isa = PBXBuildFile; fileRef = 002C4E540DF5538435BC514A /* SDL_audio.c */; }; + 06871CF4135806F428EE6100 /* SDL_audiocvt.c in Sources */ = {isa = PBXBuildFile; fileRef = 4DBB70D75469728B342373E8 /* SDL_audiocvt.c */; }; + 53C27DD277591A486D287F66 /* SDL_audiodev.c in Sources */ = {isa = PBXBuildFile; fileRef = 48886D482B5239D2429E422D /* SDL_audiodev.c */; }; + 42024F3C06A820FA25753037 /* SDL_audiotypecvt.c in Sources */ = {isa = PBXBuildFile; fileRef = 0F175E65628D4137386B7A6D /* SDL_audiotypecvt.c */; }; + 706901DA2233598C2BC31C9E /* SDL_mixer.c in Sources */ = {isa = PBXBuildFile; fileRef = 77537CFB490A3599736F3830 /* SDL_mixer.c */; }; + 5D37701F2B9C4D8572677A14 /* SDL_wave.c in Sources */ = {isa = PBXBuildFile; fileRef = 5F503D9B3C7B4D2E09215A0A /* SDL_wave.c */; }; + 4F9A194458623E3271D9606F /* SDL_coreaudio.c in Sources */ = {isa = PBXBuildFile; fileRef = 785801FB211321AB70091ABE /* SDL_coreaudio.c */; }; + 401616E4053C316F11827D6A /* SDL_diskaudio.c in Sources */ = {isa = PBXBuildFile; fileRef = 4DC41A2B14C11D2837432538 /* SDL_diskaudio.c */; }; + 1EF571B808FD4D1C7CCA604A /* SDL_dummyaudio.c in Sources */ = {isa = PBXBuildFile; fileRef = 09BB72B17B0C531926C153F5 /* SDL_dummyaudio.c */; }; + 6C61795802890EEB0CA54BA2 /* SDL_cpuinfo.c in Sources */ = {isa = PBXBuildFile; fileRef = 215A41140CF741414DF53790 /* SDL_cpuinfo.c */; }; + 3EE216AB54E87EA113703443 /* SDL_clipboardevents.c in Sources */ = {isa = PBXBuildFile; fileRef = 24704CFC41E52BEC136D61EF /* SDL_clipboardevents.c */; }; + 117F40E519F73DBA084F02EE /* SDL_dropevents.c in Sources */ = {isa = PBXBuildFile; fileRef = 464D7C157FD7281A65677EB6 /* SDL_dropevents.c */; }; + 4F4E4A74448725295FA90435 /* SDL_events.c in Sources */ = {isa = PBXBuildFile; fileRef = 2A4321B70FCC1BF02A4B3380 /* SDL_events.c */; }; + 2E9D6A2A139E11AA6BF93FA2 /* SDL_gesture.c in Sources */ = {isa = PBXBuildFile; fileRef = 4DC2358C7D821A786391025B /* SDL_gesture.c */; }; + 28084123104729F20883021D /* SDL_keyboard.c in Sources */ = {isa = PBXBuildFile; fileRef = 3E70553911EE2F50403C2750 /* SDL_keyboard.c */; }; + 780602D4682E3A62216F0016 /* SDL_mouse.c in Sources */ = {isa = PBXBuildFile; fileRef = 131F008A780923790A8148F5 /* SDL_mouse.c */; }; + 72D51B6B14043ABF5B1A411E /* SDL_quit.c in Sources */ = {isa = PBXBuildFile; fileRef = 0D5177DC2F6F2EA974930BD1 /* SDL_quit.c */; }; + 6F9B6082102A6D4643966C33 /* SDL_touch.c in Sources */ = {isa = PBXBuildFile; fileRef = 5BD37C83179405632D7E4F15 /* SDL_touch.c */; }; + 1D095DEE6FBE62757B2F0414 /* SDL_windowevents.c in Sources */ = {isa = PBXBuildFile; fileRef = 31D33D8501A50DA7668C1AE8 /* SDL_windowevents.c */; }; + 6B4B439A34176F3D1BEA2D1C /* SDL_rwops.c in Sources */ = {isa = PBXBuildFile; fileRef = 3FCB452F4E155E2904C203BC /* SDL_rwops.c */; }; + 01924E3528BA6A184DDC4943 /* SDL_rwopsbundlesupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 1DC9038B20EA22A67E200719 /* SDL_rwopsbundlesupport.m */; }; + 0C176977081064BD51221009 /* SDL_sysfilesystem.m in Sources */ = {isa = PBXBuildFile; fileRef = 087154621C696D6C0AAD0059 /* SDL_sysfilesystem.m */; }; + 006441F36BCB7D18505F1A4D /* SDL_haptic.c in Sources */ = {isa = PBXBuildFile; fileRef = 1FC417354FD96DC41F5B42DC /* SDL_haptic.c */; }; + 5AF26187008556F10D163FC5 /* SDL_gamecontroller.c in Sources */ = {isa = PBXBuildFile; fileRef = 37A8332F73B83B981A656B57 /* SDL_gamecontroller.c */; }; + 44BF684B3269241B040C6774 /* SDL_joystick.c in Sources */ = {isa = PBXBuildFile; fileRef = 29925AA7203D1B7471C02E35 /* SDL_joystick.c */; }; + 4E1438BA6EAD299D3AB94EB1 /* SDLUIAccelerationDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 139C19587C553FAD2FF73925 /* SDLUIAccelerationDelegate.m */; }; + 40BB54235B2918C822911D19 /* SDL_sysjoystick.m in Sources */ = {isa = PBXBuildFile; fileRef = 478E79F80A440AB446AF36B9 /* SDL_sysjoystick.m */; }; + 07E7585B40781652700B7606 /* SDL_sysloadso.c in Sources */ = {isa = PBXBuildFile; fileRef = 76F16F6846EE3EE4233E6AE1 /* SDL_sysloadso.c */; }; + 4F3E10F7613037117EB3300A /* SDL_power.c in Sources */ = {isa = PBXBuildFile; fileRef = 2F734033596532395886740E /* SDL_power.c */; }; + 2AE467ED7C4202905BCB6C79 /* SDL_syspower.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D1E217E017A113B708F503E /* SDL_syspower.m */; }; + 0E381F293D34214B54782982 /* SDL_render.c in Sources */ = {isa = PBXBuildFile; fileRef = 16912E070440110F77DC211B /* SDL_render.c */; }; + 083E3C4A327E29FB535B1FAC /* SDL_yuv_mmx.c in Sources */ = {isa = PBXBuildFile; fileRef = 548B72177C19782D6FC8496A /* SDL_yuv_mmx.c */; }; + 02CB74104D79791B0990020E /* SDL_yuv_sw.c in Sources */ = {isa = PBXBuildFile; fileRef = 5BF21F823F875C6F29CF5D97 /* SDL_yuv_sw.c */; }; + 20634A5F593610E956065D3F /* SDL_render_gles.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B673C6607B5021010B16CC9 /* SDL_render_gles.c */; }; + 2F1314E84BAE322B27F703F2 /* SDL_render_gles2.c in Sources */ = {isa = PBXBuildFile; fileRef = 629E77A3760410B906A567F7 /* SDL_render_gles2.c */; }; + 368E5B8445CD1B8401E76AF7 /* SDL_shaders_gles2.c in Sources */ = {isa = PBXBuildFile; fileRef = 39A9217A0717288C2FDD590A /* SDL_shaders_gles2.c */; }; + 4FF037AE0F9B121821B90C8C /* SDL_blendfillrect.c in Sources */ = {isa = PBXBuildFile; fileRef = 0E360AE36AA6505462B64168 /* SDL_blendfillrect.c */; }; + 563963766931175F0B5F3FCA /* SDL_blendline.c in Sources */ = {isa = PBXBuildFile; fileRef = 55EB71951AB3082D65D67F09 /* SDL_blendline.c */; }; + 7C53362964DB1E582A4C716F /* SDL_blendpoint.c in Sources */ = {isa = PBXBuildFile; fileRef = 50F735292AAB4EC320785387 /* SDL_blendpoint.c */; }; + 603C084C405738731C060951 /* SDL_drawline.c in Sources */ = {isa = PBXBuildFile; fileRef = 7AC349DB515B566C59F7764B /* SDL_drawline.c */; }; + 706934E33ADB01A122ED0676 /* SDL_drawpoint.c in Sources */ = {isa = PBXBuildFile; fileRef = 6DB9260B44F4147A769475EE /* SDL_drawpoint.c */; }; + 74C87E3E4F2B36DC43CA2F35 /* SDL_render_sw.c in Sources */ = {isa = PBXBuildFile; fileRef = 34B301645FD51A5D52E63453 /* SDL_render_sw.c */; }; + 6A9A64C74B9954D106E54D6F /* SDL_rotate.c in Sources */ = {isa = PBXBuildFile; fileRef = 3DED4866613C4A255D8A0F6B /* SDL_rotate.c */; }; + 075360CC0A5E5C66484F62F8 /* SDL_getenv.c in Sources */ = {isa = PBXBuildFile; fileRef = 4DA248EA1F8A226552B17518 /* SDL_getenv.c */; }; + 61B2004548E76739034A0B78 /* SDL_iconv.c in Sources */ = {isa = PBXBuildFile; fileRef = 124A749436D01E322447405A /* SDL_iconv.c */; }; + 37365F82067E4DB5356104CF /* SDL_malloc.c in Sources */ = {isa = PBXBuildFile; fileRef = 206167DF0E633DDA38386DB5 /* SDL_malloc.c */; }; + 6B561A8B4BCB33CE38170C24 /* SDL_qsort.c in Sources */ = {isa = PBXBuildFile; fileRef = 46D10031516609805A120451 /* SDL_qsort.c */; }; + 1790071D15E22E8F30675AA7 /* SDL_stdlib.c in Sources */ = {isa = PBXBuildFile; fileRef = 226E7A9565696D1109C63D31 /* SDL_stdlib.c */; }; + 6B2D58972C715A1069D40036 /* SDL_string.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BDE72945D2B3C8B5CC33EBE /* SDL_string.c */; }; + 10B6394A4F192929471B48ED /* SDL_thread.c in Sources */ = {isa = PBXBuildFile; fileRef = 49C941ED33AE1BDF03E7434B /* SDL_thread.c */; }; + 70C725D9776C58540D4368C3 /* SDL_syscond.c in Sources */ = {isa = PBXBuildFile; fileRef = 12FE6FD85B19655C0B1D2812 /* SDL_syscond.c */; }; + 1E59768334D271C377111037 /* SDL_sysmutex.c in Sources */ = {isa = PBXBuildFile; fileRef = 7E8415AB34D72C681EA777BF /* SDL_sysmutex.c */; }; + 2E312CAB2C9A404935B337A2 /* SDL_syssem.c in Sources */ = {isa = PBXBuildFile; fileRef = 271A52A21FD42FD759442D0B /* SDL_syssem.c */; }; + 447639E03ED5458F38F23139 /* SDL_systhread.c in Sources */ = {isa = PBXBuildFile; fileRef = 7D6F38982BAA3DB678653A9F /* SDL_systhread.c */; }; + 5D755F5F0DCE0CEB291F6EC4 /* SDL_systls.c in Sources */ = {isa = PBXBuildFile; fileRef = 35E57FD90ED160CD3C377491 /* SDL_systls.c */; }; + 0FD97D8128F92AF83C09072F /* SDL_timer.c in Sources */ = {isa = PBXBuildFile; fileRef = 1C9238847CD26ECA3EF23E38 /* SDL_timer.c */; }; + 7E9B20A15917194A791D6122 /* SDL_systimer.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BD67DAA56A456B453590AE3 /* SDL_systimer.c */; }; + 7FD261822F3148596D7A6E81 /* SDL_RLEaccel.c in Sources */ = {isa = PBXBuildFile; fileRef = 2BED7C140FC627FF7D7F2111 /* SDL_RLEaccel.c */; }; + 321D4A6D588325BF5D0E62E1 /* SDL_blit.c in Sources */ = {isa = PBXBuildFile; fileRef = 4286099A6624526E4BC469B4 /* SDL_blit.c */; }; + 2F7F74AA6DAF7CB00E59199C /* SDL_blit_0.c in Sources */ = {isa = PBXBuildFile; fileRef = 6E7C17832B15293C3553792B /* SDL_blit_0.c */; }; + 73290E654357301424F432B1 /* SDL_blit_1.c in Sources */ = {isa = PBXBuildFile; fileRef = 0503247464D1023C4FB247FA /* SDL_blit_1.c */; }; + 17FB78FB43E649B00156410B /* SDL_blit_A.c in Sources */ = {isa = PBXBuildFile; fileRef = 0E4A1E7B3EC46D91001B0F6A /* SDL_blit_A.c */; }; + 39C216A67CCA38CA15754031 /* SDL_blit_N.c in Sources */ = {isa = PBXBuildFile; fileRef = 461134000974378462AC3D70 /* SDL_blit_N.c */; }; + 6013202F0BDE394B17CE5698 /* SDL_blit_auto.c in Sources */ = {isa = PBXBuildFile; fileRef = 51224FAB20BA286A4F4A26EA /* SDL_blit_auto.c */; }; + 320F2422684F48EA0D206F02 /* SDL_blit_copy.c in Sources */ = {isa = PBXBuildFile; fileRef = 50E8446963BA626B7FF02513 /* SDL_blit_copy.c */; }; + 61FB5617309F432E1410309D /* SDL_blit_slow.c in Sources */ = {isa = PBXBuildFile; fileRef = 3A507E5B122409D1793A6F51 /* SDL_blit_slow.c */; }; + 07285E0C6B925B40008D6193 /* SDL_bmp.c in Sources */ = {isa = PBXBuildFile; fileRef = 277B113418FB21F91656773C /* SDL_bmp.c */; }; + 6A3823080B0667B076D93DDC /* SDL_clipboard.c in Sources */ = {isa = PBXBuildFile; fileRef = 35956B79610472F945081D98 /* SDL_clipboard.c */; }; + 14B24A5E05466C0601B52CF5 /* SDL_egl.c in Sources */ = {isa = PBXBuildFile; fileRef = 37B95CA22ECA68A94CB125AF /* SDL_egl.c */; }; + 40BF75A3254E46D15E594007 /* SDL_fillrect.c in Sources */ = {isa = PBXBuildFile; fileRef = 685F5211064001EA47DC7960 /* SDL_fillrect.c */; }; + 592273B70BFD223B7B335E96 /* SDL_pixels.c in Sources */ = {isa = PBXBuildFile; fileRef = 18AE600B7ADC0AB061053C02 /* SDL_pixels.c */; }; + 2C713596449934B84BD85CB4 /* SDL_rect.c in Sources */ = {isa = PBXBuildFile; fileRef = 175F09A3458D5EC2267974C2 /* SDL_rect.c */; }; + 0E7006E626FE6E425E38676D /* SDL_shape.c in Sources */ = {isa = PBXBuildFile; fileRef = 72B36F81063916AA18A17BA5 /* SDL_shape.c */; }; + 57376C9B40EA4F4E156C180F /* SDL_stretch.c in Sources */ = {isa = PBXBuildFile; fileRef = 6C312B8C084B245B77693130 /* SDL_stretch.c */; }; + 5F8B28FB2EA35F2E632E66AD /* SDL_surface.c in Sources */ = {isa = PBXBuildFile; fileRef = 07245D04334F42C931AC3CE1 /* SDL_surface.c */; }; + 3E6A3B8261B06E180D03733B /* SDL_video.c in Sources */ = {isa = PBXBuildFile; fileRef = 21FC3C1F203577D81A1302FB /* SDL_video.c */; }; + 57804D5121E342FF245A186B /* SDL_nullevents.c in Sources */ = {isa = PBXBuildFile; fileRef = 6532624C22D14DA9369C597D /* SDL_nullevents.c */; }; + 1F472D4947857BB063A51388 /* SDL_nullframebuffer.c in Sources */ = {isa = PBXBuildFile; fileRef = 197510FC2BCD4AAC7399616A /* SDL_nullframebuffer.c */; }; + 0F2D74255E6022A45A613516 /* SDL_nullvideo.c in Sources */ = {isa = PBXBuildFile; fileRef = 5880707874BA78E878636D01 /* SDL_nullvideo.c */; }; + 70CE6C4B3C6E7D151DB82429 /* SDL_uikitappdelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D4044F73A5936AE039A2A8E /* SDL_uikitappdelegate.m */; }; + 310349292DC724FA46171246 /* SDL_uikitevents.m in Sources */ = {isa = PBXBuildFile; fileRef = 1EE2311851600F1A08837ED8 /* SDL_uikitevents.m */; }; + 3FB92B1C70C9598D38E5578C /* SDL_uikitmessagebox.m in Sources */ = {isa = PBXBuildFile; fileRef = 07A63C252BE013A210351305 /* SDL_uikitmessagebox.m */; }; + 4E1E1F6C0DF843B13C8A20B3 /* SDL_uikitmodes.m in Sources */ = {isa = PBXBuildFile; fileRef = 2907271017A61367037578CE /* SDL_uikitmodes.m */; }; + 5977233B255D34F5622A600D /* SDL_uikitopengles.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E8D13032A8242957A856C2E /* SDL_uikitopengles.m */; }; + 1CAE707A614455AC41541BD5 /* SDL_uikitopenglview.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DF2244C0A887AF25E802E0E /* SDL_uikitopenglview.m */; }; + 6A5875C8347A76EA3012019A /* SDL_uikitvideo.m in Sources */ = {isa = PBXBuildFile; fileRef = 0B4E59B175A135D425483E78 /* SDL_uikitvideo.m */; }; + 129705167B44645E147450D4 /* SDL_uikitview.m in Sources */ = {isa = PBXBuildFile; fileRef = 616337D37E51262B02E67C2D /* SDL_uikitview.m */; }; + 43C5739551F76C1A1F8C4115 /* SDL_uikitviewcontroller.m in Sources */ = {isa = PBXBuildFile; fileRef = 7BEA5F9878A47E063CF465B2 /* SDL_uikitviewcontroller.m */; }; + 4E027E396E7609FB7E207F75 /* SDL_uikitwindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 62E72E4E269E652A451851E0 /* SDL_uikitwindow.m */; }; + 326B2A134A3F743840A87D77 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6FC23087098E4A46760575ED /* AudioToolbox.framework */; }; + 79E346732A181E9E1E9D01D3 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 219B4BBB7728655E071C76E8 /* QuartzCore.framework */; }; + 551857D24E5F619C5E366560 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4F2242B8754F17D126471E4F /* OpenGLES.framework */; }; + 50590A581DD405AD26553B45 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 184359E00F2E2484050B5639 /* CoreGraphics.framework */; }; + 4C5A5947489F49780FA80B81 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43D63AC169FD00D664F81586 /* UIKit.framework */; }; + 40AC6E426F4057FA1A2C4290 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6D1F38124D655A821B1E79D9 /* Foundation.framework */; }; + 6AA3296957470540360C589F /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 07327F877E212C9043452002 /* CoreAudio.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 1754411A221209B96C327B00 /* SDL.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL.c"; path = "../../../src/SDL.c"; sourceTree = ""; }; + 50127CF143E2409B00E82007 /* SDL_assert.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_assert.c"; path = "../../../src/SDL_assert.c"; sourceTree = ""; }; + 60C132130BCD5BDC6AC15946 /* SDL_assert_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_assert_c.h"; path = "../../../src/SDL_assert_c.h"; sourceTree = ""; }; + 3E6760E518A1332F0C066AEE /* SDL_error.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_error.c"; path = "../../../src/SDL_error.c"; sourceTree = ""; }; + 188702356BD1063054A73BCA /* SDL_error_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_error_c.h"; path = "../../../src/SDL_error_c.h"; sourceTree = ""; }; + 61943EC860253DA55758786D /* SDL_hints.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_hints.c"; path = "../../../src/SDL_hints.c"; sourceTree = ""; }; + 24541855198526E106FB61C9 /* SDL_log.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_log.c"; path = "../../../src/SDL_log.c"; sourceTree = ""; }; + 1FB5255373F013CC70D8002D /* SDL_atomic.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_atomic.c"; path = "../../../src/atomic/SDL_atomic.c"; sourceTree = ""; }; + 2137310F68926D6D476C07A1 /* SDL_spinlock.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_spinlock.c"; path = "../../../src/atomic/SDL_spinlock.c"; sourceTree = ""; }; + 002C4E540DF5538435BC514A /* SDL_audio.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_audio.c"; path = "../../../src/audio/SDL_audio.c"; sourceTree = ""; }; + 269A7458635E34682A053C5E /* SDL_audio_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_audio_c.h"; path = "../../../src/audio/SDL_audio_c.h"; sourceTree = ""; }; + 4DBB70D75469728B342373E8 /* SDL_audiocvt.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_audiocvt.c"; path = "../../../src/audio/SDL_audiocvt.c"; sourceTree = ""; }; + 48886D482B5239D2429E422D /* SDL_audiodev.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_audiodev.c"; path = "../../../src/audio/SDL_audiodev.c"; sourceTree = ""; }; + 227E138737440F101016545F /* SDL_audiodev_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_audiodev_c.h"; path = "../../../src/audio/SDL_audiodev_c.h"; sourceTree = ""; }; + 5C3C744F22823D470BED10D6 /* SDL_audiomem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_audiomem.h"; path = "../../../src/audio/SDL_audiomem.h"; sourceTree = ""; }; + 0F175E65628D4137386B7A6D /* SDL_audiotypecvt.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_audiotypecvt.c"; path = "../../../src/audio/SDL_audiotypecvt.c"; sourceTree = ""; }; + 77537CFB490A3599736F3830 /* SDL_mixer.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_mixer.c"; path = "../../../src/audio/SDL_mixer.c"; sourceTree = ""; }; + 591062475F93492D625F7D3B /* SDL_sysaudio.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_sysaudio.h"; path = "../../../src/audio/SDL_sysaudio.h"; sourceTree = ""; }; + 5F503D9B3C7B4D2E09215A0A /* SDL_wave.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_wave.c"; path = "../../../src/audio/SDL_wave.c"; sourceTree = ""; }; + 627D165130C55DBB44F4177D /* SDL_wave.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_wave.h"; path = "../../../src/audio/SDL_wave.h"; sourceTree = ""; }; + 785801FB211321AB70091ABE /* SDL_coreaudio.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_coreaudio.c"; path = "../../../src/audio/coreaudio/SDL_coreaudio.c"; sourceTree = ""; }; + 49A72F922CF1399C415C00CD /* SDL_coreaudio.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_coreaudio.h"; path = "../../../src/audio/coreaudio/SDL_coreaudio.h"; sourceTree = ""; }; + 4DC41A2B14C11D2837432538 /* SDL_diskaudio.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_diskaudio.c"; path = "../../../src/audio/disk/SDL_diskaudio.c"; sourceTree = ""; }; + 521D08EF11EB69A96AA46ED4 /* SDL_diskaudio.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_diskaudio.h"; path = "../../../src/audio/disk/SDL_diskaudio.h"; sourceTree = ""; }; + 09BB72B17B0C531926C153F5 /* SDL_dummyaudio.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_dummyaudio.c"; path = "../../../src/audio/dummy/SDL_dummyaudio.c"; sourceTree = ""; }; + 276C60536A9304A5146B1268 /* SDL_dummyaudio.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_dummyaudio.h"; path = "../../../src/audio/dummy/SDL_dummyaudio.h"; sourceTree = ""; }; + 215A41140CF741414DF53790 /* SDL_cpuinfo.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_cpuinfo.c"; path = "../../../src/cpuinfo/SDL_cpuinfo.c"; sourceTree = ""; }; + 24704CFC41E52BEC136D61EF /* SDL_clipboardevents.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_clipboardevents.c"; path = "../../../src/events/SDL_clipboardevents.c"; sourceTree = ""; }; + 40F9257146A1113B5D295492 /* SDL_clipboardevents_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_clipboardevents_c.h"; path = "../../../src/events/SDL_clipboardevents_c.h"; sourceTree = ""; }; + 464D7C157FD7281A65677EB6 /* SDL_dropevents.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_dropevents.c"; path = "../../../src/events/SDL_dropevents.c"; sourceTree = ""; }; + 7FD4632B48A909616DF97F07 /* SDL_dropevents_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_dropevents_c.h"; path = "../../../src/events/SDL_dropevents_c.h"; sourceTree = ""; }; + 2A4321B70FCC1BF02A4B3380 /* SDL_events.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_events.c"; path = "../../../src/events/SDL_events.c"; sourceTree = ""; }; + 643F6B011BA52B760BDD1942 /* SDL_events_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_events_c.h"; path = "../../../src/events/SDL_events_c.h"; sourceTree = ""; }; + 4DC2358C7D821A786391025B /* SDL_gesture.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_gesture.c"; path = "../../../src/events/SDL_gesture.c"; sourceTree = ""; }; + 31144B144A1A7666503F77F4 /* SDL_gesture_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_gesture_c.h"; path = "../../../src/events/SDL_gesture_c.h"; sourceTree = ""; }; + 3E70553911EE2F50403C2750 /* SDL_keyboard.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_keyboard.c"; path = "../../../src/events/SDL_keyboard.c"; sourceTree = ""; }; + 6D484FBC6CD8631039835F29 /* SDL_keyboard_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_keyboard_c.h"; path = "../../../src/events/SDL_keyboard_c.h"; sourceTree = ""; }; + 131F008A780923790A8148F5 /* SDL_mouse.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_mouse.c"; path = "../../../src/events/SDL_mouse.c"; sourceTree = ""; }; + 5E6E36D918D75AAB28EA359D /* SDL_mouse_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_mouse_c.h"; path = "../../../src/events/SDL_mouse_c.h"; sourceTree = ""; }; + 0D5177DC2F6F2EA974930BD1 /* SDL_quit.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_quit.c"; path = "../../../src/events/SDL_quit.c"; sourceTree = ""; }; + 25307DC4784F0E2F3FF45EEF /* SDL_sysevents.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_sysevents.h"; path = "../../../src/events/SDL_sysevents.h"; sourceTree = ""; }; + 5BD37C83179405632D7E4F15 /* SDL_touch.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_touch.c"; path = "../../../src/events/SDL_touch.c"; sourceTree = ""; }; + 2C27609311E17D35413538AC /* SDL_touch_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_touch_c.h"; path = "../../../src/events/SDL_touch_c.h"; sourceTree = ""; }; + 31D33D8501A50DA7668C1AE8 /* SDL_windowevents.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_windowevents.c"; path = "../../../src/events/SDL_windowevents.c"; sourceTree = ""; }; + 6B44408116777C04046D47E0 /* SDL_windowevents_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_windowevents_c.h"; path = "../../../src/events/SDL_windowevents_c.h"; sourceTree = ""; }; + 48BD26A31962045F1EC334D7 /* blank_cursor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "blank_cursor.h"; path = "../../../src/events/blank_cursor.h"; sourceTree = ""; }; + 46173CA331D053443D626F46 /* default_cursor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "default_cursor.h"; path = "../../../src/events/default_cursor.h"; sourceTree = ""; }; + 7C5D7E131FD3751B40AF3A66 /* scancodes_darwin.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "scancodes_darwin.h"; path = "../../../src/events/scancodes_darwin.h"; sourceTree = ""; }; + 1F5C562746B51D5B737F4DB4 /* scancodes_linux.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "scancodes_linux.h"; path = "../../../src/events/scancodes_linux.h"; sourceTree = ""; }; + 00192A7A384C139278B97974 /* scancodes_windows.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "scancodes_windows.h"; path = "../../../src/events/scancodes_windows.h"; sourceTree = ""; }; + 5766257411BB400D357661D8 /* scancodes_xfree86.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "scancodes_xfree86.h"; path = "../../../src/events/scancodes_xfree86.h"; sourceTree = ""; }; + 3FCB452F4E155E2904C203BC /* SDL_rwops.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_rwops.c"; path = "../../../src/file/SDL_rwops.c"; sourceTree = ""; }; + 49E1087F5B134DC2209810BD /* SDL_rwopsbundlesupport.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_rwopsbundlesupport.h"; path = "../../../src/file/cocoa/SDL_rwopsbundlesupport.h"; sourceTree = ""; }; + 1DC9038B20EA22A67E200719 /* SDL_rwopsbundlesupport.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "SDL_rwopsbundlesupport.m"; path = "../../../src/file/cocoa/SDL_rwopsbundlesupport.m"; sourceTree = ""; }; + 087154621C696D6C0AAD0059 /* SDL_sysfilesystem.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "SDL_sysfilesystem.m"; path = "../../../src/filesystem/cocoa/SDL_sysfilesystem.m"; sourceTree = ""; }; + 1FC417354FD96DC41F5B42DC /* SDL_haptic.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_haptic.c"; path = "../../../src/haptic/SDL_haptic.c"; sourceTree = ""; }; + 69CB1CC76962285D1A1F08D8 /* SDL_haptic_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_haptic_c.h"; path = "../../../src/haptic/SDL_haptic_c.h"; sourceTree = ""; }; + 1F60634F6E5E60C80D1E38B0 /* SDL_syshaptic.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_syshaptic.h"; path = "../../../src/haptic/SDL_syshaptic.h"; sourceTree = ""; }; + 37A8332F73B83B981A656B57 /* SDL_gamecontroller.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_gamecontroller.c"; path = "../../../src/joystick/SDL_gamecontroller.c"; sourceTree = ""; }; + 284F7BF263DB56DB568B73C3 /* SDL_gamecontrollerdb.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_gamecontrollerdb.h"; path = "../../../src/joystick/SDL_gamecontrollerdb.h"; sourceTree = ""; }; + 29925AA7203D1B7471C02E35 /* SDL_joystick.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_joystick.c"; path = "../../../src/joystick/SDL_joystick.c"; sourceTree = ""; }; + 1C8B023E6CDF28562D183DE6 /* SDL_joystick_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_joystick_c.h"; path = "../../../src/joystick/SDL_joystick_c.h"; sourceTree = ""; }; + 498C191A334E46FE00116849 /* SDL_sysjoystick.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_sysjoystick.h"; path = "../../../src/joystick/SDL_sysjoystick.h"; sourceTree = ""; }; + 179431F6323964D836A3261C /* SDLUIAccelerationDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDLUIAccelerationDelegate.h"; path = "../../../src/joystick/iphoneos/SDLUIAccelerationDelegate.h"; sourceTree = ""; }; + 139C19587C553FAD2FF73925 /* SDLUIAccelerationDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "SDLUIAccelerationDelegate.m"; path = "../../../src/joystick/iphoneos/SDLUIAccelerationDelegate.m"; sourceTree = ""; }; + 478E79F80A440AB446AF36B9 /* SDL_sysjoystick.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "SDL_sysjoystick.m"; path = "../../../src/joystick/iphoneos/SDL_sysjoystick.m"; sourceTree = ""; }; + 76F16F6846EE3EE4233E6AE1 /* SDL_sysloadso.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_sysloadso.c"; path = "../../../src/loadso/dlopen/SDL_sysloadso.c"; sourceTree = ""; }; + 2F734033596532395886740E /* SDL_power.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_power.c"; path = "../../../src/power/SDL_power.c"; sourceTree = ""; }; + 19386AFA6A1935321C554BEF /* SDL_syspower.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_syspower.h"; path = "../../../src/power/uikit/SDL_syspower.h"; sourceTree = ""; }; + 4D1E217E017A113B708F503E /* SDL_syspower.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "SDL_syspower.m"; path = "../../../src/power/uikit/SDL_syspower.m"; sourceTree = ""; }; + 16912E070440110F77DC211B /* SDL_render.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_render.c"; path = "../../../src/render/SDL_render.c"; sourceTree = ""; }; + 2AFA351043F538CF25113C9C /* SDL_sysrender.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_sysrender.h"; path = "../../../src/render/SDL_sysrender.h"; sourceTree = ""; }; + 548B72177C19782D6FC8496A /* SDL_yuv_mmx.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_yuv_mmx.c"; path = "../../../src/render/SDL_yuv_mmx.c"; sourceTree = ""; }; + 5BF21F823F875C6F29CF5D97 /* SDL_yuv_sw.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_yuv_sw.c"; path = "../../../src/render/SDL_yuv_sw.c"; sourceTree = ""; }; + 76427E03117A09D1265B3125 /* SDL_yuv_sw_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_yuv_sw_c.h"; path = "../../../src/render/SDL_yuv_sw_c.h"; sourceTree = ""; }; + 231478CC3D3B196136187054 /* mmx.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "mmx.h"; path = "../../../src/render/mmx.h"; sourceTree = ""; }; + 52F708CC10F906D324300533 /* SDL_glesfuncs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_glesfuncs.h"; path = "../../../src/render/opengles/SDL_glesfuncs.h"; sourceTree = ""; }; + 7B673C6607B5021010B16CC9 /* SDL_render_gles.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_render_gles.c"; path = "../../../src/render/opengles/SDL_render_gles.c"; sourceTree = ""; }; + 57FF40047C945F1900A03BE9 /* SDL_gles2funcs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_gles2funcs.h"; path = "../../../src/render/opengles2/SDL_gles2funcs.h"; sourceTree = ""; }; + 629E77A3760410B906A567F7 /* SDL_render_gles2.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_render_gles2.c"; path = "../../../src/render/opengles2/SDL_render_gles2.c"; sourceTree = ""; }; + 39A9217A0717288C2FDD590A /* SDL_shaders_gles2.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_shaders_gles2.c"; path = "../../../src/render/opengles2/SDL_shaders_gles2.c"; sourceTree = ""; }; + 09D37FD4681175A15E950EF8 /* SDL_shaders_gles2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_shaders_gles2.h"; path = "../../../src/render/opengles2/SDL_shaders_gles2.h"; sourceTree = ""; }; + 0E360AE36AA6505462B64168 /* SDL_blendfillrect.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_blendfillrect.c"; path = "../../../src/render/software/SDL_blendfillrect.c"; sourceTree = ""; }; + 70E82FAA02A2183700E80C3A /* SDL_blendfillrect.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_blendfillrect.h"; path = "../../../src/render/software/SDL_blendfillrect.h"; sourceTree = ""; }; + 55EB71951AB3082D65D67F09 /* SDL_blendline.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_blendline.c"; path = "../../../src/render/software/SDL_blendline.c"; sourceTree = ""; }; + 1A271214195266D879360116 /* SDL_blendline.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_blendline.h"; path = "../../../src/render/software/SDL_blendline.h"; sourceTree = ""; }; + 50F735292AAB4EC320785387 /* SDL_blendpoint.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_blendpoint.c"; path = "../../../src/render/software/SDL_blendpoint.c"; sourceTree = ""; }; + 57132F4C54CC47953B063C70 /* SDL_blendpoint.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_blendpoint.h"; path = "../../../src/render/software/SDL_blendpoint.h"; sourceTree = ""; }; + 1E477D245E114B547C4C7BE5 /* SDL_draw.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_draw.h"; path = "../../../src/render/software/SDL_draw.h"; sourceTree = ""; }; + 7AC349DB515B566C59F7764B /* SDL_drawline.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_drawline.c"; path = "../../../src/render/software/SDL_drawline.c"; sourceTree = ""; }; + 59C210E567CC206A2AA159D5 /* SDL_drawline.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_drawline.h"; path = "../../../src/render/software/SDL_drawline.h"; sourceTree = ""; }; + 6DB9260B44F4147A769475EE /* SDL_drawpoint.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_drawpoint.c"; path = "../../../src/render/software/SDL_drawpoint.c"; sourceTree = ""; }; + 49293A57413D29DE595C3EF0 /* SDL_drawpoint.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_drawpoint.h"; path = "../../../src/render/software/SDL_drawpoint.h"; sourceTree = ""; }; + 34B301645FD51A5D52E63453 /* SDL_render_sw.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_render_sw.c"; path = "../../../src/render/software/SDL_render_sw.c"; sourceTree = ""; }; + 6DA712C36240711B385A22A7 /* SDL_render_sw_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_render_sw_c.h"; path = "../../../src/render/software/SDL_render_sw_c.h"; sourceTree = ""; }; + 3DED4866613C4A255D8A0F6B /* SDL_rotate.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_rotate.c"; path = "../../../src/render/software/SDL_rotate.c"; sourceTree = ""; }; + 52B710D533A60CC36F95312A /* SDL_rotate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_rotate.h"; path = "../../../src/render/software/SDL_rotate.h"; sourceTree = ""; }; + 4DA248EA1F8A226552B17518 /* SDL_getenv.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_getenv.c"; path = "../../../src/stdlib/SDL_getenv.c"; sourceTree = ""; }; + 124A749436D01E322447405A /* SDL_iconv.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_iconv.c"; path = "../../../src/stdlib/SDL_iconv.c"; sourceTree = ""; }; + 206167DF0E633DDA38386DB5 /* SDL_malloc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_malloc.c"; path = "../../../src/stdlib/SDL_malloc.c"; sourceTree = ""; }; + 46D10031516609805A120451 /* SDL_qsort.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_qsort.c"; path = "../../../src/stdlib/SDL_qsort.c"; sourceTree = ""; }; + 226E7A9565696D1109C63D31 /* SDL_stdlib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_stdlib.c"; path = "../../../src/stdlib/SDL_stdlib.c"; sourceTree = ""; }; + 3BDE72945D2B3C8B5CC33EBE /* SDL_string.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_string.c"; path = "../../../src/stdlib/SDL_string.c"; sourceTree = ""; }; + 4F7E7F946C5028E168DA5B8C /* SDL_systhread.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_systhread.h"; path = "../../../src/thread/SDL_systhread.h"; sourceTree = ""; }; + 49C941ED33AE1BDF03E7434B /* SDL_thread.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_thread.c"; path = "../../../src/thread/SDL_thread.c"; sourceTree = ""; }; + 4155456918EF0F9259041949 /* SDL_thread_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_thread_c.h"; path = "../../../src/thread/SDL_thread_c.h"; sourceTree = ""; }; + 12FE6FD85B19655C0B1D2812 /* SDL_syscond.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_syscond.c"; path = "../../../src/thread/pthread/SDL_syscond.c"; sourceTree = ""; }; + 7E8415AB34D72C681EA777BF /* SDL_sysmutex.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_sysmutex.c"; path = "../../../src/thread/pthread/SDL_sysmutex.c"; sourceTree = ""; }; + 18B754CF16E064A92C877A6D /* SDL_sysmutex_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_sysmutex_c.h"; path = "../../../src/thread/pthread/SDL_sysmutex_c.h"; sourceTree = ""; }; + 271A52A21FD42FD759442D0B /* SDL_syssem.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_syssem.c"; path = "../../../src/thread/pthread/SDL_syssem.c"; sourceTree = ""; }; + 7D6F38982BAA3DB678653A9F /* SDL_systhread.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_systhread.c"; path = "../../../src/thread/pthread/SDL_systhread.c"; sourceTree = ""; }; + 462959C3319A7F2C5F4E366F /* SDL_systhread_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_systhread_c.h"; path = "../../../src/thread/pthread/SDL_systhread_c.h"; sourceTree = ""; }; + 35E57FD90ED160CD3C377491 /* SDL_systls.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_systls.c"; path = "../../../src/thread/pthread/SDL_systls.c"; sourceTree = ""; }; + 1C9238847CD26ECA3EF23E38 /* SDL_timer.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_timer.c"; path = "../../../src/timer/SDL_timer.c"; sourceTree = ""; }; + 3FBF321321F445AC252324AB /* SDL_timer_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_timer_c.h"; path = "../../../src/timer/SDL_timer_c.h"; sourceTree = ""; }; + 3BD67DAA56A456B453590AE3 /* SDL_systimer.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_systimer.c"; path = "../../../src/timer/unix/SDL_systimer.c"; sourceTree = ""; }; + 2BED7C140FC627FF7D7F2111 /* SDL_RLEaccel.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_RLEaccel.c"; path = "../../../src/video/SDL_RLEaccel.c"; sourceTree = ""; }; + 009C17A22716434F146A7B11 /* SDL_RLEaccel_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_RLEaccel_c.h"; path = "../../../src/video/SDL_RLEaccel_c.h"; sourceTree = ""; }; + 4286099A6624526E4BC469B4 /* SDL_blit.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_blit.c"; path = "../../../src/video/SDL_blit.c"; sourceTree = ""; }; + 2CF12C34447B00E75E8F31E0 /* SDL_blit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_blit.h"; path = "../../../src/video/SDL_blit.h"; sourceTree = ""; }; + 6E7C17832B15293C3553792B /* SDL_blit_0.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_blit_0.c"; path = "../../../src/video/SDL_blit_0.c"; sourceTree = ""; }; + 0503247464D1023C4FB247FA /* SDL_blit_1.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_blit_1.c"; path = "../../../src/video/SDL_blit_1.c"; sourceTree = ""; }; + 0E4A1E7B3EC46D91001B0F6A /* SDL_blit_A.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_blit_A.c"; path = "../../../src/video/SDL_blit_A.c"; sourceTree = ""; }; + 461134000974378462AC3D70 /* SDL_blit_N.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_blit_N.c"; path = "../../../src/video/SDL_blit_N.c"; sourceTree = ""; }; + 51224FAB20BA286A4F4A26EA /* SDL_blit_auto.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_blit_auto.c"; path = "../../../src/video/SDL_blit_auto.c"; sourceTree = ""; }; + 4E4E0D300BDC40AB3A9A5D3E /* SDL_blit_auto.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_blit_auto.h"; path = "../../../src/video/SDL_blit_auto.h"; sourceTree = ""; }; + 50E8446963BA626B7FF02513 /* SDL_blit_copy.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_blit_copy.c"; path = "../../../src/video/SDL_blit_copy.c"; sourceTree = ""; }; + 10D26BDC6E335CB63F5E45E6 /* SDL_blit_copy.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_blit_copy.h"; path = "../../../src/video/SDL_blit_copy.h"; sourceTree = ""; }; + 3A507E5B122409D1793A6F51 /* SDL_blit_slow.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_blit_slow.c"; path = "../../../src/video/SDL_blit_slow.c"; sourceTree = ""; }; + 3BF64A5405261FF320EF4B06 /* SDL_blit_slow.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_blit_slow.h"; path = "../../../src/video/SDL_blit_slow.h"; sourceTree = ""; }; + 277B113418FB21F91656773C /* SDL_bmp.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_bmp.c"; path = "../../../src/video/SDL_bmp.c"; sourceTree = ""; }; + 35956B79610472F945081D98 /* SDL_clipboard.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_clipboard.c"; path = "../../../src/video/SDL_clipboard.c"; sourceTree = ""; }; + 37B95CA22ECA68A94CB125AF /* SDL_egl.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_egl.c"; path = "../../../src/video/SDL_egl.c"; sourceTree = ""; }; + 27CF26C22A0E31BD125D1B74 /* SDL_egl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_egl.h"; path = "../../../src/video/SDL_egl.h"; sourceTree = ""; }; + 685F5211064001EA47DC7960 /* SDL_fillrect.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_fillrect.c"; path = "../../../src/video/SDL_fillrect.c"; sourceTree = ""; }; + 18AE600B7ADC0AB061053C02 /* SDL_pixels.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_pixels.c"; path = "../../../src/video/SDL_pixels.c"; sourceTree = ""; }; + 4C73501403330BED7CB96B68 /* SDL_pixels_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_pixels_c.h"; path = "../../../src/video/SDL_pixels_c.h"; sourceTree = ""; }; + 175F09A3458D5EC2267974C2 /* SDL_rect.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_rect.c"; path = "../../../src/video/SDL_rect.c"; sourceTree = ""; }; + 3BBF186A5E9B294039F257D1 /* SDL_rect_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_rect_c.h"; path = "../../../src/video/SDL_rect_c.h"; sourceTree = ""; }; + 72B36F81063916AA18A17BA5 /* SDL_shape.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_shape.c"; path = "../../../src/video/SDL_shape.c"; sourceTree = ""; }; + 366D314A0A131064291600BA /* SDL_shape_internals.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_shape_internals.h"; path = "../../../src/video/SDL_shape_internals.h"; sourceTree = ""; }; + 6C312B8C084B245B77693130 /* SDL_stretch.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_stretch.c"; path = "../../../src/video/SDL_stretch.c"; sourceTree = ""; }; + 07245D04334F42C931AC3CE1 /* SDL_surface.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_surface.c"; path = "../../../src/video/SDL_surface.c"; sourceTree = ""; }; + 070241285B2D6B36492D5457 /* SDL_sysvideo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_sysvideo.h"; path = "../../../src/video/SDL_sysvideo.h"; sourceTree = ""; }; + 21FC3C1F203577D81A1302FB /* SDL_video.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_video.c"; path = "../../../src/video/SDL_video.c"; sourceTree = ""; }; + 6532624C22D14DA9369C597D /* SDL_nullevents.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_nullevents.c"; path = "../../../src/video/dummy/SDL_nullevents.c"; sourceTree = ""; }; + 49CE757D222D75AE205620BC /* SDL_nullevents_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_nullevents_c.h"; path = "../../../src/video/dummy/SDL_nullevents_c.h"; sourceTree = ""; }; + 197510FC2BCD4AAC7399616A /* SDL_nullframebuffer.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_nullframebuffer.c"; path = "../../../src/video/dummy/SDL_nullframebuffer.c"; sourceTree = ""; }; + 4F72641F547F170D07683E8B /* SDL_nullframebuffer_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_nullframebuffer_c.h"; path = "../../../src/video/dummy/SDL_nullframebuffer_c.h"; sourceTree = ""; }; + 5880707874BA78E878636D01 /* SDL_nullvideo.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_nullvideo.c"; path = "../../../src/video/dummy/SDL_nullvideo.c"; sourceTree = ""; }; + 64F53F5D2887516B711607D5 /* SDL_nullvideo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_nullvideo.h"; path = "../../../src/video/dummy/SDL_nullvideo.h"; sourceTree = ""; }; + 6E222CB5528B63CA041C59B6 /* SDL_uikitappdelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_uikitappdelegate.h"; path = "../../../src/video/uikit/SDL_uikitappdelegate.h"; sourceTree = ""; }; + 3D4044F73A5936AE039A2A8E /* SDL_uikitappdelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "SDL_uikitappdelegate.m"; path = "../../../src/video/uikit/SDL_uikitappdelegate.m"; sourceTree = ""; }; + 190F328C1F6401443A4A0685 /* SDL_uikitevents.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_uikitevents.h"; path = "../../../src/video/uikit/SDL_uikitevents.h"; sourceTree = ""; }; + 1EE2311851600F1A08837ED8 /* SDL_uikitevents.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "SDL_uikitevents.m"; path = "../../../src/video/uikit/SDL_uikitevents.m"; sourceTree = ""; }; + 53FB0CFC152E124918043BEC /* SDL_uikitmessagebox.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_uikitmessagebox.h"; path = "../../../src/video/uikit/SDL_uikitmessagebox.h"; sourceTree = ""; }; + 07A63C252BE013A210351305 /* SDL_uikitmessagebox.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "SDL_uikitmessagebox.m"; path = "../../../src/video/uikit/SDL_uikitmessagebox.m"; sourceTree = ""; }; + 573E55E4299F103543007289 /* SDL_uikitmodes.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_uikitmodes.h"; path = "../../../src/video/uikit/SDL_uikitmodes.h"; sourceTree = ""; }; + 2907271017A61367037578CE /* SDL_uikitmodes.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "SDL_uikitmodes.m"; path = "../../../src/video/uikit/SDL_uikitmodes.m"; sourceTree = ""; }; + 015A61DE6EB1609B64B01C22 /* SDL_uikitopengles.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_uikitopengles.h"; path = "../../../src/video/uikit/SDL_uikitopengles.h"; sourceTree = ""; }; + 7E8D13032A8242957A856C2E /* SDL_uikitopengles.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "SDL_uikitopengles.m"; path = "../../../src/video/uikit/SDL_uikitopengles.m"; sourceTree = ""; }; + 0F9E64C82F665C2E7BD01FCB /* SDL_uikitopenglview.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_uikitopenglview.h"; path = "../../../src/video/uikit/SDL_uikitopenglview.h"; sourceTree = ""; }; + 7DF2244C0A887AF25E802E0E /* SDL_uikitopenglview.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "SDL_uikitopenglview.m"; path = "../../../src/video/uikit/SDL_uikitopenglview.m"; sourceTree = ""; }; + 6CDB3D3B70AF1CF137864B00 /* SDL_uikitvideo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_uikitvideo.h"; path = "../../../src/video/uikit/SDL_uikitvideo.h"; sourceTree = ""; }; + 0B4E59B175A135D425483E78 /* SDL_uikitvideo.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "SDL_uikitvideo.m"; path = "../../../src/video/uikit/SDL_uikitvideo.m"; sourceTree = ""; }; + 5B3B2D1424FD774713796DE9 /* SDL_uikitview.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_uikitview.h"; path = "../../../src/video/uikit/SDL_uikitview.h"; sourceTree = ""; }; + 616337D37E51262B02E67C2D /* SDL_uikitview.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "SDL_uikitview.m"; path = "../../../src/video/uikit/SDL_uikitview.m"; sourceTree = ""; }; + 0F1762A82A756D6244EB2C95 /* SDL_uikitviewcontroller.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_uikitviewcontroller.h"; path = "../../../src/video/uikit/SDL_uikitviewcontroller.h"; sourceTree = ""; }; + 7BEA5F9878A47E063CF465B2 /* SDL_uikitviewcontroller.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "SDL_uikitviewcontroller.m"; path = "../../../src/video/uikit/SDL_uikitviewcontroller.m"; sourceTree = ""; }; + 502A08464E9957AC6FBE5D77 /* SDL_uikitwindow.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_uikitwindow.h"; path = "../../../src/video/uikit/SDL_uikitwindow.h"; sourceTree = ""; }; + 62E72E4E269E652A451851E0 /* SDL_uikitwindow.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "SDL_uikitwindow.m"; path = "../../../src/video/uikit/SDL_uikitwindow.m"; sourceTree = ""; }; + 04B10F6A0E333D4505B26DB7 /* keyinfotable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "keyinfotable.h"; path = "../../../src/video/uikit/keyinfotable.h"; sourceTree = ""; }; + 6FC23087098E4A46760575ED /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "System/Library/Frameworks/AudioToolbox.framework"; sourceTree = "SDKROOT"; }; + 219B4BBB7728655E071C76E8 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "QuartzCore.framework"; path = "System/Library/Frameworks/QuartzCore.framework"; sourceTree = "SDKROOT"; }; + 4F2242B8754F17D126471E4F /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGLES.framework"; path = "System/Library/Frameworks/OpenGLES.framework"; sourceTree = "SDKROOT"; }; + 184359E00F2E2484050B5639 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreGraphics.framework"; path = "System/Library/Frameworks/CoreGraphics.framework"; sourceTree = "SDKROOT"; }; + 43D63AC169FD00D664F81586 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "UIKit.framework"; path = "System/Library/Frameworks/UIKit.framework"; sourceTree = "SDKROOT"; }; + 6D1F38124D655A821B1E79D9 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Foundation.framework"; path = "System/Library/Frameworks/Foundation.framework"; sourceTree = "SDKROOT"; }; + 07327F877E212C9043452002 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "System/Library/Frameworks/CoreAudio.framework"; sourceTree = "SDKROOT"; }; + 224D2C85085A7BA60E532655 /* libSDL2.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libSDL2.a"; path = "libSDL2.a"; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 359429BC7E1B486B000B7D61 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 326B2A134A3F743840A87D77 /* AudioToolbox.framework in Frameworks */, + 79E346732A181E9E1E9D01D3 /* QuartzCore.framework in Frameworks */, + 551857D24E5F619C5E366560 /* OpenGLES.framework in Frameworks */, + 50590A581DD405AD26553B45 /* CoreGraphics.framework in Frameworks */, + 4C5A5947489F49780FA80B81 /* UIKit.framework in Frameworks */, + 40AC6E426F4057FA1A2C4290 /* Foundation.framework in Frameworks */, + 6AA3296957470540360C589F /* CoreAudio.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 4D384FDD4DB948F011877462 /* SDL2 */ = { + isa = PBXGroup; + children = ( + 725875C016BC22152CFA7352 /* src */, + 44E92F93140F256A5F4A142C /* Frameworks */, + 5A293C963BB92FA73DBE3E9F /* Products */, + ); + name = "SDL2"; + sourceTree = ""; + }; + 725875C016BC22152CFA7352 /* src */ = { + isa = PBXGroup; + children = ( + 1754411A221209B96C327B00 /* SDL.c */, + 50127CF143E2409B00E82007 /* SDL_assert.c */, + 60C132130BCD5BDC6AC15946 /* SDL_assert_c.h */, + 3E6760E518A1332F0C066AEE /* SDL_error.c */, + 188702356BD1063054A73BCA /* SDL_error_c.h */, + 61943EC860253DA55758786D /* SDL_hints.c */, + 24541855198526E106FB61C9 /* SDL_log.c */, + 465854AE0B7D6BCC29C821FD /* atomic */, + 1AAF5D2154A45B6822AB1DBF /* audio */, + 1BFC763271964B3E0F9E758B /* cpuinfo */, + 1C37183E3A1D71C9540864FF /* events */, + 304934B37B9230F931143743 /* file */, + 70DF00DE18543F7125AB2259 /* filesystem */, + 5B2C60921F756E8903387111 /* haptic */, + 422E17B63A2413892E374290 /* joystick */, + 06D541E747C777584C625E65 /* loadso */, + 0A8138B97C9215E5019C2EB0 /* power */, + 2D2F7B977A0F7881060138A9 /* render */, + 7D734A5B2A4343654716365F /* stdlib */, + 059C63C262A80AE81A0A4090 /* thread */, + 3257717A38B8521849800A40 /* timer */, + 322614E171607E07326E5A36 /* video */, + ); + name = "src"; + sourceTree = ""; + }; + 465854AE0B7D6BCC29C821FD /* atomic */ = { + isa = PBXGroup; + children = ( + 1FB5255373F013CC70D8002D /* SDL_atomic.c */, + 2137310F68926D6D476C07A1 /* SDL_spinlock.c */, + ); + name = "atomic"; + sourceTree = ""; + }; + 1AAF5D2154A45B6822AB1DBF /* audio */ = { + isa = PBXGroup; + children = ( + 002C4E540DF5538435BC514A /* SDL_audio.c */, + 269A7458635E34682A053C5E /* SDL_audio_c.h */, + 4DBB70D75469728B342373E8 /* SDL_audiocvt.c */, + 48886D482B5239D2429E422D /* SDL_audiodev.c */, + 227E138737440F101016545F /* SDL_audiodev_c.h */, + 5C3C744F22823D470BED10D6 /* SDL_audiomem.h */, + 0F175E65628D4137386B7A6D /* SDL_audiotypecvt.c */, + 77537CFB490A3599736F3830 /* SDL_mixer.c */, + 591062475F93492D625F7D3B /* SDL_sysaudio.h */, + 5F503D9B3C7B4D2E09215A0A /* SDL_wave.c */, + 627D165130C55DBB44F4177D /* SDL_wave.h */, + 2A1C22AD4A4E74AC535836E5 /* coreaudio */, + 3D1F685B44BE520145F4276E /* disk */, + 5CBA3BD405592A59599E3D10 /* dummy */, + ); + name = "audio"; + sourceTree = ""; + }; + 2A1C22AD4A4E74AC535836E5 /* coreaudio */ = { + isa = PBXGroup; + children = ( + 785801FB211321AB70091ABE /* SDL_coreaudio.c */, + 49A72F922CF1399C415C00CD /* SDL_coreaudio.h */, + ); + name = "coreaudio"; + sourceTree = ""; + }; + 3D1F685B44BE520145F4276E /* disk */ = { + isa = PBXGroup; + children = ( + 4DC41A2B14C11D2837432538 /* SDL_diskaudio.c */, + 521D08EF11EB69A96AA46ED4 /* SDL_diskaudio.h */, + ); + name = "disk"; + sourceTree = ""; + }; + 5CBA3BD405592A59599E3D10 /* dummy */ = { + isa = PBXGroup; + children = ( + 09BB72B17B0C531926C153F5 /* SDL_dummyaudio.c */, + 276C60536A9304A5146B1268 /* SDL_dummyaudio.h */, + ); + name = "dummy"; + sourceTree = ""; + }; + 1BFC763271964B3E0F9E758B /* cpuinfo */ = { + isa = PBXGroup; + children = ( + 215A41140CF741414DF53790 /* SDL_cpuinfo.c */, + ); + name = "cpuinfo"; + sourceTree = ""; + }; + 1C37183E3A1D71C9540864FF /* events */ = { + isa = PBXGroup; + children = ( + 24704CFC41E52BEC136D61EF /* SDL_clipboardevents.c */, + 40F9257146A1113B5D295492 /* SDL_clipboardevents_c.h */, + 464D7C157FD7281A65677EB6 /* SDL_dropevents.c */, + 7FD4632B48A909616DF97F07 /* SDL_dropevents_c.h */, + 2A4321B70FCC1BF02A4B3380 /* SDL_events.c */, + 643F6B011BA52B760BDD1942 /* SDL_events_c.h */, + 4DC2358C7D821A786391025B /* SDL_gesture.c */, + 31144B144A1A7666503F77F4 /* SDL_gesture_c.h */, + 3E70553911EE2F50403C2750 /* SDL_keyboard.c */, + 6D484FBC6CD8631039835F29 /* SDL_keyboard_c.h */, + 131F008A780923790A8148F5 /* SDL_mouse.c */, + 5E6E36D918D75AAB28EA359D /* SDL_mouse_c.h */, + 0D5177DC2F6F2EA974930BD1 /* SDL_quit.c */, + 25307DC4784F0E2F3FF45EEF /* SDL_sysevents.h */, + 5BD37C83179405632D7E4F15 /* SDL_touch.c */, + 2C27609311E17D35413538AC /* SDL_touch_c.h */, + 31D33D8501A50DA7668C1AE8 /* SDL_windowevents.c */, + 6B44408116777C04046D47E0 /* SDL_windowevents_c.h */, + 48BD26A31962045F1EC334D7 /* blank_cursor.h */, + 46173CA331D053443D626F46 /* default_cursor.h */, + 7C5D7E131FD3751B40AF3A66 /* scancodes_darwin.h */, + 1F5C562746B51D5B737F4DB4 /* scancodes_linux.h */, + 00192A7A384C139278B97974 /* scancodes_windows.h */, + 5766257411BB400D357661D8 /* scancodes_xfree86.h */, + ); + name = "events"; + sourceTree = ""; + }; + 304934B37B9230F931143743 /* file */ = { + isa = PBXGroup; + children = ( + 3FCB452F4E155E2904C203BC /* SDL_rwops.c */, + 1C5F5FF444C62B7148BD7280 /* cocoa */, + ); + name = "file"; + sourceTree = ""; + }; + 1C5F5FF444C62B7148BD7280 /* cocoa */ = { + isa = PBXGroup; + children = ( + 49E1087F5B134DC2209810BD /* SDL_rwopsbundlesupport.h */, + 1DC9038B20EA22A67E200719 /* SDL_rwopsbundlesupport.m */, + ); + name = "cocoa"; + sourceTree = ""; + }; + 70DF00DE18543F7125AB2259 /* filesystem */ = { + isa = PBXGroup; + children = ( + 3E23031504F10C134F733B9A /* cocoa */, + ); + name = "filesystem"; + sourceTree = ""; + }; + 3E23031504F10C134F733B9A /* cocoa */ = { + isa = PBXGroup; + children = ( + 087154621C696D6C0AAD0059 /* SDL_sysfilesystem.m */, + ); + name = "cocoa"; + sourceTree = ""; + }; + 5B2C60921F756E8903387111 /* haptic */ = { + isa = PBXGroup; + children = ( + 1FC417354FD96DC41F5B42DC /* SDL_haptic.c */, + 69CB1CC76962285D1A1F08D8 /* SDL_haptic_c.h */, + 1F60634F6E5E60C80D1E38B0 /* SDL_syshaptic.h */, + ); + name = "haptic"; + sourceTree = ""; + }; + 422E17B63A2413892E374290 /* joystick */ = { + isa = PBXGroup; + children = ( + 37A8332F73B83B981A656B57 /* SDL_gamecontroller.c */, + 284F7BF263DB56DB568B73C3 /* SDL_gamecontrollerdb.h */, + 29925AA7203D1B7471C02E35 /* SDL_joystick.c */, + 1C8B023E6CDF28562D183DE6 /* SDL_joystick_c.h */, + 498C191A334E46FE00116849 /* SDL_sysjoystick.h */, + 37561A8311E42C530D5164B2 /* iphoneos */, + ); + name = "joystick"; + sourceTree = ""; + }; + 37561A8311E42C530D5164B2 /* iphoneos */ = { + isa = PBXGroup; + children = ( + 179431F6323964D836A3261C /* SDLUIAccelerationDelegate.h */, + 139C19587C553FAD2FF73925 /* SDLUIAccelerationDelegate.m */, + 478E79F80A440AB446AF36B9 /* SDL_sysjoystick.m */, + ); + name = "iphoneos"; + sourceTree = ""; + }; + 06D541E747C777584C625E65 /* loadso */ = { + isa = PBXGroup; + children = ( + 517E46B91E6E4D3B02DE7B45 /* dlopen */, + ); + name = "loadso"; + sourceTree = ""; + }; + 517E46B91E6E4D3B02DE7B45 /* dlopen */ = { + isa = PBXGroup; + children = ( + 76F16F6846EE3EE4233E6AE1 /* SDL_sysloadso.c */, + ); + name = "dlopen"; + sourceTree = ""; + }; + 0A8138B97C9215E5019C2EB0 /* power */ = { + isa = PBXGroup; + children = ( + 2F734033596532395886740E /* SDL_power.c */, + 11BC588242524CFE78DD29AA /* uikit */, + ); + name = "power"; + sourceTree = ""; + }; + 11BC588242524CFE78DD29AA /* uikit */ = { + isa = PBXGroup; + children = ( + 19386AFA6A1935321C554BEF /* SDL_syspower.h */, + 4D1E217E017A113B708F503E /* SDL_syspower.m */, + ); + name = "uikit"; + sourceTree = ""; + }; + 2D2F7B977A0F7881060138A9 /* render */ = { + isa = PBXGroup; + children = ( + 16912E070440110F77DC211B /* SDL_render.c */, + 2AFA351043F538CF25113C9C /* SDL_sysrender.h */, + 548B72177C19782D6FC8496A /* SDL_yuv_mmx.c */, + 5BF21F823F875C6F29CF5D97 /* SDL_yuv_sw.c */, + 76427E03117A09D1265B3125 /* SDL_yuv_sw_c.h */, + 231478CC3D3B196136187054 /* mmx.h */, + 34DB502A055A758C4AC77ECB /* opengles */, + 67F93A410D2B0D8003EE21A5 /* opengles2 */, + 60E421392DE739B1541874E9 /* software */, + ); + name = "render"; + sourceTree = ""; + }; + 34DB502A055A758C4AC77ECB /* opengles */ = { + isa = PBXGroup; + children = ( + 52F708CC10F906D324300533 /* SDL_glesfuncs.h */, + 7B673C6607B5021010B16CC9 /* SDL_render_gles.c */, + ); + name = "opengles"; + sourceTree = ""; + }; + 67F93A410D2B0D8003EE21A5 /* opengles2 */ = { + isa = PBXGroup; + children = ( + 57FF40047C945F1900A03BE9 /* SDL_gles2funcs.h */, + 629E77A3760410B906A567F7 /* SDL_render_gles2.c */, + 39A9217A0717288C2FDD590A /* SDL_shaders_gles2.c */, + 09D37FD4681175A15E950EF8 /* SDL_shaders_gles2.h */, + ); + name = "opengles2"; + sourceTree = ""; + }; + 60E421392DE739B1541874E9 /* software */ = { + isa = PBXGroup; + children = ( + 0E360AE36AA6505462B64168 /* SDL_blendfillrect.c */, + 70E82FAA02A2183700E80C3A /* SDL_blendfillrect.h */, + 55EB71951AB3082D65D67F09 /* SDL_blendline.c */, + 1A271214195266D879360116 /* SDL_blendline.h */, + 50F735292AAB4EC320785387 /* SDL_blendpoint.c */, + 57132F4C54CC47953B063C70 /* SDL_blendpoint.h */, + 1E477D245E114B547C4C7BE5 /* SDL_draw.h */, + 7AC349DB515B566C59F7764B /* SDL_drawline.c */, + 59C210E567CC206A2AA159D5 /* SDL_drawline.h */, + 6DB9260B44F4147A769475EE /* SDL_drawpoint.c */, + 49293A57413D29DE595C3EF0 /* SDL_drawpoint.h */, + 34B301645FD51A5D52E63453 /* SDL_render_sw.c */, + 6DA712C36240711B385A22A7 /* SDL_render_sw_c.h */, + 3DED4866613C4A255D8A0F6B /* SDL_rotate.c */, + 52B710D533A60CC36F95312A /* SDL_rotate.h */, + ); + name = "software"; + sourceTree = ""; + }; + 7D734A5B2A4343654716365F /* stdlib */ = { + isa = PBXGroup; + children = ( + 4DA248EA1F8A226552B17518 /* SDL_getenv.c */, + 124A749436D01E322447405A /* SDL_iconv.c */, + 206167DF0E633DDA38386DB5 /* SDL_malloc.c */, + 46D10031516609805A120451 /* SDL_qsort.c */, + 226E7A9565696D1109C63D31 /* SDL_stdlib.c */, + 3BDE72945D2B3C8B5CC33EBE /* SDL_string.c */, + ); + name = "stdlib"; + sourceTree = ""; + }; + 059C63C262A80AE81A0A4090 /* thread */ = { + isa = PBXGroup; + children = ( + 4F7E7F946C5028E168DA5B8C /* SDL_systhread.h */, + 49C941ED33AE1BDF03E7434B /* SDL_thread.c */, + 4155456918EF0F9259041949 /* SDL_thread_c.h */, + 0ED4101758431BFF34DB2538 /* pthread */, + ); + name = "thread"; + sourceTree = ""; + }; + 0ED4101758431BFF34DB2538 /* pthread */ = { + isa = PBXGroup; + children = ( + 12FE6FD85B19655C0B1D2812 /* SDL_syscond.c */, + 7E8415AB34D72C681EA777BF /* SDL_sysmutex.c */, + 18B754CF16E064A92C877A6D /* SDL_sysmutex_c.h */, + 271A52A21FD42FD759442D0B /* SDL_syssem.c */, + 7D6F38982BAA3DB678653A9F /* SDL_systhread.c */, + 462959C3319A7F2C5F4E366F /* SDL_systhread_c.h */, + 35E57FD90ED160CD3C377491 /* SDL_systls.c */, + ); + name = "pthread"; + sourceTree = ""; + }; + 3257717A38B8521849800A40 /* timer */ = { + isa = PBXGroup; + children = ( + 1C9238847CD26ECA3EF23E38 /* SDL_timer.c */, + 3FBF321321F445AC252324AB /* SDL_timer_c.h */, + 0D15690444BF683906FF512A /* unix */, + ); + name = "timer"; + sourceTree = ""; + }; + 0D15690444BF683906FF512A /* unix */ = { + isa = PBXGroup; + children = ( + 3BD67DAA56A456B453590AE3 /* SDL_systimer.c */, + ); + name = "unix"; + sourceTree = ""; + }; + 322614E171607E07326E5A36 /* video */ = { + isa = PBXGroup; + children = ( + 2BED7C140FC627FF7D7F2111 /* SDL_RLEaccel.c */, + 009C17A22716434F146A7B11 /* SDL_RLEaccel_c.h */, + 4286099A6624526E4BC469B4 /* SDL_blit.c */, + 2CF12C34447B00E75E8F31E0 /* SDL_blit.h */, + 6E7C17832B15293C3553792B /* SDL_blit_0.c */, + 0503247464D1023C4FB247FA /* SDL_blit_1.c */, + 0E4A1E7B3EC46D91001B0F6A /* SDL_blit_A.c */, + 461134000974378462AC3D70 /* SDL_blit_N.c */, + 51224FAB20BA286A4F4A26EA /* SDL_blit_auto.c */, + 4E4E0D300BDC40AB3A9A5D3E /* SDL_blit_auto.h */, + 50E8446963BA626B7FF02513 /* SDL_blit_copy.c */, + 10D26BDC6E335CB63F5E45E6 /* SDL_blit_copy.h */, + 3A507E5B122409D1793A6F51 /* SDL_blit_slow.c */, + 3BF64A5405261FF320EF4B06 /* SDL_blit_slow.h */, + 277B113418FB21F91656773C /* SDL_bmp.c */, + 35956B79610472F945081D98 /* SDL_clipboard.c */, + 37B95CA22ECA68A94CB125AF /* SDL_egl.c */, + 27CF26C22A0E31BD125D1B74 /* SDL_egl.h */, + 685F5211064001EA47DC7960 /* SDL_fillrect.c */, + 18AE600B7ADC0AB061053C02 /* SDL_pixels.c */, + 4C73501403330BED7CB96B68 /* SDL_pixels_c.h */, + 175F09A3458D5EC2267974C2 /* SDL_rect.c */, + 3BBF186A5E9B294039F257D1 /* SDL_rect_c.h */, + 72B36F81063916AA18A17BA5 /* SDL_shape.c */, + 366D314A0A131064291600BA /* SDL_shape_internals.h */, + 6C312B8C084B245B77693130 /* SDL_stretch.c */, + 07245D04334F42C931AC3CE1 /* SDL_surface.c */, + 070241285B2D6B36492D5457 /* SDL_sysvideo.h */, + 21FC3C1F203577D81A1302FB /* SDL_video.c */, + 510869A64D5B1FE871B6226A /* dummy */, + 677D6C223CBC62F502E71FEE /* uikit */, + ); + name = "video"; + sourceTree = ""; + }; + 510869A64D5B1FE871B6226A /* dummy */ = { + isa = PBXGroup; + children = ( + 6532624C22D14DA9369C597D /* SDL_nullevents.c */, + 49CE757D222D75AE205620BC /* SDL_nullevents_c.h */, + 197510FC2BCD4AAC7399616A /* SDL_nullframebuffer.c */, + 4F72641F547F170D07683E8B /* SDL_nullframebuffer_c.h */, + 5880707874BA78E878636D01 /* SDL_nullvideo.c */, + 64F53F5D2887516B711607D5 /* SDL_nullvideo.h */, + ); + name = "dummy"; + sourceTree = ""; + }; + 677D6C223CBC62F502E71FEE /* uikit */ = { + isa = PBXGroup; + children = ( + 6E222CB5528B63CA041C59B6 /* SDL_uikitappdelegate.h */, + 3D4044F73A5936AE039A2A8E /* SDL_uikitappdelegate.m */, + 190F328C1F6401443A4A0685 /* SDL_uikitevents.h */, + 1EE2311851600F1A08837ED8 /* SDL_uikitevents.m */, + 53FB0CFC152E124918043BEC /* SDL_uikitmessagebox.h */, + 07A63C252BE013A210351305 /* SDL_uikitmessagebox.m */, + 573E55E4299F103543007289 /* SDL_uikitmodes.h */, + 2907271017A61367037578CE /* SDL_uikitmodes.m */, + 015A61DE6EB1609B64B01C22 /* SDL_uikitopengles.h */, + 7E8D13032A8242957A856C2E /* SDL_uikitopengles.m */, + 0F9E64C82F665C2E7BD01FCB /* SDL_uikitopenglview.h */, + 7DF2244C0A887AF25E802E0E /* SDL_uikitopenglview.m */, + 6CDB3D3B70AF1CF137864B00 /* SDL_uikitvideo.h */, + 0B4E59B175A135D425483E78 /* SDL_uikitvideo.m */, + 5B3B2D1424FD774713796DE9 /* SDL_uikitview.h */, + 616337D37E51262B02E67C2D /* SDL_uikitview.m */, + 0F1762A82A756D6244EB2C95 /* SDL_uikitviewcontroller.h */, + 7BEA5F9878A47E063CF465B2 /* SDL_uikitviewcontroller.m */, + 502A08464E9957AC6FBE5D77 /* SDL_uikitwindow.h */, + 62E72E4E269E652A451851E0 /* SDL_uikitwindow.m */, + 04B10F6A0E333D4505B26DB7 /* keyinfotable.h */, + ); + name = "uikit"; + sourceTree = ""; + }; + 44E92F93140F256A5F4A142C /* Frameworks */ = { + isa = PBXGroup; + children = ( + 6FC23087098E4A46760575ED /* AudioToolbox.framework */, + 219B4BBB7728655E071C76E8 /* QuartzCore.framework */, + 4F2242B8754F17D126471E4F /* OpenGLES.framework */, + 184359E00F2E2484050B5639 /* CoreGraphics.framework */, + 43D63AC169FD00D664F81586 /* UIKit.framework */, + 6D1F38124D655A821B1E79D9 /* Foundation.framework */, + 07327F877E212C9043452002 /* CoreAudio.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 5A293C963BB92FA73DBE3E9F /* Products */ = { + isa = PBXGroup; + children = ( + 224D2C85085A7BA60E532655 /* libSDL2.a */, + ); + name = "Products"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 515D4C462ACD2DA8180E7783 /* SDL2 */ = { + isa = PBXNativeTarget; + buildConfigurationList = 69B50A6844351B017B9A513E /* Build configuration list for PBXNativeTarget "SDL2" */; + buildPhases = ( + 42BE4A693443527D1D8927CA /* Resources */, + 50EB14DC14BF0FEA75A13F8A /* Sources */, + 359429BC7E1B486B000B7D61 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "SDL2"; + productName = "SDL2"; + productReference = 224D2C85085A7BA60E532655 /* libSDL2.a */; + productType = "com.apple.product-type.library.static"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "SDL2" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 4D384FDD4DB948F011877462 /* SDL2 */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 515D4C462ACD2DA8180E7783 /* libSDL2.a */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 42BE4A693443527D1D8927CA /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 50EB14DC14BF0FEA75A13F8A /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 4B806D3A32321C1562DC068A /* SDL.c in Sources */, + 312A55E27C22567927096421 /* SDL_assert.c in Sources */, + 59EC4DD65AC8132A334525C2 /* SDL_error.c in Sources */, + 777A6B9724EA08530C265065 /* SDL_hints.c in Sources */, + 7E5108A73256684F3D264AFD /* SDL_log.c in Sources */, + 0FC3034E04AD7E6F3AA825C8 /* SDL_atomic.c in Sources */, + 5E007EF93C286858239D38F9 /* SDL_spinlock.c in Sources */, + 0CD02D154F366D7153274AFB /* SDL_audio.c in Sources */, + 06871CF4135806F428EE6100 /* SDL_audiocvt.c in Sources */, + 53C27DD277591A486D287F66 /* SDL_audiodev.c in Sources */, + 42024F3C06A820FA25753037 /* SDL_audiotypecvt.c in Sources */, + 706901DA2233598C2BC31C9E /* SDL_mixer.c in Sources */, + 5D37701F2B9C4D8572677A14 /* SDL_wave.c in Sources */, + 4F9A194458623E3271D9606F /* SDL_coreaudio.c in Sources */, + 401616E4053C316F11827D6A /* SDL_diskaudio.c in Sources */, + 1EF571B808FD4D1C7CCA604A /* SDL_dummyaudio.c in Sources */, + 6C61795802890EEB0CA54BA2 /* SDL_cpuinfo.c in Sources */, + 3EE216AB54E87EA113703443 /* SDL_clipboardevents.c in Sources */, + 117F40E519F73DBA084F02EE /* SDL_dropevents.c in Sources */, + 4F4E4A74448725295FA90435 /* SDL_events.c in Sources */, + 2E9D6A2A139E11AA6BF93FA2 /* SDL_gesture.c in Sources */, + 28084123104729F20883021D /* SDL_keyboard.c in Sources */, + 780602D4682E3A62216F0016 /* SDL_mouse.c in Sources */, + 72D51B6B14043ABF5B1A411E /* SDL_quit.c in Sources */, + 6F9B6082102A6D4643966C33 /* SDL_touch.c in Sources */, + 1D095DEE6FBE62757B2F0414 /* SDL_windowevents.c in Sources */, + 6B4B439A34176F3D1BEA2D1C /* SDL_rwops.c in Sources */, + 01924E3528BA6A184DDC4943 /* SDL_rwopsbundlesupport.m in Sources */, + 0C176977081064BD51221009 /* SDL_sysfilesystem.m in Sources */, + 006441F36BCB7D18505F1A4D /* SDL_haptic.c in Sources */, + 5AF26187008556F10D163FC5 /* SDL_gamecontroller.c in Sources */, + 44BF684B3269241B040C6774 /* SDL_joystick.c in Sources */, + 4E1438BA6EAD299D3AB94EB1 /* SDLUIAccelerationDelegate.m in Sources */, + 40BB54235B2918C822911D19 /* SDL_sysjoystick.m in Sources */, + 07E7585B40781652700B7606 /* SDL_sysloadso.c in Sources */, + 4F3E10F7613037117EB3300A /* SDL_power.c in Sources */, + 2AE467ED7C4202905BCB6C79 /* SDL_syspower.m in Sources */, + 0E381F293D34214B54782982 /* SDL_render.c in Sources */, + 083E3C4A327E29FB535B1FAC /* SDL_yuv_mmx.c in Sources */, + 02CB74104D79791B0990020E /* SDL_yuv_sw.c in Sources */, + 20634A5F593610E956065D3F /* SDL_render_gles.c in Sources */, + 2F1314E84BAE322B27F703F2 /* SDL_render_gles2.c in Sources */, + 368E5B8445CD1B8401E76AF7 /* SDL_shaders_gles2.c in Sources */, + 4FF037AE0F9B121821B90C8C /* SDL_blendfillrect.c in Sources */, + 563963766931175F0B5F3FCA /* SDL_blendline.c in Sources */, + 7C53362964DB1E582A4C716F /* SDL_blendpoint.c in Sources */, + 603C084C405738731C060951 /* SDL_drawline.c in Sources */, + 706934E33ADB01A122ED0676 /* SDL_drawpoint.c in Sources */, + 74C87E3E4F2B36DC43CA2F35 /* SDL_render_sw.c in Sources */, + 6A9A64C74B9954D106E54D6F /* SDL_rotate.c in Sources */, + 075360CC0A5E5C66484F62F8 /* SDL_getenv.c in Sources */, + 61B2004548E76739034A0B78 /* SDL_iconv.c in Sources */, + 37365F82067E4DB5356104CF /* SDL_malloc.c in Sources */, + 6B561A8B4BCB33CE38170C24 /* SDL_qsort.c in Sources */, + 1790071D15E22E8F30675AA7 /* SDL_stdlib.c in Sources */, + 6B2D58972C715A1069D40036 /* SDL_string.c in Sources */, + 10B6394A4F192929471B48ED /* SDL_thread.c in Sources */, + 70C725D9776C58540D4368C3 /* SDL_syscond.c in Sources */, + 1E59768334D271C377111037 /* SDL_sysmutex.c in Sources */, + 2E312CAB2C9A404935B337A2 /* SDL_syssem.c in Sources */, + 447639E03ED5458F38F23139 /* SDL_systhread.c in Sources */, + 5D755F5F0DCE0CEB291F6EC4 /* SDL_systls.c in Sources */, + 0FD97D8128F92AF83C09072F /* SDL_timer.c in Sources */, + 7E9B20A15917194A791D6122 /* SDL_systimer.c in Sources */, + 7FD261822F3148596D7A6E81 /* SDL_RLEaccel.c in Sources */, + 321D4A6D588325BF5D0E62E1 /* SDL_blit.c in Sources */, + 2F7F74AA6DAF7CB00E59199C /* SDL_blit_0.c in Sources */, + 73290E654357301424F432B1 /* SDL_blit_1.c in Sources */, + 17FB78FB43E649B00156410B /* SDL_blit_A.c in Sources */, + 39C216A67CCA38CA15754031 /* SDL_blit_N.c in Sources */, + 6013202F0BDE394B17CE5698 /* SDL_blit_auto.c in Sources */, + 320F2422684F48EA0D206F02 /* SDL_blit_copy.c in Sources */, + 61FB5617309F432E1410309D /* SDL_blit_slow.c in Sources */, + 07285E0C6B925B40008D6193 /* SDL_bmp.c in Sources */, + 6A3823080B0667B076D93DDC /* SDL_clipboard.c in Sources */, + 14B24A5E05466C0601B52CF5 /* SDL_egl.c in Sources */, + 40BF75A3254E46D15E594007 /* SDL_fillrect.c in Sources */, + 592273B70BFD223B7B335E96 /* SDL_pixels.c in Sources */, + 2C713596449934B84BD85CB4 /* SDL_rect.c in Sources */, + 0E7006E626FE6E425E38676D /* SDL_shape.c in Sources */, + 57376C9B40EA4F4E156C180F /* SDL_stretch.c in Sources */, + 5F8B28FB2EA35F2E632E66AD /* SDL_surface.c in Sources */, + 3E6A3B8261B06E180D03733B /* SDL_video.c in Sources */, + 57804D5121E342FF245A186B /* SDL_nullevents.c in Sources */, + 1F472D4947857BB063A51388 /* SDL_nullframebuffer.c in Sources */, + 0F2D74255E6022A45A613516 /* SDL_nullvideo.c in Sources */, + 70CE6C4B3C6E7D151DB82429 /* SDL_uikitappdelegate.m in Sources */, + 310349292DC724FA46171246 /* SDL_uikitevents.m in Sources */, + 3FB92B1C70C9598D38E5578C /* SDL_uikitmessagebox.m in Sources */, + 4E1E1F6C0DF843B13C8A20B3 /* SDL_uikitmodes.m in Sources */, + 5977233B255D34F5622A600D /* SDL_uikitopengles.m in Sources */, + 1CAE707A614455AC41541BD5 /* SDL_uikitopenglview.m in Sources */, + 6A5875C8347A76EA3012019A /* SDL_uikitvideo.m in Sources */, + 129705167B44645E147450D4 /* SDL_uikitview.m in Sources */, + 43C5739551F76C1A1F8C4115 /* SDL_uikitviewcontroller.m in Sources */, + 4E027E396E7609FB7E207F75 /* SDL_uikitwindow.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 726E4EA54C631D670CDC4EDB /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/lib; + PRODUCT_NAME = "SDL2"; + }; + name = "Debug"; + }; + 6F1700A4435E72594A0728FC /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/lib; + PRODUCT_NAME = "SDL2"; + }; + name = "Release"; + }; + 34F54C6D0F047CD714C320BB /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)"; + SDKROOT = iphoneos; + CODE_SIGN_IDENTITY = "iPhone Developer"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "..", + "../../../include", + ); + OBJROOT = "obj/iOS/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug"; + }; + 4B10106D09B57FF4299D3CEC /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)"; + SDKROOT = iphoneos; + CODE_SIGN_IDENTITY = "iPhone Developer"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "..", + "../../../include", + ); + OBJROOT = "obj/iOS/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 69B50A6844351B017B9A513E /* Build configuration list for PBXNativeTarget "libSDL2.a" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 726E4EA54C631D670CDC4EDB /* Debug */, + 6F1700A4435E72594A0728FC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "SDL2" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 34F54C6D0F047CD714C320BB /* Debug */, + 4B10106D09B57FF4299D3CEC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode-iOS/SDL2main/SDL2main.xcodeproj/project.pbxproj b/premake/Xcode-iOS/SDL2main/SDL2main.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..973bdafcf3e10 --- /dev/null +++ b/premake/Xcode-iOS/SDL2main/SDL2main.xcodeproj/project.pbxproj @@ -0,0 +1,241 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 6A47770C5EF950855C473DE4 /* SDL_dummy_main.c in Sources */ = {isa = PBXBuildFile; fileRef = 548E78363EA76CBB7C9D647D /* SDL_dummy_main.c */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 548E78363EA76CBB7C9D647D /* SDL_dummy_main.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_dummy_main.c"; path = "../../../src/main/dummy/SDL_dummy_main.c"; sourceTree = ""; }; + 5E5C7A9A4A341C0E5B2D6CDA /* libSDL2main.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libSDL2main.a"; path = "libSDL2main.a"; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 450B55DB505267192316799F /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 24A248A70B67298D6C2C6433 /* SDL2main */ = { + isa = PBXGroup; + children = ( + 0F4A74990FAF59563DCE2840 /* src */, + 4DF93DED3B1F1CF603EE2961 /* Products */, + ); + name = "SDL2main"; + sourceTree = ""; + }; + 0F4A74990FAF59563DCE2840 /* src */ = { + isa = PBXGroup; + children = ( + 23932A2D1F2210D87B842AED /* main */, + ); + name = "src"; + sourceTree = ""; + }; + 23932A2D1F2210D87B842AED /* main */ = { + isa = PBXGroup; + children = ( + 38FB10B773C32C6E1FD240A6 /* dummy */, + ); + name = "main"; + sourceTree = ""; + }; + 38FB10B773C32C6E1FD240A6 /* dummy */ = { + isa = PBXGroup; + children = ( + 548E78363EA76CBB7C9D647D /* SDL_dummy_main.c */, + ); + name = "dummy"; + sourceTree = ""; + }; + 4DF93DED3B1F1CF603EE2961 /* Products */ = { + isa = PBXGroup; + children = ( + 5E5C7A9A4A341C0E5B2D6CDA /* libSDL2main.a */, + ); + name = "Products"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 03EA2B934468123B74107F68 /* SDL2main */ = { + isa = PBXNativeTarget; + buildConfigurationList = 253743B11B001E914B5D598A /* Build configuration list for PBXNativeTarget "SDL2main" */; + buildPhases = ( + 2478641F57CA13393B9D590C /* Resources */, + 2646786734062B0C5FFE3108 /* Sources */, + 450B55DB505267192316799F /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "SDL2main"; + productName = "SDL2main"; + productReference = 5E5C7A9A4A341C0E5B2D6CDA /* libSDL2main.a */; + productType = "com.apple.product-type.library.static"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "SDL2main" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 24A248A70B67298D6C2C6433 /* SDL2main */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 03EA2B934468123B74107F68 /* libSDL2main.a */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 2478641F57CA13393B9D590C /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 2646786734062B0C5FFE3108 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 6A47770C5EF950855C473DE4 /* SDL_dummy_main.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 25220E52501602BA417227AC /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/lib; + PRODUCT_NAME = "SDL2main"; + }; + name = "Debug"; + }; + 7EE30A225C264A274EA54353 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/lib; + PRODUCT_NAME = "SDL2main"; + }; + name = "Release"; + }; + 25A70ED1565647744E791094 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)"; + SDKROOT = iphoneos; + CODE_SIGN_IDENTITY = "iPhone Developer"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "..", + "../../../include", + ); + OBJROOT = "obj/iOS/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug"; + }; + 1A8A11CE1AAA3BF8562F4099 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)"; + SDKROOT = iphoneos; + CODE_SIGN_IDENTITY = "iPhone Developer"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "..", + "../../../include", + ); + OBJROOT = "obj/iOS/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 253743B11B001E914B5D598A /* Build configuration list for PBXNativeTarget "libSDL2main.a" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 25220E52501602BA417227AC /* Debug */, + 7EE30A225C264A274EA54353 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "SDL2main" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 25A70ED1565647744E791094 /* Debug */, + 1A8A11CE1AAA3BF8562F4099 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode-iOS/SDL2test/SDL2test.xcodeproj/project.pbxproj b/premake/Xcode-iOS/SDL2test/SDL2test.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..c514443651b40 --- /dev/null +++ b/premake/Xcode-iOS/SDL2test/SDL2test.xcodeproj/project.pbxproj @@ -0,0 +1,430 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 56857095612364755D286FD9 /* SDL_test_assert.c in Sources */ = {isa = PBXBuildFile; fileRef = 6ED4535A558C6BE05EEB4C6E /* SDL_test_assert.c */; }; + 5C33580827A4354B73B70D73 /* SDL_test_common.c in Sources */ = {isa = PBXBuildFile; fileRef = 3D0C731632D76A34194E03DB /* SDL_test_common.c */; }; + 706031BC4F882A1031330BA1 /* SDL_test_compare.c in Sources */ = {isa = PBXBuildFile; fileRef = 0657514939B52F9B6F1E4EDA /* SDL_test_compare.c */; }; + 6F1624BF04F918EC623139A8 /* SDL_test_crc32.c in Sources */ = {isa = PBXBuildFile; fileRef = 12BE1FB21B87710652414729 /* SDL_test_crc32.c */; }; + 3B1C6CA815A928FC4F495888 /* SDL_test_font.c in Sources */ = {isa = PBXBuildFile; fileRef = 4ACE44CD0CCA362A1A7F25F0 /* SDL_test_font.c */; }; + 42AB1E177DA962641F215685 /* SDL_test_fuzzer.c in Sources */ = {isa = PBXBuildFile; fileRef = 5A9C55953C644DCF78C15BD9 /* SDL_test_fuzzer.c */; }; + 318B413E7C44573103C5314A /* SDL_test_harness.c in Sources */ = {isa = PBXBuildFile; fileRef = 49333DBB75662DA154D22861 /* SDL_test_harness.c */; }; + 041E4EBC2A060AF84B4D594A /* SDL_test_imageBlit.c in Sources */ = {isa = PBXBuildFile; fileRef = 0EDE1225501522A444E33397 /* SDL_test_imageBlit.c */; }; + 727F14A7672B4FB51DCA5570 /* SDL_test_imageBlitBlend.c in Sources */ = {isa = PBXBuildFile; fileRef = 177A78C169131B6D3EFE450B /* SDL_test_imageBlitBlend.c */; }; + 6EEA55954F9B512D1AC30AFA /* SDL_test_imageFace.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E01422D46856BDB2E8D4D1E /* SDL_test_imageFace.c */; }; + 433A343054ED3DF80E1D3F58 /* SDL_test_imagePrimitives.c in Sources */ = {isa = PBXBuildFile; fileRef = 43BE0BAD2C18095269ED029B /* SDL_test_imagePrimitives.c */; }; + 23796C0D79F4255042251C80 /* SDL_test_imagePrimitivesBlend.c in Sources */ = {isa = PBXBuildFile; fileRef = 5A091595221A641D69FA2FAD /* SDL_test_imagePrimitivesBlend.c */; }; + 7C2A66EC3B0B763F4A450CDB /* SDL_test_log.c in Sources */ = {isa = PBXBuildFile; fileRef = 286D137118996735597E0EA5 /* SDL_test_log.c */; }; + 0F5A0ACF334E532D40007CDB /* SDL_test_md5.c in Sources */ = {isa = PBXBuildFile; fileRef = 2C773AAC13DC5ED901586D7E /* SDL_test_md5.c */; }; + 066163463F6B29C9696F3213 /* SDL_test_random.c in Sources */ = {isa = PBXBuildFile; fileRef = 4F18540F577C34540CAC03F7 /* SDL_test_random.c */; }; + 1B5840A547674ADE70B06D8F /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 621233187C785B7574D37434 /* AudioToolbox.framework */; }; + 492B40FD2FA63DCE33AC1A06 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 564C34DE052B0A0F1C5D1EF8 /* QuartzCore.framework */; }; + 12E11A8F35ED13A6005F7175 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3F9D1D87236160D7647E450F /* OpenGLES.framework */; }; + 42E5016F5D673E7F298B16C9 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 47F554947BA260C46FD60423 /* CoreGraphics.framework */; }; + 23E1397163E838CA56AC511D /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 14690CC76EF75A815B195147 /* UIKit.framework */; }; + 1A7D1F2D6EFA085C0C237825 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A6F5244113B3E4A189B6866 /* Foundation.framework */; }; + 444D36D16C4942E0174C0A8B /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 015F19F612DB04B6530A4330 /* CoreAudio.framework */; }; + 787B5951006701B005890A49 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 12281D7977F523324D701579 /* libSDL2main.a */; }; + 184A61C5789A47587EEE467C /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3EAD7DDA02795B2776FE213A /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 4366730B15F067FE56E2451F /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 15B20EEE3CA059EE536E6653 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 5E5C7A9A4A341C0E5B2D6CDA; + remoteInfo = "libSDL2main.a"; + }; + 7D4B755868EC73BD12AA6264 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 15B20EEE3CA059EE536E6653 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 03EA2B934468123B74107F68; + remoteInfo = "libSDL2main.a"; + }; + 36F67DC919464A4B0F925FC5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 66FA293632AA42386CF57BEB /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 224D2C85085A7BA60E532655; + remoteInfo = "libSDL2.a"; + }; + 033D34162C254D9938854B3B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 66FA293632AA42386CF57BEB /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 515D4C462ACD2DA8180E7783; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 6ED4535A558C6BE05EEB4C6E /* SDL_test_assert.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_test_assert.c"; path = "../../../src/test/SDL_test_assert.c"; sourceTree = ""; }; + 3D0C731632D76A34194E03DB /* SDL_test_common.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_test_common.c"; path = "../../../src/test/SDL_test_common.c"; sourceTree = ""; }; + 0657514939B52F9B6F1E4EDA /* SDL_test_compare.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_test_compare.c"; path = "../../../src/test/SDL_test_compare.c"; sourceTree = ""; }; + 12BE1FB21B87710652414729 /* SDL_test_crc32.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_test_crc32.c"; path = "../../../src/test/SDL_test_crc32.c"; sourceTree = ""; }; + 4ACE44CD0CCA362A1A7F25F0 /* SDL_test_font.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_test_font.c"; path = "../../../src/test/SDL_test_font.c"; sourceTree = ""; }; + 5A9C55953C644DCF78C15BD9 /* SDL_test_fuzzer.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_test_fuzzer.c"; path = "../../../src/test/SDL_test_fuzzer.c"; sourceTree = ""; }; + 49333DBB75662DA154D22861 /* SDL_test_harness.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_test_harness.c"; path = "../../../src/test/SDL_test_harness.c"; sourceTree = ""; }; + 0EDE1225501522A444E33397 /* SDL_test_imageBlit.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_test_imageBlit.c"; path = "../../../src/test/SDL_test_imageBlit.c"; sourceTree = ""; }; + 177A78C169131B6D3EFE450B /* SDL_test_imageBlitBlend.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_test_imageBlitBlend.c"; path = "../../../src/test/SDL_test_imageBlitBlend.c"; sourceTree = ""; }; + 5E01422D46856BDB2E8D4D1E /* SDL_test_imageFace.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_test_imageFace.c"; path = "../../../src/test/SDL_test_imageFace.c"; sourceTree = ""; }; + 43BE0BAD2C18095269ED029B /* SDL_test_imagePrimitives.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_test_imagePrimitives.c"; path = "../../../src/test/SDL_test_imagePrimitives.c"; sourceTree = ""; }; + 5A091595221A641D69FA2FAD /* SDL_test_imagePrimitivesBlend.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_test_imagePrimitivesBlend.c"; path = "../../../src/test/SDL_test_imagePrimitivesBlend.c"; sourceTree = ""; }; + 286D137118996735597E0EA5 /* SDL_test_log.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_test_log.c"; path = "../../../src/test/SDL_test_log.c"; sourceTree = ""; }; + 2C773AAC13DC5ED901586D7E /* SDL_test_md5.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_test_md5.c"; path = "../../../src/test/SDL_test_md5.c"; sourceTree = ""; }; + 4F18540F577C34540CAC03F7 /* SDL_test_random.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_test_random.c"; path = "../../../src/test/SDL_test_random.c"; sourceTree = ""; }; + 621233187C785B7574D37434 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "System/Library/Frameworks/AudioToolbox.framework"; sourceTree = "SDKROOT"; }; + 564C34DE052B0A0F1C5D1EF8 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "QuartzCore.framework"; path = "System/Library/Frameworks/QuartzCore.framework"; sourceTree = "SDKROOT"; }; + 3F9D1D87236160D7647E450F /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGLES.framework"; path = "System/Library/Frameworks/OpenGLES.framework"; sourceTree = "SDKROOT"; }; + 47F554947BA260C46FD60423 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreGraphics.framework"; path = "System/Library/Frameworks/CoreGraphics.framework"; sourceTree = "SDKROOT"; }; + 14690CC76EF75A815B195147 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "UIKit.framework"; path = "System/Library/Frameworks/UIKit.framework"; sourceTree = "SDKROOT"; }; + 4A6F5244113B3E4A189B6866 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Foundation.framework"; path = "System/Library/Frameworks/Foundation.framework"; sourceTree = "SDKROOT"; }; + 015F19F612DB04B6530A4330 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "System/Library/Frameworks/CoreAudio.framework"; sourceTree = "SDKROOT"; }; + 1C052B2602423CF11EB44CD2 /* libSDL2test.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libSDL2test.a"; path = "libSDL2test.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 15B20EEE3CA059EE536E6653 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 66FA293632AA42386CF57BEB /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 10F173353BC717D867151BED /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 1B5840A547674ADE70B06D8F /* AudioToolbox.framework in Frameworks */, + 492B40FD2FA63DCE33AC1A06 /* QuartzCore.framework in Frameworks */, + 12E11A8F35ED13A6005F7175 /* OpenGLES.framework in Frameworks */, + 42E5016F5D673E7F298B16C9 /* CoreGraphics.framework in Frameworks */, + 23E1397163E838CA56AC511D /* UIKit.framework in Frameworks */, + 1A7D1F2D6EFA085C0C237825 /* Foundation.framework in Frameworks */, + 444D36D16C4942E0174C0A8B /* CoreAudio.framework in Frameworks */, + 787B5951006701B005890A49 /* libSDL2main.a in Frameworks */, + 184A61C5789A47587EEE467C /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 32F928E24467693B4BAD0BC5 /* SDL2test */ = { + isa = PBXGroup; + children = ( + 3C0256E43209258C2CC60C5F /* src */, + 275E2FF04A676A78169209B7 /* Frameworks */, + 56761C0E71916CFE48575094 /* Products */, + 351D0CB23353267B11AD040F /* Projects */, + ); + name = "SDL2test"; + sourceTree = ""; + }; + 3C0256E43209258C2CC60C5F /* src */ = { + isa = PBXGroup; + children = ( + 3EA221D752E20A48286B2818 /* test */, + ); + name = "src"; + sourceTree = ""; + }; + 3EA221D752E20A48286B2818 /* test */ = { + isa = PBXGroup; + children = ( + 6ED4535A558C6BE05EEB4C6E /* SDL_test_assert.c */, + 3D0C731632D76A34194E03DB /* SDL_test_common.c */, + 0657514939B52F9B6F1E4EDA /* SDL_test_compare.c */, + 12BE1FB21B87710652414729 /* SDL_test_crc32.c */, + 4ACE44CD0CCA362A1A7F25F0 /* SDL_test_font.c */, + 5A9C55953C644DCF78C15BD9 /* SDL_test_fuzzer.c */, + 49333DBB75662DA154D22861 /* SDL_test_harness.c */, + 0EDE1225501522A444E33397 /* SDL_test_imageBlit.c */, + 177A78C169131B6D3EFE450B /* SDL_test_imageBlitBlend.c */, + 5E01422D46856BDB2E8D4D1E /* SDL_test_imageFace.c */, + 43BE0BAD2C18095269ED029B /* SDL_test_imagePrimitives.c */, + 5A091595221A641D69FA2FAD /* SDL_test_imagePrimitivesBlend.c */, + 286D137118996735597E0EA5 /* SDL_test_log.c */, + 2C773AAC13DC5ED901586D7E /* SDL_test_md5.c */, + 4F18540F577C34540CAC03F7 /* SDL_test_random.c */, + ); + name = "test"; + sourceTree = ""; + }; + 275E2FF04A676A78169209B7 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 621233187C785B7574D37434 /* AudioToolbox.framework */, + 564C34DE052B0A0F1C5D1EF8 /* QuartzCore.framework */, + 3F9D1D87236160D7647E450F /* OpenGLES.framework */, + 47F554947BA260C46FD60423 /* CoreGraphics.framework */, + 14690CC76EF75A815B195147 /* UIKit.framework */, + 4A6F5244113B3E4A189B6866 /* Foundation.framework */, + 015F19F612DB04B6530A4330 /* CoreAudio.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 56761C0E71916CFE48575094 /* Products */ = { + isa = PBXGroup; + children = ( + 1C052B2602423CF11EB44CD2 /* libSDL2test.a */, + ); + name = "Products"; + sourceTree = ""; + }; + 351D0CB23353267B11AD040F /* Projects */ = { + isa = PBXGroup; + children = ( + 15B20EEE3CA059EE536E6653 /* SDL2main.xcodeproj */, + 66FA293632AA42386CF57BEB /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 48973A77740B056E28D405B9 /* Products */ = { + isa = PBXGroup; + children = ( + 12281D7977F523324D701579 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 032716E13C9450AE73732349 /* Products */ = { + isa = PBXGroup; + children = ( + 3EAD7DDA02795B2776FE213A /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 79AC3AFD728E60BD3C644A64 /* SDL2test */ = { + isa = PBXNativeTarget; + buildConfigurationList = 7C5807BE065572C245C73A13 /* Build configuration list for PBXNativeTarget "SDL2test" */; + buildPhases = ( + 5222598971CE2119792C75BB /* Resources */, + 61A06ADB023F2DC57ED01F1E /* Sources */, + 10F173353BC717D867151BED /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 18AF3F2661A47E3550126561 /* PBXTargetDependency */, + 192D7B7C4961243059393A43 /* PBXTargetDependency */, + ); + name = "SDL2test"; + productName = "SDL2test"; + productReference = 1C052B2602423CF11EB44CD2 /* libSDL2test.a */; + productType = "com.apple.product-type.library.static"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "SDL2test" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 32F928E24467693B4BAD0BC5 /* SDL2test */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 48973A77740B056E28D405B9 /* Products */; + ProjectRef = 15B20EEE3CA059EE536E6653 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 032716E13C9450AE73732349 /* Products */; + ProjectRef = 66FA293632AA42386CF57BEB /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 79AC3AFD728E60BD3C644A64 /* libSDL2test.a */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 12281D7977F523324D701579 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 4366730B15F067FE56E2451F /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 3EAD7DDA02795B2776FE213A /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 36F67DC919464A4B0F925FC5 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 5222598971CE2119792C75BB /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 61A06ADB023F2DC57ED01F1E /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 56857095612364755D286FD9 /* SDL_test_assert.c in Sources */, + 5C33580827A4354B73B70D73 /* SDL_test_common.c in Sources */, + 706031BC4F882A1031330BA1 /* SDL_test_compare.c in Sources */, + 6F1624BF04F918EC623139A8 /* SDL_test_crc32.c in Sources */, + 3B1C6CA815A928FC4F495888 /* SDL_test_font.c in Sources */, + 42AB1E177DA962641F215685 /* SDL_test_fuzzer.c in Sources */, + 318B413E7C44573103C5314A /* SDL_test_harness.c in Sources */, + 041E4EBC2A060AF84B4D594A /* SDL_test_imageBlit.c in Sources */, + 727F14A7672B4FB51DCA5570 /* SDL_test_imageBlitBlend.c in Sources */, + 6EEA55954F9B512D1AC30AFA /* SDL_test_imageFace.c in Sources */, + 433A343054ED3DF80E1D3F58 /* SDL_test_imagePrimitives.c in Sources */, + 23796C0D79F4255042251C80 /* SDL_test_imagePrimitivesBlend.c in Sources */, + 7C2A66EC3B0B763F4A450CDB /* SDL_test_log.c in Sources */, + 0F5A0ACF334E532D40007CDB /* SDL_test_md5.c in Sources */, + 066163463F6B29C9696F3213 /* SDL_test_random.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 18AF3F2661A47E3550126561 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 7D4B755868EC73BD12AA6264 /* PBXContainerItemProxy */; + }; + 192D7B7C4961243059393A43 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 033D34162C254D9938854B3B /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 06E748D2723D439036247CC6 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/lib; + PRODUCT_NAME = "SDL2test"; + }; + name = "Debug"; + }; + 03FB61DC64612A892E0E32B2 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/lib; + PRODUCT_NAME = "SDL2test"; + }; + name = "Release"; + }; + 5182634031DC148F4ADA5AEF /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)"; + SDKROOT = iphoneos; + CODE_SIGN_IDENTITY = "iPhone Developer"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "..", + "../../../include", + ); + OBJROOT = "obj/iOS/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug"; + }; + 687A3A1170E3559940506604 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)"; + SDKROOT = iphoneos; + CODE_SIGN_IDENTITY = "iPhone Developer"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "..", + "../../../include", + ); + OBJROOT = "obj/iOS/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 7C5807BE065572C245C73A13 /* Build configuration list for PBXNativeTarget "libSDL2test.a" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 06E748D2723D439036247CC6 /* Debug */, + 03FB61DC64612A892E0E32B2 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "SDL2test" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 5182634031DC148F4ADA5AEF /* Debug */, + 687A3A1170E3559940506604 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode-iOS/SDL_config_premake.h b/premake/Xcode-iOS/SDL_config_premake.h new file mode 100755 index 0000000000000..bc3e0832804ce --- /dev/null +++ b/premake/Xcode-iOS/SDL_config_premake.h @@ -0,0 +1,163 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2013 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef _SDL_config_iphoneos_h +#define _SDL_config_iphoneos_h + +#include "SDL_platform.h" + +#ifdef __LP64__ +#define SIZEOF_VOIDP 8 +#else +#define SIZEOF_VOIDP 4 +#endif + +#define HAVE_GCC_ATOMICS 1 + +#define HAVE_ALLOCA_H 1 +#define HAVE_SYS_TYPES_H 1 +#define HAVE_STDIO_H 1 +#define STDC_HEADERS 1 +#define HAVE_STRING_H 1 +#define HAVE_INTTYPES_H 1 +#define HAVE_STDINT_H 1 +#define HAVE_CTYPE_H 1 +#define HAVE_MATH_H 1 +#define HAVE_SIGNAL_H 1 + +/* C library functions */ +#define HAVE_MALLOC 1 +#define HAVE_CALLOC 1 +#define HAVE_REALLOC 1 +#define HAVE_FREE 1 +#define HAVE_ALLOCA 1 +#define HAVE_GETENV 1 +#define HAVE_SETENV 1 +#define HAVE_PUTENV 1 +#define HAVE_SETENV 1 +#define HAVE_UNSETENV 1 +#define HAVE_QSORT 1 +#define HAVE_ABS 1 +#define HAVE_BCOPY 1 +#define HAVE_MEMSET 1 +#define HAVE_MEMCPY 1 +#define HAVE_MEMMOVE 1 +#define HAVE_MEMCMP 1 +#define HAVE_STRLEN 1 +#define HAVE_STRLCPY 1 +#define HAVE_STRLCAT 1 +#define HAVE_STRDUP 1 +#define HAVE_STRCHR 1 +#define HAVE_STRRCHR 1 +#define HAVE_STRSTR 1 +#define HAVE_STRTOL 1 +#define HAVE_STRTOUL 1 +#define HAVE_STRTOLL 1 +#define HAVE_STRTOULL 1 +#define HAVE_STRTOD 1 +#define HAVE_ATOI 1 +#define HAVE_ATOF 1 +#define HAVE_STRCMP 1 +#define HAVE_STRNCMP 1 +#define HAVE_STRCASECMP 1 +#define HAVE_STRNCASECMP 1 +#define HAVE_SSCANF 1 +#define HAVE_SNPRINTF 1 +#define HAVE_VSNPRINTF 1 +#define HAVE_M_PI 1 +#define HAVE_ATAN 1 +#define HAVE_ATAN2 1 +#define HAVE_CEIL 1 +#define HAVE_COPYSIGN 1 +#define HAVE_COS 1 +#define HAVE_COSF 1 +#define HAVE_FABS 1 +#define HAVE_FLOOR 1 +#define HAVE_LOG 1 +#define HAVE_POW 1 +#define HAVE_SCALBN 1 +#define HAVE_SIN 1 +#define HAVE_SINF 1 +#define HAVE_SQRT 1 +#define HAVE_SIGACTION 1 +#define HAVE_SETJMP 1 +#define HAVE_NANOSLEEP 1 +#define HAVE_SYSCONF 1 +#define HAVE_SYSCTLBYNAME 1 + +#ifndef SDL_AUDIO_DRIVER_DUMMY +#define SDL_AUDIO_DRIVER_DUMMY 1 +#endif +#ifndef SDL_AUDIO_DRIVER_DISK +#define SDL_AUDIO_DRIVER_DISK 1 +#endif +#ifndef SDL_VIDEO_DRIVER_DUMMY +#define SDL_VIDEO_DRIVER_DUMMY 1 +#endif +#ifndef SDL_AUDIO_DRIVER_COREAUDIO +#define SDL_AUDIO_DRIVER_COREAUDIO 1 +#endif +#ifndef SDL_VIDEO_DRIVER_UIKIT +#define SDL_VIDEO_DRIVER_UIKIT 1 +#endif +#ifndef SDL_THREAD_PTHREAD_RECURSIVE_MUTEX +#define SDL_THREAD_PTHREAD_RECURSIVE_MUTEX 1 +#endif +#ifndef SDL_FILESYSTEM_COCOA +#define SDL_FILESYSTEM_COCOA 1 +#endif +#ifndef SDL_IPHONE_KEYBOARD +#define SDL_IPHONE_KEYBOARD 1 +#endif +#ifndef SDL_POWER_UIKIT +#define SDL_POWER_UIKIT 1 +#endif +#ifndef SDL_JOYSTICK_DISABLED +#define SDL_JOYSTICK_DISABLED 0 +#endif +#ifndef SDL_VIDEO_RENDER_OGL_ES +#define SDL_VIDEO_RENDER_OGL_ES 1 +#endif +#ifndef SDL_TIMER_UNIX +#define SDL_TIMER_UNIX 1 +#endif +#ifndef SDL_VIDEO_OPENGL_ES +#define SDL_VIDEO_OPENGL_ES 1 +#endif +#ifndef SDL_THREAD_PTHREAD +#define SDL_THREAD_PTHREAD 1 +#endif +#ifndef SDL_VIDEO_RENDER_OGL_ES2 +#define SDL_VIDEO_RENDER_OGL_ES2 1 +#endif +#ifndef SDL_LOADSO_DISABLED +#define SDL_LOADSO_DISABLED 1 +#endif +#ifndef SDL_HAPTIC_DISABLED +#define SDL_HAPTIC_DISABLED 1 +#endif + +/* Set max recognized G-force from accelerometer + See src/joystick/uikit/SDLUIAccelerationDelegate.m for notes on why this is needed + */ +#define SDL_IPHONE_MAX_GFORCE 5.0 + +#endif /* _SDL_config_iphoneos_h */ diff --git a/premake/Xcode-iOS/build-scripts/clean_premake.command b/premake/Xcode-iOS/build-scripts/clean_premake.command new file mode 100755 index 0000000000000..b054d4f521c90 --- /dev/null +++ b/premake/Xcode-iOS/build-scripts/clean_premake.command @@ -0,0 +1,4 @@ +#!/bin/sh +# change to directory above command file +cd `dirname $0`/.. +`dirname $0`/premake4 --file=../premake4.lua --to=./Xcode-iOS --ios clean \ No newline at end of file diff --git a/premake/Xcode-iOS/build-scripts/premake4 b/premake/Xcode-iOS/build-scripts/premake4 new file mode 100755 index 0000000000000000000000000000000000000000..dc3bb9abfa7766e96f1be5e63c9d98a04cd253f9 GIT binary patch literal 419580 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𝔡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%0A8oQuDRJ+Q`giifmJAS)pF;;6|0(8tXRq4m8)Va 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 literal 0 HcmV?d00001 diff --git a/premake/Xcode-iOS/build-scripts/xcode3.command b/premake/Xcode-iOS/build-scripts/xcode3.command new file mode 100755 index 0000000000000..e1f67fa6b8189 --- /dev/null +++ b/premake/Xcode-iOS/build-scripts/xcode3.command @@ -0,0 +1,4 @@ +#!/bin/sh +# change to directory above command file +cd `dirname $0`/.. +`dirname $0`/premake4 --file=../premake4.lua --to=./Xcode-iOS --ios xcode3 \ No newline at end of file diff --git a/premake/Xcode-iOS/build-scripts/xcode4.command b/premake/Xcode-iOS/build-scripts/xcode4.command new file mode 100755 index 0000000000000..bf3c57f15e728 --- /dev/null +++ b/premake/Xcode-iOS/build-scripts/xcode4.command @@ -0,0 +1,4 @@ +#!/bin/sh +# change to directory above command file +cd `dirname $0`/.. +`dirname $0`/premake4 --file=../premake4.lua --to=./Xcode-iOS --ios xcode4 \ No newline at end of file diff --git a/premake/Xcode/Xcode3/SDL2/SDL2.xcodeproj/project.pbxproj b/premake/Xcode/Xcode3/SDL2/SDL2.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..9ba1b0b6fe2af --- /dev/null +++ b/premake/Xcode/Xcode3/SDL2/SDL2.xcodeproj/project.pbxproj @@ -0,0 +1,1231 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 6F3F406D60231E94188751BC /* SDL.c in Sources */ = {isa = PBXBuildFile; fileRef = 581F727C2E205CC67F140529 /* SDL.c */; }; + 19FA05DA50E3679839F6602B /* SDL_assert.c in Sources */ = {isa = PBXBuildFile; fileRef = 20A12A2435417EEB1A001847 /* SDL_assert.c */; }; + 356E00387A38053E5EE8705E /* SDL_error.c in Sources */ = {isa = PBXBuildFile; fileRef = 7C4669E76F5E4522717C37DD /* SDL_error.c */; }; + 149E4E143D540244690204F8 /* SDL_hints.c in Sources */ = {isa = PBXBuildFile; fileRef = 1D2E68ED4D66639038F63099 /* SDL_hints.c */; }; + 6D2117B123FD403E5F17176E /* SDL_log.c in Sources */ = {isa = PBXBuildFile; fileRef = 4EAE1E8A03AF0D8C0BC74C60 /* SDL_log.c */; }; + 52F43FB27CAA2A34780F23D2 /* SDL_atomic.c in Sources */ = {isa = PBXBuildFile; fileRef = 741E10D47F9F35F77FC23C71 /* SDL_atomic.c */; }; + 492C77BF4FA9117B4C456DEE /* SDL_spinlock.c in Sources */ = {isa = PBXBuildFile; fileRef = 545D521E33195938012A701C /* SDL_spinlock.c */; }; + 2F1F27BE61AD6559771B219B /* SDL_audio.c in Sources */ = {isa = PBXBuildFile; fileRef = 009822131E4843700095766C /* SDL_audio.c */; }; + 461F2F773934429817AA4299 /* SDL_audiocvt.c in Sources */ = {isa = PBXBuildFile; fileRef = 2BA37BD372FE166821D80A1E /* SDL_audiocvt.c */; }; + 79F231BA363B7C142C533385 /* SDL_audiodev.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D2936CF698D392735D76E9E /* SDL_audiodev.c */; }; + 637A1C5F33B070F311F368D2 /* SDL_audiotypecvt.c in Sources */ = {isa = PBXBuildFile; fileRef = 76263CFA4F4A3E8E74966406 /* SDL_audiotypecvt.c */; }; + 16451C9255A341FF66894454 /* SDL_mixer.c in Sources */ = {isa = PBXBuildFile; fileRef = 748562A8151756FF3FE91679 /* SDL_mixer.c */; }; + 20DE6FC1792A40ED25F514F9 /* SDL_wave.c in Sources */ = {isa = PBXBuildFile; fileRef = 58E6725272291A8B48974EC3 /* SDL_wave.c */; }; + 50C80EB5218555D753C36826 /* SDL_coreaudio.c in Sources */ = {isa = PBXBuildFile; fileRef = 17F2408C59BB1CE53ACB077B /* SDL_coreaudio.c */; }; + 44F427256F5C0EC273FC3B89 /* SDL_diskaudio.c in Sources */ = {isa = PBXBuildFile; fileRef = 694A007643FB227E1C011EE8 /* SDL_diskaudio.c */; }; + 388A0733659279AE2A123B36 /* SDL_dummyaudio.c in Sources */ = {isa = PBXBuildFile; fileRef = 183031E40F3E3665462E31AC /* SDL_dummyaudio.c */; }; + 1362409443423D9B472D0416 /* SDL_cpuinfo.c in Sources */ = {isa = PBXBuildFile; fileRef = 399D7F372AA42CDF004A30CB /* SDL_cpuinfo.c */; }; + 2C9E656F18713B73279B4B04 /* SDL_clipboardevents.c in Sources */ = {isa = PBXBuildFile; fileRef = 5EEA55BC35E77DD14C8B6DEA /* SDL_clipboardevents.c */; }; + 0CCE44195C6176D8043D528A /* SDL_dropevents.c in Sources */ = {isa = PBXBuildFile; fileRef = 64680D041F9E679917CF3CB8 /* SDL_dropevents.c */; }; + 25F304341BF22DF974DF1780 /* SDL_events.c in Sources */ = {isa = PBXBuildFile; fileRef = 67B9300749251C797177656C /* SDL_events.c */; }; + 7D5172AE101630DD2E8D3D30 /* SDL_gesture.c in Sources */ = {isa = PBXBuildFile; fileRef = 2427171D0D16540755560B01 /* SDL_gesture.c */; }; + 6A112F1137181ABE5AC417D0 /* SDL_keyboard.c in Sources */ = {isa = PBXBuildFile; fileRef = 4A4523A15D1D31E40DBA55EF /* SDL_keyboard.c */; }; + 2EF9131C40D10D5B633214A1 /* SDL_mouse.c in Sources */ = {isa = PBXBuildFile; fileRef = 0E064D1B5215736C4B0C0F8B /* SDL_mouse.c */; }; + 16DC68A33B9E04A63D9A54C6 /* SDL_quit.c in Sources */ = {isa = PBXBuildFile; fileRef = 7EAB2812398D5FDE1566622B /* SDL_quit.c */; }; + 53C876237C494B6428793CD6 /* SDL_touch.c in Sources */ = {isa = PBXBuildFile; fileRef = 11625DDF6F935BC24C1658C6 /* SDL_touch.c */; }; + 778838BC7EAC5963763138C1 /* SDL_windowevents.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B0D1AE01FCA24EC38765CFF /* SDL_windowevents.c */; }; + 4F65225D210F1D0C223A3842 /* SDL_rwops.c in Sources */ = {isa = PBXBuildFile; fileRef = 46E842226EEF2BBD3E14319D /* SDL_rwops.c */; }; + 189B1C085510122958EF71C2 /* SDL_rwopsbundlesupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 5E087787656B7EF200787EF7 /* SDL_rwopsbundlesupport.m */; }; + 218C0918297D7C1E31307429 /* SDL_sysfilesystem.m in Sources */ = {isa = PBXBuildFile; fileRef = 7927299A5CBA392013905A95 /* SDL_sysfilesystem.m */; }; + 1F950ADC73537B891DE53BB8 /* SDL_haptic.c in Sources */ = {isa = PBXBuildFile; fileRef = 6C027EE044E726073F02545E /* SDL_haptic.c */; }; + 1DA01FF6657570AA36A52EC5 /* SDL_syshaptic.c in Sources */ = {isa = PBXBuildFile; fileRef = 466551BC2C236A3C09D52B8C /* SDL_syshaptic.c */; }; + 689A0A855C4F785B5C981CA4 /* SDL_gamecontroller.c in Sources */ = {isa = PBXBuildFile; fileRef = 7D0C59A3666A74AD19C81F68 /* SDL_gamecontroller.c */; }; + 159C6EB8203936010A1F2027 /* SDL_joystick.c in Sources */ = {isa = PBXBuildFile; fileRef = 4FCA1736705A5DC74EC17138 /* SDL_joystick.c */; }; + 4FC953274C2A1641268F236B /* SDL_sysjoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = 79981D6D163C5F2060C66FA5 /* SDL_sysjoystick.c */; }; + 151061BF5CDD3CB1146656AF /* SDL_sysloadso.c in Sources */ = {isa = PBXBuildFile; fileRef = 31CD0B3A1CC508507B0E69C7 /* SDL_sysloadso.c */; }; + 7F9268CB0F1354E475291503 /* SDL_power.c in Sources */ = {isa = PBXBuildFile; fileRef = 1C2235273DF86C1B64BC738C /* SDL_power.c */; }; + 6F6C5A254D6A1B6E6F2911D5 /* SDL_syspower.c in Sources */ = {isa = PBXBuildFile; fileRef = 6A4855D539F85E716904291D /* SDL_syspower.c */; }; + 34555B4E69CE63A24CDA7F43 /* SDL_render.c in Sources */ = {isa = PBXBuildFile; fileRef = 550435DE0C8635D76B737308 /* SDL_render.c */; }; + 7BEF2DBE471D78592D830CFC /* SDL_yuv_mmx.c in Sources */ = {isa = PBXBuildFile; fileRef = 30C711D35F4E10AE14064022 /* SDL_yuv_mmx.c */; }; + 50E3046B39F125B111E552E5 /* SDL_yuv_sw.c in Sources */ = {isa = PBXBuildFile; fileRef = 2B19077009C9231E3CB109F9 /* SDL_yuv_sw.c */; }; + 35A118A4441C11DE1E126429 /* SDL_render_gl.c in Sources */ = {isa = PBXBuildFile; fileRef = 2E98213F58C83B7679EA2EE0 /* SDL_render_gl.c */; }; + 5D485D983D9508FF46252F6C /* SDL_shaders_gl.c in Sources */ = {isa = PBXBuildFile; fileRef = 74E6545673FD059731C53CB0 /* SDL_shaders_gl.c */; }; + 0B755CE80D912DB50009511D /* SDL_blendfillrect.c in Sources */ = {isa = PBXBuildFile; fileRef = 139751A76375191B64F53E7D /* SDL_blendfillrect.c */; }; + 73765AD0352731C868D24D4A /* SDL_blendline.c in Sources */ = {isa = PBXBuildFile; fileRef = 2E0B793E01E363125E115555 /* SDL_blendline.c */; }; + 02947C1003D14ADE559D42B2 /* SDL_blendpoint.c in Sources */ = {isa = PBXBuildFile; fileRef = 47A60CF070301F215AA31899 /* SDL_blendpoint.c */; }; + 75A536C37C5E31577AA043A4 /* SDL_drawline.c in Sources */ = {isa = PBXBuildFile; fileRef = 3DC17B6963CD575538C46E2B /* SDL_drawline.c */; }; + 34792E3153922D7D763C170E /* SDL_drawpoint.c in Sources */ = {isa = PBXBuildFile; fileRef = 57200BE31613529B5E4D145A /* SDL_drawpoint.c */; }; + 10763EF370CC093B1CFA183C /* SDL_render_sw.c in Sources */ = {isa = PBXBuildFile; fileRef = 7F4003F22A2B03CC4F3E2570 /* SDL_render_sw.c */; }; + 110C5B4311ED10D54C4F62AA /* SDL_rotate.c in Sources */ = {isa = PBXBuildFile; fileRef = 34F408411DF145AD78114160 /* SDL_rotate.c */; }; + 48487F951B64565B7D7207CA /* SDL_getenv.c in Sources */ = {isa = PBXBuildFile; fileRef = 467E7A495D341EA43CA77D04 /* SDL_getenv.c */; }; + 059730C916147C00706662AD /* SDL_iconv.c in Sources */ = {isa = PBXBuildFile; fileRef = 7420083415F10DBF1A6E4645 /* SDL_iconv.c */; }; + 7296105F4E1C17650F3D73C9 /* SDL_malloc.c in Sources */ = {isa = PBXBuildFile; fileRef = 6AAD26CD05F31E954E925A93 /* SDL_malloc.c */; }; + 49DD00DB42335811763516DD /* SDL_qsort.c in Sources */ = {isa = PBXBuildFile; fileRef = 1A637631359161D6452A680F /* SDL_qsort.c */; }; + 52DE7BE66FA215C168DF1677 /* SDL_stdlib.c in Sources */ = {isa = PBXBuildFile; fileRef = 0B1A13D3324F661B06A354E4 /* SDL_stdlib.c */; }; + 5C645F5C4E433585671F555D /* SDL_string.c in Sources */ = {isa = PBXBuildFile; fileRef = 76AA2E0B0F173AC9212F4258 /* SDL_string.c */; }; + 1C0923FF7665104E12545B0C /* SDL_thread.c in Sources */ = {isa = PBXBuildFile; fileRef = 00BF063F2A516202081956FF /* SDL_thread.c */; }; + 56775E493033788C61470057 /* SDL_syscond.c in Sources */ = {isa = PBXBuildFile; fileRef = 75A15D1D350165C72B266D64 /* SDL_syscond.c */; }; + 6E88479E164B21F0200C15BC /* SDL_sysmutex.c in Sources */ = {isa = PBXBuildFile; fileRef = 575F34176E7226D0364C71AC /* SDL_sysmutex.c */; }; + 28E422FD2DB22AD275C62496 /* SDL_syssem.c in Sources */ = {isa = PBXBuildFile; fileRef = 68EA167A2FA9170A1EEA3B1D /* SDL_syssem.c */; }; + 427C5DE627A9073945E63965 /* SDL_systhread.c in Sources */ = {isa = PBXBuildFile; fileRef = 2F031FEF2BCC1434771A7E86 /* SDL_systhread.c */; }; + 74D208E105A93E03446D0CC3 /* SDL_systls.c in Sources */ = {isa = PBXBuildFile; fileRef = 6A8F127A2C4E6F364C1526F0 /* SDL_systls.c */; }; + 55472CED35DA24E748C92A9D /* SDL_timer.c in Sources */ = {isa = PBXBuildFile; fileRef = 08B34CDF5C9079763C624849 /* SDL_timer.c */; }; + 641F56DE115627885E68139B /* SDL_systimer.c in Sources */ = {isa = PBXBuildFile; fileRef = 6A01774C1EED1B2144AE1CB5 /* SDL_systimer.c */; }; + 58C65B09535869014BC3131C /* SDL_RLEaccel.c in Sources */ = {isa = PBXBuildFile; fileRef = 676211D87FE20B7150213164 /* SDL_RLEaccel.c */; }; + 3E0401B74A716B967F1D70CB /* SDL_blit.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B5F52584ED13C49741749BD /* SDL_blit.c */; }; + 21B578155ED918C80674601C /* SDL_blit_0.c in Sources */ = {isa = PBXBuildFile; fileRef = 6BD9773F57DE397A34542B86 /* SDL_blit_0.c */; }; + 6E612A61515559E567CD5D9C /* SDL_blit_1.c in Sources */ = {isa = PBXBuildFile; fileRef = 5F717A917D9207E82B1709FD /* SDL_blit_1.c */; }; + 5E200CE93B4833C9061C18AF /* SDL_blit_A.c in Sources */ = {isa = PBXBuildFile; fileRef = 4A7C2E9C357B39870C9C7CBB /* SDL_blit_A.c */; }; + 71E83A8D25F069DC2952005B /* SDL_blit_N.c in Sources */ = {isa = PBXBuildFile; fileRef = 16F56E412F037AA6626704FC /* SDL_blit_N.c */; }; + 75EC6ADC292417204E4E701B /* SDL_blit_auto.c in Sources */ = {isa = PBXBuildFile; fileRef = 12AD22506E1411CA1FCA193D /* SDL_blit_auto.c */; }; + 0F073C586C5B0777519F427F /* SDL_blit_copy.c in Sources */ = {isa = PBXBuildFile; fileRef = 7D4437C37F683A8A58F55923 /* SDL_blit_copy.c */; }; + 1F897EA9155F39AB161168AD /* SDL_blit_slow.c in Sources */ = {isa = PBXBuildFile; fileRef = 2C3813742F9649C6666B1E7E /* SDL_blit_slow.c */; }; + 78E46B133F7458F4295F5452 /* SDL_bmp.c in Sources */ = {isa = PBXBuildFile; fileRef = 626030677A9E27FC1E8935A1 /* SDL_bmp.c */; }; + 6383693061D0250D26F00218 /* SDL_clipboard.c in Sources */ = {isa = PBXBuildFile; fileRef = 5C4629AC64180D01435D314B /* SDL_clipboard.c */; }; + 0BEF1BDA1C6F691D22EB02A7 /* SDL_egl.c in Sources */ = {isa = PBXBuildFile; fileRef = 1AA429B9420C620D5F982BCC /* SDL_egl.c */; }; + 13F970752FFF253553FD1C57 /* SDL_fillrect.c in Sources */ = {isa = PBXBuildFile; fileRef = 127978F1333C57F33D196715 /* SDL_fillrect.c */; }; + 711F3C0A570B25DF7D873D2A /* SDL_pixels.c in Sources */ = {isa = PBXBuildFile; fileRef = 1C8921DA02C03ADB0F4646F8 /* SDL_pixels.c */; }; + 58AE29EA6A4E39D37DFF1403 /* SDL_rect.c in Sources */ = {isa = PBXBuildFile; fileRef = 39842F4E596B39E8643764C3 /* SDL_rect.c */; }; + 46AA6A03274D62FC24FF0927 /* SDL_shape.c in Sources */ = {isa = PBXBuildFile; fileRef = 1A481A30600E3DFE77A26D0A /* SDL_shape.c */; }; + 277D2B962D136C4A24D2142F /* SDL_stretch.c in Sources */ = {isa = PBXBuildFile; fileRef = 467C2DC84A7B76C05E9E120F /* SDL_stretch.c */; }; + 14010A0150CF689E0D9E3221 /* SDL_surface.c in Sources */ = {isa = PBXBuildFile; fileRef = 518E5DE30064338C4BC17126 /* SDL_surface.c */; }; + 78B41B604F381B2D5C6D18E1 /* SDL_video.c in Sources */ = {isa = PBXBuildFile; fileRef = 095B54196A9037AE32C14507 /* SDL_video.c */; }; + 67D15BC71BE7653C55D74F61 /* SDL_cocoaclipboard.m in Sources */ = {isa = PBXBuildFile; fileRef = 6B1A7D591BBF260340365717 /* SDL_cocoaclipboard.m */; }; + 78F26FEE048D4A6B4A863229 /* SDL_cocoaevents.m in Sources */ = {isa = PBXBuildFile; fileRef = 6CD471DB63ED0C072F712786 /* SDL_cocoaevents.m */; }; + 6F89267B7FF56499250A71CC /* SDL_cocoakeyboard.m in Sources */ = {isa = PBXBuildFile; fileRef = 4FF971A805D912AE7C3511F7 /* SDL_cocoakeyboard.m */; }; + 5CF76F752B327CD948535F8F /* SDL_cocoamessagebox.m in Sources */ = {isa = PBXBuildFile; fileRef = 59FA32BE7DCE61473C727995 /* SDL_cocoamessagebox.m */; }; + 2AC25E1763A837323CD605E7 /* SDL_cocoamodes.m in Sources */ = {isa = PBXBuildFile; fileRef = 090C140773EF64C55AB32D4D /* SDL_cocoamodes.m */; }; + 7D0450A731DD481909466CA0 /* SDL_cocoamouse.m in Sources */ = {isa = PBXBuildFile; fileRef = 36ED1B4309137DF626BA1304 /* SDL_cocoamouse.m */; }; + 0E6135F17C3B3277248323EB /* SDL_cocoamousetap.m in Sources */ = {isa = PBXBuildFile; fileRef = 6A5F20432ADC009E19FA2C1E /* SDL_cocoamousetap.m */; }; + 18E915CA0AF24DC818255656 /* SDL_cocoaopengl.m in Sources */ = {isa = PBXBuildFile; fileRef = 3A4F55752FF300143C835B3B /* SDL_cocoaopengl.m */; }; + 6C6654F603723710090735D5 /* SDL_cocoashape.m in Sources */ = {isa = PBXBuildFile; fileRef = 05CF7A893F4C1E2406AA11AA /* SDL_cocoashape.m */; }; + 647B47720F656FFC2BF30900 /* SDL_cocoavideo.m in Sources */ = {isa = PBXBuildFile; fileRef = 297A08E31208586E5A9E4EB3 /* SDL_cocoavideo.m */; }; + 32ED7E75749236CD56FF20F0 /* SDL_cocoawindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 650003A700A8250D0F784E5A /* SDL_cocoawindow.m */; }; + 0F174DBC0448241115FC7C63 /* SDL_nullevents.c in Sources */ = {isa = PBXBuildFile; fileRef = 2DD03852185F1A5357D16C0E /* SDL_nullevents.c */; }; + 6BC505CE4607095478152E99 /* SDL_nullframebuffer.c in Sources */ = {isa = PBXBuildFile; fileRef = 7FE32E2D489C1F5676D070F3 /* SDL_nullframebuffer.c */; }; + 44AF6A685C5A55FE4A5E19FC /* SDL_nullvideo.c in Sources */ = {isa = PBXBuildFile; fileRef = 4576033B4C1F3E0D521D1842 /* SDL_nullvideo.c */; }; + 287200EA3B9D424D5DE575FD /* SDL_x11clipboard.c in Sources */ = {isa = PBXBuildFile; fileRef = 58465C34749040C207292140 /* SDL_x11clipboard.c */; }; + 4E2C59800F607C372D6A3089 /* SDL_x11dyn.c in Sources */ = {isa = PBXBuildFile; fileRef = 36703205767270E5711876F8 /* SDL_x11dyn.c */; }; + 2DF75EB904B605E26DAF04C7 /* SDL_x11events.c in Sources */ = {isa = PBXBuildFile; fileRef = 7448494A32995EB4084F3B7D /* SDL_x11events.c */; }; + 47F6212A03D0643556910B37 /* SDL_x11framebuffer.c in Sources */ = {isa = PBXBuildFile; fileRef = 3EF375972CA805682F8F74F4 /* SDL_x11framebuffer.c */; }; + 674049A36F4E1F8A39BA72F3 /* SDL_x11keyboard.c in Sources */ = {isa = PBXBuildFile; fileRef = 4543334473D06CAE254F00B1 /* SDL_x11keyboard.c */; }; + 423735EE5D4E6C26652252E9 /* SDL_x11messagebox.c in Sources */ = {isa = PBXBuildFile; fileRef = 1D2B22B2741D4C6060E23309 /* SDL_x11messagebox.c */; }; + 057D7414702F46FC7B087EDC /* SDL_x11modes.c in Sources */ = {isa = PBXBuildFile; fileRef = 448A72B44504304B144C3E13 /* SDL_x11modes.c */; }; + 4DE24CFB2C5D19C9769A7FB9 /* SDL_x11mouse.c in Sources */ = {isa = PBXBuildFile; fileRef = 54687D293BC66D0A5C631CD2 /* SDL_x11mouse.c */; }; + 448B41931F8356286212178E /* SDL_x11opengl.c in Sources */ = {isa = PBXBuildFile; fileRef = 72DF3CFC4E8B09C256A46840 /* SDL_x11opengl.c */; }; + 5C724339694D58067B6016D3 /* SDL_x11opengles.c in Sources */ = {isa = PBXBuildFile; fileRef = 76560AEB0562134E7A7E6B36 /* SDL_x11opengles.c */; }; + 0F906C3D26303BD807A6588E /* SDL_x11shape.c in Sources */ = {isa = PBXBuildFile; fileRef = 077269AF6E2A464C6904277D /* SDL_x11shape.c */; }; + 6A5106E473582923650744EE /* SDL_x11touch.c in Sources */ = {isa = PBXBuildFile; fileRef = 652626396914587E520F7C8C /* SDL_x11touch.c */; }; + 11152B937B1F6F19699B764D /* SDL_x11video.c in Sources */ = {isa = PBXBuildFile; fileRef = 668E75F870AC40425B0D639F /* SDL_x11video.c */; }; + 1CFD4BF822A240336A086B93 /* SDL_x11window.c in Sources */ = {isa = PBXBuildFile; fileRef = 7FB6418B385644032BC404E9 /* SDL_x11window.c */; }; + 640C07407CC856FB1B373B79 /* SDL_x11xinput2.c in Sources */ = {isa = PBXBuildFile; fileRef = 085A68FD7A9151CF2E095ECB /* SDL_x11xinput2.c */; }; + 23120B9A3B8079C517555340 /* edid-parse.c in Sources */ = {isa = PBXBuildFile; fileRef = 11F5212A6B0F3DF7559B6BE3 /* edid-parse.c */; }; + 6B5A02020724656F6C16507F /* imKStoUCS.c in Sources */ = {isa = PBXBuildFile; fileRef = 5A492D32559D49902FB05F45 /* imKStoUCS.c */; }; + 6BB96439701E5363094C5DD5 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 16087FC97B0458F07F343E84 /* AudioToolbox.framework */; }; + 63DC268722B13B3312A72478 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 517D7ABB382B14B10EEF73BE /* AudioUnit.framework */; }; + 116D397753E162E06F2A4550 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5DCD682F04A36BC83BCC7159 /* Cocoa.framework */; }; + 673D5F7B1D0E077948DA7126 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0E21418B420C32A255982342 /* CoreAudio.framework */; }; + 6C2B372D02D23CB0511D7889 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7735724A00183AF616F6186E /* IOKit.framework */; }; + 236B622A48961F397FF06EF7 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 12566C6F031E562D44A61FA5 /* Carbon.framework */; }; + 49957BE83EA63CF059A30F9C /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1F7A40AB2F484EA966CD5A46 /* ForceFeedback.framework */; }; + 1B8B600655202E66597A6A1E /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 01151A0B6D9422C20F99251B /* CoreFoundation.framework */; }; + 35A63C9C2D0E087E232429CF /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 711A00A97A0E506D5F82591B /* OpenGL.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 581F727C2E205CC67F140529 /* SDL.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL.c"; path = "../../../../src/SDL.c"; sourceTree = ""; }; + 20A12A2435417EEB1A001847 /* SDL_assert.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_assert.c"; path = "../../../../src/SDL_assert.c"; sourceTree = ""; }; + 3DBA229B02BC326E66521EC6 /* SDL_assert_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_assert_c.h"; path = "../../../../src/SDL_assert_c.h"; sourceTree = ""; }; + 7C4669E76F5E4522717C37DD /* SDL_error.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_error.c"; path = "../../../../src/SDL_error.c"; sourceTree = ""; }; + 300D65535AAF1A8F2739388E /* SDL_error_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_error_c.h"; path = "../../../../src/SDL_error_c.h"; sourceTree = ""; }; + 1D2E68ED4D66639038F63099 /* SDL_hints.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_hints.c"; path = "../../../../src/SDL_hints.c"; sourceTree = ""; }; + 4EAE1E8A03AF0D8C0BC74C60 /* SDL_log.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_log.c"; path = "../../../../src/SDL_log.c"; sourceTree = ""; }; + 741E10D47F9F35F77FC23C71 /* SDL_atomic.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_atomic.c"; path = "../../../../src/atomic/SDL_atomic.c"; sourceTree = ""; }; + 545D521E33195938012A701C /* SDL_spinlock.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_spinlock.c"; path = "../../../../src/atomic/SDL_spinlock.c"; sourceTree = ""; }; + 009822131E4843700095766C /* SDL_audio.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_audio.c"; path = "../../../../src/audio/SDL_audio.c"; sourceTree = ""; }; + 7C8304171E6648543F9779B6 /* SDL_audio_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_audio_c.h"; path = "../../../../src/audio/SDL_audio_c.h"; sourceTree = ""; }; + 2BA37BD372FE166821D80A1E /* SDL_audiocvt.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_audiocvt.c"; path = "../../../../src/audio/SDL_audiocvt.c"; sourceTree = ""; }; + 5D2936CF698D392735D76E9E /* SDL_audiodev.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_audiodev.c"; path = "../../../../src/audio/SDL_audiodev.c"; sourceTree = ""; }; + 1F255A29771744AC1DFE48A0 /* SDL_audiodev_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_audiodev_c.h"; path = "../../../../src/audio/SDL_audiodev_c.h"; sourceTree = ""; }; + 14AA3D784A5D4B873D657338 /* SDL_audiomem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_audiomem.h"; path = "../../../../src/audio/SDL_audiomem.h"; sourceTree = ""; }; + 76263CFA4F4A3E8E74966406 /* SDL_audiotypecvt.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_audiotypecvt.c"; path = "../../../../src/audio/SDL_audiotypecvt.c"; sourceTree = ""; }; + 748562A8151756FF3FE91679 /* SDL_mixer.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_mixer.c"; path = "../../../../src/audio/SDL_mixer.c"; sourceTree = ""; }; + 7B696A2B3C9847A40FD30FA2 /* SDL_sysaudio.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_sysaudio.h"; path = "../../../../src/audio/SDL_sysaudio.h"; sourceTree = ""; }; + 58E6725272291A8B48974EC3 /* SDL_wave.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_wave.c"; path = "../../../../src/audio/SDL_wave.c"; sourceTree = ""; }; + 00EA32A02E3338A774D7623F /* SDL_wave.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_wave.h"; path = "../../../../src/audio/SDL_wave.h"; sourceTree = ""; }; + 17F2408C59BB1CE53ACB077B /* SDL_coreaudio.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_coreaudio.c"; path = "../../../../src/audio/coreaudio/SDL_coreaudio.c"; sourceTree = ""; }; + 4EE3552C72927CDA048947F7 /* SDL_coreaudio.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_coreaudio.h"; path = "../../../../src/audio/coreaudio/SDL_coreaudio.h"; sourceTree = ""; }; + 694A007643FB227E1C011EE8 /* SDL_diskaudio.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_diskaudio.c"; path = "../../../../src/audio/disk/SDL_diskaudio.c"; sourceTree = ""; }; + 29C54C2B479130B15A262000 /* SDL_diskaudio.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_diskaudio.h"; path = "../../../../src/audio/disk/SDL_diskaudio.h"; sourceTree = ""; }; + 183031E40F3E3665462E31AC /* SDL_dummyaudio.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_dummyaudio.c"; path = "../../../../src/audio/dummy/SDL_dummyaudio.c"; sourceTree = ""; }; + 06A572223CF8475871EE7D5C /* SDL_dummyaudio.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_dummyaudio.h"; path = "../../../../src/audio/dummy/SDL_dummyaudio.h"; sourceTree = ""; }; + 399D7F372AA42CDF004A30CB /* SDL_cpuinfo.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_cpuinfo.c"; path = "../../../../src/cpuinfo/SDL_cpuinfo.c"; sourceTree = ""; }; + 5EEA55BC35E77DD14C8B6DEA /* SDL_clipboardevents.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_clipboardevents.c"; path = "../../../../src/events/SDL_clipboardevents.c"; sourceTree = ""; }; + 130E0CF138CF24996422240B /* SDL_clipboardevents_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_clipboardevents_c.h"; path = "../../../../src/events/SDL_clipboardevents_c.h"; sourceTree = ""; }; + 64680D041F9E679917CF3CB8 /* SDL_dropevents.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_dropevents.c"; path = "../../../../src/events/SDL_dropevents.c"; sourceTree = ""; }; + 688C5D160E4C409930EB1C46 /* SDL_dropevents_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_dropevents_c.h"; path = "../../../../src/events/SDL_dropevents_c.h"; sourceTree = ""; }; + 67B9300749251C797177656C /* SDL_events.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_events.c"; path = "../../../../src/events/SDL_events.c"; sourceTree = ""; }; + 576820C320D25B890F7E4EE7 /* SDL_events_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_events_c.h"; path = "../../../../src/events/SDL_events_c.h"; sourceTree = ""; }; + 2427171D0D16540755560B01 /* SDL_gesture.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_gesture.c"; path = "../../../../src/events/SDL_gesture.c"; sourceTree = ""; }; + 353545A10ADB514C610609C6 /* SDL_gesture_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_gesture_c.h"; path = "../../../../src/events/SDL_gesture_c.h"; sourceTree = ""; }; + 4A4523A15D1D31E40DBA55EF /* SDL_keyboard.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_keyboard.c"; path = "../../../../src/events/SDL_keyboard.c"; sourceTree = ""; }; + 74B612214A4706DA719F28D2 /* SDL_keyboard_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_keyboard_c.h"; path = "../../../../src/events/SDL_keyboard_c.h"; sourceTree = ""; }; + 0E064D1B5215736C4B0C0F8B /* SDL_mouse.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_mouse.c"; path = "../../../../src/events/SDL_mouse.c"; sourceTree = ""; }; + 058B27A349C800B503ED6669 /* SDL_mouse_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_mouse_c.h"; path = "../../../../src/events/SDL_mouse_c.h"; sourceTree = ""; }; + 7EAB2812398D5FDE1566622B /* SDL_quit.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_quit.c"; path = "../../../../src/events/SDL_quit.c"; sourceTree = ""; }; + 13A403E279690000102705FE /* SDL_sysevents.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_sysevents.h"; path = "../../../../src/events/SDL_sysevents.h"; sourceTree = ""; }; + 11625DDF6F935BC24C1658C6 /* SDL_touch.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_touch.c"; path = "../../../../src/events/SDL_touch.c"; sourceTree = ""; }; + 08D035322454110E49E76A60 /* SDL_touch_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_touch_c.h"; path = "../../../../src/events/SDL_touch_c.h"; sourceTree = ""; }; + 7B0D1AE01FCA24EC38765CFF /* SDL_windowevents.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_windowevents.c"; path = "../../../../src/events/SDL_windowevents.c"; sourceTree = ""; }; + 06FA2EC12902637126010F3E /* SDL_windowevents_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_windowevents_c.h"; path = "../../../../src/events/SDL_windowevents_c.h"; sourceTree = ""; }; + 3D290B0440424FCA73116E71 /* blank_cursor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "blank_cursor.h"; path = "../../../../src/events/blank_cursor.h"; sourceTree = ""; }; + 5E5607A90E0E7383395F1124 /* default_cursor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "default_cursor.h"; path = "../../../../src/events/default_cursor.h"; sourceTree = ""; }; + 5D38365C0E6E6FB712EA76DC /* scancodes_darwin.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "scancodes_darwin.h"; path = "../../../../src/events/scancodes_darwin.h"; sourceTree = ""; }; + 0BE05A937D854CC543FB3741 /* scancodes_linux.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "scancodes_linux.h"; path = "../../../../src/events/scancodes_linux.h"; sourceTree = ""; }; + 1A9C33FD4D512FE04A4308B1 /* scancodes_windows.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "scancodes_windows.h"; path = "../../../../src/events/scancodes_windows.h"; sourceTree = ""; }; + 59691A177371256478D52733 /* scancodes_xfree86.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "scancodes_xfree86.h"; path = "../../../../src/events/scancodes_xfree86.h"; sourceTree = ""; }; + 46E842226EEF2BBD3E14319D /* SDL_rwops.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_rwops.c"; path = "../../../../src/file/SDL_rwops.c"; sourceTree = ""; }; + 5ED91E7C0367157226554461 /* SDL_rwopsbundlesupport.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_rwopsbundlesupport.h"; path = "../../../../src/file/cocoa/SDL_rwopsbundlesupport.h"; sourceTree = ""; }; + 5E087787656B7EF200787EF7 /* SDL_rwopsbundlesupport.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "SDL_rwopsbundlesupport.m"; path = "../../../../src/file/cocoa/SDL_rwopsbundlesupport.m"; sourceTree = ""; }; + 7927299A5CBA392013905A95 /* SDL_sysfilesystem.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "SDL_sysfilesystem.m"; path = "../../../../src/filesystem/cocoa/SDL_sysfilesystem.m"; sourceTree = ""; }; + 6C027EE044E726073F02545E /* SDL_haptic.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_haptic.c"; path = "../../../../src/haptic/SDL_haptic.c"; sourceTree = ""; }; + 6CA146A939633B3D587234B0 /* SDL_haptic_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_haptic_c.h"; path = "../../../../src/haptic/SDL_haptic_c.h"; sourceTree = ""; }; + 465F3E1A22A90B691CB6261A /* SDL_syshaptic.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_syshaptic.h"; path = "../../../../src/haptic/SDL_syshaptic.h"; sourceTree = ""; }; + 466551BC2C236A3C09D52B8C /* SDL_syshaptic.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_syshaptic.c"; path = "../../../../src/haptic/darwin/SDL_syshaptic.c"; sourceTree = ""; }; + 7D0C59A3666A74AD19C81F68 /* SDL_gamecontroller.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_gamecontroller.c"; path = "../../../../src/joystick/SDL_gamecontroller.c"; sourceTree = ""; }; + 7EBA21266FA01ACA47254FA4 /* SDL_gamecontrollerdb.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_gamecontrollerdb.h"; path = "../../../../src/joystick/SDL_gamecontrollerdb.h"; sourceTree = ""; }; + 4FCA1736705A5DC74EC17138 /* SDL_joystick.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_joystick.c"; path = "../../../../src/joystick/SDL_joystick.c"; sourceTree = ""; }; + 77AB1AAE2997056268FF5C5C /* SDL_joystick_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_joystick_c.h"; path = "../../../../src/joystick/SDL_joystick_c.h"; sourceTree = ""; }; + 2DD4468E154E427A6D1B3C33 /* SDL_sysjoystick.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_sysjoystick.h"; path = "../../../../src/joystick/SDL_sysjoystick.h"; sourceTree = ""; }; + 79981D6D163C5F2060C66FA5 /* SDL_sysjoystick.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_sysjoystick.c"; path = "../../../../src/joystick/darwin/SDL_sysjoystick.c"; sourceTree = ""; }; + 5E8A65BF1C1807EF6C8522A1 /* SDL_sysjoystick_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_sysjoystick_c.h"; path = "../../../../src/joystick/darwin/SDL_sysjoystick_c.h"; sourceTree = ""; }; + 31CD0B3A1CC508507B0E69C7 /* SDL_sysloadso.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_sysloadso.c"; path = "../../../../src/loadso/dlopen/SDL_sysloadso.c"; sourceTree = ""; }; + 1C2235273DF86C1B64BC738C /* SDL_power.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_power.c"; path = "../../../../src/power/SDL_power.c"; sourceTree = ""; }; + 6A4855D539F85E716904291D /* SDL_syspower.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_syspower.c"; path = "../../../../src/power/macosx/SDL_syspower.c"; sourceTree = ""; }; + 550435DE0C8635D76B737308 /* SDL_render.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_render.c"; path = "../../../../src/render/SDL_render.c"; sourceTree = ""; }; + 0B803F96427D29011CAC67A9 /* SDL_sysrender.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_sysrender.h"; path = "../../../../src/render/SDL_sysrender.h"; sourceTree = ""; }; + 30C711D35F4E10AE14064022 /* SDL_yuv_mmx.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_yuv_mmx.c"; path = "../../../../src/render/SDL_yuv_mmx.c"; sourceTree = ""; }; + 2B19077009C9231E3CB109F9 /* SDL_yuv_sw.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_yuv_sw.c"; path = "../../../../src/render/SDL_yuv_sw.c"; sourceTree = ""; }; + 49360D2910D87F4C61260CC1 /* SDL_yuv_sw_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_yuv_sw_c.h"; path = "../../../../src/render/SDL_yuv_sw_c.h"; sourceTree = ""; }; + 09C048B2597C65C2452F29A1 /* mmx.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "mmx.h"; path = "../../../../src/render/mmx.h"; sourceTree = ""; }; + 02615473574C5DA45F8119C2 /* SDL_glfuncs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_glfuncs.h"; path = "../../../../src/render/opengl/SDL_glfuncs.h"; sourceTree = ""; }; + 2E98213F58C83B7679EA2EE0 /* SDL_render_gl.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_render_gl.c"; path = "../../../../src/render/opengl/SDL_render_gl.c"; sourceTree = ""; }; + 74E6545673FD059731C53CB0 /* SDL_shaders_gl.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_shaders_gl.c"; path = "../../../../src/render/opengl/SDL_shaders_gl.c"; sourceTree = ""; }; + 7E5F355E58573DA27BC14C1C /* SDL_shaders_gl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_shaders_gl.h"; path = "../../../../src/render/opengl/SDL_shaders_gl.h"; sourceTree = ""; }; + 139751A76375191B64F53E7D /* SDL_blendfillrect.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_blendfillrect.c"; path = "../../../../src/render/software/SDL_blendfillrect.c"; sourceTree = ""; }; + 64FD5AD01DA8269C6D04363A /* SDL_blendfillrect.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_blendfillrect.h"; path = "../../../../src/render/software/SDL_blendfillrect.h"; sourceTree = ""; }; + 2E0B793E01E363125E115555 /* SDL_blendline.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_blendline.c"; path = "../../../../src/render/software/SDL_blendline.c"; sourceTree = ""; }; + 70F6353E33186EFC79F57A18 /* SDL_blendline.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_blendline.h"; path = "../../../../src/render/software/SDL_blendline.h"; sourceTree = ""; }; + 47A60CF070301F215AA31899 /* SDL_blendpoint.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_blendpoint.c"; path = "../../../../src/render/software/SDL_blendpoint.c"; sourceTree = ""; }; + 357F47816FF76A56538A1A90 /* SDL_blendpoint.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_blendpoint.h"; path = "../../../../src/render/software/SDL_blendpoint.h"; sourceTree = ""; }; + 6F3E58C258E816C01EE5607B /* SDL_draw.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_draw.h"; path = "../../../../src/render/software/SDL_draw.h"; sourceTree = ""; }; + 3DC17B6963CD575538C46E2B /* SDL_drawline.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_drawline.c"; path = "../../../../src/render/software/SDL_drawline.c"; sourceTree = ""; }; + 6BEC714C75AA234067F04A6F /* SDL_drawline.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_drawline.h"; path = "../../../../src/render/software/SDL_drawline.h"; sourceTree = ""; }; + 57200BE31613529B5E4D145A /* SDL_drawpoint.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_drawpoint.c"; path = "../../../../src/render/software/SDL_drawpoint.c"; sourceTree = ""; }; + 3140693929B158EB4CBA6F56 /* SDL_drawpoint.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_drawpoint.h"; path = "../../../../src/render/software/SDL_drawpoint.h"; sourceTree = ""; }; + 7F4003F22A2B03CC4F3E2570 /* SDL_render_sw.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_render_sw.c"; path = "../../../../src/render/software/SDL_render_sw.c"; sourceTree = ""; }; + 13DE07DE194D2BA503B10D81 /* SDL_render_sw_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_render_sw_c.h"; path = "../../../../src/render/software/SDL_render_sw_c.h"; sourceTree = ""; }; + 34F408411DF145AD78114160 /* SDL_rotate.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_rotate.c"; path = "../../../../src/render/software/SDL_rotate.c"; sourceTree = ""; }; + 2BAA4C9A41A6056A24A70D24 /* SDL_rotate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_rotate.h"; path = "../../../../src/render/software/SDL_rotate.h"; sourceTree = ""; }; + 467E7A495D341EA43CA77D04 /* SDL_getenv.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_getenv.c"; path = "../../../../src/stdlib/SDL_getenv.c"; sourceTree = ""; }; + 7420083415F10DBF1A6E4645 /* SDL_iconv.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_iconv.c"; path = "../../../../src/stdlib/SDL_iconv.c"; sourceTree = ""; }; + 6AAD26CD05F31E954E925A93 /* SDL_malloc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_malloc.c"; path = "../../../../src/stdlib/SDL_malloc.c"; sourceTree = ""; }; + 1A637631359161D6452A680F /* SDL_qsort.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_qsort.c"; path = "../../../../src/stdlib/SDL_qsort.c"; sourceTree = ""; }; + 0B1A13D3324F661B06A354E4 /* SDL_stdlib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_stdlib.c"; path = "../../../../src/stdlib/SDL_stdlib.c"; sourceTree = ""; }; + 76AA2E0B0F173AC9212F4258 /* SDL_string.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_string.c"; path = "../../../../src/stdlib/SDL_string.c"; sourceTree = ""; }; + 5AAF37911F8240A92E0F1490 /* SDL_systhread.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_systhread.h"; path = "../../../../src/thread/SDL_systhread.h"; sourceTree = ""; }; + 00BF063F2A516202081956FF /* SDL_thread.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_thread.c"; path = "../../../../src/thread/SDL_thread.c"; sourceTree = ""; }; + 78FB562052435E795D701744 /* SDL_thread_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_thread_c.h"; path = "../../../../src/thread/SDL_thread_c.h"; sourceTree = ""; }; + 75A15D1D350165C72B266D64 /* SDL_syscond.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_syscond.c"; path = "../../../../src/thread/pthread/SDL_syscond.c"; sourceTree = ""; }; + 575F34176E7226D0364C71AC /* SDL_sysmutex.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_sysmutex.c"; path = "../../../../src/thread/pthread/SDL_sysmutex.c"; sourceTree = ""; }; + 0CC42FB1128B78AA72B36280 /* SDL_sysmutex_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_sysmutex_c.h"; path = "../../../../src/thread/pthread/SDL_sysmutex_c.h"; sourceTree = ""; }; + 68EA167A2FA9170A1EEA3B1D /* SDL_syssem.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_syssem.c"; path = "../../../../src/thread/pthread/SDL_syssem.c"; sourceTree = ""; }; + 2F031FEF2BCC1434771A7E86 /* SDL_systhread.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_systhread.c"; path = "../../../../src/thread/pthread/SDL_systhread.c"; sourceTree = ""; }; + 3FD000ED7A01775526CA5618 /* SDL_systhread_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_systhread_c.h"; path = "../../../../src/thread/pthread/SDL_systhread_c.h"; sourceTree = ""; }; + 6A8F127A2C4E6F364C1526F0 /* SDL_systls.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_systls.c"; path = "../../../../src/thread/pthread/SDL_systls.c"; sourceTree = ""; }; + 08B34CDF5C9079763C624849 /* SDL_timer.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_timer.c"; path = "../../../../src/timer/SDL_timer.c"; sourceTree = ""; }; + 336A25DF147652083BCD3D3C /* SDL_timer_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_timer_c.h"; path = "../../../../src/timer/SDL_timer_c.h"; sourceTree = ""; }; + 6A01774C1EED1B2144AE1CB5 /* SDL_systimer.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_systimer.c"; path = "../../../../src/timer/unix/SDL_systimer.c"; sourceTree = ""; }; + 676211D87FE20B7150213164 /* SDL_RLEaccel.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_RLEaccel.c"; path = "../../../../src/video/SDL_RLEaccel.c"; sourceTree = ""; }; + 32C66811376436BE0E942436 /* SDL_RLEaccel_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_RLEaccel_c.h"; path = "../../../../src/video/SDL_RLEaccel_c.h"; sourceTree = ""; }; + 7B5F52584ED13C49741749BD /* SDL_blit.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_blit.c"; path = "../../../../src/video/SDL_blit.c"; sourceTree = ""; }; + 4C266BB0748836070E5430AB /* SDL_blit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_blit.h"; path = "../../../../src/video/SDL_blit.h"; sourceTree = ""; }; + 6BD9773F57DE397A34542B86 /* SDL_blit_0.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_blit_0.c"; path = "../../../../src/video/SDL_blit_0.c"; sourceTree = ""; }; + 5F717A917D9207E82B1709FD /* SDL_blit_1.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_blit_1.c"; path = "../../../../src/video/SDL_blit_1.c"; sourceTree = ""; }; + 4A7C2E9C357B39870C9C7CBB /* SDL_blit_A.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_blit_A.c"; path = "../../../../src/video/SDL_blit_A.c"; sourceTree = ""; }; + 16F56E412F037AA6626704FC /* SDL_blit_N.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_blit_N.c"; path = "../../../../src/video/SDL_blit_N.c"; sourceTree = ""; }; + 12AD22506E1411CA1FCA193D /* SDL_blit_auto.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_blit_auto.c"; path = "../../../../src/video/SDL_blit_auto.c"; sourceTree = ""; }; + 24D062C176AE370B678D5E1A /* SDL_blit_auto.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_blit_auto.h"; path = "../../../../src/video/SDL_blit_auto.h"; sourceTree = ""; }; + 7D4437C37F683A8A58F55923 /* SDL_blit_copy.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_blit_copy.c"; path = "../../../../src/video/SDL_blit_copy.c"; sourceTree = ""; }; + 260722C00E09302702FA08F5 /* SDL_blit_copy.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_blit_copy.h"; path = "../../../../src/video/SDL_blit_copy.h"; sourceTree = ""; }; + 2C3813742F9649C6666B1E7E /* SDL_blit_slow.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_blit_slow.c"; path = "../../../../src/video/SDL_blit_slow.c"; sourceTree = ""; }; + 772B39E25F5C46CF744B6DC7 /* SDL_blit_slow.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_blit_slow.h"; path = "../../../../src/video/SDL_blit_slow.h"; sourceTree = ""; }; + 626030677A9E27FC1E8935A1 /* SDL_bmp.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_bmp.c"; path = "../../../../src/video/SDL_bmp.c"; sourceTree = ""; }; + 5C4629AC64180D01435D314B /* SDL_clipboard.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_clipboard.c"; path = "../../../../src/video/SDL_clipboard.c"; sourceTree = ""; }; + 1AA429B9420C620D5F982BCC /* SDL_egl.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_egl.c"; path = "../../../../src/video/SDL_egl.c"; sourceTree = ""; }; + 6005192E4497458D4A615860 /* SDL_egl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_egl.h"; path = "../../../../src/video/SDL_egl.h"; sourceTree = ""; }; + 127978F1333C57F33D196715 /* SDL_fillrect.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_fillrect.c"; path = "../../../../src/video/SDL_fillrect.c"; sourceTree = ""; }; + 1C8921DA02C03ADB0F4646F8 /* SDL_pixels.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_pixels.c"; path = "../../../../src/video/SDL_pixels.c"; sourceTree = ""; }; + 133907A045651496256139AF /* SDL_pixels_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_pixels_c.h"; path = "../../../../src/video/SDL_pixels_c.h"; sourceTree = ""; }; + 39842F4E596B39E8643764C3 /* SDL_rect.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_rect.c"; path = "../../../../src/video/SDL_rect.c"; sourceTree = ""; }; + 530646B0528B495D2A062BFD /* SDL_rect_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_rect_c.h"; path = "../../../../src/video/SDL_rect_c.h"; sourceTree = ""; }; + 1A481A30600E3DFE77A26D0A /* SDL_shape.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_shape.c"; path = "../../../../src/video/SDL_shape.c"; sourceTree = ""; }; + 61CD6881175C22CC253B4D8E /* SDL_shape_internals.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_shape_internals.h"; path = "../../../../src/video/SDL_shape_internals.h"; sourceTree = ""; }; + 467C2DC84A7B76C05E9E120F /* SDL_stretch.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_stretch.c"; path = "../../../../src/video/SDL_stretch.c"; sourceTree = ""; }; + 518E5DE30064338C4BC17126 /* SDL_surface.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_surface.c"; path = "../../../../src/video/SDL_surface.c"; sourceTree = ""; }; + 184509C109CB13FB64680AD8 /* SDL_sysvideo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_sysvideo.h"; path = "../../../../src/video/SDL_sysvideo.h"; sourceTree = ""; }; + 095B54196A9037AE32C14507 /* SDL_video.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_video.c"; path = "../../../../src/video/SDL_video.c"; sourceTree = ""; }; + 54280E727B4A720C0E194582 /* SDL_cocoaclipboard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_cocoaclipboard.h"; path = "../../../../src/video/cocoa/SDL_cocoaclipboard.h"; sourceTree = ""; }; + 6B1A7D591BBF260340365717 /* SDL_cocoaclipboard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "SDL_cocoaclipboard.m"; path = "../../../../src/video/cocoa/SDL_cocoaclipboard.m"; sourceTree = ""; }; + 1A270B314E6440B967AF1587 /* SDL_cocoaevents.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_cocoaevents.h"; path = "../../../../src/video/cocoa/SDL_cocoaevents.h"; sourceTree = ""; }; + 6CD471DB63ED0C072F712786 /* SDL_cocoaevents.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "SDL_cocoaevents.m"; path = "../../../../src/video/cocoa/SDL_cocoaevents.m"; sourceTree = ""; }; + 5EB34F5F7E84410D43390A37 /* SDL_cocoakeyboard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_cocoakeyboard.h"; path = "../../../../src/video/cocoa/SDL_cocoakeyboard.h"; sourceTree = ""; }; + 4FF971A805D912AE7C3511F7 /* SDL_cocoakeyboard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "SDL_cocoakeyboard.m"; path = "../../../../src/video/cocoa/SDL_cocoakeyboard.m"; sourceTree = ""; }; + 3E163466557909D8647817DB /* SDL_cocoamessagebox.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_cocoamessagebox.h"; path = "../../../../src/video/cocoa/SDL_cocoamessagebox.h"; sourceTree = ""; }; + 59FA32BE7DCE61473C727995 /* SDL_cocoamessagebox.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "SDL_cocoamessagebox.m"; path = "../../../../src/video/cocoa/SDL_cocoamessagebox.m"; sourceTree = ""; }; + 2C045FBC31E41DC90B983693 /* SDL_cocoamodes.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_cocoamodes.h"; path = "../../../../src/video/cocoa/SDL_cocoamodes.h"; sourceTree = ""; }; + 090C140773EF64C55AB32D4D /* SDL_cocoamodes.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "SDL_cocoamodes.m"; path = "../../../../src/video/cocoa/SDL_cocoamodes.m"; sourceTree = ""; }; + 15593F5425E22D8A44911FF5 /* SDL_cocoamouse.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_cocoamouse.h"; path = "../../../../src/video/cocoa/SDL_cocoamouse.h"; sourceTree = ""; }; + 36ED1B4309137DF626BA1304 /* SDL_cocoamouse.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "SDL_cocoamouse.m"; path = "../../../../src/video/cocoa/SDL_cocoamouse.m"; sourceTree = ""; }; + 0F950D9601F85D8A22A44228 /* SDL_cocoamousetap.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_cocoamousetap.h"; path = "../../../../src/video/cocoa/SDL_cocoamousetap.h"; sourceTree = ""; }; + 6A5F20432ADC009E19FA2C1E /* SDL_cocoamousetap.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "SDL_cocoamousetap.m"; path = "../../../../src/video/cocoa/SDL_cocoamousetap.m"; sourceTree = ""; }; + 25DE143C196C205B51980555 /* SDL_cocoaopengl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_cocoaopengl.h"; path = "../../../../src/video/cocoa/SDL_cocoaopengl.h"; sourceTree = ""; }; + 3A4F55752FF300143C835B3B /* SDL_cocoaopengl.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "SDL_cocoaopengl.m"; path = "../../../../src/video/cocoa/SDL_cocoaopengl.m"; sourceTree = ""; }; + 2ABD0A8B59FA64842735209E /* SDL_cocoashape.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_cocoashape.h"; path = "../../../../src/video/cocoa/SDL_cocoashape.h"; sourceTree = ""; }; + 05CF7A893F4C1E2406AA11AA /* SDL_cocoashape.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "SDL_cocoashape.m"; path = "../../../../src/video/cocoa/SDL_cocoashape.m"; sourceTree = ""; }; + 5B8467FB461063CC729E1488 /* SDL_cocoavideo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_cocoavideo.h"; path = "../../../../src/video/cocoa/SDL_cocoavideo.h"; sourceTree = ""; }; + 297A08E31208586E5A9E4EB3 /* SDL_cocoavideo.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "SDL_cocoavideo.m"; path = "../../../../src/video/cocoa/SDL_cocoavideo.m"; sourceTree = ""; }; + 619C5EFB358E1D2248E557BF /* SDL_cocoawindow.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_cocoawindow.h"; path = "../../../../src/video/cocoa/SDL_cocoawindow.h"; sourceTree = ""; }; + 650003A700A8250D0F784E5A /* SDL_cocoawindow.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "SDL_cocoawindow.m"; path = "../../../../src/video/cocoa/SDL_cocoawindow.m"; sourceTree = ""; }; + 2DD03852185F1A5357D16C0E /* SDL_nullevents.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_nullevents.c"; path = "../../../../src/video/dummy/SDL_nullevents.c"; sourceTree = ""; }; + 64AC1624164719933D7D7C2D /* SDL_nullevents_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_nullevents_c.h"; path = "../../../../src/video/dummy/SDL_nullevents_c.h"; sourceTree = ""; }; + 7FE32E2D489C1F5676D070F3 /* SDL_nullframebuffer.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_nullframebuffer.c"; path = "../../../../src/video/dummy/SDL_nullframebuffer.c"; sourceTree = ""; }; + 568828F86F02017D64E909DD /* SDL_nullframebuffer_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_nullframebuffer_c.h"; path = "../../../../src/video/dummy/SDL_nullframebuffer_c.h"; sourceTree = ""; }; + 4576033B4C1F3E0D521D1842 /* SDL_nullvideo.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_nullvideo.c"; path = "../../../../src/video/dummy/SDL_nullvideo.c"; sourceTree = ""; }; + 7F1D717B488B567150456ADD /* SDL_nullvideo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_nullvideo.h"; path = "../../../../src/video/dummy/SDL_nullvideo.h"; sourceTree = ""; }; + 58465C34749040C207292140 /* SDL_x11clipboard.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_x11clipboard.c"; path = "../../../../src/video/x11/SDL_x11clipboard.c"; sourceTree = ""; }; + 60AA6D98240C1E16753F1F78 /* SDL_x11clipboard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_x11clipboard.h"; path = "../../../../src/video/x11/SDL_x11clipboard.h"; sourceTree = ""; }; + 36703205767270E5711876F8 /* SDL_x11dyn.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_x11dyn.c"; path = "../../../../src/video/x11/SDL_x11dyn.c"; sourceTree = ""; }; + 0E5A3F0C3CC540030ACE7F88 /* SDL_x11dyn.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_x11dyn.h"; path = "../../../../src/video/x11/SDL_x11dyn.h"; sourceTree = ""; }; + 7448494A32995EB4084F3B7D /* SDL_x11events.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_x11events.c"; path = "../../../../src/video/x11/SDL_x11events.c"; sourceTree = ""; }; + 56517D6D01E97D41451D059D /* SDL_x11events.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_x11events.h"; path = "../../../../src/video/x11/SDL_x11events.h"; sourceTree = ""; }; + 3EF375972CA805682F8F74F4 /* SDL_x11framebuffer.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_x11framebuffer.c"; path = "../../../../src/video/x11/SDL_x11framebuffer.c"; sourceTree = ""; }; + 79E9493B77FA59684C5974B7 /* SDL_x11framebuffer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_x11framebuffer.h"; path = "../../../../src/video/x11/SDL_x11framebuffer.h"; sourceTree = ""; }; + 4543334473D06CAE254F00B1 /* SDL_x11keyboard.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_x11keyboard.c"; path = "../../../../src/video/x11/SDL_x11keyboard.c"; sourceTree = ""; }; + 39CC0CFD6B7A19ED26007BB4 /* SDL_x11keyboard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_x11keyboard.h"; path = "../../../../src/video/x11/SDL_x11keyboard.h"; sourceTree = ""; }; + 1D2B22B2741D4C6060E23309 /* SDL_x11messagebox.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_x11messagebox.c"; path = "../../../../src/video/x11/SDL_x11messagebox.c"; sourceTree = ""; }; + 4062686F73250F0A0246473E /* SDL_x11messagebox.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_x11messagebox.h"; path = "../../../../src/video/x11/SDL_x11messagebox.h"; sourceTree = ""; }; + 448A72B44504304B144C3E13 /* SDL_x11modes.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_x11modes.c"; path = "../../../../src/video/x11/SDL_x11modes.c"; sourceTree = ""; }; + 27FB6C3B1FDD1C925C2D4B61 /* SDL_x11modes.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_x11modes.h"; path = "../../../../src/video/x11/SDL_x11modes.h"; sourceTree = ""; }; + 54687D293BC66D0A5C631CD2 /* SDL_x11mouse.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_x11mouse.c"; path = "../../../../src/video/x11/SDL_x11mouse.c"; sourceTree = ""; }; + 5CCE0B2D44471331046106E6 /* SDL_x11mouse.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_x11mouse.h"; path = "../../../../src/video/x11/SDL_x11mouse.h"; sourceTree = ""; }; + 72DF3CFC4E8B09C256A46840 /* SDL_x11opengl.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_x11opengl.c"; path = "../../../../src/video/x11/SDL_x11opengl.c"; sourceTree = ""; }; + 217F515544D919DC3B542BDB /* SDL_x11opengl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_x11opengl.h"; path = "../../../../src/video/x11/SDL_x11opengl.h"; sourceTree = ""; }; + 76560AEB0562134E7A7E6B36 /* SDL_x11opengles.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_x11opengles.c"; path = "../../../../src/video/x11/SDL_x11opengles.c"; sourceTree = ""; }; + 01A4506F329C34E9544E65C9 /* SDL_x11opengles.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_x11opengles.h"; path = "../../../../src/video/x11/SDL_x11opengles.h"; sourceTree = ""; }; + 077269AF6E2A464C6904277D /* SDL_x11shape.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_x11shape.c"; path = "../../../../src/video/x11/SDL_x11shape.c"; sourceTree = ""; }; + 60910F6738E036B6171642D5 /* SDL_x11shape.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_x11shape.h"; path = "../../../../src/video/x11/SDL_x11shape.h"; sourceTree = ""; }; + 3E0545D92AE266C52A3A6C93 /* SDL_x11sym.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_x11sym.h"; path = "../../../../src/video/x11/SDL_x11sym.h"; sourceTree = ""; }; + 652626396914587E520F7C8C /* SDL_x11touch.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_x11touch.c"; path = "../../../../src/video/x11/SDL_x11touch.c"; sourceTree = ""; }; + 6796539A4EAF7FA5634E3B4F /* SDL_x11touch.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_x11touch.h"; path = "../../../../src/video/x11/SDL_x11touch.h"; sourceTree = ""; }; + 668E75F870AC40425B0D639F /* SDL_x11video.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_x11video.c"; path = "../../../../src/video/x11/SDL_x11video.c"; sourceTree = ""; }; + 3B503D8111BC749C35456BC7 /* SDL_x11video.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_x11video.h"; path = "../../../../src/video/x11/SDL_x11video.h"; sourceTree = ""; }; + 7FB6418B385644032BC404E9 /* SDL_x11window.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_x11window.c"; path = "../../../../src/video/x11/SDL_x11window.c"; sourceTree = ""; }; + 03BC5ACE246D31A203BD2B15 /* SDL_x11window.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_x11window.h"; path = "../../../../src/video/x11/SDL_x11window.h"; sourceTree = ""; }; + 085A68FD7A9151CF2E095ECB /* SDL_x11xinput2.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_x11xinput2.c"; path = "../../../../src/video/x11/SDL_x11xinput2.c"; sourceTree = ""; }; + 349969F15E6A02A1270D6BA0 /* SDL_x11xinput2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_x11xinput2.h"; path = "../../../../src/video/x11/SDL_x11xinput2.h"; sourceTree = ""; }; + 11F5212A6B0F3DF7559B6BE3 /* edid-parse.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "edid-parse.c"; path = "../../../../src/video/x11/edid-parse.c"; sourceTree = ""; }; + 1A364F9D6023493E20920E8B /* edid.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "edid.h"; path = "../../../../src/video/x11/edid.h"; sourceTree = ""; }; + 5A492D32559D49902FB05F45 /* imKStoUCS.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "imKStoUCS.c"; path = "../../../../src/video/x11/imKStoUCS.c"; sourceTree = ""; }; + 71206CFD70915771458F467A /* imKStoUCS.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "imKStoUCS.h"; path = "../../../../src/video/x11/imKStoUCS.h"; sourceTree = ""; }; + 16087FC97B0458F07F343E84 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 517D7ABB382B14B10EEF73BE /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 5DCD682F04A36BC83BCC7159 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 0E21418B420C32A255982342 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 7735724A00183AF616F6186E /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 12566C6F031E562D44A61FA5 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 1F7A40AB2F484EA966CD5A46 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 01151A0B6D9422C20F99251B /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 711A00A97A0E506D5F82591B /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 07D004B11E733F1F0EA93105 /* libSDL2.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libSDL2.a"; path = "libSDL2.a"; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 6D2F46F31435311A2F32250F /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 6BB96439701E5363094C5DD5 /* AudioToolbox.framework in Frameworks */, + 63DC268722B13B3312A72478 /* AudioUnit.framework in Frameworks */, + 116D397753E162E06F2A4550 /* Cocoa.framework in Frameworks */, + 673D5F7B1D0E077948DA7126 /* CoreAudio.framework in Frameworks */, + 6C2B372D02D23CB0511D7889 /* IOKit.framework in Frameworks */, + 236B622A48961F397FF06EF7 /* Carbon.framework in Frameworks */, + 49957BE83EA63CF059A30F9C /* ForceFeedback.framework in Frameworks */, + 1B8B600655202E66597A6A1E /* CoreFoundation.framework in Frameworks */, + 35A63C9C2D0E087E232429CF /* OpenGL.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 2B14576D52B77980500C4530 /* SDL2 */ = { + isa = PBXGroup; + children = ( + 7F1615B67DCA68AA1B4A2D65 /* src */, + 778B60761D6F788D20CF1089 /* Frameworks */, + 64BF6DFE5A77548A48B644E1 /* Products */, + ); + name = "SDL2"; + sourceTree = ""; + }; + 7F1615B67DCA68AA1B4A2D65 /* src */ = { + isa = PBXGroup; + children = ( + 581F727C2E205CC67F140529 /* SDL.c */, + 20A12A2435417EEB1A001847 /* SDL_assert.c */, + 3DBA229B02BC326E66521EC6 /* SDL_assert_c.h */, + 7C4669E76F5E4522717C37DD /* SDL_error.c */, + 300D65535AAF1A8F2739388E /* SDL_error_c.h */, + 1D2E68ED4D66639038F63099 /* SDL_hints.c */, + 4EAE1E8A03AF0D8C0BC74C60 /* SDL_log.c */, + 688234A1457F4899390578CF /* atomic */, + 3B436A4F077A1168739174F1 /* audio */, + 5FBE445076B30F5E181A6E72 /* cpuinfo */, + 55AD5AFE0AC25A02516B6C0F /* events */, + 169E182E269F4D57356F462F /* file */, + 202A4F20595F11DE1C0E5DEF /* filesystem */, + 402B7BD16DA178D365B82E74 /* haptic */, + 23392EB30D7244ED2CAD16E6 /* joystick */, + 2C2475364CBA026D4A046C45 /* loadso */, + 2FF70AA82AFD089324DC1914 /* power */, + 746E7D0E29004F251DB16B9F /* render */, + 60E97A5510353DFB504F1D03 /* stdlib */, + 511B65CD237E28165A3B0FFD /* thread */, + 74166396173F5600536A7BC8 /* timer */, + 3FC4100D63F1660C3B995BD6 /* video */, + ); + name = "src"; + sourceTree = ""; + }; + 688234A1457F4899390578CF /* atomic */ = { + isa = PBXGroup; + children = ( + 741E10D47F9F35F77FC23C71 /* SDL_atomic.c */, + 545D521E33195938012A701C /* SDL_spinlock.c */, + ); + name = "atomic"; + sourceTree = ""; + }; + 3B436A4F077A1168739174F1 /* audio */ = { + isa = PBXGroup; + children = ( + 009822131E4843700095766C /* SDL_audio.c */, + 7C8304171E6648543F9779B6 /* SDL_audio_c.h */, + 2BA37BD372FE166821D80A1E /* SDL_audiocvt.c */, + 5D2936CF698D392735D76E9E /* SDL_audiodev.c */, + 1F255A29771744AC1DFE48A0 /* SDL_audiodev_c.h */, + 14AA3D784A5D4B873D657338 /* SDL_audiomem.h */, + 76263CFA4F4A3E8E74966406 /* SDL_audiotypecvt.c */, + 748562A8151756FF3FE91679 /* SDL_mixer.c */, + 7B696A2B3C9847A40FD30FA2 /* SDL_sysaudio.h */, + 58E6725272291A8B48974EC3 /* SDL_wave.c */, + 00EA32A02E3338A774D7623F /* SDL_wave.h */, + 2D5C19413AFC226317315284 /* coreaudio */, + 3ECA7F9726472B184E7B1DC0 /* disk */, + 65C05A2970AC5239286044C7 /* dummy */, + ); + name = "audio"; + sourceTree = ""; + }; + 2D5C19413AFC226317315284 /* coreaudio */ = { + isa = PBXGroup; + children = ( + 17F2408C59BB1CE53ACB077B /* SDL_coreaudio.c */, + 4EE3552C72927CDA048947F7 /* SDL_coreaudio.h */, + ); + name = "coreaudio"; + sourceTree = ""; + }; + 3ECA7F9726472B184E7B1DC0 /* disk */ = { + isa = PBXGroup; + children = ( + 694A007643FB227E1C011EE8 /* SDL_diskaudio.c */, + 29C54C2B479130B15A262000 /* SDL_diskaudio.h */, + ); + name = "disk"; + sourceTree = ""; + }; + 65C05A2970AC5239286044C7 /* dummy */ = { + isa = PBXGroup; + children = ( + 183031E40F3E3665462E31AC /* SDL_dummyaudio.c */, + 06A572223CF8475871EE7D5C /* SDL_dummyaudio.h */, + ); + name = "dummy"; + sourceTree = ""; + }; + 5FBE445076B30F5E181A6E72 /* cpuinfo */ = { + isa = PBXGroup; + children = ( + 399D7F372AA42CDF004A30CB /* SDL_cpuinfo.c */, + ); + name = "cpuinfo"; + sourceTree = ""; + }; + 55AD5AFE0AC25A02516B6C0F /* events */ = { + isa = PBXGroup; + children = ( + 5EEA55BC35E77DD14C8B6DEA /* SDL_clipboardevents.c */, + 130E0CF138CF24996422240B /* SDL_clipboardevents_c.h */, + 64680D041F9E679917CF3CB8 /* SDL_dropevents.c */, + 688C5D160E4C409930EB1C46 /* SDL_dropevents_c.h */, + 67B9300749251C797177656C /* SDL_events.c */, + 576820C320D25B890F7E4EE7 /* SDL_events_c.h */, + 2427171D0D16540755560B01 /* SDL_gesture.c */, + 353545A10ADB514C610609C6 /* SDL_gesture_c.h */, + 4A4523A15D1D31E40DBA55EF /* SDL_keyboard.c */, + 74B612214A4706DA719F28D2 /* SDL_keyboard_c.h */, + 0E064D1B5215736C4B0C0F8B /* SDL_mouse.c */, + 058B27A349C800B503ED6669 /* SDL_mouse_c.h */, + 7EAB2812398D5FDE1566622B /* SDL_quit.c */, + 13A403E279690000102705FE /* SDL_sysevents.h */, + 11625DDF6F935BC24C1658C6 /* SDL_touch.c */, + 08D035322454110E49E76A60 /* SDL_touch_c.h */, + 7B0D1AE01FCA24EC38765CFF /* SDL_windowevents.c */, + 06FA2EC12902637126010F3E /* SDL_windowevents_c.h */, + 3D290B0440424FCA73116E71 /* blank_cursor.h */, + 5E5607A90E0E7383395F1124 /* default_cursor.h */, + 5D38365C0E6E6FB712EA76DC /* scancodes_darwin.h */, + 0BE05A937D854CC543FB3741 /* scancodes_linux.h */, + 1A9C33FD4D512FE04A4308B1 /* scancodes_windows.h */, + 59691A177371256478D52733 /* scancodes_xfree86.h */, + ); + name = "events"; + sourceTree = ""; + }; + 169E182E269F4D57356F462F /* file */ = { + isa = PBXGroup; + children = ( + 46E842226EEF2BBD3E14319D /* SDL_rwops.c */, + 0F7844EB5A6F39F066B52DF5 /* cocoa */, + ); + name = "file"; + sourceTree = ""; + }; + 0F7844EB5A6F39F066B52DF5 /* cocoa */ = { + isa = PBXGroup; + children = ( + 5ED91E7C0367157226554461 /* SDL_rwopsbundlesupport.h */, + 5E087787656B7EF200787EF7 /* SDL_rwopsbundlesupport.m */, + ); + name = "cocoa"; + sourceTree = ""; + }; + 202A4F20595F11DE1C0E5DEF /* filesystem */ = { + isa = PBXGroup; + children = ( + 2F2D3D4B30AA6BA34C0647E6 /* cocoa */, + ); + name = "filesystem"; + sourceTree = ""; + }; + 2F2D3D4B30AA6BA34C0647E6 /* cocoa */ = { + isa = PBXGroup; + children = ( + 7927299A5CBA392013905A95 /* SDL_sysfilesystem.m */, + ); + name = "cocoa"; + sourceTree = ""; + }; + 402B7BD16DA178D365B82E74 /* haptic */ = { + isa = PBXGroup; + children = ( + 6C027EE044E726073F02545E /* SDL_haptic.c */, + 6CA146A939633B3D587234B0 /* SDL_haptic_c.h */, + 465F3E1A22A90B691CB6261A /* SDL_syshaptic.h */, + 35210A3C265F39CF73320BC1 /* darwin */, + ); + name = "haptic"; + sourceTree = ""; + }; + 35210A3C265F39CF73320BC1 /* darwin */ = { + isa = PBXGroup; + children = ( + 466551BC2C236A3C09D52B8C /* SDL_syshaptic.c */, + ); + name = "darwin"; + sourceTree = ""; + }; + 23392EB30D7244ED2CAD16E6 /* joystick */ = { + isa = PBXGroup; + children = ( + 7D0C59A3666A74AD19C81F68 /* SDL_gamecontroller.c */, + 7EBA21266FA01ACA47254FA4 /* SDL_gamecontrollerdb.h */, + 4FCA1736705A5DC74EC17138 /* SDL_joystick.c */, + 77AB1AAE2997056268FF5C5C /* SDL_joystick_c.h */, + 2DD4468E154E427A6D1B3C33 /* SDL_sysjoystick.h */, + 3A02105A17B3711E2080498F /* darwin */, + ); + name = "joystick"; + sourceTree = ""; + }; + 3A02105A17B3711E2080498F /* darwin */ = { + isa = PBXGroup; + children = ( + 79981D6D163C5F2060C66FA5 /* SDL_sysjoystick.c */, + 5E8A65BF1C1807EF6C8522A1 /* SDL_sysjoystick_c.h */, + ); + name = "darwin"; + sourceTree = ""; + }; + 2C2475364CBA026D4A046C45 /* loadso */ = { + isa = PBXGroup; + children = ( + 2EE438980D7C6329498E1501 /* dlopen */, + ); + name = "loadso"; + sourceTree = ""; + }; + 2EE438980D7C6329498E1501 /* dlopen */ = { + isa = PBXGroup; + children = ( + 31CD0B3A1CC508507B0E69C7 /* SDL_sysloadso.c */, + ); + name = "dlopen"; + sourceTree = ""; + }; + 2FF70AA82AFD089324DC1914 /* power */ = { + isa = PBXGroup; + children = ( + 1C2235273DF86C1B64BC738C /* SDL_power.c */, + 029A07530D871F233FEF258B /* macosx */, + ); + name = "power"; + sourceTree = ""; + }; + 029A07530D871F233FEF258B /* macosx */ = { + isa = PBXGroup; + children = ( + 6A4855D539F85E716904291D /* SDL_syspower.c */, + ); + name = "macosx"; + sourceTree = ""; + }; + 746E7D0E29004F251DB16B9F /* render */ = { + isa = PBXGroup; + children = ( + 550435DE0C8635D76B737308 /* SDL_render.c */, + 0B803F96427D29011CAC67A9 /* SDL_sysrender.h */, + 30C711D35F4E10AE14064022 /* SDL_yuv_mmx.c */, + 2B19077009C9231E3CB109F9 /* SDL_yuv_sw.c */, + 49360D2910D87F4C61260CC1 /* SDL_yuv_sw_c.h */, + 09C048B2597C65C2452F29A1 /* mmx.h */, + 3C2D69C5103C04B5214F4C19 /* opengl */, + 5E27683C527C630169150FED /* software */, + ); + name = "render"; + sourceTree = ""; + }; + 3C2D69C5103C04B5214F4C19 /* opengl */ = { + isa = PBXGroup; + children = ( + 02615473574C5DA45F8119C2 /* SDL_glfuncs.h */, + 2E98213F58C83B7679EA2EE0 /* SDL_render_gl.c */, + 74E6545673FD059731C53CB0 /* SDL_shaders_gl.c */, + 7E5F355E58573DA27BC14C1C /* SDL_shaders_gl.h */, + ); + name = "opengl"; + sourceTree = ""; + }; + 5E27683C527C630169150FED /* software */ = { + isa = PBXGroup; + children = ( + 139751A76375191B64F53E7D /* SDL_blendfillrect.c */, + 64FD5AD01DA8269C6D04363A /* SDL_blendfillrect.h */, + 2E0B793E01E363125E115555 /* SDL_blendline.c */, + 70F6353E33186EFC79F57A18 /* SDL_blendline.h */, + 47A60CF070301F215AA31899 /* SDL_blendpoint.c */, + 357F47816FF76A56538A1A90 /* SDL_blendpoint.h */, + 6F3E58C258E816C01EE5607B /* SDL_draw.h */, + 3DC17B6963CD575538C46E2B /* SDL_drawline.c */, + 6BEC714C75AA234067F04A6F /* SDL_drawline.h */, + 57200BE31613529B5E4D145A /* SDL_drawpoint.c */, + 3140693929B158EB4CBA6F56 /* SDL_drawpoint.h */, + 7F4003F22A2B03CC4F3E2570 /* SDL_render_sw.c */, + 13DE07DE194D2BA503B10D81 /* SDL_render_sw_c.h */, + 34F408411DF145AD78114160 /* SDL_rotate.c */, + 2BAA4C9A41A6056A24A70D24 /* SDL_rotate.h */, + ); + name = "software"; + sourceTree = ""; + }; + 60E97A5510353DFB504F1D03 /* stdlib */ = { + isa = PBXGroup; + children = ( + 467E7A495D341EA43CA77D04 /* SDL_getenv.c */, + 7420083415F10DBF1A6E4645 /* SDL_iconv.c */, + 6AAD26CD05F31E954E925A93 /* SDL_malloc.c */, + 1A637631359161D6452A680F /* SDL_qsort.c */, + 0B1A13D3324F661B06A354E4 /* SDL_stdlib.c */, + 76AA2E0B0F173AC9212F4258 /* SDL_string.c */, + ); + name = "stdlib"; + sourceTree = ""; + }; + 511B65CD237E28165A3B0FFD /* thread */ = { + isa = PBXGroup; + children = ( + 5AAF37911F8240A92E0F1490 /* SDL_systhread.h */, + 00BF063F2A516202081956FF /* SDL_thread.c */, + 78FB562052435E795D701744 /* SDL_thread_c.h */, + 77227A70027F1AEE2C864094 /* pthread */, + ); + name = "thread"; + sourceTree = ""; + }; + 77227A70027F1AEE2C864094 /* pthread */ = { + isa = PBXGroup; + children = ( + 75A15D1D350165C72B266D64 /* SDL_syscond.c */, + 575F34176E7226D0364C71AC /* SDL_sysmutex.c */, + 0CC42FB1128B78AA72B36280 /* SDL_sysmutex_c.h */, + 68EA167A2FA9170A1EEA3B1D /* SDL_syssem.c */, + 2F031FEF2BCC1434771A7E86 /* SDL_systhread.c */, + 3FD000ED7A01775526CA5618 /* SDL_systhread_c.h */, + 6A8F127A2C4E6F364C1526F0 /* SDL_systls.c */, + ); + name = "pthread"; + sourceTree = ""; + }; + 74166396173F5600536A7BC8 /* timer */ = { + isa = PBXGroup; + children = ( + 08B34CDF5C9079763C624849 /* SDL_timer.c */, + 336A25DF147652083BCD3D3C /* SDL_timer_c.h */, + 532B498A1E6302C9738B2DFF /* unix */, + ); + name = "timer"; + sourceTree = ""; + }; + 532B498A1E6302C9738B2DFF /* unix */ = { + isa = PBXGroup; + children = ( + 6A01774C1EED1B2144AE1CB5 /* SDL_systimer.c */, + ); + name = "unix"; + sourceTree = ""; + }; + 3FC4100D63F1660C3B995BD6 /* video */ = { + isa = PBXGroup; + children = ( + 676211D87FE20B7150213164 /* SDL_RLEaccel.c */, + 32C66811376436BE0E942436 /* SDL_RLEaccel_c.h */, + 7B5F52584ED13C49741749BD /* SDL_blit.c */, + 4C266BB0748836070E5430AB /* SDL_blit.h */, + 6BD9773F57DE397A34542B86 /* SDL_blit_0.c */, + 5F717A917D9207E82B1709FD /* SDL_blit_1.c */, + 4A7C2E9C357B39870C9C7CBB /* SDL_blit_A.c */, + 16F56E412F037AA6626704FC /* SDL_blit_N.c */, + 12AD22506E1411CA1FCA193D /* SDL_blit_auto.c */, + 24D062C176AE370B678D5E1A /* SDL_blit_auto.h */, + 7D4437C37F683A8A58F55923 /* SDL_blit_copy.c */, + 260722C00E09302702FA08F5 /* SDL_blit_copy.h */, + 2C3813742F9649C6666B1E7E /* SDL_blit_slow.c */, + 772B39E25F5C46CF744B6DC7 /* SDL_blit_slow.h */, + 626030677A9E27FC1E8935A1 /* SDL_bmp.c */, + 5C4629AC64180D01435D314B /* SDL_clipboard.c */, + 1AA429B9420C620D5F982BCC /* SDL_egl.c */, + 6005192E4497458D4A615860 /* SDL_egl.h */, + 127978F1333C57F33D196715 /* SDL_fillrect.c */, + 1C8921DA02C03ADB0F4646F8 /* SDL_pixels.c */, + 133907A045651496256139AF /* SDL_pixels_c.h */, + 39842F4E596B39E8643764C3 /* SDL_rect.c */, + 530646B0528B495D2A062BFD /* SDL_rect_c.h */, + 1A481A30600E3DFE77A26D0A /* SDL_shape.c */, + 61CD6881175C22CC253B4D8E /* SDL_shape_internals.h */, + 467C2DC84A7B76C05E9E120F /* SDL_stretch.c */, + 518E5DE30064338C4BC17126 /* SDL_surface.c */, + 184509C109CB13FB64680AD8 /* SDL_sysvideo.h */, + 095B54196A9037AE32C14507 /* SDL_video.c */, + 14664CC87EFE15A30F7210A7 /* cocoa */, + 72A40D0826B87C940A0F1136 /* dummy */, + 70A4478517CF4901021961DA /* x11 */, + ); + name = "video"; + sourceTree = ""; + }; + 14664CC87EFE15A30F7210A7 /* cocoa */ = { + isa = PBXGroup; + children = ( + 54280E727B4A720C0E194582 /* SDL_cocoaclipboard.h */, + 6B1A7D591BBF260340365717 /* SDL_cocoaclipboard.m */, + 1A270B314E6440B967AF1587 /* SDL_cocoaevents.h */, + 6CD471DB63ED0C072F712786 /* SDL_cocoaevents.m */, + 5EB34F5F7E84410D43390A37 /* SDL_cocoakeyboard.h */, + 4FF971A805D912AE7C3511F7 /* SDL_cocoakeyboard.m */, + 3E163466557909D8647817DB /* SDL_cocoamessagebox.h */, + 59FA32BE7DCE61473C727995 /* SDL_cocoamessagebox.m */, + 2C045FBC31E41DC90B983693 /* SDL_cocoamodes.h */, + 090C140773EF64C55AB32D4D /* SDL_cocoamodes.m */, + 15593F5425E22D8A44911FF5 /* SDL_cocoamouse.h */, + 36ED1B4309137DF626BA1304 /* SDL_cocoamouse.m */, + 0F950D9601F85D8A22A44228 /* SDL_cocoamousetap.h */, + 6A5F20432ADC009E19FA2C1E /* SDL_cocoamousetap.m */, + 25DE143C196C205B51980555 /* SDL_cocoaopengl.h */, + 3A4F55752FF300143C835B3B /* SDL_cocoaopengl.m */, + 2ABD0A8B59FA64842735209E /* SDL_cocoashape.h */, + 05CF7A893F4C1E2406AA11AA /* SDL_cocoashape.m */, + 5B8467FB461063CC729E1488 /* SDL_cocoavideo.h */, + 297A08E31208586E5A9E4EB3 /* SDL_cocoavideo.m */, + 619C5EFB358E1D2248E557BF /* SDL_cocoawindow.h */, + 650003A700A8250D0F784E5A /* SDL_cocoawindow.m */, + ); + name = "cocoa"; + sourceTree = ""; + }; + 72A40D0826B87C940A0F1136 /* dummy */ = { + isa = PBXGroup; + children = ( + 2DD03852185F1A5357D16C0E /* SDL_nullevents.c */, + 64AC1624164719933D7D7C2D /* SDL_nullevents_c.h */, + 7FE32E2D489C1F5676D070F3 /* SDL_nullframebuffer.c */, + 568828F86F02017D64E909DD /* SDL_nullframebuffer_c.h */, + 4576033B4C1F3E0D521D1842 /* SDL_nullvideo.c */, + 7F1D717B488B567150456ADD /* SDL_nullvideo.h */, + ); + name = "dummy"; + sourceTree = ""; + }; + 70A4478517CF4901021961DA /* x11 */ = { + isa = PBXGroup; + children = ( + 58465C34749040C207292140 /* SDL_x11clipboard.c */, + 60AA6D98240C1E16753F1F78 /* SDL_x11clipboard.h */, + 36703205767270E5711876F8 /* SDL_x11dyn.c */, + 0E5A3F0C3CC540030ACE7F88 /* SDL_x11dyn.h */, + 7448494A32995EB4084F3B7D /* SDL_x11events.c */, + 56517D6D01E97D41451D059D /* SDL_x11events.h */, + 3EF375972CA805682F8F74F4 /* SDL_x11framebuffer.c */, + 79E9493B77FA59684C5974B7 /* SDL_x11framebuffer.h */, + 4543334473D06CAE254F00B1 /* SDL_x11keyboard.c */, + 39CC0CFD6B7A19ED26007BB4 /* SDL_x11keyboard.h */, + 1D2B22B2741D4C6060E23309 /* SDL_x11messagebox.c */, + 4062686F73250F0A0246473E /* SDL_x11messagebox.h */, + 448A72B44504304B144C3E13 /* SDL_x11modes.c */, + 27FB6C3B1FDD1C925C2D4B61 /* SDL_x11modes.h */, + 54687D293BC66D0A5C631CD2 /* SDL_x11mouse.c */, + 5CCE0B2D44471331046106E6 /* SDL_x11mouse.h */, + 72DF3CFC4E8B09C256A46840 /* SDL_x11opengl.c */, + 217F515544D919DC3B542BDB /* SDL_x11opengl.h */, + 76560AEB0562134E7A7E6B36 /* SDL_x11opengles.c */, + 01A4506F329C34E9544E65C9 /* SDL_x11opengles.h */, + 077269AF6E2A464C6904277D /* SDL_x11shape.c */, + 60910F6738E036B6171642D5 /* SDL_x11shape.h */, + 3E0545D92AE266C52A3A6C93 /* SDL_x11sym.h */, + 652626396914587E520F7C8C /* SDL_x11touch.c */, + 6796539A4EAF7FA5634E3B4F /* SDL_x11touch.h */, + 668E75F870AC40425B0D639F /* SDL_x11video.c */, + 3B503D8111BC749C35456BC7 /* SDL_x11video.h */, + 7FB6418B385644032BC404E9 /* SDL_x11window.c */, + 03BC5ACE246D31A203BD2B15 /* SDL_x11window.h */, + 085A68FD7A9151CF2E095ECB /* SDL_x11xinput2.c */, + 349969F15E6A02A1270D6BA0 /* SDL_x11xinput2.h */, + 11F5212A6B0F3DF7559B6BE3 /* edid-parse.c */, + 1A364F9D6023493E20920E8B /* edid.h */, + 5A492D32559D49902FB05F45 /* imKStoUCS.c */, + 71206CFD70915771458F467A /* imKStoUCS.h */, + ); + name = "x11"; + sourceTree = ""; + }; + 778B60761D6F788D20CF1089 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 16087FC97B0458F07F343E84 /* AudioToolbox.framework */, + 517D7ABB382B14B10EEF73BE /* AudioUnit.framework */, + 5DCD682F04A36BC83BCC7159 /* Cocoa.framework */, + 0E21418B420C32A255982342 /* CoreAudio.framework */, + 7735724A00183AF616F6186E /* IOKit.framework */, + 12566C6F031E562D44A61FA5 /* Carbon.framework */, + 1F7A40AB2F484EA966CD5A46 /* ForceFeedback.framework */, + 01151A0B6D9422C20F99251B /* CoreFoundation.framework */, + 711A00A97A0E506D5F82591B /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 64BF6DFE5A77548A48B644E1 /* Products */ = { + isa = PBXGroup; + children = ( + 07D004B11E733F1F0EA93105 /* libSDL2.a */, + ); + name = "Products"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 58C10ED14175754444033E0E /* SDL2 */ = { + isa = PBXNativeTarget; + buildConfigurationList = 132E34C647554236197A43CB /* Build configuration list for PBXNativeTarget "SDL2" */; + buildPhases = ( + 50D0255976AC17D747C2368C /* Resources */, + 30F2001848230434140646C7 /* Sources */, + 6D2F46F31435311A2F32250F /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "SDL2"; + productName = "SDL2"; + productReference = 07D004B11E733F1F0EA93105 /* libSDL2.a */; + productType = "com.apple.product-type.library.static"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "SDL2" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 2B14576D52B77980500C4530 /* SDL2 */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 58C10ED14175754444033E0E /* libSDL2.a */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 50D0255976AC17D747C2368C /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 30F2001848230434140646C7 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 6F3F406D60231E94188751BC /* SDL.c in Sources */, + 19FA05DA50E3679839F6602B /* SDL_assert.c in Sources */, + 356E00387A38053E5EE8705E /* SDL_error.c in Sources */, + 149E4E143D540244690204F8 /* SDL_hints.c in Sources */, + 6D2117B123FD403E5F17176E /* SDL_log.c in Sources */, + 52F43FB27CAA2A34780F23D2 /* SDL_atomic.c in Sources */, + 492C77BF4FA9117B4C456DEE /* SDL_spinlock.c in Sources */, + 2F1F27BE61AD6559771B219B /* SDL_audio.c in Sources */, + 461F2F773934429817AA4299 /* SDL_audiocvt.c in Sources */, + 79F231BA363B7C142C533385 /* SDL_audiodev.c in Sources */, + 637A1C5F33B070F311F368D2 /* SDL_audiotypecvt.c in Sources */, + 16451C9255A341FF66894454 /* SDL_mixer.c in Sources */, + 20DE6FC1792A40ED25F514F9 /* SDL_wave.c in Sources */, + 50C80EB5218555D753C36826 /* SDL_coreaudio.c in Sources */, + 44F427256F5C0EC273FC3B89 /* SDL_diskaudio.c in Sources */, + 388A0733659279AE2A123B36 /* SDL_dummyaudio.c in Sources */, + 1362409443423D9B472D0416 /* SDL_cpuinfo.c in Sources */, + 2C9E656F18713B73279B4B04 /* SDL_clipboardevents.c in Sources */, + 0CCE44195C6176D8043D528A /* SDL_dropevents.c in Sources */, + 25F304341BF22DF974DF1780 /* SDL_events.c in Sources */, + 7D5172AE101630DD2E8D3D30 /* SDL_gesture.c in Sources */, + 6A112F1137181ABE5AC417D0 /* SDL_keyboard.c in Sources */, + 2EF9131C40D10D5B633214A1 /* SDL_mouse.c in Sources */, + 16DC68A33B9E04A63D9A54C6 /* SDL_quit.c in Sources */, + 53C876237C494B6428793CD6 /* SDL_touch.c in Sources */, + 778838BC7EAC5963763138C1 /* SDL_windowevents.c in Sources */, + 4F65225D210F1D0C223A3842 /* SDL_rwops.c in Sources */, + 189B1C085510122958EF71C2 /* SDL_rwopsbundlesupport.m in Sources */, + 218C0918297D7C1E31307429 /* SDL_sysfilesystem.m in Sources */, + 1F950ADC73537B891DE53BB8 /* SDL_haptic.c in Sources */, + 1DA01FF6657570AA36A52EC5 /* SDL_syshaptic.c in Sources */, + 689A0A855C4F785B5C981CA4 /* SDL_gamecontroller.c in Sources */, + 159C6EB8203936010A1F2027 /* SDL_joystick.c in Sources */, + 4FC953274C2A1641268F236B /* SDL_sysjoystick.c in Sources */, + 151061BF5CDD3CB1146656AF /* SDL_sysloadso.c in Sources */, + 7F9268CB0F1354E475291503 /* SDL_power.c in Sources */, + 6F6C5A254D6A1B6E6F2911D5 /* SDL_syspower.c in Sources */, + 34555B4E69CE63A24CDA7F43 /* SDL_render.c in Sources */, + 7BEF2DBE471D78592D830CFC /* SDL_yuv_mmx.c in Sources */, + 50E3046B39F125B111E552E5 /* SDL_yuv_sw.c in Sources */, + 35A118A4441C11DE1E126429 /* SDL_render_gl.c in Sources */, + 5D485D983D9508FF46252F6C /* SDL_shaders_gl.c in Sources */, + 0B755CE80D912DB50009511D /* SDL_blendfillrect.c in Sources */, + 73765AD0352731C868D24D4A /* SDL_blendline.c in Sources */, + 02947C1003D14ADE559D42B2 /* SDL_blendpoint.c in Sources */, + 75A536C37C5E31577AA043A4 /* SDL_drawline.c in Sources */, + 34792E3153922D7D763C170E /* SDL_drawpoint.c in Sources */, + 10763EF370CC093B1CFA183C /* SDL_render_sw.c in Sources */, + 110C5B4311ED10D54C4F62AA /* SDL_rotate.c in Sources */, + 48487F951B64565B7D7207CA /* SDL_getenv.c in Sources */, + 059730C916147C00706662AD /* SDL_iconv.c in Sources */, + 7296105F4E1C17650F3D73C9 /* SDL_malloc.c in Sources */, + 49DD00DB42335811763516DD /* SDL_qsort.c in Sources */, + 52DE7BE66FA215C168DF1677 /* SDL_stdlib.c in Sources */, + 5C645F5C4E433585671F555D /* SDL_string.c in Sources */, + 1C0923FF7665104E12545B0C /* SDL_thread.c in Sources */, + 56775E493033788C61470057 /* SDL_syscond.c in Sources */, + 6E88479E164B21F0200C15BC /* SDL_sysmutex.c in Sources */, + 28E422FD2DB22AD275C62496 /* SDL_syssem.c in Sources */, + 427C5DE627A9073945E63965 /* SDL_systhread.c in Sources */, + 74D208E105A93E03446D0CC3 /* SDL_systls.c in Sources */, + 55472CED35DA24E748C92A9D /* SDL_timer.c in Sources */, + 641F56DE115627885E68139B /* SDL_systimer.c in Sources */, + 58C65B09535869014BC3131C /* SDL_RLEaccel.c in Sources */, + 3E0401B74A716B967F1D70CB /* SDL_blit.c in Sources */, + 21B578155ED918C80674601C /* SDL_blit_0.c in Sources */, + 6E612A61515559E567CD5D9C /* SDL_blit_1.c in Sources */, + 5E200CE93B4833C9061C18AF /* SDL_blit_A.c in Sources */, + 71E83A8D25F069DC2952005B /* SDL_blit_N.c in Sources */, + 75EC6ADC292417204E4E701B /* SDL_blit_auto.c in Sources */, + 0F073C586C5B0777519F427F /* SDL_blit_copy.c in Sources */, + 1F897EA9155F39AB161168AD /* SDL_blit_slow.c in Sources */, + 78E46B133F7458F4295F5452 /* SDL_bmp.c in Sources */, + 6383693061D0250D26F00218 /* SDL_clipboard.c in Sources */, + 0BEF1BDA1C6F691D22EB02A7 /* SDL_egl.c in Sources */, + 13F970752FFF253553FD1C57 /* SDL_fillrect.c in Sources */, + 711F3C0A570B25DF7D873D2A /* SDL_pixels.c in Sources */, + 58AE29EA6A4E39D37DFF1403 /* SDL_rect.c in Sources */, + 46AA6A03274D62FC24FF0927 /* SDL_shape.c in Sources */, + 277D2B962D136C4A24D2142F /* SDL_stretch.c in Sources */, + 14010A0150CF689E0D9E3221 /* SDL_surface.c in Sources */, + 78B41B604F381B2D5C6D18E1 /* SDL_video.c in Sources */, + 67D15BC71BE7653C55D74F61 /* SDL_cocoaclipboard.m in Sources */, + 78F26FEE048D4A6B4A863229 /* SDL_cocoaevents.m in Sources */, + 6F89267B7FF56499250A71CC /* SDL_cocoakeyboard.m in Sources */, + 5CF76F752B327CD948535F8F /* SDL_cocoamessagebox.m in Sources */, + 2AC25E1763A837323CD605E7 /* SDL_cocoamodes.m in Sources */, + 7D0450A731DD481909466CA0 /* SDL_cocoamouse.m in Sources */, + 0E6135F17C3B3277248323EB /* SDL_cocoamousetap.m in Sources */, + 18E915CA0AF24DC818255656 /* SDL_cocoaopengl.m in Sources */, + 6C6654F603723710090735D5 /* SDL_cocoashape.m in Sources */, + 647B47720F656FFC2BF30900 /* SDL_cocoavideo.m in Sources */, + 32ED7E75749236CD56FF20F0 /* SDL_cocoawindow.m in Sources */, + 0F174DBC0448241115FC7C63 /* SDL_nullevents.c in Sources */, + 6BC505CE4607095478152E99 /* SDL_nullframebuffer.c in Sources */, + 44AF6A685C5A55FE4A5E19FC /* SDL_nullvideo.c in Sources */, + 287200EA3B9D424D5DE575FD /* SDL_x11clipboard.c in Sources */, + 4E2C59800F607C372D6A3089 /* SDL_x11dyn.c in Sources */, + 2DF75EB904B605E26DAF04C7 /* SDL_x11events.c in Sources */, + 47F6212A03D0643556910B37 /* SDL_x11framebuffer.c in Sources */, + 674049A36F4E1F8A39BA72F3 /* SDL_x11keyboard.c in Sources */, + 423735EE5D4E6C26652252E9 /* SDL_x11messagebox.c in Sources */, + 057D7414702F46FC7B087EDC /* SDL_x11modes.c in Sources */, + 4DE24CFB2C5D19C9769A7FB9 /* SDL_x11mouse.c in Sources */, + 448B41931F8356286212178E /* SDL_x11opengl.c in Sources */, + 5C724339694D58067B6016D3 /* SDL_x11opengles.c in Sources */, + 0F906C3D26303BD807A6588E /* SDL_x11shape.c in Sources */, + 6A5106E473582923650744EE /* SDL_x11touch.c in Sources */, + 11152B937B1F6F19699B764D /* SDL_x11video.c in Sources */, + 1CFD4BF822A240336A086B93 /* SDL_x11window.c in Sources */, + 640C07407CC856FB1B373B79 /* SDL_x11xinput2.c in Sources */, + 23120B9A3B8079C517555340 /* edid-parse.c in Sources */, + 6B5A02020724656F6C16507F /* imKStoUCS.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 2F9F246B26C024DC7F120D57 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/lib; + PRODUCT_NAME = "SDL2"; + }; + name = "Debug Universal"; + }; + 1F8157D3663E276E67CA365A /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/lib; + PRODUCT_NAME = "SDL2"; + }; + name = "Debug Native"; + }; + 3DB962F0119172E925261BFD /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/lib; + PRODUCT_NAME = "SDL2"; + }; + name = "Release Universal"; + }; + 74787FE45CB724B452A57D48 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/lib; + PRODUCT_NAME = "SDL2"; + }; + name = "Release Native"; + }; + 5130467F4DEC798D3DDE50E5 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "..", + "../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 04333FF1188C50D5561D33E2 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "..", + "../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 028974124FBE6DB33D647B20 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "..", + "../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 0F0067AB466871753BBD0402 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "..", + "../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 132E34C647554236197A43CB /* Build configuration list for PBXNativeTarget "libSDL2.a" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 2F9F246B26C024DC7F120D57 /* Debug Universal */, + 1F8157D3663E276E67CA365A /* Debug Native */, + 3DB962F0119172E925261BFD /* Release Universal */, + 74787FE45CB724B452A57D48 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "SDL2" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 5130467F4DEC798D3DDE50E5 /* Debug Universal */, + 04333FF1188C50D5561D33E2 /* Debug Native */, + 028974124FBE6DB33D647B20 /* Release Universal */, + 0F0067AB466871753BBD0402 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode3/SDL2main/SDL2main.xcodeproj/project.pbxproj b/premake/Xcode/Xcode3/SDL2main/SDL2main.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..f972b5c159be4 --- /dev/null +++ b/premake/Xcode/Xcode3/SDL2main/SDL2main.xcodeproj/project.pbxproj @@ -0,0 +1,323 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 7C6F655C3400039274C60CE8 /* SDL_dummy_main.c in Sources */ = {isa = PBXBuildFile; fileRef = 26C4436469AA4D7A0F7C1DFD /* SDL_dummy_main.c */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 26C4436469AA4D7A0F7C1DFD /* SDL_dummy_main.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_dummy_main.c"; path = "../../../../src/main/dummy/SDL_dummy_main.c"; sourceTree = ""; }; + 58DC62993160374E09FF7AD6 /* libSDL2main.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libSDL2main.a"; path = "libSDL2main.a"; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 21963BE338963B81309D4E7A /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 608409A47F473CA5269D156D /* SDL2main */ = { + isa = PBXGroup; + children = ( + 43645C8537AA27FA2F2F3BDD /* src */, + 69F4412F1D6557483C505475 /* Products */, + ); + name = "SDL2main"; + sourceTree = ""; + }; + 43645C8537AA27FA2F2F3BDD /* src */ = { + isa = PBXGroup; + children = ( + 31FB051624A240B6101F10A4 /* main */, + ); + name = "src"; + sourceTree = ""; + }; + 31FB051624A240B6101F10A4 /* main */ = { + isa = PBXGroup; + children = ( + 1AA63C577EFC727433BD4743 /* dummy */, + ); + name = "main"; + sourceTree = ""; + }; + 1AA63C577EFC727433BD4743 /* dummy */ = { + isa = PBXGroup; + children = ( + 26C4436469AA4D7A0F7C1DFD /* SDL_dummy_main.c */, + ); + name = "dummy"; + sourceTree = ""; + }; + 69F4412F1D6557483C505475 /* Products */ = { + isa = PBXGroup; + children = ( + 58DC62993160374E09FF7AD6 /* libSDL2main.a */, + ); + name = "Products"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 0E7126A94A11494963D3548B /* SDL2main */ = { + isa = PBXNativeTarget; + buildConfigurationList = 066A29C00B877F83230951D3 /* Build configuration list for PBXNativeTarget "SDL2main" */; + buildPhases = ( + 2FF90B8D051E2574710B253A /* Resources */, + 215446A6532346FA6D1F2C8C /* Sources */, + 21963BE338963B81309D4E7A /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "SDL2main"; + productName = "SDL2main"; + productReference = 58DC62993160374E09FF7AD6 /* libSDL2main.a */; + productType = "com.apple.product-type.library.static"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "SDL2main" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 608409A47F473CA5269D156D /* SDL2main */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 0E7126A94A11494963D3548B /* libSDL2main.a */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 2FF90B8D051E2574710B253A /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 215446A6532346FA6D1F2C8C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 7C6F655C3400039274C60CE8 /* SDL_dummy_main.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 510953B45C415358368511E1 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/lib; + PRODUCT_NAME = "SDL2main"; + }; + name = "Debug Universal"; + }; + 16D675B01A7317CD3B8D5FE5 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/lib; + PRODUCT_NAME = "SDL2main"; + }; + name = "Debug Native"; + }; + 76C85F4810AE2D6230A80EF9 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/lib; + PRODUCT_NAME = "SDL2main"; + }; + name = "Release Universal"; + }; + 6786373D26612E5222AC01B1 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/lib; + PRODUCT_NAME = "SDL2main"; + }; + name = "Release Native"; + }; + 57CB0CB34D9E521A60B061AC /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "..", + "../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 44C96A8A3A1153C9612956EB /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "..", + "../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 0AF04773722D251F47E85CD4 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "..", + "../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 328D4CB71647274B61221D5D /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "..", + "../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 066A29C00B877F83230951D3 /* Build configuration list for PBXNativeTarget "libSDL2main.a" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 510953B45C415358368511E1 /* Debug Universal */, + 16D675B01A7317CD3B8D5FE5 /* Debug Native */, + 76C85F4810AE2D6230A80EF9 /* Release Universal */, + 6786373D26612E5222AC01B1 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "SDL2main" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 57CB0CB34D9E521A60B061AC /* Debug Universal */, + 44C96A8A3A1153C9612956EB /* Debug Native */, + 0AF04773722D251F47E85CD4 /* Release Universal */, + 328D4CB71647274B61221D5D /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode3/SDL2test/SDL2test.xcodeproj/project.pbxproj b/premake/Xcode/Xcode3/SDL2test/SDL2test.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..18b8d47db7278 --- /dev/null +++ b/premake/Xcode/Xcode3/SDL2test/SDL2test.xcodeproj/project.pbxproj @@ -0,0 +1,520 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 337D79CE5C6E740E7845219E /* SDL_test_assert.c in Sources */ = {isa = PBXBuildFile; fileRef = 64702E4E1458346C45853388 /* SDL_test_assert.c */; }; + 0D1D797B22CC02F330FF5E47 /* SDL_test_common.c in Sources */ = {isa = PBXBuildFile; fileRef = 49A239233C6C6CA56CE74C48 /* SDL_test_common.c */; }; + 1327749E357953A70CCF170A /* SDL_test_compare.c in Sources */ = {isa = PBXBuildFile; fileRef = 2CD224BD127B6FAC31FB648B /* SDL_test_compare.c */; }; + 5BA46CE023E7234071C61356 /* SDL_test_crc32.c in Sources */ = {isa = PBXBuildFile; fileRef = 324A22B47C420DDB457464A4 /* SDL_test_crc32.c */; }; + 35EF0E232141409B16135264 /* SDL_test_font.c in Sources */ = {isa = PBXBuildFile; fileRef = 7C134A0D34FC4D84557A7740 /* SDL_test_font.c */; }; + 24FC39DE3EDC7E2810DE1A63 /* SDL_test_fuzzer.c in Sources */ = {isa = PBXBuildFile; fileRef = 298B79602BB7243F2DC918CC /* SDL_test_fuzzer.c */; }; + 17300EC9649122EC74172668 /* SDL_test_harness.c in Sources */ = {isa = PBXBuildFile; fileRef = 10E1293A4A1A080255541B1F /* SDL_test_harness.c */; }; + 3271353414A709102AEC727C /* SDL_test_imageBlit.c in Sources */ = {isa = PBXBuildFile; fileRef = 3473299674511A515EC85B18 /* SDL_test_imageBlit.c */; }; + 6F86057B520C152A35441188 /* SDL_test_imageBlitBlend.c in Sources */ = {isa = PBXBuildFile; fileRef = 46D4392C1C2A2D21746004B8 /* SDL_test_imageBlitBlend.c */; }; + 54B811C75417488052B86ACB /* SDL_test_imageFace.c in Sources */ = {isa = PBXBuildFile; fileRef = 02C0451848954C585F967106 /* SDL_test_imageFace.c */; }; + 30DD2C017D1C74A7192E20FD /* SDL_test_imagePrimitives.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F9A3A9453A870E641EC17FE /* SDL_test_imagePrimitives.c */; }; + 41C97B2F609370172B895949 /* SDL_test_imagePrimitivesBlend.c in Sources */ = {isa = PBXBuildFile; fileRef = 69340FD05C9810932D5B3DA7 /* SDL_test_imagePrimitivesBlend.c */; }; + 7A0D0AEA2B651F1557DE60A0 /* SDL_test_log.c in Sources */ = {isa = PBXBuildFile; fileRef = 50F457701A661F5C56DD6806 /* SDL_test_log.c */; }; + 33CD7CD04DFE6AE920702DA3 /* SDL_test_md5.c in Sources */ = {isa = PBXBuildFile; fileRef = 631451F96D09797A39395338 /* SDL_test_md5.c */; }; + 782955367C837DBE79096716 /* SDL_test_random.c in Sources */ = {isa = PBXBuildFile; fileRef = 30A82713021216C43C8619EC /* SDL_test_random.c */; }; + 445F64FC7ADA3EBA30845620 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7E114BF405C61A49375F6B9F /* AudioToolbox.framework */; }; + 628405F619B7693533F272CA /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5B96593D519A75EB2A392F97 /* AudioUnit.framework */; }; + 079374543BC5361C0E1C0F2C /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 45F83E8C66185B825C3B2F22 /* Cocoa.framework */; }; + 5AD0424A300F69DE2BBC4BC8 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 390F301014294D505E6811AA /* CoreAudio.framework */; }; + 5D1A13F94F9966E9571B3C91 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6C622BCF3FDE1F79421C672B /* IOKit.framework */; }; + 26C240F07CC4571159B3246F /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 762D124313B64A3B6DE020FA /* Carbon.framework */; }; + 36C219D71FEC743174BD4B24 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0DAE522C524806641A083AEB /* ForceFeedback.framework */; }; + 779B1E6F2FF24FF047276D63 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4BD07856726B7C7E5D950CE8 /* CoreFoundation.framework */; }; + 4CFD2303559549CC7D321ACE /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1C5049651C43767C030361EC /* OpenGL.framework */; }; + 66772CFF530D13744A817F94 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B6D31FD16317046144826F4 /* libSDL2main.a */; }; + 361A737046B91D3D2B122E80 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6EF4020950DF15C7645540BE /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 4256279152F56A071E0B1818 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 2586308C446C1C7A1D8D1F44 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 58DC62993160374E09FF7AD6; + remoteInfo = "libSDL2main.a"; + }; + 543772357FCE478840DB05E1 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 2586308C446C1C7A1D8D1F44 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 0E7126A94A11494963D3548B; + remoteInfo = "libSDL2main.a"; + }; + 15D75AF543BC727911CB4C32 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 7524156959DC362020BE45D2 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 07D004B11E733F1F0EA93105; + remoteInfo = "libSDL2.a"; + }; + 008B326E705E69EC1A0B00B4 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 7524156959DC362020BE45D2 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 58C10ED14175754444033E0E; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 64702E4E1458346C45853388 /* SDL_test_assert.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_test_assert.c"; path = "../../../../src/test/SDL_test_assert.c"; sourceTree = ""; }; + 49A239233C6C6CA56CE74C48 /* SDL_test_common.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_test_common.c"; path = "../../../../src/test/SDL_test_common.c"; sourceTree = ""; }; + 2CD224BD127B6FAC31FB648B /* SDL_test_compare.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_test_compare.c"; path = "../../../../src/test/SDL_test_compare.c"; sourceTree = ""; }; + 324A22B47C420DDB457464A4 /* SDL_test_crc32.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_test_crc32.c"; path = "../../../../src/test/SDL_test_crc32.c"; sourceTree = ""; }; + 7C134A0D34FC4D84557A7740 /* SDL_test_font.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_test_font.c"; path = "../../../../src/test/SDL_test_font.c"; sourceTree = ""; }; + 298B79602BB7243F2DC918CC /* SDL_test_fuzzer.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_test_fuzzer.c"; path = "../../../../src/test/SDL_test_fuzzer.c"; sourceTree = ""; }; + 10E1293A4A1A080255541B1F /* SDL_test_harness.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_test_harness.c"; path = "../../../../src/test/SDL_test_harness.c"; sourceTree = ""; }; + 3473299674511A515EC85B18 /* SDL_test_imageBlit.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_test_imageBlit.c"; path = "../../../../src/test/SDL_test_imageBlit.c"; sourceTree = ""; }; + 46D4392C1C2A2D21746004B8 /* SDL_test_imageBlitBlend.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_test_imageBlitBlend.c"; path = "../../../../src/test/SDL_test_imageBlitBlend.c"; sourceTree = ""; }; + 02C0451848954C585F967106 /* SDL_test_imageFace.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_test_imageFace.c"; path = "../../../../src/test/SDL_test_imageFace.c"; sourceTree = ""; }; + 3F9A3A9453A870E641EC17FE /* SDL_test_imagePrimitives.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_test_imagePrimitives.c"; path = "../../../../src/test/SDL_test_imagePrimitives.c"; sourceTree = ""; }; + 69340FD05C9810932D5B3DA7 /* SDL_test_imagePrimitivesBlend.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_test_imagePrimitivesBlend.c"; path = "../../../../src/test/SDL_test_imagePrimitivesBlend.c"; sourceTree = ""; }; + 50F457701A661F5C56DD6806 /* SDL_test_log.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_test_log.c"; path = "../../../../src/test/SDL_test_log.c"; sourceTree = ""; }; + 631451F96D09797A39395338 /* SDL_test_md5.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_test_md5.c"; path = "../../../../src/test/SDL_test_md5.c"; sourceTree = ""; }; + 30A82713021216C43C8619EC /* SDL_test_random.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_test_random.c"; path = "../../../../src/test/SDL_test_random.c"; sourceTree = ""; }; + 7E114BF405C61A49375F6B9F /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 5B96593D519A75EB2A392F97 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 45F83E8C66185B825C3B2F22 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 390F301014294D505E6811AA /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 6C622BCF3FDE1F79421C672B /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 762D124313B64A3B6DE020FA /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 0DAE522C524806641A083AEB /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 4BD07856726B7C7E5D950CE8 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 1C5049651C43767C030361EC /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 1E1175156F97314C291323CB /* libSDL2test.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libSDL2test.a"; path = "libSDL2test.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 2586308C446C1C7A1D8D1F44 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 7524156959DC362020BE45D2 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 3D48554E124D39E0335337FA /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 445F64FC7ADA3EBA30845620 /* AudioToolbox.framework in Frameworks */, + 628405F619B7693533F272CA /* AudioUnit.framework in Frameworks */, + 079374543BC5361C0E1C0F2C /* Cocoa.framework in Frameworks */, + 5AD0424A300F69DE2BBC4BC8 /* CoreAudio.framework in Frameworks */, + 5D1A13F94F9966E9571B3C91 /* IOKit.framework in Frameworks */, + 26C240F07CC4571159B3246F /* Carbon.framework in Frameworks */, + 36C219D71FEC743174BD4B24 /* ForceFeedback.framework in Frameworks */, + 779B1E6F2FF24FF047276D63 /* CoreFoundation.framework in Frameworks */, + 4CFD2303559549CC7D321ACE /* OpenGL.framework in Frameworks */, + 66772CFF530D13744A817F94 /* libSDL2main.a in Frameworks */, + 361A737046B91D3D2B122E80 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 1FB469BB7E2F5A4659ED5F39 /* SDL2test */ = { + isa = PBXGroup; + children = ( + 56EC37C45DBA006839404305 /* src */, + 795F6F6A1E037849252B6A89 /* Frameworks */, + 6A8845BC486E4A3701F1222D /* Products */, + 55E27D766A715CFB047C11E2 /* Projects */, + ); + name = "SDL2test"; + sourceTree = ""; + }; + 56EC37C45DBA006839404305 /* src */ = { + isa = PBXGroup; + children = ( + 1BF37558187B43BB605E5CCE /* test */, + ); + name = "src"; + sourceTree = ""; + }; + 1BF37558187B43BB605E5CCE /* test */ = { + isa = PBXGroup; + children = ( + 64702E4E1458346C45853388 /* SDL_test_assert.c */, + 49A239233C6C6CA56CE74C48 /* SDL_test_common.c */, + 2CD224BD127B6FAC31FB648B /* SDL_test_compare.c */, + 324A22B47C420DDB457464A4 /* SDL_test_crc32.c */, + 7C134A0D34FC4D84557A7740 /* SDL_test_font.c */, + 298B79602BB7243F2DC918CC /* SDL_test_fuzzer.c */, + 10E1293A4A1A080255541B1F /* SDL_test_harness.c */, + 3473299674511A515EC85B18 /* SDL_test_imageBlit.c */, + 46D4392C1C2A2D21746004B8 /* SDL_test_imageBlitBlend.c */, + 02C0451848954C585F967106 /* SDL_test_imageFace.c */, + 3F9A3A9453A870E641EC17FE /* SDL_test_imagePrimitives.c */, + 69340FD05C9810932D5B3DA7 /* SDL_test_imagePrimitivesBlend.c */, + 50F457701A661F5C56DD6806 /* SDL_test_log.c */, + 631451F96D09797A39395338 /* SDL_test_md5.c */, + 30A82713021216C43C8619EC /* SDL_test_random.c */, + ); + name = "test"; + sourceTree = ""; + }; + 795F6F6A1E037849252B6A89 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 7E114BF405C61A49375F6B9F /* AudioToolbox.framework */, + 5B96593D519A75EB2A392F97 /* AudioUnit.framework */, + 45F83E8C66185B825C3B2F22 /* Cocoa.framework */, + 390F301014294D505E6811AA /* CoreAudio.framework */, + 6C622BCF3FDE1F79421C672B /* IOKit.framework */, + 762D124313B64A3B6DE020FA /* Carbon.framework */, + 0DAE522C524806641A083AEB /* ForceFeedback.framework */, + 4BD07856726B7C7E5D950CE8 /* CoreFoundation.framework */, + 1C5049651C43767C030361EC /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 6A8845BC486E4A3701F1222D /* Products */ = { + isa = PBXGroup; + children = ( + 1E1175156F97314C291323CB /* libSDL2test.a */, + ); + name = "Products"; + sourceTree = ""; + }; + 55E27D766A715CFB047C11E2 /* Projects */ = { + isa = PBXGroup; + children = ( + 2586308C446C1C7A1D8D1F44 /* SDL2main.xcodeproj */, + 7524156959DC362020BE45D2 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 59F10019753464A80ACA61C2 /* Products */ = { + isa = PBXGroup; + children = ( + 3B6D31FD16317046144826F4 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 4DBA793E60F7389C45A23630 /* Products */ = { + isa = PBXGroup; + children = ( + 6EF4020950DF15C7645540BE /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 7CD70F5D43DA554D66287CFC /* SDL2test */ = { + isa = PBXNativeTarget; + buildConfigurationList = 0B1800395F995523000222B7 /* Build configuration list for PBXNativeTarget "SDL2test" */; + buildPhases = ( + 35BD3B0B4FD3288E0D252E74 /* Resources */, + 51B160D8261B3CDB61990505 /* Sources */, + 3D48554E124D39E0335337FA /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 323011DF03D31A8540301B10 /* PBXTargetDependency */, + 4BA611C06B4A67550F3B6BA1 /* PBXTargetDependency */, + ); + name = "SDL2test"; + productName = "SDL2test"; + productReference = 1E1175156F97314C291323CB /* libSDL2test.a */; + productType = "com.apple.product-type.library.static"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "SDL2test" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 1FB469BB7E2F5A4659ED5F39 /* SDL2test */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 59F10019753464A80ACA61C2 /* Products */; + ProjectRef = 2586308C446C1C7A1D8D1F44 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 4DBA793E60F7389C45A23630 /* Products */; + ProjectRef = 7524156959DC362020BE45D2 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 7CD70F5D43DA554D66287CFC /* libSDL2test.a */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 3B6D31FD16317046144826F4 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 4256279152F56A071E0B1818 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 6EF4020950DF15C7645540BE /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 15D75AF543BC727911CB4C32 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 35BD3B0B4FD3288E0D252E74 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 51B160D8261B3CDB61990505 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 337D79CE5C6E740E7845219E /* SDL_test_assert.c in Sources */, + 0D1D797B22CC02F330FF5E47 /* SDL_test_common.c in Sources */, + 1327749E357953A70CCF170A /* SDL_test_compare.c in Sources */, + 5BA46CE023E7234071C61356 /* SDL_test_crc32.c in Sources */, + 35EF0E232141409B16135264 /* SDL_test_font.c in Sources */, + 24FC39DE3EDC7E2810DE1A63 /* SDL_test_fuzzer.c in Sources */, + 17300EC9649122EC74172668 /* SDL_test_harness.c in Sources */, + 3271353414A709102AEC727C /* SDL_test_imageBlit.c in Sources */, + 6F86057B520C152A35441188 /* SDL_test_imageBlitBlend.c in Sources */, + 54B811C75417488052B86ACB /* SDL_test_imageFace.c in Sources */, + 30DD2C017D1C74A7192E20FD /* SDL_test_imagePrimitives.c in Sources */, + 41C97B2F609370172B895949 /* SDL_test_imagePrimitivesBlend.c in Sources */, + 7A0D0AEA2B651F1557DE60A0 /* SDL_test_log.c in Sources */, + 33CD7CD04DFE6AE920702DA3 /* SDL_test_md5.c in Sources */, + 782955367C837DBE79096716 /* SDL_test_random.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 323011DF03D31A8540301B10 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 543772357FCE478840DB05E1 /* PBXContainerItemProxy */; + }; + 4BA611C06B4A67550F3B6BA1 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 008B326E705E69EC1A0B00B4 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 4A2953F0465464715FF64F2F /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/lib; + PRODUCT_NAME = "SDL2test"; + }; + name = "Debug Universal"; + }; + 27874CF36C0C48391D621F81 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/lib; + PRODUCT_NAME = "SDL2test"; + }; + name = "Debug Native"; + }; + 1C32324B72E80242501F43F2 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/lib; + PRODUCT_NAME = "SDL2test"; + }; + name = "Release Universal"; + }; + 5AFE7B533F5F255666177F5B /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/lib; + PRODUCT_NAME = "SDL2test"; + }; + name = "Release Native"; + }; + 42AF24F81A8936CB00095CCD /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "..", + "../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 7F6D4F3E122F5AC81F875AAD /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "..", + "../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 54FF675725126F2E36652B1C /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "..", + "../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 69475F78601C5BAB6CB770F8 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "..", + "../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 0B1800395F995523000222B7 /* Build configuration list for PBXNativeTarget "libSDL2test.a" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4A2953F0465464715FF64F2F /* Debug Universal */, + 27874CF36C0C48391D621F81 /* Debug Native */, + 1C32324B72E80242501F43F2 /* Release Universal */, + 5AFE7B533F5F255666177F5B /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "SDL2test" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 42AF24F81A8936CB00095CCD /* Debug Universal */, + 7F6D4F3E122F5AC81F875AAD /* Debug Native */, + 54FF675725126F2E36652B1C /* Release Universal */, + 69475F78601C5BAB6CB770F8 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode3/SDL_config_premake.h b/premake/Xcode/Xcode3/SDL_config_premake.h new file mode 100755 index 0000000000000..cb1725a2753cb --- /dev/null +++ b/premake/Xcode/Xcode3/SDL_config_premake.h @@ -0,0 +1,205 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2013 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef _SDL_config_macosx_h +#define _SDL_config_macosx_h + +#include "SDL_platform.h" + +/* This gets us MAC_OS_X_VERSION_MIN_REQUIRED... */ +#include + +/* This is a set of defines to configure the SDL features */ + +#ifdef __LP64__ + #define SIZEOF_VOIDP 8 +#else + #define SIZEOF_VOIDP 4 +#endif + +/* Useful headers */ +/* If we specified an SDK or have a post-PowerPC chip, then alloca.h exists. */ +#if ( (MAC_OS_X_VERSION_MIN_REQUIRED >= 1030) || (!defined(__POWERPC__)) ) +#define HAVE_ALLOCA_H 1 +#endif +#define HAVE_SYS_TYPES_H 1 +#define HAVE_STDIO_H 1 +#define STDC_HEADERS 1 +#define HAVE_STRING_H 1 +#define HAVE_INTTYPES_H 1 +#define HAVE_STDINT_H 1 +#define HAVE_CTYPE_H 1 +#define HAVE_MATH_H 1 +#define HAVE_SIGNAL_H 1 + +/* C library functions */ +#define HAVE_MALLOC 1 +#define HAVE_CALLOC 1 +#define HAVE_REALLOC 1 +#define HAVE_FREE 1 +#define HAVE_ALLOCA 1 +#define HAVE_GETENV 1 +#define HAVE_SETENV 1 +#define HAVE_PUTENV 1 +#define HAVE_UNSETENV 1 +#define HAVE_QSORT 1 +#define HAVE_ABS 1 +#define HAVE_BCOPY 1 +#define HAVE_MEMSET 1 +#define HAVE_MEMCPY 1 +#define HAVE_MEMMOVE 1 +#define HAVE_MEMCMP 1 +#define HAVE_STRLEN 1 +#define HAVE_STRLCPY 1 +#define HAVE_STRLCAT 1 +#define HAVE_STRDUP 1 +#define HAVE_STRCHR 1 +#define HAVE_STRRCHR 1 +#define HAVE_STRSTR 1 +#define HAVE_STRTOL 1 +#define HAVE_STRTOUL 1 +#define HAVE_STRTOLL 1 +#define HAVE_STRTOULL 1 +#define HAVE_STRTOD 1 +#define HAVE_ATOI 1 +#define HAVE_ATOF 1 +#define HAVE_STRCMP 1 +#define HAVE_STRNCMP 1 +#define HAVE_STRCASECMP 1 +#define HAVE_STRNCASECMP 1 +#define HAVE_SSCANF 1 +#define HAVE_SNPRINTF 1 +#define HAVE_VSNPRINTF 1 +#define HAVE_CEIL 1 +#define HAVE_COPYSIGN 1 +#define HAVE_COS 1 +#define HAVE_COSF 1 +#define HAVE_FABS 1 +#define HAVE_FLOOR 1 +#define HAVE_LOG 1 +#define HAVE_POW 1 +#define HAVE_SCALBN 1 +#define HAVE_SIN 1 +#define HAVE_SINF 1 +#define HAVE_SQRT 1 +#define HAVE_SIGACTION 1 +#define HAVE_SETJMP 1 +#define HAVE_NANOSLEEP 1 +#define HAVE_SYSCONF 1 +#define HAVE_SYSCTLBYNAME 1 +#define HAVE_ATAN 1 +#define HAVE_ATAN2 1 + +#ifndef SDL_AUDIO_DRIVER_DUMMY +#define SDL_AUDIO_DRIVER_DUMMY 1 +#endif +#ifndef SDL_AUDIO_DRIVER_DISK +#define SDL_AUDIO_DRIVER_DISK 1 +#endif +#ifndef SDL_VIDEO_DRIVER_DUMMY +#define SDL_VIDEO_DRIVER_DUMMY 1 +#endif +#ifndef SDL_VIDEO_RENDER_OGL +#define SDL_VIDEO_RENDER_OGL 1 +#endif +#ifndef SDL_VIDEO_OPENGL +#define SDL_VIDEO_OPENGL 1 +#endif +#ifndef SDL_AUDIO_DRIVER_COREAUDIO +#define SDL_AUDIO_DRIVER_COREAUDIO 1 +#endif +#ifndef SDL_POWER_MACOSX +#define SDL_POWER_MACOSX 1 +#endif +#ifndef SDL_THREAD_PTHREAD_RECURSIVE_MUTEX +#define SDL_THREAD_PTHREAD_RECURSIVE_MUTEX 1 +#endif +#ifndef SDL_LOADSO_DLOPEN +#define SDL_LOADSO_DLOPEN 1 +#endif +#ifndef SDL_FILESYSTEM_COCOA +#define SDL_FILESYSTEM_COCOA 1 +#endif +#ifndef SDL_VIDEO_DRIVER_COCOA +#define SDL_VIDEO_DRIVER_COCOA 1 +#endif +#ifndef SDL_THREAD_PTHREAD +#define SDL_THREAD_PTHREAD 1 +#endif +#ifndef SDL_TIMER_UNIX +#define SDL_TIMER_UNIX 1 +#endif +#ifndef SDL_HAPTIC_IOKIT +#define SDL_HAPTIC_IOKIT 1 +#endif +#ifndef SDL_JOYSTICK_IOKIT +#define SDL_JOYSTICK_IOKIT 1 +#endif + +/* Enable various video drivers */ +#undef SDL_VIDEO_DRIVER_X11 +#define SDL_VIDEO_DRIVER_X11_DYNAMIC "/usr/X11R6/lib/libX11.6.dylib" +#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT "/usr/X11R6/lib/libXext.6.dylib" +#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XINERAMA "/usr/X11R6/lib/libXinerama.1.dylib" +#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT2 "/usr/X11R6/lib/libXi.6.dylib" +#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR "/usr/X11R6/lib/libXrandr.2.dylib" +#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS "/usr/X11R6/lib/libXss.1.dylib" +#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XVIDMODE "/usr/X11R6/lib/libXxf86vm.1.dylib" +#define SDL_VIDEO_DRIVER_X11_XINERAMA 1 +#define SDL_VIDEO_DRIVER_X11_XRANDR 1 +#define SDL_VIDEO_DRIVER_X11_XSCRNSAVER 1 +#define SDL_VIDEO_DRIVER_X11_XSHAPE 1 +#define SDL_VIDEO_DRIVER_X11_XVIDMODE 1 +#define SDL_VIDEO_DRIVER_X11_HAS_XKBKEYCODETOKEYSYM 1 + +#ifdef MAC_OS_X_VERSION_10_8 +/* + * No matter the versions targeted, this is the 10.8 or later SDK, so you have + * to use the external Xquartz, which is a more modern Xlib. Previous SDKs + * used an older Xlib. + */ +#define SDL_VIDEO_DRIVER_X11_XINPUT2 1 +#define SDL_VIDEO_DRIVER_X11_SUPPORTS_GENERIC_EVENTS 1 +#define SDL_VIDEO_DRIVER_X11_CONST_PARAM_XEXTADDDISPLAY 1 +#endif + +#ifndef SDL_VIDEO_RENDER_OGL +#define SDL_VIDEO_RENDER_OGL 1 +#endif + +/* Enable OpenGL support */ +#ifndef SDL_VIDEO_OPENGL +#define SDL_VIDEO_OPENGL 1 +#endif +#ifndef SDL_VIDEO_OPENGL_CGL +#define SDL_VIDEO_OPENGL_CGL 1 +#endif +#ifndef SDL_VIDEO_OPENGL_GLX +#define SDL_VIDEO_OPENGL_GLX 1 +#endif + +/* Enable assembly routines */ +#define SDL_ASSEMBLY_ROUTINES 1 +#ifdef __ppc__ +#define SDL_ALTIVEC_BLITTERS 1 +#endif + +#endif /* _SDL_config_macosx_h */ diff --git a/premake/Xcode/Xcode3/tests/checkkeys/checkkeys.xcodeproj/project.pbxproj b/premake/Xcode/Xcode3/tests/checkkeys/checkkeys.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..9bc6095f3edc3 --- /dev/null +++ b/premake/Xcode/Xcode3/tests/checkkeys/checkkeys.xcodeproj/project.pbxproj @@ -0,0 +1,457 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 322A045A6E6557341FEB170E /* checkkeys.c in Sources */ = {isa = PBXBuildFile; fileRef = 69E572554280205947E1455E /* checkkeys.c */; }; + 1FCE2801700D10B63EAC1E96 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7B41193166084200141239E9 /* AudioToolbox.framework */; }; + 26A66ECE2F7335D609283499 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 377836464C33612C220B072D /* AudioUnit.framework */; }; + 4365370425D617CC73BE4C14 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 35137B2F5A4640634A9464E4 /* Cocoa.framework */; }; + 1F491C03156D41743AEA6CC6 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CDC7A684893646334D67868 /* CoreAudio.framework */; }; + 5F4268810C9079E1525E534B /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5EED43C81C1B3A0465AA1A66 /* IOKit.framework */; }; + 096C508759AB2A6F1E8951AE /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7DE90946568C14882904699E /* Carbon.framework */; }; + 776B4FFD176F147317A43518 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0053648C598616BC17197439 /* ForceFeedback.framework */; }; + 6538777413730E577BFE01EF /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 65F55FB02F4E3C726D3D53C9 /* CoreFoundation.framework */; }; + 25CB70B645686B0611D94900 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0CAC1E0579FF66CF4E020083 /* OpenGL.framework */; }; + 65471E063B7511EA51D23F99 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0AED7A57072C0FB5641461D8 /* libSDL2main.a */; }; + 301E37E4700D6F3509D321B6 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A642093282471FB2AFE4720 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 6CA1620A302414004CAF7859 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 5F040F224166126D41637CA8 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 58DC62993160374E09FF7AD6; + remoteInfo = "libSDL2main.a"; + }; + 5A281B75525E214430CA3469 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 5F040F224166126D41637CA8 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 0E7126A94A11494963D3548B; + remoteInfo = "libSDL2main.a"; + }; + 07CA7ED360C823EC041E505C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 7C366261561B202361AC09EF /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 07D004B11E733F1F0EA93105; + remoteInfo = "libSDL2.a"; + }; + 683637717D1D307C46EF25FE /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 7C366261561B202361AC09EF /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 58C10ED14175754444033E0E; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 69E572554280205947E1455E /* checkkeys.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "checkkeys.c"; path = "../../../../../test/checkkeys.c"; sourceTree = ""; }; + 7B41193166084200141239E9 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 377836464C33612C220B072D /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 35137B2F5A4640634A9464E4 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 5CDC7A684893646334D67868 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 5EED43C81C1B3A0465AA1A66 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 7DE90946568C14882904699E /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 0053648C598616BC17197439 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 65F55FB02F4E3C726D3D53C9 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 0CAC1E0579FF66CF4E020083 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 0A40748B0E5F234B355B6BD2 /* checkkeys */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "checkkeys"; path = "checkkeys"; sourceTree = BUILT_PRODUCTS_DIR; }; + 5F040F224166126D41637CA8 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 7C366261561B202361AC09EF /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 5CFA422E755324E01F465E4A /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 1FCE2801700D10B63EAC1E96 /* AudioToolbox.framework in Frameworks */, + 26A66ECE2F7335D609283499 /* AudioUnit.framework in Frameworks */, + 4365370425D617CC73BE4C14 /* Cocoa.framework in Frameworks */, + 1F491C03156D41743AEA6CC6 /* CoreAudio.framework in Frameworks */, + 5F4268810C9079E1525E534B /* IOKit.framework in Frameworks */, + 096C508759AB2A6F1E8951AE /* Carbon.framework in Frameworks */, + 776B4FFD176F147317A43518 /* ForceFeedback.framework in Frameworks */, + 6538777413730E577BFE01EF /* CoreFoundation.framework in Frameworks */, + 25CB70B645686B0611D94900 /* OpenGL.framework in Frameworks */, + 65471E063B7511EA51D23F99 /* libSDL2main.a in Frameworks */, + 301E37E4700D6F3509D321B6 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 7551320B77D378B21D42667A /* checkkeys */ = { + isa = PBXGroup; + children = ( + 049836107F76417B7B837FAD /* test */, + 28AB780A0708383130F605F2 /* Frameworks */, + 51A87EEE71086351715325F5 /* Products */, + 0F4933074A3308093A560CDC /* Projects */, + ); + name = "checkkeys"; + sourceTree = ""; + }; + 049836107F76417B7B837FAD /* test */ = { + isa = PBXGroup; + children = ( + 69E572554280205947E1455E /* checkkeys.c */, + ); + name = "test"; + sourceTree = ""; + }; + 28AB780A0708383130F605F2 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 7B41193166084200141239E9 /* AudioToolbox.framework */, + 377836464C33612C220B072D /* AudioUnit.framework */, + 35137B2F5A4640634A9464E4 /* Cocoa.framework */, + 5CDC7A684893646334D67868 /* CoreAudio.framework */, + 5EED43C81C1B3A0465AA1A66 /* IOKit.framework */, + 7DE90946568C14882904699E /* Carbon.framework */, + 0053648C598616BC17197439 /* ForceFeedback.framework */, + 65F55FB02F4E3C726D3D53C9 /* CoreFoundation.framework */, + 0CAC1E0579FF66CF4E020083 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 51A87EEE71086351715325F5 /* Products */ = { + isa = PBXGroup; + children = ( + 0A40748B0E5F234B355B6BD2 /* checkkeys */, + ); + name = "Products"; + sourceTree = ""; + }; + 0F4933074A3308093A560CDC /* Projects */ = { + isa = PBXGroup; + children = ( + 5F040F224166126D41637CA8 /* SDL2main.xcodeproj */, + 7C366261561B202361AC09EF /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 59F362F429F137244C5D266F /* Products */ = { + isa = PBXGroup; + children = ( + 0AED7A57072C0FB5641461D8 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 788031B312545C5E499B0933 /* Products */ = { + isa = PBXGroup; + children = ( + 4A642093282471FB2AFE4720 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 3472466F263432064675348C /* checkkeys */ = { + isa = PBXNativeTarget; + buildConfigurationList = 35E43ED924A827077A73277C /* Build configuration list for PBXNativeTarget "checkkeys" */; + buildPhases = ( + 481B20AA7C407A1062E82AA2 /* Resources */, + 07EE599C1DA9643F7D1446B2 /* Sources */, + 5CFA422E755324E01F465E4A /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 08422E7313E947714D9A4D60 /* PBXTargetDependency */, + 4F265B2E3FD67B4C742268B7 /* PBXTargetDependency */, + ); + name = "checkkeys"; + productInstallPath = "$(HOME)/bin"; + productName = "checkkeys"; + productReference = 0A40748B0E5F234B355B6BD2 /* checkkeys */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "checkkeys" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 7551320B77D378B21D42667A /* checkkeys */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 59F362F429F137244C5D266F /* Products */; + ProjectRef = 5F040F224166126D41637CA8 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 788031B312545C5E499B0933 /* Products */; + ProjectRef = 7C366261561B202361AC09EF /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 3472466F263432064675348C /* checkkeys */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 0AED7A57072C0FB5641461D8 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 6CA1620A302414004CAF7859 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 4A642093282471FB2AFE4720 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 07CA7ED360C823EC041E505C /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 481B20AA7C407A1062E82AA2 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 07EE599C1DA9643F7D1446B2 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 322A045A6E6557341FEB170E /* checkkeys.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 08422E7313E947714D9A4D60 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 5A281B75525E214430CA3469 /* PBXContainerItemProxy */; + }; + 4F265B2E3FD67B4C742268B7 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 683637717D1D307C46EF25FE /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 2E4F7DDA1DC234142D0741B2 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "checkkeys"; + }; + name = "Debug Universal"; + }; + 357133BE06BC44C0570072ED /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "checkkeys"; + }; + name = "Debug Native"; + }; + 5C19111B085728896B520456 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "checkkeys"; + }; + name = "Release Universal"; + }; + 47345D7163004A837E2C2C37 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "checkkeys"; + }; + name = "Release Native"; + }; + 15E4471025F065D87E7163FA /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 5E6430007D976B98018E4629 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 5A7A1D38700F164F1E67012B /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 018428DC1BFD1068496C0024 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 35E43ED924A827077A73277C /* Build configuration list for PBXNativeTarget "checkkeys" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 2E4F7DDA1DC234142D0741B2 /* Debug Universal */, + 357133BE06BC44C0570072ED /* Debug Native */, + 5C19111B085728896B520456 /* Release Universal */, + 47345D7163004A837E2C2C37 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "checkkeys" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 15E4471025F065D87E7163FA /* Debug Universal */, + 5E6430007D976B98018E4629 /* Debug Native */, + 5A7A1D38700F164F1E67012B /* Release Universal */, + 018428DC1BFD1068496C0024 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode3/tests/loopwave/loopwave.xcodeproj/project.pbxproj b/premake/Xcode/Xcode3/tests/loopwave/loopwave.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..c553754a900f4 --- /dev/null +++ b/premake/Xcode/Xcode3/tests/loopwave/loopwave.xcodeproj/project.pbxproj @@ -0,0 +1,474 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 062A6EDF012B6A9641AF7FB9 /* loopwave.c in Sources */ = {isa = PBXBuildFile; fileRef = 310564485C4C21834D350ABF /* loopwave.c */; }; + 74BA75FA18A45A5F48914818 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 45F63DE3224C48AD69A84503 /* AudioToolbox.framework */; }; + 030A07FE614A57CC37BD5DCD /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 240F5523036E3C8367F06030 /* AudioUnit.framework */; }; + 0F1F5EE861F95A0E61FD5ECE /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7A882424412B0D2E066E4BDA /* Cocoa.framework */; }; + 318941345DA23FC34A426730 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3C975E904CA854270617673C /* CoreAudio.framework */; }; + 6F07387D48157F33023D0A69 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 24901D3671DE2DF7514A6D0E /* IOKit.framework */; }; + 01E5042B3AA5283671B74556 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 20A9382B41CB0A2A01775579 /* Carbon.framework */; }; + 21F71E1F43A5162016BA26FF /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B0157215DCF781564126260 /* ForceFeedback.framework */; }; + 39FB43AD4E663E5963DD6A64 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6A2D5945566B43BD503B7232 /* CoreFoundation.framework */; }; + 2F3235902F1B3BBF7ACF4467 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 048837873DA5449857AE60F1 /* OpenGL.framework */; }; + 44CF28ED62B90C68060E03ED /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A90682A48B24B01354821FE /* libSDL2main.a */; }; + 0889617D5DD21848312A70F4 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 314673287DC135CE214818AB /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 67037CC85B947C4B58B64EBA /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 7B49049B002E76D557C760E2 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 58DC62993160374E09FF7AD6; + remoteInfo = "libSDL2main.a"; + }; + 1D5961507A4825A667DA30BA /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 7B49049B002E76D557C760E2 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 0E7126A94A11494963D3548B; + remoteInfo = "libSDL2main.a"; + }; + 032B3A303D376DC41DC118C1 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 4DEA3F7F3F8009FA7EF07AA6 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 07D004B11E733F1F0EA93105; + remoteInfo = "libSDL2.a"; + }; + 6523111C79426E4733A759B4 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 4DEA3F7F3F8009FA7EF07AA6 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 58C10ED14175754444033E0E; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 310564485C4C21834D350ABF /* loopwave.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "loopwave.c"; path = "../../../../../test/loopwave.c"; sourceTree = ""; }; + 45F63DE3224C48AD69A84503 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 240F5523036E3C8367F06030 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 7A882424412B0D2E066E4BDA /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 3C975E904CA854270617673C /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 24901D3671DE2DF7514A6D0E /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 20A9382B41CB0A2A01775579 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 3B0157215DCF781564126260 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 6A2D5945566B43BD503B7232 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 048837873DA5449857AE60F1 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 2B02458468CD2BA4494B5B96 /* loopwave */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "loopwave"; path = "loopwave"; sourceTree = BUILT_PRODUCTS_DIR; }; + 7B49049B002E76D557C760E2 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 4DEA3F7F3F8009FA7EF07AA6 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 75C83A552FB74F98392A11C9 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 74BA75FA18A45A5F48914818 /* AudioToolbox.framework in Frameworks */, + 030A07FE614A57CC37BD5DCD /* AudioUnit.framework in Frameworks */, + 0F1F5EE861F95A0E61FD5ECE /* Cocoa.framework in Frameworks */, + 318941345DA23FC34A426730 /* CoreAudio.framework in Frameworks */, + 6F07387D48157F33023D0A69 /* IOKit.framework in Frameworks */, + 01E5042B3AA5283671B74556 /* Carbon.framework in Frameworks */, + 21F71E1F43A5162016BA26FF /* ForceFeedback.framework in Frameworks */, + 39FB43AD4E663E5963DD6A64 /* CoreFoundation.framework in Frameworks */, + 2F3235902F1B3BBF7ACF4467 /* OpenGL.framework in Frameworks */, + 44CF28ED62B90C68060E03ED /* libSDL2main.a in Frameworks */, + 0889617D5DD21848312A70F4 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 6146648358E1392E02AB47F4 /* loopwave */ = { + isa = PBXGroup; + children = ( + 7A7E0491571D313D2B8C7AFF /* test */, + 52B4655961EA4A53123224EB /* Frameworks */, + 563E36452CA11B6B4DE71E87 /* Products */, + 4E0A12F05B3528FB2ED95097 /* Projects */, + ); + name = "loopwave"; + sourceTree = ""; + }; + 7A7E0491571D313D2B8C7AFF /* test */ = { + isa = PBXGroup; + children = ( + 310564485C4C21834D350ABF /* loopwave.c */, + ); + name = "test"; + sourceTree = ""; + }; + 52B4655961EA4A53123224EB /* Frameworks */ = { + isa = PBXGroup; + children = ( + 45F63DE3224C48AD69A84503 /* AudioToolbox.framework */, + 240F5523036E3C8367F06030 /* AudioUnit.framework */, + 7A882424412B0D2E066E4BDA /* Cocoa.framework */, + 3C975E904CA854270617673C /* CoreAudio.framework */, + 24901D3671DE2DF7514A6D0E /* IOKit.framework */, + 20A9382B41CB0A2A01775579 /* Carbon.framework */, + 3B0157215DCF781564126260 /* ForceFeedback.framework */, + 6A2D5945566B43BD503B7232 /* CoreFoundation.framework */, + 048837873DA5449857AE60F1 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 563E36452CA11B6B4DE71E87 /* Products */ = { + isa = PBXGroup; + children = ( + 2B02458468CD2BA4494B5B96 /* loopwave */, + ); + name = "Products"; + sourceTree = ""; + }; + 4E0A12F05B3528FB2ED95097 /* Projects */ = { + isa = PBXGroup; + children = ( + 7B49049B002E76D557C760E2 /* SDL2main.xcodeproj */, + 4DEA3F7F3F8009FA7EF07AA6 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 0158468C18CF549300205CD2 /* Products */ = { + isa = PBXGroup; + children = ( + 4A90682A48B24B01354821FE /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 554966576A227E7B749C3EEA /* Products */ = { + isa = PBXGroup; + children = ( + 314673287DC135CE214818AB /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 113B56ED7C1954B22A5E071A /* loopwave */ = { + isa = PBXNativeTarget; + buildConfigurationList = 3124524079731BFA3C4A50BF /* Build configuration list for PBXNativeTarget "loopwave" */; + buildPhases = ( + 2FF255230D805866140F0D22 /* Resources */, + 33330525538751295C882206 /* Sources */, + 75C83A552FB74F98392A11C9 /* Frameworks */, + 9607AE3710C85E8F00CD1376 /* Postbuild */, + ); + buildRules = ( + ); + dependencies = ( + 444E7A914EBA2D6A1DAB4C87 /* PBXTargetDependency */, + 50D753504D3E62603EC864E6 /* PBXTargetDependency */, + ); + name = "loopwave"; + productInstallPath = "$(HOME)/bin"; + productName = "loopwave"; + productReference = 2B02458468CD2BA4494B5B96 /* loopwave */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "loopwave" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 6146648358E1392E02AB47F4 /* loopwave */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 0158468C18CF549300205CD2 /* Products */; + ProjectRef = 7B49049B002E76D557C760E2 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 554966576A227E7B749C3EEA /* Products */; + ProjectRef = 4DEA3F7F3F8009FA7EF07AA6 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 113B56ED7C1954B22A5E071A /* loopwave */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 4A90682A48B24B01354821FE /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 67037CC85B947C4B58B64EBA /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 314673287DC135CE214818AB /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 032B3A303D376DC41DC118C1 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 2FF255230D805866140F0D22 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 9607AE3710C85E8F00CD1376 /* Postbuild */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = Postbuild; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "if [ \"${CONFIGURATION}\" = \"Debug Universal\" ]; then\nif [ ! -d \"./Build/Debug\" ]; then mkdir -p \"./Build/Debug\"; fi\ncp \"./../../../../../test/sample.wav\" \"./Build/Debug/sample.wav\"\nfi\nif [ \"${CONFIGURATION}\" = \"Debug Native\" ]; then\nif [ ! -d \"./Build/Debug\" ]; then mkdir -p \"./Build/Debug\"; fi\ncp \"./../../../../../test/sample.wav\" \"./Build/Debug/sample.wav\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Universal\" ]; then\nif [ ! -d \"./Build/Release\" ]; then mkdir -p \"./Build/Release\"; fi\ncp \"./../../../../../test/sample.wav\" \"./Build/Release/sample.wav\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Native\" ]; then\nif [ ! -d \"./Build/Release\" ]; then mkdir -p \"./Build/Release\"; fi\ncp \"./../../../../../test/sample.wav\" \"./Build/Release/sample.wav\"\nfi"; + }; +/* End PBXShellScriptBuildPhase section */ +/* Begin PBXSourcesBuildPhase section */ + 33330525538751295C882206 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 062A6EDF012B6A9641AF7FB9 /* loopwave.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 444E7A914EBA2D6A1DAB4C87 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 1D5961507A4825A667DA30BA /* PBXContainerItemProxy */; + }; + 50D753504D3E62603EC864E6 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 6523111C79426E4733A759B4 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 76B1778D03FB125133045BD2 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "loopwave"; + }; + name = "Debug Universal"; + }; + 4429168720D30A6F18D90481 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "loopwave"; + }; + name = "Debug Native"; + }; + 47E476F00FB06D7E72202B41 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "loopwave"; + }; + name = "Release Universal"; + }; + 44096789056D44FB67070CC3 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "loopwave"; + }; + name = "Release Native"; + }; + 5CD870A70BA7063F1FA27524 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 39381B1472A00C7232D90364 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 6E12096A3DD64FA505A80CC4 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 597265952F4564FC62E217BB /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 3124524079731BFA3C4A50BF /* Build configuration list for PBXNativeTarget "loopwave" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 76B1778D03FB125133045BD2 /* Debug Universal */, + 4429168720D30A6F18D90481 /* Debug Native */, + 47E476F00FB06D7E72202B41 /* Release Universal */, + 44096789056D44FB67070CC3 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "loopwave" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 5CD870A70BA7063F1FA27524 /* Debug Universal */, + 39381B1472A00C7232D90364 /* Debug Native */, + 6E12096A3DD64FA505A80CC4 /* Release Universal */, + 597265952F4564FC62E217BB /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode3/tests/testatomic/testatomic.xcodeproj/project.pbxproj b/premake/Xcode/Xcode3/tests/testatomic/testatomic.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..2aec6ee95468e --- /dev/null +++ b/premake/Xcode/Xcode3/tests/testatomic/testatomic.xcodeproj/project.pbxproj @@ -0,0 +1,457 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 57876D99114444BD06CB79EA /* testatomic.c in Sources */ = {isa = PBXBuildFile; fileRef = 54330859254103D731515D90 /* testatomic.c */; }; + 17F567BB421716785F6439CF /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 09A150504E10263515C14414 /* AudioToolbox.framework */; }; + 77EF12F73F887CA74A7B7FC9 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6D4C19F323B75D856812787F /* AudioUnit.framework */; }; + 52DF34A54896760C11C25AE6 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1AE359BD2A9673542E98181F /* Cocoa.framework */; }; + 02FE0EBC709352A14E8D4A6D /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 37540DD006A96C3C08D41CFE /* CoreAudio.framework */; }; + 361F6EC20955561325544E5D /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 574C4DD436087C51492D43B3 /* IOKit.framework */; }; + 31F569F0245E3AA002C15E11 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 45B72D0141D071FF4C41486E /* Carbon.framework */; }; + 32C4089A55DC6316410D6182 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 454029B87D165A3370306EFD /* ForceFeedback.framework */; }; + 1C410038088F223D5F162F97 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3BCB496E70D34CB5241D1087 /* CoreFoundation.framework */; }; + 69E226E7448C5F956D780C75 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 008150AD1F8441BF65833853 /* OpenGL.framework */; }; + 61A726E729BA1BC965100ED9 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 26805ECB03C10C4C10583FB0 /* libSDL2main.a */; }; + 5A1E047B453532082C883A0A /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 70163DCB7F7A4A513D3E4F7A /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 035B6577156746CC13202FA0 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 5B9110BF2C18721424265DC2 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 58DC62993160374E09FF7AD6; + remoteInfo = "libSDL2main.a"; + }; + 6F8D40AE773C25A10EA02D59 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 5B9110BF2C18721424265DC2 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 0E7126A94A11494963D3548B; + remoteInfo = "libSDL2main.a"; + }; + 251D257954BF783F084324FA /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 61946CBF2E6837466BFE7B96 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 07D004B11E733F1F0EA93105; + remoteInfo = "libSDL2.a"; + }; + 38C722631617477D60904E7D /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 61946CBF2E6837466BFE7B96 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 58C10ED14175754444033E0E; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 54330859254103D731515D90 /* testatomic.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testatomic.c"; path = "../../../../../test/testatomic.c"; sourceTree = ""; }; + 09A150504E10263515C14414 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 6D4C19F323B75D856812787F /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 1AE359BD2A9673542E98181F /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 37540DD006A96C3C08D41CFE /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 574C4DD436087C51492D43B3 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 45B72D0141D071FF4C41486E /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 454029B87D165A3370306EFD /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 3BCB496E70D34CB5241D1087 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 008150AD1F8441BF65833853 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 46F7356A68904D295FBF06D3 /* testatomic */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testatomic"; path = "testatomic"; sourceTree = BUILT_PRODUCTS_DIR; }; + 5B9110BF2C18721424265DC2 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 61946CBF2E6837466BFE7B96 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 134752C077415E7D02F75654 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 17F567BB421716785F6439CF /* AudioToolbox.framework in Frameworks */, + 77EF12F73F887CA74A7B7FC9 /* AudioUnit.framework in Frameworks */, + 52DF34A54896760C11C25AE6 /* Cocoa.framework in Frameworks */, + 02FE0EBC709352A14E8D4A6D /* CoreAudio.framework in Frameworks */, + 361F6EC20955561325544E5D /* IOKit.framework in Frameworks */, + 31F569F0245E3AA002C15E11 /* Carbon.framework in Frameworks */, + 32C4089A55DC6316410D6182 /* ForceFeedback.framework in Frameworks */, + 1C410038088F223D5F162F97 /* CoreFoundation.framework in Frameworks */, + 69E226E7448C5F956D780C75 /* OpenGL.framework in Frameworks */, + 61A726E729BA1BC965100ED9 /* libSDL2main.a in Frameworks */, + 5A1E047B453532082C883A0A /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 212A608F0CC1571F52F633FB /* testatomic */ = { + isa = PBXGroup; + children = ( + 4F043DFE10616AE900733E45 /* test */, + 7C6009560D8A127A1B255032 /* Frameworks */, + 00DF69976BA67FBF7BC84829 /* Products */, + 7F2426214CD21294606E6093 /* Projects */, + ); + name = "testatomic"; + sourceTree = ""; + }; + 4F043DFE10616AE900733E45 /* test */ = { + isa = PBXGroup; + children = ( + 54330859254103D731515D90 /* testatomic.c */, + ); + name = "test"; + sourceTree = ""; + }; + 7C6009560D8A127A1B255032 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 09A150504E10263515C14414 /* AudioToolbox.framework */, + 6D4C19F323B75D856812787F /* AudioUnit.framework */, + 1AE359BD2A9673542E98181F /* Cocoa.framework */, + 37540DD006A96C3C08D41CFE /* CoreAudio.framework */, + 574C4DD436087C51492D43B3 /* IOKit.framework */, + 45B72D0141D071FF4C41486E /* Carbon.framework */, + 454029B87D165A3370306EFD /* ForceFeedback.framework */, + 3BCB496E70D34CB5241D1087 /* CoreFoundation.framework */, + 008150AD1F8441BF65833853 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 00DF69976BA67FBF7BC84829 /* Products */ = { + isa = PBXGroup; + children = ( + 46F7356A68904D295FBF06D3 /* testatomic */, + ); + name = "Products"; + sourceTree = ""; + }; + 7F2426214CD21294606E6093 /* Projects */ = { + isa = PBXGroup; + children = ( + 5B9110BF2C18721424265DC2 /* SDL2main.xcodeproj */, + 61946CBF2E6837466BFE7B96 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 108F3ABD6F7A3DDF29277E81 /* Products */ = { + isa = PBXGroup; + children = ( + 26805ECB03C10C4C10583FB0 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 20C85614704965D87A8831CD /* Products */ = { + isa = PBXGroup; + children = ( + 70163DCB7F7A4A513D3E4F7A /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 415225415C793CF93B6C48BB /* testatomic */ = { + isa = PBXNativeTarget; + buildConfigurationList = 1BEB0C2039841455059663BA /* Build configuration list for PBXNativeTarget "testatomic" */; + buildPhases = ( + 506603C11BBD535932F232B1 /* Resources */, + 30662E732E7067B865390F2F /* Sources */, + 134752C077415E7D02F75654 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 6CCA644F4019420773C07A30 /* PBXTargetDependency */, + 07855B5D48D922A52EFF1306 /* PBXTargetDependency */, + ); + name = "testatomic"; + productInstallPath = "$(HOME)/bin"; + productName = "testatomic"; + productReference = 46F7356A68904D295FBF06D3 /* testatomic */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testatomic" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 212A608F0CC1571F52F633FB /* testatomic */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 108F3ABD6F7A3DDF29277E81 /* Products */; + ProjectRef = 5B9110BF2C18721424265DC2 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 20C85614704965D87A8831CD /* Products */; + ProjectRef = 61946CBF2E6837466BFE7B96 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 415225415C793CF93B6C48BB /* testatomic */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 26805ECB03C10C4C10583FB0 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 035B6577156746CC13202FA0 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 70163DCB7F7A4A513D3E4F7A /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 251D257954BF783F084324FA /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 506603C11BBD535932F232B1 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 30662E732E7067B865390F2F /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 57876D99114444BD06CB79EA /* testatomic.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 6CCA644F4019420773C07A30 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 6F8D40AE773C25A10EA02D59 /* PBXContainerItemProxy */; + }; + 07855B5D48D922A52EFF1306 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 38C722631617477D60904E7D /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 0059059B309E03CE78EC0408 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testatomic"; + }; + name = "Debug Universal"; + }; + 59BF346A32B248880DDA7290 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testatomic"; + }; + name = "Debug Native"; + }; + 3EBA4B4B351A446C3FBB385A /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testatomic"; + }; + name = "Release Universal"; + }; + 6430394B78573C0F285F23A1 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testatomic"; + }; + name = "Release Native"; + }; + 66B718A43B48147F4C584EE0 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 589213A76C373A4B3FAF174E /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 21955E8308B20083425838E3 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 3C6B53B876BA4FE97C24513D /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 1BEB0C2039841455059663BA /* Build configuration list for PBXNativeTarget "testatomic" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0059059B309E03CE78EC0408 /* Debug Universal */, + 59BF346A32B248880DDA7290 /* Debug Native */, + 3EBA4B4B351A446C3FBB385A /* Release Universal */, + 6430394B78573C0F285F23A1 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testatomic" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 66B718A43B48147F4C584EE0 /* Debug Universal */, + 589213A76C373A4B3FAF174E /* Debug Native */, + 21955E8308B20083425838E3 /* Release Universal */, + 3C6B53B876BA4FE97C24513D /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode3/tests/testaudioinfo/testaudioinfo.xcodeproj/project.pbxproj b/premake/Xcode/Xcode3/tests/testaudioinfo/testaudioinfo.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..e671a5704968e --- /dev/null +++ b/premake/Xcode/Xcode3/tests/testaudioinfo/testaudioinfo.xcodeproj/project.pbxproj @@ -0,0 +1,457 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 7D983EB23BB023620FDC631B /* testaudioinfo.c in Sources */ = {isa = PBXBuildFile; fileRef = 6AAB0BDF19C76D3D44A60FC7 /* testaudioinfo.c */; }; + 2E3807C25FFB079D6F30596E /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 02CA1F0E0C8467F463624ADD /* AudioToolbox.framework */; }; + 187423281AF4481F16147BB7 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5BCD1AE972C161E11F071578 /* AudioUnit.framework */; }; + 11950DD740FE6A3749CC2DC7 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 31E736320F1E3B7452516A65 /* Cocoa.framework */; }; + 3EC26A2B6C6512FD2BE143E6 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 220C55811EEC52AA1CBD3ED5 /* CoreAudio.framework */; }; + 69A76E9B0F5C17A229A66F1A /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5FD87BFB5C244C2B46E02D9A /* IOKit.framework */; }; + 46C36AF300D05D543C255910 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1F045D6C671C7A110BA74023 /* Carbon.framework */; }; + 200D3BD6702F27A77E1F56EA /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 36D61BA23D7303CA76E47619 /* ForceFeedback.framework */; }; + 1A2A488E19AB4A3438E4145C /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4911023B0A6C6D8B460C750E /* CoreFoundation.framework */; }; + 1C60207D19CE379667A66146 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5A445DDC49FF3F2D2F335A6E /* OpenGL.framework */; }; + 177E722D6B0D287924706E29 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CE709F778906FDC607E7935 /* libSDL2main.a */; }; + 45D35D816F2C3A8440B327FB /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7DF04DB11F794E8A077A0454 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 11EB0CF20F6227641BBC548E /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 76F81FA525C6233E40D2394E /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 58DC62993160374E09FF7AD6; + remoteInfo = "libSDL2main.a"; + }; + 5480371703F501BF596B2FC6 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 76F81FA525C6233E40D2394E /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 0E7126A94A11494963D3548B; + remoteInfo = "libSDL2main.a"; + }; + 438C359D597141EF6E1A0AD9 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 75181E2E17BE3DDB19AC1FB6 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 07D004B11E733F1F0EA93105; + remoteInfo = "libSDL2.a"; + }; + 4FFC5D4964944802134720DC /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 75181E2E17BE3DDB19AC1FB6 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 58C10ED14175754444033E0E; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 6AAB0BDF19C76D3D44A60FC7 /* testaudioinfo.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testaudioinfo.c"; path = "../../../../../test/testaudioinfo.c"; sourceTree = ""; }; + 02CA1F0E0C8467F463624ADD /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 5BCD1AE972C161E11F071578 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 31E736320F1E3B7452516A65 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 220C55811EEC52AA1CBD3ED5 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 5FD87BFB5C244C2B46E02D9A /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 1F045D6C671C7A110BA74023 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 36D61BA23D7303CA76E47619 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 4911023B0A6C6D8B460C750E /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 5A445DDC49FF3F2D2F335A6E /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 36B537061DB55E06101D603D /* testaudioinfo */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testaudioinfo"; path = "testaudioinfo"; sourceTree = BUILT_PRODUCTS_DIR; }; + 76F81FA525C6233E40D2394E /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 75181E2E17BE3DDB19AC1FB6 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 575531557DAD0AA659EC2F8D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 2E3807C25FFB079D6F30596E /* AudioToolbox.framework in Frameworks */, + 187423281AF4481F16147BB7 /* AudioUnit.framework in Frameworks */, + 11950DD740FE6A3749CC2DC7 /* Cocoa.framework in Frameworks */, + 3EC26A2B6C6512FD2BE143E6 /* CoreAudio.framework in Frameworks */, + 69A76E9B0F5C17A229A66F1A /* IOKit.framework in Frameworks */, + 46C36AF300D05D543C255910 /* Carbon.framework in Frameworks */, + 200D3BD6702F27A77E1F56EA /* ForceFeedback.framework in Frameworks */, + 1A2A488E19AB4A3438E4145C /* CoreFoundation.framework in Frameworks */, + 1C60207D19CE379667A66146 /* OpenGL.framework in Frameworks */, + 177E722D6B0D287924706E29 /* libSDL2main.a in Frameworks */, + 45D35D816F2C3A8440B327FB /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 2F800DA22701573041067203 /* testaudioinfo */ = { + isa = PBXGroup; + children = ( + 305F699367EA668A74457BEA /* test */, + 317A67855A065AB524B17024 /* Frameworks */, + 76C8571C169A70E415E32AD4 /* Products */, + 0487685B323E227622CB3FD7 /* Projects */, + ); + name = "testaudioinfo"; + sourceTree = ""; + }; + 305F699367EA668A74457BEA /* test */ = { + isa = PBXGroup; + children = ( + 6AAB0BDF19C76D3D44A60FC7 /* testaudioinfo.c */, + ); + name = "test"; + sourceTree = ""; + }; + 317A67855A065AB524B17024 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 02CA1F0E0C8467F463624ADD /* AudioToolbox.framework */, + 5BCD1AE972C161E11F071578 /* AudioUnit.framework */, + 31E736320F1E3B7452516A65 /* Cocoa.framework */, + 220C55811EEC52AA1CBD3ED5 /* CoreAudio.framework */, + 5FD87BFB5C244C2B46E02D9A /* IOKit.framework */, + 1F045D6C671C7A110BA74023 /* Carbon.framework */, + 36D61BA23D7303CA76E47619 /* ForceFeedback.framework */, + 4911023B0A6C6D8B460C750E /* CoreFoundation.framework */, + 5A445DDC49FF3F2D2F335A6E /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 76C8571C169A70E415E32AD4 /* Products */ = { + isa = PBXGroup; + children = ( + 36B537061DB55E06101D603D /* testaudioinfo */, + ); + name = "Products"; + sourceTree = ""; + }; + 0487685B323E227622CB3FD7 /* Projects */ = { + isa = PBXGroup; + children = ( + 76F81FA525C6233E40D2394E /* SDL2main.xcodeproj */, + 75181E2E17BE3DDB19AC1FB6 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 0AE37B0B40D661BA1E6D3683 /* Products */ = { + isa = PBXGroup; + children = ( + 4CE709F778906FDC607E7935 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 1D9604843684239C18526ED2 /* Products */ = { + isa = PBXGroup; + children = ( + 7DF04DB11F794E8A077A0454 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 4B3516596A75307554C0362C /* testaudioinfo */ = { + isa = PBXNativeTarget; + buildConfigurationList = 5F9804010243275821A85AA7 /* Build configuration list for PBXNativeTarget "testaudioinfo" */; + buildPhases = ( + 474D223C1A7F40B75D6F585D /* Resources */, + 66FB20826B0E24E80F4C4F60 /* Sources */, + 575531557DAD0AA659EC2F8D /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 71194949090F64EF33633A28 /* PBXTargetDependency */, + 696E490D34BC5E13449D52A6 /* PBXTargetDependency */, + ); + name = "testaudioinfo"; + productInstallPath = "$(HOME)/bin"; + productName = "testaudioinfo"; + productReference = 36B537061DB55E06101D603D /* testaudioinfo */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testaudioinfo" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 2F800DA22701573041067203 /* testaudioinfo */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 0AE37B0B40D661BA1E6D3683 /* Products */; + ProjectRef = 76F81FA525C6233E40D2394E /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 1D9604843684239C18526ED2 /* Products */; + ProjectRef = 75181E2E17BE3DDB19AC1FB6 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 4B3516596A75307554C0362C /* testaudioinfo */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 4CE709F778906FDC607E7935 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 11EB0CF20F6227641BBC548E /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 7DF04DB11F794E8A077A0454 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 438C359D597141EF6E1A0AD9 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 474D223C1A7F40B75D6F585D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 66FB20826B0E24E80F4C4F60 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 7D983EB23BB023620FDC631B /* testaudioinfo.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 71194949090F64EF33633A28 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 5480371703F501BF596B2FC6 /* PBXContainerItemProxy */; + }; + 696E490D34BC5E13449D52A6 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 4FFC5D4964944802134720DC /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 7C4539DF61E102A0092563DD /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testaudioinfo"; + }; + name = "Debug Universal"; + }; + 709D6AC8015263455B1E4001 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testaudioinfo"; + }; + name = "Debug Native"; + }; + 54AF607B62B6325307AF2490 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testaudioinfo"; + }; + name = "Release Universal"; + }; + 2CC1663213CF200A0F3B7530 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testaudioinfo"; + }; + name = "Release Native"; + }; + 458E213409073A93136E2B1A /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 0DC7361B4B095F1630AB44F1 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 1D0A21EE328F5FA61BA71A6C /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 41A348A7712773961D725869 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 5F9804010243275821A85AA7 /* Build configuration list for PBXNativeTarget "testaudioinfo" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7C4539DF61E102A0092563DD /* Debug Universal */, + 709D6AC8015263455B1E4001 /* Debug Native */, + 54AF607B62B6325307AF2490 /* Release Universal */, + 2CC1663213CF200A0F3B7530 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testaudioinfo" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 458E213409073A93136E2B1A /* Debug Universal */, + 0DC7361B4B095F1630AB44F1 /* Debug Native */, + 1D0A21EE328F5FA61BA71A6C /* Release Universal */, + 41A348A7712773961D725869 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode3/tests/testautomation/testautomation.xcodeproj/project.pbxproj b/premake/Xcode/Xcode3/tests/testautomation/testautomation.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..2b5b8d1ed2e3e --- /dev/null +++ b/premake/Xcode/Xcode3/tests/testautomation/testautomation.xcodeproj/project.pbxproj @@ -0,0 +1,570 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 2F335BE80DE0020E203E5DD8 /* testautomation.c in Sources */ = {isa = PBXBuildFile; fileRef = 794762FD04D1549934E159CD /* testautomation.c */; }; + 653716B97F514F1115D6458F /* testautomation_audio.c in Sources */ = {isa = PBXBuildFile; fileRef = 471E0D47498B7B5274FB14FE /* testautomation_audio.c */; }; + 7C22594E259C512B68C3074A /* testautomation_clipboard.c in Sources */ = {isa = PBXBuildFile; fileRef = 4F3953A43A3A4F8F4C8E36A4 /* testautomation_clipboard.c */; }; + 0D0C2F586E93033058EB4F2D /* testautomation_events.c in Sources */ = {isa = PBXBuildFile; fileRef = 2786614254EC5FB566462683 /* testautomation_events.c */; }; + 0EF101106870459C05C777E5 /* testautomation_keyboard.c in Sources */ = {isa = PBXBuildFile; fileRef = 3D67397E3717790131435254 /* testautomation_keyboard.c */; }; + 4473155D1CA524123B156875 /* testautomation_main.c in Sources */ = {isa = PBXBuildFile; fileRef = 5BEC6F3916D7143614DF3D74 /* testautomation_main.c */; }; + 2C2A04F453191DD549990B38 /* testautomation_mouse.c in Sources */ = {isa = PBXBuildFile; fileRef = 6D017E6145BD211645712A51 /* testautomation_mouse.c */; }; + 174141BE560F099B2C951FF6 /* testautomation_pixels.c in Sources */ = {isa = PBXBuildFile; fileRef = 435E6BF81AB9117F68EB441C /* testautomation_pixels.c */; }; + 15E2389B6AB717B517F50AA9 /* testautomation_platform.c in Sources */ = {isa = PBXBuildFile; fileRef = 0055527C0684494769333104 /* testautomation_platform.c */; }; + 4E710EFA4F50233E3BB50A17 /* testautomation_rect.c in Sources */ = {isa = PBXBuildFile; fileRef = 0DC13053355641975EF14CFC /* testautomation_rect.c */; }; + 07001C17388A1B8604CF33C9 /* testautomation_render.c in Sources */ = {isa = PBXBuildFile; fileRef = 7EE110555956273251AE02BD /* testautomation_render.c */; }; + 115828D60DF755371C7E4B6F /* testautomation_rwops.c in Sources */ = {isa = PBXBuildFile; fileRef = 05F752B051CB188A1FA10AE0 /* testautomation_rwops.c */; }; + 17E762DE07227FFC234A7E9B /* testautomation_sdltest.c in Sources */ = {isa = PBXBuildFile; fileRef = 140F10664DCC4A491D2D06DB /* testautomation_sdltest.c */; }; + 3A1421F37C845F1F1A9A1691 /* testautomation_stdlib.c in Sources */ = {isa = PBXBuildFile; fileRef = 26AF4A18290748D322B947F5 /* testautomation_stdlib.c */; }; + 491B449B228565596C3C6841 /* testautomation_surface.c in Sources */ = {isa = PBXBuildFile; fileRef = 5F0C25EE376B02EA064B50F6 /* testautomation_surface.c */; }; + 4EE3570C11213BFA50727385 /* testautomation_syswm.c in Sources */ = {isa = PBXBuildFile; fileRef = 1267615F52DF35C27BFC749A /* testautomation_syswm.c */; }; + 15C3490D20032CC168A5510A /* testautomation_timer.c in Sources */ = {isa = PBXBuildFile; fileRef = 30EA083B11207D622DDB12FC /* testautomation_timer.c */; }; + 0D3D4F4B7C2244F36B98001A /* testautomation_video.c in Sources */ = {isa = PBXBuildFile; fileRef = 799007AB7FD4531345B703C3 /* testautomation_video.c */; }; + 634F703209AF4BF432C670FF /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 525D58370F4C52CF3B2C6C24 /* AudioToolbox.framework */; }; + 2FD209F3507D70B84CE97341 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1CA133CE381F37C11A1B0BEB /* AudioUnit.framework */; }; + 701A5D0F305059164EA22D84 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 69CB409266666CB01DB03008 /* Cocoa.framework */; }; + 3FD61CBC1F3C541624184811 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6448343A600A31F50A122DE9 /* CoreAudio.framework */; }; + 472C522A706B317850BA6C51 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 11861357591E56A023ED491D /* IOKit.framework */; }; + 054B18C7468D589C15E05FCA /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B20422947087C5367012759 /* Carbon.framework */; }; + 22AD0BEA6F4E275414225D5D /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 58C11BD2221C785317CF3370 /* ForceFeedback.framework */; }; + 3B8A7FF62F4A2D17470C080E /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3A682EF21FA87CBA3C2B3F7D /* CoreFoundation.framework */; }; + 14960DFD058B085471CB4AB3 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 77D94DCC4A8B73683E874CF3 /* OpenGL.framework */; }; + 7C8926195FA63E4B429155D2 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 65657808084F160069055C6D /* libSDL2main.a */; }; + 77A0414679C77DF659307C2A /* libSDL2test.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 30744F3724232CC61005573B /* libSDL2test.a */; }; + 667727B43C5E63914EDD2933 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 51F53A75641962D9541A7DD9 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 1DCE473D01537CA077766F74 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 6906495449E9743407E812AA /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 58DC62993160374E09FF7AD6; + remoteInfo = "libSDL2main.a"; + }; + 4570617838BB3896391D43EC /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 6906495449E9743407E812AA /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 0E7126A94A11494963D3548B; + remoteInfo = "libSDL2main.a"; + }; + 4893660C40505DFE57DA4601 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0058171435E569F359901CA9 /* SDL2test.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 1E1175156F97314C291323CB; + remoteInfo = "libSDL2test.a"; + }; + 19D24173024D0FC63B313020 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0058171435E569F359901CA9 /* SDL2test.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7CD70F5D43DA554D66287CFC; + remoteInfo = "libSDL2test.a"; + }; + 2B800D747BF326C622B92D93 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 29FC6095786D7CDA66E54FA2 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 07D004B11E733F1F0EA93105; + remoteInfo = "libSDL2.a"; + }; + 2325525D7B406481596F1ACA /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 29FC6095786D7CDA66E54FA2 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 58C10ED14175754444033E0E; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 794762FD04D1549934E159CD /* testautomation.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testautomation.c"; path = "../../../../../test/testautomation.c"; sourceTree = ""; }; + 471E0D47498B7B5274FB14FE /* testautomation_audio.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testautomation_audio.c"; path = "../../../../../test/testautomation_audio.c"; sourceTree = ""; }; + 4F3953A43A3A4F8F4C8E36A4 /* testautomation_clipboard.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testautomation_clipboard.c"; path = "../../../../../test/testautomation_clipboard.c"; sourceTree = ""; }; + 2786614254EC5FB566462683 /* testautomation_events.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testautomation_events.c"; path = "../../../../../test/testautomation_events.c"; sourceTree = ""; }; + 3D67397E3717790131435254 /* testautomation_keyboard.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testautomation_keyboard.c"; path = "../../../../../test/testautomation_keyboard.c"; sourceTree = ""; }; + 5BEC6F3916D7143614DF3D74 /* testautomation_main.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testautomation_main.c"; path = "../../../../../test/testautomation_main.c"; sourceTree = ""; }; + 6D017E6145BD211645712A51 /* testautomation_mouse.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testautomation_mouse.c"; path = "../../../../../test/testautomation_mouse.c"; sourceTree = ""; }; + 435E6BF81AB9117F68EB441C /* testautomation_pixels.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testautomation_pixels.c"; path = "../../../../../test/testautomation_pixels.c"; sourceTree = ""; }; + 0055527C0684494769333104 /* testautomation_platform.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testautomation_platform.c"; path = "../../../../../test/testautomation_platform.c"; sourceTree = ""; }; + 0DC13053355641975EF14CFC /* testautomation_rect.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testautomation_rect.c"; path = "../../../../../test/testautomation_rect.c"; sourceTree = ""; }; + 7EE110555956273251AE02BD /* testautomation_render.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testautomation_render.c"; path = "../../../../../test/testautomation_render.c"; sourceTree = ""; }; + 05F752B051CB188A1FA10AE0 /* testautomation_rwops.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testautomation_rwops.c"; path = "../../../../../test/testautomation_rwops.c"; sourceTree = ""; }; + 140F10664DCC4A491D2D06DB /* testautomation_sdltest.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testautomation_sdltest.c"; path = "../../../../../test/testautomation_sdltest.c"; sourceTree = ""; }; + 26AF4A18290748D322B947F5 /* testautomation_stdlib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testautomation_stdlib.c"; path = "../../../../../test/testautomation_stdlib.c"; sourceTree = ""; }; + 3F19057030C97AB601CD4266 /* testautomation_suites.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "testautomation_suites.h"; path = "../../../../../test/testautomation_suites.h"; sourceTree = ""; }; + 5F0C25EE376B02EA064B50F6 /* testautomation_surface.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testautomation_surface.c"; path = "../../../../../test/testautomation_surface.c"; sourceTree = ""; }; + 1267615F52DF35C27BFC749A /* testautomation_syswm.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testautomation_syswm.c"; path = "../../../../../test/testautomation_syswm.c"; sourceTree = ""; }; + 30EA083B11207D622DDB12FC /* testautomation_timer.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testautomation_timer.c"; path = "../../../../../test/testautomation_timer.c"; sourceTree = ""; }; + 799007AB7FD4531345B703C3 /* testautomation_video.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testautomation_video.c"; path = "../../../../../test/testautomation_video.c"; sourceTree = ""; }; + 525D58370F4C52CF3B2C6C24 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 1CA133CE381F37C11A1B0BEB /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 69CB409266666CB01DB03008 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 6448343A600A31F50A122DE9 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 11861357591E56A023ED491D /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 3B20422947087C5367012759 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 58C11BD2221C785317CF3370 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 3A682EF21FA87CBA3C2B3F7D /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 77D94DCC4A8B73683E874CF3 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 75027F0E24CC623E719313AB /* testautomation */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testautomation"; path = "testautomation"; sourceTree = BUILT_PRODUCTS_DIR; }; + 6906495449E9743407E812AA /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 0058171435E569F359901CA9 /* SDL2test.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2test.xcodeproj"; path = "../../SDL2test/SDL2test.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 29FC6095786D7CDA66E54FA2 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 5D6A013F76D150BA04E85B78 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 634F703209AF4BF432C670FF /* AudioToolbox.framework in Frameworks */, + 2FD209F3507D70B84CE97341 /* AudioUnit.framework in Frameworks */, + 701A5D0F305059164EA22D84 /* Cocoa.framework in Frameworks */, + 3FD61CBC1F3C541624184811 /* CoreAudio.framework in Frameworks */, + 472C522A706B317850BA6C51 /* IOKit.framework in Frameworks */, + 054B18C7468D589C15E05FCA /* Carbon.framework in Frameworks */, + 22AD0BEA6F4E275414225D5D /* ForceFeedback.framework in Frameworks */, + 3B8A7FF62F4A2D17470C080E /* CoreFoundation.framework in Frameworks */, + 14960DFD058B085471CB4AB3 /* OpenGL.framework in Frameworks */, + 7C8926195FA63E4B429155D2 /* libSDL2main.a in Frameworks */, + 77A0414679C77DF659307C2A /* libSDL2test.a in Frameworks */, + 667727B43C5E63914EDD2933 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 202F2A541FD450F927A57FBC /* testautomation */ = { + isa = PBXGroup; + children = ( + 1B64500B363640606F5E14E5 /* test */, + 363D69995B857A2815A13DC6 /* Frameworks */, + 60B1254425E50F951FCA074B /* Products */, + 0A2C78C572E328E306C02744 /* Projects */, + ); + name = "testautomation"; + sourceTree = ""; + }; + 1B64500B363640606F5E14E5 /* test */ = { + isa = PBXGroup; + children = ( + 794762FD04D1549934E159CD /* testautomation.c */, + 471E0D47498B7B5274FB14FE /* testautomation_audio.c */, + 4F3953A43A3A4F8F4C8E36A4 /* testautomation_clipboard.c */, + 2786614254EC5FB566462683 /* testautomation_events.c */, + 3D67397E3717790131435254 /* testautomation_keyboard.c */, + 5BEC6F3916D7143614DF3D74 /* testautomation_main.c */, + 6D017E6145BD211645712A51 /* testautomation_mouse.c */, + 435E6BF81AB9117F68EB441C /* testautomation_pixels.c */, + 0055527C0684494769333104 /* testautomation_platform.c */, + 0DC13053355641975EF14CFC /* testautomation_rect.c */, + 7EE110555956273251AE02BD /* testautomation_render.c */, + 05F752B051CB188A1FA10AE0 /* testautomation_rwops.c */, + 140F10664DCC4A491D2D06DB /* testautomation_sdltest.c */, + 26AF4A18290748D322B947F5 /* testautomation_stdlib.c */, + 3F19057030C97AB601CD4266 /* testautomation_suites.h */, + 5F0C25EE376B02EA064B50F6 /* testautomation_surface.c */, + 1267615F52DF35C27BFC749A /* testautomation_syswm.c */, + 30EA083B11207D622DDB12FC /* testautomation_timer.c */, + 799007AB7FD4531345B703C3 /* testautomation_video.c */, + ); + name = "test"; + sourceTree = ""; + }; + 363D69995B857A2815A13DC6 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 525D58370F4C52CF3B2C6C24 /* AudioToolbox.framework */, + 1CA133CE381F37C11A1B0BEB /* AudioUnit.framework */, + 69CB409266666CB01DB03008 /* Cocoa.framework */, + 6448343A600A31F50A122DE9 /* CoreAudio.framework */, + 11861357591E56A023ED491D /* IOKit.framework */, + 3B20422947087C5367012759 /* Carbon.framework */, + 58C11BD2221C785317CF3370 /* ForceFeedback.framework */, + 3A682EF21FA87CBA3C2B3F7D /* CoreFoundation.framework */, + 77D94DCC4A8B73683E874CF3 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 60B1254425E50F951FCA074B /* Products */ = { + isa = PBXGroup; + children = ( + 75027F0E24CC623E719313AB /* testautomation */, + ); + name = "Products"; + sourceTree = ""; + }; + 0A2C78C572E328E306C02744 /* Projects */ = { + isa = PBXGroup; + children = ( + 6906495449E9743407E812AA /* SDL2main.xcodeproj */, + 0058171435E569F359901CA9 /* SDL2test.xcodeproj */, + 29FC6095786D7CDA66E54FA2 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 0BDA2B645FDD3BEE211A6954 /* Products */ = { + isa = PBXGroup; + children = ( + 65657808084F160069055C6D /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 7829072B1E387FAA7F1D6362 /* Products */ = { + isa = PBXGroup; + children = ( + 30744F3724232CC61005573B /* libSDL2test.a */, + ); + name = Products; + sourceTree = ""; + }; + 6E4E53E23BE56BD653904C40 /* Products */ = { + isa = PBXGroup; + children = ( + 51F53A75641962D9541A7DD9 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 586C3E63152630904E4344B7 /* testautomation */ = { + isa = PBXNativeTarget; + buildConfigurationList = 5BA144AB73752BB233B15E56 /* Build configuration list for PBXNativeTarget "testautomation" */; + buildPhases = ( + 602B2E997588500D28BF3D9C /* Resources */, + 5E6E466B254968535F104F95 /* Sources */, + 5D6A013F76D150BA04E85B78 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 5E91187E198B10230A423327 /* PBXTargetDependency */, + 34B918CE0EB26C3E7E5A4A83 /* PBXTargetDependency */, + 74B40BD2278E0624550E1B92 /* PBXTargetDependency */, + ); + name = "testautomation"; + productInstallPath = "$(HOME)/bin"; + productName = "testautomation"; + productReference = 75027F0E24CC623E719313AB /* testautomation */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testautomation" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 202F2A541FD450F927A57FBC /* testautomation */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 0BDA2B645FDD3BEE211A6954 /* Products */; + ProjectRef = 6906495449E9743407E812AA /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 7829072B1E387FAA7F1D6362 /* Products */; + ProjectRef = 0058171435E569F359901CA9 /* SDL2test.xcodeproj */; + }, + { + ProductGroup = 6E4E53E23BE56BD653904C40 /* Products */; + ProjectRef = 29FC6095786D7CDA66E54FA2 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 586C3E63152630904E4344B7 /* testautomation */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 65657808084F160069055C6D /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 1DCE473D01537CA077766F74 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 30744F3724232CC61005573B /* libSDL2test.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2test.a"; + remoteRef = 4893660C40505DFE57DA4601 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 51F53A75641962D9541A7DD9 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 2B800D747BF326C622B92D93 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 602B2E997588500D28BF3D9C /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 5E6E466B254968535F104F95 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 2F335BE80DE0020E203E5DD8 /* testautomation.c in Sources */, + 653716B97F514F1115D6458F /* testautomation_audio.c in Sources */, + 7C22594E259C512B68C3074A /* testautomation_clipboard.c in Sources */, + 0D0C2F586E93033058EB4F2D /* testautomation_events.c in Sources */, + 0EF101106870459C05C777E5 /* testautomation_keyboard.c in Sources */, + 4473155D1CA524123B156875 /* testautomation_main.c in Sources */, + 2C2A04F453191DD549990B38 /* testautomation_mouse.c in Sources */, + 174141BE560F099B2C951FF6 /* testautomation_pixels.c in Sources */, + 15E2389B6AB717B517F50AA9 /* testautomation_platform.c in Sources */, + 4E710EFA4F50233E3BB50A17 /* testautomation_rect.c in Sources */, + 07001C17388A1B8604CF33C9 /* testautomation_render.c in Sources */, + 115828D60DF755371C7E4B6F /* testautomation_rwops.c in Sources */, + 17E762DE07227FFC234A7E9B /* testautomation_sdltest.c in Sources */, + 3A1421F37C845F1F1A9A1691 /* testautomation_stdlib.c in Sources */, + 491B449B228565596C3C6841 /* testautomation_surface.c in Sources */, + 4EE3570C11213BFA50727385 /* testautomation_syswm.c in Sources */, + 15C3490D20032CC168A5510A /* testautomation_timer.c in Sources */, + 0D3D4F4B7C2244F36B98001A /* testautomation_video.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 5E91187E198B10230A423327 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 4570617838BB3896391D43EC /* PBXContainerItemProxy */; + }; + 34B918CE0EB26C3E7E5A4A83 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2test.a"; + targetProxy = 19D24173024D0FC63B313020 /* PBXContainerItemProxy */; + }; + 74B40BD2278E0624550E1B92 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 2325525D7B406481596F1ACA /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 530A5E2B6C51709625A378DA /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testautomation"; + }; + name = "Debug Universal"; + }; + 3959435D388F69171D142D41 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testautomation"; + }; + name = "Debug Native"; + }; + 273E09722ABB6C217CC7119E /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testautomation"; + }; + name = "Release Universal"; + }; + 320B04BC782D7AB87BAD2323 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testautomation"; + }; + name = "Release Native"; + }; + 605F7F38404C55F0155D47FF /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 39A135251D9001C821A36BFA /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 55770DCA779C47491C7B5963 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 77191B3A2E603070399E514A /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 5BA144AB73752BB233B15E56 /* Build configuration list for PBXNativeTarget "testautomation" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 530A5E2B6C51709625A378DA /* Debug Universal */, + 3959435D388F69171D142D41 /* Debug Native */, + 273E09722ABB6C217CC7119E /* Release Universal */, + 320B04BC782D7AB87BAD2323 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testautomation" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 605F7F38404C55F0155D47FF /* Debug Universal */, + 39A135251D9001C821A36BFA /* Debug Native */, + 55770DCA779C47491C7B5963 /* Release Universal */, + 77191B3A2E603070399E514A /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode3/tests/testchessboard/testchessboard.xcodeproj/project.pbxproj b/premake/Xcode/Xcode3/tests/testchessboard/testchessboard.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..64b971c92de78 --- /dev/null +++ b/premake/Xcode/Xcode3/tests/testchessboard/testchessboard.xcodeproj/project.pbxproj @@ -0,0 +1,457 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 35DE328145AD6E0914745F79 /* testdrawchessboard.c in Sources */ = {isa = PBXBuildFile; fileRef = 60996D1717D963E769CD2898 /* testdrawchessboard.c */; }; + 0110486431865C1E669C36DF /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 53165EAA0B2E158F6E762B5F /* AudioToolbox.framework */; }; + 7FC97D7F201C0EF852E13862 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 769C1044757D0E64647A44A6 /* AudioUnit.framework */; }; + 41D609FD5D23379474C46FFC /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5A7E27DA6BBA2A650C8A66F2 /* Cocoa.framework */; }; + 5277264E7ED10A462AE05E06 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D501CC572D136350610399A /* CoreAudio.framework */; }; + 722625F2417A3E3D3E8D1D28 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 72A559841B373846021274DF /* IOKit.framework */; }; + 45827A9C4A18208249DA2B1C /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 476967DE4E9A09EF64091D16 /* Carbon.framework */; }; + 5F3605382F072DF26D481BA4 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 69AA19F74A2B61D2520C3776 /* ForceFeedback.framework */; }; + 20E612CC280776C71AB64008 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2DFA232B67675BA732AC3F7C /* CoreFoundation.framework */; }; + 10AF6245321D238657A06FCC /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 76831E5E5DBD4629335D23F8 /* OpenGL.framework */; }; + 7E680796485C4FD40B7944EE /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 556C3C2D330A0B0047FD5F57 /* libSDL2main.a */; }; + 33241E5A5B95214B7472122D /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 66F16E0067F26FD93B4E13D3 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 5E9264457D8F4FDA258F7D50 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 48D519EF36B55DA1160D5EE2 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 58DC62993160374E09FF7AD6; + remoteInfo = "libSDL2main.a"; + }; + 398A4D6C75E32B05043D51FE /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 48D519EF36B55DA1160D5EE2 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 0E7126A94A11494963D3548B; + remoteInfo = "libSDL2main.a"; + }; + 3E9F799007DC20805CD54D80 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0CB41069655D7E0866A7735B /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 07D004B11E733F1F0EA93105; + remoteInfo = "libSDL2.a"; + }; + 290C1261537627EA7B57269C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0CB41069655D7E0866A7735B /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 58C10ED14175754444033E0E; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 60996D1717D963E769CD2898 /* testdrawchessboard.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testdrawchessboard.c"; path = "../../../../../test/testdrawchessboard.c"; sourceTree = ""; }; + 53165EAA0B2E158F6E762B5F /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 769C1044757D0E64647A44A6 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 5A7E27DA6BBA2A650C8A66F2 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 2D501CC572D136350610399A /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 72A559841B373846021274DF /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 476967DE4E9A09EF64091D16 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 69AA19F74A2B61D2520C3776 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 2DFA232B67675BA732AC3F7C /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 76831E5E5DBD4629335D23F8 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 5A0869BF37CB00921B944598 /* testchessboard */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testchessboard"; path = "testchessboard"; sourceTree = BUILT_PRODUCTS_DIR; }; + 48D519EF36B55DA1160D5EE2 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 0CB41069655D7E0866A7735B /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 24E15BE51C2017BE68F3698F /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 0110486431865C1E669C36DF /* AudioToolbox.framework in Frameworks */, + 7FC97D7F201C0EF852E13862 /* AudioUnit.framework in Frameworks */, + 41D609FD5D23379474C46FFC /* Cocoa.framework in Frameworks */, + 5277264E7ED10A462AE05E06 /* CoreAudio.framework in Frameworks */, + 722625F2417A3E3D3E8D1D28 /* IOKit.framework in Frameworks */, + 45827A9C4A18208249DA2B1C /* Carbon.framework in Frameworks */, + 5F3605382F072DF26D481BA4 /* ForceFeedback.framework in Frameworks */, + 20E612CC280776C71AB64008 /* CoreFoundation.framework in Frameworks */, + 10AF6245321D238657A06FCC /* OpenGL.framework in Frameworks */, + 7E680796485C4FD40B7944EE /* libSDL2main.a in Frameworks */, + 33241E5A5B95214B7472122D /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 2BF10F8D27097A0366F2294C /* testchessboard */ = { + isa = PBXGroup; + children = ( + 76D535B72B981F7C2015797C /* test */, + 2A7C3CF320AC38DF78681804 /* Frameworks */, + 7BB4694341283B1B173A71E2 /* Products */, + 679E6D3E2EFF2738661F1F8C /* Projects */, + ); + name = "testchessboard"; + sourceTree = ""; + }; + 76D535B72B981F7C2015797C /* test */ = { + isa = PBXGroup; + children = ( + 60996D1717D963E769CD2898 /* testdrawchessboard.c */, + ); + name = "test"; + sourceTree = ""; + }; + 2A7C3CF320AC38DF78681804 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 53165EAA0B2E158F6E762B5F /* AudioToolbox.framework */, + 769C1044757D0E64647A44A6 /* AudioUnit.framework */, + 5A7E27DA6BBA2A650C8A66F2 /* Cocoa.framework */, + 2D501CC572D136350610399A /* CoreAudio.framework */, + 72A559841B373846021274DF /* IOKit.framework */, + 476967DE4E9A09EF64091D16 /* Carbon.framework */, + 69AA19F74A2B61D2520C3776 /* ForceFeedback.framework */, + 2DFA232B67675BA732AC3F7C /* CoreFoundation.framework */, + 76831E5E5DBD4629335D23F8 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 7BB4694341283B1B173A71E2 /* Products */ = { + isa = PBXGroup; + children = ( + 5A0869BF37CB00921B944598 /* testchessboard */, + ); + name = "Products"; + sourceTree = ""; + }; + 679E6D3E2EFF2738661F1F8C /* Projects */ = { + isa = PBXGroup; + children = ( + 48D519EF36B55DA1160D5EE2 /* SDL2main.xcodeproj */, + 0CB41069655D7E0866A7735B /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 49B200351F1678324E3174EA /* Products */ = { + isa = PBXGroup; + children = ( + 556C3C2D330A0B0047FD5F57 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 41036B430C9B4C7529775FA4 /* Products */ = { + isa = PBXGroup; + children = ( + 66F16E0067F26FD93B4E13D3 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 07D02207186251D71CCD7829 /* testchessboard */ = { + isa = PBXNativeTarget; + buildConfigurationList = 01B27E227F386B85001A41CF /* Build configuration list for PBXNativeTarget "testchessboard" */; + buildPhases = ( + 3D931C945EA21D4C0F1E1330 /* Resources */, + 4E7F03F413B507E954C37591 /* Sources */, + 24E15BE51C2017BE68F3698F /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 214F56C74D9256F3225A5077 /* PBXTargetDependency */, + 510C136A2F672D291C086F8B /* PBXTargetDependency */, + ); + name = "testchessboard"; + productInstallPath = "$(HOME)/bin"; + productName = "testchessboard"; + productReference = 5A0869BF37CB00921B944598 /* testchessboard */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testchessboard" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 2BF10F8D27097A0366F2294C /* testchessboard */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 49B200351F1678324E3174EA /* Products */; + ProjectRef = 48D519EF36B55DA1160D5EE2 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 41036B430C9B4C7529775FA4 /* Products */; + ProjectRef = 0CB41069655D7E0866A7735B /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 07D02207186251D71CCD7829 /* testchessboard */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 556C3C2D330A0B0047FD5F57 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 5E9264457D8F4FDA258F7D50 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 66F16E0067F26FD93B4E13D3 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 3E9F799007DC20805CD54D80 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 3D931C945EA21D4C0F1E1330 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 4E7F03F413B507E954C37591 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 35DE328145AD6E0914745F79 /* testdrawchessboard.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 214F56C74D9256F3225A5077 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 398A4D6C75E32B05043D51FE /* PBXContainerItemProxy */; + }; + 510C136A2F672D291C086F8B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 290C1261537627EA7B57269C /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 67A117F234013A0663E16451 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testchessboard"; + }; + name = "Debug Universal"; + }; + 1BCC7B883E42796A3CD94CC9 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testchessboard"; + }; + name = "Debug Native"; + }; + 3D2D7BB13A5266A84BEC1887 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testchessboard"; + }; + name = "Release Universal"; + }; + 417E6CAF07F903EB4F4348B8 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testchessboard"; + }; + name = "Release Native"; + }; + 1B6F4D777CD26B656BBE3F65 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 61160B083DC61DEA14751448 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 573C43B32DD46E95354E4107 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 4A8028AA6A024D75566E08F9 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 01B27E227F386B85001A41CF /* Build configuration list for PBXNativeTarget "testchessboard" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 67A117F234013A0663E16451 /* Debug Universal */, + 1BCC7B883E42796A3CD94CC9 /* Debug Native */, + 3D2D7BB13A5266A84BEC1887 /* Release Universal */, + 417E6CAF07F903EB4F4348B8 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testchessboard" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1B6F4D777CD26B656BBE3F65 /* Debug Universal */, + 61160B083DC61DEA14751448 /* Debug Native */, + 573C43B32DD46E95354E4107 /* Release Universal */, + 4A8028AA6A024D75566E08F9 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode3/tests/testdraw2/testdraw2.xcodeproj/project.pbxproj b/premake/Xcode/Xcode3/tests/testdraw2/testdraw2.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..c8f56627bdd64 --- /dev/null +++ b/premake/Xcode/Xcode3/tests/testdraw2/testdraw2.xcodeproj/project.pbxproj @@ -0,0 +1,500 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 46A643E578D4673508D31259 /* testdraw2.c in Sources */ = {isa = PBXBuildFile; fileRef = 3B3F36FF4D8A2DD716C440D4 /* testdraw2.c */; }; + 107A71C744DF30D240C81A27 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 362D61AA1F56529425652D31 /* AudioToolbox.framework */; }; + 26446575064870BF494C3E42 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 34D47D841ED54D2751B771C4 /* AudioUnit.framework */; }; + 2553249C28071DD2726E1BDD /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 797B033D5B6C490E5BA75B83 /* Cocoa.framework */; }; + 649A616F5282137110F84534 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 684A6B9055540E5713A96DE1 /* CoreAudio.framework */; }; + 63531BEB1095549A6C6849FF /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 04076F4F45DE0B1B2DC833EA /* IOKit.framework */; }; + 4C63217B29F3164A549F36A6 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 07C063862A593E306BA26C60 /* Carbon.framework */; }; + 04090BB1204A6D8477DF0481 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 07F8332E3B3B280911103CCC /* ForceFeedback.framework */; }; + 46D34FBB1AE60EA458434F87 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 332C0F1827311CFA0A6D15BF /* CoreFoundation.framework */; }; + 6CF6242256FC3EFC139206FC /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 293C2E4D5E1B693D285E501A /* OpenGL.framework */; }; + 177F2BC3249E24E164CD7E1E /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 43A460245E6C3EA750F733AE /* libSDL2main.a */; }; + 09B2308925B451B75142513C /* libSDL2test.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5128532F4FD46D876FE00730 /* libSDL2test.a */; }; + 2CAD3DB40BED09454E765342 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3FCA07BB14A64ED71D202DC2 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 44CD19F82A1A1BD5563412AC /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 486A432B695035F428DF7ABF /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 58DC62993160374E09FF7AD6; + remoteInfo = "libSDL2main.a"; + }; + 11001D5A40213D8B28611B1A /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 486A432B695035F428DF7ABF /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 0E7126A94A11494963D3548B; + remoteInfo = "libSDL2main.a"; + }; + 0C4D504B1B2C6A111E1842E4 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 644E4C3B5CA36B2702C76EAD /* SDL2test.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 1E1175156F97314C291323CB; + remoteInfo = "libSDL2test.a"; + }; + 3D0670FA38FC52FF7C3D1BDC /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 644E4C3B5CA36B2702C76EAD /* SDL2test.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7CD70F5D43DA554D66287CFC; + remoteInfo = "libSDL2test.a"; + }; + 66FA34A779DA6601017F6257 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 71C277AE425D745E65B23734 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 07D004B11E733F1F0EA93105; + remoteInfo = "libSDL2.a"; + }; + 54892FDB58722851769A007D /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 71C277AE425D745E65B23734 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 58C10ED14175754444033E0E; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 3B3F36FF4D8A2DD716C440D4 /* testdraw2.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testdraw2.c"; path = "../../../../../test/testdraw2.c"; sourceTree = ""; }; + 362D61AA1F56529425652D31 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 34D47D841ED54D2751B771C4 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 797B033D5B6C490E5BA75B83 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 684A6B9055540E5713A96DE1 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 04076F4F45DE0B1B2DC833EA /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 07C063862A593E306BA26C60 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 07F8332E3B3B280911103CCC /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 332C0F1827311CFA0A6D15BF /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 293C2E4D5E1B693D285E501A /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 23C77B2C463965F0177666B8 /* testdraw2 */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testdraw2"; path = "testdraw2"; sourceTree = BUILT_PRODUCTS_DIR; }; + 486A432B695035F428DF7ABF /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 644E4C3B5CA36B2702C76EAD /* SDL2test.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2test.xcodeproj"; path = "../../SDL2test/SDL2test.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 71C277AE425D745E65B23734 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 0954145A60A5100166C11418 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 107A71C744DF30D240C81A27 /* AudioToolbox.framework in Frameworks */, + 26446575064870BF494C3E42 /* AudioUnit.framework in Frameworks */, + 2553249C28071DD2726E1BDD /* Cocoa.framework in Frameworks */, + 649A616F5282137110F84534 /* CoreAudio.framework in Frameworks */, + 63531BEB1095549A6C6849FF /* IOKit.framework in Frameworks */, + 4C63217B29F3164A549F36A6 /* Carbon.framework in Frameworks */, + 04090BB1204A6D8477DF0481 /* ForceFeedback.framework in Frameworks */, + 46D34FBB1AE60EA458434F87 /* CoreFoundation.framework in Frameworks */, + 6CF6242256FC3EFC139206FC /* OpenGL.framework in Frameworks */, + 177F2BC3249E24E164CD7E1E /* libSDL2main.a in Frameworks */, + 09B2308925B451B75142513C /* libSDL2test.a in Frameworks */, + 2CAD3DB40BED09454E765342 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 743368A34B4F6B5F46612ABD /* testdraw2 */ = { + isa = PBXGroup; + children = ( + 02453B617F8E630254DC70B2 /* test */, + 48704837171A4361321663C5 /* Frameworks */, + 31D45CBF16B00A4231340C84 /* Products */, + 33AA14AE61EE0F092327166A /* Projects */, + ); + name = "testdraw2"; + sourceTree = ""; + }; + 02453B617F8E630254DC70B2 /* test */ = { + isa = PBXGroup; + children = ( + 3B3F36FF4D8A2DD716C440D4 /* testdraw2.c */, + ); + name = "test"; + sourceTree = ""; + }; + 48704837171A4361321663C5 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 362D61AA1F56529425652D31 /* AudioToolbox.framework */, + 34D47D841ED54D2751B771C4 /* AudioUnit.framework */, + 797B033D5B6C490E5BA75B83 /* Cocoa.framework */, + 684A6B9055540E5713A96DE1 /* CoreAudio.framework */, + 04076F4F45DE0B1B2DC833EA /* IOKit.framework */, + 07C063862A593E306BA26C60 /* Carbon.framework */, + 07F8332E3B3B280911103CCC /* ForceFeedback.framework */, + 332C0F1827311CFA0A6D15BF /* CoreFoundation.framework */, + 293C2E4D5E1B693D285E501A /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 31D45CBF16B00A4231340C84 /* Products */ = { + isa = PBXGroup; + children = ( + 23C77B2C463965F0177666B8 /* testdraw2 */, + ); + name = "Products"; + sourceTree = ""; + }; + 33AA14AE61EE0F092327166A /* Projects */ = { + isa = PBXGroup; + children = ( + 486A432B695035F428DF7ABF /* SDL2main.xcodeproj */, + 644E4C3B5CA36B2702C76EAD /* SDL2test.xcodeproj */, + 71C277AE425D745E65B23734 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 709A16FC146E78AB389E28B2 /* Products */ = { + isa = PBXGroup; + children = ( + 43A460245E6C3EA750F733AE /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 448B2C942C3F78777583752F /* Products */ = { + isa = PBXGroup; + children = ( + 5128532F4FD46D876FE00730 /* libSDL2test.a */, + ); + name = Products; + sourceTree = ""; + }; + 7F4668843F6075EA15E66EAE /* Products */ = { + isa = PBXGroup; + children = ( + 3FCA07BB14A64ED71D202DC2 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 760571DE553A1046060419AF /* testdraw2 */ = { + isa = PBXNativeTarget; + buildConfigurationList = 4AF14260522E507206777256 /* Build configuration list for PBXNativeTarget "testdraw2" */; + buildPhases = ( + 2885554E12050C36678F1720 /* Resources */, + 5F5E1D1D60F4401202675F17 /* Sources */, + 0954145A60A5100166C11418 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 55961288456A38F7056E167A /* PBXTargetDependency */, + 301E421E70274CB07282688E /* PBXTargetDependency */, + 3DD370C46E011FF460E30B87 /* PBXTargetDependency */, + ); + name = "testdraw2"; + productInstallPath = "$(HOME)/bin"; + productName = "testdraw2"; + productReference = 23C77B2C463965F0177666B8 /* testdraw2 */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testdraw2" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 743368A34B4F6B5F46612ABD /* testdraw2 */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 709A16FC146E78AB389E28B2 /* Products */; + ProjectRef = 486A432B695035F428DF7ABF /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 448B2C942C3F78777583752F /* Products */; + ProjectRef = 644E4C3B5CA36B2702C76EAD /* SDL2test.xcodeproj */; + }, + { + ProductGroup = 7F4668843F6075EA15E66EAE /* Products */; + ProjectRef = 71C277AE425D745E65B23734 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 760571DE553A1046060419AF /* testdraw2 */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 43A460245E6C3EA750F733AE /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 44CD19F82A1A1BD5563412AC /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 5128532F4FD46D876FE00730 /* libSDL2test.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2test.a"; + remoteRef = 0C4D504B1B2C6A111E1842E4 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 3FCA07BB14A64ED71D202DC2 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 66FA34A779DA6601017F6257 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 2885554E12050C36678F1720 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 5F5E1D1D60F4401202675F17 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 46A643E578D4673508D31259 /* testdraw2.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 55961288456A38F7056E167A /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 11001D5A40213D8B28611B1A /* PBXContainerItemProxy */; + }; + 301E421E70274CB07282688E /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2test.a"; + targetProxy = 3D0670FA38FC52FF7C3D1BDC /* PBXContainerItemProxy */; + }; + 3DD370C46E011FF460E30B87 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 54892FDB58722851769A007D /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 23490E4A355E6ED176941E99 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testdraw2"; + }; + name = "Debug Universal"; + }; + 61BE161A26B87D1C766C2E32 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testdraw2"; + }; + name = "Debug Native"; + }; + 384C1F9A6BF9431F43C82E11 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testdraw2"; + }; + name = "Release Universal"; + }; + 56740DBE5084479C5D1C5B9E /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testdraw2"; + }; + name = "Release Native"; + }; + 64A47BC169081DA211EB6FD6 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 73582B713A9717DA14E54679 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 075646D2218265927C9F53DD /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 09567873708D3A0355285D01 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 4AF14260522E507206777256 /* Build configuration list for PBXNativeTarget "testdraw2" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 23490E4A355E6ED176941E99 /* Debug Universal */, + 61BE161A26B87D1C766C2E32 /* Debug Native */, + 384C1F9A6BF9431F43C82E11 /* Release Universal */, + 56740DBE5084479C5D1C5B9E /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testdraw2" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 64A47BC169081DA211EB6FD6 /* Debug Universal */, + 73582B713A9717DA14E54679 /* Debug Native */, + 075646D2218265927C9F53DD /* Release Universal */, + 09567873708D3A0355285D01 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode3/tests/testerror/testerror.xcodeproj/project.pbxproj b/premake/Xcode/Xcode3/tests/testerror/testerror.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..38606ca018b33 --- /dev/null +++ b/premake/Xcode/Xcode3/tests/testerror/testerror.xcodeproj/project.pbxproj @@ -0,0 +1,457 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 17F36FF223D577CE040E342A /* testerror.c in Sources */ = {isa = PBXBuildFile; fileRef = 2AD528C05907077E1C980084 /* testerror.c */; }; + 5C7C76636FB4225049E30962 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 242A7ADB51E93AC8229B297F /* AudioToolbox.framework */; }; + 55D31CE04107687A523138C1 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3F58459D51D43F875ECB6AE2 /* AudioUnit.framework */; }; + 16EF544D14414BCD300959E8 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 334320CD2EB329612B4952EC /* Cocoa.framework */; }; + 312528E57525045D04E55E0B /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1C6C31CF3E812DF0797A394C /* CoreAudio.framework */; }; + 6164728C6E8851A346A928C0 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4BD852F43C7D329A4EAD7B6D /* IOKit.framework */; }; + 699B65297DDF6A1E0BF665EE /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 60376BCC588668CC65617410 /* Carbon.framework */; }; + 52D806B15DBA758E50A26743 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1F297A542691370563C318DE /* ForceFeedback.framework */; }; + 187A22356B9F324B076D2730 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0F607DB43672788F25274B0E /* CoreFoundation.framework */; }; + 3A0353607DF115A314423754 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 584A07DE2AED5FCA73C606FC /* OpenGL.framework */; }; + 767523933EAB5BCB243518EE /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 079A33B1695D0E942AC90EB2 /* libSDL2main.a */; }; + 3CBF24FE282A7770718F7C28 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 540A66CB408E504F2D473B0C /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 5F116C1E4AB736B349E440B2 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 668C7E30376F65E65FF57724 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 58DC62993160374E09FF7AD6; + remoteInfo = "libSDL2main.a"; + }; + 0B9E63E70B65163F112B279B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 668C7E30376F65E65FF57724 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 0E7126A94A11494963D3548B; + remoteInfo = "libSDL2main.a"; + }; + 5EAC27E67852613A48610EB5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 473904A730CA33A056813A82 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 07D004B11E733F1F0EA93105; + remoteInfo = "libSDL2.a"; + }; + 453405F92872773764857EEE /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 473904A730CA33A056813A82 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 58C10ED14175754444033E0E; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 2AD528C05907077E1C980084 /* testerror.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testerror.c"; path = "../../../../../test/testerror.c"; sourceTree = ""; }; + 242A7ADB51E93AC8229B297F /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 3F58459D51D43F875ECB6AE2 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 334320CD2EB329612B4952EC /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 1C6C31CF3E812DF0797A394C /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 4BD852F43C7D329A4EAD7B6D /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 60376BCC588668CC65617410 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 1F297A542691370563C318DE /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 0F607DB43672788F25274B0E /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 584A07DE2AED5FCA73C606FC /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 430B280B15A10042050C5C68 /* testerror */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testerror"; path = "testerror"; sourceTree = BUILT_PRODUCTS_DIR; }; + 668C7E30376F65E65FF57724 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 473904A730CA33A056813A82 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 508430F81E4545FA3FA63BC6 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 5C7C76636FB4225049E30962 /* AudioToolbox.framework in Frameworks */, + 55D31CE04107687A523138C1 /* AudioUnit.framework in Frameworks */, + 16EF544D14414BCD300959E8 /* Cocoa.framework in Frameworks */, + 312528E57525045D04E55E0B /* CoreAudio.framework in Frameworks */, + 6164728C6E8851A346A928C0 /* IOKit.framework in Frameworks */, + 699B65297DDF6A1E0BF665EE /* Carbon.framework in Frameworks */, + 52D806B15DBA758E50A26743 /* ForceFeedback.framework in Frameworks */, + 187A22356B9F324B076D2730 /* CoreFoundation.framework in Frameworks */, + 3A0353607DF115A314423754 /* OpenGL.framework in Frameworks */, + 767523933EAB5BCB243518EE /* libSDL2main.a in Frameworks */, + 3CBF24FE282A7770718F7C28 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 247065CB755213A014F11B43 /* testerror */ = { + isa = PBXGroup; + children = ( + 65F6185108DB0AF171803A14 /* test */, + 3BA77DEF0897734D5B676A5D /* Frameworks */, + 6D166C097CD736C220776C40 /* Products */, + 1B7606265B0A10D479DE6F2C /* Projects */, + ); + name = "testerror"; + sourceTree = ""; + }; + 65F6185108DB0AF171803A14 /* test */ = { + isa = PBXGroup; + children = ( + 2AD528C05907077E1C980084 /* testerror.c */, + ); + name = "test"; + sourceTree = ""; + }; + 3BA77DEF0897734D5B676A5D /* Frameworks */ = { + isa = PBXGroup; + children = ( + 242A7ADB51E93AC8229B297F /* AudioToolbox.framework */, + 3F58459D51D43F875ECB6AE2 /* AudioUnit.framework */, + 334320CD2EB329612B4952EC /* Cocoa.framework */, + 1C6C31CF3E812DF0797A394C /* CoreAudio.framework */, + 4BD852F43C7D329A4EAD7B6D /* IOKit.framework */, + 60376BCC588668CC65617410 /* Carbon.framework */, + 1F297A542691370563C318DE /* ForceFeedback.framework */, + 0F607DB43672788F25274B0E /* CoreFoundation.framework */, + 584A07DE2AED5FCA73C606FC /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 6D166C097CD736C220776C40 /* Products */ = { + isa = PBXGroup; + children = ( + 430B280B15A10042050C5C68 /* testerror */, + ); + name = "Products"; + sourceTree = ""; + }; + 1B7606265B0A10D479DE6F2C /* Projects */ = { + isa = PBXGroup; + children = ( + 668C7E30376F65E65FF57724 /* SDL2main.xcodeproj */, + 473904A730CA33A056813A82 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 6D721818606B463A25996043 /* Products */ = { + isa = PBXGroup; + children = ( + 079A33B1695D0E942AC90EB2 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 1D7F044B59CF3F423066168C /* Products */ = { + isa = PBXGroup; + children = ( + 540A66CB408E504F2D473B0C /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 6FD078CA32E570E62FAC7B55 /* testerror */ = { + isa = PBXNativeTarget; + buildConfigurationList = 34B560ED7D9E21AD23582503 /* Build configuration list for PBXNativeTarget "testerror" */; + buildPhases = ( + 164938B91D941AD539E636C6 /* Resources */, + 425B7E6F62BF27286A180D2C /* Sources */, + 508430F81E4545FA3FA63BC6 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 69FF1BE85A7C0EE716D2443B /* PBXTargetDependency */, + 4FEA117D4965295E6AD34DD2 /* PBXTargetDependency */, + ); + name = "testerror"; + productInstallPath = "$(HOME)/bin"; + productName = "testerror"; + productReference = 430B280B15A10042050C5C68 /* testerror */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testerror" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 247065CB755213A014F11B43 /* testerror */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 6D721818606B463A25996043 /* Products */; + ProjectRef = 668C7E30376F65E65FF57724 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 1D7F044B59CF3F423066168C /* Products */; + ProjectRef = 473904A730CA33A056813A82 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 6FD078CA32E570E62FAC7B55 /* testerror */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 079A33B1695D0E942AC90EB2 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 5F116C1E4AB736B349E440B2 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 540A66CB408E504F2D473B0C /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 5EAC27E67852613A48610EB5 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 164938B91D941AD539E636C6 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 425B7E6F62BF27286A180D2C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 17F36FF223D577CE040E342A /* testerror.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 69FF1BE85A7C0EE716D2443B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 0B9E63E70B65163F112B279B /* PBXContainerItemProxy */; + }; + 4FEA117D4965295E6AD34DD2 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 453405F92872773764857EEE /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 24386F3E596918DA291C2E96 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testerror"; + }; + name = "Debug Universal"; + }; + 118B4516471538C5115921AE /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testerror"; + }; + name = "Debug Native"; + }; + 354A3B710CF9568C3616645B /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testerror"; + }; + name = "Release Universal"; + }; + 51115E5604C07F0C6F3A08E8 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testerror"; + }; + name = "Release Native"; + }; + 06B76729458605591CCB7F37 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 63456C690D7B2EF152151B6D /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 477F178808E30A7279936349 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 38F85370614A015F42246EB5 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 34B560ED7D9E21AD23582503 /* Build configuration list for PBXNativeTarget "testerror" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 24386F3E596918DA291C2E96 /* Debug Universal */, + 118B4516471538C5115921AE /* Debug Native */, + 354A3B710CF9568C3616645B /* Release Universal */, + 51115E5604C07F0C6F3A08E8 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testerror" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 06B76729458605591CCB7F37 /* Debug Universal */, + 63456C690D7B2EF152151B6D /* Debug Native */, + 477F178808E30A7279936349 /* Release Universal */, + 38F85370614A015F42246EB5 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode3/tests/testfile/testfile.xcodeproj/project.pbxproj b/premake/Xcode/Xcode3/tests/testfile/testfile.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..c2b51f3631f18 --- /dev/null +++ b/premake/Xcode/Xcode3/tests/testfile/testfile.xcodeproj/project.pbxproj @@ -0,0 +1,457 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 12B9553A11444429616D59C6 /* testfile.c in Sources */ = {isa = PBXBuildFile; fileRef = 53A77FF942F927C455B84781 /* testfile.c */; }; + 7B04459A069465B17D0627A6 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7A07191E2C972B570F1F4316 /* AudioToolbox.framework */; }; + 54FD6F2C67247E6F40E66347 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 434A4C52501C7A1718E04D06 /* AudioUnit.framework */; }; + 6020107A580D63BD189E6A28 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 571F63057A7A7C3E52AE3182 /* Cocoa.framework */; }; + 78301A5C377D22CC050F3360 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 232161417601563F79A5546B /* CoreAudio.framework */; }; + 311E4E724881278255517458 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 054B223825BD22DF79650A2F /* IOKit.framework */; }; + 018007961E2263CE26C44CE9 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 629678825B1A17724A7227FB /* Carbon.framework */; }; + 542E30D9264242B26BB81623 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6A200FB3562A0F885EE26DAE /* ForceFeedback.framework */; }; + 255B2EC65660579728091B6B /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 625B5D281B274BD51A5D7669 /* CoreFoundation.framework */; }; + 68A3529974322AC63C733751 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 38DA1E13099B443056592A57 /* OpenGL.framework */; }; + 501A5E9D32F573375A396E26 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 35C672053AE7439058CF1E06 /* libSDL2main.a */; }; + 75FA24B51AE94B583B3A7F78 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 021C28B302890B35602A095D /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 38DC1CE449A02EDB53A46F1F /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 456E5690134259340D017AE0 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 58DC62993160374E09FF7AD6; + remoteInfo = "libSDL2main.a"; + }; + 0A380900091C129F171F2BFD /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 456E5690134259340D017AE0 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 0E7126A94A11494963D3548B; + remoteInfo = "libSDL2main.a"; + }; + 36E065014BB04FEC2DB15E06 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0F804EE2031625A5344A6F0F /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 07D004B11E733F1F0EA93105; + remoteInfo = "libSDL2.a"; + }; + 6B5928536FA55B7D231549C8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0F804EE2031625A5344A6F0F /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 58C10ED14175754444033E0E; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 53A77FF942F927C455B84781 /* testfile.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testfile.c"; path = "../../../../../test/testfile.c"; sourceTree = ""; }; + 7A07191E2C972B570F1F4316 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 434A4C52501C7A1718E04D06 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 571F63057A7A7C3E52AE3182 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 232161417601563F79A5546B /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 054B223825BD22DF79650A2F /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 629678825B1A17724A7227FB /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 6A200FB3562A0F885EE26DAE /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 625B5D281B274BD51A5D7669 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 38DA1E13099B443056592A57 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 5FF3088A3FCA05760C613507 /* testfile */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testfile"; path = "testfile"; sourceTree = BUILT_PRODUCTS_DIR; }; + 456E5690134259340D017AE0 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 0F804EE2031625A5344A6F0F /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 63C5588C0B37498D6C9B4D01 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 7B04459A069465B17D0627A6 /* AudioToolbox.framework in Frameworks */, + 54FD6F2C67247E6F40E66347 /* AudioUnit.framework in Frameworks */, + 6020107A580D63BD189E6A28 /* Cocoa.framework in Frameworks */, + 78301A5C377D22CC050F3360 /* CoreAudio.framework in Frameworks */, + 311E4E724881278255517458 /* IOKit.framework in Frameworks */, + 018007961E2263CE26C44CE9 /* Carbon.framework in Frameworks */, + 542E30D9264242B26BB81623 /* ForceFeedback.framework in Frameworks */, + 255B2EC65660579728091B6B /* CoreFoundation.framework in Frameworks */, + 68A3529974322AC63C733751 /* OpenGL.framework in Frameworks */, + 501A5E9D32F573375A396E26 /* libSDL2main.a in Frameworks */, + 75FA24B51AE94B583B3A7F78 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 127B75A40BDB574C64C011B2 /* testfile */ = { + isa = PBXGroup; + children = ( + 7D017901635636C825861697 /* test */, + 7A3008B20E036DE23C3B513B /* Frameworks */, + 4E33258618BA1CA05A5C6978 /* Products */, + 5A025AD573D015154D736ADC /* Projects */, + ); + name = "testfile"; + sourceTree = ""; + }; + 7D017901635636C825861697 /* test */ = { + isa = PBXGroup; + children = ( + 53A77FF942F927C455B84781 /* testfile.c */, + ); + name = "test"; + sourceTree = ""; + }; + 7A3008B20E036DE23C3B513B /* Frameworks */ = { + isa = PBXGroup; + children = ( + 7A07191E2C972B570F1F4316 /* AudioToolbox.framework */, + 434A4C52501C7A1718E04D06 /* AudioUnit.framework */, + 571F63057A7A7C3E52AE3182 /* Cocoa.framework */, + 232161417601563F79A5546B /* CoreAudio.framework */, + 054B223825BD22DF79650A2F /* IOKit.framework */, + 629678825B1A17724A7227FB /* Carbon.framework */, + 6A200FB3562A0F885EE26DAE /* ForceFeedback.framework */, + 625B5D281B274BD51A5D7669 /* CoreFoundation.framework */, + 38DA1E13099B443056592A57 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 4E33258618BA1CA05A5C6978 /* Products */ = { + isa = PBXGroup; + children = ( + 5FF3088A3FCA05760C613507 /* testfile */, + ); + name = "Products"; + sourceTree = ""; + }; + 5A025AD573D015154D736ADC /* Projects */ = { + isa = PBXGroup; + children = ( + 456E5690134259340D017AE0 /* SDL2main.xcodeproj */, + 0F804EE2031625A5344A6F0F /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 01CC07FB0EE71603201159C5 /* Products */ = { + isa = PBXGroup; + children = ( + 35C672053AE7439058CF1E06 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 1CB5571343E710DC6CBD7D10 /* Products */ = { + isa = PBXGroup; + children = ( + 021C28B302890B35602A095D /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 76920DAF18017081649264B5 /* testfile */ = { + isa = PBXNativeTarget; + buildConfigurationList = 1FAE5CF509DF4EEA07F2584A /* Build configuration list for PBXNativeTarget "testfile" */; + buildPhases = ( + 79DD48C9121F3797402D4FB7 /* Resources */, + 01E11129246D0B0B3A757724 /* Sources */, + 63C5588C0B37498D6C9B4D01 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 0642037E5B0A7E247DD625D8 /* PBXTargetDependency */, + 0FF60B471437282B2572614B /* PBXTargetDependency */, + ); + name = "testfile"; + productInstallPath = "$(HOME)/bin"; + productName = "testfile"; + productReference = 5FF3088A3FCA05760C613507 /* testfile */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testfile" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 127B75A40BDB574C64C011B2 /* testfile */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 01CC07FB0EE71603201159C5 /* Products */; + ProjectRef = 456E5690134259340D017AE0 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 1CB5571343E710DC6CBD7D10 /* Products */; + ProjectRef = 0F804EE2031625A5344A6F0F /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 76920DAF18017081649264B5 /* testfile */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 35C672053AE7439058CF1E06 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 38DC1CE449A02EDB53A46F1F /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 021C28B302890B35602A095D /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 36E065014BB04FEC2DB15E06 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 79DD48C9121F3797402D4FB7 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 01E11129246D0B0B3A757724 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 12B9553A11444429616D59C6 /* testfile.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 0642037E5B0A7E247DD625D8 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 0A380900091C129F171F2BFD /* PBXContainerItemProxy */; + }; + 0FF60B471437282B2572614B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 6B5928536FA55B7D231549C8 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 61FD528536756017160E2A9A /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testfile"; + }; + name = "Debug Universal"; + }; + 7D1456CC29F75068168B06F0 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testfile"; + }; + name = "Debug Native"; + }; + 099144B44387563140BD56F3 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testfile"; + }; + name = "Release Universal"; + }; + 60443F5A4CB24B6C4ADA400A /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testfile"; + }; + name = "Release Native"; + }; + 79BD72FE3C0726174BD74E5C /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 1DB90350172C67C955AE2FC4 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 27D533A317124927334E5EF9 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 6242645C6E6F54DF173B37D8 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 1FAE5CF509DF4EEA07F2584A /* Build configuration list for PBXNativeTarget "testfile" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 61FD528536756017160E2A9A /* Debug Universal */, + 7D1456CC29F75068168B06F0 /* Debug Native */, + 099144B44387563140BD56F3 /* Release Universal */, + 60443F5A4CB24B6C4ADA400A /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testfile" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 79BD72FE3C0726174BD74E5C /* Debug Universal */, + 1DB90350172C67C955AE2FC4 /* Debug Native */, + 27D533A317124927334E5EF9 /* Release Universal */, + 6242645C6E6F54DF173B37D8 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode3/tests/testfilesystem/testfilesystem.xcodeproj/project.pbxproj b/premake/Xcode/Xcode3/tests/testfilesystem/testfilesystem.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..ff0c32dad9667 --- /dev/null +++ b/premake/Xcode/Xcode3/tests/testfilesystem/testfilesystem.xcodeproj/project.pbxproj @@ -0,0 +1,457 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 27E66D265BFC2650651E4B38 /* testfilesystem.c in Sources */ = {isa = PBXBuildFile; fileRef = 45BB219C3EC9278B49857862 /* testfilesystem.c */; }; + 77FC574654B778A551877854 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0AFD68905EC649D96E4C7A51 /* AudioToolbox.framework */; }; + 7846719321C40AE750F0553A /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0410628B1FD919E525D558CE /* AudioUnit.framework */; }; + 4CDE1E2A5C9029E91529548C /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A043B22584C7EF064861EE5 /* Cocoa.framework */; }; + 71C77EC41B4C397541A20C68 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 691D0D8614D746ED17456982 /* CoreAudio.framework */; }; + 73A919636FA61D1D75C101D3 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 08F2058C46B744A554905355 /* IOKit.framework */; }; + 09357EAD401D5D4E404D1FF2 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 759E092842380861577E3702 /* Carbon.framework */; }; + 096B0BDE5038152418B8738D /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 060976CA07D36B2376BC3712 /* ForceFeedback.framework */; }; + 1B334ABF5FDC0E7B537D42A3 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 35374492037A75A608B81AD5 /* CoreFoundation.framework */; }; + 3295050547D71A677D460AA6 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 18CA7C7B228E53A519724694 /* OpenGL.framework */; }; + 5D11444E630018235EAB3E64 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6A747965580349D150D57EF6 /* libSDL2main.a */; }; + 33BB585C23E73DE9408309AA /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D7560977F5615AD16180488 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 30DA764F5A5521A573D61963 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 49275E85719B264124914A2D /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 58DC62993160374E09FF7AD6; + remoteInfo = "libSDL2main.a"; + }; + 60D14612560364111E0178B0 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 49275E85719B264124914A2D /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 0E7126A94A11494963D3548B; + remoteInfo = "libSDL2main.a"; + }; + 69AD0D501B3C317F0C580F4D /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1FD25363099744B34525215C /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 07D004B11E733F1F0EA93105; + remoteInfo = "libSDL2.a"; + }; + 377F77233C07298E5B4C00D8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1FD25363099744B34525215C /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 58C10ED14175754444033E0E; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 45BB219C3EC9278B49857862 /* testfilesystem.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testfilesystem.c"; path = "../../../../../test/testfilesystem.c"; sourceTree = ""; }; + 0AFD68905EC649D96E4C7A51 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 0410628B1FD919E525D558CE /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 0A043B22584C7EF064861EE5 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 691D0D8614D746ED17456982 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 08F2058C46B744A554905355 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 759E092842380861577E3702 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 060976CA07D36B2376BC3712 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 35374492037A75A608B81AD5 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 18CA7C7B228E53A519724694 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 4B6F7519691E6F53450A4308 /* testfilesystem */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testfilesystem"; path = "testfilesystem"; sourceTree = BUILT_PRODUCTS_DIR; }; + 49275E85719B264124914A2D /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 1FD25363099744B34525215C /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 2F8171991948033524C8557A /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 77FC574654B778A551877854 /* AudioToolbox.framework in Frameworks */, + 7846719321C40AE750F0553A /* AudioUnit.framework in Frameworks */, + 4CDE1E2A5C9029E91529548C /* Cocoa.framework in Frameworks */, + 71C77EC41B4C397541A20C68 /* CoreAudio.framework in Frameworks */, + 73A919636FA61D1D75C101D3 /* IOKit.framework in Frameworks */, + 09357EAD401D5D4E404D1FF2 /* Carbon.framework in Frameworks */, + 096B0BDE5038152418B8738D /* ForceFeedback.framework in Frameworks */, + 1B334ABF5FDC0E7B537D42A3 /* CoreFoundation.framework in Frameworks */, + 3295050547D71A677D460AA6 /* OpenGL.framework in Frameworks */, + 5D11444E630018235EAB3E64 /* libSDL2main.a in Frameworks */, + 33BB585C23E73DE9408309AA /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 228378B62E4B79B824FA2CDB /* testfilesystem */ = { + isa = PBXGroup; + children = ( + 6B305B5814E6255063D41724 /* test */, + 7F57504E46CF4BD72E4E367C /* Frameworks */, + 26743E38796029944A6F72AE /* Products */, + 37992E8C18BA0C8724E741B2 /* Projects */, + ); + name = "testfilesystem"; + sourceTree = ""; + }; + 6B305B5814E6255063D41724 /* test */ = { + isa = PBXGroup; + children = ( + 45BB219C3EC9278B49857862 /* testfilesystem.c */, + ); + name = "test"; + sourceTree = ""; + }; + 7F57504E46CF4BD72E4E367C /* Frameworks */ = { + isa = PBXGroup; + children = ( + 0AFD68905EC649D96E4C7A51 /* AudioToolbox.framework */, + 0410628B1FD919E525D558CE /* AudioUnit.framework */, + 0A043B22584C7EF064861EE5 /* Cocoa.framework */, + 691D0D8614D746ED17456982 /* CoreAudio.framework */, + 08F2058C46B744A554905355 /* IOKit.framework */, + 759E092842380861577E3702 /* Carbon.framework */, + 060976CA07D36B2376BC3712 /* ForceFeedback.framework */, + 35374492037A75A608B81AD5 /* CoreFoundation.framework */, + 18CA7C7B228E53A519724694 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 26743E38796029944A6F72AE /* Products */ = { + isa = PBXGroup; + children = ( + 4B6F7519691E6F53450A4308 /* testfilesystem */, + ); + name = "Products"; + sourceTree = ""; + }; + 37992E8C18BA0C8724E741B2 /* Projects */ = { + isa = PBXGroup; + children = ( + 49275E85719B264124914A2D /* SDL2main.xcodeproj */, + 1FD25363099744B34525215C /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 208C029A7C8D35585AA05BD1 /* Products */ = { + isa = PBXGroup; + children = ( + 6A747965580349D150D57EF6 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 32D168EC72AD7D4A2B4B7873 /* Products */ = { + isa = PBXGroup; + children = ( + 4D7560977F5615AD16180488 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 73521CE863C65C4A30CC6158 /* testfilesystem */ = { + isa = PBXNativeTarget; + buildConfigurationList = 033C0E7749924D4F25B20601 /* Build configuration list for PBXNativeTarget "testfilesystem" */; + buildPhases = ( + 33A320283E6D7E241EB93586 /* Resources */, + 1E2E1F971B4F0FDB1D765FBD /* Sources */, + 2F8171991948033524C8557A /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 76BF0ECC2BBB374D47417EE8 /* PBXTargetDependency */, + 740D06C1769C3387062635BB /* PBXTargetDependency */, + ); + name = "testfilesystem"; + productInstallPath = "$(HOME)/bin"; + productName = "testfilesystem"; + productReference = 4B6F7519691E6F53450A4308 /* testfilesystem */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testfilesystem" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 228378B62E4B79B824FA2CDB /* testfilesystem */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 208C029A7C8D35585AA05BD1 /* Products */; + ProjectRef = 49275E85719B264124914A2D /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 32D168EC72AD7D4A2B4B7873 /* Products */; + ProjectRef = 1FD25363099744B34525215C /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 73521CE863C65C4A30CC6158 /* testfilesystem */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 6A747965580349D150D57EF6 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 30DA764F5A5521A573D61963 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 4D7560977F5615AD16180488 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 69AD0D501B3C317F0C580F4D /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 33A320283E6D7E241EB93586 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 1E2E1F971B4F0FDB1D765FBD /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 27E66D265BFC2650651E4B38 /* testfilesystem.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 76BF0ECC2BBB374D47417EE8 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 60D14612560364111E0178B0 /* PBXContainerItemProxy */; + }; + 740D06C1769C3387062635BB /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 377F77233C07298E5B4C00D8 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 259C4DB274491080504F1823 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testfilesystem"; + }; + name = "Debug Universal"; + }; + 488A73136F12290744F81F69 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testfilesystem"; + }; + name = "Debug Native"; + }; + 76265D5C5AE117DA1E1501F0 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testfilesystem"; + }; + name = "Release Universal"; + }; + 482F473C5F1570B44B3C6013 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testfilesystem"; + }; + name = "Release Native"; + }; + 601E58756D4D6E053A6A136A /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 5FCE036A5AD65182619A4EC1 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 6D097E32313C68B502EA741B /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 0345423E34A2156735376579 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 033C0E7749924D4F25B20601 /* Build configuration list for PBXNativeTarget "testfilesystem" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 259C4DB274491080504F1823 /* Debug Universal */, + 488A73136F12290744F81F69 /* Debug Native */, + 76265D5C5AE117DA1E1501F0 /* Release Universal */, + 482F473C5F1570B44B3C6013 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testfilesystem" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 601E58756D4D6E053A6A136A /* Debug Universal */, + 5FCE036A5AD65182619A4EC1 /* Debug Native */, + 6D097E32313C68B502EA741B /* Release Universal */, + 0345423E34A2156735376579 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode3/tests/testgamecontroller/testgamecontroller.xcodeproj/project.pbxproj b/premake/Xcode/Xcode3/tests/testgamecontroller/testgamecontroller.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..7732b21e32c4d --- /dev/null +++ b/premake/Xcode/Xcode3/tests/testgamecontroller/testgamecontroller.xcodeproj/project.pbxproj @@ -0,0 +1,457 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 2B50214C1E056A12707340ED /* testgamecontroller.c in Sources */ = {isa = PBXBuildFile; fileRef = 126D67D510C85A6C03E94C6D /* testgamecontroller.c */; }; + 175443B0039F66FA44F00CA2 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 58953E952CAC6DD01BDB0794 /* AudioToolbox.framework */; }; + 23972E076A404C4E1C816A1F /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 14AA2F4F732A6BC70AC45187 /* AudioUnit.framework */; }; + 09640528131A21A9740F1CA5 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 225E044C4FC8055B1E940DF1 /* Cocoa.framework */; }; + 44095B55423E7FE8090132BE /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 54D70ECF7998287258EE1144 /* CoreAudio.framework */; }; + 7AFC733E003B2B3754EE0E5D /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0F3C5314615675DD34597D63 /* IOKit.framework */; }; + 5C59745B30E671640EED2159 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0246693730305EA55EDD0E6A /* Carbon.framework */; }; + 64F52E933D7816FF7EB8688C /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 76DD426A60CF71EB7C5D74C5 /* ForceFeedback.framework */; }; + 339C5AA512D653ED1946728B /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4EAC24372C0B341159A57E6B /* CoreFoundation.framework */; }; + 73CF32C40BC53B191F0B2690 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 38835CE205EB437E2C0673F7 /* OpenGL.framework */; }; + 09203C322CAE13134E54004E /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 18FC77EF04CC142539507250 /* libSDL2main.a */; }; + 2A386E15636D434D7E381E71 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 527B47453AED59E42BB50570 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 30DA5E641EDA17C8510930B6 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 70002B414DB7446C17E9573F /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 58DC62993160374E09FF7AD6; + remoteInfo = "libSDL2main.a"; + }; + 0D8B2DB9636F4A4038846A56 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 70002B414DB7446C17E9573F /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 0E7126A94A11494963D3548B; + remoteInfo = "libSDL2main.a"; + }; + 53C06F4B64E45CCA63FF1144 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 28C7455508C14E8E683C4B61 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 07D004B11E733F1F0EA93105; + remoteInfo = "libSDL2.a"; + }; + 410A02AE7ED221353FBE069A /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 28C7455508C14E8E683C4B61 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 58C10ED14175754444033E0E; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 126D67D510C85A6C03E94C6D /* testgamecontroller.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testgamecontroller.c"; path = "../../../../../test/testgamecontroller.c"; sourceTree = ""; }; + 58953E952CAC6DD01BDB0794 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 14AA2F4F732A6BC70AC45187 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 225E044C4FC8055B1E940DF1 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 54D70ECF7998287258EE1144 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 0F3C5314615675DD34597D63 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 0246693730305EA55EDD0E6A /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 76DD426A60CF71EB7C5D74C5 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 4EAC24372C0B341159A57E6B /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 38835CE205EB437E2C0673F7 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 13831EFD797E6C5158677C65 /* testgamecontroller */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testgamecontroller"; path = "testgamecontroller"; sourceTree = BUILT_PRODUCTS_DIR; }; + 70002B414DB7446C17E9573F /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 28C7455508C14E8E683C4B61 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 2D927D1A71FE0F0E76103B07 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 175443B0039F66FA44F00CA2 /* AudioToolbox.framework in Frameworks */, + 23972E076A404C4E1C816A1F /* AudioUnit.framework in Frameworks */, + 09640528131A21A9740F1CA5 /* Cocoa.framework in Frameworks */, + 44095B55423E7FE8090132BE /* CoreAudio.framework in Frameworks */, + 7AFC733E003B2B3754EE0E5D /* IOKit.framework in Frameworks */, + 5C59745B30E671640EED2159 /* Carbon.framework in Frameworks */, + 64F52E933D7816FF7EB8688C /* ForceFeedback.framework in Frameworks */, + 339C5AA512D653ED1946728B /* CoreFoundation.framework in Frameworks */, + 73CF32C40BC53B191F0B2690 /* OpenGL.framework in Frameworks */, + 09203C322CAE13134E54004E /* libSDL2main.a in Frameworks */, + 2A386E15636D434D7E381E71 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 70D736877EDD78F474EB0928 /* testgamecontroller */ = { + isa = PBXGroup; + children = ( + 3A3461B06BA41D46778E2878 /* test */, + 269736B127155C4B4D22059A /* Frameworks */, + 6B654C6F240F62EB6D786C56 /* Products */, + 30890C4657722CB6213E1005 /* Projects */, + ); + name = "testgamecontroller"; + sourceTree = ""; + }; + 3A3461B06BA41D46778E2878 /* test */ = { + isa = PBXGroup; + children = ( + 126D67D510C85A6C03E94C6D /* testgamecontroller.c */, + ); + name = "test"; + sourceTree = ""; + }; + 269736B127155C4B4D22059A /* Frameworks */ = { + isa = PBXGroup; + children = ( + 58953E952CAC6DD01BDB0794 /* AudioToolbox.framework */, + 14AA2F4F732A6BC70AC45187 /* AudioUnit.framework */, + 225E044C4FC8055B1E940DF1 /* Cocoa.framework */, + 54D70ECF7998287258EE1144 /* CoreAudio.framework */, + 0F3C5314615675DD34597D63 /* IOKit.framework */, + 0246693730305EA55EDD0E6A /* Carbon.framework */, + 76DD426A60CF71EB7C5D74C5 /* ForceFeedback.framework */, + 4EAC24372C0B341159A57E6B /* CoreFoundation.framework */, + 38835CE205EB437E2C0673F7 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 6B654C6F240F62EB6D786C56 /* Products */ = { + isa = PBXGroup; + children = ( + 13831EFD797E6C5158677C65 /* testgamecontroller */, + ); + name = "Products"; + sourceTree = ""; + }; + 30890C4657722CB6213E1005 /* Projects */ = { + isa = PBXGroup; + children = ( + 70002B414DB7446C17E9573F /* SDL2main.xcodeproj */, + 28C7455508C14E8E683C4B61 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 10BC462750667687322551BA /* Products */ = { + isa = PBXGroup; + children = ( + 18FC77EF04CC142539507250 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 4D2962B104CD402751E30FD4 /* Products */ = { + isa = PBXGroup; + children = ( + 527B47453AED59E42BB50570 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 50DB78277F1369ED01D62FB3 /* testgamecontroller */ = { + isa = PBXNativeTarget; + buildConfigurationList = 0D205F28786353DF0C9D23FA /* Build configuration list for PBXNativeTarget "testgamecontroller" */; + buildPhases = ( + 0FB81A643AA0146737222745 /* Resources */, + 5EE12B0161FD66BB3B514CB5 /* Sources */, + 2D927D1A71FE0F0E76103B07 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 6E5068B3775D048B7B762663 /* PBXTargetDependency */, + 2841674A502A31474B2B2EE5 /* PBXTargetDependency */, + ); + name = "testgamecontroller"; + productInstallPath = "$(HOME)/bin"; + productName = "testgamecontroller"; + productReference = 13831EFD797E6C5158677C65 /* testgamecontroller */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testgamecontroller" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 70D736877EDD78F474EB0928 /* testgamecontroller */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 10BC462750667687322551BA /* Products */; + ProjectRef = 70002B414DB7446C17E9573F /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 4D2962B104CD402751E30FD4 /* Products */; + ProjectRef = 28C7455508C14E8E683C4B61 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 50DB78277F1369ED01D62FB3 /* testgamecontroller */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 18FC77EF04CC142539507250 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 30DA5E641EDA17C8510930B6 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 527B47453AED59E42BB50570 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 53C06F4B64E45CCA63FF1144 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 0FB81A643AA0146737222745 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 5EE12B0161FD66BB3B514CB5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 2B50214C1E056A12707340ED /* testgamecontroller.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 6E5068B3775D048B7B762663 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 0D8B2DB9636F4A4038846A56 /* PBXContainerItemProxy */; + }; + 2841674A502A31474B2B2EE5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 410A02AE7ED221353FBE069A /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 73B05ACF019855226AEE5BAB /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testgamecontroller"; + }; + name = "Debug Universal"; + }; + 1EF568B634FD7A3C2034522E /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testgamecontroller"; + }; + name = "Debug Native"; + }; + 12B15B64065775074B364E9E /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testgamecontroller"; + }; + name = "Release Universal"; + }; + 256607DE339B214F5B512B9B /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testgamecontroller"; + }; + name = "Release Native"; + }; + 3DEF3B3319B835312459064E /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 52AF631F14793DBC2AF809CF /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 05E91BF10FB5725B6AF478F9 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 686C3F5644061648739756A1 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 0D205F28786353DF0C9D23FA /* Build configuration list for PBXNativeTarget "testgamecontroller" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 73B05ACF019855226AEE5BAB /* Debug Universal */, + 1EF568B634FD7A3C2034522E /* Debug Native */, + 12B15B64065775074B364E9E /* Release Universal */, + 256607DE339B214F5B512B9B /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testgamecontroller" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3DEF3B3319B835312459064E /* Debug Universal */, + 52AF631F14793DBC2AF809CF /* Debug Native */, + 05E91BF10FB5725B6AF478F9 /* Release Universal */, + 686C3F5644061648739756A1 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode3/tests/testgesture/testgesture.xcodeproj/project.pbxproj b/premake/Xcode/Xcode3/tests/testgesture/testgesture.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..c4f20f5c10ac9 --- /dev/null +++ b/premake/Xcode/Xcode3/tests/testgesture/testgesture.xcodeproj/project.pbxproj @@ -0,0 +1,457 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 52354162254219EE76684ABE /* testgesture.c in Sources */ = {isa = PBXBuildFile; fileRef = 07DB579373F22595065E1C59 /* testgesture.c */; }; + 3F42123E2E697F9E0DD741EE /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 713E56B060CB616F47E54128 /* AudioToolbox.framework */; }; + 35E033C81DCD1B8D0561256B /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1B2B2ACC49260036069E2F4A /* AudioUnit.framework */; }; + 258413E94648248B4E88698B /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 49DA3EB231D324B918422E8E /* Cocoa.framework */; }; + 729D22CF02EA7FB35C1035EE /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 38CF4B521F3A3990392B57DF /* CoreAudio.framework */; }; + 56B506D10D0F5CA4295056D5 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1EFF080F311513506C8D2AF3 /* IOKit.framework */; }; + 0510734575430553302761F0 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 54F47A8D654D4D3770A50937 /* Carbon.framework */; }; + 4CEE2F91710A71464A220D5A /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 693D5CF834BB16770AAD1C5F /* ForceFeedback.framework */; }; + 2ABA54F276B375AB4B0D6777 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C2A5B3D3480489954653D0D /* CoreFoundation.framework */; }; + 4D77611D7300085D4DE63CA1 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 63F66CDA77B535E15D2E0416 /* OpenGL.framework */; }; + 02AB28D775B07A786BC961F7 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 392F75CE4C2078C309201BD6 /* libSDL2main.a */; }; + 381A521865952C762D012938 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4DDE4FE4303847E451E94F08 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 43707FCD29B07F7C481D1A32 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 075F2A1B12B8177E0F322D60 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 58DC62993160374E09FF7AD6; + remoteInfo = "libSDL2main.a"; + }; + 00771E2C5FC10F8F7C5A0D8D /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 075F2A1B12B8177E0F322D60 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 0E7126A94A11494963D3548B; + remoteInfo = "libSDL2main.a"; + }; + 63D0165D42077F622F8A2C2D /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 2BFF78BF47B946F273021C53 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 07D004B11E733F1F0EA93105; + remoteInfo = "libSDL2.a"; + }; + 42482F692CC41EA42EDE23D1 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 2BFF78BF47B946F273021C53 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 58C10ED14175754444033E0E; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 07DB579373F22595065E1C59 /* testgesture.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testgesture.c"; path = "../../../../../test/testgesture.c"; sourceTree = ""; }; + 713E56B060CB616F47E54128 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 1B2B2ACC49260036069E2F4A /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 49DA3EB231D324B918422E8E /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 38CF4B521F3A3990392B57DF /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 1EFF080F311513506C8D2AF3 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 54F47A8D654D4D3770A50937 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 693D5CF834BB16770AAD1C5F /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 4C2A5B3D3480489954653D0D /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 63F66CDA77B535E15D2E0416 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 4724438248DC05CC154031BE /* testgesture */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testgesture"; path = "testgesture"; sourceTree = BUILT_PRODUCTS_DIR; }; + 075F2A1B12B8177E0F322D60 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 2BFF78BF47B946F273021C53 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 5D7B67B06708403436B151AE /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 3F42123E2E697F9E0DD741EE /* AudioToolbox.framework in Frameworks */, + 35E033C81DCD1B8D0561256B /* AudioUnit.framework in Frameworks */, + 258413E94648248B4E88698B /* Cocoa.framework in Frameworks */, + 729D22CF02EA7FB35C1035EE /* CoreAudio.framework in Frameworks */, + 56B506D10D0F5CA4295056D5 /* IOKit.framework in Frameworks */, + 0510734575430553302761F0 /* Carbon.framework in Frameworks */, + 4CEE2F91710A71464A220D5A /* ForceFeedback.framework in Frameworks */, + 2ABA54F276B375AB4B0D6777 /* CoreFoundation.framework in Frameworks */, + 4D77611D7300085D4DE63CA1 /* OpenGL.framework in Frameworks */, + 02AB28D775B07A786BC961F7 /* libSDL2main.a in Frameworks */, + 381A521865952C762D012938 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 12DA479479947D0D648373F4 /* testgesture */ = { + isa = PBXGroup; + children = ( + 425E62093FE7074F6C3C13E4 /* test */, + 305E740B33B4757C59760F0A /* Frameworks */, + 1AFE2FCD4B25165B66341EEA /* Products */, + 4B353CAD095349231EBF3FED /* Projects */, + ); + name = "testgesture"; + sourceTree = ""; + }; + 425E62093FE7074F6C3C13E4 /* test */ = { + isa = PBXGroup; + children = ( + 07DB579373F22595065E1C59 /* testgesture.c */, + ); + name = "test"; + sourceTree = ""; + }; + 305E740B33B4757C59760F0A /* Frameworks */ = { + isa = PBXGroup; + children = ( + 713E56B060CB616F47E54128 /* AudioToolbox.framework */, + 1B2B2ACC49260036069E2F4A /* AudioUnit.framework */, + 49DA3EB231D324B918422E8E /* Cocoa.framework */, + 38CF4B521F3A3990392B57DF /* CoreAudio.framework */, + 1EFF080F311513506C8D2AF3 /* IOKit.framework */, + 54F47A8D654D4D3770A50937 /* Carbon.framework */, + 693D5CF834BB16770AAD1C5F /* ForceFeedback.framework */, + 4C2A5B3D3480489954653D0D /* CoreFoundation.framework */, + 63F66CDA77B535E15D2E0416 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 1AFE2FCD4B25165B66341EEA /* Products */ = { + isa = PBXGroup; + children = ( + 4724438248DC05CC154031BE /* testgesture */, + ); + name = "Products"; + sourceTree = ""; + }; + 4B353CAD095349231EBF3FED /* Projects */ = { + isa = PBXGroup; + children = ( + 075F2A1B12B8177E0F322D60 /* SDL2main.xcodeproj */, + 2BFF78BF47B946F273021C53 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 1610312040612DF626A67918 /* Products */ = { + isa = PBXGroup; + children = ( + 392F75CE4C2078C309201BD6 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 15D219A078967452581305C7 /* Products */ = { + isa = PBXGroup; + children = ( + 4DDE4FE4303847E451E94F08 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 66781047381973FF17D26A04 /* testgesture */ = { + isa = PBXNativeTarget; + buildConfigurationList = 40D15D5F1F8C35FF14902558 /* Build configuration list for PBXNativeTarget "testgesture" */; + buildPhases = ( + 533F4EC70B78173C113A7938 /* Resources */, + 76602B80194C010908D63771 /* Sources */, + 5D7B67B06708403436B151AE /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 35CD2C037E085207668E3370 /* PBXTargetDependency */, + 792C71B133801DF95EC01EBB /* PBXTargetDependency */, + ); + name = "testgesture"; + productInstallPath = "$(HOME)/bin"; + productName = "testgesture"; + productReference = 4724438248DC05CC154031BE /* testgesture */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testgesture" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 12DA479479947D0D648373F4 /* testgesture */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 1610312040612DF626A67918 /* Products */; + ProjectRef = 075F2A1B12B8177E0F322D60 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 15D219A078967452581305C7 /* Products */; + ProjectRef = 2BFF78BF47B946F273021C53 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 66781047381973FF17D26A04 /* testgesture */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 392F75CE4C2078C309201BD6 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 43707FCD29B07F7C481D1A32 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 4DDE4FE4303847E451E94F08 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 63D0165D42077F622F8A2C2D /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 533F4EC70B78173C113A7938 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 76602B80194C010908D63771 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 52354162254219EE76684ABE /* testgesture.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 35CD2C037E085207668E3370 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 00771E2C5FC10F8F7C5A0D8D /* PBXContainerItemProxy */; + }; + 792C71B133801DF95EC01EBB /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 42482F692CC41EA42EDE23D1 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 60EC6119529B5A1737F62D9E /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testgesture"; + }; + name = "Debug Universal"; + }; + 1F0A6CCD0DB571084C842C97 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testgesture"; + }; + name = "Debug Native"; + }; + 5620002D3061510A046E5C00 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testgesture"; + }; + name = "Release Universal"; + }; + 4F2F1BE226ED4B9E097565A5 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testgesture"; + }; + name = "Release Native"; + }; + 0E787B8424FA1F024B987D9A /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 1D851472574840D635F16D20 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 25A1158D78146E2C2CB74B09 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 47AA0A943A447D1315B5547D /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 40D15D5F1F8C35FF14902558 /* Build configuration list for PBXNativeTarget "testgesture" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 60EC6119529B5A1737F62D9E /* Debug Universal */, + 1F0A6CCD0DB571084C842C97 /* Debug Native */, + 5620002D3061510A046E5C00 /* Release Universal */, + 4F2F1BE226ED4B9E097565A5 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testgesture" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0E787B8424FA1F024B987D9A /* Debug Universal */, + 1D851472574840D635F16D20 /* Debug Native */, + 25A1158D78146E2C2CB74B09 /* Release Universal */, + 47AA0A943A447D1315B5547D /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode3/tests/testgl2/testgl2.xcodeproj/project.pbxproj b/premake/Xcode/Xcode3/tests/testgl2/testgl2.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..4ffa31b22855b --- /dev/null +++ b/premake/Xcode/Xcode3/tests/testgl2/testgl2.xcodeproj/project.pbxproj @@ -0,0 +1,504 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 45DC11BD255127A03296336D /* testgl2.c in Sources */ = {isa = PBXBuildFile; fileRef = 141F0FF40384619134F5534A /* testgl2.c */; }; + 56AA4CF44B901545165959CE /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7FCF2FA52E266E6C2DF215F0 /* AudioToolbox.framework */; }; + 4DFF554A0F4F2A407D5029A8 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1C3A4036543A5F4D388077F8 /* AudioUnit.framework */; }; + 23912E460FCD6BE5241A46B4 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 095F66393819011805762F15 /* Cocoa.framework */; }; + 154169203C7D401344762C1D /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 593D3B6D19B2200F58A33791 /* CoreAudio.framework */; }; + 403916CC66C752035BE06DED /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 580B463C369D259B765E3F8B /* IOKit.framework */; }; + 7B4041BD67D8575275737815 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DDB3420411900597E7212E8 /* Carbon.framework */; }; + 362167D64276552A3FCE0750 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 465334B02BF374DA55A82326 /* ForceFeedback.framework */; }; + 15B32480703C137461EE702C /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2202391C16A95D7017F976C7 /* CoreFoundation.framework */; }; + 44596FF238E219EE09EC7853 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7EB81EF9772F48412C6E0F1B /* OpenGL.framework */; }; + 72D05F7A733D343A0BC07480 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6B6555596B1273C930FE7894 /* libSDL2main.a */; }; + 034941353E8045B46B1C7D86 /* libSDL2test.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 59C679F76EEB2EBB04E2191E /* libSDL2test.a */; }; + 05BD685071F731DE68AC13DC /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CE6342660EF78D43EC23884 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 622C5D1C62FC444535862021 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 76A359E42D217A9505C34D0A /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 58DC62993160374E09FF7AD6; + remoteInfo = "libSDL2main.a"; + }; + 7A670E185EB0770033CB69B6 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 76A359E42D217A9505C34D0A /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 0E7126A94A11494963D3548B; + remoteInfo = "libSDL2main.a"; + }; + 33B7568362751D6A45F50EE1 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 14A50C9D21D625127E911EB8 /* SDL2test.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 1E1175156F97314C291323CB; + remoteInfo = "libSDL2test.a"; + }; + 0F66264E4AEB40445853393D /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 14A50C9D21D625127E911EB8 /* SDL2test.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7CD70F5D43DA554D66287CFC; + remoteInfo = "libSDL2test.a"; + }; + 292F7EEB7FEE17460AF64BF2 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1B5A3E4D6F33176919BB7DA4 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 07D004B11E733F1F0EA93105; + remoteInfo = "libSDL2.a"; + }; + 370D6ACE1AFA53D0137160E9 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1B5A3E4D6F33176919BB7DA4 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 58C10ED14175754444033E0E; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 141F0FF40384619134F5534A /* testgl2.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testgl2.c"; path = "../../../../../test/testgl2.c"; sourceTree = ""; }; + 7FCF2FA52E266E6C2DF215F0 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 1C3A4036543A5F4D388077F8 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 095F66393819011805762F15 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 593D3B6D19B2200F58A33791 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 580B463C369D259B765E3F8B /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 1DDB3420411900597E7212E8 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 465334B02BF374DA55A82326 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 2202391C16A95D7017F976C7 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 7EB81EF9772F48412C6E0F1B /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 0BC6258F61B33D4C4B5562BF /* testgl2 */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testgl2"; path = "testgl2"; sourceTree = BUILT_PRODUCTS_DIR; }; + 76A359E42D217A9505C34D0A /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 14A50C9D21D625127E911EB8 /* SDL2test.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2test.xcodeproj"; path = "../../SDL2test/SDL2test.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 1B5A3E4D6F33176919BB7DA4 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 209532DC294B22C61B922076 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 56AA4CF44B901545165959CE /* AudioToolbox.framework in Frameworks */, + 4DFF554A0F4F2A407D5029A8 /* AudioUnit.framework in Frameworks */, + 23912E460FCD6BE5241A46B4 /* Cocoa.framework in Frameworks */, + 154169203C7D401344762C1D /* CoreAudio.framework in Frameworks */, + 403916CC66C752035BE06DED /* IOKit.framework in Frameworks */, + 7B4041BD67D8575275737815 /* Carbon.framework in Frameworks */, + 362167D64276552A3FCE0750 /* ForceFeedback.framework in Frameworks */, + 15B32480703C137461EE702C /* CoreFoundation.framework in Frameworks */, + 44596FF238E219EE09EC7853 /* OpenGL.framework in Frameworks */, + 72D05F7A733D343A0BC07480 /* libSDL2main.a in Frameworks */, + 034941353E8045B46B1C7D86 /* libSDL2test.a in Frameworks */, + 05BD685071F731DE68AC13DC /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 465B1AE8216D001D17080EC6 /* testgl2 */ = { + isa = PBXGroup; + children = ( + 0201256278614E1E16276DE2 /* test */, + 64A30E4903AE3ADF12CB5DEF /* Frameworks */, + 48E634A15AD81F141064337A /* Products */, + 4A133F5830377EFE62217CA4 /* Projects */, + ); + name = "testgl2"; + sourceTree = ""; + }; + 0201256278614E1E16276DE2 /* test */ = { + isa = PBXGroup; + children = ( + 141F0FF40384619134F5534A /* testgl2.c */, + ); + name = "test"; + sourceTree = ""; + }; + 64A30E4903AE3ADF12CB5DEF /* Frameworks */ = { + isa = PBXGroup; + children = ( + 7FCF2FA52E266E6C2DF215F0 /* AudioToolbox.framework */, + 1C3A4036543A5F4D388077F8 /* AudioUnit.framework */, + 095F66393819011805762F15 /* Cocoa.framework */, + 593D3B6D19B2200F58A33791 /* CoreAudio.framework */, + 580B463C369D259B765E3F8B /* IOKit.framework */, + 1DDB3420411900597E7212E8 /* Carbon.framework */, + 465334B02BF374DA55A82326 /* ForceFeedback.framework */, + 2202391C16A95D7017F976C7 /* CoreFoundation.framework */, + 7EB81EF9772F48412C6E0F1B /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 48E634A15AD81F141064337A /* Products */ = { + isa = PBXGroup; + children = ( + 0BC6258F61B33D4C4B5562BF /* testgl2 */, + ); + name = "Products"; + sourceTree = ""; + }; + 4A133F5830377EFE62217CA4 /* Projects */ = { + isa = PBXGroup; + children = ( + 76A359E42D217A9505C34D0A /* SDL2main.xcodeproj */, + 14A50C9D21D625127E911EB8 /* SDL2test.xcodeproj */, + 1B5A3E4D6F33176919BB7DA4 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 01700FE33BBA67BB27B03FA2 /* Products */ = { + isa = PBXGroup; + children = ( + 6B6555596B1273C930FE7894 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 42B52595158160F46B595B6E /* Products */ = { + isa = PBXGroup; + children = ( + 59C679F76EEB2EBB04E2191E /* libSDL2test.a */, + ); + name = Products; + sourceTree = ""; + }; + 665B723C584D3457669F0662 /* Products */ = { + isa = PBXGroup; + children = ( + 4CE6342660EF78D43EC23884 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 09871A226783567418BC6E4B /* testgl2 */ = { + isa = PBXNativeTarget; + buildConfigurationList = 0E3F4B724866589D377D1E2D /* Build configuration list for PBXNativeTarget "testgl2" */; + buildPhases = ( + 426727121A5156BC56462CC3 /* Resources */, + 5A026C0341E5247444CE5D1D /* Sources */, + 209532DC294B22C61B922076 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 4CDD5FF708B6685E34E4230D /* PBXTargetDependency */, + 69650A577C703F645A88239C /* PBXTargetDependency */, + 12CB4F954B4949025E8F3839 /* PBXTargetDependency */, + ); + name = "testgl2"; + productInstallPath = "$(HOME)/bin"; + productName = "testgl2"; + productReference = 0BC6258F61B33D4C4B5562BF /* testgl2 */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testgl2" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 465B1AE8216D001D17080EC6 /* testgl2 */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 01700FE33BBA67BB27B03FA2 /* Products */; + ProjectRef = 76A359E42D217A9505C34D0A /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 42B52595158160F46B595B6E /* Products */; + ProjectRef = 14A50C9D21D625127E911EB8 /* SDL2test.xcodeproj */; + }, + { + ProductGroup = 665B723C584D3457669F0662 /* Products */; + ProjectRef = 1B5A3E4D6F33176919BB7DA4 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 09871A226783567418BC6E4B /* testgl2 */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 6B6555596B1273C930FE7894 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 622C5D1C62FC444535862021 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 59C679F76EEB2EBB04E2191E /* libSDL2test.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2test.a"; + remoteRef = 33B7568362751D6A45F50EE1 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 4CE6342660EF78D43EC23884 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 292F7EEB7FEE17460AF64BF2 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 426727121A5156BC56462CC3 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 5A026C0341E5247444CE5D1D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 45DC11BD255127A03296336D /* testgl2.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 4CDD5FF708B6685E34E4230D /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 7A670E185EB0770033CB69B6 /* PBXContainerItemProxy */; + }; + 69650A577C703F645A88239C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2test.a"; + targetProxy = 0F66264E4AEB40445853393D /* PBXContainerItemProxy */; + }; + 12CB4F954B4949025E8F3839 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 370D6ACE1AFA53D0137160E9 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 04DF58A401A123F35F6227DC /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testgl2"; + }; + name = "Debug Universal"; + }; + 11753A370B4E473167C3541A /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testgl2"; + }; + name = "Debug Native"; + }; + 336F7099534775236C4353F3 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testgl2"; + }; + name = "Release Universal"; + }; + 320B2B536322701915AB3BF8 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testgl2"; + }; + name = "Release Native"; + }; + 0E88081B45496F9753180170 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + "HAVE_OPENGL", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 331B700F27E012D9685B2E60 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + "HAVE_OPENGL", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 16DE5F1A4C99731C4E3E4AD8 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + "HAVE_OPENGL", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 1E812F881D9870206906114B /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + "HAVE_OPENGL", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 0E3F4B724866589D377D1E2D /* Build configuration list for PBXNativeTarget "testgl2" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 04DF58A401A123F35F6227DC /* Debug Universal */, + 11753A370B4E473167C3541A /* Debug Native */, + 336F7099534775236C4353F3 /* Release Universal */, + 320B2B536322701915AB3BF8 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testgl2" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0E88081B45496F9753180170 /* Debug Universal */, + 331B700F27E012D9685B2E60 /* Debug Native */, + 16DE5F1A4C99731C4E3E4AD8 /* Release Universal */, + 1E812F881D9870206906114B /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode3/tests/testgles/testgles.xcodeproj/project.pbxproj b/premake/Xcode/Xcode3/tests/testgles/testgles.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..fd5ffaa55d276 --- /dev/null +++ b/premake/Xcode/Xcode3/tests/testgles/testgles.xcodeproj/project.pbxproj @@ -0,0 +1,500 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 12E6555A195D655D76AB7FE7 /* testgles.c in Sources */ = {isa = PBXBuildFile; fileRef = 241A4D8509966F521DB96605 /* testgles.c */; }; + 19795BC104CB34C45E135AED /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 29C434103F9900A855196701 /* AudioToolbox.framework */; }; + 1A9E278937C233991A1240D9 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7F0159CE1F5A03FB737D1886 /* AudioUnit.framework */; }; + 5996326A75857CF20C70215A /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 71CA3644420E595D256119F7 /* Cocoa.framework */; }; + 03636CCB238052184B4F5194 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3D3438EA4AC101261C9110D6 /* CoreAudio.framework */; }; + 777004977662336A18A23F26 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6C5761C0138F27263A284205 /* IOKit.framework */; }; + 0A7A10E41D4C175E1DB4223C /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 065D03CF2E37393F5E900075 /* Carbon.framework */; }; + 7D577CE807AB7E8A3EE76B08 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 472D7ACE7C61038858644EAF /* ForceFeedback.framework */; }; + 7E2C1EBA6D820BF93F50356B /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1A487B7D04DC3C37426321F9 /* CoreFoundation.framework */; }; + 53DC2D0A2AE873D87B43109E /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 24E345CE65080603580B49A4 /* OpenGL.framework */; }; + 7F0C00B5705C5E26218B356A /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 735A4BF97F3056123C477376 /* libSDL2main.a */; }; + 5D6D52C8514B468A1BCE3011 /* libSDL2test.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 24B2285772D3379A7F433A59 /* libSDL2test.a */; }; + 6F2C31FE41BA305E014C63E4 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0B3551586B877E200CBA316F /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 60625E0A184039DB663474EF /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0996113878EF3AB7044A3085 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 58DC62993160374E09FF7AD6; + remoteInfo = "libSDL2main.a"; + }; + 0D0C48787B472E550CA07A11 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0996113878EF3AB7044A3085 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 0E7126A94A11494963D3548B; + remoteInfo = "libSDL2main.a"; + }; + 65EE288F53050FD30E024D39 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 7C8120E92B5D6E196B952A4E /* SDL2test.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 1E1175156F97314C291323CB; + remoteInfo = "libSDL2test.a"; + }; + 680070780FEE6D3633973F7B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 7C8120E92B5D6E196B952A4E /* SDL2test.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7CD70F5D43DA554D66287CFC; + remoteInfo = "libSDL2test.a"; + }; + 6F5D71CC10306FE26D5A47FF /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 48D12E4C0DF01FB13E7F1DA8 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 07D004B11E733F1F0EA93105; + remoteInfo = "libSDL2.a"; + }; + 42B52D18274543E92B5B6F65 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 48D12E4C0DF01FB13E7F1DA8 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 58C10ED14175754444033E0E; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 241A4D8509966F521DB96605 /* testgles.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testgles.c"; path = "../../../../../test/testgles.c"; sourceTree = ""; }; + 29C434103F9900A855196701 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 7F0159CE1F5A03FB737D1886 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 71CA3644420E595D256119F7 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 3D3438EA4AC101261C9110D6 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 6C5761C0138F27263A284205 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 065D03CF2E37393F5E900075 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 472D7ACE7C61038858644EAF /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 1A487B7D04DC3C37426321F9 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 24E345CE65080603580B49A4 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 688E4AA325C27C0B4DE93985 /* testgles */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testgles"; path = "testgles"; sourceTree = BUILT_PRODUCTS_DIR; }; + 0996113878EF3AB7044A3085 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 7C8120E92B5D6E196B952A4E /* SDL2test.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2test.xcodeproj"; path = "../../SDL2test/SDL2test.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 48D12E4C0DF01FB13E7F1DA8 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 61195EE80F49035904F30384 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 19795BC104CB34C45E135AED /* AudioToolbox.framework in Frameworks */, + 1A9E278937C233991A1240D9 /* AudioUnit.framework in Frameworks */, + 5996326A75857CF20C70215A /* Cocoa.framework in Frameworks */, + 03636CCB238052184B4F5194 /* CoreAudio.framework in Frameworks */, + 777004977662336A18A23F26 /* IOKit.framework in Frameworks */, + 0A7A10E41D4C175E1DB4223C /* Carbon.framework in Frameworks */, + 7D577CE807AB7E8A3EE76B08 /* ForceFeedback.framework in Frameworks */, + 7E2C1EBA6D820BF93F50356B /* CoreFoundation.framework in Frameworks */, + 53DC2D0A2AE873D87B43109E /* OpenGL.framework in Frameworks */, + 7F0C00B5705C5E26218B356A /* libSDL2main.a in Frameworks */, + 5D6D52C8514B468A1BCE3011 /* libSDL2test.a in Frameworks */, + 6F2C31FE41BA305E014C63E4 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 17A905F262DF26E86D1A06ED /* testgles */ = { + isa = PBXGroup; + children = ( + 44B346220B51319C389D6B05 /* test */, + 19DE5CE602953B250C466761 /* Frameworks */, + 78B41FCF563962081FDC583E /* Products */, + 06E262DA7BF8071F1180103A /* Projects */, + ); + name = "testgles"; + sourceTree = ""; + }; + 44B346220B51319C389D6B05 /* test */ = { + isa = PBXGroup; + children = ( + 241A4D8509966F521DB96605 /* testgles.c */, + ); + name = "test"; + sourceTree = ""; + }; + 19DE5CE602953B250C466761 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 29C434103F9900A855196701 /* AudioToolbox.framework */, + 7F0159CE1F5A03FB737D1886 /* AudioUnit.framework */, + 71CA3644420E595D256119F7 /* Cocoa.framework */, + 3D3438EA4AC101261C9110D6 /* CoreAudio.framework */, + 6C5761C0138F27263A284205 /* IOKit.framework */, + 065D03CF2E37393F5E900075 /* Carbon.framework */, + 472D7ACE7C61038858644EAF /* ForceFeedback.framework */, + 1A487B7D04DC3C37426321F9 /* CoreFoundation.framework */, + 24E345CE65080603580B49A4 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 78B41FCF563962081FDC583E /* Products */ = { + isa = PBXGroup; + children = ( + 688E4AA325C27C0B4DE93985 /* testgles */, + ); + name = "Products"; + sourceTree = ""; + }; + 06E262DA7BF8071F1180103A /* Projects */ = { + isa = PBXGroup; + children = ( + 0996113878EF3AB7044A3085 /* SDL2main.xcodeproj */, + 7C8120E92B5D6E196B952A4E /* SDL2test.xcodeproj */, + 48D12E4C0DF01FB13E7F1DA8 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 5CCE03C038CE6C8007C7533F /* Products */ = { + isa = PBXGroup; + children = ( + 735A4BF97F3056123C477376 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 4CA4399E75A335213A540466 /* Products */ = { + isa = PBXGroup; + children = ( + 24B2285772D3379A7F433A59 /* libSDL2test.a */, + ); + name = Products; + sourceTree = ""; + }; + 64D21F91171E388B512D08F4 /* Products */ = { + isa = PBXGroup; + children = ( + 0B3551586B877E200CBA316F /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 6FC5723312640035258E23A7 /* testgles */ = { + isa = PBXNativeTarget; + buildConfigurationList = 2A7B0CA6149577840FF2685B /* Build configuration list for PBXNativeTarget "testgles" */; + buildPhases = ( + 44163DE050017234528F64A1 /* Resources */, + 2C8849233F0D089127467B06 /* Sources */, + 61195EE80F49035904F30384 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 18F7300604A73072356D2120 /* PBXTargetDependency */, + 34DA5F3E1DEF6BC70000000B /* PBXTargetDependency */, + 78742F471BE7751D78371D9C /* PBXTargetDependency */, + ); + name = "testgles"; + productInstallPath = "$(HOME)/bin"; + productName = "testgles"; + productReference = 688E4AA325C27C0B4DE93985 /* testgles */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testgles" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 17A905F262DF26E86D1A06ED /* testgles */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 5CCE03C038CE6C8007C7533F /* Products */; + ProjectRef = 0996113878EF3AB7044A3085 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 4CA4399E75A335213A540466 /* Products */; + ProjectRef = 7C8120E92B5D6E196B952A4E /* SDL2test.xcodeproj */; + }, + { + ProductGroup = 64D21F91171E388B512D08F4 /* Products */; + ProjectRef = 48D12E4C0DF01FB13E7F1DA8 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 6FC5723312640035258E23A7 /* testgles */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 735A4BF97F3056123C477376 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 60625E0A184039DB663474EF /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 24B2285772D3379A7F433A59 /* libSDL2test.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2test.a"; + remoteRef = 65EE288F53050FD30E024D39 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 0B3551586B877E200CBA316F /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 6F5D71CC10306FE26D5A47FF /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 44163DE050017234528F64A1 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 2C8849233F0D089127467B06 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 12E6555A195D655D76AB7FE7 /* testgles.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 18F7300604A73072356D2120 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 0D0C48787B472E550CA07A11 /* PBXContainerItemProxy */; + }; + 34DA5F3E1DEF6BC70000000B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2test.a"; + targetProxy = 680070780FEE6D3633973F7B /* PBXContainerItemProxy */; + }; + 78742F471BE7751D78371D9C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 42B52D18274543E92B5B6F65 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 2FC47005660448E2215567B3 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testgles"; + }; + name = "Debug Universal"; + }; + 45FE67EC62480E8C0EC94BA2 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testgles"; + }; + name = "Debug Native"; + }; + 4ABE2FD422AA526A4FB64D2C /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testgles"; + }; + name = "Release Universal"; + }; + 4A8D220649E453AC462559B7 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testgles"; + }; + name = "Release Native"; + }; + 2C0F3E1E519F33CD14FA482C /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 15381143051326761B1C75E9 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 44A94F96103E7CAD6A624F7F /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 30CA28B5385430D51A3462B8 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 2A7B0CA6149577840FF2685B /* Build configuration list for PBXNativeTarget "testgles" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 2FC47005660448E2215567B3 /* Debug Universal */, + 45FE67EC62480E8C0EC94BA2 /* Debug Native */, + 4ABE2FD422AA526A4FB64D2C /* Release Universal */, + 4A8D220649E453AC462559B7 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testgles" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 2C0F3E1E519F33CD14FA482C /* Debug Universal */, + 15381143051326761B1C75E9 /* Debug Native */, + 44A94F96103E7CAD6A624F7F /* Release Universal */, + 30CA28B5385430D51A3462B8 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode3/tests/testhaptic/testhaptic.xcodeproj/project.pbxproj b/premake/Xcode/Xcode3/tests/testhaptic/testhaptic.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..b52d8d3f345d4 --- /dev/null +++ b/premake/Xcode/Xcode3/tests/testhaptic/testhaptic.xcodeproj/project.pbxproj @@ -0,0 +1,457 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 59F50E2B39BC77DC3ECD4640 /* testhaptic.c in Sources */ = {isa = PBXBuildFile; fileRef = 1DB847C427EA0F444B4B4FC0 /* testhaptic.c */; }; + 6179774414C80B03771B4D1F /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1408403C2E7331A83879467D /* AudioToolbox.framework */; }; + 45CE764402F40F97189A30FC /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6BDE62C2453138766EB542CF /* AudioUnit.framework */; }; + 24D54CFC45B1005E536540FE /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 29B1586B0BFB4A074B0F5B3B /* Cocoa.framework */; }; + 2E9633335EE7194733506087 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1B1F202D013748602EA96A1F /* CoreAudio.framework */; }; + 793C655802C108DC5A1603CC /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7032139D43855B2A3DA345CC /* IOKit.framework */; }; + 68864CB73A65629C2D34335C /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 06AF7E814C06487468C37716 /* Carbon.framework */; }; + 27BA615E079D63396FEC23A4 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 126F3704120B219353BF4AE3 /* ForceFeedback.framework */; }; + 160736E258B964640D9D79BA /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 01544B8A7A1F37C115280446 /* CoreFoundation.framework */; }; + 558E796E47515366631902B9 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5F3120474431725B4CF4428B /* OpenGL.framework */; }; + 541C26D102115FD4093A47F8 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6CB511B1018C4FBD1F19617E /* libSDL2main.a */; }; + 60C53756713009886F8129EA /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 29897FFF7AE350C831F9065D /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 450D67A300D33EF705491E89 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0C0F4A6E7D62458863F431FF /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 58DC62993160374E09FF7AD6; + remoteInfo = "libSDL2main.a"; + }; + 645E5AAE6C712DF335755293 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0C0F4A6E7D62458863F431FF /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 0E7126A94A11494963D3548B; + remoteInfo = "libSDL2main.a"; + }; + 71F0553C5BBA1AE570F02A60 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 03181F213C260D2457796F54 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 07D004B11E733F1F0EA93105; + remoteInfo = "libSDL2.a"; + }; + 34C636D75FB114266D774F34 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 03181F213C260D2457796F54 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 58C10ED14175754444033E0E; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 1DB847C427EA0F444B4B4FC0 /* testhaptic.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testhaptic.c"; path = "../../../../../test/testhaptic.c"; sourceTree = ""; }; + 1408403C2E7331A83879467D /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 6BDE62C2453138766EB542CF /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 29B1586B0BFB4A074B0F5B3B /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 1B1F202D013748602EA96A1F /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 7032139D43855B2A3DA345CC /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 06AF7E814C06487468C37716 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 126F3704120B219353BF4AE3 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 01544B8A7A1F37C115280446 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 5F3120474431725B4CF4428B /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 12140D0C4C6D44C900626222 /* testhaptic */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testhaptic"; path = "testhaptic"; sourceTree = BUILT_PRODUCTS_DIR; }; + 0C0F4A6E7D62458863F431FF /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 03181F213C260D2457796F54 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 5EA00FC55C7A5EDF384F5EDD /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 6179774414C80B03771B4D1F /* AudioToolbox.framework in Frameworks */, + 45CE764402F40F97189A30FC /* AudioUnit.framework in Frameworks */, + 24D54CFC45B1005E536540FE /* Cocoa.framework in Frameworks */, + 2E9633335EE7194733506087 /* CoreAudio.framework in Frameworks */, + 793C655802C108DC5A1603CC /* IOKit.framework in Frameworks */, + 68864CB73A65629C2D34335C /* Carbon.framework in Frameworks */, + 27BA615E079D63396FEC23A4 /* ForceFeedback.framework in Frameworks */, + 160736E258B964640D9D79BA /* CoreFoundation.framework in Frameworks */, + 558E796E47515366631902B9 /* OpenGL.framework in Frameworks */, + 541C26D102115FD4093A47F8 /* libSDL2main.a in Frameworks */, + 60C53756713009886F8129EA /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 67B45C0D66CA748F0507306F /* testhaptic */ = { + isa = PBXGroup; + children = ( + 66DE1C0E69BF3B2849D5642A /* test */, + 14E414A5128A5A3D7B2023E1 /* Frameworks */, + 48AC304A038C162A29342369 /* Products */, + 010E474B30072FBF3CFC63E2 /* Projects */, + ); + name = "testhaptic"; + sourceTree = ""; + }; + 66DE1C0E69BF3B2849D5642A /* test */ = { + isa = PBXGroup; + children = ( + 1DB847C427EA0F444B4B4FC0 /* testhaptic.c */, + ); + name = "test"; + sourceTree = ""; + }; + 14E414A5128A5A3D7B2023E1 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 1408403C2E7331A83879467D /* AudioToolbox.framework */, + 6BDE62C2453138766EB542CF /* AudioUnit.framework */, + 29B1586B0BFB4A074B0F5B3B /* Cocoa.framework */, + 1B1F202D013748602EA96A1F /* CoreAudio.framework */, + 7032139D43855B2A3DA345CC /* IOKit.framework */, + 06AF7E814C06487468C37716 /* Carbon.framework */, + 126F3704120B219353BF4AE3 /* ForceFeedback.framework */, + 01544B8A7A1F37C115280446 /* CoreFoundation.framework */, + 5F3120474431725B4CF4428B /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 48AC304A038C162A29342369 /* Products */ = { + isa = PBXGroup; + children = ( + 12140D0C4C6D44C900626222 /* testhaptic */, + ); + name = "Products"; + sourceTree = ""; + }; + 010E474B30072FBF3CFC63E2 /* Projects */ = { + isa = PBXGroup; + children = ( + 0C0F4A6E7D62458863F431FF /* SDL2main.xcodeproj */, + 03181F213C260D2457796F54 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 480439CD75176D0E386C6BDC /* Products */ = { + isa = PBXGroup; + children = ( + 6CB511B1018C4FBD1F19617E /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 1F065A3302AD32D00BE23A4A /* Products */ = { + isa = PBXGroup; + children = ( + 29897FFF7AE350C831F9065D /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 312F0ABB19C846A84CB53A27 /* testhaptic */ = { + isa = PBXNativeTarget; + buildConfigurationList = 4D7D730D605E45A010DF3481 /* Build configuration list for PBXNativeTarget "testhaptic" */; + buildPhases = ( + 3A0D5AAE05F46B2A13675B25 /* Resources */, + 6E7D06AC1504471B4E3B32E5 /* Sources */, + 5EA00FC55C7A5EDF384F5EDD /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 3D383CDA1C2B78E100F63058 /* PBXTargetDependency */, + 107B2B3356DF78FF5A9302A6 /* PBXTargetDependency */, + ); + name = "testhaptic"; + productInstallPath = "$(HOME)/bin"; + productName = "testhaptic"; + productReference = 12140D0C4C6D44C900626222 /* testhaptic */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testhaptic" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 67B45C0D66CA748F0507306F /* testhaptic */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 480439CD75176D0E386C6BDC /* Products */; + ProjectRef = 0C0F4A6E7D62458863F431FF /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 1F065A3302AD32D00BE23A4A /* Products */; + ProjectRef = 03181F213C260D2457796F54 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 312F0ABB19C846A84CB53A27 /* testhaptic */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 6CB511B1018C4FBD1F19617E /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 450D67A300D33EF705491E89 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 29897FFF7AE350C831F9065D /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 71F0553C5BBA1AE570F02A60 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 3A0D5AAE05F46B2A13675B25 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 6E7D06AC1504471B4E3B32E5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 59F50E2B39BC77DC3ECD4640 /* testhaptic.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 3D383CDA1C2B78E100F63058 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 645E5AAE6C712DF335755293 /* PBXContainerItemProxy */; + }; + 107B2B3356DF78FF5A9302A6 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 34C636D75FB114266D774F34 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 068534B70F1E26297830190C /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testhaptic"; + }; + name = "Debug Universal"; + }; + 26CE5B804873277736E51BD0 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testhaptic"; + }; + name = "Debug Native"; + }; + 0A706DF51C7E14FD1AD05E03 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testhaptic"; + }; + name = "Release Universal"; + }; + 373D05D241F56D402BDA7F09 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testhaptic"; + }; + name = "Release Native"; + }; + 7E65562D5FE678C57E314BC1 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 1F071C371D63041C56C5244C /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 37451B5D01EF1CE448BC5895 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 528722B270F72709528E28F6 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 4D7D730D605E45A010DF3481 /* Build configuration list for PBXNativeTarget "testhaptic" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 068534B70F1E26297830190C /* Debug Universal */, + 26CE5B804873277736E51BD0 /* Debug Native */, + 0A706DF51C7E14FD1AD05E03 /* Release Universal */, + 373D05D241F56D402BDA7F09 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testhaptic" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7E65562D5FE678C57E314BC1 /* Debug Universal */, + 1F071C371D63041C56C5244C /* Debug Native */, + 37451B5D01EF1CE448BC5895 /* Release Universal */, + 528722B270F72709528E28F6 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode3/tests/testiconv/testiconv.xcodeproj/project.pbxproj b/premake/Xcode/Xcode3/tests/testiconv/testiconv.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..e234cc8e743ba --- /dev/null +++ b/premake/Xcode/Xcode3/tests/testiconv/testiconv.xcodeproj/project.pbxproj @@ -0,0 +1,474 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 6A2279D13C4C3252465E71F6 /* testiconv.c in Sources */ = {isa = PBXBuildFile; fileRef = 355B073267DA1C532F9C64E8 /* testiconv.c */; }; + 615F4AEB22F27C9E12B74147 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 45B8718637C864472C7963C2 /* AudioToolbox.framework */; }; + 77F5772745E77D6931B04B08 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A8058CA51FA2FD227B71243 /* AudioUnit.framework */; }; + 20A4101D71B743801C3F7345 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B34592C60C4682D04025399 /* Cocoa.framework */; }; + 269E6A3E48B22839364E530B /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 48C66BE91AF63E8E1D1E33EF /* CoreAudio.framework */; }; + 092226E72E097B0652F36296 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1A3D521441115A9A6EA26E03 /* IOKit.framework */; }; + 28B73F0D7D2B233B355E6E43 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 18DC4BE959C91D4F3FAF0A33 /* Carbon.framework */; }; + 340D737868153D614AD5246C /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 28A5128C4E42708D7A4021A6 /* ForceFeedback.framework */; }; + 22160C952BAF10DE1F0D385A /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6BB16CCF40D96EB61AAA453C /* CoreFoundation.framework */; }; + 1EC263FC3CCD652438CD2BE6 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 551A4C320C0A75F81A2F25F1 /* OpenGL.framework */; }; + 68CF1BFA47FF42596EFF4442 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 61784B4D50322C5908E50E60 /* libSDL2main.a */; }; + 0A8548A223350FD4357D3020 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3ED33F5A5C6B1A6A48703C84 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 78FF2E00306D741745246DC5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 45881B3D6A3079C84A48739B /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 58DC62993160374E09FF7AD6; + remoteInfo = "libSDL2main.a"; + }; + 45326B067C60183D7F2A2472 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 45881B3D6A3079C84A48739B /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 0E7126A94A11494963D3548B; + remoteInfo = "libSDL2main.a"; + }; + 0C29120D309D2380587255B1 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 7A9B013F69BB7A9E264C7EF9 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 07D004B11E733F1F0EA93105; + remoteInfo = "libSDL2.a"; + }; + 772012CD053649584ED11159 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 7A9B013F69BB7A9E264C7EF9 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 58C10ED14175754444033E0E; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 355B073267DA1C532F9C64E8 /* testiconv.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testiconv.c"; path = "../../../../../test/testiconv.c"; sourceTree = ""; }; + 45B8718637C864472C7963C2 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 4A8058CA51FA2FD227B71243 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 3B34592C60C4682D04025399 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 48C66BE91AF63E8E1D1E33EF /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 1A3D521441115A9A6EA26E03 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 18DC4BE959C91D4F3FAF0A33 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 28A5128C4E42708D7A4021A6 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 6BB16CCF40D96EB61AAA453C /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 551A4C320C0A75F81A2F25F1 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 7C44581E382C678639A07165 /* testiconv */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testiconv"; path = "testiconv"; sourceTree = BUILT_PRODUCTS_DIR; }; + 45881B3D6A3079C84A48739B /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 7A9B013F69BB7A9E264C7EF9 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 4993751A0DB2391338FF263A /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 615F4AEB22F27C9E12B74147 /* AudioToolbox.framework in Frameworks */, + 77F5772745E77D6931B04B08 /* AudioUnit.framework in Frameworks */, + 20A4101D71B743801C3F7345 /* Cocoa.framework in Frameworks */, + 269E6A3E48B22839364E530B /* CoreAudio.framework in Frameworks */, + 092226E72E097B0652F36296 /* IOKit.framework in Frameworks */, + 28B73F0D7D2B233B355E6E43 /* Carbon.framework in Frameworks */, + 340D737868153D614AD5246C /* ForceFeedback.framework in Frameworks */, + 22160C952BAF10DE1F0D385A /* CoreFoundation.framework in Frameworks */, + 1EC263FC3CCD652438CD2BE6 /* OpenGL.framework in Frameworks */, + 68CF1BFA47FF42596EFF4442 /* libSDL2main.a in Frameworks */, + 0A8548A223350FD4357D3020 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 3F2E707864DD166F57CA4AEF /* testiconv */ = { + isa = PBXGroup; + children = ( + 241D742D6A9B10385D083E64 /* test */, + 008C68AE381B31D66E154625 /* Frameworks */, + 182B54E133F749AC417A45B8 /* Products */, + 680C0B4E60E8423466903412 /* Projects */, + ); + name = "testiconv"; + sourceTree = ""; + }; + 241D742D6A9B10385D083E64 /* test */ = { + isa = PBXGroup; + children = ( + 355B073267DA1C532F9C64E8 /* testiconv.c */, + ); + name = "test"; + sourceTree = ""; + }; + 008C68AE381B31D66E154625 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 45B8718637C864472C7963C2 /* AudioToolbox.framework */, + 4A8058CA51FA2FD227B71243 /* AudioUnit.framework */, + 3B34592C60C4682D04025399 /* Cocoa.framework */, + 48C66BE91AF63E8E1D1E33EF /* CoreAudio.framework */, + 1A3D521441115A9A6EA26E03 /* IOKit.framework */, + 18DC4BE959C91D4F3FAF0A33 /* Carbon.framework */, + 28A5128C4E42708D7A4021A6 /* ForceFeedback.framework */, + 6BB16CCF40D96EB61AAA453C /* CoreFoundation.framework */, + 551A4C320C0A75F81A2F25F1 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 182B54E133F749AC417A45B8 /* Products */ = { + isa = PBXGroup; + children = ( + 7C44581E382C678639A07165 /* testiconv */, + ); + name = "Products"; + sourceTree = ""; + }; + 680C0B4E60E8423466903412 /* Projects */ = { + isa = PBXGroup; + children = ( + 45881B3D6A3079C84A48739B /* SDL2main.xcodeproj */, + 7A9B013F69BB7A9E264C7EF9 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 5E744E323DF61B0B01916A66 /* Products */ = { + isa = PBXGroup; + children = ( + 61784B4D50322C5908E50E60 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 4C4F723645B30A7A6C3D431C /* Products */ = { + isa = PBXGroup; + children = ( + 3ED33F5A5C6B1A6A48703C84 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 5CCC58AE10AE326260794B34 /* testiconv */ = { + isa = PBXNativeTarget; + buildConfigurationList = 3B38692E7969686C31327012 /* Build configuration list for PBXNativeTarget "testiconv" */; + buildPhases = ( + 67090739556842CB41B439F0 /* Resources */, + 542019CC40DA68E754AE20BA /* Sources */, + 4993751A0DB2391338FF263A /* Frameworks */, + 9607AE3710C85E8F00CD1376 /* Postbuild */, + ); + buildRules = ( + ); + dependencies = ( + 46694D6743F9414E0A461877 /* PBXTargetDependency */, + 7797690F694945A446C73504 /* PBXTargetDependency */, + ); + name = "testiconv"; + productInstallPath = "$(HOME)/bin"; + productName = "testiconv"; + productReference = 7C44581E382C678639A07165 /* testiconv */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testiconv" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 3F2E707864DD166F57CA4AEF /* testiconv */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 5E744E323DF61B0B01916A66 /* Products */; + ProjectRef = 45881B3D6A3079C84A48739B /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 4C4F723645B30A7A6C3D431C /* Products */; + ProjectRef = 7A9B013F69BB7A9E264C7EF9 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 5CCC58AE10AE326260794B34 /* testiconv */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 61784B4D50322C5908E50E60 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 78FF2E00306D741745246DC5 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 3ED33F5A5C6B1A6A48703C84 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 0C29120D309D2380587255B1 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 67090739556842CB41B439F0 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 9607AE3710C85E8F00CD1376 /* Postbuild */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = Postbuild; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "if [ \"${CONFIGURATION}\" = \"Debug Universal\" ]; then\nif [ ! -d \"./Build/Debug\" ]; then mkdir -p \"./Build/Debug\"; fi\ncp \"./../../../../../test/utf8.txt\" \"./Build/Debug/utf8.txt\"\nfi\nif [ \"${CONFIGURATION}\" = \"Debug Native\" ]; then\nif [ ! -d \"./Build/Debug\" ]; then mkdir -p \"./Build/Debug\"; fi\ncp \"./../../../../../test/utf8.txt\" \"./Build/Debug/utf8.txt\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Universal\" ]; then\nif [ ! -d \"./Build/Release\" ]; then mkdir -p \"./Build/Release\"; fi\ncp \"./../../../../../test/utf8.txt\" \"./Build/Release/utf8.txt\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Native\" ]; then\nif [ ! -d \"./Build/Release\" ]; then mkdir -p \"./Build/Release\"; fi\ncp \"./../../../../../test/utf8.txt\" \"./Build/Release/utf8.txt\"\nfi"; + }; +/* End PBXShellScriptBuildPhase section */ +/* Begin PBXSourcesBuildPhase section */ + 542019CC40DA68E754AE20BA /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 6A2279D13C4C3252465E71F6 /* testiconv.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 46694D6743F9414E0A461877 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 45326B067C60183D7F2A2472 /* PBXContainerItemProxy */; + }; + 7797690F694945A446C73504 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 772012CD053649584ED11159 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 505335353418205A205A15C7 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testiconv"; + }; + name = "Debug Universal"; + }; + 59AA33FF5426169720C71FB9 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testiconv"; + }; + name = "Debug Native"; + }; + 0D6B7A9B611B597E6FAA36A9 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testiconv"; + }; + name = "Release Universal"; + }; + 49AE52C85A660C8C74FE05F6 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testiconv"; + }; + name = "Release Native"; + }; + 75CD2181558A6BE2794B3828 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 2FD811E157882FC610344766 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 1C404FC714CD5A472B7E6828 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 71F53DA9594439794E8053E4 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 3B38692E7969686C31327012 /* Build configuration list for PBXNativeTarget "testiconv" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 505335353418205A205A15C7 /* Debug Universal */, + 59AA33FF5426169720C71FB9 /* Debug Native */, + 0D6B7A9B611B597E6FAA36A9 /* Release Universal */, + 49AE52C85A660C8C74FE05F6 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testiconv" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 75CD2181558A6BE2794B3828 /* Debug Universal */, + 2FD811E157882FC610344766 /* Debug Native */, + 1C404FC714CD5A472B7E6828 /* Release Universal */, + 71F53DA9594439794E8053E4 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode3/tests/testime/testime.xcodeproj/project.pbxproj b/premake/Xcode/Xcode3/tests/testime/testime.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..5187681b0f7ec --- /dev/null +++ b/premake/Xcode/Xcode3/tests/testime/testime.xcodeproj/project.pbxproj @@ -0,0 +1,500 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 1EDB663620575F3054616AEB /* testime.c in Sources */ = {isa = PBXBuildFile; fileRef = 11A02A5F7E6943E269934106 /* testime.c */; }; + 613052B57E3162A16B241A77 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0F195173606E033879915ED6 /* AudioToolbox.framework */; }; + 00EB7592040245EC40254D0F /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 310A41FA124B378F383C2325 /* AudioUnit.framework */; }; + 6441758D13DC088E29607C64 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 32CA18327EB352DF5A8D0B54 /* Cocoa.framework */; }; + 57F87FD645CC7E9A3847664D /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0CEA64342A102110565F0FB5 /* CoreAudio.framework */; }; + 5BA21E9A38D1262366AD6CD3 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 076C5E737F3D08FD55534ADA /* IOKit.framework */; }; + 26E066AD77781CFB42535B92 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2FEA59A651FA0D0340794E81 /* Carbon.framework */; }; + 59FB2D8F312B1BC342875718 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 68D73105473A4CAE57B07517 /* ForceFeedback.framework */; }; + 22C6225A72AF49B066FC55B9 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73A83F313C8704897D5C5BDF /* CoreFoundation.framework */; }; + 757D798F5C211E0F24A0135C /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6E284413593E133B2D9D2692 /* OpenGL.framework */; }; + 113F63BE79BE46557BA72CA3 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2A5E09A54F041CAD5A88365B /* libSDL2main.a */; }; + 730A4F453D55402B08817501 /* libSDL2test.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2BF51AB17AFB19DD19A41D8A /* libSDL2test.a */; }; + 0E1B35461F512D4C7285093B /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 21F827FF0C5816560BC3654A /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 54A5423C7BCA2B9C127340A5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 5462094A07E20B6524FE5114 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 58DC62993160374E09FF7AD6; + remoteInfo = "libSDL2main.a"; + }; + 165D46083E8C01E053817623 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 5462094A07E20B6524FE5114 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 0E7126A94A11494963D3548B; + remoteInfo = "libSDL2main.a"; + }; + 28205901017F5224480C3D77 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1E827E317C8922E833D04EF6 /* SDL2test.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 1E1175156F97314C291323CB; + remoteInfo = "libSDL2test.a"; + }; + 6E0A77CE119C1F6747E47D49 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1E827E317C8922E833D04EF6 /* SDL2test.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7CD70F5D43DA554D66287CFC; + remoteInfo = "libSDL2test.a"; + }; + 18F53753498742003FB121F9 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 38710754324617266DDD04F7 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 07D004B11E733F1F0EA93105; + remoteInfo = "libSDL2.a"; + }; + 0A861DC31CC55AAA06123397 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 38710754324617266DDD04F7 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 58C10ED14175754444033E0E; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 11A02A5F7E6943E269934106 /* testime.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testime.c"; path = "../../../../../test/testime.c"; sourceTree = ""; }; + 0F195173606E033879915ED6 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 310A41FA124B378F383C2325 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 32CA18327EB352DF5A8D0B54 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 0CEA64342A102110565F0FB5 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 076C5E737F3D08FD55534ADA /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 2FEA59A651FA0D0340794E81 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 68D73105473A4CAE57B07517 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 73A83F313C8704897D5C5BDF /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 6E284413593E133B2D9D2692 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 4CA851404B43468A269B3E01 /* testime */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testime"; path = "testime"; sourceTree = BUILT_PRODUCTS_DIR; }; + 5462094A07E20B6524FE5114 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 1E827E317C8922E833D04EF6 /* SDL2test.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2test.xcodeproj"; path = "../../SDL2test/SDL2test.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 38710754324617266DDD04F7 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 279D3A6C2AD91B503BB16619 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 613052B57E3162A16B241A77 /* AudioToolbox.framework in Frameworks */, + 00EB7592040245EC40254D0F /* AudioUnit.framework in Frameworks */, + 6441758D13DC088E29607C64 /* Cocoa.framework in Frameworks */, + 57F87FD645CC7E9A3847664D /* CoreAudio.framework in Frameworks */, + 5BA21E9A38D1262366AD6CD3 /* IOKit.framework in Frameworks */, + 26E066AD77781CFB42535B92 /* Carbon.framework in Frameworks */, + 59FB2D8F312B1BC342875718 /* ForceFeedback.framework in Frameworks */, + 22C6225A72AF49B066FC55B9 /* CoreFoundation.framework in Frameworks */, + 757D798F5C211E0F24A0135C /* OpenGL.framework in Frameworks */, + 113F63BE79BE46557BA72CA3 /* libSDL2main.a in Frameworks */, + 730A4F453D55402B08817501 /* libSDL2test.a in Frameworks */, + 0E1B35461F512D4C7285093B /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 24F8548E490A51AD73F90730 /* testime */ = { + isa = PBXGroup; + children = ( + 6BB33D7558BA2E1B75BF736F /* test */, + 7BD372143CE254F05A8C5D64 /* Frameworks */, + 375B758901B86A48519C138A /* Products */, + 4EFA08CE1EBB16973AA86F38 /* Projects */, + ); + name = "testime"; + sourceTree = ""; + }; + 6BB33D7558BA2E1B75BF736F /* test */ = { + isa = PBXGroup; + children = ( + 11A02A5F7E6943E269934106 /* testime.c */, + ); + name = "test"; + sourceTree = ""; + }; + 7BD372143CE254F05A8C5D64 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 0F195173606E033879915ED6 /* AudioToolbox.framework */, + 310A41FA124B378F383C2325 /* AudioUnit.framework */, + 32CA18327EB352DF5A8D0B54 /* Cocoa.framework */, + 0CEA64342A102110565F0FB5 /* CoreAudio.framework */, + 076C5E737F3D08FD55534ADA /* IOKit.framework */, + 2FEA59A651FA0D0340794E81 /* Carbon.framework */, + 68D73105473A4CAE57B07517 /* ForceFeedback.framework */, + 73A83F313C8704897D5C5BDF /* CoreFoundation.framework */, + 6E284413593E133B2D9D2692 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 375B758901B86A48519C138A /* Products */ = { + isa = PBXGroup; + children = ( + 4CA851404B43468A269B3E01 /* testime */, + ); + name = "Products"; + sourceTree = ""; + }; + 4EFA08CE1EBB16973AA86F38 /* Projects */ = { + isa = PBXGroup; + children = ( + 5462094A07E20B6524FE5114 /* SDL2main.xcodeproj */, + 1E827E317C8922E833D04EF6 /* SDL2test.xcodeproj */, + 38710754324617266DDD04F7 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 012A701F34E341CB05904C33 /* Products */ = { + isa = PBXGroup; + children = ( + 2A5E09A54F041CAD5A88365B /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 7A720DF02CC428E4323831CD /* Products */ = { + isa = PBXGroup; + children = ( + 2BF51AB17AFB19DD19A41D8A /* libSDL2test.a */, + ); + name = Products; + sourceTree = ""; + }; + 673D575107FF0F490E53262C /* Products */ = { + isa = PBXGroup; + children = ( + 21F827FF0C5816560BC3654A /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 5FFB08CD6FAD6C5D5690093E /* testime */ = { + isa = PBXNativeTarget; + buildConfigurationList = 2B8A2D5531E53AAE047B2CE3 /* Build configuration list for PBXNativeTarget "testime" */; + buildPhases = ( + 754E61862C3B58FA1A10266B /* Resources */, + 57330AF227097B7B51BF0520 /* Sources */, + 279D3A6C2AD91B503BB16619 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 0E61258026E713E1306004CC /* PBXTargetDependency */, + 7865519B232C46546BCE250A /* PBXTargetDependency */, + 329A502618BD5F5E53733FD2 /* PBXTargetDependency */, + ); + name = "testime"; + productInstallPath = "$(HOME)/bin"; + productName = "testime"; + productReference = 4CA851404B43468A269B3E01 /* testime */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testime" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 24F8548E490A51AD73F90730 /* testime */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 012A701F34E341CB05904C33 /* Products */; + ProjectRef = 5462094A07E20B6524FE5114 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 7A720DF02CC428E4323831CD /* Products */; + ProjectRef = 1E827E317C8922E833D04EF6 /* SDL2test.xcodeproj */; + }, + { + ProductGroup = 673D575107FF0F490E53262C /* Products */; + ProjectRef = 38710754324617266DDD04F7 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 5FFB08CD6FAD6C5D5690093E /* testime */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 2A5E09A54F041CAD5A88365B /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 54A5423C7BCA2B9C127340A5 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 2BF51AB17AFB19DD19A41D8A /* libSDL2test.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2test.a"; + remoteRef = 28205901017F5224480C3D77 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 21F827FF0C5816560BC3654A /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 18F53753498742003FB121F9 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 754E61862C3B58FA1A10266B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 57330AF227097B7B51BF0520 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 1EDB663620575F3054616AEB /* testime.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 0E61258026E713E1306004CC /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 165D46083E8C01E053817623 /* PBXContainerItemProxy */; + }; + 7865519B232C46546BCE250A /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2test.a"; + targetProxy = 6E0A77CE119C1F6747E47D49 /* PBXContainerItemProxy */; + }; + 329A502618BD5F5E53733FD2 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 0A861DC31CC55AAA06123397 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 23ED296C0C2A473648331D5C /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testime"; + }; + name = "Debug Universal"; + }; + 03B50744244969F6368C4505 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testime"; + }; + name = "Debug Native"; + }; + 7BBA1C27699F4CC86AED2AF5 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testime"; + }; + name = "Release Universal"; + }; + 0FDA5AD5740C46651330643A /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testime"; + }; + name = "Release Native"; + }; + 359E3F731C044EE956800EDB /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 4FCB504F00B51B566B493E34 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 4B947464660212194E6646A3 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 4E4B20BF024641E002716FE0 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 2B8A2D5531E53AAE047B2CE3 /* Build configuration list for PBXNativeTarget "testime" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 23ED296C0C2A473648331D5C /* Debug Universal */, + 03B50744244969F6368C4505 /* Debug Native */, + 7BBA1C27699F4CC86AED2AF5 /* Release Universal */, + 0FDA5AD5740C46651330643A /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testime" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 359E3F731C044EE956800EDB /* Debug Universal */, + 4FCB504F00B51B566B493E34 /* Debug Native */, + 4B947464660212194E6646A3 /* Release Universal */, + 4E4B20BF024641E002716FE0 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode3/tests/testjoystick/testjoystick.xcodeproj/project.pbxproj b/premake/Xcode/Xcode3/tests/testjoystick/testjoystick.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..949afe91532ce --- /dev/null +++ b/premake/Xcode/Xcode3/tests/testjoystick/testjoystick.xcodeproj/project.pbxproj @@ -0,0 +1,457 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 437763EC237B697869BF2660 /* testjoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = 575854C968D2339B42231A76 /* testjoystick.c */; }; + 32AE52E40F9717233C0A72E3 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 49C3541826C0415B5BBB06CF /* AudioToolbox.framework */; }; + 713701E9165222F508951B0E /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 429764A30EF679621FE318DF /* AudioUnit.framework */; }; + 3305365658676BF47B865992 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 359B66B92AB97B052733203F /* Cocoa.framework */; }; + 454009FE1676579236A11079 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0AF04ACE566B29673FCA039D /* CoreAudio.framework */; }; + 467B73597DC93C1256A86A00 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7AC6150503393A7C64612020 /* IOKit.framework */; }; + 0A43432E34B77E2616FB5EC5 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 35A71D31162C3E4B53563DA2 /* Carbon.framework */; }; + 6A1914AC29146C09587E6BCE /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0F8038BC5C9F6E2353B93128 /* ForceFeedback.framework */; }; + 053233FE18FE0035423B3545 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5017524D691246A4654E7105 /* CoreFoundation.framework */; }; + 586778620AFF201402161485 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 002668CA5F860B982D337041 /* OpenGL.framework */; }; + 45E75FAF008E7FC7028A6A19 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6B5B5AA2679776D81F72795B /* libSDL2main.a */; }; + 622C508C579041352925795D /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1A9150BB258A36985B8F3E17 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 3C0976E362EC7ACF33A80284 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 45AB706D14D3355F03637630 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 58DC62993160374E09FF7AD6; + remoteInfo = "libSDL2main.a"; + }; + 3D93018001435A5871A13166 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 45AB706D14D3355F03637630 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 0E7126A94A11494963D3548B; + remoteInfo = "libSDL2main.a"; + }; + 449314BE6BB215CB4B027627 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 123161E85C4544221F2559D2 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 07D004B11E733F1F0EA93105; + remoteInfo = "libSDL2.a"; + }; + 10334206557652C1024D3BF6 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 123161E85C4544221F2559D2 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 58C10ED14175754444033E0E; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 575854C968D2339B42231A76 /* testjoystick.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testjoystick.c"; path = "../../../../../test/testjoystick.c"; sourceTree = ""; }; + 49C3541826C0415B5BBB06CF /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 429764A30EF679621FE318DF /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 359B66B92AB97B052733203F /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 0AF04ACE566B29673FCA039D /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 7AC6150503393A7C64612020 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 35A71D31162C3E4B53563DA2 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 0F8038BC5C9F6E2353B93128 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 5017524D691246A4654E7105 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 002668CA5F860B982D337041 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 7D16408B771F26DC39876A96 /* testjoystick */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testjoystick"; path = "testjoystick"; sourceTree = BUILT_PRODUCTS_DIR; }; + 45AB706D14D3355F03637630 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 123161E85C4544221F2559D2 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 42C7240B54E1220B2EA95DBD /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 32AE52E40F9717233C0A72E3 /* AudioToolbox.framework in Frameworks */, + 713701E9165222F508951B0E /* AudioUnit.framework in Frameworks */, + 3305365658676BF47B865992 /* Cocoa.framework in Frameworks */, + 454009FE1676579236A11079 /* CoreAudio.framework in Frameworks */, + 467B73597DC93C1256A86A00 /* IOKit.framework in Frameworks */, + 0A43432E34B77E2616FB5EC5 /* Carbon.framework in Frameworks */, + 6A1914AC29146C09587E6BCE /* ForceFeedback.framework in Frameworks */, + 053233FE18FE0035423B3545 /* CoreFoundation.framework in Frameworks */, + 586778620AFF201402161485 /* OpenGL.framework in Frameworks */, + 45E75FAF008E7FC7028A6A19 /* libSDL2main.a in Frameworks */, + 622C508C579041352925795D /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 5ADA2C5D152B774B76495CA8 /* testjoystick */ = { + isa = PBXGroup; + children = ( + 507764EB352B409244866236 /* test */, + 1C29022B74A07389548728F0 /* Frameworks */, + 42A706CA6D065E781AF14932 /* Products */, + 0C0326AD32E23D863D566494 /* Projects */, + ); + name = "testjoystick"; + sourceTree = ""; + }; + 507764EB352B409244866236 /* test */ = { + isa = PBXGroup; + children = ( + 575854C968D2339B42231A76 /* testjoystick.c */, + ); + name = "test"; + sourceTree = ""; + }; + 1C29022B74A07389548728F0 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 49C3541826C0415B5BBB06CF /* AudioToolbox.framework */, + 429764A30EF679621FE318DF /* AudioUnit.framework */, + 359B66B92AB97B052733203F /* Cocoa.framework */, + 0AF04ACE566B29673FCA039D /* CoreAudio.framework */, + 7AC6150503393A7C64612020 /* IOKit.framework */, + 35A71D31162C3E4B53563DA2 /* Carbon.framework */, + 0F8038BC5C9F6E2353B93128 /* ForceFeedback.framework */, + 5017524D691246A4654E7105 /* CoreFoundation.framework */, + 002668CA5F860B982D337041 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 42A706CA6D065E781AF14932 /* Products */ = { + isa = PBXGroup; + children = ( + 7D16408B771F26DC39876A96 /* testjoystick */, + ); + name = "Products"; + sourceTree = ""; + }; + 0C0326AD32E23D863D566494 /* Projects */ = { + isa = PBXGroup; + children = ( + 45AB706D14D3355F03637630 /* SDL2main.xcodeproj */, + 123161E85C4544221F2559D2 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 2B1056A844DE7C4B5BC0272D /* Products */ = { + isa = PBXGroup; + children = ( + 6B5B5AA2679776D81F72795B /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 365E0806554E015A7B6E2842 /* Products */ = { + isa = PBXGroup; + children = ( + 1A9150BB258A36985B8F3E17 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 58136F0736694FA50E6D28C3 /* testjoystick */ = { + isa = PBXNativeTarget; + buildConfigurationList = 6EB627E768094B9A14746E1F /* Build configuration list for PBXNativeTarget "testjoystick" */; + buildPhases = ( + 56B677F65199488F47EC0979 /* Resources */, + 012734B0155C5E2F62745B68 /* Sources */, + 42C7240B54E1220B2EA95DBD /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 5AB129100A9E2922059D0B90 /* PBXTargetDependency */, + 4C1110393C10473F33C77DE9 /* PBXTargetDependency */, + ); + name = "testjoystick"; + productInstallPath = "$(HOME)/bin"; + productName = "testjoystick"; + productReference = 7D16408B771F26DC39876A96 /* testjoystick */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testjoystick" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 5ADA2C5D152B774B76495CA8 /* testjoystick */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 2B1056A844DE7C4B5BC0272D /* Products */; + ProjectRef = 45AB706D14D3355F03637630 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 365E0806554E015A7B6E2842 /* Products */; + ProjectRef = 123161E85C4544221F2559D2 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 58136F0736694FA50E6D28C3 /* testjoystick */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 6B5B5AA2679776D81F72795B /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 3C0976E362EC7ACF33A80284 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 1A9150BB258A36985B8F3E17 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 449314BE6BB215CB4B027627 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 56B677F65199488F47EC0979 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 012734B0155C5E2F62745B68 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 437763EC237B697869BF2660 /* testjoystick.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 5AB129100A9E2922059D0B90 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 3D93018001435A5871A13166 /* PBXContainerItemProxy */; + }; + 4C1110393C10473F33C77DE9 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 10334206557652C1024D3BF6 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 1FC4190475817C1B532D5135 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testjoystick"; + }; + name = "Debug Universal"; + }; + 6D4424A6187F614C6441694A /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testjoystick"; + }; + name = "Debug Native"; + }; + 032255CC0451075503F37DCF /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testjoystick"; + }; + name = "Release Universal"; + }; + 6C2B055D48C7415E162B1403 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testjoystick"; + }; + name = "Release Native"; + }; + 00B2311E41CD36C9682D0589 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 10FA3A95390A734D052D7A76 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 30FB4F30746477246A855D7B /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 6AF652E76AC2025066962FCC /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 6EB627E768094B9A14746E1F /* Build configuration list for PBXNativeTarget "testjoystick" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1FC4190475817C1B532D5135 /* Debug Universal */, + 6D4424A6187F614C6441694A /* Debug Native */, + 032255CC0451075503F37DCF /* Release Universal */, + 6C2B055D48C7415E162B1403 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testjoystick" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 00B2311E41CD36C9682D0589 /* Debug Universal */, + 10FA3A95390A734D052D7A76 /* Debug Native */, + 30FB4F30746477246A855D7B /* Release Universal */, + 6AF652E76AC2025066962FCC /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode3/tests/testkeys/testkeys.xcodeproj/project.pbxproj b/premake/Xcode/Xcode3/tests/testkeys/testkeys.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..0758da75711af --- /dev/null +++ b/premake/Xcode/Xcode3/tests/testkeys/testkeys.xcodeproj/project.pbxproj @@ -0,0 +1,457 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 3454339E0B591D55512979F8 /* testkeys.c in Sources */ = {isa = PBXBuildFile; fileRef = 1C720BA10F9E6CC45CFD7281 /* testkeys.c */; }; + 01935D695566534E454A30BB /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1C4723971A3D268A4E764B6F /* AudioToolbox.framework */; }; + 55784AE65EA93DA470B63FFA /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0340006028F116AE106E56F6 /* AudioUnit.framework */; }; + 2A210CA6216A44E314BA5FAE /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 735E611957E3050F1DCE735C /* Cocoa.framework */; }; + 6DF45E5155386A7E7EB86A6E /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 574A58CB100E0E6B327132F4 /* CoreAudio.framework */; }; + 0367126E1E9E340B5E9A62C6 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 15992A844307099064094347 /* IOKit.framework */; }; + 59D60D784C917537297964C8 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40CC2B93789450B26A7D3F43 /* Carbon.framework */; }; + 6AFE0426017553E57F8E601F /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 426E56687A8557803F7A08FC /* ForceFeedback.framework */; }; + 01640C276A89726C3BB9110E /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 38433C3216573B1A2C585D3F /* CoreFoundation.framework */; }; + 57B2156D3A905F2665F012B0 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 32E301B9385A51FC7E4911CD /* OpenGL.framework */; }; + 455F748B7ED7642360CF3C6C /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 52EA144432A502DF0D432C88 /* libSDL2main.a */; }; + 465B117334D92A6008322145 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4E9B31C101CA22D041426DBB /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 207834E413575F6F720B4EEE /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 74185D3003874A2E2DA539B7 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 58DC62993160374E09FF7AD6; + remoteInfo = "libSDL2main.a"; + }; + 73690F737AF63949798E7526 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 74185D3003874A2E2DA539B7 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 0E7126A94A11494963D3548B; + remoteInfo = "libSDL2main.a"; + }; + 14EE4D1358324054597A7762 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 6D464B466F934BF407A37FA3 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 07D004B11E733F1F0EA93105; + remoteInfo = "libSDL2.a"; + }; + 5A7F5D8C3305441C1A12549A /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 6D464B466F934BF407A37FA3 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 58C10ED14175754444033E0E; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 1C720BA10F9E6CC45CFD7281 /* testkeys.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testkeys.c"; path = "../../../../../test/testkeys.c"; sourceTree = ""; }; + 1C4723971A3D268A4E764B6F /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 0340006028F116AE106E56F6 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 735E611957E3050F1DCE735C /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 574A58CB100E0E6B327132F4 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 15992A844307099064094347 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 40CC2B93789450B26A7D3F43 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 426E56687A8557803F7A08FC /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 38433C3216573B1A2C585D3F /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 32E301B9385A51FC7E4911CD /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 0AA24C7E02992EAD08281BC9 /* testkeys */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testkeys"; path = "testkeys"; sourceTree = BUILT_PRODUCTS_DIR; }; + 74185D3003874A2E2DA539B7 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 6D464B466F934BF407A37FA3 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 4484399925A71C153FBB2457 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 01935D695566534E454A30BB /* AudioToolbox.framework in Frameworks */, + 55784AE65EA93DA470B63FFA /* AudioUnit.framework in Frameworks */, + 2A210CA6216A44E314BA5FAE /* Cocoa.framework in Frameworks */, + 6DF45E5155386A7E7EB86A6E /* CoreAudio.framework in Frameworks */, + 0367126E1E9E340B5E9A62C6 /* IOKit.framework in Frameworks */, + 59D60D784C917537297964C8 /* Carbon.framework in Frameworks */, + 6AFE0426017553E57F8E601F /* ForceFeedback.framework in Frameworks */, + 01640C276A89726C3BB9110E /* CoreFoundation.framework in Frameworks */, + 57B2156D3A905F2665F012B0 /* OpenGL.framework in Frameworks */, + 455F748B7ED7642360CF3C6C /* libSDL2main.a in Frameworks */, + 465B117334D92A6008322145 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 4BA5662E7F9402A340F45D34 /* testkeys */ = { + isa = PBXGroup; + children = ( + 232B617B66995F7C05013C5D /* test */, + 1ECE6F887C7C5615265A6118 /* Frameworks */, + 14081BF170B0480700B77696 /* Products */, + 0B6946B349496DA378865A56 /* Projects */, + ); + name = "testkeys"; + sourceTree = ""; + }; + 232B617B66995F7C05013C5D /* test */ = { + isa = PBXGroup; + children = ( + 1C720BA10F9E6CC45CFD7281 /* testkeys.c */, + ); + name = "test"; + sourceTree = ""; + }; + 1ECE6F887C7C5615265A6118 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 1C4723971A3D268A4E764B6F /* AudioToolbox.framework */, + 0340006028F116AE106E56F6 /* AudioUnit.framework */, + 735E611957E3050F1DCE735C /* Cocoa.framework */, + 574A58CB100E0E6B327132F4 /* CoreAudio.framework */, + 15992A844307099064094347 /* IOKit.framework */, + 40CC2B93789450B26A7D3F43 /* Carbon.framework */, + 426E56687A8557803F7A08FC /* ForceFeedback.framework */, + 38433C3216573B1A2C585D3F /* CoreFoundation.framework */, + 32E301B9385A51FC7E4911CD /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 14081BF170B0480700B77696 /* Products */ = { + isa = PBXGroup; + children = ( + 0AA24C7E02992EAD08281BC9 /* testkeys */, + ); + name = "Products"; + sourceTree = ""; + }; + 0B6946B349496DA378865A56 /* Projects */ = { + isa = PBXGroup; + children = ( + 74185D3003874A2E2DA539B7 /* SDL2main.xcodeproj */, + 6D464B466F934BF407A37FA3 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 5E403C6A13FB494E5CBB380E /* Products */ = { + isa = PBXGroup; + children = ( + 52EA144432A502DF0D432C88 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 44CB7BC95C894D3D086A0052 /* Products */ = { + isa = PBXGroup; + children = ( + 4E9B31C101CA22D041426DBB /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 50E653D558D64C982D9D385B /* testkeys */ = { + isa = PBXNativeTarget; + buildConfigurationList = 6936126963AB2FBB5E641B90 /* Build configuration list for PBXNativeTarget "testkeys" */; + buildPhases = ( + 2C727D8B50EB03F641D12A29 /* Resources */, + 6F0027DC1DF36989497A6FC8 /* Sources */, + 4484399925A71C153FBB2457 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 133B078D75777AF174FA69D7 /* PBXTargetDependency */, + 790D5BB64714334F316D7C20 /* PBXTargetDependency */, + ); + name = "testkeys"; + productInstallPath = "$(HOME)/bin"; + productName = "testkeys"; + productReference = 0AA24C7E02992EAD08281BC9 /* testkeys */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testkeys" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 4BA5662E7F9402A340F45D34 /* testkeys */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 5E403C6A13FB494E5CBB380E /* Products */; + ProjectRef = 74185D3003874A2E2DA539B7 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 44CB7BC95C894D3D086A0052 /* Products */; + ProjectRef = 6D464B466F934BF407A37FA3 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 50E653D558D64C982D9D385B /* testkeys */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 52EA144432A502DF0D432C88 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 207834E413575F6F720B4EEE /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 4E9B31C101CA22D041426DBB /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 14EE4D1358324054597A7762 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 2C727D8B50EB03F641D12A29 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 6F0027DC1DF36989497A6FC8 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 3454339E0B591D55512979F8 /* testkeys.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 133B078D75777AF174FA69D7 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 73690F737AF63949798E7526 /* PBXContainerItemProxy */; + }; + 790D5BB64714334F316D7C20 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 5A7F5D8C3305441C1A12549A /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 7E0867456602403176F03B62 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testkeys"; + }; + name = "Debug Universal"; + }; + 59C07A0A33B2723260226019 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testkeys"; + }; + name = "Debug Native"; + }; + 394241601B0515F918747F2E /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testkeys"; + }; + name = "Release Universal"; + }; + 0657724202310F802B2A5328 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testkeys"; + }; + name = "Release Native"; + }; + 445132A8540E155B096148DD /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 498566954FA21E124B547AE0 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 25A2413855CC592E744D747E /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 75B36E593A0D2F56668807E7 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 6936126963AB2FBB5E641B90 /* Build configuration list for PBXNativeTarget "testkeys" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7E0867456602403176F03B62 /* Debug Universal */, + 59C07A0A33B2723260226019 /* Debug Native */, + 394241601B0515F918747F2E /* Release Universal */, + 0657724202310F802B2A5328 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testkeys" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 445132A8540E155B096148DD /* Debug Universal */, + 498566954FA21E124B547AE0 /* Debug Native */, + 25A2413855CC592E744D747E /* Release Universal */, + 75B36E593A0D2F56668807E7 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode3/tests/testloadso/testloadso.xcodeproj/project.pbxproj b/premake/Xcode/Xcode3/tests/testloadso/testloadso.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..bf8a178a4f61b --- /dev/null +++ b/premake/Xcode/Xcode3/tests/testloadso/testloadso.xcodeproj/project.pbxproj @@ -0,0 +1,457 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 709D0E441AEC092C477352FD /* testloadso.c in Sources */ = {isa = PBXBuildFile; fileRef = 5AF0642150A103830E8169CA /* testloadso.c */; }; + 73C11D8C01C7424C32362C8E /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7457304B2CCA0764490908B4 /* AudioToolbox.framework */; }; + 3142055859B320113C3C393C /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2B9D701C3FDF5E8E4A9103AE /* AudioUnit.framework */; }; + 06DF3A445E5D5FA3696365A0 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3C1C53752943263D730B6527 /* Cocoa.framework */; }; + 2DEC0C77760F5C42247441DB /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6F890B8A1465033937BC4A6C /* CoreAudio.framework */; }; + 56834300463A22E5102650BD /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3D77605110D06D8D53F25BA7 /* IOKit.framework */; }; + 6C9A156E69E36CFF0D305907 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 29761F220E835F5C24A15A95 /* Carbon.framework */; }; + 3F45690904CA0E5C49C066B1 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 12BA24E22E5A3EAE29C75818 /* ForceFeedback.framework */; }; + 0A8A6B6C0186188B5ABF64CE /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2C4F33EF2CC42B961D507BD3 /* CoreFoundation.framework */; }; + 6AC403C37DD0780252EC29D0 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 177F473D2F0E456447C36532 /* OpenGL.framework */; }; + 682C610537661D2C6D2676AB /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 14041494207459CC16EE0AB2 /* libSDL2main.a */; }; + 38476ED3066556105D88291B /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6AA30CE873EB060A7EE52AAC /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 65CB074A244B78F80D327D0D /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 6182257A166140C765542595 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 58DC62993160374E09FF7AD6; + remoteInfo = "libSDL2main.a"; + }; + 1C8A683E431808AD15DE38E2 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 6182257A166140C765542595 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 0E7126A94A11494963D3548B; + remoteInfo = "libSDL2main.a"; + }; + 2E6308FF2F280D5D6F0C1D92 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 784D0BF318A6643969815119 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 07D004B11E733F1F0EA93105; + remoteInfo = "libSDL2.a"; + }; + 68141F3C3D932EB24CD42CF2 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 784D0BF318A6643969815119 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 58C10ED14175754444033E0E; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 5AF0642150A103830E8169CA /* testloadso.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testloadso.c"; path = "../../../../../test/testloadso.c"; sourceTree = ""; }; + 7457304B2CCA0764490908B4 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 2B9D701C3FDF5E8E4A9103AE /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 3C1C53752943263D730B6527 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 6F890B8A1465033937BC4A6C /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 3D77605110D06D8D53F25BA7 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 29761F220E835F5C24A15A95 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 12BA24E22E5A3EAE29C75818 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 2C4F33EF2CC42B961D507BD3 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 177F473D2F0E456447C36532 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 7D043A4A56A5759D1FF324C6 /* testloadso */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testloadso"; path = "testloadso"; sourceTree = BUILT_PRODUCTS_DIR; }; + 6182257A166140C765542595 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 784D0BF318A6643969815119 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 5EE60750337B5D3838F840B7 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 73C11D8C01C7424C32362C8E /* AudioToolbox.framework in Frameworks */, + 3142055859B320113C3C393C /* AudioUnit.framework in Frameworks */, + 06DF3A445E5D5FA3696365A0 /* Cocoa.framework in Frameworks */, + 2DEC0C77760F5C42247441DB /* CoreAudio.framework in Frameworks */, + 56834300463A22E5102650BD /* IOKit.framework in Frameworks */, + 6C9A156E69E36CFF0D305907 /* Carbon.framework in Frameworks */, + 3F45690904CA0E5C49C066B1 /* ForceFeedback.framework in Frameworks */, + 0A8A6B6C0186188B5ABF64CE /* CoreFoundation.framework in Frameworks */, + 6AC403C37DD0780252EC29D0 /* OpenGL.framework in Frameworks */, + 682C610537661D2C6D2676AB /* libSDL2main.a in Frameworks */, + 38476ED3066556105D88291B /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 4AA746DB77735CF43A690503 /* testloadso */ = { + isa = PBXGroup; + children = ( + 395647D86D6A5CEC48037146 /* test */, + 6E35652053A10CE811924869 /* Frameworks */, + 1CD103C177E4277846715785 /* Products */, + 1E563C39637923AB67B821CA /* Projects */, + ); + name = "testloadso"; + sourceTree = ""; + }; + 395647D86D6A5CEC48037146 /* test */ = { + isa = PBXGroup; + children = ( + 5AF0642150A103830E8169CA /* testloadso.c */, + ); + name = "test"; + sourceTree = ""; + }; + 6E35652053A10CE811924869 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 7457304B2CCA0764490908B4 /* AudioToolbox.framework */, + 2B9D701C3FDF5E8E4A9103AE /* AudioUnit.framework */, + 3C1C53752943263D730B6527 /* Cocoa.framework */, + 6F890B8A1465033937BC4A6C /* CoreAudio.framework */, + 3D77605110D06D8D53F25BA7 /* IOKit.framework */, + 29761F220E835F5C24A15A95 /* Carbon.framework */, + 12BA24E22E5A3EAE29C75818 /* ForceFeedback.framework */, + 2C4F33EF2CC42B961D507BD3 /* CoreFoundation.framework */, + 177F473D2F0E456447C36532 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 1CD103C177E4277846715785 /* Products */ = { + isa = PBXGroup; + children = ( + 7D043A4A56A5759D1FF324C6 /* testloadso */, + ); + name = "Products"; + sourceTree = ""; + }; + 1E563C39637923AB67B821CA /* Projects */ = { + isa = PBXGroup; + children = ( + 6182257A166140C765542595 /* SDL2main.xcodeproj */, + 784D0BF318A6643969815119 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 6C270BD976786F722CD55840 /* Products */ = { + isa = PBXGroup; + children = ( + 14041494207459CC16EE0AB2 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 78856B7960315241568B618D /* Products */ = { + isa = PBXGroup; + children = ( + 6AA30CE873EB060A7EE52AAC /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 51C964DE5742612E28943988 /* testloadso */ = { + isa = PBXNativeTarget; + buildConfigurationList = 2D1B658C68B501BE702C6004 /* Build configuration list for PBXNativeTarget "testloadso" */; + buildPhases = ( + 3D166FAA3D593FCF666648E4 /* Resources */, + 7EFF2A46771F2D7B2788534A /* Sources */, + 5EE60750337B5D3838F840B7 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 0686078E0DFF076716A8202B /* PBXTargetDependency */, + 67221F693EBD6A9836101193 /* PBXTargetDependency */, + ); + name = "testloadso"; + productInstallPath = "$(HOME)/bin"; + productName = "testloadso"; + productReference = 7D043A4A56A5759D1FF324C6 /* testloadso */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testloadso" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 4AA746DB77735CF43A690503 /* testloadso */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 6C270BD976786F722CD55840 /* Products */; + ProjectRef = 6182257A166140C765542595 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 78856B7960315241568B618D /* Products */; + ProjectRef = 784D0BF318A6643969815119 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 51C964DE5742612E28943988 /* testloadso */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 14041494207459CC16EE0AB2 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 65CB074A244B78F80D327D0D /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 6AA30CE873EB060A7EE52AAC /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 2E6308FF2F280D5D6F0C1D92 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 3D166FAA3D593FCF666648E4 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 7EFF2A46771F2D7B2788534A /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 709D0E441AEC092C477352FD /* testloadso.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 0686078E0DFF076716A8202B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 1C8A683E431808AD15DE38E2 /* PBXContainerItemProxy */; + }; + 67221F693EBD6A9836101193 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 68141F3C3D932EB24CD42CF2 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 07700442397405A11F8D6941 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testloadso"; + }; + name = "Debug Universal"; + }; + 7B4C6EB21CE060FB1B645642 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testloadso"; + }; + name = "Debug Native"; + }; + 56C07D2D38CE66232284445F /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testloadso"; + }; + name = "Release Universal"; + }; + 081A65A14BB6343F36B62114 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testloadso"; + }; + name = "Release Native"; + }; + 68AB6E2428D3642001903429 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 0B70017A7AD16D2B5B513F9E /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 3EBA440E761E43E725625504 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 3D71722D0FA113E559D546C5 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 2D1B658C68B501BE702C6004 /* Build configuration list for PBXNativeTarget "testloadso" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 07700442397405A11F8D6941 /* Debug Universal */, + 7B4C6EB21CE060FB1B645642 /* Debug Native */, + 56C07D2D38CE66232284445F /* Release Universal */, + 081A65A14BB6343F36B62114 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testloadso" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 68AB6E2428D3642001903429 /* Debug Universal */, + 0B70017A7AD16D2B5B513F9E /* Debug Native */, + 3EBA440E761E43E725625504 /* Release Universal */, + 3D71722D0FA113E559D546C5 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode3/tests/testlock/testlock.xcodeproj/project.pbxproj b/premake/Xcode/Xcode3/tests/testlock/testlock.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..3f5f352af241f --- /dev/null +++ b/premake/Xcode/Xcode3/tests/testlock/testlock.xcodeproj/project.pbxproj @@ -0,0 +1,457 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 36AF3C1A55A560982B347916 /* testlock.c in Sources */ = {isa = PBXBuildFile; fileRef = 76075B77190A1EB068755D2D /* testlock.c */; }; + 22E4478C58A82B713F016FCB /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 447C343A6839289771533949 /* AudioToolbox.framework */; }; + 182B469713534F8529BC138F /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0ED5692D2C2A199B15A723FE /* AudioUnit.framework */; }; + 4B47295C58B42FF477E8506E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A1E059F372304422BC1110C /* Cocoa.framework */; }; + 094D3F3C39A65D962EFC5BF6 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7A2F4613182C29CB78C57988 /* CoreAudio.framework */; }; + 476744EB2434064930045AE5 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 166E18C26AA52A0A21F8428F /* IOKit.framework */; }; + 000571817CF54464025C216A /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7E11450E34276E6D502F5E83 /* Carbon.framework */; }; + 62431D6B7EFD372B7CE46574 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 445340194DE46B3F2C09410F /* ForceFeedback.framework */; }; + 2E542CC95DE23789289618EE /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3EE55097724D44B03E871B38 /* CoreFoundation.framework */; }; + 6CE6002242A10F94731E64BD /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 46CD545922BB27E330BE233C /* OpenGL.framework */; }; + 24E47786013F5E9B3F37681B /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 22FC0D1B23AE2964781D7549 /* libSDL2main.a */; }; + 0EB058742CA47139554E04CF /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 49ED07813E65088D227F6AAB /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 07BF0E1B3FC724B70F5F30FB /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 780B4D9641C7747228861D04 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 58DC62993160374E09FF7AD6; + remoteInfo = "libSDL2main.a"; + }; + 4D4A744248F34DC219D92D7B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 780B4D9641C7747228861D04 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 0E7126A94A11494963D3548B; + remoteInfo = "libSDL2main.a"; + }; + 6F8200BA55C653F92FC8138D /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 4CBF168D320F315D62BE2B41 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 07D004B11E733F1F0EA93105; + remoteInfo = "libSDL2.a"; + }; + 114425F86F59447A44351049 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 4CBF168D320F315D62BE2B41 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 58C10ED14175754444033E0E; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 76075B77190A1EB068755D2D /* testlock.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testlock.c"; path = "../../../../../test/testlock.c"; sourceTree = ""; }; + 447C343A6839289771533949 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 0ED5692D2C2A199B15A723FE /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 4A1E059F372304422BC1110C /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 7A2F4613182C29CB78C57988 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 166E18C26AA52A0A21F8428F /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 7E11450E34276E6D502F5E83 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 445340194DE46B3F2C09410F /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 3EE55097724D44B03E871B38 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 46CD545922BB27E330BE233C /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 5F51544256334C254E020D3D /* testlock */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testlock"; path = "testlock"; sourceTree = BUILT_PRODUCTS_DIR; }; + 780B4D9641C7747228861D04 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 4CBF168D320F315D62BE2B41 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 78C1724731C65D0F1ED42E48 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 22E4478C58A82B713F016FCB /* AudioToolbox.framework in Frameworks */, + 182B469713534F8529BC138F /* AudioUnit.framework in Frameworks */, + 4B47295C58B42FF477E8506E /* Cocoa.framework in Frameworks */, + 094D3F3C39A65D962EFC5BF6 /* CoreAudio.framework in Frameworks */, + 476744EB2434064930045AE5 /* IOKit.framework in Frameworks */, + 000571817CF54464025C216A /* Carbon.framework in Frameworks */, + 62431D6B7EFD372B7CE46574 /* ForceFeedback.framework in Frameworks */, + 2E542CC95DE23789289618EE /* CoreFoundation.framework in Frameworks */, + 6CE6002242A10F94731E64BD /* OpenGL.framework in Frameworks */, + 24E47786013F5E9B3F37681B /* libSDL2main.a in Frameworks */, + 0EB058742CA47139554E04CF /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 5E35195524CF3A97390D3A81 /* testlock */ = { + isa = PBXGroup; + children = ( + 0884482C57CC2F5A50A4647F /* test */, + 4F2934251BA43CD222944E53 /* Frameworks */, + 51AF5DF8673976F42AA95D51 /* Products */, + 7F344EEE1C2210DF289249A7 /* Projects */, + ); + name = "testlock"; + sourceTree = ""; + }; + 0884482C57CC2F5A50A4647F /* test */ = { + isa = PBXGroup; + children = ( + 76075B77190A1EB068755D2D /* testlock.c */, + ); + name = "test"; + sourceTree = ""; + }; + 4F2934251BA43CD222944E53 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 447C343A6839289771533949 /* AudioToolbox.framework */, + 0ED5692D2C2A199B15A723FE /* AudioUnit.framework */, + 4A1E059F372304422BC1110C /* Cocoa.framework */, + 7A2F4613182C29CB78C57988 /* CoreAudio.framework */, + 166E18C26AA52A0A21F8428F /* IOKit.framework */, + 7E11450E34276E6D502F5E83 /* Carbon.framework */, + 445340194DE46B3F2C09410F /* ForceFeedback.framework */, + 3EE55097724D44B03E871B38 /* CoreFoundation.framework */, + 46CD545922BB27E330BE233C /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 51AF5DF8673976F42AA95D51 /* Products */ = { + isa = PBXGroup; + children = ( + 5F51544256334C254E020D3D /* testlock */, + ); + name = "Products"; + sourceTree = ""; + }; + 7F344EEE1C2210DF289249A7 /* Projects */ = { + isa = PBXGroup; + children = ( + 780B4D9641C7747228861D04 /* SDL2main.xcodeproj */, + 4CBF168D320F315D62BE2B41 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 08F13E9D60CE31F302A80029 /* Products */ = { + isa = PBXGroup; + children = ( + 22FC0D1B23AE2964781D7549 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 50AD31CC68580A1C719E61C3 /* Products */ = { + isa = PBXGroup; + children = ( + 49ED07813E65088D227F6AAB /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 4EA54D07134E169D1E0F28DC /* testlock */ = { + isa = PBXNativeTarget; + buildConfigurationList = 51AE32DA35C3568F040C36AC /* Build configuration list for PBXNativeTarget "testlock" */; + buildPhases = ( + 7EC5687F70F11B74113F52B0 /* Resources */, + 20EC6DC743DF75E202987A86 /* Sources */, + 78C1724731C65D0F1ED42E48 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 7E443D254D21665717ED4A4C /* PBXTargetDependency */, + 631F15A070EF04CA7DD12E39 /* PBXTargetDependency */, + ); + name = "testlock"; + productInstallPath = "$(HOME)/bin"; + productName = "testlock"; + productReference = 5F51544256334C254E020D3D /* testlock */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testlock" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 5E35195524CF3A97390D3A81 /* testlock */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 08F13E9D60CE31F302A80029 /* Products */; + ProjectRef = 780B4D9641C7747228861D04 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 50AD31CC68580A1C719E61C3 /* Products */; + ProjectRef = 4CBF168D320F315D62BE2B41 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 4EA54D07134E169D1E0F28DC /* testlock */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 22FC0D1B23AE2964781D7549 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 07BF0E1B3FC724B70F5F30FB /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 49ED07813E65088D227F6AAB /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 6F8200BA55C653F92FC8138D /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 7EC5687F70F11B74113F52B0 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 20EC6DC743DF75E202987A86 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 36AF3C1A55A560982B347916 /* testlock.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 7E443D254D21665717ED4A4C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 4D4A744248F34DC219D92D7B /* PBXContainerItemProxy */; + }; + 631F15A070EF04CA7DD12E39 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 114425F86F59447A44351049 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 516D536738AE368857D02889 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testlock"; + }; + name = "Debug Universal"; + }; + 2BAC510956A527B830053308 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testlock"; + }; + name = "Debug Native"; + }; + 70165F1F1034683327A42087 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testlock"; + }; + name = "Release Universal"; + }; + 57383D8C507F631251D71FBD /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testlock"; + }; + name = "Release Native"; + }; + 6ECB09A631FC2F247D5F2723 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 78A61A7D2E8265180BFA68AD /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 20EC14C85871739552AB178F /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 5E9A713B7EDD7EFB51D707AD /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 51AE32DA35C3568F040C36AC /* Build configuration list for PBXNativeTarget "testlock" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 516D536738AE368857D02889 /* Debug Universal */, + 2BAC510956A527B830053308 /* Debug Native */, + 70165F1F1034683327A42087 /* Release Universal */, + 57383D8C507F631251D71FBD /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testlock" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 6ECB09A631FC2F247D5F2723 /* Debug Universal */, + 78A61A7D2E8265180BFA68AD /* Debug Native */, + 20EC14C85871739552AB178F /* Release Universal */, + 5E9A713B7EDD7EFB51D707AD /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode3/tests/testmessage/testmessage.xcodeproj/project.pbxproj b/premake/Xcode/Xcode3/tests/testmessage/testmessage.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..447c8243a1700 --- /dev/null +++ b/premake/Xcode/Xcode3/tests/testmessage/testmessage.xcodeproj/project.pbxproj @@ -0,0 +1,457 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 4C15281849B124226F1561EE /* testmessage.c in Sources */ = {isa = PBXBuildFile; fileRef = 003C0FC70ACD46B74E3E549F /* testmessage.c */; }; + 2C83524D5E1F5B2D2284306E /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44F608F876FE1EF43BD6645F /* AudioToolbox.framework */; }; + 78500A063B6717677B635CB2 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2E537B4E79AC2A6B106F24E2 /* AudioUnit.framework */; }; + 356239D233647095789C4AB5 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2DA965547C174C8E3D12061E /* Cocoa.framework */; }; + 37737999652F0C067F973403 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 67064B3C571C726A4D8179C0 /* CoreAudio.framework */; }; + 12D101C8017F4AE73B935F19 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3A7439B734487F783F813598 /* IOKit.framework */; }; + 53B04D0F43E23E4E105E1168 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 03D0610D4C3538960F9735DF /* Carbon.framework */; }; + 515E2081040C537B3EDA0063 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 641A7C2E3AAF5AA527BC6604 /* ForceFeedback.framework */; }; + 4792740F2DC1192D0CAC1E27 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 69AC3C0E43363B0158725A40 /* CoreFoundation.framework */; }; + 6A67175E3A0F49BE5C334149 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 394B263C4E116E57355B1199 /* OpenGL.framework */; }; + 089779561D582D30532670F3 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 36D503B50C1D54E739233010 /* libSDL2main.a */; }; + 02AB49AD3B8618113CF067A9 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D9C6AC96FE616FF78221C04 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 3A8370A01DEF59E21ABE6EF5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 4BD530093DB426A12BFF03A4 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 58DC62993160374E09FF7AD6; + remoteInfo = "libSDL2main.a"; + }; + 3B19724458CB04B3328C0F3A /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 4BD530093DB426A12BFF03A4 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 0E7126A94A11494963D3548B; + remoteInfo = "libSDL2main.a"; + }; + 3777720073427EAC71172F6D /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 6F3C739637140AE21FA54330 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 07D004B11E733F1F0EA93105; + remoteInfo = "libSDL2.a"; + }; + 49CB51255A112A94792A4C02 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 6F3C739637140AE21FA54330 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 58C10ED14175754444033E0E; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 003C0FC70ACD46B74E3E549F /* testmessage.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testmessage.c"; path = "../../../../../test/testmessage.c"; sourceTree = ""; }; + 44F608F876FE1EF43BD6645F /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 2E537B4E79AC2A6B106F24E2 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 2DA965547C174C8E3D12061E /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 67064B3C571C726A4D8179C0 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 3A7439B734487F783F813598 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 03D0610D4C3538960F9735DF /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 641A7C2E3AAF5AA527BC6604 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 69AC3C0E43363B0158725A40 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 394B263C4E116E57355B1199 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 051758F7528F573051872F69 /* testmessage */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testmessage"; path = "testmessage"; sourceTree = BUILT_PRODUCTS_DIR; }; + 4BD530093DB426A12BFF03A4 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 6F3C739637140AE21FA54330 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 2D4931A3757F6C6C28807597 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 2C83524D5E1F5B2D2284306E /* AudioToolbox.framework in Frameworks */, + 78500A063B6717677B635CB2 /* AudioUnit.framework in Frameworks */, + 356239D233647095789C4AB5 /* Cocoa.framework in Frameworks */, + 37737999652F0C067F973403 /* CoreAudio.framework in Frameworks */, + 12D101C8017F4AE73B935F19 /* IOKit.framework in Frameworks */, + 53B04D0F43E23E4E105E1168 /* Carbon.framework in Frameworks */, + 515E2081040C537B3EDA0063 /* ForceFeedback.framework in Frameworks */, + 4792740F2DC1192D0CAC1E27 /* CoreFoundation.framework in Frameworks */, + 6A67175E3A0F49BE5C334149 /* OpenGL.framework in Frameworks */, + 089779561D582D30532670F3 /* libSDL2main.a in Frameworks */, + 02AB49AD3B8618113CF067A9 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 6F9F406265F621D4244C08DC /* testmessage */ = { + isa = PBXGroup; + children = ( + 57F11275651F0CF06FD72B13 /* test */, + 7F4D2BCB51A800DE70F76CC6 /* Frameworks */, + 3D9671722AF1479B1257324C /* Products */, + 3C1F4B5165F437993EC45448 /* Projects */, + ); + name = "testmessage"; + sourceTree = ""; + }; + 57F11275651F0CF06FD72B13 /* test */ = { + isa = PBXGroup; + children = ( + 003C0FC70ACD46B74E3E549F /* testmessage.c */, + ); + name = "test"; + sourceTree = ""; + }; + 7F4D2BCB51A800DE70F76CC6 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 44F608F876FE1EF43BD6645F /* AudioToolbox.framework */, + 2E537B4E79AC2A6B106F24E2 /* AudioUnit.framework */, + 2DA965547C174C8E3D12061E /* Cocoa.framework */, + 67064B3C571C726A4D8179C0 /* CoreAudio.framework */, + 3A7439B734487F783F813598 /* IOKit.framework */, + 03D0610D4C3538960F9735DF /* Carbon.framework */, + 641A7C2E3AAF5AA527BC6604 /* ForceFeedback.framework */, + 69AC3C0E43363B0158725A40 /* CoreFoundation.framework */, + 394B263C4E116E57355B1199 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 3D9671722AF1479B1257324C /* Products */ = { + isa = PBXGroup; + children = ( + 051758F7528F573051872F69 /* testmessage */, + ); + name = "Products"; + sourceTree = ""; + }; + 3C1F4B5165F437993EC45448 /* Projects */ = { + isa = PBXGroup; + children = ( + 4BD530093DB426A12BFF03A4 /* SDL2main.xcodeproj */, + 6F3C739637140AE21FA54330 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 23E53B4D3CE23FBE619731A4 /* Products */ = { + isa = PBXGroup; + children = ( + 36D503B50C1D54E739233010 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 7A7C784864A918C0226E734E /* Products */ = { + isa = PBXGroup; + children = ( + 2D9C6AC96FE616FF78221C04 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 1F073B18600C67C00E052683 /* testmessage */ = { + isa = PBXNativeTarget; + buildConfigurationList = 31A77C6231AA441421915382 /* Build configuration list for PBXNativeTarget "testmessage" */; + buildPhases = ( + 04E300CD4A6A76AB139146A6 /* Resources */, + 627D1EAA5FCE59F0319B6633 /* Sources */, + 2D4931A3757F6C6C28807597 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 4211010322DE412B210A430C /* PBXTargetDependency */, + 50B8172F41907753767378DC /* PBXTargetDependency */, + ); + name = "testmessage"; + productInstallPath = "$(HOME)/bin"; + productName = "testmessage"; + productReference = 051758F7528F573051872F69 /* testmessage */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testmessage" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 6F9F406265F621D4244C08DC /* testmessage */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 23E53B4D3CE23FBE619731A4 /* Products */; + ProjectRef = 4BD530093DB426A12BFF03A4 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 7A7C784864A918C0226E734E /* Products */; + ProjectRef = 6F3C739637140AE21FA54330 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 1F073B18600C67C00E052683 /* testmessage */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 36D503B50C1D54E739233010 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 3A8370A01DEF59E21ABE6EF5 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 2D9C6AC96FE616FF78221C04 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 3777720073427EAC71172F6D /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 04E300CD4A6A76AB139146A6 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 627D1EAA5FCE59F0319B6633 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 4C15281849B124226F1561EE /* testmessage.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 4211010322DE412B210A430C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 3B19724458CB04B3328C0F3A /* PBXContainerItemProxy */; + }; + 50B8172F41907753767378DC /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 49CB51255A112A94792A4C02 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 19836F1F09FE0A3465864960 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testmessage"; + }; + name = "Debug Universal"; + }; + 45B66F3261D1661F2BAE2E17 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testmessage"; + }; + name = "Debug Native"; + }; + 08FF4C2A74D0166F73BE4F85 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testmessage"; + }; + name = "Release Universal"; + }; + 3BA1761B738F3A8F116B3141 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testmessage"; + }; + name = "Release Native"; + }; + 5AD835E2294F1F816A747010 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 69EA1C660146464833C70526 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 368E5A3C4929274A28C93EF6 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 3B2B0EF31AE217111D6B6D84 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 31A77C6231AA441421915382 /* Build configuration list for PBXNativeTarget "testmessage" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 19836F1F09FE0A3465864960 /* Debug Universal */, + 45B66F3261D1661F2BAE2E17 /* Debug Native */, + 08FF4C2A74D0166F73BE4F85 /* Release Universal */, + 3BA1761B738F3A8F116B3141 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testmessage" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 5AD835E2294F1F816A747010 /* Debug Universal */, + 69EA1C660146464833C70526 /* Debug Native */, + 368E5A3C4929274A28C93EF6 /* Release Universal */, + 3B2B0EF31AE217111D6B6D84 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode3/tests/testmultiaudio/testmultiaudio.xcodeproj/project.pbxproj b/premake/Xcode/Xcode3/tests/testmultiaudio/testmultiaudio.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..42044e856a79e --- /dev/null +++ b/premake/Xcode/Xcode3/tests/testmultiaudio/testmultiaudio.xcodeproj/project.pbxproj @@ -0,0 +1,474 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 174815721F7146F115C335E0 /* testmultiaudio.c in Sources */ = {isa = PBXBuildFile; fileRef = 53C5423271F91FF954C36118 /* testmultiaudio.c */; }; + 1861168928E56DFD08533DC6 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 15CB4753539D042D37B623F2 /* AudioToolbox.framework */; }; + 530D20A412A064804AF141F2 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1C46380B7B9D25571D312E68 /* AudioUnit.framework */; }; + 1D4E7FBD7210232C32B074C7 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A575BEE6A5C66D4150237F8 /* Cocoa.framework */; }; + 01A64D943EC872D24DF656A1 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 721A418B1FB41307619F2528 /* CoreAudio.framework */; }; + 162643C813370716660557DA /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0C5D63DF56BF25A63B0444EE /* IOKit.framework */; }; + 338D20466DEA2A9E6C995E32 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 37AD46DE49E1039071A7202A /* Carbon.framework */; }; + 6ADC14B17BF057A47EFB3048 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4FB92763717E0DA7067843E1 /* ForceFeedback.framework */; }; + 08F0559B59E42A2232C4230E /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 782647790AF8537A750A1568 /* CoreFoundation.framework */; }; + 2BA23AB9537953747BF1113A /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 290C6654453C0A1C5EE476C5 /* OpenGL.framework */; }; + 71B33AEF4EF9475873A012C7 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7BC16DA8347901D000590233 /* libSDL2main.a */; }; + 395D15850C633DE5129376D8 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6410585808B95289405A6302 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 5EF132686453137B162436C0 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 55D92D84460A6778062649E9 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 58DC62993160374E09FF7AD6; + remoteInfo = "libSDL2main.a"; + }; + 2151781404065B7A2E2C4E69 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 55D92D84460A6778062649E9 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 0E7126A94A11494963D3548B; + remoteInfo = "libSDL2main.a"; + }; + 6B113731181333027E1864B6 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 7B9118CD62B7789852C53B91 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 07D004B11E733F1F0EA93105; + remoteInfo = "libSDL2.a"; + }; + 77AC6F0623E87E6F29D44BC2 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 7B9118CD62B7789852C53B91 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 58C10ED14175754444033E0E; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 53C5423271F91FF954C36118 /* testmultiaudio.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testmultiaudio.c"; path = "../../../../../test/testmultiaudio.c"; sourceTree = ""; }; + 15CB4753539D042D37B623F2 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 1C46380B7B9D25571D312E68 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 0A575BEE6A5C66D4150237F8 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 721A418B1FB41307619F2528 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 0C5D63DF56BF25A63B0444EE /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 37AD46DE49E1039071A7202A /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 4FB92763717E0DA7067843E1 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 782647790AF8537A750A1568 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 290C6654453C0A1C5EE476C5 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 258210DE0BA646D34B7E4568 /* testmultiaudio */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testmultiaudio"; path = "testmultiaudio"; sourceTree = BUILT_PRODUCTS_DIR; }; + 55D92D84460A6778062649E9 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 7B9118CD62B7789852C53B91 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 0168143D58A3681C2D88598C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 1861168928E56DFD08533DC6 /* AudioToolbox.framework in Frameworks */, + 530D20A412A064804AF141F2 /* AudioUnit.framework in Frameworks */, + 1D4E7FBD7210232C32B074C7 /* Cocoa.framework in Frameworks */, + 01A64D943EC872D24DF656A1 /* CoreAudio.framework in Frameworks */, + 162643C813370716660557DA /* IOKit.framework in Frameworks */, + 338D20466DEA2A9E6C995E32 /* Carbon.framework in Frameworks */, + 6ADC14B17BF057A47EFB3048 /* ForceFeedback.framework in Frameworks */, + 08F0559B59E42A2232C4230E /* CoreFoundation.framework in Frameworks */, + 2BA23AB9537953747BF1113A /* OpenGL.framework in Frameworks */, + 71B33AEF4EF9475873A012C7 /* libSDL2main.a in Frameworks */, + 395D15850C633DE5129376D8 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 1DF60B03026011DD72195588 /* testmultiaudio */ = { + isa = PBXGroup; + children = ( + 0DA025A302E9323622BB2CC1 /* test */, + 2D4746BB2B19338A51054414 /* Frameworks */, + 060A0A8A08640AD826196F76 /* Products */, + 35403DDB0B1E114F65A77089 /* Projects */, + ); + name = "testmultiaudio"; + sourceTree = ""; + }; + 0DA025A302E9323622BB2CC1 /* test */ = { + isa = PBXGroup; + children = ( + 53C5423271F91FF954C36118 /* testmultiaudio.c */, + ); + name = "test"; + sourceTree = ""; + }; + 2D4746BB2B19338A51054414 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 15CB4753539D042D37B623F2 /* AudioToolbox.framework */, + 1C46380B7B9D25571D312E68 /* AudioUnit.framework */, + 0A575BEE6A5C66D4150237F8 /* Cocoa.framework */, + 721A418B1FB41307619F2528 /* CoreAudio.framework */, + 0C5D63DF56BF25A63B0444EE /* IOKit.framework */, + 37AD46DE49E1039071A7202A /* Carbon.framework */, + 4FB92763717E0DA7067843E1 /* ForceFeedback.framework */, + 782647790AF8537A750A1568 /* CoreFoundation.framework */, + 290C6654453C0A1C5EE476C5 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 060A0A8A08640AD826196F76 /* Products */ = { + isa = PBXGroup; + children = ( + 258210DE0BA646D34B7E4568 /* testmultiaudio */, + ); + name = "Products"; + sourceTree = ""; + }; + 35403DDB0B1E114F65A77089 /* Projects */ = { + isa = PBXGroup; + children = ( + 55D92D84460A6778062649E9 /* SDL2main.xcodeproj */, + 7B9118CD62B7789852C53B91 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 696627B2256F1F070966363E /* Products */ = { + isa = PBXGroup; + children = ( + 7BC16DA8347901D000590233 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 6603008153DE29AE6FA406B5 /* Products */ = { + isa = PBXGroup; + children = ( + 6410585808B95289405A6302 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 3243575279A557EB226C63CE /* testmultiaudio */ = { + isa = PBXNativeTarget; + buildConfigurationList = 66CD55C26ECC1AEF67EE69D8 /* Build configuration list for PBXNativeTarget "testmultiaudio" */; + buildPhases = ( + 08FC11C805A3259D10A01B08 /* Resources */, + 50DB7AE237756D106B0114E9 /* Sources */, + 0168143D58A3681C2D88598C /* Frameworks */, + 9607AE3710C85E8F00CD1376 /* Postbuild */, + ); + buildRules = ( + ); + dependencies = ( + 004D570469386A167BA279B1 /* PBXTargetDependency */, + 6C3F42866E19479F20B367D6 /* PBXTargetDependency */, + ); + name = "testmultiaudio"; + productInstallPath = "$(HOME)/bin"; + productName = "testmultiaudio"; + productReference = 258210DE0BA646D34B7E4568 /* testmultiaudio */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testmultiaudio" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 1DF60B03026011DD72195588 /* testmultiaudio */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 696627B2256F1F070966363E /* Products */; + ProjectRef = 55D92D84460A6778062649E9 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 6603008153DE29AE6FA406B5 /* Products */; + ProjectRef = 7B9118CD62B7789852C53B91 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 3243575279A557EB226C63CE /* testmultiaudio */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 7BC16DA8347901D000590233 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 5EF132686453137B162436C0 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 6410585808B95289405A6302 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 6B113731181333027E1864B6 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 08FC11C805A3259D10A01B08 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 9607AE3710C85E8F00CD1376 /* Postbuild */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = Postbuild; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "if [ \"${CONFIGURATION}\" = \"Debug Universal\" ]; then\nif [ ! -d \"./Build/Debug\" ]; then mkdir -p \"./Build/Debug\"; fi\ncp \"./../../../../../test/sample.wav\" \"./Build/Debug/sample.wav\"\nfi\nif [ \"${CONFIGURATION}\" = \"Debug Native\" ]; then\nif [ ! -d \"./Build/Debug\" ]; then mkdir -p \"./Build/Debug\"; fi\ncp \"./../../../../../test/sample.wav\" \"./Build/Debug/sample.wav\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Universal\" ]; then\nif [ ! -d \"./Build/Release\" ]; then mkdir -p \"./Build/Release\"; fi\ncp \"./../../../../../test/sample.wav\" \"./Build/Release/sample.wav\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Native\" ]; then\nif [ ! -d \"./Build/Release\" ]; then mkdir -p \"./Build/Release\"; fi\ncp \"./../../../../../test/sample.wav\" \"./Build/Release/sample.wav\"\nfi"; + }; +/* End PBXShellScriptBuildPhase section */ +/* Begin PBXSourcesBuildPhase section */ + 50DB7AE237756D106B0114E9 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 174815721F7146F115C335E0 /* testmultiaudio.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 004D570469386A167BA279B1 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 2151781404065B7A2E2C4E69 /* PBXContainerItemProxy */; + }; + 6C3F42866E19479F20B367D6 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 77AC6F0623E87E6F29D44BC2 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 269674957F6148FD692F19BA /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testmultiaudio"; + }; + name = "Debug Universal"; + }; + 303025B74A4268AC0BEB23CD /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testmultiaudio"; + }; + name = "Debug Native"; + }; + 6BF27AEC22F65EDA3A6D4EC9 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testmultiaudio"; + }; + name = "Release Universal"; + }; + 48C64B556EB35B806BD770BB /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testmultiaudio"; + }; + name = "Release Native"; + }; + 2D9E7BDC31993453730A2FD2 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 1341319674F24336220D3D5A /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 0000069D34CC40CF010B2A26 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 17EB04401F5E7A130A5376D0 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 66CD55C26ECC1AEF67EE69D8 /* Build configuration list for PBXNativeTarget "testmultiaudio" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 269674957F6148FD692F19BA /* Debug Universal */, + 303025B74A4268AC0BEB23CD /* Debug Native */, + 6BF27AEC22F65EDA3A6D4EC9 /* Release Universal */, + 48C64B556EB35B806BD770BB /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testmultiaudio" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 2D9E7BDC31993453730A2FD2 /* Debug Universal */, + 1341319674F24336220D3D5A /* Debug Native */, + 0000069D34CC40CF010B2A26 /* Release Universal */, + 17EB04401F5E7A130A5376D0 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode3/tests/testnative/testnative.xcodeproj/project.pbxproj b/premake/Xcode/Xcode3/tests/testnative/testnative.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..494e1a3e66d3a --- /dev/null +++ b/premake/Xcode/Xcode3/tests/testnative/testnative.xcodeproj/project.pbxproj @@ -0,0 +1,480 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 5EC212E30AED603F72156F79 /* testnative.c in Sources */ = {isa = PBXBuildFile; fileRef = 09311D5367FC66771E7318D5 /* testnative.c */; }; + 54C15326088436A9230D5110 /* testnativecocoa.m in Sources */ = {isa = PBXBuildFile; fileRef = 58C035895DB74E9E16235E30 /* testnativecocoa.m */; }; + 53004AB405F2758E5F973390 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 398B5D33413B2EA22832188D /* AudioToolbox.framework */; }; + 5D2E2E7061411EC95AB73306 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 65EF5B09498E4845494156E5 /* AudioUnit.framework */; }; + 578965B01D175CCE5E6A3667 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 61ED3686206E555C44447010 /* Cocoa.framework */; }; + 0E714C95788701897D85483A /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5A2145ED01C1668742F17812 /* CoreAudio.framework */; }; + 76DF3AB76EE102CE2CA06EA1 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00ED617A1D6227434FE4036B /* IOKit.framework */; }; + 24DA1FED051540F92B287CC8 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 146A6DCA7E40436331FB6839 /* Carbon.framework */; }; + 59821B8B6F45341B150737E7 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6E7629D50C845B0E2DF27603 /* ForceFeedback.framework */; }; + 6A5672E00D543C3552A02044 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3D8D0094770E755A149D738A /* CoreFoundation.framework */; }; + 4AD6442630A52E0104FE44D7 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7061781356DF74BA7B237006 /* OpenGL.framework */; }; + 685B4AD90CD939916E816111 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 40DA60C67C1300EF5B1838BA /* libSDL2main.a */; }; + 7CC725510C3049A02F9D2DF7 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7DCC0E6E045C707338B77A34 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 2735469863225AF730987CB3 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 7ED026D100095D0D18BD4051 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 58DC62993160374E09FF7AD6; + remoteInfo = "libSDL2main.a"; + }; + 01C352BF24C13C2215AB3050 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 7ED026D100095D0D18BD4051 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 0E7126A94A11494963D3548B; + remoteInfo = "libSDL2main.a"; + }; + 3E3252EC174805026BC969CB /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 2950670A4677313F2FF316E4 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 07D004B11E733F1F0EA93105; + remoteInfo = "libSDL2.a"; + }; + 170A1F2539EA4C7A6C3C69FA /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 2950670A4677313F2FF316E4 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 58C10ED14175754444033E0E; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 09311D5367FC66771E7318D5 /* testnative.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testnative.c"; path = "../../../../../test/testnative.c"; sourceTree = ""; }; + 2933635A47D86E8509A140D4 /* testnative.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "testnative.h"; path = "../../../../../test/testnative.h"; sourceTree = ""; }; + 58C035895DB74E9E16235E30 /* testnativecocoa.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "testnativecocoa.m"; path = "../../../../../test/testnativecocoa.m"; sourceTree = ""; }; + 398B5D33413B2EA22832188D /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 65EF5B09498E4845494156E5 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 61ED3686206E555C44447010 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 5A2145ED01C1668742F17812 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 00ED617A1D6227434FE4036B /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 146A6DCA7E40436331FB6839 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 6E7629D50C845B0E2DF27603 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 3D8D0094770E755A149D738A /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 7061781356DF74BA7B237006 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 0D926DF4640E0E9F783911A8 /* testnative */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testnative"; path = "testnative"; sourceTree = BUILT_PRODUCTS_DIR; }; + 7ED026D100095D0D18BD4051 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 2950670A4677313F2FF316E4 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 373900501DE06E5C026B626E /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 53004AB405F2758E5F973390 /* AudioToolbox.framework in Frameworks */, + 5D2E2E7061411EC95AB73306 /* AudioUnit.framework in Frameworks */, + 578965B01D175CCE5E6A3667 /* Cocoa.framework in Frameworks */, + 0E714C95788701897D85483A /* CoreAudio.framework in Frameworks */, + 76DF3AB76EE102CE2CA06EA1 /* IOKit.framework in Frameworks */, + 24DA1FED051540F92B287CC8 /* Carbon.framework in Frameworks */, + 59821B8B6F45341B150737E7 /* ForceFeedback.framework in Frameworks */, + 6A5672E00D543C3552A02044 /* CoreFoundation.framework in Frameworks */, + 4AD6442630A52E0104FE44D7 /* OpenGL.framework in Frameworks */, + 685B4AD90CD939916E816111 /* libSDL2main.a in Frameworks */, + 7CC725510C3049A02F9D2DF7 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 4ADA31FF6F7A5AB540AB2A7C /* testnative */ = { + isa = PBXGroup; + children = ( + 67E37B81581E57B94BB41EB3 /* test */, + 7BC83D9325F529F07B133ACA /* Frameworks */, + 1A9A2CC746EF074819147013 /* Products */, + 0F6539B53F4A4F2651E470AF /* Projects */, + ); + name = "testnative"; + sourceTree = ""; + }; + 67E37B81581E57B94BB41EB3 /* test */ = { + isa = PBXGroup; + children = ( + 09311D5367FC66771E7318D5 /* testnative.c */, + 2933635A47D86E8509A140D4 /* testnative.h */, + 58C035895DB74E9E16235E30 /* testnativecocoa.m */, + ); + name = "test"; + sourceTree = ""; + }; + 7BC83D9325F529F07B133ACA /* Frameworks */ = { + isa = PBXGroup; + children = ( + 398B5D33413B2EA22832188D /* AudioToolbox.framework */, + 65EF5B09498E4845494156E5 /* AudioUnit.framework */, + 61ED3686206E555C44447010 /* Cocoa.framework */, + 5A2145ED01C1668742F17812 /* CoreAudio.framework */, + 00ED617A1D6227434FE4036B /* IOKit.framework */, + 146A6DCA7E40436331FB6839 /* Carbon.framework */, + 6E7629D50C845B0E2DF27603 /* ForceFeedback.framework */, + 3D8D0094770E755A149D738A /* CoreFoundation.framework */, + 7061781356DF74BA7B237006 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 1A9A2CC746EF074819147013 /* Products */ = { + isa = PBXGroup; + children = ( + 0D926DF4640E0E9F783911A8 /* testnative */, + ); + name = "Products"; + sourceTree = ""; + }; + 0F6539B53F4A4F2651E470AF /* Projects */ = { + isa = PBXGroup; + children = ( + 7ED026D100095D0D18BD4051 /* SDL2main.xcodeproj */, + 2950670A4677313F2FF316E4 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 725A2D5E32C078CE504C3C61 /* Products */ = { + isa = PBXGroup; + children = ( + 40DA60C67C1300EF5B1838BA /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 5EE66A6330A730AB30CA3133 /* Products */ = { + isa = PBXGroup; + children = ( + 7DCC0E6E045C707338B77A34 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 42D82EF966E007C60AD159EA /* testnative */ = { + isa = PBXNativeTarget; + buildConfigurationList = 4EF95E4A743605676714614B /* Build configuration list for PBXNativeTarget "testnative" */; + buildPhases = ( + 200B45E75C6636E46DB91829 /* Resources */, + 68E85E5734AC2ED06161420A /* Sources */, + 373900501DE06E5C026B626E /* Frameworks */, + 9607AE3710C85E8F00CD1376 /* Postbuild */, + ); + buildRules = ( + ); + dependencies = ( + 551212EB306B4C5701755CAB /* PBXTargetDependency */, + 20ED52B908931F992E0363EC /* PBXTargetDependency */, + ); + name = "testnative"; + productInstallPath = "$(HOME)/bin"; + productName = "testnative"; + productReference = 0D926DF4640E0E9F783911A8 /* testnative */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testnative" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 4ADA31FF6F7A5AB540AB2A7C /* testnative */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 725A2D5E32C078CE504C3C61 /* Products */; + ProjectRef = 7ED026D100095D0D18BD4051 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 5EE66A6330A730AB30CA3133 /* Products */; + ProjectRef = 2950670A4677313F2FF316E4 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 42D82EF966E007C60AD159EA /* testnative */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 40DA60C67C1300EF5B1838BA /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 2735469863225AF730987CB3 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 7DCC0E6E045C707338B77A34 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 3E3252EC174805026BC969CB /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 200B45E75C6636E46DB91829 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 9607AE3710C85E8F00CD1376 /* Postbuild */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = Postbuild; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "if [ \"${CONFIGURATION}\" = \"Debug Universal\" ]; then\nif [ ! -d \"./Build/Debug\" ]; then mkdir -p \"./Build/Debug\"; fi\ncp \"./../../../../../test/icon.bmp\" \"./Build/Debug/icon.bmp\"\nfi\nif [ \"${CONFIGURATION}\" = \"Debug Native\" ]; then\nif [ ! -d \"./Build/Debug\" ]; then mkdir -p \"./Build/Debug\"; fi\ncp \"./../../../../../test/icon.bmp\" \"./Build/Debug/icon.bmp\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Universal\" ]; then\nif [ ! -d \"./Build/Release\" ]; then mkdir -p \"./Build/Release\"; fi\ncp \"./../../../../../test/icon.bmp\" \"./Build/Release/icon.bmp\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Native\" ]; then\nif [ ! -d \"./Build/Release\" ]; then mkdir -p \"./Build/Release\"; fi\ncp \"./../../../../../test/icon.bmp\" \"./Build/Release/icon.bmp\"\nfi"; + }; +/* End PBXShellScriptBuildPhase section */ +/* Begin PBXSourcesBuildPhase section */ + 68E85E5734AC2ED06161420A /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 5EC212E30AED603F72156F79 /* testnative.c in Sources */, + 54C15326088436A9230D5110 /* testnativecocoa.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 551212EB306B4C5701755CAB /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 01C352BF24C13C2215AB3050 /* PBXContainerItemProxy */; + }; + 20ED52B908931F992E0363EC /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 170A1F2539EA4C7A6C3C69FA /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 5F8D5EDA7589112E1FB214A7 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testnative"; + }; + name = "Debug Universal"; + }; + 64EB32DB64506BDC5F3F42EB /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testnative"; + }; + name = "Debug Native"; + }; + 395F4A027F9D310E1C6D449E /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testnative"; + }; + name = "Release Universal"; + }; + 23BA406F6A802F5313C16D3D /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testnative"; + }; + name = "Release Native"; + }; + 702334BF761E35DC10EE09ED /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 0AF518B073C802B9001B02A9 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 1EF44D5D482E57B747E4508A /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 4C9C187221FC3B8926A8741E /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 4EF95E4A743605676714614B /* Build configuration list for PBXNativeTarget "testnative" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 5F8D5EDA7589112E1FB214A7 /* Debug Universal */, + 64EB32DB64506BDC5F3F42EB /* Debug Native */, + 395F4A027F9D310E1C6D449E /* Release Universal */, + 23BA406F6A802F5313C16D3D /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testnative" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 702334BF761E35DC10EE09ED /* Debug Universal */, + 0AF518B073C802B9001B02A9 /* Debug Native */, + 1EF44D5D482E57B747E4508A /* Release Universal */, + 4C9C187221FC3B8926A8741E /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode3/tests/testoverlay2/testoverlay2.xcodeproj/project.pbxproj b/premake/Xcode/Xcode3/tests/testoverlay2/testoverlay2.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..2520ca2153722 --- /dev/null +++ b/premake/Xcode/Xcode3/tests/testoverlay2/testoverlay2.xcodeproj/project.pbxproj @@ -0,0 +1,474 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 49E519755DE056E56EEE7984 /* testoverlay2.c in Sources */ = {isa = PBXBuildFile; fileRef = 0D8A73571318159858096092 /* testoverlay2.c */; }; + 3AF279FE14CA692708046DB4 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0378471E362972885D2A2BEA /* AudioToolbox.framework */; }; + 301212F75420212E092E3175 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 03DE051C016D34B83FB85C77 /* AudioUnit.framework */; }; + 08870BD6311A585A20D46880 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2F94243942F0572202694515 /* Cocoa.framework */; }; + 65A87AC11CBF631B28F2402E /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4BD52FFE58E2070F14E14B19 /* CoreAudio.framework */; }; + 43E104313E9F5B9A03BE4E12 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1B3C31575AA200182BE02D09 /* IOKit.framework */; }; + 159042C076D351EF319E360C /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 35644D2D583D110D1543751C /* Carbon.framework */; }; + 672A1AC7378321517A336148 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 790A115D0D90768E17FB642F /* ForceFeedback.framework */; }; + 21024A424BBA385B68E674EE /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6BD11EC345EF7D0A2F052B0D /* CoreFoundation.framework */; }; + 069120D46A0643D372906BDA /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4E2F27481BE5130F71C969D4 /* OpenGL.framework */; }; + 39E37CE74D215AD0399B0986 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7AE62577644D2CA731DD52B6 /* libSDL2main.a */; }; + 2C2B5AD223BC180527FD596D /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 367154F61CFE7413423C7547 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 6B4B1C6C7B66128C34A969B2 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 12EB05A3126210B44E43311F /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 58DC62993160374E09FF7AD6; + remoteInfo = "libSDL2main.a"; + }; + 5D2B6AD811B1074B5D53106B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 12EB05A3126210B44E43311F /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 0E7126A94A11494963D3548B; + remoteInfo = "libSDL2main.a"; + }; + 520B0310111D0A7E6B396B34 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 3E0626DF04355843419935DA /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 07D004B11E733F1F0EA93105; + remoteInfo = "libSDL2.a"; + }; + 28A92DF74FF77AC27A840D8C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 3E0626DF04355843419935DA /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 58C10ED14175754444033E0E; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 0D8A73571318159858096092 /* testoverlay2.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testoverlay2.c"; path = "../../../../../test/testoverlay2.c"; sourceTree = ""; }; + 0378471E362972885D2A2BEA /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 03DE051C016D34B83FB85C77 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 2F94243942F0572202694515 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 4BD52FFE58E2070F14E14B19 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 1B3C31575AA200182BE02D09 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 35644D2D583D110D1543751C /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 790A115D0D90768E17FB642F /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 6BD11EC345EF7D0A2F052B0D /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 4E2F27481BE5130F71C969D4 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 2F71516B7E4D05B61F113853 /* testoverlay2 */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testoverlay2"; path = "testoverlay2"; sourceTree = BUILT_PRODUCTS_DIR; }; + 12EB05A3126210B44E43311F /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 3E0626DF04355843419935DA /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 4D66654200E36E93193B06AD /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 3AF279FE14CA692708046DB4 /* AudioToolbox.framework in Frameworks */, + 301212F75420212E092E3175 /* AudioUnit.framework in Frameworks */, + 08870BD6311A585A20D46880 /* Cocoa.framework in Frameworks */, + 65A87AC11CBF631B28F2402E /* CoreAudio.framework in Frameworks */, + 43E104313E9F5B9A03BE4E12 /* IOKit.framework in Frameworks */, + 159042C076D351EF319E360C /* Carbon.framework in Frameworks */, + 672A1AC7378321517A336148 /* ForceFeedback.framework in Frameworks */, + 21024A424BBA385B68E674EE /* CoreFoundation.framework in Frameworks */, + 069120D46A0643D372906BDA /* OpenGL.framework in Frameworks */, + 39E37CE74D215AD0399B0986 /* libSDL2main.a in Frameworks */, + 2C2B5AD223BC180527FD596D /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 431B349B3CD57B512B55626B /* testoverlay2 */ = { + isa = PBXGroup; + children = ( + 196E118E01A7168F45B26233 /* test */, + 49964D4123AA757026994687 /* Frameworks */, + 6E417D940C1955933EA97A99 /* Products */, + 59456A9848CC619652D66D1B /* Projects */, + ); + name = "testoverlay2"; + sourceTree = ""; + }; + 196E118E01A7168F45B26233 /* test */ = { + isa = PBXGroup; + children = ( + 0D8A73571318159858096092 /* testoverlay2.c */, + ); + name = "test"; + sourceTree = ""; + }; + 49964D4123AA757026994687 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 0378471E362972885D2A2BEA /* AudioToolbox.framework */, + 03DE051C016D34B83FB85C77 /* AudioUnit.framework */, + 2F94243942F0572202694515 /* Cocoa.framework */, + 4BD52FFE58E2070F14E14B19 /* CoreAudio.framework */, + 1B3C31575AA200182BE02D09 /* IOKit.framework */, + 35644D2D583D110D1543751C /* Carbon.framework */, + 790A115D0D90768E17FB642F /* ForceFeedback.framework */, + 6BD11EC345EF7D0A2F052B0D /* CoreFoundation.framework */, + 4E2F27481BE5130F71C969D4 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 6E417D940C1955933EA97A99 /* Products */ = { + isa = PBXGroup; + children = ( + 2F71516B7E4D05B61F113853 /* testoverlay2 */, + ); + name = "Products"; + sourceTree = ""; + }; + 59456A9848CC619652D66D1B /* Projects */ = { + isa = PBXGroup; + children = ( + 12EB05A3126210B44E43311F /* SDL2main.xcodeproj */, + 3E0626DF04355843419935DA /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 27A82C4845D94C731EAA32DF /* Products */ = { + isa = PBXGroup; + children = ( + 7AE62577644D2CA731DD52B6 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 140C521F0754327726FC16E7 /* Products */ = { + isa = PBXGroup; + children = ( + 367154F61CFE7413423C7547 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 56516C2245453CCF63D7796B /* testoverlay2 */ = { + isa = PBXNativeTarget; + buildConfigurationList = 326F1CE535A62CA70B1403BC /* Build configuration list for PBXNativeTarget "testoverlay2" */; + buildPhases = ( + 37E2704B7E3C3E29090C12F2 /* Resources */, + 6C265DE42EE77B8F6DD776A5 /* Sources */, + 4D66654200E36E93193B06AD /* Frameworks */, + 9607AE3710C85E8F00CD1376 /* Postbuild */, + ); + buildRules = ( + ); + dependencies = ( + 19F8017F4C525C89570D3D3B /* PBXTargetDependency */, + 1F5743CD69894FA41CD6632D /* PBXTargetDependency */, + ); + name = "testoverlay2"; + productInstallPath = "$(HOME)/bin"; + productName = "testoverlay2"; + productReference = 2F71516B7E4D05B61F113853 /* testoverlay2 */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testoverlay2" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 431B349B3CD57B512B55626B /* testoverlay2 */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 27A82C4845D94C731EAA32DF /* Products */; + ProjectRef = 12EB05A3126210B44E43311F /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 140C521F0754327726FC16E7 /* Products */; + ProjectRef = 3E0626DF04355843419935DA /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 56516C2245453CCF63D7796B /* testoverlay2 */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 7AE62577644D2CA731DD52B6 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 6B4B1C6C7B66128C34A969B2 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 367154F61CFE7413423C7547 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 520B0310111D0A7E6B396B34 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 37E2704B7E3C3E29090C12F2 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 9607AE3710C85E8F00CD1376 /* Postbuild */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = Postbuild; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "if [ \"${CONFIGURATION}\" = \"Debug Universal\" ]; then\nif [ ! -d \"./Build/Debug\" ]; then mkdir -p \"./Build/Debug\"; fi\ncp \"./../../../../../test/moose.dat\" \"./Build/Debug/moose.dat\"\nfi\nif [ \"${CONFIGURATION}\" = \"Debug Native\" ]; then\nif [ ! -d \"./Build/Debug\" ]; then mkdir -p \"./Build/Debug\"; fi\ncp \"./../../../../../test/moose.dat\" \"./Build/Debug/moose.dat\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Universal\" ]; then\nif [ ! -d \"./Build/Release\" ]; then mkdir -p \"./Build/Release\"; fi\ncp \"./../../../../../test/moose.dat\" \"./Build/Release/moose.dat\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Native\" ]; then\nif [ ! -d \"./Build/Release\" ]; then mkdir -p \"./Build/Release\"; fi\ncp \"./../../../../../test/moose.dat\" \"./Build/Release/moose.dat\"\nfi"; + }; +/* End PBXShellScriptBuildPhase section */ +/* Begin PBXSourcesBuildPhase section */ + 6C265DE42EE77B8F6DD776A5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 49E519755DE056E56EEE7984 /* testoverlay2.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 19F8017F4C525C89570D3D3B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 5D2B6AD811B1074B5D53106B /* PBXContainerItemProxy */; + }; + 1F5743CD69894FA41CD6632D /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 28A92DF74FF77AC27A840D8C /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 78C214CC065610BF6ED17E71 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testoverlay2"; + }; + name = "Debug Universal"; + }; + 766B19EC5A9A52576B3A414F /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testoverlay2"; + }; + name = "Debug Native"; + }; + 07E239E42D1A4589546C3358 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testoverlay2"; + }; + name = "Release Universal"; + }; + 4FC5127147DC54F11B510568 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testoverlay2"; + }; + name = "Release Native"; + }; + 354202B87F4938F833BE2648 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 52FA351172CB7BC54C0969B5 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 15C35A586D7D4DEB049F216E /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 226A5F246075325C433E30D3 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 326F1CE535A62CA70B1403BC /* Build configuration list for PBXNativeTarget "testoverlay2" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 78C214CC065610BF6ED17E71 /* Debug Universal */, + 766B19EC5A9A52576B3A414F /* Debug Native */, + 07E239E42D1A4589546C3358 /* Release Universal */, + 4FC5127147DC54F11B510568 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testoverlay2" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 354202B87F4938F833BE2648 /* Debug Universal */, + 52FA351172CB7BC54C0969B5 /* Debug Native */, + 15C35A586D7D4DEB049F216E /* Release Universal */, + 226A5F246075325C433E30D3 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode3/tests/testplatform/testplatform.xcodeproj/project.pbxproj b/premake/Xcode/Xcode3/tests/testplatform/testplatform.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..35acd2777de87 --- /dev/null +++ b/premake/Xcode/Xcode3/tests/testplatform/testplatform.xcodeproj/project.pbxproj @@ -0,0 +1,457 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 37ED5BC504E9138129A27A3D /* testplatform.c in Sources */ = {isa = PBXBuildFile; fileRef = 081E1F192C0330BC475D4296 /* testplatform.c */; }; + 7BD44B516E507E2A216E514C /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5336352002CA287D43566B0A /* AudioToolbox.framework */; }; + 2F53050455B1110643DF18D2 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004A2F7402DC5FDF324B0D91 /* AudioUnit.framework */; }; + 25233B8A6C6563AE4D186991 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 119B173F39870AD61387282E /* Cocoa.framework */; }; + 71AD2E5619C356AC5894190D /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3A3C48C84BAD7AE56C5421A3 /* CoreAudio.framework */; }; + 32FB005309622C0464855F76 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 57172F88221944384441125B /* IOKit.framework */; }; + 64A25E472BF24B0420D676FB /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 613107F83A4C04F571BD6BD6 /* Carbon.framework */; }; + 57D71FDC65420FE72D161AD7 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 68A26D321038787409204CF8 /* ForceFeedback.framework */; }; + 268E67BC0E4F0C5E1C3C31B3 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26720966305148371DC9346E /* CoreFoundation.framework */; }; + 278F363354F52DDD14165A9B /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 754B3F294F913CA4334D0ECE /* OpenGL.framework */; }; + 31BD7B65287525F65B00617D /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 09EB3E7646B130C359E00123 /* libSDL2main.a */; }; + 4A2D66E7747B49FA4A2504C2 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2FF52E8C6A59365464646C62 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 39566DEA46E31EA517AB0D81 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 29E63F1E737875EB4572421F /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 58DC62993160374E09FF7AD6; + remoteInfo = "libSDL2main.a"; + }; + 4C79492F6C66532128085612 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 29E63F1E737875EB4572421F /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 0E7126A94A11494963D3548B; + remoteInfo = "libSDL2main.a"; + }; + 2DA534AB5941742966457012 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 5BFF761378114C8623E12D8B /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 07D004B11E733F1F0EA93105; + remoteInfo = "libSDL2.a"; + }; + 464F1F1C082A20D911C27747 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 5BFF761378114C8623E12D8B /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 58C10ED14175754444033E0E; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 081E1F192C0330BC475D4296 /* testplatform.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testplatform.c"; path = "../../../../../test/testplatform.c"; sourceTree = ""; }; + 5336352002CA287D43566B0A /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 004A2F7402DC5FDF324B0D91 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 119B173F39870AD61387282E /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 3A3C48C84BAD7AE56C5421A3 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 57172F88221944384441125B /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 613107F83A4C04F571BD6BD6 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 68A26D321038787409204CF8 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 26720966305148371DC9346E /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 754B3F294F913CA4334D0ECE /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 097A37A016343C8E1B394B02 /* testplatform */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testplatform"; path = "testplatform"; sourceTree = BUILT_PRODUCTS_DIR; }; + 29E63F1E737875EB4572421F /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 5BFF761378114C8623E12D8B /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 3FDC37A9640D3975530C4F24 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 7BD44B516E507E2A216E514C /* AudioToolbox.framework in Frameworks */, + 2F53050455B1110643DF18D2 /* AudioUnit.framework in Frameworks */, + 25233B8A6C6563AE4D186991 /* Cocoa.framework in Frameworks */, + 71AD2E5619C356AC5894190D /* CoreAudio.framework in Frameworks */, + 32FB005309622C0464855F76 /* IOKit.framework in Frameworks */, + 64A25E472BF24B0420D676FB /* Carbon.framework in Frameworks */, + 57D71FDC65420FE72D161AD7 /* ForceFeedback.framework in Frameworks */, + 268E67BC0E4F0C5E1C3C31B3 /* CoreFoundation.framework in Frameworks */, + 278F363354F52DDD14165A9B /* OpenGL.framework in Frameworks */, + 31BD7B65287525F65B00617D /* libSDL2main.a in Frameworks */, + 4A2D66E7747B49FA4A2504C2 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 21624A885D57213356FA6A34 /* testplatform */ = { + isa = PBXGroup; + children = ( + 0E11168C6A10510F54A558DE /* test */, + 3AFA0F7B7A16543372D53159 /* Frameworks */, + 784B34771085434D2EF64D40 /* Products */, + 2C545EEB2A1562BB19053D80 /* Projects */, + ); + name = "testplatform"; + sourceTree = ""; + }; + 0E11168C6A10510F54A558DE /* test */ = { + isa = PBXGroup; + children = ( + 081E1F192C0330BC475D4296 /* testplatform.c */, + ); + name = "test"; + sourceTree = ""; + }; + 3AFA0F7B7A16543372D53159 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 5336352002CA287D43566B0A /* AudioToolbox.framework */, + 004A2F7402DC5FDF324B0D91 /* AudioUnit.framework */, + 119B173F39870AD61387282E /* Cocoa.framework */, + 3A3C48C84BAD7AE56C5421A3 /* CoreAudio.framework */, + 57172F88221944384441125B /* IOKit.framework */, + 613107F83A4C04F571BD6BD6 /* Carbon.framework */, + 68A26D321038787409204CF8 /* ForceFeedback.framework */, + 26720966305148371DC9346E /* CoreFoundation.framework */, + 754B3F294F913CA4334D0ECE /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 784B34771085434D2EF64D40 /* Products */ = { + isa = PBXGroup; + children = ( + 097A37A016343C8E1B394B02 /* testplatform */, + ); + name = "Products"; + sourceTree = ""; + }; + 2C545EEB2A1562BB19053D80 /* Projects */ = { + isa = PBXGroup; + children = ( + 29E63F1E737875EB4572421F /* SDL2main.xcodeproj */, + 5BFF761378114C8623E12D8B /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 156209E929DC61A874763026 /* Products */ = { + isa = PBXGroup; + children = ( + 09EB3E7646B130C359E00123 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 34272D02656233906FDC6D94 /* Products */ = { + isa = PBXGroup; + children = ( + 2FF52E8C6A59365464646C62 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 236D5B5F4B2838B77F863862 /* testplatform */ = { + isa = PBXNativeTarget; + buildConfigurationList = 1C1806252870035C492C7EF1 /* Build configuration list for PBXNativeTarget "testplatform" */; + buildPhases = ( + 18FD11B714CB5486678A5437 /* Resources */, + 7E3414ED775E6BC7778136D4 /* Sources */, + 3FDC37A9640D3975530C4F24 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 5ED23A6F02845C401CCB5568 /* PBXTargetDependency */, + 72EB340F4E1D121A17630010 /* PBXTargetDependency */, + ); + name = "testplatform"; + productInstallPath = "$(HOME)/bin"; + productName = "testplatform"; + productReference = 097A37A016343C8E1B394B02 /* testplatform */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testplatform" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 21624A885D57213356FA6A34 /* testplatform */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 156209E929DC61A874763026 /* Products */; + ProjectRef = 29E63F1E737875EB4572421F /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 34272D02656233906FDC6D94 /* Products */; + ProjectRef = 5BFF761378114C8623E12D8B /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 236D5B5F4B2838B77F863862 /* testplatform */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 09EB3E7646B130C359E00123 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 39566DEA46E31EA517AB0D81 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 2FF52E8C6A59365464646C62 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 2DA534AB5941742966457012 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 18FD11B714CB5486678A5437 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 7E3414ED775E6BC7778136D4 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 37ED5BC504E9138129A27A3D /* testplatform.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 5ED23A6F02845C401CCB5568 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 4C79492F6C66532128085612 /* PBXContainerItemProxy */; + }; + 72EB340F4E1D121A17630010 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 464F1F1C082A20D911C27747 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 26C36FEF459F70D537F476D9 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testplatform"; + }; + name = "Debug Universal"; + }; + 62764F0107E56C5B56C2701A /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testplatform"; + }; + name = "Debug Native"; + }; + 520762EA10B3650F462F6674 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testplatform"; + }; + name = "Release Universal"; + }; + 32D97D9F520A10CF30B40679 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testplatform"; + }; + name = "Release Native"; + }; + 59C346A66ECA43064A79768F /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 5C672D0543DA541D76814AC5 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 62F7512358B56DD550D00D18 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 1FD822281EE77BDC642D710F /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 1C1806252870035C492C7EF1 /* Build configuration list for PBXNativeTarget "testplatform" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 26C36FEF459F70D537F476D9 /* Debug Universal */, + 62764F0107E56C5B56C2701A /* Debug Native */, + 520762EA10B3650F462F6674 /* Release Universal */, + 32D97D9F520A10CF30B40679 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testplatform" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 59C346A66ECA43064A79768F /* Debug Universal */, + 5C672D0543DA541D76814AC5 /* Debug Native */, + 62F7512358B56DD550D00D18 /* Release Universal */, + 1FD822281EE77BDC642D710F /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode3/tests/testpower/testpower.xcodeproj/project.pbxproj b/premake/Xcode/Xcode3/tests/testpower/testpower.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..2f7af13b884c5 --- /dev/null +++ b/premake/Xcode/Xcode3/tests/testpower/testpower.xcodeproj/project.pbxproj @@ -0,0 +1,457 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 3EF228BD150B22660E004E05 /* testpower.c in Sources */ = {isa = PBXBuildFile; fileRef = 6B5938730D5F78115A727FBA /* testpower.c */; }; + 7ACC73767C0349ED131C3DFD /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 717C33AB559824204B1A2C1A /* AudioToolbox.framework */; }; + 1B3A025925754C517B1C7C7B /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 414A18503CBE7CE95FFE5673 /* AudioUnit.framework */; }; + 1A7F0AAC43C225B0460C4376 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A9811AB2E94173E08F92884 /* Cocoa.framework */; }; + 40F315154D9B1C9254A4622E /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 368E29A65CE578046F5A1B90 /* CoreAudio.framework */; }; + 739604C93F294BEF74C76BDD /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5D5C515B325F178D5B036253 /* IOKit.framework */; }; + 28624182483D455422B25673 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 368F0BF311301C4C6A6C0874 /* Carbon.framework */; }; + 26C63B8342C71EA76DDC2D47 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3FF662D46CEE1B604D0C5267 /* ForceFeedback.framework */; }; + 05C1482E62BD221E6923175B /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2F2074B609873ADE77FE6ADF /* CoreFoundation.framework */; }; + 01E77B2608EC66BD27286309 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 11DF593212465EA418476A0D /* OpenGL.framework */; }; + 5EDD2A0E7D8468627FB83BBD /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B86764A354F08580A6C5454 /* libSDL2main.a */; }; + 320051A96DED11B90B856E40 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 182809E0557B364038186E61 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 13A073B65ADF0CF531CF4A73 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 11544BA13AFD75E077B1078E /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 58DC62993160374E09FF7AD6; + remoteInfo = "libSDL2main.a"; + }; + 46B523493CBC0479601E63FC /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 11544BA13AFD75E077B1078E /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 0E7126A94A11494963D3548B; + remoteInfo = "libSDL2main.a"; + }; + 43F668F002E543FF40C758BD /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 35B3225F3E157E356F1B0C43 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 07D004B11E733F1F0EA93105; + remoteInfo = "libSDL2.a"; + }; + 6E8B194676DD2F48313A6A06 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 35B3225F3E157E356F1B0C43 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 58C10ED14175754444033E0E; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 6B5938730D5F78115A727FBA /* testpower.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testpower.c"; path = "../../../../../test/testpower.c"; sourceTree = ""; }; + 717C33AB559824204B1A2C1A /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 414A18503CBE7CE95FFE5673 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 0A9811AB2E94173E08F92884 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 368E29A65CE578046F5A1B90 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 5D5C515B325F178D5B036253 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 368F0BF311301C4C6A6C0874 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 3FF662D46CEE1B604D0C5267 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 2F2074B609873ADE77FE6ADF /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 11DF593212465EA418476A0D /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 569C4CDE26A55BBC46423C94 /* testpower */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testpower"; path = "testpower"; sourceTree = BUILT_PRODUCTS_DIR; }; + 11544BA13AFD75E077B1078E /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 35B3225F3E157E356F1B0C43 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 64CC1CB9570652B461031A69 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 7ACC73767C0349ED131C3DFD /* AudioToolbox.framework in Frameworks */, + 1B3A025925754C517B1C7C7B /* AudioUnit.framework in Frameworks */, + 1A7F0AAC43C225B0460C4376 /* Cocoa.framework in Frameworks */, + 40F315154D9B1C9254A4622E /* CoreAudio.framework in Frameworks */, + 739604C93F294BEF74C76BDD /* IOKit.framework in Frameworks */, + 28624182483D455422B25673 /* Carbon.framework in Frameworks */, + 26C63B8342C71EA76DDC2D47 /* ForceFeedback.framework in Frameworks */, + 05C1482E62BD221E6923175B /* CoreFoundation.framework in Frameworks */, + 01E77B2608EC66BD27286309 /* OpenGL.framework in Frameworks */, + 5EDD2A0E7D8468627FB83BBD /* libSDL2main.a in Frameworks */, + 320051A96DED11B90B856E40 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 2D8676AB61876C230226250F /* testpower */ = { + isa = PBXGroup; + children = ( + 369D04672F153C0F3AEF5637 /* test */, + 55CD1192485C19AA6BB47AB8 /* Frameworks */, + 03250FB568812580294376A1 /* Products */, + 6A0B144B4FCE60FF11E505DF /* Projects */, + ); + name = "testpower"; + sourceTree = ""; + }; + 369D04672F153C0F3AEF5637 /* test */ = { + isa = PBXGroup; + children = ( + 6B5938730D5F78115A727FBA /* testpower.c */, + ); + name = "test"; + sourceTree = ""; + }; + 55CD1192485C19AA6BB47AB8 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 717C33AB559824204B1A2C1A /* AudioToolbox.framework */, + 414A18503CBE7CE95FFE5673 /* AudioUnit.framework */, + 0A9811AB2E94173E08F92884 /* Cocoa.framework */, + 368E29A65CE578046F5A1B90 /* CoreAudio.framework */, + 5D5C515B325F178D5B036253 /* IOKit.framework */, + 368F0BF311301C4C6A6C0874 /* Carbon.framework */, + 3FF662D46CEE1B604D0C5267 /* ForceFeedback.framework */, + 2F2074B609873ADE77FE6ADF /* CoreFoundation.framework */, + 11DF593212465EA418476A0D /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 03250FB568812580294376A1 /* Products */ = { + isa = PBXGroup; + children = ( + 569C4CDE26A55BBC46423C94 /* testpower */, + ); + name = "Products"; + sourceTree = ""; + }; + 6A0B144B4FCE60FF11E505DF /* Projects */ = { + isa = PBXGroup; + children = ( + 11544BA13AFD75E077B1078E /* SDL2main.xcodeproj */, + 35B3225F3E157E356F1B0C43 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 3D0C5EDC63F174F9414E7F06 /* Products */ = { + isa = PBXGroup; + children = ( + 3B86764A354F08580A6C5454 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 48327DFD06661A16561A78F3 /* Products */ = { + isa = PBXGroup; + children = ( + 182809E0557B364038186E61 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 554817E143653BEB41F80C48 /* testpower */ = { + isa = PBXNativeTarget; + buildConfigurationList = 2FD54A0672920E44366F3F39 /* Build configuration list for PBXNativeTarget "testpower" */; + buildPhases = ( + 5FA347491FB2087951E0619C /* Resources */, + 53C604B203630DF7135B417C /* Sources */, + 64CC1CB9570652B461031A69 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 3AC84E14125C5A2610A61EE6 /* PBXTargetDependency */, + 6086076E558A67E515024F25 /* PBXTargetDependency */, + ); + name = "testpower"; + productInstallPath = "$(HOME)/bin"; + productName = "testpower"; + productReference = 569C4CDE26A55BBC46423C94 /* testpower */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testpower" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 2D8676AB61876C230226250F /* testpower */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 3D0C5EDC63F174F9414E7F06 /* Products */; + ProjectRef = 11544BA13AFD75E077B1078E /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 48327DFD06661A16561A78F3 /* Products */; + ProjectRef = 35B3225F3E157E356F1B0C43 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 554817E143653BEB41F80C48 /* testpower */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 3B86764A354F08580A6C5454 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 13A073B65ADF0CF531CF4A73 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 182809E0557B364038186E61 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 43F668F002E543FF40C758BD /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 5FA347491FB2087951E0619C /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 53C604B203630DF7135B417C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 3EF228BD150B22660E004E05 /* testpower.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 3AC84E14125C5A2610A61EE6 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 46B523493CBC0479601E63FC /* PBXContainerItemProxy */; + }; + 6086076E558A67E515024F25 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 6E8B194676DD2F48313A6A06 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 797574996A3A4001332E3169 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testpower"; + }; + name = "Debug Universal"; + }; + 26B813830E18591328B601E6 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testpower"; + }; + name = "Debug Native"; + }; + 7F2F746B47EE618B13AA3A0D /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testpower"; + }; + name = "Release Universal"; + }; + 18336CF16D6C067E59B857E4 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testpower"; + }; + name = "Release Native"; + }; + 0E3339071F5D309E09431580 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 314C0D4F4A054F2116242D3B /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 32557BD64874521F74E65003 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 40201D0E34EC167717D67C39 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 2FD54A0672920E44366F3F39 /* Build configuration list for PBXNativeTarget "testpower" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 797574996A3A4001332E3169 /* Debug Universal */, + 26B813830E18591328B601E6 /* Debug Native */, + 7F2F746B47EE618B13AA3A0D /* Release Universal */, + 18336CF16D6C067E59B857E4 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testpower" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0E3339071F5D309E09431580 /* Debug Universal */, + 314C0D4F4A054F2116242D3B /* Debug Native */, + 32557BD64874521F74E65003 /* Release Universal */, + 40201D0E34EC167717D67C39 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode3/tests/testrelative/testrelative.xcodeproj/project.pbxproj b/premake/Xcode/Xcode3/tests/testrelative/testrelative.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..f6c82957cf92e --- /dev/null +++ b/premake/Xcode/Xcode3/tests/testrelative/testrelative.xcodeproj/project.pbxproj @@ -0,0 +1,500 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 4BE141385FC25AAF52EF5D0E /* testrelative.c in Sources */ = {isa = PBXBuildFile; fileRef = 23C84D8E25D43E932E076CE5 /* testrelative.c */; }; + 52A902EA6BB0203F1A3D5A56 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B6B7821495513D336363342 /* AudioToolbox.framework */; }; + 4CB4614718715F5764207380 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 04C9563C37A3433E31E617E9 /* AudioUnit.framework */; }; + 0BCA393B6DD27CA7621B653D /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5FCE029470145A6965136097 /* Cocoa.framework */; }; + 116733C576FC23CD10F77A40 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 11D0109F422B16BB5C8F3FA9 /* CoreAudio.framework */; }; + 614C738344D3225E099E0B63 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0E377BED367C3032325C3776 /* IOKit.framework */; }; + 29D710204F5761C245564391 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 272E55E60D2E5F926C7175DF /* Carbon.framework */; }; + 6CC66AAE6E635E5065CA604A /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 193F338F7815345753483993 /* ForceFeedback.framework */; }; + 7B44599D5A7F788310FF7545 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 20905BFD77D424365A1B22FE /* CoreFoundation.framework */; }; + 39890A111ED55C9B4DED0CEA /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 12F0584071CD08201E2D59CB /* OpenGL.framework */; }; + 3E33469041386CE404C87065 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2455670C53241E4003D7355C /* libSDL2main.a */; }; + 1EC25F1D781A04BF3E5003AA /* libSDL2test.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0FFF657F7BDE594C2E2B2045 /* libSDL2test.a */; }; + 0EAD05E06BDB113B3EE6263D /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 348A77A855704B1A331123A6 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 11BD4F4211CD67F065100B16 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 756361F4075435AF77BE782C /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 58DC62993160374E09FF7AD6; + remoteInfo = "libSDL2main.a"; + }; + 6B42469B10CE720753732810 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 756361F4075435AF77BE782C /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 0E7126A94A11494963D3548B; + remoteInfo = "libSDL2main.a"; + }; + 1CDE37AB4F14469920973612 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 15F67762478644B17EA51421 /* SDL2test.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 1E1175156F97314C291323CB; + remoteInfo = "libSDL2test.a"; + }; + 015A59C06021496B36B21217 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 15F67762478644B17EA51421 /* SDL2test.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7CD70F5D43DA554D66287CFC; + remoteInfo = "libSDL2test.a"; + }; + 5D361A0D4E967F8856544BDE /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 4DFC775262036B1004707A92 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 07D004B11E733F1F0EA93105; + remoteInfo = "libSDL2.a"; + }; + 65E80CEB298A4AE45CCF57AE /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 4DFC775262036B1004707A92 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 58C10ED14175754444033E0E; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 23C84D8E25D43E932E076CE5 /* testrelative.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testrelative.c"; path = "../../../../../test/testrelative.c"; sourceTree = ""; }; + 3B6B7821495513D336363342 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 04C9563C37A3433E31E617E9 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 5FCE029470145A6965136097 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 11D0109F422B16BB5C8F3FA9 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 0E377BED367C3032325C3776 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 272E55E60D2E5F926C7175DF /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 193F338F7815345753483993 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 20905BFD77D424365A1B22FE /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 12F0584071CD08201E2D59CB /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 2753719C67214549698B471C /* testrelative */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testrelative"; path = "testrelative"; sourceTree = BUILT_PRODUCTS_DIR; }; + 756361F4075435AF77BE782C /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 15F67762478644B17EA51421 /* SDL2test.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2test.xcodeproj"; path = "../../SDL2test/SDL2test.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 4DFC775262036B1004707A92 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 2A6975C573F642F315653B7E /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 52A902EA6BB0203F1A3D5A56 /* AudioToolbox.framework in Frameworks */, + 4CB4614718715F5764207380 /* AudioUnit.framework in Frameworks */, + 0BCA393B6DD27CA7621B653D /* Cocoa.framework in Frameworks */, + 116733C576FC23CD10F77A40 /* CoreAudio.framework in Frameworks */, + 614C738344D3225E099E0B63 /* IOKit.framework in Frameworks */, + 29D710204F5761C245564391 /* Carbon.framework in Frameworks */, + 6CC66AAE6E635E5065CA604A /* ForceFeedback.framework in Frameworks */, + 7B44599D5A7F788310FF7545 /* CoreFoundation.framework in Frameworks */, + 39890A111ED55C9B4DED0CEA /* OpenGL.framework in Frameworks */, + 3E33469041386CE404C87065 /* libSDL2main.a in Frameworks */, + 1EC25F1D781A04BF3E5003AA /* libSDL2test.a in Frameworks */, + 0EAD05E06BDB113B3EE6263D /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 418A78AC16316F1E2E922AFA /* testrelative */ = { + isa = PBXGroup; + children = ( + 425644E27C276E66160A0B59 /* test */, + 71881C856A16603C215D1E2F /* Frameworks */, + 7D165D173F4C45A307CB5115 /* Products */, + 4B2245BE5B1C1B097ED42E2A /* Projects */, + ); + name = "testrelative"; + sourceTree = ""; + }; + 425644E27C276E66160A0B59 /* test */ = { + isa = PBXGroup; + children = ( + 23C84D8E25D43E932E076CE5 /* testrelative.c */, + ); + name = "test"; + sourceTree = ""; + }; + 71881C856A16603C215D1E2F /* Frameworks */ = { + isa = PBXGroup; + children = ( + 3B6B7821495513D336363342 /* AudioToolbox.framework */, + 04C9563C37A3433E31E617E9 /* AudioUnit.framework */, + 5FCE029470145A6965136097 /* Cocoa.framework */, + 11D0109F422B16BB5C8F3FA9 /* CoreAudio.framework */, + 0E377BED367C3032325C3776 /* IOKit.framework */, + 272E55E60D2E5F926C7175DF /* Carbon.framework */, + 193F338F7815345753483993 /* ForceFeedback.framework */, + 20905BFD77D424365A1B22FE /* CoreFoundation.framework */, + 12F0584071CD08201E2D59CB /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 7D165D173F4C45A307CB5115 /* Products */ = { + isa = PBXGroup; + children = ( + 2753719C67214549698B471C /* testrelative */, + ); + name = "Products"; + sourceTree = ""; + }; + 4B2245BE5B1C1B097ED42E2A /* Projects */ = { + isa = PBXGroup; + children = ( + 756361F4075435AF77BE782C /* SDL2main.xcodeproj */, + 15F67762478644B17EA51421 /* SDL2test.xcodeproj */, + 4DFC775262036B1004707A92 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 7AEC51C57CE46F7440330A7C /* Products */ = { + isa = PBXGroup; + children = ( + 2455670C53241E4003D7355C /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 716124AE421B1CCA387A5D24 /* Products */ = { + isa = PBXGroup; + children = ( + 0FFF657F7BDE594C2E2B2045 /* libSDL2test.a */, + ); + name = Products; + sourceTree = ""; + }; + 6A25268B0AE00DB845FF0AD5 /* Products */ = { + isa = PBXGroup; + children = ( + 348A77A855704B1A331123A6 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 360121FD11CA1DA9461F408E /* testrelative */ = { + isa = PBXNativeTarget; + buildConfigurationList = 7D58432F59731B495B954300 /* Build configuration list for PBXNativeTarget "testrelative" */; + buildPhases = ( + 50A91E8D60B73C660C1F5A01 /* Resources */, + 0AA10F7D1441446002E471C8 /* Sources */, + 2A6975C573F642F315653B7E /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 5E8C5CC51CAF43E108F52C4B /* PBXTargetDependency */, + 29896D0B1118695222B947C9 /* PBXTargetDependency */, + 09825D3C12883E7067BE230B /* PBXTargetDependency */, + ); + name = "testrelative"; + productInstallPath = "$(HOME)/bin"; + productName = "testrelative"; + productReference = 2753719C67214549698B471C /* testrelative */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testrelative" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 418A78AC16316F1E2E922AFA /* testrelative */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 7AEC51C57CE46F7440330A7C /* Products */; + ProjectRef = 756361F4075435AF77BE782C /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 716124AE421B1CCA387A5D24 /* Products */; + ProjectRef = 15F67762478644B17EA51421 /* SDL2test.xcodeproj */; + }, + { + ProductGroup = 6A25268B0AE00DB845FF0AD5 /* Products */; + ProjectRef = 4DFC775262036B1004707A92 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 360121FD11CA1DA9461F408E /* testrelative */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 2455670C53241E4003D7355C /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 11BD4F4211CD67F065100B16 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 0FFF657F7BDE594C2E2B2045 /* libSDL2test.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2test.a"; + remoteRef = 1CDE37AB4F14469920973612 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 348A77A855704B1A331123A6 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 5D361A0D4E967F8856544BDE /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 50A91E8D60B73C660C1F5A01 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 0AA10F7D1441446002E471C8 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 4BE141385FC25AAF52EF5D0E /* testrelative.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 5E8C5CC51CAF43E108F52C4B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 6B42469B10CE720753732810 /* PBXContainerItemProxy */; + }; + 29896D0B1118695222B947C9 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2test.a"; + targetProxy = 015A59C06021496B36B21217 /* PBXContainerItemProxy */; + }; + 09825D3C12883E7067BE230B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 65E80CEB298A4AE45CCF57AE /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 43E930EB48062A1015DE5EB8 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testrelative"; + }; + name = "Debug Universal"; + }; + 54B96EB40D14420F04292960 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testrelative"; + }; + name = "Debug Native"; + }; + 38E3583A7176019D17E4098C /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testrelative"; + }; + name = "Release Universal"; + }; + 66CF339A557E44FD6E796621 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testrelative"; + }; + name = "Release Native"; + }; + 1DDB22D22994569421FB1030 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 1354287A1286355450646B8A /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 73ED61310132107232117A3F /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 0937058C5923313D3E536257 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 7D58432F59731B495B954300 /* Build configuration list for PBXNativeTarget "testrelative" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 43E930EB48062A1015DE5EB8 /* Debug Universal */, + 54B96EB40D14420F04292960 /* Debug Native */, + 38E3583A7176019D17E4098C /* Release Universal */, + 66CF339A557E44FD6E796621 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testrelative" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1DDB22D22994569421FB1030 /* Debug Universal */, + 1354287A1286355450646B8A /* Debug Native */, + 73ED61310132107232117A3F /* Release Universal */, + 0937058C5923313D3E536257 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode3/tests/testrendercopyex/testrendercopyex.xcodeproj/project.pbxproj b/premake/Xcode/Xcode3/tests/testrendercopyex/testrendercopyex.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..0c94bd9cfb66e --- /dev/null +++ b/premake/Xcode/Xcode3/tests/testrendercopyex/testrendercopyex.xcodeproj/project.pbxproj @@ -0,0 +1,517 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 6E8C5D734CF62AC02E2A628C /* testrendercopyex.c in Sources */ = {isa = PBXBuildFile; fileRef = 353209D3375F65A759A91183 /* testrendercopyex.c */; }; + 28D600651FEF07A50B9971EC /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5BD538AC44230FBC1DEB5849 /* AudioToolbox.framework */; }; + 2882256265181F552134768B /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 61C63DC55B95422340FB3584 /* AudioUnit.framework */; }; + 2E902AD445FA5D18136E4E8C /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 29425C772989211E4CB678B6 /* Cocoa.framework */; }; + 02964DEE7A5037066CE97636 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 68BD73FC415D4E7C5A797E28 /* CoreAudio.framework */; }; + 16072B0D0CD72A387EAD37F5 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6DC123D30BFF2A2E36FC7518 /* IOKit.framework */; }; + 6BBA355F1CED1BAC3E1B09B7 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4EF14DDA3B145C9D78C17D09 /* Carbon.framework */; }; + 4FB83D6B68E3167D051134BA /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 527E6D7146EB1F876CB96FD0 /* ForceFeedback.framework */; }; + 099405A406203D7E1D2D7E21 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2A82641D544A5AFE16B84383 /* CoreFoundation.framework */; }; + 5FC7220501E5043418C5420A /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 60BA7B0B10B154D64A20298C /* OpenGL.framework */; }; + 291F6751239E1A4A75DB7DFA /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2CE10C33796F7ED04A7D661F /* libSDL2main.a */; }; + 1CD77D1A3AC57B96363174FD /* libSDL2test.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0E4A36C205D6384A3C18559E /* libSDL2test.a */; }; + 73626470290E735104D21BB4 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 002D3E8461A530CE5D8A1613 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 557A4002043D621175310F7B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1F963BA70DA6400C0A6E4784 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 58DC62993160374E09FF7AD6; + remoteInfo = "libSDL2main.a"; + }; + 0D933B3057FF40D6491C69FF /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1F963BA70DA6400C0A6E4784 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 0E7126A94A11494963D3548B; + remoteInfo = "libSDL2main.a"; + }; + 4DB203F95FB172A15DBE6900 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 326520CF17B318C34CA51272 /* SDL2test.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 1E1175156F97314C291323CB; + remoteInfo = "libSDL2test.a"; + }; + 13B63D4042FB7093495A389B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 326520CF17B318C34CA51272 /* SDL2test.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7CD70F5D43DA554D66287CFC; + remoteInfo = "libSDL2test.a"; + }; + 40837EDF6B281C520A0448EE /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 483C18416E0E7C197F7238B5 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 07D004B11E733F1F0EA93105; + remoteInfo = "libSDL2.a"; + }; + 1D371817285041810DA0112A /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 483C18416E0E7C197F7238B5 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 58C10ED14175754444033E0E; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 353209D3375F65A759A91183 /* testrendercopyex.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testrendercopyex.c"; path = "../../../../../test/testrendercopyex.c"; sourceTree = ""; }; + 5BD538AC44230FBC1DEB5849 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 61C63DC55B95422340FB3584 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 29425C772989211E4CB678B6 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 68BD73FC415D4E7C5A797E28 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 6DC123D30BFF2A2E36FC7518 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 4EF14DDA3B145C9D78C17D09 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 527E6D7146EB1F876CB96FD0 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 2A82641D544A5AFE16B84383 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 60BA7B0B10B154D64A20298C /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 5087525F0A1453AF2F9A6588 /* testrendercopyex */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testrendercopyex"; path = "testrendercopyex"; sourceTree = BUILT_PRODUCTS_DIR; }; + 1F963BA70DA6400C0A6E4784 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 326520CF17B318C34CA51272 /* SDL2test.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2test.xcodeproj"; path = "../../SDL2test/SDL2test.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 483C18416E0E7C197F7238B5 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 3FDD6E742FAE04D07CFB6D74 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 28D600651FEF07A50B9971EC /* AudioToolbox.framework in Frameworks */, + 2882256265181F552134768B /* AudioUnit.framework in Frameworks */, + 2E902AD445FA5D18136E4E8C /* Cocoa.framework in Frameworks */, + 02964DEE7A5037066CE97636 /* CoreAudio.framework in Frameworks */, + 16072B0D0CD72A387EAD37F5 /* IOKit.framework in Frameworks */, + 6BBA355F1CED1BAC3E1B09B7 /* Carbon.framework in Frameworks */, + 4FB83D6B68E3167D051134BA /* ForceFeedback.framework in Frameworks */, + 099405A406203D7E1D2D7E21 /* CoreFoundation.framework in Frameworks */, + 5FC7220501E5043418C5420A /* OpenGL.framework in Frameworks */, + 291F6751239E1A4A75DB7DFA /* libSDL2main.a in Frameworks */, + 1CD77D1A3AC57B96363174FD /* libSDL2test.a in Frameworks */, + 73626470290E735104D21BB4 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 251C69F41B3F726174443202 /* testrendercopyex */ = { + isa = PBXGroup; + children = ( + 61DD08695F8F3DDB05493A14 /* test */, + 66BA50F11059531C60923BFE /* Frameworks */, + 332D5C542BF82FE916053248 /* Products */, + 3722498D7B70133662F40C7A /* Projects */, + ); + name = "testrendercopyex"; + sourceTree = ""; + }; + 61DD08695F8F3DDB05493A14 /* test */ = { + isa = PBXGroup; + children = ( + 353209D3375F65A759A91183 /* testrendercopyex.c */, + ); + name = "test"; + sourceTree = ""; + }; + 66BA50F11059531C60923BFE /* Frameworks */ = { + isa = PBXGroup; + children = ( + 5BD538AC44230FBC1DEB5849 /* AudioToolbox.framework */, + 61C63DC55B95422340FB3584 /* AudioUnit.framework */, + 29425C772989211E4CB678B6 /* Cocoa.framework */, + 68BD73FC415D4E7C5A797E28 /* CoreAudio.framework */, + 6DC123D30BFF2A2E36FC7518 /* IOKit.framework */, + 4EF14DDA3B145C9D78C17D09 /* Carbon.framework */, + 527E6D7146EB1F876CB96FD0 /* ForceFeedback.framework */, + 2A82641D544A5AFE16B84383 /* CoreFoundation.framework */, + 60BA7B0B10B154D64A20298C /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 332D5C542BF82FE916053248 /* Products */ = { + isa = PBXGroup; + children = ( + 5087525F0A1453AF2F9A6588 /* testrendercopyex */, + ); + name = "Products"; + sourceTree = ""; + }; + 3722498D7B70133662F40C7A /* Projects */ = { + isa = PBXGroup; + children = ( + 1F963BA70DA6400C0A6E4784 /* SDL2main.xcodeproj */, + 326520CF17B318C34CA51272 /* SDL2test.xcodeproj */, + 483C18416E0E7C197F7238B5 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 1DF54D335F07031E66B12A6A /* Products */ = { + isa = PBXGroup; + children = ( + 2CE10C33796F7ED04A7D661F /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 50BB422B200B724E6F850FD0 /* Products */ = { + isa = PBXGroup; + children = ( + 0E4A36C205D6384A3C18559E /* libSDL2test.a */, + ); + name = Products; + sourceTree = ""; + }; + 484E1DB0205361030D1B0F46 /* Products */ = { + isa = PBXGroup; + children = ( + 002D3E8461A530CE5D8A1613 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 557C7D5C52F640C955CB0F67 /* testrendercopyex */ = { + isa = PBXNativeTarget; + buildConfigurationList = 59E3072F380A3C4A325F130D /* Build configuration list for PBXNativeTarget "testrendercopyex" */; + buildPhases = ( + 5B1B6AAF180F28375ADB1C63 /* Resources */, + 62F761C96CF0025F32C158CE /* Sources */, + 3FDD6E742FAE04D07CFB6D74 /* Frameworks */, + 9607AE3710C85E8F00CD1376 /* Postbuild */, + ); + buildRules = ( + ); + dependencies = ( + 172122C5708535651DDE65C6 /* PBXTargetDependency */, + 75D50FC35348521025404D82 /* PBXTargetDependency */, + 06264C7B60C120251C9B1488 /* PBXTargetDependency */, + ); + name = "testrendercopyex"; + productInstallPath = "$(HOME)/bin"; + productName = "testrendercopyex"; + productReference = 5087525F0A1453AF2F9A6588 /* testrendercopyex */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testrendercopyex" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 251C69F41B3F726174443202 /* testrendercopyex */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 1DF54D335F07031E66B12A6A /* Products */; + ProjectRef = 1F963BA70DA6400C0A6E4784 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 50BB422B200B724E6F850FD0 /* Products */; + ProjectRef = 326520CF17B318C34CA51272 /* SDL2test.xcodeproj */; + }, + { + ProductGroup = 484E1DB0205361030D1B0F46 /* Products */; + ProjectRef = 483C18416E0E7C197F7238B5 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 557C7D5C52F640C955CB0F67 /* testrendercopyex */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 2CE10C33796F7ED04A7D661F /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 557A4002043D621175310F7B /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 0E4A36C205D6384A3C18559E /* libSDL2test.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2test.a"; + remoteRef = 4DB203F95FB172A15DBE6900 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 002D3E8461A530CE5D8A1613 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 40837EDF6B281C520A0448EE /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 5B1B6AAF180F28375ADB1C63 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 9607AE3710C85E8F00CD1376 /* Postbuild */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = Postbuild; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "if [ \"${CONFIGURATION}\" = \"Debug Universal\" ]; then\nif [ ! -d \"./Build/Debug\" ]; then mkdir -p \"./Build/Debug\"; fi\ncp \"./../../../../../test/icon.bmp\" \"./Build/Debug/icon.bmp\"\ncp \"./../../../../../test/sample.bmp\" \"./Build/Debug/sample.bmp\"\nfi\nif [ \"${CONFIGURATION}\" = \"Debug Native\" ]; then\nif [ ! -d \"./Build/Debug\" ]; then mkdir -p \"./Build/Debug\"; fi\ncp \"./../../../../../test/icon.bmp\" \"./Build/Debug/icon.bmp\"\ncp \"./../../../../../test/sample.bmp\" \"./Build/Debug/sample.bmp\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Universal\" ]; then\nif [ ! -d \"./Build/Release\" ]; then mkdir -p \"./Build/Release\"; fi\ncp \"./../../../../../test/icon.bmp\" \"./Build/Release/icon.bmp\"\ncp \"./../../../../../test/sample.bmp\" \"./Build/Release/sample.bmp\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Native\" ]; then\nif [ ! -d \"./Build/Release\" ]; then mkdir -p \"./Build/Release\"; fi\ncp \"./../../../../../test/icon.bmp\" \"./Build/Release/icon.bmp\"\ncp \"./../../../../../test/sample.bmp\" \"./Build/Release/sample.bmp\"\nfi"; + }; +/* End PBXShellScriptBuildPhase section */ +/* Begin PBXSourcesBuildPhase section */ + 62F761C96CF0025F32C158CE /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 6E8C5D734CF62AC02E2A628C /* testrendercopyex.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 172122C5708535651DDE65C6 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 0D933B3057FF40D6491C69FF /* PBXContainerItemProxy */; + }; + 75D50FC35348521025404D82 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2test.a"; + targetProxy = 13B63D4042FB7093495A389B /* PBXContainerItemProxy */; + }; + 06264C7B60C120251C9B1488 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 1D371817285041810DA0112A /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 17F645D86ABB423F50E12287 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testrendercopyex"; + }; + name = "Debug Universal"; + }; + 410818042FC736AD221E1049 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testrendercopyex"; + }; + name = "Debug Native"; + }; + 408047A8720F482E471F6286 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testrendercopyex"; + }; + name = "Release Universal"; + }; + 7E6F2C356E69538C2D745325 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testrendercopyex"; + }; + name = "Release Native"; + }; + 7CC167931CC81DA144C105A3 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 3545579A69D14F791CFD4CB2 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 642E19635F9A7EFC0FB53836 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 2F2F783E37D0711E060339EB /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 59E3072F380A3C4A325F130D /* Build configuration list for PBXNativeTarget "testrendercopyex" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 17F645D86ABB423F50E12287 /* Debug Universal */, + 410818042FC736AD221E1049 /* Debug Native */, + 408047A8720F482E471F6286 /* Release Universal */, + 7E6F2C356E69538C2D745325 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testrendercopyex" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7CC167931CC81DA144C105A3 /* Debug Universal */, + 3545579A69D14F791CFD4CB2 /* Debug Native */, + 642E19635F9A7EFC0FB53836 /* Release Universal */, + 2F2F783E37D0711E060339EB /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode3/tests/testrendertarget/testrendertarget.xcodeproj/project.pbxproj b/premake/Xcode/Xcode3/tests/testrendertarget/testrendertarget.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..49c2ef9663a5a --- /dev/null +++ b/premake/Xcode/Xcode3/tests/testrendertarget/testrendertarget.xcodeproj/project.pbxproj @@ -0,0 +1,517 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 3BDE770E382742407C9C7275 /* testrendertarget.c in Sources */ = {isa = PBXBuildFile; fileRef = 3D377B2F758301FB3EE53E1E /* testrendertarget.c */; }; + 021E0C863FA852C728EA21A5 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 65E944291E9579D473B31994 /* AudioToolbox.framework */; }; + 066B616A0F357B1350403119 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 622318275C5B0EF65EC61AFD /* AudioUnit.framework */; }; + 13447C76577A1A13163437A4 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 07CC15F06B1E09D103A97BCF /* Cocoa.framework */; }; + 15193EED718E39916A7C1483 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 02892BC34C873ECA4BD25839 /* CoreAudio.framework */; }; + 2997079F67543FEE3875249B /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B7F14644F8011D956DE2051 /* IOKit.framework */; }; + 0A550BAF42E407DD6A3A1FD8 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 452655000EBA59503EF420A0 /* Carbon.framework */; }; + 0F702DAE7E5868BC1FAD46D8 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 308856AD13007A0847B90197 /* ForceFeedback.framework */; }; + 19FA7BAA13ED683E72FB497A /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 30B350842E226D2F36C90784 /* CoreFoundation.framework */; }; + 45C9492E2BA1789A72911841 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0D7875D9299727716BC76549 /* OpenGL.framework */; }; + 058D1D23740D3B8402CF1144 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 56767874260E1325074412DF /* libSDL2main.a */; }; + 0B674F36010E61E9091C25CA /* libSDL2test.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 482733D23FB6544709C50ED4 /* libSDL2test.a */; }; + 28AA6DE4175D71F470BB420D /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 59D2230B5A0B1CDE43107EEF /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 27766928021C033336E5032B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 42D156B9499913F169B57314 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 58DC62993160374E09FF7AD6; + remoteInfo = "libSDL2main.a"; + }; + 0254080707BB2E0C50006C25 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 42D156B9499913F169B57314 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 0E7126A94A11494963D3548B; + remoteInfo = "libSDL2main.a"; + }; + 74BB51AB6C52216E68215FCE /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 134322956CCC6439154A3F0E /* SDL2test.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 1E1175156F97314C291323CB; + remoteInfo = "libSDL2test.a"; + }; + 4EDA545541D53C84205B592B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 134322956CCC6439154A3F0E /* SDL2test.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7CD70F5D43DA554D66287CFC; + remoteInfo = "libSDL2test.a"; + }; + 7C3932CF473920007BED14B6 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 72532B8E33703B3E07570B89 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 07D004B11E733F1F0EA93105; + remoteInfo = "libSDL2.a"; + }; + 396733C34AF07D6F3CBD30D2 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 72532B8E33703B3E07570B89 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 58C10ED14175754444033E0E; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 3D377B2F758301FB3EE53E1E /* testrendertarget.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testrendertarget.c"; path = "../../../../../test/testrendertarget.c"; sourceTree = ""; }; + 65E944291E9579D473B31994 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 622318275C5B0EF65EC61AFD /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 07CC15F06B1E09D103A97BCF /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 02892BC34C873ECA4BD25839 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 4B7F14644F8011D956DE2051 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 452655000EBA59503EF420A0 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 308856AD13007A0847B90197 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 30B350842E226D2F36C90784 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 0D7875D9299727716BC76549 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 2C727B1464A05D8628A65406 /* testrendertarget */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testrendertarget"; path = "testrendertarget"; sourceTree = BUILT_PRODUCTS_DIR; }; + 42D156B9499913F169B57314 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 134322956CCC6439154A3F0E /* SDL2test.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2test.xcodeproj"; path = "../../SDL2test/SDL2test.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 72532B8E33703B3E07570B89 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 182F540A002D452A74910B72 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 021E0C863FA852C728EA21A5 /* AudioToolbox.framework in Frameworks */, + 066B616A0F357B1350403119 /* AudioUnit.framework in Frameworks */, + 13447C76577A1A13163437A4 /* Cocoa.framework in Frameworks */, + 15193EED718E39916A7C1483 /* CoreAudio.framework in Frameworks */, + 2997079F67543FEE3875249B /* IOKit.framework in Frameworks */, + 0A550BAF42E407DD6A3A1FD8 /* Carbon.framework in Frameworks */, + 0F702DAE7E5868BC1FAD46D8 /* ForceFeedback.framework in Frameworks */, + 19FA7BAA13ED683E72FB497A /* CoreFoundation.framework in Frameworks */, + 45C9492E2BA1789A72911841 /* OpenGL.framework in Frameworks */, + 058D1D23740D3B8402CF1144 /* libSDL2main.a in Frameworks */, + 0B674F36010E61E9091C25CA /* libSDL2test.a in Frameworks */, + 28AA6DE4175D71F470BB420D /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 0E822AD7464B6D584977305A /* testrendertarget */ = { + isa = PBXGroup; + children = ( + 0E314AD426492160672949A2 /* test */, + 12CF719841E46665046F3E95 /* Frameworks */, + 1236373726C70594517914E9 /* Products */, + 593C7BBB72C50DE2211447BA /* Projects */, + ); + name = "testrendertarget"; + sourceTree = ""; + }; + 0E314AD426492160672949A2 /* test */ = { + isa = PBXGroup; + children = ( + 3D377B2F758301FB3EE53E1E /* testrendertarget.c */, + ); + name = "test"; + sourceTree = ""; + }; + 12CF719841E46665046F3E95 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 65E944291E9579D473B31994 /* AudioToolbox.framework */, + 622318275C5B0EF65EC61AFD /* AudioUnit.framework */, + 07CC15F06B1E09D103A97BCF /* Cocoa.framework */, + 02892BC34C873ECA4BD25839 /* CoreAudio.framework */, + 4B7F14644F8011D956DE2051 /* IOKit.framework */, + 452655000EBA59503EF420A0 /* Carbon.framework */, + 308856AD13007A0847B90197 /* ForceFeedback.framework */, + 30B350842E226D2F36C90784 /* CoreFoundation.framework */, + 0D7875D9299727716BC76549 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 1236373726C70594517914E9 /* Products */ = { + isa = PBXGroup; + children = ( + 2C727B1464A05D8628A65406 /* testrendertarget */, + ); + name = "Products"; + sourceTree = ""; + }; + 593C7BBB72C50DE2211447BA /* Projects */ = { + isa = PBXGroup; + children = ( + 42D156B9499913F169B57314 /* SDL2main.xcodeproj */, + 134322956CCC6439154A3F0E /* SDL2test.xcodeproj */, + 72532B8E33703B3E07570B89 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 55097AE10B0B20BD6A302F28 /* Products */ = { + isa = PBXGroup; + children = ( + 56767874260E1325074412DF /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 6D5572D6669077FD15BB4226 /* Products */ = { + isa = PBXGroup; + children = ( + 482733D23FB6544709C50ED4 /* libSDL2test.a */, + ); + name = Products; + sourceTree = ""; + }; + 4940288F4A214C0F2DA54FF7 /* Products */ = { + isa = PBXGroup; + children = ( + 59D2230B5A0B1CDE43107EEF /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 65143E696F3D32C92E185878 /* testrendertarget */ = { + isa = PBXNativeTarget; + buildConfigurationList = 1FEF3F326E341A4274F33683 /* Build configuration list for PBXNativeTarget "testrendertarget" */; + buildPhases = ( + 004E1202473233B004CF3DBA /* Resources */, + 36BC22F924372FD8195A7A55 /* Sources */, + 182F540A002D452A74910B72 /* Frameworks */, + 9607AE3710C85E8F00CD1376 /* Postbuild */, + ); + buildRules = ( + ); + dependencies = ( + 7C8910967C946E6201153F3D /* PBXTargetDependency */, + 1A252909129B03C27273049A /* PBXTargetDependency */, + 553675717DDC133503AC233F /* PBXTargetDependency */, + ); + name = "testrendertarget"; + productInstallPath = "$(HOME)/bin"; + productName = "testrendertarget"; + productReference = 2C727B1464A05D8628A65406 /* testrendertarget */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testrendertarget" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 0E822AD7464B6D584977305A /* testrendertarget */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 55097AE10B0B20BD6A302F28 /* Products */; + ProjectRef = 42D156B9499913F169B57314 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 6D5572D6669077FD15BB4226 /* Products */; + ProjectRef = 134322956CCC6439154A3F0E /* SDL2test.xcodeproj */; + }, + { + ProductGroup = 4940288F4A214C0F2DA54FF7 /* Products */; + ProjectRef = 72532B8E33703B3E07570B89 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 65143E696F3D32C92E185878 /* testrendertarget */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 56767874260E1325074412DF /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 27766928021C033336E5032B /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 482733D23FB6544709C50ED4 /* libSDL2test.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2test.a"; + remoteRef = 74BB51AB6C52216E68215FCE /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 59D2230B5A0B1CDE43107EEF /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 7C3932CF473920007BED14B6 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 004E1202473233B004CF3DBA /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 9607AE3710C85E8F00CD1376 /* Postbuild */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = Postbuild; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "if [ \"${CONFIGURATION}\" = \"Debug Universal\" ]; then\nif [ ! -d \"./Build/Debug\" ]; then mkdir -p \"./Build/Debug\"; fi\ncp \"./../../../../../test/sample.bmp\" \"./Build/Debug/sample.bmp\"\ncp \"./../../../../../test/icon.bmp\" \"./Build/Debug/icon.bmp\"\nfi\nif [ \"${CONFIGURATION}\" = \"Debug Native\" ]; then\nif [ ! -d \"./Build/Debug\" ]; then mkdir -p \"./Build/Debug\"; fi\ncp \"./../../../../../test/sample.bmp\" \"./Build/Debug/sample.bmp\"\ncp \"./../../../../../test/icon.bmp\" \"./Build/Debug/icon.bmp\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Universal\" ]; then\nif [ ! -d \"./Build/Release\" ]; then mkdir -p \"./Build/Release\"; fi\ncp \"./../../../../../test/sample.bmp\" \"./Build/Release/sample.bmp\"\ncp \"./../../../../../test/icon.bmp\" \"./Build/Release/icon.bmp\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Native\" ]; then\nif [ ! -d \"./Build/Release\" ]; then mkdir -p \"./Build/Release\"; fi\ncp \"./../../../../../test/sample.bmp\" \"./Build/Release/sample.bmp\"\ncp \"./../../../../../test/icon.bmp\" \"./Build/Release/icon.bmp\"\nfi"; + }; +/* End PBXShellScriptBuildPhase section */ +/* Begin PBXSourcesBuildPhase section */ + 36BC22F924372FD8195A7A55 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 3BDE770E382742407C9C7275 /* testrendertarget.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 7C8910967C946E6201153F3D /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 0254080707BB2E0C50006C25 /* PBXContainerItemProxy */; + }; + 1A252909129B03C27273049A /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2test.a"; + targetProxy = 4EDA545541D53C84205B592B /* PBXContainerItemProxy */; + }; + 553675717DDC133503AC233F /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 396733C34AF07D6F3CBD30D2 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 720F444D1EE3087071D6296C /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testrendertarget"; + }; + name = "Debug Universal"; + }; + 575813D33EF752B42F4B1FDE /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testrendertarget"; + }; + name = "Debug Native"; + }; + 0BD15545445C1F2558C66013 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testrendertarget"; + }; + name = "Release Universal"; + }; + 61DD770A5FF844034B705E59 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testrendertarget"; + }; + name = "Release Native"; + }; + 77ED6AEC477D1A0B6DAD3671 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 507826301DEE793106690AF3 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 02F6008057A6739429672D3A /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 38E023561EA90EBE187269E5 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 1FEF3F326E341A4274F33683 /* Build configuration list for PBXNativeTarget "testrendertarget" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 720F444D1EE3087071D6296C /* Debug Universal */, + 575813D33EF752B42F4B1FDE /* Debug Native */, + 0BD15545445C1F2558C66013 /* Release Universal */, + 61DD770A5FF844034B705E59 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testrendertarget" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 77ED6AEC477D1A0B6DAD3671 /* Debug Universal */, + 507826301DEE793106690AF3 /* Debug Native */, + 02F6008057A6739429672D3A /* Release Universal */, + 38E023561EA90EBE187269E5 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode3/tests/testresample/testresample.xcodeproj/project.pbxproj b/premake/Xcode/Xcode3/tests/testresample/testresample.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..62507d643362c --- /dev/null +++ b/premake/Xcode/Xcode3/tests/testresample/testresample.xcodeproj/project.pbxproj @@ -0,0 +1,474 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 76BF146D2915361C206609F5 /* testresample.c in Sources */ = {isa = PBXBuildFile; fileRef = 569306C5153013C8469245DA /* testresample.c */; }; + 574A7ADD7E8D6164004D704D /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 74113BD1382E5DF879DF5182 /* AudioToolbox.framework */; }; + 4779101031F434B778E65448 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0CA768C01B3407D961E44088 /* AudioUnit.framework */; }; + 419215986BFB4528763B3B70 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6DBC704556B47843205405CA /* Cocoa.framework */; }; + 35F37D307ECD6C7032882DAA /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C5577F93D2C3BC657F133C4 /* CoreAudio.framework */; }; + 0C9870DA331B3DB67AC874CE /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2B09143813350D77182A749B /* IOKit.framework */; }; + 27DE098722F061A277AE67C1 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1238352C09A1295D46AF0F41 /* Carbon.framework */; }; + 4CB3298851D12A615E5544B1 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 68FA231E3B7D0CEE1331190D /* ForceFeedback.framework */; }; + 530846550776061B08E50193 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 45D6167562824A0E6F3332F2 /* CoreFoundation.framework */; }; + 088C4D0339B466941438209F /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 62094A9101C3606448CD26CB /* OpenGL.framework */; }; + 5D985F333D3E54D0559F53F0 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 74FE741E090E329A57072A76 /* libSDL2main.a */; }; + 7E991A6635F84F1C4A4B12A5 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 36C16BB401BA7F296E737694 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 00C73F06453266556CA1778F /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 280C41556E9D2C0915937CD8 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 58DC62993160374E09FF7AD6; + remoteInfo = "libSDL2main.a"; + }; + 568F66C878FE1FB55D4657C9 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 280C41556E9D2C0915937CD8 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 0E7126A94A11494963D3548B; + remoteInfo = "libSDL2main.a"; + }; + 6C7E7391621159C07402679C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 57F740F5173813BD71B0085B /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 07D004B11E733F1F0EA93105; + remoteInfo = "libSDL2.a"; + }; + 54654C1A475E706257ED1B6D /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 57F740F5173813BD71B0085B /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 58C10ED14175754444033E0E; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 569306C5153013C8469245DA /* testresample.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testresample.c"; path = "../../../../../test/testresample.c"; sourceTree = ""; }; + 74113BD1382E5DF879DF5182 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 0CA768C01B3407D961E44088 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 6DBC704556B47843205405CA /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 4C5577F93D2C3BC657F133C4 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 2B09143813350D77182A749B /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 1238352C09A1295D46AF0F41 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 68FA231E3B7D0CEE1331190D /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 45D6167562824A0E6F3332F2 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 62094A9101C3606448CD26CB /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 4D3A34FC368C51A554200429 /* testresample */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testresample"; path = "testresample"; sourceTree = BUILT_PRODUCTS_DIR; }; + 280C41556E9D2C0915937CD8 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 57F740F5173813BD71B0085B /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 0C6D72FC0160642278964596 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 574A7ADD7E8D6164004D704D /* AudioToolbox.framework in Frameworks */, + 4779101031F434B778E65448 /* AudioUnit.framework in Frameworks */, + 419215986BFB4528763B3B70 /* Cocoa.framework in Frameworks */, + 35F37D307ECD6C7032882DAA /* CoreAudio.framework in Frameworks */, + 0C9870DA331B3DB67AC874CE /* IOKit.framework in Frameworks */, + 27DE098722F061A277AE67C1 /* Carbon.framework in Frameworks */, + 4CB3298851D12A615E5544B1 /* ForceFeedback.framework in Frameworks */, + 530846550776061B08E50193 /* CoreFoundation.framework in Frameworks */, + 088C4D0339B466941438209F /* OpenGL.framework in Frameworks */, + 5D985F333D3E54D0559F53F0 /* libSDL2main.a in Frameworks */, + 7E991A6635F84F1C4A4B12A5 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 38433A46021F7BB00E9C34F4 /* testresample */ = { + isa = PBXGroup; + children = ( + 22107488396D576354857AD9 /* test */, + 413E0EE56103220D38B23A54 /* Frameworks */, + 546220AC13A77568176F35DB /* Products */, + 6B500C6028EF004738402E7B /* Projects */, + ); + name = "testresample"; + sourceTree = ""; + }; + 22107488396D576354857AD9 /* test */ = { + isa = PBXGroup; + children = ( + 569306C5153013C8469245DA /* testresample.c */, + ); + name = "test"; + sourceTree = ""; + }; + 413E0EE56103220D38B23A54 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 74113BD1382E5DF879DF5182 /* AudioToolbox.framework */, + 0CA768C01B3407D961E44088 /* AudioUnit.framework */, + 6DBC704556B47843205405CA /* Cocoa.framework */, + 4C5577F93D2C3BC657F133C4 /* CoreAudio.framework */, + 2B09143813350D77182A749B /* IOKit.framework */, + 1238352C09A1295D46AF0F41 /* Carbon.framework */, + 68FA231E3B7D0CEE1331190D /* ForceFeedback.framework */, + 45D6167562824A0E6F3332F2 /* CoreFoundation.framework */, + 62094A9101C3606448CD26CB /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 546220AC13A77568176F35DB /* Products */ = { + isa = PBXGroup; + children = ( + 4D3A34FC368C51A554200429 /* testresample */, + ); + name = "Products"; + sourceTree = ""; + }; + 6B500C6028EF004738402E7B /* Projects */ = { + isa = PBXGroup; + children = ( + 280C41556E9D2C0915937CD8 /* SDL2main.xcodeproj */, + 57F740F5173813BD71B0085B /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 6D3E3A2E33280DEE1ECC645E /* Products */ = { + isa = PBXGroup; + children = ( + 74FE741E090E329A57072A76 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 5D6E6E2804B31C6E253762F3 /* Products */ = { + isa = PBXGroup; + children = ( + 36C16BB401BA7F296E737694 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 252D5F4F68CC3DDF07376025 /* testresample */ = { + isa = PBXNativeTarget; + buildConfigurationList = 16593BC10B1F2BC613B95D1B /* Build configuration list for PBXNativeTarget "testresample" */; + buildPhases = ( + 55394CA4557C63172A972246 /* Resources */, + 3E722EBA7478798B375B4376 /* Sources */, + 0C6D72FC0160642278964596 /* Frameworks */, + 9607AE3710C85E8F00CD1376 /* Postbuild */, + ); + buildRules = ( + ); + dependencies = ( + 7D476F07532F53464DEC5572 /* PBXTargetDependency */, + 1D554DA605B14CC0617213FC /* PBXTargetDependency */, + ); + name = "testresample"; + productInstallPath = "$(HOME)/bin"; + productName = "testresample"; + productReference = 4D3A34FC368C51A554200429 /* testresample */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testresample" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 38433A46021F7BB00E9C34F4 /* testresample */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 6D3E3A2E33280DEE1ECC645E /* Products */; + ProjectRef = 280C41556E9D2C0915937CD8 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 5D6E6E2804B31C6E253762F3 /* Products */; + ProjectRef = 57F740F5173813BD71B0085B /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 252D5F4F68CC3DDF07376025 /* testresample */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 74FE741E090E329A57072A76 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 00C73F06453266556CA1778F /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 36C16BB401BA7F296E737694 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 6C7E7391621159C07402679C /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 55394CA4557C63172A972246 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 9607AE3710C85E8F00CD1376 /* Postbuild */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = Postbuild; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "if [ \"${CONFIGURATION}\" = \"Debug Universal\" ]; then\nif [ ! -d \"./Build/Debug\" ]; then mkdir -p \"./Build/Debug\"; fi\ncp \"./../../../../../test/sample.wav\" \"./Build/Debug/sample.wav\"\nfi\nif [ \"${CONFIGURATION}\" = \"Debug Native\" ]; then\nif [ ! -d \"./Build/Debug\" ]; then mkdir -p \"./Build/Debug\"; fi\ncp \"./../../../../../test/sample.wav\" \"./Build/Debug/sample.wav\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Universal\" ]; then\nif [ ! -d \"./Build/Release\" ]; then mkdir -p \"./Build/Release\"; fi\ncp \"./../../../../../test/sample.wav\" \"./Build/Release/sample.wav\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Native\" ]; then\nif [ ! -d \"./Build/Release\" ]; then mkdir -p \"./Build/Release\"; fi\ncp \"./../../../../../test/sample.wav\" \"./Build/Release/sample.wav\"\nfi"; + }; +/* End PBXShellScriptBuildPhase section */ +/* Begin PBXSourcesBuildPhase section */ + 3E722EBA7478798B375B4376 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 76BF146D2915361C206609F5 /* testresample.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 7D476F07532F53464DEC5572 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 568F66C878FE1FB55D4657C9 /* PBXContainerItemProxy */; + }; + 1D554DA605B14CC0617213FC /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 54654C1A475E706257ED1B6D /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 2BCC04AE3EA42FB868BE3848 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testresample"; + }; + name = "Debug Universal"; + }; + 47613B2D450016BD08C82BD2 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testresample"; + }; + name = "Debug Native"; + }; + 08F137D45C1375BC0FF8049B /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testresample"; + }; + name = "Release Universal"; + }; + 09E6797930703AAC01A57EA4 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testresample"; + }; + name = "Release Native"; + }; + 0CB700C516FC322D48077012 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 061009CA5EC043147F7A5963 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 6A5D37096F305DD241554511 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 6B621C2B68195FF17E896D24 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 16593BC10B1F2BC613B95D1B /* Build configuration list for PBXNativeTarget "testresample" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 2BCC04AE3EA42FB868BE3848 /* Debug Universal */, + 47613B2D450016BD08C82BD2 /* Debug Native */, + 08F137D45C1375BC0FF8049B /* Release Universal */, + 09E6797930703AAC01A57EA4 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testresample" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0CB700C516FC322D48077012 /* Debug Universal */, + 061009CA5EC043147F7A5963 /* Debug Native */, + 6A5D37096F305DD241554511 /* Release Universal */, + 6B621C2B68195FF17E896D24 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode3/tests/testrumble/testrumble.xcodeproj/project.pbxproj b/premake/Xcode/Xcode3/tests/testrumble/testrumble.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..f5ce3c71ce8e5 --- /dev/null +++ b/premake/Xcode/Xcode3/tests/testrumble/testrumble.xcodeproj/project.pbxproj @@ -0,0 +1,457 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 124717442E7B35AD1B5650AA /* testrumble.c in Sources */ = {isa = PBXBuildFile; fileRef = 2DFA268370C4769A2F5C6FBF /* testrumble.c */; }; + 61B829E932DA38657B423F6F /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 69D74DF941656C4010E27051 /* AudioToolbox.framework */; }; + 1B80799E29AE683A561D2DB4 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 311E40904AC82FEF1E0024D6 /* AudioUnit.framework */; }; + 11EA2EBD273E1774610E1D63 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 35C95AF30CDE6D6F180D121E /* Cocoa.framework */; }; + 7BE64BB3746B20D13298487B /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E802D674BE67D6516DE6B3F /* CoreAudio.framework */; }; + 23CF713628841182291540AB /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 259850524A7B72D70AC5404B /* IOKit.framework */; }; + 56A91EB248F34A240B320DF0 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 54A81435574F3DD44B3B0EE2 /* Carbon.framework */; }; + 428016FB577550EB01B05486 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2BCC0FAB5C6A6FEC10547B1D /* ForceFeedback.framework */; }; + 418474DD110F17102210799B /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C0B68346EA0611D783518C1 /* CoreFoundation.framework */; }; + 25A83C2D5A4F2F0125416A3E /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 68D84A2617487AB2763930C2 /* OpenGL.framework */; }; + 1812540F49050067143E0FC1 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 24582C823A926F21777B61F6 /* libSDL2main.a */; }; + 2F3E1E6239A7419D35267477 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 44CF004538894E25185D1A41 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 6E65490B7B3A5975262822EF /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 6E17506B5A510B7674EE5296 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 58DC62993160374E09FF7AD6; + remoteInfo = "libSDL2main.a"; + }; + 088E3B4F509B188B0A18328D /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 6E17506B5A510B7674EE5296 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 0E7126A94A11494963D3548B; + remoteInfo = "libSDL2main.a"; + }; + 700F1857105810F014265B7D /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 720A00A215EA428D644D3680 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 07D004B11E733F1F0EA93105; + remoteInfo = "libSDL2.a"; + }; + 05540490337C51A5407A38F3 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 720A00A215EA428D644D3680 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 58C10ED14175754444033E0E; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 2DFA268370C4769A2F5C6FBF /* testrumble.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testrumble.c"; path = "../../../../../test/testrumble.c"; sourceTree = ""; }; + 69D74DF941656C4010E27051 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 311E40904AC82FEF1E0024D6 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 35C95AF30CDE6D6F180D121E /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 5E802D674BE67D6516DE6B3F /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 259850524A7B72D70AC5404B /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 54A81435574F3DD44B3B0EE2 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 2BCC0FAB5C6A6FEC10547B1D /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 4C0B68346EA0611D783518C1 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 68D84A2617487AB2763930C2 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 42820EA2474110E017AC3089 /* testrumble */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testrumble"; path = "testrumble"; sourceTree = BUILT_PRODUCTS_DIR; }; + 6E17506B5A510B7674EE5296 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 720A00A215EA428D644D3680 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 20B41A2F07B5262F6DAE7A4A /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 61B829E932DA38657B423F6F /* AudioToolbox.framework in Frameworks */, + 1B80799E29AE683A561D2DB4 /* AudioUnit.framework in Frameworks */, + 11EA2EBD273E1774610E1D63 /* Cocoa.framework in Frameworks */, + 7BE64BB3746B20D13298487B /* CoreAudio.framework in Frameworks */, + 23CF713628841182291540AB /* IOKit.framework in Frameworks */, + 56A91EB248F34A240B320DF0 /* Carbon.framework in Frameworks */, + 428016FB577550EB01B05486 /* ForceFeedback.framework in Frameworks */, + 418474DD110F17102210799B /* CoreFoundation.framework in Frameworks */, + 25A83C2D5A4F2F0125416A3E /* OpenGL.framework in Frameworks */, + 1812540F49050067143E0FC1 /* libSDL2main.a in Frameworks */, + 2F3E1E6239A7419D35267477 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 794130C91C19308D27BE6658 /* testrumble */ = { + isa = PBXGroup; + children = ( + 1DA903B35E6944BC40C2237C /* test */, + 5E6D7FF211280064452F49F0 /* Frameworks */, + 3B4C21335B6D0F6F411E4001 /* Products */, + 30BA1FFF51161B0E3FC0130B /* Projects */, + ); + name = "testrumble"; + sourceTree = ""; + }; + 1DA903B35E6944BC40C2237C /* test */ = { + isa = PBXGroup; + children = ( + 2DFA268370C4769A2F5C6FBF /* testrumble.c */, + ); + name = "test"; + sourceTree = ""; + }; + 5E6D7FF211280064452F49F0 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 69D74DF941656C4010E27051 /* AudioToolbox.framework */, + 311E40904AC82FEF1E0024D6 /* AudioUnit.framework */, + 35C95AF30CDE6D6F180D121E /* Cocoa.framework */, + 5E802D674BE67D6516DE6B3F /* CoreAudio.framework */, + 259850524A7B72D70AC5404B /* IOKit.framework */, + 54A81435574F3DD44B3B0EE2 /* Carbon.framework */, + 2BCC0FAB5C6A6FEC10547B1D /* ForceFeedback.framework */, + 4C0B68346EA0611D783518C1 /* CoreFoundation.framework */, + 68D84A2617487AB2763930C2 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 3B4C21335B6D0F6F411E4001 /* Products */ = { + isa = PBXGroup; + children = ( + 42820EA2474110E017AC3089 /* testrumble */, + ); + name = "Products"; + sourceTree = ""; + }; + 30BA1FFF51161B0E3FC0130B /* Projects */ = { + isa = PBXGroup; + children = ( + 6E17506B5A510B7674EE5296 /* SDL2main.xcodeproj */, + 720A00A215EA428D644D3680 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 440676EE151B3F9F60F84413 /* Products */ = { + isa = PBXGroup; + children = ( + 24582C823A926F21777B61F6 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 07E146715659099073561E9D /* Products */ = { + isa = PBXGroup; + children = ( + 44CF004538894E25185D1A41 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 0A26695A3BA775F1544E573C /* testrumble */ = { + isa = PBXNativeTarget; + buildConfigurationList = 3209004474375DDF74242210 /* Build configuration list for PBXNativeTarget "testrumble" */; + buildPhases = ( + 525E1C4500F9782E333F6D5C /* Resources */, + 464C671A0921752D69745B41 /* Sources */, + 20B41A2F07B5262F6DAE7A4A /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 6C6169043D7162D877D74ED8 /* PBXTargetDependency */, + 0EA714145C373CC53B724481 /* PBXTargetDependency */, + ); + name = "testrumble"; + productInstallPath = "$(HOME)/bin"; + productName = "testrumble"; + productReference = 42820EA2474110E017AC3089 /* testrumble */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testrumble" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 794130C91C19308D27BE6658 /* testrumble */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 440676EE151B3F9F60F84413 /* Products */; + ProjectRef = 6E17506B5A510B7674EE5296 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 07E146715659099073561E9D /* Products */; + ProjectRef = 720A00A215EA428D644D3680 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 0A26695A3BA775F1544E573C /* testrumble */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 24582C823A926F21777B61F6 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 6E65490B7B3A5975262822EF /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 44CF004538894E25185D1A41 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 700F1857105810F014265B7D /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 525E1C4500F9782E333F6D5C /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 464C671A0921752D69745B41 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 124717442E7B35AD1B5650AA /* testrumble.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 6C6169043D7162D877D74ED8 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 088E3B4F509B188B0A18328D /* PBXContainerItemProxy */; + }; + 0EA714145C373CC53B724481 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 05540490337C51A5407A38F3 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 6B782B6457187E425846665A /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testrumble"; + }; + name = "Debug Universal"; + }; + 2EC265311617661F38B64480 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testrumble"; + }; + name = "Debug Native"; + }; + 04C401E9721021A577592F56 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testrumble"; + }; + name = "Release Universal"; + }; + 453C130F733140BF75E919C3 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testrumble"; + }; + name = "Release Native"; + }; + 31B864D7174418902FAF48D9 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 3FA1669563B47E9C34373217 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 744E499246E639F1161F0573 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 6AB0796B790B7BFD4BF8251B /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 3209004474375DDF74242210 /* Build configuration list for PBXNativeTarget "testrumble" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 6B782B6457187E425846665A /* Debug Universal */, + 2EC265311617661F38B64480 /* Debug Native */, + 04C401E9721021A577592F56 /* Release Universal */, + 453C130F733140BF75E919C3 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testrumble" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 31B864D7174418902FAF48D9 /* Debug Universal */, + 3FA1669563B47E9C34373217 /* Debug Native */, + 744E499246E639F1161F0573 /* Release Universal */, + 6AB0796B790B7BFD4BF8251B /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode3/tests/testscale/testscale.xcodeproj/project.pbxproj b/premake/Xcode/Xcode3/tests/testscale/testscale.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..f71fa2b32d5b0 --- /dev/null +++ b/premake/Xcode/Xcode3/tests/testscale/testscale.xcodeproj/project.pbxproj @@ -0,0 +1,517 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 5C7E74D2428F5D0E5D255890 /* testscale.c in Sources */ = {isa = PBXBuildFile; fileRef = 0FD502B61D5F67B264693032 /* testscale.c */; }; + 008274C95424081325DA48B0 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1FF4030D762D287614DB4655 /* AudioToolbox.framework */; }; + 71D766A1037F09BE4526683F /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 370C097F7251551E65CE6817 /* AudioUnit.framework */; }; + 1D58080302756DC939006C33 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DB572FF7F6B6C1B14CE00D6 /* Cocoa.framework */; }; + 259C326672FE134A64C57099 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 355F15261C243D04044C2710 /* CoreAudio.framework */; }; + 03B04B0970D35360661A3815 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 628E6EE669DA090270846F6F /* IOKit.framework */; }; + 28F11C2C3DA535A173D823ED /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7F7D0CDB3AC832BF221A6264 /* Carbon.framework */; }; + 153F06D869C50ADC1A3D574D /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 41803CB46328617360EB7126 /* ForceFeedback.framework */; }; + 51D03EF609265DE579AD09E6 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3D2C18455CC51ECC78C55220 /* CoreFoundation.framework */; }; + 47B33B7877E42FF4459D73DF /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7F5C040571280FD63B6900AA /* OpenGL.framework */; }; + 7D61189049B1252270922C8B /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0BC5668C2655352934CE638D /* libSDL2main.a */; }; + 76EE0DCB338C4C126C1918E2 /* libSDL2test.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3F1704E222587110735D0416 /* libSDL2test.a */; }; + 50D176EF72035A626E550F7E /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1F2334F36CCA6E620E7E104D /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 65CC46BD4FDF3CCC0AE631B2 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 17F90FFD39896CA2220E62DA /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 58DC62993160374E09FF7AD6; + remoteInfo = "libSDL2main.a"; + }; + 5478435D3A932BF85FEF5978 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 17F90FFD39896CA2220E62DA /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 0E7126A94A11494963D3548B; + remoteInfo = "libSDL2main.a"; + }; + 2CAF4B5D7DDE7D0364B5662E /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 67B07D395C536E7D041136EA /* SDL2test.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 1E1175156F97314C291323CB; + remoteInfo = "libSDL2test.a"; + }; + 695812884A4E4E67742C271C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 67B07D395C536E7D041136EA /* SDL2test.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7CD70F5D43DA554D66287CFC; + remoteInfo = "libSDL2test.a"; + }; + 03973B8B23E47C71118E0561 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 319B4AC355290E8B7988714D /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 07D004B11E733F1F0EA93105; + remoteInfo = "libSDL2.a"; + }; + 614474296E7608606F001FE6 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 319B4AC355290E8B7988714D /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 58C10ED14175754444033E0E; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 0FD502B61D5F67B264693032 /* testscale.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testscale.c"; path = "../../../../../test/testscale.c"; sourceTree = ""; }; + 1FF4030D762D287614DB4655 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 370C097F7251551E65CE6817 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 3DB572FF7F6B6C1B14CE00D6 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 355F15261C243D04044C2710 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 628E6EE669DA090270846F6F /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 7F7D0CDB3AC832BF221A6264 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 41803CB46328617360EB7126 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 3D2C18455CC51ECC78C55220 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 7F5C040571280FD63B6900AA /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 1CDD1F2D74ED225651426E4F /* testscale */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testscale"; path = "testscale"; sourceTree = BUILT_PRODUCTS_DIR; }; + 17F90FFD39896CA2220E62DA /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 67B07D395C536E7D041136EA /* SDL2test.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2test.xcodeproj"; path = "../../SDL2test/SDL2test.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 319B4AC355290E8B7988714D /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 42DC02D65D8203E2001E529F /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 008274C95424081325DA48B0 /* AudioToolbox.framework in Frameworks */, + 71D766A1037F09BE4526683F /* AudioUnit.framework in Frameworks */, + 1D58080302756DC939006C33 /* Cocoa.framework in Frameworks */, + 259C326672FE134A64C57099 /* CoreAudio.framework in Frameworks */, + 03B04B0970D35360661A3815 /* IOKit.framework in Frameworks */, + 28F11C2C3DA535A173D823ED /* Carbon.framework in Frameworks */, + 153F06D869C50ADC1A3D574D /* ForceFeedback.framework in Frameworks */, + 51D03EF609265DE579AD09E6 /* CoreFoundation.framework in Frameworks */, + 47B33B7877E42FF4459D73DF /* OpenGL.framework in Frameworks */, + 7D61189049B1252270922C8B /* libSDL2main.a in Frameworks */, + 76EE0DCB338C4C126C1918E2 /* libSDL2test.a in Frameworks */, + 50D176EF72035A626E550F7E /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 2D9A6CE93F294BE420CB2D03 /* testscale */ = { + isa = PBXGroup; + children = ( + 5A2617995C0A195D51F46D9B /* test */, + 62C711C941A76D5919A5331A /* Frameworks */, + 45C13CF5123C598A0ECC1CD4 /* Products */, + 568416000E5979CE4A9B07B5 /* Projects */, + ); + name = "testscale"; + sourceTree = ""; + }; + 5A2617995C0A195D51F46D9B /* test */ = { + isa = PBXGroup; + children = ( + 0FD502B61D5F67B264693032 /* testscale.c */, + ); + name = "test"; + sourceTree = ""; + }; + 62C711C941A76D5919A5331A /* Frameworks */ = { + isa = PBXGroup; + children = ( + 1FF4030D762D287614DB4655 /* AudioToolbox.framework */, + 370C097F7251551E65CE6817 /* AudioUnit.framework */, + 3DB572FF7F6B6C1B14CE00D6 /* Cocoa.framework */, + 355F15261C243D04044C2710 /* CoreAudio.framework */, + 628E6EE669DA090270846F6F /* IOKit.framework */, + 7F7D0CDB3AC832BF221A6264 /* Carbon.framework */, + 41803CB46328617360EB7126 /* ForceFeedback.framework */, + 3D2C18455CC51ECC78C55220 /* CoreFoundation.framework */, + 7F5C040571280FD63B6900AA /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 45C13CF5123C598A0ECC1CD4 /* Products */ = { + isa = PBXGroup; + children = ( + 1CDD1F2D74ED225651426E4F /* testscale */, + ); + name = "Products"; + sourceTree = ""; + }; + 568416000E5979CE4A9B07B5 /* Projects */ = { + isa = PBXGroup; + children = ( + 17F90FFD39896CA2220E62DA /* SDL2main.xcodeproj */, + 67B07D395C536E7D041136EA /* SDL2test.xcodeproj */, + 319B4AC355290E8B7988714D /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 094C0168673D01ED02DA6559 /* Products */ = { + isa = PBXGroup; + children = ( + 0BC5668C2655352934CE638D /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 43BF4F6033DB2F443E3B2EB0 /* Products */ = { + isa = PBXGroup; + children = ( + 3F1704E222587110735D0416 /* libSDL2test.a */, + ); + name = Products; + sourceTree = ""; + }; + 2D3735827E174E0A1E0E426D /* Products */ = { + isa = PBXGroup; + children = ( + 1F2334F36CCA6E620E7E104D /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 0EC34CFC45CC683D7EBB5540 /* testscale */ = { + isa = PBXNativeTarget; + buildConfigurationList = 25AD405002C3531D24703F82 /* Build configuration list for PBXNativeTarget "testscale" */; + buildPhases = ( + 199A59146CA641AA22B930A3 /* Resources */, + 208462FC4C8275FF6B437D23 /* Sources */, + 42DC02D65D8203E2001E529F /* Frameworks */, + 9607AE3710C85E8F00CD1376 /* Postbuild */, + ); + buildRules = ( + ); + dependencies = ( + 6C2E5EFD6B391AFE29F74168 /* PBXTargetDependency */, + 40A9274C023D14501F1E0B09 /* PBXTargetDependency */, + 739B03B657397C6C3BBA4B10 /* PBXTargetDependency */, + ); + name = "testscale"; + productInstallPath = "$(HOME)/bin"; + productName = "testscale"; + productReference = 1CDD1F2D74ED225651426E4F /* testscale */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testscale" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 2D9A6CE93F294BE420CB2D03 /* testscale */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 094C0168673D01ED02DA6559 /* Products */; + ProjectRef = 17F90FFD39896CA2220E62DA /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 43BF4F6033DB2F443E3B2EB0 /* Products */; + ProjectRef = 67B07D395C536E7D041136EA /* SDL2test.xcodeproj */; + }, + { + ProductGroup = 2D3735827E174E0A1E0E426D /* Products */; + ProjectRef = 319B4AC355290E8B7988714D /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 0EC34CFC45CC683D7EBB5540 /* testscale */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 0BC5668C2655352934CE638D /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 65CC46BD4FDF3CCC0AE631B2 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 3F1704E222587110735D0416 /* libSDL2test.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2test.a"; + remoteRef = 2CAF4B5D7DDE7D0364B5662E /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 1F2334F36CCA6E620E7E104D /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 03973B8B23E47C71118E0561 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 199A59146CA641AA22B930A3 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 9607AE3710C85E8F00CD1376 /* Postbuild */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = Postbuild; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "if [ \"${CONFIGURATION}\" = \"Debug Universal\" ]; then\nif [ ! -d \"./Build/Debug\" ]; then mkdir -p \"./Build/Debug\"; fi\ncp \"./../../../../../test/sample.bmp\" \"./Build/Debug/sample.bmp\"\ncp \"./../../../../../test/icon.bmp\" \"./Build/Debug/icon.bmp\"\nfi\nif [ \"${CONFIGURATION}\" = \"Debug Native\" ]; then\nif [ ! -d \"./Build/Debug\" ]; then mkdir -p \"./Build/Debug\"; fi\ncp \"./../../../../../test/sample.bmp\" \"./Build/Debug/sample.bmp\"\ncp \"./../../../../../test/icon.bmp\" \"./Build/Debug/icon.bmp\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Universal\" ]; then\nif [ ! -d \"./Build/Release\" ]; then mkdir -p \"./Build/Release\"; fi\ncp \"./../../../../../test/sample.bmp\" \"./Build/Release/sample.bmp\"\ncp \"./../../../../../test/icon.bmp\" \"./Build/Release/icon.bmp\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Native\" ]; then\nif [ ! -d \"./Build/Release\" ]; then mkdir -p \"./Build/Release\"; fi\ncp \"./../../../../../test/sample.bmp\" \"./Build/Release/sample.bmp\"\ncp \"./../../../../../test/icon.bmp\" \"./Build/Release/icon.bmp\"\nfi"; + }; +/* End PBXShellScriptBuildPhase section */ +/* Begin PBXSourcesBuildPhase section */ + 208462FC4C8275FF6B437D23 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 5C7E74D2428F5D0E5D255890 /* testscale.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 6C2E5EFD6B391AFE29F74168 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 5478435D3A932BF85FEF5978 /* PBXContainerItemProxy */; + }; + 40A9274C023D14501F1E0B09 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2test.a"; + targetProxy = 695812884A4E4E67742C271C /* PBXContainerItemProxy */; + }; + 739B03B657397C6C3BBA4B10 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 614474296E7608606F001FE6 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 38D3412E523F2FF65E750295 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testscale"; + }; + name = "Debug Universal"; + }; + 7BB4091A16586ED03AB36A59 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testscale"; + }; + name = "Debug Native"; + }; + 16FB63191DCC7389511770EA /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testscale"; + }; + name = "Release Universal"; + }; + 067C640A78A9459B4C4A1F7F /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testscale"; + }; + name = "Release Native"; + }; + 42050D2904E37ACF6D4A536A /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 7EA309485CBB312912310BE7 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 2B5E48ED6C3C057621381841 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 051B6D755DB943992EED6558 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 25AD405002C3531D24703F82 /* Build configuration list for PBXNativeTarget "testscale" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 38D3412E523F2FF65E750295 /* Debug Universal */, + 7BB4091A16586ED03AB36A59 /* Debug Native */, + 16FB63191DCC7389511770EA /* Release Universal */, + 067C640A78A9459B4C4A1F7F /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testscale" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 42050D2904E37ACF6D4A536A /* Debug Universal */, + 7EA309485CBB312912310BE7 /* Debug Native */, + 2B5E48ED6C3C057621381841 /* Release Universal */, + 051B6D755DB943992EED6558 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode3/tests/testsem/testsem.xcodeproj/project.pbxproj b/premake/Xcode/Xcode3/tests/testsem/testsem.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..f93e65c5faee9 --- /dev/null +++ b/premake/Xcode/Xcode3/tests/testsem/testsem.xcodeproj/project.pbxproj @@ -0,0 +1,457 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 23D727C066BC73B378660B91 /* testsem.c in Sources */ = {isa = PBXBuildFile; fileRef = 3DC63D4043E05E614C373246 /* testsem.c */; }; + 79C46DFD3D8051E940E505D3 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6D4B71C230540E5312A67585 /* AudioToolbox.framework */; }; + 68DE767B074D5196705C5DF9 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 64486EA133A1171D30D05825 /* AudioUnit.framework */; }; + 2E1E631E63EF68CE3D6A179D /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0E42372420093EBA66A64A47 /* Cocoa.framework */; }; + 39FC72F1593359D42D10293E /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 746C05F74057432023DF08F3 /* CoreAudio.framework */; }; + 79EE18E441E46B8A5F440449 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5FD805DF7FB835B5371B626B /* IOKit.framework */; }; + 445812F25E9F286875527298 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 70E22DCD04214F5B1DB15F6C /* Carbon.framework */; }; + 00332AC262B35C453AE46753 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6B15710922315C8E0DF36B0C /* ForceFeedback.framework */; }; + 7CE41CCD694C08B66D543266 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1F0F147E6D2D32883850181A /* CoreFoundation.framework */; }; + 46AF197E50572E3056B2526C /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 61DD30B97AB666044A674524 /* OpenGL.framework */; }; + 1E623EDF37066D130CF14144 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 77011CA06E2E371F0E1747D3 /* libSDL2main.a */; }; + 71EA42207B42562F5E850747 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 69346C0D7A5A6336006B1CAE /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 5D8150C16B4F49401E2B334B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 34CB05B5562E70E84B1975BD /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 58DC62993160374E09FF7AD6; + remoteInfo = "libSDL2main.a"; + }; + 1B10591925DA12883FA50675 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 34CB05B5562E70E84B1975BD /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 0E7126A94A11494963D3548B; + remoteInfo = "libSDL2main.a"; + }; + 339641237FD2473A5E7362AA /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0FB06F434A7D007B1B2344F7 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 07D004B11E733F1F0EA93105; + remoteInfo = "libSDL2.a"; + }; + 0B0E63E30633081752D94589 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0FB06F434A7D007B1B2344F7 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 58C10ED14175754444033E0E; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 3DC63D4043E05E614C373246 /* testsem.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testsem.c"; path = "../../../../../test/testsem.c"; sourceTree = ""; }; + 6D4B71C230540E5312A67585 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 64486EA133A1171D30D05825 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 0E42372420093EBA66A64A47 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 746C05F74057432023DF08F3 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 5FD805DF7FB835B5371B626B /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 70E22DCD04214F5B1DB15F6C /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 6B15710922315C8E0DF36B0C /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 1F0F147E6D2D32883850181A /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 61DD30B97AB666044A674524 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 740F3E5D0BEF048353CF5D3D /* testsem */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testsem"; path = "testsem"; sourceTree = BUILT_PRODUCTS_DIR; }; + 34CB05B5562E70E84B1975BD /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 0FB06F434A7D007B1B2344F7 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 4D0337447364434E68AC7C13 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 79C46DFD3D8051E940E505D3 /* AudioToolbox.framework in Frameworks */, + 68DE767B074D5196705C5DF9 /* AudioUnit.framework in Frameworks */, + 2E1E631E63EF68CE3D6A179D /* Cocoa.framework in Frameworks */, + 39FC72F1593359D42D10293E /* CoreAudio.framework in Frameworks */, + 79EE18E441E46B8A5F440449 /* IOKit.framework in Frameworks */, + 445812F25E9F286875527298 /* Carbon.framework in Frameworks */, + 00332AC262B35C453AE46753 /* ForceFeedback.framework in Frameworks */, + 7CE41CCD694C08B66D543266 /* CoreFoundation.framework in Frameworks */, + 46AF197E50572E3056B2526C /* OpenGL.framework in Frameworks */, + 1E623EDF37066D130CF14144 /* libSDL2main.a in Frameworks */, + 71EA42207B42562F5E850747 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 7BBF483138F638271C0B3153 /* testsem */ = { + isa = PBXGroup; + children = ( + 4F2912F91AF36CB64E623EFC /* test */, + 1764508366145E0400845D87 /* Frameworks */, + 59544DA468A5578103583F02 /* Products */, + 4AEA54AE768D59E8166C3D28 /* Projects */, + ); + name = "testsem"; + sourceTree = ""; + }; + 4F2912F91AF36CB64E623EFC /* test */ = { + isa = PBXGroup; + children = ( + 3DC63D4043E05E614C373246 /* testsem.c */, + ); + name = "test"; + sourceTree = ""; + }; + 1764508366145E0400845D87 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 6D4B71C230540E5312A67585 /* AudioToolbox.framework */, + 64486EA133A1171D30D05825 /* AudioUnit.framework */, + 0E42372420093EBA66A64A47 /* Cocoa.framework */, + 746C05F74057432023DF08F3 /* CoreAudio.framework */, + 5FD805DF7FB835B5371B626B /* IOKit.framework */, + 70E22DCD04214F5B1DB15F6C /* Carbon.framework */, + 6B15710922315C8E0DF36B0C /* ForceFeedback.framework */, + 1F0F147E6D2D32883850181A /* CoreFoundation.framework */, + 61DD30B97AB666044A674524 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 59544DA468A5578103583F02 /* Products */ = { + isa = PBXGroup; + children = ( + 740F3E5D0BEF048353CF5D3D /* testsem */, + ); + name = "Products"; + sourceTree = ""; + }; + 4AEA54AE768D59E8166C3D28 /* Projects */ = { + isa = PBXGroup; + children = ( + 34CB05B5562E70E84B1975BD /* SDL2main.xcodeproj */, + 0FB06F434A7D007B1B2344F7 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 659660EA44F207D27BFC71D3 /* Products */ = { + isa = PBXGroup; + children = ( + 77011CA06E2E371F0E1747D3 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 43C27A16721169F641C46197 /* Products */ = { + isa = PBXGroup; + children = ( + 69346C0D7A5A6336006B1CAE /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 522E4E093832135C2C4025DA /* testsem */ = { + isa = PBXNativeTarget; + buildConfigurationList = 7E62068E021B5BEA74A939B4 /* Build configuration list for PBXNativeTarget "testsem" */; + buildPhases = ( + 116843D511AA349D4B307059 /* Resources */, + 0F912A1002BD727B18D571CE /* Sources */, + 4D0337447364434E68AC7C13 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 222C22526E4E4A673B3C04E0 /* PBXTargetDependency */, + 2E2D469655C32E386F1417AB /* PBXTargetDependency */, + ); + name = "testsem"; + productInstallPath = "$(HOME)/bin"; + productName = "testsem"; + productReference = 740F3E5D0BEF048353CF5D3D /* testsem */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testsem" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 7BBF483138F638271C0B3153 /* testsem */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 659660EA44F207D27BFC71D3 /* Products */; + ProjectRef = 34CB05B5562E70E84B1975BD /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 43C27A16721169F641C46197 /* Products */; + ProjectRef = 0FB06F434A7D007B1B2344F7 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 522E4E093832135C2C4025DA /* testsem */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 77011CA06E2E371F0E1747D3 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 5D8150C16B4F49401E2B334B /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 69346C0D7A5A6336006B1CAE /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 339641237FD2473A5E7362AA /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 116843D511AA349D4B307059 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 0F912A1002BD727B18D571CE /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 23D727C066BC73B378660B91 /* testsem.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 222C22526E4E4A673B3C04E0 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 1B10591925DA12883FA50675 /* PBXContainerItemProxy */; + }; + 2E2D469655C32E386F1417AB /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 0B0E63E30633081752D94589 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 7048280F2E9E372505836FCB /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testsem"; + }; + name = "Debug Universal"; + }; + 157B62A8427F2EF5665049AA /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testsem"; + }; + name = "Debug Native"; + }; + 36E32B38286B3C5915295CAB /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testsem"; + }; + name = "Release Universal"; + }; + 38FB05EE6260400735ED5DD2 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testsem"; + }; + name = "Release Native"; + }; + 2D593B3A0AA5576E212E6396 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 64490E226FA359BF46AA4F5A /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 195A6625383F595B24581B85 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 2C4A3A796A7D45AD08F00038 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 7E62068E021B5BEA74A939B4 /* Build configuration list for PBXNativeTarget "testsem" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7048280F2E9E372505836FCB /* Debug Universal */, + 157B62A8427F2EF5665049AA /* Debug Native */, + 36E32B38286B3C5915295CAB /* Release Universal */, + 38FB05EE6260400735ED5DD2 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testsem" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 2D593B3A0AA5576E212E6396 /* Debug Universal */, + 64490E226FA359BF46AA4F5A /* Debug Native */, + 195A6625383F595B24581B85 /* Release Universal */, + 2C4A3A796A7D45AD08F00038 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode3/tests/testshader/testshader.xcodeproj/project.pbxproj b/premake/Xcode/Xcode3/tests/testshader/testshader.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..d676b84086518 --- /dev/null +++ b/premake/Xcode/Xcode3/tests/testshader/testshader.xcodeproj/project.pbxproj @@ -0,0 +1,478 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 23D051A629F740B60E253CB9 /* testshader.c in Sources */ = {isa = PBXBuildFile; fileRef = 134C74B1427128EE60A172E7 /* testshader.c */; }; + 382D14F447586A74066013BE /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2F9638AB656E238065CF7E96 /* AudioToolbox.framework */; }; + 41763EBD74246C48267307B9 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5AF068F34B7D000811A2404F /* AudioUnit.framework */; }; + 79EE2FCC7F54000829121C9F /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2573329901D62DDB06FE117A /* Cocoa.framework */; }; + 3C252B7B191554CD7DAB0703 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 15167E334C2E06C906711189 /* CoreAudio.framework */; }; + 40330C033C3E33FB54E51BB7 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6C89263646260FAB3D7A1961 /* IOKit.framework */; }; + 5C8E6FC6322C12CB7A8F586D /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 21D75E275FDC0F5D55947B75 /* Carbon.framework */; }; + 3F7D384D5E783FAC44A80F2E /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 65AC24DF57DF0F113C531E41 /* ForceFeedback.framework */; }; + 29FD532E2B3819D645AD0812 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 157D6BA86B493563050D502A /* CoreFoundation.framework */; }; + 7A58360130FF499B1987103B /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 590216181858482E648D0B1E /* OpenGL.framework */; }; + 399C6FFC268A2F921D0F53E3 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 34C72A6A21902BF629147CCC /* libSDL2main.a */; }; + 58656ADB0ADE0DEA1C053C03 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 78C170FF352268D645B70248 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 07355230088E4BB107E96FAB /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 11894E51596031A03F2138F6 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 58DC62993160374E09FF7AD6; + remoteInfo = "libSDL2main.a"; + }; + 61552AFE1253241F7EE42C10 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 11894E51596031A03F2138F6 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 0E7126A94A11494963D3548B; + remoteInfo = "libSDL2main.a"; + }; + 018502242167787D6CB76865 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 70421877319763C546797101 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 07D004B11E733F1F0EA93105; + remoteInfo = "libSDL2.a"; + }; + 004B43E464D82EA41DA413F5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 70421877319763C546797101 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 58C10ED14175754444033E0E; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 134C74B1427128EE60A172E7 /* testshader.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testshader.c"; path = "../../../../../test/testshader.c"; sourceTree = ""; }; + 2F9638AB656E238065CF7E96 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 5AF068F34B7D000811A2404F /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 2573329901D62DDB06FE117A /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 15167E334C2E06C906711189 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 6C89263646260FAB3D7A1961 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 21D75E275FDC0F5D55947B75 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 65AC24DF57DF0F113C531E41 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 157D6BA86B493563050D502A /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 590216181858482E648D0B1E /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 4A8247A1301F68195E500DD7 /* testshader */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testshader"; path = "testshader"; sourceTree = BUILT_PRODUCTS_DIR; }; + 11894E51596031A03F2138F6 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 70421877319763C546797101 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 36233D85791E4B556C1151C9 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 382D14F447586A74066013BE /* AudioToolbox.framework in Frameworks */, + 41763EBD74246C48267307B9 /* AudioUnit.framework in Frameworks */, + 79EE2FCC7F54000829121C9F /* Cocoa.framework in Frameworks */, + 3C252B7B191554CD7DAB0703 /* CoreAudio.framework in Frameworks */, + 40330C033C3E33FB54E51BB7 /* IOKit.framework in Frameworks */, + 5C8E6FC6322C12CB7A8F586D /* Carbon.framework in Frameworks */, + 3F7D384D5E783FAC44A80F2E /* ForceFeedback.framework in Frameworks */, + 29FD532E2B3819D645AD0812 /* CoreFoundation.framework in Frameworks */, + 7A58360130FF499B1987103B /* OpenGL.framework in Frameworks */, + 399C6FFC268A2F921D0F53E3 /* libSDL2main.a in Frameworks */, + 58656ADB0ADE0DEA1C053C03 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 65182F0C69806E635014632D /* testshader */ = { + isa = PBXGroup; + children = ( + 2D9925B750835F5F69B85B8B /* test */, + 52570C4B279F559944E13D28 /* Frameworks */, + 2DC4606B317D08903A3F278E /* Products */, + 7B763C5F3B38054104171266 /* Projects */, + ); + name = "testshader"; + sourceTree = ""; + }; + 2D9925B750835F5F69B85B8B /* test */ = { + isa = PBXGroup; + children = ( + 134C74B1427128EE60A172E7 /* testshader.c */, + ); + name = "test"; + sourceTree = ""; + }; + 52570C4B279F559944E13D28 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 2F9638AB656E238065CF7E96 /* AudioToolbox.framework */, + 5AF068F34B7D000811A2404F /* AudioUnit.framework */, + 2573329901D62DDB06FE117A /* Cocoa.framework */, + 15167E334C2E06C906711189 /* CoreAudio.framework */, + 6C89263646260FAB3D7A1961 /* IOKit.framework */, + 21D75E275FDC0F5D55947B75 /* Carbon.framework */, + 65AC24DF57DF0F113C531E41 /* ForceFeedback.framework */, + 157D6BA86B493563050D502A /* CoreFoundation.framework */, + 590216181858482E648D0B1E /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 2DC4606B317D08903A3F278E /* Products */ = { + isa = PBXGroup; + children = ( + 4A8247A1301F68195E500DD7 /* testshader */, + ); + name = "Products"; + sourceTree = ""; + }; + 7B763C5F3B38054104171266 /* Projects */ = { + isa = PBXGroup; + children = ( + 11894E51596031A03F2138F6 /* SDL2main.xcodeproj */, + 70421877319763C546797101 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 3D3F7D1241E953EC457A6124 /* Products */ = { + isa = PBXGroup; + children = ( + 34C72A6A21902BF629147CCC /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 56B6477D64BC2B14331D4437 /* Products */ = { + isa = PBXGroup; + children = ( + 78C170FF352268D645B70248 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 1E840B4F16662F9E4EA1340A /* testshader */ = { + isa = PBXNativeTarget; + buildConfigurationList = 07E569961E9411B33C5D286D /* Build configuration list for PBXNativeTarget "testshader" */; + buildPhases = ( + 45DF56211C7F58150ACC1409 /* Resources */, + 7DD46A8703460AFF1B131FC2 /* Sources */, + 36233D85791E4B556C1151C9 /* Frameworks */, + 9607AE3710C85E8F00CD1376 /* Postbuild */, + ); + buildRules = ( + ); + dependencies = ( + 62FA1686515F68E611693F22 /* PBXTargetDependency */, + 65A271FB45ED68A608E264B5 /* PBXTargetDependency */, + ); + name = "testshader"; + productInstallPath = "$(HOME)/bin"; + productName = "testshader"; + productReference = 4A8247A1301F68195E500DD7 /* testshader */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testshader" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 65182F0C69806E635014632D /* testshader */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 3D3F7D1241E953EC457A6124 /* Products */; + ProjectRef = 11894E51596031A03F2138F6 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 56B6477D64BC2B14331D4437 /* Products */; + ProjectRef = 70421877319763C546797101 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 1E840B4F16662F9E4EA1340A /* testshader */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 34C72A6A21902BF629147CCC /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 07355230088E4BB107E96FAB /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 78C170FF352268D645B70248 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 018502242167787D6CB76865 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 45DF56211C7F58150ACC1409 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 9607AE3710C85E8F00CD1376 /* Postbuild */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = Postbuild; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "if [ \"${CONFIGURATION}\" = \"Debug Universal\" ]; then\nif [ ! -d \"./Build/Debug\" ]; then mkdir -p \"./Build/Debug\"; fi\ncp \"./../../../../../test/icon.bmp\" \"./Build/Debug/icon.bmp\"\nfi\nif [ \"${CONFIGURATION}\" = \"Debug Native\" ]; then\nif [ ! -d \"./Build/Debug\" ]; then mkdir -p \"./Build/Debug\"; fi\ncp \"./../../../../../test/icon.bmp\" \"./Build/Debug/icon.bmp\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Universal\" ]; then\nif [ ! -d \"./Build/Release\" ]; then mkdir -p \"./Build/Release\"; fi\ncp \"./../../../../../test/icon.bmp\" \"./Build/Release/icon.bmp\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Native\" ]; then\nif [ ! -d \"./Build/Release\" ]; then mkdir -p \"./Build/Release\"; fi\ncp \"./../../../../../test/icon.bmp\" \"./Build/Release/icon.bmp\"\nfi"; + }; +/* End PBXShellScriptBuildPhase section */ +/* Begin PBXSourcesBuildPhase section */ + 7DD46A8703460AFF1B131FC2 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 23D051A629F740B60E253CB9 /* testshader.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 62FA1686515F68E611693F22 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 61552AFE1253241F7EE42C10 /* PBXContainerItemProxy */; + }; + 65A271FB45ED68A608E264B5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 004B43E464D82EA41DA413F5 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 01D9087D534B7CE341305890 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testshader"; + }; + name = "Debug Universal"; + }; + 1202753D23397666358A010B /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testshader"; + }; + name = "Debug Native"; + }; + 4BAF54AF4A05157B5986250E /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testshader"; + }; + name = "Release Universal"; + }; + 47257A7C1DA17473369B0F99 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testshader"; + }; + name = "Release Native"; + }; + 7B0D26586A397937134463E2 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + "HAVE_OPENGL", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 25AC4C1D043159711F660C26 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + "HAVE_OPENGL", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 41AE249E2B16442B1A3254CE /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + "HAVE_OPENGL", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 07E771BF6D7201C0194804F6 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + "HAVE_OPENGL", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 07E569961E9411B33C5D286D /* Build configuration list for PBXNativeTarget "testshader" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 01D9087D534B7CE341305890 /* Debug Universal */, + 1202753D23397666358A010B /* Debug Native */, + 4BAF54AF4A05157B5986250E /* Release Universal */, + 47257A7C1DA17473369B0F99 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testshader" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7B0D26586A397937134463E2 /* Debug Universal */, + 25AC4C1D043159711F660C26 /* Debug Native */, + 41AE249E2B16442B1A3254CE /* Release Universal */, + 07E771BF6D7201C0194804F6 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode3/tests/testshape/testshape.xcodeproj/project.pbxproj b/premake/Xcode/Xcode3/tests/testshape/testshape.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..28c88508eb3e0 --- /dev/null +++ b/premake/Xcode/Xcode3/tests/testshape/testshape.xcodeproj/project.pbxproj @@ -0,0 +1,474 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 202628995578715C6F5637E6 /* testshape.c in Sources */ = {isa = PBXBuildFile; fileRef = 43E24949641949004B330CAE /* testshape.c */; }; + 788117C91E8415DC3321536A /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 72D8592724162CF94B460B9D /* AudioToolbox.framework */; }; + 734A25BC7D5823D04BE7375C /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 54547D3A0DBE4FA7056B51EC /* AudioUnit.framework */; }; + 17E42AF547993879442C3108 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0B16756D762D04AD0DB22708 /* Cocoa.framework */; }; + 709954A2023777BB558545D2 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B036C48219E21265EE27992 /* CoreAudio.framework */; }; + 506A736657DC4736575E7CBF /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1B5B25FF0A8330761456538E /* IOKit.framework */; }; + 77B3169B22CF6A4F73A303DA /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 65B8302030B00C5A033F3E29 /* Carbon.framework */; }; + 45062A8B0E0322773F490BAB /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 11DA2C82465663C7424D4E3A /* ForceFeedback.framework */; }; + 17F2356A544A561848142CE1 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0FB9466E6DFA48E158636096 /* CoreFoundation.framework */; }; + 26D43E2850235FEA357A5E50 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 732B1B64571C2542457D1813 /* OpenGL.framework */; }; + 5FCF2AC22A4201B734B7756F /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 005F68A0073E7FFC7B8434D6 /* libSDL2main.a */; }; + 709156165A287C716B6339E5 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6D1469BB087227AB70854EA9 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 2384308443B135C947953CD0 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 67120B7E04F779A22B45751D /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 58DC62993160374E09FF7AD6; + remoteInfo = "libSDL2main.a"; + }; + 00853D8C601C54567F116D02 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 67120B7E04F779A22B45751D /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 0E7126A94A11494963D3548B; + remoteInfo = "libSDL2main.a"; + }; + 20520A1452E97A671C5A0639 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 55AA1BF734016AF247A5433B /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 07D004B11E733F1F0EA93105; + remoteInfo = "libSDL2.a"; + }; + 1BA16A511E0B21FE310003A3 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 55AA1BF734016AF247A5433B /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 58C10ED14175754444033E0E; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 43E24949641949004B330CAE /* testshape.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testshape.c"; path = "../../../../../test/testshape.c"; sourceTree = ""; }; + 72D8592724162CF94B460B9D /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 54547D3A0DBE4FA7056B51EC /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 0B16756D762D04AD0DB22708 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 3B036C48219E21265EE27992 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 1B5B25FF0A8330761456538E /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 65B8302030B00C5A033F3E29 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 11DA2C82465663C7424D4E3A /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 0FB9466E6DFA48E158636096 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 732B1B64571C2542457D1813 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 5C3739896E223879365B4DE4 /* testshape */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testshape"; path = "testshape"; sourceTree = BUILT_PRODUCTS_DIR; }; + 67120B7E04F779A22B45751D /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 55AA1BF734016AF247A5433B /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 3E8C126F5ABF48AB57426F58 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 788117C91E8415DC3321536A /* AudioToolbox.framework in Frameworks */, + 734A25BC7D5823D04BE7375C /* AudioUnit.framework in Frameworks */, + 17E42AF547993879442C3108 /* Cocoa.framework in Frameworks */, + 709954A2023777BB558545D2 /* CoreAudio.framework in Frameworks */, + 506A736657DC4736575E7CBF /* IOKit.framework in Frameworks */, + 77B3169B22CF6A4F73A303DA /* Carbon.framework in Frameworks */, + 45062A8B0E0322773F490BAB /* ForceFeedback.framework in Frameworks */, + 17F2356A544A561848142CE1 /* CoreFoundation.framework in Frameworks */, + 26D43E2850235FEA357A5E50 /* OpenGL.framework in Frameworks */, + 5FCF2AC22A4201B734B7756F /* libSDL2main.a in Frameworks */, + 709156165A287C716B6339E5 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 5D7D4BAD6D647D711B6D19CE /* testshape */ = { + isa = PBXGroup; + children = ( + 5CD208E04E0E7A0851C371DC /* test */, + 6AE30425336078A52B7B221A /* Frameworks */, + 766D2A792C7D7D73113560E7 /* Products */, + 02AE6DE75BDE0A34746B344D /* Projects */, + ); + name = "testshape"; + sourceTree = ""; + }; + 5CD208E04E0E7A0851C371DC /* test */ = { + isa = PBXGroup; + children = ( + 43E24949641949004B330CAE /* testshape.c */, + ); + name = "test"; + sourceTree = ""; + }; + 6AE30425336078A52B7B221A /* Frameworks */ = { + isa = PBXGroup; + children = ( + 72D8592724162CF94B460B9D /* AudioToolbox.framework */, + 54547D3A0DBE4FA7056B51EC /* AudioUnit.framework */, + 0B16756D762D04AD0DB22708 /* Cocoa.framework */, + 3B036C48219E21265EE27992 /* CoreAudio.framework */, + 1B5B25FF0A8330761456538E /* IOKit.framework */, + 65B8302030B00C5A033F3E29 /* Carbon.framework */, + 11DA2C82465663C7424D4E3A /* ForceFeedback.framework */, + 0FB9466E6DFA48E158636096 /* CoreFoundation.framework */, + 732B1B64571C2542457D1813 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 766D2A792C7D7D73113560E7 /* Products */ = { + isa = PBXGroup; + children = ( + 5C3739896E223879365B4DE4 /* testshape */, + ); + name = "Products"; + sourceTree = ""; + }; + 02AE6DE75BDE0A34746B344D /* Projects */ = { + isa = PBXGroup; + children = ( + 67120B7E04F779A22B45751D /* SDL2main.xcodeproj */, + 55AA1BF734016AF247A5433B /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 49F435A3218F4BA0205559A6 /* Products */ = { + isa = PBXGroup; + children = ( + 005F68A0073E7FFC7B8434D6 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 487B0976429814BD155C6CAE /* Products */ = { + isa = PBXGroup; + children = ( + 6D1469BB087227AB70854EA9 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 35AA427877B403F005830AC6 /* testshape */ = { + isa = PBXNativeTarget; + buildConfigurationList = 193B2B3337325C373BD14073 /* Build configuration list for PBXNativeTarget "testshape" */; + buildPhases = ( + 5AE51D66204A1AA957ED31CB /* Resources */, + 3BE6230259D825610F5954CA /* Sources */, + 3E8C126F5ABF48AB57426F58 /* Frameworks */, + 9607AE3710C85E8F00CD1376 /* Postbuild */, + ); + buildRules = ( + ); + dependencies = ( + 311D1281113535BC65B42833 /* PBXTargetDependency */, + 75D06A7C056D7268208F223B /* PBXTargetDependency */, + ); + name = "testshape"; + productInstallPath = "$(HOME)/bin"; + productName = "testshape"; + productReference = 5C3739896E223879365B4DE4 /* testshape */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testshape" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 5D7D4BAD6D647D711B6D19CE /* testshape */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 49F435A3218F4BA0205559A6 /* Products */; + ProjectRef = 67120B7E04F779A22B45751D /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 487B0976429814BD155C6CAE /* Products */; + ProjectRef = 55AA1BF734016AF247A5433B /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 35AA427877B403F005830AC6 /* testshape */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 005F68A0073E7FFC7B8434D6 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 2384308443B135C947953CD0 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 6D1469BB087227AB70854EA9 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 20520A1452E97A671C5A0639 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 5AE51D66204A1AA957ED31CB /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 9607AE3710C85E8F00CD1376 /* Postbuild */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = Postbuild; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "if [ \"${CONFIGURATION}\" = \"Debug Universal\" ]; then\nif [ ! -d \"./Build/Debug/shapes\" ]; then mkdir -p \"./Build/Debug/shapes\"; fi\ncp ./../../../../../test/shapes/*.bmp \"./Build/Debug/shapes\"\nfi\nif [ \"${CONFIGURATION}\" = \"Debug Native\" ]; then\nif [ ! -d \"./Build/Debug/shapes\" ]; then mkdir -p \"./Build/Debug/shapes\"; fi\ncp ./../../../../../test/shapes/*.bmp \"./Build/Debug/shapes\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Universal\" ]; then\nif [ ! -d \"./Build/Release/shapes\" ]; then mkdir -p \"./Build/Release/shapes\"; fi\ncp ./../../../../../test/shapes/*.bmp \"./Build/Release/shapes\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Native\" ]; then\nif [ ! -d \"./Build/Release/shapes\" ]; then mkdir -p \"./Build/Release/shapes\"; fi\ncp ./../../../../../test/shapes/*.bmp \"./Build/Release/shapes\"\nfi"; + }; +/* End PBXShellScriptBuildPhase section */ +/* Begin PBXSourcesBuildPhase section */ + 3BE6230259D825610F5954CA /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 202628995578715C6F5637E6 /* testshape.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 311D1281113535BC65B42833 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 00853D8C601C54567F116D02 /* PBXContainerItemProxy */; + }; + 75D06A7C056D7268208F223B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 1BA16A511E0B21FE310003A3 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 592F43A85686299E6E721640 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testshape"; + }; + name = "Debug Universal"; + }; + 78085C4758825991561F2095 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testshape"; + }; + name = "Debug Native"; + }; + 22E1002723CF734227D92CC2 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testshape"; + }; + name = "Release Universal"; + }; + 047130637117482F228B7442 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testshape"; + }; + name = "Release Native"; + }; + 7C8C7CFD7587313147A94909 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 31387F642C4233DB0E8B77CA /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 215701D2376A2E9B7AF05275 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 29844E000AE01A8D350A510D /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 193B2B3337325C373BD14073 /* Build configuration list for PBXNativeTarget "testshape" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 592F43A85686299E6E721640 /* Debug Universal */, + 78085C4758825991561F2095 /* Debug Native */, + 22E1002723CF734227D92CC2 /* Release Universal */, + 047130637117482F228B7442 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testshape" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7C8C7CFD7587313147A94909 /* Debug Universal */, + 31387F642C4233DB0E8B77CA /* Debug Native */, + 215701D2376A2E9B7AF05275 /* Release Universal */, + 29844E000AE01A8D350A510D /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode3/tests/testsprite2/testsprite2.xcodeproj/project.pbxproj b/premake/Xcode/Xcode3/tests/testsprite2/testsprite2.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..46667d7b24387 --- /dev/null +++ b/premake/Xcode/Xcode3/tests/testsprite2/testsprite2.xcodeproj/project.pbxproj @@ -0,0 +1,517 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 3EB57AB86FFE23F207D537AA /* testsprite2.c in Sources */ = {isa = PBXBuildFile; fileRef = 2A912E101D30786C09E95794 /* testsprite2.c */; }; + 087A1944451D2DA369184F1E /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2C8104694537524B61B218B0 /* AudioToolbox.framework */; }; + 68546BB2759652B31B21432E /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6618588939563E5E1F43181E /* AudioUnit.framework */; }; + 44791DCF02A874A118976C9D /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 064A109E14BF42380B651BDC /* Cocoa.framework */; }; + 183D70E81E9563380C4B1807 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 726B55980F35791C46607166 /* CoreAudio.framework */; }; + 5FC045FE3F3C1D5139544A77 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 243B45494B536CC32BE64580 /* IOKit.framework */; }; + 4CE77BFA714D0B841F8028EB /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5BBF75B02F7422997FB35CD1 /* Carbon.framework */; }; + 5F757CA42CFA6B45342F7CDB /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 198A6EF667E5219C2E8E6F70 /* ForceFeedback.framework */; }; + 08E314F563FF09A96FC63B90 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3C4B69785D1400934B9D3169 /* CoreFoundation.framework */; }; + 380B6B2A16CE56B7347E45CB /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 75A13ECB147671C62FD14B58 /* OpenGL.framework */; }; + 53BA19D50A584D911B761477 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 71253F5D764F41F351093C58 /* libSDL2main.a */; }; + 7254112B23CE415D785955E3 /* libSDL2test.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0B5C4F7D3911478D04F65D64 /* libSDL2test.a */; }; + 09CB2BED55A5675D228C29D3 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C3356376A7540802F88195A /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 1E416B30527921DF534D7CB7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 4A07383B4BB8387E5D8D5BC7 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 58DC62993160374E09FF7AD6; + remoteInfo = "libSDL2main.a"; + }; + 7F3F389B51573B773AE07791 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 4A07383B4BB8387E5D8D5BC7 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 0E7126A94A11494963D3548B; + remoteInfo = "libSDL2main.a"; + }; + 396811F314DA212D116460B0 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 42463E5A42B4529479332675 /* SDL2test.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 1E1175156F97314C291323CB; + remoteInfo = "libSDL2test.a"; + }; + 6EC218C470B6516954552546 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 42463E5A42B4529479332675 /* SDL2test.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7CD70F5D43DA554D66287CFC; + remoteInfo = "libSDL2test.a"; + }; + 74530E532BD76A4B74FC7F15 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 5DB2012E79D1214636524DBF /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 07D004B11E733F1F0EA93105; + remoteInfo = "libSDL2.a"; + }; + 416703454AE111545D5F42B8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 5DB2012E79D1214636524DBF /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 58C10ED14175754444033E0E; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 2A912E101D30786C09E95794 /* testsprite2.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testsprite2.c"; path = "../../../../../test/testsprite2.c"; sourceTree = ""; }; + 2C8104694537524B61B218B0 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 6618588939563E5E1F43181E /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 064A109E14BF42380B651BDC /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 726B55980F35791C46607166 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 243B45494B536CC32BE64580 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 5BBF75B02F7422997FB35CD1 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 198A6EF667E5219C2E8E6F70 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 3C4B69785D1400934B9D3169 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 75A13ECB147671C62FD14B58 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 73D147E54C5433A953971D4B /* testsprite2 */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testsprite2"; path = "testsprite2"; sourceTree = BUILT_PRODUCTS_DIR; }; + 4A07383B4BB8387E5D8D5BC7 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 42463E5A42B4529479332675 /* SDL2test.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2test.xcodeproj"; path = "../../SDL2test/SDL2test.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 5DB2012E79D1214636524DBF /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 29B6101B1E104C4613B163D4 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 087A1944451D2DA369184F1E /* AudioToolbox.framework in Frameworks */, + 68546BB2759652B31B21432E /* AudioUnit.framework in Frameworks */, + 44791DCF02A874A118976C9D /* Cocoa.framework in Frameworks */, + 183D70E81E9563380C4B1807 /* CoreAudio.framework in Frameworks */, + 5FC045FE3F3C1D5139544A77 /* IOKit.framework in Frameworks */, + 4CE77BFA714D0B841F8028EB /* Carbon.framework in Frameworks */, + 5F757CA42CFA6B45342F7CDB /* ForceFeedback.framework in Frameworks */, + 08E314F563FF09A96FC63B90 /* CoreFoundation.framework in Frameworks */, + 380B6B2A16CE56B7347E45CB /* OpenGL.framework in Frameworks */, + 53BA19D50A584D911B761477 /* libSDL2main.a in Frameworks */, + 7254112B23CE415D785955E3 /* libSDL2test.a in Frameworks */, + 09CB2BED55A5675D228C29D3 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 0F951D9E01DE5764063B320A /* testsprite2 */ = { + isa = PBXGroup; + children = ( + 6ADD0DB31A7C64810BF443A3 /* test */, + 1D8A702E686D5B7D11A779A8 /* Frameworks */, + 40EE4A173C0117077E861AD6 /* Products */, + 6E675BE807B31BCB59B04E8F /* Projects */, + ); + name = "testsprite2"; + sourceTree = ""; + }; + 6ADD0DB31A7C64810BF443A3 /* test */ = { + isa = PBXGroup; + children = ( + 2A912E101D30786C09E95794 /* testsprite2.c */, + ); + name = "test"; + sourceTree = ""; + }; + 1D8A702E686D5B7D11A779A8 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 2C8104694537524B61B218B0 /* AudioToolbox.framework */, + 6618588939563E5E1F43181E /* AudioUnit.framework */, + 064A109E14BF42380B651BDC /* Cocoa.framework */, + 726B55980F35791C46607166 /* CoreAudio.framework */, + 243B45494B536CC32BE64580 /* IOKit.framework */, + 5BBF75B02F7422997FB35CD1 /* Carbon.framework */, + 198A6EF667E5219C2E8E6F70 /* ForceFeedback.framework */, + 3C4B69785D1400934B9D3169 /* CoreFoundation.framework */, + 75A13ECB147671C62FD14B58 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 40EE4A173C0117077E861AD6 /* Products */ = { + isa = PBXGroup; + children = ( + 73D147E54C5433A953971D4B /* testsprite2 */, + ); + name = "Products"; + sourceTree = ""; + }; + 6E675BE807B31BCB59B04E8F /* Projects */ = { + isa = PBXGroup; + children = ( + 4A07383B4BB8387E5D8D5BC7 /* SDL2main.xcodeproj */, + 42463E5A42B4529479332675 /* SDL2test.xcodeproj */, + 5DB2012E79D1214636524DBF /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 7AB27AD56CB82C38517F043E /* Products */ = { + isa = PBXGroup; + children = ( + 71253F5D764F41F351093C58 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 71C168EC0C974C962B1926BC /* Products */ = { + isa = PBXGroup; + children = ( + 0B5C4F7D3911478D04F65D64 /* libSDL2test.a */, + ); + name = Products; + sourceTree = ""; + }; + 756E3CB600DF45B31E4B768C /* Products */ = { + isa = PBXGroup; + children = ( + 5C3356376A7540802F88195A /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 35687872140D74AE6C872222 /* testsprite2 */ = { + isa = PBXNativeTarget; + buildConfigurationList = 16886C987897338B04DA2605 /* Build configuration list for PBXNativeTarget "testsprite2" */; + buildPhases = ( + 18450EBA03DA7D8F43085EE2 /* Resources */, + 7E4517DF5BC63B2F1B251F2E /* Sources */, + 29B6101B1E104C4613B163D4 /* Frameworks */, + 9607AE3710C85E8F00CD1376 /* Postbuild */, + ); + buildRules = ( + ); + dependencies = ( + 52B42E1E696C46266BEA61EE /* PBXTargetDependency */, + 1976183F0FB53D2149A16D9B /* PBXTargetDependency */, + 5B573B543FBA0DD522E169BD /* PBXTargetDependency */, + ); + name = "testsprite2"; + productInstallPath = "$(HOME)/bin"; + productName = "testsprite2"; + productReference = 73D147E54C5433A953971D4B /* testsprite2 */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testsprite2" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 0F951D9E01DE5764063B320A /* testsprite2 */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 7AB27AD56CB82C38517F043E /* Products */; + ProjectRef = 4A07383B4BB8387E5D8D5BC7 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 71C168EC0C974C962B1926BC /* Products */; + ProjectRef = 42463E5A42B4529479332675 /* SDL2test.xcodeproj */; + }, + { + ProductGroup = 756E3CB600DF45B31E4B768C /* Products */; + ProjectRef = 5DB2012E79D1214636524DBF /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 35687872140D74AE6C872222 /* testsprite2 */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 71253F5D764F41F351093C58 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 1E416B30527921DF534D7CB7 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 0B5C4F7D3911478D04F65D64 /* libSDL2test.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2test.a"; + remoteRef = 396811F314DA212D116460B0 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 5C3356376A7540802F88195A /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 74530E532BD76A4B74FC7F15 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 18450EBA03DA7D8F43085EE2 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 9607AE3710C85E8F00CD1376 /* Postbuild */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = Postbuild; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "if [ \"${CONFIGURATION}\" = \"Debug Universal\" ]; then\nif [ ! -d \"./Build/Debug\" ]; then mkdir -p \"./Build/Debug\"; fi\ncp \"./../../../../../test/icon.bmp\" \"./Build/Debug/icon.bmp\"\nfi\nif [ \"${CONFIGURATION}\" = \"Debug Native\" ]; then\nif [ ! -d \"./Build/Debug\" ]; then mkdir -p \"./Build/Debug\"; fi\ncp \"./../../../../../test/icon.bmp\" \"./Build/Debug/icon.bmp\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Universal\" ]; then\nif [ ! -d \"./Build/Release\" ]; then mkdir -p \"./Build/Release\"; fi\ncp \"./../../../../../test/icon.bmp\" \"./Build/Release/icon.bmp\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Native\" ]; then\nif [ ! -d \"./Build/Release\" ]; then mkdir -p \"./Build/Release\"; fi\ncp \"./../../../../../test/icon.bmp\" \"./Build/Release/icon.bmp\"\nfi"; + }; +/* End PBXShellScriptBuildPhase section */ +/* Begin PBXSourcesBuildPhase section */ + 7E4517DF5BC63B2F1B251F2E /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 3EB57AB86FFE23F207D537AA /* testsprite2.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 52B42E1E696C46266BEA61EE /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 7F3F389B51573B773AE07791 /* PBXContainerItemProxy */; + }; + 1976183F0FB53D2149A16D9B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2test.a"; + targetProxy = 6EC218C470B6516954552546 /* PBXContainerItemProxy */; + }; + 5B573B543FBA0DD522E169BD /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 416703454AE111545D5F42B8 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 3F753F944A4A71F8566710F3 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testsprite2"; + }; + name = "Debug Universal"; + }; + 6D705A0801376B88684946D8 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testsprite2"; + }; + name = "Debug Native"; + }; + 6DE045657B7422D169846ADC /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testsprite2"; + }; + name = "Release Universal"; + }; + 03805B3518B951D3749643DC /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testsprite2"; + }; + name = "Release Native"; + }; + 6B1F452712591CF13A6E2780 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 131233112AA0233E6B222B9F /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 270E39AB193A36634CAB0F08 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 60D541A3387D31F43A4F39CB /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 16886C987897338B04DA2605 /* Build configuration list for PBXNativeTarget "testsprite2" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3F753F944A4A71F8566710F3 /* Debug Universal */, + 6D705A0801376B88684946D8 /* Debug Native */, + 6DE045657B7422D169846ADC /* Release Universal */, + 03805B3518B951D3749643DC /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testsprite2" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 6B1F452712591CF13A6E2780 /* Debug Universal */, + 131233112AA0233E6B222B9F /* Debug Native */, + 270E39AB193A36634CAB0F08 /* Release Universal */, + 60D541A3387D31F43A4F39CB /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode3/tests/testspriteminimal/testspriteminimal.xcodeproj/project.pbxproj b/premake/Xcode/Xcode3/tests/testspriteminimal/testspriteminimal.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..b0a396991aeda --- /dev/null +++ b/premake/Xcode/Xcode3/tests/testspriteminimal/testspriteminimal.xcodeproj/project.pbxproj @@ -0,0 +1,474 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 62DB4954662D1F8E3BA37ACA /* testspriteminimal.c in Sources */ = {isa = PBXBuildFile; fileRef = 5C1B753C765F6C601B2F643D /* testspriteminimal.c */; }; + 3DC4313B3F2F64070882420C /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DF550B7379E7829785514AA /* AudioToolbox.framework */; }; + 2D9F4D2153A9336D676C1734 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D61713970C95297751000A4 /* AudioUnit.framework */; }; + 6BD50E7752975A842077685E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 706E710E6B450C73763B538D /* Cocoa.framework */; }; + 42C00439481E2BC73EF40DF7 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2FE229317DDE101622154306 /* CoreAudio.framework */; }; + 6C270D18477F6BFE749C39D8 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 076917E15A445E933F807F75 /* IOKit.framework */; }; + 304044844415497A0F162D57 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 171A4A4C65487EB26E3706DB /* Carbon.framework */; }; + 33C83C51201D0602135E21F6 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50530398216B348742DA7819 /* ForceFeedback.framework */; }; + 11791F8A3A541B8F0A705571 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 525E413445794C4774EB755C /* CoreFoundation.framework */; }; + 145767026A1D1F7360996A50 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0C951E12551829336BFC7208 /* OpenGL.framework */; }; + 1B5059BB3DFF6E6543376759 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5DEE3D6A389C0DA574361287 /* libSDL2main.a */; }; + 649855CA451F23FE1C5A6D39 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CBE7C32481C336A0C2A2FE1 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 69041C6E09B95BF621382000 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 318318FD0A800B9226A94394 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 58DC62993160374E09FF7AD6; + remoteInfo = "libSDL2main.a"; + }; + 7C122EE362272F032F4B7958 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 318318FD0A800B9226A94394 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 0E7126A94A11494963D3548B; + remoteInfo = "libSDL2main.a"; + }; + 46BC1180082B6D3C25150D60 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 2BDE2A46153C30CD6704563B /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 07D004B11E733F1F0EA93105; + remoteInfo = "libSDL2.a"; + }; + 2C5440E173DB379F53B531D5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 2BDE2A46153C30CD6704563B /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 58C10ED14175754444033E0E; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 5C1B753C765F6C601B2F643D /* testspriteminimal.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testspriteminimal.c"; path = "../../../../../test/testspriteminimal.c"; sourceTree = ""; }; + 3DF550B7379E7829785514AA /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 2D61713970C95297751000A4 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 706E710E6B450C73763B538D /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 2FE229317DDE101622154306 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 076917E15A445E933F807F75 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 171A4A4C65487EB26E3706DB /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 50530398216B348742DA7819 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 525E413445794C4774EB755C /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 0C951E12551829336BFC7208 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 682B784310DB2802375B6DEC /* testspriteminimal */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testspriteminimal"; path = "testspriteminimal"; sourceTree = BUILT_PRODUCTS_DIR; }; + 318318FD0A800B9226A94394 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 2BDE2A46153C30CD6704563B /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 4E1E250A414739E45532796C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 3DC4313B3F2F64070882420C /* AudioToolbox.framework in Frameworks */, + 2D9F4D2153A9336D676C1734 /* AudioUnit.framework in Frameworks */, + 6BD50E7752975A842077685E /* Cocoa.framework in Frameworks */, + 42C00439481E2BC73EF40DF7 /* CoreAudio.framework in Frameworks */, + 6C270D18477F6BFE749C39D8 /* IOKit.framework in Frameworks */, + 304044844415497A0F162D57 /* Carbon.framework in Frameworks */, + 33C83C51201D0602135E21F6 /* ForceFeedback.framework in Frameworks */, + 11791F8A3A541B8F0A705571 /* CoreFoundation.framework in Frameworks */, + 145767026A1D1F7360996A50 /* OpenGL.framework in Frameworks */, + 1B5059BB3DFF6E6543376759 /* libSDL2main.a in Frameworks */, + 649855CA451F23FE1C5A6D39 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 2B5C2A426B511D0B4A8D204B /* testspriteminimal */ = { + isa = PBXGroup; + children = ( + 45833D4C757D12843A930F3C /* test */, + 68EE6F8336E12B8015930A83 /* Frameworks */, + 374D3E547EB07A0F1F9E784C /* Products */, + 06B715DA20D125B67EC21AC9 /* Projects */, + ); + name = "testspriteminimal"; + sourceTree = ""; + }; + 45833D4C757D12843A930F3C /* test */ = { + isa = PBXGroup; + children = ( + 5C1B753C765F6C601B2F643D /* testspriteminimal.c */, + ); + name = "test"; + sourceTree = ""; + }; + 68EE6F8336E12B8015930A83 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 3DF550B7379E7829785514AA /* AudioToolbox.framework */, + 2D61713970C95297751000A4 /* AudioUnit.framework */, + 706E710E6B450C73763B538D /* Cocoa.framework */, + 2FE229317DDE101622154306 /* CoreAudio.framework */, + 076917E15A445E933F807F75 /* IOKit.framework */, + 171A4A4C65487EB26E3706DB /* Carbon.framework */, + 50530398216B348742DA7819 /* ForceFeedback.framework */, + 525E413445794C4774EB755C /* CoreFoundation.framework */, + 0C951E12551829336BFC7208 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 374D3E547EB07A0F1F9E784C /* Products */ = { + isa = PBXGroup; + children = ( + 682B784310DB2802375B6DEC /* testspriteminimal */, + ); + name = "Products"; + sourceTree = ""; + }; + 06B715DA20D125B67EC21AC9 /* Projects */ = { + isa = PBXGroup; + children = ( + 318318FD0A800B9226A94394 /* SDL2main.xcodeproj */, + 2BDE2A46153C30CD6704563B /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 78825DB3215D6EE04BCB3D13 /* Products */ = { + isa = PBXGroup; + children = ( + 5DEE3D6A389C0DA574361287 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 2CC02954759A55E144BB7D35 /* Products */ = { + isa = PBXGroup; + children = ( + 5CBE7C32481C336A0C2A2FE1 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 5C453F9422E25C27178F55DE /* testspriteminimal */ = { + isa = PBXNativeTarget; + buildConfigurationList = 478778DB14BD436004C87DD2 /* Build configuration list for PBXNativeTarget "testspriteminimal" */; + buildPhases = ( + 161627C86C5A1BA45985591E /* Resources */, + 7972338A540C63530C96571F /* Sources */, + 4E1E250A414739E45532796C /* Frameworks */, + 9607AE3710C85E8F00CD1376 /* Postbuild */, + ); + buildRules = ( + ); + dependencies = ( + 2BE83F726BE730FC7CBF7E0F /* PBXTargetDependency */, + 32F8621364966E12740D384A /* PBXTargetDependency */, + ); + name = "testspriteminimal"; + productInstallPath = "$(HOME)/bin"; + productName = "testspriteminimal"; + productReference = 682B784310DB2802375B6DEC /* testspriteminimal */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testspriteminimal" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 2B5C2A426B511D0B4A8D204B /* testspriteminimal */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 78825DB3215D6EE04BCB3D13 /* Products */; + ProjectRef = 318318FD0A800B9226A94394 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 2CC02954759A55E144BB7D35 /* Products */; + ProjectRef = 2BDE2A46153C30CD6704563B /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 5C453F9422E25C27178F55DE /* testspriteminimal */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 5DEE3D6A389C0DA574361287 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 69041C6E09B95BF621382000 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 5CBE7C32481C336A0C2A2FE1 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 46BC1180082B6D3C25150D60 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 161627C86C5A1BA45985591E /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 9607AE3710C85E8F00CD1376 /* Postbuild */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = Postbuild; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "if [ \"${CONFIGURATION}\" = \"Debug Universal\" ]; then\nif [ ! -d \"./Build/Debug\" ]; then mkdir -p \"./Build/Debug\"; fi\ncp \"./../../../../../test/icon.bmp\" \"./Build/Debug/icon.bmp\"\nfi\nif [ \"${CONFIGURATION}\" = \"Debug Native\" ]; then\nif [ ! -d \"./Build/Debug\" ]; then mkdir -p \"./Build/Debug\"; fi\ncp \"./../../../../../test/icon.bmp\" \"./Build/Debug/icon.bmp\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Universal\" ]; then\nif [ ! -d \"./Build/Release\" ]; then mkdir -p \"./Build/Release\"; fi\ncp \"./../../../../../test/icon.bmp\" \"./Build/Release/icon.bmp\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Native\" ]; then\nif [ ! -d \"./Build/Release\" ]; then mkdir -p \"./Build/Release\"; fi\ncp \"./../../../../../test/icon.bmp\" \"./Build/Release/icon.bmp\"\nfi"; + }; +/* End PBXShellScriptBuildPhase section */ +/* Begin PBXSourcesBuildPhase section */ + 7972338A540C63530C96571F /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 62DB4954662D1F8E3BA37ACA /* testspriteminimal.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 2BE83F726BE730FC7CBF7E0F /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 7C122EE362272F032F4B7958 /* PBXContainerItemProxy */; + }; + 32F8621364966E12740D384A /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 2C5440E173DB379F53B531D5 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 603C388D45F018CD77F5780C /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testspriteminimal"; + }; + name = "Debug Universal"; + }; + 4FED08936BDD2D3F070A420C /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testspriteminimal"; + }; + name = "Debug Native"; + }; + 622F3BFF122C178B290A61E3 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testspriteminimal"; + }; + name = "Release Universal"; + }; + 503A46D813DE5AAD43977E11 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testspriteminimal"; + }; + name = "Release Native"; + }; + 5F871CB005D22412470F4E84 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 589814B1177E728336BD3BB2 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 07DE20A2087426F07BA05E59 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 29247CDB151870E152C13DE2 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 478778DB14BD436004C87DD2 /* Build configuration list for PBXNativeTarget "testspriteminimal" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 603C388D45F018CD77F5780C /* Debug Universal */, + 4FED08936BDD2D3F070A420C /* Debug Native */, + 622F3BFF122C178B290A61E3 /* Release Universal */, + 503A46D813DE5AAD43977E11 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testspriteminimal" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 5F871CB005D22412470F4E84 /* Debug Universal */, + 589814B1177E728336BD3BB2 /* Debug Native */, + 07DE20A2087426F07BA05E59 /* Release Universal */, + 29247CDB151870E152C13DE2 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode3/tests/teststreaming/teststreaming.xcodeproj/project.pbxproj b/premake/Xcode/Xcode3/tests/teststreaming/teststreaming.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..26015f1203e9f --- /dev/null +++ b/premake/Xcode/Xcode3/tests/teststreaming/teststreaming.xcodeproj/project.pbxproj @@ -0,0 +1,474 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 47447E154FC472C43BEA16E6 /* teststreaming.c in Sources */ = {isa = PBXBuildFile; fileRef = 1EE40EB60D7479286B5813D2 /* teststreaming.c */; }; + 5317299B36F200543D5B53F3 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3C3E36F2711806BE347F18CF /* AudioToolbox.framework */; }; + 3B93528320F549E654071C62 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2C2A7C9520D0712016AE1C0B /* AudioUnit.framework */; }; + 54A0073931161CC363455BAB /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 732727135BFC1F100E9B643E /* Cocoa.framework */; }; + 473B75407B957715044436EB /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A9716F561A945765DC21491 /* CoreAudio.framework */; }; + 6B0110E4132F74FD109468C2 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D97430D453817A97BA129F6 /* IOKit.framework */; }; + 300874647C6570915163763A /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5614746C75256D0313E60AFE /* Carbon.framework */; }; + 3FF2589E219215586AA51263 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 782C1D3F27433FAE5F651E06 /* ForceFeedback.framework */; }; + 59A36BDC79B856023BD6784F /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 436A761C2F4E2F82380023AB /* CoreFoundation.framework */; }; + 67377FF61257162D09467EE7 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2C133A541FDC30781B705A8B /* OpenGL.framework */; }; + 22B348961023745658FA4216 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6A8E18482EF110D939C42DA4 /* libSDL2main.a */; }; + 02E474F453003499444E5D9D /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0588479D274C013F77D818D0 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 61B8029C633B63745F043822 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 70B46A1B2CE041E35E8C597E /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 58DC62993160374E09FF7AD6; + remoteInfo = "libSDL2main.a"; + }; + 7A9F66C857A744F136C82CE7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 70B46A1B2CE041E35E8C597E /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 0E7126A94A11494963D3548B; + remoteInfo = "libSDL2main.a"; + }; + 2998598A27AA0FF5471E29D5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 3FBA500309AC35F8693A1524 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 07D004B11E733F1F0EA93105; + remoteInfo = "libSDL2.a"; + }; + 76BE5E68237D14A7006F1192 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 3FBA500309AC35F8693A1524 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 58C10ED14175754444033E0E; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 1EE40EB60D7479286B5813D2 /* teststreaming.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "teststreaming.c"; path = "../../../../../test/teststreaming.c"; sourceTree = ""; }; + 3C3E36F2711806BE347F18CF /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 2C2A7C9520D0712016AE1C0B /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 732727135BFC1F100E9B643E /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 4A9716F561A945765DC21491 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 1D97430D453817A97BA129F6 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 5614746C75256D0313E60AFE /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 782C1D3F27433FAE5F651E06 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 436A761C2F4E2F82380023AB /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 2C133A541FDC30781B705A8B /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 14733D757BB072E065202A98 /* teststreaming */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "teststreaming"; path = "teststreaming"; sourceTree = BUILT_PRODUCTS_DIR; }; + 70B46A1B2CE041E35E8C597E /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 3FBA500309AC35F8693A1524 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 1A74422A5609234E022836C0 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 5317299B36F200543D5B53F3 /* AudioToolbox.framework in Frameworks */, + 3B93528320F549E654071C62 /* AudioUnit.framework in Frameworks */, + 54A0073931161CC363455BAB /* Cocoa.framework in Frameworks */, + 473B75407B957715044436EB /* CoreAudio.framework in Frameworks */, + 6B0110E4132F74FD109468C2 /* IOKit.framework in Frameworks */, + 300874647C6570915163763A /* Carbon.framework in Frameworks */, + 3FF2589E219215586AA51263 /* ForceFeedback.framework in Frameworks */, + 59A36BDC79B856023BD6784F /* CoreFoundation.framework in Frameworks */, + 67377FF61257162D09467EE7 /* OpenGL.framework in Frameworks */, + 22B348961023745658FA4216 /* libSDL2main.a in Frameworks */, + 02E474F453003499444E5D9D /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 72FC3EFA16116F39330F49E8 /* teststreaming */ = { + isa = PBXGroup; + children = ( + 485153C14B3F1FA33C3D7350 /* test */, + 13D33CCC7FC91EAA5D735C35 /* Frameworks */, + 03AB10080B2408D5172A6C45 /* Products */, + 5BE001EA674300077A322759 /* Projects */, + ); + name = "teststreaming"; + sourceTree = ""; + }; + 485153C14B3F1FA33C3D7350 /* test */ = { + isa = PBXGroup; + children = ( + 1EE40EB60D7479286B5813D2 /* teststreaming.c */, + ); + name = "test"; + sourceTree = ""; + }; + 13D33CCC7FC91EAA5D735C35 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 3C3E36F2711806BE347F18CF /* AudioToolbox.framework */, + 2C2A7C9520D0712016AE1C0B /* AudioUnit.framework */, + 732727135BFC1F100E9B643E /* Cocoa.framework */, + 4A9716F561A945765DC21491 /* CoreAudio.framework */, + 1D97430D453817A97BA129F6 /* IOKit.framework */, + 5614746C75256D0313E60AFE /* Carbon.framework */, + 782C1D3F27433FAE5F651E06 /* ForceFeedback.framework */, + 436A761C2F4E2F82380023AB /* CoreFoundation.framework */, + 2C133A541FDC30781B705A8B /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 03AB10080B2408D5172A6C45 /* Products */ = { + isa = PBXGroup; + children = ( + 14733D757BB072E065202A98 /* teststreaming */, + ); + name = "Products"; + sourceTree = ""; + }; + 5BE001EA674300077A322759 /* Projects */ = { + isa = PBXGroup; + children = ( + 70B46A1B2CE041E35E8C597E /* SDL2main.xcodeproj */, + 3FBA500309AC35F8693A1524 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 52EE3DCB5CB044A5688E4F3F /* Products */ = { + isa = PBXGroup; + children = ( + 6A8E18482EF110D939C42DA4 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 32DA150856EA5059045C6914 /* Products */ = { + isa = PBXGroup; + children = ( + 0588479D274C013F77D818D0 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 173C64D366191D744B872D7D /* teststreaming */ = { + isa = PBXNativeTarget; + buildConfigurationList = 16242E351F194FF65F771AE5 /* Build configuration list for PBXNativeTarget "teststreaming" */; + buildPhases = ( + 51C6293824A624077220472E /* Resources */, + 2C10687D72CD7CF4280235EF /* Sources */, + 1A74422A5609234E022836C0 /* Frameworks */, + 9607AE3710C85E8F00CD1376 /* Postbuild */, + ); + buildRules = ( + ); + dependencies = ( + 79E557E67AA02D4E78F8139F /* PBXTargetDependency */, + 2D6224285416717E08173EAD /* PBXTargetDependency */, + ); + name = "teststreaming"; + productInstallPath = "$(HOME)/bin"; + productName = "teststreaming"; + productReference = 14733D757BB072E065202A98 /* teststreaming */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "teststreaming" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 72FC3EFA16116F39330F49E8 /* teststreaming */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 52EE3DCB5CB044A5688E4F3F /* Products */; + ProjectRef = 70B46A1B2CE041E35E8C597E /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 32DA150856EA5059045C6914 /* Products */; + ProjectRef = 3FBA500309AC35F8693A1524 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 173C64D366191D744B872D7D /* teststreaming */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 6A8E18482EF110D939C42DA4 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 61B8029C633B63745F043822 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 0588479D274C013F77D818D0 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 2998598A27AA0FF5471E29D5 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 51C6293824A624077220472E /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 9607AE3710C85E8F00CD1376 /* Postbuild */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = Postbuild; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "if [ \"${CONFIGURATION}\" = \"Debug Universal\" ]; then\nif [ ! -d \"./Build/Debug\" ]; then mkdir -p \"./Build/Debug\"; fi\ncp \"./../../../../../test/moose.dat\" \"./Build/Debug/moose.dat\"\nfi\nif [ \"${CONFIGURATION}\" = \"Debug Native\" ]; then\nif [ ! -d \"./Build/Debug\" ]; then mkdir -p \"./Build/Debug\"; fi\ncp \"./../../../../../test/moose.dat\" \"./Build/Debug/moose.dat\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Universal\" ]; then\nif [ ! -d \"./Build/Release\" ]; then mkdir -p \"./Build/Release\"; fi\ncp \"./../../../../../test/moose.dat\" \"./Build/Release/moose.dat\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Native\" ]; then\nif [ ! -d \"./Build/Release\" ]; then mkdir -p \"./Build/Release\"; fi\ncp \"./../../../../../test/moose.dat\" \"./Build/Release/moose.dat\"\nfi"; + }; +/* End PBXShellScriptBuildPhase section */ +/* Begin PBXSourcesBuildPhase section */ + 2C10687D72CD7CF4280235EF /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 47447E154FC472C43BEA16E6 /* teststreaming.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 79E557E67AA02D4E78F8139F /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 7A9F66C857A744F136C82CE7 /* PBXContainerItemProxy */; + }; + 2D6224285416717E08173EAD /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 76BE5E68237D14A7006F1192 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 651834BD7ABC59AE61127244 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "teststreaming"; + }; + name = "Debug Universal"; + }; + 37C665BD71C07DAE39DB0359 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "teststreaming"; + }; + name = "Debug Native"; + }; + 42E4297821EB03C0661F2D54 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "teststreaming"; + }; + name = "Release Universal"; + }; + 6796467F7C06764616332AE5 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "teststreaming"; + }; + name = "Release Native"; + }; + 05AF41094A51130770D800E4 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 00B4382A7EF269B77D616E4E /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 1132085309E401543268778F /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 4C4C43F8535050187F2D1804 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 16242E351F194FF65F771AE5 /* Build configuration list for PBXNativeTarget "teststreaming" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 651834BD7ABC59AE61127244 /* Debug Universal */, + 37C665BD71C07DAE39DB0359 /* Debug Native */, + 42E4297821EB03C0661F2D54 /* Release Universal */, + 6796467F7C06764616332AE5 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "teststreaming" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 05AF41094A51130770D800E4 /* Debug Universal */, + 00B4382A7EF269B77D616E4E /* Debug Native */, + 1132085309E401543268778F /* Release Universal */, + 4C4C43F8535050187F2D1804 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode3/tests/testthread/testthread.xcodeproj/project.pbxproj b/premake/Xcode/Xcode3/tests/testthread/testthread.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..14bedda821b44 --- /dev/null +++ b/premake/Xcode/Xcode3/tests/testthread/testthread.xcodeproj/project.pbxproj @@ -0,0 +1,457 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 35213261134328003C164DCC /* testthread.c in Sources */ = {isa = PBXBuildFile; fileRef = 62744D221EB054A72DBF6ECC /* testthread.c */; }; + 5FE61B50452A4F3A025A07EE /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 61E86E5810DA1218058D7F05 /* AudioToolbox.framework */; }; + 1CDE462B612158DC56436167 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3FB53A142E7C04B131AF60B7 /* AudioUnit.framework */; }; + 32AC74004CBA5DE11B0B0F45 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 54F55C097F9208C005565BD3 /* Cocoa.framework */; }; + 5D0B286037AC23DA67154CB9 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2254502358BA512C22620E25 /* CoreAudio.framework */; }; + 4BE566F378B35F5C39FF3450 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D9873DF73A16D6469231A6A /* IOKit.framework */; }; + 44F224D13B105209689A0E41 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 747A165D604F2020484870A2 /* Carbon.framework */; }; + 293822431C5B46857C012DDA /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6A5D29B153AF28416A7F460B /* ForceFeedback.framework */; }; + 27297CC17F42639B5EE2035D /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 58C37721239B4B266D173C61 /* CoreFoundation.framework */; }; + 0EE435A85A430E423A1A2B66 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 54AD5A0329425E1A7F41340C /* OpenGL.framework */; }; + 39D35C8525C2098476340C5C /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 500A69B241F07D6E00F6539A /* libSDL2main.a */; }; + 40FA75F122A8667047931606 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0DE573AE3E46757763841538 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 77F70C1273611C6F52E54034 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 54FC11132A371CB4054F3547 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 58DC62993160374E09FF7AD6; + remoteInfo = "libSDL2main.a"; + }; + 177C7C892D4B4AA67FF60081 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 54FC11132A371CB4054F3547 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 0E7126A94A11494963D3548B; + remoteInfo = "libSDL2main.a"; + }; + 46151D864AD30A2264966480 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 168B12782E8D663D59F23F4B /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 07D004B11E733F1F0EA93105; + remoteInfo = "libSDL2.a"; + }; + 4B6C53A062BB6F64479473AE /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 168B12782E8D663D59F23F4B /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 58C10ED14175754444033E0E; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 62744D221EB054A72DBF6ECC /* testthread.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testthread.c"; path = "../../../../../test/testthread.c"; sourceTree = ""; }; + 61E86E5810DA1218058D7F05 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 3FB53A142E7C04B131AF60B7 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 54F55C097F9208C005565BD3 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 2254502358BA512C22620E25 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 1D9873DF73A16D6469231A6A /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 747A165D604F2020484870A2 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 6A5D29B153AF28416A7F460B /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 58C37721239B4B266D173C61 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 54AD5A0329425E1A7F41340C /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 41737E465E3319127D3C2499 /* testthread */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testthread"; path = "testthread"; sourceTree = BUILT_PRODUCTS_DIR; }; + 54FC11132A371CB4054F3547 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 168B12782E8D663D59F23F4B /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 4700007F3E1F074D7E8B03ED /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 5FE61B50452A4F3A025A07EE /* AudioToolbox.framework in Frameworks */, + 1CDE462B612158DC56436167 /* AudioUnit.framework in Frameworks */, + 32AC74004CBA5DE11B0B0F45 /* Cocoa.framework in Frameworks */, + 5D0B286037AC23DA67154CB9 /* CoreAudio.framework in Frameworks */, + 4BE566F378B35F5C39FF3450 /* IOKit.framework in Frameworks */, + 44F224D13B105209689A0E41 /* Carbon.framework in Frameworks */, + 293822431C5B46857C012DDA /* ForceFeedback.framework in Frameworks */, + 27297CC17F42639B5EE2035D /* CoreFoundation.framework in Frameworks */, + 0EE435A85A430E423A1A2B66 /* OpenGL.framework in Frameworks */, + 39D35C8525C2098476340C5C /* libSDL2main.a in Frameworks */, + 40FA75F122A8667047931606 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 213340E446C96252331F6C01 /* testthread */ = { + isa = PBXGroup; + children = ( + 66AE2FF133FC20E4198240D6 /* test */, + 3B5561B61103754713F35373 /* Frameworks */, + 490A3E9940BE055277566E68 /* Products */, + 16BA26944AB42BED0563622C /* Projects */, + ); + name = "testthread"; + sourceTree = ""; + }; + 66AE2FF133FC20E4198240D6 /* test */ = { + isa = PBXGroup; + children = ( + 62744D221EB054A72DBF6ECC /* testthread.c */, + ); + name = "test"; + sourceTree = ""; + }; + 3B5561B61103754713F35373 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 61E86E5810DA1218058D7F05 /* AudioToolbox.framework */, + 3FB53A142E7C04B131AF60B7 /* AudioUnit.framework */, + 54F55C097F9208C005565BD3 /* Cocoa.framework */, + 2254502358BA512C22620E25 /* CoreAudio.framework */, + 1D9873DF73A16D6469231A6A /* IOKit.framework */, + 747A165D604F2020484870A2 /* Carbon.framework */, + 6A5D29B153AF28416A7F460B /* ForceFeedback.framework */, + 58C37721239B4B266D173C61 /* CoreFoundation.framework */, + 54AD5A0329425E1A7F41340C /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 490A3E9940BE055277566E68 /* Products */ = { + isa = PBXGroup; + children = ( + 41737E465E3319127D3C2499 /* testthread */, + ); + name = "Products"; + sourceTree = ""; + }; + 16BA26944AB42BED0563622C /* Projects */ = { + isa = PBXGroup; + children = ( + 54FC11132A371CB4054F3547 /* SDL2main.xcodeproj */, + 168B12782E8D663D59F23F4B /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 7EF6583068121C260D4950B0 /* Products */ = { + isa = PBXGroup; + children = ( + 500A69B241F07D6E00F6539A /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 75AC2C5538B24E912EAF7B17 /* Products */ = { + isa = PBXGroup; + children = ( + 0DE573AE3E46757763841538 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 513F117C6C4C207175DB2ABD /* testthread */ = { + isa = PBXNativeTarget; + buildConfigurationList = 01E01EA916271687051A2652 /* Build configuration list for PBXNativeTarget "testthread" */; + buildPhases = ( + 6B6D5D1B1F55322A0FDD1DA7 /* Resources */, + 4B1011D7567C14523D7F1AF2 /* Sources */, + 4700007F3E1F074D7E8B03ED /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 44CE64AC0D075A681B5E4CA5 /* PBXTargetDependency */, + 5F6D256B254653457C6E4C1D /* PBXTargetDependency */, + ); + name = "testthread"; + productInstallPath = "$(HOME)/bin"; + productName = "testthread"; + productReference = 41737E465E3319127D3C2499 /* testthread */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testthread" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 213340E446C96252331F6C01 /* testthread */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 7EF6583068121C260D4950B0 /* Products */; + ProjectRef = 54FC11132A371CB4054F3547 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 75AC2C5538B24E912EAF7B17 /* Products */; + ProjectRef = 168B12782E8D663D59F23F4B /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 513F117C6C4C207175DB2ABD /* testthread */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 500A69B241F07D6E00F6539A /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 77F70C1273611C6F52E54034 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 0DE573AE3E46757763841538 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 46151D864AD30A2264966480 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 6B6D5D1B1F55322A0FDD1DA7 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 4B1011D7567C14523D7F1AF2 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 35213261134328003C164DCC /* testthread.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 44CE64AC0D075A681B5E4CA5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 177C7C892D4B4AA67FF60081 /* PBXContainerItemProxy */; + }; + 5F6D256B254653457C6E4C1D /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 4B6C53A062BB6F64479473AE /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 41810FD36E064D052AD31709 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testthread"; + }; + name = "Debug Universal"; + }; + 019B704A23640E7260FA75B0 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testthread"; + }; + name = "Debug Native"; + }; + 0D1704B65F6C5D010A855C23 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testthread"; + }; + name = "Release Universal"; + }; + 0FCC32B4651505B32E3A642F /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testthread"; + }; + name = "Release Native"; + }; + 6EEB3E43225D2C3A3D457FFE /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 30BD51C01613660E457D1E40 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 394241E765B57185689269EA /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 69103C962724337E46395806 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 01E01EA916271687051A2652 /* Build configuration list for PBXNativeTarget "testthread" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 41810FD36E064D052AD31709 /* Debug Universal */, + 019B704A23640E7260FA75B0 /* Debug Native */, + 0D1704B65F6C5D010A855C23 /* Release Universal */, + 0FCC32B4651505B32E3A642F /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testthread" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 6EEB3E43225D2C3A3D457FFE /* Debug Universal */, + 30BD51C01613660E457D1E40 /* Debug Native */, + 394241E765B57185689269EA /* Release Universal */, + 69103C962724337E46395806 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode3/tests/testtimer/testtimer.xcodeproj/project.pbxproj b/premake/Xcode/Xcode3/tests/testtimer/testtimer.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..74a85997e302f --- /dev/null +++ b/premake/Xcode/Xcode3/tests/testtimer/testtimer.xcodeproj/project.pbxproj @@ -0,0 +1,457 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 7B64021D5808756776C306BF /* testtimer.c in Sources */ = {isa = PBXBuildFile; fileRef = 22293F957F2711D97BE30CC9 /* testtimer.c */; }; + 13F35686187C26DC67E311BA /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 59DB50ED16A5452649322B1D /* AudioToolbox.framework */; }; + 08C150FB43E435D67A1239D5 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4BAC239C69E54EC71F2968F0 /* AudioUnit.framework */; }; + 294C7A37608D633F4876781D /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7FCE587F1D867D250B9D0AF4 /* Cocoa.framework */; }; + 73EC35FD16EE11A117EC26B5 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4BEF55F007556CBF162825F6 /* CoreAudio.framework */; }; + 19DF001C5A3D5F540DA70DED /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 600C4147227742EE2E68407C /* IOKit.framework */; }; + 1A197D67240E52331CFC2424 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7AF7093922A179FF070424A4 /* Carbon.framework */; }; + 7D9775EB412907CE0DF82667 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4BAC129468810A51532E27A0 /* ForceFeedback.framework */; }; + 3B0822D6406677340EF37654 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 38440E44450A17785BCB1BCD /* CoreFoundation.framework */; }; + 2EF17062498F59832B3752BF /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0D37571765C244EA1A325C9C /* OpenGL.framework */; }; + 0772793F37435116345630AE /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 08006ACB69B42AA67BCF53B0 /* libSDL2main.a */; }; + 0AB1254765E46EB803F0183D /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 341F7FBC474100F24D213FDE /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 32C14D2F548E6BAC03F77804 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 697F233E5B4527790BD82DE8 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 58DC62993160374E09FF7AD6; + remoteInfo = "libSDL2main.a"; + }; + 0662119B0F20094B3237701F /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 697F233E5B4527790BD82DE8 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 0E7126A94A11494963D3548B; + remoteInfo = "libSDL2main.a"; + }; + 209B3D4C017327D60F250349 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 6F8E5D8A11FF021C396C63DA /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 07D004B11E733F1F0EA93105; + remoteInfo = "libSDL2.a"; + }; + 2E5850DC3F883A377C9E1B29 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 6F8E5D8A11FF021C396C63DA /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 58C10ED14175754444033E0E; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 22293F957F2711D97BE30CC9 /* testtimer.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testtimer.c"; path = "../../../../../test/testtimer.c"; sourceTree = ""; }; + 59DB50ED16A5452649322B1D /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 4BAC239C69E54EC71F2968F0 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 7FCE587F1D867D250B9D0AF4 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 4BEF55F007556CBF162825F6 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 600C4147227742EE2E68407C /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 7AF7093922A179FF070424A4 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 4BAC129468810A51532E27A0 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 38440E44450A17785BCB1BCD /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 0D37571765C244EA1A325C9C /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 2BA90F533D2C35CE0EE821BB /* testtimer */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testtimer"; path = "testtimer"; sourceTree = BUILT_PRODUCTS_DIR; }; + 697F233E5B4527790BD82DE8 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 6F8E5D8A11FF021C396C63DA /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 59EA1639021D3F4F7AC86D7A /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 13F35686187C26DC67E311BA /* AudioToolbox.framework in Frameworks */, + 08C150FB43E435D67A1239D5 /* AudioUnit.framework in Frameworks */, + 294C7A37608D633F4876781D /* Cocoa.framework in Frameworks */, + 73EC35FD16EE11A117EC26B5 /* CoreAudio.framework in Frameworks */, + 19DF001C5A3D5F540DA70DED /* IOKit.framework in Frameworks */, + 1A197D67240E52331CFC2424 /* Carbon.framework in Frameworks */, + 7D9775EB412907CE0DF82667 /* ForceFeedback.framework in Frameworks */, + 3B0822D6406677340EF37654 /* CoreFoundation.framework in Frameworks */, + 2EF17062498F59832B3752BF /* OpenGL.framework in Frameworks */, + 0772793F37435116345630AE /* libSDL2main.a in Frameworks */, + 0AB1254765E46EB803F0183D /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 2A3C61D921751E2A596D0B43 /* testtimer */ = { + isa = PBXGroup; + children = ( + 0C9320211078719C5CCC7EFD /* test */, + 213A271506811AED7E1C6A94 /* Frameworks */, + 0C6224BB0611706E7C390B7D /* Products */, + 6A363F94345F4A4D427A79A1 /* Projects */, + ); + name = "testtimer"; + sourceTree = ""; + }; + 0C9320211078719C5CCC7EFD /* test */ = { + isa = PBXGroup; + children = ( + 22293F957F2711D97BE30CC9 /* testtimer.c */, + ); + name = "test"; + sourceTree = ""; + }; + 213A271506811AED7E1C6A94 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 59DB50ED16A5452649322B1D /* AudioToolbox.framework */, + 4BAC239C69E54EC71F2968F0 /* AudioUnit.framework */, + 7FCE587F1D867D250B9D0AF4 /* Cocoa.framework */, + 4BEF55F007556CBF162825F6 /* CoreAudio.framework */, + 600C4147227742EE2E68407C /* IOKit.framework */, + 7AF7093922A179FF070424A4 /* Carbon.framework */, + 4BAC129468810A51532E27A0 /* ForceFeedback.framework */, + 38440E44450A17785BCB1BCD /* CoreFoundation.framework */, + 0D37571765C244EA1A325C9C /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 0C6224BB0611706E7C390B7D /* Products */ = { + isa = PBXGroup; + children = ( + 2BA90F533D2C35CE0EE821BB /* testtimer */, + ); + name = "Products"; + sourceTree = ""; + }; + 6A363F94345F4A4D427A79A1 /* Projects */ = { + isa = PBXGroup; + children = ( + 697F233E5B4527790BD82DE8 /* SDL2main.xcodeproj */, + 6F8E5D8A11FF021C396C63DA /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 2D3E6AEA3B0428970CDF1AF4 /* Products */ = { + isa = PBXGroup; + children = ( + 08006ACB69B42AA67BCF53B0 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 62FE45F1775D285645F8488E /* Products */ = { + isa = PBXGroup; + children = ( + 341F7FBC474100F24D213FDE /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 1F0F244D534C4D1B32E764E0 /* testtimer */ = { + isa = PBXNativeTarget; + buildConfigurationList = 069B2C7817DD3A9C768A7832 /* Build configuration list for PBXNativeTarget "testtimer" */; + buildPhases = ( + 438B662D3476654319572741 /* Resources */, + 20CB29B81AA1608556B53AD0 /* Sources */, + 59EA1639021D3F4F7AC86D7A /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 15C01811098725315C840603 /* PBXTargetDependency */, + 517D6C4E040B778751987EC8 /* PBXTargetDependency */, + ); + name = "testtimer"; + productInstallPath = "$(HOME)/bin"; + productName = "testtimer"; + productReference = 2BA90F533D2C35CE0EE821BB /* testtimer */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testtimer" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 2A3C61D921751E2A596D0B43 /* testtimer */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 2D3E6AEA3B0428970CDF1AF4 /* Products */; + ProjectRef = 697F233E5B4527790BD82DE8 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 62FE45F1775D285645F8488E /* Products */; + ProjectRef = 6F8E5D8A11FF021C396C63DA /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 1F0F244D534C4D1B32E764E0 /* testtimer */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 08006ACB69B42AA67BCF53B0 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 32C14D2F548E6BAC03F77804 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 341F7FBC474100F24D213FDE /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 209B3D4C017327D60F250349 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 438B662D3476654319572741 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 20CB29B81AA1608556B53AD0 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 7B64021D5808756776C306BF /* testtimer.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 15C01811098725315C840603 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 0662119B0F20094B3237701F /* PBXContainerItemProxy */; + }; + 517D6C4E040B778751987EC8 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 2E5850DC3F883A377C9E1B29 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 5B5201CD5C61059315160862 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testtimer"; + }; + name = "Debug Universal"; + }; + 447031E408EE5E531E0D7235 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testtimer"; + }; + name = "Debug Native"; + }; + 7E9248C5328360650A786F20 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testtimer"; + }; + name = "Release Universal"; + }; + 72D91F3A3DA959814FCD588B /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testtimer"; + }; + name = "Release Native"; + }; + 677744B358021FD634594C31 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 010A4E8334CB0D2C617372DC /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 40E1047F345201CA036918EE /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 2D81007B408A511C0D1500B4 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 069B2C7817DD3A9C768A7832 /* Build configuration list for PBXNativeTarget "testtimer" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 5B5201CD5C61059315160862 /* Debug Universal */, + 447031E408EE5E531E0D7235 /* Debug Native */, + 7E9248C5328360650A786F20 /* Release Universal */, + 72D91F3A3DA959814FCD588B /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testtimer" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 677744B358021FD634594C31 /* Debug Universal */, + 010A4E8334CB0D2C617372DC /* Debug Native */, + 40E1047F345201CA036918EE /* Release Universal */, + 2D81007B408A511C0D1500B4 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode3/tests/testver/testver.xcodeproj/project.pbxproj b/premake/Xcode/Xcode3/tests/testver/testver.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..6f5c576154119 --- /dev/null +++ b/premake/Xcode/Xcode3/tests/testver/testver.xcodeproj/project.pbxproj @@ -0,0 +1,457 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 6014781151E5187D528723EF /* testver.c in Sources */ = {isa = PBXBuildFile; fileRef = 6B6E22E11F8848E33DA408B5 /* testver.c */; }; + 5E694906601863BD26484E1A /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7EEC3B2E5C516CF444E07100 /* AudioToolbox.framework */; }; + 40844E75202C46C674FC6E3D /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B6C2F9222654F643FB72B39 /* AudioUnit.framework */; }; + 51EA10F0387055E76C16517F /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0C8064FA612620554B384DB7 /* Cocoa.framework */; }; + 0AA62A9A179074774C2A62A5 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 729D379958F428DF503A3419 /* CoreAudio.framework */; }; + 354E4CAD736522D764C841F4 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D8F1F80456F146E54A12F69 /* IOKit.framework */; }; + 76F75A2345D94CCE0894324B /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3A9547275EFD3F9E40524AB9 /* Carbon.framework */; }; + 3D412E44067570B904B5148F /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0F10718F74EE72460B2B53E0 /* ForceFeedback.framework */; }; + 52E8289C257550997213758F /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6359786E2B1D1C053CEB0D3B /* CoreFoundation.framework */; }; + 1B8633BE3CF116D51EA17524 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 37D30F5260F713FE171022A9 /* OpenGL.framework */; }; + 139738C34B68369115722D3C /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 55F14A235AE31CD4262346F7 /* libSDL2main.a */; }; + 0B984D0D20527570170D79FC /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2F5645B120637F3775D905E5 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 685F569F02837F954ADE743D /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 22B66475709B098C69197BD2 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 58DC62993160374E09FF7AD6; + remoteInfo = "libSDL2main.a"; + }; + 72786455348A513E6CED7348 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 22B66475709B098C69197BD2 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 0E7126A94A11494963D3548B; + remoteInfo = "libSDL2main.a"; + }; + 2E48267038BB153158527C71 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 6A2F6D7A044147804F6F120F /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 07D004B11E733F1F0EA93105; + remoteInfo = "libSDL2.a"; + }; + 65C432673F726D01098111FA /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 6A2F6D7A044147804F6F120F /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 58C10ED14175754444033E0E; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 6B6E22E11F8848E33DA408B5 /* testver.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testver.c"; path = "../../../../../test/testver.c"; sourceTree = ""; }; + 7EEC3B2E5C516CF444E07100 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 3B6C2F9222654F643FB72B39 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 0C8064FA612620554B384DB7 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 729D379958F428DF503A3419 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 4D8F1F80456F146E54A12F69 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 3A9547275EFD3F9E40524AB9 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 0F10718F74EE72460B2B53E0 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 6359786E2B1D1C053CEB0D3B /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 37D30F5260F713FE171022A9 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 5DB74E8116BC4C6530217502 /* testver */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testver"; path = "testver"; sourceTree = BUILT_PRODUCTS_DIR; }; + 22B66475709B098C69197BD2 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 6A2F6D7A044147804F6F120F /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 49B25FDC134C7A2A5B927661 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 5E694906601863BD26484E1A /* AudioToolbox.framework in Frameworks */, + 40844E75202C46C674FC6E3D /* AudioUnit.framework in Frameworks */, + 51EA10F0387055E76C16517F /* Cocoa.framework in Frameworks */, + 0AA62A9A179074774C2A62A5 /* CoreAudio.framework in Frameworks */, + 354E4CAD736522D764C841F4 /* IOKit.framework in Frameworks */, + 76F75A2345D94CCE0894324B /* Carbon.framework in Frameworks */, + 3D412E44067570B904B5148F /* ForceFeedback.framework in Frameworks */, + 52E8289C257550997213758F /* CoreFoundation.framework in Frameworks */, + 1B8633BE3CF116D51EA17524 /* OpenGL.framework in Frameworks */, + 139738C34B68369115722D3C /* libSDL2main.a in Frameworks */, + 0B984D0D20527570170D79FC /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 11F833D43F53101770FD0C7B /* testver */ = { + isa = PBXGroup; + children = ( + 63294E297CC854C77B0271BB /* test */, + 3B4C1DD744AD6900191D4CA3 /* Frameworks */, + 27183CDE4E6371D435C25B93 /* Products */, + 334122EF372B062A59BA520E /* Projects */, + ); + name = "testver"; + sourceTree = ""; + }; + 63294E297CC854C77B0271BB /* test */ = { + isa = PBXGroup; + children = ( + 6B6E22E11F8848E33DA408B5 /* testver.c */, + ); + name = "test"; + sourceTree = ""; + }; + 3B4C1DD744AD6900191D4CA3 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 7EEC3B2E5C516CF444E07100 /* AudioToolbox.framework */, + 3B6C2F9222654F643FB72B39 /* AudioUnit.framework */, + 0C8064FA612620554B384DB7 /* Cocoa.framework */, + 729D379958F428DF503A3419 /* CoreAudio.framework */, + 4D8F1F80456F146E54A12F69 /* IOKit.framework */, + 3A9547275EFD3F9E40524AB9 /* Carbon.framework */, + 0F10718F74EE72460B2B53E0 /* ForceFeedback.framework */, + 6359786E2B1D1C053CEB0D3B /* CoreFoundation.framework */, + 37D30F5260F713FE171022A9 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 27183CDE4E6371D435C25B93 /* Products */ = { + isa = PBXGroup; + children = ( + 5DB74E8116BC4C6530217502 /* testver */, + ); + name = "Products"; + sourceTree = ""; + }; + 334122EF372B062A59BA520E /* Projects */ = { + isa = PBXGroup; + children = ( + 22B66475709B098C69197BD2 /* SDL2main.xcodeproj */, + 6A2F6D7A044147804F6F120F /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 40322E461BBE73D46D320F6F /* Products */ = { + isa = PBXGroup; + children = ( + 55F14A235AE31CD4262346F7 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 589E74AE7AAF144F04001D06 /* Products */ = { + isa = PBXGroup; + children = ( + 2F5645B120637F3775D905E5 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 0D77082F710F18C534BE6183 /* testver */ = { + isa = PBXNativeTarget; + buildConfigurationList = 23716C682BE236F146315787 /* Build configuration list for PBXNativeTarget "testver" */; + buildPhases = ( + 0CED4AD569D07AE1532321B5 /* Resources */, + 204748170CFF76D3407221CB /* Sources */, + 49B25FDC134C7A2A5B927661 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 3AD528CE0FF40F5F633541C8 /* PBXTargetDependency */, + 3FFF326116C8557B360861AA /* PBXTargetDependency */, + ); + name = "testver"; + productInstallPath = "$(HOME)/bin"; + productName = "testver"; + productReference = 5DB74E8116BC4C6530217502 /* testver */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testver" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 11F833D43F53101770FD0C7B /* testver */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 40322E461BBE73D46D320F6F /* Products */; + ProjectRef = 22B66475709B098C69197BD2 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 589E74AE7AAF144F04001D06 /* Products */; + ProjectRef = 6A2F6D7A044147804F6F120F /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 0D77082F710F18C534BE6183 /* testver */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 55F14A235AE31CD4262346F7 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 685F569F02837F954ADE743D /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 2F5645B120637F3775D905E5 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 2E48267038BB153158527C71 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 0CED4AD569D07AE1532321B5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 204748170CFF76D3407221CB /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 6014781151E5187D528723EF /* testver.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 3AD528CE0FF40F5F633541C8 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 72786455348A513E6CED7348 /* PBXContainerItemProxy */; + }; + 3FFF326116C8557B360861AA /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 65C432673F726D01098111FA /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 200B57382D1F088E4FF70905 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testver"; + }; + name = "Debug Universal"; + }; + 458E1E8567FA792871804B05 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testver"; + }; + name = "Debug Native"; + }; + 0E280C7B0045494B6BEB19AC /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testver"; + }; + name = "Release Universal"; + }; + 424C1D7523CE3B8E02B2147F /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testver"; + }; + name = "Release Native"; + }; + 43BA739D4B48008676B82CB7 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 40E86CA3015C4F544D593DA0 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 05DF7BBB62432ED070FD00CB /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 47D77AC87E84335A01275818 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 23716C682BE236F146315787 /* Build configuration list for PBXNativeTarget "testver" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 200B57382D1F088E4FF70905 /* Debug Universal */, + 458E1E8567FA792871804B05 /* Debug Native */, + 0E280C7B0045494B6BEB19AC /* Release Universal */, + 424C1D7523CE3B8E02B2147F /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testver" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 43BA739D4B48008676B82CB7 /* Debug Universal */, + 40E86CA3015C4F544D593DA0 /* Debug Native */, + 05DF7BBB62432ED070FD00CB /* Release Universal */, + 47D77AC87E84335A01275818 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode3/tests/testwm2/testwm2.xcodeproj/project.pbxproj b/premake/Xcode/Xcode3/tests/testwm2/testwm2.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..d5a9d2525464a --- /dev/null +++ b/premake/Xcode/Xcode3/tests/testwm2/testwm2.xcodeproj/project.pbxproj @@ -0,0 +1,500 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 0BE42EAB72F36C7702866C3E /* testwm2.c in Sources */ = {isa = PBXBuildFile; fileRef = 35B30B9D2BA973305B431C79 /* testwm2.c */; }; + 02BA178200D8732B480340AA /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3F3B433238510A9201395B14 /* AudioToolbox.framework */; }; + 2531497A26C41FFB2DFE1CAA /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5A9723A216397B73732E783F /* AudioUnit.framework */; }; + 294839F8023630471AC87C9A /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1B7D416035FC73F2499D780B /* Cocoa.framework */; }; + 75960A7B1E35508958204E07 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 14494572789E5DD835710F4A /* CoreAudio.framework */; }; + 0FEA07E415674BD44CE2221A /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 67A17B15236238841E225074 /* IOKit.framework */; }; + 78B22C7E3EC4657C3ED53157 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 607D43CA29AD40A458D50CFF /* Carbon.framework */; }; + 49B245B2311E458D631105B5 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 70BD41BC43D1767C493D4B07 /* ForceFeedback.framework */; }; + 30654A5B510B5FDD26F012DC /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 62A5002E6CDE23C3601931E1 /* CoreFoundation.framework */; }; + 495C760C1F090E551CD30744 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4FF1117D3E08144A1FB75727 /* OpenGL.framework */; }; + 15B73C417E775E8C789C760E /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2F4656C1319D435B3942325F /* libSDL2main.a */; }; + 2DBD575800C87AB24B62371A /* libSDL2test.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D85368D023A6C344FD93913 /* libSDL2test.a */; }; + 19B3571E22DD01C53F4F6318 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5B047E5801E928BC78040BE3 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 49F65F4954892A3468AF59B9 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 6B0400622E6E3A5B64172CE7 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 58DC62993160374E09FF7AD6; + remoteInfo = "libSDL2main.a"; + }; + 11E6192A46CF465107FD024B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 6B0400622E6E3A5B64172CE7 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 0E7126A94A11494963D3548B; + remoteInfo = "libSDL2main.a"; + }; + 21E806AD668806325D1D568C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 281E6FEE01AD198860124328 /* SDL2test.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 1E1175156F97314C291323CB; + remoteInfo = "libSDL2test.a"; + }; + 099722936B22291412D24925 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 281E6FEE01AD198860124328 /* SDL2test.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7CD70F5D43DA554D66287CFC; + remoteInfo = "libSDL2test.a"; + }; + 2C01777530B566FF16C02CE9 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 2C011B767D7601FD42D544E2 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 07D004B11E733F1F0EA93105; + remoteInfo = "libSDL2.a"; + }; + 0CAA140978155CF111F45286 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 2C011B767D7601FD42D544E2 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 58C10ED14175754444033E0E; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 35B30B9D2BA973305B431C79 /* testwm2.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testwm2.c"; path = "../../../../../test/testwm2.c"; sourceTree = ""; }; + 3F3B433238510A9201395B14 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 5A9723A216397B73732E783F /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 1B7D416035FC73F2499D780B /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 14494572789E5DD835710F4A /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 67A17B15236238841E225074 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 607D43CA29AD40A458D50CFF /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 70BD41BC43D1767C493D4B07 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 62A5002E6CDE23C3601931E1 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 4FF1117D3E08144A1FB75727 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 07E01726741D59FE3E556A53 /* testwm2 */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testwm2"; path = "testwm2"; sourceTree = BUILT_PRODUCTS_DIR; }; + 6B0400622E6E3A5B64172CE7 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 281E6FEE01AD198860124328 /* SDL2test.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2test.xcodeproj"; path = "../../SDL2test/SDL2test.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 2C011B767D7601FD42D544E2 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 14610380060F5C6C541555CA /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 02BA178200D8732B480340AA /* AudioToolbox.framework in Frameworks */, + 2531497A26C41FFB2DFE1CAA /* AudioUnit.framework in Frameworks */, + 294839F8023630471AC87C9A /* Cocoa.framework in Frameworks */, + 75960A7B1E35508958204E07 /* CoreAudio.framework in Frameworks */, + 0FEA07E415674BD44CE2221A /* IOKit.framework in Frameworks */, + 78B22C7E3EC4657C3ED53157 /* Carbon.framework in Frameworks */, + 49B245B2311E458D631105B5 /* ForceFeedback.framework in Frameworks */, + 30654A5B510B5FDD26F012DC /* CoreFoundation.framework in Frameworks */, + 495C760C1F090E551CD30744 /* OpenGL.framework in Frameworks */, + 15B73C417E775E8C789C760E /* libSDL2main.a in Frameworks */, + 2DBD575800C87AB24B62371A /* libSDL2test.a in Frameworks */, + 19B3571E22DD01C53F4F6318 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 1D09699575D57C337D881716 /* testwm2 */ = { + isa = PBXGroup; + children = ( + 62B85D0C5D6D45B730F13A95 /* test */, + 678A4C923DF9534372032E2D /* Frameworks */, + 2CAC771F4C957321357F4473 /* Products */, + 68737EBC1D3C666D219A2090 /* Projects */, + ); + name = "testwm2"; + sourceTree = ""; + }; + 62B85D0C5D6D45B730F13A95 /* test */ = { + isa = PBXGroup; + children = ( + 35B30B9D2BA973305B431C79 /* testwm2.c */, + ); + name = "test"; + sourceTree = ""; + }; + 678A4C923DF9534372032E2D /* Frameworks */ = { + isa = PBXGroup; + children = ( + 3F3B433238510A9201395B14 /* AudioToolbox.framework */, + 5A9723A216397B73732E783F /* AudioUnit.framework */, + 1B7D416035FC73F2499D780B /* Cocoa.framework */, + 14494572789E5DD835710F4A /* CoreAudio.framework */, + 67A17B15236238841E225074 /* IOKit.framework */, + 607D43CA29AD40A458D50CFF /* Carbon.framework */, + 70BD41BC43D1767C493D4B07 /* ForceFeedback.framework */, + 62A5002E6CDE23C3601931E1 /* CoreFoundation.framework */, + 4FF1117D3E08144A1FB75727 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 2CAC771F4C957321357F4473 /* Products */ = { + isa = PBXGroup; + children = ( + 07E01726741D59FE3E556A53 /* testwm2 */, + ); + name = "Products"; + sourceTree = ""; + }; + 68737EBC1D3C666D219A2090 /* Projects */ = { + isa = PBXGroup; + children = ( + 6B0400622E6E3A5B64172CE7 /* SDL2main.xcodeproj */, + 281E6FEE01AD198860124328 /* SDL2test.xcodeproj */, + 2C011B767D7601FD42D544E2 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 6D41569C576B5436603F06AB /* Products */ = { + isa = PBXGroup; + children = ( + 2F4656C1319D435B3942325F /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 053706934CCC7FF400CE1389 /* Products */ = { + isa = PBXGroup; + children = ( + 1D85368D023A6C344FD93913 /* libSDL2test.a */, + ); + name = Products; + sourceTree = ""; + }; + 70CB3D756B797AAB28B10A4A /* Products */ = { + isa = PBXGroup; + children = ( + 5B047E5801E928BC78040BE3 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 040021644D381D391EC87B8B /* testwm2 */ = { + isa = PBXNativeTarget; + buildConfigurationList = 7424155926126AB723AF4B82 /* Build configuration list for PBXNativeTarget "testwm2" */; + buildPhases = ( + 4B6F67D309DE6D6A712071FE /* Resources */, + 74917742401B5C89514A5EE9 /* Sources */, + 14610380060F5C6C541555CA /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 0B6411B5332216224D032859 /* PBXTargetDependency */, + 2F3F521D29963DC7033E09AB /* PBXTargetDependency */, + 6DB07A415BAB464C451D7F41 /* PBXTargetDependency */, + ); + name = "testwm2"; + productInstallPath = "$(HOME)/bin"; + productName = "testwm2"; + productReference = 07E01726741D59FE3E556A53 /* testwm2 */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testwm2" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 1D09699575D57C337D881716 /* testwm2 */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 6D41569C576B5436603F06AB /* Products */; + ProjectRef = 6B0400622E6E3A5B64172CE7 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 053706934CCC7FF400CE1389 /* Products */; + ProjectRef = 281E6FEE01AD198860124328 /* SDL2test.xcodeproj */; + }, + { + ProductGroup = 70CB3D756B797AAB28B10A4A /* Products */; + ProjectRef = 2C011B767D7601FD42D544E2 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 040021644D381D391EC87B8B /* testwm2 */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 2F4656C1319D435B3942325F /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 49F65F4954892A3468AF59B9 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 1D85368D023A6C344FD93913 /* libSDL2test.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2test.a"; + remoteRef = 21E806AD668806325D1D568C /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 5B047E5801E928BC78040BE3 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 2C01777530B566FF16C02CE9 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 4B6F67D309DE6D6A712071FE /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 74917742401B5C89514A5EE9 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0BE42EAB72F36C7702866C3E /* testwm2.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 0B6411B5332216224D032859 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 11E6192A46CF465107FD024B /* PBXContainerItemProxy */; + }; + 2F3F521D29963DC7033E09AB /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2test.a"; + targetProxy = 099722936B22291412D24925 /* PBXContainerItemProxy */; + }; + 6DB07A415BAB464C451D7F41 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 0CAA140978155CF111F45286 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 21745AB753B5396747C850CC /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testwm2"; + }; + name = "Debug Universal"; + }; + 1FA85E282A6B581D6B67455E /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testwm2"; + }; + name = "Debug Native"; + }; + 46C62A8339C80E652667525F /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testwm2"; + }; + name = "Release Universal"; + }; + 153152C87B3E483F379E7211 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testwm2"; + }; + name = "Release Native"; + }; + 21BC41E2666D0061196139E7 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 322B588A51FC7CBD74E32330 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 0F132F51083F1502419B3ED6 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 55040782070F03AE2C4847F0 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 7424155926126AB723AF4B82 /* Build configuration list for PBXNativeTarget "testwm2" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 21745AB753B5396747C850CC /* Debug Universal */, + 1FA85E282A6B581D6B67455E /* Debug Native */, + 46C62A8339C80E652667525F /* Release Universal */, + 153152C87B3E483F379E7211 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testwm2" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 21BC41E2666D0061196139E7 /* Debug Universal */, + 322B588A51FC7CBD74E32330 /* Debug Native */, + 0F132F51083F1502419B3ED6 /* Release Universal */, + 55040782070F03AE2C4847F0 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode3/tests/torturethread/torturethread.xcodeproj/project.pbxproj b/premake/Xcode/Xcode3/tests/torturethread/torturethread.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..2309abff88857 --- /dev/null +++ b/premake/Xcode/Xcode3/tests/torturethread/torturethread.xcodeproj/project.pbxproj @@ -0,0 +1,457 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 0B1A6B465F267277727F1F6A /* torturethread.c in Sources */ = {isa = PBXBuildFile; fileRef = 5FA75DEA52290DD6605A4165 /* torturethread.c */; }; + 0CB40A2C6B384AFE1F85723A /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 79E670F651C62A887F6A3215 /* AudioToolbox.framework */; }; + 41B152CD3C1934387F884871 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 483C7AD419A54986085D3C48 /* AudioUnit.framework */; }; + 4AAE7E7E0A5653E768C911A7 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0ACC6B776AC5494213B245D5 /* Cocoa.framework */; }; + 59D67481676E7E4D1C56615B /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00142FCB5AC003C512F6094D /* CoreAudio.framework */; }; + 3FE91A7D412638F432DE3092 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 23342F6529E525F2711B4A7C /* IOKit.framework */; }; + 3B603B2925A51C443AE06C31 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4DE1115E4433107A54200280 /* Carbon.framework */; }; + 354E39343B790A977606178E /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 36EE5D451D1849841BF45B78 /* ForceFeedback.framework */; }; + 093E72445180495D2C004D65 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7E321F3300CF2F895F7F1C47 /* CoreFoundation.framework */; }; + 38FF0DD1184645800F951B47 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40701A1D6AD506C4546D7276 /* OpenGL.framework */; }; + 3ED8149145C136443C2A20C4 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 774C249D69042D1A42DF6270 /* libSDL2main.a */; }; + 6F343F4955834AD4658C4DF4 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6ACA22173E33236140FF5CCC /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 5B10199654223EDE16005ABF /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 49211B7E24B9724343D8399B /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 58DC62993160374E09FF7AD6; + remoteInfo = "libSDL2main.a"; + }; + 492C0DDD39AC709960CA1D3B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 49211B7E24B9724343D8399B /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 0E7126A94A11494963D3548B; + remoteInfo = "libSDL2main.a"; + }; + 281A4C152FA91B280FFD4166 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 2A972B8803A774F925DC2034 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 07D004B11E733F1F0EA93105; + remoteInfo = "libSDL2.a"; + }; + 24F701915BCC641934B646BE /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 2A972B8803A774F925DC2034 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 58C10ED14175754444033E0E; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 5FA75DEA52290DD6605A4165 /* torturethread.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "torturethread.c"; path = "../../../../../test/torturethread.c"; sourceTree = ""; }; + 79E670F651C62A887F6A3215 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 483C7AD419A54986085D3C48 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 0ACC6B776AC5494213B245D5 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 00142FCB5AC003C512F6094D /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 23342F6529E525F2711B4A7C /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 4DE1115E4433107A54200280 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 36EE5D451D1849841BF45B78 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 7E321F3300CF2F895F7F1C47 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 40701A1D6AD506C4546D7276 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 04C670D73B865A7F51992465 /* torturethread */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "torturethread"; path = "torturethread"; sourceTree = BUILT_PRODUCTS_DIR; }; + 49211B7E24B9724343D8399B /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 2A972B8803A774F925DC2034 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 383067F53F225E3F7E2C39A1 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 0CB40A2C6B384AFE1F85723A /* AudioToolbox.framework in Frameworks */, + 41B152CD3C1934387F884871 /* AudioUnit.framework in Frameworks */, + 4AAE7E7E0A5653E768C911A7 /* Cocoa.framework in Frameworks */, + 59D67481676E7E4D1C56615B /* CoreAudio.framework in Frameworks */, + 3FE91A7D412638F432DE3092 /* IOKit.framework in Frameworks */, + 3B603B2925A51C443AE06C31 /* Carbon.framework in Frameworks */, + 354E39343B790A977606178E /* ForceFeedback.framework in Frameworks */, + 093E72445180495D2C004D65 /* CoreFoundation.framework in Frameworks */, + 38FF0DD1184645800F951B47 /* OpenGL.framework in Frameworks */, + 3ED8149145C136443C2A20C4 /* libSDL2main.a in Frameworks */, + 6F343F4955834AD4658C4DF4 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 52C33FFB7B7F54AF3360134B /* torturethread */ = { + isa = PBXGroup; + children = ( + 4104708A743A2F6E04606A87 /* test */, + 16FB4D0B36D6203039B60176 /* Frameworks */, + 11876D82024B38F500662D0D /* Products */, + 35307E4C3A3868B6445F5BDD /* Projects */, + ); + name = "torturethread"; + sourceTree = ""; + }; + 4104708A743A2F6E04606A87 /* test */ = { + isa = PBXGroup; + children = ( + 5FA75DEA52290DD6605A4165 /* torturethread.c */, + ); + name = "test"; + sourceTree = ""; + }; + 16FB4D0B36D6203039B60176 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 79E670F651C62A887F6A3215 /* AudioToolbox.framework */, + 483C7AD419A54986085D3C48 /* AudioUnit.framework */, + 0ACC6B776AC5494213B245D5 /* Cocoa.framework */, + 00142FCB5AC003C512F6094D /* CoreAudio.framework */, + 23342F6529E525F2711B4A7C /* IOKit.framework */, + 4DE1115E4433107A54200280 /* Carbon.framework */, + 36EE5D451D1849841BF45B78 /* ForceFeedback.framework */, + 7E321F3300CF2F895F7F1C47 /* CoreFoundation.framework */, + 40701A1D6AD506C4546D7276 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 11876D82024B38F500662D0D /* Products */ = { + isa = PBXGroup; + children = ( + 04C670D73B865A7F51992465 /* torturethread */, + ); + name = "Products"; + sourceTree = ""; + }; + 35307E4C3A3868B6445F5BDD /* Projects */ = { + isa = PBXGroup; + children = ( + 49211B7E24B9724343D8399B /* SDL2main.xcodeproj */, + 2A972B8803A774F925DC2034 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 19B4019451080CEE6B6752BA /* Products */ = { + isa = PBXGroup; + children = ( + 774C249D69042D1A42DF6270 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 51FB541E39AA5F7A55401C07 /* Products */ = { + isa = PBXGroup; + children = ( + 6ACA22173E33236140FF5CCC /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 75467BAF23EA7DA442B93066 /* torturethread */ = { + isa = PBXNativeTarget; + buildConfigurationList = 62AA34F754F6660758827B79 /* Build configuration list for PBXNativeTarget "torturethread" */; + buildPhases = ( + 59B43C746DAF04801E8356AF /* Resources */, + 7C03337571B2019A391F6075 /* Sources */, + 383067F53F225E3F7E2C39A1 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 1A5E31995684244817750D80 /* PBXTargetDependency */, + 69881AE217550B2E0BA6694F /* PBXTargetDependency */, + ); + name = "torturethread"; + productInstallPath = "$(HOME)/bin"; + productName = "torturethread"; + productReference = 04C670D73B865A7F51992465 /* torturethread */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "torturethread" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 52C33FFB7B7F54AF3360134B /* torturethread */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 19B4019451080CEE6B6752BA /* Products */; + ProjectRef = 49211B7E24B9724343D8399B /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 51FB541E39AA5F7A55401C07 /* Products */; + ProjectRef = 2A972B8803A774F925DC2034 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 75467BAF23EA7DA442B93066 /* torturethread */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 774C249D69042D1A42DF6270 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 5B10199654223EDE16005ABF /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 6ACA22173E33236140FF5CCC /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 281A4C152FA91B280FFD4166 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 59B43C746DAF04801E8356AF /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 7C03337571B2019A391F6075 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0B1A6B465F267277727F1F6A /* torturethread.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 1A5E31995684244817750D80 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 492C0DDD39AC709960CA1D3B /* PBXContainerItemProxy */; + }; + 69881AE217550B2E0BA6694F /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 24F701915BCC641934B646BE /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 7AA24F003AD034440EBA0FE2 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "torturethread"; + }; + name = "Debug Universal"; + }; + 273B1EDF6B8448E06AFE7AD5 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "torturethread"; + }; + name = "Debug Native"; + }; + 34AD579C519045767AA1795E /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "torturethread"; + }; + name = "Release Universal"; + }; + 6FE9381E57F51F65473054AB /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "torturethread"; + }; + name = "Release Native"; + }; + 70CE0CB34B4406E20D7A628B /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 6BB62409012546322B45004E /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 2C526089646A0EBC67F450CF /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 45FE47EA0082624D6480128B /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 62AA34F754F6660758827B79 /* Build configuration list for PBXNativeTarget "torturethread" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7AA24F003AD034440EBA0FE2 /* Debug Universal */, + 273B1EDF6B8448E06AFE7AD5 /* Debug Native */, + 34AD579C519045767AA1795E /* Release Universal */, + 6FE9381E57F51F65473054AB /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "torturethread" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 70CE0CB34B4406E20D7A628B /* Debug Universal */, + 6BB62409012546322B45004E /* Debug Native */, + 2C526089646A0EBC67F450CF /* Release Universal */, + 45FE47EA0082624D6480128B /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode4/SDL.xcworkspace/contents.xcworkspacedata b/premake/Xcode/Xcode4/SDL.xcworkspace/contents.xcworkspacedata new file mode 100755 index 0000000000000..7f40a1a76d5a5 --- /dev/null +++ b/premake/Xcode/Xcode4/SDL.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,145 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/premake/Xcode/Xcode4/SDL2/SDL2.xcodeproj/project.pbxproj b/premake/Xcode/Xcode4/SDL2/SDL2.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..d930889b87033 --- /dev/null +++ b/premake/Xcode/Xcode4/SDL2/SDL2.xcodeproj/project.pbxproj @@ -0,0 +1,1229 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 56395776433B06D125BE09F9 /* SDL.c in Sources */ = {isa = PBXBuildFile; fileRef = 40DE5BD04661156D57675BAF /* SDL.c */; }; + 0D11631D261C2DED48367BD9 /* SDL_assert.c in Sources */ = {isa = PBXBuildFile; fileRef = 797C5E120E96465D084D1803 /* SDL_assert.c */; }; + 63957CDA535A39C9449D535D /* SDL_error.c in Sources */ = {isa = PBXBuildFile; fileRef = 62EB566114EC180710563B61 /* SDL_error.c */; }; + 396E14272C895B1B023B0EBF /* SDL_hints.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D633DEF28166D625DCD4EC6 /* SDL_hints.c */; }; + 47A824D52595733944650324 /* SDL_log.c in Sources */ = {isa = PBXBuildFile; fileRef = 49545EB23967505C4C1F1F5F /* SDL_log.c */; }; + 0DA40BB5530E3E8A13B22B2A /* SDL_atomic.c in Sources */ = {isa = PBXBuildFile; fileRef = 767256F16F7D79C038E41DCF /* SDL_atomic.c */; }; + 78B369711FEC690B61E878DB /* SDL_spinlock.c in Sources */ = {isa = PBXBuildFile; fileRef = 753F026C2D846DEF73FC61B0 /* SDL_spinlock.c */; }; + 106D013A4421102300555D43 /* SDL_audio.c in Sources */ = {isa = PBXBuildFile; fileRef = 6F143CF2601E131B5DEA62F6 /* SDL_audio.c */; }; + 2BF6538C20D269CB37087387 /* SDL_audiocvt.c in Sources */ = {isa = PBXBuildFile; fileRef = 07B907294E82663A7E91738C /* SDL_audiocvt.c */; }; + 32E8550E3FC92BD73B4739B8 /* SDL_audiodev.c in Sources */ = {isa = PBXBuildFile; fileRef = 5AAD4B726237251050431873 /* SDL_audiodev.c */; }; + 42C743FD554803F551385F5E /* SDL_audiotypecvt.c in Sources */ = {isa = PBXBuildFile; fileRef = 5B0759ED16B35B9A6B027892 /* SDL_audiotypecvt.c */; }; + 7D2A6B3F36BD6DD353D43953 /* SDL_mixer.c in Sources */ = {isa = PBXBuildFile; fileRef = 2B8C7A19218A1FFC6D376B1D /* SDL_mixer.c */; }; + 259157355D6D2B2A7C9411BE /* SDL_wave.c in Sources */ = {isa = PBXBuildFile; fileRef = 1D567D9642D94A6145E55558 /* SDL_wave.c */; }; + 4AA7597B1C4036EE6193174F /* SDL_coreaudio.c in Sources */ = {isa = PBXBuildFile; fileRef = 0D7A645338CD1BFD1E5D728F /* SDL_coreaudio.c */; }; + 5674042A21325D343ED27F33 /* SDL_diskaudio.c in Sources */ = {isa = PBXBuildFile; fileRef = 7E9A6779675D116654DA5CB0 /* SDL_diskaudio.c */; }; + 0B905C2A4B5E31B840865641 /* SDL_dummyaudio.c in Sources */ = {isa = PBXBuildFile; fileRef = 79AC10FC31263C0868140F20 /* SDL_dummyaudio.c */; }; + 47D9062664F05CC72A952A7A /* SDL_cpuinfo.c in Sources */ = {isa = PBXBuildFile; fileRef = 72EF5BB771227B3637235CF8 /* SDL_cpuinfo.c */; }; + 70D12B02516F0F2905AB412C /* SDL_clipboardevents.c in Sources */ = {isa = PBXBuildFile; fileRef = 07AB1E6A616157DA448246C0 /* SDL_clipboardevents.c */; }; + 7B571F1F643422652B14420D /* SDL_dropevents.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D7748773CB1127031D53492 /* SDL_dropevents.c */; }; + 5D6A089F279C32D34F707938 /* SDL_events.c in Sources */ = {isa = PBXBuildFile; fileRef = 5CD12CBF4D837A2735DA357A /* SDL_events.c */; }; + 2FF10E5E5FFE5AA7236E259D /* SDL_gesture.c in Sources */ = {isa = PBXBuildFile; fileRef = 6E8C6A11181536B54CDA3862 /* SDL_gesture.c */; }; + 572E0DE06DA25C7C7B4641CB /* SDL_keyboard.c in Sources */ = {isa = PBXBuildFile; fileRef = 228F5EB207C27065272F3B1E /* SDL_keyboard.c */; }; + 4D11428427B179E3476635ED /* SDL_mouse.c in Sources */ = {isa = PBXBuildFile; fileRef = 0D561615477231185657134D /* SDL_mouse.c */; }; + 4D633D8F070C41582A4B57C0 /* SDL_quit.c in Sources */ = {isa = PBXBuildFile; fileRef = 19351893793F509D77923EC4 /* SDL_quit.c */; }; + 4CB676BB174D5FA62B1A74F5 /* SDL_touch.c in Sources */ = {isa = PBXBuildFile; fileRef = 406016940A0A2E5D164A56D5 /* SDL_touch.c */; }; + 4FDB4381525E3F0E54222AB7 /* SDL_windowevents.c in Sources */ = {isa = PBXBuildFile; fileRef = 268F2B06517B6E4D1AB372BC /* SDL_windowevents.c */; }; + 104E1ED077B5263C2F767E76 /* SDL_rwops.c in Sources */ = {isa = PBXBuildFile; fileRef = 5F7B20DF1BD236742BA56323 /* SDL_rwops.c */; }; + 054C588B4B675FE145C405FF /* SDL_rwopsbundlesupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D6F3B426BD93160262A1A0B /* SDL_rwopsbundlesupport.m */; }; + 333A606602A9304E62204041 /* SDL_sysfilesystem.m in Sources */ = {isa = PBXBuildFile; fileRef = 3DFF58520B8305A67E5866F0 /* SDL_sysfilesystem.m */; }; + 7F371E9614B444B008BB61EB /* SDL_haptic.c in Sources */ = {isa = PBXBuildFile; fileRef = 748B5BD12D28466142D36C04 /* SDL_haptic.c */; }; + 491A69413C3372F47FD526C4 /* SDL_syshaptic.c in Sources */ = {isa = PBXBuildFile; fileRef = 07875CF62CC235C2023B171E /* SDL_syshaptic.c */; }; + 323563246DB26CEE1EE57A87 /* SDL_gamecontroller.c in Sources */ = {isa = PBXBuildFile; fileRef = 474463FC44D12D8266163B0C /* SDL_gamecontroller.c */; }; + 6055787753B66A4F7C7C62CC /* SDL_joystick.c in Sources */ = {isa = PBXBuildFile; fileRef = 0A51682775F7695826CC3AAD /* SDL_joystick.c */; }; + 111C502964B81A6C3F8B75E9 /* SDL_sysjoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = 362B7F38400724D4745D17C1 /* SDL_sysjoystick.c */; }; + 76537577175D73B66E382DF3 /* SDL_sysloadso.c in Sources */ = {isa = PBXBuildFile; fileRef = 3E5A3557080276B82EE540D7 /* SDL_sysloadso.c */; }; + 4A6367E166855369495907D2 /* SDL_power.c in Sources */ = {isa = PBXBuildFile; fileRef = 295B490053604A1B5F832E31 /* SDL_power.c */; }; + 703B3B447BD5756E17974E35 /* SDL_syspower.c in Sources */ = {isa = PBXBuildFile; fileRef = 441A169052554B8C05B2780E /* SDL_syspower.c */; }; + 00F850905E8838901D684336 /* SDL_render.c in Sources */ = {isa = PBXBuildFile; fileRef = 125E7FE947363FCE78AB3920 /* SDL_render.c */; }; + 084519B745617A795612765B /* SDL_yuv_mmx.c in Sources */ = {isa = PBXBuildFile; fileRef = 5EB1630859F568532C8C3792 /* SDL_yuv_mmx.c */; }; + 7A7F452C793B51C108155BF3 /* SDL_yuv_sw.c in Sources */ = {isa = PBXBuildFile; fileRef = 08C15C7515050FDD2A886246 /* SDL_yuv_sw.c */; }; + 0BBB364F1AA839334CA903E1 /* SDL_render_gl.c in Sources */ = {isa = PBXBuildFile; fileRef = 66021F1B50BA0B215910589A /* SDL_render_gl.c */; }; + 2FE315477EB5534A33D63088 /* SDL_shaders_gl.c in Sources */ = {isa = PBXBuildFile; fileRef = 51D64CC2780E096415426017 /* SDL_shaders_gl.c */; }; + 61F2084A5BE32DCB11E03C70 /* SDL_blendfillrect.c in Sources */ = {isa = PBXBuildFile; fileRef = 36727BCA2F1D5437708B7454 /* SDL_blendfillrect.c */; }; + 59EE3C2409372B9639821D70 /* SDL_blendline.c in Sources */ = {isa = PBXBuildFile; fileRef = 66C5268A542E341900F55A35 /* SDL_blendline.c */; }; + 485B7C4A13A54E2B21E3558A /* SDL_blendpoint.c in Sources */ = {isa = PBXBuildFile; fileRef = 5482361F3563048574A46DB9 /* SDL_blendpoint.c */; }; + 72837DD3347C47EC16E204B9 /* SDL_drawline.c in Sources */ = {isa = PBXBuildFile; fileRef = 61C21D5077C07E4904B51C90 /* SDL_drawline.c */; }; + 2CF944703D09586A2DBC5140 /* SDL_drawpoint.c in Sources */ = {isa = PBXBuildFile; fileRef = 59D62A724BBF27CC59231297 /* SDL_drawpoint.c */; }; + 5FAA1511268914C730B15F91 /* SDL_render_sw.c in Sources */ = {isa = PBXBuildFile; fileRef = 0FFF44745C270A0C4F730726 /* SDL_render_sw.c */; }; + 31BE4ECF1A3005304B891CAA /* SDL_rotate.c in Sources */ = {isa = PBXBuildFile; fileRef = 421F406A12633DAC795C1EB3 /* SDL_rotate.c */; }; + 671B561A4F8961200C43368D /* SDL_getenv.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BC907785D5E6668627E78DE /* SDL_getenv.c */; }; + 325E5B1B5C4745827A1E6E5F /* SDL_iconv.c in Sources */ = {isa = PBXBuildFile; fileRef = 77815DDD6F364C510AC25CB6 /* SDL_iconv.c */; }; + 467362D4600918721A582DD1 /* SDL_malloc.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F8275E71B900C7D074949FC /* SDL_malloc.c */; }; + 280E40795C183DBB6A970829 /* SDL_qsort.c in Sources */ = {isa = PBXBuildFile; fileRef = 07251EE10156492D512F75F3 /* SDL_qsort.c */; }; + 35EB063D107A51CE41391E68 /* SDL_stdlib.c in Sources */ = {isa = PBXBuildFile; fileRef = 57323D836A0E78552E015D8E /* SDL_stdlib.c */; }; + 751335C2100E444D570F538E /* SDL_string.c in Sources */ = {isa = PBXBuildFile; fileRef = 57F4780F2A47469D23006DD1 /* SDL_string.c */; }; + 296D670D18660CF766E818CC /* SDL_thread.c in Sources */ = {isa = PBXBuildFile; fileRef = 08FF4C92289179BB0EDF765E /* SDL_thread.c */; }; + 11FC3C2D57D7210A3D615BA9 /* SDL_syscond.c in Sources */ = {isa = PBXBuildFile; fileRef = 04D200E634516AF92074244C /* SDL_syscond.c */; }; + 373D343B1143034962617BD7 /* SDL_sysmutex.c in Sources */ = {isa = PBXBuildFile; fileRef = 5CC65F3A65EF32EE5C773558 /* SDL_sysmutex.c */; }; + 15337628451D793D3CAB15D4 /* SDL_syssem.c in Sources */ = {isa = PBXBuildFile; fileRef = 05D36048404E42022A7E4127 /* SDL_syssem.c */; }; + 6AB87FC5673A2BBE6C9E0DB5 /* SDL_systhread.c in Sources */ = {isa = PBXBuildFile; fileRef = 17B31E2F2CC55CBC6F0A1D9B /* SDL_systhread.c */; }; + 2D677EC478A065B220E460EC /* SDL_systls.c in Sources */ = {isa = PBXBuildFile; fileRef = 41E150D956EA3AD510743873 /* SDL_systls.c */; }; + 623F50970F234B5E09CA450B /* SDL_timer.c in Sources */ = {isa = PBXBuildFile; fileRef = 41B156D22A535379479747CB /* SDL_timer.c */; }; + 13913E6F0397429A2DEB3D40 /* SDL_systimer.c in Sources */ = {isa = PBXBuildFile; fileRef = 459149F92FC6055B32F7153F /* SDL_systimer.c */; }; + 65946C744E79150A4C7C045C /* SDL_RLEaccel.c in Sources */ = {isa = PBXBuildFile; fileRef = 4A9716005FF9561D2C3F6284 /* SDL_RLEaccel.c */; }; + 283C240D0F085FE959BD477C /* SDL_blit.c in Sources */ = {isa = PBXBuildFile; fileRef = 3B0568EE0EB87B3019C24A16 /* SDL_blit.c */; }; + 1BB3311C46100188199C04D0 /* SDL_blit_0.c in Sources */ = {isa = PBXBuildFile; fileRef = 3EC71493552F0AB6601B4921 /* SDL_blit_0.c */; }; + 2B76555A37F14B4D41A27593 /* SDL_blit_1.c in Sources */ = {isa = PBXBuildFile; fileRef = 7D16555224CA08DB629F3ED1 /* SDL_blit_1.c */; }; + 49D204421C4F1B8835DE2832 /* SDL_blit_A.c in Sources */ = {isa = PBXBuildFile; fileRef = 296F6626753E62AE4A57408A /* SDL_blit_A.c */; }; + 5E613DFE79B379C26D650D96 /* SDL_blit_N.c in Sources */ = {isa = PBXBuildFile; fileRef = 02A05727533149171EF6318C /* SDL_blit_N.c */; }; + 4A4664FE74896DF45E1808EE /* SDL_blit_auto.c in Sources */ = {isa = PBXBuildFile; fileRef = 2B90062B1FBE1B1865A01BF8 /* SDL_blit_auto.c */; }; + 3059473C61AB631709347385 /* SDL_blit_copy.c in Sources */ = {isa = PBXBuildFile; fileRef = 1DD33CE21E6B143616A13AF1 /* SDL_blit_copy.c */; }; + 50DB688039D37DD9582868D6 /* SDL_blit_slow.c in Sources */ = {isa = PBXBuildFile; fileRef = 1CA1189B180060246D2B3B37 /* SDL_blit_slow.c */; }; + 375F7D0C5126459216E47CF2 /* SDL_bmp.c in Sources */ = {isa = PBXBuildFile; fileRef = 6F5D7EFD4E2B79D45E1B51E3 /* SDL_bmp.c */; }; + 49F101CA136501802AFA3B94 /* SDL_clipboard.c in Sources */ = {isa = PBXBuildFile; fileRef = 164801C9489C07724F6A784E /* SDL_clipboard.c */; }; + 54E9387C7E1D51AC31935DA3 /* SDL_egl.c in Sources */ = {isa = PBXBuildFile; fileRef = 286B34BD2239541E1ABF7B58 /* SDL_egl.c */; }; + 66E622863C5A41026F594412 /* SDL_fillrect.c in Sources */ = {isa = PBXBuildFile; fileRef = 2F9B71653C254E7E388808C5 /* SDL_fillrect.c */; }; + 57AE719928720E68714B209F /* SDL_pixels.c in Sources */ = {isa = PBXBuildFile; fileRef = 7F9D4C460D482A96620971F4 /* SDL_pixels.c */; }; + 2D93262C241F1433246B2085 /* SDL_rect.c in Sources */ = {isa = PBXBuildFile; fileRef = 366D6F2633EA002441056CC7 /* SDL_rect.c */; }; + 228023C6583F3DE84EF42C58 /* SDL_shape.c in Sources */ = {isa = PBXBuildFile; fileRef = 349E213D6BCD6E7D754918E0 /* SDL_shape.c */; }; + 7E1C02D05DC73D8430EE5B32 /* SDL_stretch.c in Sources */ = {isa = PBXBuildFile; fileRef = 334B22626BDE407C402A36B6 /* SDL_stretch.c */; }; + 01AC02B5766A48C8670031F2 /* SDL_surface.c in Sources */ = {isa = PBXBuildFile; fileRef = 34EE3252493E44852C6F4D1A /* SDL_surface.c */; }; + 4BD4541153E57A437BF32A86 /* SDL_video.c in Sources */ = {isa = PBXBuildFile; fileRef = 124B099C775D350017963585 /* SDL_video.c */; }; + 51243DCF16C22BE3744032EF /* SDL_cocoaclipboard.m in Sources */ = {isa = PBXBuildFile; fileRef = 118A36F07D45647F0A084319 /* SDL_cocoaclipboard.m */; }; + 012C15875FDC21D61CD929D0 /* SDL_cocoaevents.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C224B440FCA2C1F2C3C1FAE /* SDL_cocoaevents.m */; }; + 1573379D58A7574D0DBA47AC /* SDL_cocoakeyboard.m in Sources */ = {isa = PBXBuildFile; fileRef = 4402087F5CB90F317D9208D2 /* SDL_cocoakeyboard.m */; }; + 787242E36A2735A57F59687B /* SDL_cocoamessagebox.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BFF56C82567424C3CF4591E /* SDL_cocoamessagebox.m */; }; + 2B4D04205F557192365D431C /* SDL_cocoamodes.m in Sources */ = {isa = PBXBuildFile; fileRef = 57B60C7A316B6B5A70D13C82 /* SDL_cocoamodes.m */; }; + 310774F470EF614902A41941 /* SDL_cocoamouse.m in Sources */ = {isa = PBXBuildFile; fileRef = 309C0186189D062A37BF5FB6 /* SDL_cocoamouse.m */; }; + 24D86B472DA21C7365911852 /* SDL_cocoamousetap.m in Sources */ = {isa = PBXBuildFile; fileRef = 57283DDA43F325E829A27FBA /* SDL_cocoamousetap.m */; }; + 261C18D144B62BA517AB0CDE /* SDL_cocoaopengl.m in Sources */ = {isa = PBXBuildFile; fileRef = 361747734F387130393F605F /* SDL_cocoaopengl.m */; }; + 35B52CCD738D46A37D2A007A /* SDL_cocoashape.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DCD3646470A681D7025162E /* SDL_cocoashape.m */; }; + 11E63E4936207F26367F5238 /* SDL_cocoavideo.m in Sources */ = {isa = PBXBuildFile; fileRef = 3617606E15EE572C173C7BE1 /* SDL_cocoavideo.m */; }; + 40BD604A40D313FF5BBF038B /* SDL_cocoawindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 7CE067B94CD974F17E692018 /* SDL_cocoawindow.m */; }; + 78D451890F066EED1B184E5D /* SDL_nullevents.c in Sources */ = {isa = PBXBuildFile; fileRef = 4AC7612F064013A35D2E0F0E /* SDL_nullevents.c */; }; + 7D746673275A3D2832FC70E4 /* SDL_nullframebuffer.c in Sources */ = {isa = PBXBuildFile; fileRef = 137B7080251D541D4486734D /* SDL_nullframebuffer.c */; }; + 04EE66BE026750A6697D2D25 /* SDL_nullvideo.c in Sources */ = {isa = PBXBuildFile; fileRef = 0B7016F553F306D600E0142E /* SDL_nullvideo.c */; }; + 16890198400A74D216F21D5C /* SDL_x11clipboard.c in Sources */ = {isa = PBXBuildFile; fileRef = 614F0C224A9920122B861F1E /* SDL_x11clipboard.c */; }; + 5AF6069941FD62CC54180B0B /* SDL_x11dyn.c in Sources */ = {isa = PBXBuildFile; fileRef = 040245A23E4C1DB56C671C11 /* SDL_x11dyn.c */; }; + 5317393214211C5609A741CD /* SDL_x11events.c in Sources */ = {isa = PBXBuildFile; fileRef = 0D4B39C02DBE3C111ADF6469 /* SDL_x11events.c */; }; + 577A205B645529882614213E /* SDL_x11framebuffer.c in Sources */ = {isa = PBXBuildFile; fileRef = 4AC63B92198A385F654F2730 /* SDL_x11framebuffer.c */; }; + 70C662D65B383C6C59FD2D53 /* SDL_x11keyboard.c in Sources */ = {isa = PBXBuildFile; fileRef = 0DDF62C0484127D723E24C22 /* SDL_x11keyboard.c */; }; + 1C89094C623507F457F92E95 /* SDL_x11messagebox.c in Sources */ = {isa = PBXBuildFile; fileRef = 707F3FE15B0D494E51614B58 /* SDL_x11messagebox.c */; }; + 602E0AE6217E04A24E1B6557 /* SDL_x11modes.c in Sources */ = {isa = PBXBuildFile; fileRef = 1BA837F00E275AC823F41E55 /* SDL_x11modes.c */; }; + 43957BE84EEC1684606737A4 /* SDL_x11mouse.c in Sources */ = {isa = PBXBuildFile; fileRef = 084A624F52C129A670684094 /* SDL_x11mouse.c */; }; + 046106FA142534F231B450E8 /* SDL_x11opengl.c in Sources */ = {isa = PBXBuildFile; fileRef = 6956132B6EDD79D6109E23B6 /* SDL_x11opengl.c */; }; + 08301FE111B053194E1F0BA6 /* SDL_x11opengles.c in Sources */ = {isa = PBXBuildFile; fileRef = 23EC7FEA7AAA67186D60469D /* SDL_x11opengles.c */; }; + 2165120C077310332DB568BC /* SDL_x11shape.c in Sources */ = {isa = PBXBuildFile; fileRef = 541017773B6D0CC30C7F69F4 /* SDL_x11shape.c */; }; + 06E734A2124E48E15A4E5320 /* SDL_x11touch.c in Sources */ = {isa = PBXBuildFile; fileRef = 4FC145BC3C6D3F3C2D155C4E /* SDL_x11touch.c */; }; + 57586E4470463EE554525EAF /* SDL_x11video.c in Sources */ = {isa = PBXBuildFile; fileRef = 604D13500B247C9A6BB63264 /* SDL_x11video.c */; }; + 338D7DFE515B42686BA33874 /* SDL_x11window.c in Sources */ = {isa = PBXBuildFile; fileRef = 111D0E842DA26E0B16420249 /* SDL_x11window.c */; }; + 40DD09945F46241C46AD317A /* SDL_x11xinput2.c in Sources */ = {isa = PBXBuildFile; fileRef = 340B438574901D2053625299 /* SDL_x11xinput2.c */; }; + 1534489224852D230A1C3B61 /* edid-parse.c in Sources */ = {isa = PBXBuildFile; fileRef = 4A0D4F710FDE780140BA1A58 /* edid-parse.c */; }; + 2DE7276C55DC177D1FFD3CF4 /* imKStoUCS.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E7A2C910B56578B68161E79 /* imKStoUCS.c */; }; + 7433560855935E4F3FF263F0 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4F7F3A2F781C7E4027BF10D0 /* AudioToolbox.framework */; }; + 6E565EE1442A3BFC4AFE75C6 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40FD602A0F7D70BA45F43D6B /* AudioUnit.framework */; }; + 3FEA46BE079446F867776B71 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A655E13466520DF29BF55A6 /* Cocoa.framework */; }; + 14D343403DC36AE437D9195D /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 74AD246C59F62F2063FE6B8F /* CoreAudio.framework */; }; + 425302F6021B451911B44512 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E915DA675494CC65BAC159C /* IOKit.framework */; }; + 3ED608CE2822544E68372673 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 308A60C82BD87C2638C47377 /* Carbon.framework */; }; + 3FBE66251D11577638ED549A /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5702009549A31E003E2E5CF6 /* ForceFeedback.framework */; }; + 645E10F21FE63FE83F6652BC /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6F94036B274B6E9309345AF6 /* CoreFoundation.framework */; }; + 037D0C7B656434F579E54F0B /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3FAA70EE29303720292D57B6 /* OpenGL.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 40DE5BD04661156D57675BAF /* SDL.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL.c"; path = "../../../../src/SDL.c"; sourceTree = ""; }; + 797C5E120E96465D084D1803 /* SDL_assert.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_assert.c"; path = "../../../../src/SDL_assert.c"; sourceTree = ""; }; + 638F519324853667452D26A6 /* SDL_assert_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_assert_c.h"; path = "../../../../src/SDL_assert_c.h"; sourceTree = ""; }; + 62EB566114EC180710563B61 /* SDL_error.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_error.c"; path = "../../../../src/SDL_error.c"; sourceTree = ""; }; + 03540C7B6E8B017734163178 /* SDL_error_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_error_c.h"; path = "../../../../src/SDL_error_c.h"; sourceTree = ""; }; + 5D633DEF28166D625DCD4EC6 /* SDL_hints.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_hints.c"; path = "../../../../src/SDL_hints.c"; sourceTree = ""; }; + 49545EB23967505C4C1F1F5F /* SDL_log.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_log.c"; path = "../../../../src/SDL_log.c"; sourceTree = ""; }; + 767256F16F7D79C038E41DCF /* SDL_atomic.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_atomic.c"; path = "../../../../src/atomic/SDL_atomic.c"; sourceTree = ""; }; + 753F026C2D846DEF73FC61B0 /* SDL_spinlock.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_spinlock.c"; path = "../../../../src/atomic/SDL_spinlock.c"; sourceTree = ""; }; + 6F143CF2601E131B5DEA62F6 /* SDL_audio.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_audio.c"; path = "../../../../src/audio/SDL_audio.c"; sourceTree = ""; }; + 11352FF17D70724A5DF0462C /* SDL_audio_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_audio_c.h"; path = "../../../../src/audio/SDL_audio_c.h"; sourceTree = ""; }; + 07B907294E82663A7E91738C /* SDL_audiocvt.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_audiocvt.c"; path = "../../../../src/audio/SDL_audiocvt.c"; sourceTree = ""; }; + 5AAD4B726237251050431873 /* SDL_audiodev.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_audiodev.c"; path = "../../../../src/audio/SDL_audiodev.c"; sourceTree = ""; }; + 15895798549516351860492E /* SDL_audiodev_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_audiodev_c.h"; path = "../../../../src/audio/SDL_audiodev_c.h"; sourceTree = ""; }; + 0D3062CE47BF5D5934AB598D /* SDL_audiomem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_audiomem.h"; path = "../../../../src/audio/SDL_audiomem.h"; sourceTree = ""; }; + 5B0759ED16B35B9A6B027892 /* SDL_audiotypecvt.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_audiotypecvt.c"; path = "../../../../src/audio/SDL_audiotypecvt.c"; sourceTree = ""; }; + 2B8C7A19218A1FFC6D376B1D /* SDL_mixer.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_mixer.c"; path = "../../../../src/audio/SDL_mixer.c"; sourceTree = ""; }; + 09E4653E4CD964410C0E71BA /* SDL_sysaudio.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_sysaudio.h"; path = "../../../../src/audio/SDL_sysaudio.h"; sourceTree = ""; }; + 1D567D9642D94A6145E55558 /* SDL_wave.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_wave.c"; path = "../../../../src/audio/SDL_wave.c"; sourceTree = ""; }; + 72EA0C2D69F77DBD33AB3C51 /* SDL_wave.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_wave.h"; path = "../../../../src/audio/SDL_wave.h"; sourceTree = ""; }; + 0D7A645338CD1BFD1E5D728F /* SDL_coreaudio.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_coreaudio.c"; path = "../../../../src/audio/coreaudio/SDL_coreaudio.c"; sourceTree = ""; }; + 73190F7379966C4F40741823 /* SDL_coreaudio.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_coreaudio.h"; path = "../../../../src/audio/coreaudio/SDL_coreaudio.h"; sourceTree = ""; }; + 7E9A6779675D116654DA5CB0 /* SDL_diskaudio.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_diskaudio.c"; path = "../../../../src/audio/disk/SDL_diskaudio.c"; sourceTree = ""; }; + 05621EEA4E44078A77CB6A45 /* SDL_diskaudio.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_diskaudio.h"; path = "../../../../src/audio/disk/SDL_diskaudio.h"; sourceTree = ""; }; + 79AC10FC31263C0868140F20 /* SDL_dummyaudio.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_dummyaudio.c"; path = "../../../../src/audio/dummy/SDL_dummyaudio.c"; sourceTree = ""; }; + 7E6F31A9587A54142A217C04 /* SDL_dummyaudio.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_dummyaudio.h"; path = "../../../../src/audio/dummy/SDL_dummyaudio.h"; sourceTree = ""; }; + 72EF5BB771227B3637235CF8 /* SDL_cpuinfo.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_cpuinfo.c"; path = "../../../../src/cpuinfo/SDL_cpuinfo.c"; sourceTree = ""; }; + 07AB1E6A616157DA448246C0 /* SDL_clipboardevents.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_clipboardevents.c"; path = "../../../../src/events/SDL_clipboardevents.c"; sourceTree = ""; }; + 52A55FDD41493AD524FB1696 /* SDL_clipboardevents_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_clipboardevents_c.h"; path = "../../../../src/events/SDL_clipboardevents_c.h"; sourceTree = ""; }; + 5D7748773CB1127031D53492 /* SDL_dropevents.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_dropevents.c"; path = "../../../../src/events/SDL_dropevents.c"; sourceTree = ""; }; + 13F62D526EDE359A23CC367D /* SDL_dropevents_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_dropevents_c.h"; path = "../../../../src/events/SDL_dropevents_c.h"; sourceTree = ""; }; + 5CD12CBF4D837A2735DA357A /* SDL_events.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_events.c"; path = "../../../../src/events/SDL_events.c"; sourceTree = ""; }; + 4D73610B1AC11DCF3B1E4198 /* SDL_events_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_events_c.h"; path = "../../../../src/events/SDL_events_c.h"; sourceTree = ""; }; + 6E8C6A11181536B54CDA3862 /* SDL_gesture.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_gesture.c"; path = "../../../../src/events/SDL_gesture.c"; sourceTree = ""; }; + 1FA64F67777D359A23951291 /* SDL_gesture_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_gesture_c.h"; path = "../../../../src/events/SDL_gesture_c.h"; sourceTree = ""; }; + 228F5EB207C27065272F3B1E /* SDL_keyboard.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_keyboard.c"; path = "../../../../src/events/SDL_keyboard.c"; sourceTree = ""; }; + 0E2F6FB174B949F503851218 /* SDL_keyboard_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_keyboard_c.h"; path = "../../../../src/events/SDL_keyboard_c.h"; sourceTree = ""; }; + 0D561615477231185657134D /* SDL_mouse.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_mouse.c"; path = "../../../../src/events/SDL_mouse.c"; sourceTree = ""; }; + 68F1352D56836C98215E4227 /* SDL_mouse_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_mouse_c.h"; path = "../../../../src/events/SDL_mouse_c.h"; sourceTree = ""; }; + 19351893793F509D77923EC4 /* SDL_quit.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_quit.c"; path = "../../../../src/events/SDL_quit.c"; sourceTree = ""; }; + 28401483652C3C85648C2BD1 /* SDL_sysevents.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_sysevents.h"; path = "../../../../src/events/SDL_sysevents.h"; sourceTree = ""; }; + 406016940A0A2E5D164A56D5 /* SDL_touch.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_touch.c"; path = "../../../../src/events/SDL_touch.c"; sourceTree = ""; }; + 0678479A030E2101581305E5 /* SDL_touch_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_touch_c.h"; path = "../../../../src/events/SDL_touch_c.h"; sourceTree = ""; }; + 268F2B06517B6E4D1AB372BC /* SDL_windowevents.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_windowevents.c"; path = "../../../../src/events/SDL_windowevents.c"; sourceTree = ""; }; + 035A192D7417370353063DD7 /* SDL_windowevents_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_windowevents_c.h"; path = "../../../../src/events/SDL_windowevents_c.h"; sourceTree = ""; }; + 0470694A7E983CF449D36075 /* blank_cursor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "blank_cursor.h"; path = "../../../../src/events/blank_cursor.h"; sourceTree = ""; }; + 591A4F1254B212904B054961 /* default_cursor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "default_cursor.h"; path = "../../../../src/events/default_cursor.h"; sourceTree = ""; }; + 001853AA40D9135D64046FB9 /* scancodes_darwin.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "scancodes_darwin.h"; path = "../../../../src/events/scancodes_darwin.h"; sourceTree = ""; }; + 73083A0333552D346ED96DCE /* scancodes_linux.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "scancodes_linux.h"; path = "../../../../src/events/scancodes_linux.h"; sourceTree = ""; }; + 230D64957D8D39B20C14260D /* scancodes_windows.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "scancodes_windows.h"; path = "../../../../src/events/scancodes_windows.h"; sourceTree = ""; }; + 30CD0FD3107468C70017737E /* scancodes_xfree86.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "scancodes_xfree86.h"; path = "../../../../src/events/scancodes_xfree86.h"; sourceTree = ""; }; + 5F7B20DF1BD236742BA56323 /* SDL_rwops.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_rwops.c"; path = "../../../../src/file/SDL_rwops.c"; sourceTree = ""; }; + 16AF6B432BCC14366CF6238C /* SDL_rwopsbundlesupport.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_rwopsbundlesupport.h"; path = "../../../../src/file/cocoa/SDL_rwopsbundlesupport.h"; sourceTree = ""; }; + 5D6F3B426BD93160262A1A0B /* SDL_rwopsbundlesupport.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "SDL_rwopsbundlesupport.m"; path = "../../../../src/file/cocoa/SDL_rwopsbundlesupport.m"; sourceTree = ""; }; + 3DFF58520B8305A67E5866F0 /* SDL_sysfilesystem.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "SDL_sysfilesystem.m"; path = "../../../../src/filesystem/cocoa/SDL_sysfilesystem.m"; sourceTree = ""; }; + 748B5BD12D28466142D36C04 /* SDL_haptic.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_haptic.c"; path = "../../../../src/haptic/SDL_haptic.c"; sourceTree = ""; }; + 0E4E25F2553245B308BB6B4E /* SDL_haptic_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_haptic_c.h"; path = "../../../../src/haptic/SDL_haptic_c.h"; sourceTree = ""; }; + 01FA4AE64BF015FF2FB464CD /* SDL_syshaptic.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_syshaptic.h"; path = "../../../../src/haptic/SDL_syshaptic.h"; sourceTree = ""; }; + 07875CF62CC235C2023B171E /* SDL_syshaptic.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_syshaptic.c"; path = "../../../../src/haptic/darwin/SDL_syshaptic.c"; sourceTree = ""; }; + 474463FC44D12D8266163B0C /* SDL_gamecontroller.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_gamecontroller.c"; path = "../../../../src/joystick/SDL_gamecontroller.c"; sourceTree = ""; }; + 4C5A3AA4122614E54CF708AC /* SDL_gamecontrollerdb.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_gamecontrollerdb.h"; path = "../../../../src/joystick/SDL_gamecontrollerdb.h"; sourceTree = ""; }; + 0A51682775F7695826CC3AAD /* SDL_joystick.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_joystick.c"; path = "../../../../src/joystick/SDL_joystick.c"; sourceTree = ""; }; + 52A612A679915043020D2C12 /* SDL_joystick_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_joystick_c.h"; path = "../../../../src/joystick/SDL_joystick_c.h"; sourceTree = ""; }; + 0AE5451F199460984A49374D /* SDL_sysjoystick.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_sysjoystick.h"; path = "../../../../src/joystick/SDL_sysjoystick.h"; sourceTree = ""; }; + 362B7F38400724D4745D17C1 /* SDL_sysjoystick.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_sysjoystick.c"; path = "../../../../src/joystick/darwin/SDL_sysjoystick.c"; sourceTree = ""; }; + 24E3589959C45B6570D82D57 /* SDL_sysjoystick_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_sysjoystick_c.h"; path = "../../../../src/joystick/darwin/SDL_sysjoystick_c.h"; sourceTree = ""; }; + 3E5A3557080276B82EE540D7 /* SDL_sysloadso.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_sysloadso.c"; path = "../../../../src/loadso/dlopen/SDL_sysloadso.c"; sourceTree = ""; }; + 295B490053604A1B5F832E31 /* SDL_power.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_power.c"; path = "../../../../src/power/SDL_power.c"; sourceTree = ""; }; + 441A169052554B8C05B2780E /* SDL_syspower.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_syspower.c"; path = "../../../../src/power/macosx/SDL_syspower.c"; sourceTree = ""; }; + 125E7FE947363FCE78AB3920 /* SDL_render.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_render.c"; path = "../../../../src/render/SDL_render.c"; sourceTree = ""; }; + 2A47449E0F2F77E169974EB5 /* SDL_sysrender.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_sysrender.h"; path = "../../../../src/render/SDL_sysrender.h"; sourceTree = ""; }; + 5EB1630859F568532C8C3792 /* SDL_yuv_mmx.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_yuv_mmx.c"; path = "../../../../src/render/SDL_yuv_mmx.c"; sourceTree = ""; }; + 08C15C7515050FDD2A886246 /* SDL_yuv_sw.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_yuv_sw.c"; path = "../../../../src/render/SDL_yuv_sw.c"; sourceTree = ""; }; + 5BE06A7B5F230FFD60462447 /* SDL_yuv_sw_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_yuv_sw_c.h"; path = "../../../../src/render/SDL_yuv_sw_c.h"; sourceTree = ""; }; + 62562839558A5DF23BDF37B0 /* mmx.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "mmx.h"; path = "../../../../src/render/mmx.h"; sourceTree = ""; }; + 17FE29923E28546A02B34AF8 /* SDL_glfuncs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_glfuncs.h"; path = "../../../../src/render/opengl/SDL_glfuncs.h"; sourceTree = ""; }; + 66021F1B50BA0B215910589A /* SDL_render_gl.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_render_gl.c"; path = "../../../../src/render/opengl/SDL_render_gl.c"; sourceTree = ""; }; + 51D64CC2780E096415426017 /* SDL_shaders_gl.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_shaders_gl.c"; path = "../../../../src/render/opengl/SDL_shaders_gl.c"; sourceTree = ""; }; + 57AE68AC283B55A627FE263E /* SDL_shaders_gl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_shaders_gl.h"; path = "../../../../src/render/opengl/SDL_shaders_gl.h"; sourceTree = ""; }; + 36727BCA2F1D5437708B7454 /* SDL_blendfillrect.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_blendfillrect.c"; path = "../../../../src/render/software/SDL_blendfillrect.c"; sourceTree = ""; }; + 778563EC2EB8351B1A7437EF /* SDL_blendfillrect.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_blendfillrect.h"; path = "../../../../src/render/software/SDL_blendfillrect.h"; sourceTree = ""; }; + 66C5268A542E341900F55A35 /* SDL_blendline.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_blendline.c"; path = "../../../../src/render/software/SDL_blendline.c"; sourceTree = ""; }; + 2CC400BF23A8022D69D20E92 /* SDL_blendline.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_blendline.h"; path = "../../../../src/render/software/SDL_blendline.h"; sourceTree = ""; }; + 5482361F3563048574A46DB9 /* SDL_blendpoint.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_blendpoint.c"; path = "../../../../src/render/software/SDL_blendpoint.c"; sourceTree = ""; }; + 6487779022F92FDD61BF4F81 /* SDL_blendpoint.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_blendpoint.h"; path = "../../../../src/render/software/SDL_blendpoint.h"; sourceTree = ""; }; + 572556393F5D7E9C59A70B85 /* SDL_draw.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_draw.h"; path = "../../../../src/render/software/SDL_draw.h"; sourceTree = ""; }; + 61C21D5077C07E4904B51C90 /* SDL_drawline.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_drawline.c"; path = "../../../../src/render/software/SDL_drawline.c"; sourceTree = ""; }; + 3A534994363818EE461314CD /* SDL_drawline.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_drawline.h"; path = "../../../../src/render/software/SDL_drawline.h"; sourceTree = ""; }; + 59D62A724BBF27CC59231297 /* SDL_drawpoint.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_drawpoint.c"; path = "../../../../src/render/software/SDL_drawpoint.c"; sourceTree = ""; }; + 7F242EF90A1711F051270B6A /* SDL_drawpoint.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_drawpoint.h"; path = "../../../../src/render/software/SDL_drawpoint.h"; sourceTree = ""; }; + 0FFF44745C270A0C4F730726 /* SDL_render_sw.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_render_sw.c"; path = "../../../../src/render/software/SDL_render_sw.c"; sourceTree = ""; }; + 5E736E9C457F4F227F0D63CF /* SDL_render_sw_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_render_sw_c.h"; path = "../../../../src/render/software/SDL_render_sw_c.h"; sourceTree = ""; }; + 421F406A12633DAC795C1EB3 /* SDL_rotate.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_rotate.c"; path = "../../../../src/render/software/SDL_rotate.c"; sourceTree = ""; }; + 01921DE55298202024E96745 /* SDL_rotate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_rotate.h"; path = "../../../../src/render/software/SDL_rotate.h"; sourceTree = ""; }; + 4BC907785D5E6668627E78DE /* SDL_getenv.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_getenv.c"; path = "../../../../src/stdlib/SDL_getenv.c"; sourceTree = ""; }; + 77815DDD6F364C510AC25CB6 /* SDL_iconv.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_iconv.c"; path = "../../../../src/stdlib/SDL_iconv.c"; sourceTree = ""; }; + 3F8275E71B900C7D074949FC /* SDL_malloc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_malloc.c"; path = "../../../../src/stdlib/SDL_malloc.c"; sourceTree = ""; }; + 07251EE10156492D512F75F3 /* SDL_qsort.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_qsort.c"; path = "../../../../src/stdlib/SDL_qsort.c"; sourceTree = ""; }; + 57323D836A0E78552E015D8E /* SDL_stdlib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_stdlib.c"; path = "../../../../src/stdlib/SDL_stdlib.c"; sourceTree = ""; }; + 57F4780F2A47469D23006DD1 /* SDL_string.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_string.c"; path = "../../../../src/stdlib/SDL_string.c"; sourceTree = ""; }; + 2EB6434034986F5230BE1635 /* SDL_systhread.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_systhread.h"; path = "../../../../src/thread/SDL_systhread.h"; sourceTree = ""; }; + 08FF4C92289179BB0EDF765E /* SDL_thread.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_thread.c"; path = "../../../../src/thread/SDL_thread.c"; sourceTree = ""; }; + 2CA925B6783314DA18E16F8B /* SDL_thread_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_thread_c.h"; path = "../../../../src/thread/SDL_thread_c.h"; sourceTree = ""; }; + 04D200E634516AF92074244C /* SDL_syscond.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_syscond.c"; path = "../../../../src/thread/pthread/SDL_syscond.c"; sourceTree = ""; }; + 5CC65F3A65EF32EE5C773558 /* SDL_sysmutex.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_sysmutex.c"; path = "../../../../src/thread/pthread/SDL_sysmutex.c"; sourceTree = ""; }; + 12F254797C1631F41D3137F8 /* SDL_sysmutex_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_sysmutex_c.h"; path = "../../../../src/thread/pthread/SDL_sysmutex_c.h"; sourceTree = ""; }; + 05D36048404E42022A7E4127 /* SDL_syssem.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_syssem.c"; path = "../../../../src/thread/pthread/SDL_syssem.c"; sourceTree = ""; }; + 17B31E2F2CC55CBC6F0A1D9B /* SDL_systhread.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_systhread.c"; path = "../../../../src/thread/pthread/SDL_systhread.c"; sourceTree = ""; }; + 02B428D53F1D18F262D463B0 /* SDL_systhread_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_systhread_c.h"; path = "../../../../src/thread/pthread/SDL_systhread_c.h"; sourceTree = ""; }; + 41E150D956EA3AD510743873 /* SDL_systls.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_systls.c"; path = "../../../../src/thread/pthread/SDL_systls.c"; sourceTree = ""; }; + 41B156D22A535379479747CB /* SDL_timer.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_timer.c"; path = "../../../../src/timer/SDL_timer.c"; sourceTree = ""; }; + 002C537968C9193840B53AEE /* SDL_timer_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_timer_c.h"; path = "../../../../src/timer/SDL_timer_c.h"; sourceTree = ""; }; + 459149F92FC6055B32F7153F /* SDL_systimer.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_systimer.c"; path = "../../../../src/timer/unix/SDL_systimer.c"; sourceTree = ""; }; + 4A9716005FF9561D2C3F6284 /* SDL_RLEaccel.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_RLEaccel.c"; path = "../../../../src/video/SDL_RLEaccel.c"; sourceTree = ""; }; + 50AD3AC235DA7BFB41AC2EF0 /* SDL_RLEaccel_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_RLEaccel_c.h"; path = "../../../../src/video/SDL_RLEaccel_c.h"; sourceTree = ""; }; + 3B0568EE0EB87B3019C24A16 /* SDL_blit.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_blit.c"; path = "../../../../src/video/SDL_blit.c"; sourceTree = ""; }; + 513C6936649F3988151A60EC /* SDL_blit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_blit.h"; path = "../../../../src/video/SDL_blit.h"; sourceTree = ""; }; + 3EC71493552F0AB6601B4921 /* SDL_blit_0.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_blit_0.c"; path = "../../../../src/video/SDL_blit_0.c"; sourceTree = ""; }; + 7D16555224CA08DB629F3ED1 /* SDL_blit_1.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_blit_1.c"; path = "../../../../src/video/SDL_blit_1.c"; sourceTree = ""; }; + 296F6626753E62AE4A57408A /* SDL_blit_A.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_blit_A.c"; path = "../../../../src/video/SDL_blit_A.c"; sourceTree = ""; }; + 02A05727533149171EF6318C /* SDL_blit_N.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_blit_N.c"; path = "../../../../src/video/SDL_blit_N.c"; sourceTree = ""; }; + 2B90062B1FBE1B1865A01BF8 /* SDL_blit_auto.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_blit_auto.c"; path = "../../../../src/video/SDL_blit_auto.c"; sourceTree = ""; }; + 690F65987ABC73935FA163B9 /* SDL_blit_auto.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_blit_auto.h"; path = "../../../../src/video/SDL_blit_auto.h"; sourceTree = ""; }; + 1DD33CE21E6B143616A13AF1 /* SDL_blit_copy.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_blit_copy.c"; path = "../../../../src/video/SDL_blit_copy.c"; sourceTree = ""; }; + 5919276F7CBC2D445BDC0505 /* SDL_blit_copy.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_blit_copy.h"; path = "../../../../src/video/SDL_blit_copy.h"; sourceTree = ""; }; + 1CA1189B180060246D2B3B37 /* SDL_blit_slow.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_blit_slow.c"; path = "../../../../src/video/SDL_blit_slow.c"; sourceTree = ""; }; + 560565CD15672ED06F9355B1 /* SDL_blit_slow.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_blit_slow.h"; path = "../../../../src/video/SDL_blit_slow.h"; sourceTree = ""; }; + 6F5D7EFD4E2B79D45E1B51E3 /* SDL_bmp.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_bmp.c"; path = "../../../../src/video/SDL_bmp.c"; sourceTree = ""; }; + 164801C9489C07724F6A784E /* SDL_clipboard.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_clipboard.c"; path = "../../../../src/video/SDL_clipboard.c"; sourceTree = ""; }; + 286B34BD2239541E1ABF7B58 /* SDL_egl.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_egl.c"; path = "../../../../src/video/SDL_egl.c"; sourceTree = ""; }; + 290B131F70BA5F6766C05FCB /* SDL_egl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_egl.h"; path = "../../../../src/video/SDL_egl.h"; sourceTree = ""; }; + 2F9B71653C254E7E388808C5 /* SDL_fillrect.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_fillrect.c"; path = "../../../../src/video/SDL_fillrect.c"; sourceTree = ""; }; + 7F9D4C460D482A96620971F4 /* SDL_pixels.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_pixels.c"; path = "../../../../src/video/SDL_pixels.c"; sourceTree = ""; }; + 2FFC595E3D4133F946C128EE /* SDL_pixels_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_pixels_c.h"; path = "../../../../src/video/SDL_pixels_c.h"; sourceTree = ""; }; + 366D6F2633EA002441056CC7 /* SDL_rect.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_rect.c"; path = "../../../../src/video/SDL_rect.c"; sourceTree = ""; }; + 0FBC1056267369394FF37EE2 /* SDL_rect_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_rect_c.h"; path = "../../../../src/video/SDL_rect_c.h"; sourceTree = ""; }; + 349E213D6BCD6E7D754918E0 /* SDL_shape.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_shape.c"; path = "../../../../src/video/SDL_shape.c"; sourceTree = ""; }; + 6FB7747B56EB06143A9E7D56 /* SDL_shape_internals.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_shape_internals.h"; path = "../../../../src/video/SDL_shape_internals.h"; sourceTree = ""; }; + 334B22626BDE407C402A36B6 /* SDL_stretch.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_stretch.c"; path = "../../../../src/video/SDL_stretch.c"; sourceTree = ""; }; + 34EE3252493E44852C6F4D1A /* SDL_surface.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_surface.c"; path = "../../../../src/video/SDL_surface.c"; sourceTree = ""; }; + 3C320390064404981FE12D62 /* SDL_sysvideo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_sysvideo.h"; path = "../../../../src/video/SDL_sysvideo.h"; sourceTree = ""; }; + 124B099C775D350017963585 /* SDL_video.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_video.c"; path = "../../../../src/video/SDL_video.c"; sourceTree = ""; }; + 060616512B17276042FD01B1 /* SDL_cocoaclipboard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_cocoaclipboard.h"; path = "../../../../src/video/cocoa/SDL_cocoaclipboard.h"; sourceTree = ""; }; + 118A36F07D45647F0A084319 /* SDL_cocoaclipboard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "SDL_cocoaclipboard.m"; path = "../../../../src/video/cocoa/SDL_cocoaclipboard.m"; sourceTree = ""; }; + 1BF249306FDF58717F8A67FE /* SDL_cocoaevents.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_cocoaevents.h"; path = "../../../../src/video/cocoa/SDL_cocoaevents.h"; sourceTree = ""; }; + 6C224B440FCA2C1F2C3C1FAE /* SDL_cocoaevents.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "SDL_cocoaevents.m"; path = "../../../../src/video/cocoa/SDL_cocoaevents.m"; sourceTree = ""; }; + 1DA20CF07FEB53241C877551 /* SDL_cocoakeyboard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_cocoakeyboard.h"; path = "../../../../src/video/cocoa/SDL_cocoakeyboard.h"; sourceTree = ""; }; + 4402087F5CB90F317D9208D2 /* SDL_cocoakeyboard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "SDL_cocoakeyboard.m"; path = "../../../../src/video/cocoa/SDL_cocoakeyboard.m"; sourceTree = ""; }; + 20DB49010B275E054D963ABC /* SDL_cocoamessagebox.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_cocoamessagebox.h"; path = "../../../../src/video/cocoa/SDL_cocoamessagebox.h"; sourceTree = ""; }; + 4BFF56C82567424C3CF4591E /* SDL_cocoamessagebox.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "SDL_cocoamessagebox.m"; path = "../../../../src/video/cocoa/SDL_cocoamessagebox.m"; sourceTree = ""; }; + 668468D44E1637670A5F108D /* SDL_cocoamodes.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_cocoamodes.h"; path = "../../../../src/video/cocoa/SDL_cocoamodes.h"; sourceTree = ""; }; + 57B60C7A316B6B5A70D13C82 /* SDL_cocoamodes.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "SDL_cocoamodes.m"; path = "../../../../src/video/cocoa/SDL_cocoamodes.m"; sourceTree = ""; }; + 759F34624091186A729C6F35 /* SDL_cocoamouse.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_cocoamouse.h"; path = "../../../../src/video/cocoa/SDL_cocoamouse.h"; sourceTree = ""; }; + 309C0186189D062A37BF5FB6 /* SDL_cocoamouse.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "SDL_cocoamouse.m"; path = "../../../../src/video/cocoa/SDL_cocoamouse.m"; sourceTree = ""; }; + 21076E4577D20D1D0FAC6ABB /* SDL_cocoamousetap.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_cocoamousetap.h"; path = "../../../../src/video/cocoa/SDL_cocoamousetap.h"; sourceTree = ""; }; + 57283DDA43F325E829A27FBA /* SDL_cocoamousetap.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "SDL_cocoamousetap.m"; path = "../../../../src/video/cocoa/SDL_cocoamousetap.m"; sourceTree = ""; }; + 6A147ACC11C6742F76C2435F /* SDL_cocoaopengl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_cocoaopengl.h"; path = "../../../../src/video/cocoa/SDL_cocoaopengl.h"; sourceTree = ""; }; + 361747734F387130393F605F /* SDL_cocoaopengl.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "SDL_cocoaopengl.m"; path = "../../../../src/video/cocoa/SDL_cocoaopengl.m"; sourceTree = ""; }; + 783F00DE129C679D07016043 /* SDL_cocoashape.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_cocoashape.h"; path = "../../../../src/video/cocoa/SDL_cocoashape.h"; sourceTree = ""; }; + 7DCD3646470A681D7025162E /* SDL_cocoashape.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "SDL_cocoashape.m"; path = "../../../../src/video/cocoa/SDL_cocoashape.m"; sourceTree = ""; }; + 6C2671F8747628C0054C5B51 /* SDL_cocoavideo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_cocoavideo.h"; path = "../../../../src/video/cocoa/SDL_cocoavideo.h"; sourceTree = ""; }; + 3617606E15EE572C173C7BE1 /* SDL_cocoavideo.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "SDL_cocoavideo.m"; path = "../../../../src/video/cocoa/SDL_cocoavideo.m"; sourceTree = ""; }; + 178524292FDA124263861BDD /* SDL_cocoawindow.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_cocoawindow.h"; path = "../../../../src/video/cocoa/SDL_cocoawindow.h"; sourceTree = ""; }; + 7CE067B94CD974F17E692018 /* SDL_cocoawindow.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "SDL_cocoawindow.m"; path = "../../../../src/video/cocoa/SDL_cocoawindow.m"; sourceTree = ""; }; + 4AC7612F064013A35D2E0F0E /* SDL_nullevents.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_nullevents.c"; path = "../../../../src/video/dummy/SDL_nullevents.c"; sourceTree = ""; }; + 63C755A43CB542DE343127F2 /* SDL_nullevents_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_nullevents_c.h"; path = "../../../../src/video/dummy/SDL_nullevents_c.h"; sourceTree = ""; }; + 137B7080251D541D4486734D /* SDL_nullframebuffer.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_nullframebuffer.c"; path = "../../../../src/video/dummy/SDL_nullframebuffer.c"; sourceTree = ""; }; + 288F77CC00F211760DDC1D83 /* SDL_nullframebuffer_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_nullframebuffer_c.h"; path = "../../../../src/video/dummy/SDL_nullframebuffer_c.h"; sourceTree = ""; }; + 0B7016F553F306D600E0142E /* SDL_nullvideo.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_nullvideo.c"; path = "../../../../src/video/dummy/SDL_nullvideo.c"; sourceTree = ""; }; + 6D68605324C17B1C176C6552 /* SDL_nullvideo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_nullvideo.h"; path = "../../../../src/video/dummy/SDL_nullvideo.h"; sourceTree = ""; }; + 614F0C224A9920122B861F1E /* SDL_x11clipboard.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_x11clipboard.c"; path = "../../../../src/video/x11/SDL_x11clipboard.c"; sourceTree = ""; }; + 399A2DE06000601936783D4A /* SDL_x11clipboard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_x11clipboard.h"; path = "../../../../src/video/x11/SDL_x11clipboard.h"; sourceTree = ""; }; + 040245A23E4C1DB56C671C11 /* SDL_x11dyn.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_x11dyn.c"; path = "../../../../src/video/x11/SDL_x11dyn.c"; sourceTree = ""; }; + 059C757C2A7C42BC023E690B /* SDL_x11dyn.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_x11dyn.h"; path = "../../../../src/video/x11/SDL_x11dyn.h"; sourceTree = ""; }; + 0D4B39C02DBE3C111ADF6469 /* SDL_x11events.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_x11events.c"; path = "../../../../src/video/x11/SDL_x11events.c"; sourceTree = ""; }; + 2CCB7E6732185E317FD44176 /* SDL_x11events.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_x11events.h"; path = "../../../../src/video/x11/SDL_x11events.h"; sourceTree = ""; }; + 4AC63B92198A385F654F2730 /* SDL_x11framebuffer.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_x11framebuffer.c"; path = "../../../../src/video/x11/SDL_x11framebuffer.c"; sourceTree = ""; }; + 206234E53298196560965544 /* SDL_x11framebuffer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_x11framebuffer.h"; path = "../../../../src/video/x11/SDL_x11framebuffer.h"; sourceTree = ""; }; + 0DDF62C0484127D723E24C22 /* SDL_x11keyboard.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_x11keyboard.c"; path = "../../../../src/video/x11/SDL_x11keyboard.c"; sourceTree = ""; }; + 5B580F5260F8682D7AA64832 /* SDL_x11keyboard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_x11keyboard.h"; path = "../../../../src/video/x11/SDL_x11keyboard.h"; sourceTree = ""; }; + 707F3FE15B0D494E51614B58 /* SDL_x11messagebox.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_x11messagebox.c"; path = "../../../../src/video/x11/SDL_x11messagebox.c"; sourceTree = ""; }; + 60CA27DD2C8E30F264EB0997 /* SDL_x11messagebox.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_x11messagebox.h"; path = "../../../../src/video/x11/SDL_x11messagebox.h"; sourceTree = ""; }; + 1BA837F00E275AC823F41E55 /* SDL_x11modes.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_x11modes.c"; path = "../../../../src/video/x11/SDL_x11modes.c"; sourceTree = ""; }; + 6AAF0AD5604B1AAB0FB6170D /* SDL_x11modes.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_x11modes.h"; path = "../../../../src/video/x11/SDL_x11modes.h"; sourceTree = ""; }; + 084A624F52C129A670684094 /* SDL_x11mouse.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_x11mouse.c"; path = "../../../../src/video/x11/SDL_x11mouse.c"; sourceTree = ""; }; + 23C57CFD064060004E6C387C /* SDL_x11mouse.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_x11mouse.h"; path = "../../../../src/video/x11/SDL_x11mouse.h"; sourceTree = ""; }; + 6956132B6EDD79D6109E23B6 /* SDL_x11opengl.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_x11opengl.c"; path = "../../../../src/video/x11/SDL_x11opengl.c"; sourceTree = ""; }; + 60BB3DF13E553FAB137C4B0A /* SDL_x11opengl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_x11opengl.h"; path = "../../../../src/video/x11/SDL_x11opengl.h"; sourceTree = ""; }; + 23EC7FEA7AAA67186D60469D /* SDL_x11opengles.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_x11opengles.c"; path = "../../../../src/video/x11/SDL_x11opengles.c"; sourceTree = ""; }; + 43F86B58694D59666A07115C /* SDL_x11opengles.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_x11opengles.h"; path = "../../../../src/video/x11/SDL_x11opengles.h"; sourceTree = ""; }; + 541017773B6D0CC30C7F69F4 /* SDL_x11shape.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_x11shape.c"; path = "../../../../src/video/x11/SDL_x11shape.c"; sourceTree = ""; }; + 3ACC5687711255007BE25E16 /* SDL_x11shape.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_x11shape.h"; path = "../../../../src/video/x11/SDL_x11shape.h"; sourceTree = ""; }; + 08917B4A65B374165A8D7CA7 /* SDL_x11sym.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_x11sym.h"; path = "../../../../src/video/x11/SDL_x11sym.h"; sourceTree = ""; }; + 4FC145BC3C6D3F3C2D155C4E /* SDL_x11touch.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_x11touch.c"; path = "../../../../src/video/x11/SDL_x11touch.c"; sourceTree = ""; }; + 15EC5DBC74317D5E53A73032 /* SDL_x11touch.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_x11touch.h"; path = "../../../../src/video/x11/SDL_x11touch.h"; sourceTree = ""; }; + 604D13500B247C9A6BB63264 /* SDL_x11video.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_x11video.c"; path = "../../../../src/video/x11/SDL_x11video.c"; sourceTree = ""; }; + 349740341E72620B45A369AF /* SDL_x11video.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_x11video.h"; path = "../../../../src/video/x11/SDL_x11video.h"; sourceTree = ""; }; + 111D0E842DA26E0B16420249 /* SDL_x11window.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_x11window.c"; path = "../../../../src/video/x11/SDL_x11window.c"; sourceTree = ""; }; + 6B743871116A4AB56E080B6B /* SDL_x11window.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_x11window.h"; path = "../../../../src/video/x11/SDL_x11window.h"; sourceTree = ""; }; + 340B438574901D2053625299 /* SDL_x11xinput2.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_x11xinput2.c"; path = "../../../../src/video/x11/SDL_x11xinput2.c"; sourceTree = ""; }; + 44386B3D1989253225166350 /* SDL_x11xinput2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SDL_x11xinput2.h"; path = "../../../../src/video/x11/SDL_x11xinput2.h"; sourceTree = ""; }; + 4A0D4F710FDE780140BA1A58 /* edid-parse.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "edid-parse.c"; path = "../../../../src/video/x11/edid-parse.c"; sourceTree = ""; }; + 1694525C1D4C0F3F7E4D2A55 /* edid.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "edid.h"; path = "../../../../src/video/x11/edid.h"; sourceTree = ""; }; + 5E7A2C910B56578B68161E79 /* imKStoUCS.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "imKStoUCS.c"; path = "../../../../src/video/x11/imKStoUCS.c"; sourceTree = ""; }; + 3A4F505E5178406759050FE3 /* imKStoUCS.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "imKStoUCS.h"; path = "../../../../src/video/x11/imKStoUCS.h"; sourceTree = ""; }; + 4F7F3A2F781C7E4027BF10D0 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 40FD602A0F7D70BA45F43D6B /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 4A655E13466520DF29BF55A6 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 74AD246C59F62F2063FE6B8F /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 3E915DA675494CC65BAC159C /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 308A60C82BD87C2638C47377 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 5702009549A31E003E2E5CF6 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 6F94036B274B6E9309345AF6 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 3FAA70EE29303720292D57B6 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 5E6D56F6655337845A3C44C3 /* libSDL2.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libSDL2.a"; path = "libSDL2.a"; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 46BD5DD60E4D1C967C4D37B5 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 7433560855935E4F3FF263F0 /* AudioToolbox.framework in Frameworks */, + 6E565EE1442A3BFC4AFE75C6 /* AudioUnit.framework in Frameworks */, + 3FEA46BE079446F867776B71 /* Cocoa.framework in Frameworks */, + 14D343403DC36AE437D9195D /* CoreAudio.framework in Frameworks */, + 425302F6021B451911B44512 /* IOKit.framework in Frameworks */, + 3ED608CE2822544E68372673 /* Carbon.framework in Frameworks */, + 3FBE66251D11577638ED549A /* ForceFeedback.framework in Frameworks */, + 645E10F21FE63FE83F6652BC /* CoreFoundation.framework in Frameworks */, + 037D0C7B656434F579E54F0B /* OpenGL.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 4B82442500AD66E9511E4477 /* SDL2 */ = { + isa = PBXGroup; + children = ( + 17395AA46F54263E6227053E /* src */, + 00C87F695E6008491AE07997 /* Frameworks */, + 7350255647C236722E191910 /* Products */, + ); + name = "SDL2"; + sourceTree = ""; + }; + 17395AA46F54263E6227053E /* src */ = { + isa = PBXGroup; + children = ( + 40DE5BD04661156D57675BAF /* SDL.c */, + 797C5E120E96465D084D1803 /* SDL_assert.c */, + 638F519324853667452D26A6 /* SDL_assert_c.h */, + 62EB566114EC180710563B61 /* SDL_error.c */, + 03540C7B6E8B017734163178 /* SDL_error_c.h */, + 5D633DEF28166D625DCD4EC6 /* SDL_hints.c */, + 49545EB23967505C4C1F1F5F /* SDL_log.c */, + 5A780DF9723E73833D560303 /* atomic */, + 2DC85AA0546028D424DC6D20 /* audio */, + 78E67A6468AF4EB152A63C43 /* cpuinfo */, + 454E26BC1DF07D5F195D592A /* events */, + 122E4699249C244C209B21D0 /* file */, + 452C6BD4333446C007F91D01 /* filesystem */, + 1C9E0A4626382C686BCB725F /* haptic */, + 3CBE6794538D07AF210B5EB9 /* joystick */, + 623A006118F66E9E55E732A9 /* loadso */, + 51CF04382D3868620004229B /* power */, + 09FF04F515D7781763C9538C /* render */, + 118E17D14A6A08B06E140E8D /* stdlib */, + 1871607C2177284C38DD40C0 /* thread */, + 3B4552CF25482CBF44317F63 /* timer */, + 5A047E267DFC3D2E40315F8D /* video */, + ); + name = "src"; + sourceTree = ""; + }; + 5A780DF9723E73833D560303 /* atomic */ = { + isa = PBXGroup; + children = ( + 767256F16F7D79C038E41DCF /* SDL_atomic.c */, + 753F026C2D846DEF73FC61B0 /* SDL_spinlock.c */, + ); + name = "atomic"; + sourceTree = ""; + }; + 2DC85AA0546028D424DC6D20 /* audio */ = { + isa = PBXGroup; + children = ( + 6F143CF2601E131B5DEA62F6 /* SDL_audio.c */, + 11352FF17D70724A5DF0462C /* SDL_audio_c.h */, + 07B907294E82663A7E91738C /* SDL_audiocvt.c */, + 5AAD4B726237251050431873 /* SDL_audiodev.c */, + 15895798549516351860492E /* SDL_audiodev_c.h */, + 0D3062CE47BF5D5934AB598D /* SDL_audiomem.h */, + 5B0759ED16B35B9A6B027892 /* SDL_audiotypecvt.c */, + 2B8C7A19218A1FFC6D376B1D /* SDL_mixer.c */, + 09E4653E4CD964410C0E71BA /* SDL_sysaudio.h */, + 1D567D9642D94A6145E55558 /* SDL_wave.c */, + 72EA0C2D69F77DBD33AB3C51 /* SDL_wave.h */, + 0762522E62310E3157CD6C29 /* coreaudio */, + 549536CA29A8708A1EB63F2C /* disk */, + 63A97DAC57A8739404E36686 /* dummy */, + ); + name = "audio"; + sourceTree = ""; + }; + 0762522E62310E3157CD6C29 /* coreaudio */ = { + isa = PBXGroup; + children = ( + 0D7A645338CD1BFD1E5D728F /* SDL_coreaudio.c */, + 73190F7379966C4F40741823 /* SDL_coreaudio.h */, + ); + name = "coreaudio"; + sourceTree = ""; + }; + 549536CA29A8708A1EB63F2C /* disk */ = { + isa = PBXGroup; + children = ( + 7E9A6779675D116654DA5CB0 /* SDL_diskaudio.c */, + 05621EEA4E44078A77CB6A45 /* SDL_diskaudio.h */, + ); + name = "disk"; + sourceTree = ""; + }; + 63A97DAC57A8739404E36686 /* dummy */ = { + isa = PBXGroup; + children = ( + 79AC10FC31263C0868140F20 /* SDL_dummyaudio.c */, + 7E6F31A9587A54142A217C04 /* SDL_dummyaudio.h */, + ); + name = "dummy"; + sourceTree = ""; + }; + 78E67A6468AF4EB152A63C43 /* cpuinfo */ = { + isa = PBXGroup; + children = ( + 72EF5BB771227B3637235CF8 /* SDL_cpuinfo.c */, + ); + name = "cpuinfo"; + sourceTree = ""; + }; + 454E26BC1DF07D5F195D592A /* events */ = { + isa = PBXGroup; + children = ( + 07AB1E6A616157DA448246C0 /* SDL_clipboardevents.c */, + 52A55FDD41493AD524FB1696 /* SDL_clipboardevents_c.h */, + 5D7748773CB1127031D53492 /* SDL_dropevents.c */, + 13F62D526EDE359A23CC367D /* SDL_dropevents_c.h */, + 5CD12CBF4D837A2735DA357A /* SDL_events.c */, + 4D73610B1AC11DCF3B1E4198 /* SDL_events_c.h */, + 6E8C6A11181536B54CDA3862 /* SDL_gesture.c */, + 1FA64F67777D359A23951291 /* SDL_gesture_c.h */, + 228F5EB207C27065272F3B1E /* SDL_keyboard.c */, + 0E2F6FB174B949F503851218 /* SDL_keyboard_c.h */, + 0D561615477231185657134D /* SDL_mouse.c */, + 68F1352D56836C98215E4227 /* SDL_mouse_c.h */, + 19351893793F509D77923EC4 /* SDL_quit.c */, + 28401483652C3C85648C2BD1 /* SDL_sysevents.h */, + 406016940A0A2E5D164A56D5 /* SDL_touch.c */, + 0678479A030E2101581305E5 /* SDL_touch_c.h */, + 268F2B06517B6E4D1AB372BC /* SDL_windowevents.c */, + 035A192D7417370353063DD7 /* SDL_windowevents_c.h */, + 0470694A7E983CF449D36075 /* blank_cursor.h */, + 591A4F1254B212904B054961 /* default_cursor.h */, + 001853AA40D9135D64046FB9 /* scancodes_darwin.h */, + 73083A0333552D346ED96DCE /* scancodes_linux.h */, + 230D64957D8D39B20C14260D /* scancodes_windows.h */, + 30CD0FD3107468C70017737E /* scancodes_xfree86.h */, + ); + name = "events"; + sourceTree = ""; + }; + 122E4699249C244C209B21D0 /* file */ = { + isa = PBXGroup; + children = ( + 5F7B20DF1BD236742BA56323 /* SDL_rwops.c */, + 3427000018D029490CBA1C78 /* cocoa */, + ); + name = "file"; + sourceTree = ""; + }; + 3427000018D029490CBA1C78 /* cocoa */ = { + isa = PBXGroup; + children = ( + 16AF6B432BCC14366CF6238C /* SDL_rwopsbundlesupport.h */, + 5D6F3B426BD93160262A1A0B /* SDL_rwopsbundlesupport.m */, + ); + name = "cocoa"; + sourceTree = ""; + }; + 452C6BD4333446C007F91D01 /* filesystem */ = { + isa = PBXGroup; + children = ( + 5C2B189A4755342D1C8E5F29 /* cocoa */, + ); + name = "filesystem"; + sourceTree = ""; + }; + 5C2B189A4755342D1C8E5F29 /* cocoa */ = { + isa = PBXGroup; + children = ( + 3DFF58520B8305A67E5866F0 /* SDL_sysfilesystem.m */, + ); + name = "cocoa"; + sourceTree = ""; + }; + 1C9E0A4626382C686BCB725F /* haptic */ = { + isa = PBXGroup; + children = ( + 748B5BD12D28466142D36C04 /* SDL_haptic.c */, + 0E4E25F2553245B308BB6B4E /* SDL_haptic_c.h */, + 01FA4AE64BF015FF2FB464CD /* SDL_syshaptic.h */, + 01D950AF3C225E506E61367D /* darwin */, + ); + name = "haptic"; + sourceTree = ""; + }; + 01D950AF3C225E506E61367D /* darwin */ = { + isa = PBXGroup; + children = ( + 07875CF62CC235C2023B171E /* SDL_syshaptic.c */, + ); + name = "darwin"; + sourceTree = ""; + }; + 3CBE6794538D07AF210B5EB9 /* joystick */ = { + isa = PBXGroup; + children = ( + 474463FC44D12D8266163B0C /* SDL_gamecontroller.c */, + 4C5A3AA4122614E54CF708AC /* SDL_gamecontrollerdb.h */, + 0A51682775F7695826CC3AAD /* SDL_joystick.c */, + 52A612A679915043020D2C12 /* SDL_joystick_c.h */, + 0AE5451F199460984A49374D /* SDL_sysjoystick.h */, + 25E36E6139AB47A6023F0D77 /* darwin */, + ); + name = "joystick"; + sourceTree = ""; + }; + 25E36E6139AB47A6023F0D77 /* darwin */ = { + isa = PBXGroup; + children = ( + 362B7F38400724D4745D17C1 /* SDL_sysjoystick.c */, + 24E3589959C45B6570D82D57 /* SDL_sysjoystick_c.h */, + ); + name = "darwin"; + sourceTree = ""; + }; + 623A006118F66E9E55E732A9 /* loadso */ = { + isa = PBXGroup; + children = ( + 1DD26900286468133DF265A7 /* dlopen */, + ); + name = "loadso"; + sourceTree = ""; + }; + 1DD26900286468133DF265A7 /* dlopen */ = { + isa = PBXGroup; + children = ( + 3E5A3557080276B82EE540D7 /* SDL_sysloadso.c */, + ); + name = "dlopen"; + sourceTree = ""; + }; + 51CF04382D3868620004229B /* power */ = { + isa = PBXGroup; + children = ( + 295B490053604A1B5F832E31 /* SDL_power.c */, + 14B673246C873468194B4A36 /* macosx */, + ); + name = "power"; + sourceTree = ""; + }; + 14B673246C873468194B4A36 /* macosx */ = { + isa = PBXGroup; + children = ( + 441A169052554B8C05B2780E /* SDL_syspower.c */, + ); + name = "macosx"; + sourceTree = ""; + }; + 09FF04F515D7781763C9538C /* render */ = { + isa = PBXGroup; + children = ( + 125E7FE947363FCE78AB3920 /* SDL_render.c */, + 2A47449E0F2F77E169974EB5 /* SDL_sysrender.h */, + 5EB1630859F568532C8C3792 /* SDL_yuv_mmx.c */, + 08C15C7515050FDD2A886246 /* SDL_yuv_sw.c */, + 5BE06A7B5F230FFD60462447 /* SDL_yuv_sw_c.h */, + 62562839558A5DF23BDF37B0 /* mmx.h */, + 1008356C4F894076165C145B /* opengl */, + 396943EC65A070023833287B /* software */, + ); + name = "render"; + sourceTree = ""; + }; + 1008356C4F894076165C145B /* opengl */ = { + isa = PBXGroup; + children = ( + 17FE29923E28546A02B34AF8 /* SDL_glfuncs.h */, + 66021F1B50BA0B215910589A /* SDL_render_gl.c */, + 51D64CC2780E096415426017 /* SDL_shaders_gl.c */, + 57AE68AC283B55A627FE263E /* SDL_shaders_gl.h */, + ); + name = "opengl"; + sourceTree = ""; + }; + 396943EC65A070023833287B /* software */ = { + isa = PBXGroup; + children = ( + 36727BCA2F1D5437708B7454 /* SDL_blendfillrect.c */, + 778563EC2EB8351B1A7437EF /* SDL_blendfillrect.h */, + 66C5268A542E341900F55A35 /* SDL_blendline.c */, + 2CC400BF23A8022D69D20E92 /* SDL_blendline.h */, + 5482361F3563048574A46DB9 /* SDL_blendpoint.c */, + 6487779022F92FDD61BF4F81 /* SDL_blendpoint.h */, + 572556393F5D7E9C59A70B85 /* SDL_draw.h */, + 61C21D5077C07E4904B51C90 /* SDL_drawline.c */, + 3A534994363818EE461314CD /* SDL_drawline.h */, + 59D62A724BBF27CC59231297 /* SDL_drawpoint.c */, + 7F242EF90A1711F051270B6A /* SDL_drawpoint.h */, + 0FFF44745C270A0C4F730726 /* SDL_render_sw.c */, + 5E736E9C457F4F227F0D63CF /* SDL_render_sw_c.h */, + 421F406A12633DAC795C1EB3 /* SDL_rotate.c */, + 01921DE55298202024E96745 /* SDL_rotate.h */, + ); + name = "software"; + sourceTree = ""; + }; + 118E17D14A6A08B06E140E8D /* stdlib */ = { + isa = PBXGroup; + children = ( + 4BC907785D5E6668627E78DE /* SDL_getenv.c */, + 77815DDD6F364C510AC25CB6 /* SDL_iconv.c */, + 3F8275E71B900C7D074949FC /* SDL_malloc.c */, + 07251EE10156492D512F75F3 /* SDL_qsort.c */, + 57323D836A0E78552E015D8E /* SDL_stdlib.c */, + 57F4780F2A47469D23006DD1 /* SDL_string.c */, + ); + name = "stdlib"; + sourceTree = ""; + }; + 1871607C2177284C38DD40C0 /* thread */ = { + isa = PBXGroup; + children = ( + 2EB6434034986F5230BE1635 /* SDL_systhread.h */, + 08FF4C92289179BB0EDF765E /* SDL_thread.c */, + 2CA925B6783314DA18E16F8B /* SDL_thread_c.h */, + 4B3A644B2C8A56FB079F7D74 /* pthread */, + ); + name = "thread"; + sourceTree = ""; + }; + 4B3A644B2C8A56FB079F7D74 /* pthread */ = { + isa = PBXGroup; + children = ( + 04D200E634516AF92074244C /* SDL_syscond.c */, + 5CC65F3A65EF32EE5C773558 /* SDL_sysmutex.c */, + 12F254797C1631F41D3137F8 /* SDL_sysmutex_c.h */, + 05D36048404E42022A7E4127 /* SDL_syssem.c */, + 17B31E2F2CC55CBC6F0A1D9B /* SDL_systhread.c */, + 02B428D53F1D18F262D463B0 /* SDL_systhread_c.h */, + 41E150D956EA3AD510743873 /* SDL_systls.c */, + ); + name = "pthread"; + sourceTree = ""; + }; + 3B4552CF25482CBF44317F63 /* timer */ = { + isa = PBXGroup; + children = ( + 41B156D22A535379479747CB /* SDL_timer.c */, + 002C537968C9193840B53AEE /* SDL_timer_c.h */, + 725C029C7933334915615167 /* unix */, + ); + name = "timer"; + sourceTree = ""; + }; + 725C029C7933334915615167 /* unix */ = { + isa = PBXGroup; + children = ( + 459149F92FC6055B32F7153F /* SDL_systimer.c */, + ); + name = "unix"; + sourceTree = ""; + }; + 5A047E267DFC3D2E40315F8D /* video */ = { + isa = PBXGroup; + children = ( + 4A9716005FF9561D2C3F6284 /* SDL_RLEaccel.c */, + 50AD3AC235DA7BFB41AC2EF0 /* SDL_RLEaccel_c.h */, + 3B0568EE0EB87B3019C24A16 /* SDL_blit.c */, + 513C6936649F3988151A60EC /* SDL_blit.h */, + 3EC71493552F0AB6601B4921 /* SDL_blit_0.c */, + 7D16555224CA08DB629F3ED1 /* SDL_blit_1.c */, + 296F6626753E62AE4A57408A /* SDL_blit_A.c */, + 02A05727533149171EF6318C /* SDL_blit_N.c */, + 2B90062B1FBE1B1865A01BF8 /* SDL_blit_auto.c */, + 690F65987ABC73935FA163B9 /* SDL_blit_auto.h */, + 1DD33CE21E6B143616A13AF1 /* SDL_blit_copy.c */, + 5919276F7CBC2D445BDC0505 /* SDL_blit_copy.h */, + 1CA1189B180060246D2B3B37 /* SDL_blit_slow.c */, + 560565CD15672ED06F9355B1 /* SDL_blit_slow.h */, + 6F5D7EFD4E2B79D45E1B51E3 /* SDL_bmp.c */, + 164801C9489C07724F6A784E /* SDL_clipboard.c */, + 286B34BD2239541E1ABF7B58 /* SDL_egl.c */, + 290B131F70BA5F6766C05FCB /* SDL_egl.h */, + 2F9B71653C254E7E388808C5 /* SDL_fillrect.c */, + 7F9D4C460D482A96620971F4 /* SDL_pixels.c */, + 2FFC595E3D4133F946C128EE /* SDL_pixels_c.h */, + 366D6F2633EA002441056CC7 /* SDL_rect.c */, + 0FBC1056267369394FF37EE2 /* SDL_rect_c.h */, + 349E213D6BCD6E7D754918E0 /* SDL_shape.c */, + 6FB7747B56EB06143A9E7D56 /* SDL_shape_internals.h */, + 334B22626BDE407C402A36B6 /* SDL_stretch.c */, + 34EE3252493E44852C6F4D1A /* SDL_surface.c */, + 3C320390064404981FE12D62 /* SDL_sysvideo.h */, + 124B099C775D350017963585 /* SDL_video.c */, + 70AD0C8A75AB6DAB7B877BCF /* cocoa */, + 44E9255D108272B167374C3D /* dummy */, + 1254612D7A6C7D1C4A6E2304 /* x11 */, + ); + name = "video"; + sourceTree = ""; + }; + 70AD0C8A75AB6DAB7B877BCF /* cocoa */ = { + isa = PBXGroup; + children = ( + 060616512B17276042FD01B1 /* SDL_cocoaclipboard.h */, + 118A36F07D45647F0A084319 /* SDL_cocoaclipboard.m */, + 1BF249306FDF58717F8A67FE /* SDL_cocoaevents.h */, + 6C224B440FCA2C1F2C3C1FAE /* SDL_cocoaevents.m */, + 1DA20CF07FEB53241C877551 /* SDL_cocoakeyboard.h */, + 4402087F5CB90F317D9208D2 /* SDL_cocoakeyboard.m */, + 20DB49010B275E054D963ABC /* SDL_cocoamessagebox.h */, + 4BFF56C82567424C3CF4591E /* SDL_cocoamessagebox.m */, + 668468D44E1637670A5F108D /* SDL_cocoamodes.h */, + 57B60C7A316B6B5A70D13C82 /* SDL_cocoamodes.m */, + 759F34624091186A729C6F35 /* SDL_cocoamouse.h */, + 309C0186189D062A37BF5FB6 /* SDL_cocoamouse.m */, + 21076E4577D20D1D0FAC6ABB /* SDL_cocoamousetap.h */, + 57283DDA43F325E829A27FBA /* SDL_cocoamousetap.m */, + 6A147ACC11C6742F76C2435F /* SDL_cocoaopengl.h */, + 361747734F387130393F605F /* SDL_cocoaopengl.m */, + 783F00DE129C679D07016043 /* SDL_cocoashape.h */, + 7DCD3646470A681D7025162E /* SDL_cocoashape.m */, + 6C2671F8747628C0054C5B51 /* SDL_cocoavideo.h */, + 3617606E15EE572C173C7BE1 /* SDL_cocoavideo.m */, + 178524292FDA124263861BDD /* SDL_cocoawindow.h */, + 7CE067B94CD974F17E692018 /* SDL_cocoawindow.m */, + ); + name = "cocoa"; + sourceTree = ""; + }; + 44E9255D108272B167374C3D /* dummy */ = { + isa = PBXGroup; + children = ( + 4AC7612F064013A35D2E0F0E /* SDL_nullevents.c */, + 63C755A43CB542DE343127F2 /* SDL_nullevents_c.h */, + 137B7080251D541D4486734D /* SDL_nullframebuffer.c */, + 288F77CC00F211760DDC1D83 /* SDL_nullframebuffer_c.h */, + 0B7016F553F306D600E0142E /* SDL_nullvideo.c */, + 6D68605324C17B1C176C6552 /* SDL_nullvideo.h */, + ); + name = "dummy"; + sourceTree = ""; + }; + 1254612D7A6C7D1C4A6E2304 /* x11 */ = { + isa = PBXGroup; + children = ( + 614F0C224A9920122B861F1E /* SDL_x11clipboard.c */, + 399A2DE06000601936783D4A /* SDL_x11clipboard.h */, + 040245A23E4C1DB56C671C11 /* SDL_x11dyn.c */, + 059C757C2A7C42BC023E690B /* SDL_x11dyn.h */, + 0D4B39C02DBE3C111ADF6469 /* SDL_x11events.c */, + 2CCB7E6732185E317FD44176 /* SDL_x11events.h */, + 4AC63B92198A385F654F2730 /* SDL_x11framebuffer.c */, + 206234E53298196560965544 /* SDL_x11framebuffer.h */, + 0DDF62C0484127D723E24C22 /* SDL_x11keyboard.c */, + 5B580F5260F8682D7AA64832 /* SDL_x11keyboard.h */, + 707F3FE15B0D494E51614B58 /* SDL_x11messagebox.c */, + 60CA27DD2C8E30F264EB0997 /* SDL_x11messagebox.h */, + 1BA837F00E275AC823F41E55 /* SDL_x11modes.c */, + 6AAF0AD5604B1AAB0FB6170D /* SDL_x11modes.h */, + 084A624F52C129A670684094 /* SDL_x11mouse.c */, + 23C57CFD064060004E6C387C /* SDL_x11mouse.h */, + 6956132B6EDD79D6109E23B6 /* SDL_x11opengl.c */, + 60BB3DF13E553FAB137C4B0A /* SDL_x11opengl.h */, + 23EC7FEA7AAA67186D60469D /* SDL_x11opengles.c */, + 43F86B58694D59666A07115C /* SDL_x11opengles.h */, + 541017773B6D0CC30C7F69F4 /* SDL_x11shape.c */, + 3ACC5687711255007BE25E16 /* SDL_x11shape.h */, + 08917B4A65B374165A8D7CA7 /* SDL_x11sym.h */, + 4FC145BC3C6D3F3C2D155C4E /* SDL_x11touch.c */, + 15EC5DBC74317D5E53A73032 /* SDL_x11touch.h */, + 604D13500B247C9A6BB63264 /* SDL_x11video.c */, + 349740341E72620B45A369AF /* SDL_x11video.h */, + 111D0E842DA26E0B16420249 /* SDL_x11window.c */, + 6B743871116A4AB56E080B6B /* SDL_x11window.h */, + 340B438574901D2053625299 /* SDL_x11xinput2.c */, + 44386B3D1989253225166350 /* SDL_x11xinput2.h */, + 4A0D4F710FDE780140BA1A58 /* edid-parse.c */, + 1694525C1D4C0F3F7E4D2A55 /* edid.h */, + 5E7A2C910B56578B68161E79 /* imKStoUCS.c */, + 3A4F505E5178406759050FE3 /* imKStoUCS.h */, + ); + name = "x11"; + sourceTree = ""; + }; + 00C87F695E6008491AE07997 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 4F7F3A2F781C7E4027BF10D0 /* AudioToolbox.framework */, + 40FD602A0F7D70BA45F43D6B /* AudioUnit.framework */, + 4A655E13466520DF29BF55A6 /* Cocoa.framework */, + 74AD246C59F62F2063FE6B8F /* CoreAudio.framework */, + 3E915DA675494CC65BAC159C /* IOKit.framework */, + 308A60C82BD87C2638C47377 /* Carbon.framework */, + 5702009549A31E003E2E5CF6 /* ForceFeedback.framework */, + 6F94036B274B6E9309345AF6 /* CoreFoundation.framework */, + 3FAA70EE29303720292D57B6 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 7350255647C236722E191910 /* Products */ = { + isa = PBXGroup; + children = ( + 5E6D56F6655337845A3C44C3 /* libSDL2.a */, + ); + name = "Products"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 7E6A7BC23CFD134274963645 /* SDL2 */ = { + isa = PBXNativeTarget; + buildConfigurationList = 141F24FA3D6072A1529C26E8 /* Build configuration list for PBXNativeTarget "SDL2" */; + buildPhases = ( + 4FC7355D792703116E1F49C6 /* Resources */, + 210D600C478F33F137B03CC7 /* Sources */, + 46BD5DD60E4D1C967C4D37B5 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "SDL2"; + productName = "SDL2"; + productReference = 5E6D56F6655337845A3C44C3 /* libSDL2.a */; + productType = "com.apple.product-type.library.static"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "SDL2" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 4B82442500AD66E9511E4477 /* SDL2 */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 7E6A7BC23CFD134274963645 /* libSDL2.a */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 4FC7355D792703116E1F49C6 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 210D600C478F33F137B03CC7 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 56395776433B06D125BE09F9 /* SDL.c in Sources */, + 0D11631D261C2DED48367BD9 /* SDL_assert.c in Sources */, + 63957CDA535A39C9449D535D /* SDL_error.c in Sources */, + 396E14272C895B1B023B0EBF /* SDL_hints.c in Sources */, + 47A824D52595733944650324 /* SDL_log.c in Sources */, + 0DA40BB5530E3E8A13B22B2A /* SDL_atomic.c in Sources */, + 78B369711FEC690B61E878DB /* SDL_spinlock.c in Sources */, + 106D013A4421102300555D43 /* SDL_audio.c in Sources */, + 2BF6538C20D269CB37087387 /* SDL_audiocvt.c in Sources */, + 32E8550E3FC92BD73B4739B8 /* SDL_audiodev.c in Sources */, + 42C743FD554803F551385F5E /* SDL_audiotypecvt.c in Sources */, + 7D2A6B3F36BD6DD353D43953 /* SDL_mixer.c in Sources */, + 259157355D6D2B2A7C9411BE /* SDL_wave.c in Sources */, + 4AA7597B1C4036EE6193174F /* SDL_coreaudio.c in Sources */, + 5674042A21325D343ED27F33 /* SDL_diskaudio.c in Sources */, + 0B905C2A4B5E31B840865641 /* SDL_dummyaudio.c in Sources */, + 47D9062664F05CC72A952A7A /* SDL_cpuinfo.c in Sources */, + 70D12B02516F0F2905AB412C /* SDL_clipboardevents.c in Sources */, + 7B571F1F643422652B14420D /* SDL_dropevents.c in Sources */, + 5D6A089F279C32D34F707938 /* SDL_events.c in Sources */, + 2FF10E5E5FFE5AA7236E259D /* SDL_gesture.c in Sources */, + 572E0DE06DA25C7C7B4641CB /* SDL_keyboard.c in Sources */, + 4D11428427B179E3476635ED /* SDL_mouse.c in Sources */, + 4D633D8F070C41582A4B57C0 /* SDL_quit.c in Sources */, + 4CB676BB174D5FA62B1A74F5 /* SDL_touch.c in Sources */, + 4FDB4381525E3F0E54222AB7 /* SDL_windowevents.c in Sources */, + 104E1ED077B5263C2F767E76 /* SDL_rwops.c in Sources */, + 054C588B4B675FE145C405FF /* SDL_rwopsbundlesupport.m in Sources */, + 333A606602A9304E62204041 /* SDL_sysfilesystem.m in Sources */, + 7F371E9614B444B008BB61EB /* SDL_haptic.c in Sources */, + 491A69413C3372F47FD526C4 /* SDL_syshaptic.c in Sources */, + 323563246DB26CEE1EE57A87 /* SDL_gamecontroller.c in Sources */, + 6055787753B66A4F7C7C62CC /* SDL_joystick.c in Sources */, + 111C502964B81A6C3F8B75E9 /* SDL_sysjoystick.c in Sources */, + 76537577175D73B66E382DF3 /* SDL_sysloadso.c in Sources */, + 4A6367E166855369495907D2 /* SDL_power.c in Sources */, + 703B3B447BD5756E17974E35 /* SDL_syspower.c in Sources */, + 00F850905E8838901D684336 /* SDL_render.c in Sources */, + 084519B745617A795612765B /* SDL_yuv_mmx.c in Sources */, + 7A7F452C793B51C108155BF3 /* SDL_yuv_sw.c in Sources */, + 0BBB364F1AA839334CA903E1 /* SDL_render_gl.c in Sources */, + 2FE315477EB5534A33D63088 /* SDL_shaders_gl.c in Sources */, + 61F2084A5BE32DCB11E03C70 /* SDL_blendfillrect.c in Sources */, + 59EE3C2409372B9639821D70 /* SDL_blendline.c in Sources */, + 485B7C4A13A54E2B21E3558A /* SDL_blendpoint.c in Sources */, + 72837DD3347C47EC16E204B9 /* SDL_drawline.c in Sources */, + 2CF944703D09586A2DBC5140 /* SDL_drawpoint.c in Sources */, + 5FAA1511268914C730B15F91 /* SDL_render_sw.c in Sources */, + 31BE4ECF1A3005304B891CAA /* SDL_rotate.c in Sources */, + 671B561A4F8961200C43368D /* SDL_getenv.c in Sources */, + 325E5B1B5C4745827A1E6E5F /* SDL_iconv.c in Sources */, + 467362D4600918721A582DD1 /* SDL_malloc.c in Sources */, + 280E40795C183DBB6A970829 /* SDL_qsort.c in Sources */, + 35EB063D107A51CE41391E68 /* SDL_stdlib.c in Sources */, + 751335C2100E444D570F538E /* SDL_string.c in Sources */, + 296D670D18660CF766E818CC /* SDL_thread.c in Sources */, + 11FC3C2D57D7210A3D615BA9 /* SDL_syscond.c in Sources */, + 373D343B1143034962617BD7 /* SDL_sysmutex.c in Sources */, + 15337628451D793D3CAB15D4 /* SDL_syssem.c in Sources */, + 6AB87FC5673A2BBE6C9E0DB5 /* SDL_systhread.c in Sources */, + 2D677EC478A065B220E460EC /* SDL_systls.c in Sources */, + 623F50970F234B5E09CA450B /* SDL_timer.c in Sources */, + 13913E6F0397429A2DEB3D40 /* SDL_systimer.c in Sources */, + 65946C744E79150A4C7C045C /* SDL_RLEaccel.c in Sources */, + 283C240D0F085FE959BD477C /* SDL_blit.c in Sources */, + 1BB3311C46100188199C04D0 /* SDL_blit_0.c in Sources */, + 2B76555A37F14B4D41A27593 /* SDL_blit_1.c in Sources */, + 49D204421C4F1B8835DE2832 /* SDL_blit_A.c in Sources */, + 5E613DFE79B379C26D650D96 /* SDL_blit_N.c in Sources */, + 4A4664FE74896DF45E1808EE /* SDL_blit_auto.c in Sources */, + 3059473C61AB631709347385 /* SDL_blit_copy.c in Sources */, + 50DB688039D37DD9582868D6 /* SDL_blit_slow.c in Sources */, + 375F7D0C5126459216E47CF2 /* SDL_bmp.c in Sources */, + 49F101CA136501802AFA3B94 /* SDL_clipboard.c in Sources */, + 54E9387C7E1D51AC31935DA3 /* SDL_egl.c in Sources */, + 66E622863C5A41026F594412 /* SDL_fillrect.c in Sources */, + 57AE719928720E68714B209F /* SDL_pixels.c in Sources */, + 2D93262C241F1433246B2085 /* SDL_rect.c in Sources */, + 228023C6583F3DE84EF42C58 /* SDL_shape.c in Sources */, + 7E1C02D05DC73D8430EE5B32 /* SDL_stretch.c in Sources */, + 01AC02B5766A48C8670031F2 /* SDL_surface.c in Sources */, + 4BD4541153E57A437BF32A86 /* SDL_video.c in Sources */, + 51243DCF16C22BE3744032EF /* SDL_cocoaclipboard.m in Sources */, + 012C15875FDC21D61CD929D0 /* SDL_cocoaevents.m in Sources */, + 1573379D58A7574D0DBA47AC /* SDL_cocoakeyboard.m in Sources */, + 787242E36A2735A57F59687B /* SDL_cocoamessagebox.m in Sources */, + 2B4D04205F557192365D431C /* SDL_cocoamodes.m in Sources */, + 310774F470EF614902A41941 /* SDL_cocoamouse.m in Sources */, + 24D86B472DA21C7365911852 /* SDL_cocoamousetap.m in Sources */, + 261C18D144B62BA517AB0CDE /* SDL_cocoaopengl.m in Sources */, + 35B52CCD738D46A37D2A007A /* SDL_cocoashape.m in Sources */, + 11E63E4936207F26367F5238 /* SDL_cocoavideo.m in Sources */, + 40BD604A40D313FF5BBF038B /* SDL_cocoawindow.m in Sources */, + 78D451890F066EED1B184E5D /* SDL_nullevents.c in Sources */, + 7D746673275A3D2832FC70E4 /* SDL_nullframebuffer.c in Sources */, + 04EE66BE026750A6697D2D25 /* SDL_nullvideo.c in Sources */, + 16890198400A74D216F21D5C /* SDL_x11clipboard.c in Sources */, + 5AF6069941FD62CC54180B0B /* SDL_x11dyn.c in Sources */, + 5317393214211C5609A741CD /* SDL_x11events.c in Sources */, + 577A205B645529882614213E /* SDL_x11framebuffer.c in Sources */, + 70C662D65B383C6C59FD2D53 /* SDL_x11keyboard.c in Sources */, + 1C89094C623507F457F92E95 /* SDL_x11messagebox.c in Sources */, + 602E0AE6217E04A24E1B6557 /* SDL_x11modes.c in Sources */, + 43957BE84EEC1684606737A4 /* SDL_x11mouse.c in Sources */, + 046106FA142534F231B450E8 /* SDL_x11opengl.c in Sources */, + 08301FE111B053194E1F0BA6 /* SDL_x11opengles.c in Sources */, + 2165120C077310332DB568BC /* SDL_x11shape.c in Sources */, + 06E734A2124E48E15A4E5320 /* SDL_x11touch.c in Sources */, + 57586E4470463EE554525EAF /* SDL_x11video.c in Sources */, + 338D7DFE515B42686BA33874 /* SDL_x11window.c in Sources */, + 40DD09945F46241C46AD317A /* SDL_x11xinput2.c in Sources */, + 1534489224852D230A1C3B61 /* edid-parse.c in Sources */, + 2DE7276C55DC177D1FFD3CF4 /* imKStoUCS.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 51EE03A37C12355E46D14FAF /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/lib; + PRODUCT_NAME = "SDL2"; + }; + name = "Debug Universal"; + }; + 48BC3CF677A500DD43FD3AFB /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/lib; + PRODUCT_NAME = "SDL2"; + }; + name = "Debug Native"; + }; + 2AF54D7E346C41D50A4C21B9 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/lib; + PRODUCT_NAME = "SDL2"; + }; + name = "Release Universal"; + }; + 741D356D2DC91E42269520DC /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/lib; + PRODUCT_NAME = "SDL2"; + }; + name = "Release Native"; + }; + 75927179491863DF5EB80932 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "..", + "../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 51A47C782C1808DA3320138B /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "..", + "../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 19D5095D59785C55576533F4 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "..", + "../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 4BE60CC656D352BC4FCC155A /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "..", + "../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 141F24FA3D6072A1529C26E8 /* Build configuration list for PBXNativeTarget "libSDL2.a" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 51EE03A37C12355E46D14FAF /* Debug Universal */, + 48BC3CF677A500DD43FD3AFB /* Debug Native */, + 2AF54D7E346C41D50A4C21B9 /* Release Universal */, + 741D356D2DC91E42269520DC /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "SDL2" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 75927179491863DF5EB80932 /* Debug Universal */, + 51A47C782C1808DA3320138B /* Debug Native */, + 19D5095D59785C55576533F4 /* Release Universal */, + 4BE60CC656D352BC4FCC155A /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode4/SDL2main/SDL2main.xcodeproj/project.pbxproj b/premake/Xcode/Xcode4/SDL2main/SDL2main.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..794690a934c95 --- /dev/null +++ b/premake/Xcode/Xcode4/SDL2main/SDL2main.xcodeproj/project.pbxproj @@ -0,0 +1,321 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 29BD669758D50FE722B06C79 /* SDL_dummy_main.c in Sources */ = {isa = PBXBuildFile; fileRef = 71F856225FD74A1E14E96A1B /* SDL_dummy_main.c */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 71F856225FD74A1E14E96A1B /* SDL_dummy_main.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_dummy_main.c"; path = "../../../../src/main/dummy/SDL_dummy_main.c"; sourceTree = ""; }; + 0FF7291B375C79BC57696B66 /* libSDL2main.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libSDL2main.a"; path = "libSDL2main.a"; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 2C105D930723156E1E4B7E72 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 54034EA07AB7217318964A6E /* SDL2main */ = { + isa = PBXGroup; + children = ( + 370812FB4CD82A3500B44A8F /* src */, + 0EFD247D20756248746E659C /* Products */, + ); + name = "SDL2main"; + sourceTree = ""; + }; + 370812FB4CD82A3500B44A8F /* src */ = { + isa = PBXGroup; + children = ( + 24F2201B5B4B4452068D1420 /* main */, + ); + name = "src"; + sourceTree = ""; + }; + 24F2201B5B4B4452068D1420 /* main */ = { + isa = PBXGroup; + children = ( + 4A1A228C507C1C1154322017 /* dummy */, + ); + name = "main"; + sourceTree = ""; + }; + 4A1A228C507C1C1154322017 /* dummy */ = { + isa = PBXGroup; + children = ( + 71F856225FD74A1E14E96A1B /* SDL_dummy_main.c */, + ); + name = "dummy"; + sourceTree = ""; + }; + 0EFD247D20756248746E659C /* Products */ = { + isa = PBXGroup; + children = ( + 0FF7291B375C79BC57696B66 /* libSDL2main.a */, + ); + name = "Products"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 1BAE4A0A77462FDC330812A3 /* SDL2main */ = { + isa = PBXNativeTarget; + buildConfigurationList = 1A2E595E2E1C4700667043CF /* Build configuration list for PBXNativeTarget "SDL2main" */; + buildPhases = ( + 7E071A4C0BA6488545EE2589 /* Resources */, + 66FE5C800B0736B878E917F4 /* Sources */, + 2C105D930723156E1E4B7E72 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "SDL2main"; + productName = "SDL2main"; + productReference = 0FF7291B375C79BC57696B66 /* libSDL2main.a */; + productType = "com.apple.product-type.library.static"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "SDL2main" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 54034EA07AB7217318964A6E /* SDL2main */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 1BAE4A0A77462FDC330812A3 /* libSDL2main.a */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 7E071A4C0BA6488545EE2589 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 66FE5C800B0736B878E917F4 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 29BD669758D50FE722B06C79 /* SDL_dummy_main.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 0E7D5D4978107C7C5649003A /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/lib; + PRODUCT_NAME = "SDL2main"; + }; + name = "Debug Universal"; + }; + 3E4560A24A540DEA2B1C479D /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/lib; + PRODUCT_NAME = "SDL2main"; + }; + name = "Debug Native"; + }; + 36EB0A9212DE4F1F20716C6D /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/lib; + PRODUCT_NAME = "SDL2main"; + }; + name = "Release Universal"; + }; + 16F07B73430072407B5E5B4C /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/lib; + PRODUCT_NAME = "SDL2main"; + }; + name = "Release Native"; + }; + 12BE29D8370353AC6CF23615 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "..", + "../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 1DE146FB1F8570F9015A5942 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "..", + "../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 159852CD1A6D039F6AD57AC2 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "..", + "../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 76CC6C406BDA4AA4680729A4 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "..", + "../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 1A2E595E2E1C4700667043CF /* Build configuration list for PBXNativeTarget "libSDL2main.a" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0E7D5D4978107C7C5649003A /* Debug Universal */, + 3E4560A24A540DEA2B1C479D /* Debug Native */, + 36EB0A9212DE4F1F20716C6D /* Release Universal */, + 16F07B73430072407B5E5B4C /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "SDL2main" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 12BE29D8370353AC6CF23615 /* Debug Universal */, + 1DE146FB1F8570F9015A5942 /* Debug Native */, + 159852CD1A6D039F6AD57AC2 /* Release Universal */, + 76CC6C406BDA4AA4680729A4 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode4/SDL2test/SDL2test.xcodeproj/project.pbxproj b/premake/Xcode/Xcode4/SDL2test/SDL2test.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..b039281469767 --- /dev/null +++ b/premake/Xcode/Xcode4/SDL2test/SDL2test.xcodeproj/project.pbxproj @@ -0,0 +1,518 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 5868442624F8572F5CE62C59 /* SDL_test_assert.c in Sources */ = {isa = PBXBuildFile; fileRef = 5F10534E431A6B6822D63266 /* SDL_test_assert.c */; }; + 46EB1B0B0B0A645E5A376827 /* SDL_test_common.c in Sources */ = {isa = PBXBuildFile; fileRef = 33B604C931F5766D04606ABF /* SDL_test_common.c */; }; + 601B27AE37641DD811827D5E /* SDL_test_compare.c in Sources */ = {isa = PBXBuildFile; fileRef = 61094D4F387670CB52C71D09 /* SDL_test_compare.c */; }; + 3F921C2205E0584A674B2057 /* SDL_test_crc32.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B9E27EE056328BA616959D5 /* SDL_test_crc32.c */; }; + 156357903D46413716616A0F /* SDL_test_font.c in Sources */ = {isa = PBXBuildFile; fileRef = 3E2B37E94C2C635F796D0268 /* SDL_test_font.c */; }; + 142A6CDF5A1D5D3202F96891 /* SDL_test_fuzzer.c in Sources */ = {isa = PBXBuildFile; fileRef = 08DE42D5604D733E73CF2270 /* SDL_test_fuzzer.c */; }; + 189F7D33568F07DA337D05EB /* SDL_test_harness.c in Sources */ = {isa = PBXBuildFile; fileRef = 3B9B75D925DA12B134B4188A /* SDL_test_harness.c */; }; + 500B1C5E1C7E42812ED21356 /* SDL_test_imageBlit.c in Sources */ = {isa = PBXBuildFile; fileRef = 12A0771F3D3B79C5016121A4 /* SDL_test_imageBlit.c */; }; + 2ABC590214650D110755751C /* SDL_test_imageBlitBlend.c in Sources */ = {isa = PBXBuildFile; fileRef = 244136BE7E714D4836E71534 /* SDL_test_imageBlitBlend.c */; }; + 5A8836B537D0604C32AF0AB1 /* SDL_test_imageFace.c in Sources */ = {isa = PBXBuildFile; fileRef = 41BE4CEE512F039D3E827AEB /* SDL_test_imageFace.c */; }; + 1EA30EF041A403753527392B /* SDL_test_imagePrimitives.c in Sources */ = {isa = PBXBuildFile; fileRef = 0514744719700C927E0F21F9 /* SDL_test_imagePrimitives.c */; }; + 4A4061E675BE36E6493F4E6B /* SDL_test_imagePrimitivesBlend.c in Sources */ = {isa = PBXBuildFile; fileRef = 747E18B736AF49841C90691A /* SDL_test_imagePrimitivesBlend.c */; }; + 50AF3D742EF021746C0427E1 /* SDL_test_log.c in Sources */ = {isa = PBXBuildFile; fileRef = 56B53C624790591466E8233E /* SDL_test_log.c */; }; + 39D82C1B444148B640E93224 /* SDL_test_md5.c in Sources */ = {isa = PBXBuildFile; fileRef = 604E396B42BE58277CD4659D /* SDL_test_md5.c */; }; + 7A893D2D7365187951324176 /* SDL_test_random.c in Sources */ = {isa = PBXBuildFile; fileRef = 7C44617625592B7923D700C2 /* SDL_test_random.c */; }; + 63D96AAB2058276033AF4155 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5D191CC3500262A4284C1602 /* AudioToolbox.framework */; }; + 02E916FA35521C0720141EB2 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 609450C972615F71305B4104 /* AudioUnit.framework */; }; + 74AE617229E1087E3A1C2DA4 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E122BC45CC80AFA471B54F0 /* Cocoa.framework */; }; + 5E5A7E2B702E1B8E33A51DE5 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 07E01FC5436C167B20851D15 /* CoreAudio.framework */; }; + 758B01921AC101707563405F /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3A0264CD5B0D595772F406A1 /* IOKit.framework */; }; + 08A9176928F7236C0BA30CCC /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 420B218F4DB67DCA0EBA5D3B /* Carbon.framework */; }; + 673A13C2276572560D1A5EC1 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 463B540272EA77F90D7A584C /* ForceFeedback.framework */; }; + 62FF69A62ABE2D851B4D7EA8 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5DFE611A04855A531D2F0768 /* CoreFoundation.framework */; }; + 75BD5D6260037E7209EE7EAE /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4EFA252464A93C8C30491858 /* OpenGL.framework */; }; + 007E668D465E7F3455DB3459 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 427B510D5DBD57AD5DF72748 /* libSDL2main.a */; }; + 6CD31CF2734E3FC00D2702FB /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1A6F74FA7F1C3D595E101EDF /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 0D3516785AC35F9F7A881E9B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 513A687F13A33FF440571450 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 0FF7291B375C79BC57696B66; + remoteInfo = "libSDL2main.a"; + }; + 727B11D13BC44B0F4B366EF9 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 513A687F13A33FF440571450 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1BAE4A0A77462FDC330812A3; + remoteInfo = "libSDL2main.a"; + }; + 3F5B271F6C81264B46F8004C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 701A40DB0801311E63A769D4 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 5E6D56F6655337845A3C44C3; + remoteInfo = "libSDL2.a"; + }; + 11482C2A31806F8F3ECA6A1E /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 701A40DB0801311E63A769D4 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7E6A7BC23CFD134274963645; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 5F10534E431A6B6822D63266 /* SDL_test_assert.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_test_assert.c"; path = "../../../../src/test/SDL_test_assert.c"; sourceTree = ""; }; + 33B604C931F5766D04606ABF /* SDL_test_common.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_test_common.c"; path = "../../../../src/test/SDL_test_common.c"; sourceTree = ""; }; + 61094D4F387670CB52C71D09 /* SDL_test_compare.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_test_compare.c"; path = "../../../../src/test/SDL_test_compare.c"; sourceTree = ""; }; + 4B9E27EE056328BA616959D5 /* SDL_test_crc32.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_test_crc32.c"; path = "../../../../src/test/SDL_test_crc32.c"; sourceTree = ""; }; + 3E2B37E94C2C635F796D0268 /* SDL_test_font.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_test_font.c"; path = "../../../../src/test/SDL_test_font.c"; sourceTree = ""; }; + 08DE42D5604D733E73CF2270 /* SDL_test_fuzzer.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_test_fuzzer.c"; path = "../../../../src/test/SDL_test_fuzzer.c"; sourceTree = ""; }; + 3B9B75D925DA12B134B4188A /* SDL_test_harness.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_test_harness.c"; path = "../../../../src/test/SDL_test_harness.c"; sourceTree = ""; }; + 12A0771F3D3B79C5016121A4 /* SDL_test_imageBlit.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_test_imageBlit.c"; path = "../../../../src/test/SDL_test_imageBlit.c"; sourceTree = ""; }; + 244136BE7E714D4836E71534 /* SDL_test_imageBlitBlend.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_test_imageBlitBlend.c"; path = "../../../../src/test/SDL_test_imageBlitBlend.c"; sourceTree = ""; }; + 41BE4CEE512F039D3E827AEB /* SDL_test_imageFace.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_test_imageFace.c"; path = "../../../../src/test/SDL_test_imageFace.c"; sourceTree = ""; }; + 0514744719700C927E0F21F9 /* SDL_test_imagePrimitives.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_test_imagePrimitives.c"; path = "../../../../src/test/SDL_test_imagePrimitives.c"; sourceTree = ""; }; + 747E18B736AF49841C90691A /* SDL_test_imagePrimitivesBlend.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_test_imagePrimitivesBlend.c"; path = "../../../../src/test/SDL_test_imagePrimitivesBlend.c"; sourceTree = ""; }; + 56B53C624790591466E8233E /* SDL_test_log.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_test_log.c"; path = "../../../../src/test/SDL_test_log.c"; sourceTree = ""; }; + 604E396B42BE58277CD4659D /* SDL_test_md5.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_test_md5.c"; path = "../../../../src/test/SDL_test_md5.c"; sourceTree = ""; }; + 7C44617625592B7923D700C2 /* SDL_test_random.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "SDL_test_random.c"; path = "../../../../src/test/SDL_test_random.c"; sourceTree = ""; }; + 5D191CC3500262A4284C1602 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 609450C972615F71305B4104 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 3E122BC45CC80AFA471B54F0 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 07E01FC5436C167B20851D15 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 3A0264CD5B0D595772F406A1 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 420B218F4DB67DCA0EBA5D3B /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 463B540272EA77F90D7A584C /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 5DFE611A04855A531D2F0768 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 4EFA252464A93C8C30491858 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 1EB6664901BC163F215A4861 /* libSDL2test.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libSDL2test.a"; path = "libSDL2test.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 513A687F13A33FF440571450 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 701A40DB0801311E63A769D4 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 77AC71944901034B36864ECB /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 63D96AAB2058276033AF4155 /* AudioToolbox.framework in Frameworks */, + 02E916FA35521C0720141EB2 /* AudioUnit.framework in Frameworks */, + 74AE617229E1087E3A1C2DA4 /* Cocoa.framework in Frameworks */, + 5E5A7E2B702E1B8E33A51DE5 /* CoreAudio.framework in Frameworks */, + 758B01921AC101707563405F /* IOKit.framework in Frameworks */, + 08A9176928F7236C0BA30CCC /* Carbon.framework in Frameworks */, + 673A13C2276572560D1A5EC1 /* ForceFeedback.framework in Frameworks */, + 62FF69A62ABE2D851B4D7EA8 /* CoreFoundation.framework in Frameworks */, + 75BD5D6260037E7209EE7EAE /* OpenGL.framework in Frameworks */, + 007E668D465E7F3455DB3459 /* libSDL2main.a in Frameworks */, + 6CD31CF2734E3FC00D2702FB /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 0D1E4B6170B903313419073C /* SDL2test */ = { + isa = PBXGroup; + children = ( + 75D329AB2F90321D2B5D1D8C /* src */, + 2C4E3D8179E956F44E221CBF /* Frameworks */, + 02F477103EA63175237D7147 /* Products */, + 706058704ABA11F42A8646CB /* Projects */, + ); + name = "SDL2test"; + sourceTree = ""; + }; + 75D329AB2F90321D2B5D1D8C /* src */ = { + isa = PBXGroup; + children = ( + 7F866917655026BB570A53EA /* test */, + ); + name = "src"; + sourceTree = ""; + }; + 7F866917655026BB570A53EA /* test */ = { + isa = PBXGroup; + children = ( + 5F10534E431A6B6822D63266 /* SDL_test_assert.c */, + 33B604C931F5766D04606ABF /* SDL_test_common.c */, + 61094D4F387670CB52C71D09 /* SDL_test_compare.c */, + 4B9E27EE056328BA616959D5 /* SDL_test_crc32.c */, + 3E2B37E94C2C635F796D0268 /* SDL_test_font.c */, + 08DE42D5604D733E73CF2270 /* SDL_test_fuzzer.c */, + 3B9B75D925DA12B134B4188A /* SDL_test_harness.c */, + 12A0771F3D3B79C5016121A4 /* SDL_test_imageBlit.c */, + 244136BE7E714D4836E71534 /* SDL_test_imageBlitBlend.c */, + 41BE4CEE512F039D3E827AEB /* SDL_test_imageFace.c */, + 0514744719700C927E0F21F9 /* SDL_test_imagePrimitives.c */, + 747E18B736AF49841C90691A /* SDL_test_imagePrimitivesBlend.c */, + 56B53C624790591466E8233E /* SDL_test_log.c */, + 604E396B42BE58277CD4659D /* SDL_test_md5.c */, + 7C44617625592B7923D700C2 /* SDL_test_random.c */, + ); + name = "test"; + sourceTree = ""; + }; + 2C4E3D8179E956F44E221CBF /* Frameworks */ = { + isa = PBXGroup; + children = ( + 5D191CC3500262A4284C1602 /* AudioToolbox.framework */, + 609450C972615F71305B4104 /* AudioUnit.framework */, + 3E122BC45CC80AFA471B54F0 /* Cocoa.framework */, + 07E01FC5436C167B20851D15 /* CoreAudio.framework */, + 3A0264CD5B0D595772F406A1 /* IOKit.framework */, + 420B218F4DB67DCA0EBA5D3B /* Carbon.framework */, + 463B540272EA77F90D7A584C /* ForceFeedback.framework */, + 5DFE611A04855A531D2F0768 /* CoreFoundation.framework */, + 4EFA252464A93C8C30491858 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 02F477103EA63175237D7147 /* Products */ = { + isa = PBXGroup; + children = ( + 1EB6664901BC163F215A4861 /* libSDL2test.a */, + ); + name = "Products"; + sourceTree = ""; + }; + 706058704ABA11F42A8646CB /* Projects */ = { + isa = PBXGroup; + children = ( + 513A687F13A33FF440571450 /* SDL2main.xcodeproj */, + 701A40DB0801311E63A769D4 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 02857CDE0C3316980723205E /* Products */ = { + isa = PBXGroup; + children = ( + 427B510D5DBD57AD5DF72748 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 4FAF2AEE7DEA304C6E5D42BB /* Products */ = { + isa = PBXGroup; + children = ( + 1A6F74FA7F1C3D595E101EDF /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 1258506950476B85239A79A3 /* SDL2test */ = { + isa = PBXNativeTarget; + buildConfigurationList = 337A3BC268F1636870DD42EB /* Build configuration list for PBXNativeTarget "SDL2test" */; + buildPhases = ( + 060354635CDC1A7D191D6671 /* Resources */, + 122A2C1050CF6F533E91543B /* Sources */, + 77AC71944901034B36864ECB /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 5BBE229642D023391BD13E3B /* PBXTargetDependency */, + 17311A0969697B850B6D5F27 /* PBXTargetDependency */, + ); + name = "SDL2test"; + productName = "SDL2test"; + productReference = 1EB6664901BC163F215A4861 /* libSDL2test.a */; + productType = "com.apple.product-type.library.static"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "SDL2test" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 0D1E4B6170B903313419073C /* SDL2test */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 02857CDE0C3316980723205E /* Products */; + ProjectRef = 513A687F13A33FF440571450 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 4FAF2AEE7DEA304C6E5D42BB /* Products */; + ProjectRef = 701A40DB0801311E63A769D4 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 1258506950476B85239A79A3 /* libSDL2test.a */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 427B510D5DBD57AD5DF72748 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 0D3516785AC35F9F7A881E9B /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 1A6F74FA7F1C3D595E101EDF /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 3F5B271F6C81264B46F8004C /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 060354635CDC1A7D191D6671 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 122A2C1050CF6F533E91543B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 5868442624F8572F5CE62C59 /* SDL_test_assert.c in Sources */, + 46EB1B0B0B0A645E5A376827 /* SDL_test_common.c in Sources */, + 601B27AE37641DD811827D5E /* SDL_test_compare.c in Sources */, + 3F921C2205E0584A674B2057 /* SDL_test_crc32.c in Sources */, + 156357903D46413716616A0F /* SDL_test_font.c in Sources */, + 142A6CDF5A1D5D3202F96891 /* SDL_test_fuzzer.c in Sources */, + 189F7D33568F07DA337D05EB /* SDL_test_harness.c in Sources */, + 500B1C5E1C7E42812ED21356 /* SDL_test_imageBlit.c in Sources */, + 2ABC590214650D110755751C /* SDL_test_imageBlitBlend.c in Sources */, + 5A8836B537D0604C32AF0AB1 /* SDL_test_imageFace.c in Sources */, + 1EA30EF041A403753527392B /* SDL_test_imagePrimitives.c in Sources */, + 4A4061E675BE36E6493F4E6B /* SDL_test_imagePrimitivesBlend.c in Sources */, + 50AF3D742EF021746C0427E1 /* SDL_test_log.c in Sources */, + 39D82C1B444148B640E93224 /* SDL_test_md5.c in Sources */, + 7A893D2D7365187951324176 /* SDL_test_random.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 5BBE229642D023391BD13E3B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 727B11D13BC44B0F4B366EF9 /* PBXContainerItemProxy */; + }; + 17311A0969697B850B6D5F27 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 11482C2A31806F8F3ECA6A1E /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 032B32C13BE2220E063507BF /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/lib; + PRODUCT_NAME = "SDL2test"; + }; + name = "Debug Universal"; + }; + 47F271AA0A090AA70EBA6E0F /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/lib; + PRODUCT_NAME = "SDL2test"; + }; + name = "Debug Native"; + }; + 0F203D196F3C00AA21791F73 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/lib; + PRODUCT_NAME = "SDL2test"; + }; + name = "Release Universal"; + }; + 466D581038BF2AEB59A17C12 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/lib; + PRODUCT_NAME = "SDL2test"; + }; + name = "Release Native"; + }; + 0E76080462B43DB97DBB0EC5 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "..", + "../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 51D86BA95CCC59B3156B2D7F /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "..", + "../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 463E19F81B166E2835502D9D /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "..", + "../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 0FBF53686EAD280A680D4787 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "..", + "../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 337A3BC268F1636870DD42EB /* Build configuration list for PBXNativeTarget "libSDL2test.a" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 032B32C13BE2220E063507BF /* Debug Universal */, + 47F271AA0A090AA70EBA6E0F /* Debug Native */, + 0F203D196F3C00AA21791F73 /* Release Universal */, + 466D581038BF2AEB59A17C12 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "SDL2test" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0E76080462B43DB97DBB0EC5 /* Debug Universal */, + 51D86BA95CCC59B3156B2D7F /* Debug Native */, + 463E19F81B166E2835502D9D /* Release Universal */, + 0FBF53686EAD280A680D4787 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode4/SDL_config_premake.h b/premake/Xcode/Xcode4/SDL_config_premake.h new file mode 100755 index 0000000000000..cb1725a2753cb --- /dev/null +++ b/premake/Xcode/Xcode4/SDL_config_premake.h @@ -0,0 +1,205 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2013 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef _SDL_config_macosx_h +#define _SDL_config_macosx_h + +#include "SDL_platform.h" + +/* This gets us MAC_OS_X_VERSION_MIN_REQUIRED... */ +#include + +/* This is a set of defines to configure the SDL features */ + +#ifdef __LP64__ + #define SIZEOF_VOIDP 8 +#else + #define SIZEOF_VOIDP 4 +#endif + +/* Useful headers */ +/* If we specified an SDK or have a post-PowerPC chip, then alloca.h exists. */ +#if ( (MAC_OS_X_VERSION_MIN_REQUIRED >= 1030) || (!defined(__POWERPC__)) ) +#define HAVE_ALLOCA_H 1 +#endif +#define HAVE_SYS_TYPES_H 1 +#define HAVE_STDIO_H 1 +#define STDC_HEADERS 1 +#define HAVE_STRING_H 1 +#define HAVE_INTTYPES_H 1 +#define HAVE_STDINT_H 1 +#define HAVE_CTYPE_H 1 +#define HAVE_MATH_H 1 +#define HAVE_SIGNAL_H 1 + +/* C library functions */ +#define HAVE_MALLOC 1 +#define HAVE_CALLOC 1 +#define HAVE_REALLOC 1 +#define HAVE_FREE 1 +#define HAVE_ALLOCA 1 +#define HAVE_GETENV 1 +#define HAVE_SETENV 1 +#define HAVE_PUTENV 1 +#define HAVE_UNSETENV 1 +#define HAVE_QSORT 1 +#define HAVE_ABS 1 +#define HAVE_BCOPY 1 +#define HAVE_MEMSET 1 +#define HAVE_MEMCPY 1 +#define HAVE_MEMMOVE 1 +#define HAVE_MEMCMP 1 +#define HAVE_STRLEN 1 +#define HAVE_STRLCPY 1 +#define HAVE_STRLCAT 1 +#define HAVE_STRDUP 1 +#define HAVE_STRCHR 1 +#define HAVE_STRRCHR 1 +#define HAVE_STRSTR 1 +#define HAVE_STRTOL 1 +#define HAVE_STRTOUL 1 +#define HAVE_STRTOLL 1 +#define HAVE_STRTOULL 1 +#define HAVE_STRTOD 1 +#define HAVE_ATOI 1 +#define HAVE_ATOF 1 +#define HAVE_STRCMP 1 +#define HAVE_STRNCMP 1 +#define HAVE_STRCASECMP 1 +#define HAVE_STRNCASECMP 1 +#define HAVE_SSCANF 1 +#define HAVE_SNPRINTF 1 +#define HAVE_VSNPRINTF 1 +#define HAVE_CEIL 1 +#define HAVE_COPYSIGN 1 +#define HAVE_COS 1 +#define HAVE_COSF 1 +#define HAVE_FABS 1 +#define HAVE_FLOOR 1 +#define HAVE_LOG 1 +#define HAVE_POW 1 +#define HAVE_SCALBN 1 +#define HAVE_SIN 1 +#define HAVE_SINF 1 +#define HAVE_SQRT 1 +#define HAVE_SIGACTION 1 +#define HAVE_SETJMP 1 +#define HAVE_NANOSLEEP 1 +#define HAVE_SYSCONF 1 +#define HAVE_SYSCTLBYNAME 1 +#define HAVE_ATAN 1 +#define HAVE_ATAN2 1 + +#ifndef SDL_AUDIO_DRIVER_DUMMY +#define SDL_AUDIO_DRIVER_DUMMY 1 +#endif +#ifndef SDL_AUDIO_DRIVER_DISK +#define SDL_AUDIO_DRIVER_DISK 1 +#endif +#ifndef SDL_VIDEO_DRIVER_DUMMY +#define SDL_VIDEO_DRIVER_DUMMY 1 +#endif +#ifndef SDL_VIDEO_RENDER_OGL +#define SDL_VIDEO_RENDER_OGL 1 +#endif +#ifndef SDL_VIDEO_OPENGL +#define SDL_VIDEO_OPENGL 1 +#endif +#ifndef SDL_AUDIO_DRIVER_COREAUDIO +#define SDL_AUDIO_DRIVER_COREAUDIO 1 +#endif +#ifndef SDL_POWER_MACOSX +#define SDL_POWER_MACOSX 1 +#endif +#ifndef SDL_THREAD_PTHREAD_RECURSIVE_MUTEX +#define SDL_THREAD_PTHREAD_RECURSIVE_MUTEX 1 +#endif +#ifndef SDL_LOADSO_DLOPEN +#define SDL_LOADSO_DLOPEN 1 +#endif +#ifndef SDL_FILESYSTEM_COCOA +#define SDL_FILESYSTEM_COCOA 1 +#endif +#ifndef SDL_VIDEO_DRIVER_COCOA +#define SDL_VIDEO_DRIVER_COCOA 1 +#endif +#ifndef SDL_THREAD_PTHREAD +#define SDL_THREAD_PTHREAD 1 +#endif +#ifndef SDL_TIMER_UNIX +#define SDL_TIMER_UNIX 1 +#endif +#ifndef SDL_HAPTIC_IOKIT +#define SDL_HAPTIC_IOKIT 1 +#endif +#ifndef SDL_JOYSTICK_IOKIT +#define SDL_JOYSTICK_IOKIT 1 +#endif + +/* Enable various video drivers */ +#undef SDL_VIDEO_DRIVER_X11 +#define SDL_VIDEO_DRIVER_X11_DYNAMIC "/usr/X11R6/lib/libX11.6.dylib" +#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT "/usr/X11R6/lib/libXext.6.dylib" +#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XINERAMA "/usr/X11R6/lib/libXinerama.1.dylib" +#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT2 "/usr/X11R6/lib/libXi.6.dylib" +#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR "/usr/X11R6/lib/libXrandr.2.dylib" +#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS "/usr/X11R6/lib/libXss.1.dylib" +#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XVIDMODE "/usr/X11R6/lib/libXxf86vm.1.dylib" +#define SDL_VIDEO_DRIVER_X11_XINERAMA 1 +#define SDL_VIDEO_DRIVER_X11_XRANDR 1 +#define SDL_VIDEO_DRIVER_X11_XSCRNSAVER 1 +#define SDL_VIDEO_DRIVER_X11_XSHAPE 1 +#define SDL_VIDEO_DRIVER_X11_XVIDMODE 1 +#define SDL_VIDEO_DRIVER_X11_HAS_XKBKEYCODETOKEYSYM 1 + +#ifdef MAC_OS_X_VERSION_10_8 +/* + * No matter the versions targeted, this is the 10.8 or later SDK, so you have + * to use the external Xquartz, which is a more modern Xlib. Previous SDKs + * used an older Xlib. + */ +#define SDL_VIDEO_DRIVER_X11_XINPUT2 1 +#define SDL_VIDEO_DRIVER_X11_SUPPORTS_GENERIC_EVENTS 1 +#define SDL_VIDEO_DRIVER_X11_CONST_PARAM_XEXTADDDISPLAY 1 +#endif + +#ifndef SDL_VIDEO_RENDER_OGL +#define SDL_VIDEO_RENDER_OGL 1 +#endif + +/* Enable OpenGL support */ +#ifndef SDL_VIDEO_OPENGL +#define SDL_VIDEO_OPENGL 1 +#endif +#ifndef SDL_VIDEO_OPENGL_CGL +#define SDL_VIDEO_OPENGL_CGL 1 +#endif +#ifndef SDL_VIDEO_OPENGL_GLX +#define SDL_VIDEO_OPENGL_GLX 1 +#endif + +/* Enable assembly routines */ +#define SDL_ASSEMBLY_ROUTINES 1 +#ifdef __ppc__ +#define SDL_ALTIVEC_BLITTERS 1 +#endif + +#endif /* _SDL_config_macosx_h */ diff --git a/premake/Xcode/Xcode4/tests/checkkeys/checkkeys.xcodeproj/project.pbxproj b/premake/Xcode/Xcode4/tests/checkkeys/checkkeys.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..66b0397677339 --- /dev/null +++ b/premake/Xcode/Xcode4/tests/checkkeys/checkkeys.xcodeproj/project.pbxproj @@ -0,0 +1,455 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 43D02D135F812B704E4136A3 /* checkkeys.c in Sources */ = {isa = PBXBuildFile; fileRef = 773976867BB829370CD05E01 /* checkkeys.c */; }; + 4343688F1E8F4E1825990D98 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0760667F301569FB00EF0C55 /* AudioToolbox.framework */; }; + 32F44FA37049035E1F472941 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7AC65EDC7AFC56BC59862922 /* AudioUnit.framework */; }; + 744A587E6D44235D47AC097C /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2016348B15CE260B43B33CC2 /* Cocoa.framework */; }; + 61D0274E10FC2FB65B2C427E /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 659A685136A712C0120E057B /* CoreAudio.framework */; }; + 31DD54C5034220C305E04E4C /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7A4548E141BD0A361BD95B5C /* IOKit.framework */; }; + 79DA5BB44524513268EF3B06 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6CAF6C2E74634EE5591C46D3 /* Carbon.framework */; }; + 1C3221C924AC32E243E5079E /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D224D166B763D357C3E5B37 /* ForceFeedback.framework */; }; + 1FCE3E26640126126F1D0FE8 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 37C2479123945F1E4F744D93 /* CoreFoundation.framework */; }; + 0514021F5403260313AC4153 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7B67383C20F97B7E42CA1178 /* OpenGL.framework */; }; + 7D8B310754194985549E60A3 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 425D7AD611272FFA004A11B8 /* libSDL2main.a */; }; + 7C0F65C318167FBD0CC62AEB /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2CB32BF2534E4CD3676B5825 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 2B4C0D3524F01F8638C52973 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 7914359E3D526A935AFB405F /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 0FF7291B375C79BC57696B66; + remoteInfo = "libSDL2main.a"; + }; + 77247127415879E427243E6D /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 7914359E3D526A935AFB405F /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1BAE4A0A77462FDC330812A3; + remoteInfo = "libSDL2main.a"; + }; + 776E76D6669E1CF32E9D662B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 7B7B4ECE6C2C6D166E0810A8 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 5E6D56F6655337845A3C44C3; + remoteInfo = "libSDL2.a"; + }; + 397A03A224E224F17A45767A /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 7B7B4ECE6C2C6D166E0810A8 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7E6A7BC23CFD134274963645; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 773976867BB829370CD05E01 /* checkkeys.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "checkkeys.c"; path = "../../../../../test/checkkeys.c"; sourceTree = ""; }; + 0760667F301569FB00EF0C55 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 7AC65EDC7AFC56BC59862922 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 2016348B15CE260B43B33CC2 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 659A685136A712C0120E057B /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 7A4548E141BD0A361BD95B5C /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 6CAF6C2E74634EE5591C46D3 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 2D224D166B763D357C3E5B37 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 37C2479123945F1E4F744D93 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 7B67383C20F97B7E42CA1178 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 09F73F3138895CE8117B44E7 /* checkkeys */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "checkkeys"; path = "checkkeys"; sourceTree = BUILT_PRODUCTS_DIR; }; + 7914359E3D526A935AFB405F /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 7B7B4ECE6C2C6D166E0810A8 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 3C6F22E43BF169E7536C03E5 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 4343688F1E8F4E1825990D98 /* AudioToolbox.framework in Frameworks */, + 32F44FA37049035E1F472941 /* AudioUnit.framework in Frameworks */, + 744A587E6D44235D47AC097C /* Cocoa.framework in Frameworks */, + 61D0274E10FC2FB65B2C427E /* CoreAudio.framework in Frameworks */, + 31DD54C5034220C305E04E4C /* IOKit.framework in Frameworks */, + 79DA5BB44524513268EF3B06 /* Carbon.framework in Frameworks */, + 1C3221C924AC32E243E5079E /* ForceFeedback.framework in Frameworks */, + 1FCE3E26640126126F1D0FE8 /* CoreFoundation.framework in Frameworks */, + 0514021F5403260313AC4153 /* OpenGL.framework in Frameworks */, + 7D8B310754194985549E60A3 /* libSDL2main.a in Frameworks */, + 7C0F65C318167FBD0CC62AEB /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 1DB00E3B438D0BCF4D66082C /* checkkeys */ = { + isa = PBXGroup; + children = ( + 3F2A7CF343DC4B5A2BDA21B1 /* test */, + 3F091A9F766E48022C1D5E3B /* Frameworks */, + 4C9910EA317C6EC7089325BD /* Products */, + 57D252150E17207B0B9D0BCB /* Projects */, + ); + name = "checkkeys"; + sourceTree = ""; + }; + 3F2A7CF343DC4B5A2BDA21B1 /* test */ = { + isa = PBXGroup; + children = ( + 773976867BB829370CD05E01 /* checkkeys.c */, + ); + name = "test"; + sourceTree = ""; + }; + 3F091A9F766E48022C1D5E3B /* Frameworks */ = { + isa = PBXGroup; + children = ( + 0760667F301569FB00EF0C55 /* AudioToolbox.framework */, + 7AC65EDC7AFC56BC59862922 /* AudioUnit.framework */, + 2016348B15CE260B43B33CC2 /* Cocoa.framework */, + 659A685136A712C0120E057B /* CoreAudio.framework */, + 7A4548E141BD0A361BD95B5C /* IOKit.framework */, + 6CAF6C2E74634EE5591C46D3 /* Carbon.framework */, + 2D224D166B763D357C3E5B37 /* ForceFeedback.framework */, + 37C2479123945F1E4F744D93 /* CoreFoundation.framework */, + 7B67383C20F97B7E42CA1178 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 4C9910EA317C6EC7089325BD /* Products */ = { + isa = PBXGroup; + children = ( + 09F73F3138895CE8117B44E7 /* checkkeys */, + ); + name = "Products"; + sourceTree = ""; + }; + 57D252150E17207B0B9D0BCB /* Projects */ = { + isa = PBXGroup; + children = ( + 7914359E3D526A935AFB405F /* SDL2main.xcodeproj */, + 7B7B4ECE6C2C6D166E0810A8 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 521C394319F405D0271979FC /* Products */ = { + isa = PBXGroup; + children = ( + 425D7AD611272FFA004A11B8 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 46F865621ED2205025694603 /* Products */ = { + isa = PBXGroup; + children = ( + 2CB32BF2534E4CD3676B5825 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 54AB3FA030254F7A10867DEE /* checkkeys */ = { + isa = PBXNativeTarget; + buildConfigurationList = 2C2C389844093371468F0516 /* Build configuration list for PBXNativeTarget "checkkeys" */; + buildPhases = ( + 14EB094078FE24875822544E /* Resources */, + 0068458C240703BF2724388F /* Sources */, + 3C6F22E43BF169E7536C03E5 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 029F4DE51ED1639028474F14 /* PBXTargetDependency */, + 4B351B17118812DC449878F6 /* PBXTargetDependency */, + ); + name = "checkkeys"; + productInstallPath = "$(HOME)/bin"; + productName = "checkkeys"; + productReference = 09F73F3138895CE8117B44E7 /* checkkeys */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "checkkeys" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 1DB00E3B438D0BCF4D66082C /* checkkeys */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 521C394319F405D0271979FC /* Products */; + ProjectRef = 7914359E3D526A935AFB405F /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 46F865621ED2205025694603 /* Products */; + ProjectRef = 7B7B4ECE6C2C6D166E0810A8 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 54AB3FA030254F7A10867DEE /* checkkeys */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 425D7AD611272FFA004A11B8 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 2B4C0D3524F01F8638C52973 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 2CB32BF2534E4CD3676B5825 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 776E76D6669E1CF32E9D662B /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 14EB094078FE24875822544E /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 0068458C240703BF2724388F /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 43D02D135F812B704E4136A3 /* checkkeys.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 029F4DE51ED1639028474F14 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 77247127415879E427243E6D /* PBXContainerItemProxy */; + }; + 4B351B17118812DC449878F6 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 397A03A224E224F17A45767A /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 01FD1D8C7B7D4BCC79263DF0 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "checkkeys"; + }; + name = "Debug Universal"; + }; + 3009502C08E1160B647A3AD5 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "checkkeys"; + }; + name = "Debug Native"; + }; + 6F471F4A53E114A830196B1B /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "checkkeys"; + }; + name = "Release Universal"; + }; + 40140EAE4AD91C1347D046C8 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "checkkeys"; + }; + name = "Release Native"; + }; + 0C3103FB0D8C12D623E40BC8 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 294B28556D814C54408E45AF /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 67DC283E209E17833F1D46A0 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 295928DD45FA446D62A62923 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 2C2C389844093371468F0516 /* Build configuration list for PBXNativeTarget "checkkeys" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 01FD1D8C7B7D4BCC79263DF0 /* Debug Universal */, + 3009502C08E1160B647A3AD5 /* Debug Native */, + 6F471F4A53E114A830196B1B /* Release Universal */, + 40140EAE4AD91C1347D046C8 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "checkkeys" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0C3103FB0D8C12D623E40BC8 /* Debug Universal */, + 294B28556D814C54408E45AF /* Debug Native */, + 67DC283E209E17833F1D46A0 /* Release Universal */, + 295928DD45FA446D62A62923 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode4/tests/loopwave/loopwave.xcodeproj/project.pbxproj b/premake/Xcode/Xcode4/tests/loopwave/loopwave.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..53b0b207353e1 --- /dev/null +++ b/premake/Xcode/Xcode4/tests/loopwave/loopwave.xcodeproj/project.pbxproj @@ -0,0 +1,472 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 166A40A11B46210D65765380 /* loopwave.c in Sources */ = {isa = PBXBuildFile; fileRef = 678D151462E007225B785C96 /* loopwave.c */; }; + 13D670480C8102E91EAC3F64 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3FF775E052DF64213AA74EA8 /* AudioToolbox.framework */; }; + 339107F849BB41445F426738 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 41911CCC2E016FAF4C7B5D0F /* AudioUnit.framework */; }; + 06757DA97D4B478C59C314CD /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C9302C90E6D16843F9D6776 /* Cocoa.framework */; }; + 09893064365936E7059C57B2 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 34F36C7058A772A8121150A7 /* CoreAudio.framework */; }; + 7F37228D06935DE9294F42F9 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 17FA2D2641DB428349235033 /* IOKit.framework */; }; + 73BF1A9D3FD970A17E234500 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 18564BEC7C24477639DE40D7 /* Carbon.framework */; }; + 4B2E46097E6B4CEC44AD44DF /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3FE77A6915207D9A3DBB62F9 /* ForceFeedback.framework */; }; + 241B076B04E648B77FE801CB /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 249758AD63251B207AA517F4 /* CoreFoundation.framework */; }; + 6A8F5A5E05E915CE079345A2 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3A5B421669D32F3F511B5E0E /* OpenGL.framework */; }; + 357611781ADC74A1037D2252 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6C9E31DF555A369F1C594FFE /* libSDL2main.a */; }; + 1C3E3BA915A259F63AC4528C /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 15A7390A447027703C897F68 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 05C02D59441030617055018A /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 733C6FCB7A667D0D026B4935 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 0FF7291B375C79BC57696B66; + remoteInfo = "libSDL2main.a"; + }; + 28AE4DAC602B648038605CD9 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 733C6FCB7A667D0D026B4935 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1BAE4A0A77462FDC330812A3; + remoteInfo = "libSDL2main.a"; + }; + 0B214A086B073D3575D04065 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 4A1C0F7C38A3012153147AAD /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 5E6D56F6655337845A3C44C3; + remoteInfo = "libSDL2.a"; + }; + 5F6652DE7E410F094C8E0D89 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 4A1C0F7C38A3012153147AAD /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7E6A7BC23CFD134274963645; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 678D151462E007225B785C96 /* loopwave.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "loopwave.c"; path = "../../../../../test/loopwave.c"; sourceTree = ""; }; + 3FF775E052DF64213AA74EA8 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 41911CCC2E016FAF4C7B5D0F /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 4C9302C90E6D16843F9D6776 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 34F36C7058A772A8121150A7 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 17FA2D2641DB428349235033 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 18564BEC7C24477639DE40D7 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 3FE77A6915207D9A3DBB62F9 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 249758AD63251B207AA517F4 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 3A5B421669D32F3F511B5E0E /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 2B4350C14C8B537A2A2B708A /* loopwave */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "loopwave"; path = "loopwave"; sourceTree = BUILT_PRODUCTS_DIR; }; + 733C6FCB7A667D0D026B4935 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 4A1C0F7C38A3012153147AAD /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 7D535E86374067287BDD77E5 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 13D670480C8102E91EAC3F64 /* AudioToolbox.framework in Frameworks */, + 339107F849BB41445F426738 /* AudioUnit.framework in Frameworks */, + 06757DA97D4B478C59C314CD /* Cocoa.framework in Frameworks */, + 09893064365936E7059C57B2 /* CoreAudio.framework in Frameworks */, + 7F37228D06935DE9294F42F9 /* IOKit.framework in Frameworks */, + 73BF1A9D3FD970A17E234500 /* Carbon.framework in Frameworks */, + 4B2E46097E6B4CEC44AD44DF /* ForceFeedback.framework in Frameworks */, + 241B076B04E648B77FE801CB /* CoreFoundation.framework in Frameworks */, + 6A8F5A5E05E915CE079345A2 /* OpenGL.framework in Frameworks */, + 357611781ADC74A1037D2252 /* libSDL2main.a in Frameworks */, + 1C3E3BA915A259F63AC4528C /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 10DC6F522C1A71FA0DA010BE /* loopwave */ = { + isa = PBXGroup; + children = ( + 45015DB51A4E3631694E275F /* test */, + 1AA572E74EA81F7D073406F6 /* Frameworks */, + 1D2112E0415162D328FC4413 /* Products */, + 752A1EB66A882B6A563747D5 /* Projects */, + ); + name = "loopwave"; + sourceTree = ""; + }; + 45015DB51A4E3631694E275F /* test */ = { + isa = PBXGroup; + children = ( + 678D151462E007225B785C96 /* loopwave.c */, + ); + name = "test"; + sourceTree = ""; + }; + 1AA572E74EA81F7D073406F6 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 3FF775E052DF64213AA74EA8 /* AudioToolbox.framework */, + 41911CCC2E016FAF4C7B5D0F /* AudioUnit.framework */, + 4C9302C90E6D16843F9D6776 /* Cocoa.framework */, + 34F36C7058A772A8121150A7 /* CoreAudio.framework */, + 17FA2D2641DB428349235033 /* IOKit.framework */, + 18564BEC7C24477639DE40D7 /* Carbon.framework */, + 3FE77A6915207D9A3DBB62F9 /* ForceFeedback.framework */, + 249758AD63251B207AA517F4 /* CoreFoundation.framework */, + 3A5B421669D32F3F511B5E0E /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 1D2112E0415162D328FC4413 /* Products */ = { + isa = PBXGroup; + children = ( + 2B4350C14C8B537A2A2B708A /* loopwave */, + ); + name = "Products"; + sourceTree = ""; + }; + 752A1EB66A882B6A563747D5 /* Projects */ = { + isa = PBXGroup; + children = ( + 733C6FCB7A667D0D026B4935 /* SDL2main.xcodeproj */, + 4A1C0F7C38A3012153147AAD /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 3F7400603BBE3DEC07F71FE3 /* Products */ = { + isa = PBXGroup; + children = ( + 6C9E31DF555A369F1C594FFE /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 6A112AD1393B77300EC017FD /* Products */ = { + isa = PBXGroup; + children = ( + 15A7390A447027703C897F68 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 2A6766BB350B161C222469ED /* loopwave */ = { + isa = PBXNativeTarget; + buildConfigurationList = 1ED806CE708338FA513C70C2 /* Build configuration list for PBXNativeTarget "loopwave" */; + buildPhases = ( + 5484365116910BE1747B461F /* Resources */, + 46D61C9C656E3F097D6F05D7 /* Sources */, + 7D535E86374067287BDD77E5 /* Frameworks */, + 9607AE3710C85E8F00CD1376 /* Postbuild */, + ); + buildRules = ( + ); + dependencies = ( + 3942471407226A9824A304CB /* PBXTargetDependency */, + 5B0B599D7B16107D3E195C73 /* PBXTargetDependency */, + ); + name = "loopwave"; + productInstallPath = "$(HOME)/bin"; + productName = "loopwave"; + productReference = 2B4350C14C8B537A2A2B708A /* loopwave */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "loopwave" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 10DC6F522C1A71FA0DA010BE /* loopwave */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 3F7400603BBE3DEC07F71FE3 /* Products */; + ProjectRef = 733C6FCB7A667D0D026B4935 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 6A112AD1393B77300EC017FD /* Products */; + ProjectRef = 4A1C0F7C38A3012153147AAD /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 2A6766BB350B161C222469ED /* loopwave */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 6C9E31DF555A369F1C594FFE /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 05C02D59441030617055018A /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 15A7390A447027703C897F68 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 0B214A086B073D3575D04065 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 5484365116910BE1747B461F /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 9607AE3710C85E8F00CD1376 /* Postbuild */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = Postbuild; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "if [ \"${CONFIGURATION}\" = \"Debug Universal\" ]; then\nif [ ! -d \"./Build/Debug\" ]; then mkdir -p \"./Build/Debug\"; fi\ncp \"./../../../../../test/sample.wav\" \"./Build/Debug/sample.wav\"\nfi\nif [ \"${CONFIGURATION}\" = \"Debug Native\" ]; then\nif [ ! -d \"./Build/Debug\" ]; then mkdir -p \"./Build/Debug\"; fi\ncp \"./../../../../../test/sample.wav\" \"./Build/Debug/sample.wav\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Universal\" ]; then\nif [ ! -d \"./Build/Release\" ]; then mkdir -p \"./Build/Release\"; fi\ncp \"./../../../../../test/sample.wav\" \"./Build/Release/sample.wav\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Native\" ]; then\nif [ ! -d \"./Build/Release\" ]; then mkdir -p \"./Build/Release\"; fi\ncp \"./../../../../../test/sample.wav\" \"./Build/Release/sample.wav\"\nfi"; + }; +/* End PBXShellScriptBuildPhase section */ +/* Begin PBXSourcesBuildPhase section */ + 46D61C9C656E3F097D6F05D7 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 166A40A11B46210D65765380 /* loopwave.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 3942471407226A9824A304CB /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 28AE4DAC602B648038605CD9 /* PBXContainerItemProxy */; + }; + 5B0B599D7B16107D3E195C73 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 5F6652DE7E410F094C8E0D89 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 483D31E0782849AE7C847B89 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "loopwave"; + }; + name = "Debug Universal"; + }; + 7CD25C98405117540F606E53 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "loopwave"; + }; + name = "Debug Native"; + }; + 5004469E321B287B57F933E2 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "loopwave"; + }; + name = "Release Universal"; + }; + 0B6D4C12490C68CC41A76FF3 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "loopwave"; + }; + name = "Release Native"; + }; + 70F853C55D2E318540341E7A /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 4AAC74A876CA56604D861CFD /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 5C7F1C0E0870207D26967E76 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 561379AF73E40B362BB038D3 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 1ED806CE708338FA513C70C2 /* Build configuration list for PBXNativeTarget "loopwave" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 483D31E0782849AE7C847B89 /* Debug Universal */, + 7CD25C98405117540F606E53 /* Debug Native */, + 5004469E321B287B57F933E2 /* Release Universal */, + 0B6D4C12490C68CC41A76FF3 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "loopwave" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 70F853C55D2E318540341E7A /* Debug Universal */, + 4AAC74A876CA56604D861CFD /* Debug Native */, + 5C7F1C0E0870207D26967E76 /* Release Universal */, + 561379AF73E40B362BB038D3 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode4/tests/testatomic/testatomic.xcodeproj/project.pbxproj b/premake/Xcode/Xcode4/tests/testatomic/testatomic.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..8a88c3348ae02 --- /dev/null +++ b/premake/Xcode/Xcode4/tests/testatomic/testatomic.xcodeproj/project.pbxproj @@ -0,0 +1,455 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 52BA31676736458613223958 /* testatomic.c in Sources */ = {isa = PBXBuildFile; fileRef = 5AED20E93BB779CA4B077035 /* testatomic.c */; }; + 7A051340693E059B1F052718 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5EC102744D20281F0E50361A /* AudioToolbox.framework */; }; + 32C06EDC5C2E693A69F61E84 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1CEE765B57175E4403E34596 /* AudioUnit.framework */; }; + 42BE52AB77FC4E1F668A7D05 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 794D536B4E2D75B230FC1E71 /* Cocoa.framework */; }; + 00D7515204212DB030714D98 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 79AF05DE336A762B3B203C4B /* CoreAudio.framework */; }; + 5F1C618119E46786166405A9 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 617E2FDD5EB618BA79E53610 /* IOKit.framework */; }; + 3FD01F3F6809493072012B8E /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 276456530578408B7ACB42B4 /* Carbon.framework */; }; + 43CE33CA2AD3394430CC61E0 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 34E8738941040C3111F24E38 /* ForceFeedback.framework */; }; + 66267F67590B1651566D2F44 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 71423C110C2C3BD4120E60C9 /* CoreFoundation.framework */; }; + 0A893C19155932BA09D26E7E /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3FCA267A4A85153504700EBA /* OpenGL.framework */; }; + 42515E4E783F1D0348B56488 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 356045F654B16DBA56DA3A28 /* libSDL2main.a */; }; + 300323230F1348EB634A15AD /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 11B523EC739A3EC715F74063 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 5DAA4874399E618B03DB4317 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 480A3CAB279822AD342636AD /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 0FF7291B375C79BC57696B66; + remoteInfo = "libSDL2main.a"; + }; + 370B468A377D038B3A42641D /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 480A3CAB279822AD342636AD /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1BAE4A0A77462FDC330812A3; + remoteInfo = "libSDL2main.a"; + }; + 5B4C0C0D469561EF26F4004F /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 2F8E284C360B0C384A487BBA /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 5E6D56F6655337845A3C44C3; + remoteInfo = "libSDL2.a"; + }; + 61B760A2343C74A45A58493C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 2F8E284C360B0C384A487BBA /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7E6A7BC23CFD134274963645; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 5AED20E93BB779CA4B077035 /* testatomic.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testatomic.c"; path = "../../../../../test/testatomic.c"; sourceTree = ""; }; + 5EC102744D20281F0E50361A /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 1CEE765B57175E4403E34596 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 794D536B4E2D75B230FC1E71 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 79AF05DE336A762B3B203C4B /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 617E2FDD5EB618BA79E53610 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 276456530578408B7ACB42B4 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 34E8738941040C3111F24E38 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 71423C110C2C3BD4120E60C9 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 3FCA267A4A85153504700EBA /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 38292B1776EF01BD5BE20E11 /* testatomic */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testatomic"; path = "testatomic"; sourceTree = BUILT_PRODUCTS_DIR; }; + 480A3CAB279822AD342636AD /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 2F8E284C360B0C384A487BBA /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 4D13439A5F251DA6308A5695 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 7A051340693E059B1F052718 /* AudioToolbox.framework in Frameworks */, + 32C06EDC5C2E693A69F61E84 /* AudioUnit.framework in Frameworks */, + 42BE52AB77FC4E1F668A7D05 /* Cocoa.framework in Frameworks */, + 00D7515204212DB030714D98 /* CoreAudio.framework in Frameworks */, + 5F1C618119E46786166405A9 /* IOKit.framework in Frameworks */, + 3FD01F3F6809493072012B8E /* Carbon.framework in Frameworks */, + 43CE33CA2AD3394430CC61E0 /* ForceFeedback.framework in Frameworks */, + 66267F67590B1651566D2F44 /* CoreFoundation.framework in Frameworks */, + 0A893C19155932BA09D26E7E /* OpenGL.framework in Frameworks */, + 42515E4E783F1D0348B56488 /* libSDL2main.a in Frameworks */, + 300323230F1348EB634A15AD /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 74206AE430180C3F0D4363CB /* testatomic */ = { + isa = PBXGroup; + children = ( + 26216D874BA160C261CA4004 /* test */, + 51310A433DC16F926F8E55FD /* Frameworks */, + 469B159E66314A3A55881384 /* Products */, + 4D661CFC65F134784E2B1D68 /* Projects */, + ); + name = "testatomic"; + sourceTree = ""; + }; + 26216D874BA160C261CA4004 /* test */ = { + isa = PBXGroup; + children = ( + 5AED20E93BB779CA4B077035 /* testatomic.c */, + ); + name = "test"; + sourceTree = ""; + }; + 51310A433DC16F926F8E55FD /* Frameworks */ = { + isa = PBXGroup; + children = ( + 5EC102744D20281F0E50361A /* AudioToolbox.framework */, + 1CEE765B57175E4403E34596 /* AudioUnit.framework */, + 794D536B4E2D75B230FC1E71 /* Cocoa.framework */, + 79AF05DE336A762B3B203C4B /* CoreAudio.framework */, + 617E2FDD5EB618BA79E53610 /* IOKit.framework */, + 276456530578408B7ACB42B4 /* Carbon.framework */, + 34E8738941040C3111F24E38 /* ForceFeedback.framework */, + 71423C110C2C3BD4120E60C9 /* CoreFoundation.framework */, + 3FCA267A4A85153504700EBA /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 469B159E66314A3A55881384 /* Products */ = { + isa = PBXGroup; + children = ( + 38292B1776EF01BD5BE20E11 /* testatomic */, + ); + name = "Products"; + sourceTree = ""; + }; + 4D661CFC65F134784E2B1D68 /* Projects */ = { + isa = PBXGroup; + children = ( + 480A3CAB279822AD342636AD /* SDL2main.xcodeproj */, + 2F8E284C360B0C384A487BBA /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 7E7B4C7F5BF74B390D393D31 /* Products */ = { + isa = PBXGroup; + children = ( + 356045F654B16DBA56DA3A28 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 627E3FD02ABC57640F6A087D /* Products */ = { + isa = PBXGroup; + children = ( + 11B523EC739A3EC715F74063 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 3C171A8678AB499912C1478B /* testatomic */ = { + isa = PBXNativeTarget; + buildConfigurationList = 1DF2362C0D807BA65AAD2BDC /* Build configuration list for PBXNativeTarget "testatomic" */; + buildPhases = ( + 30BF06E131B7051F4EAA2C83 /* Resources */, + 7268103B4C4C50B27C2A2C69 /* Sources */, + 4D13439A5F251DA6308A5695 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 443F439036694F8E33F208E8 /* PBXTargetDependency */, + 4277186950AA6BD4397A0E30 /* PBXTargetDependency */, + ); + name = "testatomic"; + productInstallPath = "$(HOME)/bin"; + productName = "testatomic"; + productReference = 38292B1776EF01BD5BE20E11 /* testatomic */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testatomic" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 74206AE430180C3F0D4363CB /* testatomic */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 7E7B4C7F5BF74B390D393D31 /* Products */; + ProjectRef = 480A3CAB279822AD342636AD /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 627E3FD02ABC57640F6A087D /* Products */; + ProjectRef = 2F8E284C360B0C384A487BBA /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 3C171A8678AB499912C1478B /* testatomic */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 356045F654B16DBA56DA3A28 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 5DAA4874399E618B03DB4317 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 11B523EC739A3EC715F74063 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 5B4C0C0D469561EF26F4004F /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 30BF06E131B7051F4EAA2C83 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 7268103B4C4C50B27C2A2C69 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 52BA31676736458613223958 /* testatomic.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 443F439036694F8E33F208E8 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 370B468A377D038B3A42641D /* PBXContainerItemProxy */; + }; + 4277186950AA6BD4397A0E30 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 61B760A2343C74A45A58493C /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 476A04AA44A419371C470B5B /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testatomic"; + }; + name = "Debug Universal"; + }; + 77003C4228FC3B942BF379C1 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testatomic"; + }; + name = "Debug Native"; + }; + 69B43F786CA013D2523E7DA2 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testatomic"; + }; + name = "Release Universal"; + }; + 5861666E7F67769F59171558 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testatomic"; + }; + name = "Release Native"; + }; + 27271AAB6EE3799531DD5C3A /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 02A07859572149B3396B615A /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 23C634547772703B43AB380E /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 4723758A6D0243837BDA4A77 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 1DF2362C0D807BA65AAD2BDC /* Build configuration list for PBXNativeTarget "testatomic" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 476A04AA44A419371C470B5B /* Debug Universal */, + 77003C4228FC3B942BF379C1 /* Debug Native */, + 69B43F786CA013D2523E7DA2 /* Release Universal */, + 5861666E7F67769F59171558 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testatomic" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 27271AAB6EE3799531DD5C3A /* Debug Universal */, + 02A07859572149B3396B615A /* Debug Native */, + 23C634547772703B43AB380E /* Release Universal */, + 4723758A6D0243837BDA4A77 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode4/tests/testaudioinfo/testaudioinfo.xcodeproj/project.pbxproj b/premake/Xcode/Xcode4/tests/testaudioinfo/testaudioinfo.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..817f66c0edf1d --- /dev/null +++ b/premake/Xcode/Xcode4/tests/testaudioinfo/testaudioinfo.xcodeproj/project.pbxproj @@ -0,0 +1,455 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 77BF40086051716945395910 /* testaudioinfo.c in Sources */ = {isa = PBXBuildFile; fileRef = 25EB152A7D48349343BF65B1 /* testaudioinfo.c */; }; + 190D2A136D1A72CC462215C8 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 680157970C926BDD01AB364F /* AudioToolbox.framework */; }; + 253014CB4CAD1AED3EC03B28 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 37363F6C729B48C86D394061 /* AudioUnit.framework */; }; + 591913C36AEE635E5F894732 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 775231941FAC03A8120D170D /* Cocoa.framework */; }; + 2A9E28D343280D4337DA64CA /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26CE2A4052345D382D491FDA /* CoreAudio.framework */; }; + 7AA57BBD644578FE098D1F48 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3F5D23AF427A635903BC2C4F /* IOKit.framework */; }; + 27B920FE16CD08720CC04B8D /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 39D20C594B603EEE090D6669 /* Carbon.framework */; }; + 37F6778402951DCA419B464F /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 20A8345B5FF43EB777173621 /* ForceFeedback.framework */; }; + 7AAC493607B066E151210909 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 057C190A0EF534711B4959F7 /* CoreFoundation.framework */; }; + 029C77FA76582A0E0A9948A2 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 54322B875422359D1423175F /* OpenGL.framework */; }; + 328802C6243133D3104D4E21 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0509368D68EA13027E88231E /* libSDL2main.a */; }; + 783034A429E849EA5CE54661 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0DE13C126F242C9E73765C28 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 205B3AD04DFD3D5A05EF174E /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 4C001BCC77191595712003FF /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 0FF7291B375C79BC57696B66; + remoteInfo = "libSDL2main.a"; + }; + 37244AC37C55516031333D9A /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 4C001BCC77191595712003FF /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1BAE4A0A77462FDC330812A3; + remoteInfo = "libSDL2main.a"; + }; + 1FD643275CA430CF1E8E2F4D /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 01B34D0312EB394653A7096D /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 5E6D56F6655337845A3C44C3; + remoteInfo = "libSDL2.a"; + }; + 7A1246F041A201272FEC495D /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 01B34D0312EB394653A7096D /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7E6A7BC23CFD134274963645; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 25EB152A7D48349343BF65B1 /* testaudioinfo.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testaudioinfo.c"; path = "../../../../../test/testaudioinfo.c"; sourceTree = ""; }; + 680157970C926BDD01AB364F /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 37363F6C729B48C86D394061 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 775231941FAC03A8120D170D /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 26CE2A4052345D382D491FDA /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 3F5D23AF427A635903BC2C4F /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 39D20C594B603EEE090D6669 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 20A8345B5FF43EB777173621 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 057C190A0EF534711B4959F7 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 54322B875422359D1423175F /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 1667587F236E324C312A69FF /* testaudioinfo */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testaudioinfo"; path = "testaudioinfo"; sourceTree = BUILT_PRODUCTS_DIR; }; + 4C001BCC77191595712003FF /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 01B34D0312EB394653A7096D /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 01AF1FB21B1F3D446EF52C08 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 190D2A136D1A72CC462215C8 /* AudioToolbox.framework in Frameworks */, + 253014CB4CAD1AED3EC03B28 /* AudioUnit.framework in Frameworks */, + 591913C36AEE635E5F894732 /* Cocoa.framework in Frameworks */, + 2A9E28D343280D4337DA64CA /* CoreAudio.framework in Frameworks */, + 7AA57BBD644578FE098D1F48 /* IOKit.framework in Frameworks */, + 27B920FE16CD08720CC04B8D /* Carbon.framework in Frameworks */, + 37F6778402951DCA419B464F /* ForceFeedback.framework in Frameworks */, + 7AAC493607B066E151210909 /* CoreFoundation.framework in Frameworks */, + 029C77FA76582A0E0A9948A2 /* OpenGL.framework in Frameworks */, + 328802C6243133D3104D4E21 /* libSDL2main.a in Frameworks */, + 783034A429E849EA5CE54661 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 44217B8965F2798B44953DE4 /* testaudioinfo */ = { + isa = PBXGroup; + children = ( + 6EC42FC819DF11B5154779E2 /* test */, + 348602B967A86BA8733E1C62 /* Frameworks */, + 394F7D4969D7540A6B9B23E2 /* Products */, + 665F200A2BD211591F457354 /* Projects */, + ); + name = "testaudioinfo"; + sourceTree = ""; + }; + 6EC42FC819DF11B5154779E2 /* test */ = { + isa = PBXGroup; + children = ( + 25EB152A7D48349343BF65B1 /* testaudioinfo.c */, + ); + name = "test"; + sourceTree = ""; + }; + 348602B967A86BA8733E1C62 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 680157970C926BDD01AB364F /* AudioToolbox.framework */, + 37363F6C729B48C86D394061 /* AudioUnit.framework */, + 775231941FAC03A8120D170D /* Cocoa.framework */, + 26CE2A4052345D382D491FDA /* CoreAudio.framework */, + 3F5D23AF427A635903BC2C4F /* IOKit.framework */, + 39D20C594B603EEE090D6669 /* Carbon.framework */, + 20A8345B5FF43EB777173621 /* ForceFeedback.framework */, + 057C190A0EF534711B4959F7 /* CoreFoundation.framework */, + 54322B875422359D1423175F /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 394F7D4969D7540A6B9B23E2 /* Products */ = { + isa = PBXGroup; + children = ( + 1667587F236E324C312A69FF /* testaudioinfo */, + ); + name = "Products"; + sourceTree = ""; + }; + 665F200A2BD211591F457354 /* Projects */ = { + isa = PBXGroup; + children = ( + 4C001BCC77191595712003FF /* SDL2main.xcodeproj */, + 01B34D0312EB394653A7096D /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 13304AB568B57BA12EA166A9 /* Products */ = { + isa = PBXGroup; + children = ( + 0509368D68EA13027E88231E /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 5B48557310784A282FA77E6C /* Products */ = { + isa = PBXGroup; + children = ( + 0DE13C126F242C9E73765C28 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 7E255C0F0A895768025C79FC /* testaudioinfo */ = { + isa = PBXNativeTarget; + buildConfigurationList = 37C23DCE27C44E8C4EEA20D7 /* Build configuration list for PBXNativeTarget "testaudioinfo" */; + buildPhases = ( + 22D97E8E486B6FF42CF141AB /* Resources */, + 5DB66CF028AE76BF08280EAB /* Sources */, + 01AF1FB21B1F3D446EF52C08 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 05302FF737C0413451FE363A /* PBXTargetDependency */, + 09D736EE6FC3136E44C97DC3 /* PBXTargetDependency */, + ); + name = "testaudioinfo"; + productInstallPath = "$(HOME)/bin"; + productName = "testaudioinfo"; + productReference = 1667587F236E324C312A69FF /* testaudioinfo */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testaudioinfo" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 44217B8965F2798B44953DE4 /* testaudioinfo */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 13304AB568B57BA12EA166A9 /* Products */; + ProjectRef = 4C001BCC77191595712003FF /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 5B48557310784A282FA77E6C /* Products */; + ProjectRef = 01B34D0312EB394653A7096D /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 7E255C0F0A895768025C79FC /* testaudioinfo */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 0509368D68EA13027E88231E /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 205B3AD04DFD3D5A05EF174E /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 0DE13C126F242C9E73765C28 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 1FD643275CA430CF1E8E2F4D /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 22D97E8E486B6FF42CF141AB /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 5DB66CF028AE76BF08280EAB /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 77BF40086051716945395910 /* testaudioinfo.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 05302FF737C0413451FE363A /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 37244AC37C55516031333D9A /* PBXContainerItemProxy */; + }; + 09D736EE6FC3136E44C97DC3 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 7A1246F041A201272FEC495D /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 1A2A3EF20C3845F8592520F3 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testaudioinfo"; + }; + name = "Debug Universal"; + }; + 35F712173DB83C252B0F0A73 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testaudioinfo"; + }; + name = "Debug Native"; + }; + 3FA56C0741656EDD75AE7E12 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testaudioinfo"; + }; + name = "Release Universal"; + }; + 18C2749517766F622A264DEE /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testaudioinfo"; + }; + name = "Release Native"; + }; + 655A2B8B6F8252807EC60085 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 082D675869A30D514B1D0D47 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 00BA5C0300A104F90ACE5EFA /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 4E887B94318C7F6B6E8C29AA /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 37C23DCE27C44E8C4EEA20D7 /* Build configuration list for PBXNativeTarget "testaudioinfo" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1A2A3EF20C3845F8592520F3 /* Debug Universal */, + 35F712173DB83C252B0F0A73 /* Debug Native */, + 3FA56C0741656EDD75AE7E12 /* Release Universal */, + 18C2749517766F622A264DEE /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testaudioinfo" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 655A2B8B6F8252807EC60085 /* Debug Universal */, + 082D675869A30D514B1D0D47 /* Debug Native */, + 00BA5C0300A104F90ACE5EFA /* Release Universal */, + 4E887B94318C7F6B6E8C29AA /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode4/tests/testautomation/testautomation.xcodeproj/project.pbxproj b/premake/Xcode/Xcode4/tests/testautomation/testautomation.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..aaf1d3e8c15b8 --- /dev/null +++ b/premake/Xcode/Xcode4/tests/testautomation/testautomation.xcodeproj/project.pbxproj @@ -0,0 +1,568 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 6C2D1B7F6FD948D813597556 /* testautomation.c in Sources */ = {isa = PBXBuildFile; fileRef = 02F07A70794F4EA017122748 /* testautomation.c */; }; + 1D59654F6543146669A50F9D /* testautomation_audio.c in Sources */ = {isa = PBXBuildFile; fileRef = 67CE10AB773967E92D9E0809 /* testautomation_audio.c */; }; + 119E2CF662CD266835173054 /* testautomation_clipboard.c in Sources */ = {isa = PBXBuildFile; fileRef = 1724553124845FAC540662B5 /* testautomation_clipboard.c */; }; + 1DAA2B7732526697452644E5 /* testautomation_events.c in Sources */ = {isa = PBXBuildFile; fileRef = 5ECA243A16E250343A501AE8 /* testautomation_events.c */; }; + 350F01AE62D857CB5C6F1FA7 /* testautomation_keyboard.c in Sources */ = {isa = PBXBuildFile; fileRef = 30E66A5E63077A5E6FDC60A4 /* testautomation_keyboard.c */; }; + 2EA572B7005449BA606066E7 /* testautomation_main.c in Sources */ = {isa = PBXBuildFile; fileRef = 2A9339AF490178CE2DAE177B /* testautomation_main.c */; }; + 261E2DC767D84AF40AB37EC7 /* testautomation_mouse.c in Sources */ = {isa = PBXBuildFile; fileRef = 76962AAE2FBA04BE14B45E7C /* testautomation_mouse.c */; }; + 51CE3D32297C32F65A570960 /* testautomation_pixels.c in Sources */ = {isa = PBXBuildFile; fileRef = 41BC3336256712D50AC92E24 /* testautomation_pixels.c */; }; + 7AEE2F2B51B41C626A2748EE /* testautomation_platform.c in Sources */ = {isa = PBXBuildFile; fileRef = 0EF30DB3124B3B5D028B0824 /* testautomation_platform.c */; }; + 4AD378CC324A23C518544AB1 /* testautomation_rect.c in Sources */ = {isa = PBXBuildFile; fileRef = 2E225D6D5DDA53B001931162 /* testautomation_rect.c */; }; + 22C07B6D5566319C22484C40 /* testautomation_render.c in Sources */ = {isa = PBXBuildFile; fileRef = 3B595BAA102F000579A233E3 /* testautomation_render.c */; }; + 22D63F1315BE7B28061828AC /* testautomation_rwops.c in Sources */ = {isa = PBXBuildFile; fileRef = 2A03303E50566A6F41BE45BB /* testautomation_rwops.c */; }; + 5D4F6F4A03C85B7F74CD4114 /* testautomation_sdltest.c in Sources */ = {isa = PBXBuildFile; fileRef = 37B95314610A6D537F426158 /* testautomation_sdltest.c */; }; + 31EF4FB440F804510FC824FF /* testautomation_stdlib.c in Sources */ = {isa = PBXBuildFile; fileRef = 0F0F47154A363C5A6E776555 /* testautomation_stdlib.c */; }; + 7FC9661039A8605D2E5E3DB4 /* testautomation_surface.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E530E1C0EB66747054E5C23 /* testautomation_surface.c */; }; + 6C4A7BDB069474E058F60283 /* testautomation_syswm.c in Sources */ = {isa = PBXBuildFile; fileRef = 042E7203422E745A59252751 /* testautomation_syswm.c */; }; + 66F04E054CC476FA421D0BFB /* testautomation_timer.c in Sources */ = {isa = PBXBuildFile; fileRef = 24935FE831F301295F995943 /* testautomation_timer.c */; }; + 151E1FB5282C10BD6D085EE0 /* testautomation_video.c in Sources */ = {isa = PBXBuildFile; fileRef = 2C59314151B2336963091C60 /* testautomation_video.c */; }; + 3D63515F679E516C480A12C4 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2DE67FE13D66165A7A04470B /* AudioToolbox.framework */; }; + 601271BD3CC347FE2A663A69 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0AB52670094463062D5755CC /* AudioUnit.framework */; }; + 34A9541D705B096D7D690F4F /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 64DF76961ABE4DA72D9E04E2 /* Cocoa.framework */; }; + 2FD8149A2AE46E9B19201372 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3C774CAE5EE71FFD494846EF /* CoreAudio.framework */; }; + 41C5024F150108A44C1C559F /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3A386FA34BC05A6126B415A7 /* IOKit.framework */; }; + 5FA21AD1355840324F3960FB /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40E513B239A31F071FE03CAE /* Carbon.framework */; }; + 35024078077B44D072B14735 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 233862F97345691508BC1E73 /* ForceFeedback.framework */; }; + 08CE0D33111C4E0404375994 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0C235FF82C50558D502D598A /* CoreFoundation.framework */; }; + 627C724716B909A0121E2CB8 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 08B05DEB23887618495A54A0 /* OpenGL.framework */; }; + 38EC0E7959A650DD7B490359 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 189655F647DC75E80F9E01B7 /* libSDL2main.a */; }; + 357C072C66D134657A4358AF /* libSDL2test.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 22C35FC727DB2D4E18402504 /* libSDL2test.a */; }; + 77E3096D6E8B6AFA639C282B /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1B5D0C561F7143C763071C12 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 493019283F531FA91F1B5B92 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 560237CD7CB1015846F45D67 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 0FF7291B375C79BC57696B66; + remoteInfo = "libSDL2main.a"; + }; + 0EBA708404EF6A35702F41B3 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 560237CD7CB1015846F45D67 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1BAE4A0A77462FDC330812A3; + remoteInfo = "libSDL2main.a"; + }; + 24730DD730B5791B5C937562 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 06C9331D44ED555900FD68F0 /* SDL2test.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 1EB6664901BC163F215A4861; + remoteInfo = "libSDL2test.a"; + }; + 199C7651500E075E4F5D76B0 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 06C9331D44ED555900FD68F0 /* SDL2test.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1258506950476B85239A79A3; + remoteInfo = "libSDL2test.a"; + }; + 18113D682F4D016F4F5C5C8E /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 5685467763AD30D44F0D6738 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 5E6D56F6655337845A3C44C3; + remoteInfo = "libSDL2.a"; + }; + 009C23BA2E38797638A507B8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 5685467763AD30D44F0D6738 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7E6A7BC23CFD134274963645; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 02F07A70794F4EA017122748 /* testautomation.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testautomation.c"; path = "../../../../../test/testautomation.c"; sourceTree = ""; }; + 67CE10AB773967E92D9E0809 /* testautomation_audio.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testautomation_audio.c"; path = "../../../../../test/testautomation_audio.c"; sourceTree = ""; }; + 1724553124845FAC540662B5 /* testautomation_clipboard.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testautomation_clipboard.c"; path = "../../../../../test/testautomation_clipboard.c"; sourceTree = ""; }; + 5ECA243A16E250343A501AE8 /* testautomation_events.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testautomation_events.c"; path = "../../../../../test/testautomation_events.c"; sourceTree = ""; }; + 30E66A5E63077A5E6FDC60A4 /* testautomation_keyboard.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testautomation_keyboard.c"; path = "../../../../../test/testautomation_keyboard.c"; sourceTree = ""; }; + 2A9339AF490178CE2DAE177B /* testautomation_main.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testautomation_main.c"; path = "../../../../../test/testautomation_main.c"; sourceTree = ""; }; + 76962AAE2FBA04BE14B45E7C /* testautomation_mouse.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testautomation_mouse.c"; path = "../../../../../test/testautomation_mouse.c"; sourceTree = ""; }; + 41BC3336256712D50AC92E24 /* testautomation_pixels.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testautomation_pixels.c"; path = "../../../../../test/testautomation_pixels.c"; sourceTree = ""; }; + 0EF30DB3124B3B5D028B0824 /* testautomation_platform.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testautomation_platform.c"; path = "../../../../../test/testautomation_platform.c"; sourceTree = ""; }; + 2E225D6D5DDA53B001931162 /* testautomation_rect.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testautomation_rect.c"; path = "../../../../../test/testautomation_rect.c"; sourceTree = ""; }; + 3B595BAA102F000579A233E3 /* testautomation_render.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testautomation_render.c"; path = "../../../../../test/testautomation_render.c"; sourceTree = ""; }; + 2A03303E50566A6F41BE45BB /* testautomation_rwops.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testautomation_rwops.c"; path = "../../../../../test/testautomation_rwops.c"; sourceTree = ""; }; + 37B95314610A6D537F426158 /* testautomation_sdltest.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testautomation_sdltest.c"; path = "../../../../../test/testautomation_sdltest.c"; sourceTree = ""; }; + 0F0F47154A363C5A6E776555 /* testautomation_stdlib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testautomation_stdlib.c"; path = "../../../../../test/testautomation_stdlib.c"; sourceTree = ""; }; + 005416F138EE3231543A5963 /* testautomation_suites.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "testautomation_suites.h"; path = "../../../../../test/testautomation_suites.h"; sourceTree = ""; }; + 1E530E1C0EB66747054E5C23 /* testautomation_surface.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testautomation_surface.c"; path = "../../../../../test/testautomation_surface.c"; sourceTree = ""; }; + 042E7203422E745A59252751 /* testautomation_syswm.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testautomation_syswm.c"; path = "../../../../../test/testautomation_syswm.c"; sourceTree = ""; }; + 24935FE831F301295F995943 /* testautomation_timer.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testautomation_timer.c"; path = "../../../../../test/testautomation_timer.c"; sourceTree = ""; }; + 2C59314151B2336963091C60 /* testautomation_video.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testautomation_video.c"; path = "../../../../../test/testautomation_video.c"; sourceTree = ""; }; + 2DE67FE13D66165A7A04470B /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 0AB52670094463062D5755CC /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 64DF76961ABE4DA72D9E04E2 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 3C774CAE5EE71FFD494846EF /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 3A386FA34BC05A6126B415A7 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 40E513B239A31F071FE03CAE /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 233862F97345691508BC1E73 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 0C235FF82C50558D502D598A /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 08B05DEB23887618495A54A0 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 16F069400106487D10103B58 /* testautomation */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testautomation"; path = "testautomation"; sourceTree = BUILT_PRODUCTS_DIR; }; + 560237CD7CB1015846F45D67 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 06C9331D44ED555900FD68F0 /* SDL2test.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2test.xcodeproj"; path = "../../SDL2test/SDL2test.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 5685467763AD30D44F0D6738 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 495043B7648F7EF948345825 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 3D63515F679E516C480A12C4 /* AudioToolbox.framework in Frameworks */, + 601271BD3CC347FE2A663A69 /* AudioUnit.framework in Frameworks */, + 34A9541D705B096D7D690F4F /* Cocoa.framework in Frameworks */, + 2FD8149A2AE46E9B19201372 /* CoreAudio.framework in Frameworks */, + 41C5024F150108A44C1C559F /* IOKit.framework in Frameworks */, + 5FA21AD1355840324F3960FB /* Carbon.framework in Frameworks */, + 35024078077B44D072B14735 /* ForceFeedback.framework in Frameworks */, + 08CE0D33111C4E0404375994 /* CoreFoundation.framework in Frameworks */, + 627C724716B909A0121E2CB8 /* OpenGL.framework in Frameworks */, + 38EC0E7959A650DD7B490359 /* libSDL2main.a in Frameworks */, + 357C072C66D134657A4358AF /* libSDL2test.a in Frameworks */, + 77E3096D6E8B6AFA639C282B /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 271769BD0A515E5D6612478D /* testautomation */ = { + isa = PBXGroup; + children = ( + 254A294842BB285912A60D65 /* test */, + 5CB107F16F12340D4B03546C /* Frameworks */, + 06D2659B5F2A45A211DB4770 /* Products */, + 35591A643EFF76B030C97827 /* Projects */, + ); + name = "testautomation"; + sourceTree = ""; + }; + 254A294842BB285912A60D65 /* test */ = { + isa = PBXGroup; + children = ( + 02F07A70794F4EA017122748 /* testautomation.c */, + 67CE10AB773967E92D9E0809 /* testautomation_audio.c */, + 1724553124845FAC540662B5 /* testautomation_clipboard.c */, + 5ECA243A16E250343A501AE8 /* testautomation_events.c */, + 30E66A5E63077A5E6FDC60A4 /* testautomation_keyboard.c */, + 2A9339AF490178CE2DAE177B /* testautomation_main.c */, + 76962AAE2FBA04BE14B45E7C /* testautomation_mouse.c */, + 41BC3336256712D50AC92E24 /* testautomation_pixels.c */, + 0EF30DB3124B3B5D028B0824 /* testautomation_platform.c */, + 2E225D6D5DDA53B001931162 /* testautomation_rect.c */, + 3B595BAA102F000579A233E3 /* testautomation_render.c */, + 2A03303E50566A6F41BE45BB /* testautomation_rwops.c */, + 37B95314610A6D537F426158 /* testautomation_sdltest.c */, + 0F0F47154A363C5A6E776555 /* testautomation_stdlib.c */, + 005416F138EE3231543A5963 /* testautomation_suites.h */, + 1E530E1C0EB66747054E5C23 /* testautomation_surface.c */, + 042E7203422E745A59252751 /* testautomation_syswm.c */, + 24935FE831F301295F995943 /* testautomation_timer.c */, + 2C59314151B2336963091C60 /* testautomation_video.c */, + ); + name = "test"; + sourceTree = ""; + }; + 5CB107F16F12340D4B03546C /* Frameworks */ = { + isa = PBXGroup; + children = ( + 2DE67FE13D66165A7A04470B /* AudioToolbox.framework */, + 0AB52670094463062D5755CC /* AudioUnit.framework */, + 64DF76961ABE4DA72D9E04E2 /* Cocoa.framework */, + 3C774CAE5EE71FFD494846EF /* CoreAudio.framework */, + 3A386FA34BC05A6126B415A7 /* IOKit.framework */, + 40E513B239A31F071FE03CAE /* Carbon.framework */, + 233862F97345691508BC1E73 /* ForceFeedback.framework */, + 0C235FF82C50558D502D598A /* CoreFoundation.framework */, + 08B05DEB23887618495A54A0 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 06D2659B5F2A45A211DB4770 /* Products */ = { + isa = PBXGroup; + children = ( + 16F069400106487D10103B58 /* testautomation */, + ); + name = "Products"; + sourceTree = ""; + }; + 35591A643EFF76B030C97827 /* Projects */ = { + isa = PBXGroup; + children = ( + 560237CD7CB1015846F45D67 /* SDL2main.xcodeproj */, + 06C9331D44ED555900FD68F0 /* SDL2test.xcodeproj */, + 5685467763AD30D44F0D6738 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 358C06E72FD149F46E83074C /* Products */ = { + isa = PBXGroup; + children = ( + 189655F647DC75E80F9E01B7 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 2CEE788B247B1E6240DE6C83 /* Products */ = { + isa = PBXGroup; + children = ( + 22C35FC727DB2D4E18402504 /* libSDL2test.a */, + ); + name = Products; + sourceTree = ""; + }; + 47676CCD085B1AA613BC1EA3 /* Products */ = { + isa = PBXGroup; + children = ( + 1B5D0C561F7143C763071C12 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 28631DD94B073E08173D5033 /* testautomation */ = { + isa = PBXNativeTarget; + buildConfigurationList = 347D3A952B0D6C0A20D53978 /* Build configuration list for PBXNativeTarget "testautomation" */; + buildPhases = ( + 32D957D9011A042E7D1707EC /* Resources */, + 3242398C52DA0C6017EF77FE /* Sources */, + 495043B7648F7EF948345825 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 6B0B54B601FF376766927C01 /* PBXTargetDependency */, + 372C60A915631FB937262818 /* PBXTargetDependency */, + 01CA05B75DA8650E11D36C56 /* PBXTargetDependency */, + ); + name = "testautomation"; + productInstallPath = "$(HOME)/bin"; + productName = "testautomation"; + productReference = 16F069400106487D10103B58 /* testautomation */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testautomation" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 271769BD0A515E5D6612478D /* testautomation */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 358C06E72FD149F46E83074C /* Products */; + ProjectRef = 560237CD7CB1015846F45D67 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 2CEE788B247B1E6240DE6C83 /* Products */; + ProjectRef = 06C9331D44ED555900FD68F0 /* SDL2test.xcodeproj */; + }, + { + ProductGroup = 47676CCD085B1AA613BC1EA3 /* Products */; + ProjectRef = 5685467763AD30D44F0D6738 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 28631DD94B073E08173D5033 /* testautomation */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 189655F647DC75E80F9E01B7 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 493019283F531FA91F1B5B92 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 22C35FC727DB2D4E18402504 /* libSDL2test.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2test.a"; + remoteRef = 24730DD730B5791B5C937562 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 1B5D0C561F7143C763071C12 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 18113D682F4D016F4F5C5C8E /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 32D957D9011A042E7D1707EC /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 3242398C52DA0C6017EF77FE /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 6C2D1B7F6FD948D813597556 /* testautomation.c in Sources */, + 1D59654F6543146669A50F9D /* testautomation_audio.c in Sources */, + 119E2CF662CD266835173054 /* testautomation_clipboard.c in Sources */, + 1DAA2B7732526697452644E5 /* testautomation_events.c in Sources */, + 350F01AE62D857CB5C6F1FA7 /* testautomation_keyboard.c in Sources */, + 2EA572B7005449BA606066E7 /* testautomation_main.c in Sources */, + 261E2DC767D84AF40AB37EC7 /* testautomation_mouse.c in Sources */, + 51CE3D32297C32F65A570960 /* testautomation_pixels.c in Sources */, + 7AEE2F2B51B41C626A2748EE /* testautomation_platform.c in Sources */, + 4AD378CC324A23C518544AB1 /* testautomation_rect.c in Sources */, + 22C07B6D5566319C22484C40 /* testautomation_render.c in Sources */, + 22D63F1315BE7B28061828AC /* testautomation_rwops.c in Sources */, + 5D4F6F4A03C85B7F74CD4114 /* testautomation_sdltest.c in Sources */, + 31EF4FB440F804510FC824FF /* testautomation_stdlib.c in Sources */, + 7FC9661039A8605D2E5E3DB4 /* testautomation_surface.c in Sources */, + 6C4A7BDB069474E058F60283 /* testautomation_syswm.c in Sources */, + 66F04E054CC476FA421D0BFB /* testautomation_timer.c in Sources */, + 151E1FB5282C10BD6D085EE0 /* testautomation_video.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 6B0B54B601FF376766927C01 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 0EBA708404EF6A35702F41B3 /* PBXContainerItemProxy */; + }; + 372C60A915631FB937262818 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2test.a"; + targetProxy = 199C7651500E075E4F5D76B0 /* PBXContainerItemProxy */; + }; + 01CA05B75DA8650E11D36C56 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 009C23BA2E38797638A507B8 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 5A5F50FB4E5C0F9E647766F5 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testautomation"; + }; + name = "Debug Universal"; + }; + 26C4300A16290B5325976AE5 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testautomation"; + }; + name = "Debug Native"; + }; + 267834F13C13090327EE346A /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testautomation"; + }; + name = "Release Universal"; + }; + 7F37303A34907ED0381D21B2 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testautomation"; + }; + name = "Release Native"; + }; + 79750455726D657C356F47CF /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 63421004112F357B28D5610D /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 2E0953910421209721204718 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 61CD5A4165AE233109A87695 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 347D3A952B0D6C0A20D53978 /* Build configuration list for PBXNativeTarget "testautomation" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 5A5F50FB4E5C0F9E647766F5 /* Debug Universal */, + 26C4300A16290B5325976AE5 /* Debug Native */, + 267834F13C13090327EE346A /* Release Universal */, + 7F37303A34907ED0381D21B2 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testautomation" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 79750455726D657C356F47CF /* Debug Universal */, + 63421004112F357B28D5610D /* Debug Native */, + 2E0953910421209721204718 /* Release Universal */, + 61CD5A4165AE233109A87695 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode4/tests/testchessboard/testchessboard.xcodeproj/project.pbxproj b/premake/Xcode/Xcode4/tests/testchessboard/testchessboard.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..58e659d046e32 --- /dev/null +++ b/premake/Xcode/Xcode4/tests/testchessboard/testchessboard.xcodeproj/project.pbxproj @@ -0,0 +1,455 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 53F17FAF6CB316A2162E49C7 /* testdrawchessboard.c in Sources */ = {isa = PBXBuildFile; fileRef = 7A9F00264EE05DB869A34ECA /* testdrawchessboard.c */; }; + 2F7E1C6158EC7E8018BD3E97 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2210778F7A590F9E59BA7DBD /* AudioToolbox.framework */; }; + 6307663460A8744F6F5E2BEB /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D4F2B1E66207DED00E82547 /* AudioUnit.framework */; }; + 570879872CF272683856288E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 57CA4AB568A953760C3064B7 /* Cocoa.framework */; }; + 69A500AB040B26864CF63AB2 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 02E853780AE27CF768BB0720 /* CoreAudio.framework */; }; + 23F06F0A03A165DE520B0BAE /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 389B00D9419E24B57A9E4CBF /* IOKit.framework */; }; + 1C09222417BD7ED021DB3F2E /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4F95664412B359C466FD04B9 /* Carbon.framework */; }; + 39E116C17A8C12B0681D6EAF /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1B5E3FE55A6A003B5F3D46B5 /* ForceFeedback.framework */; }; + 49D1650A7D2043F2062913F2 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 53BF210E471818C95FA63D8E /* CoreFoundation.framework */; }; + 52A023DF45D46FBA238F3410 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 302E4A8E41447D293C7A76D3 /* OpenGL.framework */; }; + 171E48AD17456CB571CD51AF /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 122076B23B0A3C0261985ECD /* libSDL2main.a */; }; + 1A3C1A8D400921562C4F0D58 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0371077A141C7631256C735F /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 535F0246487315C413FD55EB /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 7563471568DA68AF481042F9 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 0FF7291B375C79BC57696B66; + remoteInfo = "libSDL2main.a"; + }; + 72811C971C42607A11B50EDB /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 7563471568DA68AF481042F9 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1BAE4A0A77462FDC330812A3; + remoteInfo = "libSDL2main.a"; + }; + 14306A0259E90AD3416B7C86 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 5771498F532127BA57AC04B4 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 5E6D56F6655337845A3C44C3; + remoteInfo = "libSDL2.a"; + }; + 72C647FD6C2177CB4D856347 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 5771498F532127BA57AC04B4 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7E6A7BC23CFD134274963645; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 7A9F00264EE05DB869A34ECA /* testdrawchessboard.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testdrawchessboard.c"; path = "../../../../../test/testdrawchessboard.c"; sourceTree = ""; }; + 2210778F7A590F9E59BA7DBD /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 4D4F2B1E66207DED00E82547 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 57CA4AB568A953760C3064B7 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 02E853780AE27CF768BB0720 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 389B00D9419E24B57A9E4CBF /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 4F95664412B359C466FD04B9 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 1B5E3FE55A6A003B5F3D46B5 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 53BF210E471818C95FA63D8E /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 302E4A8E41447D293C7A76D3 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 04D145EC31380AB3127956C9 /* testchessboard */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testchessboard"; path = "testchessboard"; sourceTree = BUILT_PRODUCTS_DIR; }; + 7563471568DA68AF481042F9 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 5771498F532127BA57AC04B4 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 13987AEC3CF32DBF70C26AD2 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 2F7E1C6158EC7E8018BD3E97 /* AudioToolbox.framework in Frameworks */, + 6307663460A8744F6F5E2BEB /* AudioUnit.framework in Frameworks */, + 570879872CF272683856288E /* Cocoa.framework in Frameworks */, + 69A500AB040B26864CF63AB2 /* CoreAudio.framework in Frameworks */, + 23F06F0A03A165DE520B0BAE /* IOKit.framework in Frameworks */, + 1C09222417BD7ED021DB3F2E /* Carbon.framework in Frameworks */, + 39E116C17A8C12B0681D6EAF /* ForceFeedback.framework in Frameworks */, + 49D1650A7D2043F2062913F2 /* CoreFoundation.framework in Frameworks */, + 52A023DF45D46FBA238F3410 /* OpenGL.framework in Frameworks */, + 171E48AD17456CB571CD51AF /* libSDL2main.a in Frameworks */, + 1A3C1A8D400921562C4F0D58 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 00A850F72BE40A941F3173E2 /* testchessboard */ = { + isa = PBXGroup; + children = ( + 36585C8A0940497403995758 /* test */, + 49FE5992130537E550E72B1B /* Frameworks */, + 378F2435169856E21AC52CDA /* Products */, + 3A8A6C0959DB6EBE00956ED3 /* Projects */, + ); + name = "testchessboard"; + sourceTree = ""; + }; + 36585C8A0940497403995758 /* test */ = { + isa = PBXGroup; + children = ( + 7A9F00264EE05DB869A34ECA /* testdrawchessboard.c */, + ); + name = "test"; + sourceTree = ""; + }; + 49FE5992130537E550E72B1B /* Frameworks */ = { + isa = PBXGroup; + children = ( + 2210778F7A590F9E59BA7DBD /* AudioToolbox.framework */, + 4D4F2B1E66207DED00E82547 /* AudioUnit.framework */, + 57CA4AB568A953760C3064B7 /* Cocoa.framework */, + 02E853780AE27CF768BB0720 /* CoreAudio.framework */, + 389B00D9419E24B57A9E4CBF /* IOKit.framework */, + 4F95664412B359C466FD04B9 /* Carbon.framework */, + 1B5E3FE55A6A003B5F3D46B5 /* ForceFeedback.framework */, + 53BF210E471818C95FA63D8E /* CoreFoundation.framework */, + 302E4A8E41447D293C7A76D3 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 378F2435169856E21AC52CDA /* Products */ = { + isa = PBXGroup; + children = ( + 04D145EC31380AB3127956C9 /* testchessboard */, + ); + name = "Products"; + sourceTree = ""; + }; + 3A8A6C0959DB6EBE00956ED3 /* Projects */ = { + isa = PBXGroup; + children = ( + 7563471568DA68AF481042F9 /* SDL2main.xcodeproj */, + 5771498F532127BA57AC04B4 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 29430E2E133E578F03C44A98 /* Products */ = { + isa = PBXGroup; + children = ( + 122076B23B0A3C0261985ECD /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 508F00887E7C22B53BA35B81 /* Products */ = { + isa = PBXGroup; + children = ( + 0371077A141C7631256C735F /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 2D9C67FE7120053A26FF662E /* testchessboard */ = { + isa = PBXNativeTarget; + buildConfigurationList = 30F9557E489C1ECD471B5118 /* Build configuration list for PBXNativeTarget "testchessboard" */; + buildPhases = ( + 3B6901E833B473B65F6D7861 /* Resources */, + 4EC312C07D6038FB25693CD0 /* Sources */, + 13987AEC3CF32DBF70C26AD2 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 076F304D115100CF28FF08A0 /* PBXTargetDependency */, + 6EAE713D020C107255711B24 /* PBXTargetDependency */, + ); + name = "testchessboard"; + productInstallPath = "$(HOME)/bin"; + productName = "testchessboard"; + productReference = 04D145EC31380AB3127956C9 /* testchessboard */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testchessboard" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 00A850F72BE40A941F3173E2 /* testchessboard */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 29430E2E133E578F03C44A98 /* Products */; + ProjectRef = 7563471568DA68AF481042F9 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 508F00887E7C22B53BA35B81 /* Products */; + ProjectRef = 5771498F532127BA57AC04B4 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 2D9C67FE7120053A26FF662E /* testchessboard */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 122076B23B0A3C0261985ECD /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 535F0246487315C413FD55EB /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 0371077A141C7631256C735F /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 14306A0259E90AD3416B7C86 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 3B6901E833B473B65F6D7861 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 4EC312C07D6038FB25693CD0 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 53F17FAF6CB316A2162E49C7 /* testdrawchessboard.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 076F304D115100CF28FF08A0 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 72811C971C42607A11B50EDB /* PBXContainerItemProxy */; + }; + 6EAE713D020C107255711B24 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 72C647FD6C2177CB4D856347 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 3E441F1126857E0D1D0E349C /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testchessboard"; + }; + name = "Debug Universal"; + }; + 0DD548EC2F2140166C4D3970 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testchessboard"; + }; + name = "Debug Native"; + }; + 17103F6541075969282A11D6 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testchessboard"; + }; + name = "Release Universal"; + }; + 32F264C811686FCB349351D8 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testchessboard"; + }; + name = "Release Native"; + }; + 116037FB6F93207436810D2B /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 28495AC4285713AF6FDA6CA6 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 26B837F01BFE62D91B3E03D3 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 43FD26B55A9264CD52253AB2 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 30F9557E489C1ECD471B5118 /* Build configuration list for PBXNativeTarget "testchessboard" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3E441F1126857E0D1D0E349C /* Debug Universal */, + 0DD548EC2F2140166C4D3970 /* Debug Native */, + 17103F6541075969282A11D6 /* Release Universal */, + 32F264C811686FCB349351D8 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testchessboard" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 116037FB6F93207436810D2B /* Debug Universal */, + 28495AC4285713AF6FDA6CA6 /* Debug Native */, + 26B837F01BFE62D91B3E03D3 /* Release Universal */, + 43FD26B55A9264CD52253AB2 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode4/tests/testdraw2/testdraw2.xcodeproj/project.pbxproj b/premake/Xcode/Xcode4/tests/testdraw2/testdraw2.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..ef9d995f0aa5f --- /dev/null +++ b/premake/Xcode/Xcode4/tests/testdraw2/testdraw2.xcodeproj/project.pbxproj @@ -0,0 +1,498 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 10EA2EC1366605703C93729C /* testdraw2.c in Sources */ = {isa = PBXBuildFile; fileRef = 0CA5613719DE5A60091A2DF6 /* testdraw2.c */; }; + 7DB529C61D682D2E5766027D /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 01300C9B4FD2039008F25175 /* AudioToolbox.framework */; }; + 6F871C446E69566E65094356 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 78C76D1658C3074369B42EE7 /* AudioUnit.framework */; }; + 2C3978240D3A5B18221511FC /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73D95AF930D91D94120464E5 /* Cocoa.framework */; }; + 79BF795E46D176DF45CB349F /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4EC032CC17246D2E1C3F1D32 /* CoreAudio.framework */; }; + 17D21CBD4A457F4108382B47 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40B60D081A29348109DE6FAA /* IOKit.framework */; }; + 22B9588669B03BA7107852E8 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 57DA618645BB7EA9118C1EA0 /* Carbon.framework */; }; + 0F9E03063F8138F04EB03EE3 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D6C199F47601F8C2A872874 /* ForceFeedback.framework */; }; + 33C15C7B3EF7568A14611BD2 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2E4F47BF010875A20EF324CD /* CoreFoundation.framework */; }; + 7BA93D54730B6B990D68411B /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 211C65FF6C7B10580D0D6538 /* OpenGL.framework */; }; + 47187D80178F683C640F2BA2 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3A0A13AA1C97217870DE0553 /* libSDL2main.a */; }; + 70591504619E611F3F09751F /* libSDL2test.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 57C167206EE86C725D936D85 /* libSDL2test.a */; }; + 0411230C7BC75083638749C1 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 09992EFB63AE591916385087 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 2438000D62B23F780181552C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 7A1C46DD6656526E346902DA /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 0FF7291B375C79BC57696B66; + remoteInfo = "libSDL2main.a"; + }; + 7BFC15721B6C7A6337F1633A /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 7A1C46DD6656526E346902DA /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1BAE4A0A77462FDC330812A3; + remoteInfo = "libSDL2main.a"; + }; + 1AEA263A383B60A643B06B2B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 33DB1CA13E8E6B620A54428B /* SDL2test.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 1EB6664901BC163F215A4861; + remoteInfo = "libSDL2test.a"; + }; + 6AF43A817EC363E42DAF3F2E /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 33DB1CA13E8E6B620A54428B /* SDL2test.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1258506950476B85239A79A3; + remoteInfo = "libSDL2test.a"; + }; + 2D907E90266F484213D72F44 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 67713D1963734C1D290657C0 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 5E6D56F6655337845A3C44C3; + remoteInfo = "libSDL2.a"; + }; + 33C979D3343A59EC2D120DD9 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 67713D1963734C1D290657C0 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7E6A7BC23CFD134274963645; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 0CA5613719DE5A60091A2DF6 /* testdraw2.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testdraw2.c"; path = "../../../../../test/testdraw2.c"; sourceTree = ""; }; + 01300C9B4FD2039008F25175 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 78C76D1658C3074369B42EE7 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 73D95AF930D91D94120464E5 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 4EC032CC17246D2E1C3F1D32 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 40B60D081A29348109DE6FAA /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 57DA618645BB7EA9118C1EA0 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 2D6C199F47601F8C2A872874 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 2E4F47BF010875A20EF324CD /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 211C65FF6C7B10580D0D6538 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 6E62014B0EFA44001B5A5758 /* testdraw2 */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testdraw2"; path = "testdraw2"; sourceTree = BUILT_PRODUCTS_DIR; }; + 7A1C46DD6656526E346902DA /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 33DB1CA13E8E6B620A54428B /* SDL2test.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2test.xcodeproj"; path = "../../SDL2test/SDL2test.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 67713D1963734C1D290657C0 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 504565580DAB1633030B02ED /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 7DB529C61D682D2E5766027D /* AudioToolbox.framework in Frameworks */, + 6F871C446E69566E65094356 /* AudioUnit.framework in Frameworks */, + 2C3978240D3A5B18221511FC /* Cocoa.framework in Frameworks */, + 79BF795E46D176DF45CB349F /* CoreAudio.framework in Frameworks */, + 17D21CBD4A457F4108382B47 /* IOKit.framework in Frameworks */, + 22B9588669B03BA7107852E8 /* Carbon.framework in Frameworks */, + 0F9E03063F8138F04EB03EE3 /* ForceFeedback.framework in Frameworks */, + 33C15C7B3EF7568A14611BD2 /* CoreFoundation.framework in Frameworks */, + 7BA93D54730B6B990D68411B /* OpenGL.framework in Frameworks */, + 47187D80178F683C640F2BA2 /* libSDL2main.a in Frameworks */, + 70591504619E611F3F09751F /* libSDL2test.a in Frameworks */, + 0411230C7BC75083638749C1 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 21A76DA90E9C538E4E9872DE /* testdraw2 */ = { + isa = PBXGroup; + children = ( + 60321833527F10182845707C /* test */, + 7D1E74ED2C78010706EA738E /* Frameworks */, + 632F40C6159B31452A24298D /* Products */, + 0D515AF329282CDE5D017B37 /* Projects */, + ); + name = "testdraw2"; + sourceTree = ""; + }; + 60321833527F10182845707C /* test */ = { + isa = PBXGroup; + children = ( + 0CA5613719DE5A60091A2DF6 /* testdraw2.c */, + ); + name = "test"; + sourceTree = ""; + }; + 7D1E74ED2C78010706EA738E /* Frameworks */ = { + isa = PBXGroup; + children = ( + 01300C9B4FD2039008F25175 /* AudioToolbox.framework */, + 78C76D1658C3074369B42EE7 /* AudioUnit.framework */, + 73D95AF930D91D94120464E5 /* Cocoa.framework */, + 4EC032CC17246D2E1C3F1D32 /* CoreAudio.framework */, + 40B60D081A29348109DE6FAA /* IOKit.framework */, + 57DA618645BB7EA9118C1EA0 /* Carbon.framework */, + 2D6C199F47601F8C2A872874 /* ForceFeedback.framework */, + 2E4F47BF010875A20EF324CD /* CoreFoundation.framework */, + 211C65FF6C7B10580D0D6538 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 632F40C6159B31452A24298D /* Products */ = { + isa = PBXGroup; + children = ( + 6E62014B0EFA44001B5A5758 /* testdraw2 */, + ); + name = "Products"; + sourceTree = ""; + }; + 0D515AF329282CDE5D017B37 /* Projects */ = { + isa = PBXGroup; + children = ( + 7A1C46DD6656526E346902DA /* SDL2main.xcodeproj */, + 33DB1CA13E8E6B620A54428B /* SDL2test.xcodeproj */, + 67713D1963734C1D290657C0 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 651162A900602989646A77BF /* Products */ = { + isa = PBXGroup; + children = ( + 3A0A13AA1C97217870DE0553 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 78C216CE535B2E94001453A1 /* Products */ = { + isa = PBXGroup; + children = ( + 57C167206EE86C725D936D85 /* libSDL2test.a */, + ); + name = Products; + sourceTree = ""; + }; + 540315DA28A86BA20E7C082C /* Products */ = { + isa = PBXGroup; + children = ( + 09992EFB63AE591916385087 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 759C064A0A084838763730DB /* testdraw2 */ = { + isa = PBXNativeTarget; + buildConfigurationList = 5C5F0B8A2E747D8941032EAC /* Build configuration list for PBXNativeTarget "testdraw2" */; + buildPhases = ( + 2634290A64DE31751724466D /* Resources */, + 24B42F4858F01FE93AEA6EEC /* Sources */, + 504565580DAB1633030B02ED /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 3651275552043CF77CD03D44 /* PBXTargetDependency */, + 09A763C86CA14DEE717A1149 /* PBXTargetDependency */, + 265A7A353D4504B1180B16B6 /* PBXTargetDependency */, + ); + name = "testdraw2"; + productInstallPath = "$(HOME)/bin"; + productName = "testdraw2"; + productReference = 6E62014B0EFA44001B5A5758 /* testdraw2 */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testdraw2" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 21A76DA90E9C538E4E9872DE /* testdraw2 */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 651162A900602989646A77BF /* Products */; + ProjectRef = 7A1C46DD6656526E346902DA /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 78C216CE535B2E94001453A1 /* Products */; + ProjectRef = 33DB1CA13E8E6B620A54428B /* SDL2test.xcodeproj */; + }, + { + ProductGroup = 540315DA28A86BA20E7C082C /* Products */; + ProjectRef = 67713D1963734C1D290657C0 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 759C064A0A084838763730DB /* testdraw2 */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 3A0A13AA1C97217870DE0553 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 2438000D62B23F780181552C /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 57C167206EE86C725D936D85 /* libSDL2test.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2test.a"; + remoteRef = 1AEA263A383B60A643B06B2B /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 09992EFB63AE591916385087 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 2D907E90266F484213D72F44 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 2634290A64DE31751724466D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 24B42F4858F01FE93AEA6EEC /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 10EA2EC1366605703C93729C /* testdraw2.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 3651275552043CF77CD03D44 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 7BFC15721B6C7A6337F1633A /* PBXContainerItemProxy */; + }; + 09A763C86CA14DEE717A1149 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2test.a"; + targetProxy = 6AF43A817EC363E42DAF3F2E /* PBXContainerItemProxy */; + }; + 265A7A353D4504B1180B16B6 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 33C979D3343A59EC2D120DD9 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 47EF595575465B96787F1242 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testdraw2"; + }; + name = "Debug Universal"; + }; + 4B22480F590A352277354AFA /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testdraw2"; + }; + name = "Debug Native"; + }; + 53DA153E45D964A1156538B7 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testdraw2"; + }; + name = "Release Universal"; + }; + 34853651254508A5191B4411 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testdraw2"; + }; + name = "Release Native"; + }; + 6A3406386B9B1608036E3F6D /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 77443E2174F122FE01611B27 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 23634FFB7DB0549515A40066 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 49C945AE34251CFE068D2B2E /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 5C5F0B8A2E747D8941032EAC /* Build configuration list for PBXNativeTarget "testdraw2" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 47EF595575465B96787F1242 /* Debug Universal */, + 4B22480F590A352277354AFA /* Debug Native */, + 53DA153E45D964A1156538B7 /* Release Universal */, + 34853651254508A5191B4411 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testdraw2" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 6A3406386B9B1608036E3F6D /* Debug Universal */, + 77443E2174F122FE01611B27 /* Debug Native */, + 23634FFB7DB0549515A40066 /* Release Universal */, + 49C945AE34251CFE068D2B2E /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode4/tests/testerror/testerror.xcodeproj/project.pbxproj b/premake/Xcode/Xcode4/tests/testerror/testerror.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..a437cae73974d --- /dev/null +++ b/premake/Xcode/Xcode4/tests/testerror/testerror.xcodeproj/project.pbxproj @@ -0,0 +1,455 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 06F8334C4D3B7D0D2098713F /* testerror.c in Sources */ = {isa = PBXBuildFile; fileRef = 575536950DDD598949084500 /* testerror.c */; }; + 007D23D43CD9735E23AD393B /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6E8171FF38B1253019235787 /* AudioToolbox.framework */; }; + 3D513BC728A8556306D92B11 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0CB20CCD23986C5E477355E1 /* AudioUnit.framework */; }; + 56F842B45D443A404DFC715D /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0E6669D26FD26C204D991DF3 /* Cocoa.framework */; }; + 0CF739E97499698E0DA75108 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1FAC5EC44334433D69400880 /* CoreAudio.framework */; }; + 06F54B670D6459C73B523228 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 16290BB1270950C617644AE7 /* IOKit.framework */; }; + 6BC919C453FE7809553D2D37 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 07352FB67724762459A04FAB /* Carbon.framework */; }; + 5D4E4561238C5C625F165CA6 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 028E6BBB623A6A4C38E545BE /* ForceFeedback.framework */; }; + 1013025A1BE44285529C367D /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 16EB3ED47A03649175D02ED0 /* CoreFoundation.framework */; }; + 2DA5484349C946187F6F66BF /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7A732F38155324561AAC3988 /* OpenGL.framework */; }; + 2CFC0F2778007B0C7B512414 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 394F19AB471A3BB728795223 /* libSDL2main.a */; }; + 42C24F9E1D4C7A227ACD5A22 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 127A2DDF4C062E395106148F /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 25DA45D402B749CE73EC12DB /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 6B2D18A114EA247C7A151B3E /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 0FF7291B375C79BC57696B66; + remoteInfo = "libSDL2main.a"; + }; + 7163462134690B8034F747D5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 6B2D18A114EA247C7A151B3E /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1BAE4A0A77462FDC330812A3; + remoteInfo = "libSDL2main.a"; + }; + 7D63714847F7594577B31B76 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 5965104D36B86BFC2CC2048E /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 5E6D56F6655337845A3C44C3; + remoteInfo = "libSDL2.a"; + }; + 6AF51FF07D852D2C37A32FBE /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 5965104D36B86BFC2CC2048E /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7E6A7BC23CFD134274963645; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 575536950DDD598949084500 /* testerror.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testerror.c"; path = "../../../../../test/testerror.c"; sourceTree = ""; }; + 6E8171FF38B1253019235787 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 0CB20CCD23986C5E477355E1 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 0E6669D26FD26C204D991DF3 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 1FAC5EC44334433D69400880 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 16290BB1270950C617644AE7 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 07352FB67724762459A04FAB /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 028E6BBB623A6A4C38E545BE /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 16EB3ED47A03649175D02ED0 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 7A732F38155324561AAC3988 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 75CA5A22024322C432FD0D33 /* testerror */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testerror"; path = "testerror"; sourceTree = BUILT_PRODUCTS_DIR; }; + 6B2D18A114EA247C7A151B3E /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 5965104D36B86BFC2CC2048E /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 7A9F73685BFB78CB5B4070DF /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 007D23D43CD9735E23AD393B /* AudioToolbox.framework in Frameworks */, + 3D513BC728A8556306D92B11 /* AudioUnit.framework in Frameworks */, + 56F842B45D443A404DFC715D /* Cocoa.framework in Frameworks */, + 0CF739E97499698E0DA75108 /* CoreAudio.framework in Frameworks */, + 06F54B670D6459C73B523228 /* IOKit.framework in Frameworks */, + 6BC919C453FE7809553D2D37 /* Carbon.framework in Frameworks */, + 5D4E4561238C5C625F165CA6 /* ForceFeedback.framework in Frameworks */, + 1013025A1BE44285529C367D /* CoreFoundation.framework in Frameworks */, + 2DA5484349C946187F6F66BF /* OpenGL.framework in Frameworks */, + 2CFC0F2778007B0C7B512414 /* libSDL2main.a in Frameworks */, + 42C24F9E1D4C7A227ACD5A22 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 571B32EB79C3137C37CD7BA2 /* testerror */ = { + isa = PBXGroup; + children = ( + 6BF80FDC3D2A431E01A264E4 /* test */, + 794E275E1B6E11312C59088D /* Frameworks */, + 320C37C6542E25AC5DAB1DC2 /* Products */, + 574D0B606B9E6CEE0F2B575A /* Projects */, + ); + name = "testerror"; + sourceTree = ""; + }; + 6BF80FDC3D2A431E01A264E4 /* test */ = { + isa = PBXGroup; + children = ( + 575536950DDD598949084500 /* testerror.c */, + ); + name = "test"; + sourceTree = ""; + }; + 794E275E1B6E11312C59088D /* Frameworks */ = { + isa = PBXGroup; + children = ( + 6E8171FF38B1253019235787 /* AudioToolbox.framework */, + 0CB20CCD23986C5E477355E1 /* AudioUnit.framework */, + 0E6669D26FD26C204D991DF3 /* Cocoa.framework */, + 1FAC5EC44334433D69400880 /* CoreAudio.framework */, + 16290BB1270950C617644AE7 /* IOKit.framework */, + 07352FB67724762459A04FAB /* Carbon.framework */, + 028E6BBB623A6A4C38E545BE /* ForceFeedback.framework */, + 16EB3ED47A03649175D02ED0 /* CoreFoundation.framework */, + 7A732F38155324561AAC3988 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 320C37C6542E25AC5DAB1DC2 /* Products */ = { + isa = PBXGroup; + children = ( + 75CA5A22024322C432FD0D33 /* testerror */, + ); + name = "Products"; + sourceTree = ""; + }; + 574D0B606B9E6CEE0F2B575A /* Projects */ = { + isa = PBXGroup; + children = ( + 6B2D18A114EA247C7A151B3E /* SDL2main.xcodeproj */, + 5965104D36B86BFC2CC2048E /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 0DEF0226168175B349F721CF /* Products */ = { + isa = PBXGroup; + children = ( + 394F19AB471A3BB728795223 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 18915E803B1247607C25758D /* Products */ = { + isa = PBXGroup; + children = ( + 127A2DDF4C062E395106148F /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 38BC4B19002F4D8A5685550A /* testerror */ = { + isa = PBXNativeTarget; + buildConfigurationList = 129667DD5F10220235855F70 /* Build configuration list for PBXNativeTarget "testerror" */; + buildPhases = ( + 51FC314F3EBE35BC56B069B0 /* Resources */, + 46DF69B233D4336C07F50329 /* Sources */, + 7A9F73685BFB78CB5B4070DF /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 101D1EA3681A28D21D95312F /* PBXTargetDependency */, + 00DE2A237CBA390D134002BD /* PBXTargetDependency */, + ); + name = "testerror"; + productInstallPath = "$(HOME)/bin"; + productName = "testerror"; + productReference = 75CA5A22024322C432FD0D33 /* testerror */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testerror" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 571B32EB79C3137C37CD7BA2 /* testerror */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 0DEF0226168175B349F721CF /* Products */; + ProjectRef = 6B2D18A114EA247C7A151B3E /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 18915E803B1247607C25758D /* Products */; + ProjectRef = 5965104D36B86BFC2CC2048E /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 38BC4B19002F4D8A5685550A /* testerror */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 394F19AB471A3BB728795223 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 25DA45D402B749CE73EC12DB /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 127A2DDF4C062E395106148F /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 7D63714847F7594577B31B76 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 51FC314F3EBE35BC56B069B0 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 46DF69B233D4336C07F50329 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 06F8334C4D3B7D0D2098713F /* testerror.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 101D1EA3681A28D21D95312F /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 7163462134690B8034F747D5 /* PBXContainerItemProxy */; + }; + 00DE2A237CBA390D134002BD /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 6AF51FF07D852D2C37A32FBE /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 689F21395BDD121928B26E9B /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testerror"; + }; + name = "Debug Universal"; + }; + 77671C1213351ECE7CF9577D /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testerror"; + }; + name = "Debug Native"; + }; + 5EEF39F8539C404C7AFE3E4A /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testerror"; + }; + name = "Release Universal"; + }; + 15A26F7F31EC33AD614C020D /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testerror"; + }; + name = "Release Native"; + }; + 34033F4F12B34AA1440E2D04 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 6FD0465F2E91638136DD6D50 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 72317FE342AB26F2742209A4 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 242A6DBD460B09844FB92AF2 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 129667DD5F10220235855F70 /* Build configuration list for PBXNativeTarget "testerror" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 689F21395BDD121928B26E9B /* Debug Universal */, + 77671C1213351ECE7CF9577D /* Debug Native */, + 5EEF39F8539C404C7AFE3E4A /* Release Universal */, + 15A26F7F31EC33AD614C020D /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testerror" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 34033F4F12B34AA1440E2D04 /* Debug Universal */, + 6FD0465F2E91638136DD6D50 /* Debug Native */, + 72317FE342AB26F2742209A4 /* Release Universal */, + 242A6DBD460B09844FB92AF2 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode4/tests/testfile/testfile.xcodeproj/project.pbxproj b/premake/Xcode/Xcode4/tests/testfile/testfile.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..87e4b8270c807 --- /dev/null +++ b/premake/Xcode/Xcode4/tests/testfile/testfile.xcodeproj/project.pbxproj @@ -0,0 +1,455 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 06055DF25A4832B523E519B2 /* testfile.c in Sources */ = {isa = PBXBuildFile; fileRef = 3EFE3DDE6912420D7A1578CD /* testfile.c */; }; + 054C62F554A660A925DF0C62 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 098E080C670E074156D3693A /* AudioToolbox.framework */; }; + 01D835206EC0046732D77FDF /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 177463786BA73D7A29AC7B5A /* AudioUnit.framework */; }; + 369E7B99321F159179237DDD /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3EED43B264027CE94ED504EC /* Cocoa.framework */; }; + 1FD85D6F5D0D33613E5228D5 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 594605B7695102AC12067F0C /* CoreAudio.framework */; }; + 6FBC491B25085CC511360396 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 51CB6C9B64FC62743F0D2C1C /* IOKit.framework */; }; + 3AD058507CF54794492D4C70 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0FA536890D2246045B7317FA /* Carbon.framework */; }; + 7AF04448633348077DF9742A /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7AB062102B1844553EEC03C5 /* ForceFeedback.framework */; }; + 561B3C9E30F277ED009169DC /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7FAA1D0C31BE485A171A5396 /* CoreFoundation.framework */; }; + 71011B577B1E16BD6615224D /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 29612F383ADA79EB58F4334A /* OpenGL.framework */; }; + 39BB36E86BF94E331A5C4CB1 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4ECD19EE7F4A76FA2A4660F0 /* libSDL2main.a */; }; + 0381174D01BB52CE6FD25A1C /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 38DA20E06D671A4407BA7958 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 4DE83F7B56A045333BD11D98 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0A481A29223B0BA3123E299A /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 0FF7291B375C79BC57696B66; + remoteInfo = "libSDL2main.a"; + }; + 1FAB1ACA72CD15D554574E6E /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0A481A29223B0BA3123E299A /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1BAE4A0A77462FDC330812A3; + remoteInfo = "libSDL2main.a"; + }; + 57D644B23A9862F5683A657A /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 2273368C5D9F07AC44EE7F3F /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 5E6D56F6655337845A3C44C3; + remoteInfo = "libSDL2.a"; + }; + 2DC36FA5536946D4300348F7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 2273368C5D9F07AC44EE7F3F /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7E6A7BC23CFD134274963645; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 3EFE3DDE6912420D7A1578CD /* testfile.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testfile.c"; path = "../../../../../test/testfile.c"; sourceTree = ""; }; + 098E080C670E074156D3693A /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 177463786BA73D7A29AC7B5A /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 3EED43B264027CE94ED504EC /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 594605B7695102AC12067F0C /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 51CB6C9B64FC62743F0D2C1C /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 0FA536890D2246045B7317FA /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 7AB062102B1844553EEC03C5 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 7FAA1D0C31BE485A171A5396 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 29612F383ADA79EB58F4334A /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 7D59643C433573247ACA0E73 /* testfile */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testfile"; path = "testfile"; sourceTree = BUILT_PRODUCTS_DIR; }; + 0A481A29223B0BA3123E299A /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 2273368C5D9F07AC44EE7F3F /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 797912EC486F2C5733CA28E6 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 054C62F554A660A925DF0C62 /* AudioToolbox.framework in Frameworks */, + 01D835206EC0046732D77FDF /* AudioUnit.framework in Frameworks */, + 369E7B99321F159179237DDD /* Cocoa.framework in Frameworks */, + 1FD85D6F5D0D33613E5228D5 /* CoreAudio.framework in Frameworks */, + 6FBC491B25085CC511360396 /* IOKit.framework in Frameworks */, + 3AD058507CF54794492D4C70 /* Carbon.framework in Frameworks */, + 7AF04448633348077DF9742A /* ForceFeedback.framework in Frameworks */, + 561B3C9E30F277ED009169DC /* CoreFoundation.framework in Frameworks */, + 71011B577B1E16BD6615224D /* OpenGL.framework in Frameworks */, + 39BB36E86BF94E331A5C4CB1 /* libSDL2main.a in Frameworks */, + 0381174D01BB52CE6FD25A1C /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 2DDD426E63847FB203063CB4 /* testfile */ = { + isa = PBXGroup; + children = ( + 65FB59544837238048E9425A /* test */, + 26DD1D45216A6360745E6E60 /* Frameworks */, + 12AA67EB240637A5417A6E3A /* Products */, + 23DF3D3A2DCF728C7D3147E8 /* Projects */, + ); + name = "testfile"; + sourceTree = ""; + }; + 65FB59544837238048E9425A /* test */ = { + isa = PBXGroup; + children = ( + 3EFE3DDE6912420D7A1578CD /* testfile.c */, + ); + name = "test"; + sourceTree = ""; + }; + 26DD1D45216A6360745E6E60 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 098E080C670E074156D3693A /* AudioToolbox.framework */, + 177463786BA73D7A29AC7B5A /* AudioUnit.framework */, + 3EED43B264027CE94ED504EC /* Cocoa.framework */, + 594605B7695102AC12067F0C /* CoreAudio.framework */, + 51CB6C9B64FC62743F0D2C1C /* IOKit.framework */, + 0FA536890D2246045B7317FA /* Carbon.framework */, + 7AB062102B1844553EEC03C5 /* ForceFeedback.framework */, + 7FAA1D0C31BE485A171A5396 /* CoreFoundation.framework */, + 29612F383ADA79EB58F4334A /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 12AA67EB240637A5417A6E3A /* Products */ = { + isa = PBXGroup; + children = ( + 7D59643C433573247ACA0E73 /* testfile */, + ); + name = "Products"; + sourceTree = ""; + }; + 23DF3D3A2DCF728C7D3147E8 /* Projects */ = { + isa = PBXGroup; + children = ( + 0A481A29223B0BA3123E299A /* SDL2main.xcodeproj */, + 2273368C5D9F07AC44EE7F3F /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 33C77AE76AAB027C261B4849 /* Products */ = { + isa = PBXGroup; + children = ( + 4ECD19EE7F4A76FA2A4660F0 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 53F10DAC309E781B6C580949 /* Products */ = { + isa = PBXGroup; + children = ( + 38DA20E06D671A4407BA7958 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 601330DC45043FC5356E4B29 /* testfile */ = { + isa = PBXNativeTarget; + buildConfigurationList = 7316560C6DAC59E75FB42DC7 /* Build configuration list for PBXNativeTarget "testfile" */; + buildPhases = ( + 1D195EB165D93A4E692A4E89 /* Resources */, + 057C478A38BE6A563AC10C0E /* Sources */, + 797912EC486F2C5733CA28E6 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 341018B26EEF3E6E4AF25BA9 /* PBXTargetDependency */, + 6D333C4B791776B774FA63F4 /* PBXTargetDependency */, + ); + name = "testfile"; + productInstallPath = "$(HOME)/bin"; + productName = "testfile"; + productReference = 7D59643C433573247ACA0E73 /* testfile */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testfile" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 2DDD426E63847FB203063CB4 /* testfile */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 33C77AE76AAB027C261B4849 /* Products */; + ProjectRef = 0A481A29223B0BA3123E299A /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 53F10DAC309E781B6C580949 /* Products */; + ProjectRef = 2273368C5D9F07AC44EE7F3F /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 601330DC45043FC5356E4B29 /* testfile */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 4ECD19EE7F4A76FA2A4660F0 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 4DE83F7B56A045333BD11D98 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 38DA20E06D671A4407BA7958 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 57D644B23A9862F5683A657A /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 1D195EB165D93A4E692A4E89 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 057C478A38BE6A563AC10C0E /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 06055DF25A4832B523E519B2 /* testfile.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 341018B26EEF3E6E4AF25BA9 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 1FAB1ACA72CD15D554574E6E /* PBXContainerItemProxy */; + }; + 6D333C4B791776B774FA63F4 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 2DC36FA5536946D4300348F7 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 3C2E260D34E54B2444156E77 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testfile"; + }; + name = "Debug Universal"; + }; + 1F424CBB0901425C54AF63E5 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testfile"; + }; + name = "Debug Native"; + }; + 76F560316C3403F77B301E22 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testfile"; + }; + name = "Release Universal"; + }; + 3DAD38AC587713FE1C55146C /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testfile"; + }; + name = "Release Native"; + }; + 719E48E62EE4324772103829 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 54241D5961C22DD6643639DB /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 6FB824C25FC316EF5CD00C88 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 597A73B46A7873AC58D45F2D /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 7316560C6DAC59E75FB42DC7 /* Build configuration list for PBXNativeTarget "testfile" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3C2E260D34E54B2444156E77 /* Debug Universal */, + 1F424CBB0901425C54AF63E5 /* Debug Native */, + 76F560316C3403F77B301E22 /* Release Universal */, + 3DAD38AC587713FE1C55146C /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testfile" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 719E48E62EE4324772103829 /* Debug Universal */, + 54241D5961C22DD6643639DB /* Debug Native */, + 6FB824C25FC316EF5CD00C88 /* Release Universal */, + 597A73B46A7873AC58D45F2D /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode4/tests/testfilesystem/testfilesystem.xcodeproj/project.pbxproj b/premake/Xcode/Xcode4/tests/testfilesystem/testfilesystem.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..268ddb793fe13 --- /dev/null +++ b/premake/Xcode/Xcode4/tests/testfilesystem/testfilesystem.xcodeproj/project.pbxproj @@ -0,0 +1,455 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 542D0843277C5761463E1641 /* testfilesystem.c in Sources */ = {isa = PBXBuildFile; fileRef = 19383D261E7C7DDD72934761 /* testfilesystem.c */; }; + 48A575560C39763339D20F5E /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 16933BB10707658448D07838 /* AudioToolbox.framework */; }; + 23613B9021CB3B9563577823 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 059A716B389A47C0206D066E /* AudioUnit.framework */; }; + 3DC8448939065CC930704575 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 79994FC93930223151DC4634 /* Cocoa.framework */; }; + 29986B25588F4F8A7A550E6D /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 23DE4BC30FFD43302C6523B4 /* CoreAudio.framework */; }; + 44FF00B5143A28417A3D769C /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3D3F33E924DF60FF36A60494 /* IOKit.framework */; }; + 18F73FDD63E2208B113B6BB9 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 15DF6F975CB3775B2F3B0998 /* Carbon.framework */; }; + 24F15ADF225533E9197F12B7 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 47FE22E4397B62A1714A4AF9 /* ForceFeedback.framework */; }; + 45AC3E91409C730F0E6D2EDE /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43A608227BC95CAB7BB4671F /* CoreFoundation.framework */; }; + 4A6B44CA5DC815451CAD3F45 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 27F42A26259B0B030C3D215C /* OpenGL.framework */; }; + 46124EE7538B7C3123B13D0C /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0F45024C0CCA3D6B56085138 /* libSDL2main.a */; }; + 3F1D218E1A9B39B813B41DDB /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A3C038D5CB50A6B1FB9588F /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 149A208861B61E5E5AD25220 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 5E533149357950AE5914458E /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 0FF7291B375C79BC57696B66; + remoteInfo = "libSDL2main.a"; + }; + 6AC613431F59305338EA0D19 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 5E533149357950AE5914458E /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1BAE4A0A77462FDC330812A3; + remoteInfo = "libSDL2main.a"; + }; + 3F82068A076C59DA1E286BC0 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 68DA4DB7486A506123D86AA9 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 5E6D56F6655337845A3C44C3; + remoteInfo = "libSDL2.a"; + }; + 3B33177258BC26F33A3729EA /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 68DA4DB7486A506123D86AA9 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7E6A7BC23CFD134274963645; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 19383D261E7C7DDD72934761 /* testfilesystem.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testfilesystem.c"; path = "../../../../../test/testfilesystem.c"; sourceTree = ""; }; + 16933BB10707658448D07838 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 059A716B389A47C0206D066E /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 79994FC93930223151DC4634 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 23DE4BC30FFD43302C6523B4 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 3D3F33E924DF60FF36A60494 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 15DF6F975CB3775B2F3B0998 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 47FE22E4397B62A1714A4AF9 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 43A608227BC95CAB7BB4671F /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 27F42A26259B0B030C3D215C /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 5F400B390B564255729347F6 /* testfilesystem */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testfilesystem"; path = "testfilesystem"; sourceTree = BUILT_PRODUCTS_DIR; }; + 5E533149357950AE5914458E /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 68DA4DB7486A506123D86AA9 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 403E4E217E1C741D46085D32 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 48A575560C39763339D20F5E /* AudioToolbox.framework in Frameworks */, + 23613B9021CB3B9563577823 /* AudioUnit.framework in Frameworks */, + 3DC8448939065CC930704575 /* Cocoa.framework in Frameworks */, + 29986B25588F4F8A7A550E6D /* CoreAudio.framework in Frameworks */, + 44FF00B5143A28417A3D769C /* IOKit.framework in Frameworks */, + 18F73FDD63E2208B113B6BB9 /* Carbon.framework in Frameworks */, + 24F15ADF225533E9197F12B7 /* ForceFeedback.framework in Frameworks */, + 45AC3E91409C730F0E6D2EDE /* CoreFoundation.framework in Frameworks */, + 4A6B44CA5DC815451CAD3F45 /* OpenGL.framework in Frameworks */, + 46124EE7538B7C3123B13D0C /* libSDL2main.a in Frameworks */, + 3F1D218E1A9B39B813B41DDB /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 170304D27C0A765010527B9F /* testfilesystem */ = { + isa = PBXGroup; + children = ( + 1D9E28030ECB3D0C7A083D78 /* test */, + 099667962ED420EA7F100D7F /* Frameworks */, + 4FD62AFF4ED6586A49A052CA /* Products */, + 05D117E428CC7B612D965769 /* Projects */, + ); + name = "testfilesystem"; + sourceTree = ""; + }; + 1D9E28030ECB3D0C7A083D78 /* test */ = { + isa = PBXGroup; + children = ( + 19383D261E7C7DDD72934761 /* testfilesystem.c */, + ); + name = "test"; + sourceTree = ""; + }; + 099667962ED420EA7F100D7F /* Frameworks */ = { + isa = PBXGroup; + children = ( + 16933BB10707658448D07838 /* AudioToolbox.framework */, + 059A716B389A47C0206D066E /* AudioUnit.framework */, + 79994FC93930223151DC4634 /* Cocoa.framework */, + 23DE4BC30FFD43302C6523B4 /* CoreAudio.framework */, + 3D3F33E924DF60FF36A60494 /* IOKit.framework */, + 15DF6F975CB3775B2F3B0998 /* Carbon.framework */, + 47FE22E4397B62A1714A4AF9 /* ForceFeedback.framework */, + 43A608227BC95CAB7BB4671F /* CoreFoundation.framework */, + 27F42A26259B0B030C3D215C /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 4FD62AFF4ED6586A49A052CA /* Products */ = { + isa = PBXGroup; + children = ( + 5F400B390B564255729347F6 /* testfilesystem */, + ); + name = "Products"; + sourceTree = ""; + }; + 05D117E428CC7B612D965769 /* Projects */ = { + isa = PBXGroup; + children = ( + 5E533149357950AE5914458E /* SDL2main.xcodeproj */, + 68DA4DB7486A506123D86AA9 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 702918C21BB85A7F4BCA3F94 /* Products */ = { + isa = PBXGroup; + children = ( + 0F45024C0CCA3D6B56085138 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 46FE775B0BFD38D61F425D44 /* Products */ = { + isa = PBXGroup; + children = ( + 0A3C038D5CB50A6B1FB9588F /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 68B547AF6EF613D329BE34D3 /* testfilesystem */ = { + isa = PBXNativeTarget; + buildConfigurationList = 3507616A255D283C0D806752 /* Build configuration list for PBXNativeTarget "testfilesystem" */; + buildPhases = ( + 67410E2B2F511A6E5A6F409B /* Resources */, + 3988363B7CCA6F5151A72BFA /* Sources */, + 403E4E217E1C741D46085D32 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 205A7DC04BC2669148D26943 /* PBXTargetDependency */, + 47E749AF206848E47A2B5B3B /* PBXTargetDependency */, + ); + name = "testfilesystem"; + productInstallPath = "$(HOME)/bin"; + productName = "testfilesystem"; + productReference = 5F400B390B564255729347F6 /* testfilesystem */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testfilesystem" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 170304D27C0A765010527B9F /* testfilesystem */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 702918C21BB85A7F4BCA3F94 /* Products */; + ProjectRef = 5E533149357950AE5914458E /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 46FE775B0BFD38D61F425D44 /* Products */; + ProjectRef = 68DA4DB7486A506123D86AA9 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 68B547AF6EF613D329BE34D3 /* testfilesystem */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 0F45024C0CCA3D6B56085138 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 149A208861B61E5E5AD25220 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 0A3C038D5CB50A6B1FB9588F /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 3F82068A076C59DA1E286BC0 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 67410E2B2F511A6E5A6F409B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 3988363B7CCA6F5151A72BFA /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 542D0843277C5761463E1641 /* testfilesystem.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 205A7DC04BC2669148D26943 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 6AC613431F59305338EA0D19 /* PBXContainerItemProxy */; + }; + 47E749AF206848E47A2B5B3B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 3B33177258BC26F33A3729EA /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 3B094C7747270E2329580893 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testfilesystem"; + }; + name = "Debug Universal"; + }; + 5B67524C1BFF261603BB212A /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testfilesystem"; + }; + name = "Debug Native"; + }; + 0F257B1E779D173C0F9866D9 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testfilesystem"; + }; + name = "Release Universal"; + }; + 6AFB10A43B5572244ECF2D67 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testfilesystem"; + }; + name = "Release Native"; + }; + 79E34F49025759AC2F191380 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 7F580FEA569A410767C001D0 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 665154276D2145713D7E1EE5 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 77B80CD311163E726F757B02 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 3507616A255D283C0D806752 /* Build configuration list for PBXNativeTarget "testfilesystem" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3B094C7747270E2329580893 /* Debug Universal */, + 5B67524C1BFF261603BB212A /* Debug Native */, + 0F257B1E779D173C0F9866D9 /* Release Universal */, + 6AFB10A43B5572244ECF2D67 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testfilesystem" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 79E34F49025759AC2F191380 /* Debug Universal */, + 7F580FEA569A410767C001D0 /* Debug Native */, + 665154276D2145713D7E1EE5 /* Release Universal */, + 77B80CD311163E726F757B02 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode4/tests/testgamecontroller/testgamecontroller.xcodeproj/project.pbxproj b/premake/Xcode/Xcode4/tests/testgamecontroller/testgamecontroller.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..18d686129c5e2 --- /dev/null +++ b/premake/Xcode/Xcode4/tests/testgamecontroller/testgamecontroller.xcodeproj/project.pbxproj @@ -0,0 +1,455 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 59AD1EAF01EC6AEB1C7B5074 /* testgamecontroller.c in Sources */ = {isa = PBXBuildFile; fileRef = 48F355B62CA92CD960274AC1 /* testgamecontroller.c */; }; + 565F3431259112804AA32F99 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 639F1AD07BC614055E4B4BEF /* AudioToolbox.framework */; }; + 67CA2BDD6A8427EA0FFD477D /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7774150327CE5B4341311BA2 /* AudioUnit.framework */; }; + 001B0178066014ED54BB7624 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 15C56C9162624511738950C4 /* Cocoa.framework */; }; + 7CDF4E4316217800025F2FC2 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 70974CCE092D75E31B6659C4 /* CoreAudio.framework */; }; + 01AA68493002010C71842908 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00267C710FC1666C58AC1600 /* IOKit.framework */; }; + 0DF9622C522326C973225ECB /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 74B20CD506C43F592B6A4131 /* Carbon.framework */; }; + 0C1C3C646C933C042DB3554D /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7560112E76563F017A354A97 /* ForceFeedback.framework */; }; + 6A6118D426B12FA30FA73D70 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 422B1BF2412116DE6F2D7ECF /* CoreFoundation.framework */; }; + 4EA62A4A072542AE528A7116 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40EF30E9301B6096308E73FC /* OpenGL.framework */; }; + 5C59016854B35296046D46E3 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 027574146203476B541C0127 /* libSDL2main.a */; }; + 711722C97B6C14AF751C3447 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 17EF57FF6417423C2AE144CD /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 78836EE2654D23445E1A0CB0 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 5CDE76704306652C66C6757D /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 0FF7291B375C79BC57696B66; + remoteInfo = "libSDL2main.a"; + }; + 085B22E10005062E75451D34 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 5CDE76704306652C66C6757D /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1BAE4A0A77462FDC330812A3; + remoteInfo = "libSDL2main.a"; + }; + 7E6D286F30E32A114225393C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 6F9E23337C115CE22C5C036F /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 5E6D56F6655337845A3C44C3; + remoteInfo = "libSDL2.a"; + }; + 3D175864491D1E04458F4B6B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 6F9E23337C115CE22C5C036F /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7E6A7BC23CFD134274963645; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 48F355B62CA92CD960274AC1 /* testgamecontroller.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testgamecontroller.c"; path = "../../../../../test/testgamecontroller.c"; sourceTree = ""; }; + 639F1AD07BC614055E4B4BEF /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 7774150327CE5B4341311BA2 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 15C56C9162624511738950C4 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 70974CCE092D75E31B6659C4 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 00267C710FC1666C58AC1600 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 74B20CD506C43F592B6A4131 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 7560112E76563F017A354A97 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 422B1BF2412116DE6F2D7ECF /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 40EF30E9301B6096308E73FC /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 567D61E243EB387F4FDB388A /* testgamecontroller */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testgamecontroller"; path = "testgamecontroller"; sourceTree = BUILT_PRODUCTS_DIR; }; + 5CDE76704306652C66C6757D /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 6F9E23337C115CE22C5C036F /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 473B1FDA5EE866B04B5F71BD /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 565F3431259112804AA32F99 /* AudioToolbox.framework in Frameworks */, + 67CA2BDD6A8427EA0FFD477D /* AudioUnit.framework in Frameworks */, + 001B0178066014ED54BB7624 /* Cocoa.framework in Frameworks */, + 7CDF4E4316217800025F2FC2 /* CoreAudio.framework in Frameworks */, + 01AA68493002010C71842908 /* IOKit.framework in Frameworks */, + 0DF9622C522326C973225ECB /* Carbon.framework in Frameworks */, + 0C1C3C646C933C042DB3554D /* ForceFeedback.framework in Frameworks */, + 6A6118D426B12FA30FA73D70 /* CoreFoundation.framework in Frameworks */, + 4EA62A4A072542AE528A7116 /* OpenGL.framework in Frameworks */, + 5C59016854B35296046D46E3 /* libSDL2main.a in Frameworks */, + 711722C97B6C14AF751C3447 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 063100B04D77549E6A9F1112 /* testgamecontroller */ = { + isa = PBXGroup; + children = ( + 3EA955B63CF038EF091222E8 /* test */, + 789F24162918123450CF4B74 /* Frameworks */, + 7A49721B04EA5855508368C9 /* Products */, + 0250726E45B86DD8261538F8 /* Projects */, + ); + name = "testgamecontroller"; + sourceTree = ""; + }; + 3EA955B63CF038EF091222E8 /* test */ = { + isa = PBXGroup; + children = ( + 48F355B62CA92CD960274AC1 /* testgamecontroller.c */, + ); + name = "test"; + sourceTree = ""; + }; + 789F24162918123450CF4B74 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 639F1AD07BC614055E4B4BEF /* AudioToolbox.framework */, + 7774150327CE5B4341311BA2 /* AudioUnit.framework */, + 15C56C9162624511738950C4 /* Cocoa.framework */, + 70974CCE092D75E31B6659C4 /* CoreAudio.framework */, + 00267C710FC1666C58AC1600 /* IOKit.framework */, + 74B20CD506C43F592B6A4131 /* Carbon.framework */, + 7560112E76563F017A354A97 /* ForceFeedback.framework */, + 422B1BF2412116DE6F2D7ECF /* CoreFoundation.framework */, + 40EF30E9301B6096308E73FC /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 7A49721B04EA5855508368C9 /* Products */ = { + isa = PBXGroup; + children = ( + 567D61E243EB387F4FDB388A /* testgamecontroller */, + ); + name = "Products"; + sourceTree = ""; + }; + 0250726E45B86DD8261538F8 /* Projects */ = { + isa = PBXGroup; + children = ( + 5CDE76704306652C66C6757D /* SDL2main.xcodeproj */, + 6F9E23337C115CE22C5C036F /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 08767CDD2DA222DE36584C82 /* Products */ = { + isa = PBXGroup; + children = ( + 027574146203476B541C0127 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 33E47EDE42C32D6347BD7088 /* Products */ = { + isa = PBXGroup; + children = ( + 17EF57FF6417423C2AE144CD /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 7B3032395DA51920424A258D /* testgamecontroller */ = { + isa = PBXNativeTarget; + buildConfigurationList = 2B550415327F3FCB3EF824AC /* Build configuration list for PBXNativeTarget "testgamecontroller" */; + buildPhases = ( + 397953C5567E7D2048DD2FAF /* Resources */, + 13E941C92B555CA163AD7DCB /* Sources */, + 473B1FDA5EE866B04B5F71BD /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 475149D56CFA4036302A4202 /* PBXTargetDependency */, + 1A2B35F31041572804F92BB3 /* PBXTargetDependency */, + ); + name = "testgamecontroller"; + productInstallPath = "$(HOME)/bin"; + productName = "testgamecontroller"; + productReference = 567D61E243EB387F4FDB388A /* testgamecontroller */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testgamecontroller" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 063100B04D77549E6A9F1112 /* testgamecontroller */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 08767CDD2DA222DE36584C82 /* Products */; + ProjectRef = 5CDE76704306652C66C6757D /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 33E47EDE42C32D6347BD7088 /* Products */; + ProjectRef = 6F9E23337C115CE22C5C036F /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 7B3032395DA51920424A258D /* testgamecontroller */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 027574146203476B541C0127 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 78836EE2654D23445E1A0CB0 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 17EF57FF6417423C2AE144CD /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 7E6D286F30E32A114225393C /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 397953C5567E7D2048DD2FAF /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 13E941C92B555CA163AD7DCB /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 59AD1EAF01EC6AEB1C7B5074 /* testgamecontroller.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 475149D56CFA4036302A4202 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 085B22E10005062E75451D34 /* PBXContainerItemProxy */; + }; + 1A2B35F31041572804F92BB3 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 3D175864491D1E04458F4B6B /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 6FA35D3D7B0A73C6698A0408 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testgamecontroller"; + }; + name = "Debug Universal"; + }; + 4D804E61624543AF39A5003F /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testgamecontroller"; + }; + name = "Debug Native"; + }; + 339937CD35543FEA59C141E8 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testgamecontroller"; + }; + name = "Release Universal"; + }; + 5E0928A929C2154035565034 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testgamecontroller"; + }; + name = "Release Native"; + }; + 31BC3603012209364D2826C1 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 4C625A152EE955F75FDC052C /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 180C43BC1D4944DB1279702A /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 3DE24EE2789D4BDD49E441F0 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 2B550415327F3FCB3EF824AC /* Build configuration list for PBXNativeTarget "testgamecontroller" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 6FA35D3D7B0A73C6698A0408 /* Debug Universal */, + 4D804E61624543AF39A5003F /* Debug Native */, + 339937CD35543FEA59C141E8 /* Release Universal */, + 5E0928A929C2154035565034 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testgamecontroller" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 31BC3603012209364D2826C1 /* Debug Universal */, + 4C625A152EE955F75FDC052C /* Debug Native */, + 180C43BC1D4944DB1279702A /* Release Universal */, + 3DE24EE2789D4BDD49E441F0 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode4/tests/testgesture/testgesture.xcodeproj/project.pbxproj b/premake/Xcode/Xcode4/tests/testgesture/testgesture.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..00db4429376f8 --- /dev/null +++ b/premake/Xcode/Xcode4/tests/testgesture/testgesture.xcodeproj/project.pbxproj @@ -0,0 +1,455 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 7F2646064E07693268BB663E /* testgesture.c in Sources */ = {isa = PBXBuildFile; fileRef = 45F239484034303C5F6D2B63 /* testgesture.c */; }; + 3E2F057A13197E857A556D8F /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3182640513961B7751467F1C /* AudioToolbox.framework */; }; + 27874E3A79871D2A31350FB3 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4BCB1EA2426110E4141B3A39 /* AudioUnit.framework */; }; + 04672EED0A5A2BBA4A99213F /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 69A55EFD5D976CCE6454697A /* Cocoa.framework */; }; + 67842EB1747D695240C55232 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 404C68025B6435340F6C0644 /* CoreAudio.framework */; }; + 17CF41A54DDC2A847E593D5E /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 78D711646B8310C841264C30 /* IOKit.framework */; }; + 282535315DBA11D0062175F9 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1BD76F3F37EB3C0B104B356D /* Carbon.framework */; }; + 01150C0344D721B722512D0D /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C8C23E069BD7CFB5A6416F6 /* ForceFeedback.framework */; }; + 780D40945E486C1E61F349F8 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3C856BF13E2F118A31F63FDD /* CoreFoundation.framework */; }; + 0BF93911456A4CD363B8068B /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C962D4C146E60FF2B000F54 /* OpenGL.framework */; }; + 7808007B4CA1040E5FA57F65 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 528E7D3F63CE6DCA20FA02AA /* libSDL2main.a */; }; + 3D85050716D05CC44E796CAD /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3FF375BB600D07591A5E2E06 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 209C70BF32E1778601AF2D24 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 643C35A707E76E8D0F197045 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 0FF7291B375C79BC57696B66; + remoteInfo = "libSDL2main.a"; + }; + 397959DD79CF0A487F925D3C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 643C35A707E76E8D0F197045 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1BAE4A0A77462FDC330812A3; + remoteInfo = "libSDL2main.a"; + }; + 433D6C094E1176D805443C4C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 64ED1E0B19066DA36CBF0ACF /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 5E6D56F6655337845A3C44C3; + remoteInfo = "libSDL2.a"; + }; + 27F76BFC195C780B4D2C0753 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 64ED1E0B19066DA36CBF0ACF /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7E6A7BC23CFD134274963645; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 45F239484034303C5F6D2B63 /* testgesture.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testgesture.c"; path = "../../../../../test/testgesture.c"; sourceTree = ""; }; + 3182640513961B7751467F1C /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 4BCB1EA2426110E4141B3A39 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 69A55EFD5D976CCE6454697A /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 404C68025B6435340F6C0644 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 78D711646B8310C841264C30 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 1BD76F3F37EB3C0B104B356D /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 5C8C23E069BD7CFB5A6416F6 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 3C856BF13E2F118A31F63FDD /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 4C962D4C146E60FF2B000F54 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 25894A1C1CD23C9C503E198D /* testgesture */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testgesture"; path = "testgesture"; sourceTree = BUILT_PRODUCTS_DIR; }; + 643C35A707E76E8D0F197045 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 64ED1E0B19066DA36CBF0ACF /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 504D063847F279FC3FF73156 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 3E2F057A13197E857A556D8F /* AudioToolbox.framework in Frameworks */, + 27874E3A79871D2A31350FB3 /* AudioUnit.framework in Frameworks */, + 04672EED0A5A2BBA4A99213F /* Cocoa.framework in Frameworks */, + 67842EB1747D695240C55232 /* CoreAudio.framework in Frameworks */, + 17CF41A54DDC2A847E593D5E /* IOKit.framework in Frameworks */, + 282535315DBA11D0062175F9 /* Carbon.framework in Frameworks */, + 01150C0344D721B722512D0D /* ForceFeedback.framework in Frameworks */, + 780D40945E486C1E61F349F8 /* CoreFoundation.framework in Frameworks */, + 0BF93911456A4CD363B8068B /* OpenGL.framework in Frameworks */, + 7808007B4CA1040E5FA57F65 /* libSDL2main.a in Frameworks */, + 3D85050716D05CC44E796CAD /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 0C1D7CDE12BE1FFA75025933 /* testgesture */ = { + isa = PBXGroup; + children = ( + 4D9119587A8E34CD38975BF5 /* test */, + 1D500210265B5FE53E12220F /* Frameworks */, + 231E3AB81B144CE2349E7BBE /* Products */, + 30FF472A52285BBA50483323 /* Projects */, + ); + name = "testgesture"; + sourceTree = ""; + }; + 4D9119587A8E34CD38975BF5 /* test */ = { + isa = PBXGroup; + children = ( + 45F239484034303C5F6D2B63 /* testgesture.c */, + ); + name = "test"; + sourceTree = ""; + }; + 1D500210265B5FE53E12220F /* Frameworks */ = { + isa = PBXGroup; + children = ( + 3182640513961B7751467F1C /* AudioToolbox.framework */, + 4BCB1EA2426110E4141B3A39 /* AudioUnit.framework */, + 69A55EFD5D976CCE6454697A /* Cocoa.framework */, + 404C68025B6435340F6C0644 /* CoreAudio.framework */, + 78D711646B8310C841264C30 /* IOKit.framework */, + 1BD76F3F37EB3C0B104B356D /* Carbon.framework */, + 5C8C23E069BD7CFB5A6416F6 /* ForceFeedback.framework */, + 3C856BF13E2F118A31F63FDD /* CoreFoundation.framework */, + 4C962D4C146E60FF2B000F54 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 231E3AB81B144CE2349E7BBE /* Products */ = { + isa = PBXGroup; + children = ( + 25894A1C1CD23C9C503E198D /* testgesture */, + ); + name = "Products"; + sourceTree = ""; + }; + 30FF472A52285BBA50483323 /* Projects */ = { + isa = PBXGroup; + children = ( + 643C35A707E76E8D0F197045 /* SDL2main.xcodeproj */, + 64ED1E0B19066DA36CBF0ACF /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 30DC6FF827FD602755CB0EC8 /* Products */ = { + isa = PBXGroup; + children = ( + 528E7D3F63CE6DCA20FA02AA /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 57C56BC70A01080B247514AA /* Products */ = { + isa = PBXGroup; + children = ( + 3FF375BB600D07591A5E2E06 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 13F47A185A0D4A780D0A0D69 /* testgesture */ = { + isa = PBXNativeTarget; + buildConfigurationList = 7854590A4EE8222F470D4540 /* Build configuration list for PBXNativeTarget "testgesture" */; + buildPhases = ( + 06DD41DC579842B26A292F2E /* Resources */, + 253D4E0558C656247A8F7764 /* Sources */, + 504D063847F279FC3FF73156 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 26D05DE04696481039A31ACE /* PBXTargetDependency */, + 0B6937BC549D4FE7501E1D48 /* PBXTargetDependency */, + ); + name = "testgesture"; + productInstallPath = "$(HOME)/bin"; + productName = "testgesture"; + productReference = 25894A1C1CD23C9C503E198D /* testgesture */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testgesture" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 0C1D7CDE12BE1FFA75025933 /* testgesture */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 30DC6FF827FD602755CB0EC8 /* Products */; + ProjectRef = 643C35A707E76E8D0F197045 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 57C56BC70A01080B247514AA /* Products */; + ProjectRef = 64ED1E0B19066DA36CBF0ACF /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 13F47A185A0D4A780D0A0D69 /* testgesture */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 528E7D3F63CE6DCA20FA02AA /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 209C70BF32E1778601AF2D24 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 3FF375BB600D07591A5E2E06 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 433D6C094E1176D805443C4C /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 06DD41DC579842B26A292F2E /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 253D4E0558C656247A8F7764 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 7F2646064E07693268BB663E /* testgesture.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 26D05DE04696481039A31ACE /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 397959DD79CF0A487F925D3C /* PBXContainerItemProxy */; + }; + 0B6937BC549D4FE7501E1D48 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 27F76BFC195C780B4D2C0753 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 7EBC1AD328FF23575F007FC1 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testgesture"; + }; + name = "Debug Universal"; + }; + 7B220AE02C4168C977A9312E /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testgesture"; + }; + name = "Debug Native"; + }; + 1F43115A34553DD3190B2B08 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testgesture"; + }; + name = "Release Universal"; + }; + 79B5705904781395367B7BEF /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testgesture"; + }; + name = "Release Native"; + }; + 17F516310DBF32883D6754E8 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 79763EB775473C4A46091E29 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 2E49648B7F9814B91F862C12 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 196A212F38807BF653F57FBC /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 7854590A4EE8222F470D4540 /* Build configuration list for PBXNativeTarget "testgesture" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7EBC1AD328FF23575F007FC1 /* Debug Universal */, + 7B220AE02C4168C977A9312E /* Debug Native */, + 1F43115A34553DD3190B2B08 /* Release Universal */, + 79B5705904781395367B7BEF /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testgesture" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 17F516310DBF32883D6754E8 /* Debug Universal */, + 79763EB775473C4A46091E29 /* Debug Native */, + 2E49648B7F9814B91F862C12 /* Release Universal */, + 196A212F38807BF653F57FBC /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode4/tests/testgl2/testgl2.xcodeproj/project.pbxproj b/premake/Xcode/Xcode4/tests/testgl2/testgl2.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..198755eda4e4e --- /dev/null +++ b/premake/Xcode/Xcode4/tests/testgl2/testgl2.xcodeproj/project.pbxproj @@ -0,0 +1,502 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 1E5D7DFA3A69692D44FC27E9 /* testgl2.c in Sources */ = {isa = PBXBuildFile; fileRef = 3220018170A379082A7A5311 /* testgl2.c */; }; + 7AFA41E7540407D14A92432C /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 206504F44E154FCB212C502F /* AudioToolbox.framework */; }; + 47600CC024F5725B3C1C5B21 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7E4E65DE03B17C7A553C053A /* AudioUnit.framework */; }; + 196E4214385B17EB51DE792B /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 151B5F9409BD6D295C07749D /* Cocoa.framework */; }; + 08A53FC92B2D20743E080AA6 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 068252F97FC976C92BD069FF /* CoreAudio.framework */; }; + 414817FE664E3EBD2095428D /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3AD63ED47DD00D33195F3369 /* IOKit.framework */; }; + 051464B802D923F062DC655E /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5D820966416A4282130A1880 /* Carbon.framework */; }; + 68656778359613CF31ED6DCA /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 12BA2FB45A84420B6A4E4123 /* ForceFeedback.framework */; }; + 1A8A7B10631F1A473D884756 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 008815B354674F43774104EB /* CoreFoundation.framework */; }; + 2523563C194273D615B744F9 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 04B73BBB12804A1D49EE6036 /* OpenGL.framework */; }; + 64CC19DD22B11303629D5825 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CDB408319620EE1092E5B38 /* libSDL2main.a */; }; + 1F8E59315BFC38C73688548D /* libSDL2test.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 666703DB2737213809E80478 /* libSDL2test.a */; }; + 73557D3D480038BC5EB43AC2 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 23D67491123B616E109134FB /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 4453567C1B860D8520EB652F /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 6A2801EC45C80EEF2B6C6417 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 0FF7291B375C79BC57696B66; + remoteInfo = "libSDL2main.a"; + }; + 08A64A9D21622C6D3F0B2605 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 6A2801EC45C80EEF2B6C6417 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1BAE4A0A77462FDC330812A3; + remoteInfo = "libSDL2main.a"; + }; + 795565F809AF458014B503B3 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 733675FC76935EE515592268 /* SDL2test.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 1EB6664901BC163F215A4861; + remoteInfo = "libSDL2test.a"; + }; + 07726CEC0FA935EA51735F5B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 733675FC76935EE515592268 /* SDL2test.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1258506950476B85239A79A3; + remoteInfo = "libSDL2test.a"; + }; + 2FB6107237CE447C5542013F /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 2578101C505E6209700372BA /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 5E6D56F6655337845A3C44C3; + remoteInfo = "libSDL2.a"; + }; + 72197A6330DB01C5616B7311 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 2578101C505E6209700372BA /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7E6A7BC23CFD134274963645; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 3220018170A379082A7A5311 /* testgl2.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testgl2.c"; path = "../../../../../test/testgl2.c"; sourceTree = ""; }; + 206504F44E154FCB212C502F /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 7E4E65DE03B17C7A553C053A /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 151B5F9409BD6D295C07749D /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 068252F97FC976C92BD069FF /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 3AD63ED47DD00D33195F3369 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 5D820966416A4282130A1880 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 12BA2FB45A84420B6A4E4123 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 008815B354674F43774104EB /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 04B73BBB12804A1D49EE6036 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 6E471DDF34AF7F3526E24A3A /* testgl2 */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testgl2"; path = "testgl2"; sourceTree = BUILT_PRODUCTS_DIR; }; + 6A2801EC45C80EEF2B6C6417 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 733675FC76935EE515592268 /* SDL2test.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2test.xcodeproj"; path = "../../SDL2test/SDL2test.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 2578101C505E6209700372BA /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 71B273A3094A103462FF0D1C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 7AFA41E7540407D14A92432C /* AudioToolbox.framework in Frameworks */, + 47600CC024F5725B3C1C5B21 /* AudioUnit.framework in Frameworks */, + 196E4214385B17EB51DE792B /* Cocoa.framework in Frameworks */, + 08A53FC92B2D20743E080AA6 /* CoreAudio.framework in Frameworks */, + 414817FE664E3EBD2095428D /* IOKit.framework in Frameworks */, + 051464B802D923F062DC655E /* Carbon.framework in Frameworks */, + 68656778359613CF31ED6DCA /* ForceFeedback.framework in Frameworks */, + 1A8A7B10631F1A473D884756 /* CoreFoundation.framework in Frameworks */, + 2523563C194273D615B744F9 /* OpenGL.framework in Frameworks */, + 64CC19DD22B11303629D5825 /* libSDL2main.a in Frameworks */, + 1F8E59315BFC38C73688548D /* libSDL2test.a in Frameworks */, + 73557D3D480038BC5EB43AC2 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 7EC97CA00B8002B3753711EE /* testgl2 */ = { + isa = PBXGroup; + children = ( + 3171242F3D656E485A376D3A /* test */, + 66AF20B448055A0463416D19 /* Frameworks */, + 3FC8215A541B43D83D181AD6 /* Products */, + 685260F641B83029561453EC /* Projects */, + ); + name = "testgl2"; + sourceTree = ""; + }; + 3171242F3D656E485A376D3A /* test */ = { + isa = PBXGroup; + children = ( + 3220018170A379082A7A5311 /* testgl2.c */, + ); + name = "test"; + sourceTree = ""; + }; + 66AF20B448055A0463416D19 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 206504F44E154FCB212C502F /* AudioToolbox.framework */, + 7E4E65DE03B17C7A553C053A /* AudioUnit.framework */, + 151B5F9409BD6D295C07749D /* Cocoa.framework */, + 068252F97FC976C92BD069FF /* CoreAudio.framework */, + 3AD63ED47DD00D33195F3369 /* IOKit.framework */, + 5D820966416A4282130A1880 /* Carbon.framework */, + 12BA2FB45A84420B6A4E4123 /* ForceFeedback.framework */, + 008815B354674F43774104EB /* CoreFoundation.framework */, + 04B73BBB12804A1D49EE6036 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 3FC8215A541B43D83D181AD6 /* Products */ = { + isa = PBXGroup; + children = ( + 6E471DDF34AF7F3526E24A3A /* testgl2 */, + ); + name = "Products"; + sourceTree = ""; + }; + 685260F641B83029561453EC /* Projects */ = { + isa = PBXGroup; + children = ( + 6A2801EC45C80EEF2B6C6417 /* SDL2main.xcodeproj */, + 733675FC76935EE515592268 /* SDL2test.xcodeproj */, + 2578101C505E6209700372BA /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 7FD858AE07A025610A7131F6 /* Products */ = { + isa = PBXGroup; + children = ( + 4CDB408319620EE1092E5B38 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 33547620430B348928255288 /* Products */ = { + isa = PBXGroup; + children = ( + 666703DB2737213809E80478 /* libSDL2test.a */, + ); + name = Products; + sourceTree = ""; + }; + 038750CE1BA5226B59BD2C8E /* Products */ = { + isa = PBXGroup; + children = ( + 23D67491123B616E109134FB /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 402340AE70003AD471B13889 /* testgl2 */ = { + isa = PBXNativeTarget; + buildConfigurationList = 2815302B7E0C4C5D163C70FA /* Build configuration list for PBXNativeTarget "testgl2" */; + buildPhases = ( + 505E007127AF03B71D493B1F /* Resources */, + 7EEE54660402358F59940449 /* Sources */, + 71B273A3094A103462FF0D1C /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 344805864158260C1D3C0790 /* PBXTargetDependency */, + 0221786E08B35100760146EB /* PBXTargetDependency */, + 63D00F7F0B2F6A7C1EFB2547 /* PBXTargetDependency */, + ); + name = "testgl2"; + productInstallPath = "$(HOME)/bin"; + productName = "testgl2"; + productReference = 6E471DDF34AF7F3526E24A3A /* testgl2 */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testgl2" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 7EC97CA00B8002B3753711EE /* testgl2 */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 7FD858AE07A025610A7131F6 /* Products */; + ProjectRef = 6A2801EC45C80EEF2B6C6417 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 33547620430B348928255288 /* Products */; + ProjectRef = 733675FC76935EE515592268 /* SDL2test.xcodeproj */; + }, + { + ProductGroup = 038750CE1BA5226B59BD2C8E /* Products */; + ProjectRef = 2578101C505E6209700372BA /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 402340AE70003AD471B13889 /* testgl2 */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 4CDB408319620EE1092E5B38 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 4453567C1B860D8520EB652F /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 666703DB2737213809E80478 /* libSDL2test.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2test.a"; + remoteRef = 795565F809AF458014B503B3 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 23D67491123B616E109134FB /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 2FB6107237CE447C5542013F /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 505E007127AF03B71D493B1F /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 7EEE54660402358F59940449 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 1E5D7DFA3A69692D44FC27E9 /* testgl2.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 344805864158260C1D3C0790 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 08A64A9D21622C6D3F0B2605 /* PBXContainerItemProxy */; + }; + 0221786E08B35100760146EB /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2test.a"; + targetProxy = 07726CEC0FA935EA51735F5B /* PBXContainerItemProxy */; + }; + 63D00F7F0B2F6A7C1EFB2547 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 72197A6330DB01C5616B7311 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 5C040CF325E2203C6C354886 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testgl2"; + }; + name = "Debug Universal"; + }; + 18490D92079F16547EA4773E /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testgl2"; + }; + name = "Debug Native"; + }; + 168D1D9808C960990ED0124A /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testgl2"; + }; + name = "Release Universal"; + }; + 01DD5D0649C538FD219D0732 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testgl2"; + }; + name = "Release Native"; + }; + 01CB4C66418523A9543862C3 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + "HAVE_OPENGL", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 1DCE74EC65452D5B56165C3C /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + "HAVE_OPENGL", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 5C792ED86E2A1F39075B156A /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + "HAVE_OPENGL", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 0FCA1E800B6F6586548F194A /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + "HAVE_OPENGL", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 2815302B7E0C4C5D163C70FA /* Build configuration list for PBXNativeTarget "testgl2" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 5C040CF325E2203C6C354886 /* Debug Universal */, + 18490D92079F16547EA4773E /* Debug Native */, + 168D1D9808C960990ED0124A /* Release Universal */, + 01DD5D0649C538FD219D0732 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testgl2" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 01CB4C66418523A9543862C3 /* Debug Universal */, + 1DCE74EC65452D5B56165C3C /* Debug Native */, + 5C792ED86E2A1F39075B156A /* Release Universal */, + 0FCA1E800B6F6586548F194A /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode4/tests/testgles/testgles.xcodeproj/project.pbxproj b/premake/Xcode/Xcode4/tests/testgles/testgles.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..c1d20298d68d6 --- /dev/null +++ b/premake/Xcode/Xcode4/tests/testgles/testgles.xcodeproj/project.pbxproj @@ -0,0 +1,498 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 71590B69376C3EAF0F5408C3 /* testgles.c in Sources */ = {isa = PBXBuildFile; fileRef = 21ED049579DB3B92756943D9 /* testgles.c */; }; + 53071187381E4A3C5A146491 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 549303AB0D8C117556EA52AE /* AudioToolbox.framework */; }; + 4BA560D00AF85DA84CFA5074 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7EA062245931572804B7121F /* AudioUnit.framework */; }; + 55BF794A6CCF2CA708141A3E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6FAD532261FD32C2028B2459 /* Cocoa.framework */; }; + 040721A914A36A9579543581 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 13BE56E370C875FE1C0B5043 /* CoreAudio.framework */; }; + 00A635B9081D573A58803FEA /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 45306F324AF8686220157698 /* IOKit.framework */; }; + 42D810F301626B045BA62221 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44EB22070B0058364D675FDD /* Carbon.framework */; }; + 61E9080D42ED5D613B712A8D /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 56793A912FF0657C58AE3A3E /* ForceFeedback.framework */; }; + 1EE16D8142517535032D0F5A /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3AFE366F71A405A3161E0DEC /* CoreFoundation.framework */; }; + 4C1D1A93420D7D5D20CA56A4 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 626430487FAD66A179683ECC /* OpenGL.framework */; }; + 7D1A7393579522401B044C84 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 59B475365406704572B75E39 /* libSDL2main.a */; }; + 26BD42CA0FC414C87CF80454 /* libSDL2test.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3CB86932610E1C13256860C8 /* libSDL2test.a */; }; + 7A8F7E84426517196DCB4BC4 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 128D029A7EF46C14532547B9 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 6F3D288B74C953186F411985 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 79934082264672FA7FB77D2C /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 0FF7291B375C79BC57696B66; + remoteInfo = "libSDL2main.a"; + }; + 190F607D599169AC4DF72505 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 79934082264672FA7FB77D2C /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1BAE4A0A77462FDC330812A3; + remoteInfo = "libSDL2main.a"; + }; + 59EF769B4F043BCB22AF4352 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 068D3D26283F68D7226E0D35 /* SDL2test.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 1EB6664901BC163F215A4861; + remoteInfo = "libSDL2test.a"; + }; + 676743CB696660AC408825C5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 068D3D26283F68D7226E0D35 /* SDL2test.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1258506950476B85239A79A3; + remoteInfo = "libSDL2test.a"; + }; + 07941DED6B1938F43CB52BFB /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 43793E1A385F15D97C1E4508 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 5E6D56F6655337845A3C44C3; + remoteInfo = "libSDL2.a"; + }; + 14FB7FA72FB25F785D5E6A15 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 43793E1A385F15D97C1E4508 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7E6A7BC23CFD134274963645; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 21ED049579DB3B92756943D9 /* testgles.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testgles.c"; path = "../../../../../test/testgles.c"; sourceTree = ""; }; + 549303AB0D8C117556EA52AE /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 7EA062245931572804B7121F /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 6FAD532261FD32C2028B2459 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 13BE56E370C875FE1C0B5043 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 45306F324AF8686220157698 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 44EB22070B0058364D675FDD /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 56793A912FF0657C58AE3A3E /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 3AFE366F71A405A3161E0DEC /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 626430487FAD66A179683ECC /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 51845D902E9F04B601CA325E /* testgles */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testgles"; path = "testgles"; sourceTree = BUILT_PRODUCTS_DIR; }; + 79934082264672FA7FB77D2C /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 068D3D26283F68D7226E0D35 /* SDL2test.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2test.xcodeproj"; path = "../../SDL2test/SDL2test.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 43793E1A385F15D97C1E4508 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 322F478F14C1119C3AB77840 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 53071187381E4A3C5A146491 /* AudioToolbox.framework in Frameworks */, + 4BA560D00AF85DA84CFA5074 /* AudioUnit.framework in Frameworks */, + 55BF794A6CCF2CA708141A3E /* Cocoa.framework in Frameworks */, + 040721A914A36A9579543581 /* CoreAudio.framework in Frameworks */, + 00A635B9081D573A58803FEA /* IOKit.framework in Frameworks */, + 42D810F301626B045BA62221 /* Carbon.framework in Frameworks */, + 61E9080D42ED5D613B712A8D /* ForceFeedback.framework in Frameworks */, + 1EE16D8142517535032D0F5A /* CoreFoundation.framework in Frameworks */, + 4C1D1A93420D7D5D20CA56A4 /* OpenGL.framework in Frameworks */, + 7D1A7393579522401B044C84 /* libSDL2main.a in Frameworks */, + 26BD42CA0FC414C87CF80454 /* libSDL2test.a in Frameworks */, + 7A8F7E84426517196DCB4BC4 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 43C138D420D717CC103F1E99 /* testgles */ = { + isa = PBXGroup; + children = ( + 7B5A76D932546A3D7C9356D8 /* test */, + 3C7F47BC201354B550A52D78 /* Frameworks */, + 52E953152E814515195D5BB7 /* Products */, + 0B1861D778A9527F1CB5300C /* Projects */, + ); + name = "testgles"; + sourceTree = ""; + }; + 7B5A76D932546A3D7C9356D8 /* test */ = { + isa = PBXGroup; + children = ( + 21ED049579DB3B92756943D9 /* testgles.c */, + ); + name = "test"; + sourceTree = ""; + }; + 3C7F47BC201354B550A52D78 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 549303AB0D8C117556EA52AE /* AudioToolbox.framework */, + 7EA062245931572804B7121F /* AudioUnit.framework */, + 6FAD532261FD32C2028B2459 /* Cocoa.framework */, + 13BE56E370C875FE1C0B5043 /* CoreAudio.framework */, + 45306F324AF8686220157698 /* IOKit.framework */, + 44EB22070B0058364D675FDD /* Carbon.framework */, + 56793A912FF0657C58AE3A3E /* ForceFeedback.framework */, + 3AFE366F71A405A3161E0DEC /* CoreFoundation.framework */, + 626430487FAD66A179683ECC /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 52E953152E814515195D5BB7 /* Products */ = { + isa = PBXGroup; + children = ( + 51845D902E9F04B601CA325E /* testgles */, + ); + name = "Products"; + sourceTree = ""; + }; + 0B1861D778A9527F1CB5300C /* Projects */ = { + isa = PBXGroup; + children = ( + 79934082264672FA7FB77D2C /* SDL2main.xcodeproj */, + 068D3D26283F68D7226E0D35 /* SDL2test.xcodeproj */, + 43793E1A385F15D97C1E4508 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 25187D402A975B324C5A4EBB /* Products */ = { + isa = PBXGroup; + children = ( + 59B475365406704572B75E39 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 2B273C956F420BE510675CC2 /* Products */ = { + isa = PBXGroup; + children = ( + 3CB86932610E1C13256860C8 /* libSDL2test.a */, + ); + name = Products; + sourceTree = ""; + }; + 6A6C0DE008810BCC28FD2C2E /* Products */ = { + isa = PBXGroup; + children = ( + 128D029A7EF46C14532547B9 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 512650A10BE62C81608B596F /* testgles */ = { + isa = PBXNativeTarget; + buildConfigurationList = 327A0DCF29D657C437BB14FB /* Build configuration list for PBXNativeTarget "testgles" */; + buildPhases = ( + 2C0649B662DD5C2058116FAB /* Resources */, + 61AA00D2008746EB6F5E04F4 /* Sources */, + 322F478F14C1119C3AB77840 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 76DA72C706772A4C023A63CF /* PBXTargetDependency */, + 665C47BB05D107361B761151 /* PBXTargetDependency */, + 41AF0206069876D619CE34CE /* PBXTargetDependency */, + ); + name = "testgles"; + productInstallPath = "$(HOME)/bin"; + productName = "testgles"; + productReference = 51845D902E9F04B601CA325E /* testgles */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testgles" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 43C138D420D717CC103F1E99 /* testgles */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 25187D402A975B324C5A4EBB /* Products */; + ProjectRef = 79934082264672FA7FB77D2C /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 2B273C956F420BE510675CC2 /* Products */; + ProjectRef = 068D3D26283F68D7226E0D35 /* SDL2test.xcodeproj */; + }, + { + ProductGroup = 6A6C0DE008810BCC28FD2C2E /* Products */; + ProjectRef = 43793E1A385F15D97C1E4508 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 512650A10BE62C81608B596F /* testgles */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 59B475365406704572B75E39 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 6F3D288B74C953186F411985 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 3CB86932610E1C13256860C8 /* libSDL2test.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2test.a"; + remoteRef = 59EF769B4F043BCB22AF4352 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 128D029A7EF46C14532547B9 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 07941DED6B1938F43CB52BFB /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 2C0649B662DD5C2058116FAB /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 61AA00D2008746EB6F5E04F4 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 71590B69376C3EAF0F5408C3 /* testgles.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 76DA72C706772A4C023A63CF /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 190F607D599169AC4DF72505 /* PBXContainerItemProxy */; + }; + 665C47BB05D107361B761151 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2test.a"; + targetProxy = 676743CB696660AC408825C5 /* PBXContainerItemProxy */; + }; + 41AF0206069876D619CE34CE /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 14FB7FA72FB25F785D5E6A15 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 509D1E5C5117524334FF66B8 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testgles"; + }; + name = "Debug Universal"; + }; + 232B61C17CBA44CB157D7DC5 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testgles"; + }; + name = "Debug Native"; + }; + 1FC975994C49772E269B426D /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testgles"; + }; + name = "Release Universal"; + }; + 0BA47CAA0E214BB438697E9C /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testgles"; + }; + name = "Release Native"; + }; + 4E1B72F029E855ED3C0F7ED4 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 37CF039967A85400622D2DC7 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 2DC827C32D553D9714C05D13 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 6B7B08B422C569A64C0B66D1 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 327A0DCF29D657C437BB14FB /* Build configuration list for PBXNativeTarget "testgles" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 509D1E5C5117524334FF66B8 /* Debug Universal */, + 232B61C17CBA44CB157D7DC5 /* Debug Native */, + 1FC975994C49772E269B426D /* Release Universal */, + 0BA47CAA0E214BB438697E9C /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testgles" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4E1B72F029E855ED3C0F7ED4 /* Debug Universal */, + 37CF039967A85400622D2DC7 /* Debug Native */, + 2DC827C32D553D9714C05D13 /* Release Universal */, + 6B7B08B422C569A64C0B66D1 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode4/tests/testhaptic/testhaptic.xcodeproj/project.pbxproj b/premake/Xcode/Xcode4/tests/testhaptic/testhaptic.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..4d6821887a4a2 --- /dev/null +++ b/premake/Xcode/Xcode4/tests/testhaptic/testhaptic.xcodeproj/project.pbxproj @@ -0,0 +1,455 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 259F0C4A725C2A5403467143 /* testhaptic.c in Sources */ = {isa = PBXBuildFile; fileRef = 0E6C06371F702D532D5529BA /* testhaptic.c */; }; + 30EF44E274E522070A0A45AF /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 156E6FBA3A1562AB5AB00E90 /* AudioToolbox.framework */; }; + 22A872B572D32B2B3D4851B0 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D5773A44C9A134672906703 /* AudioUnit.framework */; }; + 0C345BD450EF117F34F75C13 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 36283C7C10FB571669E3505D /* Cocoa.framework */; }; + 2A8B4CFC6EDE4CE0260733BB /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D3E0010262034F5429D7BDF /* CoreAudio.framework */; }; + 39957C4E747C1B836AD002B6 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 459610BE579878903E0A416E /* IOKit.framework */; }; + 53B942F10276361D5E4C07C8 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1099493007CE1079342B7B67 /* Carbon.framework */; }; + 7EC20160664E415B7B3D7554 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6FD8033D416A189636416EA0 /* ForceFeedback.framework */; }; + 3233705B20ED4BEE0DFC3E5C /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 177718DC5361393D02D918B1 /* CoreFoundation.framework */; }; + 2D2566F45319182C20A214BC /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 20600B02694830C63EA0332A /* OpenGL.framework */; }; + 67DC48577E8C250C47C23D63 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1BF3114F77F23F81419F31E1 /* libSDL2main.a */; }; + 27446D037B1A10C4703878A7 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B310E30273346B1364F251D /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 037F1B9D1652681D66753BA4 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 55597D58463372000C5615B8 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 0FF7291B375C79BC57696B66; + remoteInfo = "libSDL2main.a"; + }; + 1D190F6E0DF753C413445EAD /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 55597D58463372000C5615B8 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1BAE4A0A77462FDC330812A3; + remoteInfo = "libSDL2main.a"; + }; + 7156624E192C4444579525C0 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 32084257624E1E0D7ED35D00 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 5E6D56F6655337845A3C44C3; + remoteInfo = "libSDL2.a"; + }; + 089918D43EFB041865DB24BE /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 32084257624E1E0D7ED35D00 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7E6A7BC23CFD134274963645; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 0E6C06371F702D532D5529BA /* testhaptic.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testhaptic.c"; path = "../../../../../test/testhaptic.c"; sourceTree = ""; }; + 156E6FBA3A1562AB5AB00E90 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 7D5773A44C9A134672906703 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 36283C7C10FB571669E3505D /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 7D3E0010262034F5429D7BDF /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 459610BE579878903E0A416E /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 1099493007CE1079342B7B67 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 6FD8033D416A189636416EA0 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 177718DC5361393D02D918B1 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 20600B02694830C63EA0332A /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 4FAD6EEE78EC5A2E248260FD /* testhaptic */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testhaptic"; path = "testhaptic"; sourceTree = BUILT_PRODUCTS_DIR; }; + 55597D58463372000C5615B8 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 32084257624E1E0D7ED35D00 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 37222368225D1AF6258C317C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 30EF44E274E522070A0A45AF /* AudioToolbox.framework in Frameworks */, + 22A872B572D32B2B3D4851B0 /* AudioUnit.framework in Frameworks */, + 0C345BD450EF117F34F75C13 /* Cocoa.framework in Frameworks */, + 2A8B4CFC6EDE4CE0260733BB /* CoreAudio.framework in Frameworks */, + 39957C4E747C1B836AD002B6 /* IOKit.framework in Frameworks */, + 53B942F10276361D5E4C07C8 /* Carbon.framework in Frameworks */, + 7EC20160664E415B7B3D7554 /* ForceFeedback.framework in Frameworks */, + 3233705B20ED4BEE0DFC3E5C /* CoreFoundation.framework in Frameworks */, + 2D2566F45319182C20A214BC /* OpenGL.framework in Frameworks */, + 67DC48577E8C250C47C23D63 /* libSDL2main.a in Frameworks */, + 27446D037B1A10C4703878A7 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 1403543911376E16049C4AAF /* testhaptic */ = { + isa = PBXGroup; + children = ( + 5411484B3E0546151F8A2F61 /* test */, + 2269211A4F2660BF294D0DA0 /* Frameworks */, + 58E216826F6A24CF470F69FF /* Products */, + 1DB62BF439A7251A7D9C11AA /* Projects */, + ); + name = "testhaptic"; + sourceTree = ""; + }; + 5411484B3E0546151F8A2F61 /* test */ = { + isa = PBXGroup; + children = ( + 0E6C06371F702D532D5529BA /* testhaptic.c */, + ); + name = "test"; + sourceTree = ""; + }; + 2269211A4F2660BF294D0DA0 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 156E6FBA3A1562AB5AB00E90 /* AudioToolbox.framework */, + 7D5773A44C9A134672906703 /* AudioUnit.framework */, + 36283C7C10FB571669E3505D /* Cocoa.framework */, + 7D3E0010262034F5429D7BDF /* CoreAudio.framework */, + 459610BE579878903E0A416E /* IOKit.framework */, + 1099493007CE1079342B7B67 /* Carbon.framework */, + 6FD8033D416A189636416EA0 /* ForceFeedback.framework */, + 177718DC5361393D02D918B1 /* CoreFoundation.framework */, + 20600B02694830C63EA0332A /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 58E216826F6A24CF470F69FF /* Products */ = { + isa = PBXGroup; + children = ( + 4FAD6EEE78EC5A2E248260FD /* testhaptic */, + ); + name = "Products"; + sourceTree = ""; + }; + 1DB62BF439A7251A7D9C11AA /* Projects */ = { + isa = PBXGroup; + children = ( + 55597D58463372000C5615B8 /* SDL2main.xcodeproj */, + 32084257624E1E0D7ED35D00 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 7AAD1A25324036572D4E778D /* Products */ = { + isa = PBXGroup; + children = ( + 1BF3114F77F23F81419F31E1 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 471B4E533FE220A228D55E58 /* Products */ = { + isa = PBXGroup; + children = ( + 3B310E30273346B1364F251D /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 427856C059AD11D134C10ADF /* testhaptic */ = { + isa = PBXNativeTarget; + buildConfigurationList = 31347DC811FB7E1F284F633B /* Build configuration list for PBXNativeTarget "testhaptic" */; + buildPhases = ( + 3D6A31286E173C4D14F50300 /* Resources */, + 269A4E8912A24C833F881E6F /* Sources */, + 37222368225D1AF6258C317C /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 342123C51B1C4CEA225B3C31 /* PBXTargetDependency */, + 4A3F7633149345C651A62318 /* PBXTargetDependency */, + ); + name = "testhaptic"; + productInstallPath = "$(HOME)/bin"; + productName = "testhaptic"; + productReference = 4FAD6EEE78EC5A2E248260FD /* testhaptic */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testhaptic" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 1403543911376E16049C4AAF /* testhaptic */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 7AAD1A25324036572D4E778D /* Products */; + ProjectRef = 55597D58463372000C5615B8 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 471B4E533FE220A228D55E58 /* Products */; + ProjectRef = 32084257624E1E0D7ED35D00 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 427856C059AD11D134C10ADF /* testhaptic */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 1BF3114F77F23F81419F31E1 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 037F1B9D1652681D66753BA4 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 3B310E30273346B1364F251D /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 7156624E192C4444579525C0 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 3D6A31286E173C4D14F50300 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 269A4E8912A24C833F881E6F /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 259F0C4A725C2A5403467143 /* testhaptic.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 342123C51B1C4CEA225B3C31 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 1D190F6E0DF753C413445EAD /* PBXContainerItemProxy */; + }; + 4A3F7633149345C651A62318 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 089918D43EFB041865DB24BE /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 7C8037DD24A50B0464D22DD3 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testhaptic"; + }; + name = "Debug Universal"; + }; + 5D544F6D33A948326D6F5357 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testhaptic"; + }; + name = "Debug Native"; + }; + 422449A50B524601141A58C9 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testhaptic"; + }; + name = "Release Universal"; + }; + 58704F2E7A8760715B1428AB /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testhaptic"; + }; + name = "Release Native"; + }; + 1CFA1BBC124934E60C7036C9 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 2B2532C20414558B40351209 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 02EB12FB36A9474A70CC1DF3 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 278B282A5DB753C566D348EA /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 31347DC811FB7E1F284F633B /* Build configuration list for PBXNativeTarget "testhaptic" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7C8037DD24A50B0464D22DD3 /* Debug Universal */, + 5D544F6D33A948326D6F5357 /* Debug Native */, + 422449A50B524601141A58C9 /* Release Universal */, + 58704F2E7A8760715B1428AB /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testhaptic" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1CFA1BBC124934E60C7036C9 /* Debug Universal */, + 2B2532C20414558B40351209 /* Debug Native */, + 02EB12FB36A9474A70CC1DF3 /* Release Universal */, + 278B282A5DB753C566D348EA /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode4/tests/testiconv/testiconv.xcodeproj/project.pbxproj b/premake/Xcode/Xcode4/tests/testiconv/testiconv.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..9d3f6e229993c --- /dev/null +++ b/premake/Xcode/Xcode4/tests/testiconv/testiconv.xcodeproj/project.pbxproj @@ -0,0 +1,472 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 01F67D4205694451410C3AE4 /* testiconv.c in Sources */ = {isa = PBXBuildFile; fileRef = 5A851351608E23D3025123D3 /* testiconv.c */; }; + 28BC65452E7C060A058E444B /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2BFC3DEF433703C323E928EA /* AudioToolbox.framework */; }; + 7A686194495307043C6B4218 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 18A906FD6917700431D2072C /* AudioUnit.framework */; }; + 4D4E4F94227C04A5778D4F47 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 64412144781354917D7E66C7 /* Cocoa.framework */; }; + 7CEF3B4B5C683E7E572015B5 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7854005411246BA537FA0971 /* CoreAudio.framework */; }; + 43783AE67501400F55252427 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1F1349EC410623931AE132F6 /* IOKit.framework */; }; + 311232347EEF21BD340076B3 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 10F34F3154A6111F37DB408A /* Carbon.framework */; }; + 5E8630AE172E5A9F0DF77613 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 644229FD50ED7DD4695A1A51 /* ForceFeedback.framework */; }; + 037C01BC757B65413C4913FC /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 07415AF920E53EF410206478 /* CoreFoundation.framework */; }; + 72D72D63545B3BA70A624720 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2C1D5877076125646C0D6053 /* OpenGL.framework */; }; + 49361E9C5361328973933806 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 16A94A053ABA231F59011001 /* libSDL2main.a */; }; + 107912681200609B01BC61B5 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1C83096C342B322A1569580E /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 7DEB6FD46DB920AD50586F7F /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 4A8A50E0634613866EF11C47 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 0FF7291B375C79BC57696B66; + remoteInfo = "libSDL2main.a"; + }; + 029A692D3CEB268A363E54E7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 4A8A50E0634613866EF11C47 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1BAE4A0A77462FDC330812A3; + remoteInfo = "libSDL2main.a"; + }; + 1DC90A9F5A01305F67524B5C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 483610EC19C568A969A82850 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 5E6D56F6655337845A3C44C3; + remoteInfo = "libSDL2.a"; + }; + 16C5039E16905E5E12FB32F3 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 483610EC19C568A969A82850 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7E6A7BC23CFD134274963645; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 5A851351608E23D3025123D3 /* testiconv.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testiconv.c"; path = "../../../../../test/testiconv.c"; sourceTree = ""; }; + 2BFC3DEF433703C323E928EA /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 18A906FD6917700431D2072C /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 64412144781354917D7E66C7 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 7854005411246BA537FA0971 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 1F1349EC410623931AE132F6 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 10F34F3154A6111F37DB408A /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 644229FD50ED7DD4695A1A51 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 07415AF920E53EF410206478 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 2C1D5877076125646C0D6053 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 7822261D75FC09E354453DAB /* testiconv */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testiconv"; path = "testiconv"; sourceTree = BUILT_PRODUCTS_DIR; }; + 4A8A50E0634613866EF11C47 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 483610EC19C568A969A82850 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 5E60195958B7167367850A1A /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 28BC65452E7C060A058E444B /* AudioToolbox.framework in Frameworks */, + 7A686194495307043C6B4218 /* AudioUnit.framework in Frameworks */, + 4D4E4F94227C04A5778D4F47 /* Cocoa.framework in Frameworks */, + 7CEF3B4B5C683E7E572015B5 /* CoreAudio.framework in Frameworks */, + 43783AE67501400F55252427 /* IOKit.framework in Frameworks */, + 311232347EEF21BD340076B3 /* Carbon.framework in Frameworks */, + 5E8630AE172E5A9F0DF77613 /* ForceFeedback.framework in Frameworks */, + 037C01BC757B65413C4913FC /* CoreFoundation.framework in Frameworks */, + 72D72D63545B3BA70A624720 /* OpenGL.framework in Frameworks */, + 49361E9C5361328973933806 /* libSDL2main.a in Frameworks */, + 107912681200609B01BC61B5 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 70BF1E9A2C45066E2DA81659 /* testiconv */ = { + isa = PBXGroup; + children = ( + 43DE5656401756E356603A23 /* test */, + 79683FF66B073E706BF5539E /* Frameworks */, + 06B973487F9208E244A21B40 /* Products */, + 32BC61D45C4A7EC540093B9D /* Projects */, + ); + name = "testiconv"; + sourceTree = ""; + }; + 43DE5656401756E356603A23 /* test */ = { + isa = PBXGroup; + children = ( + 5A851351608E23D3025123D3 /* testiconv.c */, + ); + name = "test"; + sourceTree = ""; + }; + 79683FF66B073E706BF5539E /* Frameworks */ = { + isa = PBXGroup; + children = ( + 2BFC3DEF433703C323E928EA /* AudioToolbox.framework */, + 18A906FD6917700431D2072C /* AudioUnit.framework */, + 64412144781354917D7E66C7 /* Cocoa.framework */, + 7854005411246BA537FA0971 /* CoreAudio.framework */, + 1F1349EC410623931AE132F6 /* IOKit.framework */, + 10F34F3154A6111F37DB408A /* Carbon.framework */, + 644229FD50ED7DD4695A1A51 /* ForceFeedback.framework */, + 07415AF920E53EF410206478 /* CoreFoundation.framework */, + 2C1D5877076125646C0D6053 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 06B973487F9208E244A21B40 /* Products */ = { + isa = PBXGroup; + children = ( + 7822261D75FC09E354453DAB /* testiconv */, + ); + name = "Products"; + sourceTree = ""; + }; + 32BC61D45C4A7EC540093B9D /* Projects */ = { + isa = PBXGroup; + children = ( + 4A8A50E0634613866EF11C47 /* SDL2main.xcodeproj */, + 483610EC19C568A969A82850 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 5C0819485F56175379E94442 /* Products */ = { + isa = PBXGroup; + children = ( + 16A94A053ABA231F59011001 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 047466AD141D24A845437306 /* Products */ = { + isa = PBXGroup; + children = ( + 1C83096C342B322A1569580E /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 4AD702822C1123C70BD41DCC /* testiconv */ = { + isa = PBXNativeTarget; + buildConfigurationList = 3FC52AA428F04ADE6FF63EDA /* Build configuration list for PBXNativeTarget "testiconv" */; + buildPhases = ( + 6E1F7223645F2AA60E9F0853 /* Resources */, + 0A766D7D2AA773F77A1711BC /* Sources */, + 5E60195958B7167367850A1A /* Frameworks */, + 9607AE3710C85E8F00CD1376 /* Postbuild */, + ); + buildRules = ( + ); + dependencies = ( + 20776E72027628001E6E69C1 /* PBXTargetDependency */, + 09F94DD03D0120B613F34E11 /* PBXTargetDependency */, + ); + name = "testiconv"; + productInstallPath = "$(HOME)/bin"; + productName = "testiconv"; + productReference = 7822261D75FC09E354453DAB /* testiconv */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testiconv" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 70BF1E9A2C45066E2DA81659 /* testiconv */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 5C0819485F56175379E94442 /* Products */; + ProjectRef = 4A8A50E0634613866EF11C47 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 047466AD141D24A845437306 /* Products */; + ProjectRef = 483610EC19C568A969A82850 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 4AD702822C1123C70BD41DCC /* testiconv */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 16A94A053ABA231F59011001 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 7DEB6FD46DB920AD50586F7F /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 1C83096C342B322A1569580E /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 1DC90A9F5A01305F67524B5C /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 6E1F7223645F2AA60E9F0853 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 9607AE3710C85E8F00CD1376 /* Postbuild */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = Postbuild; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "if [ \"${CONFIGURATION}\" = \"Debug Universal\" ]; then\nif [ ! -d \"./Build/Debug\" ]; then mkdir -p \"./Build/Debug\"; fi\ncp \"./../../../../../test/utf8.txt\" \"./Build/Debug/utf8.txt\"\nfi\nif [ \"${CONFIGURATION}\" = \"Debug Native\" ]; then\nif [ ! -d \"./Build/Debug\" ]; then mkdir -p \"./Build/Debug\"; fi\ncp \"./../../../../../test/utf8.txt\" \"./Build/Debug/utf8.txt\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Universal\" ]; then\nif [ ! -d \"./Build/Release\" ]; then mkdir -p \"./Build/Release\"; fi\ncp \"./../../../../../test/utf8.txt\" \"./Build/Release/utf8.txt\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Native\" ]; then\nif [ ! -d \"./Build/Release\" ]; then mkdir -p \"./Build/Release\"; fi\ncp \"./../../../../../test/utf8.txt\" \"./Build/Release/utf8.txt\"\nfi"; + }; +/* End PBXShellScriptBuildPhase section */ +/* Begin PBXSourcesBuildPhase section */ + 0A766D7D2AA773F77A1711BC /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 01F67D4205694451410C3AE4 /* testiconv.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 20776E72027628001E6E69C1 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 029A692D3CEB268A363E54E7 /* PBXContainerItemProxy */; + }; + 09F94DD03D0120B613F34E11 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 16C5039E16905E5E12FB32F3 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 180B15F72235772335BC5EDF /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testiconv"; + }; + name = "Debug Universal"; + }; + 2CBA67A12BDA771D49A85992 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testiconv"; + }; + name = "Debug Native"; + }; + 262640223531332816C10B54 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testiconv"; + }; + name = "Release Universal"; + }; + 4487290B3A67007306B6278D /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testiconv"; + }; + name = "Release Native"; + }; + 3EA56CB17FA80E7E262E3556 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 2B015B722AD72B4B63C120A0 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 55615B5C15FB4917219B52CB /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 5767519858C43C4645703E93 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 3FC52AA428F04ADE6FF63EDA /* Build configuration list for PBXNativeTarget "testiconv" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 180B15F72235772335BC5EDF /* Debug Universal */, + 2CBA67A12BDA771D49A85992 /* Debug Native */, + 262640223531332816C10B54 /* Release Universal */, + 4487290B3A67007306B6278D /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testiconv" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3EA56CB17FA80E7E262E3556 /* Debug Universal */, + 2B015B722AD72B4B63C120A0 /* Debug Native */, + 55615B5C15FB4917219B52CB /* Release Universal */, + 5767519858C43C4645703E93 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode4/tests/testime/testime.xcodeproj/project.pbxproj b/premake/Xcode/Xcode4/tests/testime/testime.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..0d81aa09f6212 --- /dev/null +++ b/premake/Xcode/Xcode4/tests/testime/testime.xcodeproj/project.pbxproj @@ -0,0 +1,498 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 394F2A6761A00C864DD37E29 /* testime.c in Sources */ = {isa = PBXBuildFile; fileRef = 79AA0DF42FB806346AD1591F /* testime.c */; }; + 5E10777A103605FF3E013696 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 03C6494775C36EF33B19751B /* AudioToolbox.framework */; }; + 6A9C67C13FD623E721F820F3 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44317F33060A115F02C8475A /* AudioUnit.framework */; }; + 096D12923AFA2F1B1A846CEE /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B867D6C49145AA925AF2E7E /* Cocoa.framework */; }; + 7D056C54312855F4198E4DF7 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0D8C1FDC44723C795F45553E /* CoreAudio.framework */; }; + 5FA22A743AB27EA51D771827 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2751676401665387040043AE /* IOKit.framework */; }; + 3B811AFA54797BC03A736D8E /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 652305D64F7F23BF60A3781B /* Carbon.framework */; }; + 292A09B838117FAE33364F13 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1FC20CF54F57650D632F3936 /* ForceFeedback.framework */; }; + 6CB30ECA1DBF17E62C7C10EF /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 201502B9551224FC331936AE /* CoreFoundation.framework */; }; + 767C54E8002D305A68C50F9F /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 595D09E60F8839134F750E70 /* OpenGL.framework */; }; + 7DBF3B3F54FC7694723579E4 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5F310BC833587B680A015146 /* libSDL2main.a */; }; + 25A16D314598044A205D3AD9 /* libSDL2test.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 416A20CA6CC903846592741F /* libSDL2test.a */; }; + 03912AC2480D57924D2C20A6 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2813134D4E980EB24DDA3264 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 6EF3411958EC070E65006F51 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 37660C5C6E012B0704F50800 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 0FF7291B375C79BC57696B66; + remoteInfo = "libSDL2main.a"; + }; + 325B1E0712D96B626F4C6BAA /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 37660C5C6E012B0704F50800 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1BAE4A0A77462FDC330812A3; + remoteInfo = "libSDL2main.a"; + }; + 0BD57E7411E16CFA3B9D70C2 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 6A0254215BC4336617C31D9F /* SDL2test.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 1EB6664901BC163F215A4861; + remoteInfo = "libSDL2test.a"; + }; + 66340F2E53D977EA41C776EE /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 6A0254215BC4336617C31D9F /* SDL2test.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1258506950476B85239A79A3; + remoteInfo = "libSDL2test.a"; + }; + 14F02547192C24663BCD3EAC /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1870713219E80C70154F2196 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 5E6D56F6655337845A3C44C3; + remoteInfo = "libSDL2.a"; + }; + 34076F20333E45790DF76F27 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1870713219E80C70154F2196 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7E6A7BC23CFD134274963645; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 79AA0DF42FB806346AD1591F /* testime.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testime.c"; path = "../../../../../test/testime.c"; sourceTree = ""; }; + 03C6494775C36EF33B19751B /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 44317F33060A115F02C8475A /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 3B867D6C49145AA925AF2E7E /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 0D8C1FDC44723C795F45553E /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 2751676401665387040043AE /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 652305D64F7F23BF60A3781B /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 1FC20CF54F57650D632F3936 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 201502B9551224FC331936AE /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 595D09E60F8839134F750E70 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 17FD149165DF326B35E60F6E /* testime */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testime"; path = "testime"; sourceTree = BUILT_PRODUCTS_DIR; }; + 37660C5C6E012B0704F50800 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 6A0254215BC4336617C31D9F /* SDL2test.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2test.xcodeproj"; path = "../../SDL2test/SDL2test.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 1870713219E80C70154F2196 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 179F54385F0143A328DD5F70 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 5E10777A103605FF3E013696 /* AudioToolbox.framework in Frameworks */, + 6A9C67C13FD623E721F820F3 /* AudioUnit.framework in Frameworks */, + 096D12923AFA2F1B1A846CEE /* Cocoa.framework in Frameworks */, + 7D056C54312855F4198E4DF7 /* CoreAudio.framework in Frameworks */, + 5FA22A743AB27EA51D771827 /* IOKit.framework in Frameworks */, + 3B811AFA54797BC03A736D8E /* Carbon.framework in Frameworks */, + 292A09B838117FAE33364F13 /* ForceFeedback.framework in Frameworks */, + 6CB30ECA1DBF17E62C7C10EF /* CoreFoundation.framework in Frameworks */, + 767C54E8002D305A68C50F9F /* OpenGL.framework in Frameworks */, + 7DBF3B3F54FC7694723579E4 /* libSDL2main.a in Frameworks */, + 25A16D314598044A205D3AD9 /* libSDL2test.a in Frameworks */, + 03912AC2480D57924D2C20A6 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 325432B320AA344064692D64 /* testime */ = { + isa = PBXGroup; + children = ( + 35591BE0265A7D47522C7BC5 /* test */, + 6C4079D058CC76D8096A2679 /* Frameworks */, + 357E6BFF68C64972163A532B /* Products */, + 3D743F9F13CF1A624B494301 /* Projects */, + ); + name = "testime"; + sourceTree = ""; + }; + 35591BE0265A7D47522C7BC5 /* test */ = { + isa = PBXGroup; + children = ( + 79AA0DF42FB806346AD1591F /* testime.c */, + ); + name = "test"; + sourceTree = ""; + }; + 6C4079D058CC76D8096A2679 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 03C6494775C36EF33B19751B /* AudioToolbox.framework */, + 44317F33060A115F02C8475A /* AudioUnit.framework */, + 3B867D6C49145AA925AF2E7E /* Cocoa.framework */, + 0D8C1FDC44723C795F45553E /* CoreAudio.framework */, + 2751676401665387040043AE /* IOKit.framework */, + 652305D64F7F23BF60A3781B /* Carbon.framework */, + 1FC20CF54F57650D632F3936 /* ForceFeedback.framework */, + 201502B9551224FC331936AE /* CoreFoundation.framework */, + 595D09E60F8839134F750E70 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 357E6BFF68C64972163A532B /* Products */ = { + isa = PBXGroup; + children = ( + 17FD149165DF326B35E60F6E /* testime */, + ); + name = "Products"; + sourceTree = ""; + }; + 3D743F9F13CF1A624B494301 /* Projects */ = { + isa = PBXGroup; + children = ( + 37660C5C6E012B0704F50800 /* SDL2main.xcodeproj */, + 6A0254215BC4336617C31D9F /* SDL2test.xcodeproj */, + 1870713219E80C70154F2196 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 19D178A72633052168735B58 /* Products */ = { + isa = PBXGroup; + children = ( + 5F310BC833587B680A015146 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 3145455649AC64EF07E379DC /* Products */ = { + isa = PBXGroup; + children = ( + 416A20CA6CC903846592741F /* libSDL2test.a */, + ); + name = Products; + sourceTree = ""; + }; + 15241B3C3A85203F0FCF6F85 /* Products */ = { + isa = PBXGroup; + children = ( + 2813134D4E980EB24DDA3264 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 28A779F01DAF51A46DFC491B /* testime */ = { + isa = PBXNativeTarget; + buildConfigurationList = 0CF9503A35A5750D3CF53617 /* Build configuration list for PBXNativeTarget "testime" */; + buildPhases = ( + 37EE1D73281F352A5C4F6B61 /* Resources */, + 42894CF45C075D0304B85980 /* Sources */, + 179F54385F0143A328DD5F70 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 75CE562B4E0E01DF17AF0196 /* PBXTargetDependency */, + 22354EEF6778265A6E087330 /* PBXTargetDependency */, + 7FE05C75435244CB7314546C /* PBXTargetDependency */, + ); + name = "testime"; + productInstallPath = "$(HOME)/bin"; + productName = "testime"; + productReference = 17FD149165DF326B35E60F6E /* testime */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testime" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 325432B320AA344064692D64 /* testime */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 19D178A72633052168735B58 /* Products */; + ProjectRef = 37660C5C6E012B0704F50800 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 3145455649AC64EF07E379DC /* Products */; + ProjectRef = 6A0254215BC4336617C31D9F /* SDL2test.xcodeproj */; + }, + { + ProductGroup = 15241B3C3A85203F0FCF6F85 /* Products */; + ProjectRef = 1870713219E80C70154F2196 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 28A779F01DAF51A46DFC491B /* testime */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 5F310BC833587B680A015146 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 6EF3411958EC070E65006F51 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 416A20CA6CC903846592741F /* libSDL2test.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2test.a"; + remoteRef = 0BD57E7411E16CFA3B9D70C2 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 2813134D4E980EB24DDA3264 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 14F02547192C24663BCD3EAC /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 37EE1D73281F352A5C4F6B61 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 42894CF45C075D0304B85980 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 394F2A6761A00C864DD37E29 /* testime.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 75CE562B4E0E01DF17AF0196 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 325B1E0712D96B626F4C6BAA /* PBXContainerItemProxy */; + }; + 22354EEF6778265A6E087330 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2test.a"; + targetProxy = 66340F2E53D977EA41C776EE /* PBXContainerItemProxy */; + }; + 7FE05C75435244CB7314546C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 34076F20333E45790DF76F27 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 2F314C5D29316B9B188C4A66 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testime"; + }; + name = "Debug Universal"; + }; + 542D68521CF11A7D3EA171FB /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testime"; + }; + name = "Debug Native"; + }; + 4AED11725C90159D0A022BA9 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testime"; + }; + name = "Release Universal"; + }; + 09BF6D6928B92148060B7493 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testime"; + }; + name = "Release Native"; + }; + 2A75165E3419785351B1758C /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 47D6655561D7721427A41223 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 0E315AB66A55310B5A154CC6 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 683A715D4A2E136E2F5E7BDD /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 0CF9503A35A5750D3CF53617 /* Build configuration list for PBXNativeTarget "testime" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 2F314C5D29316B9B188C4A66 /* Debug Universal */, + 542D68521CF11A7D3EA171FB /* Debug Native */, + 4AED11725C90159D0A022BA9 /* Release Universal */, + 09BF6D6928B92148060B7493 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testime" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 2A75165E3419785351B1758C /* Debug Universal */, + 47D6655561D7721427A41223 /* Debug Native */, + 0E315AB66A55310B5A154CC6 /* Release Universal */, + 683A715D4A2E136E2F5E7BDD /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode4/tests/testjoystick/testjoystick.xcodeproj/project.pbxproj b/premake/Xcode/Xcode4/tests/testjoystick/testjoystick.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..630970e8c81f7 --- /dev/null +++ b/premake/Xcode/Xcode4/tests/testjoystick/testjoystick.xcodeproj/project.pbxproj @@ -0,0 +1,455 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 0C3B15681CF539CA3CC139DD /* testjoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = 4A9E4BD653E644777C75025C /* testjoystick.c */; }; + 71C27DCD4DF2765442EA1E63 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 03E33B67177730F20A9D5AEC /* AudioToolbox.framework */; }; + 454A162C375B711355CB317E /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7F78527307DA13D200AA5A54 /* AudioUnit.framework */; }; + 0995246F20D1236E1B9B17A5 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 527F2B521FD35C312563275C /* Cocoa.framework */; }; + 48CB3D42589E2B150F1C2721 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0FC30264097B701715AD34AB /* CoreAudio.framework */; }; + 180706B859BE7BC377910AF8 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 036913677858077318882DAE /* IOKit.framework */; }; + 4EA011DE3F423FBB2E5623B9 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 38BC7431466663E705D91F31 /* Carbon.framework */; }; + 42BE685B4CAA5ADF0F146D65 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 79DA78A677084AAA11D81609 /* ForceFeedback.framework */; }; + 6D011A203DF05FBA6DD028DC /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 195B41E2126C016B50707429 /* CoreFoundation.framework */; }; + 61A136E2577960DB6EEA01D4 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 35B8783C675D2C6C728716BF /* OpenGL.framework */; }; + 2BE81931679D0A87404119E6 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 46F526BE1A41257B65EB2BF4 /* libSDL2main.a */; }; + 301601B7334672E66EA411B2 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CC008126DE8282F50707623 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 5323235E0A156C3D5026186E /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 527E6389744769125BC36F80 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 0FF7291B375C79BC57696B66; + remoteInfo = "libSDL2main.a"; + }; + 0CC915BF634B54F600480455 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 527E6389744769125BC36F80 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1BAE4A0A77462FDC330812A3; + remoteInfo = "libSDL2main.a"; + }; + 7024692B25CA1FA7259764BF /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 7A436A410E50308635AD1799 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 5E6D56F6655337845A3C44C3; + remoteInfo = "libSDL2.a"; + }; + 76191EFC631D36381C9717E0 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 7A436A410E50308635AD1799 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7E6A7BC23CFD134274963645; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 4A9E4BD653E644777C75025C /* testjoystick.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testjoystick.c"; path = "../../../../../test/testjoystick.c"; sourceTree = ""; }; + 03E33B67177730F20A9D5AEC /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 7F78527307DA13D200AA5A54 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 527F2B521FD35C312563275C /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 0FC30264097B701715AD34AB /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 036913677858077318882DAE /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 38BC7431466663E705D91F31 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 79DA78A677084AAA11D81609 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 195B41E2126C016B50707429 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 35B8783C675D2C6C728716BF /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 7D1714BA5AB54C650E8076B9 /* testjoystick */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testjoystick"; path = "testjoystick"; sourceTree = BUILT_PRODUCTS_DIR; }; + 527E6389744769125BC36F80 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 7A436A410E50308635AD1799 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 0930577343442747473E4629 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 71C27DCD4DF2765442EA1E63 /* AudioToolbox.framework in Frameworks */, + 454A162C375B711355CB317E /* AudioUnit.framework in Frameworks */, + 0995246F20D1236E1B9B17A5 /* Cocoa.framework in Frameworks */, + 48CB3D42589E2B150F1C2721 /* CoreAudio.framework in Frameworks */, + 180706B859BE7BC377910AF8 /* IOKit.framework in Frameworks */, + 4EA011DE3F423FBB2E5623B9 /* Carbon.framework in Frameworks */, + 42BE685B4CAA5ADF0F146D65 /* ForceFeedback.framework in Frameworks */, + 6D011A203DF05FBA6DD028DC /* CoreFoundation.framework in Frameworks */, + 61A136E2577960DB6EEA01D4 /* OpenGL.framework in Frameworks */, + 2BE81931679D0A87404119E6 /* libSDL2main.a in Frameworks */, + 301601B7334672E66EA411B2 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 25AC5C0F6CF6364F04E15787 /* testjoystick */ = { + isa = PBXGroup; + children = ( + 7DE642475F981AA0120A7012 /* test */, + 5FFB162C40F0749523C97550 /* Frameworks */, + 31041AE46F1E2CAF42617A9A /* Products */, + 387D1E442BF445230DC33E18 /* Projects */, + ); + name = "testjoystick"; + sourceTree = ""; + }; + 7DE642475F981AA0120A7012 /* test */ = { + isa = PBXGroup; + children = ( + 4A9E4BD653E644777C75025C /* testjoystick.c */, + ); + name = "test"; + sourceTree = ""; + }; + 5FFB162C40F0749523C97550 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 03E33B67177730F20A9D5AEC /* AudioToolbox.framework */, + 7F78527307DA13D200AA5A54 /* AudioUnit.framework */, + 527F2B521FD35C312563275C /* Cocoa.framework */, + 0FC30264097B701715AD34AB /* CoreAudio.framework */, + 036913677858077318882DAE /* IOKit.framework */, + 38BC7431466663E705D91F31 /* Carbon.framework */, + 79DA78A677084AAA11D81609 /* ForceFeedback.framework */, + 195B41E2126C016B50707429 /* CoreFoundation.framework */, + 35B8783C675D2C6C728716BF /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 31041AE46F1E2CAF42617A9A /* Products */ = { + isa = PBXGroup; + children = ( + 7D1714BA5AB54C650E8076B9 /* testjoystick */, + ); + name = "Products"; + sourceTree = ""; + }; + 387D1E442BF445230DC33E18 /* Projects */ = { + isa = PBXGroup; + children = ( + 527E6389744769125BC36F80 /* SDL2main.xcodeproj */, + 7A436A410E50308635AD1799 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 67A17E320C466E735C293C0C /* Products */ = { + isa = PBXGroup; + children = ( + 46F526BE1A41257B65EB2BF4 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 56B5333B1CBB605379E5418E /* Products */ = { + isa = PBXGroup; + children = ( + 4CC008126DE8282F50707623 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 762F2180692925D903DE7530 /* testjoystick */ = { + isa = PBXNativeTarget; + buildConfigurationList = 68EE18787A727F925A04560F /* Build configuration list for PBXNativeTarget "testjoystick" */; + buildPhases = ( + 7C9C744C6414779B070C3F27 /* Resources */, + 219F74776F723334228838F9 /* Sources */, + 0930577343442747473E4629 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 6F3800711E362B6C7D807662 /* PBXTargetDependency */, + 127B4E02081355961B21224F /* PBXTargetDependency */, + ); + name = "testjoystick"; + productInstallPath = "$(HOME)/bin"; + productName = "testjoystick"; + productReference = 7D1714BA5AB54C650E8076B9 /* testjoystick */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testjoystick" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 25AC5C0F6CF6364F04E15787 /* testjoystick */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 67A17E320C466E735C293C0C /* Products */; + ProjectRef = 527E6389744769125BC36F80 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 56B5333B1CBB605379E5418E /* Products */; + ProjectRef = 7A436A410E50308635AD1799 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 762F2180692925D903DE7530 /* testjoystick */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 46F526BE1A41257B65EB2BF4 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 5323235E0A156C3D5026186E /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 4CC008126DE8282F50707623 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 7024692B25CA1FA7259764BF /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 7C9C744C6414779B070C3F27 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 219F74776F723334228838F9 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0C3B15681CF539CA3CC139DD /* testjoystick.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 6F3800711E362B6C7D807662 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 0CC915BF634B54F600480455 /* PBXContainerItemProxy */; + }; + 127B4E02081355961B21224F /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 76191EFC631D36381C9717E0 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 62F2238176CC4DAA7F3979F0 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testjoystick"; + }; + name = "Debug Universal"; + }; + 024D21AC52F5635D0E9112B0 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testjoystick"; + }; + name = "Debug Native"; + }; + 70AC59A42D2765BA3F2143FD /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testjoystick"; + }; + name = "Release Universal"; + }; + 092F1FDF2AE72C4A3DAD605E /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testjoystick"; + }; + name = "Release Native"; + }; + 1CB278856A8C2BCA1C052BC8 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 211A322721AA4916028657EE /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 4184652A455149FA6BDA71CF /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 3D9E60086DAE3B44266473EF /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 68EE18787A727F925A04560F /* Build configuration list for PBXNativeTarget "testjoystick" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 62F2238176CC4DAA7F3979F0 /* Debug Universal */, + 024D21AC52F5635D0E9112B0 /* Debug Native */, + 70AC59A42D2765BA3F2143FD /* Release Universal */, + 092F1FDF2AE72C4A3DAD605E /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testjoystick" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1CB278856A8C2BCA1C052BC8 /* Debug Universal */, + 211A322721AA4916028657EE /* Debug Native */, + 4184652A455149FA6BDA71CF /* Release Universal */, + 3D9E60086DAE3B44266473EF /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode4/tests/testkeys/testkeys.xcodeproj/project.pbxproj b/premake/Xcode/Xcode4/tests/testkeys/testkeys.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..7fb699eb9db6b --- /dev/null +++ b/premake/Xcode/Xcode4/tests/testkeys/testkeys.xcodeproj/project.pbxproj @@ -0,0 +1,455 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 4DA8581B0A7C53E96C03556D /* testkeys.c in Sources */ = {isa = PBXBuildFile; fileRef = 5F706DD214D27DF501C14EB6 /* testkeys.c */; }; + 2FFF31A0196B5A3C5332393C /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6351118072A672A26EB73B87 /* AudioToolbox.framework */; }; + 2EC4789D44AE18192829504D /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1EAA4FFC29C60E6D2B1F2E2F /* AudioUnit.framework */; }; + 31D744C24BC8645A560D071A /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7C047D996F284DAC578A297A /* Cocoa.framework */; }; + 37DA616365771F1E78C43FD3 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 650164F7187B4307026602FB /* CoreAudio.framework */; }; + 117C249E05BD45375D0F2258 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 38CD4A94444C09BE487C493E /* IOKit.framework */; }; + 2B2C00F5670B0C52053A60C9 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 76BE5C3B28353CD972F2735E /* Carbon.framework */; }; + 6A200DEA22EC50FB369F3B9A /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 57F47C96019E52596A543FD3 /* ForceFeedback.framework */; }; + 158F79494D65297223DE77EC /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3C77462947EE01E71C0262D9 /* CoreFoundation.framework */; }; + 34022ECA0B42535D320D028D /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 496E0F3247EE5CB63DED5434 /* OpenGL.framework */; }; + 449F571D5F4746E50900034B /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7F465A823B8F66D0644D1F7B /* libSDL2main.a */; }; + 3CD347724C6E09F20DEE1F9A /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6D652C632B4630697E6B4DC6 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 5525725142D342A718BB47F0 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 663876E3365D144D0A172182 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 0FF7291B375C79BC57696B66; + remoteInfo = "libSDL2main.a"; + }; + 6FD7167D733D378A697F17C6 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 663876E3365D144D0A172182 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1BAE4A0A77462FDC330812A3; + remoteInfo = "libSDL2main.a"; + }; + 57A7543F77245DDD600C62CB /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 599E52DD2B4D6F1618165507 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 5E6D56F6655337845A3C44C3; + remoteInfo = "libSDL2.a"; + }; + 7FAE06FB7B0E61DA59AF7678 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 599E52DD2B4D6F1618165507 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7E6A7BC23CFD134274963645; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 5F706DD214D27DF501C14EB6 /* testkeys.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testkeys.c"; path = "../../../../../test/testkeys.c"; sourceTree = ""; }; + 6351118072A672A26EB73B87 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 1EAA4FFC29C60E6D2B1F2E2F /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 7C047D996F284DAC578A297A /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 650164F7187B4307026602FB /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 38CD4A94444C09BE487C493E /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 76BE5C3B28353CD972F2735E /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 57F47C96019E52596A543FD3 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 3C77462947EE01E71C0262D9 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 496E0F3247EE5CB63DED5434 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 125E670F2EF6388760084741 /* testkeys */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testkeys"; path = "testkeys"; sourceTree = BUILT_PRODUCTS_DIR; }; + 663876E3365D144D0A172182 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 599E52DD2B4D6F1618165507 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 3CDF672F5B3714DA1C9B3A40 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 2FFF31A0196B5A3C5332393C /* AudioToolbox.framework in Frameworks */, + 2EC4789D44AE18192829504D /* AudioUnit.framework in Frameworks */, + 31D744C24BC8645A560D071A /* Cocoa.framework in Frameworks */, + 37DA616365771F1E78C43FD3 /* CoreAudio.framework in Frameworks */, + 117C249E05BD45375D0F2258 /* IOKit.framework in Frameworks */, + 2B2C00F5670B0C52053A60C9 /* Carbon.framework in Frameworks */, + 6A200DEA22EC50FB369F3B9A /* ForceFeedback.framework in Frameworks */, + 158F79494D65297223DE77EC /* CoreFoundation.framework in Frameworks */, + 34022ECA0B42535D320D028D /* OpenGL.framework in Frameworks */, + 449F571D5F4746E50900034B /* libSDL2main.a in Frameworks */, + 3CD347724C6E09F20DEE1F9A /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 752048645A2C214960904451 /* testkeys */ = { + isa = PBXGroup; + children = ( + 471E06C672790ADE23244098 /* test */, + 01192A413E6D133854EF4C9D /* Frameworks */, + 25DE3A0F55DF524B71FC5DFC /* Products */, + 59497732228618F656124CE3 /* Projects */, + ); + name = "testkeys"; + sourceTree = ""; + }; + 471E06C672790ADE23244098 /* test */ = { + isa = PBXGroup; + children = ( + 5F706DD214D27DF501C14EB6 /* testkeys.c */, + ); + name = "test"; + sourceTree = ""; + }; + 01192A413E6D133854EF4C9D /* Frameworks */ = { + isa = PBXGroup; + children = ( + 6351118072A672A26EB73B87 /* AudioToolbox.framework */, + 1EAA4FFC29C60E6D2B1F2E2F /* AudioUnit.framework */, + 7C047D996F284DAC578A297A /* Cocoa.framework */, + 650164F7187B4307026602FB /* CoreAudio.framework */, + 38CD4A94444C09BE487C493E /* IOKit.framework */, + 76BE5C3B28353CD972F2735E /* Carbon.framework */, + 57F47C96019E52596A543FD3 /* ForceFeedback.framework */, + 3C77462947EE01E71C0262D9 /* CoreFoundation.framework */, + 496E0F3247EE5CB63DED5434 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 25DE3A0F55DF524B71FC5DFC /* Products */ = { + isa = PBXGroup; + children = ( + 125E670F2EF6388760084741 /* testkeys */, + ); + name = "Products"; + sourceTree = ""; + }; + 59497732228618F656124CE3 /* Projects */ = { + isa = PBXGroup; + children = ( + 663876E3365D144D0A172182 /* SDL2main.xcodeproj */, + 599E52DD2B4D6F1618165507 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 09F6276A3236377D09B0276A /* Products */ = { + isa = PBXGroup; + children = ( + 7F465A823B8F66D0644D1F7B /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 6E4236AF44D25A4F26447187 /* Products */ = { + isa = PBXGroup; + children = ( + 6D652C632B4630697E6B4DC6 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 08B745F63B373A742F274D82 /* testkeys */ = { + isa = PBXNativeTarget; + buildConfigurationList = 5605225A5A55358807E35C1C /* Build configuration list for PBXNativeTarget "testkeys" */; + buildPhases = ( + 35C741431D8A550C305F53F2 /* Resources */, + 421901F72356766B6C7F2112 /* Sources */, + 3CDF672F5B3714DA1C9B3A40 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 7FFF7277765562D4517F2845 /* PBXTargetDependency */, + 66C72485189A46F447046CA1 /* PBXTargetDependency */, + ); + name = "testkeys"; + productInstallPath = "$(HOME)/bin"; + productName = "testkeys"; + productReference = 125E670F2EF6388760084741 /* testkeys */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testkeys" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 752048645A2C214960904451 /* testkeys */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 09F6276A3236377D09B0276A /* Products */; + ProjectRef = 663876E3365D144D0A172182 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 6E4236AF44D25A4F26447187 /* Products */; + ProjectRef = 599E52DD2B4D6F1618165507 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 08B745F63B373A742F274D82 /* testkeys */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 7F465A823B8F66D0644D1F7B /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 5525725142D342A718BB47F0 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 6D652C632B4630697E6B4DC6 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 57A7543F77245DDD600C62CB /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 35C741431D8A550C305F53F2 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 421901F72356766B6C7F2112 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 4DA8581B0A7C53E96C03556D /* testkeys.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 7FFF7277765562D4517F2845 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 6FD7167D733D378A697F17C6 /* PBXContainerItemProxy */; + }; + 66C72485189A46F447046CA1 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 7FAE06FB7B0E61DA59AF7678 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 533C23E725B1284F671E1EDA /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testkeys"; + }; + name = "Debug Universal"; + }; + 2927476F5E3F31EF7028564D /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testkeys"; + }; + name = "Debug Native"; + }; + 197F04671FC35D7A1DC70A0B /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testkeys"; + }; + name = "Release Universal"; + }; + 1B022EA030B142EE3BCB2FF9 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testkeys"; + }; + name = "Release Native"; + }; + 332366361A6830EE594E2AA8 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 6F1F0C12245017BB18442236 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 592856F04D5330C646106701 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 0E4A335B4D9C752967CC3A7B /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 5605225A5A55358807E35C1C /* Build configuration list for PBXNativeTarget "testkeys" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 533C23E725B1284F671E1EDA /* Debug Universal */, + 2927476F5E3F31EF7028564D /* Debug Native */, + 197F04671FC35D7A1DC70A0B /* Release Universal */, + 1B022EA030B142EE3BCB2FF9 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testkeys" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 332366361A6830EE594E2AA8 /* Debug Universal */, + 6F1F0C12245017BB18442236 /* Debug Native */, + 592856F04D5330C646106701 /* Release Universal */, + 0E4A335B4D9C752967CC3A7B /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode4/tests/testloadso/testloadso.xcodeproj/project.pbxproj b/premake/Xcode/Xcode4/tests/testloadso/testloadso.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..7c5bdb3cfc28d --- /dev/null +++ b/premake/Xcode/Xcode4/tests/testloadso/testloadso.xcodeproj/project.pbxproj @@ -0,0 +1,455 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 675F2CA916DA7C3C032C3F70 /* testloadso.c in Sources */ = {isa = PBXBuildFile; fileRef = 32B85C9144642EF10B2A1E64 /* testloadso.c */; }; + 65E07B025319241F0D962222 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 704B06EA1084514E72465EC1 /* AudioToolbox.framework */; }; + 283A2FB343C61B5529546331 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 01DC3ECF32C531C12FF465EE /* AudioUnit.framework */; }; + 2DA26E0920675D43189920A2 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 335463942EAF71CE29714330 /* Cocoa.framework */; }; + 4004622A4F0E5B84596E6A2B /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0D2B18410B6057CE25F860D3 /* CoreAudio.framework */; }; + 1D9B2DF26E8C5F137A4F7681 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6DAA4596177E5C87598479DB /* IOKit.framework */; }; + 69C541291AFC22604DDD6B3A /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2545758C7A2878281F863BE9 /* Carbon.framework */; }; + 049A1AE677477B8E326E5785 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 342725A2671A739F55731C6A /* ForceFeedback.framework */; }; + 1F986CEB5BF06E5B1C755C56 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 150515A452E56A8D099A78C6 /* CoreFoundation.framework */; }; + 062F100568181EF02F5A6F11 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 16DE51F007B93EB03EB43EC7 /* OpenGL.framework */; }; + 23241F8709F74BEB3FB677C9 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4E2A4AC358FF047756347CA6 /* libSDL2main.a */; }; + 48E6195D41D116AD4B5C4592 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3BDC7F4271875C68563342DF /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 536309967083618F7BD3787C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 73541FC8337D02E922714D3E /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 0FF7291B375C79BC57696B66; + remoteInfo = "libSDL2main.a"; + }; + 5475613A633363582E543E4A /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 73541FC8337D02E922714D3E /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1BAE4A0A77462FDC330812A3; + remoteInfo = "libSDL2main.a"; + }; + 4CAD20E12CE863DE130413F1 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 69F7681A28D4137056353384 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 5E6D56F6655337845A3C44C3; + remoteInfo = "libSDL2.a"; + }; + 5ED454B4280D757E415D586A /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 69F7681A28D4137056353384 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7E6A7BC23CFD134274963645; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 32B85C9144642EF10B2A1E64 /* testloadso.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testloadso.c"; path = "../../../../../test/testloadso.c"; sourceTree = ""; }; + 704B06EA1084514E72465EC1 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 01DC3ECF32C531C12FF465EE /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 335463942EAF71CE29714330 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 0D2B18410B6057CE25F860D3 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 6DAA4596177E5C87598479DB /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 2545758C7A2878281F863BE9 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 342725A2671A739F55731C6A /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 150515A452E56A8D099A78C6 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 16DE51F007B93EB03EB43EC7 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 531079513A13548502E25ED8 /* testloadso */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testloadso"; path = "testloadso"; sourceTree = BUILT_PRODUCTS_DIR; }; + 73541FC8337D02E922714D3E /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 69F7681A28D4137056353384 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 2363634379F627615CDC1EAD /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 65E07B025319241F0D962222 /* AudioToolbox.framework in Frameworks */, + 283A2FB343C61B5529546331 /* AudioUnit.framework in Frameworks */, + 2DA26E0920675D43189920A2 /* Cocoa.framework in Frameworks */, + 4004622A4F0E5B84596E6A2B /* CoreAudio.framework in Frameworks */, + 1D9B2DF26E8C5F137A4F7681 /* IOKit.framework in Frameworks */, + 69C541291AFC22604DDD6B3A /* Carbon.framework in Frameworks */, + 049A1AE677477B8E326E5785 /* ForceFeedback.framework in Frameworks */, + 1F986CEB5BF06E5B1C755C56 /* CoreFoundation.framework in Frameworks */, + 062F100568181EF02F5A6F11 /* OpenGL.framework in Frameworks */, + 23241F8709F74BEB3FB677C9 /* libSDL2main.a in Frameworks */, + 48E6195D41D116AD4B5C4592 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 333A601E54FF648A4146191A /* testloadso */ = { + isa = PBXGroup; + children = ( + 05045C1C4021369F31D67D4E /* test */, + 6F137E16024736972D7858E6 /* Frameworks */, + 4B3C53EF75A52B1703DF47D1 /* Products */, + 6CB8545C0BE05048370560A6 /* Projects */, + ); + name = "testloadso"; + sourceTree = ""; + }; + 05045C1C4021369F31D67D4E /* test */ = { + isa = PBXGroup; + children = ( + 32B85C9144642EF10B2A1E64 /* testloadso.c */, + ); + name = "test"; + sourceTree = ""; + }; + 6F137E16024736972D7858E6 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 704B06EA1084514E72465EC1 /* AudioToolbox.framework */, + 01DC3ECF32C531C12FF465EE /* AudioUnit.framework */, + 335463942EAF71CE29714330 /* Cocoa.framework */, + 0D2B18410B6057CE25F860D3 /* CoreAudio.framework */, + 6DAA4596177E5C87598479DB /* IOKit.framework */, + 2545758C7A2878281F863BE9 /* Carbon.framework */, + 342725A2671A739F55731C6A /* ForceFeedback.framework */, + 150515A452E56A8D099A78C6 /* CoreFoundation.framework */, + 16DE51F007B93EB03EB43EC7 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 4B3C53EF75A52B1703DF47D1 /* Products */ = { + isa = PBXGroup; + children = ( + 531079513A13548502E25ED8 /* testloadso */, + ); + name = "Products"; + sourceTree = ""; + }; + 6CB8545C0BE05048370560A6 /* Projects */ = { + isa = PBXGroup; + children = ( + 73541FC8337D02E922714D3E /* SDL2main.xcodeproj */, + 69F7681A28D4137056353384 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 0A142D3D2C5076C106A07C4D /* Products */ = { + isa = PBXGroup; + children = ( + 4E2A4AC358FF047756347CA6 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 098A543022881A824E783AB1 /* Products */ = { + isa = PBXGroup; + children = ( + 3BDC7F4271875C68563342DF /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 61B07FC63D83695771FE0D01 /* testloadso */ = { + isa = PBXNativeTarget; + buildConfigurationList = 794A046A04B6738725CF6838 /* Build configuration list for PBXNativeTarget "testloadso" */; + buildPhases = ( + 39DC3E662F376B6155232104 /* Resources */, + 27A76E07432162BB66CA167F /* Sources */, + 2363634379F627615CDC1EAD /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 0BEF101627C91E4C36A855B3 /* PBXTargetDependency */, + 1F8704651F1B2A846BA9522D /* PBXTargetDependency */, + ); + name = "testloadso"; + productInstallPath = "$(HOME)/bin"; + productName = "testloadso"; + productReference = 531079513A13548502E25ED8 /* testloadso */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testloadso" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 333A601E54FF648A4146191A /* testloadso */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 0A142D3D2C5076C106A07C4D /* Products */; + ProjectRef = 73541FC8337D02E922714D3E /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 098A543022881A824E783AB1 /* Products */; + ProjectRef = 69F7681A28D4137056353384 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 61B07FC63D83695771FE0D01 /* testloadso */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 4E2A4AC358FF047756347CA6 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 536309967083618F7BD3787C /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 3BDC7F4271875C68563342DF /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 4CAD20E12CE863DE130413F1 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 39DC3E662F376B6155232104 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 27A76E07432162BB66CA167F /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 675F2CA916DA7C3C032C3F70 /* testloadso.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 0BEF101627C91E4C36A855B3 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 5475613A633363582E543E4A /* PBXContainerItemProxy */; + }; + 1F8704651F1B2A846BA9522D /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 5ED454B4280D757E415D586A /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 79B1708E276152A4146E5B78 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testloadso"; + }; + name = "Debug Universal"; + }; + 0FF601D35A25749446BB405F /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testloadso"; + }; + name = "Debug Native"; + }; + 5CC925AF3E036DB47DCA6F2F /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testloadso"; + }; + name = "Release Universal"; + }; + 57E445787D9548AF09783FED /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testloadso"; + }; + name = "Release Native"; + }; + 307F778D66D80D3E0DA37B01 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 4DC574BC7BD43DC413E952A5 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 7FC02954554609FD74546607 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 0F133ADF3DFF69DF400F3F34 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 794A046A04B6738725CF6838 /* Build configuration list for PBXNativeTarget "testloadso" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 79B1708E276152A4146E5B78 /* Debug Universal */, + 0FF601D35A25749446BB405F /* Debug Native */, + 5CC925AF3E036DB47DCA6F2F /* Release Universal */, + 57E445787D9548AF09783FED /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testloadso" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 307F778D66D80D3E0DA37B01 /* Debug Universal */, + 4DC574BC7BD43DC413E952A5 /* Debug Native */, + 7FC02954554609FD74546607 /* Release Universal */, + 0F133ADF3DFF69DF400F3F34 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode4/tests/testlock/testlock.xcodeproj/project.pbxproj b/premake/Xcode/Xcode4/tests/testlock/testlock.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..865a305f04139 --- /dev/null +++ b/premake/Xcode/Xcode4/tests/testlock/testlock.xcodeproj/project.pbxproj @@ -0,0 +1,455 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 464D099409B56A025D07370F /* testlock.c in Sources */ = {isa = PBXBuildFile; fileRef = 303629951FED2A5765724870 /* testlock.c */; }; + 052351CC4F9E4B6E44250C3F /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 49BB451B295D277B7D765BC3 /* AudioToolbox.framework */; }; + 1C8656CF46240D9B446F58A3 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3AE3122E28F11EE42BFC3028 /* AudioUnit.framework */; }; + 240C41522E7932B808AC70A5 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A1C299D2BDB3B314F6B1029 /* Cocoa.framework */; }; + 04315780299C5DAC5D191450 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1435448374E91242508C1DFD /* CoreAudio.framework */; }; + 5A950F951A1906E67F99227C /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1E207F6807A168120A05078F /* IOKit.framework */; }; + 55A61235013967C8177E629B /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 27FD6CD47174045B0C5139D9 /* Carbon.framework */; }; + 797644D711B31EF85DF64989 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4DC43A183395100008F80EC6 /* ForceFeedback.framework */; }; + 096227602F74035F6AA86036 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7AF862177E6D59C2743908B0 /* CoreFoundation.framework */; }; + 71925C9F0ABF1EF25BB43581 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 023F0A5E5AAC54C42D507C57 /* OpenGL.framework */; }; + 3BAA31AD0D3550A8471607A7 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 33890A8462A974BE26B27B2C /* libSDL2main.a */; }; + 5DFB41BC5ED63FF91FB530AA /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E2B068C783248C4409B30B1 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 17CE07D20ECC04C81F154F95 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 6177061D7C0E3B8132F64583 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 0FF7291B375C79BC57696B66; + remoteInfo = "libSDL2main.a"; + }; + 5650341357E0668F5BFC25A1 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 6177061D7C0E3B8132F64583 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1BAE4A0A77462FDC330812A3; + remoteInfo = "libSDL2main.a"; + }; + 244B3F5457477A9E34B239FE /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 6865724F21A644CE4DE46685 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 5E6D56F6655337845A3C44C3; + remoteInfo = "libSDL2.a"; + }; + 06771B79538D0B3D58770EE9 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 6865724F21A644CE4DE46685 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7E6A7BC23CFD134274963645; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 303629951FED2A5765724870 /* testlock.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testlock.c"; path = "../../../../../test/testlock.c"; sourceTree = ""; }; + 49BB451B295D277B7D765BC3 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 3AE3122E28F11EE42BFC3028 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 4A1C299D2BDB3B314F6B1029 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 1435448374E91242508C1DFD /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 1E207F6807A168120A05078F /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 27FD6CD47174045B0C5139D9 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 4DC43A183395100008F80EC6 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 7AF862177E6D59C2743908B0 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 023F0A5E5AAC54C42D507C57 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 041A4BDD31554D3571F92007 /* testlock */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testlock"; path = "testlock"; sourceTree = BUILT_PRODUCTS_DIR; }; + 6177061D7C0E3B8132F64583 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 6865724F21A644CE4DE46685 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 298D01234D8636BD453C7009 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 052351CC4F9E4B6E44250C3F /* AudioToolbox.framework in Frameworks */, + 1C8656CF46240D9B446F58A3 /* AudioUnit.framework in Frameworks */, + 240C41522E7932B808AC70A5 /* Cocoa.framework in Frameworks */, + 04315780299C5DAC5D191450 /* CoreAudio.framework in Frameworks */, + 5A950F951A1906E67F99227C /* IOKit.framework in Frameworks */, + 55A61235013967C8177E629B /* Carbon.framework in Frameworks */, + 797644D711B31EF85DF64989 /* ForceFeedback.framework in Frameworks */, + 096227602F74035F6AA86036 /* CoreFoundation.framework in Frameworks */, + 71925C9F0ABF1EF25BB43581 /* OpenGL.framework in Frameworks */, + 3BAA31AD0D3550A8471607A7 /* libSDL2main.a in Frameworks */, + 5DFB41BC5ED63FF91FB530AA /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 681956225A8E3A216AC3441F /* testlock */ = { + isa = PBXGroup; + children = ( + 74E92D4B384360A84FDB3C8C /* test */, + 7A3825626F257B511FB1480C /* Frameworks */, + 3B0349C5321331C46F244294 /* Products */, + 0A166AA10BAD117458CE5FCC /* Projects */, + ); + name = "testlock"; + sourceTree = ""; + }; + 74E92D4B384360A84FDB3C8C /* test */ = { + isa = PBXGroup; + children = ( + 303629951FED2A5765724870 /* testlock.c */, + ); + name = "test"; + sourceTree = ""; + }; + 7A3825626F257B511FB1480C /* Frameworks */ = { + isa = PBXGroup; + children = ( + 49BB451B295D277B7D765BC3 /* AudioToolbox.framework */, + 3AE3122E28F11EE42BFC3028 /* AudioUnit.framework */, + 4A1C299D2BDB3B314F6B1029 /* Cocoa.framework */, + 1435448374E91242508C1DFD /* CoreAudio.framework */, + 1E207F6807A168120A05078F /* IOKit.framework */, + 27FD6CD47174045B0C5139D9 /* Carbon.framework */, + 4DC43A183395100008F80EC6 /* ForceFeedback.framework */, + 7AF862177E6D59C2743908B0 /* CoreFoundation.framework */, + 023F0A5E5AAC54C42D507C57 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 3B0349C5321331C46F244294 /* Products */ = { + isa = PBXGroup; + children = ( + 041A4BDD31554D3571F92007 /* testlock */, + ); + name = "Products"; + sourceTree = ""; + }; + 0A166AA10BAD117458CE5FCC /* Projects */ = { + isa = PBXGroup; + children = ( + 6177061D7C0E3B8132F64583 /* SDL2main.xcodeproj */, + 6865724F21A644CE4DE46685 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 7903382F245B66083BBE3859 /* Products */ = { + isa = PBXGroup; + children = ( + 33890A8462A974BE26B27B2C /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 302212A05009225D3FCE6DE6 /* Products */ = { + isa = PBXGroup; + children = ( + 3E2B068C783248C4409B30B1 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 40470667040E6F8C50D50012 /* testlock */ = { + isa = PBXNativeTarget; + buildConfigurationList = 27716FD716A9432C32F25B23 /* Build configuration list for PBXNativeTarget "testlock" */; + buildPhases = ( + 692E549A7E3358384E3733B2 /* Resources */, + 237419BA2D383DF673523425 /* Sources */, + 298D01234D8636BD453C7009 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 0A6521E6190523DB1C8C4108 /* PBXTargetDependency */, + 770F7CA47BC4167F06A21F89 /* PBXTargetDependency */, + ); + name = "testlock"; + productInstallPath = "$(HOME)/bin"; + productName = "testlock"; + productReference = 041A4BDD31554D3571F92007 /* testlock */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testlock" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 681956225A8E3A216AC3441F /* testlock */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 7903382F245B66083BBE3859 /* Products */; + ProjectRef = 6177061D7C0E3B8132F64583 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 302212A05009225D3FCE6DE6 /* Products */; + ProjectRef = 6865724F21A644CE4DE46685 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 40470667040E6F8C50D50012 /* testlock */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 33890A8462A974BE26B27B2C /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 17CE07D20ECC04C81F154F95 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 3E2B068C783248C4409B30B1 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 244B3F5457477A9E34B239FE /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 692E549A7E3358384E3733B2 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 237419BA2D383DF673523425 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 464D099409B56A025D07370F /* testlock.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 0A6521E6190523DB1C8C4108 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 5650341357E0668F5BFC25A1 /* PBXContainerItemProxy */; + }; + 770F7CA47BC4167F06A21F89 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 06771B79538D0B3D58770EE9 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 325E4A39751029CC29641169 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testlock"; + }; + name = "Debug Universal"; + }; + 69C341AE0DA219DD15903D1A /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testlock"; + }; + name = "Debug Native"; + }; + 555606CB31C44C8A2B111D01 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testlock"; + }; + name = "Release Universal"; + }; + 584C18712BE157D03A7D7213 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testlock"; + }; + name = "Release Native"; + }; + 30410A022775752756B93570 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 28BD44C64254571D3A1372F5 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 42116BFB40A468EF3850457E /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 6232789A0320412B262D7583 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 27716FD716A9432C32F25B23 /* Build configuration list for PBXNativeTarget "testlock" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 325E4A39751029CC29641169 /* Debug Universal */, + 69C341AE0DA219DD15903D1A /* Debug Native */, + 555606CB31C44C8A2B111D01 /* Release Universal */, + 584C18712BE157D03A7D7213 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testlock" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 30410A022775752756B93570 /* Debug Universal */, + 28BD44C64254571D3A1372F5 /* Debug Native */, + 42116BFB40A468EF3850457E /* Release Universal */, + 6232789A0320412B262D7583 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode4/tests/testmessage/testmessage.xcodeproj/project.pbxproj b/premake/Xcode/Xcode4/tests/testmessage/testmessage.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..f6f8cb3407ee3 --- /dev/null +++ b/premake/Xcode/Xcode4/tests/testmessage/testmessage.xcodeproj/project.pbxproj @@ -0,0 +1,455 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 5767529A3522703629040688 /* testmessage.c in Sources */ = {isa = PBXBuildFile; fileRef = 5DD97010395037282F665AC7 /* testmessage.c */; }; + 64D6581375BA45B03050786A /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 099528AA5EC7195A0C2F07C8 /* AudioToolbox.framework */; }; + 449F286F1B840CFD37674D78 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 08335297585E0D73055F48E7 /* AudioUnit.framework */; }; + 491B18A727FA0F4B3E825BD6 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 35E4352875EF2AD5378A6CED /* Cocoa.framework */; }; + 21835E642D02791F0BC34864 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5FAB62DA6869530B17F6431C /* CoreAudio.framework */; }; + 1099586A26E4497937283F25 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 51DF3C17483B4F064A1E7CF0 /* IOKit.framework */; }; + 3DDA6F0D7C7C60B32B2654F6 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4EB146ED0AC2064011287456 /* Carbon.framework */; }; + 719D0ADB38901C5C77E17BCB /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7F5D45CA5E0270A21C5262E6 /* ForceFeedback.framework */; }; + 0ADF47A140B4144222C81266 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 64DE6C0B73DF4EE142DE190E /* CoreFoundation.framework */; }; + 2DD50C1D71951EF04CD56180 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1137428873C74F5100FC3064 /* OpenGL.framework */; }; + 4F0563030DAF1D6E35A7732B /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 31A7773A0CCB75C4561B378A /* libSDL2main.a */; }; + 3AA41962215E2B5572E72112 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5BA0171E5FA61B1B0FD52393 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 2BDD56E7777C106C52E40F67 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 15C221FF7E40485036615184 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 0FF7291B375C79BC57696B66; + remoteInfo = "libSDL2main.a"; + }; + 6C53574F060D7AA923AE34F2 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 15C221FF7E40485036615184 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1BAE4A0A77462FDC330812A3; + remoteInfo = "libSDL2main.a"; + }; + 4C3209221978380E2599132C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 25B44CAC5E4B36DF7B0A066E /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 5E6D56F6655337845A3C44C3; + remoteInfo = "libSDL2.a"; + }; + 2E4879CC5CC510136E9D2205 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 25B44CAC5E4B36DF7B0A066E /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7E6A7BC23CFD134274963645; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 5DD97010395037282F665AC7 /* testmessage.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testmessage.c"; path = "../../../../../test/testmessage.c"; sourceTree = ""; }; + 099528AA5EC7195A0C2F07C8 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 08335297585E0D73055F48E7 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 35E4352875EF2AD5378A6CED /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 5FAB62DA6869530B17F6431C /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 51DF3C17483B4F064A1E7CF0 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 4EB146ED0AC2064011287456 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 7F5D45CA5E0270A21C5262E6 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 64DE6C0B73DF4EE142DE190E /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 1137428873C74F5100FC3064 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 749D7EBC738966C459E16E13 /* testmessage */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testmessage"; path = "testmessage"; sourceTree = BUILT_PRODUCTS_DIR; }; + 15C221FF7E40485036615184 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 25B44CAC5E4B36DF7B0A066E /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 0A9A0819616F6BE058270798 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 64D6581375BA45B03050786A /* AudioToolbox.framework in Frameworks */, + 449F286F1B840CFD37674D78 /* AudioUnit.framework in Frameworks */, + 491B18A727FA0F4B3E825BD6 /* Cocoa.framework in Frameworks */, + 21835E642D02791F0BC34864 /* CoreAudio.framework in Frameworks */, + 1099586A26E4497937283F25 /* IOKit.framework in Frameworks */, + 3DDA6F0D7C7C60B32B2654F6 /* Carbon.framework in Frameworks */, + 719D0ADB38901C5C77E17BCB /* ForceFeedback.framework in Frameworks */, + 0ADF47A140B4144222C81266 /* CoreFoundation.framework in Frameworks */, + 2DD50C1D71951EF04CD56180 /* OpenGL.framework in Frameworks */, + 4F0563030DAF1D6E35A7732B /* libSDL2main.a in Frameworks */, + 3AA41962215E2B5572E72112 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 5FC50ADD454020E5323A2AA0 /* testmessage */ = { + isa = PBXGroup; + children = ( + 0B05206B66ED595F1D7C4403 /* test */, + 530C55305C124BD1075E3E52 /* Frameworks */, + 454567E918C06F0C3AC71891 /* Products */, + 178D669B655E018F09FE1253 /* Projects */, + ); + name = "testmessage"; + sourceTree = ""; + }; + 0B05206B66ED595F1D7C4403 /* test */ = { + isa = PBXGroup; + children = ( + 5DD97010395037282F665AC7 /* testmessage.c */, + ); + name = "test"; + sourceTree = ""; + }; + 530C55305C124BD1075E3E52 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 099528AA5EC7195A0C2F07C8 /* AudioToolbox.framework */, + 08335297585E0D73055F48E7 /* AudioUnit.framework */, + 35E4352875EF2AD5378A6CED /* Cocoa.framework */, + 5FAB62DA6869530B17F6431C /* CoreAudio.framework */, + 51DF3C17483B4F064A1E7CF0 /* IOKit.framework */, + 4EB146ED0AC2064011287456 /* Carbon.framework */, + 7F5D45CA5E0270A21C5262E6 /* ForceFeedback.framework */, + 64DE6C0B73DF4EE142DE190E /* CoreFoundation.framework */, + 1137428873C74F5100FC3064 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 454567E918C06F0C3AC71891 /* Products */ = { + isa = PBXGroup; + children = ( + 749D7EBC738966C459E16E13 /* testmessage */, + ); + name = "Products"; + sourceTree = ""; + }; + 178D669B655E018F09FE1253 /* Projects */ = { + isa = PBXGroup; + children = ( + 15C221FF7E40485036615184 /* SDL2main.xcodeproj */, + 25B44CAC5E4B36DF7B0A066E /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 3E4272E8119778BF69B661A9 /* Products */ = { + isa = PBXGroup; + children = ( + 31A7773A0CCB75C4561B378A /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 704A169C1BC120CA306E3371 /* Products */ = { + isa = PBXGroup; + children = ( + 5BA0171E5FA61B1B0FD52393 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 3B9021E41CC208EF36BD5070 /* testmessage */ = { + isa = PBXNativeTarget; + buildConfigurationList = 2D8E5CC921A56E375F6364E0 /* Build configuration list for PBXNativeTarget "testmessage" */; + buildPhases = ( + 57C15BBC45BF101F65EE2DC8 /* Resources */, + 5FF62E3536DA423473AA21B7 /* Sources */, + 0A9A0819616F6BE058270798 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 2DDE4A26235877E376223910 /* PBXTargetDependency */, + 288D78E71FA72ED52D681195 /* PBXTargetDependency */, + ); + name = "testmessage"; + productInstallPath = "$(HOME)/bin"; + productName = "testmessage"; + productReference = 749D7EBC738966C459E16E13 /* testmessage */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testmessage" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 5FC50ADD454020E5323A2AA0 /* testmessage */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 3E4272E8119778BF69B661A9 /* Products */; + ProjectRef = 15C221FF7E40485036615184 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 704A169C1BC120CA306E3371 /* Products */; + ProjectRef = 25B44CAC5E4B36DF7B0A066E /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 3B9021E41CC208EF36BD5070 /* testmessage */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 31A7773A0CCB75C4561B378A /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 2BDD56E7777C106C52E40F67 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 5BA0171E5FA61B1B0FD52393 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 4C3209221978380E2599132C /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 57C15BBC45BF101F65EE2DC8 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 5FF62E3536DA423473AA21B7 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 5767529A3522703629040688 /* testmessage.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 2DDE4A26235877E376223910 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 6C53574F060D7AA923AE34F2 /* PBXContainerItemProxy */; + }; + 288D78E71FA72ED52D681195 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 2E4879CC5CC510136E9D2205 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 22126C6017637EF3422B2F90 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testmessage"; + }; + name = "Debug Universal"; + }; + 182D5B4312F07E0A60F700F4 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testmessage"; + }; + name = "Debug Native"; + }; + 0C0F487B336933774FD41CA7 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testmessage"; + }; + name = "Release Universal"; + }; + 372E5E696BD86FB56EAB426F /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testmessage"; + }; + name = "Release Native"; + }; + 45BE7A05094F5A2676C24204 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 37D05FA50393590C3018123D /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 34AF5D817D2E6001113D4EFE /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 0886221F4C3876B5245A3E7B /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 2D8E5CC921A56E375F6364E0 /* Build configuration list for PBXNativeTarget "testmessage" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 22126C6017637EF3422B2F90 /* Debug Universal */, + 182D5B4312F07E0A60F700F4 /* Debug Native */, + 0C0F487B336933774FD41CA7 /* Release Universal */, + 372E5E696BD86FB56EAB426F /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testmessage" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 45BE7A05094F5A2676C24204 /* Debug Universal */, + 37D05FA50393590C3018123D /* Debug Native */, + 34AF5D817D2E6001113D4EFE /* Release Universal */, + 0886221F4C3876B5245A3E7B /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode4/tests/testmultiaudio/testmultiaudio.xcodeproj/project.pbxproj b/premake/Xcode/Xcode4/tests/testmultiaudio/testmultiaudio.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..50fc46f028dcf --- /dev/null +++ b/premake/Xcode/Xcode4/tests/testmultiaudio/testmultiaudio.xcodeproj/project.pbxproj @@ -0,0 +1,472 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 5B16080A7C1639D0122E149C /* testmultiaudio.c in Sources */ = {isa = PBXBuildFile; fileRef = 3B5A3EE66EBC7F8F3A6B5D64 /* testmultiaudio.c */; }; + 5772338C5EFB4F651F573453 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6A6B3F9A2E426F67589949DD /* AudioToolbox.framework */; }; + 01F86ABF2AA954B61B9C5C7C /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4868428E0A5642B04D6B492C /* AudioUnit.framework */; }; + 37E201550652085D2AAF75D0 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6FD918D55698412D159B108D /* Cocoa.framework */; }; + 28D202667CC70AFE67762516 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5787692068CA6130171112C8 /* CoreAudio.framework */; }; + 684A6E04086A0CE3270D55E1 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 70C92EFF1F694BD107806CC8 /* IOKit.framework */; }; + 0F7C4868241B0F8453903245 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3A3B08A545610DBF084E408B /* Carbon.framework */; }; + 47BB5DC56AA872264C523B06 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52767C257ADD75A4103C1475 /* ForceFeedback.framework */; }; + 483C7F9D36612C364A087BD0 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1B833A9D3CD039247F914826 /* CoreFoundation.framework */; }; + 689143D979AB73DA00427A3E /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 21922A7E5D1C5D220B781600 /* OpenGL.framework */; }; + 146A510744AA0C8045C8088F /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 75F96D1178CE3EDA5EDD3846 /* libSDL2main.a */; }; + 57992D096A11314075B9756B /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 35A027E7442969F6554C1C90 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 25D96D504D7B66983FA7732A /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 4B474D1E086F3B2A74B924D2 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 0FF7291B375C79BC57696B66; + remoteInfo = "libSDL2main.a"; + }; + 0B8763CC23F268B568D10AD5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 4B474D1E086F3B2A74B924D2 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1BAE4A0A77462FDC330812A3; + remoteInfo = "libSDL2main.a"; + }; + 3C6322AD183B6E8B7B532BF3 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 7C1E4C9B6AB6743226ED50AB /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 5E6D56F6655337845A3C44C3; + remoteInfo = "libSDL2.a"; + }; + 04BE0F9057D644014857532E /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 7C1E4C9B6AB6743226ED50AB /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7E6A7BC23CFD134274963645; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 3B5A3EE66EBC7F8F3A6B5D64 /* testmultiaudio.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testmultiaudio.c"; path = "../../../../../test/testmultiaudio.c"; sourceTree = ""; }; + 6A6B3F9A2E426F67589949DD /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 4868428E0A5642B04D6B492C /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 6FD918D55698412D159B108D /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 5787692068CA6130171112C8 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 70C92EFF1F694BD107806CC8 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 3A3B08A545610DBF084E408B /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 52767C257ADD75A4103C1475 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 1B833A9D3CD039247F914826 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 21922A7E5D1C5D220B781600 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 3C495F467A983F522C564E72 /* testmultiaudio */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testmultiaudio"; path = "testmultiaudio"; sourceTree = BUILT_PRODUCTS_DIR; }; + 4B474D1E086F3B2A74B924D2 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 7C1E4C9B6AB6743226ED50AB /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 487179E5445A216D1D18270C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 5772338C5EFB4F651F573453 /* AudioToolbox.framework in Frameworks */, + 01F86ABF2AA954B61B9C5C7C /* AudioUnit.framework in Frameworks */, + 37E201550652085D2AAF75D0 /* Cocoa.framework in Frameworks */, + 28D202667CC70AFE67762516 /* CoreAudio.framework in Frameworks */, + 684A6E04086A0CE3270D55E1 /* IOKit.framework in Frameworks */, + 0F7C4868241B0F8453903245 /* Carbon.framework in Frameworks */, + 47BB5DC56AA872264C523B06 /* ForceFeedback.framework in Frameworks */, + 483C7F9D36612C364A087BD0 /* CoreFoundation.framework in Frameworks */, + 689143D979AB73DA00427A3E /* OpenGL.framework in Frameworks */, + 146A510744AA0C8045C8088F /* libSDL2main.a in Frameworks */, + 57992D096A11314075B9756B /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 404C48F977DC231207427E24 /* testmultiaudio */ = { + isa = PBXGroup; + children = ( + 720E022104FA4A154B7441E5 /* test */, + 13F027D51E5C4A5403494B6F /* Frameworks */, + 2CCC173728DF48C46C2D0B91 /* Products */, + 61F5554E2911207B21EF715B /* Projects */, + ); + name = "testmultiaudio"; + sourceTree = ""; + }; + 720E022104FA4A154B7441E5 /* test */ = { + isa = PBXGroup; + children = ( + 3B5A3EE66EBC7F8F3A6B5D64 /* testmultiaudio.c */, + ); + name = "test"; + sourceTree = ""; + }; + 13F027D51E5C4A5403494B6F /* Frameworks */ = { + isa = PBXGroup; + children = ( + 6A6B3F9A2E426F67589949DD /* AudioToolbox.framework */, + 4868428E0A5642B04D6B492C /* AudioUnit.framework */, + 6FD918D55698412D159B108D /* Cocoa.framework */, + 5787692068CA6130171112C8 /* CoreAudio.framework */, + 70C92EFF1F694BD107806CC8 /* IOKit.framework */, + 3A3B08A545610DBF084E408B /* Carbon.framework */, + 52767C257ADD75A4103C1475 /* ForceFeedback.framework */, + 1B833A9D3CD039247F914826 /* CoreFoundation.framework */, + 21922A7E5D1C5D220B781600 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 2CCC173728DF48C46C2D0B91 /* Products */ = { + isa = PBXGroup; + children = ( + 3C495F467A983F522C564E72 /* testmultiaudio */, + ); + name = "Products"; + sourceTree = ""; + }; + 61F5554E2911207B21EF715B /* Projects */ = { + isa = PBXGroup; + children = ( + 4B474D1E086F3B2A74B924D2 /* SDL2main.xcodeproj */, + 7C1E4C9B6AB6743226ED50AB /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 4B18394505DC300669284470 /* Products */ = { + isa = PBXGroup; + children = ( + 75F96D1178CE3EDA5EDD3846 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 7F6F72F835212A7B0DA40F61 /* Products */ = { + isa = PBXGroup; + children = ( + 35A027E7442969F6554C1C90 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 372227EB5B7A3A7F06DA7C30 /* testmultiaudio */ = { + isa = PBXNativeTarget; + buildConfigurationList = 531546CB67084D6A12E647D2 /* Build configuration list for PBXNativeTarget "testmultiaudio" */; + buildPhases = ( + 530C4B1032FF38F3783C2BAB /* Resources */, + 22FC7141111B1D420B5D31C4 /* Sources */, + 487179E5445A216D1D18270C /* Frameworks */, + 9607AE3710C85E8F00CD1376 /* Postbuild */, + ); + buildRules = ( + ); + dependencies = ( + 445D66D20B9E47237D9F7BC5 /* PBXTargetDependency */, + 718A534707422EA4472F146C /* PBXTargetDependency */, + ); + name = "testmultiaudio"; + productInstallPath = "$(HOME)/bin"; + productName = "testmultiaudio"; + productReference = 3C495F467A983F522C564E72 /* testmultiaudio */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testmultiaudio" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 404C48F977DC231207427E24 /* testmultiaudio */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 4B18394505DC300669284470 /* Products */; + ProjectRef = 4B474D1E086F3B2A74B924D2 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 7F6F72F835212A7B0DA40F61 /* Products */; + ProjectRef = 7C1E4C9B6AB6743226ED50AB /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 372227EB5B7A3A7F06DA7C30 /* testmultiaudio */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 75F96D1178CE3EDA5EDD3846 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 25D96D504D7B66983FA7732A /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 35A027E7442969F6554C1C90 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 3C6322AD183B6E8B7B532BF3 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 530C4B1032FF38F3783C2BAB /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 9607AE3710C85E8F00CD1376 /* Postbuild */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = Postbuild; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "if [ \"${CONFIGURATION}\" = \"Debug Universal\" ]; then\nif [ ! -d \"./Build/Debug\" ]; then mkdir -p \"./Build/Debug\"; fi\ncp \"./../../../../../test/sample.wav\" \"./Build/Debug/sample.wav\"\nfi\nif [ \"${CONFIGURATION}\" = \"Debug Native\" ]; then\nif [ ! -d \"./Build/Debug\" ]; then mkdir -p \"./Build/Debug\"; fi\ncp \"./../../../../../test/sample.wav\" \"./Build/Debug/sample.wav\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Universal\" ]; then\nif [ ! -d \"./Build/Release\" ]; then mkdir -p \"./Build/Release\"; fi\ncp \"./../../../../../test/sample.wav\" \"./Build/Release/sample.wav\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Native\" ]; then\nif [ ! -d \"./Build/Release\" ]; then mkdir -p \"./Build/Release\"; fi\ncp \"./../../../../../test/sample.wav\" \"./Build/Release/sample.wav\"\nfi"; + }; +/* End PBXShellScriptBuildPhase section */ +/* Begin PBXSourcesBuildPhase section */ + 22FC7141111B1D420B5D31C4 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 5B16080A7C1639D0122E149C /* testmultiaudio.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 445D66D20B9E47237D9F7BC5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 0B8763CC23F268B568D10AD5 /* PBXContainerItemProxy */; + }; + 718A534707422EA4472F146C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 04BE0F9057D644014857532E /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 09B3042B4C314BEB4A8D165D /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testmultiaudio"; + }; + name = "Debug Universal"; + }; + 3A362F883090674E5BF74BDC /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testmultiaudio"; + }; + name = "Debug Native"; + }; + 12AA752761CE1CDA691B177F /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testmultiaudio"; + }; + name = "Release Universal"; + }; + 068D367B7719220179E744C4 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testmultiaudio"; + }; + name = "Release Native"; + }; + 3D1C34306E242527591E5BFE /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 032046F12CDE3C5B12B36365 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 418E72013DAF5C4E2B131ED0 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 26865EB574F04039749C4660 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 531546CB67084D6A12E647D2 /* Build configuration list for PBXNativeTarget "testmultiaudio" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 09B3042B4C314BEB4A8D165D /* Debug Universal */, + 3A362F883090674E5BF74BDC /* Debug Native */, + 12AA752761CE1CDA691B177F /* Release Universal */, + 068D367B7719220179E744C4 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testmultiaudio" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3D1C34306E242527591E5BFE /* Debug Universal */, + 032046F12CDE3C5B12B36365 /* Debug Native */, + 418E72013DAF5C4E2B131ED0 /* Release Universal */, + 26865EB574F04039749C4660 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode4/tests/testnative/testnative.xcodeproj/project.pbxproj b/premake/Xcode/Xcode4/tests/testnative/testnative.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..b9a07418b9c3e --- /dev/null +++ b/premake/Xcode/Xcode4/tests/testnative/testnative.xcodeproj/project.pbxproj @@ -0,0 +1,478 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 264A007914BD1542267C366B /* testnative.c in Sources */ = {isa = PBXBuildFile; fileRef = 35F05D2E1FDE45767B06523F /* testnative.c */; }; + 22EB74FE0CEA619B30FB5D5A /* testnativecocoa.m in Sources */ = {isa = PBXBuildFile; fileRef = 47545DF46201658D3BD734FA /* testnativecocoa.m */; }; + 57837B986190367E182A164F /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5B9C61845D897017310A3FB4 /* AudioToolbox.framework */; }; + 45DA2BE768AA201228747960 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 57F91C82576B37C86BA75D44 /* AudioUnit.framework */; }; + 5D154B8477611C2F57C83D89 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3EBC6544049A4AB978626A43 /* Cocoa.framework */; }; + 596D34055B4806DB279742E6 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0F193DDA5F10509225B323F7 /* CoreAudio.framework */; }; + 3624766643E10D33452250A1 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A2C004B705E55E47CA775F3 /* IOKit.framework */; }; + 65A210F966501CA66F593CAD /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 107328C45E365C7133065CD0 /* Carbon.framework */; }; + 02B404F1136E512E50C8323E /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 416F5EB2177049BB247C65C5 /* ForceFeedback.framework */; }; + 21B0541332C144055FAF6A4E /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26A3210E2CDE553C60B53D53 /* CoreFoundation.framework */; }; + 501A5FEE0DB9014574CC3124 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5678640055847510733E7417 /* OpenGL.framework */; }; + 4EC368F2742C047D69400C94 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 748F5F2677A22EE7542F72CE /* libSDL2main.a */; }; + 735832260D367B6469B636AF /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6F1A45BF1F35025E247C7810 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 5C12261A17CE7C055DB26192 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 03C45B137CAF5FB518FF293D /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 0FF7291B375C79BC57696B66; + remoteInfo = "libSDL2main.a"; + }; + 66C7140646EB22572B652F37 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 03C45B137CAF5FB518FF293D /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1BAE4A0A77462FDC330812A3; + remoteInfo = "libSDL2main.a"; + }; + 005826BF56063F5B7E6F5A0C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 7E3D64ED39CC28C012BC257B /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 5E6D56F6655337845A3C44C3; + remoteInfo = "libSDL2.a"; + }; + 733B32C55CFE45D55C6C53B5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 7E3D64ED39CC28C012BC257B /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7E6A7BC23CFD134274963645; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 35F05D2E1FDE45767B06523F /* testnative.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testnative.c"; path = "../../../../../test/testnative.c"; sourceTree = ""; }; + 6B3C62E933A5301E10121FC9 /* testnative.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "testnative.h"; path = "../../../../../test/testnative.h"; sourceTree = ""; }; + 47545DF46201658D3BD734FA /* testnativecocoa.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "testnativecocoa.m"; path = "../../../../../test/testnativecocoa.m"; sourceTree = ""; }; + 5B9C61845D897017310A3FB4 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 57F91C82576B37C86BA75D44 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 3EBC6544049A4AB978626A43 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 0F193DDA5F10509225B323F7 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 0A2C004B705E55E47CA775F3 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 107328C45E365C7133065CD0 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 416F5EB2177049BB247C65C5 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 26A3210E2CDE553C60B53D53 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 5678640055847510733E7417 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 2275520F5E5278701654067D /* testnative */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testnative"; path = "testnative"; sourceTree = BUILT_PRODUCTS_DIR; }; + 03C45B137CAF5FB518FF293D /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 7E3D64ED39CC28C012BC257B /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 2C3103A1556F143F538D6BD0 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 57837B986190367E182A164F /* AudioToolbox.framework in Frameworks */, + 45DA2BE768AA201228747960 /* AudioUnit.framework in Frameworks */, + 5D154B8477611C2F57C83D89 /* Cocoa.framework in Frameworks */, + 596D34055B4806DB279742E6 /* CoreAudio.framework in Frameworks */, + 3624766643E10D33452250A1 /* IOKit.framework in Frameworks */, + 65A210F966501CA66F593CAD /* Carbon.framework in Frameworks */, + 02B404F1136E512E50C8323E /* ForceFeedback.framework in Frameworks */, + 21B0541332C144055FAF6A4E /* CoreFoundation.framework in Frameworks */, + 501A5FEE0DB9014574CC3124 /* OpenGL.framework in Frameworks */, + 4EC368F2742C047D69400C94 /* libSDL2main.a in Frameworks */, + 735832260D367B6469B636AF /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 5D23300B2D3D3A6076EC1BC1 /* testnative */ = { + isa = PBXGroup; + children = ( + 556240E1795C0D34798D1B48 /* test */, + 6D4418531291078F76C7205B /* Frameworks */, + 4EA831642FCE1AEB548433F4 /* Products */, + 014E300F34DD242F1FB3256A /* Projects */, + ); + name = "testnative"; + sourceTree = ""; + }; + 556240E1795C0D34798D1B48 /* test */ = { + isa = PBXGroup; + children = ( + 35F05D2E1FDE45767B06523F /* testnative.c */, + 6B3C62E933A5301E10121FC9 /* testnative.h */, + 47545DF46201658D3BD734FA /* testnativecocoa.m */, + ); + name = "test"; + sourceTree = ""; + }; + 6D4418531291078F76C7205B /* Frameworks */ = { + isa = PBXGroup; + children = ( + 5B9C61845D897017310A3FB4 /* AudioToolbox.framework */, + 57F91C82576B37C86BA75D44 /* AudioUnit.framework */, + 3EBC6544049A4AB978626A43 /* Cocoa.framework */, + 0F193DDA5F10509225B323F7 /* CoreAudio.framework */, + 0A2C004B705E55E47CA775F3 /* IOKit.framework */, + 107328C45E365C7133065CD0 /* Carbon.framework */, + 416F5EB2177049BB247C65C5 /* ForceFeedback.framework */, + 26A3210E2CDE553C60B53D53 /* CoreFoundation.framework */, + 5678640055847510733E7417 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 4EA831642FCE1AEB548433F4 /* Products */ = { + isa = PBXGroup; + children = ( + 2275520F5E5278701654067D /* testnative */, + ); + name = "Products"; + sourceTree = ""; + }; + 014E300F34DD242F1FB3256A /* Projects */ = { + isa = PBXGroup; + children = ( + 03C45B137CAF5FB518FF293D /* SDL2main.xcodeproj */, + 7E3D64ED39CC28C012BC257B /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 68EF3A6B73AF1BBA684D57E8 /* Products */ = { + isa = PBXGroup; + children = ( + 748F5F2677A22EE7542F72CE /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 7135050D597C723F253159C0 /* Products */ = { + isa = PBXGroup; + children = ( + 6F1A45BF1F35025E247C7810 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 1159111E07D8364B1F101020 /* testnative */ = { + isa = PBXNativeTarget; + buildConfigurationList = 2F901AF56BE134F826357402 /* Build configuration list for PBXNativeTarget "testnative" */; + buildPhases = ( + 46646EE25C6C5C0E2880000A /* Resources */, + 1B7E099E11A4506455DA750B /* Sources */, + 2C3103A1556F143F538D6BD0 /* Frameworks */, + 9607AE3710C85E8F00CD1376 /* Postbuild */, + ); + buildRules = ( + ); + dependencies = ( + 7C4A02F2701929797C3B471B /* PBXTargetDependency */, + 4DA6676B54600FE11A995F8A /* PBXTargetDependency */, + ); + name = "testnative"; + productInstallPath = "$(HOME)/bin"; + productName = "testnative"; + productReference = 2275520F5E5278701654067D /* testnative */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testnative" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 5D23300B2D3D3A6076EC1BC1 /* testnative */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 68EF3A6B73AF1BBA684D57E8 /* Products */; + ProjectRef = 03C45B137CAF5FB518FF293D /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 7135050D597C723F253159C0 /* Products */; + ProjectRef = 7E3D64ED39CC28C012BC257B /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 1159111E07D8364B1F101020 /* testnative */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 748F5F2677A22EE7542F72CE /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 5C12261A17CE7C055DB26192 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 6F1A45BF1F35025E247C7810 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 005826BF56063F5B7E6F5A0C /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 46646EE25C6C5C0E2880000A /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 9607AE3710C85E8F00CD1376 /* Postbuild */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = Postbuild; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "if [ \"${CONFIGURATION}\" = \"Debug Universal\" ]; then\nif [ ! -d \"./Build/Debug\" ]; then mkdir -p \"./Build/Debug\"; fi\ncp \"./../../../../../test/icon.bmp\" \"./Build/Debug/icon.bmp\"\nfi\nif [ \"${CONFIGURATION}\" = \"Debug Native\" ]; then\nif [ ! -d \"./Build/Debug\" ]; then mkdir -p \"./Build/Debug\"; fi\ncp \"./../../../../../test/icon.bmp\" \"./Build/Debug/icon.bmp\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Universal\" ]; then\nif [ ! -d \"./Build/Release\" ]; then mkdir -p \"./Build/Release\"; fi\ncp \"./../../../../../test/icon.bmp\" \"./Build/Release/icon.bmp\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Native\" ]; then\nif [ ! -d \"./Build/Release\" ]; then mkdir -p \"./Build/Release\"; fi\ncp \"./../../../../../test/icon.bmp\" \"./Build/Release/icon.bmp\"\nfi"; + }; +/* End PBXShellScriptBuildPhase section */ +/* Begin PBXSourcesBuildPhase section */ + 1B7E099E11A4506455DA750B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 264A007914BD1542267C366B /* testnative.c in Sources */, + 22EB74FE0CEA619B30FB5D5A /* testnativecocoa.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 7C4A02F2701929797C3B471B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 66C7140646EB22572B652F37 /* PBXContainerItemProxy */; + }; + 4DA6676B54600FE11A995F8A /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 733B32C55CFE45D55C6C53B5 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 090423E26BEA756C2CED31AC /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testnative"; + }; + name = "Debug Universal"; + }; + 356938A7784656EC48E33998 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testnative"; + }; + name = "Debug Native"; + }; + 2C4E647D0117492C72E476AD /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testnative"; + }; + name = "Release Universal"; + }; + 7419418059076FE25F8350C4 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testnative"; + }; + name = "Release Native"; + }; + 419E17746C1A5930662A71E2 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 64B96E2C399E657E685750D6 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 7B2207AF006B7974610E760D /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 2C24024F18B2060E41765B21 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 2F901AF56BE134F826357402 /* Build configuration list for PBXNativeTarget "testnative" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 090423E26BEA756C2CED31AC /* Debug Universal */, + 356938A7784656EC48E33998 /* Debug Native */, + 2C4E647D0117492C72E476AD /* Release Universal */, + 7419418059076FE25F8350C4 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testnative" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 419E17746C1A5930662A71E2 /* Debug Universal */, + 64B96E2C399E657E685750D6 /* Debug Native */, + 7B2207AF006B7974610E760D /* Release Universal */, + 2C24024F18B2060E41765B21 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode4/tests/testoverlay2/testoverlay2.xcodeproj/project.pbxproj b/premake/Xcode/Xcode4/tests/testoverlay2/testoverlay2.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..7b21786a182a9 --- /dev/null +++ b/premake/Xcode/Xcode4/tests/testoverlay2/testoverlay2.xcodeproj/project.pbxproj @@ -0,0 +1,472 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 33525EF938E9736171BA07B3 /* testoverlay2.c in Sources */ = {isa = PBXBuildFile; fileRef = 05717071110057FE08606B4F /* testoverlay2.c */; }; + 3CE7229C49DA217B1C50681A /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 759D52855ACF6E64694C2F61 /* AudioToolbox.framework */; }; + 1D6E2F5B17A628557DD125B5 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0EFC5EB948A012BC11B9247F /* AudioUnit.framework */; }; + 570540D57F0139D3042C0B1C /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2295249631582B41516137E5 /* Cocoa.framework */; }; + 08A94B0C053657D76B027E95 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7A4B10AE13D33A702DDF45B7 /* CoreAudio.framework */; }; + 485562961C9B34D874720F97 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 124F370878B41DC705F413B2 /* IOKit.framework */; }; + 2A657AC92603347C409236D4 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 41D262501BE562466EFE0BC6 /* Carbon.framework */; }; + 625817E3546604B52E826F18 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 30FA05F07FB769A16587294E /* ForceFeedback.framework */; }; + 39F45AA10CDC68344A9A7622 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50A125727A5B7A7753964D01 /* CoreFoundation.framework */; }; + 101F21A76CFA33E32A3C6845 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 710506A6223E4A0F40614806 /* OpenGL.framework */; }; + 1879660E213D66FB0477597B /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1B4E35BC69F17DB124DC0A67 /* libSDL2main.a */; }; + 4BB840221DC71D7176807CF6 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 44FB6C117FB973CF5C4C2084 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 62AE4378358351554E2A4071 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 514E70E5701A6B5728950C10 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 0FF7291B375C79BC57696B66; + remoteInfo = "libSDL2main.a"; + }; + 4BE764F9547433EF474B4BDD /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 514E70E5701A6B5728950C10 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1BAE4A0A77462FDC330812A3; + remoteInfo = "libSDL2main.a"; + }; + 239C6405453E71491B3B7E51 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 5074102C6EF52DCC3B9542CB /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 5E6D56F6655337845A3C44C3; + remoteInfo = "libSDL2.a"; + }; + 0C06609F75337585241B7464 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 5074102C6EF52DCC3B9542CB /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7E6A7BC23CFD134274963645; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 05717071110057FE08606B4F /* testoverlay2.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testoverlay2.c"; path = "../../../../../test/testoverlay2.c"; sourceTree = ""; }; + 759D52855ACF6E64694C2F61 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 0EFC5EB948A012BC11B9247F /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 2295249631582B41516137E5 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 7A4B10AE13D33A702DDF45B7 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 124F370878B41DC705F413B2 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 41D262501BE562466EFE0BC6 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 30FA05F07FB769A16587294E /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 50A125727A5B7A7753964D01 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 710506A6223E4A0F40614806 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 0FA8057B75397DDB5EE716BE /* testoverlay2 */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testoverlay2"; path = "testoverlay2"; sourceTree = BUILT_PRODUCTS_DIR; }; + 514E70E5701A6B5728950C10 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 5074102C6EF52DCC3B9542CB /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 5F787BAC7D3C2A36520B6588 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 3CE7229C49DA217B1C50681A /* AudioToolbox.framework in Frameworks */, + 1D6E2F5B17A628557DD125B5 /* AudioUnit.framework in Frameworks */, + 570540D57F0139D3042C0B1C /* Cocoa.framework in Frameworks */, + 08A94B0C053657D76B027E95 /* CoreAudio.framework in Frameworks */, + 485562961C9B34D874720F97 /* IOKit.framework in Frameworks */, + 2A657AC92603347C409236D4 /* Carbon.framework in Frameworks */, + 625817E3546604B52E826F18 /* ForceFeedback.framework in Frameworks */, + 39F45AA10CDC68344A9A7622 /* CoreFoundation.framework in Frameworks */, + 101F21A76CFA33E32A3C6845 /* OpenGL.framework in Frameworks */, + 1879660E213D66FB0477597B /* libSDL2main.a in Frameworks */, + 4BB840221DC71D7176807CF6 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 69FD15FC791C21B509D3018E /* testoverlay2 */ = { + isa = PBXGroup; + children = ( + 39F069DA7F1D0996030628A1 /* test */, + 25423C1F495373D0031828B2 /* Frameworks */, + 466B35EF0D6454526C3C6D52 /* Products */, + 2A4A6DAD05444FDC1F646865 /* Projects */, + ); + name = "testoverlay2"; + sourceTree = ""; + }; + 39F069DA7F1D0996030628A1 /* test */ = { + isa = PBXGroup; + children = ( + 05717071110057FE08606B4F /* testoverlay2.c */, + ); + name = "test"; + sourceTree = ""; + }; + 25423C1F495373D0031828B2 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 759D52855ACF6E64694C2F61 /* AudioToolbox.framework */, + 0EFC5EB948A012BC11B9247F /* AudioUnit.framework */, + 2295249631582B41516137E5 /* Cocoa.framework */, + 7A4B10AE13D33A702DDF45B7 /* CoreAudio.framework */, + 124F370878B41DC705F413B2 /* IOKit.framework */, + 41D262501BE562466EFE0BC6 /* Carbon.framework */, + 30FA05F07FB769A16587294E /* ForceFeedback.framework */, + 50A125727A5B7A7753964D01 /* CoreFoundation.framework */, + 710506A6223E4A0F40614806 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 466B35EF0D6454526C3C6D52 /* Products */ = { + isa = PBXGroup; + children = ( + 0FA8057B75397DDB5EE716BE /* testoverlay2 */, + ); + name = "Products"; + sourceTree = ""; + }; + 2A4A6DAD05444FDC1F646865 /* Projects */ = { + isa = PBXGroup; + children = ( + 514E70E5701A6B5728950C10 /* SDL2main.xcodeproj */, + 5074102C6EF52DCC3B9542CB /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 6D5A6CA342044EF837BA3F03 /* Products */ = { + isa = PBXGroup; + children = ( + 1B4E35BC69F17DB124DC0A67 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 141B31EF59DE1C5A149905E9 /* Products */ = { + isa = PBXGroup; + children = ( + 44FB6C117FB973CF5C4C2084 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 4E1D094D3EF0204547C6583C /* testoverlay2 */ = { + isa = PBXNativeTarget; + buildConfigurationList = 2E9435955894696F368F7836 /* Build configuration list for PBXNativeTarget "testoverlay2" */; + buildPhases = ( + 5AAA05337B8B02654CDF57C8 /* Resources */, + 20135C8F717226863D27763F /* Sources */, + 5F787BAC7D3C2A36520B6588 /* Frameworks */, + 9607AE3710C85E8F00CD1376 /* Postbuild */, + ); + buildRules = ( + ); + dependencies = ( + 34EF3DA325510C7966731AAA /* PBXTargetDependency */, + 6FB10E502872596C7DD405C1 /* PBXTargetDependency */, + ); + name = "testoverlay2"; + productInstallPath = "$(HOME)/bin"; + productName = "testoverlay2"; + productReference = 0FA8057B75397DDB5EE716BE /* testoverlay2 */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testoverlay2" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 69FD15FC791C21B509D3018E /* testoverlay2 */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 6D5A6CA342044EF837BA3F03 /* Products */; + ProjectRef = 514E70E5701A6B5728950C10 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 141B31EF59DE1C5A149905E9 /* Products */; + ProjectRef = 5074102C6EF52DCC3B9542CB /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 4E1D094D3EF0204547C6583C /* testoverlay2 */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 1B4E35BC69F17DB124DC0A67 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 62AE4378358351554E2A4071 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 44FB6C117FB973CF5C4C2084 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 239C6405453E71491B3B7E51 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 5AAA05337B8B02654CDF57C8 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 9607AE3710C85E8F00CD1376 /* Postbuild */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = Postbuild; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "if [ \"${CONFIGURATION}\" = \"Debug Universal\" ]; then\nif [ ! -d \"./Build/Debug\" ]; then mkdir -p \"./Build/Debug\"; fi\ncp \"./../../../../../test/moose.dat\" \"./Build/Debug/moose.dat\"\nfi\nif [ \"${CONFIGURATION}\" = \"Debug Native\" ]; then\nif [ ! -d \"./Build/Debug\" ]; then mkdir -p \"./Build/Debug\"; fi\ncp \"./../../../../../test/moose.dat\" \"./Build/Debug/moose.dat\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Universal\" ]; then\nif [ ! -d \"./Build/Release\" ]; then mkdir -p \"./Build/Release\"; fi\ncp \"./../../../../../test/moose.dat\" \"./Build/Release/moose.dat\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Native\" ]; then\nif [ ! -d \"./Build/Release\" ]; then mkdir -p \"./Build/Release\"; fi\ncp \"./../../../../../test/moose.dat\" \"./Build/Release/moose.dat\"\nfi"; + }; +/* End PBXShellScriptBuildPhase section */ +/* Begin PBXSourcesBuildPhase section */ + 20135C8F717226863D27763F /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 33525EF938E9736171BA07B3 /* testoverlay2.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 34EF3DA325510C7966731AAA /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 4BE764F9547433EF474B4BDD /* PBXContainerItemProxy */; + }; + 6FB10E502872596C7DD405C1 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 0C06609F75337585241B7464 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 7CAE0400271775FB6EF94023 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testoverlay2"; + }; + name = "Debug Universal"; + }; + 72D053456CB56C4942E509B5 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testoverlay2"; + }; + name = "Debug Native"; + }; + 497A7D3544A36A004A7B7308 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testoverlay2"; + }; + name = "Release Universal"; + }; + 7DF7201C1807341172001945 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testoverlay2"; + }; + name = "Release Native"; + }; + 7062495650922CA724732D77 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 5A54620678545A2771794005 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 1A9B695570E3524E11A10FA8 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 187329EA6CC536F4052767E3 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 2E9435955894696F368F7836 /* Build configuration list for PBXNativeTarget "testoverlay2" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7CAE0400271775FB6EF94023 /* Debug Universal */, + 72D053456CB56C4942E509B5 /* Debug Native */, + 497A7D3544A36A004A7B7308 /* Release Universal */, + 7DF7201C1807341172001945 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testoverlay2" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7062495650922CA724732D77 /* Debug Universal */, + 5A54620678545A2771794005 /* Debug Native */, + 1A9B695570E3524E11A10FA8 /* Release Universal */, + 187329EA6CC536F4052767E3 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode4/tests/testplatform/testplatform.xcodeproj/project.pbxproj b/premake/Xcode/Xcode4/tests/testplatform/testplatform.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..093cf2e0715e8 --- /dev/null +++ b/premake/Xcode/Xcode4/tests/testplatform/testplatform.xcodeproj/project.pbxproj @@ -0,0 +1,455 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 4A0A00501EA31CDE45DB5C09 /* testplatform.c in Sources */ = {isa = PBXBuildFile; fileRef = 03277A1D0D2274C56C4D6643 /* testplatform.c */; }; + 06D678F05C406EE5000D6B51 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 105E357008492B435291680E /* AudioToolbox.framework */; }; + 4B24642D675F3AD8714D0C7D /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 30737F6E2CC6372227DA043F /* AudioUnit.framework */; }; + 454A3BD52A912D595A335A4B /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7C1101984640178935E578B1 /* Cocoa.framework */; }; + 3F4D61E8767E07AF1E165A0D /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D15717F67AB414819DF268A /* CoreAudio.framework */; }; + 3BE3371A4350494F72617C19 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 42B261B26FE93685020A67BB /* IOKit.framework */; }; + 3F9D6AC7386304860E2E025F /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 713D6BD920243A0F4337710B /* Carbon.framework */; }; + 3465100C410C2B055DBA7779 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3A6370AA3A5A28BD435724D1 /* ForceFeedback.framework */; }; + 287938301066563D42F65885 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 432D653D37B21D9B5DB80423 /* CoreFoundation.framework */; }; + 742545264FBE455562894A10 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 21BE57B40867280109E87EA2 /* OpenGL.framework */; }; + 07F379E564114ED877D55AD3 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 368A4B60205E7DFF04C72D3F /* libSDL2main.a */; }; + 0DBA37055A1E1250791645BA /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6B2813FF4D641C823C1F25A7 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 0FF9373841E070571FE85DB6 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 3D345A42365C085C0229586A /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 0FF7291B375C79BC57696B66; + remoteInfo = "libSDL2main.a"; + }; + 7E212FF72E01054A6F0E1121 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 3D345A42365C085C0229586A /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1BAE4A0A77462FDC330812A3; + remoteInfo = "libSDL2main.a"; + }; + 5781564303AD6AD23E812AE0 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1273701248BB15BE2E516831 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 5E6D56F6655337845A3C44C3; + remoteInfo = "libSDL2.a"; + }; + 0CF009641A995B987F582809 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1273701248BB15BE2E516831 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7E6A7BC23CFD134274963645; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 03277A1D0D2274C56C4D6643 /* testplatform.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testplatform.c"; path = "../../../../../test/testplatform.c"; sourceTree = ""; }; + 105E357008492B435291680E /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 30737F6E2CC6372227DA043F /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 7C1101984640178935E578B1 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 7D15717F67AB414819DF268A /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 42B261B26FE93685020A67BB /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 713D6BD920243A0F4337710B /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 3A6370AA3A5A28BD435724D1 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 432D653D37B21D9B5DB80423 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 21BE57B40867280109E87EA2 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 5A92586E240C3E8539D77BED /* testplatform */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testplatform"; path = "testplatform"; sourceTree = BUILT_PRODUCTS_DIR; }; + 3D345A42365C085C0229586A /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 1273701248BB15BE2E516831 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 37B42607462A2EBB25455737 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 06D678F05C406EE5000D6B51 /* AudioToolbox.framework in Frameworks */, + 4B24642D675F3AD8714D0C7D /* AudioUnit.framework in Frameworks */, + 454A3BD52A912D595A335A4B /* Cocoa.framework in Frameworks */, + 3F4D61E8767E07AF1E165A0D /* CoreAudio.framework in Frameworks */, + 3BE3371A4350494F72617C19 /* IOKit.framework in Frameworks */, + 3F9D6AC7386304860E2E025F /* Carbon.framework in Frameworks */, + 3465100C410C2B055DBA7779 /* ForceFeedback.framework in Frameworks */, + 287938301066563D42F65885 /* CoreFoundation.framework in Frameworks */, + 742545264FBE455562894A10 /* OpenGL.framework in Frameworks */, + 07F379E564114ED877D55AD3 /* libSDL2main.a in Frameworks */, + 0DBA37055A1E1250791645BA /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 7F9951CA436D444B2C3C26C8 /* testplatform */ = { + isa = PBXGroup; + children = ( + 2CAC7309549D425F1AA363B3 /* test */, + 7901499C44CF2C9B0543186E /* Frameworks */, + 1D0B45C30DB43DCD60AE589A /* Products */, + 6E7238BB0DF6528B23D05132 /* Projects */, + ); + name = "testplatform"; + sourceTree = ""; + }; + 2CAC7309549D425F1AA363B3 /* test */ = { + isa = PBXGroup; + children = ( + 03277A1D0D2274C56C4D6643 /* testplatform.c */, + ); + name = "test"; + sourceTree = ""; + }; + 7901499C44CF2C9B0543186E /* Frameworks */ = { + isa = PBXGroup; + children = ( + 105E357008492B435291680E /* AudioToolbox.framework */, + 30737F6E2CC6372227DA043F /* AudioUnit.framework */, + 7C1101984640178935E578B1 /* Cocoa.framework */, + 7D15717F67AB414819DF268A /* CoreAudio.framework */, + 42B261B26FE93685020A67BB /* IOKit.framework */, + 713D6BD920243A0F4337710B /* Carbon.framework */, + 3A6370AA3A5A28BD435724D1 /* ForceFeedback.framework */, + 432D653D37B21D9B5DB80423 /* CoreFoundation.framework */, + 21BE57B40867280109E87EA2 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 1D0B45C30DB43DCD60AE589A /* Products */ = { + isa = PBXGroup; + children = ( + 5A92586E240C3E8539D77BED /* testplatform */, + ); + name = "Products"; + sourceTree = ""; + }; + 6E7238BB0DF6528B23D05132 /* Projects */ = { + isa = PBXGroup; + children = ( + 3D345A42365C085C0229586A /* SDL2main.xcodeproj */, + 1273701248BB15BE2E516831 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 29F515F878816DF0630163F3 /* Products */ = { + isa = PBXGroup; + children = ( + 368A4B60205E7DFF04C72D3F /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 764614AF76400C991BD47CE5 /* Products */ = { + isa = PBXGroup; + children = ( + 6B2813FF4D641C823C1F25A7 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 1C965D735D5179C9107B1347 /* testplatform */ = { + isa = PBXNativeTarget; + buildConfigurationList = 6C7D37D669AB5DEE7234480E /* Build configuration list for PBXNativeTarget "testplatform" */; + buildPhases = ( + 1BE247971FD96A374FBE7392 /* Resources */, + 039426215758798D31926FE3 /* Sources */, + 37B42607462A2EBB25455737 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 3E3C6D00434921916D961D6D /* PBXTargetDependency */, + 0DA23DFA0D88064D53E865EA /* PBXTargetDependency */, + ); + name = "testplatform"; + productInstallPath = "$(HOME)/bin"; + productName = "testplatform"; + productReference = 5A92586E240C3E8539D77BED /* testplatform */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testplatform" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 7F9951CA436D444B2C3C26C8 /* testplatform */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 29F515F878816DF0630163F3 /* Products */; + ProjectRef = 3D345A42365C085C0229586A /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 764614AF76400C991BD47CE5 /* Products */; + ProjectRef = 1273701248BB15BE2E516831 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 1C965D735D5179C9107B1347 /* testplatform */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 368A4B60205E7DFF04C72D3F /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 0FF9373841E070571FE85DB6 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 6B2813FF4D641C823C1F25A7 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 5781564303AD6AD23E812AE0 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 1BE247971FD96A374FBE7392 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 039426215758798D31926FE3 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 4A0A00501EA31CDE45DB5C09 /* testplatform.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 3E3C6D00434921916D961D6D /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 7E212FF72E01054A6F0E1121 /* PBXContainerItemProxy */; + }; + 0DA23DFA0D88064D53E865EA /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 0CF009641A995B987F582809 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 38103F0B28D339C01D096823 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testplatform"; + }; + name = "Debug Universal"; + }; + 3981520157C9572030EE16A1 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testplatform"; + }; + name = "Debug Native"; + }; + 305E7FB228F42E83211A5DDA /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testplatform"; + }; + name = "Release Universal"; + }; + 69BB0CDB3C436797068A53A8 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testplatform"; + }; + name = "Release Native"; + }; + 7D70702858506EA74C0E65B2 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 35A059C469B70A977D055B30 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 4CAC6D3550DC542F7CC502C7 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 5FFB6BBF01BC63F973DB60DE /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 6C7D37D669AB5DEE7234480E /* Build configuration list for PBXNativeTarget "testplatform" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 38103F0B28D339C01D096823 /* Debug Universal */, + 3981520157C9572030EE16A1 /* Debug Native */, + 305E7FB228F42E83211A5DDA /* Release Universal */, + 69BB0CDB3C436797068A53A8 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testplatform" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7D70702858506EA74C0E65B2 /* Debug Universal */, + 35A059C469B70A977D055B30 /* Debug Native */, + 4CAC6D3550DC542F7CC502C7 /* Release Universal */, + 5FFB6BBF01BC63F973DB60DE /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode4/tests/testpower/testpower.xcodeproj/project.pbxproj b/premake/Xcode/Xcode4/tests/testpower/testpower.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..747cf8027b68f --- /dev/null +++ b/premake/Xcode/Xcode4/tests/testpower/testpower.xcodeproj/project.pbxproj @@ -0,0 +1,455 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 008C185F36905E3F2DD93B89 /* testpower.c in Sources */ = {isa = PBXBuildFile; fileRef = 49A3000D7344326D1E1453F5 /* testpower.c */; }; + 07EC4A215DB31AFF67F07B7C /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0C5B42C20E7408BA06DD1FB0 /* AudioToolbox.framework */; }; + 2BC5370E7A5913575040489E /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 260146A4423E07BA6D5A5367 /* AudioUnit.framework */; }; + 6DC268343BF8574C417D010A /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1638423F48726D3344473784 /* Cocoa.framework */; }; + 35C467A920046D5C58414F67 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 55AA3AF82F450845294D11B9 /* CoreAudio.framework */; }; + 3962559010D93F3632B05EEE /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 25FB1C0A569A473643DF6D63 /* IOKit.framework */; }; + 4ECE657D7C0A79900CB15491 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 65041FD715E4370069961399 /* Carbon.framework */; }; + 1AE629A921C125FF0EDF0C0C /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 013F56686DB51785462D3CF9 /* ForceFeedback.framework */; }; + 2B6850504807751A33A54FCE /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 08404EC725FD1FFB42632AAA /* CoreFoundation.framework */; }; + 51951E87459A3BEF614C0382 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 660F666F0F4E58E554F46E4A /* OpenGL.framework */; }; + 6E391DB8495F37096ED25C60 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2333699804C61D4A07A63693 /* libSDL2main.a */; }; + 3CCF418C7125528539FA5B0F /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 08EA69CA6E2B5109416610BC /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 2EB029411A09653647804BBF /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 556A383665AE387A0F9A6457 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 0FF7291B375C79BC57696B66; + remoteInfo = "libSDL2main.a"; + }; + 0A805F015B2255B51CAE65F3 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 556A383665AE387A0F9A6457 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1BAE4A0A77462FDC330812A3; + remoteInfo = "libSDL2main.a"; + }; + 5A296055216932417A1260AF /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 5B7310EF4F0303B31A84561C /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 5E6D56F6655337845A3C44C3; + remoteInfo = "libSDL2.a"; + }; + 152D6923121A1CA9460242EC /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 5B7310EF4F0303B31A84561C /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7E6A7BC23CFD134274963645; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 49A3000D7344326D1E1453F5 /* testpower.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testpower.c"; path = "../../../../../test/testpower.c"; sourceTree = ""; }; + 0C5B42C20E7408BA06DD1FB0 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 260146A4423E07BA6D5A5367 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 1638423F48726D3344473784 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 55AA3AF82F450845294D11B9 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 25FB1C0A569A473643DF6D63 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 65041FD715E4370069961399 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 013F56686DB51785462D3CF9 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 08404EC725FD1FFB42632AAA /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 660F666F0F4E58E554F46E4A /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 442A4F9763E40EE22EA17EB1 /* testpower */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testpower"; path = "testpower"; sourceTree = BUILT_PRODUCTS_DIR; }; + 556A383665AE387A0F9A6457 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 5B7310EF4F0303B31A84561C /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 70A828D347C61D6822011FA5 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 07EC4A215DB31AFF67F07B7C /* AudioToolbox.framework in Frameworks */, + 2BC5370E7A5913575040489E /* AudioUnit.framework in Frameworks */, + 6DC268343BF8574C417D010A /* Cocoa.framework in Frameworks */, + 35C467A920046D5C58414F67 /* CoreAudio.framework in Frameworks */, + 3962559010D93F3632B05EEE /* IOKit.framework in Frameworks */, + 4ECE657D7C0A79900CB15491 /* Carbon.framework in Frameworks */, + 1AE629A921C125FF0EDF0C0C /* ForceFeedback.framework in Frameworks */, + 2B6850504807751A33A54FCE /* CoreFoundation.framework in Frameworks */, + 51951E87459A3BEF614C0382 /* OpenGL.framework in Frameworks */, + 6E391DB8495F37096ED25C60 /* libSDL2main.a in Frameworks */, + 3CCF418C7125528539FA5B0F /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 2AC97BC82E2458D05BB444FC /* testpower */ = { + isa = PBXGroup; + children = ( + 0EA7790274B31ED738E84013 /* test */, + 28693F173C192F1F2B3263BE /* Frameworks */, + 7770631C6675287952BC7094 /* Products */, + 1B7D603602FD574D2F0B7D85 /* Projects */, + ); + name = "testpower"; + sourceTree = ""; + }; + 0EA7790274B31ED738E84013 /* test */ = { + isa = PBXGroup; + children = ( + 49A3000D7344326D1E1453F5 /* testpower.c */, + ); + name = "test"; + sourceTree = ""; + }; + 28693F173C192F1F2B3263BE /* Frameworks */ = { + isa = PBXGroup; + children = ( + 0C5B42C20E7408BA06DD1FB0 /* AudioToolbox.framework */, + 260146A4423E07BA6D5A5367 /* AudioUnit.framework */, + 1638423F48726D3344473784 /* Cocoa.framework */, + 55AA3AF82F450845294D11B9 /* CoreAudio.framework */, + 25FB1C0A569A473643DF6D63 /* IOKit.framework */, + 65041FD715E4370069961399 /* Carbon.framework */, + 013F56686DB51785462D3CF9 /* ForceFeedback.framework */, + 08404EC725FD1FFB42632AAA /* CoreFoundation.framework */, + 660F666F0F4E58E554F46E4A /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 7770631C6675287952BC7094 /* Products */ = { + isa = PBXGroup; + children = ( + 442A4F9763E40EE22EA17EB1 /* testpower */, + ); + name = "Products"; + sourceTree = ""; + }; + 1B7D603602FD574D2F0B7D85 /* Projects */ = { + isa = PBXGroup; + children = ( + 556A383665AE387A0F9A6457 /* SDL2main.xcodeproj */, + 5B7310EF4F0303B31A84561C /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 4CA90F02616B6E8A4FD206A2 /* Products */ = { + isa = PBXGroup; + children = ( + 2333699804C61D4A07A63693 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 5D2344DF466D41AE0CCA4A15 /* Products */ = { + isa = PBXGroup; + children = ( + 08EA69CA6E2B5109416610BC /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 4A6675C15AB53FFA383B581B /* testpower */ = { + isa = PBXNativeTarget; + buildConfigurationList = 6DDA0E5903CA710858473C38 /* Build configuration list for PBXNativeTarget "testpower" */; + buildPhases = ( + 240820776B126F2856CE05D1 /* Resources */, + 77792E3E278807ED5E4F47C7 /* Sources */, + 70A828D347C61D6822011FA5 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 697523D1774F7B803B8C1D22 /* PBXTargetDependency */, + 30085FD60A2D2F4906B64D80 /* PBXTargetDependency */, + ); + name = "testpower"; + productInstallPath = "$(HOME)/bin"; + productName = "testpower"; + productReference = 442A4F9763E40EE22EA17EB1 /* testpower */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testpower" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 2AC97BC82E2458D05BB444FC /* testpower */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 4CA90F02616B6E8A4FD206A2 /* Products */; + ProjectRef = 556A383665AE387A0F9A6457 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 5D2344DF466D41AE0CCA4A15 /* Products */; + ProjectRef = 5B7310EF4F0303B31A84561C /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 4A6675C15AB53FFA383B581B /* testpower */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 2333699804C61D4A07A63693 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 2EB029411A09653647804BBF /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 08EA69CA6E2B5109416610BC /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 5A296055216932417A1260AF /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 240820776B126F2856CE05D1 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 77792E3E278807ED5E4F47C7 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 008C185F36905E3F2DD93B89 /* testpower.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 697523D1774F7B803B8C1D22 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 0A805F015B2255B51CAE65F3 /* PBXContainerItemProxy */; + }; + 30085FD60A2D2F4906B64D80 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 152D6923121A1CA9460242EC /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 0A9A45A902BC2688540B55F7 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testpower"; + }; + name = "Debug Universal"; + }; + 009743F92ED93F8E14DF7BD6 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testpower"; + }; + name = "Debug Native"; + }; + 0EC0110A5ED4599551C51A31 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testpower"; + }; + name = "Release Universal"; + }; + 768B43DB75A671F27B0404B3 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testpower"; + }; + name = "Release Native"; + }; + 055D578241616B4C58390E60 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 53F51C5B247461B13E773070 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 1C1819CF11DF06157A6D12D3 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 0B962CF741C917EF71CB5FCD /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 6DDA0E5903CA710858473C38 /* Build configuration list for PBXNativeTarget "testpower" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0A9A45A902BC2688540B55F7 /* Debug Universal */, + 009743F92ED93F8E14DF7BD6 /* Debug Native */, + 0EC0110A5ED4599551C51A31 /* Release Universal */, + 768B43DB75A671F27B0404B3 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testpower" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 055D578241616B4C58390E60 /* Debug Universal */, + 53F51C5B247461B13E773070 /* Debug Native */, + 1C1819CF11DF06157A6D12D3 /* Release Universal */, + 0B962CF741C917EF71CB5FCD /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode4/tests/testrelative/testrelative.xcodeproj/project.pbxproj b/premake/Xcode/Xcode4/tests/testrelative/testrelative.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..144c7f8653e4f --- /dev/null +++ b/premake/Xcode/Xcode4/tests/testrelative/testrelative.xcodeproj/project.pbxproj @@ -0,0 +1,498 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 377D15C6170424D6062E69BB /* testrelative.c in Sources */ = {isa = PBXBuildFile; fileRef = 71667C8878823B3471B92D20 /* testrelative.c */; }; + 524E14E1598534C2539D79D7 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 56254B8921C07B07194455D7 /* AudioToolbox.framework */; }; + 72C56E3176E81D7E554E06D0 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3EE73A6960BA131A44AD4605 /* AudioUnit.framework */; }; + 053E5D6D2AAF6AE6395A5F73 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A856D19217D56C75D923C13 /* Cocoa.framework */; }; + 47D039401FAE0BB1177A6CB2 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2EF55D1D33514638345833DA /* CoreAudio.framework */; }; + 7EC14E3B22706B1204FD0251 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50E85FD316EE139340397757 /* IOKit.framework */; }; + 0DEB62F21B3A14D965D65032 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3873306F723253011B07705D /* Carbon.framework */; }; + 6C874CCA69E801B409C25D8B /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D681779212506AB7F6364A2 /* ForceFeedback.framework */; }; + 47ED4E9555B16F007D8B6849 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0E0E53FE4E4C019826A473A8 /* CoreFoundation.framework */; }; + 30B819AD31D06F95329306E1 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 45B123385C1D2173187D586C /* OpenGL.framework */; }; + 32C751180F0B4CE9749C5533 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 28225BD47689342B079F1376 /* libSDL2main.a */; }; + 581573D564633E495E4A6F49 /* libSDL2test.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 11610A86186C6EC1690E4331 /* libSDL2test.a */; }; + 3D3B067048DB33A11637107F /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E6B65B70DCF252A2999061E /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 7CDD318747A73B312F756764 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 7D062F4103B832B91E98184F /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 0FF7291B375C79BC57696B66; + remoteInfo = "libSDL2main.a"; + }; + 7AF653B002E71484200D5E72 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 7D062F4103B832B91E98184F /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1BAE4A0A77462FDC330812A3; + remoteInfo = "libSDL2main.a"; + }; + 4C854940436C039554C17D14 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0A9B728F134121E37D6259B7 /* SDL2test.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 1EB6664901BC163F215A4861; + remoteInfo = "libSDL2test.a"; + }; + 6BFF66467F0755F5788A5054 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0A9B728F134121E37D6259B7 /* SDL2test.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1258506950476B85239A79A3; + remoteInfo = "libSDL2test.a"; + }; + 6E56507D7F00195E09D25C00 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 553061607A071DB64A5345B6 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 5E6D56F6655337845A3C44C3; + remoteInfo = "libSDL2.a"; + }; + 1DC37832544314FC3B3954B6 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 553061607A071DB64A5345B6 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7E6A7BC23CFD134274963645; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 71667C8878823B3471B92D20 /* testrelative.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testrelative.c"; path = "../../../../../test/testrelative.c"; sourceTree = ""; }; + 56254B8921C07B07194455D7 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 3EE73A6960BA131A44AD4605 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 4A856D19217D56C75D923C13 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 2EF55D1D33514638345833DA /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 50E85FD316EE139340397757 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 3873306F723253011B07705D /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 1D681779212506AB7F6364A2 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 0E0E53FE4E4C019826A473A8 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 45B123385C1D2173187D586C /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 47B623680BB61214074C274F /* testrelative */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testrelative"; path = "testrelative"; sourceTree = BUILT_PRODUCTS_DIR; }; + 7D062F4103B832B91E98184F /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 0A9B728F134121E37D6259B7 /* SDL2test.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2test.xcodeproj"; path = "../../SDL2test/SDL2test.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 553061607A071DB64A5345B6 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 6EAB401D473F05276903491F /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 524E14E1598534C2539D79D7 /* AudioToolbox.framework in Frameworks */, + 72C56E3176E81D7E554E06D0 /* AudioUnit.framework in Frameworks */, + 053E5D6D2AAF6AE6395A5F73 /* Cocoa.framework in Frameworks */, + 47D039401FAE0BB1177A6CB2 /* CoreAudio.framework in Frameworks */, + 7EC14E3B22706B1204FD0251 /* IOKit.framework in Frameworks */, + 0DEB62F21B3A14D965D65032 /* Carbon.framework in Frameworks */, + 6C874CCA69E801B409C25D8B /* ForceFeedback.framework in Frameworks */, + 47ED4E9555B16F007D8B6849 /* CoreFoundation.framework in Frameworks */, + 30B819AD31D06F95329306E1 /* OpenGL.framework in Frameworks */, + 32C751180F0B4CE9749C5533 /* libSDL2main.a in Frameworks */, + 581573D564633E495E4A6F49 /* libSDL2test.a in Frameworks */, + 3D3B067048DB33A11637107F /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 29DE426641CD17502546186D /* testrelative */ = { + isa = PBXGroup; + children = ( + 38A22B441348613571F92F06 /* test */, + 05AD5EA7316773EA27C83C14 /* Frameworks */, + 5BDA535110A550C34EEB6273 /* Products */, + 2B7B2DFD6D963B800AA1599F /* Projects */, + ); + name = "testrelative"; + sourceTree = ""; + }; + 38A22B441348613571F92F06 /* test */ = { + isa = PBXGroup; + children = ( + 71667C8878823B3471B92D20 /* testrelative.c */, + ); + name = "test"; + sourceTree = ""; + }; + 05AD5EA7316773EA27C83C14 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 56254B8921C07B07194455D7 /* AudioToolbox.framework */, + 3EE73A6960BA131A44AD4605 /* AudioUnit.framework */, + 4A856D19217D56C75D923C13 /* Cocoa.framework */, + 2EF55D1D33514638345833DA /* CoreAudio.framework */, + 50E85FD316EE139340397757 /* IOKit.framework */, + 3873306F723253011B07705D /* Carbon.framework */, + 1D681779212506AB7F6364A2 /* ForceFeedback.framework */, + 0E0E53FE4E4C019826A473A8 /* CoreFoundation.framework */, + 45B123385C1D2173187D586C /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 5BDA535110A550C34EEB6273 /* Products */ = { + isa = PBXGroup; + children = ( + 47B623680BB61214074C274F /* testrelative */, + ); + name = "Products"; + sourceTree = ""; + }; + 2B7B2DFD6D963B800AA1599F /* Projects */ = { + isa = PBXGroup; + children = ( + 7D062F4103B832B91E98184F /* SDL2main.xcodeproj */, + 0A9B728F134121E37D6259B7 /* SDL2test.xcodeproj */, + 553061607A071DB64A5345B6 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 39CF6C433A553F4633AC7FA6 /* Products */ = { + isa = PBXGroup; + children = ( + 28225BD47689342B079F1376 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 3FF5181128A11277002860FA /* Products */ = { + isa = PBXGroup; + children = ( + 11610A86186C6EC1690E4331 /* libSDL2test.a */, + ); + name = Products; + sourceTree = ""; + }; + 4C170DD27CCE3EEB6F8B1B33 /* Products */ = { + isa = PBXGroup; + children = ( + 3E6B65B70DCF252A2999061E /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 6D02378C4F000F6F7A111482 /* testrelative */ = { + isa = PBXNativeTarget; + buildConfigurationList = 33213F157BE31B3A2C114A0A /* Build configuration list for PBXNativeTarget "testrelative" */; + buildPhases = ( + 05FA694754CA25C139E25C5E /* Resources */, + 42571475349D6E16106631BE /* Sources */, + 6EAB401D473F05276903491F /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 1F397B32370D5C5B161E284C /* PBXTargetDependency */, + 44BC519333775A56548F38E9 /* PBXTargetDependency */, + 0AA55E24372649FE552063A6 /* PBXTargetDependency */, + ); + name = "testrelative"; + productInstallPath = "$(HOME)/bin"; + productName = "testrelative"; + productReference = 47B623680BB61214074C274F /* testrelative */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testrelative" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 29DE426641CD17502546186D /* testrelative */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 39CF6C433A553F4633AC7FA6 /* Products */; + ProjectRef = 7D062F4103B832B91E98184F /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 3FF5181128A11277002860FA /* Products */; + ProjectRef = 0A9B728F134121E37D6259B7 /* SDL2test.xcodeproj */; + }, + { + ProductGroup = 4C170DD27CCE3EEB6F8B1B33 /* Products */; + ProjectRef = 553061607A071DB64A5345B6 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 6D02378C4F000F6F7A111482 /* testrelative */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 28225BD47689342B079F1376 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 7CDD318747A73B312F756764 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 11610A86186C6EC1690E4331 /* libSDL2test.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2test.a"; + remoteRef = 4C854940436C039554C17D14 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 3E6B65B70DCF252A2999061E /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 6E56507D7F00195E09D25C00 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 05FA694754CA25C139E25C5E /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 42571475349D6E16106631BE /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 377D15C6170424D6062E69BB /* testrelative.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 1F397B32370D5C5B161E284C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 7AF653B002E71484200D5E72 /* PBXContainerItemProxy */; + }; + 44BC519333775A56548F38E9 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2test.a"; + targetProxy = 6BFF66467F0755F5788A5054 /* PBXContainerItemProxy */; + }; + 0AA55E24372649FE552063A6 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 1DC37832544314FC3B3954B6 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 0AC807AA663F599C341D7845 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testrelative"; + }; + name = "Debug Universal"; + }; + 28470117178A0F7B7C81077C /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testrelative"; + }; + name = "Debug Native"; + }; + 558B20072DD178567D98343F /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testrelative"; + }; + name = "Release Universal"; + }; + 64AF24EF4901175A3C2F4E5B /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testrelative"; + }; + name = "Release Native"; + }; + 2DFC238C51B9064E29EE576C /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 161E0DDC1BD561BD452D355C /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 21CE669E3E2C79251A270508 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 38840CD878D513C706DD225F /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 33213F157BE31B3A2C114A0A /* Build configuration list for PBXNativeTarget "testrelative" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0AC807AA663F599C341D7845 /* Debug Universal */, + 28470117178A0F7B7C81077C /* Debug Native */, + 558B20072DD178567D98343F /* Release Universal */, + 64AF24EF4901175A3C2F4E5B /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testrelative" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 2DFC238C51B9064E29EE576C /* Debug Universal */, + 161E0DDC1BD561BD452D355C /* Debug Native */, + 21CE669E3E2C79251A270508 /* Release Universal */, + 38840CD878D513C706DD225F /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode4/tests/testrendercopyex/testrendercopyex.xcodeproj/project.pbxproj b/premake/Xcode/Xcode4/tests/testrendercopyex/testrendercopyex.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..8cb696b7ed204 --- /dev/null +++ b/premake/Xcode/Xcode4/tests/testrendercopyex/testrendercopyex.xcodeproj/project.pbxproj @@ -0,0 +1,515 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 65F577E704295C1E66CB1E56 /* testrendercopyex.c in Sources */ = {isa = PBXBuildFile; fileRef = 7BF05D4A5DE71E2922256A9A /* testrendercopyex.c */; }; + 311717F228EB5CBF3F84738C /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 79B91476551510CF06AF595A /* AudioToolbox.framework */; }; + 7FF54AC418B12B6468603435 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A2731232A8C6BEE08C21FDF /* AudioUnit.framework */; }; + 230069AF769C23FF68AA229E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 12FA71F71C5D3ECE6BD8528A /* Cocoa.framework */; }; + 259023F5535C6AFA677C2EBA /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 688839EE6B304F226CB21BEF /* CoreAudio.framework */; }; + 231D795214B1164668156D90 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D24378312A11BA928DB53E6 /* IOKit.framework */; }; + 1F2A2B73100763FF1D6F7396 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 250431D67F6971C000B64EF6 /* Carbon.framework */; }; + 175C44B7512E30994E055CD5 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0BC56B4317A644E92E43394B /* ForceFeedback.framework */; }; + 5B3E0120616A13D1155D1561 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 550155CB3108333922B617EB /* CoreFoundation.framework */; }; + 3EA15261674F7A3C228F1341 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 510129574D22250244413C56 /* OpenGL.framework */; }; + 1AC71544306009AB71A9107C /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 517F04D221F249E55F3E1A1F /* libSDL2main.a */; }; + 1083318C01B525E110655A78 /* libSDL2test.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2575308E4303103406C9036F /* libSDL2test.a */; }; + 3EA146EA2DB506A902765090 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 30697A6733BC012824EC220D /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 66541B9B143128AD17145D95 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 6BB34D2A2B2A00ED019D1CC9 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 0FF7291B375C79BC57696B66; + remoteInfo = "libSDL2main.a"; + }; + 6A14614D0DC33E2373F7003C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 6BB34D2A2B2A00ED019D1CC9 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1BAE4A0A77462FDC330812A3; + remoteInfo = "libSDL2main.a"; + }; + 7FAD76D067AB44FD507F43C9 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 57601DB4507C216D7EC33C76 /* SDL2test.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 1EB6664901BC163F215A4861; + remoteInfo = "libSDL2test.a"; + }; + 4A967815518303F956A05EEE /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 57601DB4507C216D7EC33C76 /* SDL2test.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1258506950476B85239A79A3; + remoteInfo = "libSDL2test.a"; + }; + 48FB706900AC4A140DCA7C13 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 364775DD3538721628530BB1 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 5E6D56F6655337845A3C44C3; + remoteInfo = "libSDL2.a"; + }; + 583B199338BF336D5C0C48EB /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 364775DD3538721628530BB1 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7E6A7BC23CFD134274963645; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 7BF05D4A5DE71E2922256A9A /* testrendercopyex.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testrendercopyex.c"; path = "../../../../../test/testrendercopyex.c"; sourceTree = ""; }; + 79B91476551510CF06AF595A /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 0A2731232A8C6BEE08C21FDF /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 12FA71F71C5D3ECE6BD8528A /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 688839EE6B304F226CB21BEF /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 4D24378312A11BA928DB53E6 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 250431D67F6971C000B64EF6 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 0BC56B4317A644E92E43394B /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 550155CB3108333922B617EB /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 510129574D22250244413C56 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 5B78608170F51822749D7CFB /* testrendercopyex */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testrendercopyex"; path = "testrendercopyex"; sourceTree = BUILT_PRODUCTS_DIR; }; + 6BB34D2A2B2A00ED019D1CC9 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 57601DB4507C216D7EC33C76 /* SDL2test.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2test.xcodeproj"; path = "../../SDL2test/SDL2test.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 364775DD3538721628530BB1 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 6540542C485D0502521F0BB4 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 311717F228EB5CBF3F84738C /* AudioToolbox.framework in Frameworks */, + 7FF54AC418B12B6468603435 /* AudioUnit.framework in Frameworks */, + 230069AF769C23FF68AA229E /* Cocoa.framework in Frameworks */, + 259023F5535C6AFA677C2EBA /* CoreAudio.framework in Frameworks */, + 231D795214B1164668156D90 /* IOKit.framework in Frameworks */, + 1F2A2B73100763FF1D6F7396 /* Carbon.framework in Frameworks */, + 175C44B7512E30994E055CD5 /* ForceFeedback.framework in Frameworks */, + 5B3E0120616A13D1155D1561 /* CoreFoundation.framework in Frameworks */, + 3EA15261674F7A3C228F1341 /* OpenGL.framework in Frameworks */, + 1AC71544306009AB71A9107C /* libSDL2main.a in Frameworks */, + 1083318C01B525E110655A78 /* libSDL2test.a in Frameworks */, + 3EA146EA2DB506A902765090 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 3744566C7D555DFC52311FE1 /* testrendercopyex */ = { + isa = PBXGroup; + children = ( + 289A49BE0A815B3C4A7143D7 /* test */, + 587912452CA45F3D26683496 /* Frameworks */, + 4AEA7D34617158BD040E3900 /* Products */, + 43E705EF37080CEE6CAD7B2F /* Projects */, + ); + name = "testrendercopyex"; + sourceTree = ""; + }; + 289A49BE0A815B3C4A7143D7 /* test */ = { + isa = PBXGroup; + children = ( + 7BF05D4A5DE71E2922256A9A /* testrendercopyex.c */, + ); + name = "test"; + sourceTree = ""; + }; + 587912452CA45F3D26683496 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 79B91476551510CF06AF595A /* AudioToolbox.framework */, + 0A2731232A8C6BEE08C21FDF /* AudioUnit.framework */, + 12FA71F71C5D3ECE6BD8528A /* Cocoa.framework */, + 688839EE6B304F226CB21BEF /* CoreAudio.framework */, + 4D24378312A11BA928DB53E6 /* IOKit.framework */, + 250431D67F6971C000B64EF6 /* Carbon.framework */, + 0BC56B4317A644E92E43394B /* ForceFeedback.framework */, + 550155CB3108333922B617EB /* CoreFoundation.framework */, + 510129574D22250244413C56 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 4AEA7D34617158BD040E3900 /* Products */ = { + isa = PBXGroup; + children = ( + 5B78608170F51822749D7CFB /* testrendercopyex */, + ); + name = "Products"; + sourceTree = ""; + }; + 43E705EF37080CEE6CAD7B2F /* Projects */ = { + isa = PBXGroup; + children = ( + 6BB34D2A2B2A00ED019D1CC9 /* SDL2main.xcodeproj */, + 57601DB4507C216D7EC33C76 /* SDL2test.xcodeproj */, + 364775DD3538721628530BB1 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 5D21351041786AF10F905297 /* Products */ = { + isa = PBXGroup; + children = ( + 517F04D221F249E55F3E1A1F /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 4BE1510349544A7F5CEA2AEA /* Products */ = { + isa = PBXGroup; + children = ( + 2575308E4303103406C9036F /* libSDL2test.a */, + ); + name = Products; + sourceTree = ""; + }; + 264B2BA37F3438CE09C16A94 /* Products */ = { + isa = PBXGroup; + children = ( + 30697A6733BC012824EC220D /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 4A3C5E744D8B7E0508AE71E0 /* testrendercopyex */ = { + isa = PBXNativeTarget; + buildConfigurationList = 4C7746B813C912AD3C5921CC /* Build configuration list for PBXNativeTarget "testrendercopyex" */; + buildPhases = ( + 67B152F160461DC63715542F /* Resources */, + 5E2A349329F670AD73103190 /* Sources */, + 6540542C485D0502521F0BB4 /* Frameworks */, + 9607AE3710C85E8F00CD1376 /* Postbuild */, + ); + buildRules = ( + ); + dependencies = ( + 209110D73CD5605E5ABF3CBD /* PBXTargetDependency */, + 01F87A1A56882AFB6E8A4179 /* PBXTargetDependency */, + 7D6E749B220E68695DB4126B /* PBXTargetDependency */, + ); + name = "testrendercopyex"; + productInstallPath = "$(HOME)/bin"; + productName = "testrendercopyex"; + productReference = 5B78608170F51822749D7CFB /* testrendercopyex */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testrendercopyex" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 3744566C7D555DFC52311FE1 /* testrendercopyex */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 5D21351041786AF10F905297 /* Products */; + ProjectRef = 6BB34D2A2B2A00ED019D1CC9 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 4BE1510349544A7F5CEA2AEA /* Products */; + ProjectRef = 57601DB4507C216D7EC33C76 /* SDL2test.xcodeproj */; + }, + { + ProductGroup = 264B2BA37F3438CE09C16A94 /* Products */; + ProjectRef = 364775DD3538721628530BB1 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 4A3C5E744D8B7E0508AE71E0 /* testrendercopyex */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 517F04D221F249E55F3E1A1F /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 66541B9B143128AD17145D95 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 2575308E4303103406C9036F /* libSDL2test.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2test.a"; + remoteRef = 7FAD76D067AB44FD507F43C9 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 30697A6733BC012824EC220D /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 48FB706900AC4A140DCA7C13 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 67B152F160461DC63715542F /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 9607AE3710C85E8F00CD1376 /* Postbuild */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = Postbuild; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "if [ \"${CONFIGURATION}\" = \"Debug Universal\" ]; then\nif [ ! -d \"./Build/Debug\" ]; then mkdir -p \"./Build/Debug\"; fi\ncp \"./../../../../../test/icon.bmp\" \"./Build/Debug/icon.bmp\"\ncp \"./../../../../../test/sample.bmp\" \"./Build/Debug/sample.bmp\"\nfi\nif [ \"${CONFIGURATION}\" = \"Debug Native\" ]; then\nif [ ! -d \"./Build/Debug\" ]; then mkdir -p \"./Build/Debug\"; fi\ncp \"./../../../../../test/icon.bmp\" \"./Build/Debug/icon.bmp\"\ncp \"./../../../../../test/sample.bmp\" \"./Build/Debug/sample.bmp\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Universal\" ]; then\nif [ ! -d \"./Build/Release\" ]; then mkdir -p \"./Build/Release\"; fi\ncp \"./../../../../../test/icon.bmp\" \"./Build/Release/icon.bmp\"\ncp \"./../../../../../test/sample.bmp\" \"./Build/Release/sample.bmp\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Native\" ]; then\nif [ ! -d \"./Build/Release\" ]; then mkdir -p \"./Build/Release\"; fi\ncp \"./../../../../../test/icon.bmp\" \"./Build/Release/icon.bmp\"\ncp \"./../../../../../test/sample.bmp\" \"./Build/Release/sample.bmp\"\nfi"; + }; +/* End PBXShellScriptBuildPhase section */ +/* Begin PBXSourcesBuildPhase section */ + 5E2A349329F670AD73103190 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 65F577E704295C1E66CB1E56 /* testrendercopyex.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 209110D73CD5605E5ABF3CBD /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 6A14614D0DC33E2373F7003C /* PBXContainerItemProxy */; + }; + 01F87A1A56882AFB6E8A4179 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2test.a"; + targetProxy = 4A967815518303F956A05EEE /* PBXContainerItemProxy */; + }; + 7D6E749B220E68695DB4126B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 583B199338BF336D5C0C48EB /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 2E543E906F8D533D0826131F /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testrendercopyex"; + }; + name = "Debug Universal"; + }; + 72783D940057663336F32A9A /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testrendercopyex"; + }; + name = "Debug Native"; + }; + 4B716C8F4915063E0DF23DF3 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testrendercopyex"; + }; + name = "Release Universal"; + }; + 6514230B643424116FC24F87 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testrendercopyex"; + }; + name = "Release Native"; + }; + 7DF03B9B5CE4369240CC4284 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 1F0938F176021BE50EBA0F4E /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 48501FE85BEA11AE49867FF7 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 524F4573278E77D6270615F0 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 4C7746B813C912AD3C5921CC /* Build configuration list for PBXNativeTarget "testrendercopyex" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 2E543E906F8D533D0826131F /* Debug Universal */, + 72783D940057663336F32A9A /* Debug Native */, + 4B716C8F4915063E0DF23DF3 /* Release Universal */, + 6514230B643424116FC24F87 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testrendercopyex" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7DF03B9B5CE4369240CC4284 /* Debug Universal */, + 1F0938F176021BE50EBA0F4E /* Debug Native */, + 48501FE85BEA11AE49867FF7 /* Release Universal */, + 524F4573278E77D6270615F0 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode4/tests/testrendertarget/testrendertarget.xcodeproj/project.pbxproj b/premake/Xcode/Xcode4/tests/testrendertarget/testrendertarget.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..909dff3f5e9ee --- /dev/null +++ b/premake/Xcode/Xcode4/tests/testrendertarget/testrendertarget.xcodeproj/project.pbxproj @@ -0,0 +1,515 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 3B704B3B412169616F405AB4 /* testrendertarget.c in Sources */ = {isa = PBXBuildFile; fileRef = 2CD6573D176B2ECC08A5178B /* testrendertarget.c */; }; + 3AAC0DD33E947FF533ED21A6 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 04D077D81951397E3F482225 /* AudioToolbox.framework */; }; + 1B2063BD172B0CBF52C85BCA /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2589068A6C7F0C8328FA6478 /* AudioUnit.framework */; }; + 2D810F1E11E422CB42D019DD /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3467176C5E2A27217AC6735C /* Cocoa.framework */; }; + 4670167E5CBE6E5D35E76126 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 10690E167F73144403B8656E /* CoreAudio.framework */; }; + 75566B897D0D6720699630D8 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 419F3A784EE610063A391E2C /* IOKit.framework */; }; + 36DA590E34C0302E2CED0224 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3BBF3633711D3ED67A557E59 /* Carbon.framework */; }; + 295A6EDA486C53F86910518F /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 38387D1F22C93EAD6BBB61C4 /* ForceFeedback.framework */; }; + 70F629FD5A1132CD3D156C61 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 38D4221E61EE625147985AC5 /* CoreFoundation.framework */; }; + 72C573C852C87F9A02296A18 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 62D94D09415003812F1E7705 /* OpenGL.framework */; }; + 6FC642555C230ED021206607 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 44952EDF3A6609265F272595 /* libSDL2main.a */; }; + 00A7797F41FD55DB4AAC7756 /* libSDL2test.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0DA230660E3568D853951172 /* libSDL2test.a */; }; + 41811AE95C22521A564D6C83 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 567D609F072E71E8522D1C3A /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 2EB723783DF000AE22377789 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 275635C11F9B24871D135BC0 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 0FF7291B375C79BC57696B66; + remoteInfo = "libSDL2main.a"; + }; + 70CA17E14C0C588337927538 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 275635C11F9B24871D135BC0 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1BAE4A0A77462FDC330812A3; + remoteInfo = "libSDL2main.a"; + }; + 0A9222342A42685C293626B3 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 70BD3C0C436C6BE872F40021 /* SDL2test.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 1EB6664901BC163F215A4861; + remoteInfo = "libSDL2test.a"; + }; + 58B634CC6256177716181B33 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 70BD3C0C436C6BE872F40021 /* SDL2test.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1258506950476B85239A79A3; + remoteInfo = "libSDL2test.a"; + }; + 555176BD01CA0A9236A47B67 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 547D14EB049F6C4C0F9D2CAC /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 5E6D56F6655337845A3C44C3; + remoteInfo = "libSDL2.a"; + }; + 566A59D968E672FE1BBE7BAC /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 547D14EB049F6C4C0F9D2CAC /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7E6A7BC23CFD134274963645; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 2CD6573D176B2ECC08A5178B /* testrendertarget.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testrendertarget.c"; path = "../../../../../test/testrendertarget.c"; sourceTree = ""; }; + 04D077D81951397E3F482225 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 2589068A6C7F0C8328FA6478 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 3467176C5E2A27217AC6735C /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 10690E167F73144403B8656E /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 419F3A784EE610063A391E2C /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 3BBF3633711D3ED67A557E59 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 38387D1F22C93EAD6BBB61C4 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 38D4221E61EE625147985AC5 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 62D94D09415003812F1E7705 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 5DC743EB37AA06C502E07413 /* testrendertarget */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testrendertarget"; path = "testrendertarget"; sourceTree = BUILT_PRODUCTS_DIR; }; + 275635C11F9B24871D135BC0 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 70BD3C0C436C6BE872F40021 /* SDL2test.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2test.xcodeproj"; path = "../../SDL2test/SDL2test.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 547D14EB049F6C4C0F9D2CAC /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 163234BB65884C0854210017 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 3AAC0DD33E947FF533ED21A6 /* AudioToolbox.framework in Frameworks */, + 1B2063BD172B0CBF52C85BCA /* AudioUnit.framework in Frameworks */, + 2D810F1E11E422CB42D019DD /* Cocoa.framework in Frameworks */, + 4670167E5CBE6E5D35E76126 /* CoreAudio.framework in Frameworks */, + 75566B897D0D6720699630D8 /* IOKit.framework in Frameworks */, + 36DA590E34C0302E2CED0224 /* Carbon.framework in Frameworks */, + 295A6EDA486C53F86910518F /* ForceFeedback.framework in Frameworks */, + 70F629FD5A1132CD3D156C61 /* CoreFoundation.framework in Frameworks */, + 72C573C852C87F9A02296A18 /* OpenGL.framework in Frameworks */, + 6FC642555C230ED021206607 /* libSDL2main.a in Frameworks */, + 00A7797F41FD55DB4AAC7756 /* libSDL2test.a in Frameworks */, + 41811AE95C22521A564D6C83 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 10ED6B1E2C0060B87FDC4B0B /* testrendertarget */ = { + isa = PBXGroup; + children = ( + 53C155344CF637493657351B /* test */, + 7E5E621C4AD30FC446F5279E /* Frameworks */, + 77E022337C09658B3958526B /* Products */, + 2C396D63169E05A60ED0355F /* Projects */, + ); + name = "testrendertarget"; + sourceTree = ""; + }; + 53C155344CF637493657351B /* test */ = { + isa = PBXGroup; + children = ( + 2CD6573D176B2ECC08A5178B /* testrendertarget.c */, + ); + name = "test"; + sourceTree = ""; + }; + 7E5E621C4AD30FC446F5279E /* Frameworks */ = { + isa = PBXGroup; + children = ( + 04D077D81951397E3F482225 /* AudioToolbox.framework */, + 2589068A6C7F0C8328FA6478 /* AudioUnit.framework */, + 3467176C5E2A27217AC6735C /* Cocoa.framework */, + 10690E167F73144403B8656E /* CoreAudio.framework */, + 419F3A784EE610063A391E2C /* IOKit.framework */, + 3BBF3633711D3ED67A557E59 /* Carbon.framework */, + 38387D1F22C93EAD6BBB61C4 /* ForceFeedback.framework */, + 38D4221E61EE625147985AC5 /* CoreFoundation.framework */, + 62D94D09415003812F1E7705 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 77E022337C09658B3958526B /* Products */ = { + isa = PBXGroup; + children = ( + 5DC743EB37AA06C502E07413 /* testrendertarget */, + ); + name = "Products"; + sourceTree = ""; + }; + 2C396D63169E05A60ED0355F /* Projects */ = { + isa = PBXGroup; + children = ( + 275635C11F9B24871D135BC0 /* SDL2main.xcodeproj */, + 70BD3C0C436C6BE872F40021 /* SDL2test.xcodeproj */, + 547D14EB049F6C4C0F9D2CAC /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 042D4774112A022979095876 /* Products */ = { + isa = PBXGroup; + children = ( + 44952EDF3A6609265F272595 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 60417E0308DA22FA03683E98 /* Products */ = { + isa = PBXGroup; + children = ( + 0DA230660E3568D853951172 /* libSDL2test.a */, + ); + name = Products; + sourceTree = ""; + }; + 593F46C26F7B0D81107B265F /* Products */ = { + isa = PBXGroup; + children = ( + 567D609F072E71E8522D1C3A /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 4C732B57010B030438401115 /* testrendertarget */ = { + isa = PBXNativeTarget; + buildConfigurationList = 2746168E78B9662A546F4CEB /* Build configuration list for PBXNativeTarget "testrendertarget" */; + buildPhases = ( + 74DB003875D669C13D5C19B5 /* Resources */, + 4ACA243C7DBD441B5F2303D1 /* Sources */, + 163234BB65884C0854210017 /* Frameworks */, + 9607AE3710C85E8F00CD1376 /* Postbuild */, + ); + buildRules = ( + ); + dependencies = ( + 5F96190A675504D97D2935E1 /* PBXTargetDependency */, + 5AD762CF14193438725F46EA /* PBXTargetDependency */, + 1823637736006BD7103F3FA5 /* PBXTargetDependency */, + ); + name = "testrendertarget"; + productInstallPath = "$(HOME)/bin"; + productName = "testrendertarget"; + productReference = 5DC743EB37AA06C502E07413 /* testrendertarget */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testrendertarget" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 10ED6B1E2C0060B87FDC4B0B /* testrendertarget */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 042D4774112A022979095876 /* Products */; + ProjectRef = 275635C11F9B24871D135BC0 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 60417E0308DA22FA03683E98 /* Products */; + ProjectRef = 70BD3C0C436C6BE872F40021 /* SDL2test.xcodeproj */; + }, + { + ProductGroup = 593F46C26F7B0D81107B265F /* Products */; + ProjectRef = 547D14EB049F6C4C0F9D2CAC /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 4C732B57010B030438401115 /* testrendertarget */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 44952EDF3A6609265F272595 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 2EB723783DF000AE22377789 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 0DA230660E3568D853951172 /* libSDL2test.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2test.a"; + remoteRef = 0A9222342A42685C293626B3 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 567D609F072E71E8522D1C3A /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 555176BD01CA0A9236A47B67 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 74DB003875D669C13D5C19B5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 9607AE3710C85E8F00CD1376 /* Postbuild */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = Postbuild; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "if [ \"${CONFIGURATION}\" = \"Debug Universal\" ]; then\nif [ ! -d \"./Build/Debug\" ]; then mkdir -p \"./Build/Debug\"; fi\ncp \"./../../../../../test/sample.bmp\" \"./Build/Debug/sample.bmp\"\ncp \"./../../../../../test/icon.bmp\" \"./Build/Debug/icon.bmp\"\nfi\nif [ \"${CONFIGURATION}\" = \"Debug Native\" ]; then\nif [ ! -d \"./Build/Debug\" ]; then mkdir -p \"./Build/Debug\"; fi\ncp \"./../../../../../test/sample.bmp\" \"./Build/Debug/sample.bmp\"\ncp \"./../../../../../test/icon.bmp\" \"./Build/Debug/icon.bmp\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Universal\" ]; then\nif [ ! -d \"./Build/Release\" ]; then mkdir -p \"./Build/Release\"; fi\ncp \"./../../../../../test/sample.bmp\" \"./Build/Release/sample.bmp\"\ncp \"./../../../../../test/icon.bmp\" \"./Build/Release/icon.bmp\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Native\" ]; then\nif [ ! -d \"./Build/Release\" ]; then mkdir -p \"./Build/Release\"; fi\ncp \"./../../../../../test/sample.bmp\" \"./Build/Release/sample.bmp\"\ncp \"./../../../../../test/icon.bmp\" \"./Build/Release/icon.bmp\"\nfi"; + }; +/* End PBXShellScriptBuildPhase section */ +/* Begin PBXSourcesBuildPhase section */ + 4ACA243C7DBD441B5F2303D1 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 3B704B3B412169616F405AB4 /* testrendertarget.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 5F96190A675504D97D2935E1 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 70CA17E14C0C588337927538 /* PBXContainerItemProxy */; + }; + 5AD762CF14193438725F46EA /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2test.a"; + targetProxy = 58B634CC6256177716181B33 /* PBXContainerItemProxy */; + }; + 1823637736006BD7103F3FA5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 566A59D968E672FE1BBE7BAC /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 58421254788B78CE5BA4118F /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testrendertarget"; + }; + name = "Debug Universal"; + }; + 05D50592395E6E1B6D09740B /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testrendertarget"; + }; + name = "Debug Native"; + }; + 6291441C453149691C506D28 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testrendertarget"; + }; + name = "Release Universal"; + }; + 3AE663B44A376CCF3D1A169E /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testrendertarget"; + }; + name = "Release Native"; + }; + 44AF61D42E85363414780EFE /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 0F0E0052129063A118C95B2C /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 7E8023D92FF302E51CDC5C12 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 60B80DA96425507E3E87448B /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 2746168E78B9662A546F4CEB /* Build configuration list for PBXNativeTarget "testrendertarget" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 58421254788B78CE5BA4118F /* Debug Universal */, + 05D50592395E6E1B6D09740B /* Debug Native */, + 6291441C453149691C506D28 /* Release Universal */, + 3AE663B44A376CCF3D1A169E /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testrendertarget" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 44AF61D42E85363414780EFE /* Debug Universal */, + 0F0E0052129063A118C95B2C /* Debug Native */, + 7E8023D92FF302E51CDC5C12 /* Release Universal */, + 60B80DA96425507E3E87448B /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode4/tests/testresample/testresample.xcodeproj/project.pbxproj b/premake/Xcode/Xcode4/tests/testresample/testresample.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..5107e324e2a12 --- /dev/null +++ b/premake/Xcode/Xcode4/tests/testresample/testresample.xcodeproj/project.pbxproj @@ -0,0 +1,472 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 35E60F6354AB3B1641465D4A /* testresample.c in Sources */ = {isa = PBXBuildFile; fileRef = 5A48300878B47D4E1FE31A8B /* testresample.c */; }; + 52942F2C730C29A932CC23F0 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0CBB537361507EF0681B4F6C /* AudioToolbox.framework */; }; + 08AB19601F297D224DB60FF8 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7E1948A3487A7E585B603A21 /* AudioUnit.framework */; }; + 62914E683E3457AE1D175136 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7FF878A65DD1637B46D77963 /* Cocoa.framework */; }; + 02C4386A74BB2A155E332002 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 39B466FE5F826A607FE12D44 /* CoreAudio.framework */; }; + 078B3B13743C1DB3765C2A8F /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 70556D2864B9465D11B804CA /* IOKit.framework */; }; + 3C7D390E7D95497131487DA0 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 19D846FD2D7C3FA30DC53116 /* Carbon.framework */; }; + 62CC72E140B6273E13AC2AD6 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3306598066372C43058C2E68 /* ForceFeedback.framework */; }; + 162C37EE209550E918BA75C7 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 499D657658771ED837751255 /* CoreFoundation.framework */; }; + 748233240B166CB259FA588B /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 66A91A435AD843B471796928 /* OpenGL.framework */; }; + 745C51343A092ED47243453E /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 10BB19FD31EF6637365E7F8E /* libSDL2main.a */; }; + 42637B8B669979FF548C45A2 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B6A64F67EF874F943BD3FB3 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 64E44CA37FAD415158941B7D /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 778746EA661A49E246EB7B37 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 0FF7291B375C79BC57696B66; + remoteInfo = "libSDL2main.a"; + }; + 5B1D612A14C260B921664D2E /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 778746EA661A49E246EB7B37 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1BAE4A0A77462FDC330812A3; + remoteInfo = "libSDL2main.a"; + }; + 34E93D6E2174487A011853A8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 09D460E647E34821027B192E /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 5E6D56F6655337845A3C44C3; + remoteInfo = "libSDL2.a"; + }; + 6AE64D450E4708A308B534B9 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 09D460E647E34821027B192E /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7E6A7BC23CFD134274963645; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 5A48300878B47D4E1FE31A8B /* testresample.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testresample.c"; path = "../../../../../test/testresample.c"; sourceTree = ""; }; + 0CBB537361507EF0681B4F6C /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 7E1948A3487A7E585B603A21 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 7FF878A65DD1637B46D77963 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 39B466FE5F826A607FE12D44 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 70556D2864B9465D11B804CA /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 19D846FD2D7C3FA30DC53116 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 3306598066372C43058C2E68 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 499D657658771ED837751255 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 66A91A435AD843B471796928 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 5FF03E8E660B6D2731A74F95 /* testresample */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testresample"; path = "testresample"; sourceTree = BUILT_PRODUCTS_DIR; }; + 778746EA661A49E246EB7B37 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 09D460E647E34821027B192E /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 74F318313E175C9156720941 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 52942F2C730C29A932CC23F0 /* AudioToolbox.framework in Frameworks */, + 08AB19601F297D224DB60FF8 /* AudioUnit.framework in Frameworks */, + 62914E683E3457AE1D175136 /* Cocoa.framework in Frameworks */, + 02C4386A74BB2A155E332002 /* CoreAudio.framework in Frameworks */, + 078B3B13743C1DB3765C2A8F /* IOKit.framework in Frameworks */, + 3C7D390E7D95497131487DA0 /* Carbon.framework in Frameworks */, + 62CC72E140B6273E13AC2AD6 /* ForceFeedback.framework in Frameworks */, + 162C37EE209550E918BA75C7 /* CoreFoundation.framework in Frameworks */, + 748233240B166CB259FA588B /* OpenGL.framework in Frameworks */, + 745C51343A092ED47243453E /* libSDL2main.a in Frameworks */, + 42637B8B669979FF548C45A2 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 52D3223A1F8C4E0D63875238 /* testresample */ = { + isa = PBXGroup; + children = ( + 1BA57A417A706E945B447221 /* test */, + 38D5462C2B0903561B281109 /* Frameworks */, + 370162B7169131C4775306B2 /* Products */, + 4F3145E22225682F00293278 /* Projects */, + ); + name = "testresample"; + sourceTree = ""; + }; + 1BA57A417A706E945B447221 /* test */ = { + isa = PBXGroup; + children = ( + 5A48300878B47D4E1FE31A8B /* testresample.c */, + ); + name = "test"; + sourceTree = ""; + }; + 38D5462C2B0903561B281109 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 0CBB537361507EF0681B4F6C /* AudioToolbox.framework */, + 7E1948A3487A7E585B603A21 /* AudioUnit.framework */, + 7FF878A65DD1637B46D77963 /* Cocoa.framework */, + 39B466FE5F826A607FE12D44 /* CoreAudio.framework */, + 70556D2864B9465D11B804CA /* IOKit.framework */, + 19D846FD2D7C3FA30DC53116 /* Carbon.framework */, + 3306598066372C43058C2E68 /* ForceFeedback.framework */, + 499D657658771ED837751255 /* CoreFoundation.framework */, + 66A91A435AD843B471796928 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 370162B7169131C4775306B2 /* Products */ = { + isa = PBXGroup; + children = ( + 5FF03E8E660B6D2731A74F95 /* testresample */, + ); + name = "Products"; + sourceTree = ""; + }; + 4F3145E22225682F00293278 /* Projects */ = { + isa = PBXGroup; + children = ( + 778746EA661A49E246EB7B37 /* SDL2main.xcodeproj */, + 09D460E647E34821027B192E /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 310B4B41283E0C277FC51DB1 /* Products */ = { + isa = PBXGroup; + children = ( + 10BB19FD31EF6637365E7F8E /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 6FC711341BA778FB4F2458AC /* Products */ = { + isa = PBXGroup; + children = ( + 3B6A64F67EF874F943BD3FB3 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 4FCF4C2A06B55A04436403D4 /* testresample */ = { + isa = PBXNativeTarget; + buildConfigurationList = 481C528600225942153760DE /* Build configuration list for PBXNativeTarget "testresample" */; + buildPhases = ( + 28A520392EC1339B392D4CF4 /* Resources */, + 519913DE564E1DF6018B6D6E /* Sources */, + 74F318313E175C9156720941 /* Frameworks */, + 9607AE3710C85E8F00CD1376 /* Postbuild */, + ); + buildRules = ( + ); + dependencies = ( + 09BF5D88172F33C4433E3E03 /* PBXTargetDependency */, + 0E9B660622D90178791A35AC /* PBXTargetDependency */, + ); + name = "testresample"; + productInstallPath = "$(HOME)/bin"; + productName = "testresample"; + productReference = 5FF03E8E660B6D2731A74F95 /* testresample */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testresample" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 52D3223A1F8C4E0D63875238 /* testresample */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 310B4B41283E0C277FC51DB1 /* Products */; + ProjectRef = 778746EA661A49E246EB7B37 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 6FC711341BA778FB4F2458AC /* Products */; + ProjectRef = 09D460E647E34821027B192E /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 4FCF4C2A06B55A04436403D4 /* testresample */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 10BB19FD31EF6637365E7F8E /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 64E44CA37FAD415158941B7D /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 3B6A64F67EF874F943BD3FB3 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 34E93D6E2174487A011853A8 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 28A520392EC1339B392D4CF4 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 9607AE3710C85E8F00CD1376 /* Postbuild */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = Postbuild; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "if [ \"${CONFIGURATION}\" = \"Debug Universal\" ]; then\nif [ ! -d \"./Build/Debug\" ]; then mkdir -p \"./Build/Debug\"; fi\ncp \"./../../../../../test/sample.wav\" \"./Build/Debug/sample.wav\"\nfi\nif [ \"${CONFIGURATION}\" = \"Debug Native\" ]; then\nif [ ! -d \"./Build/Debug\" ]; then mkdir -p \"./Build/Debug\"; fi\ncp \"./../../../../../test/sample.wav\" \"./Build/Debug/sample.wav\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Universal\" ]; then\nif [ ! -d \"./Build/Release\" ]; then mkdir -p \"./Build/Release\"; fi\ncp \"./../../../../../test/sample.wav\" \"./Build/Release/sample.wav\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Native\" ]; then\nif [ ! -d \"./Build/Release\" ]; then mkdir -p \"./Build/Release\"; fi\ncp \"./../../../../../test/sample.wav\" \"./Build/Release/sample.wav\"\nfi"; + }; +/* End PBXShellScriptBuildPhase section */ +/* Begin PBXSourcesBuildPhase section */ + 519913DE564E1DF6018B6D6E /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 35E60F6354AB3B1641465D4A /* testresample.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 09BF5D88172F33C4433E3E03 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 5B1D612A14C260B921664D2E /* PBXContainerItemProxy */; + }; + 0E9B660622D90178791A35AC /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 6AE64D450E4708A308B534B9 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 6C99352C60BE006164D65852 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testresample"; + }; + name = "Debug Universal"; + }; + 2AAB6D3C0DB3127023080924 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testresample"; + }; + name = "Debug Native"; + }; + 1D8D19C100D347D84C7F5423 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testresample"; + }; + name = "Release Universal"; + }; + 656157FA6260106C2CED0CF6 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testresample"; + }; + name = "Release Native"; + }; + 01EB74C024E077CD3EBB0FE3 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 534512B356FF2ECF26527BFE /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 7104478B05B41C546B4071FE /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 753861341E056BE930E26639 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 481C528600225942153760DE /* Build configuration list for PBXNativeTarget "testresample" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 6C99352C60BE006164D65852 /* Debug Universal */, + 2AAB6D3C0DB3127023080924 /* Debug Native */, + 1D8D19C100D347D84C7F5423 /* Release Universal */, + 656157FA6260106C2CED0CF6 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testresample" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 01EB74C024E077CD3EBB0FE3 /* Debug Universal */, + 534512B356FF2ECF26527BFE /* Debug Native */, + 7104478B05B41C546B4071FE /* Release Universal */, + 753861341E056BE930E26639 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode4/tests/testrumble/testrumble.xcodeproj/project.pbxproj b/premake/Xcode/Xcode4/tests/testrumble/testrumble.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..4cef0976005ea --- /dev/null +++ b/premake/Xcode/Xcode4/tests/testrumble/testrumble.xcodeproj/project.pbxproj @@ -0,0 +1,455 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 6F9008572AAF5CAA25E64C0B /* testrumble.c in Sources */ = {isa = PBXBuildFile; fileRef = 7D125FE5399D06F9596F1F9C /* testrumble.c */; }; + 4BD25BA164DB688456373A73 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 499970FD2BA1097174F51466 /* AudioToolbox.framework */; }; + 205403867CA67EA7304135DD /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 799A2065621B670930C61937 /* AudioUnit.framework */; }; + 623461621C14061F67875A87 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 51AA0654008F2F3619EE7E1D /* Cocoa.framework */; }; + 454D70D417BE6DB51E063EEB /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7DA1090811CD670055C86B86 /* CoreAudio.framework */; }; + 0B0F0B9D27CD2C87703E7AFB /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6EDC622706725F955AF12729 /* IOKit.framework */; }; + 78A129B337E341B301463E1F /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3400138E5D584509064E2BF1 /* Carbon.framework */; }; + 6FA6094F357D593933F121B2 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 72E8708B7402562922B27994 /* ForceFeedback.framework */; }; + 51D245A3018028126FEA2701 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 58DC7F2843985EB218C013A9 /* CoreFoundation.framework */; }; + 72D7390E67D560E0380C1D3D /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6F1B5AD43A715DC349DD0323 /* OpenGL.framework */; }; + 051F53FE5DF93941628128E5 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 735E5D7810073D9F458F57C0 /* libSDL2main.a */; }; + 194255B23AF87165510B2E12 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7BF74F9C3F8823E067FE7C0C /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 48BC504841350CC511F52C0E /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 201B54242D4E03BC32984F78 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 0FF7291B375C79BC57696B66; + remoteInfo = "libSDL2main.a"; + }; + 05FC1724492D4F7E02344DAA /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 201B54242D4E03BC32984F78 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1BAE4A0A77462FDC330812A3; + remoteInfo = "libSDL2main.a"; + }; + 38E5732A537D57FB3CC331B4 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 6B100D996F7235E825286974 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 5E6D56F6655337845A3C44C3; + remoteInfo = "libSDL2.a"; + }; + 2D1B5D0573E1651B76ED628B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 6B100D996F7235E825286974 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7E6A7BC23CFD134274963645; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 7D125FE5399D06F9596F1F9C /* testrumble.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testrumble.c"; path = "../../../../../test/testrumble.c"; sourceTree = ""; }; + 499970FD2BA1097174F51466 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 799A2065621B670930C61937 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 51AA0654008F2F3619EE7E1D /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 7DA1090811CD670055C86B86 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 6EDC622706725F955AF12729 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 3400138E5D584509064E2BF1 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 72E8708B7402562922B27994 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 58DC7F2843985EB218C013A9 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 6F1B5AD43A715DC349DD0323 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 104F354F123A382518D83425 /* testrumble */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testrumble"; path = "testrumble"; sourceTree = BUILT_PRODUCTS_DIR; }; + 201B54242D4E03BC32984F78 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 6B100D996F7235E825286974 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 1CCE52CC6B595625563D4E84 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 4BD25BA164DB688456373A73 /* AudioToolbox.framework in Frameworks */, + 205403867CA67EA7304135DD /* AudioUnit.framework in Frameworks */, + 623461621C14061F67875A87 /* Cocoa.framework in Frameworks */, + 454D70D417BE6DB51E063EEB /* CoreAudio.framework in Frameworks */, + 0B0F0B9D27CD2C87703E7AFB /* IOKit.framework in Frameworks */, + 78A129B337E341B301463E1F /* Carbon.framework in Frameworks */, + 6FA6094F357D593933F121B2 /* ForceFeedback.framework in Frameworks */, + 51D245A3018028126FEA2701 /* CoreFoundation.framework in Frameworks */, + 72D7390E67D560E0380C1D3D /* OpenGL.framework in Frameworks */, + 051F53FE5DF93941628128E5 /* libSDL2main.a in Frameworks */, + 194255B23AF87165510B2E12 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 57303EE34AB6176C387F3E10 /* testrumble */ = { + isa = PBXGroup; + children = ( + 197A54012758205821907AAF /* test */, + 79670D717ED505B55EE44D34 /* Frameworks */, + 3E9B702B34D941C86B661F5F /* Products */, + 47756CA0355E5B12395C01C2 /* Projects */, + ); + name = "testrumble"; + sourceTree = ""; + }; + 197A54012758205821907AAF /* test */ = { + isa = PBXGroup; + children = ( + 7D125FE5399D06F9596F1F9C /* testrumble.c */, + ); + name = "test"; + sourceTree = ""; + }; + 79670D717ED505B55EE44D34 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 499970FD2BA1097174F51466 /* AudioToolbox.framework */, + 799A2065621B670930C61937 /* AudioUnit.framework */, + 51AA0654008F2F3619EE7E1D /* Cocoa.framework */, + 7DA1090811CD670055C86B86 /* CoreAudio.framework */, + 6EDC622706725F955AF12729 /* IOKit.framework */, + 3400138E5D584509064E2BF1 /* Carbon.framework */, + 72E8708B7402562922B27994 /* ForceFeedback.framework */, + 58DC7F2843985EB218C013A9 /* CoreFoundation.framework */, + 6F1B5AD43A715DC349DD0323 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 3E9B702B34D941C86B661F5F /* Products */ = { + isa = PBXGroup; + children = ( + 104F354F123A382518D83425 /* testrumble */, + ); + name = "Products"; + sourceTree = ""; + }; + 47756CA0355E5B12395C01C2 /* Projects */ = { + isa = PBXGroup; + children = ( + 201B54242D4E03BC32984F78 /* SDL2main.xcodeproj */, + 6B100D996F7235E825286974 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 60F642923925395F36795F9F /* Products */ = { + isa = PBXGroup; + children = ( + 735E5D7810073D9F458F57C0 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 53AA6E2757A342AC34311DA1 /* Products */ = { + isa = PBXGroup; + children = ( + 7BF74F9C3F8823E067FE7C0C /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 0183499B688451FC2EFF25D5 /* testrumble */ = { + isa = PBXNativeTarget; + buildConfigurationList = 4E79069B65D9450B63387937 /* Build configuration list for PBXNativeTarget "testrumble" */; + buildPhases = ( + 2825253C3BC10D0E1ADF3C76 /* Resources */, + 7609740B18523B637DD52FF9 /* Sources */, + 1CCE52CC6B595625563D4E84 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 616678770C8F3BF768D45AA6 /* PBXTargetDependency */, + 211D2AD250037C05698F3765 /* PBXTargetDependency */, + ); + name = "testrumble"; + productInstallPath = "$(HOME)/bin"; + productName = "testrumble"; + productReference = 104F354F123A382518D83425 /* testrumble */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testrumble" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 57303EE34AB6176C387F3E10 /* testrumble */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 60F642923925395F36795F9F /* Products */; + ProjectRef = 201B54242D4E03BC32984F78 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 53AA6E2757A342AC34311DA1 /* Products */; + ProjectRef = 6B100D996F7235E825286974 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 0183499B688451FC2EFF25D5 /* testrumble */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 735E5D7810073D9F458F57C0 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 48BC504841350CC511F52C0E /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 7BF74F9C3F8823E067FE7C0C /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 38E5732A537D57FB3CC331B4 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 2825253C3BC10D0E1ADF3C76 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 7609740B18523B637DD52FF9 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 6F9008572AAF5CAA25E64C0B /* testrumble.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 616678770C8F3BF768D45AA6 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 05FC1724492D4F7E02344DAA /* PBXContainerItemProxy */; + }; + 211D2AD250037C05698F3765 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 2D1B5D0573E1651B76ED628B /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 77685791061D714C5FE01936 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testrumble"; + }; + name = "Debug Universal"; + }; + 2E2853B06D9A448729AF304E /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testrumble"; + }; + name = "Debug Native"; + }; + 6E56703214E40DA62D3C66A2 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testrumble"; + }; + name = "Release Universal"; + }; + 4E4064F451AF51C4568D5408 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testrumble"; + }; + name = "Release Native"; + }; + 52003DC23AF1417C73D75457 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 0A3355EA1B75307C53726793 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 253773595D0172953F164054 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 7CC24FE209134E7E52E2269A /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 4E79069B65D9450B63387937 /* Build configuration list for PBXNativeTarget "testrumble" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 77685791061D714C5FE01936 /* Debug Universal */, + 2E2853B06D9A448729AF304E /* Debug Native */, + 6E56703214E40DA62D3C66A2 /* Release Universal */, + 4E4064F451AF51C4568D5408 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testrumble" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 52003DC23AF1417C73D75457 /* Debug Universal */, + 0A3355EA1B75307C53726793 /* Debug Native */, + 253773595D0172953F164054 /* Release Universal */, + 7CC24FE209134E7E52E2269A /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode4/tests/testscale/testscale.xcodeproj/project.pbxproj b/premake/Xcode/Xcode4/tests/testscale/testscale.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..d57e7b6e157b0 --- /dev/null +++ b/premake/Xcode/Xcode4/tests/testscale/testscale.xcodeproj/project.pbxproj @@ -0,0 +1,515 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 52A221D55B3035AA48E47AFE /* testscale.c in Sources */ = {isa = PBXBuildFile; fileRef = 00535F4809701A374C8D4F16 /* testscale.c */; }; + 6E950B652E48203B26DA56F6 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2828778559057C4275791684 /* AudioToolbox.framework */; }; + 642549FE569F735F77A22EDC /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 37B234F173D66DDD4917203A /* AudioUnit.framework */; }; + 79E21AC86E0C750B4C7260C1 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6F5D533C37A4306622FE7B89 /* Cocoa.framework */; }; + 2C0848C857713D0814FE5DC7 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5006786347D501D573DA12F9 /* CoreAudio.framework */; }; + 61822DDF3B123D4523CF7108 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 520C30BD4CB0740C7EC62E0B /* IOKit.framework */; }; + 42F31FB012D41E435EC31458 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0465328411E81A4C73EB6A5E /* Carbon.framework */; }; + 720A7D5C48CE5B426A883439 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 39AE0EEA2A4E28617D632101 /* ForceFeedback.framework */; }; + 7A4426FB44DA7415350B77CE /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 355C2D5C228003A43DDE57FA /* CoreFoundation.framework */; }; + 6B4051E407734A7159BB19A9 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1FD3621E4CF31CB2742F558E /* OpenGL.framework */; }; + 5B1F0D2C5CFF1B1F295E6F31 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 52AC2AEA6E120291253826F2 /* libSDL2main.a */; }; + 1C823D8B2BA249FC50AF2647 /* libSDL2test.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5EFA1AA6315E42C921515D01 /* libSDL2test.a */; }; + 63686B8779ED58B571C01A84 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2C0643315CBB1EC265804FC6 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 01A129B75F6168F7529011C3 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 2A9D69F103BE41AE368E42A6 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 0FF7291B375C79BC57696B66; + remoteInfo = "libSDL2main.a"; + }; + 53624E8942002E5825A2412F /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 2A9D69F103BE41AE368E42A6 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1BAE4A0A77462FDC330812A3; + remoteInfo = "libSDL2main.a"; + }; + 28044D84291474F73DBB68DE /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1F443D607BF72841046529A0 /* SDL2test.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 1EB6664901BC163F215A4861; + remoteInfo = "libSDL2test.a"; + }; + 79A365D807CE0037464E3EAF /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1F443D607BF72841046529A0 /* SDL2test.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1258506950476B85239A79A3; + remoteInfo = "libSDL2test.a"; + }; + 7A6320CC6DC956590E800F44 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 40646BF671F8674E48E6152E /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 5E6D56F6655337845A3C44C3; + remoteInfo = "libSDL2.a"; + }; + 6E5C0D395563144B7BEE4D26 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 40646BF671F8674E48E6152E /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7E6A7BC23CFD134274963645; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 00535F4809701A374C8D4F16 /* testscale.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testscale.c"; path = "../../../../../test/testscale.c"; sourceTree = ""; }; + 2828778559057C4275791684 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 37B234F173D66DDD4917203A /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 6F5D533C37A4306622FE7B89 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 5006786347D501D573DA12F9 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 520C30BD4CB0740C7EC62E0B /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 0465328411E81A4C73EB6A5E /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 39AE0EEA2A4E28617D632101 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 355C2D5C228003A43DDE57FA /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 1FD3621E4CF31CB2742F558E /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 4B66367B5F7C5415696F1E3F /* testscale */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testscale"; path = "testscale"; sourceTree = BUILT_PRODUCTS_DIR; }; + 2A9D69F103BE41AE368E42A6 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 1F443D607BF72841046529A0 /* SDL2test.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2test.xcodeproj"; path = "../../SDL2test/SDL2test.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 40646BF671F8674E48E6152E /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 4A680D2877B935F038DF43E1 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 6E950B652E48203B26DA56F6 /* AudioToolbox.framework in Frameworks */, + 642549FE569F735F77A22EDC /* AudioUnit.framework in Frameworks */, + 79E21AC86E0C750B4C7260C1 /* Cocoa.framework in Frameworks */, + 2C0848C857713D0814FE5DC7 /* CoreAudio.framework in Frameworks */, + 61822DDF3B123D4523CF7108 /* IOKit.framework in Frameworks */, + 42F31FB012D41E435EC31458 /* Carbon.framework in Frameworks */, + 720A7D5C48CE5B426A883439 /* ForceFeedback.framework in Frameworks */, + 7A4426FB44DA7415350B77CE /* CoreFoundation.framework in Frameworks */, + 6B4051E407734A7159BB19A9 /* OpenGL.framework in Frameworks */, + 5B1F0D2C5CFF1B1F295E6F31 /* libSDL2main.a in Frameworks */, + 1C823D8B2BA249FC50AF2647 /* libSDL2test.a in Frameworks */, + 63686B8779ED58B571C01A84 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 73B23D0F4A5F541B793A6E75 /* testscale */ = { + isa = PBXGroup; + children = ( + 73FA2E7E6DD4348D251601FC /* test */, + 5A4644114B722F7B584B6025 /* Frameworks */, + 3AF9594D5DC35F3A670255B2 /* Products */, + 1F0A00E54FD148FC5495102D /* Projects */, + ); + name = "testscale"; + sourceTree = ""; + }; + 73FA2E7E6DD4348D251601FC /* test */ = { + isa = PBXGroup; + children = ( + 00535F4809701A374C8D4F16 /* testscale.c */, + ); + name = "test"; + sourceTree = ""; + }; + 5A4644114B722F7B584B6025 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 2828778559057C4275791684 /* AudioToolbox.framework */, + 37B234F173D66DDD4917203A /* AudioUnit.framework */, + 6F5D533C37A4306622FE7B89 /* Cocoa.framework */, + 5006786347D501D573DA12F9 /* CoreAudio.framework */, + 520C30BD4CB0740C7EC62E0B /* IOKit.framework */, + 0465328411E81A4C73EB6A5E /* Carbon.framework */, + 39AE0EEA2A4E28617D632101 /* ForceFeedback.framework */, + 355C2D5C228003A43DDE57FA /* CoreFoundation.framework */, + 1FD3621E4CF31CB2742F558E /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 3AF9594D5DC35F3A670255B2 /* Products */ = { + isa = PBXGroup; + children = ( + 4B66367B5F7C5415696F1E3F /* testscale */, + ); + name = "Products"; + sourceTree = ""; + }; + 1F0A00E54FD148FC5495102D /* Projects */ = { + isa = PBXGroup; + children = ( + 2A9D69F103BE41AE368E42A6 /* SDL2main.xcodeproj */, + 1F443D607BF72841046529A0 /* SDL2test.xcodeproj */, + 40646BF671F8674E48E6152E /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 273E13C701DD143B3F030CAA /* Products */ = { + isa = PBXGroup; + children = ( + 52AC2AEA6E120291253826F2 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 4EAB5A273F057F3E63B0385A /* Products */ = { + isa = PBXGroup; + children = ( + 5EFA1AA6315E42C921515D01 /* libSDL2test.a */, + ); + name = Products; + sourceTree = ""; + }; + 676F64AF31104FF028C41749 /* Products */ = { + isa = PBXGroup; + children = ( + 2C0643315CBB1EC265804FC6 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 74B1378C7D2B26BD44A07C03 /* testscale */ = { + isa = PBXNativeTarget; + buildConfigurationList = 03E1517B155B1AC915BE0CB4 /* Build configuration list for PBXNativeTarget "testscale" */; + buildPhases = ( + 3AA36239437419615A2003AD /* Resources */, + 03392D574E91389F57AD32C7 /* Sources */, + 4A680D2877B935F038DF43E1 /* Frameworks */, + 9607AE3710C85E8F00CD1376 /* Postbuild */, + ); + buildRules = ( + ); + dependencies = ( + 2A2E618162F62A1569752B8B /* PBXTargetDependency */, + 61985AF927E471BF61950A41 /* PBXTargetDependency */, + 24CB1AA7778A0B06514A7003 /* PBXTargetDependency */, + ); + name = "testscale"; + productInstallPath = "$(HOME)/bin"; + productName = "testscale"; + productReference = 4B66367B5F7C5415696F1E3F /* testscale */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testscale" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 73B23D0F4A5F541B793A6E75 /* testscale */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 273E13C701DD143B3F030CAA /* Products */; + ProjectRef = 2A9D69F103BE41AE368E42A6 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 4EAB5A273F057F3E63B0385A /* Products */; + ProjectRef = 1F443D607BF72841046529A0 /* SDL2test.xcodeproj */; + }, + { + ProductGroup = 676F64AF31104FF028C41749 /* Products */; + ProjectRef = 40646BF671F8674E48E6152E /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 74B1378C7D2B26BD44A07C03 /* testscale */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 52AC2AEA6E120291253826F2 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 01A129B75F6168F7529011C3 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 5EFA1AA6315E42C921515D01 /* libSDL2test.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2test.a"; + remoteRef = 28044D84291474F73DBB68DE /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 2C0643315CBB1EC265804FC6 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 7A6320CC6DC956590E800F44 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 3AA36239437419615A2003AD /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 9607AE3710C85E8F00CD1376 /* Postbuild */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = Postbuild; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "if [ \"${CONFIGURATION}\" = \"Debug Universal\" ]; then\nif [ ! -d \"./Build/Debug\" ]; then mkdir -p \"./Build/Debug\"; fi\ncp \"./../../../../../test/sample.bmp\" \"./Build/Debug/sample.bmp\"\ncp \"./../../../../../test/icon.bmp\" \"./Build/Debug/icon.bmp\"\nfi\nif [ \"${CONFIGURATION}\" = \"Debug Native\" ]; then\nif [ ! -d \"./Build/Debug\" ]; then mkdir -p \"./Build/Debug\"; fi\ncp \"./../../../../../test/sample.bmp\" \"./Build/Debug/sample.bmp\"\ncp \"./../../../../../test/icon.bmp\" \"./Build/Debug/icon.bmp\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Universal\" ]; then\nif [ ! -d \"./Build/Release\" ]; then mkdir -p \"./Build/Release\"; fi\ncp \"./../../../../../test/sample.bmp\" \"./Build/Release/sample.bmp\"\ncp \"./../../../../../test/icon.bmp\" \"./Build/Release/icon.bmp\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Native\" ]; then\nif [ ! -d \"./Build/Release\" ]; then mkdir -p \"./Build/Release\"; fi\ncp \"./../../../../../test/sample.bmp\" \"./Build/Release/sample.bmp\"\ncp \"./../../../../../test/icon.bmp\" \"./Build/Release/icon.bmp\"\nfi"; + }; +/* End PBXShellScriptBuildPhase section */ +/* Begin PBXSourcesBuildPhase section */ + 03392D574E91389F57AD32C7 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 52A221D55B3035AA48E47AFE /* testscale.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 2A2E618162F62A1569752B8B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 53624E8942002E5825A2412F /* PBXContainerItemProxy */; + }; + 61985AF927E471BF61950A41 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2test.a"; + targetProxy = 79A365D807CE0037464E3EAF /* PBXContainerItemProxy */; + }; + 24CB1AA7778A0B06514A7003 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 6E5C0D395563144B7BEE4D26 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 2CE4638609AA08631BCE316D /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testscale"; + }; + name = "Debug Universal"; + }; + 274B38691BF232E7794600CA /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testscale"; + }; + name = "Debug Native"; + }; + 04B6504B0E4216675D0B0829 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testscale"; + }; + name = "Release Universal"; + }; + 53485C2C7372770C5C3F39D0 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testscale"; + }; + name = "Release Native"; + }; + 08675BEB3FA11B3B4ED5091E /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 64357811288810543A7109A8 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 498223CF7F1C33A114900BB7 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 1A934A23712621042E0156BD /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 03E1517B155B1AC915BE0CB4 /* Build configuration list for PBXNativeTarget "testscale" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 2CE4638609AA08631BCE316D /* Debug Universal */, + 274B38691BF232E7794600CA /* Debug Native */, + 04B6504B0E4216675D0B0829 /* Release Universal */, + 53485C2C7372770C5C3F39D0 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testscale" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 08675BEB3FA11B3B4ED5091E /* Debug Universal */, + 64357811288810543A7109A8 /* Debug Native */, + 498223CF7F1C33A114900BB7 /* Release Universal */, + 1A934A23712621042E0156BD /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode4/tests/testsem/testsem.xcodeproj/project.pbxproj b/premake/Xcode/Xcode4/tests/testsem/testsem.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..0ec38acb8510b --- /dev/null +++ b/premake/Xcode/Xcode4/tests/testsem/testsem.xcodeproj/project.pbxproj @@ -0,0 +1,455 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 15293CD565D673E00A306949 /* testsem.c in Sources */ = {isa = PBXBuildFile; fileRef = 46376D2A0F3E63E642A9008A /* testsem.c */; }; + 34F7559F3D8051541B8765AF /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6CBE69624E0C3240370D5F75 /* AudioToolbox.framework */; }; + 59443F4965D456B869BA5CFB /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 62196DFD3419728651E6592D /* AudioUnit.framework */; }; + 041D157E105405606E396C24 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7151150264850DF30448381F /* Cocoa.framework */; }; + 76387C39291762BE512642A1 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 517A622C67F444E81A496C71 /* CoreAudio.framework */; }; + 65BB6C54313B558D50153BB6 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6D1A61B40F3023663DF871AE /* IOKit.framework */; }; + 725767564E534EF6258A3914 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6614396D4B0C1F865432485F /* Carbon.framework */; }; + 1D1176447BFC01B7391546E1 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 661450B9615D2DFD3DF01107 /* ForceFeedback.framework */; }; + 21C402C842603E0B5C063117 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6E99322466F15BB75C5306F2 /* CoreFoundation.framework */; }; + 6D3E2D397AAB2D4F4CF2384F /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 034758F94B1C45A1751279C4 /* OpenGL.framework */; }; + 794073935E046F9479F74B8E /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4455588F1B4354006CAB6923 /* libSDL2main.a */; }; + 605D79D6047D2D9D53AE6694 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 78797F4731811A7A48E27B04 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 599556D13FAA589D40A54FB4 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 338C316705D43C191A142099 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 0FF7291B375C79BC57696B66; + remoteInfo = "libSDL2main.a"; + }; + 40E669BD1D8F177E5ABC6D11 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 338C316705D43C191A142099 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1BAE4A0A77462FDC330812A3; + remoteInfo = "libSDL2main.a"; + }; + 4E40097511B1343866F3614D /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 798D351331A7679B03FF6215 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 5E6D56F6655337845A3C44C3; + remoteInfo = "libSDL2.a"; + }; + 24860312212444345CEF7130 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 798D351331A7679B03FF6215 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7E6A7BC23CFD134274963645; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 46376D2A0F3E63E642A9008A /* testsem.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testsem.c"; path = "../../../../../test/testsem.c"; sourceTree = ""; }; + 6CBE69624E0C3240370D5F75 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 62196DFD3419728651E6592D /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 7151150264850DF30448381F /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 517A622C67F444E81A496C71 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 6D1A61B40F3023663DF871AE /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 6614396D4B0C1F865432485F /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 661450B9615D2DFD3DF01107 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 6E99322466F15BB75C5306F2 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 034758F94B1C45A1751279C4 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 119B0F9946CA27055E0C1E00 /* testsem */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testsem"; path = "testsem"; sourceTree = BUILT_PRODUCTS_DIR; }; + 338C316705D43C191A142099 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 798D351331A7679B03FF6215 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 50C6081943C07DE36B0870A3 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 34F7559F3D8051541B8765AF /* AudioToolbox.framework in Frameworks */, + 59443F4965D456B869BA5CFB /* AudioUnit.framework in Frameworks */, + 041D157E105405606E396C24 /* Cocoa.framework in Frameworks */, + 76387C39291762BE512642A1 /* CoreAudio.framework in Frameworks */, + 65BB6C54313B558D50153BB6 /* IOKit.framework in Frameworks */, + 725767564E534EF6258A3914 /* Carbon.framework in Frameworks */, + 1D1176447BFC01B7391546E1 /* ForceFeedback.framework in Frameworks */, + 21C402C842603E0B5C063117 /* CoreFoundation.framework in Frameworks */, + 6D3E2D397AAB2D4F4CF2384F /* OpenGL.framework in Frameworks */, + 794073935E046F9479F74B8E /* libSDL2main.a in Frameworks */, + 605D79D6047D2D9D53AE6694 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 0D8207B92FE70FD441786A5E /* testsem */ = { + isa = PBXGroup; + children = ( + 01BA18E9748100B710E73A47 /* test */, + 45610B86390929E3259635D9 /* Frameworks */, + 626F7C3136760CDC4C4C2AD6 /* Products */, + 0342221460A45C5907422F2D /* Projects */, + ); + name = "testsem"; + sourceTree = ""; + }; + 01BA18E9748100B710E73A47 /* test */ = { + isa = PBXGroup; + children = ( + 46376D2A0F3E63E642A9008A /* testsem.c */, + ); + name = "test"; + sourceTree = ""; + }; + 45610B86390929E3259635D9 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 6CBE69624E0C3240370D5F75 /* AudioToolbox.framework */, + 62196DFD3419728651E6592D /* AudioUnit.framework */, + 7151150264850DF30448381F /* Cocoa.framework */, + 517A622C67F444E81A496C71 /* CoreAudio.framework */, + 6D1A61B40F3023663DF871AE /* IOKit.framework */, + 6614396D4B0C1F865432485F /* Carbon.framework */, + 661450B9615D2DFD3DF01107 /* ForceFeedback.framework */, + 6E99322466F15BB75C5306F2 /* CoreFoundation.framework */, + 034758F94B1C45A1751279C4 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 626F7C3136760CDC4C4C2AD6 /* Products */ = { + isa = PBXGroup; + children = ( + 119B0F9946CA27055E0C1E00 /* testsem */, + ); + name = "Products"; + sourceTree = ""; + }; + 0342221460A45C5907422F2D /* Projects */ = { + isa = PBXGroup; + children = ( + 338C316705D43C191A142099 /* SDL2main.xcodeproj */, + 798D351331A7679B03FF6215 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 6BD6360A535250756CF217E9 /* Products */ = { + isa = PBXGroup; + children = ( + 4455588F1B4354006CAB6923 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 79433183264A520502492116 /* Products */ = { + isa = PBXGroup; + children = ( + 78797F4731811A7A48E27B04 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 18C935D7602B31BD035777EB /* testsem */ = { + isa = PBXNativeTarget; + buildConfigurationList = 2C4E68B156C94A493CF52D2D /* Build configuration list for PBXNativeTarget "testsem" */; + buildPhases = ( + 236E2EBD14B875816E1C2A3D /* Resources */, + 2B6E4A4A58710BCC2787373C /* Sources */, + 50C6081943C07DE36B0870A3 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 13696F900DBB228A32266024 /* PBXTargetDependency */, + 2A1A47952961593B614862EE /* PBXTargetDependency */, + ); + name = "testsem"; + productInstallPath = "$(HOME)/bin"; + productName = "testsem"; + productReference = 119B0F9946CA27055E0C1E00 /* testsem */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testsem" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 0D8207B92FE70FD441786A5E /* testsem */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 6BD6360A535250756CF217E9 /* Products */; + ProjectRef = 338C316705D43C191A142099 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 79433183264A520502492116 /* Products */; + ProjectRef = 798D351331A7679B03FF6215 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 18C935D7602B31BD035777EB /* testsem */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 4455588F1B4354006CAB6923 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 599556D13FAA589D40A54FB4 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 78797F4731811A7A48E27B04 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 4E40097511B1343866F3614D /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 236E2EBD14B875816E1C2A3D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 2B6E4A4A58710BCC2787373C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 15293CD565D673E00A306949 /* testsem.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 13696F900DBB228A32266024 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 40E669BD1D8F177E5ABC6D11 /* PBXContainerItemProxy */; + }; + 2A1A47952961593B614862EE /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 24860312212444345CEF7130 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 133A7169340607BC74A8451A /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testsem"; + }; + name = "Debug Universal"; + }; + 7DF578DA40E864AE1A5D6C60 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testsem"; + }; + name = "Debug Native"; + }; + 49E90593292B4DF114A85C27 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testsem"; + }; + name = "Release Universal"; + }; + 7E2275970D556D854BEC7648 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testsem"; + }; + name = "Release Native"; + }; + 54F00BE30C7237C44E96094A /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 45ED5B0C757A360863CC75EB /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 3CAF08882F85613C2D092FE5 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 772133E278EA577209F21ED1 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 2C4E68B156C94A493CF52D2D /* Build configuration list for PBXNativeTarget "testsem" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 133A7169340607BC74A8451A /* Debug Universal */, + 7DF578DA40E864AE1A5D6C60 /* Debug Native */, + 49E90593292B4DF114A85C27 /* Release Universal */, + 7E2275970D556D854BEC7648 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testsem" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 54F00BE30C7237C44E96094A /* Debug Universal */, + 45ED5B0C757A360863CC75EB /* Debug Native */, + 3CAF08882F85613C2D092FE5 /* Release Universal */, + 772133E278EA577209F21ED1 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode4/tests/testshader/testshader.xcodeproj/project.pbxproj b/premake/Xcode/Xcode4/tests/testshader/testshader.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..b893a7764ffd7 --- /dev/null +++ b/premake/Xcode/Xcode4/tests/testshader/testshader.xcodeproj/project.pbxproj @@ -0,0 +1,476 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 470C1B0B2EED6E5F608B04C8 /* testshader.c in Sources */ = {isa = PBXBuildFile; fileRef = 557E7D2E0A541B16566C02F9 /* testshader.c */; }; + 166B0AC3120A67612E387AF8 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 790E2E6D0D5B5ADE257F36F9 /* AudioToolbox.framework */; }; + 6A5317FF02547F9466AF2B87 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 34161F8824266DFF21F44BBB /* AudioUnit.framework */; }; + 5F2435E54ED52EE620980C37 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6A0B02673EBC337F0DB62D8A /* Cocoa.framework */; }; + 212E74471F5E777C76447768 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1AA15B657F20259D15354D0D /* CoreAudio.framework */; }; + 501D54264959234E627F1686 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6089497A08314AE243BF61B3 /* IOKit.framework */; }; + 010A4B095B4B521429FE1093 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3A512C430FDD19D440DB7F37 /* Carbon.framework */; }; + 0BEE76332FEC3295742C7B68 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 619B1D64302C1E3469FE2CAA /* ForceFeedback.framework */; }; + 70A30E6000F62A70590853EE /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 15A6032D33E7180F130561E6 /* CoreFoundation.framework */; }; + 62370A7B33A27ACD499D1BFC /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 68EC19C50E030A4826E24463 /* OpenGL.framework */; }; + 233449FB3C62689E755960EB /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7CD942FD27675F6E37CD33BE /* libSDL2main.a */; }; + 640659372D4D5BA80C196FEA /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 381C64BA0E3C06E9370C7F67 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 0506771A72B1769A23BA18B9 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 25FF16D668E6103A712765EE /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 0FF7291B375C79BC57696B66; + remoteInfo = "libSDL2main.a"; + }; + 457335A766F836B46B3025CE /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 25FF16D668E6103A712765EE /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1BAE4A0A77462FDC330812A3; + remoteInfo = "libSDL2main.a"; + }; + 0A69131702E32CF24A545F54 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 729268B820F3534F0A70743C /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 5E6D56F6655337845A3C44C3; + remoteInfo = "libSDL2.a"; + }; + 26D971DD15775F9B62560F54 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 729268B820F3534F0A70743C /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7E6A7BC23CFD134274963645; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 557E7D2E0A541B16566C02F9 /* testshader.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testshader.c"; path = "../../../../../test/testshader.c"; sourceTree = ""; }; + 790E2E6D0D5B5ADE257F36F9 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 34161F8824266DFF21F44BBB /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 6A0B02673EBC337F0DB62D8A /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 1AA15B657F20259D15354D0D /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 6089497A08314AE243BF61B3 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 3A512C430FDD19D440DB7F37 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 619B1D64302C1E3469FE2CAA /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 15A6032D33E7180F130561E6 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 68EC19C50E030A4826E24463 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 43821E2F33B54FD537993116 /* testshader */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testshader"; path = "testshader"; sourceTree = BUILT_PRODUCTS_DIR; }; + 25FF16D668E6103A712765EE /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 729268B820F3534F0A70743C /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 783D02DD3A1B438A3FF8692D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 166B0AC3120A67612E387AF8 /* AudioToolbox.framework in Frameworks */, + 6A5317FF02547F9466AF2B87 /* AudioUnit.framework in Frameworks */, + 5F2435E54ED52EE620980C37 /* Cocoa.framework in Frameworks */, + 212E74471F5E777C76447768 /* CoreAudio.framework in Frameworks */, + 501D54264959234E627F1686 /* IOKit.framework in Frameworks */, + 010A4B095B4B521429FE1093 /* Carbon.framework in Frameworks */, + 0BEE76332FEC3295742C7B68 /* ForceFeedback.framework in Frameworks */, + 70A30E6000F62A70590853EE /* CoreFoundation.framework in Frameworks */, + 62370A7B33A27ACD499D1BFC /* OpenGL.framework in Frameworks */, + 233449FB3C62689E755960EB /* libSDL2main.a in Frameworks */, + 640659372D4D5BA80C196FEA /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 418A55677ED642091AE1555C /* testshader */ = { + isa = PBXGroup; + children = ( + 339D187D402018EA409A5FAE /* test */, + 0A1830805C366D0D0A7A5D7F /* Frameworks */, + 515007C33BBD000303726B8C /* Products */, + 3BBF2B646D5102A604E03F40 /* Projects */, + ); + name = "testshader"; + sourceTree = ""; + }; + 339D187D402018EA409A5FAE /* test */ = { + isa = PBXGroup; + children = ( + 557E7D2E0A541B16566C02F9 /* testshader.c */, + ); + name = "test"; + sourceTree = ""; + }; + 0A1830805C366D0D0A7A5D7F /* Frameworks */ = { + isa = PBXGroup; + children = ( + 790E2E6D0D5B5ADE257F36F9 /* AudioToolbox.framework */, + 34161F8824266DFF21F44BBB /* AudioUnit.framework */, + 6A0B02673EBC337F0DB62D8A /* Cocoa.framework */, + 1AA15B657F20259D15354D0D /* CoreAudio.framework */, + 6089497A08314AE243BF61B3 /* IOKit.framework */, + 3A512C430FDD19D440DB7F37 /* Carbon.framework */, + 619B1D64302C1E3469FE2CAA /* ForceFeedback.framework */, + 15A6032D33E7180F130561E6 /* CoreFoundation.framework */, + 68EC19C50E030A4826E24463 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 515007C33BBD000303726B8C /* Products */ = { + isa = PBXGroup; + children = ( + 43821E2F33B54FD537993116 /* testshader */, + ); + name = "Products"; + sourceTree = ""; + }; + 3BBF2B646D5102A604E03F40 /* Projects */ = { + isa = PBXGroup; + children = ( + 25FF16D668E6103A712765EE /* SDL2main.xcodeproj */, + 729268B820F3534F0A70743C /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 7D6462327CDF40E3125B4DA0 /* Products */ = { + isa = PBXGroup; + children = ( + 7CD942FD27675F6E37CD33BE /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 763455E764173830123E492E /* Products */ = { + isa = PBXGroup; + children = ( + 381C64BA0E3C06E9370C7F67 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 1F9925314B933D6D7CF36D7D /* testshader */ = { + isa = PBXNativeTarget; + buildConfigurationList = 12736C0C38D5350F70D76073 /* Build configuration list for PBXNativeTarget "testshader" */; + buildPhases = ( + 5BA622D37B3D6C8056BF4444 /* Resources */, + 53430D4F72D23F4F199070A3 /* Sources */, + 783D02DD3A1B438A3FF8692D /* Frameworks */, + 9607AE3710C85E8F00CD1376 /* Postbuild */, + ); + buildRules = ( + ); + dependencies = ( + 31D33CF71209402B5AC00751 /* PBXTargetDependency */, + 0AFA59413C3D59DA1AAE33ED /* PBXTargetDependency */, + ); + name = "testshader"; + productInstallPath = "$(HOME)/bin"; + productName = "testshader"; + productReference = 43821E2F33B54FD537993116 /* testshader */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testshader" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 418A55677ED642091AE1555C /* testshader */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 7D6462327CDF40E3125B4DA0 /* Products */; + ProjectRef = 25FF16D668E6103A712765EE /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 763455E764173830123E492E /* Products */; + ProjectRef = 729268B820F3534F0A70743C /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 1F9925314B933D6D7CF36D7D /* testshader */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 7CD942FD27675F6E37CD33BE /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 0506771A72B1769A23BA18B9 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 381C64BA0E3C06E9370C7F67 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 0A69131702E32CF24A545F54 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 5BA622D37B3D6C8056BF4444 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 9607AE3710C85E8F00CD1376 /* Postbuild */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = Postbuild; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "if [ \"${CONFIGURATION}\" = \"Debug Universal\" ]; then\nif [ ! -d \"./Build/Debug\" ]; then mkdir -p \"./Build/Debug\"; fi\ncp \"./../../../../../test/icon.bmp\" \"./Build/Debug/icon.bmp\"\nfi\nif [ \"${CONFIGURATION}\" = \"Debug Native\" ]; then\nif [ ! -d \"./Build/Debug\" ]; then mkdir -p \"./Build/Debug\"; fi\ncp \"./../../../../../test/icon.bmp\" \"./Build/Debug/icon.bmp\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Universal\" ]; then\nif [ ! -d \"./Build/Release\" ]; then mkdir -p \"./Build/Release\"; fi\ncp \"./../../../../../test/icon.bmp\" \"./Build/Release/icon.bmp\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Native\" ]; then\nif [ ! -d \"./Build/Release\" ]; then mkdir -p \"./Build/Release\"; fi\ncp \"./../../../../../test/icon.bmp\" \"./Build/Release/icon.bmp\"\nfi"; + }; +/* End PBXShellScriptBuildPhase section */ +/* Begin PBXSourcesBuildPhase section */ + 53430D4F72D23F4F199070A3 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 470C1B0B2EED6E5F608B04C8 /* testshader.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 31D33CF71209402B5AC00751 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 457335A766F836B46B3025CE /* PBXContainerItemProxy */; + }; + 0AFA59413C3D59DA1AAE33ED /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 26D971DD15775F9B62560F54 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 59791E272FC33A0F41CC71C2 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testshader"; + }; + name = "Debug Universal"; + }; + 772C1CBA178C6E884543338A /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testshader"; + }; + name = "Debug Native"; + }; + 198E58DF4FA24C0B20487A3E /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testshader"; + }; + name = "Release Universal"; + }; + 13D949011F78183C43633663 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testshader"; + }; + name = "Release Native"; + }; + 091826C50DC736A94B7B0D4A /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + "HAVE_OPENGL", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 6845108D406139B54A903590 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + "HAVE_OPENGL", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 2390661773D818592A2D78C6 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + "HAVE_OPENGL", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 4A4E79C527AE1B9776C92AAF /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + "HAVE_OPENGL", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 12736C0C38D5350F70D76073 /* Build configuration list for PBXNativeTarget "testshader" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 59791E272FC33A0F41CC71C2 /* Debug Universal */, + 772C1CBA178C6E884543338A /* Debug Native */, + 198E58DF4FA24C0B20487A3E /* Release Universal */, + 13D949011F78183C43633663 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testshader" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 091826C50DC736A94B7B0D4A /* Debug Universal */, + 6845108D406139B54A903590 /* Debug Native */, + 2390661773D818592A2D78C6 /* Release Universal */, + 4A4E79C527AE1B9776C92AAF /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode4/tests/testshape/testshape.xcodeproj/project.pbxproj b/premake/Xcode/Xcode4/tests/testshape/testshape.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..2df30446d09ea --- /dev/null +++ b/premake/Xcode/Xcode4/tests/testshape/testshape.xcodeproj/project.pbxproj @@ -0,0 +1,472 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 408F106907F630850F6E3BAD /* testshape.c in Sources */ = {isa = PBXBuildFile; fileRef = 06F1518872D849DE23A129A5 /* testshape.c */; }; + 685069D73E480D2E05A06B09 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 703A1F11388C11C40CD923AF /* AudioToolbox.framework */; }; + 28D61F7221B105FA79C90159 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4E447E4E35D554877889777A /* AudioUnit.framework */; }; + 503F080F2D1A24E2289019C3 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 33B150B2104E278728300852 /* Cocoa.framework */; }; + 1F1923805A2216ED2F5D41C1 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 76BC58620CC21E460F4D2316 /* CoreAudio.framework */; }; + 51ED1EE17305511A42F17267 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1C41266F6B602BFE6F4A6BFB /* IOKit.framework */; }; + 55B37DAA55FF6AF1249220BC /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 007511CB2DCD12E92A0C3769 /* Carbon.framework */; }; + 043811DD74E057C174A3062A /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D58035C2D162A38666670E3 /* ForceFeedback.framework */; }; + 0DE950AB4BA7591C44DB0AF4 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 39D5008468FA198059DA251C /* CoreFoundation.framework */; }; + 5F9A2E955F80612E2FB81757 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 57B475561300743D704C2C66 /* OpenGL.framework */; }; + 53D755BD0FED3F5428477F40 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 77476C792D8647470D493640 /* libSDL2main.a */; }; + 79F1721C416A429612A44F07 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 16FB778C2826097B07822140 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 6A4E33E2490B13323D1B5276 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 3FD36F344E2B76664E737AAB /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 0FF7291B375C79BC57696B66; + remoteInfo = "libSDL2main.a"; + }; + 47AF3A8E4FDE09FF56107181 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 3FD36F344E2B76664E737AAB /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1BAE4A0A77462FDC330812A3; + remoteInfo = "libSDL2main.a"; + }; + 738E7B5A02DE7D366CBB1DE3 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 78C82B9F67787B504D026A0B /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 5E6D56F6655337845A3C44C3; + remoteInfo = "libSDL2.a"; + }; + 35847F444F2200F559CC1556 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 78C82B9F67787B504D026A0B /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7E6A7BC23CFD134274963645; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 06F1518872D849DE23A129A5 /* testshape.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testshape.c"; path = "../../../../../test/testshape.c"; sourceTree = ""; }; + 703A1F11388C11C40CD923AF /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 4E447E4E35D554877889777A /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 33B150B2104E278728300852 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 76BC58620CC21E460F4D2316 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 1C41266F6B602BFE6F4A6BFB /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 007511CB2DCD12E92A0C3769 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 2D58035C2D162A38666670E3 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 39D5008468FA198059DA251C /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 57B475561300743D704C2C66 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 2B58287A011A6BE672AC3A54 /* testshape */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testshape"; path = "testshape"; sourceTree = BUILT_PRODUCTS_DIR; }; + 3FD36F344E2B76664E737AAB /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 78C82B9F67787B504D026A0B /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 197577442FB076C67D38038E /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 685069D73E480D2E05A06B09 /* AudioToolbox.framework in Frameworks */, + 28D61F7221B105FA79C90159 /* AudioUnit.framework in Frameworks */, + 503F080F2D1A24E2289019C3 /* Cocoa.framework in Frameworks */, + 1F1923805A2216ED2F5D41C1 /* CoreAudio.framework in Frameworks */, + 51ED1EE17305511A42F17267 /* IOKit.framework in Frameworks */, + 55B37DAA55FF6AF1249220BC /* Carbon.framework in Frameworks */, + 043811DD74E057C174A3062A /* ForceFeedback.framework in Frameworks */, + 0DE950AB4BA7591C44DB0AF4 /* CoreFoundation.framework in Frameworks */, + 5F9A2E955F80612E2FB81757 /* OpenGL.framework in Frameworks */, + 53D755BD0FED3F5428477F40 /* libSDL2main.a in Frameworks */, + 79F1721C416A429612A44F07 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 441F6DE57740364E749A4B70 /* testshape */ = { + isa = PBXGroup; + children = ( + 54FB6A2070536399674D2E25 /* test */, + 6D7816A733B00DF64D9573CC /* Frameworks */, + 06966B1349AB30B13FAE71EE /* Products */, + 792E5AC9518C42C72CC02057 /* Projects */, + ); + name = "testshape"; + sourceTree = ""; + }; + 54FB6A2070536399674D2E25 /* test */ = { + isa = PBXGroup; + children = ( + 06F1518872D849DE23A129A5 /* testshape.c */, + ); + name = "test"; + sourceTree = ""; + }; + 6D7816A733B00DF64D9573CC /* Frameworks */ = { + isa = PBXGroup; + children = ( + 703A1F11388C11C40CD923AF /* AudioToolbox.framework */, + 4E447E4E35D554877889777A /* AudioUnit.framework */, + 33B150B2104E278728300852 /* Cocoa.framework */, + 76BC58620CC21E460F4D2316 /* CoreAudio.framework */, + 1C41266F6B602BFE6F4A6BFB /* IOKit.framework */, + 007511CB2DCD12E92A0C3769 /* Carbon.framework */, + 2D58035C2D162A38666670E3 /* ForceFeedback.framework */, + 39D5008468FA198059DA251C /* CoreFoundation.framework */, + 57B475561300743D704C2C66 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 06966B1349AB30B13FAE71EE /* Products */ = { + isa = PBXGroup; + children = ( + 2B58287A011A6BE672AC3A54 /* testshape */, + ); + name = "Products"; + sourceTree = ""; + }; + 792E5AC9518C42C72CC02057 /* Projects */ = { + isa = PBXGroup; + children = ( + 3FD36F344E2B76664E737AAB /* SDL2main.xcodeproj */, + 78C82B9F67787B504D026A0B /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 0F633E601C1E227276E21EF7 /* Products */ = { + isa = PBXGroup; + children = ( + 77476C792D8647470D493640 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 511D7BF05B661048121F3582 /* Products */ = { + isa = PBXGroup; + children = ( + 16FB778C2826097B07822140 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 0B7162915DE3702B457C6A4C /* testshape */ = { + isa = PBXNativeTarget; + buildConfigurationList = 72D3237A54E26D962EDB3590 /* Build configuration list for PBXNativeTarget "testshape" */; + buildPhases = ( + 176C4269176655AC3A9F4936 /* Resources */, + 09526869007925AD3C2B4B18 /* Sources */, + 197577442FB076C67D38038E /* Frameworks */, + 9607AE3710C85E8F00CD1376 /* Postbuild */, + ); + buildRules = ( + ); + dependencies = ( + 06CB2EF768BF54FD6BA07310 /* PBXTargetDependency */, + 78203361408C2A9C0A9A06A1 /* PBXTargetDependency */, + ); + name = "testshape"; + productInstallPath = "$(HOME)/bin"; + productName = "testshape"; + productReference = 2B58287A011A6BE672AC3A54 /* testshape */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testshape" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 441F6DE57740364E749A4B70 /* testshape */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 0F633E601C1E227276E21EF7 /* Products */; + ProjectRef = 3FD36F344E2B76664E737AAB /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 511D7BF05B661048121F3582 /* Products */; + ProjectRef = 78C82B9F67787B504D026A0B /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 0B7162915DE3702B457C6A4C /* testshape */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 77476C792D8647470D493640 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 6A4E33E2490B13323D1B5276 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 16FB778C2826097B07822140 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 738E7B5A02DE7D366CBB1DE3 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 176C4269176655AC3A9F4936 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 9607AE3710C85E8F00CD1376 /* Postbuild */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = Postbuild; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "if [ \"${CONFIGURATION}\" = \"Debug Universal\" ]; then\nif [ ! -d \"./Build/Debug/shapes\" ]; then mkdir -p \"./Build/Debug/shapes\"; fi\ncp ./../../../../../test/shapes/*.bmp \"./Build/Debug/shapes\"\nfi\nif [ \"${CONFIGURATION}\" = \"Debug Native\" ]; then\nif [ ! -d \"./Build/Debug/shapes\" ]; then mkdir -p \"./Build/Debug/shapes\"; fi\ncp ./../../../../../test/shapes/*.bmp \"./Build/Debug/shapes\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Universal\" ]; then\nif [ ! -d \"./Build/Release/shapes\" ]; then mkdir -p \"./Build/Release/shapes\"; fi\ncp ./../../../../../test/shapes/*.bmp \"./Build/Release/shapes\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Native\" ]; then\nif [ ! -d \"./Build/Release/shapes\" ]; then mkdir -p \"./Build/Release/shapes\"; fi\ncp ./../../../../../test/shapes/*.bmp \"./Build/Release/shapes\"\nfi"; + }; +/* End PBXShellScriptBuildPhase section */ +/* Begin PBXSourcesBuildPhase section */ + 09526869007925AD3C2B4B18 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 408F106907F630850F6E3BAD /* testshape.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 06CB2EF768BF54FD6BA07310 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 47AF3A8E4FDE09FF56107181 /* PBXContainerItemProxy */; + }; + 78203361408C2A9C0A9A06A1 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 35847F444F2200F559CC1556 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 4690463A12906609605B3469 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testshape"; + }; + name = "Debug Universal"; + }; + 288426993A2C411614FD7CA4 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testshape"; + }; + name = "Debug Native"; + }; + 296407E573244AA74B9A1462 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testshape"; + }; + name = "Release Universal"; + }; + 1DBD119B757A5A4572B2375E /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testshape"; + }; + name = "Release Native"; + }; + 092E5203696E377E68A93E10 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 1AFF6EE3061C55056A7B5CDE /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 64614535252A70333AB6286D /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 2A116A9A5DBB2D4A5E0E7455 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 72D3237A54E26D962EDB3590 /* Build configuration list for PBXNativeTarget "testshape" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4690463A12906609605B3469 /* Debug Universal */, + 288426993A2C411614FD7CA4 /* Debug Native */, + 296407E573244AA74B9A1462 /* Release Universal */, + 1DBD119B757A5A4572B2375E /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testshape" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 092E5203696E377E68A93E10 /* Debug Universal */, + 1AFF6EE3061C55056A7B5CDE /* Debug Native */, + 64614535252A70333AB6286D /* Release Universal */, + 2A116A9A5DBB2D4A5E0E7455 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode4/tests/testsprite2/testsprite2.xcodeproj/project.pbxproj b/premake/Xcode/Xcode4/tests/testsprite2/testsprite2.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..674586dda10d2 --- /dev/null +++ b/premake/Xcode/Xcode4/tests/testsprite2/testsprite2.xcodeproj/project.pbxproj @@ -0,0 +1,515 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 5F7866E97EA1152149AE5CCC /* testsprite2.c in Sources */ = {isa = PBXBuildFile; fileRef = 337010CB340D69B428EC29F0 /* testsprite2.c */; }; + 15D763183E0353B475B010F5 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 55365DEC4DC4257730ED3779 /* AudioToolbox.framework */; }; + 5DC35F8743BC6E5F609F738B /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5DEF2CB34A4E047C7CD05456 /* AudioUnit.framework */; }; + 724D3B7A6EF955434EC302DD /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5FE7638B56C7230F4E1B5299 /* Cocoa.framework */; }; + 5BF3608C3A5352305D280E3F /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 17A767E23D1331480F027CA7 /* CoreAudio.framework */; }; + 41974A0F591F028C470A0B14 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5D301D9E1BEC4B0209C440A1 /* IOKit.framework */; }; + 0935152E2ED152CD4F392A99 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 09196925126807623A224C6E /* Carbon.framework */; }; + 1F1A72FA2096104D306B4D1E /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5F885E810A0046976F3535E0 /* ForceFeedback.framework */; }; + 44DA704156A7019824D743DC /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2C844ADE491D297B5D7C7D8F /* CoreFoundation.framework */; }; + 6CA750E648806F5F792A4848 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E9D35B724B432E23888728A /* OpenGL.framework */; }; + 35AD1A177FA361E1382B2F90 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2CA309A8251B4799319A75CC /* libSDL2main.a */; }; + 6E997F372C0303FD145F72DA /* libSDL2test.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 588B349C6F5420EB30B13E65 /* libSDL2test.a */; }; + 440A17BF155D250C71227EC0 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 443F1DE8176376DF55143514 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 211F118744B633C976F83267 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0A15222A271436721E4503E1 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 0FF7291B375C79BC57696B66; + remoteInfo = "libSDL2main.a"; + }; + 3C625ECB182A06036A4F0486 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0A15222A271436721E4503E1 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1BAE4A0A77462FDC330812A3; + remoteInfo = "libSDL2main.a"; + }; + 6FC529AD5A6B36512B3A76CD /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 4F15022D08F4641D6CF43797 /* SDL2test.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 1EB6664901BC163F215A4861; + remoteInfo = "libSDL2test.a"; + }; + 41D05FC32C2604D6053232FE /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 4F15022D08F4641D6CF43797 /* SDL2test.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1258506950476B85239A79A3; + remoteInfo = "libSDL2test.a"; + }; + 46316BD46C43574E6A4502AA /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 74AC4D2764EA67BF3CCB6945 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 5E6D56F6655337845A3C44C3; + remoteInfo = "libSDL2.a"; + }; + 09C655B30FF117934B3C7D9F /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 74AC4D2764EA67BF3CCB6945 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7E6A7BC23CFD134274963645; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 337010CB340D69B428EC29F0 /* testsprite2.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testsprite2.c"; path = "../../../../../test/testsprite2.c"; sourceTree = ""; }; + 55365DEC4DC4257730ED3779 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 5DEF2CB34A4E047C7CD05456 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 5FE7638B56C7230F4E1B5299 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 17A767E23D1331480F027CA7 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 5D301D9E1BEC4B0209C440A1 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 09196925126807623A224C6E /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 5F885E810A0046976F3535E0 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 2C844ADE491D297B5D7C7D8F /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 5E9D35B724B432E23888728A /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 62C31964189A3F01086350DA /* testsprite2 */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testsprite2"; path = "testsprite2"; sourceTree = BUILT_PRODUCTS_DIR; }; + 0A15222A271436721E4503E1 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 4F15022D08F4641D6CF43797 /* SDL2test.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2test.xcodeproj"; path = "../../SDL2test/SDL2test.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 74AC4D2764EA67BF3CCB6945 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 470F590D701B019B00F57785 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 15D763183E0353B475B010F5 /* AudioToolbox.framework in Frameworks */, + 5DC35F8743BC6E5F609F738B /* AudioUnit.framework in Frameworks */, + 724D3B7A6EF955434EC302DD /* Cocoa.framework in Frameworks */, + 5BF3608C3A5352305D280E3F /* CoreAudio.framework in Frameworks */, + 41974A0F591F028C470A0B14 /* IOKit.framework in Frameworks */, + 0935152E2ED152CD4F392A99 /* Carbon.framework in Frameworks */, + 1F1A72FA2096104D306B4D1E /* ForceFeedback.framework in Frameworks */, + 44DA704156A7019824D743DC /* CoreFoundation.framework in Frameworks */, + 6CA750E648806F5F792A4848 /* OpenGL.framework in Frameworks */, + 35AD1A177FA361E1382B2F90 /* libSDL2main.a in Frameworks */, + 6E997F372C0303FD145F72DA /* libSDL2test.a in Frameworks */, + 440A17BF155D250C71227EC0 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 5D091CFB4E0149ED776459E0 /* testsprite2 */ = { + isa = PBXGroup; + children = ( + 13DE70EA22DB13FF7D3B67A7 /* test */, + 79EE32A57A7517D521B170C0 /* Frameworks */, + 27B02A282AB704E032D77819 /* Products */, + 3F66429B5E98517B06FF7067 /* Projects */, + ); + name = "testsprite2"; + sourceTree = ""; + }; + 13DE70EA22DB13FF7D3B67A7 /* test */ = { + isa = PBXGroup; + children = ( + 337010CB340D69B428EC29F0 /* testsprite2.c */, + ); + name = "test"; + sourceTree = ""; + }; + 79EE32A57A7517D521B170C0 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 55365DEC4DC4257730ED3779 /* AudioToolbox.framework */, + 5DEF2CB34A4E047C7CD05456 /* AudioUnit.framework */, + 5FE7638B56C7230F4E1B5299 /* Cocoa.framework */, + 17A767E23D1331480F027CA7 /* CoreAudio.framework */, + 5D301D9E1BEC4B0209C440A1 /* IOKit.framework */, + 09196925126807623A224C6E /* Carbon.framework */, + 5F885E810A0046976F3535E0 /* ForceFeedback.framework */, + 2C844ADE491D297B5D7C7D8F /* CoreFoundation.framework */, + 5E9D35B724B432E23888728A /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 27B02A282AB704E032D77819 /* Products */ = { + isa = PBXGroup; + children = ( + 62C31964189A3F01086350DA /* testsprite2 */, + ); + name = "Products"; + sourceTree = ""; + }; + 3F66429B5E98517B06FF7067 /* Projects */ = { + isa = PBXGroup; + children = ( + 0A15222A271436721E4503E1 /* SDL2main.xcodeproj */, + 4F15022D08F4641D6CF43797 /* SDL2test.xcodeproj */, + 74AC4D2764EA67BF3CCB6945 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 7CAD5A9369602FFB276F7D1F /* Products */ = { + isa = PBXGroup; + children = ( + 2CA309A8251B4799319A75CC /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 1DE9382939AA66E9091809E4 /* Products */ = { + isa = PBXGroup; + children = ( + 588B349C6F5420EB30B13E65 /* libSDL2test.a */, + ); + name = Products; + sourceTree = ""; + }; + 47BC3C9A4C2661136598672F /* Products */ = { + isa = PBXGroup; + children = ( + 443F1DE8176376DF55143514 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 38C60FC159C2070E290A5671 /* testsprite2 */ = { + isa = PBXNativeTarget; + buildConfigurationList = 7202626507081FE5777B6B70 /* Build configuration list for PBXNativeTarget "testsprite2" */; + buildPhases = ( + 33B676B77895396725840F1E /* Resources */, + 22DA3C1D3735087578B74375 /* Sources */, + 470F590D701B019B00F57785 /* Frameworks */, + 9607AE3710C85E8F00CD1376 /* Postbuild */, + ); + buildRules = ( + ); + dependencies = ( + 2E69306F6810341363234647 /* PBXTargetDependency */, + 64FE137229B817422166691A /* PBXTargetDependency */, + 7F724DCA1B6919E807063BE1 /* PBXTargetDependency */, + ); + name = "testsprite2"; + productInstallPath = "$(HOME)/bin"; + productName = "testsprite2"; + productReference = 62C31964189A3F01086350DA /* testsprite2 */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testsprite2" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 5D091CFB4E0149ED776459E0 /* testsprite2 */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 7CAD5A9369602FFB276F7D1F /* Products */; + ProjectRef = 0A15222A271436721E4503E1 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 1DE9382939AA66E9091809E4 /* Products */; + ProjectRef = 4F15022D08F4641D6CF43797 /* SDL2test.xcodeproj */; + }, + { + ProductGroup = 47BC3C9A4C2661136598672F /* Products */; + ProjectRef = 74AC4D2764EA67BF3CCB6945 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 38C60FC159C2070E290A5671 /* testsprite2 */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 2CA309A8251B4799319A75CC /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 211F118744B633C976F83267 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 588B349C6F5420EB30B13E65 /* libSDL2test.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2test.a"; + remoteRef = 6FC529AD5A6B36512B3A76CD /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 443F1DE8176376DF55143514 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 46316BD46C43574E6A4502AA /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 33B676B77895396725840F1E /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 9607AE3710C85E8F00CD1376 /* Postbuild */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = Postbuild; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "if [ \"${CONFIGURATION}\" = \"Debug Universal\" ]; then\nif [ ! -d \"./Build/Debug\" ]; then mkdir -p \"./Build/Debug\"; fi\ncp \"./../../../../../test/icon.bmp\" \"./Build/Debug/icon.bmp\"\nfi\nif [ \"${CONFIGURATION}\" = \"Debug Native\" ]; then\nif [ ! -d \"./Build/Debug\" ]; then mkdir -p \"./Build/Debug\"; fi\ncp \"./../../../../../test/icon.bmp\" \"./Build/Debug/icon.bmp\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Universal\" ]; then\nif [ ! -d \"./Build/Release\" ]; then mkdir -p \"./Build/Release\"; fi\ncp \"./../../../../../test/icon.bmp\" \"./Build/Release/icon.bmp\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Native\" ]; then\nif [ ! -d \"./Build/Release\" ]; then mkdir -p \"./Build/Release\"; fi\ncp \"./../../../../../test/icon.bmp\" \"./Build/Release/icon.bmp\"\nfi"; + }; +/* End PBXShellScriptBuildPhase section */ +/* Begin PBXSourcesBuildPhase section */ + 22DA3C1D3735087578B74375 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 5F7866E97EA1152149AE5CCC /* testsprite2.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 2E69306F6810341363234647 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 3C625ECB182A06036A4F0486 /* PBXContainerItemProxy */; + }; + 64FE137229B817422166691A /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2test.a"; + targetProxy = 41D05FC32C2604D6053232FE /* PBXContainerItemProxy */; + }; + 7F724DCA1B6919E807063BE1 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 09C655B30FF117934B3C7D9F /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 0CE60A962FFD0E9D0DA50C41 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testsprite2"; + }; + name = "Debug Universal"; + }; + 1EA71160727E4CB4726166EC /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testsprite2"; + }; + name = "Debug Native"; + }; + 53C96EF2737748C258000959 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testsprite2"; + }; + name = "Release Universal"; + }; + 3FC3274740D8461E1533542E /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testsprite2"; + }; + name = "Release Native"; + }; + 17733F9561A537250D0B524C /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 382E6DBB26FD68EC153A3A1F /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 55E06771539C480366A252E5 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 26F46B2572B36B1F7B9255D6 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 7202626507081FE5777B6B70 /* Build configuration list for PBXNativeTarget "testsprite2" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0CE60A962FFD0E9D0DA50C41 /* Debug Universal */, + 1EA71160727E4CB4726166EC /* Debug Native */, + 53C96EF2737748C258000959 /* Release Universal */, + 3FC3274740D8461E1533542E /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testsprite2" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 17733F9561A537250D0B524C /* Debug Universal */, + 382E6DBB26FD68EC153A3A1F /* Debug Native */, + 55E06771539C480366A252E5 /* Release Universal */, + 26F46B2572B36B1F7B9255D6 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode4/tests/testspriteminimal/testspriteminimal.xcodeproj/project.pbxproj b/premake/Xcode/Xcode4/tests/testspriteminimal/testspriteminimal.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..9514fcf4e49a0 --- /dev/null +++ b/premake/Xcode/Xcode4/tests/testspriteminimal/testspriteminimal.xcodeproj/project.pbxproj @@ -0,0 +1,472 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 27E623027D5B166949572CEC /* testspriteminimal.c in Sources */ = {isa = PBXBuildFile; fileRef = 5C5B5F3F5D113E1300624B8F /* testspriteminimal.c */; }; + 6B45343040343F29544C6DDB /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 03643FF645B37F635C747C98 /* AudioToolbox.framework */; }; + 139A193A4D4311004E006C17 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 70AE63B30CFD64B073852859 /* AudioUnit.framework */; }; + 331965BA5395700418E510FF /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 75B774206D920DCB4ACA445C /* Cocoa.framework */; }; + 43DA1D9951D8457073494A34 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7E0A509B211574C774350093 /* CoreAudio.framework */; }; + 06EB5CA91BC95C2D0E6E0416 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2F8E4F8D5D7F3EB9649439B4 /* IOKit.framework */; }; + 7196486228C613B372D5323B /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5A52536869B83B5F09F41438 /* Carbon.framework */; }; + 060C063729C36CED6EF95B99 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44770D3A0BD9579536ED242B /* ForceFeedback.framework */; }; + 20FD6C135BAE02BE1F56555E /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3AEB3C375817040B16677295 /* CoreFoundation.framework */; }; + 64AF57D654DF2229636916F3 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2E5019F146AA4A417363273E /* OpenGL.framework */; }; + 1F3B752E4301229D0A81286C /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0BAA4FEB744A2D98123C5F62 /* libSDL2main.a */; }; + 1E45472A1E760D4670D01155 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 71FF47C026D978E118FF3F69 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 48002E643D870A0C255D02CB /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1454539D12F401915CF253F3 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 0FF7291B375C79BC57696B66; + remoteInfo = "libSDL2main.a"; + }; + 018F682D1BBB3BE67E997B02 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1454539D12F401915CF253F3 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1BAE4A0A77462FDC330812A3; + remoteInfo = "libSDL2main.a"; + }; + 31534DBB5A7A3C8A22ED35A4 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 5C665BC2287B5AC157C704F1 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 5E6D56F6655337845A3C44C3; + remoteInfo = "libSDL2.a"; + }; + 3CD438D60C53443666650D6F /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 5C665BC2287B5AC157C704F1 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7E6A7BC23CFD134274963645; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 5C5B5F3F5D113E1300624B8F /* testspriteminimal.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testspriteminimal.c"; path = "../../../../../test/testspriteminimal.c"; sourceTree = ""; }; + 03643FF645B37F635C747C98 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 70AE63B30CFD64B073852859 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 75B774206D920DCB4ACA445C /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 7E0A509B211574C774350093 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 2F8E4F8D5D7F3EB9649439B4 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 5A52536869B83B5F09F41438 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 44770D3A0BD9579536ED242B /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 3AEB3C375817040B16677295 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 2E5019F146AA4A417363273E /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 1C5511B03C132C43210F754C /* testspriteminimal */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testspriteminimal"; path = "testspriteminimal"; sourceTree = BUILT_PRODUCTS_DIR; }; + 1454539D12F401915CF253F3 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 5C665BC2287B5AC157C704F1 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 35376CE42553238D237E4771 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 6B45343040343F29544C6DDB /* AudioToolbox.framework in Frameworks */, + 139A193A4D4311004E006C17 /* AudioUnit.framework in Frameworks */, + 331965BA5395700418E510FF /* Cocoa.framework in Frameworks */, + 43DA1D9951D8457073494A34 /* CoreAudio.framework in Frameworks */, + 06EB5CA91BC95C2D0E6E0416 /* IOKit.framework in Frameworks */, + 7196486228C613B372D5323B /* Carbon.framework in Frameworks */, + 060C063729C36CED6EF95B99 /* ForceFeedback.framework in Frameworks */, + 20FD6C135BAE02BE1F56555E /* CoreFoundation.framework in Frameworks */, + 64AF57D654DF2229636916F3 /* OpenGL.framework in Frameworks */, + 1F3B752E4301229D0A81286C /* libSDL2main.a in Frameworks */, + 1E45472A1E760D4670D01155 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 0F6B6860307D70A30AAC5B2D /* testspriteminimal */ = { + isa = PBXGroup; + children = ( + 6DE9087401F329EF23822C5E /* test */, + 46F8039C3260525007AE6630 /* Frameworks */, + 6D2256153A304CFA3C8F769B /* Products */, + 4C1B2CC81E6712DB0F3C3A02 /* Projects */, + ); + name = "testspriteminimal"; + sourceTree = ""; + }; + 6DE9087401F329EF23822C5E /* test */ = { + isa = PBXGroup; + children = ( + 5C5B5F3F5D113E1300624B8F /* testspriteminimal.c */, + ); + name = "test"; + sourceTree = ""; + }; + 46F8039C3260525007AE6630 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 03643FF645B37F635C747C98 /* AudioToolbox.framework */, + 70AE63B30CFD64B073852859 /* AudioUnit.framework */, + 75B774206D920DCB4ACA445C /* Cocoa.framework */, + 7E0A509B211574C774350093 /* CoreAudio.framework */, + 2F8E4F8D5D7F3EB9649439B4 /* IOKit.framework */, + 5A52536869B83B5F09F41438 /* Carbon.framework */, + 44770D3A0BD9579536ED242B /* ForceFeedback.framework */, + 3AEB3C375817040B16677295 /* CoreFoundation.framework */, + 2E5019F146AA4A417363273E /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 6D2256153A304CFA3C8F769B /* Products */ = { + isa = PBXGroup; + children = ( + 1C5511B03C132C43210F754C /* testspriteminimal */, + ); + name = "Products"; + sourceTree = ""; + }; + 4C1B2CC81E6712DB0F3C3A02 /* Projects */ = { + isa = PBXGroup; + children = ( + 1454539D12F401915CF253F3 /* SDL2main.xcodeproj */, + 5C665BC2287B5AC157C704F1 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 0BF118363A3435F4478723A1 /* Products */ = { + isa = PBXGroup; + children = ( + 0BAA4FEB744A2D98123C5F62 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 4519225B3E52096222F910B8 /* Products */ = { + isa = PBXGroup; + children = ( + 71FF47C026D978E118FF3F69 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 5BB421E23666669E17F1566E /* testspriteminimal */ = { + isa = PBXNativeTarget; + buildConfigurationList = 76CC57F73B940B14084C6D59 /* Build configuration list for PBXNativeTarget "testspriteminimal" */; + buildPhases = ( + 15DB070627286F1043E23739 /* Resources */, + 24C461884AC96B555168132C /* Sources */, + 35376CE42553238D237E4771 /* Frameworks */, + 9607AE3710C85E8F00CD1376 /* Postbuild */, + ); + buildRules = ( + ); + dependencies = ( + 68863D8D1E5C3561275A2F77 /* PBXTargetDependency */, + 1CBA13C305CC4F550A6246C0 /* PBXTargetDependency */, + ); + name = "testspriteminimal"; + productInstallPath = "$(HOME)/bin"; + productName = "testspriteminimal"; + productReference = 1C5511B03C132C43210F754C /* testspriteminimal */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testspriteminimal" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 0F6B6860307D70A30AAC5B2D /* testspriteminimal */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 0BF118363A3435F4478723A1 /* Products */; + ProjectRef = 1454539D12F401915CF253F3 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 4519225B3E52096222F910B8 /* Products */; + ProjectRef = 5C665BC2287B5AC157C704F1 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 5BB421E23666669E17F1566E /* testspriteminimal */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 0BAA4FEB744A2D98123C5F62 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 48002E643D870A0C255D02CB /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 71FF47C026D978E118FF3F69 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 31534DBB5A7A3C8A22ED35A4 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 15DB070627286F1043E23739 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 9607AE3710C85E8F00CD1376 /* Postbuild */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = Postbuild; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "if [ \"${CONFIGURATION}\" = \"Debug Universal\" ]; then\nif [ ! -d \"./Build/Debug\" ]; then mkdir -p \"./Build/Debug\"; fi\ncp \"./../../../../../test/icon.bmp\" \"./Build/Debug/icon.bmp\"\nfi\nif [ \"${CONFIGURATION}\" = \"Debug Native\" ]; then\nif [ ! -d \"./Build/Debug\" ]; then mkdir -p \"./Build/Debug\"; fi\ncp \"./../../../../../test/icon.bmp\" \"./Build/Debug/icon.bmp\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Universal\" ]; then\nif [ ! -d \"./Build/Release\" ]; then mkdir -p \"./Build/Release\"; fi\ncp \"./../../../../../test/icon.bmp\" \"./Build/Release/icon.bmp\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Native\" ]; then\nif [ ! -d \"./Build/Release\" ]; then mkdir -p \"./Build/Release\"; fi\ncp \"./../../../../../test/icon.bmp\" \"./Build/Release/icon.bmp\"\nfi"; + }; +/* End PBXShellScriptBuildPhase section */ +/* Begin PBXSourcesBuildPhase section */ + 24C461884AC96B555168132C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 27E623027D5B166949572CEC /* testspriteminimal.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 68863D8D1E5C3561275A2F77 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 018F682D1BBB3BE67E997B02 /* PBXContainerItemProxy */; + }; + 1CBA13C305CC4F550A6246C0 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 3CD438D60C53443666650D6F /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 61E93CA267A85941468D6040 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testspriteminimal"; + }; + name = "Debug Universal"; + }; + 719032A11639081F3AA80A3C /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testspriteminimal"; + }; + name = "Debug Native"; + }; + 234D54AD3D850FF267800898 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testspriteminimal"; + }; + name = "Release Universal"; + }; + 62F02A43161A1A583E2D1987 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testspriteminimal"; + }; + name = "Release Native"; + }; + 346E600568B3510822545FE9 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 6B5D3D9B3D661C8F7B0F248E /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 386D3D55302837AB48117594 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 04111CE518C33A761A826D22 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 76CC57F73B940B14084C6D59 /* Build configuration list for PBXNativeTarget "testspriteminimal" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 61E93CA267A85941468D6040 /* Debug Universal */, + 719032A11639081F3AA80A3C /* Debug Native */, + 234D54AD3D850FF267800898 /* Release Universal */, + 62F02A43161A1A583E2D1987 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testspriteminimal" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 346E600568B3510822545FE9 /* Debug Universal */, + 6B5D3D9B3D661C8F7B0F248E /* Debug Native */, + 386D3D55302837AB48117594 /* Release Universal */, + 04111CE518C33A761A826D22 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode4/tests/teststreaming/teststreaming.xcodeproj/project.pbxproj b/premake/Xcode/Xcode4/tests/teststreaming/teststreaming.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..775b0a1dba4a5 --- /dev/null +++ b/premake/Xcode/Xcode4/tests/teststreaming/teststreaming.xcodeproj/project.pbxproj @@ -0,0 +1,472 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 7C0C26F2003C06A170CF2EAD /* teststreaming.c in Sources */ = {isa = PBXBuildFile; fileRef = 2E3143AA555B555A23284972 /* teststreaming.c */; }; + 548774F11E955BF3435E6144 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 204B4FE357957BBA767465C6 /* AudioToolbox.framework */; }; + 57423C720B7274EE476F4E2A /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6DF51FEE4D033935692E71C9 /* AudioUnit.framework */; }; + 587A61EE5A903A7A2977771A /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 575B31B640A46955763603C4 /* Cocoa.framework */; }; + 25DC1D202D8463D611820231 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5AD57AD222C2083B0BD81FE7 /* CoreAudio.framework */; }; + 4B4331FE3B1502776AF701A1 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1AA908092E0C54383E64286A /* IOKit.framework */; }; + 12B55B6554D84E140B316841 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 02817B12149959F903F1774B /* Carbon.framework */; }; + 552F0B172B98379E10521E53 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2481422D570A62764519246A /* ForceFeedback.framework */; }; + 0DBF2BEB66EE52A904AC5856 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0C295FB710E810F02DA01F99 /* CoreFoundation.framework */; }; + 586363501DD116660D556EB9 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2B6D11685B2C27C71E576BCE /* OpenGL.framework */; }; + 467126A541103E501E5C4857 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 642B02FC291817F157B33709 /* libSDL2main.a */; }; + 4AD51DF34A614F036565075D /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3BC23F4831096240172F295B /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 14DD41DA702B47A811652A1C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 2FA532766F555D455F171655 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 0FF7291B375C79BC57696B66; + remoteInfo = "libSDL2main.a"; + }; + 335E21AE675856FD32C21E7C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 2FA532766F555D455F171655 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1BAE4A0A77462FDC330812A3; + remoteInfo = "libSDL2main.a"; + }; + 6BEE09CA4CFA423F447E3488 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 65547A8479E335E841143848 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 5E6D56F6655337845A3C44C3; + remoteInfo = "libSDL2.a"; + }; + 52F21CB87AD61277583C6C30 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 65547A8479E335E841143848 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7E6A7BC23CFD134274963645; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 2E3143AA555B555A23284972 /* teststreaming.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "teststreaming.c"; path = "../../../../../test/teststreaming.c"; sourceTree = ""; }; + 204B4FE357957BBA767465C6 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 6DF51FEE4D033935692E71C9 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 575B31B640A46955763603C4 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 5AD57AD222C2083B0BD81FE7 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 1AA908092E0C54383E64286A /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 02817B12149959F903F1774B /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 2481422D570A62764519246A /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 0C295FB710E810F02DA01F99 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 2B6D11685B2C27C71E576BCE /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 14E901A456637F181C2F7A96 /* teststreaming */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "teststreaming"; path = "teststreaming"; sourceTree = BUILT_PRODUCTS_DIR; }; + 2FA532766F555D455F171655 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 65547A8479E335E841143848 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 0D165C2E0F8319DD3CA64721 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 548774F11E955BF3435E6144 /* AudioToolbox.framework in Frameworks */, + 57423C720B7274EE476F4E2A /* AudioUnit.framework in Frameworks */, + 587A61EE5A903A7A2977771A /* Cocoa.framework in Frameworks */, + 25DC1D202D8463D611820231 /* CoreAudio.framework in Frameworks */, + 4B4331FE3B1502776AF701A1 /* IOKit.framework in Frameworks */, + 12B55B6554D84E140B316841 /* Carbon.framework in Frameworks */, + 552F0B172B98379E10521E53 /* ForceFeedback.framework in Frameworks */, + 0DBF2BEB66EE52A904AC5856 /* CoreFoundation.framework in Frameworks */, + 586363501DD116660D556EB9 /* OpenGL.framework in Frameworks */, + 467126A541103E501E5C4857 /* libSDL2main.a in Frameworks */, + 4AD51DF34A614F036565075D /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 19F12D1B068B34711223727B /* teststreaming */ = { + isa = PBXGroup; + children = ( + 04C9470736C7767114EF5B78 /* test */, + 1BF03721079159D417707948 /* Frameworks */, + 48F633FA627F212075121785 /* Products */, + 327609B2344E010C3C294F19 /* Projects */, + ); + name = "teststreaming"; + sourceTree = ""; + }; + 04C9470736C7767114EF5B78 /* test */ = { + isa = PBXGroup; + children = ( + 2E3143AA555B555A23284972 /* teststreaming.c */, + ); + name = "test"; + sourceTree = ""; + }; + 1BF03721079159D417707948 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 204B4FE357957BBA767465C6 /* AudioToolbox.framework */, + 6DF51FEE4D033935692E71C9 /* AudioUnit.framework */, + 575B31B640A46955763603C4 /* Cocoa.framework */, + 5AD57AD222C2083B0BD81FE7 /* CoreAudio.framework */, + 1AA908092E0C54383E64286A /* IOKit.framework */, + 02817B12149959F903F1774B /* Carbon.framework */, + 2481422D570A62764519246A /* ForceFeedback.framework */, + 0C295FB710E810F02DA01F99 /* CoreFoundation.framework */, + 2B6D11685B2C27C71E576BCE /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 48F633FA627F212075121785 /* Products */ = { + isa = PBXGroup; + children = ( + 14E901A456637F181C2F7A96 /* teststreaming */, + ); + name = "Products"; + sourceTree = ""; + }; + 327609B2344E010C3C294F19 /* Projects */ = { + isa = PBXGroup; + children = ( + 2FA532766F555D455F171655 /* SDL2main.xcodeproj */, + 65547A8479E335E841143848 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 2574031249C871D7706E6E45 /* Products */ = { + isa = PBXGroup; + children = ( + 642B02FC291817F157B33709 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 5EF95D9221C0608438E36BDA /* Products */ = { + isa = PBXGroup; + children = ( + 3BC23F4831096240172F295B /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 3FC20E8C2EB0566076D86200 /* teststreaming */ = { + isa = PBXNativeTarget; + buildConfigurationList = 6D9638E60ADA102C3E421651 /* Build configuration list for PBXNativeTarget "teststreaming" */; + buildPhases = ( + 5E1A0A46186A02770E564E57 /* Resources */, + 38C472E61606136D168E5294 /* Sources */, + 0D165C2E0F8319DD3CA64721 /* Frameworks */, + 9607AE3710C85E8F00CD1376 /* Postbuild */, + ); + buildRules = ( + ); + dependencies = ( + 6FBA404C59915D3A0F6E1199 /* PBXTargetDependency */, + 7C2D73F41C1A248A718E450A /* PBXTargetDependency */, + ); + name = "teststreaming"; + productInstallPath = "$(HOME)/bin"; + productName = "teststreaming"; + productReference = 14E901A456637F181C2F7A96 /* teststreaming */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "teststreaming" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 19F12D1B068B34711223727B /* teststreaming */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 2574031249C871D7706E6E45 /* Products */; + ProjectRef = 2FA532766F555D455F171655 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 5EF95D9221C0608438E36BDA /* Products */; + ProjectRef = 65547A8479E335E841143848 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 3FC20E8C2EB0566076D86200 /* teststreaming */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 642B02FC291817F157B33709 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 14DD41DA702B47A811652A1C /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 3BC23F4831096240172F295B /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 6BEE09CA4CFA423F447E3488 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 5E1A0A46186A02770E564E57 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 9607AE3710C85E8F00CD1376 /* Postbuild */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = Postbuild; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "if [ \"${CONFIGURATION}\" = \"Debug Universal\" ]; then\nif [ ! -d \"./Build/Debug\" ]; then mkdir -p \"./Build/Debug\"; fi\ncp \"./../../../../../test/moose.dat\" \"./Build/Debug/moose.dat\"\nfi\nif [ \"${CONFIGURATION}\" = \"Debug Native\" ]; then\nif [ ! -d \"./Build/Debug\" ]; then mkdir -p \"./Build/Debug\"; fi\ncp \"./../../../../../test/moose.dat\" \"./Build/Debug/moose.dat\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Universal\" ]; then\nif [ ! -d \"./Build/Release\" ]; then mkdir -p \"./Build/Release\"; fi\ncp \"./../../../../../test/moose.dat\" \"./Build/Release/moose.dat\"\nfi\nif [ \"${CONFIGURATION}\" = \"Release Native\" ]; then\nif [ ! -d \"./Build/Release\" ]; then mkdir -p \"./Build/Release\"; fi\ncp \"./../../../../../test/moose.dat\" \"./Build/Release/moose.dat\"\nfi"; + }; +/* End PBXShellScriptBuildPhase section */ +/* Begin PBXSourcesBuildPhase section */ + 38C472E61606136D168E5294 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 7C0C26F2003C06A170CF2EAD /* teststreaming.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 6FBA404C59915D3A0F6E1199 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 335E21AE675856FD32C21E7C /* PBXContainerItemProxy */; + }; + 7C2D73F41C1A248A718E450A /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 52F21CB87AD61277583C6C30 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 6C54282C638735BF423B3149 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "teststreaming"; + }; + name = "Debug Universal"; + }; + 155A5986705456F463944A43 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "teststreaming"; + }; + name = "Debug Native"; + }; + 1903457F3535440A19F55DEF /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "teststreaming"; + }; + name = "Release Universal"; + }; + 684F55C57F6B65BA43D427EB /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "teststreaming"; + }; + name = "Release Native"; + }; + 5F3602A61E375F0A2AAF5DE3 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 7F1630FB5A2973F04B262C15 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 35F705606FC04927585B5563 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 45C9334E57F3238837A80AFB /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 6D9638E60ADA102C3E421651 /* Build configuration list for PBXNativeTarget "teststreaming" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 6C54282C638735BF423B3149 /* Debug Universal */, + 155A5986705456F463944A43 /* Debug Native */, + 1903457F3535440A19F55DEF /* Release Universal */, + 684F55C57F6B65BA43D427EB /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "teststreaming" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 5F3602A61E375F0A2AAF5DE3 /* Debug Universal */, + 7F1630FB5A2973F04B262C15 /* Debug Native */, + 35F705606FC04927585B5563 /* Release Universal */, + 45C9334E57F3238837A80AFB /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode4/tests/testthread/testthread.xcodeproj/project.pbxproj b/premake/Xcode/Xcode4/tests/testthread/testthread.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..9667fb1b5be57 --- /dev/null +++ b/premake/Xcode/Xcode4/tests/testthread/testthread.xcodeproj/project.pbxproj @@ -0,0 +1,455 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 6C987FEA78D241A403C65BEB /* testthread.c in Sources */ = {isa = PBXBuildFile; fileRef = 332759AD2E381543230E716A /* testthread.c */; }; + 3325006B1B387CF80B52656E /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0F62096E179D02202D0F36C4 /* AudioToolbox.framework */; }; + 18220A9D094458FE43C42718 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2ED62374359A430A7A982656 /* AudioUnit.framework */; }; + 49EA57F52A73680320A36AB7 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1A202D893CB54CA51BB80290 /* Cocoa.framework */; }; + 186B2D4C122222F73E887263 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A9863ED67D7598B693B5571 /* CoreAudio.framework */; }; + 24D07A6C51CA2E427041726B /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7EDA4BB35BA752366A755E14 /* IOKit.framework */; }; + 6C9F6DEA52D8124B2ACF0C24 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0DE074B46D3541D25FEA2881 /* Carbon.framework */; }; + 6B4658704BA82B5F251051CC /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 16546CC12985732E5B911DB7 /* ForceFeedback.framework */; }; + 657B15E4597E66B7333232FD /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 49A51D5F6DCE151D48D53E84 /* CoreFoundation.framework */; }; + 047E70EB136773461B6128A4 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 403579F55F170B8C41F235DE /* OpenGL.framework */; }; + 04665DC831BA47073B534A55 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6AF646AE0959510A228A4E7B /* libSDL2main.a */; }; + 310F0AD946A32CC21DC372F7 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 48162B9E446C303F215D6F79 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 03205F5D6C706E6554870590 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 735E20C715F05275123D0625 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 0FF7291B375C79BC57696B66; + remoteInfo = "libSDL2main.a"; + }; + 5B615C663982378A6A396828 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 735E20C715F05275123D0625 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1BAE4A0A77462FDC330812A3; + remoteInfo = "libSDL2main.a"; + }; + 469460076D9E2A393F2D2EDD /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 4B6D13677F1D5D1E07D67FA3 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 5E6D56F6655337845A3C44C3; + remoteInfo = "libSDL2.a"; + }; + 41412B4E12DD188D6E97005A /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 4B6D13677F1D5D1E07D67FA3 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7E6A7BC23CFD134274963645; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 332759AD2E381543230E716A /* testthread.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testthread.c"; path = "../../../../../test/testthread.c"; sourceTree = ""; }; + 0F62096E179D02202D0F36C4 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 2ED62374359A430A7A982656 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 1A202D893CB54CA51BB80290 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 4A9863ED67D7598B693B5571 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 7EDA4BB35BA752366A755E14 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 0DE074B46D3541D25FEA2881 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 16546CC12985732E5B911DB7 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 49A51D5F6DCE151D48D53E84 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 403579F55F170B8C41F235DE /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 624337703627624F3F6F2D93 /* testthread */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testthread"; path = "testthread"; sourceTree = BUILT_PRODUCTS_DIR; }; + 735E20C715F05275123D0625 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 4B6D13677F1D5D1E07D67FA3 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 156A08572003290109DB115A /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 3325006B1B387CF80B52656E /* AudioToolbox.framework in Frameworks */, + 18220A9D094458FE43C42718 /* AudioUnit.framework in Frameworks */, + 49EA57F52A73680320A36AB7 /* Cocoa.framework in Frameworks */, + 186B2D4C122222F73E887263 /* CoreAudio.framework in Frameworks */, + 24D07A6C51CA2E427041726B /* IOKit.framework in Frameworks */, + 6C9F6DEA52D8124B2ACF0C24 /* Carbon.framework in Frameworks */, + 6B4658704BA82B5F251051CC /* ForceFeedback.framework in Frameworks */, + 657B15E4597E66B7333232FD /* CoreFoundation.framework in Frameworks */, + 047E70EB136773461B6128A4 /* OpenGL.framework in Frameworks */, + 04665DC831BA47073B534A55 /* libSDL2main.a in Frameworks */, + 310F0AD946A32CC21DC372F7 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 5BF409406B027173576138DA /* testthread */ = { + isa = PBXGroup; + children = ( + 051753BB3EEC3311530718E0 /* test */, + 5A75768F3DB217182C55317F /* Frameworks */, + 55BF28F4572E47D846E02AF9 /* Products */, + 55CB13EF4FA01A0963633622 /* Projects */, + ); + name = "testthread"; + sourceTree = ""; + }; + 051753BB3EEC3311530718E0 /* test */ = { + isa = PBXGroup; + children = ( + 332759AD2E381543230E716A /* testthread.c */, + ); + name = "test"; + sourceTree = ""; + }; + 5A75768F3DB217182C55317F /* Frameworks */ = { + isa = PBXGroup; + children = ( + 0F62096E179D02202D0F36C4 /* AudioToolbox.framework */, + 2ED62374359A430A7A982656 /* AudioUnit.framework */, + 1A202D893CB54CA51BB80290 /* Cocoa.framework */, + 4A9863ED67D7598B693B5571 /* CoreAudio.framework */, + 7EDA4BB35BA752366A755E14 /* IOKit.framework */, + 0DE074B46D3541D25FEA2881 /* Carbon.framework */, + 16546CC12985732E5B911DB7 /* ForceFeedback.framework */, + 49A51D5F6DCE151D48D53E84 /* CoreFoundation.framework */, + 403579F55F170B8C41F235DE /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 55BF28F4572E47D846E02AF9 /* Products */ = { + isa = PBXGroup; + children = ( + 624337703627624F3F6F2D93 /* testthread */, + ); + name = "Products"; + sourceTree = ""; + }; + 55CB13EF4FA01A0963633622 /* Projects */ = { + isa = PBXGroup; + children = ( + 735E20C715F05275123D0625 /* SDL2main.xcodeproj */, + 4B6D13677F1D5D1E07D67FA3 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 3992349C26424D857CE75DCE /* Products */ = { + isa = PBXGroup; + children = ( + 6AF646AE0959510A228A4E7B /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 5ADD79772BFD291F349402AB /* Products */ = { + isa = PBXGroup; + children = ( + 48162B9E446C303F215D6F79 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 4258427C05EC737B222F74C0 /* testthread */ = { + isa = PBXNativeTarget; + buildConfigurationList = 732313046CD80AC272D90ECA /* Build configuration list for PBXNativeTarget "testthread" */; + buildPhases = ( + 0A017C5B511541CF3A23063A /* Resources */, + 01AD078B5CFD0F5920074330 /* Sources */, + 156A08572003290109DB115A /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 299B2A9C1F857A4B6B486CB4 /* PBXTargetDependency */, + 54A9579A4FD628F22DD57BBB /* PBXTargetDependency */, + ); + name = "testthread"; + productInstallPath = "$(HOME)/bin"; + productName = "testthread"; + productReference = 624337703627624F3F6F2D93 /* testthread */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testthread" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 5BF409406B027173576138DA /* testthread */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 3992349C26424D857CE75DCE /* Products */; + ProjectRef = 735E20C715F05275123D0625 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 5ADD79772BFD291F349402AB /* Products */; + ProjectRef = 4B6D13677F1D5D1E07D67FA3 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 4258427C05EC737B222F74C0 /* testthread */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 6AF646AE0959510A228A4E7B /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 03205F5D6C706E6554870590 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 48162B9E446C303F215D6F79 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 469460076D9E2A393F2D2EDD /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 0A017C5B511541CF3A23063A /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 01AD078B5CFD0F5920074330 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 6C987FEA78D241A403C65BEB /* testthread.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 299B2A9C1F857A4B6B486CB4 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 5B615C663982378A6A396828 /* PBXContainerItemProxy */; + }; + 54A9579A4FD628F22DD57BBB /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 41412B4E12DD188D6E97005A /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 67AE7EDA1D5A203B28A86BC7 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testthread"; + }; + name = "Debug Universal"; + }; + 46E36A2810C4345C1523598C /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testthread"; + }; + name = "Debug Native"; + }; + 56F83AF0646F3EE61E39677C /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testthread"; + }; + name = "Release Universal"; + }; + 45FB12D56B5C243E67DA4537 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testthread"; + }; + name = "Release Native"; + }; + 65512E0E3DFD5223323C1F57 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 21745991422F210449313DA7 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 380D7A6C4DD421671B563216 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 3D9E0B0E015038EF793C5484 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 732313046CD80AC272D90ECA /* Build configuration list for PBXNativeTarget "testthread" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 67AE7EDA1D5A203B28A86BC7 /* Debug Universal */, + 46E36A2810C4345C1523598C /* Debug Native */, + 56F83AF0646F3EE61E39677C /* Release Universal */, + 45FB12D56B5C243E67DA4537 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testthread" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 65512E0E3DFD5223323C1F57 /* Debug Universal */, + 21745991422F210449313DA7 /* Debug Native */, + 380D7A6C4DD421671B563216 /* Release Universal */, + 3D9E0B0E015038EF793C5484 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode4/tests/testtimer/testtimer.xcodeproj/project.pbxproj b/premake/Xcode/Xcode4/tests/testtimer/testtimer.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..88201cbbd59aa --- /dev/null +++ b/premake/Xcode/Xcode4/tests/testtimer/testtimer.xcodeproj/project.pbxproj @@ -0,0 +1,455 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 4D44492615DE623266847D33 /* testtimer.c in Sources */ = {isa = PBXBuildFile; fileRef = 6442519A624B2FC0276A2D6E /* testtimer.c */; }; + 5DF67CF22C9A56833A17643C /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 35EA536E769F4D4F134E70D7 /* AudioToolbox.framework */; }; + 618B07F71CA256DE32403051 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 56562CDE5DA90F58700F7C17 /* AudioUnit.framework */; }; + 64B96DA775A00FB06DE107A7 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 35673D56150057DA49517791 /* Cocoa.framework */; }; + 2C4B10447EDF0C3464682071 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 225B232E28F6544076170FB0 /* CoreAudio.framework */; }; + 4B31152154DF111A68EA7CF7 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 72B960476F742E9478046318 /* IOKit.framework */; }; + 5AC958B30C4D51B831FD070B /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3FEF16F166393D430AFD1814 /* Carbon.framework */; }; + 04F1787640B27D7809425668 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7276533F072069DF3C1F24C3 /* ForceFeedback.framework */; }; + 396E7D3D686640E062C454DC /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 54396E64797435604E4A007B /* CoreFoundation.framework */; }; + 3BFA396347B810161DA33F77 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44E95E203A326155263E648E /* OpenGL.framework */; }; + 06C3114A3F5424D7258E18F3 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 457927A15E136D0770A63EB1 /* libSDL2main.a */; }; + 7355645C0AD53F860A632008 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 196A2F0B32FA430845022EC6 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 7067393434765B3E79CE0128 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 3CD61DE153E054F545D35610 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 0FF7291B375C79BC57696B66; + remoteInfo = "libSDL2main.a"; + }; + 1B5517DA6AE62D6F5AC4165D /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 3CD61DE153E054F545D35610 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1BAE4A0A77462FDC330812A3; + remoteInfo = "libSDL2main.a"; + }; + 30176C0147AB4FA8525B5EFE /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 2B0A2490075D06744DB33CE3 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 5E6D56F6655337845A3C44C3; + remoteInfo = "libSDL2.a"; + }; + 31D94FFE40652C334F4C1F12 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 2B0A2490075D06744DB33CE3 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7E6A7BC23CFD134274963645; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 6442519A624B2FC0276A2D6E /* testtimer.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testtimer.c"; path = "../../../../../test/testtimer.c"; sourceTree = ""; }; + 35EA536E769F4D4F134E70D7 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 56562CDE5DA90F58700F7C17 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 35673D56150057DA49517791 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 225B232E28F6544076170FB0 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 72B960476F742E9478046318 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 3FEF16F166393D430AFD1814 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 7276533F072069DF3C1F24C3 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 54396E64797435604E4A007B /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 44E95E203A326155263E648E /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 65E53F103F173EF4201B6804 /* testtimer */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testtimer"; path = "testtimer"; sourceTree = BUILT_PRODUCTS_DIR; }; + 3CD61DE153E054F545D35610 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 2B0A2490075D06744DB33CE3 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 2DEC05406CD52E65007D4B92 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 5DF67CF22C9A56833A17643C /* AudioToolbox.framework in Frameworks */, + 618B07F71CA256DE32403051 /* AudioUnit.framework in Frameworks */, + 64B96DA775A00FB06DE107A7 /* Cocoa.framework in Frameworks */, + 2C4B10447EDF0C3464682071 /* CoreAudio.framework in Frameworks */, + 4B31152154DF111A68EA7CF7 /* IOKit.framework in Frameworks */, + 5AC958B30C4D51B831FD070B /* Carbon.framework in Frameworks */, + 04F1787640B27D7809425668 /* ForceFeedback.framework in Frameworks */, + 396E7D3D686640E062C454DC /* CoreFoundation.framework in Frameworks */, + 3BFA396347B810161DA33F77 /* OpenGL.framework in Frameworks */, + 06C3114A3F5424D7258E18F3 /* libSDL2main.a in Frameworks */, + 7355645C0AD53F860A632008 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 052627BD6A8154B96D626EF7 /* testtimer */ = { + isa = PBXGroup; + children = ( + 31237EC1559B64112DE20A39 /* test */, + 265474AB22EC358C002C59F2 /* Frameworks */, + 5122502E09D714E54E8E7992 /* Products */, + 7DAD13367A5E43DD01463F6F /* Projects */, + ); + name = "testtimer"; + sourceTree = ""; + }; + 31237EC1559B64112DE20A39 /* test */ = { + isa = PBXGroup; + children = ( + 6442519A624B2FC0276A2D6E /* testtimer.c */, + ); + name = "test"; + sourceTree = ""; + }; + 265474AB22EC358C002C59F2 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 35EA536E769F4D4F134E70D7 /* AudioToolbox.framework */, + 56562CDE5DA90F58700F7C17 /* AudioUnit.framework */, + 35673D56150057DA49517791 /* Cocoa.framework */, + 225B232E28F6544076170FB0 /* CoreAudio.framework */, + 72B960476F742E9478046318 /* IOKit.framework */, + 3FEF16F166393D430AFD1814 /* Carbon.framework */, + 7276533F072069DF3C1F24C3 /* ForceFeedback.framework */, + 54396E64797435604E4A007B /* CoreFoundation.framework */, + 44E95E203A326155263E648E /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 5122502E09D714E54E8E7992 /* Products */ = { + isa = PBXGroup; + children = ( + 65E53F103F173EF4201B6804 /* testtimer */, + ); + name = "Products"; + sourceTree = ""; + }; + 7DAD13367A5E43DD01463F6F /* Projects */ = { + isa = PBXGroup; + children = ( + 3CD61DE153E054F545D35610 /* SDL2main.xcodeproj */, + 2B0A2490075D06744DB33CE3 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 4238796D0B3160732BDF6B90 /* Products */ = { + isa = PBXGroup; + children = ( + 457927A15E136D0770A63EB1 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 3C502B7E09A42DCA414F45D5 /* Products */ = { + isa = PBXGroup; + children = ( + 196A2F0B32FA430845022EC6 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 77503DD8471218546A930631 /* testtimer */ = { + isa = PBXNativeTarget; + buildConfigurationList = 73290F065E5D508178F73012 /* Build configuration list for PBXNativeTarget "testtimer" */; + buildPhases = ( + 7B06520D63F23548178A6795 /* Resources */, + 694A263511AB7E9F095A7CFE /* Sources */, + 2DEC05406CD52E65007D4B92 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 5AA544A62FA4560722E7256D /* PBXTargetDependency */, + 06792A7970FF1B611F6F38B5 /* PBXTargetDependency */, + ); + name = "testtimer"; + productInstallPath = "$(HOME)/bin"; + productName = "testtimer"; + productReference = 65E53F103F173EF4201B6804 /* testtimer */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testtimer" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 052627BD6A8154B96D626EF7 /* testtimer */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 4238796D0B3160732BDF6B90 /* Products */; + ProjectRef = 3CD61DE153E054F545D35610 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 3C502B7E09A42DCA414F45D5 /* Products */; + ProjectRef = 2B0A2490075D06744DB33CE3 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 77503DD8471218546A930631 /* testtimer */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 457927A15E136D0770A63EB1 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 7067393434765B3E79CE0128 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 196A2F0B32FA430845022EC6 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 30176C0147AB4FA8525B5EFE /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 7B06520D63F23548178A6795 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 694A263511AB7E9F095A7CFE /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 4D44492615DE623266847D33 /* testtimer.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 5AA544A62FA4560722E7256D /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 1B5517DA6AE62D6F5AC4165D /* PBXContainerItemProxy */; + }; + 06792A7970FF1B611F6F38B5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 31D94FFE40652C334F4C1F12 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 13EE7E3B610A6C0A0CC24819 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testtimer"; + }; + name = "Debug Universal"; + }; + 7C6911BF531741893C7812CE /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testtimer"; + }; + name = "Debug Native"; + }; + 17DC777461D574F90A6E4EC6 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testtimer"; + }; + name = "Release Universal"; + }; + 06E555887FB438F310CA7EBA /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testtimer"; + }; + name = "Release Native"; + }; + 693E65EE7167279E2006255B /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 20A56EF54FC25D3026201E57 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 4D707BC964A27A3A30885D76 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 780A58AD761301AB319B60F0 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 73290F065E5D508178F73012 /* Build configuration list for PBXNativeTarget "testtimer" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 13EE7E3B610A6C0A0CC24819 /* Debug Universal */, + 7C6911BF531741893C7812CE /* Debug Native */, + 17DC777461D574F90A6E4EC6 /* Release Universal */, + 06E555887FB438F310CA7EBA /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testtimer" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 693E65EE7167279E2006255B /* Debug Universal */, + 20A56EF54FC25D3026201E57 /* Debug Native */, + 4D707BC964A27A3A30885D76 /* Release Universal */, + 780A58AD761301AB319B60F0 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode4/tests/testver/testver.xcodeproj/project.pbxproj b/premake/Xcode/Xcode4/tests/testver/testver.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..05eadc4aac344 --- /dev/null +++ b/premake/Xcode/Xcode4/tests/testver/testver.xcodeproj/project.pbxproj @@ -0,0 +1,455 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 7BC7626F7E8A2D7F7C7B25E4 /* testver.c in Sources */ = {isa = PBXBuildFile; fileRef = 324E37B818E82DEC6D30172C /* testver.c */; }; + 352B4714224A58677ED64ABD /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 12CE2D9F56827D4B4FC51DAE /* AudioToolbox.framework */; }; + 38EE37E93CE458C51B1F12A4 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4ECF0CAF63CA232B14AC6379 /* AudioUnit.framework */; }; + 23B973975995520E47DA67DC /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 778C2B34002912641CD869E2 /* Cocoa.framework */; }; + 7DD06AB733C57A456D772306 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3AA939071DB0289778EA6C53 /* CoreAudio.framework */; }; + 149203E60DC477AE598D3DCB /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 64A10F682FC763B85DA7151C /* IOKit.framework */; }; + 1C6F612F71AE725B4EFC23A6 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 04842C7276E40B7C072B4F31 /* Carbon.framework */; }; + 1726779C628D4658428331C7 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 049B0BAA012B59B317206124 /* ForceFeedback.framework */; }; + 60BD2DA3364C3BF567560046 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 36D764FD3BAB7E12058D2B0E /* CoreFoundation.framework */; }; + 74B547D86526342F08134807 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D532497545351992FD23FE9 /* OpenGL.framework */; }; + 3F2F5A877A754F9B72425BF4 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 219E2C42503E2F2762574A94 /* libSDL2main.a */; }; + 6CFF777C18A23BEE46720342 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0893027903D127E0653A5BA4 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 34CD34D04768339B35A973A8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1A8D22DB0BA04AF33AF20085 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 0FF7291B375C79BC57696B66; + remoteInfo = "libSDL2main.a"; + }; + 3B3D258954A357FA71560517 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1A8D22DB0BA04AF33AF20085 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1BAE4A0A77462FDC330812A3; + remoteInfo = "libSDL2main.a"; + }; + 4DD7725C35774C103AF07FF4 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 76ED4EC04C914C43443C4F48 /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 5E6D56F6655337845A3C44C3; + remoteInfo = "libSDL2.a"; + }; + 0C7B1CDE6C264F4A1A020245 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 76ED4EC04C914C43443C4F48 /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7E6A7BC23CFD134274963645; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 324E37B818E82DEC6D30172C /* testver.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testver.c"; path = "../../../../../test/testver.c"; sourceTree = ""; }; + 12CE2D9F56827D4B4FC51DAE /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 4ECF0CAF63CA232B14AC6379 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 778C2B34002912641CD869E2 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 3AA939071DB0289778EA6C53 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 64A10F682FC763B85DA7151C /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 04842C7276E40B7C072B4F31 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 049B0BAA012B59B317206124 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 36D764FD3BAB7E12058D2B0E /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 2D532497545351992FD23FE9 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 096561696DEB1CA92FC82DB2 /* testver */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testver"; path = "testver"; sourceTree = BUILT_PRODUCTS_DIR; }; + 1A8D22DB0BA04AF33AF20085 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 76ED4EC04C914C43443C4F48 /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 12AE190A76F7795D5AE4496A /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 352B4714224A58677ED64ABD /* AudioToolbox.framework in Frameworks */, + 38EE37E93CE458C51B1F12A4 /* AudioUnit.framework in Frameworks */, + 23B973975995520E47DA67DC /* Cocoa.framework in Frameworks */, + 7DD06AB733C57A456D772306 /* CoreAudio.framework in Frameworks */, + 149203E60DC477AE598D3DCB /* IOKit.framework in Frameworks */, + 1C6F612F71AE725B4EFC23A6 /* Carbon.framework in Frameworks */, + 1726779C628D4658428331C7 /* ForceFeedback.framework in Frameworks */, + 60BD2DA3364C3BF567560046 /* CoreFoundation.framework in Frameworks */, + 74B547D86526342F08134807 /* OpenGL.framework in Frameworks */, + 3F2F5A877A754F9B72425BF4 /* libSDL2main.a in Frameworks */, + 6CFF777C18A23BEE46720342 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 062A41333B73260D49151A3E /* testver */ = { + isa = PBXGroup; + children = ( + 5E0C0F98571268762E63190D /* test */, + 457A4DF132E77D197A28161E /* Frameworks */, + 6C8A13343B7E5B791E8D5673 /* Products */, + 4D55341775276899391E0BC8 /* Projects */, + ); + name = "testver"; + sourceTree = ""; + }; + 5E0C0F98571268762E63190D /* test */ = { + isa = PBXGroup; + children = ( + 324E37B818E82DEC6D30172C /* testver.c */, + ); + name = "test"; + sourceTree = ""; + }; + 457A4DF132E77D197A28161E /* Frameworks */ = { + isa = PBXGroup; + children = ( + 12CE2D9F56827D4B4FC51DAE /* AudioToolbox.framework */, + 4ECF0CAF63CA232B14AC6379 /* AudioUnit.framework */, + 778C2B34002912641CD869E2 /* Cocoa.framework */, + 3AA939071DB0289778EA6C53 /* CoreAudio.framework */, + 64A10F682FC763B85DA7151C /* IOKit.framework */, + 04842C7276E40B7C072B4F31 /* Carbon.framework */, + 049B0BAA012B59B317206124 /* ForceFeedback.framework */, + 36D764FD3BAB7E12058D2B0E /* CoreFoundation.framework */, + 2D532497545351992FD23FE9 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 6C8A13343B7E5B791E8D5673 /* Products */ = { + isa = PBXGroup; + children = ( + 096561696DEB1CA92FC82DB2 /* testver */, + ); + name = "Products"; + sourceTree = ""; + }; + 4D55341775276899391E0BC8 /* Projects */ = { + isa = PBXGroup; + children = ( + 1A8D22DB0BA04AF33AF20085 /* SDL2main.xcodeproj */, + 76ED4EC04C914C43443C4F48 /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 704355D31AB02E372A373456 /* Products */ = { + isa = PBXGroup; + children = ( + 219E2C42503E2F2762574A94 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 5B161EDC118F5099232A443E /* Products */ = { + isa = PBXGroup; + children = ( + 0893027903D127E0653A5BA4 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 22B54C3B51B561432F0E7EF1 /* testver */ = { + isa = PBXNativeTarget; + buildConfigurationList = 16A21974388F72B848C11DAF /* Build configuration list for PBXNativeTarget "testver" */; + buildPhases = ( + 7F662FDB6EEF1A7841561ECD /* Resources */, + 499025DB7B640AB524170165 /* Sources */, + 12AE190A76F7795D5AE4496A /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 4AA9355E3246492E7E565CB2 /* PBXTargetDependency */, + 04286C1623230ED346DF0F33 /* PBXTargetDependency */, + ); + name = "testver"; + productInstallPath = "$(HOME)/bin"; + productName = "testver"; + productReference = 096561696DEB1CA92FC82DB2 /* testver */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testver" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 062A41333B73260D49151A3E /* testver */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 704355D31AB02E372A373456 /* Products */; + ProjectRef = 1A8D22DB0BA04AF33AF20085 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 5B161EDC118F5099232A443E /* Products */; + ProjectRef = 76ED4EC04C914C43443C4F48 /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 22B54C3B51B561432F0E7EF1 /* testver */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 219E2C42503E2F2762574A94 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 34CD34D04768339B35A973A8 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 0893027903D127E0653A5BA4 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 4DD7725C35774C103AF07FF4 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 7F662FDB6EEF1A7841561ECD /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 499025DB7B640AB524170165 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 7BC7626F7E8A2D7F7C7B25E4 /* testver.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 4AA9355E3246492E7E565CB2 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 3B3D258954A357FA71560517 /* PBXContainerItemProxy */; + }; + 04286C1623230ED346DF0F33 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 0C7B1CDE6C264F4A1A020245 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 1CC7791166B85BBA13BD6410 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testver"; + }; + name = "Debug Universal"; + }; + 57FC7077395D3477049A4F74 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testver"; + }; + name = "Debug Native"; + }; + 4D96383466CC7F8E74254EF5 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testver"; + }; + name = "Release Universal"; + }; + 6F8D3CA92AAF47D03BFA3663 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testver"; + }; + name = "Release Native"; + }; + 028A384B5ED86C5376FB0129 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 7716057D01DB645D51CA28AE /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 4136563134E6738A07341455 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 4D640B3A49856DD16CF15D28 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 16A21974388F72B848C11DAF /* Build configuration list for PBXNativeTarget "testver" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1CC7791166B85BBA13BD6410 /* Debug Universal */, + 57FC7077395D3477049A4F74 /* Debug Native */, + 4D96383466CC7F8E74254EF5 /* Release Universal */, + 6F8D3CA92AAF47D03BFA3663 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testver" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 028A384B5ED86C5376FB0129 /* Debug Universal */, + 7716057D01DB645D51CA28AE /* Debug Native */, + 4136563134E6738A07341455 /* Release Universal */, + 4D640B3A49856DD16CF15D28 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode4/tests/testwm2/testwm2.xcodeproj/project.pbxproj b/premake/Xcode/Xcode4/tests/testwm2/testwm2.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..5cdfd29b6cae0 --- /dev/null +++ b/premake/Xcode/Xcode4/tests/testwm2/testwm2.xcodeproj/project.pbxproj @@ -0,0 +1,498 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 5D503E553F0C5D7B6EEB3028 /* testwm2.c in Sources */ = {isa = PBXBuildFile; fileRef = 2F40387F4F270D14438435C2 /* testwm2.c */; }; + 32D6075C2E9C39FC5B1C45B0 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6E3E4F4A240E1AE87FC652C3 /* AudioToolbox.framework */; }; + 519602B751A9473B2E0F0A17 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4DAB4315294576E073643E16 /* AudioUnit.framework */; }; + 05E84C474A4130A9578850B5 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 054A5A6A07C85FF82436760D /* Cocoa.framework */; }; + 1D4A7CE21799519B3F6242D2 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 480D6B5057E11B5521632B42 /* CoreAudio.framework */; }; + 35AF28611D7056C35D22040F /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 775B358F7FE52D4C655A22AF /* IOKit.framework */; }; + 047A1E3131BE64CA3410442A /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 763E0BED7D2600BC69BC759E /* Carbon.framework */; }; + 28F24E0015E91D2514D00FC0 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 254919F135163E4625BF2FB5 /* ForceFeedback.framework */; }; + 77DA228838B7221F3F0E5382 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 45543C9A40BA7B7630DF237F /* CoreFoundation.framework */; }; + 46746AA04123089A709D7153 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 315E245C3A947F1902552B7F /* OpenGL.framework */; }; + 06DA7B8442421C96584A6442 /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 011662001B92336F7AFD7AF3 /* libSDL2main.a */; }; + 052F0377001C3FD1489762CE /* libSDL2test.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 309F1C1F50A10ABD1448426B /* libSDL2test.a */; }; + 7C1759420E7D4E58177A6FF8 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 59105C2C723733696B2E1D59 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 29F51E3750821F87761B7E76 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 4C504D6207E61DE141765E39 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 0FF7291B375C79BC57696B66; + remoteInfo = "libSDL2main.a"; + }; + 305D53EB2004154C5A6E2B3A /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 4C504D6207E61DE141765E39 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1BAE4A0A77462FDC330812A3; + remoteInfo = "libSDL2main.a"; + }; + 2C647B0A098C07DD4FEB0882 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 47E31F7C225663880E362D9F /* SDL2test.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 1EB6664901BC163F215A4861; + remoteInfo = "libSDL2test.a"; + }; + 1779432957240AE615990332 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 47E31F7C225663880E362D9F /* SDL2test.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1258506950476B85239A79A3; + remoteInfo = "libSDL2test.a"; + }; + 02B82848508446AA47223651 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 55CA60F71F094206499C254C /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 5E6D56F6655337845A3C44C3; + remoteInfo = "libSDL2.a"; + }; + 0DB9011E1746058568933C42 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 55CA60F71F094206499C254C /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7E6A7BC23CFD134274963645; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 2F40387F4F270D14438435C2 /* testwm2.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "testwm2.c"; path = "../../../../../test/testwm2.c"; sourceTree = ""; }; + 6E3E4F4A240E1AE87FC652C3 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 4DAB4315294576E073643E16 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 054A5A6A07C85FF82436760D /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 480D6B5057E11B5521632B42 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 775B358F7FE52D4C655A22AF /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 763E0BED7D2600BC69BC759E /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 254919F135163E4625BF2FB5 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 45543C9A40BA7B7630DF237F /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 315E245C3A947F1902552B7F /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 35E44B6A5873714451E67831 /* testwm2 */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "testwm2"; path = "testwm2"; sourceTree = BUILT_PRODUCTS_DIR; }; + 4C504D6207E61DE141765E39 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 47E31F7C225663880E362D9F /* SDL2test.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2test.xcodeproj"; path = "../../SDL2test/SDL2test.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 55CA60F71F094206499C254C /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 3DBD598F73182CBF440C06E1 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 32D6075C2E9C39FC5B1C45B0 /* AudioToolbox.framework in Frameworks */, + 519602B751A9473B2E0F0A17 /* AudioUnit.framework in Frameworks */, + 05E84C474A4130A9578850B5 /* Cocoa.framework in Frameworks */, + 1D4A7CE21799519B3F6242D2 /* CoreAudio.framework in Frameworks */, + 35AF28611D7056C35D22040F /* IOKit.framework in Frameworks */, + 047A1E3131BE64CA3410442A /* Carbon.framework in Frameworks */, + 28F24E0015E91D2514D00FC0 /* ForceFeedback.framework in Frameworks */, + 77DA228838B7221F3F0E5382 /* CoreFoundation.framework in Frameworks */, + 46746AA04123089A709D7153 /* OpenGL.framework in Frameworks */, + 06DA7B8442421C96584A6442 /* libSDL2main.a in Frameworks */, + 052F0377001C3FD1489762CE /* libSDL2test.a in Frameworks */, + 7C1759420E7D4E58177A6FF8 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 401151A607EA22F449860502 /* testwm2 */ = { + isa = PBXGroup; + children = ( + 68E11E2115A05982728532CC /* test */, + 1BB3361757A75191089A3E99 /* Frameworks */, + 1B8A31DB4EA9448F2CAE5BEC /* Products */, + 771C741865A9497F3EA34F49 /* Projects */, + ); + name = "testwm2"; + sourceTree = ""; + }; + 68E11E2115A05982728532CC /* test */ = { + isa = PBXGroup; + children = ( + 2F40387F4F270D14438435C2 /* testwm2.c */, + ); + name = "test"; + sourceTree = ""; + }; + 1BB3361757A75191089A3E99 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 6E3E4F4A240E1AE87FC652C3 /* AudioToolbox.framework */, + 4DAB4315294576E073643E16 /* AudioUnit.framework */, + 054A5A6A07C85FF82436760D /* Cocoa.framework */, + 480D6B5057E11B5521632B42 /* CoreAudio.framework */, + 775B358F7FE52D4C655A22AF /* IOKit.framework */, + 763E0BED7D2600BC69BC759E /* Carbon.framework */, + 254919F135163E4625BF2FB5 /* ForceFeedback.framework */, + 45543C9A40BA7B7630DF237F /* CoreFoundation.framework */, + 315E245C3A947F1902552B7F /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 1B8A31DB4EA9448F2CAE5BEC /* Products */ = { + isa = PBXGroup; + children = ( + 35E44B6A5873714451E67831 /* testwm2 */, + ); + name = "Products"; + sourceTree = ""; + }; + 771C741865A9497F3EA34F49 /* Projects */ = { + isa = PBXGroup; + children = ( + 4C504D6207E61DE141765E39 /* SDL2main.xcodeproj */, + 47E31F7C225663880E362D9F /* SDL2test.xcodeproj */, + 55CA60F71F094206499C254C /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 195737D65DCB4EE759E61769 /* Products */ = { + isa = PBXGroup; + children = ( + 011662001B92336F7AFD7AF3 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 6CCC5F765A214B6E57560C5E /* Products */ = { + isa = PBXGroup; + children = ( + 309F1C1F50A10ABD1448426B /* libSDL2test.a */, + ); + name = Products; + sourceTree = ""; + }; + 3D2D59DA7D22596C776E640A /* Products */ = { + isa = PBXGroup; + children = ( + 59105C2C723733696B2E1D59 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 6C10431257D90AF62EA7111B /* testwm2 */ = { + isa = PBXNativeTarget; + buildConfigurationList = 2EDA27D54B685A0C6BB35045 /* Build configuration list for PBXNativeTarget "testwm2" */; + buildPhases = ( + 6BAF6FAF74925E6F7C736415 /* Resources */, + 31AD04CF361A25922E393F96 /* Sources */, + 3DBD598F73182CBF440C06E1 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 2698067776130AC26A3A2EA5 /* PBXTargetDependency */, + 660429241C7B78DF0C7A584D /* PBXTargetDependency */, + 43CA13A96A50417667336CD1 /* PBXTargetDependency */, + ); + name = "testwm2"; + productInstallPath = "$(HOME)/bin"; + productName = "testwm2"; + productReference = 35E44B6A5873714451E67831 /* testwm2 */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testwm2" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 401151A607EA22F449860502 /* testwm2 */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 195737D65DCB4EE759E61769 /* Products */; + ProjectRef = 4C504D6207E61DE141765E39 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 6CCC5F765A214B6E57560C5E /* Products */; + ProjectRef = 47E31F7C225663880E362D9F /* SDL2test.xcodeproj */; + }, + { + ProductGroup = 3D2D59DA7D22596C776E640A /* Products */; + ProjectRef = 55CA60F71F094206499C254C /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 6C10431257D90AF62EA7111B /* testwm2 */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 011662001B92336F7AFD7AF3 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 29F51E3750821F87761B7E76 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 309F1C1F50A10ABD1448426B /* libSDL2test.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2test.a"; + remoteRef = 2C647B0A098C07DD4FEB0882 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 59105C2C723733696B2E1D59 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 02B82848508446AA47223651 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 6BAF6FAF74925E6F7C736415 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 31AD04CF361A25922E393F96 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 5D503E553F0C5D7B6EEB3028 /* testwm2.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 2698067776130AC26A3A2EA5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 305D53EB2004154C5A6E2B3A /* PBXContainerItemProxy */; + }; + 660429241C7B78DF0C7A584D /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2test.a"; + targetProxy = 1779432957240AE615990332 /* PBXContainerItemProxy */; + }; + 43CA13A96A50417667336CD1 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 0DB9011E1746058568933C42 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 73DD49E7084D31E13432407B /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testwm2"; + }; + name = "Debug Universal"; + }; + 0727396E6F8269E1365C06F2 /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testwm2"; + }; + name = "Debug Native"; + }; + 0FB16A083403571729DC50C4 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testwm2"; + }; + name = "Release Universal"; + }; + 6C683E915ECA2BEF7BD55F12 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "testwm2"; + }; + name = "Release Native"; + }; + 527334560B90546C084B0906 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 02DF21E5728920C452813B4C /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 068E0EB312F46F67576C0294 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 323A20BE3BA01A771C3B7987 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 2EDA27D54B685A0C6BB35045 /* Build configuration list for PBXNativeTarget "testwm2" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 73DD49E7084D31E13432407B /* Debug Universal */, + 0727396E6F8269E1365C06F2 /* Debug Native */, + 0FB16A083403571729DC50C4 /* Release Universal */, + 6C683E915ECA2BEF7BD55F12 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "testwm2" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 527334560B90546C084B0906 /* Debug Universal */, + 02DF21E5728920C452813B4C /* Debug Native */, + 068E0EB312F46F67576C0294 /* Release Universal */, + 323A20BE3BA01A771C3B7987 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/Xcode4/tests/torturethread/torturethread.xcodeproj/project.pbxproj b/premake/Xcode/Xcode4/tests/torturethread/torturethread.xcodeproj/project.pbxproj new file mode 100755 index 0000000000000..ac86a712b55ab --- /dev/null +++ b/premake/Xcode/Xcode4/tests/torturethread/torturethread.xcodeproj/project.pbxproj @@ -0,0 +1,455 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 246F01AC730219D51AFB7615 /* torturethread.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F07011E7F67723501261B67 /* torturethread.c */; }; + 694D772C7FFC7C2F23D83F16 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2BE767C5431A064F3A6B54EC /* AudioToolbox.framework */; }; + 4BF34AF8671F52814F494843 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5B2D1BFD239A6B3833153839 /* AudioUnit.framework */; }; + 37E61203407B0A0A386A5099 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5537326739E5001721F16149 /* Cocoa.framework */; }; + 77CE7A3D3C00250E55EB3D8F /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 13E328CE0ED147E4536E03AD /* CoreAudio.framework */; }; + 595E520A46AA6D0E324423D2 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 28EC5CA8515B6DB473BA59FE /* IOKit.framework */; }; + 1316135A3ADF40D63CA110AF /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6AB13E5F0B0A46606DD420EA /* Carbon.framework */; }; + 7A610E714A6E007E5A3C364C /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6CC0344355184FD213643FCE /* ForceFeedback.framework */; }; + 0E8F550006B0403503517B55 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A7D035548C67EEB11F10CC3 /* CoreFoundation.framework */; }; + 767675A2127D4ED6587660F5 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1C694CE410B91AB641CF1239 /* OpenGL.framework */; }; + 664E46D4145E42C734DE0D3A /* libSDL2main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 20D069B22630310D5EBB05B1 /* libSDL2main.a */; }; + 6D646A4E39546FC310DB4EF3 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 22A454FE6FBE31A0353F47E4 /* libSDL2.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 6E7C218C79AE1C3E5B845689 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 072E01F247EF3B1A400C6828 /* SDL2main.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 0FF7291B375C79BC57696B66; + remoteInfo = "libSDL2main.a"; + }; + 57B6142405BB3E3C77255EC5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 072E01F247EF3B1A400C6828 /* SDL2main.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1BAE4A0A77462FDC330812A3; + remoteInfo = "libSDL2main.a"; + }; + 25A1255C5E3308BE274E17CE /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 159427C84FD2135D685F664A /* SDL2.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 5E6D56F6655337845A3C44C3; + remoteInfo = "libSDL2.a"; + }; + 01BB50803BEF489E3B326B91 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 159427C84FD2135D685F664A /* SDL2.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 7E6A7BC23CFD134274963645; + remoteInfo = "libSDL2.a"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 3F07011E7F67723501261B67 /* torturethread.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "torturethread.c"; path = "../../../../../test/torturethread.c"; sourceTree = ""; }; + 2BE767C5431A064F3A6B54EC /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioToolbox.framework"; path = "/System/Library/Frameworks/AudioToolbox.framework"; sourceTree = ""; }; + 5B2D1BFD239A6B3833153839 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "AudioUnit.framework"; path = "/System/Library/Frameworks/AudioUnit.framework"; sourceTree = ""; }; + 5537326739E5001721F16149 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Cocoa.framework"; path = "/System/Library/Frameworks/Cocoa.framework"; sourceTree = ""; }; + 13E328CE0ED147E4536E03AD /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreAudio.framework"; path = "/System/Library/Frameworks/CoreAudio.framework"; sourceTree = ""; }; + 28EC5CA8515B6DB473BA59FE /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "IOKit.framework"; path = "/System/Library/Frameworks/IOKit.framework"; sourceTree = ""; }; + 6AB13E5F0B0A46606DD420EA /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "Carbon.framework"; path = "/System/Library/Frameworks/Carbon.framework"; sourceTree = ""; }; + 6CC0344355184FD213643FCE /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "ForceFeedback.framework"; path = "/System/Library/Frameworks/ForceFeedback.framework"; sourceTree = ""; }; + 4A7D035548C67EEB11F10CC3 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "CoreFoundation.framework"; path = "/System/Library/Frameworks/CoreFoundation.framework"; sourceTree = ""; }; + 1C694CE410B91AB641CF1239 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenGL.framework"; path = "/System/Library/Frameworks/OpenGL.framework"; sourceTree = ""; }; + 7A1676731649440872F55D0B /* torturethread */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "torturethread"; path = "torturethread"; sourceTree = BUILT_PRODUCTS_DIR; }; + 072E01F247EF3B1A400C6828 /* SDL2main.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2main.xcodeproj"; path = "../../SDL2main/SDL2main.xcodeproj"; sourceTree = SOURCE_ROOT; }; + 159427C84FD2135D685F664A /* SDL2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "SDL2.xcodeproj"; path = "../../SDL2/SDL2.xcodeproj"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 22F24EE735AA3B060AA96E2E /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 694D772C7FFC7C2F23D83F16 /* AudioToolbox.framework in Frameworks */, + 4BF34AF8671F52814F494843 /* AudioUnit.framework in Frameworks */, + 37E61203407B0A0A386A5099 /* Cocoa.framework in Frameworks */, + 77CE7A3D3C00250E55EB3D8F /* CoreAudio.framework in Frameworks */, + 595E520A46AA6D0E324423D2 /* IOKit.framework in Frameworks */, + 1316135A3ADF40D63CA110AF /* Carbon.framework in Frameworks */, + 7A610E714A6E007E5A3C364C /* ForceFeedback.framework in Frameworks */, + 0E8F550006B0403503517B55 /* CoreFoundation.framework in Frameworks */, + 767675A2127D4ED6587660F5 /* OpenGL.framework in Frameworks */, + 664E46D4145E42C734DE0D3A /* libSDL2main.a in Frameworks */, + 6D646A4E39546FC310DB4EF3 /* libSDL2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 542708782B8F5A45218D4B11 /* torturethread */ = { + isa = PBXGroup; + children = ( + 5F622DD864F5259F077E0B96 /* test */, + 65F54082534442FE5F3C6FB2 /* Frameworks */, + 14834D0F1D054E0E166621A2 /* Products */, + 4E0F5570346F6A4857C42910 /* Projects */, + ); + name = "torturethread"; + sourceTree = ""; + }; + 5F622DD864F5259F077E0B96 /* test */ = { + isa = PBXGroup; + children = ( + 3F07011E7F67723501261B67 /* torturethread.c */, + ); + name = "test"; + sourceTree = ""; + }; + 65F54082534442FE5F3C6FB2 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 2BE767C5431A064F3A6B54EC /* AudioToolbox.framework */, + 5B2D1BFD239A6B3833153839 /* AudioUnit.framework */, + 5537326739E5001721F16149 /* Cocoa.framework */, + 13E328CE0ED147E4536E03AD /* CoreAudio.framework */, + 28EC5CA8515B6DB473BA59FE /* IOKit.framework */, + 6AB13E5F0B0A46606DD420EA /* Carbon.framework */, + 6CC0344355184FD213643FCE /* ForceFeedback.framework */, + 4A7D035548C67EEB11F10CC3 /* CoreFoundation.framework */, + 1C694CE410B91AB641CF1239 /* OpenGL.framework */, + ); + name = "Frameworks"; + sourceTree = ""; + }; + 14834D0F1D054E0E166621A2 /* Products */ = { + isa = PBXGroup; + children = ( + 7A1676731649440872F55D0B /* torturethread */, + ); + name = "Products"; + sourceTree = ""; + }; + 4E0F5570346F6A4857C42910 /* Projects */ = { + isa = PBXGroup; + children = ( + 072E01F247EF3B1A400C6828 /* SDL2main.xcodeproj */, + 159427C84FD2135D685F664A /* SDL2.xcodeproj */, + ); + name = "Projects"; + sourceTree = ""; + }; + 71A114B313501D3A60DA451E /* Products */ = { + isa = PBXGroup; + children = ( + 20D069B22630310D5EBB05B1 /* libSDL2main.a */, + ); + name = Products; + sourceTree = ""; + }; + 019764BE0ADA2A9358711668 /* Products */ = { + isa = PBXGroup; + children = ( + 22A454FE6FBE31A0353F47E4 /* libSDL2.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 1E4162C874937D7C0F0B4321 /* torturethread */ = { + isa = PBXNativeTarget; + buildConfigurationList = 6A8E214A249E25280BC54424 /* Build configuration list for PBXNativeTarget "torturethread" */; + buildPhases = ( + 2F7F51D51407692531B62CDC /* Resources */, + 4DFD3F8B7DC519DF353D67E1 /* Sources */, + 22F24EE735AA3B060AA96E2E /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 043808470C59457650923B9C /* PBXTargetDependency */, + 3C1D45FD04D353DE2F2608C5 /* PBXTargetDependency */, + ); + name = "torturethread"; + productInstallPath = "$(HOME)/bin"; + productName = "torturethread"; + productReference = 7A1676731649440872F55D0B /* torturethread */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "torturethread" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 542708782B8F5A45218D4B11 /* torturethread */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 71A114B313501D3A60DA451E /* Products */; + ProjectRef = 072E01F247EF3B1A400C6828 /* SDL2main.xcodeproj */; + }, + { + ProductGroup = 019764BE0ADA2A9358711668 /* Products */; + ProjectRef = 159427C84FD2135D685F664A /* SDL2.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 1E4162C874937D7C0F0B4321 /* torturethread */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 20D069B22630310D5EBB05B1 /* libSDL2main.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2main.a"; + remoteRef = 6E7C218C79AE1C3E5B845689 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 22A454FE6FBE31A0353F47E4 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "Build/Debug/libSDL2.a"; + remoteRef = 25A1255C5E3308BE274E17CE /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 2F7F51D51407692531B62CDC /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 4DFD3F8B7DC519DF353D67E1 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 246F01AC730219D51AFB7615 /* torturethread.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ +/* End PBXVariantGroup section */ + +/* Begin PBXTargetDependency section */ + 043808470C59457650923B9C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2main.a"; + targetProxy = 57B6142405BB3E3C77255EC5 /* PBXContainerItemProxy */; + }; + 3C1D45FD04D353DE2F2608C5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libSDL2.a"; + targetProxy = 01BB50803BEF489E3B326B91 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 54D52C945FE276636B5D49F9 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "torturethread"; + }; + name = "Debug Universal"; + }; + 5A9A570E5C8B510F4C6E0ACE /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = Build/Debug; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "torturethread"; + }; + name = "Debug Native"; + }; + 1A6B1E1B2922781534683B59 /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "torturethread"; + }; + name = "Release Universal"; + }; + 21EF707D34E75E587A910298 /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + CONFIGURATION_BUILD_DIR = Build/Release; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PRODUCT_NAME = "torturethread"; + }; + name = "Release Native"; + }; + 067A546E0A3C1DA571CC2AA7 /* Debug Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Universal"; + }; + 0CC627EB5385752D65556A2E /* Debug Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "_DEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Debug"; + ONLY_ACTIVE_ARCH = YES; + SYMROOT = "Build/Debug"; + }; + name = "Debug Native"; + }; + 09A54A2843B1442F71C423BC /* Release Universal */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Universal/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Universal"; + }; + 6D7B39FA55641C8450AF4E3C /* Release Native */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_CPP_EXCEPTIONS = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "USING_PREMAKE_CONFIG_H", + "NDEBUG", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "../..", + "../../../../../include", + ); + OBJROOT = "obj/Release"; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = "Build/Release"; + }; + name = "Release Native"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 6A8E214A249E25280BC54424 /* Build configuration list for PBXNativeTarget "torturethread" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 54D52C945FE276636B5D49F9 /* Debug Universal */, + 5A9A570E5C8B510F4C6E0ACE /* Debug Native */, + 1A6B1E1B2922781534683B59 /* Release Universal */, + 21EF707D34E75E587A910298 /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; + 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "torturethread" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 067A546E0A3C1DA571CC2AA7 /* Debug Universal */, + 0CC627EB5385752D65556A2E /* Debug Native */, + 09A54A2843B1442F71C423BC /* Release Universal */, + 6D7B39FA55641C8450AF4E3C /* Release Native */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Debug Universal"; + }; +/* End XCConfigurationList section */ + + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/premake/Xcode/build-scripts/build.all.xcode3.i386.command b/premake/Xcode/build-scripts/build.all.xcode3.i386.command new file mode 100755 index 0000000000000..4fb4e2cc8447b --- /dev/null +++ b/premake/Xcode/build-scripts/build.all.xcode3.i386.command @@ -0,0 +1,35 @@ +#!/bin/sh + +testsTotal=0 +testsPassed=0 +testsFailed=0 +testsSkipped=0 + +function build() { + testsTotal=$(($testsTotal + 1)) + if [ -d "tests/$1" ]; then + cd tests/$1 + "xcodebuild" ARCHS=i386 ONLY_ACTIVE_ARCH=NO -project "$1.xcodeproj/" + if [ $? -ne 0 ]; then + testsFailed=$(($testsFailed + 1)) + else + testsPassed=$(($testsPassed + 1)) + fi + cd ../.. + echo "\033]0;Building: $1\007" + else + testsSkipped=$(($testsSkipped + 1)) + fi +} + +# change to directory above command file +cd `dirname $0`/.. + +# build all of the tests +for d in ./tests/*; do + build `basename $d` +done + +echo "Build Summary: Total=$testsTotal Passed=$testsPassed Failed=$testsFailed Skipped=$testsSkipped" + +cd .. \ No newline at end of file diff --git a/premake/Xcode/build-scripts/build.all.xcode3.x86_64.command b/premake/Xcode/build-scripts/build.all.xcode3.x86_64.command new file mode 100755 index 0000000000000..35bea5ef8e686 --- /dev/null +++ b/premake/Xcode/build-scripts/build.all.xcode3.x86_64.command @@ -0,0 +1,35 @@ +#!/bin/sh + +testsTotal=0 +testsPassed=0 +testsFailed=0 +testsSkipped=0 + +function build() { + testsTotal=$(($testsTotal + 1)) + if [ -d "tests/$1" ]; then + cd tests/$1 + "xcodebuild" ARCHS=x86_64 ONLY_ACTIVE_ARCH=NO -project "$1.xcodeproj/" + if [ $? -ne 0 ]; then + testsFailed=$(($testsFailed + 1)) + else + testsPassed=$(($testsPassed + 1)) + fi + cd ../.. + echo "\033]0;Building: $1\007" + else + testsSkipped=$(($testsSkipped + 1)) + fi +} + +# change to directory above command file +cd `dirname $0`/.. + +# build all of the tests +for d in ./tests/*; do + build `basename $d` +done + +echo "Build Summary: Total=$testsTotal Passed=$testsPassed Failed=$testsFailed Skipped=$testsSkipped" + +cd .. \ No newline at end of file diff --git a/premake/Xcode/build-scripts/build.all.xcode4.i386.command b/premake/Xcode/build-scripts/build.all.xcode4.i386.command new file mode 100755 index 0000000000000..4a991445a7340 --- /dev/null +++ b/premake/Xcode/build-scripts/build.all.xcode4.i386.command @@ -0,0 +1,33 @@ +#!/bin/sh + +testsTotal=0 +testsPassed=0 +testsFailed=0 +testsSkipped=0 + +function build() { + testsTotal=$(($testsTotal + 1)) + if [ -d "tests/$1" ]; then + "xcodebuild" ARCHS=i386 ONLY_ACTIVE_ARCH=NO -workspace ./SDL.xcworkspace/ -scheme "$1" + if [ $? -ne 0 ]; then + testsFailed=$(($testsFailed + 1)) + else + testsPassed=$(($testsPassed + 1)) + fi + echo "\033]0;Building: $1\007" + else + testsSkipped=$(($testsSkipped + 1)) + fi +} + +# change to directory above command file +cd `dirname $0`/.. + +# build all of the tests +for d in ./tests/*; do + build `basename $d` +done + +echo "Build Summary: Total=$testsTotal Passed=$testsPassed Failed=$testsFailed Skipped=$testsSkipped" + +cd .. \ No newline at end of file diff --git a/premake/Xcode/build-scripts/build.all.xcode4.x86_64.command b/premake/Xcode/build-scripts/build.all.xcode4.x86_64.command new file mode 100755 index 0000000000000..6299f15ca0b66 --- /dev/null +++ b/premake/Xcode/build-scripts/build.all.xcode4.x86_64.command @@ -0,0 +1,33 @@ +#!/bin/sh + +testsTotal=0 +testsPassed=0 +testsFailed=0 +testsSkipped=0 + +function build() { + testsTotal=$(($testsTotal + 1)) + if [ -d "tests/$1" ]; then + "xcodebuild" ARCHS=x86_64 ONLY_ACTIVE_ARCH=NO -workspace ./SDL.xcworkspace/ -scheme "$1" + if [ $? -ne 0 ]; then + testsFailed=$(($testsFailed + 1)) + else + testsPassed=$(($testsPassed + 1)) + fi + echo "\033]0;Building: $1\007" + else + testsSkipped=$(($testsSkipped + 1)) + fi +} + +# change to directory above command file +cd `dirname $0`/.. + +# build all of the tests +for d in ./tests/*; do + build `basename $d` +done + +echo "Build Summary: Total=$testsTotal Passed=$testsPassed Failed=$testsFailed Skipped=$testsSkipped" + +cd .. \ No newline at end of file diff --git a/premake/Xcode/build-scripts/clean_premake.command b/premake/Xcode/build-scripts/clean_premake.command new file mode 100755 index 0000000000000..c600fd9a82a19 --- /dev/null +++ b/premake/Xcode/build-scripts/clean_premake.command @@ -0,0 +1,4 @@ +#!/bin/sh +# change to directory above command file +cd `dirname $0`/.. +`dirname $0`/premake4 --file=../premake4.lua --to=./Xcode clean \ No newline at end of file diff --git a/premake/Xcode/build-scripts/premake4 b/premake/Xcode/build-scripts/premake4 new file mode 100755 index 0000000000000000000000000000000000000000..dc3bb9abfa7766e96f1be5e63c9d98a04cd253f9 GIT binary patch literal 419580 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𝔡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%0A8oQuDRJ+Q`giifmJAS)pF;;6|0(8tXRq4m8)Va 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 literal 0 HcmV?d00001 diff --git a/premake/Xcode/build-scripts/run.tests.command b/premake/Xcode/build-scripts/run.tests.command new file mode 100755 index 0000000000000..1426e4d0c2bcc --- /dev/null +++ b/premake/Xcode/build-scripts/run.tests.command @@ -0,0 +1,93 @@ +#!/bin/sh + +function pause() { + read -p "$*" +} + +function pass() { + if [ -d "$1/Build/Debug" ]; then + cd $1/Build/Debug + echo "Testing:" $1 + echo "\033]0;Testing: $1\007" + "./$@" + cd ../../.. + pause "Press any key to continue..." + fi +} + +function randomfile() { + fcount=($1/*.*) + fcount=${#fcount[@]} + fpick=$(($RANDOM % $fcount)) + for d in $1/*.*; do + if [[ $fpick -eq 0 ]]; then + RETURN=$d + echo $d + return + fi + fpick=$(($fpick - 1)) + done +} + +function testspecial() { + if [ -d "$1/Build/Debug" ]; then + cd $1/Build/Debug + randomfile $2 + cd ../../.. + pass $1 $RETURN + fi +} + +# change to directory above command file +cd `dirname $0`/.. +cd tests + +pass "checkkeys" +pass "loopwave" +#pass "testatomic" +pass "testaudioinfo" +pass "testautomation" +pass "testdraw2" +pass "testchessboard" +pass "testerror" +pass "testfile" +pass "testfilesystem" +pass "testgamecontroller" +pass "testgesture" +pass "testgl2" +pass "testgles" +pass "testhaptic" +pass "testiconv" +pass "testime" +pass "testintersection" +pass "testjoystick" +pass "testkeys" +#pass "testloadso" +pass "testlock" +pass "testmessage" +#pass "testmultiaudio" +pass "testnative" +pass "testoverlay2" +pass "testplatform" +pass "testpower" +pass "testrelative" +pass "testrendercopyex" +pass "testrendertarget" +pass "testresample" "sample.wav" "newsample.wav" "44100" +pass "testrumble" +pass "testscale" +pass "testsem" 1 +pass "testshader" +#testspecial "testshape" ./shapes +#testspecial "testshape" ./shapes +#testspecial "testshape" ./shapes +pass "testsprite2" +pass "testspriteminimal" +pass "teststreaming" +pass "testthread" +pass "testtimer" +pass "testver" +pass "testwm2" +pass "torturethread" + +cd .. \ No newline at end of file diff --git a/premake/Xcode/build-scripts/xcode3.command b/premake/Xcode/build-scripts/xcode3.command new file mode 100755 index 0000000000000..87c51b029a886 --- /dev/null +++ b/premake/Xcode/build-scripts/xcode3.command @@ -0,0 +1,4 @@ +#!/bin/sh +# change to directory above command file +cd `dirname $0`/.. +`dirname $0`/premake4 --file=../premake4.lua --to=./Xcode/Xcode3 xcode3 \ No newline at end of file diff --git a/premake/Xcode/build-scripts/xcode4.command b/premake/Xcode/build-scripts/xcode4.command new file mode 100755 index 0000000000000..3d2d285233b1e --- /dev/null +++ b/premake/Xcode/build-scripts/xcode4.command @@ -0,0 +1,4 @@ +#!/bin/sh +# change to directory above command file +cd `dirname $0`/.. +`dirname $0`/premake4 --file=../premake4.lua --to=./Xcode/Xcode4 xcode4 \ No newline at end of file diff --git a/premake/changelog b/premake/changelog new file mode 100755 index 0000000000000..0cee4a515f1f9 --- /dev/null +++ b/premake/changelog @@ -0,0 +1,828 @@ +This file contains a log of most of the changes and evolutions of the meta-build +system for Simple DirectMedia Layer 2.0 and related projects. + +Changes as of 09/18/2013: + -Enabled executable bits on the Mac OS X build-scripts command files. + -Replaced the Xcode directory structure with two folders for Xcode 3 + and Xcode 4. It now looks like the VisualC folder, wherein there is + premake/Xcode/Xcode3 and premake/Xcode/Xcode4 default workspaces. + -Updated premake/Xcode/build-scripts/xcode3.command and the + xcode4.command files to properly generate the workspaces in the above + mentioned directories. + -Regenerated the Visual Studio projects to push the 'current working + directory' fix to the repository. + -Verified the projects are building and running properly across all platforms. + +Changes as of 09/13/2013-09/14/2013: + -Analyzed structure and existing problems to be fixed in the system. + -Updated the OpenGL dependency to not include "C:\Windows\System32" since that + is implicitly included for any compiler building the project on Windows + anyway. + -Removed the build.all.vs2012.bat script since it hasn't been working and + trying to get it to work or figure out why it doesn't is beyond the scope of + the project at this point. + -The above also applies to check.bin.compatibility.vs2010.bat. + -Updated typo in run.tests.bat to make testchessboard run properly (it was + looking for testdrawchessboard instead). + -Corrected OpenGL dependency to properly look for "libGL" instead of + "OpenGL32" on Linux. + -Updated OpenGL dependency to link to "libGL" instead of "OpenGL32" on Linux. + -Updated OpenGL dependency to properly notify the dependency system whether + OpenGL support has been found or not (it was always indicating OpenGL + support accidentally). + -Modified the vs2008/vs2010/vs2012 generation scripts to generate to specific + subfolders (ie, ./VS2008, etc.) so they can all be generated at once. Updated + the clean script appropriately. Originally, it was desired to generate + something more like SDL_VS2008.sln, etc., but premake has troubles correcting + interproject dependencies without renaming the binary files to similar names + (like SDL_main_VS2008.lib), which seemed much worse than just separating by + directory. + -Altered the working directories for the Visual Studio debugger to run from + the path of the binary for each test application, rather than from the + project directory. This allows the tests to utilize any locally copied + resource files from both inside and outside Visual Studio. + -Added execution bits to Linux build scripts. + -Clarified the second paragraph in README-windows.txt. + -Fixed typos in README.txt and added a plethora of code examples and + explanations to demonstrate how to add on to the current system. + -Regenerated default projects for MinGW, Linux, and Windows (this time serving + VS2008, VS2010, and VS2012). + +Changes as of 08/30/2013: + -Updated README-windows.txt, README-macosx.txt, and README-mingw.txt. + -Created README-linux.txt, README-ios.txt, README-linux.txt. + -Modified premake4.lua to not generate any files if simply printing help text. + -Created the entire primary README.txt help file. + -Updated the automated test command file for OS X to randomly select a file + for testshape, just like the windows version. However, there is an issue + with it so that test is currently commented out. + -Updated all 4 OS X build scripts to automatically build all of the generated + test projects, rather than maintaining a list. + -Generated an initial Xcode 4 workspace for iOS. + -Generated an initial Xcode 4 workspace for Mac OS X. + -Updated a bug in the windows automated test batch file within the label for + handling the specially randomized arguments passed to an application, such as + for testshape (it was hardcoded for testshape, rather than using a variable + as intended). + -Fixed a typo in the windows automated test batch file wherein it was not able + to run the chess board application correctly. + -Updated the automated test bash script for Linux targets to run the new + chessboard test and to randomly pick an image to send to testshape. It runs + testresample and testatomic now, too. + +Changes as of 08/28/2013 & 08/29/2013: + -Removed TODO.txt. It's no longer necessary; a lot of what was in it is no + longer relevant, completed, or replaced by something different and thus + implemented in some variety. + -Stopped the premake engine from executing the project definitions if simply + executing the help procedure, listing available options and acitons for the + target premake file. + -Modified the dependency function handling so that the function names are case + insensitive both for registering functions and checking or testing them. + -Created a function in sdl_projects.lua that can be used to retrieve all of + the known names of the dependencies registered with the system at that point. + -Implemented automated generation of options to forcibly enable certain + dependencies, even if they are explicitly defined to not work on a given + platform or if they simply cannot be found. This is useful, for instance, to + force on the DirectX dependency for MinGW if the user has successfully setup + the environment to work with it. + -Modified the behavior of the dependency functions to provide the libraries, + library paths, and include paths for platforms that don't support that + dependency, allowing the override command line options to properly work on + those platforms for those dependencies (again, the DirectX dependency on + MinGW comes to mind). + -Cleaned up premake4.lua. + -Removed hardcoded links in Linux from premake4.lua to its proper locations in + SDL2.lua and dependency functions. + -Renamed the 'reset_links' function in sdl_check_compile.lua to be + 'reset_link_flags' since it fits the functionality better. + -Corrected a mistake in 'check_include_directory' in sdl_check_compile.lua + where it simply checked for files existing in a directory, rather than + specifically header files. + -Removed the 'projects' table declaration in premake4.lua, since its defined + in sdl_projects.lua anyway. + -Removed directive for copying the Info.plist file from the Xcode-iOS + directory for the testsprite2.lua project, since it makes no sense. + -Modified 'addConfig' in sdl_gen_config.lua to be extra cautious about + ensuring that keys and values in the supplied config table are, indeed, + strings as they need to be for concatenation. + -Added documentation for premake4.lua, sdl_check_compile.lua, + sdl_dependency_checkers.lua, sdl_depends.lua, sdl_file.lua, + sdl_gen_config.lua, sdl_string.lua, and sdl_projects.lua. + -Implemented file headers for every single project definition file. + -Significantly cleaned up the commenting in SDL2.lua and added a file header + description. + -Added a print line in premake4.lua to indicate when the generation of the + premake Lua file begins. + -Added initial sample projects for VS2010, Linux make, and MinGW make. + +Changes as of 08/27/2013: + -Updated the Linux premake executable based on all the patches applied to + premake thus far, as documented in the patches folder. + -Updated the Linux definition of SDL2.lua to have all of the subsequent source + files associated with each dependency to be within that dependency using the + SDL_paths directive. + -Implemented a function for modifying the search path for libraries during + the various compiler test functions in sdl_check_compile.lua. + -sdl_check_compile.lua: implemented a function for checking wether a library + exists using os.findlib, adding its directory to the library path, then + using check_library_exists to see if it can be linked to properly. + -sdl_check_compile.lua: implemented check_include_directory and + check_include_directories functions to see whether specified directories + exist and contains .h files. This could be modified later on for other types + of files that would exist in include directories (such as hpp, hxx, etc.). + -sdl_projects.lua: implemented a function that checks whether a dependency + exists and was found (the function must have been executed already). This is + used by many of the dependencies for Linux (specifically that most of its + dependencies depend on DLOpen for shared library binding). + -Modified the dependency order for Linux in SDL2.lua so that DLOpen is listed + first, as to help the dependency resolution process. + -Corrected the link order in sdl_check_compile.lua, fixing the + check_library_exists, check_library_exists_multiple, and + check_library_exists_lookup functions. + -Corrected the size definitions for SDL_config_linux.template.h so that it + will work cross-platform. + -Implemented better dependency support for the following Linux dependencies: + DLOpen, ALSA, PulseAudio, ESD, NAS, OSS, and X11. The dependency code is + based on CMake's definitions for those dependencies. The dependency function + for D-Bus is improved. + -Removed the commented code for the Windows SDK in the + sdl_dependency_checkers.lua file. + -Re-enabled the ifndef checks for the generate premake header file. + -Moved the clean action in premake4.lua to before the project definitions, so + that cleaning is immediate and doesn't have to wait on unnecessary dependency + checks. + -Renamed the macro defining whether to use the premake config header from + USING_PREMAKE_HEADER_H to USING_PREMAKE_CONFIG_H, which involved changes in + premake4.lua and include/SDL_config.h in the root source tree. + -Corrected a mistake in the OpenGL dependency function that would mishandle + forbidding desktop GL functionality on iOS. + -Corrected a bug that would properly setup MinGW targets to work with OpenGL, + but it would not link to WGL so there was no way for SDL to actually load the + OpenGL library and attach it to a window. + -Blocked support for OpenGL on Cygwin. + -Blocked support for testfilesystem on Cygwin due to lack of support, though + unix file system support is now enabled on Cygwin. The test accesses some + windows functions that do not link properly in the Cygwin environment. + +Changes as of 08/26/2013: + -Implemented the testdrawchessboard test application. + -Disabled the path-searching functionality for the DirectX dependency so it + would be significantly sped up. It makes the assumption that DirectX is only + installed if its DXSDK_DIR variable is set. The code is still there if users + wish to implement the functionality again. + -Modified the clean action to remove the 'ipch' directory since it sometimes + shows up in various Visual Studio solution builds. + -Fixed a bug in the post-build copy step that wouldn't correctly create nested + directories during the copy stage in Visual Studio on Windows targets. This + reflects an earlier bug fix that would stop the non-nested files from being + copied correctly; both work now. + -Modified the testshape project to copy all of the shape images instead of the + sample image. + -Updated the automated test batch file on Windows to randomly pick one of the + intended shapes while running testshape. It also runs testshape three times, + to demonstrate both the randomness and adequate testing of testshape over + multiple shapes. + -Changed the resample test to copy the sample.wav. + -Updated the 'pass' label in the windows run.tests.bat file to accept a + variable-number of arguments to be passed to the executable. + -Re-enabeld the testresample test to try and resample sample.wav at 44.1Khz. + -Updated testoverlay to copy moose.dat, since it depends on it now. + -Updated testshader to properly depend on OpenGL and link to it, as well as + copy the file it needs (icon.bmp). + -Moved the dependency checker file over to the util directory. + -Updated premake4.lua to recursively execute all the files in the projects + folder, so they don't have to be hardcoded into premake4.lua and can be + organized in whichever way desired (so long as their internal paths are + correct). + -Implemented text-based file writing in the sdl_file.lua utility file, as to + prep for going around generating a lua file and loading the generated file + from memory, instead. + -Updated all of the current SDL dependency functions to properly check for + MinGW and Cygwin support. + -Fixed a few bugs in premake4.lua that would break Cygwin and MinGW support + due to improper checking. + -Fixed bugs that made it tricky to do wildcard copying on *nix systems (needed + by testshape). Tested to work on MinGW and Windows. + +Changes as of 08/23/2013: + -Removed hardcoded definitions for the Linux config template. + -Moved definitions over to SDL2.lua. + -Added definition for enabling the file system module on Linux. + -Separated the OpenGL dependency into one for Windows (WGL) and Linux (GLX). + The core dependency is still there, but the windowing part is separate. + -Separated the library-based dependencies from the Linux implementation into + a series of dependency functions. + -Changed the dependency function to return a named table instead of variable + returns. + +Changes as of 08/22/2013: + -Rearranged a few more things in the top 'dofile' section in premake4.lua. + -Reverted accidental changs to include/SDL_config.h which rendered it specific + to a single platform, per cmake generation. All building was broken due to + this accidental change, but it should be fixed after this commit. + -Merged repository with the latest version from live SDL repository. + -Implemented new file system source tree on Windows. + -Implemented file system test. + -Removed files accidentally committed from the Linux directory. + -Implemented tests for the file system test for windows and Mac OS X. + -Implemented cocoa file system support. + -Implemented cocoa filesystem support on iOS. + -Fixed a bug that was leading to the Xcode-iOS trying to build the + OpenGL renderer on iOS, which isn't supported. + +Changes as of 08/21/2013: + -Changed names of generated files in check_compile.lua to more readable names, + within the format "premakecheck.*" + -Updated the check build function in check_compile.lua to support executing + the build and redirecting all output to "./premakecheck.stdout". + -Implemented a function for checking the size of a given type by generating a + program that prints it to the screen, then reads the result from a file and + converts it to an integer. This function is dependent on the existence of + stdio.h and the printf function. + -Tested the size function on Linux using various types. + -Clumped the "dofile" directives for all utility scripts together in + premake4.lua. + -Removed the *Mode variables for MinGW, Cygwin, and iOS. All checking for + these systems should be done using SDL_getos(). + -Updated SDL_getos() to check the _OPTIONS table directly. + -From depends.lua, moved dirpathsearch and getenvpath to sdl_file.lua. + -Created a sdl_string.lua file to contain various string-related functions. + -From depends.lua, moved indexOf and explode to sdl_string.lua. + -From premake4.lua, moved implode to sdl_string.lua. + -Renamed depends.lua to sdl_depends.lua. Indicated that the file is + particularly for windows dependency testing. + -Rename check_compile.lua to sdl_check_compile.lua. + -Updated premake4.lua to reflect file changes and modified the order of doing + the util files, since their interdependencies have changed slightly. + -Added sdl_string.lua to the list of utility files done in the beginning of + premake4.lua. + -Updated header in every file to reflect that I did not create premake (old + wording was a bit vague). + -Added header to new files. + +Changes as of 08/20/2013: + -Fixed logical mistakes in the check build sources function. + -Added a check_function_exists function. + -Whenever an include header or headers are checked, if they are found + and build properly then they will be added to an internal list that + will be prepended whenever doing future check_function_exists and + check_library_exists calls. + -Added a function which will check if a function exists in any of a set + of libraries, rather than just one. + -Added support for linking libraries for the check_library_exists + function. + -Silenced building and linking commands. + -Incorporated check_compile.lua in premake4.lua. + -Tested the various functions with X11, DLOpen, and ALSA dependency + compatibility. some future tweaking may be necessary, but the + dependency checking happening in cmake should be reproducable using + these functions with some tweaking of the implementation itself. + +Changes as of 08/16/2013: + -Updated Cygwin build to foster a very trimmed down version of the Linux + build, with no audio, video, haptic, joystick, or input support. + -Cygwin uses a shared library. Read SDL2.lua for more information. + -Slimmed and trimmed the cygwin config template to its bare minimum. + -Implemented the configurations needed for Cygwin in SDL2.lua. + -Updated many projects to be excluded if building on Cygwin, since many of + them are incompatible without the aforementioned support. + -Implemented a Cygwin directory and separate build-scripts, working similarly + to that of MinGW. + -Implemented a check_compile.lua utility file emulating a lot of the same + functions used in cmake to check for dependencies and various libraries. + These will be added to a Linux-specific dependency checker function later on, + allowing all the Linux dependencies to follow a similar routine to that of + autotools and cmake. + +Changes as of 08/15/2013: + -Created a separate template configuration file for Cygwin. + -Created separate SDL2 project definitions for Cygwin, alongside Linux. + -Added various other side definitions for Cygwin support, though it is still + not building correctly due to some misunderstandings with library support. + -Patched premake to support custom source trees for Xcode projects to fix + issues finding the correct iOS frameworks in Xcode. + -Updated all Win32 premake executables containing the patch. + -Updated executables for Xcode and Xcode-iOS for above patch. + -Updated SDL2.lua for iOS to use the SDKROOT source tree for the frameworks, + as per the new patch. + -Successfully built and ran all the iOS demos. + +Changes as of 08/14/2013: + -Fixed a mistake in the windows-side copy command that was changed yesterday; + without parentheses it was inhibiting the ability to copy the SDL2.dll file + to the built directories if the directories already existed; this has been + fixed. + -Reintegrated MinGW support on Windows with a few slight changes to various + OS dependencies, since "MinGW" is now considered the target OS, versus + Windows. This involved changes in SDL2.lua, SDL2main.lua, testnative.lua. + -Reenabled both debug and release configurations. + -Separated post-build commands to being separate for debug and release. + -Setup temporary hardcoded linkoptions for MinGW on the release configuration. + -Verified both configurations build correctly for VS2010 and MinGW. + -Updated the premake executables for VS and MinGW to reflect the recent + patch. + -Updated premake executables for Xcode and Xcode-iOS to contain features + added from the latest patch. + -Verified working debug/release builds on Xcode, though the target + directories for the binaries clash, so they override each other. This + will be fixed in the future as the system starts to get cleaned up. + +Changes as of 08/13/2013: + -Implemented special SDL_getos function which gets the current build + platform, taking into consideration Cygwin, iOS, and MinGW modes. + Although it's invalid to consider Cygwin and MinGW operating systems, + for all intensive purposes they are considered separate for the build + system. This may be renamed later on. + -Updated OS-compatibility functions for SDL projects to use the new + SDL_getos function, so they can be dependent on Cygwin, MinGW, iOS, etc. + -Removed the iOS dependency function and updated the iOS portion of the + SDL2 project to depend on iOS rather than Mac OS X. + -Changed the explode function in depends.lua to be part of the string + table. + -Modified SDL_isos to accept patterns, such as "macosx|ios". + -Updated SDL2 and SDL2main to be compatible on Mac OS X and iOS + simultaneously. + -Updated SDL_os to work with the patterns, as well, by merging the + functionalities of SDL_os and SDL_isos to a local function. + -Updated SDL_notos similarly. + -Updated SDL_os to work on projects as well as dependencies, and updated + premake4.lua to check for overall project compatibility. + -Implemented SDL_notos to inhibit compatibility for projects that simply + cannot work on specific platforms. + -Added exclusions for every single current test project to not be added + to the iOS solution, since none of them are designed to run on iOS. + -Removed hacked override for info.plist and properly implemented plist + inclusion for Xcode projects. Premake already supported this well. + -Changed a few references in premake4.lua of os.get to SDL_getos to + avoid some of the hardcoding that was going on in various places. + -Advanced the SDL_copy feature for project resources to being able to + copy files to more complicated destination paths, with scripted support + to create the destination directories if they do not yet exist during + post-build execution. + -Patched premake to allow BMPamd WAV files to be considered as assets + for Xcode projects. + -Updated the premake executables for Xcode and Xcode-iOS, respectively. + -Successfully ported, built, and ran all working Xcode-iOS demos using + project files generated by the meta-build system for those demos. There + are a few hiccups that need to be ironed out yet, but overall it's a + hopeful step forward to decent iOS support. + -Upgraded the clean action to also delete the demos folder for iOS. + -Unhardcoded a lot of the iOS stuff added in previous commits, which + included switching a lot more references to os.get() to SDL_getos() + in premake4.lua. + -Preliminarily fixed some potential bugs stemming from SDL_getos() + versus os.get(). + -Moved hardcoded iOS links from premake4.lua to their correct location + in SDL2.lua. + -Reinstated correct platforms directives, versus hardcoded iOS, etc. + -Double checked Xcode projects still are generated, built, and run + properly. + -Updated the patches listing and files portion appropriately for the + aforementioned premake modification. + +Changes as of 08/09/2013: + -More bruteforcing on trying to hack premake into generating a correct + iOS-compatible Xcode project. + -Added code to convert all ConsoleApps to WindowedApps in iOS mode + because ConsoleApps translate to 'tool' on Mac OS X and tools are + not supported on iOS. + -Forcefully implemented a list of links taken from the Demos SDL + iOS Xcode project for all generated SDL2 projects so they can + correctly link to the iOS system. + -Successfully built SDL2 and tests for iOS, though the test projects will + not run correctly on iOS due to not being built for iOS. + -Fixed a bug in the testgles project where it was not linking to SDL2test, + on which it was dependent. + +Changes as of 08/08/2013: + -Implemented template header for iOS configurations. + -Successfully built SDL2 library for iOS on Xcode. + -Implemented configuration for iOS similar to that of Cygwin and MinGW. + -Implemented command-line option for selecting iOS mode on Mac OS X. + -Currently, iOS projects will have some issues regarding correct + project types, so building and running are a bit off yet for iOS. + -Added a new folder for iOS generation. + -Added scripts for iOS generation and such. + -Added exclusion for the OpenGL dependency checker for always failing + on iOS, since iOS uses OpenGL ES 1.1/2.0, not desktop GL. + -Fixed a bug in sdl_projects.lua that led to excluded dependency + function calls to give a false positive if they lead to invoking + the function rather than using a cached result. + +Changes as of 08/07/2013: + -Created a fork for premake-stable to try and implement some of the necessary + changes in order to support many new features to the meta-build system. + -Created a directory for patches as part of the meta-build system. This may be + removed later on. + -Restored linking to MinGW32 in MinGW mode after temporarily removing it and + forgetting to restore it. + -Submitted a ticket and patch to premake for fixing the linker order that + prevented proper linking to SDL2main on the MinGW project. + -Created a manifest of patches made to premake needed for MinGW. + -Added a patch for adding iOS support on Xcode, though currently untested. + -Updated all Mac OS X, Windows, and MinGW binaries to reflect the above + patches. + +Changes as of 08/06/2013: + -Corrected a mistake in the Linux template config header that was preventing + it from being built on Linux. It was using the same header guard as + SDL_config.h, rendering it completely blank during compile time. + -Added a dependency function for checking for D-Bus support on Linux. + -Implemented a summary implementation for the Linux project in SDL2.lua, + making use of the D-Bus dependency function. + -Added temporary global links in premake4.lua for all projects on Linux. + -Successfully built SDL2.lua on 64-bit Linux Mint 15. + -Updated the testnative test project to have a Linux dependency, binding to + testnativex11.c. + -Implemented an X11 dependency function for testnative and related projects, + though only testnative currently uses it. + -Had to switch over to using a static library instead of a shared library on + Linux for now, because Linux requires the end executable to be aware of + where the shared library is, and we have no way currently to generate any + sort of install rule for the generated SDL2 makefile. Premake will have to + be patched to proceed on that route. + -Successfully built all test projects on 64-bit Linux Mint 15. + -Added a shell script to automatically run through the compatible tests in + Linux/build-scripts, similar to those of the other platforms. + -Successfully ran through many of the tests, though without OpenGL support. + -Added clean shell script for Linux targets. + +Changes as of 08/05/2013: + -Implemented global flags for checking if the current premake system is + targeting MinGW or Cygwin. + -Corrected previous checks that were directly using _OPTIONS to using the + MinGWMode flag, instead. + -Corrected typos where I was misspelling 'targeted' as 'targetted' + -Moved the options declarations a bit earlier in premake4.lua. + -Corrected a mistake in the clean batch file for MinGW where it wasn't + actually cleaning in MinGW mode. + -Started working on a Cygwin implementation. + -Started working on a Linux implementation (using Linux Mint 15). + -Setup a basic SDL_config_linux.template.h based on a SDL_config.h production + on 64bit Linux Mint 15 using the configure script. + -Setup the Linux directory and a basic build script. The system completely + does not build at this point, it's simply a step in the right direction. + -Fixed a bug in the testnative project where it was trying to build the X11 + implementation on Mac OS X instead of the cocoa implementation. The test + now builds and runs correctly on Mac OS X. + +Changes as of 08/02/2013: + -Actually added a README file for MinGW. + -Changed all the README files to be named similar to those in the top level + directory. + -Updated the READMEs for more accurate and up-to-date information. + -Split this primary README.txt into three files: README.txt, TODO.txt, and + changelog. + -Updated the depends.lua file to automatically fail on the windows dependency + search if the current OS is not windows and corrected a bug that would result + in an infinite loop if the main search path provided is empty but not nil. + -Implemented a utility function in depends.lua for joining together a series + of evaluated environmental variables, taking into consideration of they do + not exist. This function is cross-platform. + -Fixed a bug where the recently added code for surrounding paths with spaces + in quotes would lead to premake placing a "../" before the path. Besides the + convention of using double quotes is not universal, this bug existed both + with Visual Studio and MinGW gmakefiles. The code has been completely + removed, as it was found unnecessary. + -Modified DirectX dependency function to fail if targeting MinGW. + -After fully testing support for MinGW, I found there were a few differences + in execution between that and VS builds (without DirectX), one of which is + torturethread crashing on MinGW builds. + -Changed testshape.lua to copy sample.bmp and changed the run test scripts + to use the local sample.bmp as the shape for the window. This was just to + make the built environment independent of the top-level SDL directory. + -Changed the test run scripts to properly run the semaphore test. + -Edited the build scripts for Visual Studio to parallelize builds when + possible. + -Moved build scripts for VS and MinGW projects into respective build-scripts + folders, similar to the top level SDL directory. Tested all the tests for + builds using VS2008, VS2010, VS2012, and MinGW. + -Moved the build scripts for Xcode 3 and 4 to their own build-scripts folder. + -Updated the build scripts for Mac OS X to run the semaphore test. + -Tested the build environment and tests with Xcode 3 and 4 with architectures + i386 and x86_64. + +Changes as of 08/01/2013: + -Implemented the SDL_notdepfunc function in sdl_projects.lua so dependencies + can depend on the absence of a dependency. For example, the haptic and + joystick systems have dummy systems that cannot be built alongside the Dinput + implementations, so they have to be added only in the absence of DirectX. + -Implement a dependency for handling the situation where DirectX is not found + on the windows platform. + -Tested SDL and its tests without DirectX support. Properly built SDL and ran + through the tests. Most of the tests ran great. There were a few tests that + did not work quite right, though. + -Began working on MinGW gmakefile support. + -Implemented custom option for specifying mingw mode (using --mingw); this is + used to ensure -lmingw32 is specified to gcc for proper linking with + SDL2main. + -Had to change make_cpp.lua as part of premake in order to ensure the linker + flags were specified before input, so that I could properly ensure the order + of library linking. The premake in the VisualC folder is now customized. + -Changed all of the projects' dependency orders to be logically correct, since + gcc requires linking order to be exact. + -Successfully built the entire project using MinGW and a generated GNU + makefile. + -Modified MinGW setup to statically link to libgcc so it can run independently + of the MinGW system. + -Successfully ran all tests with MinGW-built executables and library. + -Setup a directory, README, and generation script for MinGW builds. + -Updated clean action for makefiles. + -Implemented quoted libpath and incpaths incase they have spaces. + -DirectX and OpenGL currently not supported on MinGW due to build errors. This + will be fixed and should be supported soon. + +Changes as of 07/31/2013: + -Implemented functions for checking whether the current system is 64bit + per-project specification. This is similar to SDL_isos. There is a + negated version implemented, too. + -Implemented native and universal build platforms for the Mac OS X + projects. This translates to x32 and x64 build targets within Xcode. + -Modified the SDL_defines function to add table values instead of replace. + -Corrected a mistake that was defining _WINDOWS on the Mac OS X project. + -Changed the dependency and custom links listing functions for sdl_projects + to prevent duplicates. + -Upgraded the premake4.lua handling of dependency lists and custom links + to support prevented duplicates. + -Reimplemented OpenGL support on Mac OS X. + -Separated frameworks on Mac OS X into proper SDL_dependency declarations + so they are no longer hardcoded. + -Upgraded project dependency system so that when a project is dependent + on a static library, it inherits all of the dependencies of that project + as well. + -Created build scripts for i386 and x86_64 for both Xcode 3 and Xcode 4. + -Tested all of the above (including with OpenGL and without OpenGL) on all + tests for Xcode 3 and 4, on architecture targets i386 and x86_64. + -Removed the old premake4 executable in Xcode. + +Changes as of 07/30/2013: + -Began investigating different architectures for Windows, MacOSX, etc. + -Implemented functionality for specifying which platforms a project is + supported on, so as to start providing preliminary support for multiple + build platforms. + -Changed function declaration requirement for dependency functions. + -Changed the dependency function invocation to be table-based. + -Implemented features to cleanup using dependency functions for projects and + allowed possibility for multiple dependency functions on one project. + -Moved invocation of dependency functions from premake4.lua to + sdl_projects.lua. + -Some nested statements have been cleaned up in premake4.lua due to changing + the dependency function calling location. + -Moved all dependency functions to a unified location for order-independent + referencing of them. Ie, this allows SDL2 and testgl2 to both reference the + OpenGL checker function. + -Ensured all dependencies are invoked exactly one time even if referenced + multiple times. + -Implemented opengl dependencies for SDL2 so that opengl support should now be + reenabled in the SDL project. + +Changes as of 07/29/2013: + -Implemented scripts to automatically build all of the projects in the VS2010 + and VS2012 solutions. + -Implemented scripts to automatically perform binary compatibility testing for + premake VS2010 and VS2012 libraries against the manual projects' test + executables. + -Tested binary compatibility for VS2010 and VS2012 solutions on Windows. The + usual lack of standard output is still ocurring. The testgl2 application + currently crashes on both, but that's because it's not linking to OpenGL + currently. The test shouldn't actually crash, but it reports no OpenGL + when it runs correctly. The other visual tests seem to run fine. + -Cleaned up this README a bit, adding the rest of the points discussed with + Gabriel. + +Changes as of 07/26/2013: + -Corrected a bug in SDL2.lua that didn't correctly define the compile-time + defines for Mac OS X. + -Added template configuration headers for minimal builds and Mac OS X + -Added template config selection based on current platform, defaulting to + minimal if on an unknown system + -Corrected bug in sdl_gen_config.lua to allow using templates that have no + area to paste generated tokens, thereby ignoring the tokens and just + copying the template right into the generated header + -Upgraded build.all.xcode4.command in the Xcode directory to give some + information regarding how many tests were attempted to be built, how + many passed, failed, and were skipped. + -Added support in the clean option to correctly remove the Xcode 4 workspace + file. It almost perfectly cleans Xcode projects now. It actually will only + miss folders if the user goes into those folders with Finder, otherwise it + cleans up properly right now. + -Added support build.all.xcode3.command for Xcode 3 projects, rather than + having to manually go into each project and build it individually. + +Changes as of 07/25/2013: + -Moved file-based operations to a separate utility sdl_file.lua file + -Began the configuration generation system using sdl_gen_config.lua + -Created a config folder for *config.h templates and added the + SDL_config_windows.template.h file, omitting everything premake will add + itself + -Fixed a bug where the base location would have a backslash on windows in the + final generated Lua file, where it wasn't supposed to + -Implemented clean option for the generated header file + -Modified SDL_config.h to include SDL_config_premake.h (generated) if the + preprocessor value 'USING_PREMAKE_HEADER_H' is defined, which the meta-build + system ensures it is + -Merged winmm dependency back into the windows dependency for SDL2.lua, + because the windows timer module depends on winmm, as well + -Partially tested configuration system via Visual Studio 2008; Mac OS X + projects will be broken until that side is upgraded + +Changes as of 07/24/2013: + -Updated mac os x test file to include all the new tests + -Added script to automatically batch together all the scheme builds for + the tests, so they don't have to be manually built through Xcode + -Tested new tests and build environment on Xcode 4 successfully (weren't + tested on here yet) + -Began investigating implementing iOS Xcode projects using meta-build + system + -Began investigating implementing gmakefile generation support for + GNU/Linux, Cygwin, and MinGW. + +Changes as of 07/23/2013: + -Latest changes tested on Xcode 3 and 4; test suites running as expected + -Implemented the entire test suite and tested it in Visual Studio on Windows; + incompatible tests will build and run, but they will fail if there are no + appropriate devices or settings for them to run correctly; this is correct + behavior. Tested most suites on VS2008, VS2010, and VS2012. Only testerror + crashed. + +Changes as of 07/22/2013: + -Cleaned up the mixture of forward/back slashes in the generated LUA file. The + only backslashes that exist are for copy commands, since they are copied as + text into the generated projects. The rest use forward slashes, since premake + actions handle per-system translation of directory paths. + -Implemented SDL_isos function for projects so that they can have some control + over certain functions where arguments or function calls changed with + different operating systems (such as SDL_kind for SDL2 project) + -Documented the new project functions. The documentation could be formatted a + bit better and the arguments could be explicitly formatted. + -Cleaned up SDL2.lua + -Implemented project-level files and paths directives for projects, so that + SDL_dependency isn't needed to specify files and file search paths for + projects + -Applied the above changes to all the project files and named a few other + dependencies such as for SDL_main and testgl2. No projects should have + unnamed dependencies at this point. + -Tested the changes of the last few days on VS2008, VS2010, and VS2012. All + the test suites run as expected. + +Changes as of 07/19/2013: + -Updated generation backend to be more concise and less like it was before; + this also fixed the duplicate dependency function calls bug + -Implemented config function for constants to set in a generated SDL config + header + -Preliminarily set the config values for the SDL2 project + -Updated generation code so that it won't generate empty projects, which stems + from projects in which all of its dependencies are not compatible with the + current system + -Updated windows automated tests batch file to work more like Xcode's shell + command file wherein it uses a labeled batch of commands as a sort of + procedure; it's cleaner now and it will work if some projects aren't there + (such as if they aren't supported on that platform) + -Separated the winmm portion of the SDL2 project from the windows portion, so + it has its own dependence now and uses a dependency check function that's + dependent on premake's os.findlib + +Changes as of 07/18/2013: + -Converted all projects over to the new, simpler format and tested on VS2008, + VS2010, and VS2012 + -Corrected a mistake in the SDL2main project that always built the main file + for windows, even on mac os x + -Added some more features to the new project definition system to support + project locations, custom defines, copy tables, and project dependencies + -Moved new project definition system to a separate lua file + -Fixed using 'copy' on windows for post-build commands and 'cp' on all + other systems + -Tested projects on Xcode 3; everything working correctly + -Modified SDL2main project to use the dummy main for macosx + -Changed the convenience scripts on macosx to .command files for the ability + to conveniently double-click-execute them like an application or windows batch + file + +Changes as of 07/17/2013: + -Tested that the generated Xcode 3 projects correctly work as expected + -Implemented a new backend system for defining projects that majorly cleans + up the syntax and eases the process of defining projects; currently only + tested with VS2010 on Windows. + +Changes as of 07/09/2013-07/10/2013: + -Fixed a bug that premake was causing where the mac project wouldn't execute + any of its post-build options because premake was incorrectly generating the + project in specific situations; the generated lua file now works around it + correctly + +Changes as of 07/08/2013: + -Unified SDL2.lua a bit by pulling out the source commonalities (generic + interfaces and dummy implementations) and keeping the platform-specific + implementations separate + -Converted absolute paths to relative paths where appropriate, so now + the generated VS solutions (and possibly Xcode) should be more portable + -Modified premake script to support different base locations, so now the + Visual Studio project directory structure is built within the VisualC + directory, and similarly for Xcode (better organization and separation) + -Fixed a minor bug in the cleanup action for VS2008 and VS2012 solutions + +Changes as of 07/05/2013: + -Setup proper dependencies for XCode and successfully built the library + -Ran test suites to ensure working Mac OSX binaries (64 bit, on Mac OS X 10.8 + Mountain Lion) + -Redid the entire build environment to run out of a root premake folder, + instead of separate premake folders for VisualC and Xcode + -Setup convenient scripts for both Xcode and VisualC in the generic + premake folder + -Consolidated the premake scripts into a singular script for both targets + +Changes as of 07/02/2013 & 07/03/2013: + -Finished implementing base setup for XCode + -Configured the premake projects for XCode (using a parallel directory tree + for now) + -Implemented base XCode project using premake, though it still doesn't link + properly + +Changes as of 06/30/2013 & 07/01/2013: + -Implemented release configurations for projects + -Began setting up environment for implementing the XCode projects + +Changes as of 06/29/2013: + -Implemented copying intra-solution project dependencies shared libraries to + the binary folders of other projects (such as copying SDL2.dll to subsequent + directories of applications that depend on it). + -Fixed a bug in the testscale and testrendertarget project lua files: they + were copying sample.bmp for usage, but they depended on both icon.bmp and + sample.bmp. + -Added temporary batch script to simplify the process of running through all + the currently available tests on windows. + -Ensured binary compatibility for using SDL2.dll built with manual solutions + with test suite applications built with automatic premake solution. This was + tested successfully for VS2008, VS2010, and VS2012. + -Binary compatibility has been ensured to not currently work vice versa, + that is, using hand-rolled test suite applications with a generated-built + SDL2.dll shared library. + +Changes as of 06/27/2013 & 06/28/2013: + -Added premake5-dev to the repository, though it's still called premake4.exe + and the main lua file is named similarly because it's still not officially + premake5. + -Setup generated project to nearly exactly match the flags of the manual + project. Binary compatibility has been tested for SDL2.dll built with the + manual projects against the applications built with the generated project. + All seems to work so far. Only tested on VS2010. Much more testing to + happen later. + +Changes as of 06/24/2013 & 06/25/2013: + -Implemented basic meta-meta building system, where premake4.lua now + generates a lua file and executes that to generate the project, allowing + forward compatibility for premake5 + -Began working on binary compatibility verification by testing the test + executables built by the manual VS solution using the SDL2.dll built + from the premake solution. There are some issues, but nothing crashes + that didn't crash before. + +Changes as of 06/21/2013: + -Fixed multiple linker problem by adding an exclusion filter for + src/thread/generic so that the duplicate objects wouldn't be doubly linked + -Above linker fix also fixed the execution of all VS2008 project builds. All + the projects run the same in terms of success or failure. + -Added rudimentary clean action to premake files + -Organized the project and build directory structures for the VS projects + similar to that of the manually-built VS projects (though they no longer run + out of the box, since SDL2.dll is now in a different directory; soon to be + fixed) + +Changes as of 06/20/2013: + -Implemented an optional copy table for projects that allow automatic copying + of each file in the copy table from the source directory to the destination + directory. These copy strings can actually be relative paths, as they will + be made absolute and normalized in the handler code (but not validated!) + -Implemented custom, per-project defines (needed for testgl2) + -Fixed many warnings from VS2008 project by making sure shared libraries + weren't being linked into shared library projects (such as SDLtest). + -Tested all builds on VS2008, VS2010, and VS2012. Everything works as expected + on the latter two. + +Changes as of 06/19/2013: + -Implemented all of the currently supported projects in the hand-built + Visual Studio solution, which successful building + -Updated the dependency system to handle cross-linking of projects, such as + the testing suite applications being dependent on SDL2 and SDL2main (and + some even on SDL2test, which further emphasizes the capabilities) + -Organized the folder structure to be less cluttered than before: only + premake4.lua needs to exist at the root directory + -Hardcoded the build path for all the projects to ./bin/Debug + -Implemented support for adding input library links from dependency + resolutions (for opengl in testgl2 in this case) + +Changes as of 06/18/2013: + -Implemented a dependency for handling complex building scenarios, though + it's only very simple right now + -Implemented utility depends.lua for handling dependency searching on windows + -Ported over hardcoded solution for SDL2 library to using dependency tree and + a separate lua file + -Implemented SDL2main static library, which involved more flexibility in the + existing system + +Initial: + -Built premake 4 binary and pasted it into secluded directory in SDL's build + folder for Visual Studio + -Created the initial premake script which recreated the SDL2.dll shared binary + library, as based on the manually-created SDL project \ No newline at end of file diff --git a/premake/config/SDL_config_cygwin.template.h b/premake/config/SDL_config_cygwin.template.h new file mode 100755 index 0000000000000..1beb3ae5354d7 --- /dev/null +++ b/premake/config/SDL_config_cygwin.template.h @@ -0,0 +1,173 @@ +/* include/SDL_config.h. Generated from SDL_config.h.in by configure. */ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2013 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef _SDL_config_linux_h +#define _SDL_config_linux_h + +/** + * \file SDL_config.h.in + * + * This is a set of defines to configure the SDL features + */ + +/* General platform specific identifiers */ +#include "SDL_platform.h" + +/* Make sure that this isn't included by Visual C++ */ +#ifdef _MSC_VER +#error You should run hg revert SDL_config.h +#endif + +/* C language features */ +/* #undef const */ +/* #undef inline */ +/* #undef volatile */ + +/* C datatypes */ +#define SIZEOF_VOIDP 4 +#define HAVE_GCC_ATOMICS 1 +/* #undef HAVE_GCC_SYNC_LOCK_TEST_AND_SET */ +#define HAVE_PTHREAD_SPINLOCK 1 + +/* Comment this if you want to build without any C library requirements */ +#define HAVE_LIBC 0 +#if HAVE_LIBC + +/* Useful headers */ +#define HAVE_ALLOCA_H 1 +#define HAVE_SYS_TYPES_H 1 +#define HAVE_STDIO_H 1 +#define STDC_HEADERS 1 +#define HAVE_STDLIB_H 1 +#define HAVE_STDARG_H 1 +#define HAVE_MALLOC_H 1 +#define HAVE_MEMORY_H 1 +#define HAVE_STRING_H 1 +#define HAVE_STRINGS_H 1 +#define HAVE_INTTYPES_H 1 +#define HAVE_STDINT_H 1 +#define HAVE_CTYPE_H 1 +#define HAVE_MATH_H 1 +#define HAVE_ICONV_H 1 +#define HAVE_SIGNAL_H 1 +/* #undef HAVE_ALTIVEC_H */ +/* #undef HAVE_PTHREAD_NP_H */ +/* #undef HAVE_LIBUDEV_H */ +#define HAVE_DBUS_DBUS_H 1 + +/* C library functions */ +#define HAVE_MALLOC 1 +#define HAVE_CALLOC 1 +#define HAVE_REALLOC 1 +#define HAVE_FREE 1 +#define HAVE_ALLOCA 1 +#ifndef __WIN32__ /* Don't use C runtime versions of these on Windows */ +#define HAVE_GETENV 1 +#define HAVE_SETENV 1 +#define HAVE_PUTENV 1 +#define HAVE_UNSETENV 1 +#endif +#define HAVE_QSORT 1 +#define HAVE_ABS 1 +#define HAVE_BCOPY 1 +#define HAVE_MEMSET 1 +#define HAVE_MEMCPY 1 +#define HAVE_MEMMOVE 1 +#define HAVE_MEMCMP 1 +#define HAVE_STRLEN 1 +/* #undef HAVE_STRLCPY */ +/* #undef HAVE_STRLCAT */ +#define HAVE_STRDUP 1 +/* #undef HAVE__STRREV */ +/* #undef HAVE__STRUPR */ +/* #undef HAVE__STRLWR */ +/* #undef HAVE_INDEX */ +/* #undef HAVE_RINDEX */ +#define HAVE_STRCHR 1 +#define HAVE_STRRCHR 1 +#define HAVE_STRSTR 1 +/* #undef HAVE_ITOA */ +/* #undef HAVE__LTOA */ +/* #undef HAVE__UITOA */ +/* #undef HAVE__ULTOA */ +#define HAVE_STRTOL 1 +#define HAVE_STRTOUL 1 +/* #undef HAVE__I64TOA */ +/* #undef HAVE__UI64TOA */ +#define HAVE_STRTOLL 1 +#define HAVE_STRTOULL 1 +#define HAVE_STRTOD 1 +#define HAVE_ATOI 1 +#define HAVE_ATOF 1 +#define HAVE_STRCMP 1 +#define HAVE_STRNCMP 1 +/* #undef HAVE__STRICMP */ +#define HAVE_STRCASECMP 1 +/* #undef HAVE__STRNICMP */ +#define HAVE_STRNCASECMP 1 +#define HAVE_SSCANF 1 +#define HAVE_SNPRINTF 1 +#define HAVE_VSNPRINTF 1 +#define HAVE_M_PI /**/ +#define HAVE_ATAN 1 +#define HAVE_ATAN2 1 +#define HAVE_CEIL 1 +#define HAVE_COPYSIGN 1 +#define HAVE_COS 1 +#define HAVE_COSF 1 +#define HAVE_FABS 1 +#define HAVE_FLOOR 1 +#define HAVE_LOG 1 +#define HAVE_POW 1 +#define HAVE_SCALBN 1 +#define HAVE_SIN 1 +#define HAVE_SINF 1 +#define HAVE_SQRT 1 +#define HAVE_FSEEKO 1 +#define HAVE_FSEEKO64 1 +#define HAVE_SIGACTION 1 +#define HAVE_SA_SIGACTION 1 +#define HAVE_SETJMP 1 +#define HAVE_NANOSLEEP 1 +#define HAVE_SYSCONF 1 +/* #undef HAVE_SYSCTLBYNAME */ +#define HAVE_CLOCK_GETTIME 1 +/* #undef HAVE_GETPAGESIZE */ +#define HAVE_MPROTECT 1 +#define HAVE_ICONV 1 +#define HAVE_PTHREAD_SETNAME_NP 1 +/* #undef HAVE_PTHREAD_SET_NAME_NP */ +#define HAVE_SEM_TIMEDWAIT 1 + +#else +#define HAVE_STDARG_H 1 +#define HAVE_STDDEF_H 1 +#define HAVE_STDINT_H 1 +#endif /* HAVE_LIBC */ + +/* Paste generated code here */ + +/* Enable assembly routines */ +#define SDL_ASSEMBLY_ROUTINES 1 +/* #undef SDL_ALTIVEC_BLITTERS */ + +#endif /* _SDL_config_h */ diff --git a/premake/config/SDL_config_iphoneos.template.h b/premake/config/SDL_config_iphoneos.template.h new file mode 100755 index 0000000000000..6383cabbb84b5 --- /dev/null +++ b/premake/config/SDL_config_iphoneos.template.h @@ -0,0 +1,113 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2013 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef _SDL_config_iphoneos_h +#define _SDL_config_iphoneos_h + +#include "SDL_platform.h" + +#ifdef __LP64__ +#define SIZEOF_VOIDP 8 +#else +#define SIZEOF_VOIDP 4 +#endif + +#define HAVE_GCC_ATOMICS 1 + +#define HAVE_ALLOCA_H 1 +#define HAVE_SYS_TYPES_H 1 +#define HAVE_STDIO_H 1 +#define STDC_HEADERS 1 +#define HAVE_STRING_H 1 +#define HAVE_INTTYPES_H 1 +#define HAVE_STDINT_H 1 +#define HAVE_CTYPE_H 1 +#define HAVE_MATH_H 1 +#define HAVE_SIGNAL_H 1 + +/* C library functions */ +#define HAVE_MALLOC 1 +#define HAVE_CALLOC 1 +#define HAVE_REALLOC 1 +#define HAVE_FREE 1 +#define HAVE_ALLOCA 1 +#define HAVE_GETENV 1 +#define HAVE_SETENV 1 +#define HAVE_PUTENV 1 +#define HAVE_SETENV 1 +#define HAVE_UNSETENV 1 +#define HAVE_QSORT 1 +#define HAVE_ABS 1 +#define HAVE_BCOPY 1 +#define HAVE_MEMSET 1 +#define HAVE_MEMCPY 1 +#define HAVE_MEMMOVE 1 +#define HAVE_MEMCMP 1 +#define HAVE_STRLEN 1 +#define HAVE_STRLCPY 1 +#define HAVE_STRLCAT 1 +#define HAVE_STRDUP 1 +#define HAVE_STRCHR 1 +#define HAVE_STRRCHR 1 +#define HAVE_STRSTR 1 +#define HAVE_STRTOL 1 +#define HAVE_STRTOUL 1 +#define HAVE_STRTOLL 1 +#define HAVE_STRTOULL 1 +#define HAVE_STRTOD 1 +#define HAVE_ATOI 1 +#define HAVE_ATOF 1 +#define HAVE_STRCMP 1 +#define HAVE_STRNCMP 1 +#define HAVE_STRCASECMP 1 +#define HAVE_STRNCASECMP 1 +#define HAVE_SSCANF 1 +#define HAVE_SNPRINTF 1 +#define HAVE_VSNPRINTF 1 +#define HAVE_M_PI 1 +#define HAVE_ATAN 1 +#define HAVE_ATAN2 1 +#define HAVE_CEIL 1 +#define HAVE_COPYSIGN 1 +#define HAVE_COS 1 +#define HAVE_COSF 1 +#define HAVE_FABS 1 +#define HAVE_FLOOR 1 +#define HAVE_LOG 1 +#define HAVE_POW 1 +#define HAVE_SCALBN 1 +#define HAVE_SIN 1 +#define HAVE_SINF 1 +#define HAVE_SQRT 1 +#define HAVE_SIGACTION 1 +#define HAVE_SETJMP 1 +#define HAVE_NANOSLEEP 1 +#define HAVE_SYSCONF 1 +#define HAVE_SYSCTLBYNAME 1 + +/* Paste generated code here */ + +/* Set max recognized G-force from accelerometer + See src/joystick/uikit/SDLUIAccelerationDelegate.m for notes on why this is needed + */ +#define SDL_IPHONE_MAX_GFORCE 5.0 + +#endif /* _SDL_config_iphoneos_h */ diff --git a/premake/config/SDL_config_linux.template.h b/premake/config/SDL_config_linux.template.h new file mode 100755 index 0000000000000..5a58f7d168180 --- /dev/null +++ b/premake/config/SDL_config_linux.template.h @@ -0,0 +1,180 @@ +/* include/SDL_config.h. Generated from SDL_config.h.in by configure. */ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2013 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef _SDL_config_linux_h +#define _SDL_config_linux_h + +/** + * \file SDL_config.h.in + * + * This is a set of defines to configure the SDL features + */ + +/* General platform specific identifiers */ +#include "SDL_platform.h" + +/* Make sure that this isn't included by Visual C++ */ +#ifdef _MSC_VER +#error You should run hg revert SDL_config.h +#endif + +/* C language features */ +/* #undef const */ +/* #undef inline */ +/* #undef volatile */ + +/* C datatypes */ +#ifdef __LP64__ +#define SIZEOF_VOIDP 8 +#else +#define SIZEOF_VOIDP 4 +#endif +#define HAVE_GCC_ATOMICS 1 +/* #undef HAVE_GCC_SYNC_LOCK_TEST_AND_SET */ +#define HAVE_PTHREAD_SPINLOCK 1 + +/* Comment this if you want to build without any C library requirements */ +#define HAVE_LIBC 1 +#if HAVE_LIBC + +/* Useful headers */ +#define HAVE_ALLOCA_H 1 +#define HAVE_SYS_TYPES_H 1 +#define HAVE_STDIO_H 1 +#define STDC_HEADERS 1 +#define HAVE_STDLIB_H 1 +#define HAVE_STDARG_H 1 +#define HAVE_MALLOC_H 1 +#define HAVE_MEMORY_H 1 +#define HAVE_STRING_H 1 +#define HAVE_STRINGS_H 1 +#define HAVE_INTTYPES_H 1 +#define HAVE_STDINT_H 1 +#define HAVE_CTYPE_H 1 +#define HAVE_MATH_H 1 +#define HAVE_ICONV_H 1 +#define HAVE_SIGNAL_H 1 +/* #undef HAVE_ALTIVEC_H */ +/* #undef HAVE_PTHREAD_NP_H */ +/* #undef HAVE_LIBUDEV_H */ +#define HAVE_DBUS_DBUS_H 1 + +/* C library functions */ +#define HAVE_MALLOC 1 +#define HAVE_CALLOC 1 +#define HAVE_REALLOC 1 +#define HAVE_FREE 1 +#define HAVE_ALLOCA 1 +#ifndef __WIN32__ /* Don't use C runtime versions of these on Windows */ +#define HAVE_GETENV 1 +#define HAVE_SETENV 1 +#define HAVE_PUTENV 1 +#define HAVE_UNSETENV 1 +#endif +#define HAVE_QSORT 1 +#define HAVE_ABS 1 +#define HAVE_BCOPY 1 +#define HAVE_MEMSET 1 +#define HAVE_MEMCPY 1 +#define HAVE_MEMMOVE 1 +#define HAVE_MEMCMP 1 +#define HAVE_STRLEN 1 +/* #undef HAVE_STRLCPY */ +/* #undef HAVE_STRLCAT */ +#define HAVE_STRDUP 1 +/* #undef HAVE__STRREV */ +/* #undef HAVE__STRUPR */ +/* #undef HAVE__STRLWR */ +/* #undef HAVE_INDEX */ +/* #undef HAVE_RINDEX */ +#define HAVE_STRCHR 1 +#define HAVE_STRRCHR 1 +#define HAVE_STRSTR 1 +/* #undef HAVE_ITOA */ +/* #undef HAVE__LTOA */ +/* #undef HAVE__UITOA */ +/* #undef HAVE__ULTOA */ +#define HAVE_STRTOL 1 +#define HAVE_STRTOUL 1 +/* #undef HAVE__I64TOA */ +/* #undef HAVE__UI64TOA */ +#define HAVE_STRTOLL 1 +#define HAVE_STRTOULL 1 +#define HAVE_STRTOD 1 +#define HAVE_ATOI 1 +#define HAVE_ATOF 1 +#define HAVE_STRCMP 1 +#define HAVE_STRNCMP 1 +/* #undef HAVE__STRICMP */ +#define HAVE_STRCASECMP 1 +/* #undef HAVE__STRNICMP */ +#define HAVE_STRNCASECMP 1 +#define HAVE_SSCANF 1 +#define HAVE_SNPRINTF 1 +#define HAVE_VSNPRINTF 1 +#define HAVE_M_PI /**/ +#define HAVE_ATAN 1 +#define HAVE_ATAN2 1 +#define HAVE_CEIL 1 +#define HAVE_COPYSIGN 1 +#define HAVE_COS 1 +#define HAVE_COSF 1 +#define HAVE_FABS 1 +#define HAVE_FLOOR 1 +#define HAVE_LOG 1 +#define HAVE_POW 1 +#define HAVE_SCALBN 1 +#define HAVE_SIN 1 +#define HAVE_SINF 1 +#define HAVE_SQRT 1 +#define HAVE_FSEEKO 1 +#define HAVE_FSEEKO64 1 +#define HAVE_SIGACTION 1 +#define HAVE_SA_SIGACTION 1 +#define HAVE_SETJMP 1 +#define HAVE_NANOSLEEP 1 +#define HAVE_SYSCONF 1 +/* #undef HAVE_SYSCTLBYNAME */ +#define HAVE_CLOCK_GETTIME 1 +/* #undef HAVE_GETPAGESIZE */ +#define HAVE_MPROTECT 1 +#define HAVE_ICONV 1 +#define HAVE_PTHREAD_SETNAME_NP 1 +/* #undef HAVE_PTHREAD_SET_NAME_NP */ +#define HAVE_SEM_TIMEDWAIT 1 + +#else +#define HAVE_STDARG_H 1 +#define HAVE_STDDEF_H 1 +#define HAVE_STDINT_H 1 +#endif /* HAVE_LIBC */ + +/* SDL internal assertion support */ +/* #undef SDL_DEFAULT_ASSERT_LEVEL */ + +/* Paste generated code here */ + +/* Enable assembly routines */ +#define SDL_ASSEMBLY_ROUTINES 1 +/* #undef SDL_ALTIVEC_BLITTERS */ + +#endif /* _SDL_config_h */ diff --git a/premake/config/SDL_config_macosx.template.h b/premake/config/SDL_config_macosx.template.h new file mode 100755 index 0000000000000..a22843f5565e8 --- /dev/null +++ b/premake/config/SDL_config_macosx.template.h @@ -0,0 +1,161 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2013 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef _SDL_config_macosx_h +#define _SDL_config_macosx_h + +#include "SDL_platform.h" + +/* This gets us MAC_OS_X_VERSION_MIN_REQUIRED... */ +#include + +/* This is a set of defines to configure the SDL features */ + +#ifdef __LP64__ + #define SIZEOF_VOIDP 8 +#else + #define SIZEOF_VOIDP 4 +#endif + +/* Useful headers */ +/* If we specified an SDK or have a post-PowerPC chip, then alloca.h exists. */ +#if ( (MAC_OS_X_VERSION_MIN_REQUIRED >= 1030) || (!defined(__POWERPC__)) ) +#define HAVE_ALLOCA_H 1 +#endif +#define HAVE_SYS_TYPES_H 1 +#define HAVE_STDIO_H 1 +#define STDC_HEADERS 1 +#define HAVE_STRING_H 1 +#define HAVE_INTTYPES_H 1 +#define HAVE_STDINT_H 1 +#define HAVE_CTYPE_H 1 +#define HAVE_MATH_H 1 +#define HAVE_SIGNAL_H 1 + +/* C library functions */ +#define HAVE_MALLOC 1 +#define HAVE_CALLOC 1 +#define HAVE_REALLOC 1 +#define HAVE_FREE 1 +#define HAVE_ALLOCA 1 +#define HAVE_GETENV 1 +#define HAVE_SETENV 1 +#define HAVE_PUTENV 1 +#define HAVE_UNSETENV 1 +#define HAVE_QSORT 1 +#define HAVE_ABS 1 +#define HAVE_BCOPY 1 +#define HAVE_MEMSET 1 +#define HAVE_MEMCPY 1 +#define HAVE_MEMMOVE 1 +#define HAVE_MEMCMP 1 +#define HAVE_STRLEN 1 +#define HAVE_STRLCPY 1 +#define HAVE_STRLCAT 1 +#define HAVE_STRDUP 1 +#define HAVE_STRCHR 1 +#define HAVE_STRRCHR 1 +#define HAVE_STRSTR 1 +#define HAVE_STRTOL 1 +#define HAVE_STRTOUL 1 +#define HAVE_STRTOLL 1 +#define HAVE_STRTOULL 1 +#define HAVE_STRTOD 1 +#define HAVE_ATOI 1 +#define HAVE_ATOF 1 +#define HAVE_STRCMP 1 +#define HAVE_STRNCMP 1 +#define HAVE_STRCASECMP 1 +#define HAVE_STRNCASECMP 1 +#define HAVE_SSCANF 1 +#define HAVE_SNPRINTF 1 +#define HAVE_VSNPRINTF 1 +#define HAVE_CEIL 1 +#define HAVE_COPYSIGN 1 +#define HAVE_COS 1 +#define HAVE_COSF 1 +#define HAVE_FABS 1 +#define HAVE_FLOOR 1 +#define HAVE_LOG 1 +#define HAVE_POW 1 +#define HAVE_SCALBN 1 +#define HAVE_SIN 1 +#define HAVE_SINF 1 +#define HAVE_SQRT 1 +#define HAVE_SIGACTION 1 +#define HAVE_SETJMP 1 +#define HAVE_NANOSLEEP 1 +#define HAVE_SYSCONF 1 +#define HAVE_SYSCTLBYNAME 1 +#define HAVE_ATAN 1 +#define HAVE_ATAN2 1 + +/* Paste generated code here */ + +/* Enable various video drivers */ +#undef SDL_VIDEO_DRIVER_X11 +#define SDL_VIDEO_DRIVER_X11_DYNAMIC "/usr/X11R6/lib/libX11.6.dylib" +#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT "/usr/X11R6/lib/libXext.6.dylib" +#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XINERAMA "/usr/X11R6/lib/libXinerama.1.dylib" +#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT2 "/usr/X11R6/lib/libXi.6.dylib" +#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR "/usr/X11R6/lib/libXrandr.2.dylib" +#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS "/usr/X11R6/lib/libXss.1.dylib" +#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XVIDMODE "/usr/X11R6/lib/libXxf86vm.1.dylib" +#define SDL_VIDEO_DRIVER_X11_XINERAMA 1 +#define SDL_VIDEO_DRIVER_X11_XRANDR 1 +#define SDL_VIDEO_DRIVER_X11_XSCRNSAVER 1 +#define SDL_VIDEO_DRIVER_X11_XSHAPE 1 +#define SDL_VIDEO_DRIVER_X11_XVIDMODE 1 +#define SDL_VIDEO_DRIVER_X11_HAS_XKBKEYCODETOKEYSYM 1 + +#ifdef MAC_OS_X_VERSION_10_8 +/* + * No matter the versions targeted, this is the 10.8 or later SDK, so you have + * to use the external Xquartz, which is a more modern Xlib. Previous SDKs + * used an older Xlib. + */ +#define SDL_VIDEO_DRIVER_X11_XINPUT2 1 +#define SDL_VIDEO_DRIVER_X11_SUPPORTS_GENERIC_EVENTS 1 +#define SDL_VIDEO_DRIVER_X11_CONST_PARAM_XEXTADDDISPLAY 1 +#endif + +#ifndef SDL_VIDEO_RENDER_OGL +#define SDL_VIDEO_RENDER_OGL 1 +#endif + +/* Enable OpenGL support */ +#ifndef SDL_VIDEO_OPENGL +#define SDL_VIDEO_OPENGL 1 +#endif +#ifndef SDL_VIDEO_OPENGL_CGL +#define SDL_VIDEO_OPENGL_CGL 1 +#endif +#ifndef SDL_VIDEO_OPENGL_GLX +#define SDL_VIDEO_OPENGL_GLX 1 +#endif + +/* Enable assembly routines */ +#define SDL_ASSEMBLY_ROUTINES 1 +#ifdef __ppc__ +#define SDL_ALTIVEC_BLITTERS 1 +#endif + +#endif /* _SDL_config_macosx_h */ diff --git a/premake/config/SDL_config_minimal.template.h b/premake/config/SDL_config_minimal.template.h new file mode 100755 index 0000000000000..fe3cebc7edede --- /dev/null +++ b/premake/config/SDL_config_minimal.template.h @@ -0,0 +1,78 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2013 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef _SDL_config_minimal_h +#define _SDL_config_minimal_h + +#include "SDL_platform.h" + +/** + * \file SDL_config_minimal.h + * + * This is the minimal configuration that can be used to build SDL. + */ + +#define HAVE_STDARG_H 1 +#define HAVE_STDDEF_H 1 + +/* Most everything except Visual Studio 2008 and earlier has stdint.h now */ +#if defined(_MSC_VER) && (_MSC_VER < 1600) +/* Here are some reasonable defaults */ +typedef unsigned int size_t; +typedef signed char int8_t; +typedef unsigned char uint8_t; +typedef signed short int16_t; +typedef unsigned short uint16_t; +typedef signed int int32_t; +typedef unsigned int uint32_t; +typedef signed long long int64_t; +typedef unsigned long long uint64_t; +typedef unsigned long uintptr_t; +#else +#define HAVE_STDINT_H 1 +#endif /* Visual Studio 2008 */ + +#ifdef __GNUC__ +#define HAVE_GCC_SYNC_LOCK_TEST_AND_SET 1 +#endif + +/* Enable the dummy audio driver (src/audio/dummy/\*.c) */ +#define SDL_AUDIO_DRIVER_DUMMY 1 + +/* Enable the stub joystick driver (src/joystick/dummy/\*.c) */ +#define SDL_JOYSTICK_DISABLED 1 + +/* Enable the stub haptic driver (src/haptic/dummy/\*.c) */ +#define SDL_HAPTIC_DISABLED 1 + +/* Enable the stub shared object loader (src/loadso/dummy/\*.c) */ +#define SDL_LOADSO_DISABLED 1 + +/* Enable the stub thread support (src/thread/generic/\*.c) */ +#define SDL_THREADS_DISABLED 1 + +/* Enable the stub timer support (src/timer/dummy/\*.c) */ +#define SDL_TIMERS_DISABLED 1 + +/* Enable the dummy video driver (src/video/dummy/\*.c) */ +#define SDL_VIDEO_DRIVER_DUMMY 1 + +#endif /* _SDL_config_minimal_h */ diff --git a/premake/config/SDL_config_windows.template.h b/premake/config/SDL_config_windows.template.h new file mode 100755 index 0000000000000..915ac89d21681 --- /dev/null +++ b/premake/config/SDL_config_windows.template.h @@ -0,0 +1,149 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2013 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef _SDL_config_windows_h +#define _SDL_config_windows_h + +#include "SDL_platform.h" + +/* This is a set of defines to configure the SDL features */ + +#if !defined(_STDINT_H_) && (!defined(HAVE_STDINT_H) || !_HAVE_STDINT_H) +#if defined(__GNUC__) || defined(__DMC__) || defined(__WATCOMC__) +#define HAVE_STDINT_H 1 +#elif defined(_MSC_VER) +typedef signed __int8 int8_t; +typedef unsigned __int8 uint8_t; +typedef signed __int16 int16_t; +typedef unsigned __int16 uint16_t; +typedef signed __int32 int32_t; +typedef unsigned __int32 uint32_t; +typedef signed __int64 int64_t; +typedef unsigned __int64 uint64_t; +#ifndef _UINTPTR_T_DEFINED +#ifdef _WIN64 +typedef unsigned __int64 uintptr_t; +#else +typedef unsigned int uintptr_t; +#endif +#define _UINTPTR_T_DEFINED +#endif +/* Older Visual C++ headers don't have the Win64-compatible typedefs... */ +#if ((_MSC_VER <= 1200) && (!defined(DWORD_PTR))) +#define DWORD_PTR DWORD +#endif +#if ((_MSC_VER <= 1200) && (!defined(LONG_PTR))) +#define LONG_PTR LONG +#endif +#else /* !__GNUC__ && !_MSC_VER */ +typedef signed char int8_t; +typedef unsigned char uint8_t; +typedef signed short int16_t; +typedef unsigned short uint16_t; +typedef signed int int32_t; +typedef unsigned int uint32_t; +typedef signed long long int64_t; +typedef unsigned long long uint64_t; +#ifndef _SIZE_T_DEFINED_ +#define _SIZE_T_DEFINED_ +typedef unsigned int size_t; +#endif +typedef unsigned int uintptr_t; +#endif /* __GNUC__ || _MSC_VER */ +#endif /* !_STDINT_H_ && !HAVE_STDINT_H */ + +#ifdef _WIN64 +# define SIZEOF_VOIDP 8 +#else +# define SIZEOF_VOIDP 4 +#endif + +/* This is disabled by default to avoid C runtime dependencies and manifest requirements */ +#ifdef HAVE_LIBC +/* Useful headers */ +#define HAVE_STDIO_H 1 +#define STDC_HEADERS 1 +#define HAVE_STRING_H 1 +#define HAVE_CTYPE_H 1 +#define HAVE_MATH_H 1 +#define HAVE_SIGNAL_H 1 + +/* C library functions */ +#define HAVE_MALLOC 1 +#define HAVE_CALLOC 1 +#define HAVE_REALLOC 1 +#define HAVE_FREE 1 +#define HAVE_ALLOCA 1 +#define HAVE_QSORT 1 +#define HAVE_ABS 1 +#define HAVE_MEMSET 1 +#define HAVE_MEMCPY 1 +#define HAVE_MEMMOVE 1 +#define HAVE_MEMCMP 1 +#define HAVE_STRLEN 1 +#define HAVE__STRREV 1 +#define HAVE__STRUPR 1 +#define HAVE__STRLWR 1 +#define HAVE_STRCHR 1 +#define HAVE_STRRCHR 1 +#define HAVE_STRSTR 1 +#define HAVE_ITOA 1 +#define HAVE__LTOA 1 +#define HAVE__ULTOA 1 +#define HAVE_STRTOL 1 +#define HAVE_STRTOUL 1 +#define HAVE_STRTOLL 1 +#define HAVE_STRTOD 1 +#define HAVE_ATOI 1 +#define HAVE_ATOF 1 +#define HAVE_STRCMP 1 +#define HAVE_STRNCMP 1 +#define HAVE__STRICMP 1 +#define HAVE__STRNICMP 1 +#define HAVE_SSCANF 1 +#define HAVE_M_PI 1 +#define HAVE_ATAN 1 +#define HAVE_ATAN2 1 +#define HAVE_CEIL 1 +#define HAVE_COPYSIGN 1 +#define HAVE_COS 1 +#define HAVE_COSF 1 +#define HAVE_FABS 1 +#define HAVE_FLOOR 1 +#define HAVE_LOG 1 +#define HAVE_POW 1 +#define HAVE_SCALBN 1 +#define HAVE_SIN 1 +#define HAVE_SINF 1 +#define HAVE_SQRT 1 +#else +#define HAVE_STDARG_H 1 +#define HAVE_STDDEF_H 1 +#endif + +/* Paste generated code here */ + +/* Enable assembly routines (Win64 doesn't have inline asm) */ +#ifndef _WIN64 +#define SDL_ASSEMBLY_ROUTINES 1 +#endif + +#endif /* _SDL_config_windows_h */ diff --git a/premake/patches/709.patch b/premake/patches/709.patch new file mode 100755 index 0000000000000..6e882f4ff2230 --- /dev/null +++ b/premake/patches/709.patch @@ -0,0 +1,29 @@ +# HG changeset patch +# User Ben Henning +# Date 1375901577 25200 +# Wed Aug 07 11:52:57 2013 -0700 +# Node ID 1d820b5754a9bc79b5c4c6a26d1acc170ebf4784 +# Parent 0af3bf0e3755477eafb247935db77b2765df2d19 +Updated the GCC make option to handle its linker cmomand generation a bit +differently. Rather than putting the sibling libraries before the linker +flags, they are put after. This allows for some extra flexibility in putting +custom linker libraries before the list of sibling libraries, in case one of +them depends on it. + +diff --git a/src/actions/make/make_cpp.lua b/src/actions/make/make_cpp.lua +--- a/src/actions/make/make_cpp.lua ++++ b/src/actions/make/make_cpp.lua +@@ -267,11 +267,12 @@ + _p(' LINKCMD = $(AR) -rcs $(TARGET) $(OBJECTS)') + end + else ++ -- Ben: changed order of ALL_LDFLAGS and LIBS (switched them) + -- this was $(TARGET) $(LDFLAGS) $(OBJECTS) + -- but had trouble linking to certain static libs so $(OBJECTS) moved up + -- then $(LDFLAGS) moved to end + -- https://sourceforge.net/tracker/?func=detail&aid=3430158&group_id=71616&atid=531880 +- _p(' LINKCMD = $(%s) -o $(TARGET) $(OBJECTS) $(RESOURCES) $(ARCH) $(LIBS) $(ALL_LDFLAGS)', iif(cfg.language == "C", "CC", "CXX")) ++ _p(' LINKCMD = $(%s) -o $(TARGET) $(OBJECTS) $(RESOURCES) $(ARCH) $(ALL_LDFLAGS) $(LIBS)', iif(cfg.language == "C", "CC", "CXX")) + end + end + diff --git a/premake/patches/711.patch b/premake/patches/711.patch new file mode 100755 index 0000000000000..6f33a5a2f6ce7 --- /dev/null +++ b/premake/patches/711.patch @@ -0,0 +1,30 @@ +# HG changeset patch +# User Ben Henning +# Date 1376453463 25200 +# Tue Aug 13 21:11:03 2013 -0700 +# Node ID a5f8b4f709722222e02fa481873d76ad25255e09 +# Parent 8b24d45e6a5d717876a7b32b64e99043c95328e5 +Implemented Xcode recognizing bitmap and wave files as resources, plus properly +set their types recognizable by Xcode itself. + +diff --git a/src/actions/xcode/xcode_common.lua b/src/actions/xcode/xcode_common.lua +--- a/src/actions/xcode/xcode_common.lua ++++ b/src/actions/xcode/xcode_common.lua +@@ -32,6 +32,8 @@ + [".nib"] = "Resources", + [".xib"] = "Resources", + [".icns"] = "Resources", ++ [".bmp"] = "Resources", ++ [".wav"] = "Resources", + } + return categories[path.getextension(node.name)] + end +@@ -85,6 +87,8 @@ + [".strings"] = "text.plist.strings", + [".xib"] = "file.xib", + [".icns"] = "image.icns", ++ [".bmp"] = "image.bmp", ++ [".wav"] = "audio.wav", + } + return types[path.getextension(node.path)] or "text" + end diff --git a/premake/patches/712.patch b/premake/patches/712.patch new file mode 100755 index 0000000000000..c91602831a2a2 --- /dev/null +++ b/premake/patches/712.patch @@ -0,0 +1,58 @@ +# HG changeset patch +# User Ben Henning +# Date 1376509869 25200 +# Wed Aug 14 12:51:09 2013 -0700 +# Node ID e8558df4fbdb173a2b9ed0d354d6c3e76b376698 +# Parent a5f8b4f709722222e02fa481873d76ad25255e09 +Fixed a bug in Xcode project generation wherein pre/prelink/post-build commands +would not be properly executed if the premake script only had the commands +in configuration blocks, rather than in the project block. According to the +website, these commands can exist in both blocks and the Xcode script does +properly generate the commands, it just doesn't add a single line which allows +Xcode to execute the commands at the correct stage. This patch fixes those +issues. + +diff --git a/src/actions/xcode/xcode_common.lua b/src/actions/xcode/xcode_common.lua +--- a/src/actions/xcode/xcode_common.lua ++++ b/src/actions/xcode/xcode_common.lua +@@ -432,20 +432,37 @@ + for _, node in ipairs(tr.products.children) do + local name = tr.project.name + ++ -- This function checks whether there are build commands of a specific ++ -- type to be executed; they will be generated correctly, but the project ++ -- commands will not contain any per-configuration commands, so the logic ++ -- has to be extended a bit to account for that. ++ local function hasBuildCommands(which) ++ -- standard check...this is what existed before ++ if #tr.project[which] > 0 then ++ return true ++ end ++ -- what if there are no project-level commands? check configs... ++ for _, cfg in ipairs(tr.configs) do ++ if #cfg[which] > 0 then ++ return true ++ end ++ end ++ end ++ + _p(2,'%s /* %s */ = {', node.targetid, name) + _p(3,'isa = PBXNativeTarget;') + _p(3,'buildConfigurationList = %s /* Build configuration list for PBXNativeTarget "%s" */;', node.cfgsection, name) + _p(3,'buildPhases = (') +- if #tr.project.prebuildcommands > 0 then ++ if hasBuildCommands('prebuildcommands') then + _p(4,'9607AE1010C857E500CD1376 /* Prebuild */,') + end + _p(4,'%s /* Resources */,', node.resstageid) + _p(4,'%s /* Sources */,', node.sourcesid) +- if #tr.project.prelinkcommands > 0 then ++ if hasBuildCommands('prelinkcommands') then + _p(4,'9607AE3510C85E7E00CD1376 /* Prelink */,') + end + _p(4,'%s /* Frameworks */,', node.fxstageid) +- if #tr.project.postbuildcommands > 0 then ++ if hasBuildCommands('postbuildcommands') then + _p(4,'9607AE3710C85E8F00CD1376 /* Postbuild */,') + end + _p(3,');') diff --git a/premake/patches/713.patch b/premake/patches/713.patch new file mode 100755 index 0000000000000..2d53abdc4be91 --- /dev/null +++ b/premake/patches/713.patch @@ -0,0 +1,64 @@ +# HG changeset patch +# User Ben Henning +# Date 1376606083 25200 +# Thu Aug 15 15:34:43 2013 -0700 +# Node ID 8c9cd352c70012a64779356bff3c81998c3fb6a0 +# Parent e8558df4fbdb173a2b9ed0d354d6c3e76b376698 +Implemented the option to set custom source trees for Xcode frameworks (links) +using Visual Studio-esque variables, such as "$(SDKROOT)/OpenGLES.framework". + +diff --git a/src/actions/xcode/xcode_common.lua b/src/actions/xcode/xcode_common.lua +--- a/src/actions/xcode/xcode_common.lua ++++ b/src/actions/xcode/xcode_common.lua +@@ -318,18 +318,36 @@ + local pth, src + if xcode.isframework(node.path) then + --respect user supplied paths +- if string.find(node.path,'/') then +- if string.find(node.path,'^%.')then ++ -- look for special variable-starting paths for different sources ++ local nodePath = node.path ++ local _, matchEnd, variable = string.find(nodePath, "^%$%((.+)%)/") ++ if variable then ++ -- by skipping the last '/' we support the same absolute/relative ++ -- paths as before ++ nodePath = string.sub(nodePath, matchEnd + 1) ++ end ++ if string.find(nodePath,'/') then ++ if string.find(nodePath,'^%.')then + error('relative paths are not currently supported for frameworks') + end +- pth = node.path ++ pth = nodePath + else +- pth = "/System/Library/Frameworks/" .. node.path ++ pth = "/System/Library/Frameworks/" .. nodePath + end +- src = "absolute" ++ -- if it starts with a variable, use that as the src instead ++ if variable then ++ src = variable ++ -- if we are using a different source tree, it has to be relative ++ -- to that source tree, so get rid of any leading '/' ++ if string.find(pth, '^/') then ++ pth = string.sub(pth, 2) ++ end ++ else ++ src = "" ++ end + else + -- something else; probably a source code file +- src = "group" ++ src = "" + + -- if the parent node is virtual, it won't have a local path + -- of its own; need to use full relative path from project +@@ -340,7 +358,7 @@ + end + end + +- _p(2,'%s /* %s */ = {isa = PBXFileReference; lastKnownFileType = %s; name = "%s"; path = "%s"; sourceTree = "<%s>"; };', ++ _p(2,'%s /* %s */ = {isa = PBXFileReference; lastKnownFileType = %s; name = "%s"; path = "%s"; sourceTree = "%s"; };', + node.id, node.name, xcode.getfiletype(node), node.name, pth, src) + end + end diff --git a/premake/patches/iOS.patch b/premake/patches/iOS.patch new file mode 100755 index 0000000000000..ecaf04f4eef00 --- /dev/null +++ b/premake/patches/iOS.patch @@ -0,0 +1,71 @@ +# HG changeset patch +# User Guido Lorenz +# Date 1314134634 -7200 +# Node ID 5552b57a6b3e541edac2cf0ef3f66a361e9c774e +# Parent 60bda91095e1b823134fc7341e2c34ca7c198341 +Added iOS platform (Xcode only). + +diff -r 60bda91095e1 -r 5552b57a6b3e src/actions/xcode/_xcode.lua +--- a/src/actions/xcode/_xcode.lua Fri Aug 19 08:58:23 2011 -0400 ++++ b/src/actions/xcode/_xcode.lua Tue Aug 23 23:23:54 2011 +0200 +@@ -28,6 +28,7 @@ + Universal32 = "32-bit Universal", + Universal64 = "64-bit Universal", + Universal = "Universal", ++ iOS = "iOS", + }, + + default_platform = "Universal", +@@ -79,6 +80,7 @@ + Universal32 = "32-bit Universal", + Universal64 = "64-bit Universal", + Universal = "Universal", ++ iOS = "iOS", + }, + + default_platform = "Universal", +diff -r 60bda91095e1 -r 5552b57a6b3e src/actions/xcode/xcode_common.lua +--- a/src/actions/xcode/xcode_common.lua Fri Aug 19 08:58:23 2011 -0400 ++++ b/src/actions/xcode/xcode_common.lua Tue Aug 23 23:23:54 2011 +0200 +@@ -724,9 +724,15 @@ + Universal32 = "$(ARCHS_STANDARD_32_BIT)", + Universal64 = "$(ARCHS_STANDARD_64_BIT)", + Universal = "$(ARCHS_STANDARD_32_64_BIT)", ++ iOS = "$(ARCHS_UNIVERSAL_IPHONE_OS)", + } + _p(4,'ARCHS = "%s";', archs[cfg.platform]) + ++ if cfg.platform == "iOS" then ++ _p(4,'SDKROOT = %s;', "iphoneos") ++ _p(4,'CODE_SIGN_IDENTITY = "%s";', "iPhone Developer") ++ end ++ + local targetdir = path.getdirectory(cfg.buildtarget.bundlepath) + if targetdir ~= "." then + _p(4,'CONFIGURATION_BUILD_DIR = "$(SYMROOT)";'); +diff -r 60bda91095e1 -r 5552b57a6b3e src/base/cmdline.lua +--- a/src/base/cmdline.lua Fri Aug 19 08:58:23 2011 -0400 ++++ b/src/base/cmdline.lua Tue Aug 23 23:23:54 2011 +0200 +@@ -71,6 +71,7 @@ + { "universal", "Mac OS X Universal, 32- and 64-bit" }, + { "universal32", "Mac OS X Universal, 32-bit only" }, + { "universal64", "Mac OS X Universal, 64-bit only" }, ++ { "ios", "iOS" }, + { "ps3", "Playstation 3 (experimental)" }, + { "xbox360", "Xbox 360 (experimental)" }, + } +diff -r 60bda91095e1 -r 5552b57a6b3e src/base/globals.lua +--- a/src/base/globals.lua Fri Aug 19 08:58:23 2011 -0400 ++++ b/src/base/globals.lua Tue Aug 23 23:23:54 2011 +0200 +@@ -38,6 +38,11 @@ + { + cfgsuffix = "univ64", + }, ++ iOS = ++ { ++ cfgsuffix = "ios", ++ iscrosscompiler = true, ++ }, + PS3 = + { + cfgsuffix = "ps3", diff --git a/premake/patches/premake.patches.txt b/premake/patches/premake.patches.txt new file mode 100755 index 0000000000000..308d7d4ed47ae --- /dev/null +++ b/premake/patches/premake.patches.txt @@ -0,0 +1,26 @@ +The patches in this directory are targeted to the premake4 stable branch, based +on the date of these files and the repository. + +1. 709.patch: this patch corrects the linking order for generated GNU makefiles. + More information on this patch can be found at: + https://sourceforge.net/p/premake/bugs/279/ +2. iOS.patch: this patch adds a iOS as a platform option for premake, allowing + for potential iOS Xcode project generation. +3. 711.patch: this patch adds support for Xcode recognizing files added to + Xcode projects with the extensions of .bmp or .wav as resource files with + the respective file types of image and audio. This is needed to properly + bundle the Xcode-iOS resources with the app package. See the following for + more information: + https://sourceforge.net/p/premake/patches/165/ +4. 712.patch: this patch fixes an issue in Xcode that prevents post-build + commands from working for multiple configurations. This is why I had to have + debug and release configurations disabled for so long. They are now reenabled + and should be working fine. For more information: + https://sourceforge.net/p/premake/bugs/280/ +5. 713.patch: this patch allows custom source trees to be set in Xcode links + using variables similar to Visual Studio variables. This is necessary to + properly link to frameworks for iOS projects. For more information: + https://sourceforge.net/p/premake/patches/166/ + +The repository containing these changes can be found at: +https://bitbucket.org/gsocben/premake-stable-sdlgsoc2013 \ No newline at end of file diff --git a/premake/premake4.lua b/premake/premake4.lua new file mode 100755 index 0000000000000..9fedcdc181ed0 --- /dev/null +++ b/premake/premake4.lua @@ -0,0 +1,482 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +premake4.lua + + This script sets up the entire premake system. It's responsible for executing + all of the definition scripts for the SDL2 library and the entire test suite, + or demos for the iOS platform. It handles each specific platform and uses the + setup state to generate both the configuration header file needed to build + SDL2 and the premake lua script to generate the target project files. +]] + +-- string utility functions +dofile "util/sdl_string.lua" +-- utility file wrapper for some useful functions +dofile "util/sdl_file.lua" +-- system for defining SDL projects +dofile "util/sdl_projects.lua" +-- offers a utility function for finding dependencies specifically on windows +dofile "util/sdl_depends.lua" +-- system for generating a *config.h file used to build the SDL2 library +dofile "util/sdl_gen_config.lua" +-- functions to handle complicated dependency checks using CMake-esque functions +dofile "util/sdl_check_compile.lua" +-- a list of dependency functions for the SDL2 project and any other projects +dofile "util/sdl_dependency_checkers.lua" + +-- the following are various options for configuring the meta-build system +newoption { + trigger = "to", + value = "path", + description = "Set the base output directory for the generated and executed lua file." +} + +newoption { + trigger = "mingw", + description = "Runs the premake generation script targeted to MinGW." +} + +newoption { + trigger = "cygwin", + description = "Runs the premake generation script targeted to Cygwin." +} + +newoption { + trigger = "ios", + description = "Runs the premake generation script targeted to iOS." +} + +-- determine the localized destination path +local baseLoc = "./" +if _OPTIONS["to"] then + baseLoc = _OPTIONS["to"]:gsub("\\", "/") +end + +local deps = SDL_getDependencies() +for _,v in ipairs(deps) do + newoption { + trigger = v:lower(), + description = "Force on the dependency: " .. v + } +end + +-- clean action +if _ACTION == "clean" then + -- this is kept the way it is because premake's default method of cleaning the + -- build tree is not very good standalone, whereas the following correctly + -- cleans every build option + print("Cleaning the build environment...") + os.rmdir(baseLoc .. "/SDL2") + os.rmdir(baseLoc .. "/SDL2main") + os.rmdir(baseLoc .. "/SDL2test") + os.rmdir(baseLoc .. "/tests") + os.rmdir(baseLoc .. "/Demos") + os.rmdir(baseLoc .. "/ipch") -- sometimes shows up + os.remove(baseLoc .. "/SDL.sln") + os.remove(baseLoc .. "/SDL.suo") + os.remove(baseLoc .. "/SDL.v11.suo") + os.remove(baseLoc .. "/SDL.sdf") + os.remove(baseLoc .. "/SDL.ncb") + os.remove(baseLoc .. "/SDL-gen.lua") + os.remove(baseLoc .. "/SDL_config_premake.h") + os.remove(baseLoc .. "/Makefile") + os.rmdir(baseLoc .. "/SDL.xcworkspace") + os.exit() +end + +-- only run through standard execution if not in help mode +if _OPTIONS["help"] == nil then + -- load all of the project definitions + local results = os.matchfiles("projects/**.lua") + for _,dir in ipairs(results) do + dofile(dir) + end + + -- figure out which configuration template to use + local premakeConfigHeader = baseLoc .. "/SDL_config_premake.h" + -- minimal configuration is the default + local premakeTemplateHeader = "./config/SDL_config_minimal.template.h" + if SDL_getos() == "windows" or SDL_getos() == "mingw" then + premakeTemplateHeader = "./config/SDL_config_windows.template.h" + elseif SDL_getos() == "macosx" then + premakeTemplateHeader = "./config/SDL_config_macosx.template.h" + elseif SDL_getos() == "ios" then + premakeTemplateHeader = "./config/SDL_config_iphoneos.template.h" + elseif os.get() == "linux" then + premakeTemplateHeader = "./config/SDL_config_linux.template.h" + elseif SDL_getos() == "cygwin" then + premakeTemplateHeader = "./config/SDL_config_cygwin.template.h" + end + + local genFile = baseLoc .. "/SDL-gen.lua" + local file = fileopen(genFile, "wt") + print("Generating " .. genFile .. "...") + -- begin generating the config header file + startGeneration(premakeConfigHeader, premakeTemplateHeader) + + -- begin generating the actual premake script + file:print(0, "-- Premake script generated by Simple DirectMedia Layer meta-build script") + file:print(1, 'solution "SDL"') + local platforms = { } + local platformsIndexed = { } + for n,p in pairs(projects) do + if p.platforms and #p.platforms ~= 0 then + for k,v in pairs(p.platforms) do + platforms[v] = true + end + end + end + for n,v in pairs(platforms) do + platformsIndexed[#platformsIndexed + 1] = n + end + file:print(2, implode(platformsIndexed, 'platforms {', '"', '"', ', ', '}')) + file:print(2, 'configurations { "Debug", "Release" }') + for n,p in pairs(projects) do + if p.compat then + local proj = {} + if p.projectLocation ~= nil then + proj.location = p.projectLocation .. "/" .. p.name + else + proj.location = p.name .. "/" + end + proj.includedirs = { path.getrelative(baseLoc, + path.getdirectory(premakeConfigHeader)), + path.getrelative(baseLoc, "../include") } + proj.libdirs = { } + proj.files = { } + local links = { } + local dbgCopyTable = { } + local relCopyTable = { } + -- custom links that shouldn't exist... + -- (these should always happen before dependencies) + if p.customLinks ~= nil then + for k,lnk in pairs(p.customLinks) do + table.insert(links, lnk) + end + end + -- setup project dependencies + local dependencyLocs = { } + if p.projectDependencies ~= nil and #p.projectDependencies ~= 0 then + for k,projname in pairs(p.projectDependencies) do + local depproj = projects[projname] + -- validation that it exists and can be linked to + if depproj ~= nil and (depproj.kind == "SharedLib" or depproj.kind == "StaticLib") then + if depproj.kind == "SharedLib" then + local deplocation = nil + if depproj.projectLocation ~= nil then + deplocation = depproj.projectLocation .. "/" .. p.name + else + deplocation = depproj.name .. "/" + end + table.insert(dependencyLocs, { location = deplocation, name = projname }) + else -- static lib + -- we are now dependent on everything the static lib is dependent on + if depproj.customLinks ~= nil then + for k,lnk in pairs(depproj.customLinks) do + table.insert(links, lnk) + end + end + -- also include links from dependencies + for i,d in pairs(depproj.dependencyTree) do + if d.links then + for k,v in pairs(d.links) do + local propPath = v:gsub("\\", "/") + table.insert(links, propPath) + end + end + end + end + -- finally, depend on the project itself + table.insert(links, projname) + elseif depproj == nil then + print("Warning: Missing external dependency for project: ".. p.name .. + ". Be sure you setup project dependencies in a logical order.") + else + print("Warning: Cannot link " .. p.name .. " to second project " .. + projname .. " because the second project is not a library.") + end + end + end + -- iterate across all root directories, matching source directories + local dirs = createDirTable(p.sourcedir) + -- but first, handle any files specifically set in the project, rather than + -- its dependencies + -- register c and h files in this directory + if (p.files ~= nil and #p.files ~= 0) or (p.paths ~= nil and #p.paths ~= 0) then + -- handle all lists of files + if p.files ~= nil and #p.files ~= 0 then + for k,filepat in pairs(p.files) do + for k,f in pairs(os.matchfiles(p.sourcedir .. filepat)) do + table.insert(proj.files, path.getrelative(baseLoc, f)) + end + end + end -- end props files if + -- add all .c/.h files from each path + -- handle all related paths + if p.paths ~= nil and #p.paths ~= 0 then + for j,filepat in ipairs(p.paths) do + for k,f in pairs(os.matchfiles(p.sourcedir .. filepat .. "*.c")) do + table.insert(proj.files, path.getrelative(baseLoc, f)) + end + for k,f in pairs(os.matchfiles(p.sourcedir .. filepat .. "*.h")) do + table.insert(proj.files, path.getrelative(baseLoc, f)) + end + -- mac osx + for k,f in pairs(os.matchfiles(p.sourcedir .. filepat .. "*.m")) do + table.insert(proj.files, path.getrelative(baseLoc, f)) + end + end + end -- end of props paths if + end -- end of check for files/paths in main project + -- if this project has any configuration flags, add them to the current file + if p.config then + addConfig(p.config) + end + -- now, handle files and paths for dependencies + for i,props in ipairs(p.dependencyTree) do + if props.compat then + -- register c and h files in this directory + -- handle all lists of files + if props.files ~= nil and #props.files ~= 0 then + for k,filepat in pairs(props.files) do + for k,f in pairs(os.matchfiles(p.sourcedir .. filepat)) do + table.insert(proj.files, path.getrelative(baseLoc, f)) + end + end + end -- end props files if + -- add all .c/.h files from each path + -- handle all related paths + if props.paths ~= nil and #props.paths ~= 0 then + for j,filepat in ipairs(props.paths) do + for k,f in pairs(os.matchfiles(p.sourcedir .. filepat .. "*.c")) do + table.insert(proj.files, path.getrelative(baseLoc, f)) + end + for k,f in pairs(os.matchfiles(p.sourcedir .. filepat .. "*.h")) do + table.insert(proj.files, path.getrelative(baseLoc, f)) + end + -- mac osx + for k,f in pairs(os.matchfiles(p.sourcedir .. filepat .. "*.m")) do + table.insert(proj.files, path.getrelative(baseLoc, f)) + end + end + end -- end of props paths if + -- if this dependency has any special configuration flags, add 'em + if props.config then + addConfig(props.config) + end -- end of props config if check + end -- end check for compatibility + end -- end of props loop + --local debugConfig = configuration("Debug") + local debugConfig = {} + local releaseConfig = {} + debugConfig.defines = { "USING_PREMAKE_CONFIG_H", "_DEBUG" } + releaseConfig.defines = { "USING_PREMAKE_CONFIG_H", "NDEBUG" } + -- setup per-project defines + if p.defines ~= nil then + for k,def in pairs(p.defines) do + table.insert(debugConfig.defines, def) + table.insert(releaseConfig.defines, def) + end + end + debugConfig.buildoptions = { } + if SDL_getos() == "windows" then + table.insert(debugConfig.buildoptions, "/MDd") + end + debugConfig.linkoptions = { } + releaseConfig.buildoptions = {} + releaseConfig.linkoptions = {} + local baseBuildDir = "/Build" + if os.get() == "windows" then + baseBuildDir = "/Win32" + end + debugConfig.flags = { "Symbols" } + debugConfig.targetdir = proj.location .. baseBuildDir .. "/Debug" + releaseConfig.flags = { "OptimizeSpeed" } + releaseConfig.targetdir = proj.location .. baseBuildDir .. "/Release" + -- setup postbuild options + local dbgPostbuildcommands = { } + local relPostbuildcommands = { } + -- handle copying depended shared libraries to correct folders + if os.get() == "windows" then + for k,deploc in pairs(dependencyLocs) do + table.insert(dbgCopyTable, { src = deploc.location .. baseBuildDir .. "/Debug/" .. deploc.name .. ".dll", + dst = debugConfig.targetdir .. "/" .. deploc.name .. ".dll" }) + table.insert(relCopyTable, { src = deploc.location .. baseBuildDir .. "/Release/" .. deploc.name .. ".dll", + dst = releaseConfig.targetdir .. "/" .. deploc.name .. ".dll" }) + end + end + if p.copy ~= nil then + for k,file in pairs(p.copy) do + -- the following builds relative paths native to the current system for copying, other + -- than the copy command itself, this is essentially cross-platform for paths + + -- all custom copies should be relative to the current working directory + table.insert(dbgCopyTable, { src = path.getrelative(baseLoc, p.sourcedir .. "/" .. file), dst = debugConfig.targetdir .. "/" .. file }) + table.insert(relCopyTable, { src = path.getrelative(baseLoc, p.sourcedir .. "/" .. file), dst = releaseConfig.targetdir .. "/" .. file }) + end + end + for k,file in pairs(dbgCopyTable) do + -- all copies should be relative to project location, based on platform + local relLocation = "./" + --if os.get() == "windows" then + relLocation = proj.location + --end + local fromPath = "./" .. path.getrelative(relLocation, file.src) + local toPath = "./" .. path.getrelative(relLocation, file.dst) + local toPathParent = path.getdirectory(toPath) + local copyCommand = "cp" + local destCheck = "if [ ! -d \\\"" .. toPathParent .. "\\\" ]; then mkdir -p \\\"" .. toPathParent .. "\\\"; fi" + if SDL_getos() ~= "windows" and fromPath:find("*") ~= nil then + -- to path must be a directory for * copies + toPath = path.getdirectory(toPath) + end + if SDL_getos() == "windows" then + fromPath = path.translate(fromPath, "/"):gsub("/", "\\\\") + toPath = path.translate(toPath, "/"):gsub("/", "\\\\") + toPathParent = path.translate(toPathParent, "/"):gsub("/", "\\\\") + copyCommand = "copy" + destCheck = "if not exist \\\"" .. toPathParent .. "\\\" ( mkdir \\\"" .. toPathParent .. "\\\" )" + else + fromPath = path.translate(fromPath, nil):gsub("\\", "/") + toPath = path.translate(toPath, nil):gsub("\\", "/") + end + -- command will check for destination directory to exist and, if it doesn't, + -- it will make the directory and then copy over any assets + local quotedFromPath = fromPath + if SDL_getos() == "windows" or fromPath:find("*") == nil then + quotedFromPath = '\\"' .. quotedFromPath .. '\\"' + end + table.insert(dbgPostbuildcommands, destCheck) + table.insert(dbgPostbuildcommands, + copyCommand .. " " .. + quotedFromPath .. " \\\"" .. + toPath .. "\\\"") + end + for k,file in pairs(relCopyTable) do + -- all copies should be relative to project location, based on platform + local relLocation = "./" + relLocation = proj.location + local fromPath = "./" .. path.getrelative(relLocation, file.src) + local toPath = "./" .. path.getrelative(relLocation, file.dst) + local toPathParent = path.getdirectory(toPath) + local copyCommand = "cp" + local destCheck = "if [ ! -d \\\"" .. toPathParent .. "\\\" ]; then mkdir -p \\\"" .. toPathParent .. "\\\"; fi" + if SDL_getos() ~= "windows" and fromPath:find("*") ~= nil then + -- to path must be a directory for * copies + toPath = path.getdirectory(toPath) + end + if SDL_getos() == "windows" then + fromPath = path.translate(fromPath, "/"):gsub("/", "\\\\") + toPath = path.translate(toPath, "/"):gsub("/", "\\\\") + toPathParent = path.translate(toPathParent, "/"):gsub("/", "\\\\") + copyCommand = "copy" + destCheck = "if not exist \\\"" .. toPathParent .. "\\\" ( mkdir \\\"" .. toPathParent .. "\\\" )" + else + fromPath = path.translate(fromPath, nil):gsub("\\", "/") + toPath = path.translate(toPath, nil):gsub("\\", "/") + end + -- command will check for destination directory to exist and, if it doesn't, + -- it will make the directory and then copy over any assets + local quotedFromPath = fromPath + if SDL_getos() == "windows" or fromPath:find("*") == nil then + quotedFromPath = '\\"' .. quotedFromPath .. '\\"' + end + table.insert(relPostbuildcommands, destCheck) + table.insert(relPostbuildcommands, + copyCommand .. " " .. + quotedFromPath .. " \\\"" .. + toPath .. "\\\"") + end + debugConfig.postbuildcommands = dbgPostbuildcommands + debugConfig.links = links + releaseConfig.postbuildcommands = relPostbuildcommands + releaseConfig.links = links -- release links? + for i,d in pairs(p.dependencyTree) do + if d.includes then + for k,v in pairs(d.includes) do + local propPath = v:gsub("\\", "/") + proj.includedirs[propPath] = propPath + end + end + if d.libs then + for k,v in pairs(d.libs) do + local propPath = v:gsub("\\", "/") + proj.libdirs[propPath] = propPath + end + end + if d.links then + for k,v in pairs(d.links) do + local propPath = v:gsub("\\", "/") + debugConfig.links[#debugConfig.links + 1] = propPath + end + end + end + if #proj.files > 0 then + file:print(1, 'project "' .. p.name .. '"') + file:print(2, 'targetname "' .. p.name .. '"') + -- note: commented out because I think this hack is unnecessary + --if iOSMode and p.kind == "ConsoleApp" then + -- hack for iOS where we cannot build "tools"/ConsoleApps in + -- Xcode for iOS, so we convert them over to WindowedApps + -- p.kind = "WindowedApp" + --end + file:print(2, 'kind "' .. p.kind .. '"') + file:print(2, 'language "' .. p.language .. '"') + file:print(2, 'location "' .. proj.location .. '"') + file:print(2, 'flags { "NoExceptions" }') -- NoRTTI + file:print(2, 'buildoptions { }')--"/GS-" }') + file:print(2, implode(proj.includedirs, 'includedirs {', '"', '"', ', ', '}')) + file:print(2, implode(proj.libdirs, 'libdirs {', '"', '"', ', ', '}')) + file:print(2, implode(proj.files, 'files {', '"', '"', ', ', '}')) + -- debug configuration + file:print(2, 'configuration "Debug"') + file:print(3, 'targetdir "' .. debugConfig.targetdir .. '"') + -- debug dir is relative to the solution's location + file:print(3, 'debugdir "' .. debugConfig.targetdir .. '"') + file:print(3, implode(debugConfig.defines, 'defines {', '"', '"', ', ', '}')) + file:print(3, implode(debugConfig.links, "links {", '"', '"', ', ', "}")) + if SDL_getos() == "mingw" then + -- static runtime + file:print(3, 'linkoptions { "-lmingw32 -static-libgcc" }') + end + if SDL_getos() == "cygwin" then + file:print(3, 'linkoptions { "-static-libgcc" }') + end + file:print(3, implode(debugConfig.flags, "flags {", '"', '"', ', ', "}")) + file:print(3, implode(debugConfig.postbuildcommands, "postbuildcommands {", '"', '"', ', ', "}")) + -- release configuration + file:print(2, 'configuration "Release"') + file:print(3, 'targetdir "' .. releaseConfig.targetdir .. '"') + -- debug dir is relative to the solution's location + file:print(3, 'debugdir "' .. releaseConfig.targetdir .. '"') + file:print(3, implode(releaseConfig.defines, 'defines {', '"', '"', ', ', '}')) + file:print(3, implode(releaseConfig.links, "links {", '"', '"', ', ', "}")) + if SDL_getos() == "mingw" then + -- static runtime + file:print(3, 'linkoptions { "-lmingw32 -static-libgcc" }') + end + file:print(3, implode(releaseConfig.flags, "flags {", '"', '"', ', ', "}")) + file:print(3, implode(releaseConfig.postbuildcommands, "postbuildcommands {", '"', '"', ', ', "}")) + end -- end check for valid project (files to build) + end -- end compatibility check for projects + end -- end for loop for projects + + endGeneration() -- finish generating the config header file + file:close() + + -- generation is over, now execute the generated file, setup the premake + -- solution, and let premake execute the action and generate the project files + dofile(genFile) +end -- end check for not being in help mode \ No newline at end of file diff --git a/premake/projects/SDL2.lua b/premake/projects/SDL2.lua new file mode 100755 index 0000000000000..56dee8e219a9f --- /dev/null +++ b/premake/projects/SDL2.lua @@ -0,0 +1,404 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +SDL2.lua + + This file provides the project definition for the entire SDL2 library, on all + platforms supported by the meta-build system. That includes Windows, MinGW, + Cygwin, Mac OS X, iOS, and Linux. This project is responsible for setting up + the source trees and the complicated dependencies required to build the + final SDL2 library. In order to simplify this process, the library is split + into several different segments. Each segment focuses on a different + dependency and series of configurations which are thrown into the generated + config header file, used to build this project. +]] + +SDL_project "SDL2" + SDL_isos "windows|mingw" -- all other bindings should be a shared library + SDL_kind "SharedLib" + SDL_isos "macosx|ios" -- macosx employs a static linking + SDL_kind "StaticLib" + -- the way premake generates project dependencies and how that affects linkage + -- makes it difficult to use shared libraries on Linux. Cygwin has issues + -- binding to GetProcAddress, so a static library is an easy fix. + SDL_isos "linux|cygwin" + SDL_kind "StaticLib" + + SDL_language "C++" + SDL_sourcedir "../src" + -- primary platforms + SDL_isos "ios" + SDL_platforms { "iOS" } + SDL_isnotos "ios" + SDL_platforms { "native" } + -- additional platforms + SDL_isos "macosx" + SDL_platforms { "universal" } + SDL_isos "windows|mingw" + SDL_defines { "_WINDOWS" } + + -- Following is the dependency tree for SDL2 + -- (no SDL_os call means platform-independent) + + -- The core and minimal of the SDL2 library. This will not quite build + -- standalone, but it's doable with a bit of tweaking to build this using the + -- minimal configuration header. This is a good start to adding SDL support to + -- new platforms. + SDL_config + { + ["SDL_AUDIO_DRIVER_DISK"] = 1, + ["SDL_AUDIO_DRIVER_DUMMY"] = 1, + ["SDL_VIDEO_DRIVER_DUMMY"] = 1 + } + SDL_paths + { + "/", + "/atomic/", + "/audio/", + "/audio/disk/", + "/audio/dummy/", + "/cpuinfo/", + "/events/", + "/file/", + "/haptic/", + "/joystick/", + "/power/", + "/render/", + "/render/software/", + "/stdlib/", + "/thread/", + "/timer/", + "/video/", + "/video/dummy/" + } + + -- SDL2 on Windows + SDL_dependency "windows" + SDL_os "windows|mingw" + SDL_links { "imm32", "oleaut32", "winmm", "version" } + -- these are the links that Visual Studio includes by default + SDL_links { "kernel32", "user32", "gdi32", "winspool", + "comdlg32", "advapi32", "shell32", "ole32", + "oleaut32", "uuid", "odbc32", "odbccp32" } + SDL_config + { + ["SDL_LOADSO_WINDOWS"] = 1, + ["SDL_THREAD_WINDOWS"] = 1, + ["SDL_TIMER_WINDOWS"] = 1, + ["SDL_VIDEO_DRIVER_WINDOWS"] = 1, + ["SDL_POWER_WINDOWS"] = 1, + ["SDL_AUDIO_DRIVER_WINMM"] = 1, + ["SDL_FILESYSTEM_WINDOWS"] = 1 + } + SDL_paths + { + "/audio/winmm/", + "/core/windows/", + "/libm/", + "/loadso/windows/", + "/power/windows/", + "/thread/windows/", + "/timer/windows/", + "/video/windows/", + "/filesystem/windows/" + } + SDL_files + { + -- these files have to be specified uniquely to avoid double + -- and incorrect linking + "/thread/generic/SDL_syscond.c", + "/thread/generic/SDL_sysmutex_c.h" + } + + -- DirectX dependency + SDL_dependency "directx" + SDL_os "windows|mingw" + SDL_depfunc "DirectX" + SDL_config + { + ["SDL_AUDIO_DRIVER_DSOUND"] = 1, + ["SDL_AUDIO_DRIVER_XAUDIO2"] = 1, + ["SDL_JOYSTICK_DINPUT"] = 1, + ["SDL_HAPTIC_DINPUT"] = 1, + ["SDL_VIDEO_RENDER_D3D"] = 1 + } + SDL_paths + { + "/audio/directsound/", + "/audio/xaudio2/", + "/render/direct3d/", + -- these two depend on Xinput + "/haptic/windows/", + "/joystick/windows/", + } + -- in case DirectX was not found + SDL_dependency "notdirectx" + SDL_os "windows|mingw" + SDL_notdepfunc "DirectX" + SDL_config + { + -- enable dummy systems (same as disabling them) + ["SDL_HAPTIC_DUMMY"] = 1, + ["SDL_JOYSTICK_DUMMY"] = 1 + } + SDL_paths + { + -- since we don't have Xinput + "/haptic/dummy/", + "/joystick/dummy/", + } + + -- OpenGL dependency + SDL_dependency "opengl" + SDL_depfunc "OpenGL" + SDL_config + { + ["SDL_VIDEO_OPENGL"] = 1, + ["SDL_VIDEO_RENDER_OGL"] = 1 + } + SDL_paths { "/render/opengl/" } + -- WGL dependency for OpenGL on Windows + SDL_dependency "opengl-windows" + SDL_os "windows|mingw" + SDL_depfunc "OpenGL" + SDL_config { ["SDL_VIDEO_OPENGL_WGL"] = 1 } + -- GLX dependency for OpenGL on Linux + SDL_dependency "opengl-linux" + SDL_os "linux" + SDL_depfunc "OpenGL" + SDL_config { ["SDL_VIDEO_OPENGL_GLX"] = 1 } + + -- SDL2 on Mac OS X + SDL_dependency "macosx" + SDL_os "macosx" + SDL_config + { + ["SDL_AUDIO_DRIVER_COREAUDIO"] = 1, + ["SDL_JOYSTICK_IOKIT"] = 1, + ["SDL_HAPTIC_IOKIT"] = 1, + ["SDL_LOADSO_DLOPEN"] = 1, + ["SDL_THREAD_PTHREAD"] = 1, + ["SDL_THREAD_PTHREAD_RECURSIVE_MUTEX"] = 1, + ["SDL_TIMER_UNIX"] = 1, + ["SDL_VIDEO_DRIVER_COCOA"] = 1, + ["SDL_POWER_MACOSX"] = 1, + ["SDL_FILESYSTEM_COCOA"] = 1 + } + SDL_paths + { + "/audio/coreaudio/", + "/file/cocoa/", + "/haptic/darwin/", + "/joystick/darwin/", + "/loadso/dlopen/", + "/power/macosx/", + "/render/opengl/", + "/thread/pthread/", + "/timer/unix/", + "/video/cocoa/", + "/video/x11/", + "/filesystem/cocoa/" + } + SDL_links + { + "AudioToolbox.framework", + "AudioUnit.framework", + "Cocoa.framework", + "CoreAudio.framework", + "IOKit.framework", + "Carbon.framework", + "ForceFeedback.framework", + "CoreFoundation.framework" + } + + -- Linux dependency: DLOpen + SDL_dependency "linux-dlopen" + SDL_os "linux" + SDL_depfunc "DLOpen" + SDL_paths { "/loadso/dlopen/" } + SDL_config { ["SDL_LOADSO_DLOPEN"] = 1 } + -- Linux dependency: ALSA + SDL_dependency "linux-alsa" + SDL_os "linux" + SDL_depfunc "ALSA" + SDL_paths { "/audio/alsa/" } + SDL_config + { + ["SDL_AUDIO_DRIVER_ALSA"] = 1, + ["SDL_AUDIO_DRIVER_ALSA_DYNAMIC"] = '"libasound.so"' + } + -- Linux dependency: PulseAudio + SDL_dependency "linux-pulseaudio" + SDL_os "linux" + SDL_depfunc "PulseAudio" + SDL_paths { "/audio/pulseaudio/" } + SDL_config + { + ["SDL_AUDIO_DRIVER_PULSEAUDIO"] = 1, + ["SDL_AUDIO_DRIVER_PULSEAUDIO_DYNAMIC"] = '"libpulse-simple.so"' + } + -- Linux dependency: ESD + SDL_dependency "linux-esd" + SDL_os "linux" + SDL_depfunc "ESD" + SDL_paths { "/audio/esd/" } + SDL_config + { + ["SDL_AUDIO_DRIVER_ESD"] = 1, + ["SDL_AUDIO_DRIVER_ESD_DYNAMIC"] = '"libesd.so"' + } + -- Linux dependency: NAS + SDL_dependency "linux-nas" + SDL_os "linux" + SDL_depfunc "NAS" + SDL_paths { "/audio/nas/" } + SDL_config + { + ["SDL_AUDIO_DRIVER_NAS"] = 1, + ["SDL_AUDIO_DRIVER_NAS_DYNAMIC"] = '"libaudio.so"' + } + -- Linux dependency: OSS + SDL_dependency "linux-oss" + SDL_os "linux" + SDL_depfunc "OSS" + SDL_paths { "/audio/dsp/" } + SDL_config { ["SDL_AUDIO_DRIVER_OSS"] = 1 } + -- Linux dependency: X11 + SDL_dependency "linux-x11" + SDL_os "linux" + SDL_depfunc "X11" + SDL_paths { "/video/x11/" } + SDL_config + { + ["SDL_VIDEO_DRIVER_X11"] = 1, + ["SDL_VIDEO_DRIVER_X11_DYNAMIC"] = '"libX11.so"', + ["SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT"] = '"libXext.so"', + ["SDL_VIDEO_DRIVER_X11_DYNAMIC_XCURSOR"] = '"libXcursor.so"', + ["SDL_VIDEO_DRIVER_X11_DYNAMIC_XINERAMA"] = '"libXinerama.so"', + ["SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT2"] = '"libXi.so"', + ["SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR"] = '"libXrandr.so"', + ["SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS"] = '"libXss.so"', + ["SDL_VIDEO_DRIVER_X11_DYNAMIC_XVIDMODE"] = '"libXxf86vm.so"', + ["SDL_VIDEO_DRIVER_X11_XCURSOR"] = 1, + ["SDL_VIDEO_DRIVER_X11_XINERAMA"] = 1, + ["SDL_VIDEO_DRIVER_X11_XINPUT2"] = 1, + ["SDL_VIDEO_DRIVER_X11_XINPUT2_SUPPORTS_MULTITOUCH"] = 1, + ["SDL_VIDEO_DRIVER_X11_XRANDR"] = 1, + ["SDL_VIDEO_DRIVER_X11_XSCRNSAVER"] = 1, + ["SDL_VIDEO_DRIVER_X11_XSHAPE"] = 1, + ["SDL_VIDEO_DRIVER_X11_XVIDMODE"] = 1, + ["SDL_VIDEO_DRIVER_X11_SUPPORTS_GENERIC_EVENTS"] = 1, + ["SDL_VIDEO_DRIVER_X11_CONST_PARAM_XEXTADDDISPLAY"] = 1, + ["SDL_VIDEO_DRIVER_X11_HAS_XKBKEYCODETOKEYSYM"] = 1 + } + -- SDL2 on Linux + SDL_dependency "linux" + SDL_os "linux" + SDL_depfunc "DBus" + SDL_config + { + ["SDL_INPUT_LINUXEV"] = 1, + ["SDL_JOYSTICK_LINUX"] = 1, + ["SDL_HAPTIC_LINUX"] = 1, + ["SDL_THREAD_PTHREAD"] = 1, + ["SDL_THREAD_PTHREAD_RECURSIVE_MUTEX"] = 1, + ["SDL_TIMER_UNIX"] = 1, + ["SDL_POWER_LINUX"] = 1, + ["SDL_FILESYSTEM_UNIX"] = 1, + } + SDL_paths + { + "/haptic/linux/", + "/joystick/linux/", + "/power/linux/", + "/thread/pthread/", + "/timer/unix/", + "/filesystem/unix/" + } + SDL_links + { + "m", + "pthread", + "rt" + } + + -- SDL2 on Cygwin (not quite working yet) + SDL_dependency "cygwin" + SDL_os "cygwin" + SDL_config + { + ['SDL_JOYSTICK_DISABLED'] = 1, + ['SDL_HAPTIC_DISABLED'] = 1, + ['SDL_LOADSO_DLOPEN'] = 1, + ['SDL_THREAD_PTHREAD'] = 1, + ['SDL_THREAD_PTHREAD_RECURSIVE_MUTEX'] = 1, + ['SDL_TIMER_UNIX'] = 1, + ['SDL_FILESYSTEM_UNIX'] = 1, + ['SDL_POWER_LINUX'] = 1 + } + SDL_paths + { + "/loadso/dlopen/", + "/power/linux/", + "/render/opengl/", + "/thread/pthread/", + "/timer/unix/", + "/filesystem/unix/", + "/libm/" + } + + -- SDL2 on iOS + SDL_dependency "iphoneos" + SDL_os "ios" + SDL_config + { + ["SDL_AUDIO_DRIVER_COREAUDIO"] = 1, + ["SDL_JOYSTICK_DISABLED"] = 0, + ["SDL_HAPTIC_DISABLED"] = 1, + ["SDL_LOADSO_DISABLED"] = 1, + ["SDL_THREAD_PTHREAD"] = 1, + ["SDL_THREAD_PTHREAD_RECURSIVE_MUTEX"] = 1, + ["SDL_TIMER_UNIX"] = 1, + ["SDL_VIDEO_DRIVER_UIKIT"] = 1, + ["SDL_VIDEO_OPENGL_ES"] = 1, + ["SDL_VIDEO_RENDER_OGL_ES"] = 1, + ["SDL_VIDEO_RENDER_OGL_ES2"] = 1, + ["SDL_POWER_UIKIT"] = 1, + ["SDL_IPHONE_KEYBOARD"] = 1, + ["SDL_FILESYSTEM_COCOA"] = 1 + } + SDL_paths + { + "/audio/coreaudio/", + "/file/cocoa/", + "/joystick/iphoneos/", + "/loadso/dlopen/", + "/power/uikit/", + "/render/opengles/", + "/render/opengles2/", + "/thread/pthread/", + "/timer/unix/", + "/video/uikit/", + "/filesystem/cocoa/" + } + SDL_links + { + "$(SDKROOT)/AudioToolbox.framework", + "$(SDKROOT)/QuartzCore.framework", + "$(SDKROOT)/OpenGLES.framework", + "$(SDKROOT)/CoreGraphics.framework", + "$(SDKROOT)/UIKit.framework", + "$(SDKROOT)/Foundation.framework", + "$(SDKROOT)/CoreAudio.framework" + } \ No newline at end of file diff --git a/premake/projects/SDL2main.lua b/premake/projects/SDL2main.lua new file mode 100755 index 0000000000000..f5c556f1c1836 --- /dev/null +++ b/premake/projects/SDL2main.lua @@ -0,0 +1,31 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +SDL2main.lua + + This file defines the SDL2main project which builds the SDL2main static + library for Windows and Mac. This project is primarily for everything but + Linux. +]] + +SDL_project "SDL2main" + SDL_kind "StaticLib" + SDL_language "C" + SDL_sourcedir "../src" + SDL_dependency "windows" + SDL_os "windows|mingw" + SDL_paths { "/main/windows/" } + SDL_dependency "macosx or ios" + SDL_os "macosx|ios|cygwin" + SDL_paths { "/main/dummy/" } \ No newline at end of file diff --git a/premake/projects/SDL2test.lua b/premake/projects/SDL2test.lua new file mode 100755 index 0000000000000..f2d9c2b56b37e --- /dev/null +++ b/premake/projects/SDL2test.lua @@ -0,0 +1,28 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +SDL2test.lua + + This file defines the SDL2test library. It depends on the SDL2main and SDL2 + projects. This library contains a series of test functions used by many of the + other test projects, so it is one of the main dependencies for much of the + test suite. +]] + +SDL_project "SDL2test" + SDL_kind "StaticLib" + SDL_language "C" + SDL_sourcedir "../src" + SDL_projectDependencies { "SDL2main", "SDL2" } + SDL_paths { "/test/" } \ No newline at end of file diff --git a/premake/projects/accelerometer.lua b/premake/projects/accelerometer.lua new file mode 100755 index 0000000000000..bef7942c6148e --- /dev/null +++ b/premake/projects/accelerometer.lua @@ -0,0 +1,28 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +accelerometer.lua + + This file defines the accelerometer demo project for iOS. This project is only + compatible on iOS and depends on SDL2. It is a windowed application. +]] + +SDL_project "accelerometer" + SDL_kind "WindowedApp" + SDL_os "ios" + SDL_language "C" + SDL_sourcedir "../Xcode-iOS/Demos" + SDL_projectLocation "Demos" + SDL_projectDependencies { "SDL2" } + SDL_files { "/src/common.*", "/src/accelerometer.*", "/Info.plist", "/data/ship.bmp", "/data/space.bmp" } \ No newline at end of file diff --git a/premake/projects/checkkeys.lua b/premake/projects/checkkeys.lua new file mode 100755 index 0000000000000..a2740ed2c3eb4 --- /dev/null +++ b/premake/projects/checkkeys.lua @@ -0,0 +1,28 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +checkkeys.lua + + This file defines the checkkeys test application. This application will not be + builts on iOS or Cygwin. It depends on the SDL2 and SDL2main projects. +]] + +SDL_project "checkkeys" + SDL_kind "ConsoleApp" + SDL_notos "ios|cygwin" + SDL_language "C" + SDL_sourcedir "../test" + SDL_projectLocation "tests" + SDL_projectDependencies { "SDL2main", "SDL2" } + SDL_files { "/checkkeys.*" } \ No newline at end of file diff --git a/premake/projects/fireworks.lua b/premake/projects/fireworks.lua new file mode 100755 index 0000000000000..68dc0ce5377ca --- /dev/null +++ b/premake/projects/fireworks.lua @@ -0,0 +1,28 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +fireworks.lua + + This file defines the fireworks demo project for iOS. This project is only + compatible on iOS and depends on SDL2. It is a windowed application. +]] + +SDL_project "fireworks" + SDL_kind "WindowedApp" + SDL_os "ios" + SDL_language "C" + SDL_sourcedir "../Xcode-iOS/Demos" + SDL_projectLocation "Demos" + SDL_projectDependencies { "SDL2" } + SDL_files { "/src/common.*", "/src/fireworks.*", "/Info.plist", "/data/stroke.bmp" } \ No newline at end of file diff --git a/premake/projects/happy.lua b/premake/projects/happy.lua new file mode 100755 index 0000000000000..ca9bc319ae379 --- /dev/null +++ b/premake/projects/happy.lua @@ -0,0 +1,28 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +happy.lua + + This file defines the happy demo project for iOS. This project is only + compatible on iOS and depends on SDL2. It is a windowed application. +]] + +SDL_project "happy" + SDL_kind "WindowedApp" + SDL_os "ios" + SDL_language "C" + SDL_sourcedir "../Xcode-iOS/Demos" + SDL_projectLocation "Demos" + SDL_projectDependencies { "SDL2" } + SDL_files { "/src/common.*", "/src/happy.*", "/Info.plist", "/data/icon.bmp" } \ No newline at end of file diff --git a/premake/projects/keyboard.lua b/premake/projects/keyboard.lua new file mode 100755 index 0000000000000..4dc6ba827088f --- /dev/null +++ b/premake/projects/keyboard.lua @@ -0,0 +1,28 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +keyboard.lua + + This file defines the keyboard demo project for iOS. This project is only + compatible on iOS and depends on SDL2. It is a windowed application. +]] + +SDL_project "keyboard" + SDL_kind "WindowedApp" + SDL_os "ios" + SDL_language "C" + SDL_sourcedir "../Xcode-iOS/Demos" + SDL_projectLocation "Demos" + SDL_projectDependencies { "SDL2" } + SDL_files { "/src/common.*", "/src/keyboard.*", "/Info.plist", "/data/bitmapfont/kromasky_16x16.bmp" } \ No newline at end of file diff --git a/premake/projects/loopwave.lua b/premake/projects/loopwave.lua new file mode 100755 index 0000000000000..1ca1f2da070ee --- /dev/null +++ b/premake/projects/loopwave.lua @@ -0,0 +1,30 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +loopwave.lua + + This file defines the loopwave test application. This project will not build + on iOS or Cygwin. It depends on the SDL2 and SDL2main projects. +]] + +SDL_project "loopwave" + SDL_kind "ConsoleApp" + SDL_notos "ios|cygwin" + SDL_language "C" + SDL_sourcedir "../test" + SDL_projectLocation "tests" + -- a list of items to copy from the sourcedir to the destination + SDL_copy { "sample.wav" } + SDL_projectDependencies { "SDL2main", "SDL2" } + SDL_files { "/loopwave.*" } \ No newline at end of file diff --git a/premake/projects/mixer.lua b/premake/projects/mixer.lua new file mode 100755 index 0000000000000..cb146a5e69b6f --- /dev/null +++ b/premake/projects/mixer.lua @@ -0,0 +1,30 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +mixer.lua + + This file defines the mixer demo project for iOS. This project is only + compatible on iOS and depends on SDL2. It is a windowed application. +]] + +SDL_project "mixer" + SDL_kind "WindowedApp" + SDL_os "ios" + SDL_language "C" + SDL_sourcedir "../Xcode-iOS/Demos" + SDL_projectLocation "Demos" + SDL_projectDependencies { "SDL2" } + SDL_files { "/src/common.*", "/src/mixer.*", "/Info.plist", + "/data/drums/ds_kick_big_amb.wav", "/data/drums/ds_brush_snare.wav", + "/data/drums/ds_loose_skin_mute.wav", "/data/drums/ds_china.wav" } \ No newline at end of file diff --git a/premake/projects/rectangles.lua b/premake/projects/rectangles.lua new file mode 100755 index 0000000000000..200ee4bd61172 --- /dev/null +++ b/premake/projects/rectangles.lua @@ -0,0 +1,28 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +rectangles.lua + + This file defines the rectangles demo project for iOS. This project is only + compatible on iOS and depends on SDL2. It is a windowed application. +]] + +SDL_project "rectangles" + SDL_kind "WindowedApp" + SDL_os "ios" + SDL_language "C" + SDL_sourcedir "../Xcode-iOS/Demos" + SDL_projectLocation "Demos" + SDL_projectDependencies { "SDL2" } + SDL_files { "/src/common.*", "/src/rectangles.*", "/Info.plist", } \ No newline at end of file diff --git a/premake/projects/testatomic.lua b/premake/projects/testatomic.lua new file mode 100755 index 0000000000000..ac6bff99a8613 --- /dev/null +++ b/premake/projects/testatomic.lua @@ -0,0 +1,28 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +testatomic.lua + + This file defines the testatomic test project. It depends on the SDL2main and + SDL2 projects. It will not build on iOS. +]] + +SDL_project "testatomic" + SDL_kind "ConsoleApp" + SDL_notos "ios" + SDL_language "C" + SDL_sourcedir "../test" + SDL_projectLocation "tests" + SDL_projectDependencies { "SDL2main", "SDL2" } + SDL_files { "/testatomic.*" } \ No newline at end of file diff --git a/premake/projects/testaudioinfo.lua b/premake/projects/testaudioinfo.lua new file mode 100755 index 0000000000000..a0e8a66c6a9ed --- /dev/null +++ b/premake/projects/testaudioinfo.lua @@ -0,0 +1,28 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +testaudioinfo.lua + + This file defines the testaudioinfo test project. It depends on the SDL2main + and SDL2 projects. It will not build on iOS or Cygwin. +]] + +SDL_project "testaudioinfo" + SDL_kind "ConsoleApp" + SDL_notos "ios|cygwin" + SDL_language "C" + SDL_sourcedir "../test" + SDL_projectLocation "tests" + SDL_projectDependencies { "SDL2main", "SDL2" } + SDL_files { "/testaudioinfo.*" } \ No newline at end of file diff --git a/premake/projects/testautomation.lua b/premake/projects/testautomation.lua new file mode 100755 index 0000000000000..b654f8a41e11c --- /dev/null +++ b/premake/projects/testautomation.lua @@ -0,0 +1,28 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +testautomation.lua + + This file defines the testautomation test project. It depends on the SDL2main, + SDL2test, and SDL2 projects. It will not build on iOS or Cygwin. +]] + +SDL_project "testautomation" + SDL_kind "ConsoleApp" + SDL_notos "ios|cygwin" + SDL_language "C" + SDL_sourcedir "../test" + SDL_projectLocation "tests" + SDL_projectDependencies { "SDL2main", "SDL2test", "SDL2" } + SDL_files { "/testautomation*" } \ No newline at end of file diff --git a/premake/projects/testdraw2.lua b/premake/projects/testdraw2.lua new file mode 100755 index 0000000000000..51d66cb5e70dd --- /dev/null +++ b/premake/projects/testdraw2.lua @@ -0,0 +1,28 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +testdraw2.lua + + This file defines the testdraw2 test project. It depends on the SDL2main, + SDL2test, and SDL2 projects. It will not build on iOS or Cygwin. +]] + +SDL_project "testdraw2" + SDL_kind "ConsoleApp" + SDL_notos "ios|cygwin" + SDL_language "C" + SDL_sourcedir "../test" + SDL_projectLocation "tests" + SDL_projectDependencies { "SDL2main", "SDL2test", "SDL2" } + SDL_files { "/testdraw2.*" } \ No newline at end of file diff --git a/premake/projects/testdrawchessboard.lua b/premake/projects/testdrawchessboard.lua new file mode 100755 index 0000000000000..d1f66aeb18d14 --- /dev/null +++ b/premake/projects/testdrawchessboard.lua @@ -0,0 +1,28 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +testchessboard.lua + + This file defines the testchessboard test project. It depends on the SDL2main + and SDL2 projects. It will not build on iOS or Cygwin. +]] + +SDL_project "testchessboard" + SDL_kind "ConsoleApp" + SDL_notos "ios|cygwin" + SDL_language "C" + SDL_sourcedir "../test" + SDL_projectLocation "tests" + SDL_projectDependencies { "SDL2main", "SDL2" } + SDL_files { "/testdrawchessboard.*" } \ No newline at end of file diff --git a/premake/projects/testerror.lua b/premake/projects/testerror.lua new file mode 100755 index 0000000000000..5d7e9aafb7022 --- /dev/null +++ b/premake/projects/testerror.lua @@ -0,0 +1,28 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +testerror.lua + + This file defines the testerror test project. It depends on the SDL2main + and SDL2 projects. It will not build on iOS. +]] + +SDL_project "testerror" + SDL_kind "ConsoleApp" + SDL_notos "ios" + SDL_language "C" + SDL_sourcedir "../test" + SDL_projectLocation "tests" + SDL_projectDependencies { "SDL2main", "SDL2" } + SDL_files { "/testerror.*" } \ No newline at end of file diff --git a/premake/projects/testfile.lua b/premake/projects/testfile.lua new file mode 100755 index 0000000000000..d878140cb47ce --- /dev/null +++ b/premake/projects/testfile.lua @@ -0,0 +1,28 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +testfile.lua + + This file defines the testfile test project. It depends on the SDL2main + and SDL2 projects. It will not build on iOS. +]] + +SDL_project "testfile" + SDL_kind "ConsoleApp" + SDL_notos "ios" + SDL_language "C" + SDL_sourcedir "../test" + SDL_projectLocation "tests" + SDL_projectDependencies { "SDL2main", "SDL2" } + SDL_files { "/testfile.*" } \ No newline at end of file diff --git a/premake/projects/testfilesystem.lua b/premake/projects/testfilesystem.lua new file mode 100755 index 0000000000000..44b28a2b5658b --- /dev/null +++ b/premake/projects/testfilesystem.lua @@ -0,0 +1,28 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +testfilesystem.lua + + This file defines the testfilesystem test project. It depends on the SDL2main + and SDL2 projects. It will not build on iOS or Cygwin. +]] + +SDL_project "testfilesystem" + SDL_kind "ConsoleApp" + SDL_notos "ios|cygwin" + SDL_language "C" + SDL_sourcedir "../test" + SDL_projectLocation "tests" + SDL_projectDependencies { "SDL2main", "SDL2" } + SDL_files { "/testfilesystem.*" } \ No newline at end of file diff --git a/premake/projects/testgamecontroller.lua b/premake/projects/testgamecontroller.lua new file mode 100755 index 0000000000000..ae562591ebd73 --- /dev/null +++ b/premake/projects/testgamecontroller.lua @@ -0,0 +1,28 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +testgamecontroller.lua + + This file defines the testgamecontroller test project. It depends on the + SDL2main and SDL2 projects. It will not build on iOS or Cygwin. +]] + +SDL_project "testgamecontroller" + SDL_kind "ConsoleApp" + SDL_notos "ios|cygwin" + SDL_language "C" + SDL_sourcedir "../test" + SDL_projectLocation "tests" + SDL_projectDependencies { "SDL2main", "SDL2" } + SDL_files { "/testgamecontroller.*" } \ No newline at end of file diff --git a/premake/projects/testgesture.lua b/premake/projects/testgesture.lua new file mode 100755 index 0000000000000..aa2d2370ea95d --- /dev/null +++ b/premake/projects/testgesture.lua @@ -0,0 +1,28 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +testgesture.lua + + This file defines the testgesture test project. It depends on the SDL2main + and SDL2 projects. It will not build on iOS or Cygwin. +]] + +SDL_project "testgesture" + SDL_kind "ConsoleApp" + SDL_notos "ios|cygwin" + SDL_language "C" + SDL_sourcedir "../test" + SDL_projectLocation "tests" + SDL_projectDependencies { "SDL2main", "SDL2" } + SDL_files { "/testgesture.*" } \ No newline at end of file diff --git a/premake/projects/testgl2.lua b/premake/projects/testgl2.lua new file mode 100755 index 0000000000000..d8da8f0930aec --- /dev/null +++ b/premake/projects/testgl2.lua @@ -0,0 +1,34 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +testgl2.lua + + This file defines the testgl2 test project. It depends on the SDL2main, + SDL2test, and SDL2 projects. It will not build on iOS or Cygwin. This project + has a dependency on OpenGL and will specially supply a preprocessor definition + for indicating OpenGL support. +]] + +SDL_project "testgl2" + SDL_kind "ConsoleApp" + SDL_notos "ios|cygwin" + SDL_language "C" + SDL_sourcedir "../test" + SDL_projectLocation "tests" + SDL_projectDependencies { "SDL2main", "SDL2test", "SDL2" } + SDL_defines { "HAVE_OPENGL" } + SDL_dependency "OpenGL" + -- opengl is platform independent + SDL_depfunc "OpenGL" + SDL_files { "/testgl2.*" } \ No newline at end of file diff --git a/premake/projects/testgles.lua b/premake/projects/testgles.lua new file mode 100755 index 0000000000000..cfae1daf2a34c --- /dev/null +++ b/premake/projects/testgles.lua @@ -0,0 +1,28 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +testgles.lua + + This file defines the testgles test project. It depends on the SDL2main, + SDL2test, and SDL2 projects. It will not build on iOS or Cygwin. +]] + +SDL_project "testgles" + SDL_kind "ConsoleApp" + SDL_notos "ios|cygwin" + SDL_language "C" + SDL_sourcedir "../test" + SDL_projectLocation "tests" + SDL_projectDependencies { "SDL2main", "SDL2test", "SDL2" } + SDL_files { "/testgles.*" } \ No newline at end of file diff --git a/premake/projects/testhaptic.lua b/premake/projects/testhaptic.lua new file mode 100755 index 0000000000000..992ea7ecb4eca --- /dev/null +++ b/premake/projects/testhaptic.lua @@ -0,0 +1,28 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +testhaptic.lua + + This file defines the testhaptic test project. It depends on the SDL2main + and SDL2 projects. It will not build on iOS or Cygwin. +]] + +SDL_project "testhaptic" + SDL_kind "ConsoleApp" + SDL_notos "ios|cygwin" + SDL_language "C" + SDL_sourcedir "../test" + SDL_projectLocation "tests" + SDL_projectDependencies { "SDL2main", "SDL2" } + SDL_files { "/testhaptic.*" } \ No newline at end of file diff --git a/premake/projects/testiconv.lua b/premake/projects/testiconv.lua new file mode 100755 index 0000000000000..89a5406cb328f --- /dev/null +++ b/premake/projects/testiconv.lua @@ -0,0 +1,29 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +testiconv.lua + + This file defines the testiconv test project. It depends on the SDL2main + and SDL2 projects. It will not build on iOS or Cygwin. +]] + +SDL_project "testiconv" + SDL_kind "ConsoleApp" + SDL_notos "ios|cygwin" + SDL_language "C" + SDL_sourcedir "../test" + SDL_projectLocation "tests" + SDL_projectDependencies { "SDL2main", "SDL2" } + SDL_files { "/testiconv.*" } + SDL_copy { "utf8.txt" } \ No newline at end of file diff --git a/premake/projects/testime.lua b/premake/projects/testime.lua new file mode 100755 index 0000000000000..1584fbd663572 --- /dev/null +++ b/premake/projects/testime.lua @@ -0,0 +1,28 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +testime.lua + + This file defines the testime test project. It depends on the SDL2main, + SDL2test, and SDL2 projects. It will not build on iOS or Cygwin. +]] + +SDL_project "testime" + SDL_kind "ConsoleApp" + SDL_notos "ios|cygwin" + SDL_language "C" + SDL_sourcedir "../test" + SDL_projectLocation "tests" + SDL_projectDependencies { "SDL2main", "SDL2test", "SDL2" } + SDL_files { "/testime.*" } \ No newline at end of file diff --git a/premake/projects/testintersection.lua b/premake/projects/testintersection.lua new file mode 100755 index 0000000000000..73cf8e6c790b2 --- /dev/null +++ b/premake/projects/testintersection.lua @@ -0,0 +1,28 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +testintersection.lua + + This file defines the testintersection test project. It depends on the SDL2main + and SDL2 projects. It will not build on iOS or Cygwin. +]] + +SDL_project "testintersection" + SDL_kind "ConsoleApp" + SDL_notos "ios|cygwin" + SDL_language "C" + SDL_sourcedir "../test" + SDL_projectLocation "tests" + SDL_projectDependencies { "SDL2main", "SDL2" } + SDL_files { "/testintersection.*" } \ No newline at end of file diff --git a/premake/projects/testjoystick.lua b/premake/projects/testjoystick.lua new file mode 100755 index 0000000000000..7ce8f70acdeb1 --- /dev/null +++ b/premake/projects/testjoystick.lua @@ -0,0 +1,28 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +testjoystick.lua + + This file defines the testjoystick test project. It depends on the SDL2main + and SDL2 projects. It will not build on iOS or Cygwin. +]] + +SDL_project "testjoystick" + SDL_kind "ConsoleApp" + SDL_notos "ios|cygwin" + SDL_language "C" + SDL_sourcedir "../test" + SDL_projectLocation "tests" + SDL_projectDependencies { "SDL2main", "SDL2" } + SDL_files { "/testjoystick.*" } \ No newline at end of file diff --git a/premake/projects/testkeys.lua b/premake/projects/testkeys.lua new file mode 100755 index 0000000000000..d385d23bfa057 --- /dev/null +++ b/premake/projects/testkeys.lua @@ -0,0 +1,28 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +testkeys.lua + + This file defines the testkeys test project. It depends on the SDL2main + and SDL2 projects. It will not build on iOS or Cygwin. +]] + +SDL_project "testkeys" + SDL_kind "ConsoleApp" + SDL_notos "ios|cygwin" + SDL_language "C" + SDL_sourcedir "../test" + SDL_projectLocation "tests" + SDL_projectDependencies { "SDL2main", "SDL2" } + SDL_files { "/testkeys.*" } \ No newline at end of file diff --git a/premake/projects/testloadso.lua b/premake/projects/testloadso.lua new file mode 100755 index 0000000000000..5a761147a8189 --- /dev/null +++ b/premake/projects/testloadso.lua @@ -0,0 +1,28 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +testloadso.lua + + This file defines the testloadso test project. It depends on the SDL2main + and SDL2 projects. It will not build on iOS. +]] + +SDL_project "testloadso" + SDL_kind "ConsoleApp" + SDL_notos "ios" + SDL_language "C" + SDL_sourcedir "../test" + SDL_projectLocation "tests" + SDL_projectDependencies { "SDL2main", "SDL2" } + SDL_files { "/testloadso.*" } \ No newline at end of file diff --git a/premake/projects/testlock.lua b/premake/projects/testlock.lua new file mode 100755 index 0000000000000..3db3c732dce06 --- /dev/null +++ b/premake/projects/testlock.lua @@ -0,0 +1,28 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +testlock.lua + + This file defines the testlock test project. It depends on the SDL2main + and SDL2 projects. It will not build on iOS. +]] + +SDL_project "testlock" + SDL_kind "ConsoleApp" + SDL_notos "ios" + SDL_language "C" + SDL_sourcedir "../test" + SDL_projectLocation "tests" + SDL_projectDependencies { "SDL2main", "SDL2" } + SDL_files { "/testlock.*" } \ No newline at end of file diff --git a/premake/projects/testmessage.lua b/premake/projects/testmessage.lua new file mode 100755 index 0000000000000..96c3e85a85075 --- /dev/null +++ b/premake/projects/testmessage.lua @@ -0,0 +1,28 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +testmessage.lua + + This file defines the testmessage test project. It depends on the SDL2main + and SDL2 projects. It will not build on iOS or Cygwin. +]] + +SDL_project "testmessage" + SDL_kind "ConsoleApp" + SDL_notos "ios|cygwin" + SDL_language "C" + SDL_sourcedir "../test" + SDL_projectLocation "tests" + SDL_projectDependencies { "SDL2main", "SDL2" } + SDL_files { "/testmessage.*" } \ No newline at end of file diff --git a/premake/projects/testmultiaudio.lua b/premake/projects/testmultiaudio.lua new file mode 100755 index 0000000000000..6b7ac0ac2e049 --- /dev/null +++ b/premake/projects/testmultiaudio.lua @@ -0,0 +1,29 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +testmultiaudio.lua + + This file defines the testmultiaudio test project. It depends on the SDL2main + and SDL2 projects. It will not build on iOS or Cygwin. +]] + +SDL_project "testmultiaudio" + SDL_kind "ConsoleApp" + SDL_notos "ios|cygwin" + SDL_language "C" + SDL_sourcedir "../test" + SDL_projectLocation "tests" + SDL_projectDependencies { "SDL2main", "SDL2" } + SDL_files { "/testmultiaudio.*" } + SDL_copy { "sample.wav" } \ No newline at end of file diff --git a/premake/projects/testnative.lua b/premake/projects/testnative.lua new file mode 100755 index 0000000000000..01f5dbb1e7598 --- /dev/null +++ b/premake/projects/testnative.lua @@ -0,0 +1,40 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +testnative.lua + + This file defines the testnative test project. It depends on the SDL2main + and SDL2 projects. It will not build on iOS or Cygwin. This project has + specialized dependencies separate to Windows/MinGW, Mac OS X, and Linux. +]] + +SDL_project "testnative" + SDL_kind "ConsoleApp" + SDL_notos "ios|cygwin" + SDL_language "C" + SDL_sourcedir "../test" + SDL_projectLocation "tests" + SDL_projectDependencies { "SDL2main", "SDL2" } + SDL_files { "/testnative.*" } + SDL_copy { "icon.bmp" } + SDL_dependency "windows" + SDL_os "windows|mingw" + SDL_files { "/testnativew32.*" } + SDL_dependency "macosx" + SDL_os "macosx" + SDL_files { "/testnativecocoa.*" } + SDL_dependency "linux" + SDL_os "linux" + SDL_depfunc "X11" + SDL_files { "/testnativex11.*" } \ No newline at end of file diff --git a/premake/projects/testoverlay2.lua b/premake/projects/testoverlay2.lua new file mode 100755 index 0000000000000..d2806b3e6b0da --- /dev/null +++ b/premake/projects/testoverlay2.lua @@ -0,0 +1,30 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +testoverlay2.lua + + This file defines the testoverlay2 test project. It depends on the SDL2main + and SDL2 projects. It will not build on iOS or Cygwin. +]] + +SDL_project "testoverlay2" + SDL_kind "ConsoleApp" + SDL_notos "ios|cygwin" + SDL_language "C" + SDL_sourcedir "../test" + SDL_projectLocation "tests" + -- a list of items to copy from the sourcedir to the destination + SDL_copy { "moose.dat" } + SDL_projectDependencies { "SDL2main", "SDL2" } + SDL_files { "/testoverlay2.*" } \ No newline at end of file diff --git a/premake/projects/testplatform.lua b/premake/projects/testplatform.lua new file mode 100755 index 0000000000000..ab9e886de9892 --- /dev/null +++ b/premake/projects/testplatform.lua @@ -0,0 +1,28 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +testplatform.lua + + This file defines the testplatform test project. It depends on the SDL2main + and SDL2 projects. It will not build on iOS. +]] + +SDL_project "testplatform" + SDL_kind "ConsoleApp" + SDL_notos "ios" + SDL_language "C" + SDL_sourcedir "../test" + SDL_projectLocation "tests" + SDL_projectDependencies { "SDL2main", "SDL2" } + SDL_files { "/testplatform.*" } \ No newline at end of file diff --git a/premake/projects/testpower.lua b/premake/projects/testpower.lua new file mode 100755 index 0000000000000..5be61e9dd07c6 --- /dev/null +++ b/premake/projects/testpower.lua @@ -0,0 +1,28 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +testpower.lua + + This file defines the testpower test project. It depends on the SDL2main + and SDL2 projects. It will not build on iOS. +]] + +SDL_project "testpower" + SDL_kind "ConsoleApp" + SDL_notos "ios" + SDL_language "C" + SDL_sourcedir "../test" + SDL_projectLocation "tests" + SDL_projectDependencies { "SDL2main", "SDL2" } + SDL_files { "/testpower.*" } \ No newline at end of file diff --git a/premake/projects/testrelative.lua b/premake/projects/testrelative.lua new file mode 100755 index 0000000000000..f04c4c7d1b6ba --- /dev/null +++ b/premake/projects/testrelative.lua @@ -0,0 +1,28 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +testrelative.lua + + This file defines the testrelative test project. It depends on the SDL2main, + SDL2test, and SDL2 projects. It will not build on iOS or Cygwin. +]] + +SDL_project "testrelative" + SDL_kind "ConsoleApp" + SDL_notos "ios|cygwin" + SDL_language "C" + SDL_sourcedir "../test" + SDL_projectLocation "tests" + SDL_projectDependencies { "SDL2main", "SDL2test", "SDL2" } + SDL_files { "/testrelative.*" } \ No newline at end of file diff --git a/premake/projects/testrendercopyex.lua b/premake/projects/testrendercopyex.lua new file mode 100755 index 0000000000000..ef1c36ac39dea --- /dev/null +++ b/premake/projects/testrendercopyex.lua @@ -0,0 +1,29 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +testrendercopyex.lua + + This file defines the testrendercopyx test project. It depends on the + SDL2main, SDL2test, and SDL2 projects. It will not build on iOS or Cygwin. +]] + +SDL_project "testrendercopyex" + SDL_kind "ConsoleApp" + SDL_notos "ios|cygwin" + SDL_language "C" + SDL_sourcedir "../test" + SDL_projectLocation "tests" + SDL_projectDependencies { "SDL2main", "SDL2test", "SDL2" } + SDL_files { "/testrendercopyex.*" } + SDL_copy { "icon.bmp", "sample.bmp" } \ No newline at end of file diff --git a/premake/projects/testrendertarget.lua b/premake/projects/testrendertarget.lua new file mode 100755 index 0000000000000..5dcd71a0c6ee8 --- /dev/null +++ b/premake/projects/testrendertarget.lua @@ -0,0 +1,30 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +testrendertarget.lua + + This file defines the testrendertarget test project. It depends on the + SDL2main, SDL2test, and SDL2 projects. It will not build on iOS or Cygwin. +]] + +SDL_project "testrendertarget" + SDL_kind "ConsoleApp" + SDL_notos "ios|cygwin" + SDL_language "C" + SDL_sourcedir "../test" + SDL_projectLocation "tests" + -- a list of items to copy from the sourcedir to the destination + SDL_copy { "sample.bmp", "icon.bmp" } + SDL_projectDependencies { "SDL2main", "SDL2test", "SDL2" } + SDL_files { "/testrendertarget.*" } \ No newline at end of file diff --git a/premake/projects/testresample.lua b/premake/projects/testresample.lua new file mode 100755 index 0000000000000..c42aeaa423d00 --- /dev/null +++ b/premake/projects/testresample.lua @@ -0,0 +1,30 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +testresample.lua + + This file defines the testresample test project. It depends on the SDL2main + and SDL2 projects. It will not build on iOS or Cygwin. +]] + +SDL_project "testresample" + SDL_kind "ConsoleApp" + SDL_notos "ios|cygwin" + SDL_language "C" + SDL_sourcedir "../test" + SDL_projectLocation "tests" + -- a list of items to copy from the sourcedir to the destination + SDL_copy { "sample.wav" } + SDL_projectDependencies { "SDL2main", "SDL2" } + SDL_files { "/testresample.*" } \ No newline at end of file diff --git a/premake/projects/testrumble.lua b/premake/projects/testrumble.lua new file mode 100755 index 0000000000000..a4a9f68791f5a --- /dev/null +++ b/premake/projects/testrumble.lua @@ -0,0 +1,28 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +testrumble.lua + + This file defines the testrumble test project. It depends on the SDL2main + and SDL2 projects. It will not build on iOS or Cygwin. +]] + +SDL_project "testrumble" + SDL_kind "ConsoleApp" + SDL_notos "ios|cygwin" + SDL_language "C" + SDL_sourcedir "../test" + SDL_projectLocation "tests" + SDL_projectDependencies { "SDL2main", "SDL2" } + SDL_files { "/testrumble.*" } \ No newline at end of file diff --git a/premake/projects/testscale.lua b/premake/projects/testscale.lua new file mode 100755 index 0000000000000..18e1418b25bb6 --- /dev/null +++ b/premake/projects/testscale.lua @@ -0,0 +1,30 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +testscale.lua + + This file defines the testscale test project. It depends on the SDL2main, + SDL2test, and SDL2 projects. It will not build on iOS or Cygwin. +]] + +SDL_project "testscale" + SDL_kind "ConsoleApp" + SDL_notos "ios|cygwin" + SDL_language "C" + SDL_sourcedir "../test" + SDL_projectLocation "tests" + -- a list of items to copy from the sourcedir to the destination + SDL_copy { "sample.bmp", "icon.bmp" } + SDL_projectDependencies { "SDL2main", "SDL2test", "SDL2" } + SDL_files { "/testscale.*" } \ No newline at end of file diff --git a/premake/projects/testsem.lua b/premake/projects/testsem.lua new file mode 100755 index 0000000000000..a52799195732b --- /dev/null +++ b/premake/projects/testsem.lua @@ -0,0 +1,28 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +testsem.lua + + This file defines the testsem test project. It depends on the SDL2main + and SDL2 projects. It will not build on iOS. +]] + +SDL_project "testsem" + SDL_kind "ConsoleApp" + SDL_notos "ios" + SDL_language "C" + SDL_sourcedir "../test" + SDL_projectLocation "tests" + SDL_projectDependencies { "SDL2main", "SDL2" } + SDL_files { "/testsem.*" } \ No newline at end of file diff --git a/premake/projects/testshader.lua b/premake/projects/testshader.lua new file mode 100755 index 0000000000000..9066578524430 --- /dev/null +++ b/premake/projects/testshader.lua @@ -0,0 +1,35 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +testshader.lua + + This file defines the testshader test project. It depends on the SDL2main + and SDL2 projects. It will not build on iOS or Cygwin. This project has a + dependency on OpenGL. +]] + +SDL_project "testshader" + SDL_kind "ConsoleApp" + SDL_notos "ios|cygwin" + SDL_language "C" + SDL_sourcedir "../test" + SDL_projectLocation "tests" + -- a list of items to copy from the sourcedir to the destination + SDL_copy { "icon.bmp" } + SDL_projectDependencies { "SDL2main", "SDL2" } + SDL_defines { "HAVE_OPENGL" } + SDL_dependency "OpenGL" + -- opengl is platform independent + SDL_depfunc "OpenGL" + SDL_files { "/testshader.*" } \ No newline at end of file diff --git a/premake/projects/testshape.lua b/premake/projects/testshape.lua new file mode 100755 index 0000000000000..22e9846c4bc0f --- /dev/null +++ b/premake/projects/testshape.lua @@ -0,0 +1,32 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +testshape.lua + + This file defines the testshape test project. It depends on the SDL2main + and SDL2 projects. It will not build on iOS or Cygwin. This project has a + unique SDL_copy directive, since it copies from a subdirectory and it copies + all the files of a specific type. +]] + +SDL_project "testshape" + SDL_kind "ConsoleApp" + SDL_notos "ios|cygwin" + SDL_language "C" + SDL_sourcedir "../test" + SDL_projectLocation "tests" + -- a list of items to copy from the sourcedir to the destination + SDL_copy { "shapes/*.bmp" } + SDL_projectDependencies { "SDL2main", "SDL2" } + SDL_files { "/testshape.*" } \ No newline at end of file diff --git a/premake/projects/testsprite2.lua b/premake/projects/testsprite2.lua new file mode 100755 index 0000000000000..b4e09265ad955 --- /dev/null +++ b/premake/projects/testsprite2.lua @@ -0,0 +1,30 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +testsprite2.lua + + This file defines the testsprite2 test project. It depends on the SDL2main, + SDL2test, and SDL2 projects. It will not build on iOS or Cygwin. +]] + +SDL_project "testsprite2" + SDL_kind "ConsoleApp" + SDL_notos "ios|cygwin" + SDL_language "C" + SDL_sourcedir "../test" + SDL_projectLocation "tests" + -- a list of items to copy from the sourcedir to the destination + SDL_copy { "icon.bmp" } + SDL_projectDependencies { "SDL2main", "SDL2test", "SDL2" } + SDL_files { "/testsprite2.*" } \ No newline at end of file diff --git a/premake/projects/testspriteminimal.lua b/premake/projects/testspriteminimal.lua new file mode 100755 index 0000000000000..26f891bc9cfa7 --- /dev/null +++ b/premake/projects/testspriteminimal.lua @@ -0,0 +1,29 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +testspriteminimal.lua + + This file defines the testspriteminimal test project. It depends on the + SDL2main and SDL2 projects. It will not build on iOS or Cygwin. +]] + +SDL_project "testspriteminimal" + SDL_kind "ConsoleApp" + SDL_notos "ios|cygwin" + SDL_language "C" + SDL_sourcedir "../test" + SDL_projectLocation "tests" + SDL_projectDependencies { "SDL2main", "SDL2" } + SDL_files { "/testspriteminimal.*" } + SDL_copy { "icon.bmp" } \ No newline at end of file diff --git a/premake/projects/teststreaming.lua b/premake/projects/teststreaming.lua new file mode 100755 index 0000000000000..8f76b06f893f9 --- /dev/null +++ b/premake/projects/teststreaming.lua @@ -0,0 +1,29 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +teststreaming.lua + + This file defines the teststreaming test project. It depends on the SDL2main + and SDL2 projects. It will not build on iOS or Cygwin. +]] + +SDL_project "teststreaming" + SDL_kind "ConsoleApp" + SDL_notos "ios|cygwin" + SDL_language "C" + SDL_sourcedir "../test" + SDL_projectLocation "tests" + SDL_projectDependencies { "SDL2main", "SDL2" } + SDL_files { "/teststreaming.*" } + SDL_copy { "moose.dat" } \ No newline at end of file diff --git a/premake/projects/testthread.lua b/premake/projects/testthread.lua new file mode 100755 index 0000000000000..43e018f1b7ea0 --- /dev/null +++ b/premake/projects/testthread.lua @@ -0,0 +1,28 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +testthread.lua + + This file defines the testthread test project. It depends on the SDL2main + and SDL2 projects. It will not build on iOS. +]] + +SDL_project "testthread" + SDL_kind "ConsoleApp" + SDL_notos "ios" + SDL_language "C" + SDL_sourcedir "../test" + SDL_projectLocation "tests" + SDL_projectDependencies { "SDL2main", "SDL2" } + SDL_files { "/testthread.*" } \ No newline at end of file diff --git a/premake/projects/testtimer.lua b/premake/projects/testtimer.lua new file mode 100755 index 0000000000000..54e4d50fa39ff --- /dev/null +++ b/premake/projects/testtimer.lua @@ -0,0 +1,28 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +testtimer.lua + + This file defines the testtimer test project. It depends on the SDL2main + and SDL2 projects. It will not build on iOS. +]] + +SDL_project "testtimer" + SDL_kind "ConsoleApp" + SDL_notos "ios" + SDL_language "C" + SDL_sourcedir "../test" + SDL_projectLocation "tests" + SDL_projectDependencies { "SDL2main", "SDL2" } + SDL_files { "/testtimer.*" } \ No newline at end of file diff --git a/premake/projects/testver.lua b/premake/projects/testver.lua new file mode 100755 index 0000000000000..4b2152a91d503 --- /dev/null +++ b/premake/projects/testver.lua @@ -0,0 +1,28 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +testver.lua + + This file defines the testver test project. It depends on the SDL2main + and SDL2 projects. It will not build on iOS. +]] + +SDL_project "testver" + SDL_kind "ConsoleApp" + SDL_notos "ios" + SDL_language "C" + SDL_sourcedir "../test" + SDL_projectLocation "tests" + SDL_projectDependencies { "SDL2main", "SDL2" } + SDL_files { "/testver.*" } \ No newline at end of file diff --git a/premake/projects/testwm2.lua b/premake/projects/testwm2.lua new file mode 100755 index 0000000000000..53a4911c0978e --- /dev/null +++ b/premake/projects/testwm2.lua @@ -0,0 +1,28 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +testwm2.lua + + This file defines the testwm2 test project. It depends on the SDL2main, + SDL2test, and SDL2 projects. It will not build on iOS or Cygwin. +]] + +SDL_project "testwm2" + SDL_kind "ConsoleApp" + SDL_notos "ios|cygwin" + SDL_language "C" + SDL_sourcedir "../test" + SDL_projectLocation "tests" + SDL_projectDependencies { "SDL2main", "SDL2test", "SDL2" } + SDL_files { "/testwm2.*" } \ No newline at end of file diff --git a/premake/projects/torturethread.lua b/premake/projects/torturethread.lua new file mode 100755 index 0000000000000..3f3e7001ddfd6 --- /dev/null +++ b/premake/projects/torturethread.lua @@ -0,0 +1,28 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +torturethread.lua + + This file defines the torturethread test project. It depends on the SDL2main + and SDL2 projects. It will not build on iOS. +]] + +SDL_project "torturethread" + SDL_kind "ConsoleApp" + SDL_notos "ios" + SDL_language "C" + SDL_sourcedir "../test" + SDL_projectLocation "tests" + SDL_projectDependencies { "SDL2main", "SDL2" } + SDL_files { "/torturethread.*" } \ No newline at end of file diff --git a/premake/projects/touch.lua b/premake/projects/touch.lua new file mode 100755 index 0000000000000..9868700383b68 --- /dev/null +++ b/premake/projects/touch.lua @@ -0,0 +1,28 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +touch.lua + + This file defines the touch demo project for iOS. This project is only + compatible on iOS and depends on SDL2. It is a windowed application. +]] + +SDL_project "touch" + SDL_kind "WindowedApp" + SDL_os "ios" + SDL_language "C" + SDL_sourcedir "../Xcode-iOS/Demos" + SDL_projectLocation "Demos" + SDL_projectDependencies { "SDL2" } + SDL_files { "/src/common.*", "/src/touch.*", "/Info.plist", "/data/stroke.bmp" } \ No newline at end of file diff --git a/premake/util/sdl_check_compile.lua b/premake/util/sdl_check_compile.lua new file mode 100755 index 0000000000000..3371359cf7076 --- /dev/null +++ b/premake/util/sdl_check_compile.lua @@ -0,0 +1,307 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +sdl_check_compile.lua + + This file provides various utility functions which allow the meta-build + system to perform more complex dependency checking than premake initially + allows. This is done using the (currently) GCC toolchain to build generated + C files which try to import certain headers, link to certain functions, link + to certain libraries, or a combination of the above. It supports providing a + custom source to try and build, link, and/or run per the implementation's + choice, so the possibilities are nearly endless with that this system is + capable of, though it could always do with more flexibility. +]] + + +local cxx = "gcc" +local cxx_flags = "" +local cxx_io_flags = "-o premakecheck.o -c premakecheck.c 2> /dev/null" +local cxx_includes = { } + +local link = "gcc" +local link_flags = "" +local link_io_flags = "-o premakecheck.out premakecheck.o" +local link_end = " 2> /dev/null" + +local run = "./premakecheck.out" +local run_flags = "" +local run_io_flags = " > ./premakecheck.stdout" + +local checked_printf = false +local has_printf = false + +-- Set the application used to compile the generated files. +function set_cxx(compiler) + cxx = compiler +end + +-- Set custom flags for the compiler. +function set_cxx_flags(flags) + cxx_flags = flags +end + +-- Include a search directory for libraries. +local function include_library_dir(dir) + link_flags = link_flags .. "-L" .. dir .. " " +end + +-- Include a library to be linked durnig the link step. +local function link_library(lib) + link_flags = link_flags .. "-l" .. lib .. " " +end + +-- Reset the link flags. +local function reset_link_flags() + link_flags = "" +end + +-- Creates the build command line to be executed. +local function build_compile_line() + return cxx .. " " .. cxx_flags .. " " .. cxx_io_flags +end + +-- Creates the link command line to be executed. +local function build_link_line() + return link .. " " .. link_io_flags .. " " .. link_flags .. link_end +end + +-- Create the run line to be executed. +local function build_run_line() + return run .. " " .. run_flags .. " " .. run_io_flags +end + +-- Builds a list of preprocessor include directives for all the include files +-- successfully found so far by these functions, so as to perform automatic +-- feature checking for the clientside code. +local function build_includes() + local includes = "" + for _,v in ipairs(cxx_includes) do + includes = includes .. '#include "' .. v .. '"\n' + end + return includes +end + +-- Cleanup the generated build environment. +local function cleanup_build() + os.remove("./premakecheck.c") + os.remove("./premakecheck.o") + os.remove("./premakecheck.out") + os.remove("./premakecheck.stdout") +end + +-- Check if a source builds, links, and or/runs, where running depends on +-- linking and linking depends on building. The return from this function is +-- a triple, where the first is a boolean value indicating if it successfully +-- was built, the second is a boolean value indicating if it successfully +-- linked, and the third represents nil if it was not run or run correctly, or +-- the output from the program executed (may be empty for no output). +local function check_build_source(source, link, run) + local file = fileopen("./premakecheck.c", "wt") + file:write(source) + file:close() + local result = os.execute(build_compile_line()) + if not link then + cleanup_build() + if result == 0 then + return true, false, nil -- compile, no link, no run + end + return false, false, nil -- no compile, no link, no run + end + -- try linking, too + if result ~= 0 then + -- can't link if it doesn't compile + cleanup_build() + return false, false, nil -- no compile, no link, no run + end + result = os.execute(build_link_line()) + if not run or result ~= 0 then -- have to link to run + cleanup_build() + return true, result == 0, nil -- compile, maybe link, no run + end + result = os.execute(build_run_line()) + local output = readfile("./premakecheck.stdout", "rt") + cleanup_build() + return true, true, output -- compile, link, ran +end + +-- Given C source code, determine whether the source code will compile in the +-- present environment. Returns true if the source was successfully compiled, or +-- false if otherwise. +function check_cxx_source_compiles(source) + local r1, _, __ = check_build_source(source, false, false) + return r1 +end + +-- Given C source code, determine whether the source code can be built into a +-- working executable. That is, it will check if the code both compiles and +-- links. Returns true if the code was successfully built (compiled and linked), +-- or false if otherwise. +function check_cxx_source_builds(source) + local r1, r2, _ = check_build_source(source, true, false) + return r1 and r2 +end + +-- Given C source code, attempt to compile, link, and execute the source code. +-- This function will return two values. The first is a boolean indicating +-- whether the source code was successfully run (meaning it was compiled, built, +-- and ran successfully), and the second value returned is the actual output +-- from running the application, or nil if it did not run correctly or was not +-- built. The output may be an empty string if the code does not print anything +-- to stdout. +function check_cxx_source_runs(source) + local r1, r2, r3 = check_build_source(source, true, true) + return r1 and r2 and (r3 ~= nil), r3 +end + +-- Given a header file, check whether the header file is visible to the compiler +-- in the given environment. Returns a boolean indicating thus. If a header file +-- is found in either of these functions, it will be added to a list of headers +-- that can be used in subsequent dependency checks. +function check_include_file(inc) + return check_include_files(inc) +end + +-- Given a variable list of header files, check whether all of the includes are +-- visible in the given environment. Every file must be included in order for +-- this function to return true. +function check_include_files(...) + local source = "" + for _, v in ipairs{...} do + source = source .. '#include "' .. v .. '"\n' + end + local result = check_cxx_source_compiles(source) + if result then + for _, v in ipairs{...} do + table.insert(cxx_includes, v) + end + end + return result +end + +-- Given a directory, determine whether the directory contains any header files. +-- Unfortunately it does assume the extension is .h, but this can be altered in +-- future versions of this software. The function returns true if the directory +-- (or any of its subdirectories) contain .h files, or false if otherwise (such +-- as if the directory does not exist). +function check_include_directory(incDir) + incDir = incDir:gsub("\\", "/"):gsub("//", "/") + if incDir:sub(#incDir, #incDir) ~= "/" then + incDir = incDir .. "/" + end + return #os.matchfiles(incDir .. "**.h") > 0 +end + +-- Given a variable list of directories, iteratively check if each one contains +-- header files, per the functionality of check_include_directory. This function +-- returns true if and only if every listed directory or its subdirectories +-- contain .h files. +function check_include_directories(...) + for _, v in ipairs{...} do + if not check_include_directory(v) then + return false + end + end + return true +end + +-- Given a function name, attempt to determine whether the function can be found +-- within all of the known include files. Known include files are derived from +-- the check_include_file(s) functions. +function check_function_exists(func) + local source = build_includes() + source = source .. 'int main(int argc, char **argv) {\n' + source = source .. '\tvoid *check = (void *) ' .. func .. ';\n' + source = source .. '\treturn 0;\n' + return check_cxx_source_builds(source .. '}') +end + +-- Given a library, a function that must exist within the library, and an +-- include file prototyping the function, this function determines whether those +-- three variables are able to build a working executable. That is, if a +-- function can be properly linked to using a given library, then the library +-- can be assumed to exist. Returns true if and only if the function was +-- correctly linked to. +function check_library_exists(lib, func, inc) + local source = build_includes() + if inc ~= nil then + source = source .. '#include "' .. inc .. '"\n' + end + source = source .. 'int main(int argc, char **argv) {\n' + source = source .. '\tvoid *check = (void *) ' .. func .. ';\n' + source = source .. '\treturn 0;\n' + if lib ~= nil then + link_library(lib) + end + local result = check_cxx_source_builds(source .. '}') + reset_link_flags() + return result +end + +-- This is a merge variable list version of the check_library_exists function. +-- The thing to note with this function is that it will return true for the +-- first library found to correctly link to the function. This function is used +-- to determine whether the function is found in a list of libraries, not if it +-- is found in every one of the libraries. +function check_library_exists_multiple(func, inc, ...) + for _,v in ipairs{...} do + if check_library_exists(v, func, inc) then + return true + end + end + return false +end + +-- This is a wrapper for the check_library_exists function that will also +-- attempt to locate the library in question, in case it's not in a path the +-- compiler is already aware of. This function has the same return consequences +-- as check_library_exists. +function check_library_exists_lookup(lib, func, inc) + local dir = os.findlib(lib) + if dir == nil then + return false + end + include_library_dir(dir) + return check_library_exists(lib, func, inc) +end + +-- Given a valid C type name, this function generates a program that will print +-- the size of the type using the sizeof operator to the console, then parse the +-- size to indicate the byte size of the type on this platform. The resulting +-- executable is dependent on stdio and the printf function, which it safely +-- checks for behind the scenes. If these dependencies are not found for +-- whatever reason, this function returns 0, otherwise it returns a proper +-- numerical value representing the size of the specified type. +function check_type_size(typename) + if not checked_printf then + checked_printf = true + has_printf = check_include_file("stdio.h") and check_function_exists("printf") + if not has_printf then + print("Warning: cannot check the size of a type without stdio and printf.") + end + end + if not has_printf then + return 0 + end + local source = '#include "stdio.h"\n' + source = source .. 'int main(int argc, char **argv) {\n' + source = source .. '\tprintf("%d", sizeof(' .. typename .. '));\n' + source = source .. '\treturn 0;\n' + local success, result = check_cxx_source_runs(source .. '}'); + if not success then + print("Warning: could not get the size of type: " .. typename) + return 0 + end + return tonumber(result) +end \ No newline at end of file diff --git a/premake/util/sdl_dependency_checkers.lua b/premake/util/sdl_dependency_checkers.lua new file mode 100755 index 0000000000000..4f771e2010e39 --- /dev/null +++ b/premake/util/sdl_dependency_checkers.lua @@ -0,0 +1,204 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +sdl_dependency_checkers.lua + + This script contains a bunch of functions which determine whether certain + dependencies exist on the current platform. These functions are able to use + any and all available utilities for trying to determine both whether the + dependency is available on this platform, and how to build to the dependency. + There are a few limitations with these functions, but many of the limitations + can be mitigated by using the dependency definition functions in the project + definition files. + + Each function in this file, in order to be a valid dependency function, must + return a table with the following entries: + + 'found' = boolean value indicating whether the dependency was found + 'incDirs' = table of include directory strings, or nil if none are needed + 'libDirs' = table of library directory strings, or nil if none are needed + 'libs' = table of libraries to link to, or nil if none are needed + + All functions must be properly registered with the project definition system + in order to be properly referenced by projects. +]] + +-- dependency functions must return the following: +-- table with an element found, incDirs, libDirs, and libs +function openGLDep() + print("Checking OpenGL dependencies...") + if SDL_getos() == "macosx" then + -- mac should always have support for OpenGL... + return { found = true, libs = { "OpenGL.framework" } } + elseif SDL_getos() == "ios" then + --...unless on iOS + print("Desktop OpenGL is not supported on iOS targets.") + return { found = false, libs = { "OpenGL.framework" } } + elseif SDL_getos() == "cygwin" then + print("OpenGL is not currently supported on Cygwin.") + return { found = false, libDirs = { }, libs = { "OpenGL32" } } + end + local libpath = nil + local libname = nil + if SDL_getos() == "windows" or SDL_getos() == "mingw" then + libpath = os.findlib("OpenGL32") + libname = "OpenGL32" + else -- *nix + libpath = os.findlib("libGL") + libname = "GL" + end + local foundLib = libpath ~= nil + -- another way to possibly find the dependency on windows + --if not foundLib then + -- foundLib, libpath = find_dependency_dir_windows(nil, "C:/Program Files (x86);C:/Program Files", "Microsoft SDKs", "Lib") + --end + if not foundLib then return { found = false } end + if SDL_getos() == "mingw" then + libpath = libpath:gsub("\\", "/"):gsub("//", "/") + end + return { found = foundLib, libDirs = { }, libs = { libname } } +end + +function directXDep() + print("Checking DirectX dependencies...") + -- enable this for more correct searching, but it's much slower + local searchPath = nil --os.getenvpath("ProgramFiles", "ProgramFiles(x86)") + local foundInc, incpath = find_dependency_dir_windows("DXSDK_DIR", searchPath, "DirectX", "Include") + local foundLib, libpath = find_dependency_dir_windows("DXSDK_DIR", searchPath, "DirectX", "Lib/x86") + if not foundInc or not foundLib then return { found = false } end + -- XXX: hacked mingw check... + if foundInc and SDL_getos() == "mingw" then + incpath = incpath:gsub("%$%(DXSDK_DIR%)", os.getenv("DXSDK_DIR")):gsub("\\", "/"):gsub("//", "/") + libpath = libpath:gsub("%$%(DXSDK_DIR%)", os.getenv("DXSDK_DIR")):gsub("\\", "/"):gsub("//", "/") + end + if SDL_getos() == "mingw" then + print("DirectX is not currently supported on MinGW targets.") + return { found = false, incDirs = { incpath }, libDirs = { libpath } } + end + if SDL_getos() == "cygwin" then + print("DirectX is not currently supported on Cygwin targets.") + return { found = false, incDirs = { incpath }, libDirs = { libpath } } + end + return { found = true, incDirs = { incpath }, libDirs = { libpath } } +end + +function dbusDep() + print("Checking for D-Bus support...") + if not check_include_directories("/usr/include/dbus-1.0", "/usr/lib/x86_64-linux-gnu/dbus-1.0/include") then + print("Warning: D-Bus unsupported!") + return { found = false } + end + return { found = true, incDirs = { "/usr/include/dbus-1.0", "/usr/lib/x86_64-linux-gnu/dbus-1.0/include" } } +end + +function alsaDep() + print("Checking for ALSA support...") + if not check_include_files("alsa/asoundlib.h") + or os.findlib("asound") == nil + or not check_library_exists_lookup("asound", "snd_pcm_open", "alsa/asoundlib.h") + or not SDL_assertdepfunc("DLOpen") then + print("Warning: ALSA unsupported!") + return { found = false } + end + return { found = true } +end + +function pulseAudioDep() + print("Checking for PulseAudio support...") + if os.findlib("libpulse-simple") == nil + or not SDL_assertdepfunc("DLOpen") then + print("Warning: PulseAudio unsupported!") + return { found = false } + end + return { found = true } +end + +function esdDep() + print("Checking for ESD support...") + if os.findlib("esd") == nil + or not SDL_assertdepfunc("DLOpen") then + print("Warning: ESD unsupported!") + return { found = false } + end + return { found = true } +end + +function nasDep() + print("Checking for NAS support...") + if not check_include_file("audio/audiolib.h") + or not SDL_assertdepfunc("DLOpen") then + print("Warning: NAS unsupported!") + return { found = false } + end + return { found = true } +end + +function ossDep() + print("Checking for OSS support...") + if not check_cxx_source_compiles([[ + #include + int main() { int arg = SNDCTL_DSP_SETFRAGMENT; return 0; }]]) + and not check_cxx_source_compiles([[ + #include + int main() { int arg = SNDCTL_DSP_SETFRAGMENT; return 0; }]]) then + print("Warning: OSS unsupported!") + return { found = false } + end + return { found = true } +end + +function dlOpenDep() + print("Checking for DLOpen support...") + if not check_library_exists_multiple("dlopen", "dlfcn.h", "dl", "tdl") then + print("Warning: DLOpen unsupported!") + return { found = false } + end + return { found = true, libs = { "dl" } } +end + +function x11Dep() + print("Checking for X11 support...") + for _, v in ipairs { "X11", "Xext", "Xcursor", "Xinerama", "Xi", "Xrandr", "Xrender", "Xss", "Xxf86vm" } do + if os.findlib(v) == nil then + print("Warning: X11 unsupported!") + return { found = false } + end + end + if not check_include_files("X11/Xcursor/Xcursor.h", "X11/extensions/Xinerama.h", + "X11/extensions/XInput2.h", "X11/extensions/Xrandr.h", "X11/extensions/Xrender.h", + "X11/extensions/scrnsaver.h", "X11/extensions/shape.h", "X11/Xlib.h", + "X11/extensions/xf86vmode.h") then + print("Warning: X11 unsupported!") + return { found = false } + end + if not SDL_assertdepfunc("DLOpen") then + print("Warning: X11 unsupported!") + return { found = false } + end + -- XXX: shared memory check... + -- there's a LOT more to check to properly configure X11... + return { found = true, libs = { "X11" } } +end + +-- register all of these dependency functions with the definition system +SDL_registerDependencyChecker("OpenGL", openGLDep) +SDL_registerDependencyChecker("DirectX", directXDep) +SDL_registerDependencyChecker("DBus", dbusDep) +SDL_registerDependencyChecker("ALSA", alsaDep) +SDL_registerDependencyChecker("PulseAudio", pulseAudioDep) +SDL_registerDependencyChecker("ESD", esdDep) +SDL_registerDependencyChecker("NAS", nasDep) +SDL_registerDependencyChecker("OSS", ossDep) +SDL_registerDependencyChecker("DLOpen", dlOpenDep) +SDL_registerDependencyChecker("X11", x11Dep) \ No newline at end of file diff --git a/premake/util/sdl_depends.lua b/premake/util/sdl_depends.lua new file mode 100755 index 0000000000000..fb25ddb09555c --- /dev/null +++ b/premake/util/sdl_depends.lua @@ -0,0 +1,74 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +-- This is kept just for windows because the other platforms use different means +-- for determining dependence or compatibility. + +--[[ +sdl_depends.lua + + This file simply contains a function for determining whether a dependency + exists on the Windows platform, given a possible environmental variable, + delimited search paths, and a main and/or sub-directory paths for more + elaborate pattern matching. +]] + +-- find_dependency_dir_windows(env, main_search_path, main_dir_path) +-- Attempt to resolve a dependency (true or false) folder based on either an +-- environmental variable, start search path, or both. If both are present, +-- the environmental variable will be preferred. If neither are present, this +-- function returns false. +-- +-- Arguments: +-- env The name of the environmental variable to treat as a path +-- main_search_paths Paths to look for the main directory in +-- main_dir_path The a path that must be contained between main_search_path and sub_dir_path +-- sub_dir_path The path of the directories that should exist at the searched path +function find_dependency_dir_windows(env, main_search_paths, main_dir_path, sub_dir_path) + if not os.is("windows") then -- if not windows, then fail + return false + end + if env == nil and (main_search_paths == nil or #main_search_paths == 0) then + return false + end + local env_path = nil + local main_path = nil + if env ~= nil then env_path = os.getenv(env) end + local search_table = { n = 0 } + if main_search_paths ~= nil then + for k,main_search_path in ipairs(explode(main_search_paths, ";")) do + local directories = os.matchdirs(main_search_path .. "/**" .. main_dir_path .. "*") + for k,v in pairs(directories) do + table.insert(search_table, v) + end + end + end + if env_path ~= nil then table.insert(search_table, env_path) end + local search_path = table.concat(search_table, ";") + local result_path = os.dirpathsearch(sub_dir_path, search_path, ";") + if result_path == nil then + return false + end + local found_dir = os.isdir(result_path) + local abs_path = path.getabsolute(result_path) + if found_dir and env_path ~= nil then + abs_path = abs_path:gsub("\\", "/") + env_path = env_path:gsub("\\", "/") + local pos = abs_path:indexOf(env_path) + if pos ~= nil then + abs_path = abs_path:sub(1, pos - 1) .. "$(" .. env .. ")/" .. abs_path:sub(pos + #env_path) + end + end + -- we want the path in terms of '/' + return found_dir, abs_path +end \ No newline at end of file diff --git a/premake/util/sdl_file.lua b/premake/util/sdl_file.lua new file mode 100755 index 0000000000000..015897e50ace0 --- /dev/null +++ b/premake/util/sdl_file.lua @@ -0,0 +1,141 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +sdl_file.lua + + This function contains a wrapper for the I/O file operations, providing a few + custom functions which simplify the file I/O process (especially useful for + the vast amount of generation used by the meta-build system). +]] + +-- Given a filename and open mode (look at io.open for more information), opens +-- the file with various contained functions for printing to the file, writing +-- to the file, reading from the file, or closing the file. If the filename is +-- nil, then this will open a file in a special text mode. In that case, the +-- mode is ignored. Returned is an instanced table with all of the +-- aforementioned functions. +-- +-- The print function is associated with textprint/fileprint, the write function +-- with textwrite/filewrite, the read function with fileread, and the close +-- function with textclose/fileclose. +function fileopen(file, mode) + if file == nil then + return { texth = "", print = textprint, write = textwrite, read = nil, close = textclose } + else + return { fileh = io.open(file, mode), print = fileprint, write = filewrite, read = fileread, close = fileclose } + end +end + +-- Given a filename and file mode, reads the entire contents of the file and +-- returns the contents as a string. +function readfile(file, mode) + local file = fileopen(file, mode) + local content = file:read() + file:close() + return content +end + +-- Given a file, the number of tabs to indent, and a line to print, append the +-- line tabbed n times with an appended newline to the end of the input text. +function textprint(f, tabs, line) + for i = 0, tabs - 1, 1 do + f.texth = f.texth .. "\t" + end + f.texth = f.texth .. line .. "\n" +end + +-- Given a file, the number of tabs to indent, and a line to print, append the +-- line tabbed n times with an appended newline to the end of the input file. +function fileprint(f, tabs, line) + for i = 0, tabs - 1, 1 do + f.fileh:write("\t") + end + f.fileh:write(line .. "\n") +end + +-- Given a file and some text, append the text to the end of the input text. +function textwrite(f, text) + f.texth = f.texth .. text +end + +-- Given a file and some text, append the text to the end of the input file. +function filewrite(f, text) + f.fileh:write(text) +end + +-- Given a file, read all the contents of the file and return them as a string. +function fileread(file) + return file.fileh:read("*all") +end + +-- Given a file opened in text mode, return the result of the current file +-- operations as a text string. +function textclose(file) + return file.texth +end + +-- Given a file opened regularly, close the file handle resource, preventing +-- any future I/O operations. +function fileclose(file) + file.fileh:close() +end + +-- Given a source path, builds a table containing all directories and recursive +-- subdirectories which contain files, and returns the table. Each entry in the +-- table will have a '/' at the end of its path, plus they will all be relative +-- to the parent source path. The table will contain a single entry with the +-- value '/' to indicate the source path itself. +function createDirTable(sourcePath) + local dirs = os.matchdirs(sourcePath.."/**") + for k,d in pairs(dirs) do + dirs[k] = string.sub(d, #sourcePath + 1) .. "/" + end + table.insert(dirs, "/") + return dirs +end + +-- This works like os.pathsearch, but for directories. Look at the premake +-- documentation for os.pathsearch for more information. +os.dirpathsearch = function(subdir, path, path_delimiter) + for i,p in ipairs(explode(path, path_delimiter)) do + local needle = p .. "/" .. subdir + if os.isdir(needle) then + return needle + end + end + return nil +end + +-- Given a variable number of environmental variable names, this will join them +-- together based on the current OS path delimeter and quietly ignoring those +-- variables which do not exist on this system. The resulting path is always +-- normalized for Unix-based path separators, regardless of the system. +os.getenvpath = function(...) + local path = "" + local pathDelimeter = ":" + if os.is("windows") then + pathDelimeter = ";" + end + for i,a in ipairs(arg) do + local value = os.getenv(a) + if value then + if #path > 0 then + path = path .. pathDelimeter + end + path = path .. value + end + end + -- normalize path to unix + return path:gsub("\\", "/"):gsub("//", "/") +end \ No newline at end of file diff --git a/premake/util/sdl_gen_config.lua b/premake/util/sdl_gen_config.lua new file mode 100755 index 0000000000000..8e59e67d3aeb4 --- /dev/null +++ b/premake/util/sdl_gen_config.lua @@ -0,0 +1,68 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +sdl_gen_config.lua + + Given a series of set configuration values from the project definitions, + this file contains a series of functions that generate valid preprocessor + definitions to enable or disable various features of the SDL2 library. These + definitions are pasted into a template SDL config header file, which is then + saved in the local directory and referenced to in generated project files. + + This file depends on sdl_file.lua. +]] + +-- The line that must exist in the template file in order to properly paste +-- the generated definitions. +local searchKey = "/%* Paste generated code here %*/\n" + +local configFile, templateFileContents +local insertLocation + +-- This function begins config header generation given the name of the generated +-- file and the name of the template file to use. +function startGeneration(file, template) + configFile = fileopen(file, "wt") + templateFileContents = readfile(template, "rt") + insertLocation = templateFileContents:find(searchKey) + if insertLocation then + configFile:write(templateFileContents:sub(1, insertLocation - 1)) + end +end + +-- Adds a table of configuration values to the generated file. Each +-- configuration line is wrapped around a preprocessor definition check, so they +-- can be manually overwritten by the developer if necessary. The definition +-- pastes string versions of both the key and the value on the line, where +-- either is allowed to be empty. That means the table stores key-value pairs. +function addConfig(tbl) + -- if no insert location, don't paste anything + if not insertLocation then return end + for k,v in pairs(tbl) do + configFile:print(0, "#ifndef " .. k) + configFile:print(0, "#define " .. tostring(k) .. " " .. tostring(v)) + configFile:print(0, "#endif") + end +end + +-- Finishes the generation and writes the remains of the template file into the +-- generated config file. +function endGeneration() + if insertLocation then + configFile:write(templateFileContents:sub(insertLocation + #searchKey - 2)) + else -- write entire file since nothing is being pasted + configFile:write(templateFileContents) + end + configFile:close() +end \ No newline at end of file diff --git a/premake/util/sdl_projects.lua b/premake/util/sdl_projects.lua new file mode 100755 index 0000000000000..0a891700dc536 --- /dev/null +++ b/premake/util/sdl_projects.lua @@ -0,0 +1,461 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +sdl_projects.lua + + This file contains all the functions which are needed to define any project + within the meta-build system. Many of these functions serve as + pseudo-replacements for many similarly named premake functions, and that is + intentional. Even the implementation of these functions are intended to look + similar to regular premake code. These functions serve to dramatically + simplify the project definition process to just a few lines of code, versus + the many more needed for projects defined purely with premake. + + This approach is possible because this meta-build system adds another layer of + indirection to the premake system, creating a sort of 'meta-meta-build' + system. Nevertheless, there is a lot more flexibility because the meta-build + system itself can be used to check for dependencies in a much more complex way + than premake originally intended. All of the functions useful to the project + definition system are contained in this file and are documented. +]] + +projects = { } + +local currentProject = nil +local currentDep = nil +local nextFuncCompat = true -- by default, unless state otherwise changed +local dependencyFunctions = { } +local dependencyResults = { } -- for when the dependencies are executed + +-- query whether this function is compatible; resets internal state of +-- compatibility to true until SDL_isos is called again +local function oscompat() + local compat = nextFuncCompat + nextFuncCompat = true + return compat +end + +-- determine whether the specific OS name is within a pattern. +local function osmatch(name, pattern) + local checks = pattern:explode('|') + for i,v in pairs(checks) do + if name == v then + return true + end + end + return false +end + +-- Registers a dependency checker function based on a name. This function is +-- used in order to determine compatibility with the current system for a given +-- SDL_dependency. See SDL_depfunc for more information. +-- +-- Specifies a function which will be invoked upon determining whether this +-- dependency is valid for the current system setup (ie, whether the system +-- has the right architecture, operating system, or even if it's installed). +-- The dependency function takes no arguments, but it must return the following +-- values: +-- +-- [includePaths] [libPaths] [inputLibLibraries] +-- +-- The last three are optional, unless foundDep is true. The name should be +-- descriptive of the outside dependency, since it may be shown to the user. +-- This function is intended to be used only after invoking SDL_dependency. +function SDL_registerDependencyChecker(name, func) + dependencyFunctions[name:lower()] = func +end + +-- Initializes the definition of a SDL project given the name of the project. +function SDL_project(name) + if not oscompat() then return end + currentProject = { } + currentProject.name = name + currentProject.compat = true + projects[name] = currentProject + currentProject.dependencyTree = { } + -- stores which dependencies have already been checked on behalf of this + -- project + currentProject.dependencyValues = { } + currentDep = nil +end + +-- Specifies the build kind of the SDL project (e.g. StaticLib, SharedLib, +-- ConsoleApp, etc.), based on premake presets. +function SDL_kind(k) + if not oscompat() then return end + currentProject.kind = k +end + +-- Specifies which platforms this project supports. Note: this list is not the +-- exact list of supported platforms in the generated project. The list of +-- platforms this project supports will be the unique list of all combined +-- projects for this SDL solution. Thus, only one project needs to actually +-- maintain a list. This function is additive, that is, everytime it is called +-- it adds it to a unique list of platforms +function SDL_platforms(tbl) + if not oscompat() then return end + if not currentProject.platforms then + currentProject.platforms = { } + end + for k,v in pairs(tbl) do + currentProject.platforms[#currentProject.platforms + 1] = v + end +end + +-- Specifies the programming language of the project, such as C or C++. +function SDL_language(k) + if not oscompat() then return end + currentProject.language = k +end + +-- Specifies the root directory in which the meta-build system should search for +-- source files, given the paths and files added. +function SDL_sourcedir(src) + if not oscompat() then return end + currentProject.sourcedir = src +end + +-- Specifies the destination location of where the IDE files related to the +-- project should be saved after generation. +function SDL_projectLocation(loc) + if not oscompat() then return end + currentProject.projectLocation = loc +end + +-- Specifies a table of files that should be copied from the source directory +-- to the end result build directory of the binary file. +function SDL_copy(tbl) + if not oscompat() then return end + currentProject.copy = tbl +end + +-- Specifies a list of other SDL projects in this workspace the currently active +-- project is dependent on. If the dependent project is a library, the binary +-- result will be copied from its directory to the build directory of the +-- currently active project automatically. +function SDL_projectDependencies(tbl) + if not oscompat() then return end + currentProject.projectDependencies = tbl +end + +-- Specifies a list of compiler-level preprocessor definitions that should be +-- set in the resulting project upon compile time. This adds to the current +-- table of defines. +function SDL_defines(tbl) + if not oscompat() then return end + if not currentProject.defines then + currentProject.defines = { } + end + for k,v in pairs(tbl) do + currentProject.defines[#currentProject.defines + 1] = v + end +end + +-- Initializes an outside dependency this project has, such as X11 or DirectX. +-- This function, once invoked, may change the behavior of other SDL +-- project-related functions, so be sure to be familiar with all the functions +-- and any specified behavior when used around SDL_dependency. +function SDL_dependency(name) + if not oscompat() then return end + currentDep = { nil, compat = true, } + currentDep.name = name + table.insert(currentProject.dependencyTree, currentDep) +end + +-- Special function for getting the current OS. This factors in whether the +-- metabuild system is in MinGW, Cygwin, or iOS mode. +function SDL_getos() + if _OPTIONS["ios"] ~= nil then + return "ios" + elseif _OPTIONS["mingw"] ~= nil then + return "mingw" + elseif _OPTIONS["cygwin"] ~= nil then + return "cygwin" + end + return os.get() +end + +-- Specifies which operating system this dependency targets, such as windows or +-- macosx, as per premake presets. +function SDL_os(name) + if not oscompat() then return end + if not currentProject then return end + if not currentDep then + currentProject.opsys = name + currentProject.compat = osmatch(SDL_getos(), name) + else + currentDep.opsys = name + currentDep.compat = osmatch(SDL_getos(), name) + end +end + +-- Specifies which operating system this dependency does not targets. This is +-- for nearly platform-independent projects or dependencies that will not work +-- on specific systems, such as ios. +function SDL_notos(name) + if not oscompat() then return end + if not currentProject then return end + if not currentDep then + currentProject.opsys = "~" .. name + currentProject.compat = not osmatch(SDL_getos(), name) + else + currentDep.opsys = "~" .. name + currentDep.compat = not osmatch(SDL_getos(), name) + end +end + +-- Changes the internal state of function compatibility based on whether the +-- current os is the one expected; the next function will be affected by this +-- change, but no others. The name can be a pattern using '|' to separate +-- multiple operating systems, such as: +-- SDL_isos("windows|macosx") +function SDL_isos(name) + nextFuncCompat = osmatch(SDL_getos(), name) +end + +-- Same as SDL_isos, except it negates the internal state for exclusion +-- checking. +function SDL_isnotos(name) + nextFuncCompat = not osmatch(SDL_getos(), name) +end + +-- Changes the internal state of function compatibility based on whether the +-- current system is running a 64bit Operating System and architecture; the +-- next function will be affected by this change, but none thereafter. +function SDL_is64bit() + nextFuncCompat = os.is64bit() +end + +-- Same as SDL_is64bit, except it negates the internal state for +-- exclusion checking. +function SDL_isnot64bit() + nextFuncCompat = not os.is64bit() +end + +-- Look at SDL_depfunc and SDL_notdepfunc for detailed information about this +-- function. +local function SDL_depfunc0(funcname, exclude) + if not oscompat() then return end + if not currentDep.compat then return end + local force = _OPTIONS[funcname:lower()] ~= nil + local func = dependencyFunctions[funcname:lower()] + if not func then + print("Warning: could not find dependency function named: " .. funcname) + currentDep.compat = false + return + end + local cachedFuncResults = dependencyResults[funcname:lower()] + local depFound, depInc, depLib, depInput + if cachedFuncResults then + depFound = cachedFuncResults.depFound + -- just skip the rest of the function, the user was already warned + -- exclude mode varies the compatibility slightly + if force then + depFound = true + end + if not depFound and not exclude then + currentDep.compat = false + return + elseif depFound and exclude then + currentDep.compat = false + return + end + depInc = cachedFuncResults.depInc + depLib = cachedFuncResults.depLib + depInput = cachedFuncResults.depInput + else + local result = func() + if result.found then + depFound = result.found + else + depFound = false + end + if force then + depFound = true + end + if result.incDirs then + depInc = result.incDirs + else + depInc = { } + end + if result.libDirs then + depLib = result.libDirs + else + depLib = { } + end + if result.libs then + depInput = result.libs + else + depInput = { } + end + cachedFuncResults = { } + cachedFuncResults.depFound = depFound + cachedFuncResults.depInc = depInc + cachedFuncResults.depLib = depLib + cachedFuncResults.depInput = depInput + dependencyResults[funcname:lower()] = cachedFuncResults + if not depFound and not exclude then + currentDep.compat = false + return + elseif depFound and exclude then + currentDep.compat = false + return + end + end + -- we only want to embed this dependency if we're not in exclude mode + if depFound and not exclude then + local dependency = { } + if not currentDep.includes then + currentDep.includes = { } + end + for k,v in pairs(depInc) do + currentDep.includes[v] = v + end + if not currentDep.libs then + currentDep.libs = { } + end + for k,v in pairs(depLib) do + currentDep.libs[v] = v + end + if not currentDep.links then + currentDep.links = { } + end + for k,v in pairs(depInput) do + currentDep.links[v] = v + end + else -- end of dependency found check + -- if we are not excluding this dependency, then print a warning + -- if not found + if not exclude then + print("Warning: could not find dependency: " .. funcname) + end + currentDep.compat = exclude + end +end + +-- Given a dependency name, this function will register the dependency and try +-- to pair it with a dependency function that was registered through +-- SDL_registerDependencyChecker. If the function is not found, compatibility +-- will automatically be dropped for this project and a warning will be printed +-- to the standard output. Otherwise, the dependency function will be invoked +-- and compatibility for the project will be updated. If the project currently +-- is not compatible based on the Operating System or previous dependency, the +-- dependency function will not be checked at all and this function will +-- silently return. +function SDL_depfunc(funcname) + SDL_depfunc0(funcname, false) +end + +-- Same as SDL_depfunc, except this forces dependency on the function failing, +-- rather than succeeding. This is useful for situations where two different +-- files are required based on whether a dependency is found (such as the +-- joystick and haptic systems). +function SDL_notdepfunc(funcname) + SDL_depfunc0(funcname, true) +end + +-- Determines whether the specified dependency is supported without actually +-- executing the dependency or changing the internal states of the current +-- project or dependency definition. This function will only work if the +-- dependency has already been checked and its results cached within the +-- definition system. This function returns true if the dependency is known to +-- be supported, or false if otherwise (or if it cannot be known at this time). +function SDL_assertdepfunc(funcname) + -- if forced, then of course it's on + if _OPTIONS[funcname:lower()] then + return true + end + local results = dependencyResults[funcname:lower()] + if not results or not results.depFound then + -- either not excuted yet, doesn't exist, or wasn't found + print("Warning: required dependency not found: " .. funcname .. + ". Make sure your dependencies are in a logical order.") + return false + end + return true +end + +-- Returns a list of currently registered dependencies. The values within the +-- table will be sorted, but their names will be lowercased due to internal +-- handling of case-insensitive dependency names. +function SDL_getDependencies() + local deps = { } + for k,_ in pairs(dependencyFunctions) do + deps[#deps + 1] = k + end + table.sort(deps) + return deps +end + +-- Specifies a list of libraries that should always be linked to in this +-- project, regardless of a dependency function. If after a dependency +-- declaration, these files will only be included in the project if the +-- dependency is compatible with the native system, given SDL_os usage and any +-- sort of custom dependency function. +function SDL_links(tbl) + if not oscompat() then return end + if currentDep and not currentDep.compat then return end + if currentProject.customLinks == nil then + currentProject.customLinks = { } + end + for i,v in ipairs(tbl) do + currentProject.customLinks[#currentProject.customLinks + 1] = v + end +end + +-- Specifies a list of configuration values that are assigned as preprocessor +-- definitions in the SDL configuration header, used to globally configure +-- features during the building of the SDL library. If after a dependency +-- declaration, these files will only be included in the project if the +-- dependency is compatible with the native system, given SDL_os usage and any +-- sort of custom dependency function. +function SDL_config(tbl) + if not oscompat() then return end + if not currentDep then + currentProject.config = tbl + return + end + if not currentDep.compat then return end + currentDep.config = tbl +end + +-- Specifies a list of paths where all .c, .h, and .m files should be included +-- for compiling, where the source directory is the root. If after a dependency +-- declaration, these files will only be included in the project if the +-- dependency is compatible with the native system, given SDL_os usage and any +-- sort of custom dependency function. +function SDL_paths(tbl) + if not oscompat() then return end + if not currentDep then + currentProject.paths = tbl + return + end + if not currentDep.compat then return end + currentDep.paths = tbl +end + +-- Specifies a list of files found within the source directory that this project +-- should include during compile time. If after a dependency declaration, these +-- files will only be included in the project if the dependency is compatible +-- with the native system, given SDL_os usage and any sort of custom dependency +-- function. +function SDL_files(tbl) + if not oscompat() then return end + if not currentDep then + currentProject.files = tbl + return + end + if not currentDep.compat then return end + currentDep.files = tbl +end \ No newline at end of file diff --git a/premake/util/sdl_string.lua b/premake/util/sdl_string.lua new file mode 100755 index 0000000000000..d05e5a7f23860 --- /dev/null +++ b/premake/util/sdl_string.lua @@ -0,0 +1,103 @@ +-- Copyright (C) 1997-2011 Sam Lantinga +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely. +-- +-- Meta-build system using premake created and maintained by +-- Benjamin Henning + +--[[ +sdl_string.lua + + Contains a few convenient string utility functions which are not supported in + Lua or not supported as intended. +]] + +-- Performs a non-pattern based substring search of one string in another +-- string. It's of O(n^2) complexity. It returns nil if the result cannot be +-- found, otherwise it returns the starting index of the first found occurrence. +string.indexOf = function(str, substr) + local pos = 1 + local i = 1 + for i = 1, str:len(), 1 do + if str:sub(i, i) == substr:sub(pos, pos) then + -- have we matched the complete string? + if pos == substr:len() then + return i - pos + 1-- starting pos + end + -- matched character...keep going + pos = pos + 1 + else + -- restart, no match + pos = 0 + end + end + if pos == substr:len() then + return i - pos + 1 + end + return nil -- no match +end + +-- This is a public-access version of the explode function defined below. +function explode(str, delim) + return str:explode(delim) +end + +-- Explodes a string into an array of elements, separated by a non-pattern +-- delimiter. This function is part of the string table, allowing for a +-- member-based invocation for strings. +string.explode = function(str, delim) + local exploded = { } + local needle = string.find(str, delim) + while needle ~= nil do + table.insert(exploded, string.sub(str, 0, needle - 1)) + str = string.sub(str, needle + 1) + needle = string.find(str, delim) + end + table.insert(exploded, str) + return exploded +end + +-- Similar to table.concat, except it supports more advanced token pasting. This +-- function is vastly used by the main meta-build script (premake4.lua) to +-- generate all the main lines of code for various tables that need to be in the +-- generated lua file. +-- - tbl: table of values to implode into a string +-- - prefix: string to paste before entire result +-- - pre: string to always paste before each entry in table +-- - post: string to always paste after each entry in table +-- - join: string to paste between entries (inclusive) +-- - suffix: string to paste after entire result +-- Returns the imploded string. +function implode(tbl, prefix, pre, post, join, suffix) + local result = "" + -- not the most efficient way to do this, but... + local itbl = { } + for k,v in pairs(tbl) do + itbl[#itbl + 1] = v + end + for i = 1, #itbl, 1 do + if pre ~= nil then + result = result .. pre + end + result = result .. itbl[i] + if post ~= nil then + result = result .. post + end + if i ~= #itbl then + result = result .. join + end + end + if prefix ~= nil then + result = prefix .. result + end + if suffix ~= nil then + result = result .. suffix + end + return result +end \ No newline at end of file From bd1e1a93f2d95b69b2580d0b29484d2b8764c4f9 Mon Sep 17 00:00:00 2001 From: Philipp Wiesemann Date: Sun, 10 Nov 2013 14:36:41 +0100 Subject: [PATCH 033/143] Corrected source comment. --- src/core/android/SDL_android.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/android/SDL_android.c b/src/core/android/SDL_android.c index 4c47ae558ddc3..f36831cce90db 100644 --- a/src/core/android/SDL_android.c +++ b/src/core/android/SDL_android.c @@ -162,7 +162,7 @@ void Java_org_libsdl_app_SDLActivity_onNativePadUp( Android_OnPadUp(padId, keycode); } -// Padup +/* Joy */ void Java_org_libsdl_app_SDLActivity_onNativeJoy( JNIEnv* env, jclass jcls, jint joyId, jint axis, jfloat value) From 3f2e942fa0446caa98e709c37f6e5acbc29bb61b Mon Sep 17 00:00:00 2001 From: Philipp Wiesemann Date: Sun, 10 Nov 2013 14:39:38 +0100 Subject: [PATCH 034/143] Fixed implicit function declarations by including the missing header. --- src/core/android/SDL_android.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/core/android/SDL_android.c b/src/core/android/SDL_android.c index f36831cce90db..6feb48b1e8d8a 100644 --- a/src/core/android/SDL_android.c +++ b/src/core/android/SDL_android.c @@ -34,6 +34,7 @@ #include "../../video/android/SDL_androidtouch.h" #include "../../video/android/SDL_androidvideo.h" #include "../../video/android/SDL_androidwindow.h" +#include "../../joystick/android/SDL_sysjoystick.h" #include #include From 6e3558cf99ffb72beec0b9420280401cd8949aac Mon Sep 17 00:00:00 2001 From: Philipp Wiesemann Date: Sun, 10 Nov 2013 14:42:41 +0100 Subject: [PATCH 035/143] Removed unused local variable to fix warning. --- src/joystick/android/SDL_sysjoystick.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/joystick/android/SDL_sysjoystick.c b/src/joystick/android/SDL_sysjoystick.c index 0c7f81001aa83..7b7799e764810 100644 --- a/src/joystick/android/SDL_sysjoystick.c +++ b/src/joystick/android/SDL_sysjoystick.c @@ -48,7 +48,6 @@ static SDL_bool SYS_accelAsJoy; int keycode_to_SDL(int keycode) { - int final = 0; /* D-Pad key codes (API 1): * KEYCODE_DPAD_UP=19, KEYCODE_DPAD_DOWN * KEYCODE_DPAD_LEFT, KEYCODE_DPAD_RIGHT, KEYCODE_DPAD_CENTER From 82b3e7d229a6eca512247e0e74edb8244f4ca31c Mon Sep 17 00:00:00 2001 From: Philipp Wiesemann Date: Sun, 10 Nov 2013 14:44:50 +0100 Subject: [PATCH 036/143] Changed function to be static. The function keycode_to_SDL() is only used in this file. --- src/joystick/android/SDL_sysjoystick.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/joystick/android/SDL_sysjoystick.c b/src/joystick/android/SDL_sysjoystick.c index 7b7799e764810..4fda0f452c4c8 100644 --- a/src/joystick/android/SDL_sysjoystick.c +++ b/src/joystick/android/SDL_sysjoystick.c @@ -45,7 +45,7 @@ static SDL_bool SYS_accelAsJoy; /* Function to convert Android keyCodes into SDL ones. * This code manipulation is done to get a sequential list of codes. */ -int +static int keycode_to_SDL(int keycode) { /* D-Pad key codes (API 1): From 0ab7624cdec6a7a7802cc055735d24104f6e3b7d Mon Sep 17 00:00:00 2001 From: Philipp Wiesemann Date: Sun, 10 Nov 2013 14:47:05 +0100 Subject: [PATCH 037/143] Changed function to return -1 through SDL_Error() instead of plain -1. --- src/joystick/android/SDL_sysjoystick.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/joystick/android/SDL_sysjoystick.c b/src/joystick/android/SDL_sysjoystick.c index 4fda0f452c4c8..012512991eb2e 100644 --- a/src/joystick/android/SDL_sysjoystick.c +++ b/src/joystick/android/SDL_sysjoystick.c @@ -170,8 +170,7 @@ SDL_SYS_JoystickOpen(SDL_Joystick * joystick, int device_index) SYS_Joysticks[device_index] = joystick; return 0; } else { - SDL_SetError("No joystick available with that index"); - return (-1); + return SDL_SetError("No joystick available with that index"); } } From aa3379802b84e603f30647d5ad63a2239fca53a8 Mon Sep 17 00:00:00 2001 From: Philipp Wiesemann Date: Sun, 10 Nov 2013 14:50:37 +0100 Subject: [PATCH 038/143] Added a new unused key code from Android 4.4 (API 19). --- src/video/android/SDL_androidkeyboard.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/video/android/SDL_androidkeyboard.c b/src/video/android/SDL_androidkeyboard.c index 5381de64d4f0f..97152b503fd79 100644 --- a/src/video/android/SDL_androidkeyboard.c +++ b/src/video/android/SDL_androidkeyboard.c @@ -262,6 +262,7 @@ static SDL_Scancode Android_Keycodes[] = { SDL_SCANCODE_UNKNOWN, /* AKEYCODE_ASSIST */ SDL_SCANCODE_BRIGHTNESSDOWN, /* AKEYCODE_BRIGHTNESS_DOWN */ SDL_SCANCODE_BRIGHTNESSUP, /* AKEYCODE_BRIGHTNESS_UP */ + SDL_SCANCODE_UNKNOWN, /* AKEYCODE_MEDIA_AUDIO_TRACK */ }; static SDL_Scancode From fda8d9344036a18cc9c330eed536350953d0340a Mon Sep 17 00:00:00 2001 From: Philipp Wiesemann Date: Sun, 10 Nov 2013 14:58:48 +0100 Subject: [PATCH 039/143] Moved two function calls so they are only called if needed. If the MotionEvent is not from joystick the return values are not needed. --- android-project/src/org/libsdl/app/SDLActivity.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/android-project/src/org/libsdl/app/SDLActivity.java b/android-project/src/org/libsdl/app/SDLActivity.java index 773ec43bc776c..426dd971fc5ef 100644 --- a/android-project/src/org/libsdl/app/SDLActivity.java +++ b/android-project/src/org/libsdl/app/SDLActivity.java @@ -890,10 +890,9 @@ class SDLGenericMotionHandler_API12 extends Activity implements View.OnGenericMo // We only have joysticks yet @Override public boolean onGenericMotion(View v, MotionEvent event) { - int actionPointerIndex = event.getActionIndex(); - int action = event.getActionMasked(); - if ( (event.getSource() & InputDevice.SOURCE_JOYSTICK) != 0) { + int actionPointerIndex = event.getActionIndex(); + int action = event.getActionMasked(); switch(action) { case MotionEvent.ACTION_MOVE: int id = SDLActivity.getJoyId( event.getDeviceId() ); @@ -906,4 +905,4 @@ public boolean onGenericMotion(View v, MotionEvent event) { } return true; } -} \ No newline at end of file +} From 26ce68e8c28c87eba4e6f63da62ea17585908c7c Mon Sep 17 00:00:00 2001 From: Philipp Wiesemann Date: Sun, 10 Nov 2013 15:04:58 +0100 Subject: [PATCH 040/143] Changed motion listener implementation not to inherit from Activity class. --- android-project/src/org/libsdl/app/SDLActivity.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/android-project/src/org/libsdl/app/SDLActivity.java b/android-project/src/org/libsdl/app/SDLActivity.java index 426dd971fc5ef..bd96e4de80d57 100644 --- a/android-project/src/org/libsdl/app/SDLActivity.java +++ b/android-project/src/org/libsdl/app/SDLActivity.java @@ -885,7 +885,7 @@ public int getJoyId(int devId) { } -class SDLGenericMotionHandler_API12 extends Activity implements View.OnGenericMotionListener { +class SDLGenericMotionHandler_API12 implements View.OnGenericMotionListener { // Generic Motion (mouse hover, joystick...) events go here // We only have joysticks yet @Override From d6c1e3812e4d24498586c1195f1e04405db57097 Mon Sep 17 00:00:00 2001 From: Philipp Wiesemann Date: Sun, 10 Nov 2013 17:35:07 +0100 Subject: [PATCH 041/143] Added missing @Override annotations in Java file. --- android-project/src/org/libsdl/app/SDLActivity.java | 4 ++++ 1 file changed, 4 insertions(+) mode change 100644 => 100755 android-project/src/org/libsdl/app/SDLActivity.java diff --git a/android-project/src/org/libsdl/app/SDLActivity.java b/android-project/src/org/libsdl/app/SDLActivity.java old mode 100644 new mode 100755 index bd96e4de80d57..915483b104a09 --- a/android-project/src/org/libsdl/app/SDLActivity.java +++ b/android-project/src/org/libsdl/app/SDLActivity.java @@ -853,22 +853,26 @@ private void createJoystickList() { } } + @Override public int getNumJoysticks() { createJoystickList(); return mJoyIdList.size(); } + @Override public String getJoystickName(int joy) { createJoystickList(); return InputDevice.getDevice(mJoyIdList.get(joy)).getName(); } + @Override public int getJoystickAxes(int joy) { createJoystickList(); return InputDevice.getDevice(mJoyIdList.get(joy)).getMotionRanges().size(); } + @Override public int getJoyId(int devId) { int i=0; From 802f83ff998ba7ba22fb0a8b926726bcb1da8a6c Mon Sep 17 00:00:00 2001 From: Philipp Wiesemann Date: Sun, 10 Nov 2013 17:38:03 +0100 Subject: [PATCH 042/143] Removed not needed imports from Java file. --- android-project/src/org/libsdl/app/SDLActivity.java | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/android-project/src/org/libsdl/app/SDLActivity.java b/android-project/src/org/libsdl/app/SDLActivity.java index 915483b104a09..8fa0cd8fd4e28 100755 --- a/android-project/src/org/libsdl/app/SDLActivity.java +++ b/android-project/src/org/libsdl/app/SDLActivity.java @@ -1,5 +1,6 @@ package org.libsdl.app; +import java.util.ArrayList; import java.util.Arrays; import android.app.*; @@ -16,10 +17,6 @@ import android.media.*; import android.hardware.*; -import java.lang.*; -import java.util.List; -import java.util.ArrayList; - /** SDL Activity @@ -836,7 +833,7 @@ public int getJoyId(int devId) { /* Actual joystick functionality available for API >= 12 devices */ class SDLJoystickHandler_API12 extends SDLJoystickHandler { - private List mJoyIdList; + private ArrayList mJoyIdList; // Create a list of valid ID's the first time this function is called private void createJoystickList() { From 2d671781498d61cbaa0f329ec461bd18ce058c96 Mon Sep 17 00:00:00 2001 From: Philipp Wiesemann Date: Sun, 10 Nov 2013 17:40:26 +0100 Subject: [PATCH 043/143] Renamed a class in Java file for consistency. --- android-project/src/org/libsdl/app/SDLActivity.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/android-project/src/org/libsdl/app/SDLActivity.java b/android-project/src/org/libsdl/app/SDLActivity.java index 8fa0cd8fd4e28..104abe8ad11a5 100755 --- a/android-project/src/org/libsdl/app/SDLActivity.java +++ b/android-project/src/org/libsdl/app/SDLActivity.java @@ -483,7 +483,7 @@ public SDLSurface(Context context) { mSensorManager = (SensorManager)context.getSystemService(Context.SENSOR_SERVICE); if(Build.VERSION.SDK_INT >= 12) { - setOnGenericMotionListener(new SDLGenericMotionHandler_API12()); + setOnGenericMotionListener(new SDLGenericMotionListener_API12()); } // Some arbitrary defaults to avoid a potential division by zero @@ -886,7 +886,7 @@ public int getJoyId(int devId) { } -class SDLGenericMotionHandler_API12 implements View.OnGenericMotionListener { +class SDLGenericMotionListener_API12 implements View.OnGenericMotionListener { // Generic Motion (mouse hover, joystick...) events go here // We only have joysticks yet @Override From bbf0f62be91309898b4341fb97515cac211b15a8 Mon Sep 17 00:00:00 2001 From: Philipp Wiesemann Date: Sun, 10 Nov 2013 17:42:01 +0100 Subject: [PATCH 044/143] Replaced implicit boxing with explicit boxing in Java file. --- android-project/src/org/libsdl/app/SDLActivity.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/android-project/src/org/libsdl/app/SDLActivity.java b/android-project/src/org/libsdl/app/SDLActivity.java index 104abe8ad11a5..61ed7ed3d8b27 100755 --- a/android-project/src/org/libsdl/app/SDLActivity.java +++ b/android-project/src/org/libsdl/app/SDLActivity.java @@ -845,7 +845,7 @@ private void createJoystickList() { int[] deviceIds = InputDevice.getDeviceIds(); for(int i=0; i Date: Sun, 10 Nov 2013 17:44:51 +0100 Subject: [PATCH 045/143] Replaced search loop with indexOf() in Java file. --- android-project/src/org/libsdl/app/SDLActivity.java | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/android-project/src/org/libsdl/app/SDLActivity.java b/android-project/src/org/libsdl/app/SDLActivity.java index 61ed7ed3d8b27..e55b87210972f 100755 --- a/android-project/src/org/libsdl/app/SDLActivity.java +++ b/android-project/src/org/libsdl/app/SDLActivity.java @@ -853,7 +853,6 @@ private void createJoystickList() { @Override public int getNumJoysticks() { createJoystickList(); - return mJoyIdList.size(); } @@ -871,17 +870,8 @@ public int getJoystickAxes(int joy) { @Override public int getJoyId(int devId) { - int i=0; - createJoystickList(); - - for(i=0; i Date: Sun, 10 Nov 2013 17:50:40 +0100 Subject: [PATCH 046/143] Fixed joystick crash on Android if joystick subsystem not initialized. --- .../src/org/libsdl/app/SDLActivity.java | 31 +++++++++++++------ 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/android-project/src/org/libsdl/app/SDLActivity.java b/android-project/src/org/libsdl/app/SDLActivity.java index e55b87210972f..60b6aa0d6b673 100755 --- a/android-project/src/org/libsdl/app/SDLActivity.java +++ b/android-project/src/org/libsdl/app/SDLActivity.java @@ -433,6 +433,10 @@ public static int getJoystickAxes(int joy) { return mJoystickHandler.getJoystickAxes(joy); } + /** + * @param devId the device id to get opened joystick id for. + * @return joystick id for device id or -1 if there is none. + */ public static int getJoyId(int devId) { return mJoystickHandler.getJoyId(devId); } @@ -606,11 +610,14 @@ else if (event.getAction() == KeyEvent.ACTION_UP) { } else if ( (event.getSource() & 0x00000401) != 0 || /* API 12: SOURCE_GAMEPAD */ (event.getSource() & InputDevice.SOURCE_DPAD) != 0 ) { int id = SDLActivity.getJoyId( event.getDeviceId() ); - if (event.getAction() == KeyEvent.ACTION_DOWN) { - SDLActivity.onNativePadDown(id, keyCode); - } else if (event.getAction() == KeyEvent.ACTION_UP) { - SDLActivity.onNativePadUp(id, keyCode); + if (id != -1) { + if (event.getAction() == KeyEvent.ACTION_DOWN) { + SDLActivity.onNativePadDown(id, keyCode); + } else if (event.getAction() == KeyEvent.ACTION_UP) { + SDLActivity.onNativePadUp(id, keyCode); + } } + return true; } return false; @@ -826,8 +833,12 @@ public int getJoystickAxes(int joy) { return 0; } + /** + * @param devId the device id to get opened joystick id for. + * @return joystick id for device id or -1 if there is none. + */ public int getJoyId(int devId) { - return 0; + return -1; } } @@ -887,10 +898,12 @@ public boolean onGenericMotion(View v, MotionEvent event) { switch(action) { case MotionEvent.ACTION_MOVE: int id = SDLActivity.getJoyId( event.getDeviceId() ); - float x = event.getAxisValue(MotionEvent.AXIS_X, actionPointerIndex); - float y = event.getAxisValue(MotionEvent.AXIS_Y, actionPointerIndex); - SDLActivity.onNativeJoy(id, 0, x); - SDLActivity.onNativeJoy(id, 1, y); + if (id != -1) { + float x = event.getAxisValue(MotionEvent.AXIS_X, actionPointerIndex); + float y = event.getAxisValue(MotionEvent.AXIS_Y, actionPointerIndex); + SDLActivity.onNativeJoy(id, 0, x); + SDLActivity.onNativeJoy(id, 1, y); + } break; } } From b7553ae77e560347090bf21ea503ad5e3e266090 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sun, 10 Nov 2013 11:51:06 -0800 Subject: [PATCH 047/143] Added project files for Visual Studio 2013 Added /arch:SSE code generation option to prevent SSE2 floating point functions from being implicitly called (which aren't linked in SDL) --- VisualC/SDL/SDL_VS2013.vcxproj | 472 ++++++++++++++++++ VisualC/SDL_VS2013.sln | 278 +++++++++++ VisualC/SDLmain/SDLmain_VS2013.vcxproj | 168 +++++++ VisualC/SDLtest/SDLtest_VS2013.vcxproj | 196 ++++++++ .../tests/checkkeys/checkkeys_VS2013.vcxproj | 231 +++++++++ .../tests/loopwave/loopwave_VS2013.vcxproj | 235 +++++++++ .../testatomic/testatomic_VS2013.vcxproj | 235 +++++++++ .../testautomation_vs2013.vcxproj | 213 ++++++++ .../tests/testdraw2/testdraw2_VS2013.vcxproj | 232 +++++++++ .../tests/testfile/testfile_VS2013.vcxproj | 231 +++++++++ .../testgamecontroller_VS2013.vcxproj | 231 +++++++++ .../testgesture/testgesture_VS2013.vcxproj | 231 +++++++++ VisualC/tests/testgl2/testgl2_VS2013.vcxproj | 236 +++++++++ .../testjoystick/testjoystick_VS2013.vcxproj | 231 +++++++++ .../testoverlay2/testoverlay2_VS2013.vcxproj | 235 +++++++++ .../testplatform/testplatform_VS2013.vcxproj | 249 +++++++++ .../tests/testpower/testpower_VS2013.vcxproj | 231 +++++++++ .../testrendertarget_VS2013.vcxproj | 245 +++++++++ .../tests/testscale/testscale_VS2013.vcxproj | 246 +++++++++ .../tests/testshape/testshape_VS2013.vcxproj | 231 +++++++++ .../testsprite2/testsprite2_VS2013.vcxproj | 236 +++++++++ 21 files changed, 5093 insertions(+) create mode 100644 VisualC/SDL/SDL_VS2013.vcxproj create mode 100644 VisualC/SDL_VS2013.sln create mode 100644 VisualC/SDLmain/SDLmain_VS2013.vcxproj create mode 100644 VisualC/SDLtest/SDLtest_VS2013.vcxproj create mode 100644 VisualC/tests/checkkeys/checkkeys_VS2013.vcxproj create mode 100644 VisualC/tests/loopwave/loopwave_VS2013.vcxproj create mode 100644 VisualC/tests/testatomic/testatomic_VS2013.vcxproj create mode 100644 VisualC/tests/testautomation/testautomation_vs2013.vcxproj create mode 100644 VisualC/tests/testdraw2/testdraw2_VS2013.vcxproj create mode 100644 VisualC/tests/testfile/testfile_VS2013.vcxproj create mode 100644 VisualC/tests/testgamecontroller/testgamecontroller_VS2013.vcxproj create mode 100644 VisualC/tests/testgesture/testgesture_VS2013.vcxproj create mode 100644 VisualC/tests/testgl2/testgl2_VS2013.vcxproj create mode 100644 VisualC/tests/testjoystick/testjoystick_VS2013.vcxproj create mode 100644 VisualC/tests/testoverlay2/testoverlay2_VS2013.vcxproj create mode 100644 VisualC/tests/testplatform/testplatform_VS2013.vcxproj create mode 100644 VisualC/tests/testpower/testpower_VS2013.vcxproj create mode 100644 VisualC/tests/testrendertarget/testrendertarget_VS2013.vcxproj create mode 100644 VisualC/tests/testscale/testscale_VS2013.vcxproj create mode 100644 VisualC/tests/testshape/testshape_VS2013.vcxproj create mode 100644 VisualC/tests/testsprite2/testsprite2_VS2013.vcxproj diff --git a/VisualC/SDL/SDL_VS2013.vcxproj b/VisualC/SDL/SDL_VS2013.vcxproj new file mode 100644 index 0000000000000..2f961674e79dd --- /dev/null +++ b/VisualC/SDL/SDL_VS2013.vcxproj @@ -0,0 +1,472 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + SDL2 + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68} + SDL + + + + DynamicLibrary + false + v120 + + + DynamicLibrary + false + v120 + + + DynamicLibrary + false + v120 + + + DynamicLibrary + false + MultiByte + v120 + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + Disabled + ..\..\include;%(AdditionalIncludeDirectories);"$(DXSDK_DIR)\Include"; + _DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + false + + + Level3 + true + EditAndContinue + Default + false + StreamingSIMDExtensions + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + winmm.lib;imm32.lib;version.lib;%(AdditionalDependencies) + true + true + Windows + false + $(DXSDK_DIR)\lib\x86 + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + + + Disabled + ..\..\include;%(AdditionalIncludeDirectories);"$(DXSDK_DIR)\Include"; + _DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + false + + + Level3 + EditAndContinue + false + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + winmm.lib;imm32.lib;version.lib;%(AdditionalDependencies) + true + true + Windows + false + $(DXSDK_DIR)\lib\x64 + + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + OnlyExplicitInline + false + ..\..\include;%(AdditionalIncludeDirectories);"$(DXSDK_DIR)\Include"; + NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + + + Level3 + true + Default + false + ProgramDatabase + StreamingSIMDExtensions + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + winmm.lib;imm32.lib;version.lib;%(AdditionalDependencies) + true + Windows + $(DXSDK_DIR)\lib\x86 + true + true + true + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + + + OnlyExplicitInline + false + ..\..\include;%(AdditionalIncludeDirectories);"$(DXSDK_DIR)\Include"; + NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + + + Level3 + false + ProgramDatabase + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + winmm.lib;imm32.lib;version.lib;%(AdditionalDependencies) + true + Windows + $(DXSDK_DIR)\lib\x64 + true + true + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VisualC/SDL_VS2013.sln b/VisualC/SDL_VS2013.sln new file mode 100644 index 0000000000000..3ccb1cca44262 --- /dev/null +++ b/VisualC/SDL_VS2013.sln @@ -0,0 +1,278 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2012 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2", "SDL\SDL_VS2013.vcxproj", "{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2main", "SDLmain\SDLmain_VS2013.vcxproj", "{DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{CE748C1F-3C21-4825-AA6A-F895A023F7E7}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "loopwave", "tests\loopwave\loopwave_VS2013.vcxproj", "{AAAD1CB5-7ADA-47AE-85A0-08A6EC48FAFB}" + ProjectSection(ProjectDependencies) = postProject + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68} = {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68} + {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A} = {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testplatform", "tests\testplatform\testplatform_VS2013.vcxproj", "{26932B24-EFC6-4E3A-B277-ED653DA37968}" + ProjectSection(ProjectDependencies) = postProject + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68} = {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68} + {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A} = {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testfile", "tests\testfile\testfile_VS2013.vcxproj", "{CAE4F1D0-314F-4B10-805B-0EFD670133A0}" + ProjectSection(ProjectDependencies) = postProject + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68} = {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68} + {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A} = {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testgl2", "tests\testgl2\testgl2_VS2013.vcxproj", "{8B5CFB38-CCBA-40A8-AD7A-89C57B070884}" + ProjectSection(ProjectDependencies) = postProject + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68} = {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68} + {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A} = {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A} + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A} = {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "checkkeys", "tests\checkkeys\checkkeys_VS2013.vcxproj", "{26828762-C95D-4637-9CB1-7F0979523813}" + ProjectSection(ProjectDependencies) = postProject + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68} = {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68} + {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A} = {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testsprite2", "tests\testsprite2\testsprite2_VS2013.vcxproj", "{40FB7794-D3C3-4CFE-BCF4-A80C96635682}" + ProjectSection(ProjectDependencies) = postProject + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68} = {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68} + {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A} = {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A} + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A} = {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testshape", "tests\testshape\testshape_VS2013.vcxproj", "{EDEA9D00-AF64-45DE-8F60-5957048F2F0F}" + ProjectSection(ProjectDependencies) = postProject + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68} = {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68} + {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A} = {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testdraw2", "tests\testdraw2\testdraw2_VS2013.vcxproj", "{8682FE1E-0CF6-4EDD-9BB5-1733D8C8B4DF}" + ProjectSection(ProjectDependencies) = postProject + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68} = {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68} + {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A} = {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A} + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A} = {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testpower", "tests\testpower\testpower_VS2013.vcxproj", "{C4E04D18-EF76-4B42-B4C2-16A1BACDC0A3}" + ProjectSection(ProjectDependencies) = postProject + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68} = {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68} + {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A} = {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2test", "SDLtest\SDLtest_VS2013.vcxproj", "{DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}" + ProjectSection(ProjectDependencies) = postProject + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68} = {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testautomation", "tests\testautomation\testautomation_vs2013.vcxproj", "{FEE710DB-EC7B-4CCB-BD75-535D401A2FE0}" + ProjectSection(ProjectDependencies) = postProject + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68} = {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68} + {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A} = {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A} + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A} = {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testatomic", "tests\testatomic\testatomic_VS2013.vcxproj", "{2271060E-98B4-4596-8172-A041E4B2EC7A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testscale", "tests\testscale\testscale_VS2013.vcxproj", "{E7A6C41C-E059-4C9C-8CCC-73586A540B62}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testrendertarget", "tests\testrendertarget\testrendertarget_VS2013.vcxproj", "{43A06713-A52D-4008-AD7E-A69DF3FCFFA8}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testgamecontroller", "tests\testgamecontroller\testgamecontroller_VS2013.vcxproj", "{55812185-D13C-4022-9C81-32E0F4A08336}" + ProjectSection(ProjectDependencies) = postProject + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68} = {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68} + {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A} = {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A} + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A} = {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testgesture", "tests\testgesture\testgesture_VS2013.vcxproj", "{55812185-D13C-4022-9C81-32E0F4A08996}" + ProjectSection(ProjectDependencies) = postProject + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68} = {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68} + {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A} = {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A} + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A} = {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testjoystick", "tests\testjoystick\testjoystick_VS2013.vcxproj", "{55812185-D13C-4022-9C81-32E0F4A08BCC}" + ProjectSection(ProjectDependencies) = postProject + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68} = {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68} + {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A} = {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A} + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A} = {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A} + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|Win32.ActiveCfg = Debug|Win32 + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|Win32.Build.0 = Debug|Win32 + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|x64.ActiveCfg = Debug|x64 + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|x64.Build.0 = Debug|x64 + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|Win32.ActiveCfg = Release|Win32 + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|Win32.Build.0 = Release|Win32 + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|x64.ActiveCfg = Release|x64 + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|x64.Build.0 = Release|x64 + {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Debug|Win32.ActiveCfg = Debug|Win32 + {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Debug|Win32.Build.0 = Debug|Win32 + {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Debug|x64.ActiveCfg = Debug|x64 + {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Debug|x64.Build.0 = Debug|x64 + {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Release|Win32.ActiveCfg = Release|Win32 + {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Release|Win32.Build.0 = Release|Win32 + {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Release|x64.ActiveCfg = Release|x64 + {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Release|x64.Build.0 = Release|x64 + {AAAD1CB5-7ADA-47AE-85A0-08A6EC48FAFB}.Debug|Win32.ActiveCfg = Debug|Win32 + {AAAD1CB5-7ADA-47AE-85A0-08A6EC48FAFB}.Debug|Win32.Build.0 = Debug|Win32 + {AAAD1CB5-7ADA-47AE-85A0-08A6EC48FAFB}.Debug|x64.ActiveCfg = Debug|x64 + {AAAD1CB5-7ADA-47AE-85A0-08A6EC48FAFB}.Debug|x64.Build.0 = Debug|x64 + {AAAD1CB5-7ADA-47AE-85A0-08A6EC48FAFB}.Release|Win32.ActiveCfg = Release|Win32 + {AAAD1CB5-7ADA-47AE-85A0-08A6EC48FAFB}.Release|Win32.Build.0 = Release|Win32 + {AAAD1CB5-7ADA-47AE-85A0-08A6EC48FAFB}.Release|x64.ActiveCfg = Release|Win32 + {26932B24-EFC6-4E3A-B277-ED653DA37968}.Debug|Win32.ActiveCfg = Debug|Win32 + {26932B24-EFC6-4E3A-B277-ED653DA37968}.Debug|Win32.Build.0 = Debug|Win32 + {26932B24-EFC6-4E3A-B277-ED653DA37968}.Debug|x64.ActiveCfg = Debug|x64 + {26932B24-EFC6-4E3A-B277-ED653DA37968}.Debug|x64.Build.0 = Debug|x64 + {26932B24-EFC6-4E3A-B277-ED653DA37968}.Release|Win32.ActiveCfg = Release|Win32 + {26932B24-EFC6-4E3A-B277-ED653DA37968}.Release|Win32.Build.0 = Release|Win32 + {26932B24-EFC6-4E3A-B277-ED653DA37968}.Release|x64.ActiveCfg = Release|Win32 + {CAE4F1D0-314F-4B10-805B-0EFD670133A0}.Debug|Win32.ActiveCfg = Debug|Win32 + {CAE4F1D0-314F-4B10-805B-0EFD670133A0}.Debug|Win32.Build.0 = Debug|Win32 + {CAE4F1D0-314F-4B10-805B-0EFD670133A0}.Debug|x64.ActiveCfg = Debug|x64 + {CAE4F1D0-314F-4B10-805B-0EFD670133A0}.Debug|x64.Build.0 = Debug|x64 + {CAE4F1D0-314F-4B10-805B-0EFD670133A0}.Release|Win32.ActiveCfg = Release|Win32 + {CAE4F1D0-314F-4B10-805B-0EFD670133A0}.Release|Win32.Build.0 = Release|Win32 + {CAE4F1D0-314F-4B10-805B-0EFD670133A0}.Release|x64.ActiveCfg = Release|Win32 + {8B5CFB38-CCBA-40A8-AD7A-89C57B070884}.Debug|Win32.ActiveCfg = Debug|Win32 + {8B5CFB38-CCBA-40A8-AD7A-89C57B070884}.Debug|Win32.Build.0 = Debug|Win32 + {8B5CFB38-CCBA-40A8-AD7A-89C57B070884}.Debug|x64.ActiveCfg = Debug|x64 + {8B5CFB38-CCBA-40A8-AD7A-89C57B070884}.Debug|x64.Build.0 = Debug|x64 + {8B5CFB38-CCBA-40A8-AD7A-89C57B070884}.Release|Win32.ActiveCfg = Release|Win32 + {8B5CFB38-CCBA-40A8-AD7A-89C57B070884}.Release|Win32.Build.0 = Release|Win32 + {8B5CFB38-CCBA-40A8-AD7A-89C57B070884}.Release|x64.ActiveCfg = Release|Win32 + {26828762-C95D-4637-9CB1-7F0979523813}.Debug|Win32.ActiveCfg = Debug|Win32 + {26828762-C95D-4637-9CB1-7F0979523813}.Debug|Win32.Build.0 = Debug|Win32 + {26828762-C95D-4637-9CB1-7F0979523813}.Debug|x64.ActiveCfg = Debug|x64 + {26828762-C95D-4637-9CB1-7F0979523813}.Debug|x64.Build.0 = Debug|x64 + {26828762-C95D-4637-9CB1-7F0979523813}.Release|Win32.ActiveCfg = Release|Win32 + {26828762-C95D-4637-9CB1-7F0979523813}.Release|Win32.Build.0 = Release|Win32 + {26828762-C95D-4637-9CB1-7F0979523813}.Release|x64.ActiveCfg = Release|Win32 + {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Debug|Win32.ActiveCfg = Debug|Win32 + {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Debug|Win32.Build.0 = Debug|Win32 + {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Debug|x64.ActiveCfg = Debug|x64 + {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Debug|x64.Build.0 = Debug|x64 + {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Release|Win32.ActiveCfg = Release|Win32 + {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Release|Win32.Build.0 = Release|Win32 + {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Release|x64.ActiveCfg = Release|Win32 + {EDEA9D00-AF64-45DE-8F60-5957048F2F0F}.Debug|Win32.ActiveCfg = Debug|Win32 + {EDEA9D00-AF64-45DE-8F60-5957048F2F0F}.Debug|Win32.Build.0 = Debug|Win32 + {EDEA9D00-AF64-45DE-8F60-5957048F2F0F}.Debug|x64.ActiveCfg = Debug|x64 + {EDEA9D00-AF64-45DE-8F60-5957048F2F0F}.Debug|x64.Build.0 = Debug|x64 + {EDEA9D00-AF64-45DE-8F60-5957048F2F0F}.Release|Win32.ActiveCfg = Release|Win32 + {EDEA9D00-AF64-45DE-8F60-5957048F2F0F}.Release|x64.ActiveCfg = Release|Win32 + {8682FE1E-0CF6-4EDD-9BB5-1733D8C8B4DF}.Debug|Win32.ActiveCfg = Debug|Win32 + {8682FE1E-0CF6-4EDD-9BB5-1733D8C8B4DF}.Debug|Win32.Build.0 = Debug|Win32 + {8682FE1E-0CF6-4EDD-9BB5-1733D8C8B4DF}.Debug|x64.ActiveCfg = Debug|x64 + {8682FE1E-0CF6-4EDD-9BB5-1733D8C8B4DF}.Debug|x64.Build.0 = Debug|x64 + {8682FE1E-0CF6-4EDD-9BB5-1733D8C8B4DF}.Release|Win32.ActiveCfg = Release|Win32 + {8682FE1E-0CF6-4EDD-9BB5-1733D8C8B4DF}.Release|Win32.Build.0 = Release|Win32 + {8682FE1E-0CF6-4EDD-9BB5-1733D8C8B4DF}.Release|x64.ActiveCfg = Release|Win32 + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A3}.Debug|Win32.ActiveCfg = Debug|Win32 + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A3}.Debug|Win32.Build.0 = Debug|Win32 + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A3}.Debug|x64.ActiveCfg = Debug|x64 + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A3}.Debug|x64.Build.0 = Debug|x64 + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A3}.Release|Win32.ActiveCfg = Release|Win32 + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A3}.Release|Win32.Build.0 = Release|Win32 + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A3}.Release|x64.ActiveCfg = Release|Win32 + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Debug|Win32.ActiveCfg = Debug|Win32 + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Debug|Win32.Build.0 = Debug|Win32 + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Debug|x64.ActiveCfg = Debug|x64 + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Debug|x64.Build.0 = Debug|x64 + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Release|Win32.ActiveCfg = Release|Win32 + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Release|Win32.Build.0 = Release|Win32 + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Release|x64.ActiveCfg = Release|x64 + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Release|x64.Build.0 = Release|x64 + {FEE710DB-EC7B-4CCB-BD75-535D401A2FE0}.Debug|Win32.ActiveCfg = Debug|Win32 + {FEE710DB-EC7B-4CCB-BD75-535D401A2FE0}.Debug|Win32.Build.0 = Debug|Win32 + {FEE710DB-EC7B-4CCB-BD75-535D401A2FE0}.Debug|x64.ActiveCfg = Debug|x64 + {FEE710DB-EC7B-4CCB-BD75-535D401A2FE0}.Debug|x64.Build.0 = Debug|x64 + {FEE710DB-EC7B-4CCB-BD75-535D401A2FE0}.Release|Win32.ActiveCfg = Release|Win32 + {FEE710DB-EC7B-4CCB-BD75-535D401A2FE0}.Release|Win32.Build.0 = Release|Win32 + {FEE710DB-EC7B-4CCB-BD75-535D401A2FE0}.Release|x64.ActiveCfg = Release|x64 + {FEE710DB-EC7B-4CCB-BD75-535D401A2FE0}.Release|x64.Build.0 = Release|x64 + {2271060E-98B4-4596-8172-A041E4B2EC7A}.Debug|Win32.ActiveCfg = Debug|Win32 + {2271060E-98B4-4596-8172-A041E4B2EC7A}.Debug|Win32.Build.0 = Debug|Win32 + {2271060E-98B4-4596-8172-A041E4B2EC7A}.Debug|x64.ActiveCfg = Debug|x64 + {2271060E-98B4-4596-8172-A041E4B2EC7A}.Debug|x64.Build.0 = Debug|x64 + {2271060E-98B4-4596-8172-A041E4B2EC7A}.Release|Win32.ActiveCfg = Release|Win32 + {2271060E-98B4-4596-8172-A041E4B2EC7A}.Release|Win32.Build.0 = Release|Win32 + {2271060E-98B4-4596-8172-A041E4B2EC7A}.Release|x64.ActiveCfg = Release|x64 + {2271060E-98B4-4596-8172-A041E4B2EC7A}.Release|x64.Build.0 = Release|x64 + {E7A6C41C-E059-4C9C-8CCC-73586A540B62}.Debug|Win32.ActiveCfg = Debug|Win32 + {E7A6C41C-E059-4C9C-8CCC-73586A540B62}.Debug|Win32.Build.0 = Debug|Win32 + {E7A6C41C-E059-4C9C-8CCC-73586A540B62}.Debug|x64.ActiveCfg = Debug|x64 + {E7A6C41C-E059-4C9C-8CCC-73586A540B62}.Debug|x64.Build.0 = Debug|x64 + {E7A6C41C-E059-4C9C-8CCC-73586A540B62}.Release|Win32.ActiveCfg = Release|Win32 + {E7A6C41C-E059-4C9C-8CCC-73586A540B62}.Release|Win32.Build.0 = Release|Win32 + {E7A6C41C-E059-4C9C-8CCC-73586A540B62}.Release|x64.ActiveCfg = Release|x64 + {E7A6C41C-E059-4C9C-8CCC-73586A540B62}.Release|x64.Build.0 = Release|x64 + {43A06713-A52D-4008-AD7E-A69DF3FCFFA8}.Debug|Win32.ActiveCfg = Debug|Win32 + {43A06713-A52D-4008-AD7E-A69DF3FCFFA8}.Debug|Win32.Build.0 = Debug|Win32 + {43A06713-A52D-4008-AD7E-A69DF3FCFFA8}.Debug|x64.ActiveCfg = Debug|x64 + {43A06713-A52D-4008-AD7E-A69DF3FCFFA8}.Debug|x64.Build.0 = Debug|x64 + {43A06713-A52D-4008-AD7E-A69DF3FCFFA8}.Release|Win32.ActiveCfg = Release|Win32 + {43A06713-A52D-4008-AD7E-A69DF3FCFFA8}.Release|Win32.Build.0 = Release|Win32 + {43A06713-A52D-4008-AD7E-A69DF3FCFFA8}.Release|x64.ActiveCfg = Release|x64 + {43A06713-A52D-4008-AD7E-A69DF3FCFFA8}.Release|x64.Build.0 = Release|x64 + {55812185-D13C-4022-9C81-32E0F4A08336}.Debug|Win32.ActiveCfg = Debug|Win32 + {55812185-D13C-4022-9C81-32E0F4A08336}.Debug|Win32.Build.0 = Debug|Win32 + {55812185-D13C-4022-9C81-32E0F4A08336}.Debug|x64.ActiveCfg = Debug|x64 + {55812185-D13C-4022-9C81-32E0F4A08336}.Debug|x64.Build.0 = Debug|x64 + {55812185-D13C-4022-9C81-32E0F4A08336}.Release|Win32.ActiveCfg = Release|Win32 + {55812185-D13C-4022-9C81-32E0F4A08336}.Release|Win32.Build.0 = Release|Win32 + {55812185-D13C-4022-9C81-32E0F4A08336}.Release|x64.ActiveCfg = Release|x64 + {55812185-D13C-4022-9C81-32E0F4A08336}.Release|x64.Build.0 = Release|x64 + {55812185-D13C-4022-9C81-32E0F4A08996}.Debug|Win32.ActiveCfg = Debug|Win32 + {55812185-D13C-4022-9C81-32E0F4A08996}.Debug|Win32.Build.0 = Debug|Win32 + {55812185-D13C-4022-9C81-32E0F4A08996}.Debug|x64.ActiveCfg = Debug|x64 + {55812185-D13C-4022-9C81-32E0F4A08996}.Debug|x64.Build.0 = Debug|x64 + {55812185-D13C-4022-9C81-32E0F4A08996}.Release|Win32.ActiveCfg = Release|Win32 + {55812185-D13C-4022-9C81-32E0F4A08996}.Release|Win32.Build.0 = Release|Win32 + {55812185-D13C-4022-9C81-32E0F4A08996}.Release|x64.ActiveCfg = Release|x64 + {55812185-D13C-4022-9C81-32E0F4A08996}.Release|x64.Build.0 = Release|x64 + {55812185-D13C-4022-9C81-32E0F4A08BCC}.Debug|Win32.ActiveCfg = Debug|Win32 + {55812185-D13C-4022-9C81-32E0F4A08BCC}.Debug|Win32.Build.0 = Debug|Win32 + {55812185-D13C-4022-9C81-32E0F4A08BCC}.Debug|x64.ActiveCfg = Debug|x64 + {55812185-D13C-4022-9C81-32E0F4A08BCC}.Debug|x64.Build.0 = Debug|x64 + {55812185-D13C-4022-9C81-32E0F4A08BCC}.Release|Win32.ActiveCfg = Release|Win32 + {55812185-D13C-4022-9C81-32E0F4A08BCC}.Release|Win32.Build.0 = Release|Win32 + {55812185-D13C-4022-9C81-32E0F4A08BCC}.Release|x64.ActiveCfg = Release|x64 + {55812185-D13C-4022-9C81-32E0F4A08BCC}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {AAAD1CB5-7ADA-47AE-85A0-08A6EC48FAFB} = {CE748C1F-3C21-4825-AA6A-F895A023F7E7} + {26932B24-EFC6-4E3A-B277-ED653DA37968} = {CE748C1F-3C21-4825-AA6A-F895A023F7E7} + {CAE4F1D0-314F-4B10-805B-0EFD670133A0} = {CE748C1F-3C21-4825-AA6A-F895A023F7E7} + {8B5CFB38-CCBA-40A8-AD7A-89C57B070884} = {CE748C1F-3C21-4825-AA6A-F895A023F7E7} + {26828762-C95D-4637-9CB1-7F0979523813} = {CE748C1F-3C21-4825-AA6A-F895A023F7E7} + {40FB7794-D3C3-4CFE-BCF4-A80C96635682} = {CE748C1F-3C21-4825-AA6A-F895A023F7E7} + {EDEA9D00-AF64-45DE-8F60-5957048F2F0F} = {CE748C1F-3C21-4825-AA6A-F895A023F7E7} + {8682FE1E-0CF6-4EDD-9BB5-1733D8C8B4DF} = {CE748C1F-3C21-4825-AA6A-F895A023F7E7} + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A3} = {CE748C1F-3C21-4825-AA6A-F895A023F7E7} + {FEE710DB-EC7B-4CCB-BD75-535D401A2FE0} = {CE748C1F-3C21-4825-AA6A-F895A023F7E7} + {2271060E-98B4-4596-8172-A041E4B2EC7A} = {CE748C1F-3C21-4825-AA6A-F895A023F7E7} + {E7A6C41C-E059-4C9C-8CCC-73586A540B62} = {CE748C1F-3C21-4825-AA6A-F895A023F7E7} + {43A06713-A52D-4008-AD7E-A69DF3FCFFA8} = {CE748C1F-3C21-4825-AA6A-F895A023F7E7} + {55812185-D13C-4022-9C81-32E0F4A08336} = {CE748C1F-3C21-4825-AA6A-F895A023F7E7} + {55812185-D13C-4022-9C81-32E0F4A08996} = {CE748C1F-3C21-4825-AA6A-F895A023F7E7} + {55812185-D13C-4022-9C81-32E0F4A08BCC} = {CE748C1F-3C21-4825-AA6A-F895A023F7E7} + EndGlobalSection +EndGlobal diff --git a/VisualC/SDLmain/SDLmain_VS2013.vcxproj b/VisualC/SDLmain/SDLmain_VS2013.vcxproj new file mode 100644 index 0000000000000..f4e12630cd6a7 --- /dev/null +++ b/VisualC/SDLmain/SDLmain_VS2013.vcxproj @@ -0,0 +1,168 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + SDL2main + {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A} + + + + StaticLibrary + false + v120 + + + StaticLibrary + false + v120 + + + StaticLibrary + false + MultiByte + v120 + + + StaticLibrary + false + v120 + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + + + + + OnlyExplicitInline + ..\..\include;..\..\include\SDL;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + + + Level3 + true + Default + OldStyle + false + + + true + + + + + X64 + + + OnlyExplicitInline + ..\..\include;..\..\include\SDL;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + + + Level3 + true + Default + OldStyle + false + + + true + + + + + + Disabled + ..\..\include;..\..\include\SDL;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + + + Level3 + true + OldStyle + Default + false + + + true + + + + + X64 + + + Disabled + ..\..\include;..\..\include\SDL;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + + + Level3 + true + OldStyle + Default + false + + + true + + + + + + + + + \ No newline at end of file diff --git a/VisualC/SDLtest/SDLtest_VS2013.vcxproj b/VisualC/SDLtest/SDLtest_VS2013.vcxproj new file mode 100644 index 0000000000000..c876d7413e606 --- /dev/null +++ b/VisualC/SDLtest/SDLtest_VS2013.vcxproj @@ -0,0 +1,196 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + SDL2test + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A} + + + + StaticLibrary + false + v120 + + + StaticLibrary + false + v120 + + + StaticLibrary + false + MultiByte + v120 + + + StaticLibrary + false + v120 + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + + + + + OnlyExplicitInline + ..\..\include;..\..\include\SDL;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + + + Level3 + true + Default + OldStyle + false + + + true + + + + + X64 + + + OnlyExplicitInline + ..\..\include;..\..\include\SDL;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + + + Level3 + true + Default + OldStyle + false + + + true + + + + + + Disabled + ..\..\include;..\..\include\SDL;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + + + Level3 + true + OldStyle + Default + false + + + true + + + + + X64 + + + Disabled + ..\..\include;..\..\include\SDL;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + + + Level3 + true + OldStyle + Default + false + + + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VisualC/tests/checkkeys/checkkeys_VS2013.vcxproj b/VisualC/tests/checkkeys/checkkeys_VS2013.vcxproj new file mode 100644 index 0000000000000..15e8421658e0a --- /dev/null +++ b/VisualC/tests/checkkeys/checkkeys_VS2013.vcxproj @@ -0,0 +1,231 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + checkkeys + checkkeys + {26828762-C95D-4637-9CB1-7F0979523813} + + + + Application + false + v120 + + + Application + false + v120 + + + Application + false + v120 + + + Application + false + MultiByte + v120 + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + true + true + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + false + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + Disabled + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + + + Level3 + true + EditAndContinue + Default + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + + + Disabled + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + + + Level3 + true + ProgramDatabase + Default + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + OnlyExplicitInline + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + + + Level3 + true + Default + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + + + OnlyExplicitInline + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + + + Level3 + true + Default + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + + + + + + + + + \ No newline at end of file diff --git a/VisualC/tests/loopwave/loopwave_VS2013.vcxproj b/VisualC/tests/loopwave/loopwave_VS2013.vcxproj new file mode 100644 index 0000000000000..1a815bfa75855 --- /dev/null +++ b/VisualC/tests/loopwave/loopwave_VS2013.vcxproj @@ -0,0 +1,235 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + loopwave + loopwave + {AAAD1CB5-7ADA-47AE-85A0-08A6EC48FAFB} + + + + Application + false + v120 + + + Application + false + MultiByte + v120 + + + Application + false + v120 + + + Application + false + v120 + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + false + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + true + true + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + OnlyExplicitInline + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + + + Level3 + true + Default + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" +copy "$(SolutionDir)\..\test\sample.wav" "$(TargetDir)\sample.wav" + + + Copy SDL + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + + + OnlyExplicitInline + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + + + Level3 + true + Default + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" +copy "$(SolutionDir)\..\test\sample.wav" "$(TargetDir)\sample.wav" + + + Copy SDL + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + Disabled + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + + + Level3 + true + EditAndContinue + Default + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" +copy "$(SolutionDir)\..\test\sample.wav" "$(TargetDir)\sample.wav" + + + Copy SDL + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + + + Disabled + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + + + Level3 + true + ProgramDatabase + Default + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" +copy "$(SolutionDir)\..\test\sample.wav" "$(TargetDir)\sample.wav" + + + Copy SDL + + + + + + + + + + + + + \ No newline at end of file diff --git a/VisualC/tests/testatomic/testatomic_VS2013.vcxproj b/VisualC/tests/testatomic/testatomic_VS2013.vcxproj new file mode 100644 index 0000000000000..cd02898296961 --- /dev/null +++ b/VisualC/tests/testatomic/testatomic_VS2013.vcxproj @@ -0,0 +1,235 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + testatomic + {2271060E-98B4-4596-8172-A041E4B2EC7A} + testatomic + + + + Application + false + v120 + + + Application + false + v120 + + + Application + false + v120 + + + Application + false + MultiByte + v120 + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + true + true + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + false + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + Disabled + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + + + Level3 + true + EditAndContinue + Default + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + + + Disabled + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + + + Level3 + true + ProgramDatabase + Default + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + OnlyExplicitInline + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + + + Level3 + true + Default + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + + + OnlyExplicitInline + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + + + Level3 + true + Default + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + + + + {da956fd3-e142-46f2-9dd5-c78bebb56b7a} + + + {81ce8daf-ebb2-4761-8e45-b71abcca8c68} + + + + + + \ No newline at end of file diff --git a/VisualC/tests/testautomation/testautomation_vs2013.vcxproj b/VisualC/tests/testautomation/testautomation_vs2013.vcxproj new file mode 100644 index 0000000000000..7fb12228f9ce5 --- /dev/null +++ b/VisualC/tests/testautomation/testautomation_vs2013.vcxproj @@ -0,0 +1,213 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + testautomation + {FEE710DB-EC7B-4CCB-BD75-535D401A2FE0} + testautomation + Win32Proj + + + + Application + Unicode + true + v120 + + + Application + Unicode + true + v120 + + + Application + Unicode + v120 + + + Application + MultiByte + v120 + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + true + true + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + false + + + + Disabled + $(SolutionDir)..\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + Level3 + EditAndContinue + + + true + Windows + MachineX86 + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + Disabled + $(SolutionDir)..\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + EnableFastChecks + MultiThreadedDebugDLL + + + Level3 + ProgramDatabase + + + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + MaxSpeed + true + $(SolutionDir)..\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + true + + + Level3 + ProgramDatabase + + + true + Windows + true + true + MachineX86 + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + MaxSpeed + true + $(SolutionDir)..\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + true + + + Level3 + ProgramDatabase + + + true + Windows + true + true + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VisualC/tests/testdraw2/testdraw2_VS2013.vcxproj b/VisualC/tests/testdraw2/testdraw2_VS2013.vcxproj new file mode 100644 index 0000000000000..790d628c4f0ce --- /dev/null +++ b/VisualC/tests/testdraw2/testdraw2_VS2013.vcxproj @@ -0,0 +1,232 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + testdraw2 + testdraw2 + {8682FE1E-0CF6-4EDD-9BB5-1733D8C8B4DF} + + + + Application + false + v120 + + + Application + false + MultiByte + v120 + + + Application + false + v120 + + + Application + false + v120 + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + false + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + true + true + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + OnlyExplicitInline + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + + + Level3 + true + Default + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + + + OnlyExplicitInline + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + + + Level3 + true + Default + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + Disabled + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + + + Level3 + true + EditAndContinue + Default + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + + + Disabled + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + + + Level3 + true + ProgramDatabase + Default + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VisualC/tests/testfile/testfile_VS2013.vcxproj b/VisualC/tests/testfile/testfile_VS2013.vcxproj new file mode 100644 index 0000000000000..4a8f0284bdce3 --- /dev/null +++ b/VisualC/tests/testfile/testfile_VS2013.vcxproj @@ -0,0 +1,231 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + testfile + testfile + {CAE4F1D0-314F-4B10-805B-0EFD670133A0} + + + + Application + false + v120 + + + Application + false + v120 + + + Application + false + v120 + + + Application + false + MultiByte + v120 + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + true + true + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + false + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + Disabled + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + + + Level3 + true + EditAndContinue + Default + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + + + Disabled + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + + + Level3 + true + ProgramDatabase + Default + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + OnlyExplicitInline + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + + + Level3 + true + Default + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + + + OnlyExplicitInline + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + + + Level3 + true + Default + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + + + + + + + + + \ No newline at end of file diff --git a/VisualC/tests/testgamecontroller/testgamecontroller_VS2013.vcxproj b/VisualC/tests/testgamecontroller/testgamecontroller_VS2013.vcxproj new file mode 100644 index 0000000000000..6039abd2e39ed --- /dev/null +++ b/VisualC/tests/testgamecontroller/testgamecontroller_VS2013.vcxproj @@ -0,0 +1,231 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + testgamecontroller + testgamecontroller + {55812185-D13C-4022-9C81-32E0F4A08336} + + + + Application + false + v120 + + + Application + false + MultiByte + v120 + + + Application + false + v120 + + + Application + false + v120 + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + false + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + true + true + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + OnlyExplicitInline + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + + + Level3 + true + Default + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + + + OnlyExplicitInline + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + + + Level3 + true + Default + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + Disabled + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + + + Level3 + true + EditAndContinue + Default + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + + + Disabled + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + + + Level3 + true + ProgramDatabase + Default + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + + + + + + + + + \ No newline at end of file diff --git a/VisualC/tests/testgesture/testgesture_VS2013.vcxproj b/VisualC/tests/testgesture/testgesture_VS2013.vcxproj new file mode 100644 index 0000000000000..351ffbd92a19f --- /dev/null +++ b/VisualC/tests/testgesture/testgesture_VS2013.vcxproj @@ -0,0 +1,231 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + testgesture + testgesture + {55812185-D13C-4022-9C81-32E0F4A08996} + + + + Application + false + v120 + + + Application + false + MultiByte + v120 + + + Application + false + v120 + + + Application + false + v120 + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + false + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + true + true + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + OnlyExplicitInline + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + + + Level3 + true + Default + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + + + OnlyExplicitInline + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + + + Level3 + true + Default + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + Disabled + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + + + Level3 + true + EditAndContinue + Default + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + + + Disabled + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + + + Level3 + true + ProgramDatabase + Default + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + + + + + + + + + \ No newline at end of file diff --git a/VisualC/tests/testgl2/testgl2_VS2013.vcxproj b/VisualC/tests/testgl2/testgl2_VS2013.vcxproj new file mode 100644 index 0000000000000..4fd807787d7b4 --- /dev/null +++ b/VisualC/tests/testgl2/testgl2_VS2013.vcxproj @@ -0,0 +1,236 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + testgl2 + testgl2 + {8B5CFB38-CCBA-40A8-AD7A-89C57B070884} + + + + Application + false + v120 + + + Application + false + v120 + + + Application + false + v120 + + + Application + false + MultiByte + v120 + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + true + true + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + false + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + Disabled + ..\..\..\include;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;_WINDOWS;HAVE_OPENGL;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + + + Level3 + true + EditAndContinue + Default + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + opengl32.lib;%(AdditionalDependencies) + true + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + + + Disabled + ..\..\..\include;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;_WINDOWS;HAVE_OPENGL;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + + + Level3 + true + ProgramDatabase + Default + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + opengl32.lib;%(AdditionalDependencies) + true + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + OnlyExplicitInline + ..\..\..\include;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;_WINDOWS;HAVE_OPENGL;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + + + Level3 + true + Default + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + opengl32.lib;%(AdditionalDependencies) + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + + + OnlyExplicitInline + ..\..\..\include;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;_WINDOWS;HAVE_OPENGL;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + + + Level3 + true + Default + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + opengl32.lib;%(AdditionalDependencies) + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VisualC/tests/testjoystick/testjoystick_VS2013.vcxproj b/VisualC/tests/testjoystick/testjoystick_VS2013.vcxproj new file mode 100644 index 0000000000000..e1967c79ecb31 --- /dev/null +++ b/VisualC/tests/testjoystick/testjoystick_VS2013.vcxproj @@ -0,0 +1,231 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + testjoystick + testjoystick + {55812185-D13C-4022-9C81-32E0F4A08BCC} + + + + Application + false + v120 + + + Application + false + MultiByte + v120 + + + Application + false + v120 + + + Application + false + v120 + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + false + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + true + true + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + OnlyExplicitInline + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + + + Level3 + true + Default + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + + + OnlyExplicitInline + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + + + Level3 + true + Default + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + Disabled + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + + + Level3 + true + EditAndContinue + Default + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + + + Disabled + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + + + Level3 + true + ProgramDatabase + Default + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + + + + + + + + + \ No newline at end of file diff --git a/VisualC/tests/testoverlay2/testoverlay2_VS2013.vcxproj b/VisualC/tests/testoverlay2/testoverlay2_VS2013.vcxproj new file mode 100644 index 0000000000000..d51d495e90d60 --- /dev/null +++ b/VisualC/tests/testoverlay2/testoverlay2_VS2013.vcxproj @@ -0,0 +1,235 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + testoverlay2 + testoverlay2 + {55812185-D13C-4022-9C81-32E0F4A08AAD} + + + + Application + false + v110 + + + Application + false + MultiByte + v110 + + + Application + false + v110 + + + Application + false + v110 + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + false + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + true + true + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + OnlyExplicitInline + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + + + Level3 + true + Default + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" +copy "$(SolutionDir)\..\test\moose.dat" "$(TargetDir)\moose.dat" + + + Copy SDL + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + + + OnlyExplicitInline + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + + + Level3 + true + Default + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" +copy "$(SolutionDir)\..\test\moose.dat" "$(TargetDir)\moose.dat" + + + Copy SDL + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + Disabled + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + + + Level3 + true + EditAndContinue + Default + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" +copy "$(SolutionDir)\..\test\moose.dat" "$(TargetDir)\moose.dat" + + + Copy SDL + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + + + Disabled + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + + + Level3 + true + ProgramDatabase + Default + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" +copy "$(SolutionDir)\..\test\moose.dat" "$(TargetDir)\moose.dat" + + + Copy SDL + + + + + + + + + + + + + \ No newline at end of file diff --git a/VisualC/tests/testplatform/testplatform_VS2013.vcxproj b/VisualC/tests/testplatform/testplatform_VS2013.vcxproj new file mode 100644 index 0000000000000..e3347537d3478 --- /dev/null +++ b/VisualC/tests/testplatform/testplatform_VS2013.vcxproj @@ -0,0 +1,249 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + testplatform + testplatform + {26932B24-EFC6-4E3A-B277-ED653DA37968} + + + + Application + false + v120 + + + Application + false + v120 + + + Application + false + v120 + + + Application + false + MultiByte + v120 + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + true + true + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + false + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + Disabled + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDebugDLL + Level3 + true + EditAndContinue + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + true + Windows + + + true + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + + + Disabled + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + Level3 + true + ProgramDatabase + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + true + Windows + + + true + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Release/testplatform.tlb + + + + + MaxSpeed + OnlyExplicitInline + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + $(IntDir) + $(IntDir) + $(IntDir)vc$(PlatformToolsetVersion).pdb + Level3 + true + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + true + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + + + MaxSpeed + OnlyExplicitInline + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + Level3 + true + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + true + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + + + + + %(AdditionalIncludeDirectories) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(PreprocessorDefinitions) + + + + + + \ No newline at end of file diff --git a/VisualC/tests/testpower/testpower_VS2013.vcxproj b/VisualC/tests/testpower/testpower_VS2013.vcxproj new file mode 100644 index 0000000000000..7a3860fd350d8 --- /dev/null +++ b/VisualC/tests/testpower/testpower_VS2013.vcxproj @@ -0,0 +1,231 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + testpower + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A3} + testpower + + + + Application + false + v120 + + + Application + false + v120 + + + Application + false + v120 + + + Application + false + MultiByte + v120 + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + true + true + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + false + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + Disabled + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + + + Level3 + true + EditAndContinue + Default + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + + + Disabled + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + + + Level3 + true + ProgramDatabase + Default + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + OnlyExplicitInline + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + + + Level3 + true + Default + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + + + OnlyExplicitInline + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + + + Level3 + true + Default + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + + + + + + + + + \ No newline at end of file diff --git a/VisualC/tests/testrendertarget/testrendertarget_VS2013.vcxproj b/VisualC/tests/testrendertarget/testrendertarget_VS2013.vcxproj new file mode 100644 index 0000000000000..29756b06f0753 --- /dev/null +++ b/VisualC/tests/testrendertarget/testrendertarget_VS2013.vcxproj @@ -0,0 +1,245 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + testrendertarget + {43A06713-A52D-4008-AD7E-A69DF3FCFFA8} + testrendertarget + + + + Application + false + v120 + + + Application + false + v120 + + + Application + false + v120 + + + Application + false + v120 + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + true + true + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + false + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + Disabled + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + + + Level3 + true + EditAndContinue + Default + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" +copy "$(SolutionDir)\..\test\icon.bmp" "$(TargetDir)\icon.bmp" +copy "$(SolutionDir)\..\test\sample.bmp" "$(TargetDir)\sample.bmp" + + + Copy SDL and data files + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + + + Disabled + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + + + Level3 + true + ProgramDatabase + Default + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" +copy "$(SolutionDir)\..\test\icon.bmp" "$(TargetDir)\icon.bmp" +copy "$(SolutionDir)\..\test\sample.bmp" "$(TargetDir)\sample.bmp" + + + Copy SDL and data files + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + OnlyExplicitInline + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + + + Level3 + true + Default + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" +copy "$(SolutionDir)\..\test\icon.bmp" "$(TargetDir)\icon.bmp" +copy "$(SolutionDir)\..\test\sample.bmp" "$(TargetDir)\sample.bmp" + + + Copy SDL and data files + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + + + OnlyExplicitInline + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + + + Level3 + true + Default + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" +copy "$(SolutionDir)\..\test\icon.bmp" "$(TargetDir)\icon.bmp" +copy "$(SolutionDir)\..\test\sample.bmp" "$(TargetDir)\sample.bmp" + + + Copy SDL and data files + + + + + + + + {da956fd3-e142-46f2-9dd5-c78bebb56b7a} + + + {da956fd3-e143-46f2-9fe5-c77bebc56b1a} + + + {81ce8daf-ebb2-4761-8e45-b71abcca8c68} + + + + + + \ No newline at end of file diff --git a/VisualC/tests/testscale/testscale_VS2013.vcxproj b/VisualC/tests/testscale/testscale_VS2013.vcxproj new file mode 100644 index 0000000000000..5fb8adde06a45 --- /dev/null +++ b/VisualC/tests/testscale/testscale_VS2013.vcxproj @@ -0,0 +1,246 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + testscale + {E7A6C41C-E059-4C9C-8CCC-73586A540B62} + testscale + + + + Application + false + v120 + + + Application + false + v120 + + + Application + false + v120 + + + Application + false + MultiByte + v120 + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + true + true + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + false + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + Disabled + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + + + Level3 + true + EditAndContinue + Default + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" +copy "$(SolutionDir)\..\test\icon.bmp" "$(TargetDir)\icon.bmp" +copy "$(SolutionDir)\..\test\sample.bmp" "$(TargetDir)\sample.bmp" + + + Copy SDL and data files + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + + + Disabled + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + + + Level3 + true + ProgramDatabase + Default + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" +copy "$(SolutionDir)\..\test\icon.bmp" "$(TargetDir)\icon.bmp" +copy "$(SolutionDir)\..\test\sample.bmp" "$(TargetDir)\sample.bmp" + + + Copy SDL and data files + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + OnlyExplicitInline + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + + + Level3 + true + Default + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" +copy "$(SolutionDir)\..\test\icon.bmp" "$(TargetDir)\icon.bmp" +copy "$(SolutionDir)\..\test\sample.bmp" "$(TargetDir)\sample.bmp" + + + Copy SDL and data files + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + + + OnlyExplicitInline + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + + + Level3 + true + Default + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" +copy "$(SolutionDir)\..\test\icon.bmp" "$(TargetDir)\icon.bmp" +copy "$(SolutionDir)\..\test\sample.bmp" "$(TargetDir)\sample.bmp" + + + Copy SDL and data files + + + + + + + + {da956fd3-e142-46f2-9dd5-c78bebb56b7a} + + + {da956fd3-e143-46f2-9fe5-c77bebc56b1a} + + + {81ce8daf-ebb2-4761-8e45-b71abcca8c68} + + + + + + \ No newline at end of file diff --git a/VisualC/tests/testshape/testshape_VS2013.vcxproj b/VisualC/tests/testshape/testshape_VS2013.vcxproj new file mode 100644 index 0000000000000..948cd2aca5c5a --- /dev/null +++ b/VisualC/tests/testshape/testshape_VS2013.vcxproj @@ -0,0 +1,231 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + testshape + testshape + {EDEA9D00-AF64-45DE-8F60-5957048F2F0F} + + + + Application + false + v120 + + + Application + false + MultiByte + v120 + + + Application + false + v120 + + + Application + false + v120 + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + false + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + true + true + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + OnlyExplicitInline + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + + + Level3 + true + Default + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + + + OnlyExplicitInline + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + + + Level3 + true + Default + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + Disabled + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + + + Level3 + true + EditAndContinue + Default + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + + + Disabled + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + + + Level3 + true + ProgramDatabase + Default + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + + + + + + + + + \ No newline at end of file diff --git a/VisualC/tests/testsprite2/testsprite2_VS2013.vcxproj b/VisualC/tests/testsprite2/testsprite2_VS2013.vcxproj new file mode 100644 index 0000000000000..e3ea0ef847763 --- /dev/null +++ b/VisualC/tests/testsprite2/testsprite2_VS2013.vcxproj @@ -0,0 +1,236 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + testsprite2 + testsprite2 + {40FB7794-D3C3-4CFE-BCF4-A80C96635682} + + + + Application + false + v120 + + + Application + false + MultiByte + v120 + + + Application + false + v120 + + + Application + false + v120 + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + false + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + true + true + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + OnlyExplicitInline + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + + + Level3 + true + Default + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" +copy "$(SolutionDir)\..\test\icon.bmp" "$(TargetDir)\icon.bmp" + + + Copy SDL and data files + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + + + OnlyExplicitInline + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + + + Level3 + true + Default + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" +copy "$(SolutionDir)\..\test\icon.bmp" "$(TargetDir)\icon.bmp" + + + Copy SDL and data files + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + Disabled + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + + + Level3 + true + EditAndContinue + Default + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" +copy "$(SolutionDir)\..\test\icon.bmp" "$(TargetDir)\icon.bmp" + + + Copy SDL and data files + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + + + Disabled + ..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + + + Level3 + true + ProgramDatabase + Default + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" +copy "$(SolutionDir)\..\test\icon.bmp" "$(TargetDir)\icon.bmp" + + + Copy SDL and data files + + + + + + + + + + + + + + \ No newline at end of file From e19f15ddd513295932ae9dc3d107c9ff19c6e767 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sun, 10 Nov 2013 14:10:00 -0800 Subject: [PATCH 048/143] Fixed bug 2067 - Window size limit calculation issue when exiting fullscreen on Windows Also fixed minimize and maximize state detection for Windows. --- src/video/SDL_video.c | 27 ++++++++++++-- src/video/windows/SDL_windowsevents.c | 54 +++++++++++++++++---------- src/video/windows/SDL_windowswindow.c | 18 +++++++-- src/video/windows/SDL_windowswindow.h | 1 + 4 files changed, 73 insertions(+), 27 deletions(-) mode change 100644 => 100755 src/video/SDL_video.c mode change 100644 => 100755 src/video/windows/SDL_windowsevents.c mode change 100644 => 100755 src/video/windows/SDL_windowswindow.c mode change 100644 => 100755 src/video/windows/SDL_windowswindow.h diff --git a/src/video/SDL_video.c b/src/video/SDL_video.c old mode 100644 new mode 100755 index 613bf4cf6b3f4..66aa2556dcc45 --- a/src/video/SDL_video.c +++ b/src/video/SDL_video.c @@ -621,9 +621,9 @@ SDL_GetIndexOfDisplay(SDL_VideoDisplay *display) void * SDL_GetDisplayDriverData( int displayIndex ) { - CHECK_DISPLAY_INDEX( displayIndex, NULL ); + CHECK_DISPLAY_INDEX( displayIndex, NULL ); - return _this->displays[displayIndex].driverdata; + return _this->displays[displayIndex].driverdata; } const char * @@ -1627,8 +1627,29 @@ SDL_SetWindowSize(SDL_Window * window, int w, int h) return; } + /* Make sure we don't exceed any window size limits */ + if (window->min_w && w < window->min_w) + { + w = window->min_w; + } + if (window->max_w && w > window->max_w) + { + w = window->max_w; + } + if (window->min_h && h < window->min_h) + { + h = window->min_h; + } + if (window->max_h && h > window->max_h) + { + h = window->max_h; + } + /* FIXME: Should this change fullscreen modes? */ - if (!(window->flags & SDL_WINDOW_FULLSCREEN)) { + if (window->flags & SDL_WINDOW_FULLSCREEN) { + window->windowed.w = w; + window->windowed.h = h; + } else { window->w = w; window->h = h; if (_this->SetWindowSize) { diff --git a/src/video/windows/SDL_windowsevents.c b/src/video/windows/SDL_windowsevents.c old mode 100644 new mode 100755 index ec278d26e5bbd..6a0dd44d76a01 --- a/src/video/windows/SDL_windowsevents.c +++ b/src/video/windows/SDL_windowsevents.c @@ -312,15 +312,15 @@ WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) } #ifdef WMMSG_DEBUG - { - char message[1024]; - if (msg > MAX_WMMSG) { - SDL_snprintf(message, sizeof(message), "Received windows message: %p UNKNOWN (%d) -- 0x%X, 0x%X\n", hwnd, msg, wParam, lParam); - } else { - SDL_snprintf(message, sizeof(message), "Received windows message: %p %s -- 0x%X, 0x%X\n", hwnd, wmtab[msg], wParam, lParam); - } - OutputDebugStringA(message); - } + { + char message[1024]; + if (msg > MAX_WMMSG) { + SDL_snprintf(message, sizeof(message), "Received windows message: %p UNKNOWN (%d) -- 0x%X, 0x%X\n", hwnd, msg, wParam, lParam); + } else { + SDL_snprintf(message, sizeof(message), "Received windows message: %p %s -- 0x%X, 0x%X\n", hwnd, wmtab[msg], wParam, lParam); + } + OutputDebugStringA(message); + } #endif /* WMMSG_DEBUG */ if (IME_HandleMessage(hwnd, msg, wParam, &lParam, data->videodata)) @@ -348,12 +348,6 @@ WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) SHORT keyState; SDL_SendWindowEvent(data->window, SDL_WINDOWEVENT_SHOWN, 0, 0); - SDL_SendWindowEvent(data->window, - SDL_WINDOWEVENT_RESTORED, 0, 0); - if (IsZoomed(hwnd)) { - SDL_SendWindowEvent(data->window, - SDL_WINDOWEVENT_MAXIMIZED, 0, 0); - } if (SDL_GetKeyboardFocus() != data->window) { SDL_SetKeyboardFocus(data->window); } @@ -400,10 +394,6 @@ WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) if (SDL_GetKeyboardFocus() == data->window) { SDL_SetKeyboardFocus(NULL); } - if (minimized) { - SDL_SendWindowEvent(data->window, - SDL_WINDOWEVENT_MINIMIZED, 0, 0); - } } } returnCode = 0; @@ -596,10 +586,14 @@ WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) BOOL menu; BOOL constrain_max_size; - /* If we allow resizing, let the resize happen naturally */ if (SDL_IsShapedWindow(data->window)) Win32_ResizeWindowShape(data->window); + /* If this is an expected size change, allow it */ + if (data->expected_resize) { + break; + } + /* Get the current position of our window */ GetWindowRect(hwnd, &size); x = size.left; @@ -693,6 +687,26 @@ WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) } break; + case WM_SIZE: + { + switch (wParam) + { + case SIZE_MAXIMIZED: + SDL_SendWindowEvent(data->window, + SDL_WINDOWEVENT_MAXIMIZED, 0, 0); + break; + case SIZE_MINIMIZED: + SDL_SendWindowEvent(data->window, + SDL_WINDOWEVENT_MINIMIZED, 0, 0); + break; + default: + SDL_SendWindowEvent(data->window, + SDL_WINDOWEVENT_RESTORED, 0, 0); + break; + } + } + break; + case WM_SETCURSOR: { Uint16 hittest; diff --git a/src/video/windows/SDL_windowswindow.c b/src/video/windows/SDL_windowswindow.c old mode 100644 new mode 100755 index 1a6849d261be4..c7055e46d177f --- a/src/video/windows/SDL_windowswindow.c +++ b/src/video/windows/SDL_windowswindow.c @@ -79,7 +79,8 @@ GetWindowStyle(SDL_Window * window) static void WIN_SetWindowPositionInternal(_THIS, SDL_Window * window, UINT flags) { - HWND hwnd = ((SDL_WindowData *) window->driverdata)->hwnd; + SDL_WindowData *data = (SDL_WindowData *)window->driverdata; + HWND hwnd = data->hwnd; RECT rect; DWORD style; HWND top; @@ -105,7 +106,9 @@ WIN_SetWindowPositionInternal(_THIS, SDL_Window * window, UINT flags) x = window->x + rect.left; y = window->y + rect.top; + data->expected_resize = TRUE; SetWindowPos(hwnd, top, x, y, w, h, flags); + data->expected_resize = FALSE; } static int @@ -410,8 +413,11 @@ WIN_RaiseWindow(_THIS, SDL_Window * window) void WIN_MaximizeWindow(_THIS, SDL_Window * window) { - HWND hwnd = ((SDL_WindowData *) window->driverdata)->hwnd; + SDL_WindowData *data = (SDL_WindowData *)window->driverdata; + HWND hwnd = data->hwnd; + data->expected_resize = TRUE; ShowWindow(hwnd, SW_MAXIMIZE); + data->expected_resize = FALSE; } void @@ -442,9 +448,11 @@ WIN_SetWindowBordered(_THIS, SDL_Window * window, SDL_bool bordered) void WIN_RestoreWindow(_THIS, SDL_Window * window) { - HWND hwnd = ((SDL_WindowData *) window->driverdata)->hwnd; - + SDL_WindowData *data = (SDL_WindowData *)window->driverdata; + HWND hwnd = data->hwnd; + data->expected_resize = TRUE; ShowWindow(hwnd, SW_RESTORE); + data->expected_resize = FALSE; } void @@ -490,7 +498,9 @@ WIN_SetWindowFullscreen(_THIS, SDL_Window * window, SDL_VideoDisplay * display, y = window->windowed.y + rect.top; } SetWindowLong(hwnd, GWL_STYLE, style); + data->expected_resize = TRUE; SetWindowPos(hwnd, top, x, y, w, h, SWP_NOCOPYBITS); + data->expected_resize = FALSE; } int diff --git a/src/video/windows/SDL_windowswindow.h b/src/video/windows/SDL_windowswindow.h old mode 100644 new mode 100755 index e85c201817425..a4c035f53ab4f --- a/src/video/windows/SDL_windowswindow.h +++ b/src/video/windows/SDL_windowswindow.h @@ -33,6 +33,7 @@ typedef struct WNDPROC wndproc; SDL_bool created; WPARAM mouse_button_flags; + BOOL expected_resize; struct SDL_VideoData *videodata; } SDL_WindowData; From 0d39d090767e466deba63bb4c1dfe11a276b682e Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sun, 10 Nov 2013 14:33:01 -0800 Subject: [PATCH 049/143] Hopefully fixed focus problems when handling a global hotkey on X11. See this thread for details: https://bugzilla.mozilla.org/show_bug.cgi?id=578265 --- src/video/x11/SDL_x11events.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/video/x11/SDL_x11events.c b/src/video/x11/SDL_x11events.c index afee2345fc2c1..f7090dd0c1e9a 100644 --- a/src/video/x11/SDL_x11events.c +++ b/src/video/x11/SDL_x11events.c @@ -408,6 +408,13 @@ X11_DispatchEvent(_THIS) /* Losing input focus? */ case FocusOut:{ + if (xevent.xfocus.mode == NotifyGrab) { + /* Someone is handling a global hotkey, ignore it */ +#ifdef DEBUG_XEVENTS + printf("window %p: FocusOut (NotifyGrab, ignoring)\n", data); +#endif + break; + } if (xevent.xfocus.detail == NotifyInferior) { /* We still have focus if a child gets focus */ #ifdef DEBUG_XEVENTS From 9228c845767047ba5e0c8273a88bf85df5852ba1 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sun, 10 Nov 2013 14:48:44 -0800 Subject: [PATCH 050/143] Fixed issue with dead key press/release events being filtered out. --- src/video/x11/SDL_x11events.c | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/src/video/x11/SDL_x11events.c b/src/video/x11/SDL_x11events.c index f7090dd0c1e9a..59642f308dbbc 100644 --- a/src/video/x11/SDL_x11events.c +++ b/src/video/x11/SDL_x11events.c @@ -280,19 +280,39 @@ X11_DispatchEvent(_THIS) Display *display = videodata->display; SDL_WindowData *data; XEvent xevent; - int i; + int orig_event_type; + KeyCode orig_keycode; XClientMessageEvent m; + int i; SDL_zero(xevent); /* valgrind fix. --ryan. */ X11_XNextEvent(display, &xevent); - /* filter events catchs XIM events and sends them to the correct - handler */ + /* Save the original keycode for dead keys, which are filtered out by + the XFilterEvent() call below. + */ + orig_event_type = xevent.type; + if (orig_event_type == KeyPress || orig_event_type == KeyRelease) { + orig_keycode = xevent.xkey.keycode; + } else { + orig_keycode = 0; + } + + /* filter events catchs XIM events and sends them to the correct handler */ if (X11_XFilterEvent(&xevent, None) == True) { #if 0 printf("Filtered event type = %d display = %d window = %d\n", xevent.type, xevent.xany.display, xevent.xany.window); #endif + if (orig_keycode) { + /* Make sure dead key press/release events are sent */ + SDL_Scancode scancode = videodata->key_layout[orig_keycode]; + if (orig_event_type == KeyPress) { + SDL_SendKeyboardKey(SDL_PRESSED, scancode); + } else { + SDL_SendKeyboardKey(SDL_RELEASED, scancode); + } + } return; } From d21640e92a91ab581a25b4b21ebd5e84b7825cbf Mon Sep 17 00:00:00 2001 From: Gabriel Jacobo Date: Sun, 10 Nov 2013 20:13:27 -0300 Subject: [PATCH 051/143] Fixes bugs #2213 and #2214, improves the Android joystick code button handling --- README-android.txt | 4 +- src/joystick/android/SDL_sysjoystick.c | 112 ++++++++++++++++++++----- 2 files changed, 93 insertions(+), 23 deletions(-) diff --git a/README-android.txt b/README-android.txt index 4a1cfc29fc8c2..ae8de0d8a55ad 100644 --- a/README-android.txt +++ b/README-android.txt @@ -433,4 +433,6 @@ Reference: http://www.khronos.org/registry/egl/specs/EGLTechNote0001.html Known issues ================================================================================ -- TODO. I'm sure there's a bunch more stuff I haven't thought of +- The number of buttons reported for each joystick is hardcoded to be 36, which +is the current maximum number of buttons Android can report. + diff --git a/src/joystick/android/SDL_sysjoystick.c b/src/joystick/android/SDL_sysjoystick.c index 012512991eb2e..e29aced54fa04 100644 --- a/src/joystick/android/SDL_sysjoystick.c +++ b/src/joystick/android/SDL_sysjoystick.c @@ -30,12 +30,35 @@ #include "SDL_events.h" #include "SDL_joystick.h" #include "SDL_hints.h" +#include "SDL_assert.h" #include "../SDL_sysjoystick.h" #include "../SDL_joystick_c.h" #include "../../core/android/SDL_android.h" +#include "android/keycodes.h" + +/* As of platform android-14, android/keycodes.h is missing these defines */ +#ifndef AKEYCODE_BUTTON_1 +#define AKEYCODE_BUTTON_1 188 +#define AKEYCODE_BUTTON_2 189 +#define AKEYCODE_BUTTON_3 190 +#define AKEYCODE_BUTTON_4 191 +#define AKEYCODE_BUTTON_5 192 +#define AKEYCODE_BUTTON_6 193 +#define AKEYCODE_BUTTON_7 194 +#define AKEYCODE_BUTTON_8 195 +#define AKEYCODE_BUTTON_9 196 +#define AKEYCODE_BUTTON_10 197 +#define AKEYCODE_BUTTON_11 198 +#define AKEYCODE_BUTTON_12 199 +#define AKEYCODE_BUTTON_13 200 +#define AKEYCODE_BUTTON_14 201 +#define AKEYCODE_BUTTON_15 202 +#define AKEYCODE_BUTTON_16 203 +#endif #define ANDROID_ACCELEROMETER_INDEX (SYS_numjoysticks - 1) #define ANDROID_ACCELEROMETER_NAME "Android Accelerometer" +#define ANDROID_MAX_NBUTTONS 36 static SDL_Joystick **SYS_Joysticks; static char **SYS_JoystickNames; @@ -44,31 +67,76 @@ static SDL_bool SYS_accelAsJoy; /* Function to convert Android keyCodes into SDL ones. * This code manipulation is done to get a sequential list of codes. + * FIXME: This is only suited for the case where we use a fixed number of buttons determined by ANDROID_MAX_NBUTTONS */ static int keycode_to_SDL(int keycode) { - /* D-Pad key codes (API 1): - * KEYCODE_DPAD_UP=19, KEYCODE_DPAD_DOWN - * KEYCODE_DPAD_LEFT, KEYCODE_DPAD_RIGHT, KEYCODE_DPAD_CENTER - */ - if(keycode < 96) - return keycode-19; - /* Some gamepad buttons (API 9): - * KEYCODE_BUTTON_A=96, KEYCODE_BUTTON_B, KEYCODE_BUTTON_C, - * KEYCODE_BUTTON_X, KEYCODE_BUTTON_Y, KEYCODE_BUTTON_Z, - * KEYCODE_BUTTON_L1, KEYCODE_BUTTON_L2, - * KEYCODE_BUTTON_R1, KEYCODE_BUTTON_R2, - * KEYCODE_BUTTON_THUMBL, KEYCODE_BUTTON_THUMBR, - * KEYCODE_BUTTON_START, KEYCODE_BUTTON_SELECT, KEYCODE_BUTTON_MODE - */ - else if(keycode < 188) - return keycode-91; - /* More gamepad buttons (API 12): - * KEYCODE_BUTTON_1=188 to KEYCODE_BUTTON_16 + /* FIXME: If this function gets too unwiedly in the future, replace with a lookup table */ + int button = 0; + switch(keycode) + { + /* D-Pad key codes (API 1), these get mapped to 0...4 */ + case AKEYCODE_DPAD_UP: + case AKEYCODE_DPAD_DOWN: + case AKEYCODE_DPAD_LEFT: + case AKEYCODE_DPAD_RIGHT: + case AKEYCODE_DPAD_CENTER: + button = keycode - AKEYCODE_DPAD_UP; + break; + + /* Some gamepad buttons (API 9), these get mapped to 5...19*/ + case AKEYCODE_BUTTON_A: + case AKEYCODE_BUTTON_B: + case AKEYCODE_BUTTON_C: + case AKEYCODE_BUTTON_X: + case AKEYCODE_BUTTON_Y: + case AKEYCODE_BUTTON_Z: + case AKEYCODE_BUTTON_L1: + case AKEYCODE_BUTTON_L2: + case AKEYCODE_BUTTON_R1: + case AKEYCODE_BUTTON_R2: + case AKEYCODE_BUTTON_THUMBL: + case AKEYCODE_BUTTON_THUMBR: + case AKEYCODE_BUTTON_START: + case AKEYCODE_BUTTON_SELECT: + case AKEYCODE_BUTTON_MODE: + button = keycode - AKEYCODE_BUTTON_A + 5; + break; + + + /* More gamepad buttons (API 12), these get mapped to 20...35*/ + case AKEYCODE_BUTTON_1: + case AKEYCODE_BUTTON_2: + case AKEYCODE_BUTTON_3: + case AKEYCODE_BUTTON_4: + case AKEYCODE_BUTTON_5: + case AKEYCODE_BUTTON_6: + case AKEYCODE_BUTTON_7: + case AKEYCODE_BUTTON_8: + case AKEYCODE_BUTTON_9: + case AKEYCODE_BUTTON_10: + case AKEYCODE_BUTTON_11: + case AKEYCODE_BUTTON_12: + case AKEYCODE_BUTTON_13: + case AKEYCODE_BUTTON_14: + case AKEYCODE_BUTTON_15: + case AKEYCODE_BUTTON_16: + button = keycode - AKEYCODE_BUTTON_1 + 20; + break; + + default: + SDL_Log("The button you just pressed is not recognized by SDL. To help get this fixed, please report this to the SDL mailing list Android KeyCode %d", keycode); + return -1; + break; + } + + /* This is here in case future generations, probably with six fingers per hand, + * happily add new cases up above and forget to update the max number of buttons. */ - else - return keycode-168; + SDL_assert(button < ANDROID_MAX_NBUTTONS); + return button; + } /* Function to scan the system for joysticks. @@ -162,8 +230,8 @@ SDL_SYS_JoystickOpen(SDL_Joystick * joystick, int device_index) joystick->nbuttons = 0; joystick->naxes = 3; } else { - /* TODO: Get the real number of buttons in the device */ - joystick->nbuttons = 36; + /* FIXME: Get the real number of buttons in the device? */ + joystick->nbuttons = ANDROID_MAX_NBUTTONS; joystick->naxes = Android_JNI_GetJoystickAxes(device_index); } From 15a3bbcbd9b49035b71717c88e48aaea00db2953 Mon Sep 17 00:00:00 2001 From: Gabriel Jacobo Date: Sun, 10 Nov 2013 20:38:50 -0300 Subject: [PATCH 052/143] [X11] Ignore both NotifyGrab and NotifyUngrab modes in FocusIn/FocusOut events --- src/video/x11/SDL_x11events.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/video/x11/SDL_x11events.c b/src/video/x11/SDL_x11events.c index 59642f308dbbc..423bd87d390f6 100644 --- a/src/video/x11/SDL_x11events.c +++ b/src/video/x11/SDL_x11events.c @@ -399,6 +399,14 @@ X11_DispatchEvent(_THIS) /* Gaining input focus? */ case FocusIn:{ + if (xevent.xfocus.mode == NotifyGrab || xevent.xfocus.mode == NotifyUngrab) { + /* Someone is handling a global hotkey, ignore it */ +#ifdef DEBUG_XEVENTS + printf("window %p: FocusIn (NotifyGrab/NotifyUngrab, ignoring)\n", data); +#endif + break; + } + if (xevent.xfocus.detail == NotifyInferior) { #ifdef DEBUG_XEVENTS printf("window %p: FocusIn (NotifierInferior, ignoring)\n", data); @@ -428,10 +436,10 @@ X11_DispatchEvent(_THIS) /* Losing input focus? */ case FocusOut:{ - if (xevent.xfocus.mode == NotifyGrab) { + if (xevent.xfocus.mode == NotifyGrab || xevent.xfocus.mode == NotifyUngrab) { /* Someone is handling a global hotkey, ignore it */ #ifdef DEBUG_XEVENTS - printf("window %p: FocusOut (NotifyGrab, ignoring)\n", data); + printf("window %p: FocusOut (NotifyGrab/NotifyUngrab, ignoring)\n", data); #endif break; } From 5821466c051ecba4b2604c14f080c61825806986 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sun, 10 Nov 2013 17:40:35 -0800 Subject: [PATCH 053/143] Fixed bug 2176 - SDL_CreateWindow(w=INT_MAX, h=INT_MAX) causes program to hang Catch exceptions generated when trying to create a Cocoa window. --- src/video/cocoa/SDL_cocoawindow.m | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/video/cocoa/SDL_cocoawindow.m b/src/video/cocoa/SDL_cocoawindow.m index b73a837a6ef85..6b4eca4610f5f 100644 --- a/src/video/cocoa/SDL_cocoawindow.m +++ b/src/video/cocoa/SDL_cocoawindow.m @@ -748,7 +748,14 @@ - (void)resetCursorRects rect.origin.y -= screenRect.origin.y; } } - nswindow = [[SDLWindow alloc] initWithContentRect:rect styleMask:style backing:NSBackingStoreBuffered defer:NO screen:screen]; + + @try { + nswindow = [[SDLWindow alloc] initWithContentRect:rect styleMask:style backing:NSBackingStoreBuffered defer:NO screen:screen]; + } + @catch (NSException *e) { + SDL_SetError("%s", [[e reason] UTF8String]); + return -1; + } [nswindow setBackgroundColor:[NSColor blackColor]]; /* Create a default view for this window */ From b30e396ba1139d79d432f1c9887b29d212910da6 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sun, 10 Nov 2013 17:56:07 -0800 Subject: [PATCH 054/143] Fixed bug 1965 - Mac: dead code for supporting OS 10.4 Alex Szpakowski The new patch removes all the truly obsolete code I could find. I tested on OS 10.8 and OS 10.5. --- src/joystick/darwin/SDL_sysjoystick.c | 5 --- src/video/cocoa/SDL_cocoakeyboard.m | 49 +-------------------------- 2 files changed, 1 insertion(+), 53 deletions(-) diff --git a/src/joystick/darwin/SDL_sysjoystick.c b/src/joystick/darwin/SDL_sysjoystick.c index 55ec41ed8a69d..125fdc0e25a41 100644 --- a/src/joystick/darwin/SDL_sysjoystick.c +++ b/src/joystick/darwin/SDL_sysjoystick.c @@ -32,12 +32,7 @@ #include #include #include -#ifdef MACOS_10_0_4 -#include -#else -/* The header was moved here in Mac OS X 10.1 */ #include -#endif #include #include #include diff --git a/src/video/cocoa/SDL_cocoakeyboard.m b/src/video/cocoa/SDL_cocoakeyboard.m index 8a6b87422ba95..f8764fb25c65c 100644 --- a/src/video/cocoa/SDL_cocoakeyboard.m +++ b/src/video/cocoa/SDL_cocoakeyboard.m @@ -198,45 +198,6 @@ - (NSArray *) validAttributesForMarkedText @end -/* This is the original behavior, before support was added for - * differentiating between left and right versions of the keys. - */ -static void -DoUnsidedModifiers(unsigned short scancode, - unsigned int oldMods, unsigned int newMods) -{ - const int mapping[] = { - SDL_SCANCODE_CAPSLOCK, - SDL_SCANCODE_LSHIFT, - SDL_SCANCODE_LCTRL, - SDL_SCANCODE_LALT, - SDL_SCANCODE_LGUI - }; - unsigned int i, bit; - - /* Iterate through the bits, testing each against the current modifiers */ - for (i = 0, bit = NSAlphaShiftKeyMask; bit <= NSCommandKeyMask; bit <<= 1, ++i) { - unsigned int oldMask, newMask; - - oldMask = oldMods & bit; - newMask = newMods & bit; - - if (oldMask && oldMask != newMask) { /* modifier up event */ - /* If this was Caps Lock, we need some additional voodoo to make SDL happy */ - if (bit == NSAlphaShiftKeyMask) { - SDL_SendKeyboardKey(SDL_PRESSED, mapping[i]); - } - SDL_SendKeyboardKey(SDL_RELEASED, mapping[i]); - } else if (newMask && oldMask != newMask) { /* modifier down event */ - SDL_SendKeyboardKey(SDL_PRESSED, mapping[i]); - /* If this was Caps Lock, we need some additional voodoo to make SDL happy */ - if (bit == NSAlphaShiftKeyMask) { - SDL_SendKeyboardKey(SDL_RELEASED, mapping[i]); - } - } - } -} - /* This is a helper function for HandleModifierSide. This * function reverts back to behavior before the distinction between * sides was made. @@ -458,15 +419,7 @@ - (NSArray *) validAttributesForMarkedText return; } - /* - * Starting with Panther (10.3.0), the ability to distinguish between - * left side and right side modifiers is available. - */ - if (data->osversion >= 0x1030) { - DoSidedModifiers(scancode, data->modifierFlags, modifierFlags); - } else { - DoUnsidedModifiers(scancode, data->modifierFlags, modifierFlags); - } + DoSidedModifiers(scancode, data->modifierFlags, modifierFlags); data->modifierFlags = modifierFlags; } From 893afbaf3b86a0a3052cfdaf68549aae9eade5d7 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sun, 10 Nov 2013 19:19:44 -0800 Subject: [PATCH 055/143] Fixed pool memory leak --- src/video/cocoa/SDL_cocoawindow.m | 1 + 1 file changed, 1 insertion(+) diff --git a/src/video/cocoa/SDL_cocoawindow.m b/src/video/cocoa/SDL_cocoawindow.m index 6b4eca4610f5f..00ee08f3250c7 100644 --- a/src/video/cocoa/SDL_cocoawindow.m +++ b/src/video/cocoa/SDL_cocoawindow.m @@ -754,6 +754,7 @@ - (void)resetCursorRects } @catch (NSException *e) { SDL_SetError("%s", [[e reason] UTF8String]); + [pool release]; return -1; } [nswindow setBackgroundColor:[NSColor blackColor]]; From 77a0d3fe2afafad9e9b9b81cb687c0368bfdb048 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Mon, 11 Nov 2013 01:59:20 -0800 Subject: [PATCH 056/143] Toggling fullscreen now takes fullscreen flags --- src/test/SDL_test_common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/SDL_test_common.c b/src/test/SDL_test_common.c index c4d72db32f751..f06c49ea5708f 100644 --- a/src/test/SDL_test_common.c +++ b/src/test/SDL_test_common.c @@ -1338,7 +1338,7 @@ SDLTest_CommonEvent(SDLTest_CommonState * state, SDL_Event * event, int *done) if (flags & SDL_WINDOW_FULLSCREEN) { SDL_SetWindowFullscreen(window, SDL_FALSE); } else { - SDL_SetWindowFullscreen(window, SDL_TRUE); + SDL_SetWindowFullscreen(window, SDL_WINDOW_FULLSCREEN); } } } else if (event->key.keysym.mod & KMOD_ALT) { From 6ec3e69045594bde70fc45148125224924a2137e Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Mon, 11 Nov 2013 01:59:40 -0800 Subject: [PATCH 057/143] Fixed whitespace style --- src/video/SDL_video.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/video/SDL_video.c b/src/video/SDL_video.c index 66aa2556dcc45..46796e8055b3e 100755 --- a/src/video/SDL_video.c +++ b/src/video/SDL_video.c @@ -1118,11 +1118,11 @@ SDL_UpdateFullscreenMode(SDL_Window * window, SDL_bool fullscreen) } /* only do the mode change if we want exclusive fullscreen */ - if ( ( window->flags & SDL_WINDOW_FULLSCREEN_DESKTOP ) != SDL_WINDOW_FULLSCREEN_DESKTOP ) + if ((window->flags & SDL_WINDOW_FULLSCREEN_DESKTOP) != SDL_WINDOW_FULLSCREEN_DESKTOP) { SDL_SetDisplayModeForDisplay(display, &fullscreen_mode); - else + } else { SDL_SetDisplayModeForDisplay(display, NULL); - + } if (_this->SetWindowFullscreen) { _this->SetWindowFullscreen(_this, other, display, SDL_TRUE); From 2b93fa08921bd132e8d7025534179c9b641a4936 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Mon, 11 Nov 2013 02:00:58 -0800 Subject: [PATCH 058/143] Turn off resizable flag by default, you can always pass the --resize command line option if you need it. --- test/testsprite2.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/test/testsprite2.c b/test/testsprite2.c index e0e1cf493151d..e61081036fa6a 100644 --- a/test/testsprite2.c +++ b/test/testsprite2.c @@ -248,8 +248,6 @@ main(int argc, char *argv[]) return 1; } - state->window_flags |= SDL_WINDOW_RESIZABLE; - for (i = 1; i < argc;) { int consumed; From 4c1322f693bf880f4d1011a2d13c46ff38c6dc81 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Mon, 11 Nov 2013 02:53:00 -0800 Subject: [PATCH 059/143] Added support for new style fullscreen transitions on Mac OS X --- src/video/cocoa/SDL_cocoaevents.m | 20 ++++ src/video/cocoa/SDL_cocoawindow.h | 7 ++ src/video/cocoa/SDL_cocoawindow.m | 165 +++++++++++++++++++++++++----- 3 files changed, 166 insertions(+), 26 deletions(-) diff --git a/src/video/cocoa/SDL_cocoaevents.m b/src/video/cocoa/SDL_cocoaevents.m index e6b292b0bda57..30a63d8f74992 100644 --- a/src/video/cocoa/SDL_cocoaevents.m +++ b/src/video/cocoa/SDL_cocoaevents.m @@ -147,6 +147,7 @@ - (BOOL)application:(NSApplication *)theApplication openFile:(NSString *)filenam NSMenu *appleMenu; NSMenu *serviceMenu; NSMenu *windowMenu; + NSMenu *viewMenu; NSMenuItem *menuItem; if (NSApp == nil) { @@ -220,6 +221,25 @@ - (BOOL)application:(NSApplication *)theApplication openFile:(NSString *)filenam /* Tell the application object that this is now the window menu */ [NSApp setWindowsMenu:windowMenu]; [windowMenu release]; + + + /* Add the fullscreen view toggle menu option, if supported */ + if ([NSApp respondsToSelector:@selector(setPresentationOptions:)]) { + /* Create the view menu */ + viewMenu = [[NSMenu alloc] initWithTitle:@"View"]; + + /* Add menu items */ + menuItem = [viewMenu addItemWithTitle:@"Toggle Full Screen" action:@selector(toggleFullScreen:) keyEquivalent:@"f"]; + [menuItem setKeyEquivalentModifierMask:NSControlKeyMask | NSCommandKeyMask]; + + /* Put menu into the menubar */ + menuItem = [[NSMenuItem alloc] initWithTitle:@"View" action:nil keyEquivalent:@""]; + [menuItem setSubmenu:viewMenu]; + [[NSApp mainMenu] addItem:menuItem]; + [menuItem release]; + + [viewMenu release]; + } } void diff --git a/src/video/cocoa/SDL_cocoawindow.h b/src/video/cocoa/SDL_cocoawindow.h index c08c55c11b8f9..1ec3d3c5440bf 100644 --- a/src/video/cocoa/SDL_cocoawindow.h +++ b/src/video/cocoa/SDL_cocoawindow.h @@ -32,11 +32,14 @@ typedef struct SDL_WindowData SDL_WindowData; BOOL observingVisible; BOOL wasCtrlLeft; BOOL wasVisible; + BOOL isFullscreen; + BOOL inFullscreenTransition; } -(void) listen:(SDL_WindowData *) data; -(void) pauseVisibleObservation; -(void) resumeVisibleObservation; +-(BOOL) isToggledFullscreen; -(void) close; /* Window delegate functionality */ @@ -48,6 +51,10 @@ typedef struct SDL_WindowData SDL_WindowData; -(void) windowDidDeminiaturize:(NSNotification *) aNotification; -(void) windowDidBecomeKey:(NSNotification *) aNotification; -(void) windowDidResignKey:(NSNotification *) aNotification; +-(void) windowWillEnterFullScreen:(NSNotification *) aNotification; +-(void) windowDidEnterFullScreen:(NSNotification *) aNotification; +-(void) windowWillExitFullScreen:(NSNotification *) aNotification; +-(void) windowDidExitFullScreen:(NSNotification *) aNotification; /* Window event handling */ -(void) mouseDown:(NSEvent *) theEvent; diff --git a/src/video/cocoa/SDL_cocoawindow.m b/src/video/cocoa/SDL_cocoawindow.m index 00ee08f3250c7..91cc7d15e299f 100644 --- a/src/video/cocoa/SDL_cocoawindow.m +++ b/src/video/cocoa/SDL_cocoawindow.m @@ -50,7 +50,8 @@ static void ConvertNSRect(NSRect *r) r->origin.y = CGDisplayPixelsHigh(kCGDirectMainDisplay) - r->origin.y - r->size.height; } -static void ScheduleContextUpdates(SDL_WindowData *data) +static void +ScheduleContextUpdates(SDL_WindowData *data) { NSMutableArray *contexts = data->nscontexts; @synchronized (contexts) { @@ -60,12 +61,34 @@ static void ScheduleContextUpdates(SDL_WindowData *data) } } -static int GetHintCtrlClickEmulateRightClick() +static int +GetHintCtrlClickEmulateRightClick() { const char *hint = SDL_GetHint( SDL_HINT_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK ); return hint != NULL && *hint != '0'; } +static unsigned int +GetWindowStyle(SDL_Window * window) +{ + unsigned int style; + + if (window->flags & SDL_WINDOW_FULLSCREEN) { + style = NSBorderlessWindowMask; + } else { + if (window->flags & SDL_WINDOW_BORDERLESS) { + style = NSBorderlessWindowMask; + } else { + style = (NSTitledWindowMask|NSClosableWindowMask|NSMiniaturizableWindowMask); + } + if (window->flags & SDL_WINDOW_RESIZABLE) { + style |= NSResizableWindowMask; + } + } + return style; +} + + @implementation Cocoa_WindowListener - (void)listen:(SDL_WindowData *)data @@ -78,6 +101,8 @@ - (void)listen:(SDL_WindowData *)data observingVisible = YES; wasCtrlLeft = NO; wasVisible = [window isVisible]; + isFullscreen = NO; + inFullscreenTransition = NO; center = [NSNotificationCenter defaultCenter]; @@ -89,6 +114,10 @@ - (void)listen:(SDL_WindowData *)data [center addObserver:self selector:@selector(windowDidDeminiaturize:) name:NSWindowDidDeminiaturizeNotification object:window]; [center addObserver:self selector:@selector(windowDidBecomeKey:) name:NSWindowDidBecomeKeyNotification object:window]; [center addObserver:self selector:@selector(windowDidResignKey:) name:NSWindowDidResignKeyNotification object:window]; + [center addObserver:self selector:@selector(windowWillEnterFullScreen:) name:NSWindowWillEnterFullScreenNotification object:window]; + [center addObserver:self selector:@selector(windowDidEnterFullScreen:) name:NSWindowDidEnterFullScreenNotification object:window]; + [center addObserver:self selector:@selector(windowWillExitFullScreen:) name:NSWindowWillExitFullScreenNotification object:window]; + [center addObserver:self selector:@selector(windowDidExitFullScreen:) name:NSWindowDidExitFullScreenNotification object:window]; } else { [window setDelegate:self]; } @@ -152,6 +181,11 @@ -(void) resumeVisibleObservation } } +- (BOOL) isToggledFullscreen +{ + return isFullscreen; +} + - (void)close { NSNotificationCenter *center; @@ -169,6 +203,10 @@ - (void)close [center removeObserver:self name:NSWindowDidDeminiaturizeNotification object:window]; [center removeObserver:self name:NSWindowDidBecomeKeyNotification object:window]; [center removeObserver:self name:NSWindowDidResignKeyNotification object:window]; + [center removeObserver:self name:NSWindowWillEnterFullScreenNotification object:window]; + [center removeObserver:self name:NSWindowDidEnterFullScreenNotification object:window]; + [center removeObserver:self name:NSWindowWillExitFullScreenNotification object:window]; + [center removeObserver:self name:NSWindowDidExitFullScreenNotification object:window]; } else { [window setDelegate:nil]; } @@ -250,8 +288,15 @@ - (void)windowDidResize:(NSNotification *)aNotification y = (int)rect.origin.y; w = (int)rect.size.width; h = (int)rect.size.height; - if (SDL_IsShapedWindow(_data->window)) + + if (inFullscreenTransition) { + /* We'll take care of this at the end of the transition */ + return; + } + + if (SDL_IsShapedWindow(_data->window)) { Cocoa_ResizeWindowShape(_data->window); + } ScheduleContextUpdates(_data); @@ -317,6 +362,46 @@ - (void)windowDidResignKey:(NSNotification *)aNotification } } +- (void)windowWillEnterFullScreen:(NSNotification *)aNotification +{ + SDL_Window *window = _data->window; + NSWindow *nswindow = _data->nswindow; + + if (!(window->flags & SDL_WINDOW_RESIZABLE)) { + if ((window->flags & SDL_WINDOW_FULLSCREEN_DESKTOP) == SDL_WINDOW_FULLSCREEN_DESKTOP) { + [nswindow setStyleMask:(NSTitledWindowMask|NSClosableWindowMask|NSMiniaturizableWindowMask|NSResizableWindowMask)]; + } else { + [nswindow setStyleMask:NSBorderlessWindowMask]; + } + } + isFullscreen = YES; + inFullscreenTransition = YES; +} + +- (void)windowDidEnterFullScreen:(NSNotification *)aNotification +{ + inFullscreenTransition = NO; + [self windowDidResize:aNotification]; +} + +- (void)windowWillExitFullScreen:(NSNotification *)aNotification +{ + inFullscreenTransition = YES; +} + +- (void)windowDidExitFullScreen:(NSNotification *)aNotification +{ + SDL_Window *window = _data->window; + NSWindow *nswindow = _data->nswindow; + + if (!(window->flags & SDL_WINDOW_RESIZABLE)) { + [nswindow setStyleMask:GetWindowStyle(window)]; + } + isFullscreen = NO; + inFullscreenTransition = NO; + [self windowDidResize:aNotification]; +} + /* We'll respond to key events by doing nothing so we don't beep. * We could handle key messages here, but we lose some in the NSApp dispatch, * where they get converted to action messages, etc. @@ -606,26 +691,6 @@ - (void)resetCursorRects } @end -static unsigned int -GetWindowStyle(SDL_Window * window) -{ - unsigned int style; - - if (window->flags & SDL_WINDOW_FULLSCREEN) { - style = NSBorderlessWindowMask; - } else { - if (window->flags & SDL_WINDOW_BORDERLESS) { - style = NSBorderlessWindowMask; - } else { - style = (NSTitledWindowMask|NSClosableWindowMask|NSMiniaturizableWindowMask); - } - if (window->flags & SDL_WINDOW_RESIZABLE) { - style |= NSResizableWindowMask; - } - } - return style; -} - static int SetupWindowData(_THIS, SDL_Window * window, NSWindow *nswindow, SDL_bool created) { @@ -758,6 +823,7 @@ - (void)resetCursorRects return -1; } [nswindow setBackgroundColor:[NSColor blackColor]]; + [nswindow setCollectionBehavior:NSWindowCollectionBehaviorFullScreenPrimary]; /* Create a default view for this window */ rect = [nswindow contentRectForFrameRect:[nswindow frame]]; @@ -1020,10 +1086,45 @@ - (void)resetCursorRects [pool release]; } -void -Cocoa_SetWindowFullscreen(_THIS, SDL_Window * window, SDL_VideoDisplay * display, SDL_bool fullscreen) +static SDL_bool +Cocoa_CanToggleFullscreen(_THIS, SDL_Window * window, SDL_VideoDisplay * display, SDL_bool fullscreen) +{ + SDL_WindowData *data = (SDL_WindowData *) window->driverdata; + NSWindow *nswindow = data->nswindow; + + if (![nswindow respondsToSelector: @selector(toggleFullScreen:)]) { + return SDL_FALSE; + } + + /* We can enter new style fullscreen mode for "fullscreen desktop" */ + if ((window->flags & SDL_WINDOW_FULLSCREEN_DESKTOP) == SDL_WINDOW_FULLSCREEN_DESKTOP) { + return SDL_TRUE; + } + + /* We can always leave new style fullscreen mode */ + if (!fullscreen && [data->listener isToggledFullscreen]) { + return SDL_TRUE; + } + + /* Requesting a mode switched fullscreen mode */ + return SDL_FALSE; +} + +static void +Cocoa_SetWindowFullscreen_NewStyle(_THIS, SDL_Window * window, SDL_VideoDisplay * display, SDL_bool fullscreen) +{ + SDL_WindowData *data = (SDL_WindowData *) window->driverdata; + NSWindow *nswindow = data->nswindow; + + if (fullscreen != [data->listener isToggledFullscreen]) { + [nswindow toggleFullScreen:nil]; + } + ScheduleContextUpdates(data); +} + +static void +Cocoa_SetWindowFullscreen_OldStyle(_THIS, SDL_Window * window, SDL_VideoDisplay * display, SDL_bool fullscreen) { - NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; SDL_WindowData *data = (SDL_WindowData *) window->driverdata; NSWindow *nswindow = data->nswindow; NSRect rect; @@ -1097,6 +1198,18 @@ - (void)resetCursorRects } ScheduleContextUpdates(data); +} + +void +Cocoa_SetWindowFullscreen(_THIS, SDL_Window * window, SDL_VideoDisplay * display, SDL_bool fullscreen) +{ + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + + if (Cocoa_CanToggleFullscreen(_this, window, display, fullscreen)) { + Cocoa_SetWindowFullscreen_NewStyle(_this, window, display, fullscreen); + } else { + Cocoa_SetWindowFullscreen_OldStyle(_this, window, display, fullscreen); + } [pool release]; } From 2ceeb74e25174d84741519bfb0584a720619df62 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Mon, 11 Nov 2013 03:02:42 -0800 Subject: [PATCH 060/143] Don't minimize by default when in fullscreen desktop mode. This fixes behavior with the new Mac OS X fullscreen space code, as well as improve behavior on Linux desktops. The default for normal fullscreen mode is still to minimize because we're likely doing a mode switch and don't want to stick around as a borderless window in the background. --- src/video/SDL_video.c | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/src/video/SDL_video.c b/src/video/SDL_video.c index 46796e8055b3e..44f3daa54ef03 100755 --- a/src/video/SDL_video.c +++ b/src/video/SDL_video.c @@ -2134,8 +2134,22 @@ SDL_OnWindowFocusGained(SDL_Window * window) SDL_UpdateWindowGrab(window); } -static SDL_bool ShouldMinimizeOnFocusLoss() +static SDL_bool +ShouldMinimizeOnFocusLoss(SDL_Window * window) { + SDL_bool default_minimize; + + if (!(window->flags & SDL_WINDOW_FULLSCREEN)) { + return SDL_FALSE; + } + + if ((window->flags & SDL_WINDOW_FULLSCREEN_DESKTOP) == SDL_WINDOW_FULLSCREEN_DESKTOP) { + /* We're not doing a mode switch, so it's okay to stay around */ + default_minimize = SDL_FALSE; + } else { + default_minimize = SDL_TRUE; + } + const char *hint = SDL_GetHint(SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS); if (hint) { if (*hint == '0') { @@ -2144,7 +2158,8 @@ static SDL_bool ShouldMinimizeOnFocusLoss() return SDL_TRUE; } } - return SDL_TRUE; + + return default_minimize; } void @@ -2156,8 +2171,7 @@ SDL_OnWindowFocusLost(SDL_Window * window) SDL_UpdateWindowGrab(window); - /* If we're fullscreen and lose focus, minimize unless the hint tells us otherwise */ - if ((window->flags & SDL_WINDOW_FULLSCREEN) && ShouldMinimizeOnFocusLoss()) { + if (ShouldMinimizeOnFocusLoss(window)) { SDL_MinimizeWindow(window); } } From 2384ad5b9e7425f9858908b00082612b7c78ba0f Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Mon, 11 Nov 2013 03:12:50 -0800 Subject: [PATCH 061/143] Fixed compiling with ISO C90 --- src/video/SDL_video.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/video/SDL_video.c b/src/video/SDL_video.c index 44f3daa54ef03..0f0b3e6f7d477 100755 --- a/src/video/SDL_video.c +++ b/src/video/SDL_video.c @@ -2138,6 +2138,7 @@ static SDL_bool ShouldMinimizeOnFocusLoss(SDL_Window * window) { SDL_bool default_minimize; + const char *hint; if (!(window->flags & SDL_WINDOW_FULLSCREEN)) { return SDL_FALSE; @@ -2150,7 +2151,7 @@ ShouldMinimizeOnFocusLoss(SDL_Window * window) default_minimize = SDL_TRUE; } - const char *hint = SDL_GetHint(SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS); + hint = SDL_GetHint(SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS); if (hint) { if (*hint == '0') { return SDL_FALSE; From f0692d656f568c2b86aae9e4181ed9df88e0a7ab Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Mon, 11 Nov 2013 03:29:11 -0800 Subject: [PATCH 062/143] Fixed compiling with older Mac OS X SDK --- src/video/cocoa/SDL_cocoawindow.m | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/video/cocoa/SDL_cocoawindow.m b/src/video/cocoa/SDL_cocoawindow.m index 91cc7d15e299f..20852b2e13fe4 100644 --- a/src/video/cocoa/SDL_cocoawindow.m +++ b/src/video/cocoa/SDL_cocoawindow.m @@ -114,10 +114,12 @@ - (void)listen:(SDL_WindowData *)data [center addObserver:self selector:@selector(windowDidDeminiaturize:) name:NSWindowDidDeminiaturizeNotification object:window]; [center addObserver:self selector:@selector(windowDidBecomeKey:) name:NSWindowDidBecomeKeyNotification object:window]; [center addObserver:self selector:@selector(windowDidResignKey:) name:NSWindowDidResignKeyNotification object:window]; +#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1070 [center addObserver:self selector:@selector(windowWillEnterFullScreen:) name:NSWindowWillEnterFullScreenNotification object:window]; [center addObserver:self selector:@selector(windowDidEnterFullScreen:) name:NSWindowDidEnterFullScreenNotification object:window]; [center addObserver:self selector:@selector(windowWillExitFullScreen:) name:NSWindowWillExitFullScreenNotification object:window]; [center addObserver:self selector:@selector(windowDidExitFullScreen:) name:NSWindowDidExitFullScreenNotification object:window]; +#endif /* Mac OS X 10.7+ */ } else { [window setDelegate:self]; } @@ -203,10 +205,12 @@ - (void)close [center removeObserver:self name:NSWindowDidDeminiaturizeNotification object:window]; [center removeObserver:self name:NSWindowDidBecomeKeyNotification object:window]; [center removeObserver:self name:NSWindowDidResignKeyNotification object:window]; +#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1070 [center removeObserver:self name:NSWindowWillEnterFullScreenNotification object:window]; [center removeObserver:self name:NSWindowDidEnterFullScreenNotification object:window]; [center removeObserver:self name:NSWindowWillExitFullScreenNotification object:window]; [center removeObserver:self name:NSWindowDidExitFullScreenNotification object:window]; +#endif /* Mac OS X 10.7+ */ } else { [window setDelegate:nil]; } @@ -823,13 +827,17 @@ - (void)resetCursorRects return -1; } [nswindow setBackgroundColor:[NSColor blackColor]]; - [nswindow setCollectionBehavior:NSWindowCollectionBehaviorFullScreenPrimary]; +#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1070 + if ([nswindow respondsToSelector:@selector(setCollectionBehavior:)]) { + [nswindow setCollectionBehavior:NSWindowCollectionBehaviorFullScreenPrimary]; + } +#endif /* Create a default view for this window */ rect = [nswindow contentRectForFrameRect:[nswindow frame]]; NSView *contentView = [[SDLView alloc] initWithFrame:rect]; - if ((window->flags & SDL_WINDOW_ALLOW_HIGHDPI) > 0) { + if (window->flags & SDL_WINDOW_ALLOW_HIGHDPI) { if ([contentView respondsToSelector:@selector(setWantsBestResolutionOpenGLSurface:)]) { [contentView setWantsBestResolutionOpenGLSurface:YES]; } @@ -1117,7 +1125,7 @@ - (void)resetCursorRects NSWindow *nswindow = data->nswindow; if (fullscreen != [data->listener isToggledFullscreen]) { - [nswindow toggleFullScreen:nil]; + [nswindow performSelector: @selector(toggleFullScreen:) withObject:nswindow]; } ScheduleContextUpdates(data); } From 45a88b6ade1e13e2f0d2e68fec73dd1ddc9ad682 Mon Sep 17 00:00:00 2001 From: Gabriel Jacobo Date: Mon, 11 Nov 2013 10:15:35 -0300 Subject: [PATCH 063/143] [Android] Fixes bug 2217, better joystick axes handling on Android. --- .../src/org/libsdl/app/SDLActivity.java | 98 +++++++++++++------ src/joystick/android/SDL_sysjoystick.c | 10 +- 2 files changed, 75 insertions(+), 33 deletions(-) diff --git a/android-project/src/org/libsdl/app/SDLActivity.java b/android-project/src/org/libsdl/app/SDLActivity.java index 60b6aa0d6b673..d0155a5d3c372 100755 --- a/android-project/src/org/libsdl/app/SDLActivity.java +++ b/android-project/src/org/libsdl/app/SDLActivity.java @@ -433,6 +433,10 @@ public static int getJoystickAxes(int joy) { return mJoystickHandler.getJoystickAxes(joy); } + public static boolean handleJoystickMotionEvent(MotionEvent event) { + return mJoystickHandler.handleMotionEvent(event); + } + /** * @param devId the device id to get opened joystick id for. * @return joystick id for device id or -1 if there is none. @@ -840,73 +844,105 @@ public int getJoystickAxes(int joy) { public int getJoyId(int devId) { return -1; } + + public boolean handleMotionEvent(MotionEvent event) { + return false; + } } /* Actual joystick functionality available for API >= 12 devices */ class SDLJoystickHandler_API12 extends SDLJoystickHandler { - private ArrayList mJoyIdList; + + class SDLJoystick { + public int id; + public String name; + public ArrayList axes; + } - // Create a list of valid ID's the first time this function is called - private void createJoystickList() { - if(mJoyIdList != null) { - return; - } + private ArrayList mJoysticks; + + public SDLJoystickHandler_API12() { + /* FIXME: Move the joystick initialization code to its own function and support hotplugging of devices */ + + mJoysticks = new ArrayList(); - mJoyIdList = new ArrayList(); int[] deviceIds = InputDevice.getDeviceIds(); for(int i=0; i(); + + for (InputDevice.MotionRange range : joystickDevice.getMotionRanges()) { + if ( (range.getSource() & InputDevice.SOURCE_CLASS_JOYSTICK) != 0) { + joystick.axes.add(range); + } + } + + mJoysticks.add(joystick); } } } @Override public int getNumJoysticks() { - createJoystickList(); - return mJoyIdList.size(); + return mJoysticks.size(); } @Override public String getJoystickName(int joy) { - createJoystickList(); - return InputDevice.getDevice(mJoyIdList.get(joy).intValue()).getName(); + return mJoysticks.get(joy).name; } @Override public int getJoystickAxes(int joy) { - createJoystickList(); - return InputDevice.getDevice(mJoyIdList.get(joy).intValue()).getMotionRanges().size(); + return mJoysticks.get(joy).axes.size(); } @Override public int getJoyId(int devId) { - createJoystickList(); - return mJoyIdList.indexOf(Integer.valueOf(devId)); - } + for(int i=0; i < mJoysticks.size(); i++) { + if (mJoysticks.get(i).id == devId) { + return i; + } + } + return -1; + } -} - -class SDLGenericMotionListener_API12 implements View.OnGenericMotionListener { - // Generic Motion (mouse hover, joystick...) events go here - // We only have joysticks yet - @Override - public boolean onGenericMotion(View v, MotionEvent event) { + @Override + public boolean handleMotionEvent(MotionEvent event) { if ( (event.getSource() & InputDevice.SOURCE_JOYSTICK) != 0) { int actionPointerIndex = event.getActionIndex(); int action = event.getActionMasked(); switch(action) { case MotionEvent.ACTION_MOVE: - int id = SDLActivity.getJoyId( event.getDeviceId() ); - if (id != -1) { - float x = event.getAxisValue(MotionEvent.AXIS_X, actionPointerIndex); - float y = event.getAxisValue(MotionEvent.AXIS_Y, actionPointerIndex); - SDLActivity.onNativeJoy(id, 0, x); - SDLActivity.onNativeJoy(id, 1, y); + int id = getJoyId( event.getDeviceId() ); + if ( id != -1 ) { + SDLJoystick joystick = mJoysticks.get(id); + for (int i = 0; i < joystick.axes.size(); i++) { + InputDevice.MotionRange range = joystick.axes.get(i); + /* Normalize the value to -1...1 */ + float value = ( event.getAxisValue( range.getAxis(), actionPointerIndex) - range.getMin() ) / range.getRange() * 2.0f - 1.0f; + SDLActivity.onNativeJoy(id, i, value ); + } } break; + default: + break; } } return true; + } +} + +class SDLGenericMotionListener_API12 implements View.OnGenericMotionListener { + // Generic Motion (mouse hover, joystick...) events go here + // We only have joysticks yet + @Override + public boolean onGenericMotion(View v, MotionEvent event) { + return SDLActivity.handleJoystickMotionEvent(event); } } diff --git a/src/joystick/android/SDL_sysjoystick.c b/src/joystick/android/SDL_sysjoystick.c index e29aced54fa04..a98cef5beb05b 100644 --- a/src/joystick/android/SDL_sysjoystick.c +++ b/src/joystick/android/SDL_sysjoystick.c @@ -308,7 +308,10 @@ SDL_JoystickGUID SDL_SYS_JoystickGetGUID(SDL_Joystick * joystick) int Android_OnPadDown(int padId, int keycode) { - SDL_PrivateJoystickButton(SYS_Joysticks[padId], keycode_to_SDL(keycode), SDL_PRESSED); + int button = keycode_to_SDL(keycode); + if (button >= 0) { + SDL_PrivateJoystickButton(SYS_Joysticks[padId], button , SDL_PRESSED); + } return 0; } @@ -316,7 +319,10 @@ Android_OnPadDown(int padId, int keycode) int Android_OnPadUp(int padId, int keycode) { - SDL_PrivateJoystickButton(SYS_Joysticks[padId], keycode_to_SDL(keycode), SDL_RELEASED); + int button = keycode_to_SDL(keycode); + if (button >= 0) { + SDL_PrivateJoystickButton(SYS_Joysticks[padId], button, SDL_RELEASED); + } return 0; } From d37bad52b1477e2f7f6e4ef25d6e6b36cde6f75f Mon Sep 17 00:00:00 2001 From: Gabriel Jacobo Date: Mon, 11 Nov 2013 10:49:48 -0300 Subject: [PATCH 064/143] [Android] Improve handling of keyboard, dpad and gamepad events Thanks Dimitris Zenios for the report! --- .../src/org/libsdl/app/SDLActivity.java | 28 +++++++++++-------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/android-project/src/org/libsdl/app/SDLActivity.java b/android-project/src/org/libsdl/app/SDLActivity.java index d0155a5d3c372..d1292ddef9fe3 100755 --- a/android-project/src/org/libsdl/app/SDLActivity.java +++ b/android-project/src/org/libsdl/app/SDLActivity.java @@ -600,18 +600,10 @@ public void onDraw(Canvas canvas) {} @Override public boolean onKey(View v, int keyCode, KeyEvent event) { // Dispatch the different events depending on where they come from - if(event.getSource() == InputDevice.SOURCE_KEYBOARD) { - if (event.getAction() == KeyEvent.ACTION_DOWN) { - //Log.v("SDL", "key down: " + keyCode); - SDLActivity.onNativeKeyDown(keyCode); - return true; - } - else if (event.getAction() == KeyEvent.ACTION_UP) { - //Log.v("SDL", "key up: " + keyCode); - SDLActivity.onNativeKeyUp(keyCode); - return true; - } - } else if ( (event.getSource() & 0x00000401) != 0 || /* API 12: SOURCE_GAMEPAD */ + // Some SOURCE_DPAD or SOURCE_GAMEPAD events appear to also be marked as SOURCE_KEYBOARD + // So, to avoid problems, we process DPAD or GAMEPAD events first. + + if ( (event.getSource() & 0x00000401) != 0 || /* API 12: SOURCE_GAMEPAD */ (event.getSource() & InputDevice.SOURCE_DPAD) != 0 ) { int id = SDLActivity.getJoyId( event.getDeviceId() ); if (id != -1) { @@ -623,6 +615,18 @@ else if (event.getAction() == KeyEvent.ACTION_UP) { } return true; } + else if( (event.getSource() & InputDevice.SOURCE_KEYBOARD) != 0) { + if (event.getAction() == KeyEvent.ACTION_DOWN) { + //Log.v("SDL", "key down: " + keyCode); + SDLActivity.onNativeKeyDown(keyCode); + return true; + } + else if (event.getAction() == KeyEvent.ACTION_UP) { + //Log.v("SDL", "key up: " + keyCode); + SDLActivity.onNativeKeyUp(keyCode); + return true; + } + } return false; } From 6dbed827a7ba7386006f26e7397fbea4c73f1c57 Mon Sep 17 00:00:00 2001 From: Gabriel Jacobo Date: Mon, 11 Nov 2013 10:59:15 -0300 Subject: [PATCH 065/143] [Android] Fixes Bug 2031 - Backspace Not Sending Events From On-Screen Keyboard Thanks Joe LeVeque! --- android-project/src/org/libsdl/app/SDLActivity.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/android-project/src/org/libsdl/app/SDLActivity.java b/android-project/src/org/libsdl/app/SDLActivity.java index d1292ddef9fe3..7c7d63c811cb1 100755 --- a/android-project/src/org/libsdl/app/SDLActivity.java +++ b/android-project/src/org/libsdl/app/SDLActivity.java @@ -825,6 +825,17 @@ public boolean setComposingText(CharSequence text, int newCursorPosition) { public native void nativeSetComposingText(String text, int newCursorPosition); + @Override + public boolean deleteSurroundingText(int beforeLength, int afterLength) { + // Workaround to capture backspace key. Ref: http://stackoverflow.com/questions/14560344/android-backspace-in-webview-baseinputconnection + if (beforeLength == 1 && afterLength == 0) { + // backspace + return super.sendKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DEL)) + && super.sendKeyEvent(new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_DEL)); + } + + return super.deleteSurroundingText(beforeLength, afterLength); + } } /* A null joystick handler for API level < 12 devices (the accelerometer is handled separately) */ From 04afd61cd9b270e12be187c4d0040aac6cd790ea Mon Sep 17 00:00:00 2001 From: Gabriel Jacobo Date: Mon, 11 Nov 2013 11:12:43 -0300 Subject: [PATCH 066/143] [Android] Try to improve handling of some dpad+gamepad+keyboard corner cases --- android-project/src/org/libsdl/app/SDLActivity.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/android-project/src/org/libsdl/app/SDLActivity.java b/android-project/src/org/libsdl/app/SDLActivity.java index 7c7d63c811cb1..54670f8df3be9 100755 --- a/android-project/src/org/libsdl/app/SDLActivity.java +++ b/android-project/src/org/libsdl/app/SDLActivity.java @@ -612,10 +612,11 @@ public boolean onKey(View v, int keyCode, KeyEvent event) { } else if (event.getAction() == KeyEvent.ACTION_UP) { SDLActivity.onNativePadUp(id, keyCode); } + return true; } - return true; } - else if( (event.getSource() & InputDevice.SOURCE_KEYBOARD) != 0) { + + if( (event.getSource() & InputDevice.SOURCE_KEYBOARD) != 0) { if (event.getAction() == KeyEvent.ACTION_DOWN) { //Log.v("SDL", "key down: " + keyCode); SDLActivity.onNativeKeyDown(keyCode); From 819148a844f2fa2dfe5ab6a3db9c3a5218aa3df1 Mon Sep 17 00:00:00 2001 From: Gabriel Jacobo Date: Mon, 11 Nov 2013 19:17:32 -0300 Subject: [PATCH 067/143] [X11] Fix up compilation when EGL headers are not present. --- src/video/x11/SDL_x11window.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/video/x11/SDL_x11window.c b/src/video/x11/SDL_x11window.c index 62a7e730512a8..300719999d901 100644 --- a/src/video/x11/SDL_x11window.c +++ b/src/video/x11/SDL_x11window.c @@ -563,6 +563,7 @@ X11_CreateWindow(_THIS, SDL_Window * window) && ( !_this->gl_data || ! _this->gl_data->HAS_GLX_EXT_create_context_es2_profile ) #endif ) { +#if SDL_VIDEO_OPENGL_EGL if (!_this->egl_data) { X11_XDestroyWindow(display, w); return -1; @@ -575,6 +576,9 @@ X11_CreateWindow(_THIS, SDL_Window * window) X11_XDestroyWindow(display, w); return SDL_SetError("Could not create GLES window surface"); } +#else + return SDL_SetError("Could not create GLES window surface (no EGL support available)"); +#endif /* SDL_VIDEO_OPENGL_EGL */ } #endif From cb31a80d82e8fb8466a8b09b10a7c77f616f8493 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Mon, 11 Nov 2013 20:42:59 -0800 Subject: [PATCH 068/143] Properly handle toggling fullscreen state when another fullscreen state change is in progress. --- src/video/cocoa/SDL_cocoawindow.h | 9 ++- src/video/cocoa/SDL_cocoawindow.m | 109 ++++++++++++++++++------------ 2 files changed, 72 insertions(+), 46 deletions(-) diff --git a/src/video/cocoa/SDL_cocoawindow.h b/src/video/cocoa/SDL_cocoawindow.h index 1ec3d3c5440bf..dbe592a780e32 100644 --- a/src/video/cocoa/SDL_cocoawindow.h +++ b/src/video/cocoa/SDL_cocoawindow.h @@ -34,12 +34,19 @@ typedef struct SDL_WindowData SDL_WindowData; BOOL wasVisible; BOOL isFullscreen; BOOL inFullscreenTransition; + + enum + { + PENDING_TRANSITION_NONE, + PENDING_TRANSITION_ENTER_FULLSCREEN, + PENDING_TRANSITION_LEAVE_FULLSCREEN + } pendingFullscreenTransition; } -(void) listen:(SDL_WindowData *) data; -(void) pauseVisibleObservation; -(void) resumeVisibleObservation; --(BOOL) isToggledFullscreen; +-(BOOL) setFullscreenState:(BOOL) state; -(void) close; /* Window delegate functionality */ diff --git a/src/video/cocoa/SDL_cocoawindow.m b/src/video/cocoa/SDL_cocoawindow.m index 20852b2e13fe4..5ae119fc8e9ad 100644 --- a/src/video/cocoa/SDL_cocoawindow.m +++ b/src/video/cocoa/SDL_cocoawindow.m @@ -103,6 +103,7 @@ - (void)listen:(SDL_WindowData *)data wasVisible = [window isVisible]; isFullscreen = NO; inFullscreenTransition = NO; + pendingFullscreenTransition = PENDING_TRANSITION_NONE; center = [NSNotificationCenter defaultCenter]; @@ -183,9 +184,52 @@ -(void) resumeVisibleObservation } } -- (BOOL) isToggledFullscreen +-(BOOL) canSetFullscreenState:(BOOL) state; { - return isFullscreen; +} + +-(BOOL) setFullscreenState:(BOOL) state; +{ + SDL_Window *window = _data->window; + NSWindow *nswindow = _data->nswindow; + BOOL canSetState = NO; + + /* Make sure we can support this fullscreen style */ + if (![nswindow respondsToSelector: @selector(toggleFullScreen:)]) { + return NO; + } + + pendingFullscreenTransition = PENDING_TRANSITION_NONE; + + /* We can enter new style fullscreen mode for "fullscreen desktop" */ + if ((window->flags & SDL_WINDOW_FULLSCREEN_DESKTOP) == SDL_WINDOW_FULLSCREEN_DESKTOP) { + canSetState = YES; + } + + /* We can always leave new style fullscreen mode */ + if (!state && isFullscreen) { + canSetState = YES; + } + + if (!canSetState) { + return NO; + } + + if (state == isFullscreen) { + return YES; + } + + if (inFullscreenTransition) { + if (state) { + pendingFullscreenTransition = PENDING_TRANSITION_ENTER_FULLSCREEN; + } else { + pendingFullscreenTransition = PENDING_TRANSITION_LEAVE_FULLSCREEN; + } + return YES; + } + + [nswindow performSelector: @selector(toggleFullScreen:) withObject:nswindow]; + return YES; } - (void)close @@ -215,8 +259,7 @@ - (void)close [window setDelegate:nil]; } - [window removeObserver:self - forKeyPath:@"visible"]; + [window removeObserver:self forKeyPath:@"visible"]; if ([window nextResponder] == self) { [window setNextResponder:nil]; @@ -385,11 +428,18 @@ - (void)windowWillEnterFullScreen:(NSNotification *)aNotification - (void)windowDidEnterFullScreen:(NSNotification *)aNotification { inFullscreenTransition = NO; - [self windowDidResize:aNotification]; + + if (pendingFullscreenTransition != PENDING_TRANSITION_NONE) { + pendingFullscreenTransition = PENDING_TRANSITION_NONE; + [self setFullscreenState:NO]; + } else { + [self windowDidResize:aNotification]; + } } - (void)windowWillExitFullScreen:(NSNotification *)aNotification { + isFullscreen = NO; inFullscreenTransition = YES; } @@ -401,9 +451,14 @@ - (void)windowDidExitFullScreen:(NSNotification *)aNotification if (!(window->flags & SDL_WINDOW_RESIZABLE)) { [nswindow setStyleMask:GetWindowStyle(window)]; } - isFullscreen = NO; inFullscreenTransition = NO; - [self windowDidResize:aNotification]; + + if (pendingFullscreenTransition != PENDING_TRANSITION_NONE) { + pendingFullscreenTransition = PENDING_TRANSITION_NONE; + [self setFullscreenState:YES]; + } else { + [self windowDidResize:aNotification]; + } } /* We'll respond to key events by doing nothing so we don't beep. @@ -1094,41 +1149,6 @@ - (void)resetCursorRects [pool release]; } -static SDL_bool -Cocoa_CanToggleFullscreen(_THIS, SDL_Window * window, SDL_VideoDisplay * display, SDL_bool fullscreen) -{ - SDL_WindowData *data = (SDL_WindowData *) window->driverdata; - NSWindow *nswindow = data->nswindow; - - if (![nswindow respondsToSelector: @selector(toggleFullScreen:)]) { - return SDL_FALSE; - } - - /* We can enter new style fullscreen mode for "fullscreen desktop" */ - if ((window->flags & SDL_WINDOW_FULLSCREEN_DESKTOP) == SDL_WINDOW_FULLSCREEN_DESKTOP) { - return SDL_TRUE; - } - - /* We can always leave new style fullscreen mode */ - if (!fullscreen && [data->listener isToggledFullscreen]) { - return SDL_TRUE; - } - - /* Requesting a mode switched fullscreen mode */ - return SDL_FALSE; -} - -static void -Cocoa_SetWindowFullscreen_NewStyle(_THIS, SDL_Window * window, SDL_VideoDisplay * display, SDL_bool fullscreen) -{ - SDL_WindowData *data = (SDL_WindowData *) window->driverdata; - NSWindow *nswindow = data->nswindow; - - if (fullscreen != [data->listener isToggledFullscreen]) { - [nswindow performSelector: @selector(toggleFullScreen:) withObject:nswindow]; - } - ScheduleContextUpdates(data); -} static void Cocoa_SetWindowFullscreen_OldStyle(_THIS, SDL_Window * window, SDL_VideoDisplay * display, SDL_bool fullscreen) @@ -1212,10 +1232,9 @@ - (void)resetCursorRects Cocoa_SetWindowFullscreen(_THIS, SDL_Window * window, SDL_VideoDisplay * display, SDL_bool fullscreen) { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + SDL_WindowData *data = (SDL_WindowData *) window->driverdata; - if (Cocoa_CanToggleFullscreen(_this, window, display, fullscreen)) { - Cocoa_SetWindowFullscreen_NewStyle(_this, window, display, fullscreen); - } else { + if (![data->listener setFullscreenState:(fullscreen ? YES : NO)]) { Cocoa_SetWindowFullscreen_OldStyle(_this, window, display, fullscreen); } From 75a23d99a58749df444514cfd6ec6a221923ff26 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Mon, 11 Nov 2013 20:51:19 -0800 Subject: [PATCH 069/143] Fixed bug 2212 - SDL_SetTextInputRect has no effect on iOS philhassey Overview: While SDL_SetTextInputRect works perfectly to move my window out of the way of the virtual keyboard using SDL2/Android, on iOS this function has no effect. Steps to Reproduce: Call SDL_SetTextInputRect with a rect near the bottom of the screen before calling SDL_StartTextInput. Actual Results: The iOS virtual keyboard is displayed after calling SDL_StartTextInput, but the screen is not shifted to reveal the TextInputRect region. Expected Results: The screen should be shifted to reveal the TextInputRect region (like with SDL2/Android.) This patch implements SDL_SetTextInputRect for uikit/iOS. It sets up notification handlers to respond to changes in the display of the keyboard. These handlers then change the frame of the view so it is moved out of the way of the keyboard as per SetTextInputRect. --- src/video/uikit/SDL_uikitvideo.m | 1 + src/video/uikit/SDL_uikitview.h | 5 ++ src/video/uikit/SDL_uikitview.m | 104 +++++++++++++++++++++++++++++++ 3 files changed, 110 insertions(+) diff --git a/src/video/uikit/SDL_uikitvideo.m b/src/video/uikit/SDL_uikitvideo.m index 74b24b8dad5bb..7be5b1d666448 100644 --- a/src/video/uikit/SDL_uikitvideo.m +++ b/src/video/uikit/SDL_uikitvideo.m @@ -89,6 +89,7 @@ static void UIKit_DeleteDevice(SDL_VideoDevice * device) device->ShowScreenKeyboard = UIKit_ShowScreenKeyboard; device->HideScreenKeyboard = UIKit_HideScreenKeyboard; device->IsScreenKeyboardShown = UIKit_IsScreenKeyboardShown; + device->SetTextInputRect = UIKit_SetTextInputRect; #endif /* OpenGL (ES) functions */ diff --git a/src/video/uikit/SDL_uikitview.h b/src/video/uikit/SDL_uikitview.h index ff8a7d2cfd14b..3921be136fd39 100644 --- a/src/video/uikit/SDL_uikitview.h +++ b/src/video/uikit/SDL_uikitview.h @@ -45,6 +45,8 @@ #if SDL_IPHONE_KEYBOARD UITextField *textField; BOOL keyboardVisible; + SDL_Rect textInputRect; + int keyboardHeight; #endif @public @@ -60,11 +62,14 @@ - (void)hideKeyboard; - (void)initializeKeyboard; @property (readonly) BOOL keyboardVisible; +@property (nonatomic,assign) SDL_Rect textInputRect; +@property (nonatomic,assign) int keyboardHeight; SDL_bool UIKit_HasScreenKeyboardSupport(_THIS); void UIKit_ShowScreenKeyboard(_THIS, SDL_Window *window); void UIKit_HideScreenKeyboard(_THIS, SDL_Window *window); SDL_bool UIKit_IsScreenKeyboardShown(_THIS, SDL_Window *window); +void UIKit_SetTextInputRect(_THIS, SDL_Rect *rect); #endif diff --git a/src/video/uikit/SDL_uikitview.m b/src/video/uikit/SDL_uikitview.m index 66129be23e591..ca9cd06613793 100644 --- a/src/video/uikit/SDL_uikitview.m +++ b/src/video/uikit/SDL_uikitview.m @@ -35,6 +35,8 @@ #include "SDL_uikitmodes.h" #include "SDL_uikitwindow.h" +void _uikit_keyboard_init() ; + @implementation SDL_uikitview - (void)dealloc @@ -197,6 +199,9 @@ - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event */ #if SDL_IPHONE_KEYBOARD +@synthesize textInputRect = textInputRect; +@synthesize keyboardHeight = keyboardHeight; + /* Is the iPhone virtual keyboard visible onscreen? */ - (BOOL)keyboardVisible { @@ -225,6 +230,8 @@ - (void)initializeKeyboard /* add the UITextField (hidden) to our view */ [self addSubview: textField]; [textField release]; + + _uikit_keyboard_init(); } /* reveal onscreen virtual keyboard */ @@ -352,6 +359,103 @@ SDL_bool UIKit_IsScreenKeyboardShown(_THIS, SDL_Window *window) return view.keyboardVisible; } + +void _uikit_keyboard_update() { + SDL_Window *window = SDL_GetFocusWindow(); + if (!window) { return; } + SDL_WindowData *data = (SDL_WindowData *)window->driverdata; + if (!data) { return; } + SDL_uikitview *view = data->view; + if (!view) { return; } + + SDL_Rect r = view.textInputRect; + int height = view.keyboardHeight; + int offsetx = 0; + int offsety = 0; + if (height) { + int sw,sh; + SDL_GetWindowSize(window,&sw,&sh); + int bottom = (r.y + r.h); + int kbottom = sh - height; + if (kbottom < bottom) { + offsety = kbottom-bottom; + } + } + UIInterfaceOrientation ui_orient = [[UIApplication sharedApplication] statusBarOrientation]; + if (ui_orient == UIInterfaceOrientationLandscapeLeft) { + int tmp = offsetx; offsetx = offsety; offsety = tmp; + } + if (ui_orient == UIInterfaceOrientationLandscapeRight) { + offsety = -offsety; + int tmp = offsetx; offsetx = offsety; offsety = tmp; + } + if (ui_orient == UIInterfaceOrientationPortraitUpsideDown) { + offsety = -offsety; + } + if ([[UIScreen mainScreen] respondsToSelector:@selector(displayLinkWithTarget:selector:)]) { + float scale = [UIScreen mainScreen].scale; + offsetx /= scale; + offsety /= scale; + } + view.frame = CGRectMake(offsetx,offsety,view.frame.size.width,view.frame.size.height); +} + +void _uikit_keyboard_set_height(int height) { + SDL_uikitview *view = getWindowView(SDL_GetFocusWindow()); + if (view == nil) { + return ; + } + + view.keyboardHeight = height; + _uikit_keyboard_update(); +} + +void _uikit_keyboard_init() { + NSNotificationCenter *center = [NSNotificationCenter defaultCenter]; + NSOperationQueue *queue = [NSOperationQueue mainQueue]; + [center addObserverForName:UIKeyboardWillShowNotification + object:nil + queue:queue + usingBlock:^(NSNotification *notification) { + int height = 0; + CGSize keyboardSize = [[[notification userInfo] objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size; + height = keyboardSize.height; + UIInterfaceOrientation ui_orient = [[UIApplication sharedApplication] statusBarOrientation]; + if (ui_orient == UIInterfaceOrientationLandscapeRight || ui_orient == UIInterfaceOrientationLandscapeLeft) { + height = keyboardSize.width; + } + if ([[UIScreen mainScreen] respondsToSelector:@selector(displayLinkWithTarget:selector:)]) { + height *= [UIScreen mainScreen].scale; + } + _uikit_keyboard_set_height(height); + } + ]; + [center addObserverForName:UIKeyboardDidHideNotification + object:nil + queue:queue + usingBlock:^(NSNotification *notification) { + _uikit_keyboard_set_height(0); + } + ]; +} + +void +UIKit_SetTextInputRect(_THIS, SDL_Rect *rect) +{ + if (!rect) { + SDL_InvalidParamError("rect"); + return; + } + + SDL_uikitview *view = getWindowView(SDL_GetFocusWindow()); + if (view == nil) { + return ; + } + + view.textInputRect = *rect; +} + + #endif /* SDL_IPHONE_KEYBOARD */ #endif /* SDL_VIDEO_DRIVER_UIKIT */ From 7cf76ffbe04fadd49d94e895823c5c26a6489ef3 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Mon, 11 Nov 2013 21:21:18 -0800 Subject: [PATCH 070/143] Fixed assertion failure when minimizing a fullscreen window. --- src/video/cocoa/SDL_cocoawindow.h | 18 ++++++---- src/video/cocoa/SDL_cocoawindow.m | 58 +++++++++++++++++++++---------- 2 files changed, 51 insertions(+), 25 deletions(-) diff --git a/src/video/cocoa/SDL_cocoawindow.h b/src/video/cocoa/SDL_cocoawindow.h index dbe592a780e32..bbb5b6cf9c18a 100644 --- a/src/video/cocoa/SDL_cocoawindow.h +++ b/src/video/cocoa/SDL_cocoawindow.h @@ -27,6 +27,14 @@ typedef struct SDL_WindowData SDL_WindowData; +typedef enum +{ + PENDING_OPERATION_NONE, + PENDING_OPERATION_ENTER_FULLSCREEN, + PENDING_OPERATION_LEAVE_FULLSCREEN, + PENDING_OPERATION_MINIMIZE +} PendingWindowOperation; + @interface Cocoa_WindowListener : NSResponder { SDL_WindowData *_data; BOOL observingVisible; @@ -34,19 +42,15 @@ typedef struct SDL_WindowData SDL_WindowData; BOOL wasVisible; BOOL isFullscreen; BOOL inFullscreenTransition; - - enum - { - PENDING_TRANSITION_NONE, - PENDING_TRANSITION_ENTER_FULLSCREEN, - PENDING_TRANSITION_LEAVE_FULLSCREEN - } pendingFullscreenTransition; + PendingWindowOperation pendingWindowOperation; } -(void) listen:(SDL_WindowData *) data; -(void) pauseVisibleObservation; -(void) resumeVisibleObservation; -(BOOL) setFullscreenState:(BOOL) state; +-(BOOL) isInFullscreenTransition; +-(void) addPendingWindowOperation:(PendingWindowOperation) operation; -(void) close; /* Window delegate functionality */ diff --git a/src/video/cocoa/SDL_cocoawindow.m b/src/video/cocoa/SDL_cocoawindow.m index 5ae119fc8e9ad..1e5c24fdf5dc9 100644 --- a/src/video/cocoa/SDL_cocoawindow.m +++ b/src/video/cocoa/SDL_cocoawindow.m @@ -103,7 +103,7 @@ - (void)listen:(SDL_WindowData *)data wasVisible = [window isVisible]; isFullscreen = NO; inFullscreenTransition = NO; - pendingFullscreenTransition = PENDING_TRANSITION_NONE; + pendingWindowOperation = PENDING_OPERATION_NONE; center = [NSNotificationCenter defaultCenter]; @@ -199,7 +199,7 @@ -(BOOL) setFullscreenState:(BOOL) state; return NO; } - pendingFullscreenTransition = PENDING_TRANSITION_NONE; + pendingWindowOperation = PENDING_OPERATION_NONE; /* We can enter new style fullscreen mode for "fullscreen desktop" */ if ((window->flags & SDL_WINDOW_FULLSCREEN_DESKTOP) == SDL_WINDOW_FULLSCREEN_DESKTOP) { @@ -221,9 +221,9 @@ -(BOOL) setFullscreenState:(BOOL) state; if (inFullscreenTransition) { if (state) { - pendingFullscreenTransition = PENDING_TRANSITION_ENTER_FULLSCREEN; + [self addPendingWindowOperation:PENDING_OPERATION_ENTER_FULLSCREEN]; } else { - pendingFullscreenTransition = PENDING_TRANSITION_LEAVE_FULLSCREEN; + [self addPendingWindowOperation:PENDING_OPERATION_LEAVE_FULLSCREEN]; } return YES; } @@ -232,6 +232,16 @@ -(BOOL) setFullscreenState:(BOOL) state; return YES; } +-(BOOL) isInFullscreenTransition +{ + return inFullscreenTransition; +} + +-(void) addPendingWindowOperation:(PendingWindowOperation) operation +{ + pendingWindowOperation = operation; +} + - (void)close { NSNotificationCenter *center; @@ -328,8 +338,10 @@ - (void)windowDidMove:(NSNotification *)aNotification - (void)windowDidResize:(NSNotification *)aNotification { + SDL_Window *window = _data->window; + NSWindow *nswindow = _data->nswindow; int x, y, w, h; - NSRect rect = [_data->nswindow contentRectForFrameRect:[_data->nswindow frame]]; + NSRect rect = [nswindow contentRectForFrameRect:[nswindow frame]]; ConvertNSRect(&rect); x = (int)rect.origin.x; y = (int)rect.origin.y; @@ -341,22 +353,22 @@ - (void)windowDidResize:(NSNotification *)aNotification return; } - if (SDL_IsShapedWindow(_data->window)) { - Cocoa_ResizeWindowShape(_data->window); + if (SDL_IsShapedWindow(window)) { + Cocoa_ResizeWindowShape(window); } ScheduleContextUpdates(_data); /* The window can move during a resize event, such as when maximizing or resizing from a corner */ - SDL_SendWindowEvent(_data->window, SDL_WINDOWEVENT_MOVED, x, y); - SDL_SendWindowEvent(_data->window, SDL_WINDOWEVENT_RESIZED, w, h); + SDL_SendWindowEvent(window, SDL_WINDOWEVENT_MOVED, x, y); + SDL_SendWindowEvent(window, SDL_WINDOWEVENT_RESIZED, w, h); - const BOOL zoomed = [_data->nswindow isZoomed]; + const BOOL zoomed = [nswindow isZoomed]; if (!zoomed) { - SDL_SendWindowEvent(_data->window, SDL_WINDOWEVENT_RESTORED, 0, 0); + SDL_SendWindowEvent(window, SDL_WINDOWEVENT_RESTORED, 0, 0); } else if (zoomed) { - SDL_SendWindowEvent(_data->window, SDL_WINDOWEVENT_MAXIMIZED, 0, 0); + SDL_SendWindowEvent(window, SDL_WINDOWEVENT_MAXIMIZED, 0, 0); } } @@ -429,10 +441,11 @@ - (void)windowDidEnterFullScreen:(NSNotification *)aNotification { inFullscreenTransition = NO; - if (pendingFullscreenTransition != PENDING_TRANSITION_NONE) { - pendingFullscreenTransition = PENDING_TRANSITION_NONE; + if (pendingWindowOperation == PENDING_OPERATION_LEAVE_FULLSCREEN) { + pendingWindowOperation = PENDING_OPERATION_NONE; [self setFullscreenState:NO]; } else { + pendingWindowOperation = PENDING_OPERATION_NONE; [self windowDidResize:aNotification]; } } @@ -453,10 +466,14 @@ - (void)windowDidExitFullScreen:(NSNotification *)aNotification } inFullscreenTransition = NO; - if (pendingFullscreenTransition != PENDING_TRANSITION_NONE) { - pendingFullscreenTransition = PENDING_TRANSITION_NONE; + if (pendingWindowOperation == PENDING_OPERATION_ENTER_FULLSCREEN) { + pendingWindowOperation = PENDING_OPERATION_NONE; [self setFullscreenState:YES]; + } else if (pendingWindowOperation == PENDING_OPERATION_MINIMIZE) { + pendingWindowOperation = PENDING_OPERATION_NONE; + [nswindow miniaturize:nil]; } else { + pendingWindowOperation = PENDING_OPERATION_NONE; [self windowDidResize:aNotification]; } } @@ -1095,9 +1112,14 @@ - (void)resetCursorRects Cocoa_MinimizeWindow(_THIS, SDL_Window * window) { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - NSWindow *nswindow = ((SDL_WindowData *) window->driverdata)->nswindow; + SDL_WindowData *data = (SDL_WindowData *) window->driverdata; + NSWindow *nswindow = data->nswindow; - [nswindow miniaturize:nil]; + if ([data->listener isInFullscreenTransition]) { + [data->listener addPendingWindowOperation:PENDING_OPERATION_MINIMIZE]; + } else { + [nswindow miniaturize:nil]; + } [pool release]; } From 8f8070db42bafc8edbd217d1908a438b145d2a67 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Mon, 11 Nov 2013 21:38:11 -0800 Subject: [PATCH 071/143] Fixed window resizing when entering and leaving fullscreen mode --- src/video/cocoa/SDL_cocoawindow.m | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/video/cocoa/SDL_cocoawindow.m b/src/video/cocoa/SDL_cocoawindow.m index 1e5c24fdf5dc9..be6f6cf29d978 100644 --- a/src/video/cocoa/SDL_cocoawindow.m +++ b/src/video/cocoa/SDL_cocoawindow.m @@ -452,18 +452,21 @@ - (void)windowDidEnterFullScreen:(NSNotification *)aNotification - (void)windowWillExitFullScreen:(NSNotification *)aNotification { + SDL_Window *window = _data->window; + NSWindow *nswindow = _data->nswindow; + + if (!(window->flags & SDL_WINDOW_RESIZABLE)) { + [nswindow setStyleMask:GetWindowStyle(window)]; + } + isFullscreen = NO; inFullscreenTransition = YES; } - (void)windowDidExitFullScreen:(NSNotification *)aNotification { - SDL_Window *window = _data->window; NSWindow *nswindow = _data->nswindow; - if (!(window->flags & SDL_WINDOW_RESIZABLE)) { - [nswindow setStyleMask:GetWindowStyle(window)]; - } inFullscreenTransition = NO; if (pendingWindowOperation == PENDING_OPERATION_ENTER_FULLSCREEN) { From cb190b8270a08c0aa166187810997059137946b0 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Mon, 11 Nov 2013 22:43:05 -0800 Subject: [PATCH 072/143] Fixed assertion when quickly toggling from fullscreen back to fullscreen: "Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'backgroundWindows not nil in enterFullScreenTransitionWithOptions:animated:activatingIt:'" To reproduce this, run testsprite2, press Alt-Enter once, again while it's animating to fullscreen, and then again while it's animating out of fullscreen. --- src/video/cocoa/SDL_cocoawindow.m | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/video/cocoa/SDL_cocoawindow.m b/src/video/cocoa/SDL_cocoawindow.m index be6f6cf29d978..1cd9b63a7eadd 100644 --- a/src/video/cocoa/SDL_cocoawindow.m +++ b/src/video/cocoa/SDL_cocoawindow.m @@ -184,10 +184,6 @@ -(void) resumeVisibleObservation } } --(BOOL) canSetFullscreenState:(BOOL) state; -{ -} - -(BOOL) setFullscreenState:(BOOL) state; { SDL_Window *window = _data->window; @@ -228,7 +224,7 @@ -(BOOL) setFullscreenState:(BOOL) state; return YES; } - [nswindow performSelector: @selector(toggleFullScreen:) withObject:nswindow]; + [nswindow performSelectorOnMainThread: @selector(toggleFullScreen:) withObject:nswindow waitUntilDone:NO]; return YES; } @@ -433,12 +429,15 @@ - (void)windowWillEnterFullScreen:(NSNotification *)aNotification [nswindow setStyleMask:NSBorderlessWindowMask]; } } + isFullscreen = YES; inFullscreenTransition = YES; } - (void)windowDidEnterFullScreen:(NSNotification *)aNotification { + SDL_Window *window = _data->window; + inFullscreenTransition = NO; if (pendingWindowOperation == PENDING_OPERATION_LEAVE_FULLSCREEN) { @@ -446,6 +445,11 @@ - (void)windowDidEnterFullScreen:(NSNotification *)aNotification [self setFullscreenState:NO]; } else { pendingWindowOperation = PENDING_OPERATION_NONE; + /* Force the size change event in case it was delivered earlier + while the window was still animating into place. + */ + window->w = 0; + window->h = 0; [self windowDidResize:aNotification]; } } @@ -465,6 +469,7 @@ - (void)windowWillExitFullScreen:(NSNotification *)aNotification - (void)windowDidExitFullScreen:(NSNotification *)aNotification { + SDL_Window *window = _data->window; NSWindow *nswindow = _data->nswindow; inFullscreenTransition = NO; @@ -477,6 +482,11 @@ - (void)windowDidExitFullScreen:(NSNotification *)aNotification [nswindow miniaturize:nil]; } else { pendingWindowOperation = PENDING_OPERATION_NONE; + /* Force the size change event in case it was delivered earlier + while the window was still animating into place. + */ + window->w = 0; + window->h = 0; [self windowDidResize:aNotification]; } } From 7459b159e0843d9ebaaf07dccd37f541fcb8db8b Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Mon, 11 Nov 2013 23:42:43 -0800 Subject: [PATCH 073/143] Made sure the window had the correct border when manually being brought back from fullscreen mode. --- src/video/cocoa/SDL_cocoawindow.m | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/video/cocoa/SDL_cocoawindow.m b/src/video/cocoa/SDL_cocoawindow.m index 1cd9b63a7eadd..010373a72ccce 100644 --- a/src/video/cocoa/SDL_cocoawindow.m +++ b/src/video/cocoa/SDL_cocoawindow.m @@ -460,7 +460,10 @@ - (void)windowWillExitFullScreen:(NSNotification *)aNotification NSWindow *nswindow = _data->nswindow; if (!(window->flags & SDL_WINDOW_RESIZABLE)) { + Uint32 flags = window->flags; + window->flags &= ~SDL_WINDOW_FULLSCREEN_DESKTOP; [nswindow setStyleMask:GetWindowStyle(window)]; + window->flags = flags; } isFullscreen = NO; From 5f8a0b18d34aa978229becc77154785cacaa96d8 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Tue, 12 Nov 2013 00:32:29 -0800 Subject: [PATCH 074/143] Fullscreen space naming cleanup to avoid confusion with normal fullscreen mode --- src/video/cocoa/SDL_cocoawindow.h | 4 +-- src/video/cocoa/SDL_cocoawindow.m | 42 ++++++++++++++++++------------- 2 files changed, 27 insertions(+), 19 deletions(-) diff --git a/src/video/cocoa/SDL_cocoawindow.h b/src/video/cocoa/SDL_cocoawindow.h index bbb5b6cf9c18a..39992a4bd0900 100644 --- a/src/video/cocoa/SDL_cocoawindow.h +++ b/src/video/cocoa/SDL_cocoawindow.h @@ -40,7 +40,7 @@ typedef enum BOOL observingVisible; BOOL wasCtrlLeft; BOOL wasVisible; - BOOL isFullscreen; + BOOL isFullscreenSpace; BOOL inFullscreenTransition; PendingWindowOperation pendingWindowOperation; } @@ -48,7 +48,7 @@ typedef enum -(void) listen:(SDL_WindowData *) data; -(void) pauseVisibleObservation; -(void) resumeVisibleObservation; --(BOOL) setFullscreenState:(BOOL) state; +-(BOOL) setFullscreenSpace:(BOOL) state; -(BOOL) isInFullscreenTransition; -(void) addPendingWindowOperation:(PendingWindowOperation) operation; -(void) close; diff --git a/src/video/cocoa/SDL_cocoawindow.m b/src/video/cocoa/SDL_cocoawindow.m index 010373a72ccce..54bb94e29e471 100644 --- a/src/video/cocoa/SDL_cocoawindow.m +++ b/src/video/cocoa/SDL_cocoawindow.m @@ -101,7 +101,7 @@ - (void)listen:(SDL_WindowData *)data observingVisible = YES; wasCtrlLeft = NO; wasVisible = [window isVisible]; - isFullscreen = NO; + isFullscreenSpace = NO; inFullscreenTransition = NO; pendingWindowOperation = PENDING_OPERATION_NONE; @@ -184,34 +184,38 @@ -(void) resumeVisibleObservation } } --(BOOL) setFullscreenState:(BOOL) state; +-(BOOL) setFullscreenSpace:(BOOL) state; { +#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1070 SDL_Window *window = _data->window; NSWindow *nswindow = _data->nswindow; - BOOL canSetState = NO; + BOOL canSetSpace = NO; - /* Make sure we can support this fullscreen style */ - if (![nswindow respondsToSelector: @selector(toggleFullScreen:)]) { + /* Make sure the window supports switching to fullscreen spaces */ + if (![nswindow respondsToSelector: @selector(collectionBehavior)]) { + return NO; + } + if ([nswindow collectionBehavior] != NSWindowCollectionBehaviorFullScreenPrimary) { return NO; } pendingWindowOperation = PENDING_OPERATION_NONE; - /* We can enter new style fullscreen mode for "fullscreen desktop" */ + /* We can enter fullscreen spaces for "fullscreen desktop" */ if ((window->flags & SDL_WINDOW_FULLSCREEN_DESKTOP) == SDL_WINDOW_FULLSCREEN_DESKTOP) { - canSetState = YES; + canSetSpace = YES; } - /* We can always leave new style fullscreen mode */ - if (!state && isFullscreen) { - canSetState = YES; + /* We can always leave fullscreen spaces */ + if (!state && isFullscreenSpace) { + canSetSpace = YES; } - if (!canSetState) { + if (!canSetSpace) { return NO; } - if (state == isFullscreen) { + if (state == isFullscreenSpace) { return YES; } @@ -226,6 +230,9 @@ -(BOOL) setFullscreenState:(BOOL) state; [nswindow performSelectorOnMainThread: @selector(toggleFullScreen:) withObject:nswindow waitUntilDone:NO]; return YES; +#else + return NO +#endif /* SDK >= 10.7 */ } -(BOOL) isInFullscreenTransition @@ -430,19 +437,20 @@ - (void)windowWillEnterFullScreen:(NSNotification *)aNotification } } - isFullscreen = YES; + isFullscreenSpace = YES; inFullscreenTransition = YES; } - (void)windowDidEnterFullScreen:(NSNotification *)aNotification { SDL_Window *window = _data->window; + NSWindow *nswindow = _data->nswindow; inFullscreenTransition = NO; if (pendingWindowOperation == PENDING_OPERATION_LEAVE_FULLSCREEN) { pendingWindowOperation = PENDING_OPERATION_NONE; - [self setFullscreenState:NO]; + [self setFullscreenSpace:NO]; } else { pendingWindowOperation = PENDING_OPERATION_NONE; /* Force the size change event in case it was delivered earlier @@ -466,7 +474,7 @@ - (void)windowWillExitFullScreen:(NSNotification *)aNotification window->flags = flags; } - isFullscreen = NO; + isFullscreenSpace = NO; inFullscreenTransition = YES; } @@ -479,7 +487,7 @@ - (void)windowDidExitFullScreen:(NSNotification *)aNotification if (pendingWindowOperation == PENDING_OPERATION_ENTER_FULLSCREEN) { pendingWindowOperation = PENDING_OPERATION_NONE; - [self setFullscreenState:YES]; + [self setFullscreenSpace:YES]; } else if (pendingWindowOperation == PENDING_OPERATION_MINIMIZE) { pendingWindowOperation = PENDING_OPERATION_NONE; [nswindow miniaturize:nil]; @@ -1272,7 +1280,7 @@ - (void)resetCursorRects NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; SDL_WindowData *data = (SDL_WindowData *) window->driverdata; - if (![data->listener setFullscreenState:(fullscreen ? YES : NO)]) { + if (![data->listener setFullscreenSpace:(fullscreen ? YES : NO)]) { Cocoa_SetWindowFullscreen_OldStyle(_this, window, display, fullscreen); } From 75145ea023bc52f667f62625f0b00dcdc71cfb03 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Tue, 12 Nov 2013 01:52:54 -0800 Subject: [PATCH 075/143] Added a hint SDL_HINT_VIDEO_FULLSCREEN_SPACES to specify that windows go fullscreen into their own spaces on Mac OS X. --- include/SDL_hints.h | 10 ++++ src/video/SDL_video.c | 17 +++++- src/video/cocoa/SDL_cocoawindow.h | 3 +- src/video/cocoa/SDL_cocoawindow.m | 92 +++++++++++++++---------------- 4 files changed, 72 insertions(+), 50 deletions(-) diff --git a/include/SDL_hints.h b/include/SDL_hints.h index 8e561fb31f324..763154f3aec48 100644 --- a/include/SDL_hints.h +++ b/include/SDL_hints.h @@ -178,6 +178,16 @@ extern "C" { */ #define SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS "SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS" +/** + * \brief Set whether windows go fullscreen in their own spaces on Mac OS X + * + * This variable can be set to the following values: + * "0" - Fullscreen windows will use the classic fullscreen mode + * "1" - Fullscreen windows will use fullscreen spaces + * + * By default SDL will use the classic fullscreen mode. + */ +#define SDL_HINT_VIDEO_FULLSCREEN_SPACES "SDL_VIDEO_FULLSCREEN_SPACES" /** * \brief A variable controlling whether the idle timer is disabled on iOS. diff --git a/src/video/SDL_video.c b/src/video/SDL_video.c index 0f0b3e6f7d477..2042d07e11a53 100755 --- a/src/video/SDL_video.c +++ b/src/video/SDL_video.c @@ -112,6 +112,13 @@ static SDL_VideoDevice *_this = NULL; return retval; \ } + +#ifdef __MACOSX__ +/* Support for Mac OS X fullscreen spaces */ +extern SDL_bool Cocoa_SetWindowFullscreenSpace(SDL_Window * window, SDL_bool state); +#endif + + /* Support for framebuffer emulation using an accelerated renderer */ #define SDL_WINDOWTEXTUREDATA "_SDL_WindowTextureData" @@ -1080,9 +1087,17 @@ SDL_RestoreMousePosition(SDL_Window *window) static void SDL_UpdateFullscreenMode(SDL_Window * window, SDL_bool fullscreen) { - SDL_VideoDisplay *display = SDL_GetDisplayForWindow(window); + SDL_VideoDisplay *display; SDL_Window *other; +#ifdef __MACOSX__ + if (Cocoa_SetWindowFullscreenSpace(window, fullscreen)) { + return; + } +#endif + + display = SDL_GetDisplayForWindow(window); + if (fullscreen) { /* Hide any other fullscreen windows */ if (display->fullscreen_window && diff --git a/src/video/cocoa/SDL_cocoawindow.h b/src/video/cocoa/SDL_cocoawindow.h index 39992a4bd0900..44eb969362c5f 100644 --- a/src/video/cocoa/SDL_cocoawindow.h +++ b/src/video/cocoa/SDL_cocoawindow.h @@ -49,7 +49,8 @@ typedef enum -(void) pauseVisibleObservation; -(void) resumeVisibleObservation; -(BOOL) setFullscreenSpace:(BOOL) state; --(BOOL) isInFullscreenTransition; +-(BOOL) isInFullscreenSpace; +-(BOOL) isInFullscreenSpaceTransition; -(void) addPendingWindowOperation:(PendingWindowOperation) operation; -(void) close; diff --git a/src/video/cocoa/SDL_cocoawindow.m b/src/video/cocoa/SDL_cocoawindow.m index 54bb94e29e471..182e634e5991f 100644 --- a/src/video/cocoa/SDL_cocoawindow.m +++ b/src/video/cocoa/SDL_cocoawindow.m @@ -189,9 +189,7 @@ -(BOOL) setFullscreenSpace:(BOOL) state; #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1070 SDL_Window *window = _data->window; NSWindow *nswindow = _data->nswindow; - BOOL canSetSpace = NO; - /* Make sure the window supports switching to fullscreen spaces */ if (![nswindow respondsToSelector: @selector(collectionBehavior)]) { return NO; } @@ -199,22 +197,6 @@ -(BOOL) setFullscreenSpace:(BOOL) state; return NO; } - pendingWindowOperation = PENDING_OPERATION_NONE; - - /* We can enter fullscreen spaces for "fullscreen desktop" */ - if ((window->flags & SDL_WINDOW_FULLSCREEN_DESKTOP) == SDL_WINDOW_FULLSCREEN_DESKTOP) { - canSetSpace = YES; - } - - /* We can always leave fullscreen spaces */ - if (!state && isFullscreenSpace) { - canSetSpace = YES; - } - - if (!canSetSpace) { - return NO; - } - if (state == isFullscreenSpace) { return YES; } @@ -227,6 +209,14 @@ -(BOOL) setFullscreenSpace:(BOOL) state; } return YES; } + inFullscreenTransition = YES; + + /* Update the flags here so the state change is available immediately */ + if (state) { + window->flags |= SDL_WINDOW_FULLSCREEN_DESKTOP; + } else { + window->flags &= ~SDL_WINDOW_FULLSCREEN_DESKTOP; + } [nswindow performSelectorOnMainThread: @selector(toggleFullScreen:) withObject:nswindow waitUntilDone:NO]; return YES; @@ -235,7 +225,12 @@ -(BOOL) setFullscreenSpace:(BOOL) state; #endif /* SDK >= 10.7 */ } --(BOOL) isInFullscreenTransition +-(BOOL) isInFullscreenSpace +{ + return isFullscreenSpace; +} + +-(BOOL) isInFullscreenSpaceTransition { return inFullscreenTransition; } @@ -429,13 +424,8 @@ - (void)windowWillEnterFullScreen:(NSNotification *)aNotification SDL_Window *window = _data->window; NSWindow *nswindow = _data->nswindow; - if (!(window->flags & SDL_WINDOW_RESIZABLE)) { - if ((window->flags & SDL_WINDOW_FULLSCREEN_DESKTOP) == SDL_WINDOW_FULLSCREEN_DESKTOP) { - [nswindow setStyleMask:(NSTitledWindowMask|NSClosableWindowMask|NSMiniaturizableWindowMask|NSResizableWindowMask)]; - } else { - [nswindow setStyleMask:NSBorderlessWindowMask]; - } - } + window->flags |= SDL_WINDOW_FULLSCREEN_DESKTOP; + [nswindow setStyleMask:(NSTitledWindowMask|NSClosableWindowMask|NSMiniaturizableWindowMask|NSResizableWindowMask)]; isFullscreenSpace = YES; inFullscreenTransition = YES; @@ -444,7 +434,6 @@ - (void)windowWillEnterFullScreen:(NSNotification *)aNotification - (void)windowDidEnterFullScreen:(NSNotification *)aNotification { SDL_Window *window = _data->window; - NSWindow *nswindow = _data->nswindow; inFullscreenTransition = NO; @@ -467,12 +456,8 @@ - (void)windowWillExitFullScreen:(NSNotification *)aNotification SDL_Window *window = _data->window; NSWindow *nswindow = _data->nswindow; - if (!(window->flags & SDL_WINDOW_RESIZABLE)) { - Uint32 flags = window->flags; - window->flags &= ~SDL_WINDOW_FULLSCREEN_DESKTOP; - [nswindow setStyleMask:GetWindowStyle(window)]; - window->flags = flags; - } + window->flags &= ~SDL_WINDOW_FULLSCREEN_DESKTOP; + [nswindow setStyleMask:GetWindowStyle(window)]; isFullscreenSpace = NO; inFullscreenTransition = YES; @@ -925,7 +910,10 @@ - (void)resetCursorRects [nswindow setBackgroundColor:[NSColor blackColor]]; #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1070 if ([nswindow respondsToSelector:@selector(setCollectionBehavior:)]) { - [nswindow setCollectionBehavior:NSWindowCollectionBehaviorFullScreenPrimary]; + const char *hint = SDL_GetHint(SDL_HINT_VIDEO_FULLSCREEN_SPACES); + if (hint && SDL_atoi(hint) > 0) { + [nswindow setCollectionBehavior:NSWindowCollectionBehaviorFullScreenPrimary]; + } } #endif @@ -1139,7 +1127,7 @@ - (void)resetCursorRects SDL_WindowData *data = (SDL_WindowData *) window->driverdata; NSWindow *nswindow = data->nswindow; - if ([data->listener isInFullscreenTransition]) { + if ([data->listener isInFullscreenSpaceTransition]) { [data->listener addPendingWindowOperation:PENDING_OPERATION_MINIMIZE]; } else { [nswindow miniaturize:nil]; @@ -1196,9 +1184,10 @@ - (void)resetCursorRects } -static void -Cocoa_SetWindowFullscreen_OldStyle(_THIS, SDL_Window * window, SDL_VideoDisplay * display, SDL_bool fullscreen) +void +Cocoa_SetWindowFullscreen(_THIS, SDL_Window * window, SDL_VideoDisplay * display, SDL_bool fullscreen) { + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; SDL_WindowData *data = (SDL_WindowData *) window->driverdata; NSWindow *nswindow = data->nswindow; NSRect rect; @@ -1272,17 +1261,6 @@ - (void)resetCursorRects } ScheduleContextUpdates(data); -} - -void -Cocoa_SetWindowFullscreen(_THIS, SDL_Window * window, SDL_VideoDisplay * display, SDL_bool fullscreen) -{ - NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - SDL_WindowData *data = (SDL_WindowData *) window->driverdata; - - if (![data->listener setFullscreenSpace:(fullscreen ? YES : NO)]) { - Cocoa_SetWindowFullscreen_OldStyle(_this, window, display, fullscreen); - } [pool release]; } @@ -1404,6 +1382,24 @@ - (void)resetCursorRects } } +SDL_bool +Cocoa_SetWindowFullscreenSpace(SDL_Window * window, SDL_bool state) +{ + SDL_bool succeeded = SDL_FALSE; +#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1070 + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + SDL_WindowData *data = (SDL_WindowData *) window->driverdata; + + if ([data->listener setFullscreenSpace:(state ? YES : NO)]) { + succeeded = SDL_TRUE; + } + + [pool release]; +#endif /* SDK 10.7+ */ + + return succeeded; +} + #endif /* SDL_VIDEO_DRIVER_COCOA */ /* vi: set ts=4 sw=4 expandtab: */ From 253b9ba815b558924867f45b0ad7eb00c73cc54f Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Tue, 12 Nov 2013 02:02:12 -0800 Subject: [PATCH 076/143] We still want to generally minimize on focus loss, but not when we're in a fullscreen space on Mac OS X. --- src/video/SDL_video.c | 13 ++++++------- src/video/cocoa/SDL_cocoawindow.m | 12 ++++++++++++ 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/src/video/SDL_video.c b/src/video/SDL_video.c index 2042d07e11a53..88f6d7e79aa53 100755 --- a/src/video/SDL_video.c +++ b/src/video/SDL_video.c @@ -115,6 +115,7 @@ static SDL_VideoDevice *_this = NULL; #ifdef __MACOSX__ /* Support for Mac OS X fullscreen spaces */ +extern SDL_bool Cocoa_IsWindowInFullscreenSpace(SDL_Window * window); extern SDL_bool Cocoa_SetWindowFullscreenSpace(SDL_Window * window, SDL_bool state); #endif @@ -2152,19 +2153,17 @@ SDL_OnWindowFocusGained(SDL_Window * window) static SDL_bool ShouldMinimizeOnFocusLoss(SDL_Window * window) { - SDL_bool default_minimize; const char *hint; if (!(window->flags & SDL_WINDOW_FULLSCREEN)) { return SDL_FALSE; } - if ((window->flags & SDL_WINDOW_FULLSCREEN_DESKTOP) == SDL_WINDOW_FULLSCREEN_DESKTOP) { - /* We're not doing a mode switch, so it's okay to stay around */ - default_minimize = SDL_FALSE; - } else { - default_minimize = SDL_TRUE; +#ifdef __MACOSX__ + if (Cocoa_IsWindowInFullscreenSpace(window)) { + return SDL_FALSE; } +#endif hint = SDL_GetHint(SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS); if (hint) { @@ -2175,7 +2174,7 @@ ShouldMinimizeOnFocusLoss(SDL_Window * window) } } - return default_minimize; + return SDL_TRUE; } void diff --git a/src/video/cocoa/SDL_cocoawindow.m b/src/video/cocoa/SDL_cocoawindow.m index 182e634e5991f..4c1f359b3b596 100644 --- a/src/video/cocoa/SDL_cocoawindow.m +++ b/src/video/cocoa/SDL_cocoawindow.m @@ -1382,6 +1382,18 @@ - (void)resetCursorRects } } +SDL_bool +Cocoa_IsWindowInFullscreenSpace(SDL_Window * window) +{ + SDL_WindowData *data = (SDL_WindowData *) window->driverdata; + + if ([data->listener isInFullscreenSpace]) { + return SDL_TRUE; + } else { + return SDL_FALSE; + } +} + SDL_bool Cocoa_SetWindowFullscreenSpace(SDL_Window * window, SDL_bool state) { From 12961352d37668cdaf4f5177d97f7432d3518ce4 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Tue, 12 Nov 2013 02:04:12 -0800 Subject: [PATCH 077/143] Fixed build error with SDK < 10.7 --- src/video/cocoa/SDL_cocoawindow.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/video/cocoa/SDL_cocoawindow.m b/src/video/cocoa/SDL_cocoawindow.m index 4c1f359b3b596..6899885d9ed06 100644 --- a/src/video/cocoa/SDL_cocoawindow.m +++ b/src/video/cocoa/SDL_cocoawindow.m @@ -221,7 +221,7 @@ -(BOOL) setFullscreenSpace:(BOOL) state; [nswindow performSelectorOnMainThread: @selector(toggleFullScreen:) withObject:nswindow waitUntilDone:NO]; return YES; #else - return NO + return NO; #endif /* SDK >= 10.7 */ } From 397f5a850d1d8db0fe735789b0fe56df90de92d1 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Tue, 12 Nov 2013 02:18:52 -0800 Subject: [PATCH 078/143] Retain the high dpi flag when recreating the window (e.g when creating a renderer context) --- src/video/SDL_video.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/video/SDL_video.c b/src/video/SDL_video.c index 88f6d7e79aa53..3169fdacc78ce 100755 --- a/src/video/SDL_video.c +++ b/src/video/SDL_video.c @@ -1175,7 +1175,7 @@ SDL_UpdateFullscreenMode(SDL_Window * window, SDL_bool fullscreen) } #define CREATE_FLAGS \ - (SDL_WINDOW_OPENGL | SDL_WINDOW_BORDERLESS | SDL_WINDOW_RESIZABLE) + (SDL_WINDOW_OPENGL | SDL_WINDOW_BORDERLESS | SDL_WINDOW_RESIZABLE | SDL_WINDOW_ALLOW_HIGHDPI) static void SDL_FinishWindowCreation(SDL_Window *window, Uint32 flags) @@ -1236,6 +1236,17 @@ SDL_CreateWindow(const char *title, int x, int y, int w, int h, Uint32 flags) return NULL; } } + + /* Unless the user has specified the high-DPI disabling hint, respect the + * SDL_WINDOW_ALLOW_HIGHDPI flag. + */ + if (flags & SDL_WINDOW_ALLOW_HIGHDPI) { + hint = SDL_GetHint(SDL_HINT_VIDEO_HIGHDPI_DISABLED); + if (hint && SDL_atoi(hint) > 0) { + flags &= ~SDL_WINDOW_ALLOW_HIGHDPI; + } + } + window = (SDL_Window *)SDL_calloc(1, sizeof(*window)); if (!window) { SDL_OutOfMemory(); @@ -1266,16 +1277,6 @@ SDL_CreateWindow(const char *title, int x, int y, int w, int h, Uint32 flags) window->brightness = 1.0f; window->next = _this->windows; - /* Unless the user has specified the high-DPI disabling hint, respect the - * SDL_WINDOW_ALLOW_HIGHDPI flag. - */ - hint = SDL_GetHint(SDL_HINT_VIDEO_HIGHDPI_DISABLED); - if (!hint || *hint != '1') { - if ((flags & SDL_WINDOW_ALLOW_HIGHDPI)) { - window->flags |= SDL_WINDOW_ALLOW_HIGHDPI; - } - } - if (_this->windows) { _this->windows->prev = window; } From bcece01c6cc275f903067033a7c3335ee0d3af10 Mon Sep 17 00:00:00 2001 From: Gabriel Jacobo Date: Tue, 12 Nov 2013 11:28:42 -0300 Subject: [PATCH 079/143] Linux README explaining build vs runtime, and build deps for Ubuntu 13.04 Build dependencies list for Ubuntu 13.04 provided by Ryan. --- README-linux.txt | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 README-linux.txt diff --git a/README-linux.txt b/README-linux.txt new file mode 100644 index 0000000000000..97e21e748f22c --- /dev/null +++ b/README-linux.txt @@ -0,0 +1,25 @@ +================================================================================ +Simple DirectMedia Layer for Linux +================================================================================ + +By default SDL will only link against glibc, the rest of the features will be +enabled dynamically at runtime depending on the available features on the target +system. So, for example if you built SDL with Xinerama support and the target +system does not have the Xinerama libraries installed, it will be disabled +at runtime, and you won't get a missing library error, at least with the +default configuration parameters. + + +================================================================================ +Build Dependencies +================================================================================ + +Ubuntu 13.04, all available features enabled: + +sudo apt-get install build-essential mercurial make cmake autoconf automake \ +libtool libasound2-dev libpulse-dev libaudio-dev libx11-dev libxext-dev \ +libxrandr-dev libxcursor-dev libxi-dev libxinerama-dev libxxf86vm-dev \ +libxss-dev libgl1-mesa-dev libesd0-dev libdbus-1-dev libudev-dev \ +libgles1-mesa-dev libgles2-mesa-dev libegl1-mesa-dev + + From ad4ba2d5727bf139637a7d1b4270f8543e24ca4b Mon Sep 17 00:00:00 2001 From: Gabriel Jacobo Date: Tue, 12 Nov 2013 11:31:13 -0300 Subject: [PATCH 080/143] Added a few notes from Ryan's email to README-linux.txt --- README-linux.txt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README-linux.txt b/README-linux.txt index 97e21e748f22c..d147b16f302d1 100644 --- a/README-linux.txt +++ b/README-linux.txt @@ -22,4 +22,11 @@ libxrandr-dev libxcursor-dev libxi-dev libxinerama-dev libxxf86vm-dev \ libxss-dev libgl1-mesa-dev libesd0-dev libdbus-1-dev libudev-dev \ libgles1-mesa-dev libgles2-mesa-dev libegl1-mesa-dev +NOTES: +- This includes all the audio targets except arts, because Ubuntu pulled the + artsc0-dev package, but in theory SDL still supports it. +- DirectFB isn't included because the configure script (currently) fails to find + it at all. You can do "sudo apt-get install libdirectfb-dev" and fix the + configure script to include DirectFB support. Send patches. :) + From f8e1d350a4b95ab60c2614b6a34f4ac66785fa6d Mon Sep 17 00:00:00 2001 From: Gabriel Jacobo Date: Wed, 13 Nov 2013 09:41:21 -0300 Subject: [PATCH 081/143] Updated androidbuild.sh to enable parallel builds and ndk-build parameters --- build-scripts/androidbuild.sh | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/build-scripts/androidbuild.sh b/build-scripts/androidbuild.sh index eed062256b7a8..ea6e6b1bc5c66 100755 --- a/build-scripts/androidbuild.sh +++ b/build-scripts/androidbuild.sh @@ -25,6 +25,7 @@ if [ -z "$1" ] || [ -z "$SOURCES" ]; then echo "Usage: androidbuild.sh com.yourcompany.yourapp < sources.list" echo "Usage: androidbuild.sh com.yourcompany.yourapp source1.c source2.c ...sourceN.c" echo "To copy SDL source instead of symlinking: COPYSOURCE=1 androidbuild.sh ... " + echo "You can pass additional arguments to ndk-build with the NDKARGS variable: NDKARGS=\"-s\" androidbuild.sh ..." exit 1 fi @@ -51,6 +52,19 @@ if [ -z "$ANT" ];then exit 1 fi +NCPUS="1" +case "$OSTYPE" in + darwin*) + NCPU=`sysctl -n hw.ncpu` + ;; + linux*) + if [ -n `which nproc` ]; then + NCPUS=`nproc` + fi + ;; + *);; +esac + APP="$1" APPARR=(${APP//./ }) BUILDPATH="$SDLPATH/build/$APP" @@ -102,7 +116,7 @@ echo "public class $ACTIVITY extends SDLActivity {}" >> "$ACTIVITY.java" # Update project and build cd $BUILDPATH android update project --path $BUILDPATH -$NDKBUILD +$NDKBUILD -j $NCPUS $NDKARGS $ANT debug cd $CURDIR From 5b8b403e3e6cc5a9d180c632ffc01c141f461773 Mon Sep 17 00:00:00 2001 From: Gabriel Jacobo Date: Wed, 13 Nov 2013 11:18:37 -0300 Subject: [PATCH 082/143] [Windows] Fixes bug #1555, handle ALT+F4 on Windows --- src/video/windows/SDL_windowsevents.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/video/windows/SDL_windowsevents.c b/src/video/windows/SDL_windowsevents.c index 6a0dd44d76a01..34fcbc6ac92f2 100755 --- a/src/video/windows/SDL_windowsevents.c +++ b/src/video/windows/SDL_windowsevents.c @@ -535,9 +535,19 @@ WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) case WM_KEYUP: { SDL_Scancode code = WindowsScanCodeToSDLScanCode( lParam, wParam ); + const Uint8 *keyboardState = SDL_GetKeyboardState(NULL); + + /* Detect relevant keyboard shortcuts */ + if (keyboardState[SDL_SCANCODE_LALT] == SDL_PRESSED || keyboardState[SDL_SCANCODE_RALT] == SDL_PRESSED ) { + /* ALT+F4: Close window */ + if (code == SDL_SCANCODE_F4) { + SDL_SendWindowEvent(data->window, SDL_WINDOWEVENT_CLOSE, 0, 0); + } + } + if ( code != SDL_SCANCODE_UNKNOWN ) { if (code == SDL_SCANCODE_PRINTSCREEN && - SDL_GetKeyboardState(NULL)[code] == SDL_RELEASED) { + keyboardState[code] == SDL_RELEASED) { SDL_SendKeyboardKey(SDL_PRESSED, code); } SDL_SendKeyboardKey(SDL_RELEASED, code); From b36d98bd9ce83ff5045e556d3d111c23a9e2f26c Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Wed, 13 Nov 2013 21:50:59 -0800 Subject: [PATCH 083/143] Diagonal flipping with RenderCopyEx Ivan Rubinson As it turns out, it was impossible to render a texture flipped diagonally (both vertically and horizontally) with one RenderCopyEx call. With help from #SDL @ freenode, we came up with a fix. --- src/render/direct3d/SDL_render_d3d.c | 36 +++++++++++++++------------- src/render/opengl/SDL_render_gl.c | 30 +++++++++++++---------- 2 files changed, 37 insertions(+), 29 deletions(-) diff --git a/src/render/direct3d/SDL_render_d3d.c b/src/render/direct3d/SDL_render_d3d.c index a4c6027573b50..38fb6d0823c94 100644 --- a/src/render/direct3d/SDL_render_d3d.c +++ b/src/render/direct3d/SDL_render_d3d.c @@ -1635,22 +1635,26 @@ D3D_RenderCopyEx(SDL_Renderer * renderer, SDL_Texture * texture, centerx = center->x; centery = center->y; - if (flip & SDL_FLIP_HORIZONTAL) { - minx = dstrect->w - centerx - 0.5f; - maxx = -centerx - 0.5f; - } - else { - minx = -centerx - 0.5f; - maxx = dstrect->w - centerx - 0.5f; - } - - if (flip & SDL_FLIP_VERTICAL) { - miny = dstrect->h - centery - 0.5f; - maxy = -centery - 0.5f; - } - else { - miny = -centery - 0.5f; - maxy = dstrect->h - centery - 0.5f; + if ((flip & SDL_FLIP_VERTICAL) && (flip & SDL_FLIP_HORIZONTAL)) { + miny = dstrect->h - centery; + maxy = -centery; + minx = dstrect->w - centerx; + maxx = -centerx; + } else if (flip & SDL_FLIP_HORIZONTAL) { + miny = -centery; + maxy = dstrect->h - centery; + minx = dstrect->w - centerx; + maxx = -centerx; + } else if (flip & SDL_FLIP_VERTICAL) { + miny = dstrect->h - centery; + maxy = -centery; + minx = -centerx; + maxx = dstrect->w - centerx; + } else { + miny = -centery; + maxy = dstrect->h - centery; + minx = -centerx; + maxx = dstrect->w - centerx; } minu = (float) srcrect->x / texture->w; diff --git a/src/render/opengl/SDL_render_gl.c b/src/render/opengl/SDL_render_gl.c index 94914ead18f22..bb789c13807ba 100644 --- a/src/render/opengl/SDL_render_gl.c +++ b/src/render/opengl/SDL_render_gl.c @@ -1250,22 +1250,26 @@ GL_RenderCopyEx(SDL_Renderer * renderer, SDL_Texture * texture, centerx = center->x; centery = center->y; - if (flip & SDL_FLIP_HORIZONTAL) { - minx = dstrect->w - centerx; + if ((flip & SDL_FLIP_VERTICAL) && (flip & SDL_FLIP_HORIZONTAL)) { + miny = dstrect->h - centery; + maxy = -centery; + minx = dstrect->w - centerx; maxx = -centerx; - } - else { - minx = -centerx; - maxx = dstrect->w - centerx; - } - - if (flip & SDL_FLIP_VERTICAL) { - miny = dstrect->h - centery; + } else if (flip & SDL_FLIP_HORIZONTAL) { + miny = -centery; + maxy = dstrect->h - centery; + minx = dstrect->w - centerx; + maxx = -centerx; + } else if (flip & SDL_FLIP_VERTICAL) { + miny = dstrect->h - centery; maxy = -centery; - } - else { + minx = -centerx; + maxx = dstrect->w - centerx; + } else { miny = -centery; - maxy = dstrect->h - centery; + maxy = dstrect->h - centery; + minx = -centerx; + maxx = dstrect->w - centerx; } minu = (GLfloat) srcrect->x / texture->w; From 7550ddcc05235f924e0ebac1224fcd8c0e601788 Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Wed, 13 Nov 2013 22:35:26 -0500 Subject: [PATCH 084/143] Started BeOS removal: merged BeOS thread and pthread code. Haiku uses most of the standard pthread API, with a few #ifdefs where we still need to fallback onto the old BeOS APIs. BeOS, however, does not support pthreads (or maybe doesn't support it well), so I'm unplugging support for the platform with this changeset. Be Inc went out of business in 2001. --- CMakeLists.txt | 2 + cmake/sdlchecks.cmake | 3 + configure | 19 ++-- configure.in | 19 ++-- include/SDL_config.h.cmake | 1 - include/SDL_config.h.in | 1 - src/audio/baudio/SDL_beaudio.cc | 30 +++++- src/thread/SDL_thread_c.h | 4 - src/thread/beos/SDL_syssem.c | 151 ----------------------------- src/thread/beos/SDL_systhread.c | 126 ------------------------ src/thread/beos/SDL_systhread_c.h | 32 ------ src/thread/beos/SDL_systls.c | 70 ------------- src/thread/pthread/SDL_systhread.c | 11 ++- 13 files changed, 61 insertions(+), 408 deletions(-) delete mode 100644 src/thread/beos/SDL_syssem.c delete mode 100644 src/thread/beos/SDL_systhread.c delete mode 100644 src/thread/beos/SDL_systhread_c.h delete mode 100644 src/thread/beos/SDL_systls.c diff --git a/CMakeLists.txt b/CMakeLists.txt index 489421f2732db..a66a1ad2432b7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1012,6 +1012,8 @@ elseif(BEOS) set(HAVE_VIDEO_OPENGL TRUE) endif(VIDEO_OPENGL) endif(SDL_VIDEO) + + CheckPTHREAD() endif() # Dummies diff --git a/cmake/sdlchecks.cmake b/cmake/sdlchecks.cmake index fe763785cb262..f71ad906ef9d7 100644 --- a/cmake/sdlchecks.cmake +++ b/cmake/sdlchecks.cmake @@ -638,6 +638,9 @@ macro(CheckPTHREAD) elseif(HPUX) set(PTHREAD_CFLAGS "-D_REENTRANT") set(PTHREAD_LDFLAGS "-L/usr/lib -pthread") + elseif(BEOS) + set(PTHREAD_CFLAGS "-D_REENTRANT") + set(PTHREAD_LDFLAGS "") else() set(PTHREAD_CFLAGS "-D_REENTRANT") set(PTHREAD_LDFLAGS "-lpthread") diff --git a/configure b/configure index ba248943085f9..a441a3e138629 100755 --- a/configure +++ b/configure @@ -21006,6 +21006,10 @@ fi pthread_cflags="-D_REENTRANT" pthread_lib="-L/usr/lib -lpthread" ;; + *-*-haiku*) + pthread_cflags="-D_REENTRANT" + pthread_lib="" + ;; *) pthread_cflags="-D_REENTRANT" pthread_lib="-lpthread" @@ -22394,7 +22398,9 @@ fi SDL_LIBS="-lcygwin $SDL_LIBS" fi ;; - *-*-beos* | *-*-haiku*) + + + *-*-haiku*) ARCH=beos ac_default_prefix=/boot/common CheckDummyVideo @@ -22402,6 +22408,7 @@ fi CheckDummyAudio CheckBWINDOW CheckBeGL + CheckPTHREAD # Set up files for the audio library if test x$enable_audio = xyes; then @@ -22418,16 +22425,6 @@ $as_echo "#define SDL_JOYSTICK_BEOS 1" >>confdefs.h SOURCES="$SOURCES $srcdir/src/joystick/beos/*.cc" have_joystick=yes fi - # Set up files for the thread library - if test x$enable_threads = xyes; then - -$as_echo "#define SDL_THREAD_BEOS 1" >>confdefs.h - - SOURCES="$SOURCES $srcdir/src/thread/beos/*.c" - SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_sysmutex.c" - SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_syscond.c" - have_threads=yes - fi # Set up files for the timer library if test x$enable_timers = xyes; then diff --git a/configure.in b/configure.in index 5c56f00801e27..87513fe92ed5f 100644 --- a/configure.in +++ b/configure.in @@ -1940,6 +1940,10 @@ AC_HELP_STRING([--enable-pthread-sem], [use pthread semaphores [[default=yes]]]) pthread_cflags="-D_REENTRANT" pthread_lib="-L/usr/lib -lpthread" ;; + *-*-haiku*) + pthread_cflags="-D_REENTRANT" + pthread_lib="" + ;; *) pthread_cflags="-D_REENTRANT" pthread_lib="-lpthread" @@ -2613,7 +2617,11 @@ AC_HELP_STRING([--enable-render-d3d], [enable the Direct3D render driver [[defau SDL_LIBS="-lcygwin $SDL_LIBS" fi ;; - *-*-beos* | *-*-haiku*) + + dnl BeOS support removed after SDL 2.0.1. Haiku still works. --ryan. + dnl *-*-beos*) + + *-*-haiku*) ARCH=beos ac_default_prefix=/boot/common CheckDummyVideo @@ -2621,6 +2629,7 @@ AC_HELP_STRING([--enable-render-d3d], [enable the Direct3D render driver [[defau CheckDummyAudio CheckBWINDOW CheckBeGL + CheckPTHREAD # Set up files for the audio library if test x$enable_audio = xyes; then AC_DEFINE(SDL_AUDIO_DRIVER_BEOSAUDIO, 1, [ ]) @@ -2633,14 +2642,6 @@ AC_HELP_STRING([--enable-render-d3d], [enable the Direct3D render driver [[defau SOURCES="$SOURCES $srcdir/src/joystick/beos/*.cc" have_joystick=yes fi - # Set up files for the thread library - if test x$enable_threads = xyes; then - AC_DEFINE(SDL_THREAD_BEOS, 1, [ ]) - SOURCES="$SOURCES $srcdir/src/thread/beos/*.c" - SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_sysmutex.c" - SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_syscond.c" - have_threads=yes - fi # Set up files for the timer library if test x$enable_timers = xyes; then AC_DEFINE(SDL_TIMER_BEOS, 1, [ ]) diff --git a/include/SDL_config.h.cmake b/include/SDL_config.h.cmake index 66107e49eb7cb..2f1137643e176 100644 --- a/include/SDL_config.h.cmake +++ b/include/SDL_config.h.cmake @@ -237,7 +237,6 @@ #cmakedefine SDL_LOADSO_WINDOWS @SDL_LOADSO_WINDOWS@ /* Enable various threading systems */ -#cmakedefine SDL_THREAD_BEOS @SDL_THREAD_BEOS@ #cmakedefine SDL_THREAD_PTHREAD @SDL_THREAD_PTHREAD@ #cmakedefine SDL_THREAD_PTHREAD_RECURSIVE_MUTEX @SDL_THREAD_PTHREAD_RECURSIVE_MUTEX@ #cmakedefine SDL_THREAD_PTHREAD_RECURSIVE_MUTEX_NP @SDL_THREAD_PTHREAD_RECURSIVE_MUTEX_NP@ diff --git a/include/SDL_config.h.in b/include/SDL_config.h.in index b2daf6fa3022a..5f41e1bbb8bf6 100644 --- a/include/SDL_config.h.in +++ b/include/SDL_config.h.in @@ -240,7 +240,6 @@ #undef SDL_LOADSO_WINDOWS /* Enable various threading systems */ -#undef SDL_THREAD_BEOS #undef SDL_THREAD_PTHREAD #undef SDL_THREAD_PTHREAD_RECURSIVE_MUTEX #undef SDL_THREAD_PTHREAD_RECURSIVE_MUTEX_NP diff --git a/src/audio/baudio/SDL_beaudio.cc b/src/audio/baudio/SDL_beaudio.cc index e2edf85fbae0c..86fb781538530 100644 --- a/src/audio/baudio/SDL_beaudio.cc +++ b/src/audio/baudio/SDL_beaudio.cc @@ -25,6 +25,7 @@ /* Allow access to the audio stream on BeOS */ #include +#include #include "../../main/beos/SDL_BeApp.h" @@ -85,6 +86,31 @@ BEOSAUDIO_CloseDevice(_THIS) } } + +static const int sig_list[] = { + SIGHUP, SIGINT, SIGQUIT, SIGPIPE, SIGALRM, SIGTERM, SIGWINCH, 0 +}; + +static inline void +MaskSignals(sigset_t * omask) +{ + sigset_t mask; + int i; + + sigemptyset(&mask); + for (i = 0; sig_list[i]; ++i) { + sigaddset(&mask, sig_list[i]); + } + sigprocmask(SIG_BLOCK, &mask, omask); +} + +static inline void +UnmaskSignals(sigset_t * omask) +{ + sigprocmask(SIG_SETMASK, omask, NULL); +} + + static int BEOSAUDIO_OpenDevice(_THIS, const char *devname, int iscapture) { @@ -162,10 +188,10 @@ BEOSAUDIO_OpenDevice(_THIS, const char *devname, int iscapture) /* Subscribe to the audio stream (creates a new thread) */ sigset_t omask; - SDL_MaskSignals(&omask); + MaskSignals(&omask); _this->hidden->audio_obj = new BSoundPlayer(&format, "SDL Audio", FillSound, NULL, _this); - SDL_UnmaskSignals(&omask); + UnmaskSignals(&omask); if (_this->hidden->audio_obj->Start() == B_NO_ERROR) { _this->hidden->audio_obj->SetHasData(true); diff --git a/src/thread/SDL_thread_c.h b/src/thread/SDL_thread_c.h index c7b063e07e480..4fe9254942673 100644 --- a/src/thread/SDL_thread_c.h +++ b/src/thread/SDL_thread_c.h @@ -28,10 +28,6 @@ /* Need the definitions of SYS_ThreadHandle */ #if SDL_THREADS_DISABLED #include "generic/SDL_systhread_c.h" -#elif SDL_THREAD_BEOS -#include "beos/SDL_systhread_c.h" -#elif SDL_THREAD_EPOC -#include "epoc/SDL_systhread_c.h" #elif SDL_THREAD_PTHREAD #include "pthread/SDL_systhread_c.h" #elif SDL_THREAD_WINDOWS diff --git a/src/thread/beos/SDL_syssem.c b/src/thread/beos/SDL_syssem.c deleted file mode 100644 index 9661f901217ef..0000000000000 --- a/src/thread/beos/SDL_syssem.c +++ /dev/null @@ -1,151 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2013 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ -#include "SDL_config.h" - -#ifdef SDL_THREAD_BEOS - -/* Semaphores in the BeOS environment */ - -#include - -#include "SDL_thread.h" - - -struct SDL_semaphore -{ - sem_id id; -}; - -/* Create a counting semaphore */ -SDL_sem * -SDL_CreateSemaphore(Uint32 initial_value) -{ - SDL_sem *sem; - - sem = (SDL_sem *) SDL_malloc(sizeof(*sem)); - if (sem) { - sem->id = create_sem(initial_value, "SDL semaphore"); - if (sem->id < B_NO_ERROR) { - SDL_SetError("create_sem() failed"); - SDL_free(sem); - sem = NULL; - } - } else { - SDL_OutOfMemory(); - } - return (sem); -} - -/* Free the semaphore */ -void -SDL_DestroySemaphore(SDL_sem * sem) -{ - if (sem) { - if (sem->id >= B_NO_ERROR) { - delete_sem(sem->id); - } - SDL_free(sem); - } -} - -int -SDL_SemWaitTimeout(SDL_sem * sem, Uint32 timeout) -{ - int32 val; - int retval; - - if (!sem) { - return SDL_SetError("Passed a NULL semaphore"); - } - - tryagain: - if (timeout == SDL_MUTEX_MAXWAIT) { - val = acquire_sem(sem->id); - } else { - timeout *= 1000; /* BeOS uses a timeout in microseconds */ - val = acquire_sem_etc(sem->id, 1, B_RELATIVE_TIMEOUT, timeout); - } - switch (val) { - case B_INTERRUPTED: - goto tryagain; - case B_NO_ERROR: - retval = 0; - break; - case B_TIMED_OUT: - retval = SDL_MUTEX_TIMEDOUT; - break; - case B_WOULD_BLOCK: - retval = SDL_MUTEX_TIMEDOUT; - break; - default: - retval = SDL_SetError("acquire_sem() failed"); - break; - } - - return retval; -} - -int -SDL_SemTryWait(SDL_sem * sem) -{ - return SDL_SemWaitTimeout(sem, 0); -} - -int -SDL_SemWait(SDL_sem * sem) -{ - return SDL_SemWaitTimeout(sem, SDL_MUTEX_MAXWAIT); -} - -/* Returns the current count of the semaphore */ -Uint32 -SDL_SemValue(SDL_sem * sem) -{ - int32 count; - Uint32 value; - - value = 0; - if (sem) { - get_sem_count(sem->id, &count); - if (count > 0) { - value = (Uint32) count; - } - } - return value; -} - -/* Atomically increases the semaphore's count (not blocking) */ -int -SDL_SemPost(SDL_sem * sem) -{ - if (!sem) { - return SDL_SetError("Passed a NULL semaphore"); - } - - if (release_sem(sem->id) != B_NO_ERROR) { - return SDL_SetError("release_sem() failed"); - } - return 0; -} - -#endif /* SDL_THREAD_BEOS */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/src/thread/beos/SDL_systhread.c b/src/thread/beos/SDL_systhread.c deleted file mode 100644 index 11646f9749e4d..0000000000000 --- a/src/thread/beos/SDL_systhread.c +++ /dev/null @@ -1,126 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2013 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ -#include "SDL_config.h" - -#ifdef SDL_THREAD_BEOS - -/* BeOS thread management routines for SDL */ - -#include -#include -#include - -#include "SDL_mutex.h" -#include "SDL_thread.h" -#include "../SDL_thread_c.h" -#include "../SDL_systhread.h" - - -static int sig_list[] = { - SIGHUP, SIGINT, SIGQUIT, SIGPIPE, SIGALRM, SIGTERM, SIGWINCH, 0 -}; - -void -SDL_MaskSignals(sigset_t * omask) -{ - sigset_t mask; - int i; - - sigemptyset(&mask); - for (i = 0; sig_list[i]; ++i) { - sigaddset(&mask, sig_list[i]); - } - sigprocmask(SIG_BLOCK, &mask, omask); -} - -void -SDL_UnmaskSignals(sigset_t * omask) -{ - sigprocmask(SIG_SETMASK, omask, NULL); -} - -static int32 -RunThread(void *data) -{ - SDL_RunThread(data); - return (0); -} - -int -SDL_SYS_CreateThread(SDL_Thread * thread, void *args) -{ - /* The docs say the thread name can't be longer than B_OS_NAME_LENGTH. */ - const char *threadname = thread->name ? thread->name : "SDL Thread"; - char name[B_OS_NAME_LENGTH]; - SDL_snprintf(name, sizeof (name), "%s", threadname); - name[sizeof (name) - 1] = '\0'; - - /* Create the thread and go! */ - thread->handle = spawn_thread(RunThread, name, B_NORMAL_PRIORITY, args); - if ((thread->handle == B_NO_MORE_THREADS) || - (thread->handle == B_NO_MEMORY)) { - return SDL_SetError("Not enough resources to create thread"); - } - resume_thread(thread->handle); - return (0); -} - -void -SDL_SYS_SetupThread(const char *name) -{ - /* We set the thread name during SDL_SYS_CreateThread(). */ - /* Mask asynchronous signals for this thread */ - SDL_MaskSignals(NULL); -} - -SDL_threadID -SDL_ThreadID(void) -{ - return ((SDL_threadID) find_thread(NULL)); -} - -int -SDL_SYS_SetThreadPriority(SDL_ThreadPriority priority) -{ - int32 value; - - if (priority == SDL_THREAD_PRIORITY_LOW) { - value = B_LOW_PRIORITY; - } else if (priority == SDL_THREAD_PRIORITY_HIGH) { - value = B_URGENT_DISPLAY_PRIORITY; - } else { - value = B_NORMAL_PRIORITY; - } - set_thread_priority(find_thread(NULL), value); - return 0; -} - -void -SDL_SYS_WaitThread(SDL_Thread * thread) -{ - status_t the_status; - - wait_for_thread(thread->handle, &the_status); -} - -#endif /* SDL_THREAD_BEOS */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/src/thread/beos/SDL_systhread_c.h b/src/thread/beos/SDL_systhread_c.h deleted file mode 100644 index a350ab59449d5..0000000000000 --- a/src/thread/beos/SDL_systhread_c.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2013 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ -#include "SDL_config.h" - -#include -#include - -typedef thread_id SYS_ThreadHandle; - -/* Functions needed to work with system threads in other portions of SDL */ -extern void SDL_MaskSignals(sigset_t * omask); -extern void SDL_UnmaskSignals(sigset_t * omask); - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/src/thread/beos/SDL_systls.c b/src/thread/beos/SDL_systls.c deleted file mode 100644 index 8e941289a7d6f..0000000000000 --- a/src/thread/beos/SDL_systls.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2013 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#include "SDL_config.h" -#include "SDL_thread.h" -#include "../SDL_thread_c.h" - -#if SDL_THREAD_BEOS - -#include - - -static int32 thread_local_storage = B_NO_MEMORY; -static SDL_bool generic_local_storage = SDL_FALSE; - -SDL_TLSData * -SDL_SYS_GetTLSData() -{ - if (thread_local_storage == B_NO_MEMORY && !generic_local_storage) { - static SDL_SpinLock lock; - SDL_AtomicLock(&lock); - if (thread_local_storage == B_NO_MEMORY && !generic_local_storage) { - int32 storage = tls_allocate(); - if (storage != B_NO_MEMORY) { - SDL_MemoryBarrierRelease(); - thread_local_storage = storage; - } else { - generic_local_storage = SDL_TRUE; - } - } - SDL_AtomicUnlock(&lock); - } - if (generic_local_storage) { - return SDL_Generic_GetTLSData(); - } - SDL_MemoryBarrierAcquire(); - return (SDL_TLSData *)tls_get(thread_local_storage); -} - -int -SDL_SYS_SetTLSData(SDL_TLSData *data) -{ - if (generic_local_storage) { - return SDL_Generic_SetTLSData(data); - } - tls_set(thread_local_storage, data); - return 0; -} - -#endif /* SDL_THREAD_BEOS */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/src/thread/pthread/SDL_systhread.c b/src/thread/pthread/SDL_systhread.c index c967ca7f30e76..f9eaef2731778 100644 --- a/src/thread/pthread/SDL_systhread.c +++ b/src/thread/pthread/SDL_systhread.c @@ -51,6 +51,10 @@ #include "../../core/android/SDL_android.h" #endif +#ifdef __HAIKU__ +#include +#endif + #include "SDL_assert.h" /* List of signals to mask in the subthreads */ @@ -59,7 +63,6 @@ static const int sig_list[] = { SIGVTALRM, SIGPROF, 0 }; - static void * RunThread(void *data) { @@ -129,6 +132,12 @@ SDL_SYS_SetupThread(const char *name) pthread_setname_np(pthread_self(), name); #elif HAVE_PTHREAD_SET_NAME_NP pthread_set_name_np(pthread_self(), name); + #elif defined(__HAIKU__) + /* The docs say the thread name can't be longer than B_OS_NAME_LENGTH. */ + char namebuf[B_OS_NAME_LENGTH]; + SDL_snprintf(namebuf, sizeof (namebuf), "%s", name); + namebuf[sizeof (namebuf) - 1] = '\0'; + rename_thread(find_thread(NULL), namebuf); #endif } From 8d6e03f353415cdb51bd1fb4598093a80eae87c2 Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Thu, 14 Nov 2013 00:52:39 -0500 Subject: [PATCH 085/143] Added SDL_DetachThread() API. --- include/SDL_thread.h | 42 +++++++++++++++++++++++++++- src/thread/SDL_systhread.h | 3 ++ src/thread/SDL_thread.c | 45 +++++++++++++++++++++++++++--- src/thread/SDL_thread_c.h | 9 ++++++ src/thread/generic/SDL_systhread.c | 6 ++++ src/thread/psp/SDL_systhread.c | 6 ++++ src/thread/pthread/SDL_systhread.c | 6 ++++ src/thread/windows/SDL_systhread.c | 6 ++++ 8 files changed, 118 insertions(+), 5 deletions(-) diff --git a/include/SDL_thread.h b/include/SDL_thread.h index f248c3d69cea5..42df3d6c34748 100644 --- a/include/SDL_thread.h +++ b/include/SDL_thread.h @@ -165,13 +165,53 @@ extern DECLSPEC SDL_threadID SDLCALL SDL_GetThreadID(SDL_Thread * thread); extern DECLSPEC int SDLCALL SDL_SetThreadPriority(SDL_ThreadPriority priority); /** - * Wait for a thread to finish. + * Wait for a thread to finish. Threads that haven't been detached will + * remain (as a "zombie") until this function cleans them up. Not doing so + * is a resource leak. + * + * Once a thread has been cleaned up through this function, the SDL_Thread + * that references it becomes invalid and should not be referenced again. + * As such, only one thread may call SDL_WaitThread() on another. * * The return code for the thread function is placed in the area * pointed to by \c status, if \c status is not NULL. + * + * You may not wait on a thread that has been used in a call to + * SDL_DetachThread(). Use either that function or this one, but not + * both, or behavior is undefined. + * + * It is safe to pass NULL to this function; it is a no-op. */ extern DECLSPEC void SDLCALL SDL_WaitThread(SDL_Thread * thread, int *status); +/** + * A thread may be "detached" to signify that it should not remain until + * another thread has called SDL_WaitThread() on it. Detaching a thread + * is useful for long-running threads that nothing needs to synchronize + * with or further manage. When a detached thread is done, it simply + * goes away. + * + * There is no way to recover the return code of a detached thread. If you + * need this, don't detach the thread and instead use SDL_WaitThread(). + * + * Once a thread is detached, you should usually assume the SDL_Thread isn't + * safe to reference again, as it will become invalid immediately upon + * the detached thread's exit, instead of remaining until someone has called + * SDL_WaitThread() to finally clean it up. As such, don't detach the same + * thread more than once. + * + * If a thread has already exited when passed to SDL_DetachThread(), it will + * stop waiting for a call to SDL_WaitThread() and clean up immediately. + * It is not safe to detach a thread that might be used with SDL_WaitThread(). + * + * You may not call SDL_WaitThread() on a thread that has been detached. + * Use either that function or this one, but not both, or behavior is + * undefined. + * + * It is safe to pass NULL to this function; it is a no-op. + */ +extern DECLSPEC void SDLCALL SDL_DetachThread(SDL_Thread * thread); + /** * \brief Create an identifier that is globally visible to all threads but refers to data that is thread-specific. * diff --git a/src/thread/SDL_systhread.h b/src/thread/SDL_systhread.h index 36898f389fdf2..3c8ba899b37ec 100644 --- a/src/thread/SDL_systhread.h +++ b/src/thread/SDL_systhread.h @@ -51,6 +51,9 @@ extern int SDL_SYS_SetThreadPriority(SDL_ThreadPriority priority); */ extern void SDL_SYS_WaitThread(SDL_Thread * thread); +/* Mark thread as cleaned up as soon as it exits, without joining. */ +extern void SDL_SYS_DetachThread(SDL_Thread * thread); + /* Get the thread local storage for this thread */ extern SDL_TLSData *SDL_SYS_GetTLSData(); diff --git a/src/thread/SDL_thread.c b/src/thread/SDL_thread.c index 4b070dadc633d..362e75a4202d0 100644 --- a/src/thread/SDL_thread.c +++ b/src/thread/SDL_thread.c @@ -22,6 +22,7 @@ /* System independent thread management routines for SDL */ +#include "SDL_assert.h" #include "SDL_thread.h" #include "SDL_thread_c.h" #include "SDL_systhread.h" @@ -265,13 +266,14 @@ SDL_RunThread(void *data) thread_args *args = (thread_args *) data; int (SDLCALL * userfunc) (void *) = args->func; void *userdata = args->data; - int *statusloc = &args->info->status; + SDL_Thread *thread = args->info; + int *statusloc = &thread->status; /* Perform any system-dependent setup - this function may not fail */ - SDL_SYS_SetupThread(args->info->name); + SDL_SYS_SetupThread(thread->name); /* Get the thread id */ - args->info->threadid = SDL_ThreadID(); + thread->threadid = SDL_ThreadID(); /* Wake up the parent thread */ SDL_SemPost(args->wait); @@ -281,6 +283,17 @@ SDL_RunThread(void *data) /* Clean up thread-local storage */ SDL_TLSCleanup(); + + /* Mark us as ready to be joined (or detached) */ + if (!SDL_AtomicCAS(&thread->state, SDL_THREAD_STATE_ALIVE, SDL_THREAD_STATE_ZOMBIE)) { + /* Clean up if something already detached us. */ + if (SDL_AtomicCAS(&thread->state, SDL_THREAD_STATE_DETACHED, SDL_THREAD_STATE_CLEANED)) { + if (thread->name) { + SDL_free(thread->name); + } + SDL_free(thread); + } + } } #ifdef SDL_PASSED_BEGINTHREAD_ENDTHREAD @@ -306,8 +319,9 @@ SDL_CreateThread(int (SDLCALL * fn) (void *), SDL_OutOfMemory(); return (NULL); } - SDL_memset(thread, 0, (sizeof *thread)); + SDL_zerop(thread); thread->status = -1; + SDL_AtomicSet(&thread->state, SDL_THREAD_STATE_ALIVE); /* Set up the arguments for the thread */ if (name != NULL) { @@ -410,4 +424,27 @@ SDL_WaitThread(SDL_Thread * thread, int *status) } } +void +SDL_DetachThread(SDL_Thread * thread) +{ + if (!thread) { + return; + } + + /* Grab dibs if the state is alive+joinable. */ + if (SDL_AtomicCAS(&thread->state, SDL_THREAD_STATE_ALIVE, SDL_THREAD_STATE_DETACHED)) { + SDL_SYS_DetachThread(thread); + } else { + /* all other states are pretty final, see where we landed. */ + const int state = SDL_AtomicGet(&thread->state); + if ((state == SDL_THREAD_STATE_DETACHED) || (state == SDL_THREAD_STATE_CLEANED)) { + return; /* already detached (you shouldn't call this twice!) */ + } else if (state == SDL_THREAD_STATE_ZOMBIE) { + SDL_WaitThread(thread, NULL); /* already done, clean it up. */ + } else { + SDL_assert(0 && "Unexpected thread state"); + } + } +} + /* vi: set ts=4 sw=4 expandtab: */ diff --git a/src/thread/SDL_thread_c.h b/src/thread/SDL_thread_c.h index 4fe9254942673..8d76a5f392875 100644 --- a/src/thread/SDL_thread_c.h +++ b/src/thread/SDL_thread_c.h @@ -40,12 +40,21 @@ #endif #include "../SDL_error_c.h" +typedef enum SDL_ThreadState +{ + SDL_THREAD_STATE_ALIVE, + SDL_THREAD_STATE_DETACHED, + SDL_THREAD_STATE_ZOMBIE, + SDL_THREAD_STATE_CLEANED, +} SDL_ThreadState; + /* This is the system-independent thread info structure */ struct SDL_Thread { SDL_threadID threadid; SYS_ThreadHandle handle; int status; + SDL_atomic_t state; /* SDL_THREAD_STATE_* */ SDL_error errbuf; char *name; void *data; diff --git a/src/thread/generic/SDL_systhread.c b/src/thread/generic/SDL_systhread.c index 139f8ac03d551..ab7f4bad9e8a6 100644 --- a/src/thread/generic/SDL_systhread.c +++ b/src/thread/generic/SDL_systhread.c @@ -62,4 +62,10 @@ SDL_SYS_WaitThread(SDL_Thread * thread) return; } +void +SDL_SYS_DetachThread(SDL_Thread * thread) +{ + return; +} + /* vi: set ts=4 sw=4 expandtab: */ diff --git a/src/thread/psp/SDL_systhread.c b/src/thread/psp/SDL_systhread.c index 05a2341fe0f0d..269defe4d0da9 100644 --- a/src/thread/psp/SDL_systhread.c +++ b/src/thread/psp/SDL_systhread.c @@ -77,6 +77,12 @@ void SDL_SYS_WaitThread(SDL_Thread *thread) sceKernelDeleteThread(thread->handle); } +void SDL_SYS_DetachThread(SDL_Thread *thread) +{ + /* !!! FIXME: is this correct? */ + sceKernelDeleteThread(thread->handle); +} + void SDL_SYS_KillThread(SDL_Thread *thread) { sceKernelTerminateDeleteThread(thread->handle); diff --git a/src/thread/pthread/SDL_systhread.c b/src/thread/pthread/SDL_systhread.c index f9eaef2731778..4c23478e506a6 100644 --- a/src/thread/pthread/SDL_systhread.c +++ b/src/thread/pthread/SDL_systhread.c @@ -213,4 +213,10 @@ SDL_SYS_WaitThread(SDL_Thread * thread) pthread_join(thread->handle, 0); } +void +SDL_SYS_DetachThread(SDL_Thread * thread) +{ + pthread_detach(thread->handle); +} + /* vi: set ts=4 sw=4 expandtab: */ diff --git a/src/thread/windows/SDL_systhread.c b/src/thread/windows/SDL_systhread.c index 06e23abd0c194..aa2db2e233d4d 100644 --- a/src/thread/windows/SDL_systhread.c +++ b/src/thread/windows/SDL_systhread.c @@ -234,6 +234,12 @@ SDL_SYS_WaitThread(SDL_Thread * thread) CloseHandle(thread->handle); } +void +SDL_SYS_DetachThread(SDL_Thread * thread) +{ + CloseHandle(thread->handle); +} + #endif /* SDL_THREAD_WINDOWS */ /* vi: set ts=4 sw=4 expandtab: */ From dd325b97622934a07b0be70ee71307b8190ab7f6 Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Thu, 14 Nov 2013 01:00:08 -0500 Subject: [PATCH 086/143] Patched to compile on Haiku. --- src/audio/baudio/SDL_beaudio.cc | 1 - 1 file changed, 1 deletion(-) diff --git a/src/audio/baudio/SDL_beaudio.cc b/src/audio/baudio/SDL_beaudio.cc index 86fb781538530..e4a80272625cd 100644 --- a/src/audio/baudio/SDL_beaudio.cc +++ b/src/audio/baudio/SDL_beaudio.cc @@ -35,7 +35,6 @@ extern "C" #include "SDL_audio.h" #include "../SDL_audio_c.h" #include "../SDL_sysaudio.h" -#include "../../thread/beos/SDL_systhread_c.h" #include "SDL_beaudio.h" } From 85dd689ff9d48f7adaee8328456c6677213c9c62 Mon Sep 17 00:00:00 2001 From: Gabriel Jacobo Date: Thu, 14 Nov 2013 10:19:07 -0300 Subject: [PATCH 087/143] Adds joystick/udev troubleshooting information to README-linux.txt --- README-linux.txt | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/README-linux.txt b/README-linux.txt index d147b16f302d1..e0f029d8103c7 100644 --- a/README-linux.txt +++ b/README-linux.txt @@ -30,3 +30,51 @@ NOTES: configure script to include DirectFB support. Send patches. :) +================================================================================ +Joystick does not work +================================================================================ + +If you compiled or are using a version of SDL with udev support (and you should!) +there's a few issues that may cause SDL to fail to detect your joystick. To +debug this, start by installing the evtest utility. On Ubuntu/Debian: + + sudo apt-get install evtest + +Then run: + + sudo evtest + +You'll hopefully see your joystick listed along with a name like "/dev/input/eventXX" +Now run: + + cat /dev/input/event/XX + +If you get a permission error, you need to set a udev rule to change the mode of +your device (see below) + +Also, try: + + sudo udevadm info --query=all --name=input/eventXX + +If you see a line stating ID_INPUT_JOYSTICK=1, great, if you don't see it, +you need to set up an udev rule to force this variable. + +A combined rule for the Saitek Pro Flight Rudder Pedals to fix both issues looks +like: + + SUBSYSTEM=="input", ATTRS{idProduct}=="0763", ATTRS{idVendor}=="06a3", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1" + SUBSYSTEM=="input", ATTRS{idProduct}=="0764", ATTRS{idVendor}=="06a3", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1" + +You can set up similar rules for your device by changing the values listed in +idProduct and idVendor. To obtain these values, try: + + sudo udevadm info -a --name=input/eventXX | grep idVendor + sudo udevadm info -a --name=input/eventXX | grep idProduct + +If multiple values come up for each of these, the one you want is the first one of each. + +On other systems which ship with an older udev (such as CentOS), you may need +to set up a rule such as: + + SUBSYSTEM=="input", ENV{ID_CLASS}=="joystick", ENV{ID_INPUT_JOYSTICK}="1" + From 1c138785d78666115b4d347aca75fd695e8bd4ca Mon Sep 17 00:00:00 2001 From: Apoorv Upreti Date: Thu, 14 Nov 2013 22:19:07 +0530 Subject: [PATCH 088/143] Fixed visualtest build on VS2012 SDL2, SDL2main and SDL2test had to be added as dependencies to the testquit project to get it to build properly. --- VisualC/SDL_VS2012.sln | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/VisualC/SDL_VS2012.sln b/VisualC/SDL_VS2012.sln index 6edc416dffc84..80335339183f3 100644 --- a/VisualC/SDL_VS2012.sln +++ b/VisualC/SDL_VS2012.sln @@ -115,6 +115,11 @@ EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "visualtest", "visualtest", "{68C17E4D-1073-48DB-A96C-C36FE8705F1B}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testquit", "visualtest\unittest\testquit\testquit_VS2012.vcxproj", "{1D12C737-7C71-45CE-AE2C-AAB47B690BC8}" + ProjectSection(ProjectDependencies) = postProject + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68} = {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68} + {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A} = {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A} + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A} = {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A} + EndProjectSection EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution From 00003e8c00746bdb76d44bca20509317a942c6ed Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Thu, 14 Nov 2013 11:51:24 -0500 Subject: [PATCH 089/143] Renamed things named after BeOS to be named after Haiku instead. --- CMakeLists.txt | 22 +++---- cmake/sdlchecks.cmake | 2 +- configure | 52 ++++++++-------- configure.in | 59 ++++++++++--------- include/SDL_config.h.cmake | 14 ++--- include/SDL_config.h.in | 14 ++--- include/SDL_platform.h | 4 -- include/SDL_thread.h | 2 +- src/SDL.c | 2 - src/audio/SDL_audio.c | 6 +- .../SDL_haikuaudio.cc} | 36 +++++------ .../SDL_beaudio.h => haiku/SDL_haikuaudio.h} | 0 src/events/SDL_sysevents.h | 4 +- .../{beos => haiku}/SDL_sysfilesystem.cc | 6 +- .../SDL_haikujoystick.cc} | 9 +-- src/loadso/{beos => haiku}/SDL_sysloadso.c | 6 +- src/main/{beos => haiku}/SDL_BApp.h | 6 +- src/main/{beos => haiku}/SDL_BeApp.cc | 6 +- src/main/{beos => haiku}/SDL_BeApp.h | 0 src/power/SDL_power.c | 6 +- src/power/{beos => haiku}/SDL_syspower.c | 7 ++- src/timer/{beos => haiku}/SDL_systimer.c | 6 +- src/video/SDL_sysvideo.h | 4 +- src/video/SDL_video.c | 4 +- src/video/{bwindow => haiku}/SDL_BWin.h | 4 +- .../{bwindow => haiku}/SDL_bclipboard.cc | 4 +- src/video/{bwindow => haiku}/SDL_bclipboard.h | 0 src/video/{bwindow => haiku}/SDL_bevents.cc | 4 +- src/video/{bwindow => haiku}/SDL_bevents.h | 0 .../{bwindow => haiku}/SDL_bframebuffer.cc | 6 +- .../{bwindow => haiku}/SDL_bframebuffer.h | 0 src/video/{bwindow => haiku}/SDL_bkeyboard.cc | 4 +- src/video/{bwindow => haiku}/SDL_bkeyboard.h | 0 src/video/{bwindow => haiku}/SDL_bmodes.cc | 6 +- src/video/{bwindow => haiku}/SDL_bmodes.h | 0 src/video/{bwindow => haiku}/SDL_bopengl.cc | 6 +- src/video/{bwindow => haiku}/SDL_bopengl.h | 0 src/video/{bwindow => haiku}/SDL_bvideo.cc | 8 +-- src/video/{bwindow => haiku}/SDL_bvideo.h | 2 +- src/video/{bwindow => haiku}/SDL_bwindow.cc | 10 ++-- src/video/{bwindow => haiku}/SDL_bwindow.h | 0 test/configure | 2 +- test/configure.in | 4 +- visualtest/configure | 2 +- visualtest/configure.in | 4 +- 45 files changed, 176 insertions(+), 167 deletions(-) rename src/audio/{baudio/SDL_beaudio.cc => haiku/SDL_haikuaudio.cc} (88%) rename src/audio/{baudio/SDL_beaudio.h => haiku/SDL_haikuaudio.h} (100%) rename src/filesystem/{beos => haiku}/SDL_sysfilesystem.cc (95%) rename src/joystick/{beos/SDL_bejoystick.cc => haiku/SDL_haikujoystick.cc} (98%) rename src/loadso/{beos => haiku}/SDL_sysloadso.c (95%) rename src/main/{beos => haiku}/SDL_BApp.h (98%) rename src/main/{beos => haiku}/SDL_BeApp.cc (97%) rename src/main/{beos => haiku}/SDL_BeApp.h (100%) rename src/power/{beos => haiku}/SDL_syspower.c (95%) rename src/timer/{beos => haiku}/SDL_systimer.c (95%) rename src/video/{bwindow => haiku}/SDL_BWin.h (99%) rename src/video/{bwindow => haiku}/SDL_bclipboard.cc (97%) rename src/video/{bwindow => haiku}/SDL_bclipboard.h (100%) rename src/video/{bwindow => haiku}/SDL_bevents.cc (94%) rename src/video/{bwindow => haiku}/SDL_bevents.h (100%) rename src/video/{bwindow => haiku}/SDL_bframebuffer.cc (98%) rename src/video/{bwindow => haiku}/SDL_bframebuffer.h (100%) rename src/video/{bwindow => haiku}/SDL_bkeyboard.cc (99%) rename src/video/{bwindow => haiku}/SDL_bkeyboard.h (100%) rename src/video/{bwindow => haiku}/SDL_bmodes.cc (98%) rename src/video/{bwindow => haiku}/SDL_bmodes.h (100%) rename src/video/{bwindow => haiku}/SDL_bopengl.cc (98%) rename src/video/{bwindow => haiku}/SDL_bopengl.h (100%) rename src/video/{bwindow => haiku}/SDL_bvideo.cc (97%) rename src/video/{bwindow => haiku}/SDL_bvideo.h (96%) rename src/video/{bwindow => haiku}/SDL_bwindow.cc (96%) rename src/video/{bwindow => haiku}/SDL_bwindow.h (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index a66a1ad2432b7..df02d6a75995f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -95,8 +95,10 @@ elseif(APPLE) set(MACOSX TRUE) endif() # TODO: iOS? -elseif(CMAKE_SYSTEM_NAME MATCHES "Haiku.*|BeOS.*") - set(BEOS TRUE) +elseif(CMAKE_SYSTEM_NAME MATCHES "BeOS.*") + message_error("BeOS support has been removed as of SDL 2.0.2.") +elseif(CMAKE_SYSTEM_NAME MATCHES "Haiku.*") + set(HAIKU TRUE) endif() # Don't mistake osx for unix @@ -308,9 +310,9 @@ if(USE_GCC) check_c_compiler_flag(-Wall HAVE_GCC_WALL) if(HAVE_GCC_WALL) - if(CMAKE_SYSTEM_NAME MATCHES "Haiku|BeOS") + if(HAIKU) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-multichar") - endif(CMAKE_SYSTEM_NAME MATCHES "Haiku|BeOS") + endif(HAIKU) endif(HAVE_GCC_WALL) endif(USE_GCC) @@ -991,15 +993,15 @@ elseif(APPLE) endif(SDL_VIDEO) CheckPTHREAD() -elseif(BEOS) +elseif(HAIKU) if(SDL_VIDEO) - set(SDL_VIDEO_DRIVER_BWINDOW 1) - file(GLOB BWINDOW_SOURCES ${SDL2_SOURCE_DIR}/src/video/bwindow/*.c) - set(SOURCE_FILES ${SOURCE_FILES} ${BWINDOW_SOURCES}) + set(SDL_VIDEO_DRIVER_HAIKU 1) + file(GLOB HAIKUVIDEO_SOURCES ${SDL2_SOURCE_DIR}/src/video/haiku/*.c) + set(SOURCE_FILES ${SOURCE_FILES} ${HAIKUVIDEO_SOURCES}) set(HAVE_SDL_VIDEO TRUE) - set(SDL_FILESYSTEM_BEOS 1) - file(GLOB FILESYSTEM_SOURCES ${SDL2_SOURCE_DIR}/src/filesystem/beos/*.cc) + set(SDL_FILESYSTEM_HAIKU 1) + file(GLOB FILESYSTEM_SOURCES ${SDL2_SOURCE_DIR}/src/filesystem/haiku/*.cc) set(SOURCE_FILES ${SOURCE_FILES} ${FILESYSTEM_SOURCES}) set(HAVE_SDL_FILESYSTEM TRUE) diff --git a/cmake/sdlchecks.cmake b/cmake/sdlchecks.cmake index f71ad906ef9d7..b130201d7770e 100644 --- a/cmake/sdlchecks.cmake +++ b/cmake/sdlchecks.cmake @@ -638,7 +638,7 @@ macro(CheckPTHREAD) elseif(HPUX) set(PTHREAD_CFLAGS "-D_REENTRANT") set(PTHREAD_LDFLAGS "-L/usr/lib -pthread") - elseif(BEOS) + elseif(HAIKU) set(PTHREAD_CFLAGS "-D_REENTRANT") set(PTHREAD_LDFLAGS "") else() diff --git a/configure b/configure index a441a3e138629..5fe3622fd4a51 100755 --- a/configure +++ b/configure @@ -15950,7 +15950,7 @@ $as_echo "$have_gcc_mmd_mt" >&6; } fi fi -# Actually this doesn't work on OpenBSD and BeOS +# Actually this doesn't work on OpenBSD #AC_MSG_CHECKING(for linker option --no-undefined) #have_no_undefined=no #save_LDFLAGS="$LDFLAGS" @@ -18598,7 +18598,7 @@ $as_echo "$have_gcc_Wall" >&6; } $as_echo_n "checking for necessary GCC -Wno-multichar option... " >&6; } need_gcc_Wno_multichar=no case "$host" in - *-*-beos* | *-*-haiku*) + *-*-haiku*) need_gcc_Wno_multichar=yes ;; esac @@ -20124,13 +20124,13 @@ $as_echo "#define SDL_VIDEO_DRIVER_X11_XVIDMODE 1" >>confdefs.h fi } -CheckBWINDOW() +CheckHaikuVideo() { if test x$enable_video = xyes; then -$as_echo "#define SDL_VIDEO_DRIVER_BWINDOW 1" >>confdefs.h +$as_echo "#define SDL_VIDEO_DRIVER_HAIKU 1" >>confdefs.h - SOURCES="$SOURCES $srcdir/src/video/bwindow/*.cc" + SOURCES="$SOURCES $srcdir/src/video/haiku/*.cc" have_video=yes fi } @@ -20680,14 +20680,14 @@ $as_echo "#define SDL_VIDEO_RENDER_OGL 1" >>confdefs.h fi } -CheckBeGL() +CheckHaikuGL() { if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then $as_echo "#define SDL_VIDEO_OPENGL 1" >>confdefs.h -$as_echo "#define SDL_VIDEO_OPENGL_BGL 1" >>confdefs.h +$as_echo "#define SDL_VIDEO_OPENGL_HAIKU 1" >>confdefs.h $as_echo "#define SDL_VIDEO_RENDER_OGL 1" >>confdefs.h @@ -22399,66 +22399,72 @@ fi fi ;; + *-*-beos*) + as_fn_error $? " +*** BeOS support has been removed as of SDL 2.0.2. + " "$LINENO" 5 + ;; *-*-haiku*) - ARCH=beos + ARCH=haiku ac_default_prefix=/boot/common CheckDummyVideo CheckDiskAudio CheckDummyAudio - CheckBWINDOW - CheckBeGL + CheckHaikuVideo + CheckHaikuGL CheckPTHREAD + # Set up files for the audio library if test x$enable_audio = xyes; then -$as_echo "#define SDL_AUDIO_DRIVER_BEOSAUDIO 1" >>confdefs.h +$as_echo "#define SDL_AUDIO_DRIVER_HAIKU 1" >>confdefs.h - SOURCES="$SOURCES $srcdir/src/audio/baudio/*.cc" + SOURCES="$SOURCES $srcdir/src/audio/haiku/*.cc" have_audio=yes fi # Set up files for the joystick library if test x$enable_joystick = xyes; then -$as_echo "#define SDL_JOYSTICK_BEOS 1" >>confdefs.h +$as_echo "#define SDL_JOYSTICK_HAIKU 1" >>confdefs.h - SOURCES="$SOURCES $srcdir/src/joystick/beos/*.cc" + SOURCES="$SOURCES $srcdir/src/joystick/haiku/*.cc" have_joystick=yes fi # Set up files for the timer library if test x$enable_timers = xyes; then -$as_echo "#define SDL_TIMER_BEOS 1" >>confdefs.h +$as_echo "#define SDL_TIMER_HAIKU 1" >>confdefs.h - SOURCES="$SOURCES $srcdir/src/timer/beos/*.c" + SOURCES="$SOURCES $srcdir/src/timer/haiku/*.c" have_timers=yes fi # Set up files for the shared object loading library if test x$enable_loadso = xyes; then -$as_echo "#define SDL_LOADSO_BEOS 1" >>confdefs.h +$as_echo "#define SDL_LOADSO_HAIKU 1" >>confdefs.h - SOURCES="$SOURCES $srcdir/src/loadso/beos/*.c" + SOURCES="$SOURCES $srcdir/src/loadso/haiku/*.c" have_loadso=yes fi # Set up files for the system power library if test x$enable_power = xyes; then -$as_echo "#define SDL_POWER_BEOS 1" >>confdefs.h +$as_echo "#define SDL_POWER_HAIKU 1" >>confdefs.h - SOURCES="$SOURCES $srcdir/src/power/beos/*.c" + SOURCES="$SOURCES $srcdir/src/power/haiku/*.c" have_power=yes fi # Set up files for the system filesystem library if test x$enable_filesystem = xyes; then -$as_echo "#define SDL_FILESYSTEM_BEOS 1" >>confdefs.h +$as_echo "#define SDL_FILESYSTEM_HAIKU 1" >>confdefs.h - SOURCES="$SOURCES $srcdir/src/filesystem/beos/*.cc" + SOURCES="$SOURCES $srcdir/src/filesystem/haiku/*.cc" have_filesystem=yes fi # The BeOS platform requires special setup. - SOURCES="$srcdir/src/main/beos/*.cc $SOURCES" + SOURCES="$srcdir/src/main/haiku/*.cc $SOURCES" EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lroot -lbe -lmedia -lgame -ldevice -ltextencoding" ;; arm*-apple-darwin*) diff --git a/configure.in b/configure.in index 87513fe92ed5f..e00f1d6573f82 100644 --- a/configure.in +++ b/configure.in @@ -204,7 +204,7 @@ if test x$enable_dependency_tracking = xyes; then fi fi -# Actually this doesn't work on OpenBSD and BeOS +# Actually this doesn't work on OpenBSD #AC_MSG_CHECKING(for linker option --no-undefined) #have_no_undefined=no #save_LDFLAGS="$LDFLAGS" @@ -1097,7 +1097,7 @@ CheckWarnAll() AC_MSG_CHECKING(for necessary GCC -Wno-multichar option) need_gcc_Wno_multichar=no case "$host" in - *-*-beos* | *-*-haiku*) + *-*-haiku*) need_gcc_Wno_multichar=yes ;; esac @@ -1474,12 +1474,12 @@ AC_HELP_STRING([--enable-video-x11-vm], [use X11 VM extension for fullscreen [[d fi } -dnl Set up the BWindow video driver if enabled -CheckBWINDOW() +dnl Set up the Haiku video driver if enabled +CheckHaikuVideo() { if test x$enable_video = xyes; then - AC_DEFINE(SDL_VIDEO_DRIVER_BWINDOW, 1, [ ]) - SOURCES="$SOURCES $srcdir/src/video/bwindow/*.cc" + AC_DEFINE(SDL_VIDEO_DRIVER_HAIKU, 1, [ ]) + SOURCES="$SOURCES $srcdir/src/video/haiku/*.cc" have_video=yes fi } @@ -1743,12 +1743,12 @@ CheckWINDOWSGL() fi } -dnl Check for BeOS OpenGL -CheckBeGL() +dnl Check for Haiku OpenGL +CheckHaikuGL() { if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then AC_DEFINE(SDL_VIDEO_OPENGL, 1, [ ]) - AC_DEFINE(SDL_VIDEO_OPENGL_BGL, 1, [ ]) + AC_DEFINE(SDL_VIDEO_OPENGL_HAIKU, 1, [ ]) AC_DEFINE(SDL_VIDEO_RENDER_OGL, 1, [ ]) EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lGL" fi @@ -2619,55 +2619,60 @@ AC_HELP_STRING([--enable-render-d3d], [enable the Direct3D render driver [[defau ;; dnl BeOS support removed after SDL 2.0.1. Haiku still works. --ryan. - dnl *-*-beos*) + *-*-beos*) + AC_MSG_ERROR([ +*** BeOS support has been removed as of SDL 2.0.2. + ]) + ;; *-*-haiku*) - ARCH=beos + ARCH=haiku ac_default_prefix=/boot/common CheckDummyVideo CheckDiskAudio CheckDummyAudio - CheckBWINDOW - CheckBeGL + CheckHaikuVideo + CheckHaikuGL CheckPTHREAD + # Set up files for the audio library if test x$enable_audio = xyes; then - AC_DEFINE(SDL_AUDIO_DRIVER_BEOSAUDIO, 1, [ ]) - SOURCES="$SOURCES $srcdir/src/audio/baudio/*.cc" + AC_DEFINE(SDL_AUDIO_DRIVER_HAIKU, 1, [ ]) + SOURCES="$SOURCES $srcdir/src/audio/haiku/*.cc" have_audio=yes fi # Set up files for the joystick library if test x$enable_joystick = xyes; then - AC_DEFINE(SDL_JOYSTICK_BEOS, 1, [ ]) - SOURCES="$SOURCES $srcdir/src/joystick/beos/*.cc" + AC_DEFINE(SDL_JOYSTICK_HAIKU, 1, [ ]) + SOURCES="$SOURCES $srcdir/src/joystick/haiku/*.cc" have_joystick=yes fi # Set up files for the timer library if test x$enable_timers = xyes; then - AC_DEFINE(SDL_TIMER_BEOS, 1, [ ]) - SOURCES="$SOURCES $srcdir/src/timer/beos/*.c" + AC_DEFINE(SDL_TIMER_HAIKU, 1, [ ]) + SOURCES="$SOURCES $srcdir/src/timer/haiku/*.c" have_timers=yes fi # Set up files for the shared object loading library if test x$enable_loadso = xyes; then - AC_DEFINE(SDL_LOADSO_BEOS, 1, [ ]) - SOURCES="$SOURCES $srcdir/src/loadso/beos/*.c" + AC_DEFINE(SDL_LOADSO_HAIKU, 1, [ ]) + SOURCES="$SOURCES $srcdir/src/loadso/haiku/*.c" have_loadso=yes fi # Set up files for the system power library if test x$enable_power = xyes; then - AC_DEFINE(SDL_POWER_BEOS, 1, [ ]) - SOURCES="$SOURCES $srcdir/src/power/beos/*.c" + AC_DEFINE(SDL_POWER_HAIKU, 1, [ ]) + SOURCES="$SOURCES $srcdir/src/power/haiku/*.c" have_power=yes fi # Set up files for the system filesystem library if test x$enable_filesystem = xyes; then - AC_DEFINE(SDL_FILESYSTEM_BEOS, 1, [ ]) - SOURCES="$SOURCES $srcdir/src/filesystem/beos/*.cc" + AC_DEFINE(SDL_FILESYSTEM_HAIKU, 1, [ ]) + SOURCES="$SOURCES $srcdir/src/filesystem/haiku/*.cc" have_filesystem=yes fi - # The BeOS platform requires special setup. - SOURCES="$srcdir/src/main/beos/*.cc $SOURCES" + # The Haiku platform requires special setup. + SOURCES="$srcdir/src/main/haiku/*.cc $SOURCES" EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lroot -lbe -lmedia -lgame -ldevice -ltextencoding" ;; arm*-apple-darwin*) diff --git a/include/SDL_config.h.cmake b/include/SDL_config.h.cmake index 2f1137643e176..c69a5aa450039 100644 --- a/include/SDL_config.h.cmake +++ b/include/SDL_config.h.cmake @@ -191,7 +191,7 @@ #cmakedefine SDL_AUDIO_DRIVER_ARTS_DYNAMIC @SDL_AUDIO_DRIVER_ARTS_DYNAMIC@ #cmakedefine SDL_AUDIO_DRIVER_PULSEAUDIO @SDL_AUDIO_DRIVER_PULSEAUDIO@ #cmakedefine SDL_AUDIO_DRIVER_PULSEAUDIO_DYNAMIC @SDL_AUDIO_DRIVER_PULSEAUDIO_DYNAMIC@ -#cmakedefine SDL_AUDIO_DRIVER_BEOSAUDIO @SDL_AUDIO_DRIVER_BEOSAUDIO@ +#cmakedefine SDL_AUDIO_DRIVER_HAIKU @SDL_AUDIO_DRIVER_HAIKU@ #cmakedefine SDL_AUDIO_DRIVER_BSD @SDL_AUDIO_DRIVER_BSD@ #cmakedefine SDL_AUDIO_DRIVER_COREAUDIO @SDL_AUDIO_DRIVER_COREAUDIO@ #cmakedefine SDL_AUDIO_DRIVER_DISK @SDL_AUDIO_DRIVER_DISK@ @@ -216,7 +216,7 @@ /* Enable various input drivers */ #cmakedefine SDL_INPUT_LINUXEV @SDL_INPUT_LINUXEV@ #cmakedefine SDL_INPUT_TSLIB @SDL_INPUT_TSLIB@ -#cmakedefine SDL_JOYSTICK_BEOS @SDL_JOYSTICK_BEOS@ +#cmakedefine SDL_JOYSTICK_HAIKU @SDL_JOYSTICK_HAIKU@ #cmakedefine SDL_JOYSTICK_DINPUT @SDL_JOYSTICK_DINPUT@ #cmakedefine SDL_JOYSTICK_DUMMY @SDL_JOYSTICK_DUMMY@ #cmakedefine SDL_JOYSTICK_IOKIT @SDL_JOYSTICK_IOKIT@ @@ -230,7 +230,7 @@ #cmakedefine SDL_HAPTIC_DINPUT @SDL_HAPTIC_DINPUT@ /* Enable various shared object loading systems */ -#cmakedefine SDL_LOADSO_BEOS @SDL_LOADSO_BEOS@ +#cmakedefine SDL_LOADSO_HAIKU @SDL_LOADSO_HAIKU@ #cmakedefine SDL_LOADSO_DLOPEN @SDL_LOADSO_DLOPEN@ #cmakedefine SDL_LOADSO_DUMMY @SDL_LOADSO_DUMMY@ #cmakedefine SDL_LOADSO_LDG @SDL_LOADSO_LDG@ @@ -243,14 +243,14 @@ #cmakedefine SDL_THREAD_WINDOWS @SDL_THREAD_WINDOWS@ /* Enable various timer systems */ -#cmakedefine SDL_TIMER_BEOS @SDL_TIMER_BEOS@ +#cmakedefine SDL_TIMER_HAIKU @SDL_TIMER_HAIKU@ #cmakedefine SDL_TIMER_DUMMY @SDL_TIMER_DUMMY@ #cmakedefine SDL_TIMER_UNIX @SDL_TIMER_UNIX@ #cmakedefine SDL_TIMER_WINDOWS @SDL_TIMER_WINDOWS@ #cmakedefine SDL_TIMER_WINCE @SDL_TIMER_WINCE@ /* Enable various video drivers */ -#cmakedefine SDL_VIDEO_DRIVER_BWINDOW @SDL_VIDEO_DRIVER_BWINDOW@ +#cmakedefine SDL_VIDEO_DRIVER_HAIKU @SDL_VIDEO_DRIVER_HAIKU@ #cmakedefine SDL_VIDEO_DRIVER_COCOA @SDL_VIDEO_DRIVER_COCOA@ #cmakedefine SDL_VIDEO_DRIVER_DIRECTFB @SDL_VIDEO_DRIVER_DIRECTFB@ #cmakedefine SDL_VIDEO_DRIVER_DIRECTFB_DYNAMIC @SDL_VIDEO_DRIVER_DIRECTFB_DYNAMIC@ @@ -300,11 +300,11 @@ #cmakedefine SDL_POWER_LINUX @SDL_POWER_LINUX@ #cmakedefine SDL_POWER_WINDOWS @SDL_POWER_WINDOWS@ #cmakedefine SDL_POWER_MACOSX @SDL_POWER_MACOSX@ -#cmakedefine SDL_POWER_BEOS @SDL_POWER_BEOS@ +#cmakedefine SDL_POWER_HAIKU @SDL_POWER_HAIKU@ #cmakedefine SDL_POWER_HARDWIRED @SDL_POWER_HARDWIRED@ /* Enable system filesystem support */ -#cmakedefine SDL_FILESYSTEM_BEOS @SDL_FILESYSTEM_BEOS@ +#cmakedefine SDL_FILESYSTEM_HAIKU @SDL_FILESYSTEM_HAIKU@ #cmakedefine SDL_FILESYSTEM_COCOA @SDL_FILESYSTEM_COCOA@ #cmakedefine SDL_FILESYSTEM_DUMMY @SDL_FILESYSTEM_DUMMY@ #cmakedefine SDL_FILESYSTEM_UNIX @SDL_FILESYSTEM_UNIX@ diff --git a/include/SDL_config.h.in b/include/SDL_config.h.in index 5f41e1bbb8bf6..574d9ae7f2ab5 100644 --- a/include/SDL_config.h.in +++ b/include/SDL_config.h.in @@ -193,7 +193,7 @@ #undef SDL_AUDIO_DRIVER_ARTS_DYNAMIC #undef SDL_AUDIO_DRIVER_PULSEAUDIO #undef SDL_AUDIO_DRIVER_PULSEAUDIO_DYNAMIC -#undef SDL_AUDIO_DRIVER_BEOSAUDIO +#undef SDL_AUDIO_DRIVER_HAIKU #undef SDL_AUDIO_DRIVER_BSD #undef SDL_AUDIO_DRIVER_COREAUDIO #undef SDL_AUDIO_DRIVER_DISK @@ -219,7 +219,7 @@ #undef SDL_INPUT_LINUXEV #undef SDL_INPUT_LINUXKD #undef SDL_INPUT_TSLIB -#undef SDL_JOYSTICK_BEOS +#undef SDL_JOYSTICK_HAIKU #undef SDL_JOYSTICK_DINPUT #undef SDL_JOYSTICK_DUMMY #undef SDL_JOYSTICK_IOKIT @@ -233,7 +233,7 @@ #undef SDL_HAPTIC_DINPUT /* Enable various shared object loading systems */ -#undef SDL_LOADSO_BEOS +#undef SDL_LOADSO_HAIKU #undef SDL_LOADSO_DLOPEN #undef SDL_LOADSO_DUMMY #undef SDL_LOADSO_LDG @@ -246,13 +246,13 @@ #undef SDL_THREAD_WINDOWS /* Enable various timer systems */ -#undef SDL_TIMER_BEOS +#undef SDL_TIMER_HAIKU #undef SDL_TIMER_DUMMY #undef SDL_TIMER_UNIX #undef SDL_TIMER_WINDOWS /* Enable various video drivers */ -#undef SDL_VIDEO_DRIVER_BWINDOW +#undef SDL_VIDEO_DRIVER_HAIKU #undef SDL_VIDEO_DRIVER_COCOA #undef SDL_VIDEO_DRIVER_DIRECTFB #undef SDL_VIDEO_DRIVER_DIRECTFB_DYNAMIC @@ -303,11 +303,11 @@ #undef SDL_POWER_LINUX #undef SDL_POWER_WINDOWS #undef SDL_POWER_MACOSX -#undef SDL_POWER_BEOS +#undef SDL_POWER_HAIKU #undef SDL_POWER_HARDWIRED /* Enable system filesystem support */ -#undef SDL_FILESYSTEM_BEOS +#undef SDL_FILESYSTEM_HAIKU #undef SDL_FILESYSTEM_COCOA #undef SDL_FILESYSTEM_DUMMY #undef SDL_FILESYSTEM_UNIX diff --git a/include/SDL_platform.h b/include/SDL_platform.h index a40c41e265d56..f12592b4eb6ed 100644 --- a/include/SDL_platform.h +++ b/include/SDL_platform.h @@ -32,10 +32,6 @@ #undef __AIX__ #define __AIX__ 1 #endif -#if defined(__BEOS__) -#undef __BEOS__ -#define __BEOS__ 1 -#endif #if defined(__HAIKU__) #undef __HAIKU__ #define __HAIKU__ 1 diff --git a/include/SDL_thread.h b/include/SDL_thread.h index 42df3d6c34748..f1e01c920f4c8 100644 --- a/include/SDL_thread.h +++ b/include/SDL_thread.h @@ -119,7 +119,7 @@ SDL_CreateThread(SDL_ThreadFunction fn, const char *name, void *data, * Create a thread. * * Thread naming is a little complicated: Most systems have very small - * limits for the string length (BeOS has 32 bytes, Linux currently has 16, + * limits for the string length (Haiku has 32 bytes, Linux currently has 16, * Visual C++ 6.0 has nine!), and possibly other arbitrary rules. You'll * have to see what happens with your system's debugger. The name should be * UTF-8 (but using the naming limits of C identifiers is a better bet). diff --git a/src/SDL.c b/src/SDL.c index a59fe2cc1e5e7..7fe5669ac25cd 100644 --- a/src/SDL.c +++ b/src/SDL.c @@ -396,8 +396,6 @@ SDL_GetPlatform() return "AIX"; #elif __ANDROID__ return "Android"; -#elif __BEOS__ - return "BeOS"; #elif __BSDI__ return "BSDI"; #elif __DREAMCAST__ diff --git a/src/audio/SDL_audio.c b/src/audio/SDL_audio.c index d6d835351488b..0f32ec978fcb1 100644 --- a/src/audio/SDL_audio.c +++ b/src/audio/SDL_audio.c @@ -56,7 +56,7 @@ extern AudioBootStrap XAUDIO2_bootstrap; extern AudioBootStrap DSOUND_bootstrap; extern AudioBootStrap WINMM_bootstrap; extern AudioBootStrap PAUDIO_bootstrap; -extern AudioBootStrap BEOSAUDIO_bootstrap; +extern AudioBootStrap HAIKUAUDIO_bootstrap; extern AudioBootStrap COREAUDIO_bootstrap; extern AudioBootStrap SNDMGR_bootstrap; extern AudioBootStrap DISKAUD_bootstrap; @@ -113,8 +113,8 @@ static const AudioBootStrap *const bootstrap[] = { #if SDL_AUDIO_DRIVER_PAUDIO &PAUDIO_bootstrap, #endif -#if SDL_AUDIO_DRIVER_BEOSAUDIO - &BEOSAUDIO_bootstrap, +#if SDL_AUDIO_DRIVER_HAIKU + &HAIKUAUDIO_bootstrap, #endif #if SDL_AUDIO_DRIVER_COREAUDIO &COREAUDIO_bootstrap, diff --git a/src/audio/baudio/SDL_beaudio.cc b/src/audio/haiku/SDL_haikuaudio.cc similarity index 88% rename from src/audio/baudio/SDL_beaudio.cc rename to src/audio/haiku/SDL_haikuaudio.cc index e4a80272625cd..38154e5f73005 100644 --- a/src/audio/baudio/SDL_beaudio.cc +++ b/src/audio/haiku/SDL_haikuaudio.cc @@ -20,14 +20,14 @@ */ #include "SDL_config.h" -#if SDL_AUDIO_DRIVER_BEOSAUDIO +#if SDL_AUDIO_DRIVER_HAIKU -/* Allow access to the audio stream on BeOS */ +/* Allow access to the audio stream on Haiku */ #include #include -#include "../../main/beos/SDL_BeApp.h" +#include "../../main/haiku/SDL_BeApp.h" extern "C" { @@ -35,13 +35,13 @@ extern "C" #include "SDL_audio.h" #include "../SDL_audio_c.h" #include "../SDL_sysaudio.h" -#include "SDL_beaudio.h" +#include "SDL_haikuaudio.h" } /* !!! FIXME: have the callback call the higher level to avoid code dupe. */ -/* The BeOS callback for handling the audio buffer */ +/* The Haiku callback for handling the audio buffer */ static void FillSound(void *device, void *stream, size_t len, const media_raw_audio_format & format) @@ -71,7 +71,7 @@ FillSound(void *device, void *stream, size_t len, } static void -BEOSAUDIO_CloseDevice(_THIS) +HAIKUAUDIO_CloseDevice(_THIS) { if (_this->hidden != NULL) { if (_this->hidden->audio_obj) { @@ -111,7 +111,7 @@ UnmaskSignals(sigset_t * omask) static int -BEOSAUDIO_OpenDevice(_THIS, const char *devname, int iscapture) +HAIKUAUDIO_OpenDevice(_THIS, const char *devname, int iscapture) { int valid_datatype = 0; media_raw_audio_format format; @@ -176,7 +176,7 @@ BEOSAUDIO_OpenDevice(_THIS, const char *devname, int iscapture) } if (!valid_datatype) { /* shouldn't happen, but just in case... */ - BEOSAUDIO_CloseDevice(_this); + HAIKUAUDIO_CloseDevice(_this); return SDL_SetError("Unsupported audio format"); } @@ -195,7 +195,7 @@ BEOSAUDIO_OpenDevice(_THIS, const char *devname, int iscapture) if (_this->hidden->audio_obj->Start() == B_NO_ERROR) { _this->hidden->audio_obj->SetHasData(true); } else { - BEOSAUDIO_CloseDevice(_this); + HAIKUAUDIO_CloseDevice(_this); return SDL_SetError("Unable to start Be audio"); } @@ -204,13 +204,13 @@ BEOSAUDIO_OpenDevice(_THIS, const char *devname, int iscapture) } static void -BEOSAUDIO_Deinitialize(void) +HAIKUAUDIO_Deinitialize(void) { SDL_QuitBeApp(); } static int -BEOSAUDIO_Init(SDL_AudioDriverImpl * impl) +HAIKUAUDIO_Init(SDL_AudioDriverImpl * impl) { /* Initialize the Be Application, if it's not already started */ if (SDL_InitBeApp() < 0) { @@ -218,9 +218,9 @@ BEOSAUDIO_Init(SDL_AudioDriverImpl * impl) } /* Set the function pointers */ - impl->OpenDevice = BEOSAUDIO_OpenDevice; - impl->CloseDevice = BEOSAUDIO_CloseDevice; - impl->Deinitialize = BEOSAUDIO_Deinitialize; + impl->OpenDevice = HAIKUAUDIO_OpenDevice; + impl->CloseDevice = HAIKUAUDIO_CloseDevice; + impl->Deinitialize = HAIKUAUDIO_Deinitialize; impl->ProvidesOwnCallbackThread = 1; impl->OnlyHasDefaultOutputDevice = 1; @@ -229,12 +229,12 @@ BEOSAUDIO_Init(SDL_AudioDriverImpl * impl) extern "C" { - extern AudioBootStrap BEOSAUDIO_bootstrap; + extern AudioBootStrap HAIKUAUDIO_bootstrap; } -AudioBootStrap BEOSAUDIO_bootstrap = { - "baudio", "BeOS BSoundPlayer", BEOSAUDIO_Init, 0 +AudioBootStrap HAIKUAUDIO_bootstrap = { + "haiku", "Haiku BSoundPlayer", HAIKUAUDIO_Init, 0 }; -#endif /* SDL_AUDIO_DRIVER_BEOSAUDIO */ +#endif /* SDL_AUDIO_DRIVER_HAIKU */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/src/audio/baudio/SDL_beaudio.h b/src/audio/haiku/SDL_haikuaudio.h similarity index 100% rename from src/audio/baudio/SDL_beaudio.h rename to src/audio/haiku/SDL_haikuaudio.h diff --git a/src/events/SDL_sysevents.h b/src/events/SDL_sysevents.h index c2f1e097bd76d..11c42862976ae 100644 --- a/src/events/SDL_sysevents.h +++ b/src/events/SDL_sysevents.h @@ -24,8 +24,8 @@ /* Useful functions and variables from SDL_sysevents.c */ -#if defined(__BEOS__) || defined(__HAIKU__) -/* The Be and Haiku event loops run in a separate thread */ +#if defined(__HAIKU__) +/* The Haiku event loops run in a separate thread */ #define MUST_THREAD_EVENTS #endif diff --git a/src/filesystem/beos/SDL_sysfilesystem.cc b/src/filesystem/haiku/SDL_sysfilesystem.cc similarity index 95% rename from src/filesystem/beos/SDL_sysfilesystem.cc rename to src/filesystem/haiku/SDL_sysfilesystem.cc index dc7a970649356..dd75dfe06716a 100644 --- a/src/filesystem/beos/SDL_sysfilesystem.cc +++ b/src/filesystem/haiku/SDL_sysfilesystem.cc @@ -20,7 +20,7 @@ */ #include "SDL_config.h" -#ifdef SDL_FILESYSTEM_BEOS +#ifdef SDL_FILESYSTEM_HAIKU /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* System dependent filesystem routines */ @@ -82,12 +82,12 @@ SDL_GetPrefPath(const char *org, const char *app) SDL_OutOfMemory(); } else { SDL_snprintf(retval, len, "%s%s%s/%s/", home, append, org, app); - create_directory(retval, 0700); // BeOS api: creates missing dirs + create_directory(retval, 0700); // Haiku api: creates missing dirs } return retval; } -#endif /* SDL_FILESYSTEM_BEOS */ +#endif /* SDL_FILESYSTEM_HAIKU */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/src/joystick/beos/SDL_bejoystick.cc b/src/joystick/haiku/SDL_haikujoystick.cc similarity index 98% rename from src/joystick/beos/SDL_bejoystick.cc rename to src/joystick/haiku/SDL_haikujoystick.cc index c32458134493a..b429465bed7a7 100644 --- a/src/joystick/beos/SDL_bejoystick.cc +++ b/src/joystick/haiku/SDL_haikujoystick.cc @@ -20,12 +20,12 @@ */ #include "SDL_config.h" -#ifdef SDL_JOYSTICK_BEOS +#ifdef SDL_JOYSTICK_HAIKU /* This is the system specific header for the SDL joystick API */ -#include -#include +#include +#include extern "C" { @@ -276,5 +276,6 @@ extern "C" }; // extern "C" -#endif /* SDL_JOYSTICK_BEOS */ +#endif /* SDL_JOYSTICK_HAIKU */ + /* vi: set ts=4 sw=4 expandtab: */ diff --git a/src/loadso/beos/SDL_sysloadso.c b/src/loadso/haiku/SDL_sysloadso.c similarity index 95% rename from src/loadso/beos/SDL_sysloadso.c rename to src/loadso/haiku/SDL_sysloadso.c index 524cd715eb39e..0c3608d74ca6c 100644 --- a/src/loadso/beos/SDL_sysloadso.c +++ b/src/loadso/haiku/SDL_sysloadso.c @@ -20,13 +20,13 @@ */ #include "SDL_config.h" -#ifdef SDL_LOADSO_BEOS +#ifdef SDL_LOADSO_HAIKU /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* System dependent library loading routines */ #include -#include +#include #include "SDL_loadso.h" @@ -66,6 +66,6 @@ SDL_UnloadObject(void *handle) } } -#endif /* SDL_LOADSO_BEOS */ +#endif /* SDL_LOADSO_HAIKU */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/src/main/beos/SDL_BApp.h b/src/main/haiku/SDL_BApp.h similarity index 98% rename from src/main/beos/SDL_BApp.h rename to src/main/haiku/SDL_BApp.h index 9b731e3e7ba6a..d2e4993606c9b 100644 --- a/src/main/beos/SDL_BApp.h +++ b/src/main/haiku/SDL_BApp.h @@ -24,7 +24,7 @@ #include #include -#include "../../video/bwindow/SDL_bkeyboard.h" +#include "../../video/haiku/SDL_bkeyboard.h" #ifdef __cplusplus @@ -37,8 +37,8 @@ extern "C" { /* Local includes */ #include "../../events/SDL_events_c.h" -#include "../../video/bwindow/SDL_bkeyboard.h" -#include "../../video/bwindow/SDL_bframebuffer.h" +#include "../../video/haiku/SDL_bkeyboard.h" +#include "../../video/haiku/SDL_bframebuffer.h" #ifdef __cplusplus } diff --git a/src/main/beos/SDL_BeApp.cc b/src/main/haiku/SDL_BeApp.cc similarity index 97% rename from src/main/beos/SDL_BeApp.cc rename to src/main/haiku/SDL_BeApp.cc index fb622ab1ddc11..12f2543005365 100644 --- a/src/main/beos/SDL_BeApp.cc +++ b/src/main/haiku/SDL_BeApp.cc @@ -20,7 +20,7 @@ */ #include "SDL_config.h" -#if defined(__BEOS__) || defined(__HAIKU__) +#if defined(__HAIKU__) /* Handle the BeApp specific portions of the application */ @@ -35,7 +35,7 @@ #include "SDL_timer.h" #include "SDL_error.h" -#include "../../video/bwindow/SDL_BWin.h" +#include "../../video/haiku/SDL_BWin.h" #ifdef __cplusplus extern "C" { @@ -131,6 +131,6 @@ void SDL_BApp::ClearID(SDL_BWin *bwin) { } } -#endif /* __BEOS__ */ +#endif /* __HAIKU__ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/src/main/beos/SDL_BeApp.h b/src/main/haiku/SDL_BeApp.h similarity index 100% rename from src/main/beos/SDL_BeApp.h rename to src/main/haiku/SDL_BeApp.h diff --git a/src/power/SDL_power.c b/src/power/SDL_power.c index b8f3ae40fcef8..2ce336004ee4c 100644 --- a/src/power/SDL_power.c +++ b/src/power/SDL_power.c @@ -33,7 +33,7 @@ SDL_bool SDL_GetPowerInfo_Linux_proc_acpi(SDL_PowerState *, int *, int *); SDL_bool SDL_GetPowerInfo_Linux_proc_apm(SDL_PowerState *, int *, int *); SDL_bool SDL_GetPowerInfo_Windows(SDL_PowerState *, int *, int *); SDL_bool SDL_GetPowerInfo_MacOSX(SDL_PowerState *, int *, int *); -SDL_bool SDL_GetPowerInfo_BeOS(SDL_PowerState *, int *, int *); +SDL_bool SDL_GetPowerInfo_Haiku(SDL_PowerState *, int *, int *); SDL_bool SDL_GetPowerInfo_UIKit(SDL_PowerState *, int *, int *); SDL_bool SDL_GetPowerInfo_Android(SDL_PowerState *, int *, int *); SDL_bool SDL_GetPowerInfo_PSP(SDL_PowerState *, int *, int *); @@ -68,8 +68,8 @@ static SDL_GetPowerInfo_Impl implementations[] = { #ifdef SDL_POWER_MACOSX /* handles Mac OS X, Darwin. */ SDL_GetPowerInfo_MacOSX, #endif -#ifdef SDL_POWER_BEOS /* handles BeOS, Zeta, with euc.jp apm driver. */ - SDL_GetPowerInfo_BeOS, +#ifdef SDL_POWER_HAIKU /* with BeOS euc.jp apm driver. Does this work on Haiku? */ + SDL_GetPowerInfo_Haiku, #endif #ifdef SDL_POWER_ANDROID /* handles Android. */ SDL_GetPowerInfo_Android, diff --git a/src/power/beos/SDL_syspower.c b/src/power/haiku/SDL_syspower.c similarity index 95% rename from src/power/beos/SDL_syspower.c rename to src/power/haiku/SDL_syspower.c index 8f172cc0e82f6..5ed0a223758f2 100644 --- a/src/power/beos/SDL_syspower.c +++ b/src/power/haiku/SDL_syspower.c @@ -20,8 +20,9 @@ */ #include "SDL_config.h" +/* !!! FIXME: does this thing even work on Haiku? */ #ifndef SDL_POWER_DISABLED -#if SDL_POWER_BEOS +#if SDL_POWER_HAIKU #include #include @@ -40,7 +41,7 @@ #include "SDL_power.h" SDL_bool -SDL_GetPowerInfo_BeOS(SDL_PowerState * state, int *seconds, int *percent) +SDL_GetPowerInfo_Haiku(SDL_PowerState * state, int *seconds, int *percent) { const int fd = open("/dev/misc/apm", O_RDONLY); SDL_bool need_details = SDL_FALSE; @@ -119,7 +120,7 @@ SDL_GetPowerInfo_BeOS(SDL_PowerState * state, int *seconds, int *percent) return SDL_TRUE; /* the definitive answer if APM driver replied. */ } -#endif /* SDL_POWER_BEOS */ +#endif /* SDL_POWER_HAIKU */ #endif /* SDL_POWER_DISABLED */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/src/timer/beos/SDL_systimer.c b/src/timer/haiku/SDL_systimer.c similarity index 95% rename from src/timer/beos/SDL_systimer.c rename to src/timer/haiku/SDL_systimer.c index fd22e4412f5b0..591c7113295cd 100644 --- a/src/timer/beos/SDL_systimer.c +++ b/src/timer/haiku/SDL_systimer.c @@ -20,9 +20,9 @@ */ #include "SDL_config.h" -#ifdef SDL_TIMER_BEOS +#ifdef SDL_TIMER_HAIKU -#include +#include #include "SDL_timer.h" @@ -69,6 +69,6 @@ SDL_Delay(Uint32 ms) snooze(ms * 1000); } -#endif /* SDL_TIMER_BEOS */ +#endif /* SDL_TIMER_HAIKU */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/src/video/SDL_sysvideo.h b/src/video/SDL_sysvideo.h index 2d41234aa6181..18cf5f3c48329 100644 --- a/src/video/SDL_sysvideo.h +++ b/src/video/SDL_sysvideo.h @@ -348,8 +348,8 @@ extern VideoBootStrap DirectFB_bootstrap; #if SDL_VIDEO_DRIVER_WINDOWS extern VideoBootStrap WINDOWS_bootstrap; #endif -#if SDL_VIDEO_DRIVER_BWINDOW -extern VideoBootStrap BWINDOW_bootstrap; +#if SDL_VIDEO_DRIVER_HAIKU +extern VideoBootStrap HAIKU_bootstrap; #endif #if SDL_VIDEO_DRIVER_PANDORA extern VideoBootStrap PND_bootstrap; diff --git a/src/video/SDL_video.c b/src/video/SDL_video.c index 3169fdacc78ce..77417297f6cc1 100755 --- a/src/video/SDL_video.c +++ b/src/video/SDL_video.c @@ -65,8 +65,8 @@ static VideoBootStrap *bootstrap[] = { #if SDL_VIDEO_DRIVER_WINDOWS &WINDOWS_bootstrap, #endif -#if SDL_VIDEO_DRIVER_BWINDOW - &BWINDOW_bootstrap, +#if SDL_VIDEO_DRIVER_HAIKU + &HAIKU_bootstrap, #endif #if SDL_VIDEO_DRIVER_PANDORA &PND_bootstrap, diff --git a/src/video/bwindow/SDL_BWin.h b/src/video/haiku/SDL_BWin.h similarity index 99% rename from src/video/bwindow/SDL_BWin.h rename to src/video/haiku/SDL_BWin.h index 6b6a71e41c352..ffb426352987d 100644 --- a/src/video/bwindow/SDL_BWin.h +++ b/src/video/haiku/SDL_BWin.h @@ -43,7 +43,7 @@ extern "C" { #include #endif #include "SDL_events.h" -#include "../../main/beos/SDL_BApp.h" +#include "../../main/haiku/SDL_BApp.h" enum WinCommands { @@ -349,7 +349,7 @@ class SDL_BWin:public BDirectWindow default: /* move it after switch{} so it's always handled - that way we keep BeOS feautures like: + that way we keep Haiku features like: - CTRL+Q to close window (and other shortcuts) - PrintScreen to make screenshot into /boot/home - etc.. */ diff --git a/src/video/bwindow/SDL_bclipboard.cc b/src/video/haiku/SDL_bclipboard.cc similarity index 97% rename from src/video/bwindow/SDL_bclipboard.cc rename to src/video/haiku/SDL_bclipboard.cc index 2ec80c6ba0069..0a68c82cfaeb9 100644 --- a/src/video/bwindow/SDL_bclipboard.cc +++ b/src/video/haiku/SDL_bclipboard.cc @@ -20,7 +20,7 @@ */ #include "SDL_config.h" -#if SDL_VIDEO_DRIVER_BWINDOW +#if SDL_VIDEO_DRIVER_HAIKU /* BWindow based framebuffer implementation */ @@ -92,4 +92,4 @@ SDL_bool BE_HasClipboardText(_THIS) { } #endif -#endif /* SDL_VIDEO_DRIVER_BWINDOW */ +#endif /* SDL_VIDEO_DRIVER_HAIKU */ diff --git a/src/video/bwindow/SDL_bclipboard.h b/src/video/haiku/SDL_bclipboard.h similarity index 100% rename from src/video/bwindow/SDL_bclipboard.h rename to src/video/haiku/SDL_bclipboard.h diff --git a/src/video/bwindow/SDL_bevents.cc b/src/video/haiku/SDL_bevents.cc similarity index 94% rename from src/video/bwindow/SDL_bevents.cc rename to src/video/haiku/SDL_bevents.cc index e01e8b274eb03..bda01ef1a9381 100644 --- a/src/video/bwindow/SDL_bevents.cc +++ b/src/video/haiku/SDL_bevents.cc @@ -20,7 +20,7 @@ */ #include "SDL_config.h" -#if SDL_VIDEO_DRIVER_BWINDOW +#if SDL_VIDEO_DRIVER_HAIKU #include "SDL_bevents.h" @@ -36,4 +36,4 @@ void BE_PumpEvents(_THIS) { } #endif -#endif /* SDL_VIDEO_DRIVER_BWINDOW */ +#endif /* SDL_VIDEO_DRIVER_HAIKU */ diff --git a/src/video/bwindow/SDL_bevents.h b/src/video/haiku/SDL_bevents.h similarity index 100% rename from src/video/bwindow/SDL_bevents.h rename to src/video/haiku/SDL_bevents.h diff --git a/src/video/bwindow/SDL_bframebuffer.cc b/src/video/haiku/SDL_bframebuffer.cc similarity index 98% rename from src/video/bwindow/SDL_bframebuffer.cc rename to src/video/haiku/SDL_bframebuffer.cc index 69f4a43a1d9f5..ef8f51c8323a5 100644 --- a/src/video/bwindow/SDL_bframebuffer.cc +++ b/src/video/haiku/SDL_bframebuffer.cc @@ -20,7 +20,7 @@ */ #include "SDL_config.h" -#if SDL_VIDEO_DRIVER_BWINDOW +#if SDL_VIDEO_DRIVER_HAIKU #include "SDL_bframebuffer.h" @@ -29,7 +29,7 @@ #include "SDL_bmodes.h" #include "SDL_BWin.h" -#include "../../main/beos/SDL_BApp.h" +#include "../../main/haiku/SDL_BApp.h" #ifdef __cplusplus extern "C" { @@ -251,4 +251,4 @@ int32 BE_UpdateOnce(SDL_Window *window) { } #endif -#endif /* SDL_VIDEO_DRIVER_BWINDOW */ +#endif /* SDL_VIDEO_DRIVER_HAIKU */ diff --git a/src/video/bwindow/SDL_bframebuffer.h b/src/video/haiku/SDL_bframebuffer.h similarity index 100% rename from src/video/bwindow/SDL_bframebuffer.h rename to src/video/haiku/SDL_bframebuffer.h diff --git a/src/video/bwindow/SDL_bkeyboard.cc b/src/video/haiku/SDL_bkeyboard.cc similarity index 99% rename from src/video/bwindow/SDL_bkeyboard.cc rename to src/video/haiku/SDL_bkeyboard.cc index 41eb6cad0593e..bbc4d32430576 100644 --- a/src/video/bwindow/SDL_bkeyboard.cc +++ b/src/video/haiku/SDL_bkeyboard.cc @@ -20,7 +20,7 @@ */ #include "SDL_config.h" -#if SDL_VIDEO_DRIVER_BWINDOW +#if SDL_VIDEO_DRIVER_HAIKU #include #include @@ -185,4 +185,4 @@ void BE_SetKeyState(int32 bkey, int8 state) { } #endif -#endif /* SDL_VIDEO_DRIVER_BWINDOW */ +#endif /* SDL_VIDEO_DRIVER_HAIKU */ diff --git a/src/video/bwindow/SDL_bkeyboard.h b/src/video/haiku/SDL_bkeyboard.h similarity index 100% rename from src/video/bwindow/SDL_bkeyboard.h rename to src/video/haiku/SDL_bkeyboard.h diff --git a/src/video/bwindow/SDL_bmodes.cc b/src/video/haiku/SDL_bmodes.cc similarity index 98% rename from src/video/bwindow/SDL_bmodes.cc rename to src/video/haiku/SDL_bmodes.cc index 44e19dc7ea37c..62b17dd22ba50 100644 --- a/src/video/bwindow/SDL_bmodes.cc +++ b/src/video/haiku/SDL_bmodes.cc @@ -20,7 +20,7 @@ */ #include "SDL_config.h" -#if SDL_VIDEO_DRIVER_BWINDOW +#if SDL_VIDEO_DRIVER_HAIKU #include #include @@ -31,7 +31,7 @@ #include "SDL_bopengl.h" #endif -#include "../../main/beos/SDL_BApp.h" +#include "../../main/haiku/SDL_BApp.h" #ifdef __cplusplus extern "C" { @@ -328,4 +328,4 @@ int BE_SetDisplayMode(_THIS, SDL_VideoDisplay *display, SDL_DisplayMode *mode){ } #endif -#endif /* SDL_VIDEO_DRIVER_BWINDOW */ +#endif /* SDL_VIDEO_DRIVER_HAIKU */ diff --git a/src/video/bwindow/SDL_bmodes.h b/src/video/haiku/SDL_bmodes.h similarity index 100% rename from src/video/bwindow/SDL_bmodes.h rename to src/video/haiku/SDL_bmodes.h diff --git a/src/video/bwindow/SDL_bopengl.cc b/src/video/haiku/SDL_bopengl.cc similarity index 98% rename from src/video/bwindow/SDL_bopengl.cc rename to src/video/haiku/SDL_bopengl.cc index 13b90ad97705b..4aacbb1992e9f 100644 --- a/src/video/bwindow/SDL_bopengl.cc +++ b/src/video/haiku/SDL_bopengl.cc @@ -20,7 +20,7 @@ */ #include "SDL_config.h" -#if SDL_VIDEO_DRIVER_BWINDOW +#if SDL_VIDEO_DRIVER_HAIKU #include "SDL_bopengl.h" @@ -28,7 +28,7 @@ #include #include #include "SDL_BWin.h" -#include "../../main/beos/SDL_BApp.h" +#include "../../main/haiku/SDL_BApp.h" #ifdef __cplusplus extern "C" { @@ -216,4 +216,4 @@ void BE_GL_RebootContexts(_THIS) { } #endif -#endif /* SDL_VIDEO_DRIVER_BWINDOW */ +#endif /* SDL_VIDEO_DRIVER_HAIKU */ diff --git a/src/video/bwindow/SDL_bopengl.h b/src/video/haiku/SDL_bopengl.h similarity index 100% rename from src/video/bwindow/SDL_bopengl.h rename to src/video/haiku/SDL_bopengl.h diff --git a/src/video/bwindow/SDL_bvideo.cc b/src/video/haiku/SDL_bvideo.cc similarity index 97% rename from src/video/bwindow/SDL_bvideo.cc rename to src/video/haiku/SDL_bvideo.cc index 19c03eed608ba..d9cc5be9a71fe 100644 --- a/src/video/bwindow/SDL_bvideo.cc +++ b/src/video/haiku/SDL_bvideo.cc @@ -20,7 +20,7 @@ */ #include "SDL_config.h" -#if SDL_VIDEO_DRIVER_BWINDOW +#if SDL_VIDEO_DRIVER_HAIKU #ifdef __cplusplus @@ -119,8 +119,8 @@ BE_CreateDevice(int devindex) return device; } -VideoBootStrap BWINDOW_bootstrap = { - "bwindow", "BDirectWindow graphics", +VideoBootStrap HAIKU_bootstrap = { + "haiku", "Haiku graphics", BE_Available, BE_CreateDevice }; @@ -171,4 +171,4 @@ void BE_VideoQuit(_THIS) } #endif -#endif /* SDL_VIDEO_DRIVER_BWINDOW */ +#endif /* SDL_VIDEO_DRIVER_HAIKU */ diff --git a/src/video/bwindow/SDL_bvideo.h b/src/video/haiku/SDL_bvideo.h similarity index 96% rename from src/video/bwindow/SDL_bvideo.h rename to src/video/haiku/SDL_bvideo.h index e0e8e07de451f..7f0266a73372e 100644 --- a/src/video/bwindow/SDL_bvideo.h +++ b/src/video/haiku/SDL_bvideo.h @@ -26,7 +26,7 @@ extern "C" { #endif -#include "../../main/beos/SDL_BeApp.h" +#include "../../main/haiku/SDL_BeApp.h" #include "../SDL_sysvideo.h" diff --git a/src/video/bwindow/SDL_bwindow.cc b/src/video/haiku/SDL_bwindow.cc similarity index 96% rename from src/video/bwindow/SDL_bwindow.cc rename to src/video/haiku/SDL_bwindow.cc index c898be6ba26b6..f91f08bde83ab 100644 --- a/src/video/bwindow/SDL_bwindow.cc +++ b/src/video/haiku/SDL_bwindow.cc @@ -20,7 +20,7 @@ */ #include "SDL_config.h" -#if SDL_VIDEO_DRIVER_BWINDOW +#if SDL_VIDEO_DRIVER_HAIKU #include "../SDL_sysvideo.h" #include "SDL_BWin.h" @@ -122,7 +122,7 @@ void BE_SetWindowTitle(_THIS, SDL_Window * window) { } void BE_SetWindowIcon(_THIS, SDL_Window * window, SDL_Surface * icon) { - /* FIXME: Icons not supported by BeOs/Haiku */ + /* FIXME: Icons not supported by Haiku */ } void BE_SetWindowPosition(_THIS, SDL_Window * window) { @@ -185,12 +185,12 @@ void BE_SetWindowFullscreen(_THIS, SDL_Window * window, } int BE_SetWindowGammaRamp(_THIS, SDL_Window * window, const Uint16 * ramp) { - /* FIXME: Not BeOs/Haiku supported */ + /* FIXME: Not Haiku supported */ return -1; } int BE_GetWindowGammaRamp(_THIS, SDL_Window * window, Uint16 * ramp) { - /* FIXME: Not BeOs/Haiku supported */ + /* FIXME: Not Haiku supported */ return -1; } @@ -220,4 +220,4 @@ SDL_bool BE_GetWindowWMInfo(_THIS, SDL_Window * window, } #endif -#endif /* SDL_VIDEO_DRIVER_BWINDOW */ +#endif /* SDL_VIDEO_DRIVER_HAIKU */ diff --git a/src/video/bwindow/SDL_bwindow.h b/src/video/haiku/SDL_bwindow.h similarity index 100% rename from src/video/bwindow/SDL_bwindow.h rename to src/video/haiku/SDL_bwindow.h diff --git a/test/configure b/test/configure index 136606c7769da..1ebd9d1609a2b 100755 --- a/test/configure +++ b/test/configure @@ -2902,7 +2902,7 @@ case "$host" in MATHLIB="" SYS_GL_LIBS="-lopengl32" ;; - *-*-beos* | *-*-haiku*) + *-*-haiku*) EXE="" MATHLIB="" SYS_GL_LIBS="-lGL" diff --git a/test/configure.in b/test/configure.in index eb3028747f3ca..6462bfd3d4c45 100644 --- a/test/configure.in +++ b/test/configure.in @@ -15,7 +15,7 @@ AC_C_CONST dnl We only care about this for building testnative at the moment, so these dnl values shouldn't be considered absolute truth. -dnl (BeOS, for example, sets none of these.) +dnl (Haiku, for example, sets none of these.) ISUNIX="false" ISWINDOWS="false" ISMACOSX="false" @@ -28,7 +28,7 @@ case "$host" in MATHLIB="" SYS_GL_LIBS="-lopengl32" ;; - *-*-beos* | *-*-haiku*) + *-*-haiku*) EXE="" MATHLIB="" SYS_GL_LIBS="-lGL" diff --git a/visualtest/configure b/visualtest/configure index 4e9f2902fdccc..4d5c0a4d3b68e 100755 --- a/visualtest/configure +++ b/visualtest/configure @@ -2906,7 +2906,7 @@ case "$host" in EXTRALIB="-lshlwapi" SYS_GL_LIBS="-lopengl32" ;; - *-*-beos* | *-*-haiku*) + *-*-haiku*) EXE="" MATHLIB="" EXTRALIB="" diff --git a/visualtest/configure.in b/visualtest/configure.in index 8815869172611..724a0ee38e0ea 100755 --- a/visualtest/configure.in +++ b/visualtest/configure.in @@ -15,7 +15,7 @@ AC_C_CONST dnl We only care about this for building testnative at the moment, so these dnl values shouldn't be considered absolute truth. -dnl (BeOS, for example, sets none of these.) +dnl (Haiku, for example, sets none of these.) ISUNIX="false" ISWINDOWS="false" ISMACOSX="false" @@ -29,7 +29,7 @@ case "$host" in EXTRALIB="-lshlwapi" SYS_GL_LIBS="-lopengl32" ;; - *-*-beos* | *-*-haiku*) + *-*-haiku*) EXE="" MATHLIB="" EXTRALIB="" From e899f0c4e0bfea5c870b94ee31409097b4682480 Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Thu, 14 Nov 2013 14:42:20 -0500 Subject: [PATCH 090/143] Haiku: fixed uninitialized variable. --- src/video/haiku/SDL_BWin.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/video/haiku/SDL_BWin.h b/src/video/haiku/SDL_BWin.h index ffb426352987d..a0fa3e7264dc3 100644 --- a/src/video/haiku/SDL_BWin.h +++ b/src/video/haiku/SDL_BWin.h @@ -83,6 +83,8 @@ class SDL_BWin:public BDirectWindow _trash_window_buffer = false; _buffer_locker = new BLocker(); _bitmap = NULL; + _clips = NULL; + #ifdef DRAWTHREAD _draw_thread_id = spawn_thread(BE_DrawThread, "drawing_thread", B_NORMAL_PRIORITY, (void*) this); From a4a7c78ce8c3d47a91ab5cd9502119c1201879de Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Thu, 14 Nov 2013 14:45:00 -0500 Subject: [PATCH 091/143] Apparently Haiku is removing /boot/common (thanks, scottmc!). See http://lists.libsdl.org/pipermail/sdl-libsdl.org/2013-November/091877.html --- configure | 4 ++-- configure.in | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/configure b/configure index 5fe3622fd4a51..a849f7c3cc229 100755 --- a/configure +++ b/configure @@ -22407,7 +22407,7 @@ fi *-*-haiku*) ARCH=haiku - ac_default_prefix=/boot/common + ac_default_prefix=/boot/system CheckDummyVideo CheckDiskAudio CheckDummyAudio @@ -22463,7 +22463,7 @@ $as_echo "#define SDL_FILESYSTEM_HAIKU 1" >>confdefs.h SOURCES="$SOURCES $srcdir/src/filesystem/haiku/*.cc" have_filesystem=yes fi - # The BeOS platform requires special setup. + # The Haiku platform requires special setup. SOURCES="$srcdir/src/main/haiku/*.cc $SOURCES" EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lroot -lbe -lmedia -lgame -ldevice -ltextencoding" ;; diff --git a/configure.in b/configure.in index e00f1d6573f82..da62830367b73 100644 --- a/configure.in +++ b/configure.in @@ -2627,7 +2627,7 @@ AC_HELP_STRING([--enable-render-d3d], [enable the Direct3D render driver [[defau *-*-haiku*) ARCH=haiku - ac_default_prefix=/boot/common + ac_default_prefix=/boot/system CheckDummyVideo CheckDiskAudio CheckDummyAudio From 35915d4f99433fa4083b1340d03d1c3b1e972d83 Mon Sep 17 00:00:00 2001 From: Gabriel Jacobo Date: Thu, 14 Nov 2013 20:14:02 -0300 Subject: [PATCH 092/143] Clean up the EGL related video backends (X11, Android, RPi) --- src/video/SDL_egl.c | 7 +------ src/video/android/SDL_androidwindow.c | 4 ++++ src/video/raspberry/SDL_rpivideo.c | 20 ++++++++++++++++---- src/video/x11/SDL_x11opengles.c | 13 +++++++++++++ src/video/x11/SDL_x11opengles.h | 2 +- 5 files changed, 35 insertions(+), 11 deletions(-) diff --git a/src/video/SDL_egl.c b/src/video/SDL_egl.c index 70a1cee50b63e..f9ab8faf5fea5 100644 --- a/src/video/SDL_egl.c +++ b/src/video/SDL_egl.c @@ -209,9 +209,7 @@ SDL_EGL_LoadLibrary(_THIS, const char *egl_path, NativeDisplayType native_displa } /* We need to select a config here to satisfy some video backends such as X11 */ - SDL_EGL_ChooseConfig(_this); - - return 0; + return SDL_EGL_ChooseConfig(_this); } int @@ -399,9 +397,6 @@ SDL_EGL_DeleteContext(_THIS, SDL_GLContext context) _this->egl_data->eglDestroyContext(_this->egl_data->egl_display, egl_context); } - /* FIXME: This "crappy fix" comes from the X11 code, - * it's required so you can create a GLX context, destroy it and create a EGL one */ - SDL_EGL_UnloadLibrary(_this); } EGLSurface * diff --git a/src/video/android/SDL_androidwindow.c b/src/video/android/SDL_androidwindow.c index acc40dbee825d..cdc3a5cd6706b 100644 --- a/src/video/android/SDL_androidwindow.c +++ b/src/video/android/SDL_androidwindow.c @@ -72,6 +72,7 @@ Android_CreateWindow(_THIS, SDL_Window * window) data->egl_surface = SDL_EGL_CreateSurface(_this, (NativeWindowType) data->native_window); if (data->egl_surface == EGL_NO_SURFACE) { + ANativeWindow_release(data->native_window); SDL_free(data); return SDL_SetError("Could not create GLES window surface"); } @@ -102,6 +103,9 @@ Android_DestroyWindow(_THIS, SDL_Window * window) if(window->driverdata) { data = (SDL_WindowData *) window->driverdata; + if (data->egl_surface != EGL_NO_SURFACE) { + SDL_EGL_DestroySurface(_this, data->egl_surface); + } if(data->native_window) { ANativeWindow_release(data->native_window); } diff --git a/src/video/raspberry/SDL_rpivideo.c b/src/video/raspberry/SDL_rpivideo.c index dfad9ba7696cd..bf03b5b8c31ce 100644 --- a/src/video/raspberry/SDL_rpivideo.c +++ b/src/video/raspberry/SDL_rpivideo.c @@ -281,6 +281,22 @@ RPI_CreateWindow(_THIS, SDL_Window * window) return 0; } +void +RPI_DestroyWindow(_THIS, SDL_Window * window) +{ + SDL_WindowData *data; + + if(window->driverdata) { + data = (SDL_WindowData *) window->driverdata; + if (data->egl_surface != EGL_NO_SURFACE) { + SDL_EGL_DestroySurface(_this, data->egl_surface); + data->egl_surface = EGL_NO_SURFACE; + } + SDL_free(window->driverdata); + window->driverdata = NULL; + } +} + int RPI_CreateWindowFrom(_THIS, SDL_Window * window, const void *data) { @@ -331,10 +347,6 @@ void RPI_SetWindowGrab(_THIS, SDL_Window * window, SDL_bool grabbed) { -} -void -RPI_DestroyWindow(_THIS, SDL_Window * window) -{ } /*****************************************************************************/ diff --git a/src/video/x11/SDL_x11opengles.c b/src/video/x11/SDL_x11opengles.c index f972ceeeb6d5c..f5947e4e07e16 100644 --- a/src/video/x11/SDL_x11opengles.c +++ b/src/video/x11/SDL_x11opengles.c @@ -100,6 +100,19 @@ X11_GLES_CreateContext(_THIS, SDL_Window * window) return context; } +void +X11_GLES_DeleteContext(_THIS, SDL_GLContext context) +{ + /* FIXME: This "crappy fix" comes from the previous GLES X11 code, + * it's required so you can create a GLX context, destroy it and create a EGL one + * To be able to fix this, we need to add a function SDL_GL_ResetContext and + * disallow SDL_GL_MakeCurrent from taking a NULL pointer, thus ensuring we can + * determine if it is a GLX or EGL context + */ + SDL_EGL_DeleteContext(_this, context); + X11_GLES_UnloadLibrary(_this); +} + SDL_EGL_SwapWindow_impl(X11) SDL_EGL_MakeCurrent_impl(X11) diff --git a/src/video/x11/SDL_x11opengles.h b/src/video/x11/SDL_x11opengles.h index 978f91f3d4695..9574e1c2bb1c6 100644 --- a/src/video/x11/SDL_x11opengles.h +++ b/src/video/x11/SDL_x11opengles.h @@ -38,13 +38,13 @@ typedef struct SDL_PrivateGLESData #define X11_GLES_UnloadLibrary SDL_EGL_UnloadLibrary #define X11_GLES_SetSwapInterval SDL_EGL_SetSwapInterval #define X11_GLES_GetSwapInterval SDL_EGL_GetSwapInterval -#define X11_GLES_DeleteContext SDL_EGL_DeleteContext extern int X11_GLES_LoadLibrary(_THIS, const char *path); extern XVisualInfo *X11_GLES_GetVisual(_THIS, Display * display, int screen); extern SDL_GLContext X11_GLES_CreateContext(_THIS, SDL_Window * window); extern void X11_GLES_SwapWindow(_THIS, SDL_Window * window); extern int X11_GLES_MakeCurrent(_THIS, SDL_Window * window, SDL_GLContext context); +extern void X11_GLES_DeleteContext(_THIS, SDL_GLContext context); #endif /* SDL_VIDEO_OPENGL_EGL */ From b2f8b351d43c6b5c8f18034fd45961bf484cb520 Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Thu, 14 Nov 2013 20:24:40 -0500 Subject: [PATCH 093/143] Fixed comment typo. --- src/main/haiku/SDL_BeApp.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/haiku/SDL_BeApp.cc b/src/main/haiku/SDL_BeApp.cc index 12f2543005365..e0df2a10095ff 100644 --- a/src/main/haiku/SDL_BeApp.cc +++ b/src/main/haiku/SDL_BeApp.cc @@ -67,7 +67,7 @@ SDL_InitBeApp(void) return SDL_SetError("Couldn't create BApplication thread"); } - /* Change working to directory to that of executable */ + /* Change working directory to that of executable */ app_info info; if (B_OK == be_app->GetAppInfo(&info)) { entry_ref ref = info.ref; From 346ebbb47e219046fb05caeb8bf599eeee35709c Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Thu, 14 Nov 2013 20:24:15 -0500 Subject: [PATCH 094/143] Turning --no-undefined back on, to see what platforms are still broken. --- configure.in | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/configure.in b/configure.in index da62830367b73..c2c42b7ed72c7 100644 --- a/configure.in +++ b/configure.in @@ -204,19 +204,18 @@ if test x$enable_dependency_tracking = xyes; then fi fi -# Actually this doesn't work on OpenBSD -#AC_MSG_CHECKING(for linker option --no-undefined) -#have_no_undefined=no -#save_LDFLAGS="$LDFLAGS" -#LDFLAGS="$LDFLAGS -Wl,--no-undefined" -#AC_TRY_LINK([ -#],[ -#],[ -#have_no_undefined=yes -#EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,--no-undefined" -#]) -#LDFLAGS="$save_LDFLAGS" -#AC_MSG_RESULT($have_no_undefined) +AC_MSG_CHECKING(for linker option --no-undefined) +have_no_undefined=no +save_LDFLAGS="$LDFLAGS" +LDFLAGS="$LDFLAGS -Wl,--no-undefined" +AC_TRY_LINK([ +],[ +],[ +have_no_undefined=yes +EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,--no-undefined" +]) +LDFLAGS="$save_LDFLAGS" +AC_MSG_RESULT($have_no_undefined) dnl See whether we are allowed to use the system C library AC_ARG_ENABLE(libc, From ef97aab9cf7f75f540d40c4568524f1a71ea9653 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Thu, 14 Nov 2013 21:39:54 -0800 Subject: [PATCH 095/143] Backed out changeset 6c59f7c8ec17 - it didn't actually do anything useful --- src/render/direct3d/SDL_render_d3d.c | 36 +++++++++++++--------------- src/render/opengl/SDL_render_gl.c | 30 ++++++++++------------- 2 files changed, 29 insertions(+), 37 deletions(-) diff --git a/src/render/direct3d/SDL_render_d3d.c b/src/render/direct3d/SDL_render_d3d.c index 38fb6d0823c94..a4c6027573b50 100644 --- a/src/render/direct3d/SDL_render_d3d.c +++ b/src/render/direct3d/SDL_render_d3d.c @@ -1635,26 +1635,22 @@ D3D_RenderCopyEx(SDL_Renderer * renderer, SDL_Texture * texture, centerx = center->x; centery = center->y; - if ((flip & SDL_FLIP_VERTICAL) && (flip & SDL_FLIP_HORIZONTAL)) { - miny = dstrect->h - centery; - maxy = -centery; - minx = dstrect->w - centerx; - maxx = -centerx; - } else if (flip & SDL_FLIP_HORIZONTAL) { - miny = -centery; - maxy = dstrect->h - centery; - minx = dstrect->w - centerx; - maxx = -centerx; - } else if (flip & SDL_FLIP_VERTICAL) { - miny = dstrect->h - centery; - maxy = -centery; - minx = -centerx; - maxx = dstrect->w - centerx; - } else { - miny = -centery; - maxy = dstrect->h - centery; - minx = -centerx; - maxx = dstrect->w - centerx; + if (flip & SDL_FLIP_HORIZONTAL) { + minx = dstrect->w - centerx - 0.5f; + maxx = -centerx - 0.5f; + } + else { + minx = -centerx - 0.5f; + maxx = dstrect->w - centerx - 0.5f; + } + + if (flip & SDL_FLIP_VERTICAL) { + miny = dstrect->h - centery - 0.5f; + maxy = -centery - 0.5f; + } + else { + miny = -centery - 0.5f; + maxy = dstrect->h - centery - 0.5f; } minu = (float) srcrect->x / texture->w; diff --git a/src/render/opengl/SDL_render_gl.c b/src/render/opengl/SDL_render_gl.c index bb789c13807ba..94914ead18f22 100644 --- a/src/render/opengl/SDL_render_gl.c +++ b/src/render/opengl/SDL_render_gl.c @@ -1250,26 +1250,22 @@ GL_RenderCopyEx(SDL_Renderer * renderer, SDL_Texture * texture, centerx = center->x; centery = center->y; - if ((flip & SDL_FLIP_VERTICAL) && (flip & SDL_FLIP_HORIZONTAL)) { - miny = dstrect->h - centery; - maxy = -centery; - minx = dstrect->w - centerx; - maxx = -centerx; - } else if (flip & SDL_FLIP_HORIZONTAL) { - miny = -centery; - maxy = dstrect->h - centery; - minx = dstrect->w - centerx; + if (flip & SDL_FLIP_HORIZONTAL) { + minx = dstrect->w - centerx; maxx = -centerx; - } else if (flip & SDL_FLIP_VERTICAL) { - miny = dstrect->h - centery; - maxy = -centery; + } + else { minx = -centerx; - maxx = dstrect->w - centerx; - } else { + maxx = dstrect->w - centerx; + } + + if (flip & SDL_FLIP_VERTICAL) { + miny = dstrect->h - centery; + maxy = -centery; + } + else { miny = -centery; - maxy = dstrect->h - centery; - minx = -centerx; - maxx = dstrect->w - centerx; + maxy = dstrect->h - centery; } minu = (GLfloat) srcrect->x / texture->w; From 4295a92f97ffaa03ee8f3b68bd0a66e06fb2ef80 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Thu, 14 Nov 2013 22:26:49 -0800 Subject: [PATCH 096/143] Fixed bug 2240 - On OS/X after calling SDL_SetWindowBordered right mouse clicks no longer register philhassey On OS/X after calling SDL_SetWindowBordered right mouse clicks no longer register. Steps to Reproduce: 1. Open a windowed window on OS/X. (With the border on.) 2. e.button.button will give values 1,2,3 depending on which mouse button I click. 3. Call SDL_SetWindowBordered to disable the border. 4. e.button.button will only give values 1,2. 3 (right mouse button) stops coming through. Expected result: I expect all mouse buttons to register. --- src/video/cocoa/SDL_cocoawindow.m | 35 ++++++++++++++++++++++++------- 1 file changed, 28 insertions(+), 7 deletions(-) diff --git a/src/video/cocoa/SDL_cocoawindow.m b/src/video/cocoa/SDL_cocoawindow.m index 6899885d9ed06..2578d9f3c8b01 100644 --- a/src/video/cocoa/SDL_cocoawindow.m +++ b/src/video/cocoa/SDL_cocoawindow.m @@ -88,6 +88,31 @@ static void ConvertNSRect(NSRect *r) return style; } +static SDL_bool +SetWindowStyle(SDL_Window * window, unsigned int style) +{ + SDL_WindowData *data = (SDL_WindowData *) window->driverdata; + NSWindow *nswindow = data->nswindow; + + if (![nswindow respondsToSelector: @selector(setStyleMask:)]) { + return SDL_FALSE; + } + + /* The view responder chain gets messed with during setStyleMask */ + if ([[nswindow contentView] nextResponder] == data->listener) { + [[nswindow contentView] setNextResponder:nil]; + } + + [nswindow performSelector: @selector(setStyleMask:) withObject: (id)(uintptr_t)style]; + + /* The view responder chain gets messed with during setStyleMask */ + if ([[nswindow contentView] nextResponder] != data->listener) { + [[nswindow contentView] setNextResponder:data->listener]; + } + + return SDL_TRUE; +} + @implementation Cocoa_WindowListener @@ -422,10 +447,9 @@ - (void)windowDidResignKey:(NSNotification *)aNotification - (void)windowWillEnterFullScreen:(NSNotification *)aNotification { SDL_Window *window = _data->window; - NSWindow *nswindow = _data->nswindow; window->flags |= SDL_WINDOW_FULLSCREEN_DESKTOP; - [nswindow setStyleMask:(NSTitledWindowMask|NSClosableWindowMask|NSMiniaturizableWindowMask|NSResizableWindowMask)]; + SetWindowStyle(window, (NSTitledWindowMask|NSClosableWindowMask|NSMiniaturizableWindowMask|NSResizableWindowMask)); isFullscreenSpace = YES; inFullscreenTransition = YES; @@ -454,10 +478,9 @@ - (void)windowDidEnterFullScreen:(NSNotification *)aNotification - (void)windowWillExitFullScreen:(NSNotification *)aNotification { SDL_Window *window = _data->window; - NSWindow *nswindow = _data->nswindow; window->flags &= ~SDL_WINDOW_FULLSCREEN_DESKTOP; - [nswindow setStyleMask:GetWindowStyle(window)]; + SetWindowStyle(window, GetWindowStyle(window)); isFullscreenSpace = NO; inFullscreenTransition = YES; @@ -1173,9 +1196,7 @@ - (void)resetCursorRects Cocoa_SetWindowBordered(_THIS, SDL_Window * window, SDL_bool bordered) { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - NSWindow *nswindow = ((SDL_WindowData *) window->driverdata)->nswindow; - if ([nswindow respondsToSelector:@selector(setStyleMask:)]) { - [nswindow setStyleMask:GetWindowStyle(window)]; + if (SetWindowStyle(window, GetWindowStyle(window))) { if (bordered) { Cocoa_SetWindowTitle(_this, window); /* this got blanked out. */ } From 4f39f0115b4700829b1fe2f49e70f3c8b29d114b Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Fri, 15 Nov 2013 23:20:50 -0500 Subject: [PATCH 097/143] Fix viewport being upside down in OpenGL renderer. Fixes Bugzilla #2207. --- src/render/opengl/SDL_render_gl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/render/opengl/SDL_render_gl.c b/src/render/opengl/SDL_render_gl.c index 94914ead18f22..a25c7f9f02aa6 100644 --- a/src/render/opengl/SDL_render_gl.c +++ b/src/render/opengl/SDL_render_gl.c @@ -925,7 +925,7 @@ GL_UpdateViewport(SDL_Renderer * renderer) data->glMatrixMode(GL_PROJECTION); data->glLoadIdentity(); if (renderer->viewport.w && renderer->viewport.h) { - if (renderer->target) { + if (!renderer->target) { data->glOrtho((GLdouble) 0, (GLdouble) renderer->viewport.w, (GLdouble) 0, From 30f7e868820fb7e08cbb41bbac3c2832ebf05bb1 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Fri, 15 Nov 2013 22:01:58 -0800 Subject: [PATCH 098/143] Added space in the common state structure for render targets --- include/SDL_test_common.h | 1 + src/test/SDL_test_common.c | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/include/SDL_test_common.h b/include/SDL_test_common.h index 57f31146e53d3..5f67aa650cc7a 100644 --- a/include/SDL_test_common.h +++ b/include/SDL_test_common.h @@ -82,6 +82,7 @@ typedef struct Uint32 render_flags; SDL_bool skip_renderer; SDL_Renderer **renderers; + SDL_Texture **targets; /* Audio info */ const char *audiodriver; diff --git a/src/test/SDL_test_common.c b/src/test/SDL_test_common.c index f06c49ea5708f..e23b5bbca1be3 100644 --- a/src/test/SDL_test_common.c +++ b/src/test/SDL_test_common.c @@ -809,6 +809,9 @@ SDLTest_CommonInit(SDLTest_CommonState * state) state->renderers = (SDL_Renderer **) SDL_malloc(state->num_windows * sizeof(*state->renderers)); + state->targets = + (SDL_Texture **) SDL_malloc(state->num_windows * + sizeof(*state->targets)); if (!state->windows || !state->renderers) { fprintf(stderr, "Out of memory!\n"); return SDL_FALSE; @@ -861,6 +864,7 @@ SDLTest_CommonInit(SDLTest_CommonState * state) SDL_ShowWindow(state->windows[i]); state->renderers[i] = NULL; + state->targets[i] = NULL; if (!state->skip_renderer && (state->renderdriver From 44959a21efba81f11c7887ff8f6663928e22cdb9 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Fri, 15 Nov 2013 22:05:26 -0800 Subject: [PATCH 099/143] Added viewport test, contributed by Andreas Schiffler and improved by me and Ryan Gordon. If it works correctly you should see a square moving from the upper left to the lower right, with a little yellow box at the top of the moving square. You can pass --target as a command line option to have it use a render target instead of rendering directly to the screen. The output should be identical in this case. --- test/Makefile.in | 4 + test/testviewport.c | 184 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 188 insertions(+) create mode 100644 test/testviewport.c diff --git a/test/Makefile.in b/test/Makefile.in index f57c460298f10..36b00e4860b8a 100644 --- a/test/Makefile.in +++ b/test/Makefile.in @@ -49,6 +49,7 @@ TARGETS = \ teststreaming$(EXE) \ testtimer$(EXE) \ testver$(EXE) \ + testviewport$(EXE) \ testwm2$(EXE) \ torturethread$(EXE) \ testrendercopyex$(EXE) \ @@ -218,6 +219,9 @@ testtimer$(EXE): $(srcdir)/testtimer.c testver$(EXE): $(srcdir)/testver.c $(CC) -o $@ $^ $(CFLAGS) $(LIBS) +testviewport$(EXE): $(srcdir)/testviewport.c + $(CC) -o $@ $^ $(CFLAGS) $(LIBS) + testwm2$(EXE): $(srcdir)/testwm2.c $(CC) -o $@ $^ $(CFLAGS) $(LIBS) diff --git a/test/testviewport.c b/test/testviewport.c new file mode 100644 index 0000000000000..022d9880d9796 --- /dev/null +++ b/test/testviewport.c @@ -0,0 +1,184 @@ +/* + Copyright (C) 1997-2013 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely. +*/ +/* Simple program: Check viewports */ + +#include +#include +#include + +#include "SDL_test.h" +#include "SDL_test_common.h" + + +static SDLTest_CommonState *state; + +/* Call this instead of exit(), so we can clean up SDL: atexit() is evil. */ +static void +quit(int rc) +{ + SDLTest_CommonQuit(state); + exit(rc); +} + +void +DrawOnViewport(SDL_Renderer * renderer, SDL_Rect viewport) +{ + SDL_Rect rect; + + /* Set the viewport */ + SDL_RenderSetViewport(renderer, &viewport); + + /* Draw a gray background */ + SDL_SetRenderDrawColor(renderer, 0x80, 0x80, 0x80, 0xFF); + SDL_RenderClear(renderer); + + /* Test inside points */ + SDL_SetRenderDrawColor(renderer, 0xFF, 0xFF, 0xF, 0xFF); + SDL_RenderDrawPoint(renderer, viewport.h/2 + 10, viewport.w/2); + SDL_RenderDrawPoint(renderer, viewport.h/2 - 10, viewport.w/2); + SDL_RenderDrawPoint(renderer, viewport.h/2 , viewport.w/2 - 10); + SDL_RenderDrawPoint(renderer, viewport.h/2 , viewport.w/2 + 10); + + /* Test horizontal and vertical lines */ + SDL_SetRenderDrawColor(renderer, 0x00, 0xFF, 0x00, 0xFF); + SDL_RenderDrawLine(renderer, 1, 0, viewport.w-2, 0); + SDL_RenderDrawLine(renderer, 1, viewport.h-1, viewport.w-2, viewport.h-1); + SDL_RenderDrawLine(renderer, 0, 1, 0, viewport.h-2); + SDL_RenderDrawLine(renderer, viewport.w-1, 1, viewport.w-1, viewport.h-2); + + /* Test diagonal lines */ + SDL_SetRenderDrawColor(renderer, 0x00, 0x00, 0xFF, 0xFF); + SDL_RenderDrawLine(renderer, 0, 0, + viewport.w-1, viewport.h-1); + SDL_RenderDrawLine(renderer, viewport.w-1, 0, + 0, viewport.h-1); + + /* Test outside points */ + SDL_SetRenderDrawColor(renderer, 0xFF, 0xFF, 0xF, 0xFF); + SDL_RenderDrawPoint(renderer, viewport.h/2 + viewport.h, viewport.w/2); + SDL_RenderDrawPoint(renderer, viewport.h/2 - viewport.h, viewport.w/2); + SDL_RenderDrawPoint(renderer, viewport.h/2 , viewport.w/2 - viewport.w); + SDL_RenderDrawPoint(renderer, viewport.h/2 , viewport.w/2 + viewport.w); + + /* Add a box at the top */ + rect.w = 8; + rect.h = 8; + rect.x = (viewport.w - rect.w) / 2; + rect.y = 0; + SDL_RenderFillRect(renderer, &rect); +} + +int +main(int argc, char *argv[]) +{ + int i, j, done; + SDL_Event event; + Uint32 then, now, frames; + SDL_Rect viewport; + SDL_bool use_target = SDL_FALSE; + + /* Initialize test framework */ + state = SDLTest_CommonCreateState(argv, SDL_INIT_VIDEO); + if (!state) { + return 1; + } + + for (i = 1; i < argc;) { + int consumed; + + consumed = SDLTest_CommonArg(state, i); + if (consumed == 0) { + consumed = -1; + if (SDL_strcasecmp(argv[i], "--target") == 0) { + use_target = SDL_TRUE; + consumed = 1; + } + } + if (consumed < 0) { + SDL_Log("Usage: %s %s [--target]\n", + argv[0], SDLTest_CommonUsage(state)); + quit(1); + } + i += consumed; + } + if (!SDLTest_CommonInit(state)) { + quit(2); + } + + if (use_target) { + int w, h; + + for (i = 0; i < state->num_windows; ++i) { + SDL_GetWindowSize(state->windows[i], &w, &h); + state->targets[i] = SDL_CreateTexture(state->renderers[i], SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_TARGET, w, h); + SDL_SetRenderTarget(state->renderers[i], state->targets[i]); + } + } + + for (i = 0; i < state->num_windows; ++i) { + SDL_Renderer *renderer = state->renderers[i]; + SDL_SetRenderDrawColor(renderer, 0xA0, 0xA0, 0xA0, 0xFF); + SDL_RenderClear(renderer); + } + + /* Main render loop */ + frames = 0; + then = SDL_GetTicks(); + done = 0; + j = 0; + while (!done) { + /* Check for events */ + ++frames; + while (SDL_PollEvent(&event)) { + SDLTest_CommonEvent(state, &event, &done); + } + + /* Move a viewport box in steps around the screen */ + viewport.x = j * 100; + viewport.y = viewport.x; + viewport.w = 100 + j * 50; + viewport.h = 100 + j * 50; + j = (j + 1) % 4; + SDL_Log("Current Viewport x=%i y=%i w=%i h=%i", viewport.x, viewport.y, viewport.w, viewport.h); + + for (i = 0; i < state->num_windows; ++i) { + if (state->windows[i] == NULL) + continue; + + /* Draw using viewport */ + DrawOnViewport(state->renderers[i], viewport); + + /* Update the screen! */ + if (use_target) { + SDL_SetRenderTarget(state->renderers[i], NULL); + SDL_RenderCopy(state->renderers[i], state->targets[i], NULL, NULL); + SDL_RenderPresent(state->renderers[i]); + SDL_SetRenderTarget(state->renderers[i], state->targets[i]); + } else { + SDL_RenderPresent(state->renderers[i]); + } + } + + SDL_Delay(1000); + } + + /* Print out some timing information */ + now = SDL_GetTicks(); + if (now > then) { + double fps = ((double) frames * 1000) / (now - then); + SDL_Log("%2.2f frames per second\n", fps); + } + quit(0); + return 0; +} + +/* vi: set ts=4 sw=4 expandtab: */ From 8093cfd8ce93ad873d0c546e575caa976b7a6992 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Fri, 15 Nov 2013 22:07:35 -0800 Subject: [PATCH 100/143] Better fix for bug 2207 - SDL_RenderSetViewport behavior is different/incorrect on OpenGL renderer vs DirectX renderer At least, it works better here on my Mac. :) --- src/render/opengl/SDL_render_gl.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/render/opengl/SDL_render_gl.c b/src/render/opengl/SDL_render_gl.c index a25c7f9f02aa6..77b688d638624 100644 --- a/src/render/opengl/SDL_render_gl.c +++ b/src/render/opengl/SDL_render_gl.c @@ -919,13 +919,21 @@ GL_UpdateViewport(SDL_Renderer * renderer) return 0; } - data->glViewport(renderer->viewport.x, renderer->viewport.y, - renderer->viewport.w, renderer->viewport.h); + if (renderer->target) { + data->glViewport(renderer->viewport.x, renderer->viewport.y, + renderer->viewport.w, renderer->viewport.h); + } else { + int w, h; + + SDL_GetRendererOutputSize(renderer, &w, &h); + data->glViewport(renderer->viewport.x, (h - renderer->viewport.y - renderer->viewport.h), + renderer->viewport.w, renderer->viewport.h); + } data->glMatrixMode(GL_PROJECTION); data->glLoadIdentity(); if (renderer->viewport.w && renderer->viewport.h) { - if (!renderer->target) { + if (renderer->target) { data->glOrtho((GLdouble) 0, (GLdouble) renderer->viewport.w, (GLdouble) 0, From 104ceb864aa2dba24f8e0ece493611c95462b4f6 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sat, 16 Nov 2013 10:25:46 -0800 Subject: [PATCH 101/143] Fixed compile warning, thanks to Michael Pohoreski --- test/testshader.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/testshader.c b/test/testshader.c index 04467709e04fe..ced43fd9680ea 100644 --- a/test/testshader.c +++ b/test/testshader.c @@ -187,7 +187,7 @@ static SDL_bool CompileShaderProgram(ShaderData *data) } glUseProgramObjectARB(0); - return (glGetError() == GL_NO_ERROR); + return (glGetError() == GL_NO_ERROR) ? SDL_TRUE : SDL_FALSE; } static void DestroyShaderProgram(ShaderData *data) From 517747d53670605b9a7bb8ab08e571b821443791 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sat, 16 Nov 2013 10:27:46 -0800 Subject: [PATCH 102/143] Added information on reporting bugs to the README.txt file --- README.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.txt b/README.txt index 681f4a33cf446..735637b948d92 100644 --- a/README.txt +++ b/README.txt @@ -33,6 +33,10 @@ If you need help with the library, or just want to discuss SDL related issues, you can join the developers mailing list: http://www.libsdl.org/mailing-list.php +If you want to report bugs or contribute patches, please submit them to +bugzilla: + http://bugzilla.libsdl.org/ + Enjoy! Sam Lantinga (slouken@libsdl.org) From 3b52058f6c62b6ab9a1f9c180bc2bec07701971b Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sat, 16 Nov 2013 11:54:16 -0800 Subject: [PATCH 103/143] Fixed bug 2241 - SSE intrinsic in fillrect MMX path norfanin The MMX path in SDL_fillrect.c uses the SSE intrinsic _mm_stream_pi. The function or symbol provided by the compiler will not be present because the SSE header may not get included. The linker will complain about an undefined reference. Since this is the only intrinsic used here (and someone forgot to create one for MOVQ), I think the MMX path can be removed completely. At least I don't see another way to move 64-bits from an MMX register to memory. --- src/video/SDL_fillrect.c | 117 --------------------------------------- 1 file changed, 117 deletions(-) diff --git a/src/video/SDL_fillrect.c b/src/video/SDL_fillrect.c index d891e4e9d0531..51f33147ad44e 100644 --- a/src/video/SDL_fillrect.c +++ b/src/video/SDL_fillrect.c @@ -132,105 +132,6 @@ DEFINE_SSE_FILLRECT(4, Uint32) /* *INDENT-ON* */ #endif /* __SSE__ */ -#ifdef __MMX__ -/* *INDENT-OFF* */ - -#define MMX_BEGIN \ - __m64 c64 = _mm_set_pi32(color, color) - -#define MMX_WORK \ - for (i = n / 64; i--;) { \ - _mm_stream_pi((__m64 *)(p+0), c64); \ - _mm_stream_pi((__m64 *)(p+8), c64); \ - _mm_stream_pi((__m64 *)(p+16), c64); \ - _mm_stream_pi((__m64 *)(p+24), c64); \ - _mm_stream_pi((__m64 *)(p+32), c64); \ - _mm_stream_pi((__m64 *)(p+40), c64); \ - _mm_stream_pi((__m64 *)(p+48), c64); \ - _mm_stream_pi((__m64 *)(p+56), c64); \ - p += 64; \ - } - -#define MMX_END \ - _mm_empty() - -#define DEFINE_MMX_FILLRECT(bpp, type) \ -static void \ -SDL_FillRect##bpp##MMX(Uint8 *pixels, int pitch, Uint32 color, int w, int h) \ -{ \ - int i, n; \ - Uint8 *p = NULL; \ - \ - MMX_BEGIN; \ - \ - while (h--) { \ - n = w * bpp; \ - p = pixels; \ - \ - if (n > 63) { \ - int adjust = 8 - ((uintptr_t)p & 7); \ - if (adjust < 8) { \ - n -= adjust; \ - adjust /= bpp; \ - while (adjust--) { \ - *((type *)p) = (type)color; \ - p += bpp; \ - } \ - } \ - MMX_WORK; \ - } \ - if (n & 63) { \ - int remainder = (n & 63); \ - remainder /= bpp; \ - while (remainder--) { \ - *((type *)p) = (type)color; \ - p += bpp; \ - } \ - } \ - pixels += pitch; \ - } \ - \ - MMX_END; \ -} - -static void -SDL_FillRect1MMX(Uint8 *pixels, int pitch, Uint32 color, int w, int h) -{ - int i, n; - Uint8 *p = NULL; - - MMX_BEGIN; - - while (h--) { - n = w; - p = pixels; - - if (n > 63) { - int adjust = 8 - ((uintptr_t)p & 7); - if (adjust) { - n -= adjust; - SDL_memset(p, color, adjust); - p += adjust; - } - MMX_WORK; - } - if (n & 63) { - int remainder = (n & 63); - SDL_memset(p, color, remainder); - p += remainder; - } - pixels += pitch; - } - - MMX_END; -} -/* DEFINE_MMX_FILLRECT(1, Uint8) */ -DEFINE_MMX_FILLRECT(2, Uint16) -DEFINE_MMX_FILLRECT(4, Uint32) - -/* *INDENT-ON* */ -#endif /* __MMX__ */ - static void SDL_FillRect1(Uint8 * pixels, int pitch, Uint32 color, int w, int h) { @@ -372,12 +273,6 @@ SDL_FillRect(SDL_Surface * dst, const SDL_Rect * rect, Uint32 color) SDL_FillRect1SSE(pixels, dst->pitch, color, rect->w, rect->h); break; } -#endif -#ifdef __MMX__ - if (SDL_HasMMX()) { - SDL_FillRect1MMX(pixels, dst->pitch, color, rect->w, rect->h); - break; - } #endif SDL_FillRect1(pixels, dst->pitch, color, rect->w, rect->h); break; @@ -391,12 +286,6 @@ SDL_FillRect(SDL_Surface * dst, const SDL_Rect * rect, Uint32 color) SDL_FillRect2SSE(pixels, dst->pitch, color, rect->w, rect->h); break; } -#endif -#ifdef __MMX__ - if (SDL_HasMMX()) { - SDL_FillRect2MMX(pixels, dst->pitch, color, rect->w, rect->h); - break; - } #endif SDL_FillRect2(pixels, dst->pitch, color, rect->w, rect->h); break; @@ -416,12 +305,6 @@ SDL_FillRect(SDL_Surface * dst, const SDL_Rect * rect, Uint32 color) SDL_FillRect4SSE(pixels, dst->pitch, color, rect->w, rect->h); break; } -#endif -#ifdef __MMX__ - if (SDL_HasMMX()) { - SDL_FillRect4MMX(pixels, dst->pitch, color, rect->w, rect->h); - break; - } #endif SDL_FillRect4(pixels, dst->pitch, color, rect->w, rect->h); break; From 744cd465e178462467ca9cbb77dff7b51ded837c Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sat, 16 Nov 2013 11:58:21 -0800 Subject: [PATCH 104/143] Fixed bug 2238 - Enable GCC atomics for clang Marcus von Appen clang provides support for optimized atomics. The attached patch enables the cmake build system to take clang into account on checking for atomics. --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index df02d6a75995f..edb9f7698c10c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -266,7 +266,7 @@ endif(ASSERTIONS STREQUAL "auto") set(HAVE_ASSERTIONS ${ASSERTIONS}) # Compiler option evaluation -if(USE_GCC) +if(USE_GCC OR USE_CLANG) if(DEPENDENCY_TRACKING) check_c_source_compiles(" #if !defined(__GNUC__) || __GNUC__ < 3 @@ -314,7 +314,7 @@ if(USE_GCC) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-multichar") endif(HAIKU) endif(HAVE_GCC_WALL) -endif(USE_GCC) +endif(USE_GCC OR USE_CLANG) if(ASSEMBLY) if(USE_GCC OR USE_CLANG) From 4e1ee55739bf90f7d63d08a049b31ca28f5e183d Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sat, 16 Nov 2013 12:02:09 -0800 Subject: [PATCH 105/143] Fixed bug 2231 - Move src/input/evdev into src/core/linux Ryan C. Gordon To keep the directory layout sane, we should probably move this one piece of source to the linux catch-all directory, instead of making it look like this is part of an SDL "input" subsystem. --- src/{input/evdev => core/linux}/SDL_evdev.c | 0 src/{input/evdev => core/linux}/SDL_evdev.h | 0 src/video/raspberry/SDL_rpievents.c | 2 +- src/video/raspberry/SDL_rpivideo.c | 2 +- 4 files changed, 2 insertions(+), 2 deletions(-) rename src/{input/evdev => core/linux}/SDL_evdev.c (100%) rename src/{input/evdev => core/linux}/SDL_evdev.h (100%) diff --git a/src/input/evdev/SDL_evdev.c b/src/core/linux/SDL_evdev.c similarity index 100% rename from src/input/evdev/SDL_evdev.c rename to src/core/linux/SDL_evdev.c diff --git a/src/input/evdev/SDL_evdev.h b/src/core/linux/SDL_evdev.h similarity index 100% rename from src/input/evdev/SDL_evdev.h rename to src/core/linux/SDL_evdev.h diff --git a/src/video/raspberry/SDL_rpievents.c b/src/video/raspberry/SDL_rpievents.c index 8c420fe710afc..8f6cc54537e80 100644 --- a/src/video/raspberry/SDL_rpievents.c +++ b/src/video/raspberry/SDL_rpievents.c @@ -30,7 +30,7 @@ #include "SDL_rpievents_c.h" #ifdef SDL_INPUT_LINUXEV -#include "../../input/evdev/SDL_evdev.h" +#include "../../core/linux/SDL_evdev.h" #endif void RPI_PumpEvents(_THIS) diff --git a/src/video/raspberry/SDL_rpivideo.c b/src/video/raspberry/SDL_rpivideo.c index bf03b5b8c31ce..8d9994dd36f65 100644 --- a/src/video/raspberry/SDL_rpivideo.c +++ b/src/video/raspberry/SDL_rpivideo.c @@ -40,7 +40,7 @@ #include "../../events/SDL_keyboard_c.h" #ifdef SDL_INPUT_LINUXEV -#include "../../input/evdev/SDL_evdev.h" +#include "../../core/linux/SDL_evdev.h" #endif /* RPI declarations */ From 8acec42a0655fae913cd3ab32a999211414045fb Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sat, 16 Nov 2013 12:04:00 -0800 Subject: [PATCH 106/143] Fixed up configure so it doesn't reference input/evdev anymore --- configure | 46 +++++++++++++++++++++++++++++----------------- configure.in | 4 ---- 2 files changed, 29 insertions(+), 21 deletions(-) diff --git a/configure b/configure index a849f7c3cc229..d6b9b293f18b9 100755 --- a/configure +++ b/configure @@ -15950,19 +15950,35 @@ $as_echo "$have_gcc_mmd_mt" >&6; } fi fi -# Actually this doesn't work on OpenBSD -#AC_MSG_CHECKING(for linker option --no-undefined) -#have_no_undefined=no -#save_LDFLAGS="$LDFLAGS" -#LDFLAGS="$LDFLAGS -Wl,--no-undefined" -#AC_TRY_LINK([ -#],[ -#],[ -#have_no_undefined=yes -#EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,--no-undefined" -#]) -#LDFLAGS="$save_LDFLAGS" -#AC_MSG_RESULT($have_no_undefined) +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for linker option --no-undefined" >&5 +$as_echo_n "checking for linker option --no-undefined... " >&6; } +have_no_undefined=no +save_LDFLAGS="$LDFLAGS" +LDFLAGS="$LDFLAGS -Wl,--no-undefined" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +int +main () +{ + + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + +have_no_undefined=yes +EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,--no-undefined" + +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LDFLAGS="$save_LDFLAGS" +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_no_undefined" >&5 +$as_echo "$have_no_undefined" >&6; } # Check whether --enable-libc was given. if test "${enable_libc+set}" = set; then : @@ -22218,10 +22234,6 @@ $as_echo "#define SDL_TIMER_UNIX 1" >>confdefs.h if test x$enable_libudev = xyes && test x$have_libudev_h_hdr = xyes; then SOURCES="$SOURCES $srcdir/src/core/linux/SDL_udev.c" fi - # Set up files for evdev input - if test x$use_input_events = xyes; then - SOURCES="$SOURCES $srcdir/src/input/evdev/*.c" - fi ;; *-*-cygwin* | *-*-mingw32*) ARCH=win32 diff --git a/configure.in b/configure.in index c2c42b7ed72c7..100d6b2a7839a 100644 --- a/configure.in +++ b/configure.in @@ -2499,10 +2499,6 @@ case "$host" in if test x$enable_libudev = xyes && test x$have_libudev_h_hdr = xyes; then SOURCES="$SOURCES $srcdir/src/core/linux/SDL_udev.c" fi - # Set up files for evdev input - if test x$use_input_events = xyes; then - SOURCES="$SOURCES $srcdir/src/input/evdev/*.c" - fi ;; *-*-cygwin* | *-*-mingw32*) ARCH=win32 From 5a68214b7a194f0d52e8f24602cfc92300843144 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sat, 16 Nov 2013 12:11:19 -0800 Subject: [PATCH 107/143] Fixed bug 2232 - Version Mismatch in VS2013 Solution File Joe LeVeque Line 3 of SDL_VS2013.sln file reads "# Visual Studio 2012" instead of "# Visual Studio 2013" which causes Windows to associate the file with Visual Studio 2012, if installed, instead of Visual Studio 2013. --- VisualC/SDL_VS2010.sln | 3 +-- VisualC/SDL_VS2010EE.sln | 3 +-- VisualC/SDL_VS2012.sln | 3 +-- VisualC/SDL_VS2012EE.sln | 3 +-- VisualC/SDL_VS2013.sln | 5 ++--- 5 files changed, 6 insertions(+), 11 deletions(-) diff --git a/VisualC/SDL_VS2010.sln b/VisualC/SDL_VS2010.sln index 3a493acd38f02..9ae8f44ff7e47 100644 --- a/VisualC/SDL_VS2010.sln +++ b/VisualC/SDL_VS2010.sln @@ -1,5 +1,4 @@ - -Microsoft Visual Studio Solution File, Format Version 11.00 +Microsoft Visual Studio Solution File, Format Version 11.00 # Visual Studio 2010 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2", "SDL\SDL_VS2010.vcxproj", "{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}" EndProject diff --git a/VisualC/SDL_VS2010EE.sln b/VisualC/SDL_VS2010EE.sln index d5213da46d818..c1f16429cdc92 100644 --- a/VisualC/SDL_VS2010EE.sln +++ b/VisualC/SDL_VS2010EE.sln @@ -1,5 +1,4 @@ - -Microsoft Visual Studio Solution File, Format Version 11.00 +Microsoft Visual Studio Solution File, Format Version 11.00 # Visual Studio 2010 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2", "SDL\SDL_VS2010.vcxproj", "{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}" EndProject diff --git a/VisualC/SDL_VS2012.sln b/VisualC/SDL_VS2012.sln index 80335339183f3..cdf6bafc55372 100644 --- a/VisualC/SDL_VS2012.sln +++ b/VisualC/SDL_VS2012.sln @@ -1,5 +1,4 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 +Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2012 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2", "SDL\SDL_VS2012.vcxproj", "{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}" EndProject diff --git a/VisualC/SDL_VS2012EE.sln b/VisualC/SDL_VS2012EE.sln index 456f699827795..17eee5fffde42 100644 --- a/VisualC/SDL_VS2012EE.sln +++ b/VisualC/SDL_VS2012EE.sln @@ -1,5 +1,4 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 +Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2012 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2", "SDL\SDL_VS2012.vcxproj", "{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}" EndProject diff --git a/VisualC/SDL_VS2013.sln b/VisualC/SDL_VS2013.sln index 3ccb1cca44262..e4521439a3439 100644 --- a/VisualC/SDL_VS2013.sln +++ b/VisualC/SDL_VS2013.sln @@ -1,6 +1,5 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2012 +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2013 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2", "SDL\SDL_VS2013.vcxproj", "{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2main", "SDLmain\SDLmain_VS2013.vcxproj", "{DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}" From 923709a6999b3d3aa9f9a6529abd190880ee18e4 Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Sat, 16 Nov 2013 21:52:56 -0500 Subject: [PATCH 108/143] Turn off --no-undefined on OpenBSD again. Leave it on everywhere else for now. --- configure | 19 +++++++++++++------ configure.in | 26 +++++++++++++++++--------- 2 files changed, 30 insertions(+), 15 deletions(-) diff --git a/configure b/configure index d6b9b293f18b9..d5bcc80d7f945 100755 --- a/configure +++ b/configure @@ -15953,9 +15953,14 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for linker option --no-undefined" >&5 $as_echo_n "checking for linker option --no-undefined... " >&6; } have_no_undefined=no -save_LDFLAGS="$LDFLAGS" -LDFLAGS="$LDFLAGS -Wl,--no-undefined" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext +case "$host" in + *-*-openbsd*) + ;; + + *) + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -Wl,--no-undefined" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -15970,13 +15975,15 @@ main () _ACEOF if ac_fn_c_try_link "$LINENO"; then : -have_no_undefined=yes -EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,--no-undefined" + have_no_undefined=yes + EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,--no-undefined" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext -LDFLAGS="$save_LDFLAGS" + LDFLAGS="$save_LDFLAGS" + ;; +esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_no_undefined" >&5 $as_echo "$have_no_undefined" >&6; } diff --git a/configure.in b/configure.in index 100d6b2a7839a..993964f7a2ec8 100644 --- a/configure.in +++ b/configure.in @@ -206,15 +206,23 @@ fi AC_MSG_CHECKING(for linker option --no-undefined) have_no_undefined=no -save_LDFLAGS="$LDFLAGS" -LDFLAGS="$LDFLAGS -Wl,--no-undefined" -AC_TRY_LINK([ -],[ -],[ -have_no_undefined=yes -EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,--no-undefined" -]) -LDFLAGS="$save_LDFLAGS" +case "$host" in + dnl Skip this on platforms where it is just simply busted. + *-*-openbsd*) + ;; + + *) + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -Wl,--no-undefined" + AC_TRY_LINK([ + ],[ + ],[ + have_no_undefined=yes + EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,--no-undefined" + ]) + LDFLAGS="$save_LDFLAGS" + ;; +esac AC_MSG_RESULT($have_no_undefined) dnl See whether we are allowed to use the system C library From e4146267fa1a71fe0aaadbc8aadcfdd58eb9deed Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sat, 16 Nov 2013 18:56:02 -0800 Subject: [PATCH 109/143] Fixed bug 2245 - add SDL_acos and SDL_asin Sylvain Here's some code to add arc cosine, and arc sin functions to SDL_stdlib.c There are plainly written using SDL_atan. --- include/SDL_stdinc.h | 2 ++ src/libm/s_atan.c | 26 ++++++++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/include/SDL_stdinc.h b/include/SDL_stdinc.h index f0780a21796ff..9a421ba63d424 100644 --- a/include/SDL_stdinc.h +++ b/include/SDL_stdinc.h @@ -340,6 +340,8 @@ extern DECLSPEC int SDLCALL SDL_vsnprintf(char *text, size_t maxlen, const char #endif #endif +extern DECLSPEC double SDLCALL SDL_acos(double x); +extern DECLSPEC double SDLCALL SDL_asin(double x); extern DECLSPEC double SDLCALL SDL_atan(double x); extern DECLSPEC double SDLCALL SDL_atan2(double x, double y); extern DECLSPEC double SDLCALL SDL_ceil(double x); diff --git a/src/libm/s_atan.c b/src/libm/s_atan.c index f664f0eb3d475..2f24b29b08923 100644 --- a/src/libm/s_atan.c +++ b/src/libm/s_atan.c @@ -112,3 +112,29 @@ double atan(double x) } } libm_hidden_def(atan) + +double SDL_acos(double val) +{ + double result; + if (val == -1.0) { + result = M_PI; + } else { + result = SDL_atan(SDL_sqrt(1.0 - val * val) / val); + if (result < 0.0) + { + result += M_PI; + } + } + return result; +} + +double SDL_asin(double val) +{ + double result; + if (val == -1.0) { + result = -(M_PI / 2.0); + } else { + result = (M_PI / 2.0) - SDL_acos(val); + } + return result; +} From 9dd923fb9a34352a382be0c3e8efa7ac54a3895c Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sat, 16 Nov 2013 21:19:16 -0800 Subject: [PATCH 110/143] When the mouse is grabbed it's constrained to the client area, not the window frame. --- src/video/cocoa/SDL_cocoamousetap.m | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/video/cocoa/SDL_cocoamousetap.m b/src/video/cocoa/SDL_cocoamousetap.m index fd79296499a7b..8f95ac3515896 100644 --- a/src/video/cocoa/SDL_cocoamousetap.m +++ b/src/video/cocoa/SDL_cocoamousetap.m @@ -63,6 +63,7 @@ SDL_MouseEventTapData *tapdata = (SDL_MouseEventTapData*)refcon; SDL_Mouse *mouse = SDL_GetMouse(); SDL_Window *window = SDL_GetKeyboardFocus(); + NSWindow *nswindow = ((SDL_WindowData *) window->driverdata)->nswindow; NSRect windowRect; CGPoint eventLocation; @@ -93,7 +94,7 @@ /* This is the same coordinate system as Cocoa uses. */ eventLocation = CGEventGetUnflippedLocation(event); - windowRect = [((SDL_WindowData *) window->driverdata)->nswindow frame]; + windowRect = [nswindow contentRectForFrameRect:[nswindow frame]]; if (!NSPointInRect(NSPointFromCGPoint(eventLocation), windowRect)) { From ec080ff89211a6ae88189907b73740b6e6c1b4bf Mon Sep 17 00:00:00 2001 From: Gabriel Jacobo Date: Sun, 17 Nov 2013 10:41:16 -0300 Subject: [PATCH 111/143] Restore evdev sources to configure script --- configure | 4 ++++ configure.in | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/configure b/configure index d5bcc80d7f945..968edc2ee70d3 100755 --- a/configure +++ b/configure @@ -22241,6 +22241,10 @@ $as_echo "#define SDL_TIMER_UNIX 1" >>confdefs.h if test x$enable_libudev = xyes && test x$have_libudev_h_hdr = xyes; then SOURCES="$SOURCES $srcdir/src/core/linux/SDL_udev.c" fi + # Set up files for evdev input + if test x$use_input_events = xyes; then + SOURCES="$SOURCES $srcdir/src/core/linux/SDL_evdev.c" + fi ;; *-*-cygwin* | *-*-mingw32*) ARCH=win32 diff --git a/configure.in b/configure.in index 993964f7a2ec8..6cde4ee45cff7 100644 --- a/configure.in +++ b/configure.in @@ -2507,6 +2507,10 @@ case "$host" in if test x$enable_libudev = xyes && test x$have_libudev_h_hdr = xyes; then SOURCES="$SOURCES $srcdir/src/core/linux/SDL_udev.c" fi + # Set up files for evdev input + if test x$use_input_events = xyes; then + SOURCES="$SOURCES $srcdir/src/core/linux/SDL_evdev.c" + fi ;; *-*-cygwin* | *-*-mingw32*) ARCH=win32 From 2f6198edb692149c35c511dd4738c824f21274d4 Mon Sep 17 00:00:00 2001 From: Gabriel Jacobo Date: Sun, 17 Nov 2013 11:07:55 -0300 Subject: [PATCH 112/143] Fixes building for RPi using --no-undefined --- README-raspberrypi.txt | 6 ++++++ build-scripts/raspberrypi-buildbot.sh | 2 +- configure | 3 +-- configure.in | 3 +-- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/README-raspberrypi.txt b/README-raspberrypi.txt index 0724a8c909df9..af1ccea6e10d3 100644 --- a/README-raspberrypi.txt +++ b/README-raspberrypi.txt @@ -62,6 +62,12 @@ edit $SYSROOT/etc/ld.so.preload and comment out all lines in it. sudo umount $SYSROOT/proc sudo umount $SYSROOT/sys sudo umount /mnt + +There's one more fix required, as the libdl.so symlink uses an absolute path +which doesn't quite work in our setup. + + sudo rm -rf $SYSROOT/usr/lib/arm-linux-gnueabihf/libdl.so + sudo ln -s ../../../lib/arm-linux-gnueabihf/libdl.so.2 $SYSROOT/usr/lib/arm-linux-gnueabihf/libdl.so The final step is compiling SDL itself. diff --git a/build-scripts/raspberrypi-buildbot.sh b/build-scripts/raspberrypi-buildbot.sh index 4c746c0143935..bcffaf4a3769e 100755 --- a/build-scripts/raspberrypi-buildbot.sh +++ b/build-scripts/raspberrypi-buildbot.sh @@ -39,7 +39,7 @@ mkdir -p $BUILDBOTDIR pushd $BUILDBOTDIR SYSROOT="/opt/rpi-sysroot" -export CC="/opt/rpi-tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-gcc --sysroot=$SYSROOT -I$SYSROOT/opt/vc/include -I$SYSROOT/usr/include -I$SYSROOT/opt/vc/include/interface/vcos/pthreads -I$SYSROOT/opt/vc/include/interface/vmcs_host/linux" +export CC="/opt/rpi-tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-gcc --sysroot=$SYSROOT -I$SYSROOT/opt/vc/include -I$SYSROOT/usr/include -I$SYSROOT/opt/vc/include/interface/vcos/pthreads -I$SYSROOT/opt/vc/include/interface/vmcs_host/linux -L$SYSROOT/opt/vc/lib" # -L$SYSROOT/usr/lib/arm-linux-gnueabihf" # !!! FIXME: shouldn't have to --disable-* things here. ../configure --with-sysroot=$SYSROOT --host=arm-raspberry-linux-gnueabihf --prefix=$PWD/rpi-sdl2-installed --disable-pulseaudio --disable-esd diff --git a/configure b/configure index 968edc2ee70d3..be2cb61aeb4f9 100755 --- a/configure +++ b/configure @@ -22102,11 +22102,10 @@ case "$host" in # Raspberry Pi ARCH=linux RPI_CFLAGS="-I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux" - RPI_LDFLAGS="-L/opt/vc/lib -lbcm_host" CFLAGS="$CFLAGS $RPI_CFLAGS" SDL_CFLAGS="$SDL_CFLAGS $RPI_CFLAGS" EXTRA_CFLAGS="$EXTRA_CFLAGS $RPI_CFLAGS" - SDL_LIBS="$SDL_LIBS $RPI_LDFLAGS" + EXTRA_LDFLAGS="$EXTRA_LDFLAGS -L/opt/vc/lib -lbcm_host -ldl" if test x$enable_video = xyes; then SOURCES="$SOURCES $srcdir/src/video/raspberry/*.c" diff --git a/configure.in b/configure.in index 6cde4ee45cff7..e75ede89889e1 100644 --- a/configure.in +++ b/configure.in @@ -2384,11 +2384,10 @@ case "$host" in # Raspberry Pi ARCH=linux RPI_CFLAGS="-I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux" - RPI_LDFLAGS="-L/opt/vc/lib -lbcm_host" CFLAGS="$CFLAGS $RPI_CFLAGS" SDL_CFLAGS="$SDL_CFLAGS $RPI_CFLAGS" EXTRA_CFLAGS="$EXTRA_CFLAGS $RPI_CFLAGS" - SDL_LIBS="$SDL_LIBS $RPI_LDFLAGS" + EXTRA_LDFLAGS="$EXTRA_LDFLAGS -L/opt/vc/lib -lbcm_host -ldl" if test x$enable_video = xyes; then SOURCES="$SOURCES $srcdir/src/video/raspberry/*.c" From b5c6811108736f62d5ca5971348ccc49b8a9d130 Mon Sep 17 00:00:00 2001 From: Philipp Wiesemann Date: Mon, 18 Nov 2013 23:38:59 +0100 Subject: [PATCH 113/143] Fixed implicit function declaration warning in joystick source for Android. --- src/joystick/android/SDL_sysjoystick.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/joystick/android/SDL_sysjoystick.c b/src/joystick/android/SDL_sysjoystick.c index a98cef5beb05b..bbed18a156544 100644 --- a/src/joystick/android/SDL_sysjoystick.c +++ b/src/joystick/android/SDL_sysjoystick.c @@ -31,9 +31,11 @@ #include "SDL_joystick.h" #include "SDL_hints.h" #include "SDL_assert.h" +#include "SDL_log.h" #include "../SDL_sysjoystick.h" #include "../SDL_joystick_c.h" #include "../../core/android/SDL_android.h" + #include "android/keycodes.h" /* As of platform android-14, android/keycodes.h is missing these defines */ From 3cba79970cc9c81fbd0b08ea72f7f5c243fc2466 Mon Sep 17 00:00:00 2001 From: Philipp Wiesemann Date: Mon, 18 Nov 2013 23:43:15 +0100 Subject: [PATCH 114/143] Fixed unreachable return statement warning in gamecontroller source. --- src/joystick/SDL_gamecontroller.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/joystick/SDL_gamecontroller.c b/src/joystick/SDL_gamecontroller.c index 603d4db382aa1..26769b8e1d3dc 100644 --- a/src/joystick/SDL_gamecontroller.c +++ b/src/joystick/SDL_gamecontroller.c @@ -289,8 +289,6 @@ ControllerMapping_t *SDL_PrivateGetControllerMapping(int device_index) SDL_JoystickGUID jGUID = SDL_JoystickGetDeviceGUID( device_index ); return SDL_PrivateGetControllerMappingForGUID(&jGUID); } - - return NULL; } static const char* map_StringForControllerAxis[] = { From 48cffe33f92f2e8a902f71cc7b5ca25bb1053d27 Mon Sep 17 00:00:00 2001 From: Philipp Wiesemann Date: Mon, 18 Nov 2013 23:45:46 +0100 Subject: [PATCH 115/143] Added missing resource release in test source. --- src/test/SDL_test_common.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/test/SDL_test_common.c b/src/test/SDL_test_common.c index e23b5bbca1be3..cd4328e5cb03e 100644 --- a/src/test/SDL_test_common.c +++ b/src/test/SDL_test_common.c @@ -1424,6 +1424,14 @@ SDLTest_CommonQuit(SDLTest_CommonState * state) } SDL_free(state->renderers); } + if (state->targets) { + for (i = 0; i < state->num_windows; ++i) { + if (state->targets[i]) { + SDL_DestroyTexture(state->targets[i]); + } + } + SDL_free(state->targets); + } if (state->flags & SDL_INIT_VIDEO) { SDL_VideoQuit(); } From d75498f6be057ef171d47d7f84e2213965546af7 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Mon, 18 Nov 2013 20:21:45 -0800 Subject: [PATCH 116/143] Textures need to be freed before renderers --- src/test/SDL_test_common.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/test/SDL_test_common.c b/src/test/SDL_test_common.c index cd4328e5cb03e..783ee5a67cf24 100644 --- a/src/test/SDL_test_common.c +++ b/src/test/SDL_test_common.c @@ -951,7 +951,7 @@ SDLTest_PrintEvent(SDL_Event * event) { if ((event->type == SDL_MOUSEMOTION) || (event->type == SDL_FINGERMOTION)) { /* Mouse and finger motion are really spammy */ - return; + //return; } fprintf(stderr, "SDL EVENT: "); @@ -1416,14 +1416,6 @@ SDLTest_CommonQuit(SDLTest_CommonState * state) int i; SDL_free(state->windows); - if (state->renderers) { - for (i = 0; i < state->num_windows; ++i) { - if (state->renderers[i]) { - SDL_DestroyRenderer(state->renderers[i]); - } - } - SDL_free(state->renderers); - } if (state->targets) { for (i = 0; i < state->num_windows; ++i) { if (state->targets[i]) { @@ -1432,6 +1424,14 @@ SDLTest_CommonQuit(SDLTest_CommonState * state) } SDL_free(state->targets); } + if (state->renderers) { + for (i = 0; i < state->num_windows; ++i) { + if (state->renderers[i]) { + SDL_DestroyRenderer(state->renderers[i]); + } + } + SDL_free(state->renderers); + } if (state->flags & SDL_INIT_VIDEO) { SDL_VideoQuit(); } From 48954ba19458a9060d9eae6c46d10a584bb2e074 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Mon, 18 Nov 2013 20:22:36 -0800 Subject: [PATCH 117/143] Accidentally committed debug code --- src/test/SDL_test_common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/SDL_test_common.c b/src/test/SDL_test_common.c index 783ee5a67cf24..3b4d3323fc33b 100644 --- a/src/test/SDL_test_common.c +++ b/src/test/SDL_test_common.c @@ -951,7 +951,7 @@ SDLTest_PrintEvent(SDL_Event * event) { if ((event->type == SDL_MOUSEMOTION) || (event->type == SDL_FINGERMOTION)) { /* Mouse and finger motion are really spammy */ - //return; + return; } fprintf(stderr, "SDL EVENT: "); From fdfea4ad1f7201d74b49f53f79e5ed8326a4bec2 Mon Sep 17 00:00:00 2001 From: Gabriel Jacobo Date: Tue, 19 Nov 2013 10:00:05 -0300 Subject: [PATCH 118/143] [Android] Try to improve handling of DPAD|GAMEPAD + KEYBOARD devices It seems some devices report themselves as DPAD or GAMEPAD and KEYBOARD as well, and we need to route different keycodes to different parts of SDL. --- .../src/org/libsdl/app/SDLActivity.java | 17 ++++++++++------- src/core/android/SDL_android.c | 8 ++++---- src/joystick/android/SDL_sysjoystick.c | 7 ++++--- 3 files changed, 18 insertions(+), 14 deletions(-) diff --git a/android-project/src/org/libsdl/app/SDLActivity.java b/android-project/src/org/libsdl/app/SDLActivity.java index 54670f8df3be9..cd7b0c2796675 100755 --- a/android-project/src/org/libsdl/app/SDLActivity.java +++ b/android-project/src/org/libsdl/app/SDLActivity.java @@ -245,8 +245,8 @@ boolean sendCommand(int command, Object data) { public static native void nativePause(); public static native void nativeResume(); public static native void onNativeResize(int x, int y, int format); - public static native void onNativePadDown(int padId, int keycode); - public static native void onNativePadUp(int padId, int keycode); + public static native int onNativePadDown(int padId, int keycode); + public static native int onNativePadUp(int padId, int keycode); public static native void onNativeJoy(int joyId, int axis, float value); public static native void onNativeKeyDown(int keycode); @@ -600,19 +600,22 @@ public void onDraw(Canvas canvas) {} @Override public boolean onKey(View v, int keyCode, KeyEvent event) { // Dispatch the different events depending on where they come from - // Some SOURCE_DPAD or SOURCE_GAMEPAD events appear to also be marked as SOURCE_KEYBOARD - // So, to avoid problems, we process DPAD or GAMEPAD events first. + // Some SOURCE_DPAD or SOURCE_GAMEPAD are also SOURCE_KEYBOARD + // So, we try to process them as DPAD or GAMEPAD events first, if that fails we try them as KEYBOARD if ( (event.getSource() & 0x00000401) != 0 || /* API 12: SOURCE_GAMEPAD */ (event.getSource() & InputDevice.SOURCE_DPAD) != 0 ) { int id = SDLActivity.getJoyId( event.getDeviceId() ); if (id != -1) { if (event.getAction() == KeyEvent.ACTION_DOWN) { - SDLActivity.onNativePadDown(id, keyCode); + if (SDLActivity.onNativePadDown(id, keyCode) == 0) { + return true; + } } else if (event.getAction() == KeyEvent.ACTION_UP) { - SDLActivity.onNativePadUp(id, keyCode); + if (SDLActivity.onNativePadUp(id, keyCode) == 0) { + return true; + } } - return true; } } diff --git a/src/core/android/SDL_android.c b/src/core/android/SDL_android.c index 6feb48b1e8d8a..549d0a897e40b 100644 --- a/src/core/android/SDL_android.c +++ b/src/core/android/SDL_android.c @@ -148,19 +148,19 @@ void Java_org_libsdl_app_SDLActivity_onNativeResize( } // Paddown -void Java_org_libsdl_app_SDLActivity_onNativePadDown( +int Java_org_libsdl_app_SDLActivity_onNativePadDown( JNIEnv* env, jclass jcls, jint padId, jint keycode) { - Android_OnPadDown(padId, keycode); + return Android_OnPadDown(padId, keycode); } // Padup -void Java_org_libsdl_app_SDLActivity_onNativePadUp( +int Java_org_libsdl_app_SDLActivity_onNativePadUp( JNIEnv* env, jclass jcls, jint padId, jint keycode) { - Android_OnPadUp(padId, keycode); + return Android_OnPadUp(padId, keycode); } /* Joy */ diff --git a/src/joystick/android/SDL_sysjoystick.c b/src/joystick/android/SDL_sysjoystick.c index bbed18a156544..3289a2869af77 100644 --- a/src/joystick/android/SDL_sysjoystick.c +++ b/src/joystick/android/SDL_sysjoystick.c @@ -128,7 +128,6 @@ keycode_to_SDL(int keycode) break; default: - SDL_Log("The button you just pressed is not recognized by SDL. To help get this fixed, please report this to the SDL mailing list Android KeyCode %d", keycode); return -1; break; } @@ -313,9 +312,10 @@ Android_OnPadDown(int padId, int keycode) int button = keycode_to_SDL(keycode); if (button >= 0) { SDL_PrivateJoystickButton(SYS_Joysticks[padId], button , SDL_PRESSED); + return 0; } - return 0; + return -1; } int @@ -324,9 +324,10 @@ Android_OnPadUp(int padId, int keycode) int button = keycode_to_SDL(keycode); if (button >= 0) { SDL_PrivateJoystickButton(SYS_Joysticks[padId], button, SDL_RELEASED); + return 0; } - return 0; + return -1; } int From 47139fb3eb63e83cba30521ad14dbb27ebf557fb Mon Sep 17 00:00:00 2001 From: Gabriel Jacobo Date: Tue, 19 Nov 2013 10:56:38 -0300 Subject: [PATCH 119/143] Adds testgles2 Source code copied from: https://github.com/fantasydr/sdl-2.0-gles (thanks!) Minor fixes, configure script changes done by me. --- android-project/jni/src/Android.mk | 2 +- test/Makefile.in | 4 + test/configure | 38 ++ test/configure.in | 23 + test/testgles2.c | 647 +++++++++++++++++++++++++++++ 5 files changed, 713 insertions(+), 1 deletion(-) create mode 100644 test/testgles2.c diff --git a/android-project/jni/src/Android.mk b/android-project/jni/src/Android.mk index 70ca7dc356513..943a8cdbe2323 100644 --- a/android-project/jni/src/Android.mk +++ b/android-project/jni/src/Android.mk @@ -14,6 +14,6 @@ LOCAL_SRC_FILES := $(SDL_PATH)/src/main/android/SDL_android_main.c \ LOCAL_SHARED_LIBRARIES := SDL2 -LOCAL_LDLIBS := -lGLESv1_CM -llog +LOCAL_LDLIBS := -lGLESv1_CM -lGLESv2 -llog include $(BUILD_SHARED_LIBRARY) diff --git a/test/Makefile.in b/test/Makefile.in index 36b00e4860b8a..ac9aa372a39ea 100644 --- a/test/Makefile.in +++ b/test/Makefile.in @@ -21,6 +21,7 @@ TARGETS = \ testgesture$(EXE) \ testgl2$(EXE) \ testgles$(EXE) \ + testgles2$(EXE) \ testhaptic$(EXE) \ testrumble$(EXE) \ testthread$(EXE) \ @@ -131,6 +132,9 @@ testgl2$(EXE): $(srcdir)/testgl2.c testgles$(EXE): $(srcdir)/testgles.c $(CC) -o $@ $^ $(CFLAGS) $(LIBS) @GLESLIB@ @MATHLIB@ +testgles2$(EXE): $(srcdir)/testgles2.c + $(CC) -o $@ $^ $(CFLAGS) $(LIBS) @GLES2LIB@ @MATHLIB@ + testhaptic$(EXE): $(srcdir)/testhaptic.c $(CC) -o $@ $^ $(CFLAGS) $(LIBS) diff --git a/test/configure b/test/configure index 1ebd9d1609a2b..b55398de080fa 100755 --- a/test/configure +++ b/test/configure @@ -587,6 +587,7 @@ LIBOBJS SDL_TTF_LIB XLIB GLESLIB +GLES2LIB GLLIB CPP XMKMF @@ -3860,12 +3861,49 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_opengles" >&5 $as_echo "$have_opengles" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for OpenGL ES2 support" >&5 +$as_echo_n "checking for OpenGL ES2 support... " >&6; } +have_opengles2=no +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #if defined (__IPHONEOS__) + #include + #include + #else + #include + #include + #endif + +int +main () +{ + + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +have_opengles2=yes + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_opengles2" >&5 +$as_echo "$have_opengles2" >&6; } + GLLIB="" GLESLIB="" +GLES2LIB="" if test x$have_opengles = xyes; then CFLAGS="$CFLAGS -DHAVE_OPENGLES" GLESLIB="$XPATH -lGLESv1_CM" fi +if test x$have_opengles2 = xyes; then + CFLAGS="$CFLAGS -DHAVE_OPENGLES2" + GLES2LIB="$XPATH -lGLESv2" +fi if test x$have_opengl = xyes; then CFLAGS="$CFLAGS -DHAVE_OPENGL" GLLIB="$XPATH $SYS_GL_LIBS" diff --git a/test/configure.in b/test/configure.in index 6462bfd3d4c45..efc0d5dd60292 100644 --- a/test/configure.in +++ b/test/configure.in @@ -135,12 +135,34 @@ have_opengles=yes ]) AC_MSG_RESULT($have_opengles) +dnl Check for OpenGL ES2 +AC_MSG_CHECKING(for OpenGL ES2 support) +have_opengles2=no +AC_TRY_COMPILE([ + #if defined (__IPHONEOS__) + #include + #include + #else + #include + #include + #endif +],[ +],[ +have_opengles2=yes +]) +AC_MSG_RESULT($have_opengles2) + GLLIB="" GLESLIB="" +GLES2LIB="" if test x$have_opengles = xyes; then CFLAGS="$CFLAGS -DHAVE_OPENGLES" GLESLIB="$XPATH -lGLESv1_CM" fi +if test x$have_opengles2 = xyes; then + CFLAGS="$CFLAGS -DHAVE_OPENGLES2" + GLES2LIB="$XPATH -lGLESv2" +fi if test x$have_opengl = xyes; then CFLAGS="$CFLAGS -DHAVE_OPENGL" GLLIB="$XPATH $SYS_GL_LIBS" @@ -148,6 +170,7 @@ fi AC_SUBST(GLLIB) AC_SUBST(GLESLIB) +AC_SUBST(GLES2LIB) AC_SUBST(XLIB) dnl Check for SDL_ttf diff --git a/test/testgles2.c b/test/testgles2.c new file mode 100644 index 0000000000000..f73fbdbe41ddb --- /dev/null +++ b/test/testgles2.c @@ -0,0 +1,647 @@ +/* + Copyright (r) 1997-2011 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely. +*/ +#include +#include +#include +#include + +#include "SDL_test_common.h" + +#if defined(__IPHONEOS__) || defined(__ANDROID__) +#define HAVE_OPENGLES2 +#endif + +#ifdef HAVE_OPENGLES2 + +#include "SDL_opengles2.h" + +static SDLTest_CommonState *state; +static SDL_GLContext *context = NULL; +static int depth = 16; + +/* Call this instead of exit(), so we can clean up SDL: atexit() is evil. */ +static void +quit(int rc) +{ + int i; + + if (context != NULL) { + for (i = 0; i < state->num_windows; i++) { + if (context[i]) { + SDL_GL_DeleteContext(context[i]); + } + } + + SDL_free(context); + } + + SDLTest_CommonQuit(state); + exit(rc); +} + +#define GL_CHECK(x) \ + x; \ + { \ + GLenum glError = glGetError(); \ + if(glError != GL_NO_ERROR) { \ + fprintf(stderr, "glGetError() = %i (0x%.8x) at line %i\n", glError, glError, __LINE__); \ + quit(1); \ + } \ + } + +/* + * Simulates desktop's glRotatef. The matrix is returned in column-major + * order. + */ +static void +rotate_matrix(double angle, double x, double y, double z, float *r) +{ + double radians, c, s, c1, u[3], length; + int i, j; + + radians = (angle * M_PI) / 180.0; + + c = cos(radians); + s = sin(radians); + + c1 = 1.0 - cos(radians); + + length = sqrt(x * x + y * y + z * z); + + u[0] = x / length; + u[1] = y / length; + u[2] = z / length; + + for (i = 0; i < 16; i++) { + r[i] = 0.0; + } + + r[15] = 1.0; + + for (i = 0; i < 3; i++) { + r[i * 4 + (i + 1) % 3] = u[(i + 2) % 3] * s; + r[i * 4 + (i + 2) % 3] = -u[(i + 1) % 3] * s; + } + + for (i = 0; i < 3; i++) { + for (j = 0; j < 3; j++) { + r[i * 4 + j] += c1 * u[i] * u[j] + (i == j ? c : 0.0); + } + } +} + +/* + * Simulates gluPerspectiveMatrix + */ +static void +perspective_matrix(double fovy, double aspect, double znear, double zfar, float *r) +{ + int i; + double f; + + f = 1.0/tan(fovy * 0.5); + + for (i = 0; i < 16; i++) { + r[i] = 0.0; + } + + r[0] = f / aspect; + r[5] = f; + r[10] = (znear + zfar) / (znear - zfar); + r[11] = -1.0; + r[14] = (2.0 * znear * zfar) / (znear - zfar); + r[15] = 0.0; +} + +/* + * Multiplies lhs by rhs and writes out to r. All matrices are 4x4 and column + * major. In-place multiplication is supported. + */ +static void +multiply_matrix(float *lhs, float *rhs, float *r) +{ + int i, j, k; + float tmp[16]; + + for (i = 0; i < 4; i++) { + for (j = 0; j < 4; j++) { + tmp[j * 4 + i] = 0.0; + + for (k = 0; k < 4; k++) { + tmp[j * 4 + i] += lhs[k * 4 + i] * rhs[j * 4 + k]; + } + } + } + + for (i = 0; i < 16; i++) { + r[i] = tmp[i]; + } +} + +/* + * Create shader, load in source, compile, dump debug as necessary. + * + * shader: Pointer to return created shader ID. + * source: Passed-in shader source code. + * shader_type: Passed to GL, e.g. GL_VERTEX_SHADER. + */ +void +process_shader(GLuint *shader, const char * source, GLint shader_type) +{ + GLint status; + const char *shaders[1] = { NULL }; + + /* Create shader and load into GL. */ + *shader = GL_CHECK(glCreateShader(shader_type)); + + shaders[0] = source; + + GL_CHECK(glShaderSource(*shader, 1, shaders, NULL)); + + /* Clean up shader source. */ + shaders[0] = NULL; + + /* Try compiling the shader. */ + GL_CHECK(glCompileShader(*shader)); + GL_CHECK(glGetShaderiv(*shader, GL_COMPILE_STATUS, &status)); + + // Dump debug info (source and log) if compilation failed. + if(status != GL_TRUE) { + quit(-1); + } +} + +/* 3D data. Vertex range -0.5..0.5 in all axes. +* Z -0.5 is near, 0.5 is far. */ +const float _vertices[] = +{ + /* Front face. */ + /* Bottom left */ + -0.5, 0.5, -0.5, + 0.5, -0.5, -0.5, + -0.5, -0.5, -0.5, + /* Top right */ + -0.5, 0.5, -0.5, + 0.5, 0.5, -0.5, + 0.5, -0.5, -0.5, + /* Left face */ + /* Bottom left */ + -0.5, 0.5, 0.5, + -0.5, -0.5, -0.5, + -0.5, -0.5, 0.5, + /* Top right */ + -0.5, 0.5, 0.5, + -0.5, 0.5, -0.5, + -0.5, -0.5, -0.5, + /* Top face */ + /* Bottom left */ + -0.5, 0.5, 0.5, + 0.5, 0.5, -0.5, + -0.5, 0.5, -0.5, + /* Top right */ + -0.5, 0.5, 0.5, + 0.5, 0.5, 0.5, + 0.5, 0.5, -0.5, + /* Right face */ + /* Bottom left */ + 0.5, 0.5, -0.5, + 0.5, -0.5, 0.5, + 0.5, -0.5, -0.5, + /* Top right */ + 0.5, 0.5, -0.5, + 0.5, 0.5, 0.5, + 0.5, -0.5, 0.5, + /* Back face */ + /* Bottom left */ + 0.5, 0.5, 0.5, + -0.5, -0.5, 0.5, + 0.5, -0.5, 0.5, + /* Top right */ + 0.5, 0.5, 0.5, + -0.5, 0.5, 0.5, + -0.5, -0.5, 0.5, + /* Bottom face */ + /* Bottom left */ + -0.5, -0.5, -0.5, + 0.5, -0.5, 0.5, + -0.5, -0.5, 0.5, + /* Top right */ + -0.5, -0.5, -0.5, + 0.5, -0.5, -0.5, + 0.5, -0.5, 0.5, +}; + +const float _colors[] = +{ + /* Front face */ + /* Bottom left */ + 1.0, 0.0, 0.0, /* red */ + 0.0, 0.0, 1.0, /* blue */ + 0.0, 1.0, 0.0, /* green */ + /* Top right */ + 1.0, 0.0, 0.0, /* red */ + 1.0, 1.0, 0.0, /* yellow */ + 0.0, 0.0, 1.0, /* blue */ + /* Left face */ + /* Bottom left */ + 1.0, 1.0, 1.0, /* white */ + 0.0, 1.0, 0.0, /* green */ + 0.0, 1.0, 1.0, /* cyan */ + /* Top right */ + 1.0, 1.0, 1.0, /* white */ + 1.0, 0.0, 0.0, /* red */ + 0.0, 1.0, 0.0, /* green */ + /* Top face */ + /* Bottom left */ + 1.0, 1.0, 1.0, /* white */ + 1.0, 1.0, 0.0, /* yellow */ + 1.0, 0.0, 0.0, /* red */ + /* Top right */ + 1.0, 1.0, 1.0, /* white */ + 0.0, 0.0, 0.0, /* black */ + 1.0, 1.0, 0.0, /* yellow */ + /* Right face */ + /* Bottom left */ + 1.0, 1.0, 0.0, /* yellow */ + 1.0, 0.0, 1.0, /* magenta */ + 0.0, 0.0, 1.0, /* blue */ + /* Top right */ + 1.0, 1.0, 0.0, /* yellow */ + 0.0, 0.0, 0.0, /* black */ + 1.0, 0.0, 1.0, /* magenta */ + /* Back face */ + /* Bottom left */ + 0.0, 0.0, 0.0, /* black */ + 0.0, 1.0, 1.0, /* cyan */ + 1.0, 0.0, 1.0, /* magenta */ + /* Top right */ + 0.0, 0.0, 0.0, /* black */ + 1.0, 1.0, 1.0, /* white */ + 0.0, 1.0, 1.0, /* cyan */ + /* Bottom face */ + /* Bottom left */ + 0.0, 1.0, 0.0, /* green */ + 1.0, 0.0, 1.0, /* magenta */ + 0.0, 1.0, 1.0, /* cyan */ + /* Top right */ + 0.0, 1.0, 0.0, /* green */ + 0.0, 0.0, 1.0, /* blue */ + 1.0, 0.0, 1.0, /* magenta */ +}; + +const char* _shader_vert_src = +" attribute vec4 av4position; " +" attribute vec3 av3color; " +" uniform mat4 mvp; " +" varying vec3 vv3color; " +" void main() { " +" vv3color = av3color; " +" gl_Position = mvp * av4position; " +" } "; + +const char* _shader_frag_src = +" precision lowp float; " +" varying vec3 vv3color; " +" void main() { " +" gl_FragColor = vec4(vv3color, 1.0); " +" } "; + +typedef struct shader_data +{ + GLuint shader_program, shader_frag, shader_vert; + + GLint attr_position; + GLint attr_color, attr_mvp; + + int angle_x, angle_y, angle_z; + +} shader_data; + +static void +Render(unsigned int width, unsigned int height, shader_data* data) +{ + float matrix_rotate[16], matrix_modelview[16], matrix_perspective[16], matrix_mvp[16]; + + /* + * Do some rotation with Euler angles. It is not a fixed axis as + * quaterions would be, but the effect is cool. + */ + rotate_matrix(data->angle_x, 1.0, 0.0, 0.0, matrix_modelview); + rotate_matrix(data->angle_y, 0.0, 1.0, 0.0, matrix_rotate); + + multiply_matrix(matrix_rotate, matrix_modelview, matrix_modelview); + + rotate_matrix(data->angle_z, 0.0, 1.0, 0.0, matrix_rotate); + + multiply_matrix(matrix_rotate, matrix_modelview, matrix_modelview); + + /* Pull the camera back from the cube */ + matrix_modelview[14] -= 2.5; + + perspective_matrix(45.0, (double)width/(double)height, 0.01, 100.0, matrix_perspective); + multiply_matrix(matrix_perspective, matrix_modelview, matrix_mvp); + + GL_CHECK(glUniformMatrix4fv(data->attr_mvp, 1, GL_FALSE, matrix_mvp)); + + data->angle_x += 3; + data->angle_y += 2; + data->angle_z += 1; + + if(data->angle_x >= 360) data->angle_x -= 360; + if(data->angle_x < 0) data->angle_x += 360; + if(data->angle_y >= 360) data->angle_y -= 360; + if(data->angle_y < 0) data->angle_y += 360; + if(data->angle_z >= 360) data->angle_z -= 360; + if(data->angle_z < 0) data->angle_z += 360; + + GL_CHECK(glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT)); + GL_CHECK(glDrawArrays(GL_TRIANGLES, 0, 36)); +} + +int +main(int argc, char *argv[]) +{ + int fsaa, accel; + int value; + int i, done; + SDL_DisplayMode mode; + SDL_Event event; + Uint32 then, now, frames; + int status; + shader_data *datas, *data; + + /* Initialize parameters */ + fsaa = 0; + accel = 0; + + /* Initialize test framework */ + state = SDLTest_CommonCreateState(argv, SDL_INIT_VIDEO); + if (!state) { + return 1; + } + for (i = 1; i < argc;) { + int consumed; + + consumed = SDLTest_CommonArg(state, i); + if (consumed == 0) { + if (SDL_strcasecmp(argv[i], "--fsaa") == 0) { + ++fsaa; + consumed = 1; + } else if (SDL_strcasecmp(argv[i], "--accel") == 0) { + ++accel; + consumed = 1; + } else if (SDL_strcasecmp(argv[i], "--zdepth") == 0) { + i++; + if (!argv[i]) { + consumed = -1; + } else { + depth = SDL_atoi(argv[i]); + consumed = 1; + } + } else { + consumed = -1; + } + } + if (consumed < 0) { + fprintf(stderr, "Usage: %s %s [--fsaa] [--accel] [--zdepth %%d]\n", argv[0], + SDLTest_CommonUsage(state)); + quit(1); + } + i += consumed; + } + + /* Set OpenGL parameters */ + state->window_flags |= SDL_WINDOW_OPENGL | SDL_WINDOW_RESIZABLE | SDL_WINDOW_BORDERLESS; + state->gl_red_size = 5; + state->gl_green_size = 5; + state->gl_blue_size = 5; + state->gl_depth_size = depth; + state->gl_major_version = 2; + state->gl_minor_version = 0; + state->gl_profile_mask = SDL_GL_CONTEXT_PROFILE_ES; + + if (fsaa) { + state->gl_multisamplebuffers=1; + state->gl_multisamplesamples=fsaa; + } + if (accel) { + state->gl_accelerated=1; + } + if (!SDLTest_CommonInit(state)) { + return; + quit(2); + } + + context = SDL_calloc(state->num_windows, sizeof(context)); + if (context == NULL) { + fprintf(stderr, "Out of memory!\n"); + quit(2); + } + + /* Create OpenGL ES contexts */ + for (i = 0; i < state->num_windows; i++) { + context[i] = SDL_GL_CreateContext(state->windows[i]); + if (!context[i]) { + fprintf(stderr, "SDL_GL_CreateContext(): %s\n", SDL_GetError()); + quit(2); + } + } + + if (state->render_flags & SDL_RENDERER_PRESENTVSYNC) { + SDL_GL_SetSwapInterval(1); + } else { + SDL_GL_SetSwapInterval(0); + } + + SDL_GetCurrentDisplayMode(0, &mode); + printf("Screen bpp: %d\n", SDL_BITSPERPIXEL(mode.format)); + printf("\n"); + printf("Vendor : %s\n", glGetString(GL_VENDOR)); + printf("Renderer : %s\n", glGetString(GL_RENDERER)); + printf("Version : %s\n", glGetString(GL_VERSION)); + printf("Extensions : %s\n", glGetString(GL_EXTENSIONS)); + printf("\n"); + + status = SDL_GL_GetAttribute(SDL_GL_RED_SIZE, &value); + if (!status) { + printf("SDL_GL_RED_SIZE: requested %d, got %d\n", 5, value); + } else { + fprintf(stderr, "Failed to get SDL_GL_RED_SIZE: %s\n", + SDL_GetError()); + } + status = SDL_GL_GetAttribute(SDL_GL_GREEN_SIZE, &value); + if (!status) { + printf("SDL_GL_GREEN_SIZE: requested %d, got %d\n", 5, value); + } else { + fprintf(stderr, "Failed to get SDL_GL_GREEN_SIZE: %s\n", + SDL_GetError()); + } + status = SDL_GL_GetAttribute(SDL_GL_BLUE_SIZE, &value); + if (!status) { + printf("SDL_GL_BLUE_SIZE: requested %d, got %d\n", 5, value); + } else { + fprintf(stderr, "Failed to get SDL_GL_BLUE_SIZE: %s\n", + SDL_GetError()); + } + status = SDL_GL_GetAttribute(SDL_GL_DEPTH_SIZE, &value); + if (!status) { + printf("SDL_GL_DEPTH_SIZE: requested %d, got %d\n", depth, value); + } else { + fprintf(stderr, "Failed to get SDL_GL_DEPTH_SIZE: %s\n", + SDL_GetError()); + } + if (fsaa) { + status = SDL_GL_GetAttribute(SDL_GL_MULTISAMPLEBUFFERS, &value); + if (!status) { + printf("SDL_GL_MULTISAMPLEBUFFERS: requested 1, got %d\n", value); + } else { + fprintf(stderr, "Failed to get SDL_GL_MULTISAMPLEBUFFERS: %s\n", + SDL_GetError()); + } + status = SDL_GL_GetAttribute(SDL_GL_MULTISAMPLESAMPLES, &value); + if (!status) { + printf("SDL_GL_MULTISAMPLESAMPLES: requested %d, got %d\n", fsaa, + value); + } else { + fprintf(stderr, "Failed to get SDL_GL_MULTISAMPLESAMPLES: %s\n", + SDL_GetError()); + } + } + if (accel) { + status = SDL_GL_GetAttribute(SDL_GL_ACCELERATED_VISUAL, &value); + if (!status) { + printf("SDL_GL_ACCELERATED_VISUAL: requested 1, got %d\n", value); + } else { + fprintf(stderr, "Failed to get SDL_GL_ACCELERATED_VISUAL: %s\n", + SDL_GetError()); + } + } + + datas = SDL_calloc(state->num_windows, sizeof(shader_data)); + + /* Set rendering settings for each context */ + for (i = 0; i < state->num_windows; ++i) { + + status = SDL_GL_MakeCurrent(state->windows[i], context[i]); + if (status) { + printf("SDL_GL_MakeCurrent(): %s\n", SDL_GetError()); + + /* Continue for next window */ + continue; + } + glViewport(0, 0, state->window_w, state->window_h); + + data = &datas[i]; + data->angle_x = 0; data->angle_y = 0; data->angle_z = 0; + + /* Shader Initialization */ + process_shader(&data->shader_vert, _shader_vert_src, GL_VERTEX_SHADER); + process_shader(&data->shader_frag, _shader_frag_src, GL_FRAGMENT_SHADER); + + /* Create shader_program (ready to attach shaders) */ + data->shader_program = GL_CHECK(glCreateProgram()); + + /* Attach shaders and link shader_program */ + GL_CHECK(glAttachShader(data->shader_program, data->shader_vert)); + GL_CHECK(glAttachShader(data->shader_program, data->shader_frag)); + GL_CHECK(glLinkProgram(data->shader_program)); + + /* Get attribute locations of non-fixed attributes like color and texture coordinates. */ + data->attr_position = GL_CHECK(glGetAttribLocation(data->shader_program, "av4position")); + data->attr_color = GL_CHECK(glGetAttribLocation(data->shader_program, "av3color")); + + /* Get uniform locations */ + data->attr_mvp = GL_CHECK(glGetUniformLocation(data->shader_program, "mvp")); + + GL_CHECK(glUseProgram(data->shader_program)); + + /* Enable attributes for position, color and texture coordinates etc. */ + GL_CHECK(glEnableVertexAttribArray(data->attr_position)); + GL_CHECK(glEnableVertexAttribArray(data->attr_color)); + + /* Populate attributes for position, color and texture coordinates etc. */ + GL_CHECK(glVertexAttribPointer(data->attr_position, 3, GL_FLOAT, GL_FALSE, 0, _vertices)); + GL_CHECK(glVertexAttribPointer(data->attr_color, 3, GL_FLOAT, GL_FALSE, 0, _colors)); + + GL_CHECK(glEnable(GL_CULL_FACE)); + GL_CHECK(glEnable(GL_DEPTH_TEST)); + } + + /* Main render loop */ + frames = 0; + then = SDL_GetTicks(); + done = 0; + while (!done) { + /* Check for events */ + ++frames; + while (SDL_PollEvent(&event)) { + switch (event.type) { + case SDL_WINDOWEVENT: + switch (event.window.event) { + case SDL_WINDOWEVENT_RESIZED: + for (i = 0; i < state->num_windows; ++i) { + if (event.window.windowID == SDL_GetWindowID(state->windows[i])) { + status = SDL_GL_MakeCurrent(state->windows[i], context[i]); + if (status) { + printf("SDL_GL_MakeCurrent(): %s\n", SDL_GetError()); + break; + } + /* Change view port to the new window dimensions */ + glViewport(0, 0, event.window.data1, event.window.data2); + /* Update window content */ + Render(event.window.data1, event.window.data2, &datas[i]); + SDL_GL_SwapWindow(state->windows[i]); + break; + } + } + break; + } + } + SDLTest_CommonEvent(state, &event, &done); + } + for (i = 0; i < state->num_windows; ++i) { + status = SDL_GL_MakeCurrent(state->windows[i], context[i]); + if (status) { + printf("SDL_GL_MakeCurrent(): %s\n", SDL_GetError()); + + /* Continue for next window */ + continue; + } + Render(state->window_w, state->window_h, &datas[i]); + SDL_GL_SwapWindow(state->windows[i]); + } + } + + /* Print out some timing information */ + now = SDL_GetTicks(); + if (now > then) { + printf("%2.2f frames per second\n", + ((double) frames * 1000) / (now - then)); + } +#if !defined(__ANDROID__) + quit(0); +#endif + return 0; +} + +#else /* HAVE_OPENGLES2 */ + +int +main(int argc, char *argv[]) +{ + printf("No OpenGL ES support on this system\n"); + return 1; +} + +#endif /* HAVE_OPENGLES2 */ + +/* vi: set ts=4 sw=4 expandtab: */ From 131a0725030ecdade9ac8ebbbfc615c9d9f7b582 Mon Sep 17 00:00:00 2001 From: Gabriel Jacobo Date: Tue, 19 Nov 2013 11:04:05 -0300 Subject: [PATCH 120/143] Find the best EGL config available between those returned by eglChooseConfig This existed in the old Android Java code, it got lost in the migration to the commong EGL code. --- src/video/SDL_egl.c | 38 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-) diff --git a/src/video/SDL_egl.c b/src/video/SDL_egl.c index f9ab8faf5fea5..73a6df16fa4ef 100644 --- a/src/video/SDL_egl.c +++ b/src/video/SDL_egl.c @@ -218,7 +218,9 @@ SDL_EGL_ChooseConfig(_THIS) /* 64 seems nice. */ EGLint attribs[64]; EGLint found_configs = 0; - int i; + /* 128 seems even nicer here */ + EGLConfig configs[128]; + int i, j, best_bitdiff = -1, bitdiff, value; if (!_this->egl_data) { /* The EGL library wasn't loaded, SDL_GetError() should have info */ @@ -273,12 +275,44 @@ SDL_EGL_ChooseConfig(_THIS) if (_this->egl_data->eglChooseConfig(_this->egl_data->egl_display, attribs, - &_this->egl_data->egl_config, 1, + configs, SDL_arraysize(configs), &found_configs) == EGL_FALSE || found_configs == 0) { return SDL_SetError("Couldn't find matching EGL config"); } + /* eglChooseConfig returns a number of configurations that match or exceed the requested attribs. */ + /* From those, we select the one that matches our requirements more closely via a makeshift algorithm */ + + for ( i=0; iegl_data->eglGetConfigAttrib(_this->egl_data->egl_display, configs[i], attribs[j], &value); + bitdiff += value - attribs[j + 1]; /* value is always >= attrib */ + } + } + + if (bitdiff < best_bitdiff || best_bitdiff == -1) { + _this->egl_data->egl_config = configs[i]; + + best_bitdiff = bitdiff; + } + + if (bitdiff == 0) break; /* we found an exact match! */ + } + return 0; } From 825a68983a5d2600ea08a8b17bb80d70b7cce12b Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Tue, 19 Nov 2013 15:00:39 -0500 Subject: [PATCH 121/143] -fvisibility=hidden is no longer a requirement for dynamic X11. We don't clash with Xlib symbols anymore. --- cmake/sdlchecks.cmake | 11 ----------- configure.in | 14 +------------- 2 files changed, 1 insertion(+), 24 deletions(-) diff --git a/cmake/sdlchecks.cmake b/cmake/sdlchecks.cmake index b130201d7770e..84a93bdda4563 100644 --- a/cmake/sdlchecks.cmake +++ b/cmake/sdlchecks.cmake @@ -331,15 +331,8 @@ macro(CheckX11) set(SOURCE_FILES ${SOURCE_FILES} ${X11_SOURCES}) set(SDL_VIDEO_DRIVER_X11 1) - if(HAVE_GCC_FVISIBILITY) - set(X11_SYMBOLS_PRIVATE TRUE) - else() - set(X11_SYMBOLS_PRIVATE FALSE) - endif(HAVE_GCC_FVISIBILITY) - if(APPLE) set(X11_SHARED OFF) - set(X11_SYMBOLS_PRIVATE TRUE) endif(APPLE) check_function_exists("shmat" HAVE_SHMAT) @@ -358,10 +351,6 @@ macro(CheckX11) if(NOT HAVE_DLOPEN) message_warn("You must have SDL_LoadObject() support for dynamic X11 loading") set(HAVE_X11_SHARED FALSE) - if(X11_SYMBOLS_PRIVATE) - message_warn("You must have gcc4 (-fvisibility=hidden) for dynamic X11 loading") - set(HAVE_X11_SHARED TRUE) - endif(X11_SYMBOLS_PRIVATE) else(NOT HAVE_DLOPEN) set(HAVE_X11_SHARED TRUE) endif() diff --git a/configure.in b/configure.in index e75ede89889e1..e3f094cc557e1 100644 --- a/configure.in +++ b/configure.in @@ -1140,18 +1140,12 @@ AC_HELP_STRING([--enable-video-x11], [use X11 video driver [[default=yes]]]), AC_PATH_X AC_PATH_XTRA if test x$have_x = xyes; then - # Only allow dynamically loaded X11 if the X11 function pointers - # will not end up in the global namespace, which causes problems - # with other libraries calling X11 functions. - x11_symbols_private=$have_gcc_fvisibility - AC_ARG_ENABLE(x11-shared, AC_HELP_STRING([--enable-x11-shared], [dynamically load X11 support [[default=maybe]]]), , enable_x11_shared=maybe) case "$host" in *-*-darwin*) - x11_symbols_private=yes x11_lib='/usr/X11R6/lib/libX11.6.dylib' x11ext_lib='/usr/X11R6/lib/libXext.6.dylib' xcursor_lib='/usr/X11R6/lib/libXcursor.1.dylib' @@ -1212,19 +1206,13 @@ AC_HELP_STRING([--enable-x11-shared], [dynamically load X11 support [[default=ma SDL_CFLAGS="$SDL_CFLAGS $X_CFLAGS" if test x$enable_x11_shared = xmaybe; then - enable_x11_shared=$x11_symbols_private + enable_x11_shared=yes fi if test x$have_loadso != xyes && \ test x$enable_x11_shared = xyes; then AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic X11 loading]) enable_x11_shared=no fi - if test x$x11_symbols_private != xyes && \ - test x$enable_x11_shared = xyes; then - AC_MSG_WARN([You must have gcc4 (-fvisibility=hidden) for dynamic X11 loading]) - enable_x11_shared=no - fi - if test x$have_loadso = xyes && \ test x$enable_x11_shared = xyes && test x$x11_lib != x && test x$x11ext_lib != x; then echo "-- dynamic libX11 -> $x11_lib" From 2f30140418e4dae11b81f3bd5873625b76c99532 Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Tue, 19 Nov 2013 15:25:00 -0500 Subject: [PATCH 122/143] Fixed SONAME lookup for runtime loading of shared libraries in CMake project. Fixes Bugzilla #2249. --- cmake/sdlchecks.cmake | 95 ++++++++++++++++++++++++++----------------- 1 file changed, 57 insertions(+), 38 deletions(-) diff --git a/cmake/sdlchecks.cmake b/cmake/sdlchecks.cmake index 84a93bdda4563..86366e4936695 100644 --- a/cmake/sdlchecks.cmake +++ b/cmake/sdlchecks.cmake @@ -1,3 +1,34 @@ +macro(FindLibraryAndSONAME _LIB) + string(TOUPPER ${_LIB} _UPPERLNAME) + string(REGEX REPLACE "\\-" "_" _LNAME "${_UPPERLNAME}") + + find_library(${_LNAME}_LIB ${_LIB}) + if(${_LNAME}_LIB) + # reduce the library name for shared linking + + get_filename_component(_LIB_REALPATH ${${_LNAME}_LIB} REALPATH) # resolves symlinks + get_filename_component(_LIB_JUSTNAME ${_LIB_REALPATH} NAME) + + if(APPLE) + string(REGEX REPLACE "(\\.[0-9]*)\\.[0-9\\.]*dylib$" "\\1.dylib" _LIB_REGEXD "${_LIB_JUSTNAME}") + else() + string(REGEX REPLACE "(\\.[0-9]*)\\.[0-9\\.]*$" "\\1" _LIB_REGEXD "${_LIB_JUSTNAME}") + endif() + + SET(_DEBUG_FindSONAME FALSE) + if(_DEBUG_FindSONAME) + message_warn("DYNLIB OUTPUTVAR: ${_LIB} ... ${_LNAME}_LIB") + message_warn("DYNLIB ORIGINAL LIB: ${_LIB} ... ${${_LNAME}_LIB}") + message_warn("DYNLIB REALPATH LIB: ${_LIB} ... ${_LIB_REALPATH}") + message_warn("DYNLIB JUSTNAME LIB: ${_LIB} ... ${_LIB_JUSTNAME}") + message_warn("DYNLIB REGEX'd LIB: ${_LIB} ... ${_LIB_REGEXD}") + endif() + + message(STATUS "dynamic lib${_LIB} -> ${_LIB_REGEXD}") + set(${_LNAME}_LIB_SONAME ${_LIB_REGEXD}) + endif() +endmacro() + macro(CheckDLOPEN) check_function_exists(dlopen HAVE_DLOPEN) if(NOT HAVE_DLOPEN) @@ -83,9 +114,8 @@ macro(CheckALSA) if(NOT HAVE_DLOPEN) message_warn("You must have SDL_LoadObject() support for dynamic ALSA loading") else() - find_library(_ALSA_LIB asound) - get_filename_component(F_ALSA_LIB ${_ALSA_LIB} NAME) - set(SDL_AUDIO_DRIVER_ALSA_DYNAMIC "\"${F_ALSA_LIB}\"") + FindLibraryAndSONAME("asound") + set(SDL_AUDIO_DRIVER_ALSA_DYNAMIC "\"${ASOUND_LIB_SONAME}\"") set(HAVE_ALSA_SHARED TRUE) endif(NOT HAVE_DLOPEN) else(ALSA_SHARED) @@ -114,9 +144,8 @@ macro(CheckPulseAudio) if(NOT HAVE_DLOPEN) message_warn("You must have SDL_LoadObject() support for dynamic PulseAudio loading") else() - find_library(D_PULSE_LIB pulse-simple) - get_filename_component(F_PULSE_LIB ${D_PULSE_LIB} NAME) - set(SDL_AUDIO_DRIVER_PULSEAUDIO_DYNAMIC "\"${F_PULSE_LIB}\"") + FindLibraryAndSONAME("pulse-simple") + set(SDL_AUDIO_DRIVER_PULSEAUDIO_DYNAMIC "\"${PULSE_SIMPLE_LIB_SONAME}\"") set(HAVE_PULSEAUDIO_SHARED TRUE) endif(NOT HAVE_DLOPEN) else(PULSEAUDIO_SHARED) @@ -145,9 +174,8 @@ macro(CheckESD) if(NOT HAVE_DLOPEN) message_warn("You must have SDL_LoadObject() support for dynamic ESD loading") else() - find_library(D_ESD_LIB esd) - get_filename_component(F_ESD_LIB ${D_ESD_LIB} NAME) - set(SDL_AUDIO_DRIVER_ESD_DYNAMIC "\"${F_ESD_LIB}\"") + FindLibraryAndSONAME(esd) + set(SDL_AUDIO_DRIVER_ESD_DYNAMIC "\"${ESD_LIB_SONAME}\"") set(HAVE_ESD_SHARED TRUE) endif(NOT HAVE_DLOPEN) else(ESD_SHARED) @@ -181,9 +209,8 @@ macro(CheckARTS) message_warn("You must have SDL_LoadObject() support for dynamic ARTS loading") else() # TODO - find_library(D_ARTS_LIB artsc) - get_filename_component(F_ARTS_LIB ${D_ARTS_LIB} NAME) - set(SDL_AUDIO_DRIVER_ARTS_DYNAMIC "\"${F_ARTS_LIB}\"") + FindLibraryAndSONAME(artsc) + set(SDL_AUDIO_DRIVER_ARTS_DYNAMIC "\"${ARTSC_LIB_SONAME}\"") set(HAVE_ARTS_SHARED TRUE) endif(NOT HAVE_DLOPEN) else(ARTS_SHARED) @@ -213,8 +240,8 @@ macro(CheckNAS) if(NOT HAVE_DLOPEN) message_warn("You must have SDL_LoadObject() support for dynamic NAS loading") else() - get_filename_component(F_NAS_LIB ${D_NAS_LIB} NAME) - set(SDL_AUDIO_DRIVER_NAS_DYNAMIC "\"${F_NAS_LIB}\"") + FindLibraryAndSONAME("audio") + set(SDL_AUDIO_DRIVER_NAS_DYNAMIC "\"${AUDIO_LIB_SONAME}\"") set(HAVE_NAS_SHARED TRUE) endif(NOT HAVE_DLOPEN) else(NAS_SHARED) @@ -234,7 +261,7 @@ macro(CheckSNDIO) if(SNDIO) # TODO: set include paths properly, so the sndio headers are found check_include_file(sndio.h HAVE_SNDIO_H) - find_library(D_SNDIO_LIB audio) + find_library(D_SNDIO_LIB sndio) if(HAVE_SNDIO_H AND D_SNDIO_LIB) set(HAVE_SNDIO TRUE) file(GLOB SNDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/sndio/*.c) @@ -244,8 +271,8 @@ macro(CheckSNDIO) if(NOT HAVE_DLOPEN) message_warn("You must have SDL_LoadObject() support for dynamic sndio loading") else() - get_filename_component(F_SNDIO_LIB ${D_SNDIO_LIB} NAME) - set(SDL_AUDIO_DRIVER_SNDIO_DYNAMIC "\"${F_SNDIO_LIB}\"") + FindLibraryAndSONAME("sndio") + set(SDL_AUDIO_DRIVER_SNDIO_DYNAMIC "\"${SNDIO_LIB_SONAME}\"") set(HAVE_SNDIO_SHARED TRUE) endif(NOT HAVE_DLOPEN) else(SNDIO_SHARED) @@ -274,9 +301,8 @@ macro(CheckFusionSound) if(NOT HAVE_DLOPEN) message_warn("You must have SDL_LoadObject() support for dynamic FusionSound loading") else() - find_library(D_FUSIONSOUND_LIB fusionsound) - get_filename_component(F_FUSIONSOUND_LIB ${D_FUSIONSOUND_LIB} NAME) - set(SDL_AUDIO_DRIVER_FUSIONSOUND_DYNAMIC "\"${F_FUSIONSOUND_LIB}\"") + FindLibraryAndSONAME("fusionsound") + set(SDL_AUDIO_DRIVER_FUSIONSOUND_DYNAMIC "\"${FUSIONSOUND_LIB_SONAME}\"") set(HAVE_FUSIONSOUND_SHARED TRUE) endif(NOT HAVE_DLOPEN) else(FUSIONSOUND_SHARED) @@ -295,13 +321,7 @@ endmacro(CheckFusionSound) macro(CheckX11) if(VIDEO_X11) foreach(_LIB X11 Xext Xcursor Xinerama Xi Xrandr Xrender Xss Xxf86vm) - string(TOUPPER ${_LIB} _LNAME) - find_library(${_LNAME}_LIB ${_LIB}) - if(${_LNAME}_LIB) - # reduce the library name for shared linking - get_filename_component(_TMP ${${_LNAME}_LIB} NAME) - set(${_LNAME}_LIB ${_TMP}) - endif() + FindLibraryAndSONAME("${_LIB}") endforeach() find_path(X_INCLUDEDIR X11/Xlib.h) @@ -355,8 +375,8 @@ macro(CheckX11) set(HAVE_X11_SHARED TRUE) endif() if(HAVE_X11_SHARED) - set(SDL_VIDEO_DRIVER_X11_DYNAMIC "\"${X11_LIB}\"") - set(SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT "\"${XEXT_LIB}\"") + set(SDL_VIDEO_DRIVER_X11_DYNAMIC "\"${X11_LIB_SONAME}\"") + set(SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT "\"${XEXT_LIB_SONAME}\"") else(HAVE_X11_SHARED) list(APPEND EXTRA_LIBS ${X11_LIB} ${XEXT_LIB}) endif(HAVE_X11_SHARED) @@ -402,7 +422,7 @@ macro(CheckX11) if(VIDEO_X11_XCURSOR AND HAVE_XCURSOR_H) set(HAVE_VIDEO_X11_XCURSOR TRUE) if(HAVE_X11_SHARED AND XCURSOR_LIB) - set(SDL_VIDEO_DRIVER_X11_DYNAMIC_XCURSOR "\"${XCURSOR_LIB}\"") + set(SDL_VIDEO_DRIVER_X11_DYNAMIC_XCURSOR "\"${XCURSOR_LIB_SONAME}\"") else(HAVE_X11_SHARED AND XCURSOR_LIB) list(APPEND EXTRA_LIBS ${XCURSOR_LIB}) endif(HAVE_X11_SHARED AND XCURSOR_LIB) @@ -412,7 +432,7 @@ macro(CheckX11) if(VIDEO_X11_XINERAMA AND HAVE_XINERAMA_H) set(HAVE_VIDEO_X11_XINERAMA TRUE) if(HAVE_X11_SHARED AND XINERAMA_LIB) - set(SDL_VIDEO_DRIVER_X11_DYNAMIC_XINERAMA "\"${XINERAMA_LIB}\"") + set(SDL_VIDEO_DRIVER_X11_DYNAMIC_XINERAMA "\"${XINERAMA_LIB_SONAME}\"") else(HAVE_X11_SHARED AND XINERAMA_LIB) list(APPEND EXTRA_LIBS ${XINERAMA_LIB}) endif(HAVE_X11_SHARED AND XINERAMA_LIB) @@ -422,7 +442,7 @@ macro(CheckX11) if(VIDEO_X11_XINPUT AND HAVE_XINPUT_H) set(HAVE_VIDEO_X11_XINPUT TRUE) if(HAVE_X11_SHARED AND XI_LIB) - set(SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT2 "\"${XI_LIB}\"") + set(SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT2 "\"${XI_LIB_SONAME}\"") else(HAVE_X11_SHARED AND XI_LIB) list(APPEND EXTRA_LIBS ${XI_LIB}) endif(HAVE_X11_SHARED AND XI_LIB) @@ -447,7 +467,7 @@ macro(CheckX11) if(VIDEO_X11_XRANDR AND HAVE_XRANDR_H) if(HAVE_X11_SHARED AND XRANDR_LIB) - set(SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR "\"${XRANDR_LIB}\"") + set(SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR "\"${XRANDR_LIB_SONAME}\"") else(HAVE_X11_SHARED AND XRANDR_LIB) list(APPEND EXTRA_LIBS ${XRANDR_LIB}) endif(HAVE_X11_SHARED AND XRANDR_LIB) @@ -457,7 +477,7 @@ macro(CheckX11) if(VIDEO_X11_XSCRNSAVER AND HAVE_XSS_H) if(HAVE_X11_SHARED AND XSS_LIB) - set(SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS "\"${XSS_LIB}\"") + set(SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS "\"${XSS_LIB_SONAME}\"") else(HAVE_X11_SHARED AND XSS_LIB) list(APPEND EXTRA_LIBS ${XSS_LIB}) endif(HAVE_X11_SHARED AND XSS_LIB) @@ -472,7 +492,7 @@ macro(CheckX11) if(VIDEO_X11_XVM AND HAVE_XF86VM_H) if(HAVE_X11_SHARED AND XF86VMODE_LIB) - set(SDL_VIDEO_DRIVER_X11_DYNAMIC_XVIDMODE "\"${XF86VMODE_LIB}\"") + set(SDL_VIDEO_DRIVER_X11_DYNAMIC_XVIDMODE "\"${XF86VMODE_LIB_SONAME}\"") else(HAVE_X11_SHARED AND XF86VMODE_LIB) list(APPEND EXTRA_LIBS ${XF86VMODE_LIB}) endif(HAVE_X11_SHARED AND XF86VMODE_LIB) @@ -522,9 +542,8 @@ macro(CheckDirectFB) if(NOT HAVE_DLOPEN) message_warn("You must have SDL_LoadObject() support for dynamic DirectFB loading") else() - find_library(D_DIRECTFB_LIB directfb) - get_filename_component(F_DIRECTFB_LIB ${D_DIRECTFB_LIB} NAME) - set(SDL_VIDEO_DRIVER_DIRECTFB_DYNAMIC "\"${F_DIRECTFB_LIB}\"") + FindLibraryAndSONAME("directfb") + set(SDL_VIDEO_DRIVER_DIRECTFB_DYNAMIC "\"${DIRECTFB_LIB_SONAME}\"") set(HAVE_DIRECTFB_SHARED TRUE) endif(NOT HAVE_DLOPEN) else(DIRECTFB_SHARED) From 9095952ac4f4859a522b7d08a0d1bb489a1f1d8c Mon Sep 17 00:00:00 2001 From: Gabriel Jacobo Date: Wed, 20 Nov 2013 12:51:18 -0300 Subject: [PATCH 123/143] Clean up X11 OpenGL ES backend If you really need to switch between OpenGL and GLES context types, just issue a SDL_GL_UnloadLibrary manually. --- src/video/x11/SDL_x11opengles.c | 14 +------------- src/video/x11/SDL_x11opengles.h | 2 +- 2 files changed, 2 insertions(+), 14 deletions(-) diff --git a/src/video/x11/SDL_x11opengles.c b/src/video/x11/SDL_x11opengles.c index f5947e4e07e16..71517a80cbd30 100644 --- a/src/video/x11/SDL_x11opengles.c +++ b/src/video/x11/SDL_x11opengles.c @@ -36,6 +36,7 @@ X11_GLES_LoadLibrary(_THIS, const char *path) { /* If the profile requested is not GL ES, switch over to X11_GL functions */ if (_this->gl_config.profile_mask != SDL_GL_CONTEXT_PROFILE_ES) { #if SDL_VIDEO_OPENGL_GLX + X11_GLES_UnloadLibrary(_this); _this->GL_LoadLibrary = X11_GL_LoadLibrary; _this->GL_GetProcAddress = X11_GL_GetProcAddress; _this->GL_UnloadLibrary = X11_GL_UnloadLibrary; @@ -100,19 +101,6 @@ X11_GLES_CreateContext(_THIS, SDL_Window * window) return context; } -void -X11_GLES_DeleteContext(_THIS, SDL_GLContext context) -{ - /* FIXME: This "crappy fix" comes from the previous GLES X11 code, - * it's required so you can create a GLX context, destroy it and create a EGL one - * To be able to fix this, we need to add a function SDL_GL_ResetContext and - * disallow SDL_GL_MakeCurrent from taking a NULL pointer, thus ensuring we can - * determine if it is a GLX or EGL context - */ - SDL_EGL_DeleteContext(_this, context); - X11_GLES_UnloadLibrary(_this); -} - SDL_EGL_SwapWindow_impl(X11) SDL_EGL_MakeCurrent_impl(X11) diff --git a/src/video/x11/SDL_x11opengles.h b/src/video/x11/SDL_x11opengles.h index 9574e1c2bb1c6..978f91f3d4695 100644 --- a/src/video/x11/SDL_x11opengles.h +++ b/src/video/x11/SDL_x11opengles.h @@ -38,13 +38,13 @@ typedef struct SDL_PrivateGLESData #define X11_GLES_UnloadLibrary SDL_EGL_UnloadLibrary #define X11_GLES_SetSwapInterval SDL_EGL_SetSwapInterval #define X11_GLES_GetSwapInterval SDL_EGL_GetSwapInterval +#define X11_GLES_DeleteContext SDL_EGL_DeleteContext extern int X11_GLES_LoadLibrary(_THIS, const char *path); extern XVisualInfo *X11_GLES_GetVisual(_THIS, Display * display, int screen); extern SDL_GLContext X11_GLES_CreateContext(_THIS, SDL_Window * window); extern void X11_GLES_SwapWindow(_THIS, SDL_Window * window); extern int X11_GLES_MakeCurrent(_THIS, SDL_Window * window, SDL_GLContext context); -extern void X11_GLES_DeleteContext(_THIS, SDL_GLContext context); #endif /* SDL_VIDEO_OPENGL_EGL */ From a218717111d16948fc1ec1d724f45a02dcfa4c10 Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Wed, 20 Nov 2013 21:17:26 -0500 Subject: [PATCH 124/143] Query version for X11 XInput2 multitouch separately from base XInput2. --- src/video/x11/SDL_x11xinput2.c | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/src/video/x11/SDL_x11xinput2.c b/src/video/x11/SDL_x11xinput2.c index 719d2e3518bad..196dd2ae9d84d 100644 --- a/src/video/x11/SDL_x11xinput2.c +++ b/src/video/x11/SDL_x11xinput2.c @@ -59,6 +59,18 @@ static void parse_valuators(const double *input_values,unsigned char *mask,int m z++; } } + +static SDL_bool +xinput2_version_okay(Display *display, const int major, const int minor) +{ + int outmajor = major; + int outminor = minor; + if (X11_XIQueryVersion(display, &outmajor, &outminor) != Success) { + return SDL_FALSE; + } + + return ( ((outmajor * 1000) + outminor) >= ((major * 1000) + minor) ); +} #endif /* SDL_VIDEO_DRIVER_X11_XINPUT2 */ void @@ -70,11 +82,6 @@ X11_InitXinput2(_THIS) XIEventMask eventmask; unsigned char mask[3] = { 0,0,0 }; int event, err; - int major = 2, minor = 0; - int outmajor,outminor; -#if SDL_VIDEO_DRIVER_X11_XINPUT2_SUPPORTS_MULTITOUCH - minor = 2; -#endif /* * Initialize XInput 2 * According to http://who-t.blogspot.com/2009/05/xi2-recipes-part-1.html its better @@ -86,24 +93,17 @@ X11_InitXinput2(_THIS) */ if (!SDL_X11_HAVE_XINPUT2 || !X11_XQueryExtension(data->display, "XInputExtension", &xinput2_opcode, &event, &err)) { - return; + return; /* X server does not have XInput at all */ } - outmajor = major; - outminor = minor; - if (X11_XIQueryVersion(data->display, &outmajor, &outminor) != Success) { - return; + if (!xinput2_version_okay(data->display, 2, 0)) { + return; /* X server does not support the version we want */ } - /* Check supported version */ - if(outmajor * 1000 + outminor < major * 1000 + minor) { - /* X server does not support the version we want */ - return; - } xinput2_initialized = 1; + #if SDL_VIDEO_DRIVER_X11_XINPUT2_SUPPORTS_MULTITOUCH - /* XInput 2.2 */ - if(outmajor * 1000 + outminor >= major * 1000 + minor) { + if (xinput2_version_okay(data->display, 2, 2)) { /* Multitouch needs XInput 2.2 */ xinput2_multitouch_supported = 1; } #endif From 45dbff2ee4a4e79124f4bde277bbee3d5a517b47 Mon Sep 17 00:00:00 2001 From: Gabriel Jacobo Date: Fri, 22 Nov 2013 10:26:28 -0300 Subject: [PATCH 125/143] [Android] Fixes #2247, enable hardware acceleration by default. Setting android:hardwareAccelerated="true" seems to fix some random behaviors in certain devices like the XperiaE. Ref: http://developer.android.com/guide/topics/graphics/hardware-accel.html --- android-project/AndroidManifest.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/android-project/AndroidManifest.xml b/android-project/AndroidManifest.xml index a05b5660e825f..dc8450a61e9de 100644 --- a/android-project/AndroidManifest.xml +++ b/android-project/AndroidManifest.xml @@ -20,7 +20,8 @@ + android:theme="@android:style/Theme.NoTitleBar.Fullscreen" + android:hardwareAccelerated="true" > Date: Fri, 22 Nov 2013 13:24:53 -0300 Subject: [PATCH 126/143] OpenGL ES support for Windows --- README-windows.txt | 42 + VisualC/SDL/SDL_VS2008.vcproj | 28 + VisualC/SDL/SDL_VS2010.vcxproj | 7 + VisualC/SDL/SDL_VS2012.vcxproj | 7 + VisualC/SDL/SDL_VS2013.vcxproj | 949 +++--- VisualC/SDL_VS2013.sln | 16 +- .../tests/testgles2/testgles2_VS2008.vcproj | 207 ++ .../tests/testgles2/testgles2_VS2010.vcxproj | 238 ++ .../tests/testgles2/testgles2_VS2012.vcxproj | 236 ++ .../tests/testgles2/testgles2_VS2013.vcxproj | 236 ++ include/SDL_config_windows.h | 10 + include/SDL_egl.h | 1389 +++++++++ include/SDL_hints.h | 15 + include/SDL_opengles2.h | 2758 ++++++++++++++++- src/render/opengles2/SDL_gles2funcs.h | 2 + src/video/SDL_egl.c | 120 +- src/video/{SDL_egl.h => SDL_egl_c.h} | 41 +- src/video/android/SDL_androidgl.c | 2 +- src/video/android/SDL_androidvideo.c | 2 +- src/video/android/SDL_androidwindow.h | 2 +- src/video/raspberry/SDL_rpiopengles.h | 2 +- src/video/windows/SDL_windowsopengl.c | 66 +- src/video/windows/SDL_windowsopengl.h | 2 + src/video/windows/SDL_windowsopengles.c | 141 + src/video/windows/SDL_windowsopengles.h | 51 + src/video/windows/SDL_windowsvideo.h | 1 + src/video/windows/SDL_windowswindow.c | 27 + src/video/windows/SDL_windowswindow.h | 7 + src/video/x11/SDL_x11opengles.h | 2 +- test/configure | 2 +- test/configure.in | 2 +- test/testgles2.c | 1341 ++++---- 32 files changed, 6741 insertions(+), 1210 deletions(-) create mode 100644 README-windows.txt create mode 100644 VisualC/tests/testgles2/testgles2_VS2008.vcproj create mode 100644 VisualC/tests/testgles2/testgles2_VS2010.vcxproj create mode 100644 VisualC/tests/testgles2/testgles2_VS2012.vcxproj create mode 100644 VisualC/tests/testgles2/testgles2_VS2013.vcxproj create mode 100644 include/SDL_egl.h rename src/video/{SDL_egl.h => SDL_egl_c.h} (76%) create mode 100644 src/video/windows/SDL_windowsopengles.c create mode 100644 src/video/windows/SDL_windowsopengles.h diff --git a/README-windows.txt b/README-windows.txt new file mode 100644 index 0000000000000..f59b2661bd072 --- /dev/null +++ b/README-windows.txt @@ -0,0 +1,42 @@ +================================================================================ +Simple DirectMedia Layer for Windows +================================================================================ + +================================================================================ +OpenGL ES 2.x support +================================================================================ + +SDL has support for OpenGL ES 2.x under Windows via two alternative +implementations. +The most straightforward method consists in running your app in a system with +a graphic card paired with a relatively recent (as of November of 2013) driver +which supports the WGL_EXT_create_context_es2_profile extension. Vendors known +to ship said extension on Windows currently include nVidia and Intel. + +The other method involves using the ANGLE library (https://code.google.com/p/angleproject/) +If an OpenGL ES 2.x context is requested and no WGL_EXT_create_context_es2_profile +extension is found, SDL will try to load the libEGL.dll library provided by +ANGLE. +To obtain the ANGLE binaries, you can either compile from source from +https://chromium.googlesource.com/angle/angle or copy the relevant binaries from +a recent Chrome/Chromium install for Windows. The files you need are: + + * libEGL.dll + * libGLESv2.dll + * d3dcompiler_46.dll (supports Windows Vista or later, better shader compiler) + or... + * d3dcompiler_43.dll (supports Windows XP or later) + +If you compile ANGLE from source, you can configure it so it does not need the +d3dcompiler_* DLL at all (for details on this, see their documentation). +However, by default SDL will try to preload the d3dcompiler_46.dll to +comply with ANGLE's requirements. If you wish SDL to preload d3dcompiler_43.dll (to +support Windows XP) or to skip this step at all, you can use the +SDL_VIDEO_WIN_D3DCOMPILER hint (see SDL_hints.h for more details). + +Known Bugs: + + * SDL_GL_SetSwapInterval is currently a no op when using ANGLE. It appears + that there's a bug in the library which prevents the window contents from + refreshing if this is set to anything other than the default value. + diff --git a/VisualC/SDL/SDL_VS2008.vcproj b/VisualC/SDL/SDL_VS2008.vcproj index 1e7db21a33e42..7d48e6144f473 100644 --- a/VisualC/SDL/SDL_VS2008.vcproj +++ b/VisualC/SDL/SDL_VS2008.vcproj @@ -415,6 +415,18 @@ RelativePath="..\..\include\SDL_cpuinfo.h" > + + + + + + @@ -1272,6 +1284,22 @@ RelativePath="..\..\src\video\windows\SDL_windowsopengl.c" > + + + + + + + + diff --git a/VisualC/SDL/SDL_VS2010.vcxproj b/VisualC/SDL/SDL_VS2010.vcxproj index d9ca5aff7f4ba..7a17ced35d50d 100644 --- a/VisualC/SDL/SDL_VS2010.vcxproj +++ b/VisualC/SDL/SDL_VS2010.vcxproj @@ -553,6 +553,9 @@ + + + @@ -669,6 +672,10 @@ + + + + diff --git a/VisualC/SDL/SDL_VS2012.vcxproj b/VisualC/SDL/SDL_VS2012.vcxproj index 141bc6481f6b3..f60a4d9aa6f89 100644 --- a/VisualC/SDL/SDL_VS2012.vcxproj +++ b/VisualC/SDL/SDL_VS2012.vcxproj @@ -344,6 +344,9 @@ + + + @@ -460,6 +463,10 @@ + + + + diff --git a/VisualC/SDL/SDL_VS2013.vcxproj b/VisualC/SDL/SDL_VS2013.vcxproj index 2f961674e79dd..df6019a62b9eb 100644 --- a/VisualC/SDL/SDL_VS2013.vcxproj +++ b/VisualC/SDL/SDL_VS2013.vcxproj @@ -1,472 +1,479 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - SDL2 - {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68} - SDL - - - - DynamicLibrary - false - v120 - - - DynamicLibrary - false - v120 - - - DynamicLibrary - false - v120 - - - DynamicLibrary - false - MultiByte - v120 - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - $(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - - - - - _DEBUG;%(PreprocessorDefinitions) - true - true - Win32 - - - Disabled - ..\..\include;%(AdditionalIncludeDirectories);"$(DXSDK_DIR)\Include"; - _DEBUG;_WINDOWS;%(PreprocessorDefinitions) - MultiThreadedDebugDLL - false - - - Level3 - true - EditAndContinue - Default - false - StreamingSIMDExtensions - - - _DEBUG;%(PreprocessorDefinitions) - 0x0409 - - - winmm.lib;imm32.lib;version.lib;%(AdditionalDependencies) - true - true - Windows - false - $(DXSDK_DIR)\lib\x86 - - - - - _DEBUG;%(PreprocessorDefinitions) - true - true - X64 - - - Disabled - ..\..\include;%(AdditionalIncludeDirectories);"$(DXSDK_DIR)\Include"; - _DEBUG;_WINDOWS;%(PreprocessorDefinitions) - MultiThreadedDebugDLL - false - - - Level3 - EditAndContinue - false - - - _DEBUG;%(PreprocessorDefinitions) - 0x0409 - - - winmm.lib;imm32.lib;version.lib;%(AdditionalDependencies) - true - true - Windows - false - $(DXSDK_DIR)\lib\x64 - - - - - - NDEBUG;%(PreprocessorDefinitions) - true - true - Win32 - - - OnlyExplicitInline - false - ..\..\include;%(AdditionalIncludeDirectories);"$(DXSDK_DIR)\Include"; - NDEBUG;_WINDOWS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - - - Level3 - true - Default - false - ProgramDatabase - StreamingSIMDExtensions - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - - - winmm.lib;imm32.lib;version.lib;%(AdditionalDependencies) - true - Windows - $(DXSDK_DIR)\lib\x86 - true - true - true - - - - - NDEBUG;%(PreprocessorDefinitions) - true - true - X64 - - - OnlyExplicitInline - false - ..\..\include;%(AdditionalIncludeDirectories);"$(DXSDK_DIR)\Include"; - NDEBUG;_WINDOWS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - - - Level3 - false - ProgramDatabase - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - - - winmm.lib;imm32.lib;version.lib;%(AdditionalDependencies) - true - Windows - $(DXSDK_DIR)\lib\x64 - true - true - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + SDL2 + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68} + SDL + + + + DynamicLibrary + false + v120 + + + DynamicLibrary + false + v120 + + + DynamicLibrary + false + v120 + + + DynamicLibrary + false + MultiByte + v120 + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + Disabled + ..\..\include;%(AdditionalIncludeDirectories);"$(DXSDK_DIR)\Include"; + _DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + false + + + Level3 + true + EditAndContinue + Default + false + StreamingSIMDExtensions + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + winmm.lib;imm32.lib;version.lib;%(AdditionalDependencies) + true + true + Windows + false + $(DXSDK_DIR)\lib\x86 + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + + + Disabled + ..\..\include;%(AdditionalIncludeDirectories);"$(DXSDK_DIR)\Include"; + _DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + false + + + Level3 + EditAndContinue + false + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + winmm.lib;imm32.lib;version.lib;%(AdditionalDependencies) + true + true + Windows + false + $(DXSDK_DIR)\lib\x64 + + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + OnlyExplicitInline + false + ..\..\include;%(AdditionalIncludeDirectories);"$(DXSDK_DIR)\Include"; + NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + + + Level3 + true + Default + false + ProgramDatabase + StreamingSIMDExtensions + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + winmm.lib;imm32.lib;version.lib;%(AdditionalDependencies) + true + Windows + $(DXSDK_DIR)\lib\x86 + true + true + true + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + + + OnlyExplicitInline + false + ..\..\include;%(AdditionalIncludeDirectories);"$(DXSDK_DIR)\Include"; + NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + + + Level3 + false + ProgramDatabase + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + winmm.lib;imm32.lib;version.lib;%(AdditionalDependencies) + true + Windows + $(DXSDK_DIR)\lib\x64 + true + true + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VisualC/SDL_VS2013.sln b/VisualC/SDL_VS2013.sln index e4521439a3439..82ac105d9fd20 100644 --- a/VisualC/SDL_VS2013.sln +++ b/VisualC/SDL_VS2013.sln @@ -1,5 +1,8 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 + +Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2013 +VisualStudioVersion = 12.0.21005.1 +MinimumVisualStudioVersion = 10.0.40219.1 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2", "SDL\SDL_VS2013.vcxproj", "{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2main", "SDLmain\SDLmain_VS2013.vcxproj", "{DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}" @@ -102,6 +105,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testjoystick", "tests\testj {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A} = {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testgles2", "tests\testgles2\testgles2_VS2013.vcxproj", "{E5287C64-0646-4BFA-A772-1DB5A649F35E}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -252,6 +257,14 @@ Global {55812185-D13C-4022-9C81-32E0F4A08BCC}.Release|Win32.Build.0 = Release|Win32 {55812185-D13C-4022-9C81-32E0F4A08BCC}.Release|x64.ActiveCfg = Release|x64 {55812185-D13C-4022-9C81-32E0F4A08BCC}.Release|x64.Build.0 = Release|x64 + {E5287C64-0646-4BFA-A772-1DB5A649F35E}.Debug|Win32.ActiveCfg = Debug|Win32 + {E5287C64-0646-4BFA-A772-1DB5A649F35E}.Debug|Win32.Build.0 = Debug|Win32 + {E5287C64-0646-4BFA-A772-1DB5A649F35E}.Debug|x64.ActiveCfg = Debug|x64 + {E5287C64-0646-4BFA-A772-1DB5A649F35E}.Debug|x64.Build.0 = Debug|x64 + {E5287C64-0646-4BFA-A772-1DB5A649F35E}.Release|Win32.ActiveCfg = Release|Win32 + {E5287C64-0646-4BFA-A772-1DB5A649F35E}.Release|Win32.Build.0 = Release|Win32 + {E5287C64-0646-4BFA-A772-1DB5A649F35E}.Release|x64.ActiveCfg = Release|x64 + {E5287C64-0646-4BFA-A772-1DB5A649F35E}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -273,5 +286,6 @@ Global {55812185-D13C-4022-9C81-32E0F4A08336} = {CE748C1F-3C21-4825-AA6A-F895A023F7E7} {55812185-D13C-4022-9C81-32E0F4A08996} = {CE748C1F-3C21-4825-AA6A-F895A023F7E7} {55812185-D13C-4022-9C81-32E0F4A08BCC} = {CE748C1F-3C21-4825-AA6A-F895A023F7E7} + {E5287C64-0646-4BFA-A772-1DB5A649F35E} = {CE748C1F-3C21-4825-AA6A-F895A023F7E7} EndGlobalSection EndGlobal diff --git a/VisualC/tests/testgles2/testgles2_VS2008.vcproj b/VisualC/tests/testgles2/testgles2_VS2008.vcproj new file mode 100644 index 0000000000000..a0ebbd6837ea2 --- /dev/null +++ b/VisualC/tests/testgles2/testgles2_VS2008.vcproj @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/VisualC/tests/testgles2/testgles2_VS2010.vcxproj b/VisualC/tests/testgles2/testgles2_VS2010.vcxproj new file mode 100644 index 0000000000000..fc41cd69bfb17 --- /dev/null +++ b/VisualC/tests/testgles2/testgles2_VS2010.vcxproj @@ -0,0 +1,238 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + testgles2 + testgles2 + {8B5CFB38-CCBA-40A8-AD7A-89C57B070884} + + + + Application + false + + + Application + false + + + Application + false + + + Application + false + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + true + true + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + false + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + Disabled + ..\..\..\include;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;_WINDOWS;HAVE_OPENGL;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + + + Level3 + true + EditAndContinue + Default + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + opengl32.lib;%(AdditionalDependencies) + true + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + + + Disabled + ..\..\..\include;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;_WINDOWS;HAVE_OPENGL;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + + + Level3 + true + ProgramDatabase + Default + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + opengl32.lib;%(AdditionalDependencies) + true + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + OnlyExplicitInline + ..\..\..\include;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;_WINDOWS;HAVE_OPENGL;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + + + Level3 + true + Default + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + opengl32.lib;%(AdditionalDependencies) + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + + + OnlyExplicitInline + ..\..\..\include;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;_WINDOWS;HAVE_OPENGL;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + + + Level3 + true + Default + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + opengl32.lib;%(AdditionalDependencies) + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + + + + {da956fd3-e142-46f2-9dd5-c78bebb56b7a} + + + {da956fd3-e143-46f2-9fe5-c77bebc56b1a} + + + {81ce8daf-ebb2-4761-8e45-b71abcca8c68} + + + + + + \ No newline at end of file diff --git a/VisualC/tests/testgles2/testgles2_VS2012.vcxproj b/VisualC/tests/testgles2/testgles2_VS2012.vcxproj new file mode 100644 index 0000000000000..4dbb3791af93b --- /dev/null +++ b/VisualC/tests/testgles2/testgles2_VS2012.vcxproj @@ -0,0 +1,236 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + testgles2 + testgles2 + {8B5CFB38-CCBA-40A8-AD7A-89C57B070884} + + + + Application + false + v110 + + + Application + false + v110 + + + Application + false + v110 + + + Application + false + MultiByte + v110 + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + true + true + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + false + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + Disabled + ..\..\..\include;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;_WINDOWS;HAVE_OPENGL;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + + + Level3 + true + EditAndContinue + Default + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + opengl32.lib;%(AdditionalDependencies) + true + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + + + Disabled + ..\..\..\include;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;_WINDOWS;HAVE_OPENGL;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + + + Level3 + true + ProgramDatabase + Default + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + opengl32.lib;%(AdditionalDependencies) + true + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + OnlyExplicitInline + ..\..\..\include;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;_WINDOWS;HAVE_OPENGL;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + + + Level3 + true + Default + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + opengl32.lib;%(AdditionalDependencies) + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + + + OnlyExplicitInline + ..\..\..\include;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;_WINDOWS;HAVE_OPENGL;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + + + Level3 + true + Default + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + opengl32.lib;%(AdditionalDependencies) + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VisualC/tests/testgles2/testgles2_VS2013.vcxproj b/VisualC/tests/testgles2/testgles2_VS2013.vcxproj new file mode 100644 index 0000000000000..985ad30b47681 --- /dev/null +++ b/VisualC/tests/testgles2/testgles2_VS2013.vcxproj @@ -0,0 +1,236 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + testgles2 + testgles2 + {E5287C64-0646-4BFA-A772-1DB5A649F35E} + + + + Application + false + v120 + + + Application + false + v120 + + + Application + false + v120 + + + Application + false + MultiByte + v120 + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + true + true + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + false + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + Disabled + ..\..\..\include;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;_WINDOWS;HAVE_OPENGLES2;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + + + Level3 + true + EditAndContinue + Default + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + %(AdditionalDependencies) + true + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + + + Disabled + ..\..\..\include;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;_WINDOWS;HAVE_OPENGLES2;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + + + Level3 + true + ProgramDatabase + Default + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + %(AdditionalDependencies) + true + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + OnlyExplicitInline + ..\..\..\include;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;_WINDOWS;HAVE_OPENGLES2;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + + + Level3 + true + Default + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + %(AdditionalDependencies) + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + + + OnlyExplicitInline + ..\..\..\include;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;_WINDOWS;HAVE_OPENGLES2;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + + + Level3 + true + Default + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + %(AdditionalDependencies) + true + Windows + + + copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll" + + + Copy SDL + + + + + + + + + + + + + + \ No newline at end of file diff --git a/include/SDL_config_windows.h b/include/SDL_config_windows.h index 4d5c7c293fb92..6bde3f86fbf0b 100644 --- a/include/SDL_config_windows.h +++ b/include/SDL_config_windows.h @@ -180,6 +180,16 @@ typedef unsigned int uintptr_t; #ifndef SDL_VIDEO_RENDER_OGL #define SDL_VIDEO_RENDER_OGL 1 #endif +#ifndef SDL_VIDEO_RENDER_OGL_ES2 +#define SDL_VIDEO_RENDER_OGL_ES2 1 +#endif +#ifndef SDL_VIDEO_OPENGL_ES2 +#define SDL_VIDEO_OPENGL_ES2 1 +#endif +#ifndef SDL_VIDEO_OPENGL_EGL +#define SDL_VIDEO_OPENGL_EGL 1 +#endif + /* Enable system power support */ #define SDL_POWER_WINDOWS 1 diff --git a/include/SDL_egl.h b/include/SDL_egl.h new file mode 100644 index 0000000000000..fc8fde4a659b7 --- /dev/null +++ b/include/SDL_egl.h @@ -0,0 +1,1389 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2013 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_opengles.h + * + * This is a simple file to encapsulate the OpenGL ES 2.0 API headers. + */ +#ifndef _MSC_VER + +#include + +#else /* _MSC_VER */ + +/* EGL headers for Visual Studio */ + +#ifndef __khrplatform_h_ +#define __khrplatform_h_ + +/* +** Copyright (c) 2008-2009 The Khronos Group Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and/or associated documentation files (the +** "Materials"), to deal in the Materials without restriction, including +** without limitation the rights to use, copy, modify, merge, publish, +** distribute, sublicense, and/or sell copies of the Materials, and to +** permit persons to whom the Materials are furnished to do so, subject to +** the following conditions: +** +** The above copyright notice and this permission notice shall be included +** in all copies or substantial portions of the Materials. +** +** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +*/ + +/* Khronos platform-specific types and definitions. +* +* $Revision: 23298 $ on $Date: 2013-09-30 17:07:13 -0700 (Mon, 30 Sep 2013) $ +* +* Adopters may modify this file to suit their platform. Adopters are +* encouraged to submit platform specific modifications to the Khronos +* group so that they can be included in future versions of this file. +* Please submit changes by sending them to the public Khronos Bugzilla +* (http://khronos.org/bugzilla) by filing a bug against product +* "Khronos (general)" component "Registry". +* +* A predefined template which fills in some of the bug fields can be +* reached using http://tinyurl.com/khrplatform-h-bugreport, but you +* must create a Bugzilla login first. +* +* +* See the Implementer's Guidelines for information about where this file +* should be located on your system and for more details of its use: +* http://www.khronos.org/registry/implementers_guide.pdf +* +* This file should be included as +* #include +* by Khronos client API header files that use its types and defines. +* +* The types in khrplatform.h should only be used to define API-specific types. +* +* Types defined in khrplatform.h: +* khronos_int8_t signed 8 bit +* khronos_uint8_t unsigned 8 bit +* khronos_int16_t signed 16 bit +* khronos_uint16_t unsigned 16 bit +* khronos_int32_t signed 32 bit +* khronos_uint32_t unsigned 32 bit +* khronos_int64_t signed 64 bit +* khronos_uint64_t unsigned 64 bit +* khronos_intptr_t signed same number of bits as a pointer +* khronos_uintptr_t unsigned same number of bits as a pointer +* khronos_ssize_t signed size +* khronos_usize_t unsigned size +* khronos_float_t signed 32 bit floating point +* khronos_time_ns_t unsigned 64 bit time in nanoseconds +* khronos_utime_nanoseconds_t unsigned time interval or absolute time in +* nanoseconds +* khronos_stime_nanoseconds_t signed time interval in nanoseconds +* khronos_boolean_enum_t enumerated boolean type. This should +* only be used as a base type when a client API's boolean type is +* an enum. Client APIs which use an integer or other type for +* booleans cannot use this as the base type for their boolean. +* +* Tokens defined in khrplatform.h: +* +* KHRONOS_FALSE, KHRONOS_TRUE Enumerated boolean false/true values. +* +* KHRONOS_SUPPORT_INT64 is 1 if 64 bit integers are supported; otherwise 0. +* KHRONOS_SUPPORT_FLOAT is 1 if floats are supported; otherwise 0. +* +* Calling convention macros defined in this file: +* KHRONOS_APICALL +* KHRONOS_APIENTRY +* KHRONOS_APIATTRIBUTES +* +* These may be used in function prototypes as: +* +* KHRONOS_APICALL void KHRONOS_APIENTRY funcname( +* int arg1, +* int arg2) KHRONOS_APIATTRIBUTES; +*/ + +/*------------------------------------------------------------------------- +* Definition of KHRONOS_APICALL +*------------------------------------------------------------------------- +* This precedes the return type of the function in the function prototype. +*/ +#if defined(_WIN32) && !defined(__SCITECH_SNAP__) +# define KHRONOS_APICALL __declspec(dllimport) +#elif defined (__SYMBIAN32__) +# define KHRONOS_APICALL IMPORT_C +#else +# define KHRONOS_APICALL +#endif + +/*------------------------------------------------------------------------- +* Definition of KHRONOS_APIENTRY +*------------------------------------------------------------------------- +* This follows the return type of the function and precedes the function +* name in the function prototype. +*/ +#if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__) +/* Win32 but not WinCE */ +# define KHRONOS_APIENTRY __stdcall +#else +# define KHRONOS_APIENTRY +#endif + +/*------------------------------------------------------------------------- +* Definition of KHRONOS_APIATTRIBUTES +*------------------------------------------------------------------------- +* This follows the closing parenthesis of the function prototype arguments. +*/ +#if defined (__ARMCC_2__) +#define KHRONOS_APIATTRIBUTES __softfp +#else +#define KHRONOS_APIATTRIBUTES +#endif + +/*------------------------------------------------------------------------- +* basic type definitions +*-----------------------------------------------------------------------*/ +#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__GNUC__) || defined(__SCO__) || defined(__USLC__) + + +/* +* Using +*/ +#include +typedef int32_t khronos_int32_t; +typedef uint32_t khronos_uint32_t; +typedef int64_t khronos_int64_t; +typedef uint64_t khronos_uint64_t; +#define KHRONOS_SUPPORT_INT64 1 +#define KHRONOS_SUPPORT_FLOAT 1 + +#elif defined(__VMS ) || defined(__sgi) + +/* +* Using +*/ +#include +typedef int32_t khronos_int32_t; +typedef uint32_t khronos_uint32_t; +typedef int64_t khronos_int64_t; +typedef uint64_t khronos_uint64_t; +#define KHRONOS_SUPPORT_INT64 1 +#define KHRONOS_SUPPORT_FLOAT 1 + +#elif defined(_WIN32) && !defined(__SCITECH_SNAP__) + +/* +* Win32 +*/ +typedef __int32 khronos_int32_t; +typedef unsigned __int32 khronos_uint32_t; +typedef __int64 khronos_int64_t; +typedef unsigned __int64 khronos_uint64_t; +#define KHRONOS_SUPPORT_INT64 1 +#define KHRONOS_SUPPORT_FLOAT 1 + +#elif defined(__sun__) || defined(__digital__) + +/* +* Sun or Digital +*/ +typedef int khronos_int32_t; +typedef unsigned int khronos_uint32_t; +#if defined(__arch64__) || defined(_LP64) +typedef long int khronos_int64_t; +typedef unsigned long int khronos_uint64_t; +#else +typedef long long int khronos_int64_t; +typedef unsigned long long int khronos_uint64_t; +#endif /* __arch64__ */ +#define KHRONOS_SUPPORT_INT64 1 +#define KHRONOS_SUPPORT_FLOAT 1 + +#elif 0 + +/* +* Hypothetical platform with no float or int64 support +*/ +typedef int khronos_int32_t; +typedef unsigned int khronos_uint32_t; +#define KHRONOS_SUPPORT_INT64 0 +#define KHRONOS_SUPPORT_FLOAT 0 + +#else + +/* +* Generic fallback +*/ +#include +typedef int32_t khronos_int32_t; +typedef uint32_t khronos_uint32_t; +typedef int64_t khronos_int64_t; +typedef uint64_t khronos_uint64_t; +#define KHRONOS_SUPPORT_INT64 1 +#define KHRONOS_SUPPORT_FLOAT 1 + +#endif + + +/* +* Types that are (so far) the same on all platforms +*/ +typedef signed char khronos_int8_t; +typedef unsigned char khronos_uint8_t; +typedef signed short int khronos_int16_t; +typedef unsigned short int khronos_uint16_t; + +/* +* Types that differ between LLP64 and LP64 architectures - in LLP64, +* pointers are 64 bits, but 'long' is still 32 bits. Win64 appears +* to be the only LLP64 architecture in current use. +*/ +#ifdef _WIN64 +typedef signed long long int khronos_intptr_t; +typedef unsigned long long int khronos_uintptr_t; +typedef signed long long int khronos_ssize_t; +typedef unsigned long long int khronos_usize_t; +#else +typedef signed long int khronos_intptr_t; +typedef unsigned long int khronos_uintptr_t; +typedef signed long int khronos_ssize_t; +typedef unsigned long int khronos_usize_t; +#endif + +#if KHRONOS_SUPPORT_FLOAT +/* +* Float type +*/ +typedef float khronos_float_t; +#endif + +#if KHRONOS_SUPPORT_INT64 +/* Time types +* +* These types can be used to represent a time interval in nanoseconds or +* an absolute Unadjusted System Time. Unadjusted System Time is the number +* of nanoseconds since some arbitrary system event (e.g. since the last +* time the system booted). The Unadjusted System Time is an unsigned +* 64 bit value that wraps back to 0 every 584 years. Time intervals +* may be either signed or unsigned. +*/ +typedef khronos_uint64_t khronos_utime_nanoseconds_t; +typedef khronos_int64_t khronos_stime_nanoseconds_t; +#endif + +/* +* Dummy value used to pad enum types to 32 bits. +*/ +#ifndef KHRONOS_MAX_ENUM +#define KHRONOS_MAX_ENUM 0x7FFFFFFF +#endif + +/* +* Enumerated boolean type +* +* Values other than zero should be considered to be true. Therefore +* comparisons should not be made against KHRONOS_TRUE. +*/ +typedef enum { + KHRONOS_FALSE = 0, + KHRONOS_TRUE = 1, + KHRONOS_BOOLEAN_ENUM_FORCE_SIZE = KHRONOS_MAX_ENUM +} khronos_boolean_enum_t; + +#endif /* __khrplatform_h_ */ + + +#ifndef __eglplatform_h_ +#define __eglplatform_h_ + +/* +** Copyright (c) 2007-2009 The Khronos Group Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and/or associated documentation files (the +** "Materials"), to deal in the Materials without restriction, including +** without limitation the rights to use, copy, modify, merge, publish, +** distribute, sublicense, and/or sell copies of the Materials, and to +** permit persons to whom the Materials are furnished to do so, subject to +** the following conditions: +** +** The above copyright notice and this permission notice shall be included +** in all copies or substantial portions of the Materials. +** +** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +*/ + +/* Platform-specific types and definitions for egl.h +* $Revision: 12306 $ on $Date: 2010-08-25 09:51:28 -0700 (Wed, 25 Aug 2010) $ +* +* Adopters may modify khrplatform.h and this file to suit their platform. +* You are encouraged to submit all modifications to the Khronos group so that +* they can be included in future versions of this file. Please submit changes +* by sending them to the public Khronos Bugzilla (http://khronos.org/bugzilla) +* by filing a bug against product "EGL" component "Registry". +*/ + +/*#include */ + +/* Macros used in EGL function prototype declarations. +* +* EGL functions should be prototyped as: +* +* EGLAPI return-type EGLAPIENTRY eglFunction(arguments); +* typedef return-type (EXPAPIENTRYP PFNEGLFUNCTIONPROC) (arguments); +* +* KHRONOS_APICALL and KHRONOS_APIENTRY are defined in KHR/khrplatform.h +*/ + +#ifndef EGLAPI +#define EGLAPI KHRONOS_APICALL +#endif + +#ifndef EGLAPIENTRY +#define EGLAPIENTRY KHRONOS_APIENTRY +#endif +#define EGLAPIENTRYP EGLAPIENTRY* + +/* The types NativeDisplayType, NativeWindowType, and NativePixmapType +* are aliases of window-system-dependent types, such as X Display * or +* Windows Device Context. They must be defined in platform-specific +* code below. The EGL-prefixed versions of Native*Type are the same +* types, renamed in EGL 1.3 so all types in the API start with "EGL". +* +* Khronos STRONGLY RECOMMENDS that you use the default definitions +* provided below, since these changes affect both binary and source +* portability of applications using EGL running on different EGL +* implementations. +*/ + +#if defined(_WIN32) || defined(__VC32__) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) /* Win32 and WinCE */ +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN 1 +#endif +#include + +typedef HDC EGLNativeDisplayType; +typedef HBITMAP EGLNativePixmapType; +typedef HWND EGLNativeWindowType; + +#elif defined(__WINSCW__) || defined(__SYMBIAN32__) /* Symbian */ + +typedef int EGLNativeDisplayType; +typedef void *EGLNativeWindowType; +typedef void *EGLNativePixmapType; + +#elif defined(WL_EGL_PLATFORM) + +typedef struct wl_display *EGLNativeDisplayType; +typedef struct wl_egl_pixmap *EGLNativePixmapType; +typedef struct wl_egl_window *EGLNativeWindowType; + +#elif defined(__GBM__) + +typedef struct gbm_device *EGLNativeDisplayType; +typedef struct gbm_bo *EGLNativePixmapType; +typedef void *EGLNativeWindowType; + +#elif defined(ANDROID) /* Android */ + +struct ANativeWindow; +struct egl_native_pixmap_t; + +typedef struct ANativeWindow *EGLNativeWindowType; +typedef struct egl_native_pixmap_t *EGLNativePixmapType; +typedef void *EGLNativeDisplayType; + +#elif defined(MIR_EGL_PLATFORM) + +#include +typedef MirEGLNativeDisplayType EGLNativeDisplayType; +typedef void *EGLNativePixmapType; +typedef MirEGLNativeWindowType EGLNativeWindowType; + +#elif defined(__unix__) + +#ifdef MESA_EGL_NO_X11_HEADERS + +typedef void *EGLNativeDisplayType; +typedef khronos_uintptr_t EGLNativePixmapType; +typedef khronos_uintptr_t EGLNativeWindowType; + +#else + +/* X11 (tentative) */ +#include +#include + +typedef Display *EGLNativeDisplayType; +typedef Pixmap EGLNativePixmapType; +typedef Window EGLNativeWindowType; + +#endif /* MESA_EGL_NO_X11_HEADERS */ + +#else +#error "Platform not recognized" +#endif + +/* EGL 1.2 types, renamed for consistency in EGL 1.3 */ +typedef EGLNativeDisplayType NativeDisplayType; +typedef EGLNativePixmapType NativePixmapType; +typedef EGLNativeWindowType NativeWindowType; + + +/* Define EGLint. This must be a signed integral type large enough to contain +* all legal attribute names and values passed into and out of EGL, whether +* their type is boolean, bitmask, enumerant (symbolic constant), integer, +* handle, or other. While in general a 32-bit integer will suffice, if +* handles are 64 bit types, then EGLint should be defined as a signed 64-bit +* integer type. +*/ +typedef khronos_int32_t EGLint; + +#endif /* __eglplatform_h */ + +/* -*- mode: c; tab-width: 8; -*- */ +/* vi: set sw=4 ts=8: */ +/* Reference version of egl.h for EGL 1.4. +* $Revision: 9356 $ on $Date: 2009-10-21 02:52:25 -0700 (Wed, 21 Oct 2009) $ +*/ + +/* +** Copyright (c) 2007-2009 The Khronos Group Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and/or associated documentation files (the +** "Materials"), to deal in the Materials without restriction, including +** without limitation the rights to use, copy, modify, merge, publish, +** distribute, sublicense, and/or sell copies of the Materials, and to +** permit persons to whom the Materials are furnished to do so, subject to +** the following conditions: +** +** The above copyright notice and this permission notice shall be included +** in all copies or substantial portions of the Materials. +** +** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +*/ + +#ifndef __egl_h_ +#define __egl_h_ + +/* All platform-dependent types and macro boilerplate (such as EGLAPI +* and EGLAPIENTRY) should go in eglplatform.h. +*/ +/*#include */ + +#ifdef __cplusplus +extern "C" { +#endif + + /* EGL Types */ + /* EGLint is defined in eglplatform.h */ + typedef unsigned int EGLBoolean; + typedef unsigned int EGLenum; + typedef void *EGLConfig; + typedef void *EGLContext; + typedef void *EGLDisplay; + typedef void *EGLSurface; + typedef void *EGLClientBuffer; + + /* EGL Versioning */ +#define EGL_VERSION_1_0 1 +#define EGL_VERSION_1_1 1 +#define EGL_VERSION_1_2 1 +#define EGL_VERSION_1_3 1 +#define EGL_VERSION_1_4 1 + + /* EGL Enumerants. Bitmasks and other exceptional cases aside, most + * enums are assigned unique values starting at 0x3000. + */ + + /* EGL aliases */ +#define EGL_FALSE 0 +#define EGL_TRUE 1 + + /* Out-of-band handle values */ +#define EGL_DEFAULT_DISPLAY ((EGLNativeDisplayType)0) +#define EGL_NO_CONTEXT ((EGLContext)0) +#define EGL_NO_DISPLAY ((EGLDisplay)0) +#define EGL_NO_SURFACE ((EGLSurface)0) + + /* Out-of-band attribute value */ +#define EGL_DONT_CARE ((EGLint)-1) + + /* Errors / GetError return values */ +#define EGL_SUCCESS 0x3000 +#define EGL_NOT_INITIALIZED 0x3001 +#define EGL_BAD_ACCESS 0x3002 +#define EGL_BAD_ALLOC 0x3003 +#define EGL_BAD_ATTRIBUTE 0x3004 +#define EGL_BAD_CONFIG 0x3005 +#define EGL_BAD_CONTEXT 0x3006 +#define EGL_BAD_CURRENT_SURFACE 0x3007 +#define EGL_BAD_DISPLAY 0x3008 +#define EGL_BAD_MATCH 0x3009 +#define EGL_BAD_NATIVE_PIXMAP 0x300A +#define EGL_BAD_NATIVE_WINDOW 0x300B +#define EGL_BAD_PARAMETER 0x300C +#define EGL_BAD_SURFACE 0x300D +#define EGL_CONTEXT_LOST 0x300E /* EGL 1.1 - IMG_power_management */ + + /* Reserved 0x300F-0x301F for additional errors */ + + /* Config attributes */ +#define EGL_BUFFER_SIZE 0x3020 +#define EGL_ALPHA_SIZE 0x3021 +#define EGL_BLUE_SIZE 0x3022 +#define EGL_GREEN_SIZE 0x3023 +#define EGL_RED_SIZE 0x3024 +#define EGL_DEPTH_SIZE 0x3025 +#define EGL_STENCIL_SIZE 0x3026 +#define EGL_CONFIG_CAVEAT 0x3027 +#define EGL_CONFIG_ID 0x3028 +#define EGL_LEVEL 0x3029 +#define EGL_MAX_PBUFFER_HEIGHT 0x302A +#define EGL_MAX_PBUFFER_PIXELS 0x302B +#define EGL_MAX_PBUFFER_WIDTH 0x302C +#define EGL_NATIVE_RENDERABLE 0x302D +#define EGL_NATIVE_VISUAL_ID 0x302E +#define EGL_NATIVE_VISUAL_TYPE 0x302F +#define EGL_SAMPLES 0x3031 +#define EGL_SAMPLE_BUFFERS 0x3032 +#define EGL_SURFACE_TYPE 0x3033 +#define EGL_TRANSPARENT_TYPE 0x3034 +#define EGL_TRANSPARENT_BLUE_VALUE 0x3035 +#define EGL_TRANSPARENT_GREEN_VALUE 0x3036 +#define EGL_TRANSPARENT_RED_VALUE 0x3037 +#define EGL_NONE 0x3038 /* Attrib list terminator */ +#define EGL_BIND_TO_TEXTURE_RGB 0x3039 +#define EGL_BIND_TO_TEXTURE_RGBA 0x303A +#define EGL_MIN_SWAP_INTERVAL 0x303B +#define EGL_MAX_SWAP_INTERVAL 0x303C +#define EGL_LUMINANCE_SIZE 0x303D +#define EGL_ALPHA_MASK_SIZE 0x303E +#define EGL_COLOR_BUFFER_TYPE 0x303F +#define EGL_RENDERABLE_TYPE 0x3040 +#define EGL_MATCH_NATIVE_PIXMAP 0x3041 /* Pseudo-attribute (not queryable) */ +#define EGL_CONFORMANT 0x3042 + + /* Reserved 0x3041-0x304F for additional config attributes */ + + /* Config attribute values */ +#define EGL_SLOW_CONFIG 0x3050 /* EGL_CONFIG_CAVEAT value */ +#define EGL_NON_CONFORMANT_CONFIG 0x3051 /* EGL_CONFIG_CAVEAT value */ +#define EGL_TRANSPARENT_RGB 0x3052 /* EGL_TRANSPARENT_TYPE value */ +#define EGL_RGB_BUFFER 0x308E /* EGL_COLOR_BUFFER_TYPE value */ +#define EGL_LUMINANCE_BUFFER 0x308F /* EGL_COLOR_BUFFER_TYPE value */ + + /* More config attribute values, for EGL_TEXTURE_FORMAT */ +#define EGL_NO_TEXTURE 0x305C +#define EGL_TEXTURE_RGB 0x305D +#define EGL_TEXTURE_RGBA 0x305E +#define EGL_TEXTURE_2D 0x305F + + /* Config attribute mask bits */ +#define EGL_PBUFFER_BIT 0x0001 /* EGL_SURFACE_TYPE mask bits */ +#define EGL_PIXMAP_BIT 0x0002 /* EGL_SURFACE_TYPE mask bits */ +#define EGL_WINDOW_BIT 0x0004 /* EGL_SURFACE_TYPE mask bits */ +#define EGL_VG_COLORSPACE_LINEAR_BIT 0x0020 /* EGL_SURFACE_TYPE mask bits */ +#define EGL_VG_ALPHA_FORMAT_PRE_BIT 0x0040 /* EGL_SURFACE_TYPE mask bits */ +#define EGL_MULTISAMPLE_RESOLVE_BOX_BIT 0x0200 /* EGL_SURFACE_TYPE mask bits */ +#define EGL_SWAP_BEHAVIOR_PRESERVED_BIT 0x0400 /* EGL_SURFACE_TYPE mask bits */ + +#define EGL_OPENGL_ES_BIT 0x0001 /* EGL_RENDERABLE_TYPE mask bits */ +#define EGL_OPENVG_BIT 0x0002 /* EGL_RENDERABLE_TYPE mask bits */ +#define EGL_OPENGL_ES2_BIT 0x0004 /* EGL_RENDERABLE_TYPE mask bits */ +#define EGL_OPENGL_BIT 0x0008 /* EGL_RENDERABLE_TYPE mask bits */ + + /* QueryString targets */ +#define EGL_VENDOR 0x3053 +#define EGL_VERSION 0x3054 +#define EGL_EXTENSIONS 0x3055 +#define EGL_CLIENT_APIS 0x308D + + /* QuerySurface / SurfaceAttrib / CreatePbufferSurface targets */ +#define EGL_HEIGHT 0x3056 +#define EGL_WIDTH 0x3057 +#define EGL_LARGEST_PBUFFER 0x3058 +#define EGL_TEXTURE_FORMAT 0x3080 +#define EGL_TEXTURE_TARGET 0x3081 +#define EGL_MIPMAP_TEXTURE 0x3082 +#define EGL_MIPMAP_LEVEL 0x3083 +#define EGL_RENDER_BUFFER 0x3086 +#define EGL_VG_COLORSPACE 0x3087 +#define EGL_VG_ALPHA_FORMAT 0x3088 +#define EGL_HORIZONTAL_RESOLUTION 0x3090 +#define EGL_VERTICAL_RESOLUTION 0x3091 +#define EGL_PIXEL_ASPECT_RATIO 0x3092 +#define EGL_SWAP_BEHAVIOR 0x3093 +#define EGL_MULTISAMPLE_RESOLVE 0x3099 + + /* EGL_RENDER_BUFFER values / BindTexImage / ReleaseTexImage buffer targets */ +#define EGL_BACK_BUFFER 0x3084 +#define EGL_SINGLE_BUFFER 0x3085 + + /* OpenVG color spaces */ +#define EGL_VG_COLORSPACE_sRGB 0x3089 /* EGL_VG_COLORSPACE value */ +#define EGL_VG_COLORSPACE_LINEAR 0x308A /* EGL_VG_COLORSPACE value */ + + /* OpenVG alpha formats */ +#define EGL_VG_ALPHA_FORMAT_NONPRE 0x308B /* EGL_ALPHA_FORMAT value */ +#define EGL_VG_ALPHA_FORMAT_PRE 0x308C /* EGL_ALPHA_FORMAT value */ + + /* Constant scale factor by which fractional display resolutions & + * aspect ratio are scaled when queried as integer values. + */ +#define EGL_DISPLAY_SCALING 10000 + + /* Unknown display resolution/aspect ratio */ +#define EGL_UNKNOWN ((EGLint)-1) + + /* Back buffer swap behaviors */ +#define EGL_BUFFER_PRESERVED 0x3094 /* EGL_SWAP_BEHAVIOR value */ +#define EGL_BUFFER_DESTROYED 0x3095 /* EGL_SWAP_BEHAVIOR value */ + + /* CreatePbufferFromClientBuffer buffer types */ +#define EGL_OPENVG_IMAGE 0x3096 + + /* QueryContext targets */ +#define EGL_CONTEXT_CLIENT_TYPE 0x3097 + + /* CreateContext attributes */ +#define EGL_CONTEXT_CLIENT_VERSION 0x3098 + + /* Multisample resolution behaviors */ +#define EGL_MULTISAMPLE_RESOLVE_DEFAULT 0x309A /* EGL_MULTISAMPLE_RESOLVE value */ +#define EGL_MULTISAMPLE_RESOLVE_BOX 0x309B /* EGL_MULTISAMPLE_RESOLVE value */ + + /* BindAPI/QueryAPI targets */ +#define EGL_OPENGL_ES_API 0x30A0 +#define EGL_OPENVG_API 0x30A1 +#define EGL_OPENGL_API 0x30A2 + + /* GetCurrentSurface targets */ +#define EGL_DRAW 0x3059 +#define EGL_READ 0x305A + + /* WaitNative engines */ +#define EGL_CORE_NATIVE_ENGINE 0x305B + + /* EGL 1.2 tokens renamed for consistency in EGL 1.3 */ +#define EGL_COLORSPACE EGL_VG_COLORSPACE +#define EGL_ALPHA_FORMAT EGL_VG_ALPHA_FORMAT +#define EGL_COLORSPACE_sRGB EGL_VG_COLORSPACE_sRGB +#define EGL_COLORSPACE_LINEAR EGL_VG_COLORSPACE_LINEAR +#define EGL_ALPHA_FORMAT_NONPRE EGL_VG_ALPHA_FORMAT_NONPRE +#define EGL_ALPHA_FORMAT_PRE EGL_VG_ALPHA_FORMAT_PRE + + /* EGL extensions must request enum blocks from the Khronos + * API Registrar, who maintains the enumerant registry. Submit + * a bug in Khronos Bugzilla against task "Registry". + */ + + + + /* EGL Functions */ + + EGLAPI EGLint EGLAPIENTRY eglGetError(void); + + EGLAPI EGLDisplay EGLAPIENTRY eglGetDisplay(EGLNativeDisplayType display_id); + EGLAPI EGLBoolean EGLAPIENTRY eglInitialize(EGLDisplay dpy, EGLint *major, EGLint *minor); + EGLAPI EGLBoolean EGLAPIENTRY eglTerminate(EGLDisplay dpy); + + EGLAPI const char * EGLAPIENTRY eglQueryString(EGLDisplay dpy, EGLint name); + + EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigs(EGLDisplay dpy, EGLConfig *configs, + EGLint config_size, EGLint *num_config); + EGLAPI EGLBoolean EGLAPIENTRY eglChooseConfig(EGLDisplay dpy, const EGLint *attrib_list, + EGLConfig *configs, EGLint config_size, + EGLint *num_config); + EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigAttrib(EGLDisplay dpy, EGLConfig config, + EGLint attribute, EGLint *value); + + EGLAPI EGLSurface EGLAPIENTRY eglCreateWindowSurface(EGLDisplay dpy, EGLConfig config, + EGLNativeWindowType win, + const EGLint *attrib_list); + EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferSurface(EGLDisplay dpy, EGLConfig config, + const EGLint *attrib_list); + EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurface(EGLDisplay dpy, EGLConfig config, + EGLNativePixmapType pixmap, + const EGLint *attrib_list); + EGLAPI EGLBoolean EGLAPIENTRY eglDestroySurface(EGLDisplay dpy, EGLSurface surface); + EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurface(EGLDisplay dpy, EGLSurface surface, + EGLint attribute, EGLint *value); + + EGLAPI EGLBoolean EGLAPIENTRY eglBindAPI(EGLenum api); + EGLAPI EGLenum EGLAPIENTRY eglQueryAPI(void); + + EGLAPI EGLBoolean EGLAPIENTRY eglWaitClient(void); + + EGLAPI EGLBoolean EGLAPIENTRY eglReleaseThread(void); + + EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferFromClientBuffer( + EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, + EGLConfig config, const EGLint *attrib_list); + + EGLAPI EGLBoolean EGLAPIENTRY eglSurfaceAttrib(EGLDisplay dpy, EGLSurface surface, + EGLint attribute, EGLint value); + EGLAPI EGLBoolean EGLAPIENTRY eglBindTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer); + EGLAPI EGLBoolean EGLAPIENTRY eglReleaseTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer); + + + EGLAPI EGLBoolean EGLAPIENTRY eglSwapInterval(EGLDisplay dpy, EGLint interval); + + + EGLAPI EGLContext EGLAPIENTRY eglCreateContext(EGLDisplay dpy, EGLConfig config, + EGLContext share_context, + const EGLint *attrib_list); + EGLAPI EGLBoolean EGLAPIENTRY eglDestroyContext(EGLDisplay dpy, EGLContext ctx); + EGLAPI EGLBoolean EGLAPIENTRY eglMakeCurrent(EGLDisplay dpy, EGLSurface draw, + EGLSurface read, EGLContext ctx); + + EGLAPI EGLContext EGLAPIENTRY eglGetCurrentContext(void); + EGLAPI EGLSurface EGLAPIENTRY eglGetCurrentSurface(EGLint readdraw); + EGLAPI EGLDisplay EGLAPIENTRY eglGetCurrentDisplay(void); + EGLAPI EGLBoolean EGLAPIENTRY eglQueryContext(EGLDisplay dpy, EGLContext ctx, + EGLint attribute, EGLint *value); + + EGLAPI EGLBoolean EGLAPIENTRY eglWaitGL(void); + EGLAPI EGLBoolean EGLAPIENTRY eglWaitNative(EGLint engine); + EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers(EGLDisplay dpy, EGLSurface surface); + EGLAPI EGLBoolean EGLAPIENTRY eglCopyBuffers(EGLDisplay dpy, EGLSurface surface, + EGLNativePixmapType target); + + /* This is a generic function pointer type, whose name indicates it must + * be cast to the proper type *and calling convention* before use. + */ + typedef void(*__eglMustCastToProperFunctionPointerType)(void); + + /* Now, define eglGetProcAddress using the generic function ptr. type */ + EGLAPI __eglMustCastToProperFunctionPointerType EGLAPIENTRY + eglGetProcAddress(const char *procname); + +#ifdef __cplusplus +} +#endif + +#endif /* __egl_h_ */ + + + + +#ifndef __eglext_h_ +#define __eglext_h_ + +#ifdef __cplusplus +extern "C" { +#endif + + /* + ** Copyright (c) 2007-2013 The Khronos Group Inc. + ** + ** Permission is hereby granted, free of charge, to any person obtaining a + ** copy of this software and/or associated documentation files (the + ** "Materials"), to deal in the Materials without restriction, including + ** without limitation the rights to use, copy, modify, merge, publish, + ** distribute, sublicense, and/or sell copies of the Materials, and to + ** permit persons to whom the Materials are furnished to do so, subject to + ** the following conditions: + ** + ** The above copyright notice and this permission notice shall be included + ** in all copies or substantial portions of the Materials. + ** + ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. + */ + +/* #include */ + + /*************************************************************/ + + /* Header file version number */ + /* Current version at http://www.khronos.org/registry/egl/ */ + /* $Revision: 21254 $ on $Date: 2013-04-25 03:11:55 -0700 (Thu, 25 Apr 2013) $ */ +#define EGL_EGLEXT_VERSION 16 + +#ifndef EGL_KHR_config_attribs +#define EGL_KHR_config_attribs 1 +#define EGL_CONFORMANT_KHR 0x3042 /* EGLConfig attribute */ +#define EGL_VG_COLORSPACE_LINEAR_BIT_KHR 0x0020 /* EGL_SURFACE_TYPE bitfield */ +#define EGL_VG_ALPHA_FORMAT_PRE_BIT_KHR 0x0040 /* EGL_SURFACE_TYPE bitfield */ +#endif + +#ifndef EGL_KHR_lock_surface +#define EGL_KHR_lock_surface 1 +#define EGL_READ_SURFACE_BIT_KHR 0x0001 /* EGL_LOCK_USAGE_HINT_KHR bitfield */ +#define EGL_WRITE_SURFACE_BIT_KHR 0x0002 /* EGL_LOCK_USAGE_HINT_KHR bitfield */ +#define EGL_LOCK_SURFACE_BIT_KHR 0x0080 /* EGL_SURFACE_TYPE bitfield */ +#define EGL_OPTIMAL_FORMAT_BIT_KHR 0x0100 /* EGL_SURFACE_TYPE bitfield */ +#define EGL_MATCH_FORMAT_KHR 0x3043 /* EGLConfig attribute */ +#define EGL_FORMAT_RGB_565_EXACT_KHR 0x30C0 /* EGL_MATCH_FORMAT_KHR value */ +#define EGL_FORMAT_RGB_565_KHR 0x30C1 /* EGL_MATCH_FORMAT_KHR value */ +#define EGL_FORMAT_RGBA_8888_EXACT_KHR 0x30C2 /* EGL_MATCH_FORMAT_KHR value */ +#define EGL_FORMAT_RGBA_8888_KHR 0x30C3 /* EGL_MATCH_FORMAT_KHR value */ +#define EGL_MAP_PRESERVE_PIXELS_KHR 0x30C4 /* eglLockSurfaceKHR attribute */ +#define EGL_LOCK_USAGE_HINT_KHR 0x30C5 /* eglLockSurfaceKHR attribute */ +#define EGL_BITMAP_POINTER_KHR 0x30C6 /* eglQuerySurface attribute */ +#define EGL_BITMAP_PITCH_KHR 0x30C7 /* eglQuerySurface attribute */ +#define EGL_BITMAP_ORIGIN_KHR 0x30C8 /* eglQuerySurface attribute */ +#define EGL_BITMAP_PIXEL_RED_OFFSET_KHR 0x30C9 /* eglQuerySurface attribute */ +#define EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR 0x30CA /* eglQuerySurface attribute */ +#define EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR 0x30CB /* eglQuerySurface attribute */ +#define EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR 0x30CC /* eglQuerySurface attribute */ +#define EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR 0x30CD /* eglQuerySurface attribute */ +#define EGL_LOWER_LEFT_KHR 0x30CE /* EGL_BITMAP_ORIGIN_KHR value */ +#define EGL_UPPER_LEFT_KHR 0x30CF /* EGL_BITMAP_ORIGIN_KHR value */ +#ifdef EGL_EGLEXT_PROTOTYPES + EGLAPI EGLBoolean EGLAPIENTRY eglLockSurfaceKHR(EGLDisplay display, EGLSurface surface, const EGLint *attrib_list); + EGLAPI EGLBoolean EGLAPIENTRY eglUnlockSurfaceKHR(EGLDisplay display, EGLSurface surface); +#endif /* EGL_EGLEXT_PROTOTYPES */ + typedef EGLBoolean(EGLAPIENTRYP PFNEGLLOCKSURFACEKHRPROC) (EGLDisplay display, EGLSurface surface, const EGLint *attrib_list); + typedef EGLBoolean(EGLAPIENTRYP PFNEGLUNLOCKSURFACEKHRPROC) (EGLDisplay display, EGLSurface surface); +#endif + +#ifndef EGL_KHR_image +#define EGL_KHR_image 1 +#define EGL_NATIVE_PIXMAP_KHR 0x30B0 /* eglCreateImageKHR target */ + typedef void *EGLImageKHR; +#define EGL_NO_IMAGE_KHR ((EGLImageKHR)0) +#ifdef EGL_EGLEXT_PROTOTYPES + EGLAPI EGLImageKHR EGLAPIENTRY eglCreateImageKHR(EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list); + EGLAPI EGLBoolean EGLAPIENTRY eglDestroyImageKHR(EGLDisplay dpy, EGLImageKHR image); +#endif /* EGL_EGLEXT_PROTOTYPES */ + typedef EGLImageKHR(EGLAPIENTRYP PFNEGLCREATEIMAGEKHRPROC) (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list); + typedef EGLBoolean(EGLAPIENTRYP PFNEGLDESTROYIMAGEKHRPROC) (EGLDisplay dpy, EGLImageKHR image); +#endif + +#ifndef EGL_KHR_vg_parent_image +#define EGL_KHR_vg_parent_image 1 +#define EGL_VG_PARENT_IMAGE_KHR 0x30BA /* eglCreateImageKHR target */ +#endif + +#ifndef EGL_KHR_gl_texture_2D_image +#define EGL_KHR_gl_texture_2D_image 1 +#define EGL_GL_TEXTURE_2D_KHR 0x30B1 /* eglCreateImageKHR target */ +#define EGL_GL_TEXTURE_LEVEL_KHR 0x30BC /* eglCreateImageKHR attribute */ +#endif + +#ifndef EGL_KHR_gl_texture_cubemap_image +#define EGL_KHR_gl_texture_cubemap_image 1 +#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR 0x30B3 /* eglCreateImageKHR target */ +#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR 0x30B4 /* eglCreateImageKHR target */ +#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR 0x30B5 /* eglCreateImageKHR target */ +#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR 0x30B6 /* eglCreateImageKHR target */ +#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR 0x30B7 /* eglCreateImageKHR target */ +#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR 0x30B8 /* eglCreateImageKHR target */ +#endif + +#ifndef EGL_KHR_gl_texture_3D_image +#define EGL_KHR_gl_texture_3D_image 1 +#define EGL_GL_TEXTURE_3D_KHR 0x30B2 /* eglCreateImageKHR target */ +#define EGL_GL_TEXTURE_ZOFFSET_KHR 0x30BD /* eglCreateImageKHR attribute */ +#endif + +#ifndef EGL_KHR_gl_renderbuffer_image +#define EGL_KHR_gl_renderbuffer_image 1 +#define EGL_GL_RENDERBUFFER_KHR 0x30B9 /* eglCreateImageKHR target */ +#endif + +#if KHRONOS_SUPPORT_INT64 /* EGLTimeKHR requires 64-bit uint support */ +#ifndef EGL_KHR_reusable_sync +#define EGL_KHR_reusable_sync 1 + + typedef void* EGLSyncKHR; + typedef khronos_utime_nanoseconds_t EGLTimeKHR; + +#define EGL_SYNC_STATUS_KHR 0x30F1 +#define EGL_SIGNALED_KHR 0x30F2 +#define EGL_UNSIGNALED_KHR 0x30F3 +#define EGL_TIMEOUT_EXPIRED_KHR 0x30F5 +#define EGL_CONDITION_SATISFIED_KHR 0x30F6 +#define EGL_SYNC_TYPE_KHR 0x30F7 +#define EGL_SYNC_REUSABLE_KHR 0x30FA +#define EGL_SYNC_FLUSH_COMMANDS_BIT_KHR 0x0001 /* eglClientWaitSyncKHR bitfield */ +#define EGL_FOREVER_KHR 0xFFFFFFFFFFFFFFFFull +#define EGL_NO_SYNC_KHR ((EGLSyncKHR)0) +#ifdef EGL_EGLEXT_PROTOTYPES + EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateSyncKHR(EGLDisplay dpy, EGLenum type, const EGLint *attrib_list); + EGLAPI EGLBoolean EGLAPIENTRY eglDestroySyncKHR(EGLDisplay dpy, EGLSyncKHR sync); + EGLAPI EGLint EGLAPIENTRY eglClientWaitSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout); + EGLAPI EGLBoolean EGLAPIENTRY eglSignalSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode); + EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttribKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value); +#endif /* EGL_EGLEXT_PROTOTYPES */ + typedef EGLSyncKHR(EGLAPIENTRYP PFNEGLCREATESYNCKHRPROC) (EGLDisplay dpy, EGLenum type, const EGLint *attrib_list); + typedef EGLBoolean(EGLAPIENTRYP PFNEGLDESTROYSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync); + typedef EGLint(EGLAPIENTRYP PFNEGLCLIENTWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout); + typedef EGLBoolean(EGLAPIENTRYP PFNEGLSIGNALSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode); + typedef EGLBoolean(EGLAPIENTRYP PFNEGLGETSYNCATTRIBKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value); +#endif +#endif + +#ifndef EGL_KHR_image_base +#define EGL_KHR_image_base 1 + /* Most interfaces defined by EGL_KHR_image_pixmap above */ +#define EGL_IMAGE_PRESERVED_KHR 0x30D2 /* eglCreateImageKHR attribute */ +#endif + +#ifndef EGL_KHR_image_pixmap +#define EGL_KHR_image_pixmap 1 + /* Interfaces defined by EGL_KHR_image above */ +#endif + +#ifndef EGL_IMG_context_priority +#define EGL_IMG_context_priority 1 +#define EGL_CONTEXT_PRIORITY_LEVEL_IMG 0x3100 +#define EGL_CONTEXT_PRIORITY_HIGH_IMG 0x3101 +#define EGL_CONTEXT_PRIORITY_MEDIUM_IMG 0x3102 +#define EGL_CONTEXT_PRIORITY_LOW_IMG 0x3103 +#endif + +#ifndef EGL_KHR_lock_surface2 +#define EGL_KHR_lock_surface2 1 +#define EGL_BITMAP_PIXEL_SIZE_KHR 0x3110 +#endif + +#ifndef EGL_NV_coverage_sample +#define EGL_NV_coverage_sample 1 +#define EGL_COVERAGE_BUFFERS_NV 0x30E0 +#define EGL_COVERAGE_SAMPLES_NV 0x30E1 +#endif + +#ifndef EGL_NV_depth_nonlinear +#define EGL_NV_depth_nonlinear 1 +#define EGL_DEPTH_ENCODING_NV 0x30E2 +#define EGL_DEPTH_ENCODING_NONE_NV 0 +#define EGL_DEPTH_ENCODING_NONLINEAR_NV 0x30E3 +#endif + +#if KHRONOS_SUPPORT_INT64 /* EGLTimeNV requires 64-bit uint support */ +#ifndef EGL_NV_sync +#define EGL_NV_sync 1 +#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_NV 0x30E6 +#define EGL_SYNC_STATUS_NV 0x30E7 +#define EGL_SIGNALED_NV 0x30E8 +#define EGL_UNSIGNALED_NV 0x30E9 +#define EGL_SYNC_FLUSH_COMMANDS_BIT_NV 0x0001 +#define EGL_FOREVER_NV 0xFFFFFFFFFFFFFFFFull +#define EGL_ALREADY_SIGNALED_NV 0x30EA +#define EGL_TIMEOUT_EXPIRED_NV 0x30EB +#define EGL_CONDITION_SATISFIED_NV 0x30EC +#define EGL_SYNC_TYPE_NV 0x30ED +#define EGL_SYNC_CONDITION_NV 0x30EE +#define EGL_SYNC_FENCE_NV 0x30EF +#define EGL_NO_SYNC_NV ((EGLSyncNV)0) + typedef void* EGLSyncNV; + typedef khronos_utime_nanoseconds_t EGLTimeNV; +#ifdef EGL_EGLEXT_PROTOTYPES + EGLAPI EGLSyncNV EGLAPIENTRY eglCreateFenceSyncNV(EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list); + EGLAPI EGLBoolean EGLAPIENTRY eglDestroySyncNV(EGLSyncNV sync); + EGLAPI EGLBoolean EGLAPIENTRY eglFenceNV(EGLSyncNV sync); + EGLAPI EGLint EGLAPIENTRY eglClientWaitSyncNV(EGLSyncNV sync, EGLint flags, EGLTimeNV timeout); + EGLAPI EGLBoolean EGLAPIENTRY eglSignalSyncNV(EGLSyncNV sync, EGLenum mode); + EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttribNV(EGLSyncNV sync, EGLint attribute, EGLint *value); +#endif /* EGL_EGLEXT_PROTOTYPES */ + typedef EGLSyncNV(EGLAPIENTRYP PFNEGLCREATEFENCESYNCNVPROC) (EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list); + typedef EGLBoolean(EGLAPIENTRYP PFNEGLDESTROYSYNCNVPROC) (EGLSyncNV sync); + typedef EGLBoolean(EGLAPIENTRYP PFNEGLFENCENVPROC) (EGLSyncNV sync); + typedef EGLint(EGLAPIENTRYP PFNEGLCLIENTWAITSYNCNVPROC) (EGLSyncNV sync, EGLint flags, EGLTimeNV timeout); + typedef EGLBoolean(EGLAPIENTRYP PFNEGLSIGNALSYNCNVPROC) (EGLSyncNV sync, EGLenum mode); + typedef EGLBoolean(EGLAPIENTRYP PFNEGLGETSYNCATTRIBNVPROC) (EGLSyncNV sync, EGLint attribute, EGLint *value); +#endif +#endif + +#if KHRONOS_SUPPORT_INT64 /* Dependent on EGL_KHR_reusable_sync which requires 64-bit uint support */ +#ifndef EGL_KHR_fence_sync +#define EGL_KHR_fence_sync 1 + /* Reuses most tokens and entry points from EGL_KHR_reusable_sync */ +#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR 0x30F0 +#define EGL_SYNC_CONDITION_KHR 0x30F8 +#define EGL_SYNC_FENCE_KHR 0x30F9 +#endif +#endif + +#ifndef EGL_HI_clientpixmap +#define EGL_HI_clientpixmap 1 + + /* Surface Attribute */ +#define EGL_CLIENT_PIXMAP_POINTER_HI 0x8F74 + /* + * Structure representing a client pixmap + * (pixmap's data is in client-space memory). + */ + struct EGLClientPixmapHI + { + void* pData; + EGLint iWidth; + EGLint iHeight; + EGLint iStride; + }; +#ifdef EGL_EGLEXT_PROTOTYPES + EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurfaceHI(EGLDisplay dpy, EGLConfig config, struct EGLClientPixmapHI* pixmap); +#endif /* EGL_EGLEXT_PROTOTYPES */ + typedef EGLSurface(EGLAPIENTRYP PFNEGLCREATEPIXMAPSURFACEHIPROC) (EGLDisplay dpy, EGLConfig config, struct EGLClientPixmapHI* pixmap); +#endif /* EGL_HI_clientpixmap */ + +#ifndef EGL_HI_colorformats +#define EGL_HI_colorformats 1 + /* Config Attribute */ +#define EGL_COLOR_FORMAT_HI 0x8F70 + /* Color Formats */ +#define EGL_COLOR_RGB_HI 0x8F71 +#define EGL_COLOR_RGBA_HI 0x8F72 +#define EGL_COLOR_ARGB_HI 0x8F73 +#endif /* EGL_HI_colorformats */ + +#ifndef EGL_MESA_drm_image +#define EGL_MESA_drm_image 1 +#define EGL_DRM_BUFFER_FORMAT_MESA 0x31D0 /* CreateDRMImageMESA attribute */ +#define EGL_DRM_BUFFER_USE_MESA 0x31D1 /* CreateDRMImageMESA attribute */ +#define EGL_DRM_BUFFER_FORMAT_ARGB32_MESA 0x31D2 /* EGL_IMAGE_FORMAT_MESA attribute value */ +#define EGL_DRM_BUFFER_MESA 0x31D3 /* eglCreateImageKHR target */ +#define EGL_DRM_BUFFER_STRIDE_MESA 0x31D4 +#define EGL_DRM_BUFFER_USE_SCANOUT_MESA 0x00000001 /* EGL_DRM_BUFFER_USE_MESA bits */ +#define EGL_DRM_BUFFER_USE_SHARE_MESA 0x00000002 /* EGL_DRM_BUFFER_USE_MESA bits */ +#ifdef EGL_EGLEXT_PROTOTYPES + EGLAPI EGLImageKHR EGLAPIENTRY eglCreateDRMImageMESA(EGLDisplay dpy, const EGLint *attrib_list); + EGLAPI EGLBoolean EGLAPIENTRY eglExportDRMImageMESA(EGLDisplay dpy, EGLImageKHR image, EGLint *name, EGLint *handle, EGLint *stride); +#endif /* EGL_EGLEXT_PROTOTYPES */ + typedef EGLImageKHR(EGLAPIENTRYP PFNEGLCREATEDRMIMAGEMESAPROC) (EGLDisplay dpy, const EGLint *attrib_list); + typedef EGLBoolean(EGLAPIENTRYP PFNEGLEXPORTDRMIMAGEMESAPROC) (EGLDisplay dpy, EGLImageKHR image, EGLint *name, EGLint *handle, EGLint *stride); +#endif + +#ifndef EGL_NV_post_sub_buffer +#define EGL_NV_post_sub_buffer 1 +#define EGL_POST_SUB_BUFFER_SUPPORTED_NV 0x30BE +#ifdef EGL_EGLEXT_PROTOTYPES + EGLAPI EGLBoolean EGLAPIENTRY eglPostSubBufferNV(EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height); +#endif /* EGL_EGLEXT_PROTOTYPES */ + typedef EGLBoolean(EGLAPIENTRYP PFNEGLPOSTSUBBUFFERNVPROC) (EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height); +#endif + +#ifndef EGL_ANGLE_query_surface_pointer +#define EGL_ANGLE_query_surface_pointer 1 +#ifdef EGL_EGLEXT_PROTOTYPES + EGLAPI EGLBoolean eglQuerySurfacePointerANGLE(EGLDisplay dpy, EGLSurface surface, EGLint attribute, void **value); +#endif + typedef EGLBoolean(EGLAPIENTRYP PFNEGLQUERYSURFACEPOINTERANGLEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, void **value); +#endif + +#ifndef EGL_ANGLE_surface_d3d_texture_2d_share_handle +#define EGL_ANGLE_surface_d3d_texture_2d_share_handle 1 +#define EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE 0x3200 +#endif + +#ifndef EGL_NV_coverage_sample_resolve +#define EGL_NV_coverage_sample_resolve 1 +#define EGL_COVERAGE_SAMPLE_RESOLVE_NV 0x3131 +#define EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV 0x3132 +#define EGL_COVERAGE_SAMPLE_RESOLVE_NONE_NV 0x3133 +#endif + +#if KHRONOS_SUPPORT_INT64 /* EGLuint64NV requires 64-bit uint support */ +#ifndef EGL_NV_system_time +#define EGL_NV_system_time 1 + typedef khronos_utime_nanoseconds_t EGLuint64NV; +#ifdef EGL_EGLEXT_PROTOTYPES + EGLAPI EGLuint64NV EGLAPIENTRY eglGetSystemTimeFrequencyNV(void); + EGLAPI EGLuint64NV EGLAPIENTRY eglGetSystemTimeNV(void); +#endif /* EGL_EGLEXT_PROTOTYPES */ + typedef EGLuint64NV(EGLAPIENTRYP PFNEGLGETSYSTEMTIMEFREQUENCYNVPROC) (void); + typedef EGLuint64NV(EGLAPIENTRYP PFNEGLGETSYSTEMTIMENVPROC) (void); +#endif +#endif + +#if KHRONOS_SUPPORT_INT64 /* EGLuint64KHR requires 64-bit uint support */ +#ifndef EGL_KHR_stream +#define EGL_KHR_stream 1 + typedef void* EGLStreamKHR; + typedef khronos_uint64_t EGLuint64KHR; +#define EGL_NO_STREAM_KHR ((EGLStreamKHR)0) +#define EGL_CONSUMER_LATENCY_USEC_KHR 0x3210 +#define EGL_PRODUCER_FRAME_KHR 0x3212 +#define EGL_CONSUMER_FRAME_KHR 0x3213 +#define EGL_STREAM_STATE_KHR 0x3214 +#define EGL_STREAM_STATE_CREATED_KHR 0x3215 +#define EGL_STREAM_STATE_CONNECTING_KHR 0x3216 +#define EGL_STREAM_STATE_EMPTY_KHR 0x3217 +#define EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR 0x3218 +#define EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR 0x3219 +#define EGL_STREAM_STATE_DISCONNECTED_KHR 0x321A +#define EGL_BAD_STREAM_KHR 0x321B +#define EGL_BAD_STATE_KHR 0x321C +#ifdef EGL_EGLEXT_PROTOTYPES + EGLAPI EGLStreamKHR EGLAPIENTRY eglCreateStreamKHR(EGLDisplay dpy, const EGLint *attrib_list); + EGLAPI EGLBoolean EGLAPIENTRY eglDestroyStreamKHR(EGLDisplay dpy, EGLStreamKHR stream); + EGLAPI EGLBoolean EGLAPIENTRY eglStreamAttribKHR(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint value); + EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamKHR(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint *value); + EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamu64KHR(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLuint64KHR *value); +#endif /* EGL_EGLEXT_PROTOTYPES */ + typedef EGLStreamKHR(EGLAPIENTRYP PFNEGLCREATESTREAMKHRPROC)(EGLDisplay dpy, const EGLint *attrib_list); + typedef EGLBoolean(EGLAPIENTRYP PFNEGLDESTROYSTREAMKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream); + typedef EGLBoolean(EGLAPIENTRYP PFNEGLSTREAMATTRIBKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint value); + typedef EGLBoolean(EGLAPIENTRYP PFNEGLQUERYSTREAMKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint *value); + typedef EGLBoolean(EGLAPIENTRYP PFNEGLQUERYSTREAMU64KHRPROC)(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLuint64KHR *value); +#endif +#endif + +#ifdef EGL_KHR_stream /* Requires KHR_stream extension */ +#ifndef EGL_KHR_stream_consumer_gltexture +#define EGL_KHR_stream_consumer_gltexture 1 +#define EGL_CONSUMER_ACQUIRE_TIMEOUT_USEC_KHR 0x321E +#ifdef EGL_EGLEXT_PROTOTYPES + EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerGLTextureExternalKHR(EGLDisplay dpy, EGLStreamKHR stream); + EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerAcquireKHR(EGLDisplay dpy, EGLStreamKHR stream); + EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerReleaseKHR(EGLDisplay dpy, EGLStreamKHR stream); +#endif /* EGL_EGLEXT_PROTOTYPES */ + typedef EGLBoolean(EGLAPIENTRYP PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream); + typedef EGLBoolean(EGLAPIENTRYP PFNEGLSTREAMCONSUMERACQUIREKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream); + typedef EGLBoolean(EGLAPIENTRYP PFNEGLSTREAMCONSUMERRELEASEKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream); +#endif +#endif + +#ifdef EGL_KHR_stream /* Requires KHR_stream extension */ +#ifndef EGL_KHR_stream_producer_eglsurface +#define EGL_KHR_stream_producer_eglsurface 1 +#define EGL_STREAM_BIT_KHR 0x0800 +#ifdef EGL_EGLEXT_PROTOTYPES + EGLAPI EGLSurface EGLAPIENTRY eglCreateStreamProducerSurfaceKHR(EGLDisplay dpy, EGLConfig config, EGLStreamKHR stream, const EGLint *attrib_list); +#endif /* EGL_EGLEXT_PROTOTYPES */ + typedef EGLSurface(EGLAPIENTRYP PFNEGLCREATESTREAMPRODUCERSURFACEKHRPROC)(EGLDisplay dpy, EGLConfig config, EGLStreamKHR stream, const EGLint *attrib_list); +#endif +#endif + +#ifdef EGL_KHR_stream /* Requires KHR_stream extension */ +#ifndef EGL_KHR_stream_producer_aldatalocator +#define EGL_KHR_stream_producer_aldatalocator 1 +#endif +#endif + +#ifdef EGL_KHR_stream /* Requires KHR_stream extension */ +#ifndef EGL_KHR_stream_fifo +#define EGL_KHR_stream_fifo 1 + /* reuse EGLTimeKHR */ +#define EGL_STREAM_FIFO_LENGTH_KHR 0x31FC +#define EGL_STREAM_TIME_NOW_KHR 0x31FD +#define EGL_STREAM_TIME_CONSUMER_KHR 0x31FE +#define EGL_STREAM_TIME_PRODUCER_KHR 0x31FF +#ifdef EGL_EGLEXT_PROTOTYPES + EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamTimeKHR(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLTimeKHR *value); +#endif /* EGL_EGLEXT_PROTOTYPES */ + typedef EGLBoolean(EGLAPIENTRYP PFNEGLQUERYSTREAMTIMEKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLTimeKHR *value); +#endif +#endif + +#ifndef EGL_EXT_create_context_robustness +#define EGL_EXT_create_context_robustness 1 +#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT 0x30BF +#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT 0x3138 +#define EGL_NO_RESET_NOTIFICATION_EXT 0x31BE +#define EGL_LOSE_CONTEXT_ON_RESET_EXT 0x31BF +#endif + +#ifndef EGL_ANGLE_d3d_share_handle_client_buffer +#define EGL_ANGLE_d3d_share_handle_client_buffer 1 + /* reuse EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE */ +#endif + +#ifndef EGL_KHR_create_context +#define EGL_KHR_create_context 1 +#define EGL_CONTEXT_MAJOR_VERSION_KHR EGL_CONTEXT_CLIENT_VERSION +#define EGL_CONTEXT_MINOR_VERSION_KHR 0x30FB +#define EGL_CONTEXT_FLAGS_KHR 0x30FC +#define EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR 0x30FD +#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR 0x31BD +#define EGL_NO_RESET_NOTIFICATION_KHR 0x31BE +#define EGL_LOSE_CONTEXT_ON_RESET_KHR 0x31BF +#define EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR 0x00000001 +#define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR 0x00000002 +#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR 0x00000004 +#define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR 0x00000001 +#define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR 0x00000002 +#define EGL_OPENGL_ES3_BIT_KHR 0x00000040 +#endif + +#ifndef EGL_KHR_surfaceless_context +#define EGL_KHR_surfaceless_context 1 + /* No tokens/entry points, just relaxes an error condition */ +#endif + +#ifdef EGL_KHR_stream /* Requires KHR_stream extension */ +#ifndef EGL_KHR_stream_cross_process_fd +#define EGL_KHR_stream_cross_process_fd 1 + typedef int EGLNativeFileDescriptorKHR; +#define EGL_NO_FILE_DESCRIPTOR_KHR ((EGLNativeFileDescriptorKHR)(-1)) +#ifdef EGL_EGLEXT_PROTOTYPES + EGLAPI EGLNativeFileDescriptorKHR EGLAPIENTRY eglGetStreamFileDescriptorKHR(EGLDisplay dpy, EGLStreamKHR stream); + EGLAPI EGLStreamKHR EGLAPIENTRY eglCreateStreamFromFileDescriptorKHR(EGLDisplay dpy, EGLNativeFileDescriptorKHR file_descriptor); +#endif /* EGL_EGLEXT_PROTOTYPES */ + typedef EGLNativeFileDescriptorKHR(EGLAPIENTRYP PFNEGLGETSTREAMFILEDESCRIPTORKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream); + typedef EGLStreamKHR(EGLAPIENTRYP PFNEGLCREATESTREAMFROMFILEDESCRIPTORKHRPROC)(EGLDisplay dpy, EGLNativeFileDescriptorKHR file_descriptor); +#endif +#endif + +#ifndef EGL_EXT_multiview_window +#define EGL_EXT_multiview_window 1 +#define EGL_MULTIVIEW_VIEW_COUNT_EXT 0x3134 +#endif + +#ifndef EGL_KHR_wait_sync +#define EGL_KHR_wait_sync 1 +#ifdef EGL_EGLEXT_PROTOTYPES + EGLAPI EGLint EGLAPIENTRY eglWaitSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags); +#endif /* EGL_EGLEXT_PROTOTYPES */ + typedef EGLint(EGLAPIENTRYP PFNEGLWAITSYNCKHRPROC)(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags); +#endif + +#ifndef EGL_NV_post_convert_rounding +#define EGL_NV_post_convert_rounding 1 + /* No tokens or entry points, just relaxes behavior of SwapBuffers */ +#endif + +#ifndef EGL_NV_native_query +#define EGL_NV_native_query 1 +#ifdef EGL_EGLEXT_PROTOTYPES + EGLAPI EGLBoolean EGLAPIENTRY eglQueryNativeDisplayNV(EGLDisplay dpy, EGLNativeDisplayType* display_id); + EGLAPI EGLBoolean EGLAPIENTRY eglQueryNativeWindowNV(EGLDisplay dpy, EGLSurface surf, EGLNativeWindowType* window); + EGLAPI EGLBoolean EGLAPIENTRY eglQueryNativePixmapNV(EGLDisplay dpy, EGLSurface surf, EGLNativePixmapType* pixmap); +#endif /* EGL_EGLEXT_PROTOTYPES */ + typedef EGLBoolean(EGLAPIENTRYP PFNEGLQUERYNATIVEDISPLAYNVPROC)(EGLDisplay dpy, EGLNativeDisplayType *display_id); + typedef EGLBoolean(EGLAPIENTRYP PFNEGLQUERYNATIVEWINDOWNVPROC)(EGLDisplay dpy, EGLSurface surf, EGLNativeWindowType *window); + typedef EGLBoolean(EGLAPIENTRYP PFNEGLQUERYNATIVEPIXMAPNVPROC)(EGLDisplay dpy, EGLSurface surf, EGLNativePixmapType *pixmap); +#endif + +#ifndef EGL_NV_3dvision_surface +#define EGL_NV_3dvision_surface 1 +#define EGL_AUTO_STEREO_NV 0x3136 +#endif + +#ifndef EGL_ANDROID_framebuffer_target +#define EGL_ANDROID_framebuffer_target 1 +#define EGL_FRAMEBUFFER_TARGET_ANDROID 0x3147 +#endif + +#ifndef EGL_ANDROID_blob_cache +#define EGL_ANDROID_blob_cache 1 + typedef khronos_ssize_t EGLsizeiANDROID; + typedef void(*EGLSetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, const void *value, EGLsizeiANDROID valueSize); + typedef EGLsizeiANDROID(*EGLGetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, void *value, EGLsizeiANDROID valueSize); +#ifdef EGL_EGLEXT_PROTOTYPES + EGLAPI void EGLAPIENTRY eglSetBlobCacheFuncsANDROID(EGLDisplay dpy, EGLSetBlobFuncANDROID set, EGLGetBlobFuncANDROID get); +#endif /* EGL_EGLEXT_PROTOTYPES */ + typedef void (EGLAPIENTRYP PFNEGLSETBLOBCACHEFUNCSANDROIDPROC)(EGLDisplay dpy, EGLSetBlobFuncANDROID set, EGLGetBlobFuncANDROID get); +#endif + +#ifndef EGL_ANDROID_image_native_buffer +#define EGL_ANDROID_image_native_buffer 1 +#define EGL_NATIVE_BUFFER_ANDROID 0x3140 +#endif + +#ifndef EGL_ANDROID_native_fence_sync +#define EGL_ANDROID_native_fence_sync 1 +#define EGL_SYNC_NATIVE_FENCE_ANDROID 0x3144 +#define EGL_SYNC_NATIVE_FENCE_FD_ANDROID 0x3145 +#define EGL_SYNC_NATIVE_FENCE_SIGNALED_ANDROID 0x3146 +#define EGL_NO_NATIVE_FENCE_FD_ANDROID -1 +#ifdef EGL_EGLEXT_PROTOTYPES + EGLAPI EGLint EGLAPIENTRY eglDupNativeFenceFDANDROID(EGLDisplay dpy, EGLSyncKHR); +#endif /* EGL_EGLEXT_PROTOTYPES */ + typedef EGLint(EGLAPIENTRYP PFNEGLDUPNATIVEFENCEFDANDROIDPROC)(EGLDisplay dpy, EGLSyncKHR); +#endif + +#ifndef EGL_ANDROID_recordable +#define EGL_ANDROID_recordable 1 +#define EGL_RECORDABLE_ANDROID 0x3142 +#endif + +#ifndef EGL_EXT_buffer_age +#define EGL_EXT_buffer_age 1 +#define EGL_BUFFER_AGE_EXT 0x313D +#endif + +#ifndef EGL_EXT_image_dma_buf_import +#define EGL_EXT_image_dma_buf_import 1 +#define EGL_LINUX_DMA_BUF_EXT 0x3270 +#define EGL_LINUX_DRM_FOURCC_EXT 0x3271 +#define EGL_DMA_BUF_PLANE0_FD_EXT 0x3272 +#define EGL_DMA_BUF_PLANE0_OFFSET_EXT 0x3273 +#define EGL_DMA_BUF_PLANE0_PITCH_EXT 0x3274 +#define EGL_DMA_BUF_PLANE1_FD_EXT 0x3275 +#define EGL_DMA_BUF_PLANE1_OFFSET_EXT 0x3276 +#define EGL_DMA_BUF_PLANE1_PITCH_EXT 0x3277 +#define EGL_DMA_BUF_PLANE2_FD_EXT 0x3278 +#define EGL_DMA_BUF_PLANE2_OFFSET_EXT 0x3279 +#define EGL_DMA_BUF_PLANE2_PITCH_EXT 0x327A +#define EGL_YUV_COLOR_SPACE_HINT_EXT 0x327B +#define EGL_SAMPLE_RANGE_HINT_EXT 0x327C +#define EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT 0x327D +#define EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT 0x327E +#define EGL_ITU_REC601_EXT 0x327F +#define EGL_ITU_REC709_EXT 0x3280 +#define EGL_ITU_REC2020_EXT 0x3281 +#define EGL_YUV_FULL_RANGE_EXT 0x3282 +#define EGL_YUV_NARROW_RANGE_EXT 0x3283 +#define EGL_YUV_CHROMA_SITING_0_EXT 0x3284 +#define EGL_YUV_CHROMA_SITING_0_5_EXT 0x3285 +#endif + +#ifndef EGL_ARM_pixmap_multisample_discard +#define EGL_ARM_pixmap_multisample_discard 1 +#define EGL_DISCARD_SAMPLES_ARM 0x3286 +#endif + +#ifndef EGL_EXT_swap_buffers_with_damage +#define EGL_EXT_swap_buffers_with_damage 1 +#ifdef EGL_EGLEXT_PROTOTYPES + EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersWithDamageEXT(EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects); +#endif /* EGL_EGLEXT_PROTOTYPES */ + typedef EGLBoolean(EGLAPIENTRYP PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC)(EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects); +#endif + +/* #include */ + +#ifdef __cplusplus +} +#endif + +#endif /* __eglext_h_ */ + + + +#endif /* _MSC_VER */ \ No newline at end of file diff --git a/include/SDL_hints.h b/include/SDL_hints.h index 763154f3aec48..1462f4e399999 100644 --- a/include/SDL_hints.h +++ b/include/SDL_hints.h @@ -301,6 +301,21 @@ extern "C" { */ #define SDL_HINT_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK "SDL_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK" +/** +* \brief A variable specifying which shader compiler to preload when using the Chrome ANGLE binaries +* +* SDL has EGL and OpenGL ES2 support on Windows via the ANGLE project. It +* can use two different sets of binaries, those compiled by the user from source +* or those provided by the Chrome browser. In the later case, these binaries require +* that SDL loads +* +* This variable can be set to the following values: +* "d3dcompiler_46.dll" - default, best for Vista or later. +* "d3dcompiler_43.dll" - for XP support. +* "none" - do not load any library, useful if you compiled ANGLE from source and included the compiler in your binaries. +* +*/ +#define SDL_HINT_VIDEO_WIN_D3DCOMPILER "SDL_VIDEO_WIN_D3DCOMPILER" /** * \brief An enumeration of hint priorities diff --git a/include/SDL_opengles2.h b/include/SDL_opengles2.h index 7697626f4a95a..f51cfc23f06ee 100644 --- a/include/SDL_opengles2.h +++ b/include/SDL_opengles2.h @@ -24,7 +24,7 @@ * * This is a simple file to encapsulate the OpenGL ES 2.0 API headers. */ - +#ifndef _MSC_VER #ifdef __IPHONEOS__ #include #include @@ -33,6 +33,2758 @@ #include #endif -#ifndef APIENTRY -#define APIENTRY +#else /* _MSC_VER */ + +/* OpenGL ES2 headers for Visual Studio */ + +#ifndef __khrplatform_h_ +#define __khrplatform_h_ + +/* +** Copyright (c) 2008-2009 The Khronos Group Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and/or associated documentation files (the +** "Materials"), to deal in the Materials without restriction, including +** without limitation the rights to use, copy, modify, merge, publish, +** distribute, sublicense, and/or sell copies of the Materials, and to +** permit persons to whom the Materials are furnished to do so, subject to +** the following conditions: +** +** The above copyright notice and this permission notice shall be included +** in all copies or substantial portions of the Materials. +** +** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +*/ + +/* Khronos platform-specific types and definitions. +* +* $Revision: 23298 $ on $Date: 2013-09-30 17:07:13 -0700 (Mon, 30 Sep 2013) $ +* +* Adopters may modify this file to suit their platform. Adopters are +* encouraged to submit platform specific modifications to the Khronos +* group so that they can be included in future versions of this file. +* Please submit changes by sending them to the public Khronos Bugzilla +* (http://khronos.org/bugzilla) by filing a bug against product +* "Khronos (general)" component "Registry". +* +* A predefined template which fills in some of the bug fields can be +* reached using http://tinyurl.com/khrplatform-h-bugreport, but you +* must create a Bugzilla login first. +* +* +* See the Implementer's Guidelines for information about where this file +* should be located on your system and for more details of its use: +* http://www.khronos.org/registry/implementers_guide.pdf +* +* This file should be included as +* #include +* by Khronos client API header files that use its types and defines. +* +* The types in khrplatform.h should only be used to define API-specific types. +* +* Types defined in khrplatform.h: +* khronos_int8_t signed 8 bit +* khronos_uint8_t unsigned 8 bit +* khronos_int16_t signed 16 bit +* khronos_uint16_t unsigned 16 bit +* khronos_int32_t signed 32 bit +* khronos_uint32_t unsigned 32 bit +* khronos_int64_t signed 64 bit +* khronos_uint64_t unsigned 64 bit +* khronos_intptr_t signed same number of bits as a pointer +* khronos_uintptr_t unsigned same number of bits as a pointer +* khronos_ssize_t signed size +* khronos_usize_t unsigned size +* khronos_float_t signed 32 bit floating point +* khronos_time_ns_t unsigned 64 bit time in nanoseconds +* khronos_utime_nanoseconds_t unsigned time interval or absolute time in +* nanoseconds +* khronos_stime_nanoseconds_t signed time interval in nanoseconds +* khronos_boolean_enum_t enumerated boolean type. This should +* only be used as a base type when a client API's boolean type is +* an enum. Client APIs which use an integer or other type for +* booleans cannot use this as the base type for their boolean. +* +* Tokens defined in khrplatform.h: +* +* KHRONOS_FALSE, KHRONOS_TRUE Enumerated boolean false/true values. +* +* KHRONOS_SUPPORT_INT64 is 1 if 64 bit integers are supported; otherwise 0. +* KHRONOS_SUPPORT_FLOAT is 1 if floats are supported; otherwise 0. +* +* Calling convention macros defined in this file: +* KHRONOS_APICALL +* KHRONOS_APIENTRY +* KHRONOS_APIATTRIBUTES +* +* These may be used in function prototypes as: +* +* KHRONOS_APICALL void KHRONOS_APIENTRY funcname( +* int arg1, +* int arg2) KHRONOS_APIATTRIBUTES; +*/ + +/*------------------------------------------------------------------------- +* Definition of KHRONOS_APICALL +*------------------------------------------------------------------------- +* This precedes the return type of the function in the function prototype. +*/ +#if defined(_WIN32) && !defined(__SCITECH_SNAP__) +# define KHRONOS_APICALL __declspec(dllimport) +#elif defined (__SYMBIAN32__) +# define KHRONOS_APICALL IMPORT_C +#else +# define KHRONOS_APICALL +#endif + +/*------------------------------------------------------------------------- +* Definition of KHRONOS_APIENTRY +*------------------------------------------------------------------------- +* This follows the return type of the function and precedes the function +* name in the function prototype. +*/ +#if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__) +/* Win32 but not WinCE */ +# define KHRONOS_APIENTRY __stdcall +#else +# define KHRONOS_APIENTRY +#endif + +/*------------------------------------------------------------------------- +* Definition of KHRONOS_APIATTRIBUTES +*------------------------------------------------------------------------- +* This follows the closing parenthesis of the function prototype arguments. +*/ +#if defined (__ARMCC_2__) +#define KHRONOS_APIATTRIBUTES __softfp +#else +#define KHRONOS_APIATTRIBUTES +#endif + +/*------------------------------------------------------------------------- +* basic type definitions +*-----------------------------------------------------------------------*/ +#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__GNUC__) || defined(__SCO__) || defined(__USLC__) + + +/* +* Using +*/ +#include +typedef int32_t khronos_int32_t; +typedef uint32_t khronos_uint32_t; +typedef int64_t khronos_int64_t; +typedef uint64_t khronos_uint64_t; +#define KHRONOS_SUPPORT_INT64 1 +#define KHRONOS_SUPPORT_FLOAT 1 + +#elif defined(__VMS ) || defined(__sgi) + +/* +* Using +*/ +#include +typedef int32_t khronos_int32_t; +typedef uint32_t khronos_uint32_t; +typedef int64_t khronos_int64_t; +typedef uint64_t khronos_uint64_t; +#define KHRONOS_SUPPORT_INT64 1 +#define KHRONOS_SUPPORT_FLOAT 1 + +#elif defined(_WIN32) && !defined(__SCITECH_SNAP__) + +/* +* Win32 +*/ +typedef __int32 khronos_int32_t; +typedef unsigned __int32 khronos_uint32_t; +typedef __int64 khronos_int64_t; +typedef unsigned __int64 khronos_uint64_t; +#define KHRONOS_SUPPORT_INT64 1 +#define KHRONOS_SUPPORT_FLOAT 1 + +#elif defined(__sun__) || defined(__digital__) + +/* +* Sun or Digital +*/ +typedef int khronos_int32_t; +typedef unsigned int khronos_uint32_t; +#if defined(__arch64__) || defined(_LP64) +typedef long int khronos_int64_t; +typedef unsigned long int khronos_uint64_t; +#else +typedef long long int khronos_int64_t; +typedef unsigned long long int khronos_uint64_t; +#endif /* __arch64__ */ +#define KHRONOS_SUPPORT_INT64 1 +#define KHRONOS_SUPPORT_FLOAT 1 + +#elif 0 + +/* +* Hypothetical platform with no float or int64 support +*/ +typedef int khronos_int32_t; +typedef unsigned int khronos_uint32_t; +#define KHRONOS_SUPPORT_INT64 0 +#define KHRONOS_SUPPORT_FLOAT 0 + +#else + +/* +* Generic fallback +*/ +#include +typedef int32_t khronos_int32_t; +typedef uint32_t khronos_uint32_t; +typedef int64_t khronos_int64_t; +typedef uint64_t khronos_uint64_t; +#define KHRONOS_SUPPORT_INT64 1 +#define KHRONOS_SUPPORT_FLOAT 1 + +#endif + + +/* +* Types that are (so far) the same on all platforms +*/ +typedef signed char khronos_int8_t; +typedef unsigned char khronos_uint8_t; +typedef signed short int khronos_int16_t; +typedef unsigned short int khronos_uint16_t; + +/* +* Types that differ between LLP64 and LP64 architectures - in LLP64, +* pointers are 64 bits, but 'long' is still 32 bits. Win64 appears +* to be the only LLP64 architecture in current use. +*/ +#ifdef _WIN64 +typedef signed long long int khronos_intptr_t; +typedef unsigned long long int khronos_uintptr_t; +typedef signed long long int khronos_ssize_t; +typedef unsigned long long int khronos_usize_t; +#else +typedef signed long int khronos_intptr_t; +typedef unsigned long int khronos_uintptr_t; +typedef signed long int khronos_ssize_t; +typedef unsigned long int khronos_usize_t; +#endif + +#if KHRONOS_SUPPORT_FLOAT +/* +* Float type +*/ +typedef float khronos_float_t; +#endif + +#if KHRONOS_SUPPORT_INT64 +/* Time types +* +* These types can be used to represent a time interval in nanoseconds or +* an absolute Unadjusted System Time. Unadjusted System Time is the number +* of nanoseconds since some arbitrary system event (e.g. since the last +* time the system booted). The Unadjusted System Time is an unsigned +* 64 bit value that wraps back to 0 every 584 years. Time intervals +* may be either signed or unsigned. +*/ +typedef khronos_uint64_t khronos_utime_nanoseconds_t; +typedef khronos_int64_t khronos_stime_nanoseconds_t; +#endif + +/* +* Dummy value used to pad enum types to 32 bits. +*/ +#ifndef KHRONOS_MAX_ENUM +#define KHRONOS_MAX_ENUM 0x7FFFFFFF +#endif + +/* +* Enumerated boolean type +* +* Values other than zero should be considered to be true. Therefore +* comparisons should not be made against KHRONOS_TRUE. +*/ +typedef enum { + KHRONOS_FALSE = 0, + KHRONOS_TRUE = 1, + KHRONOS_BOOLEAN_ENUM_FORCE_SIZE = KHRONOS_MAX_ENUM +} khronos_boolean_enum_t; + +#endif /* __khrplatform_h_ */ + + +#ifndef __gl2platform_h_ +#define __gl2platform_h_ + +/* $Revision: 10602 $ on $Date:: 2010-03-04 22:35:34 -0800 #$ */ + +/* + * This document is licensed under the SGI Free Software B License Version + * 2.0. For details, see http://oss.sgi.com/projects/FreeB/ . + */ + +/* Platform-specific types and definitions for OpenGL ES 2.X gl2.h + * + * Adopters may modify khrplatform.h and this file to suit their platform. + * You are encouraged to submit all modifications to the Khronos group so that + * they can be included in future versions of this file. Please submit changes + * by sending them to the public Khronos Bugzilla (http://khronos.org/bugzilla) + * by filing a bug against product "OpenGL-ES" component "Registry". + */ + +/*#include */ + +#ifndef GL_APICALL +#define GL_APICALL KHRONOS_APICALL +#endif + +#ifndef GL_APIENTRY +#define GL_APIENTRY KHRONOS_APIENTRY +#endif + +#endif /* __gl2platform_h_ */ + +#ifndef __gl2_h_ +#define __gl2_h_ + +/* $Revision: 16803 $ on $Date:: 2012-02-02 09:49:18 -0800 #$ */ + +/*#include */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * This document is licensed under the SGI Free Software B License Version + * 2.0. For details, see http://oss.sgi.com/projects/FreeB/ . + */ + +/*------------------------------------------------------------------------- + * Data type definitions + *-----------------------------------------------------------------------*/ + +typedef void GLvoid; +typedef char GLchar; +typedef unsigned int GLenum; +typedef unsigned char GLboolean; +typedef unsigned int GLbitfield; +typedef khronos_int8_t GLbyte; +typedef short GLshort; +typedef int GLint; +typedef int GLsizei; +typedef khronos_uint8_t GLubyte; +typedef unsigned short GLushort; +typedef unsigned int GLuint; +typedef khronos_float_t GLfloat; +typedef khronos_float_t GLclampf; +typedef khronos_int32_t GLfixed; + +/* GL types for handling large vertex buffer objects */ +typedef khronos_intptr_t GLintptr; +typedef khronos_ssize_t GLsizeiptr; + +/* OpenGL ES core versions */ +#define GL_ES_VERSION_2_0 1 + +/* ClearBufferMask */ +#define GL_DEPTH_BUFFER_BIT 0x00000100 +#define GL_STENCIL_BUFFER_BIT 0x00000400 +#define GL_COLOR_BUFFER_BIT 0x00004000 + +/* Boolean */ +#define GL_FALSE 0 +#define GL_TRUE 1 + +/* BeginMode */ +#define GL_POINTS 0x0000 +#define GL_LINES 0x0001 +#define GL_LINE_LOOP 0x0002 +#define GL_LINE_STRIP 0x0003 +#define GL_TRIANGLES 0x0004 +#define GL_TRIANGLE_STRIP 0x0005 +#define GL_TRIANGLE_FAN 0x0006 + +/* AlphaFunction (not supported in ES20) */ +/* GL_NEVER */ +/* GL_LESS */ +/* GL_EQUAL */ +/* GL_LEQUAL */ +/* GL_GREATER */ +/* GL_NOTEQUAL */ +/* GL_GEQUAL */ +/* GL_ALWAYS */ + +/* BlendingFactorDest */ +#define GL_ZERO 0 +#define GL_ONE 1 +#define GL_SRC_COLOR 0x0300 +#define GL_ONE_MINUS_SRC_COLOR 0x0301 +#define GL_SRC_ALPHA 0x0302 +#define GL_ONE_MINUS_SRC_ALPHA 0x0303 +#define GL_DST_ALPHA 0x0304 +#define GL_ONE_MINUS_DST_ALPHA 0x0305 + +/* BlendingFactorSrc */ +/* GL_ZERO */ +/* GL_ONE */ +#define GL_DST_COLOR 0x0306 +#define GL_ONE_MINUS_DST_COLOR 0x0307 +#define GL_SRC_ALPHA_SATURATE 0x0308 +/* GL_SRC_ALPHA */ +/* GL_ONE_MINUS_SRC_ALPHA */ +/* GL_DST_ALPHA */ +/* GL_ONE_MINUS_DST_ALPHA */ + +/* BlendEquationSeparate */ +#define GL_FUNC_ADD 0x8006 +#define GL_BLEND_EQUATION 0x8009 +#define GL_BLEND_EQUATION_RGB 0x8009 /* same as BLEND_EQUATION */ +#define GL_BLEND_EQUATION_ALPHA 0x883D + +/* BlendSubtract */ +#define GL_FUNC_SUBTRACT 0x800A +#define GL_FUNC_REVERSE_SUBTRACT 0x800B + +/* Separate Blend Functions */ +#define GL_BLEND_DST_RGB 0x80C8 +#define GL_BLEND_SRC_RGB 0x80C9 +#define GL_BLEND_DST_ALPHA 0x80CA +#define GL_BLEND_SRC_ALPHA 0x80CB +#define GL_CONSTANT_COLOR 0x8001 +#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 +#define GL_CONSTANT_ALPHA 0x8003 +#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 +#define GL_BLEND_COLOR 0x8005 + +/* Buffer Objects */ +#define GL_ARRAY_BUFFER 0x8892 +#define GL_ELEMENT_ARRAY_BUFFER 0x8893 +#define GL_ARRAY_BUFFER_BINDING 0x8894 +#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 + +#define GL_STREAM_DRAW 0x88E0 +#define GL_STATIC_DRAW 0x88E4 +#define GL_DYNAMIC_DRAW 0x88E8 + +#define GL_BUFFER_SIZE 0x8764 +#define GL_BUFFER_USAGE 0x8765 + +#define GL_CURRENT_VERTEX_ATTRIB 0x8626 + +/* CullFaceMode */ +#define GL_FRONT 0x0404 +#define GL_BACK 0x0405 +#define GL_FRONT_AND_BACK 0x0408 + +/* DepthFunction */ +/* GL_NEVER */ +/* GL_LESS */ +/* GL_EQUAL */ +/* GL_LEQUAL */ +/* GL_GREATER */ +/* GL_NOTEQUAL */ +/* GL_GEQUAL */ +/* GL_ALWAYS */ + +/* EnableCap */ +#define GL_TEXTURE_2D 0x0DE1 +#define GL_CULL_FACE 0x0B44 +#define GL_BLEND 0x0BE2 +#define GL_DITHER 0x0BD0 +#define GL_STENCIL_TEST 0x0B90 +#define GL_DEPTH_TEST 0x0B71 +#define GL_SCISSOR_TEST 0x0C11 +#define GL_POLYGON_OFFSET_FILL 0x8037 +#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E +#define GL_SAMPLE_COVERAGE 0x80A0 + +/* ErrorCode */ +#define GL_NO_ERROR 0 +#define GL_INVALID_ENUM 0x0500 +#define GL_INVALID_VALUE 0x0501 +#define GL_INVALID_OPERATION 0x0502 +#define GL_OUT_OF_MEMORY 0x0505 + +/* FrontFaceDirection */ +#define GL_CW 0x0900 +#define GL_CCW 0x0901 + +/* GetPName */ +#define GL_LINE_WIDTH 0x0B21 +#define GL_ALIASED_POINT_SIZE_RANGE 0x846D +#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E +#define GL_CULL_FACE_MODE 0x0B45 +#define GL_FRONT_FACE 0x0B46 +#define GL_DEPTH_RANGE 0x0B70 +#define GL_DEPTH_WRITEMASK 0x0B72 +#define GL_DEPTH_CLEAR_VALUE 0x0B73 +#define GL_DEPTH_FUNC 0x0B74 +#define GL_STENCIL_CLEAR_VALUE 0x0B91 +#define GL_STENCIL_FUNC 0x0B92 +#define GL_STENCIL_FAIL 0x0B94 +#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 +#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 +#define GL_STENCIL_REF 0x0B97 +#define GL_STENCIL_VALUE_MASK 0x0B93 +#define GL_STENCIL_WRITEMASK 0x0B98 +#define GL_STENCIL_BACK_FUNC 0x8800 +#define GL_STENCIL_BACK_FAIL 0x8801 +#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 +#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 +#define GL_STENCIL_BACK_REF 0x8CA3 +#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 +#define GL_STENCIL_BACK_WRITEMASK 0x8CA5 +#define GL_VIEWPORT 0x0BA2 +#define GL_SCISSOR_BOX 0x0C10 +/* GL_SCISSOR_TEST */ +#define GL_COLOR_CLEAR_VALUE 0x0C22 +#define GL_COLOR_WRITEMASK 0x0C23 +#define GL_UNPACK_ALIGNMENT 0x0CF5 +#define GL_PACK_ALIGNMENT 0x0D05 +#define GL_MAX_TEXTURE_SIZE 0x0D33 +#define GL_MAX_VIEWPORT_DIMS 0x0D3A +#define GL_SUBPIXEL_BITS 0x0D50 +#define GL_RED_BITS 0x0D52 +#define GL_GREEN_BITS 0x0D53 +#define GL_BLUE_BITS 0x0D54 +#define GL_ALPHA_BITS 0x0D55 +#define GL_DEPTH_BITS 0x0D56 +#define GL_STENCIL_BITS 0x0D57 +#define GL_POLYGON_OFFSET_UNITS 0x2A00 +/* GL_POLYGON_OFFSET_FILL */ +#define GL_POLYGON_OFFSET_FACTOR 0x8038 +#define GL_TEXTURE_BINDING_2D 0x8069 +#define GL_SAMPLE_BUFFERS 0x80A8 +#define GL_SAMPLES 0x80A9 +#define GL_SAMPLE_COVERAGE_VALUE 0x80AA +#define GL_SAMPLE_COVERAGE_INVERT 0x80AB + +/* GetTextureParameter */ +/* GL_TEXTURE_MAG_FILTER */ +/* GL_TEXTURE_MIN_FILTER */ +/* GL_TEXTURE_WRAP_S */ +/* GL_TEXTURE_WRAP_T */ + +#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 +#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 + +/* HintMode */ +#define GL_DONT_CARE 0x1100 +#define GL_FASTEST 0x1101 +#define GL_NICEST 0x1102 + +/* HintTarget */ +#define GL_GENERATE_MIPMAP_HINT 0x8192 + +/* DataType */ +#define GL_BYTE 0x1400 +#define GL_UNSIGNED_BYTE 0x1401 +#define GL_SHORT 0x1402 +#define GL_UNSIGNED_SHORT 0x1403 +#define GL_INT 0x1404 +#define GL_UNSIGNED_INT 0x1405 +#define GL_FLOAT 0x1406 +#define GL_FIXED 0x140C + +/* PixelFormat */ +#define GL_DEPTH_COMPONENT 0x1902 +#define GL_ALPHA 0x1906 +#define GL_RGB 0x1907 +#define GL_RGBA 0x1908 +#define GL_LUMINANCE 0x1909 +#define GL_LUMINANCE_ALPHA 0x190A + +/* PixelType */ +/* GL_UNSIGNED_BYTE */ +#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 +#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 +#define GL_UNSIGNED_SHORT_5_6_5 0x8363 + +/* Shaders */ +#define GL_FRAGMENT_SHADER 0x8B30 +#define GL_VERTEX_SHADER 0x8B31 +#define GL_MAX_VERTEX_ATTRIBS 0x8869 +#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB +#define GL_MAX_VARYING_VECTORS 0x8DFC +#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D +#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C +#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 +#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD +#define GL_SHADER_TYPE 0x8B4F +#define GL_DELETE_STATUS 0x8B80 +#define GL_LINK_STATUS 0x8B82 +#define GL_VALIDATE_STATUS 0x8B83 +#define GL_ATTACHED_SHADERS 0x8B85 +#define GL_ACTIVE_UNIFORMS 0x8B86 +#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 +#define GL_ACTIVE_ATTRIBUTES 0x8B89 +#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A +#define GL_SHADING_LANGUAGE_VERSION 0x8B8C +#define GL_CURRENT_PROGRAM 0x8B8D + +/* StencilFunction */ +#define GL_NEVER 0x0200 +#define GL_LESS 0x0201 +#define GL_EQUAL 0x0202 +#define GL_LEQUAL 0x0203 +#define GL_GREATER 0x0204 +#define GL_NOTEQUAL 0x0205 +#define GL_GEQUAL 0x0206 +#define GL_ALWAYS 0x0207 + +/* StencilOp */ +/* GL_ZERO */ +#define GL_KEEP 0x1E00 +#define GL_REPLACE 0x1E01 +#define GL_INCR 0x1E02 +#define GL_DECR 0x1E03 +#define GL_INVERT 0x150A +#define GL_INCR_WRAP 0x8507 +#define GL_DECR_WRAP 0x8508 + +/* StringName */ +#define GL_VENDOR 0x1F00 +#define GL_RENDERER 0x1F01 +#define GL_VERSION 0x1F02 +#define GL_EXTENSIONS 0x1F03 + +/* TextureMagFilter */ +#define GL_NEAREST 0x2600 +#define GL_LINEAR 0x2601 + +/* TextureMinFilter */ +/* GL_NEAREST */ +/* GL_LINEAR */ +#define GL_NEAREST_MIPMAP_NEAREST 0x2700 +#define GL_LINEAR_MIPMAP_NEAREST 0x2701 +#define GL_NEAREST_MIPMAP_LINEAR 0x2702 +#define GL_LINEAR_MIPMAP_LINEAR 0x2703 + +/* TextureParameterName */ +#define GL_TEXTURE_MAG_FILTER 0x2800 +#define GL_TEXTURE_MIN_FILTER 0x2801 +#define GL_TEXTURE_WRAP_S 0x2802 +#define GL_TEXTURE_WRAP_T 0x2803 + +/* TextureTarget */ +/* GL_TEXTURE_2D */ +#define GL_TEXTURE 0x1702 + +#define GL_TEXTURE_CUBE_MAP 0x8513 +#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A +#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C + +/* TextureUnit */ +#define GL_TEXTURE0 0x84C0 +#define GL_TEXTURE1 0x84C1 +#define GL_TEXTURE2 0x84C2 +#define GL_TEXTURE3 0x84C3 +#define GL_TEXTURE4 0x84C4 +#define GL_TEXTURE5 0x84C5 +#define GL_TEXTURE6 0x84C6 +#define GL_TEXTURE7 0x84C7 +#define GL_TEXTURE8 0x84C8 +#define GL_TEXTURE9 0x84C9 +#define GL_TEXTURE10 0x84CA +#define GL_TEXTURE11 0x84CB +#define GL_TEXTURE12 0x84CC +#define GL_TEXTURE13 0x84CD +#define GL_TEXTURE14 0x84CE +#define GL_TEXTURE15 0x84CF +#define GL_TEXTURE16 0x84D0 +#define GL_TEXTURE17 0x84D1 +#define GL_TEXTURE18 0x84D2 +#define GL_TEXTURE19 0x84D3 +#define GL_TEXTURE20 0x84D4 +#define GL_TEXTURE21 0x84D5 +#define GL_TEXTURE22 0x84D6 +#define GL_TEXTURE23 0x84D7 +#define GL_TEXTURE24 0x84D8 +#define GL_TEXTURE25 0x84D9 +#define GL_TEXTURE26 0x84DA +#define GL_TEXTURE27 0x84DB +#define GL_TEXTURE28 0x84DC +#define GL_TEXTURE29 0x84DD +#define GL_TEXTURE30 0x84DE +#define GL_TEXTURE31 0x84DF +#define GL_ACTIVE_TEXTURE 0x84E0 + +/* TextureWrapMode */ +#define GL_REPEAT 0x2901 +#define GL_CLAMP_TO_EDGE 0x812F +#define GL_MIRRORED_REPEAT 0x8370 + +/* Uniform Types */ +#define GL_FLOAT_VEC2 0x8B50 +#define GL_FLOAT_VEC3 0x8B51 +#define GL_FLOAT_VEC4 0x8B52 +#define GL_INT_VEC2 0x8B53 +#define GL_INT_VEC3 0x8B54 +#define GL_INT_VEC4 0x8B55 +#define GL_BOOL 0x8B56 +#define GL_BOOL_VEC2 0x8B57 +#define GL_BOOL_VEC3 0x8B58 +#define GL_BOOL_VEC4 0x8B59 +#define GL_FLOAT_MAT2 0x8B5A +#define GL_FLOAT_MAT3 0x8B5B +#define GL_FLOAT_MAT4 0x8B5C +#define GL_SAMPLER_2D 0x8B5E +#define GL_SAMPLER_CUBE 0x8B60 + +/* Vertex Arrays */ +#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 +#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 +#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 +#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 +#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A +#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 +#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F + +/* Read Format */ +#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A +#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B + +/* Shader Source */ +#define GL_COMPILE_STATUS 0x8B81 +#define GL_INFO_LOG_LENGTH 0x8B84 +#define GL_SHADER_SOURCE_LENGTH 0x8B88 +#define GL_SHADER_COMPILER 0x8DFA + +/* Shader Binary */ +#define GL_SHADER_BINARY_FORMATS 0x8DF8 +#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9 + +/* Shader Precision-Specified Types */ +#define GL_LOW_FLOAT 0x8DF0 +#define GL_MEDIUM_FLOAT 0x8DF1 +#define GL_HIGH_FLOAT 0x8DF2 +#define GL_LOW_INT 0x8DF3 +#define GL_MEDIUM_INT 0x8DF4 +#define GL_HIGH_INT 0x8DF5 + +/* Framebuffer Object. */ +#define GL_FRAMEBUFFER 0x8D40 +#define GL_RENDERBUFFER 0x8D41 + +#define GL_RGBA4 0x8056 +#define GL_RGB5_A1 0x8057 +#define GL_RGB565 0x8D62 +#define GL_DEPTH_COMPONENT16 0x81A5 +#define GL_STENCIL_INDEX8 0x8D48 + +#define GL_RENDERBUFFER_WIDTH 0x8D42 +#define GL_RENDERBUFFER_HEIGHT 0x8D43 +#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 +#define GL_RENDERBUFFER_RED_SIZE 0x8D50 +#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 +#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 +#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 +#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 +#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 + +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 + +#define GL_COLOR_ATTACHMENT0 0x8CE0 +#define GL_DEPTH_ATTACHMENT 0x8D00 +#define GL_STENCIL_ATTACHMENT 0x8D20 + +#define GL_NONE 0 + +#define GL_FRAMEBUFFER_COMPLETE 0x8CD5 +#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 +#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 +#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS 0x8CD9 +#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD + +#define GL_FRAMEBUFFER_BINDING 0x8CA6 +#define GL_RENDERBUFFER_BINDING 0x8CA7 +#define GL_MAX_RENDERBUFFER_SIZE 0x84E8 + +#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 + +/*------------------------------------------------------------------------- + * GL core functions. + *-----------------------------------------------------------------------*/ + +GL_APICALL void GL_APIENTRY glActiveTexture (GLenum texture); +GL_APICALL void GL_APIENTRY glAttachShader (GLuint program, GLuint shader); +GL_APICALL void GL_APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar* name); +GL_APICALL void GL_APIENTRY glBindBuffer (GLenum target, GLuint buffer); +GL_APICALL void GL_APIENTRY glBindFramebuffer (GLenum target, GLuint framebuffer); +GL_APICALL void GL_APIENTRY glBindRenderbuffer (GLenum target, GLuint renderbuffer); +GL_APICALL void GL_APIENTRY glBindTexture (GLenum target, GLuint texture); +GL_APICALL void GL_APIENTRY glBlendColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); +GL_APICALL void GL_APIENTRY glBlendEquation ( GLenum mode ); +GL_APICALL void GL_APIENTRY glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha); +GL_APICALL void GL_APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor); +GL_APICALL void GL_APIENTRY glBlendFuncSeparate (GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +GL_APICALL void GL_APIENTRY glBufferData (GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage); +GL_APICALL void GL_APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data); +GL_APICALL GLenum GL_APIENTRY glCheckFramebufferStatus (GLenum target); +GL_APICALL void GL_APIENTRY glClear (GLbitfield mask); +GL_APICALL void GL_APIENTRY glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); +GL_APICALL void GL_APIENTRY glClearDepthf (GLclampf depth); +GL_APICALL void GL_APIENTRY glClearStencil (GLint s); +GL_APICALL void GL_APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); +GL_APICALL void GL_APIENTRY glCompileShader (GLuint shader); +GL_APICALL void GL_APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data); +GL_APICALL void GL_APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data); +GL_APICALL void GL_APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +GL_APICALL void GL_APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +GL_APICALL GLuint GL_APIENTRY glCreateProgram (void); +GL_APICALL GLuint GL_APIENTRY glCreateShader (GLenum type); +GL_APICALL void GL_APIENTRY glCullFace (GLenum mode); +GL_APICALL void GL_APIENTRY glDeleteBuffers (GLsizei n, const GLuint* buffers); +GL_APICALL void GL_APIENTRY glDeleteFramebuffers (GLsizei n, const GLuint* framebuffers); +GL_APICALL void GL_APIENTRY glDeleteProgram (GLuint program); +GL_APICALL void GL_APIENTRY glDeleteRenderbuffers (GLsizei n, const GLuint* renderbuffers); +GL_APICALL void GL_APIENTRY glDeleteShader (GLuint shader); +GL_APICALL void GL_APIENTRY glDeleteTextures (GLsizei n, const GLuint* textures); +GL_APICALL void GL_APIENTRY glDepthFunc (GLenum func); +GL_APICALL void GL_APIENTRY glDepthMask (GLboolean flag); +GL_APICALL void GL_APIENTRY glDepthRangef (GLclampf zNear, GLclampf zFar); +GL_APICALL void GL_APIENTRY glDetachShader (GLuint program, GLuint shader); +GL_APICALL void GL_APIENTRY glDisable (GLenum cap); +GL_APICALL void GL_APIENTRY glDisableVertexAttribArray (GLuint index); +GL_APICALL void GL_APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count); +GL_APICALL void GL_APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const GLvoid* indices); +GL_APICALL void GL_APIENTRY glEnable (GLenum cap); +GL_APICALL void GL_APIENTRY glEnableVertexAttribArray (GLuint index); +GL_APICALL void GL_APIENTRY glFinish (void); +GL_APICALL void GL_APIENTRY glFlush (void); +GL_APICALL void GL_APIENTRY glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +GL_APICALL void GL_APIENTRY glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +GL_APICALL void GL_APIENTRY glFrontFace (GLenum mode); +GL_APICALL void GL_APIENTRY glGenBuffers (GLsizei n, GLuint* buffers); +GL_APICALL void GL_APIENTRY glGenerateMipmap (GLenum target); +GL_APICALL void GL_APIENTRY glGenFramebuffers (GLsizei n, GLuint* framebuffers); +GL_APICALL void GL_APIENTRY glGenRenderbuffers (GLsizei n, GLuint* renderbuffers); +GL_APICALL void GL_APIENTRY glGenTextures (GLsizei n, GLuint* textures); +GL_APICALL void GL_APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name); +GL_APICALL void GL_APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name); +GL_APICALL void GL_APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders); +GL_APICALL int GL_APIENTRY glGetAttribLocation (GLuint program, const GLchar* name); +GL_APICALL void GL_APIENTRY glGetBooleanv (GLenum pname, GLboolean* params); +GL_APICALL void GL_APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint* params); +GL_APICALL GLenum GL_APIENTRY glGetError (void); +GL_APICALL void GL_APIENTRY glGetFloatv (GLenum pname, GLfloat* params); +GL_APICALL void GL_APIENTRY glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint* params); +GL_APICALL void GL_APIENTRY glGetIntegerv (GLenum pname, GLint* params); +GL_APICALL void GL_APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint* params); +GL_APICALL void GL_APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufsize, GLsizei* length, GLchar* infolog); +GL_APICALL void GL_APIENTRY glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint* params); +GL_APICALL void GL_APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint* params); +GL_APICALL void GL_APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* infolog); +GL_APICALL void GL_APIENTRY glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision); +GL_APICALL void GL_APIENTRY glGetShaderSource (GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source); +GL_APICALL const GLubyte* GL_APIENTRY glGetString (GLenum name); +GL_APICALL void GL_APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat* params); +GL_APICALL void GL_APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint* params); +GL_APICALL void GL_APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat* params); +GL_APICALL void GL_APIENTRY glGetUniformiv (GLuint program, GLint location, GLint* params); +GL_APICALL int GL_APIENTRY glGetUniformLocation (GLuint program, const GLchar* name); +GL_APICALL void GL_APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat* params); +GL_APICALL void GL_APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint* params); +GL_APICALL void GL_APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, GLvoid** pointer); +GL_APICALL void GL_APIENTRY glHint (GLenum target, GLenum mode); +GL_APICALL GLboolean GL_APIENTRY glIsBuffer (GLuint buffer); +GL_APICALL GLboolean GL_APIENTRY glIsEnabled (GLenum cap); +GL_APICALL GLboolean GL_APIENTRY glIsFramebuffer (GLuint framebuffer); +GL_APICALL GLboolean GL_APIENTRY glIsProgram (GLuint program); +GL_APICALL GLboolean GL_APIENTRY glIsRenderbuffer (GLuint renderbuffer); +GL_APICALL GLboolean GL_APIENTRY glIsShader (GLuint shader); +GL_APICALL GLboolean GL_APIENTRY glIsTexture (GLuint texture); +GL_APICALL void GL_APIENTRY glLineWidth (GLfloat width); +GL_APICALL void GL_APIENTRY glLinkProgram (GLuint program); +GL_APICALL void GL_APIENTRY glPixelStorei (GLenum pname, GLint param); +GL_APICALL void GL_APIENTRY glPolygonOffset (GLfloat factor, GLfloat units); +GL_APICALL void GL_APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels); +GL_APICALL void GL_APIENTRY glReleaseShaderCompiler (void); +GL_APICALL void GL_APIENTRY glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +GL_APICALL void GL_APIENTRY glSampleCoverage (GLclampf value, GLboolean invert); +GL_APICALL void GL_APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height); +GL_APICALL void GL_APIENTRY glShaderBinary (GLsizei n, const GLuint* shaders, GLenum binaryformat, const GLvoid* binary, GLsizei length); +GL_APICALL void GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar* const* string, const GLint* length); +GL_APICALL void GL_APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask); +GL_APICALL void GL_APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask); +GL_APICALL void GL_APIENTRY glStencilMask (GLuint mask); +GL_APICALL void GL_APIENTRY glStencilMaskSeparate (GLenum face, GLuint mask); +GL_APICALL void GL_APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass); +GL_APICALL void GL_APIENTRY glStencilOpSeparate (GLenum face, GLenum fail, GLenum zfail, GLenum zpass); +GL_APICALL void GL_APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pixels); +GL_APICALL void GL_APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param); +GL_APICALL void GL_APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat* params); +GL_APICALL void GL_APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param); +GL_APICALL void GL_APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint* params); +GL_APICALL void GL_APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels); +GL_APICALL void GL_APIENTRY glUniform1f (GLint location, GLfloat x); +GL_APICALL void GL_APIENTRY glUniform1fv (GLint location, GLsizei count, const GLfloat* v); +GL_APICALL void GL_APIENTRY glUniform1i (GLint location, GLint x); +GL_APICALL void GL_APIENTRY glUniform1iv (GLint location, GLsizei count, const GLint* v); +GL_APICALL void GL_APIENTRY glUniform2f (GLint location, GLfloat x, GLfloat y); +GL_APICALL void GL_APIENTRY glUniform2fv (GLint location, GLsizei count, const GLfloat* v); +GL_APICALL void GL_APIENTRY glUniform2i (GLint location, GLint x, GLint y); +GL_APICALL void GL_APIENTRY glUniform2iv (GLint location, GLsizei count, const GLint* v); +GL_APICALL void GL_APIENTRY glUniform3f (GLint location, GLfloat x, GLfloat y, GLfloat z); +GL_APICALL void GL_APIENTRY glUniform3fv (GLint location, GLsizei count, const GLfloat* v); +GL_APICALL void GL_APIENTRY glUniform3i (GLint location, GLint x, GLint y, GLint z); +GL_APICALL void GL_APIENTRY glUniform3iv (GLint location, GLsizei count, const GLint* v); +GL_APICALL void GL_APIENTRY glUniform4f (GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +GL_APICALL void GL_APIENTRY glUniform4fv (GLint location, GLsizei count, const GLfloat* v); +GL_APICALL void GL_APIENTRY glUniform4i (GLint location, GLint x, GLint y, GLint z, GLint w); +GL_APICALL void GL_APIENTRY glUniform4iv (GLint location, GLsizei count, const GLint* v); +GL_APICALL void GL_APIENTRY glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +GL_APICALL void GL_APIENTRY glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +GL_APICALL void GL_APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +GL_APICALL void GL_APIENTRY glUseProgram (GLuint program); +GL_APICALL void GL_APIENTRY glValidateProgram (GLuint program); +GL_APICALL void GL_APIENTRY glVertexAttrib1f (GLuint indx, GLfloat x); +GL_APICALL void GL_APIENTRY glVertexAttrib1fv (GLuint indx, const GLfloat* values); +GL_APICALL void GL_APIENTRY glVertexAttrib2f (GLuint indx, GLfloat x, GLfloat y); +GL_APICALL void GL_APIENTRY glVertexAttrib2fv (GLuint indx, const GLfloat* values); +GL_APICALL void GL_APIENTRY glVertexAttrib3f (GLuint indx, GLfloat x, GLfloat y, GLfloat z); +GL_APICALL void GL_APIENTRY glVertexAttrib3fv (GLuint indx, const GLfloat* values); +GL_APICALL void GL_APIENTRY glVertexAttrib4f (GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +GL_APICALL void GL_APIENTRY glVertexAttrib4fv (GLuint indx, const GLfloat* values); +GL_APICALL void GL_APIENTRY glVertexAttribPointer (GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid* ptr); +GL_APICALL void GL_APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height); + +#ifdef __cplusplus +} +#endif + +#endif /* __gl2_h_ */ + + +#ifndef __gl2ext_h_ +#define __gl2ext_h_ + +/* $Revision: 19436 $ on $Date:: 2012-10-10 10:37:04 -0700 #$ */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * This document is licensed under the SGI Free Software B License Version + * 2.0. For details, see http://oss.sgi.com/projects/FreeB/ . + */ + +#ifndef GL_APIENTRYP +# define GL_APIENTRYP GL_APIENTRY* +#endif + +/*------------------------------------------------------------------------* + * OES extension tokens + *------------------------------------------------------------------------*/ + +/* GL_OES_compressed_ETC1_RGB8_texture */ +#ifndef GL_OES_compressed_ETC1_RGB8_texture +#define GL_ETC1_RGB8_OES 0x8D64 +#endif + +/* GL_OES_compressed_paletted_texture */ +#ifndef GL_OES_compressed_paletted_texture +#define GL_PALETTE4_RGB8_OES 0x8B90 +#define GL_PALETTE4_RGBA8_OES 0x8B91 +#define GL_PALETTE4_R5_G6_B5_OES 0x8B92 +#define GL_PALETTE4_RGBA4_OES 0x8B93 +#define GL_PALETTE4_RGB5_A1_OES 0x8B94 +#define GL_PALETTE8_RGB8_OES 0x8B95 +#define GL_PALETTE8_RGBA8_OES 0x8B96 +#define GL_PALETTE8_R5_G6_B5_OES 0x8B97 +#define GL_PALETTE8_RGBA4_OES 0x8B98 +#define GL_PALETTE8_RGB5_A1_OES 0x8B99 +#endif + +/* GL_OES_depth24 */ +#ifndef GL_OES_depth24 +#define GL_DEPTH_COMPONENT24_OES 0x81A6 +#endif + +/* GL_OES_depth32 */ +#ifndef GL_OES_depth32 +#define GL_DEPTH_COMPONENT32_OES 0x81A7 +#endif + +/* GL_OES_depth_texture */ +/* No new tokens introduced by this extension. */ + +/* GL_OES_EGL_image */ +#ifndef GL_OES_EGL_image +typedef void* GLeglImageOES; +#endif + +/* GL_OES_EGL_image_external */ +#ifndef GL_OES_EGL_image_external +/* GLeglImageOES defined in GL_OES_EGL_image already. */ +#define GL_TEXTURE_EXTERNAL_OES 0x8D65 +#define GL_SAMPLER_EXTERNAL_OES 0x8D66 +#define GL_TEXTURE_BINDING_EXTERNAL_OES 0x8D67 +#define GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES 0x8D68 +#endif + +/* GL_OES_element_index_uint */ +#ifndef GL_OES_element_index_uint +#define GL_UNSIGNED_INT 0x1405 +#endif + +/* GL_OES_get_program_binary */ +#ifndef GL_OES_get_program_binary +#define GL_PROGRAM_BINARY_LENGTH_OES 0x8741 +#define GL_NUM_PROGRAM_BINARY_FORMATS_OES 0x87FE +#define GL_PROGRAM_BINARY_FORMATS_OES 0x87FF +#endif + +/* GL_OES_mapbuffer */ +#ifndef GL_OES_mapbuffer +#define GL_WRITE_ONLY_OES 0x88B9 +#define GL_BUFFER_ACCESS_OES 0x88BB +#define GL_BUFFER_MAPPED_OES 0x88BC +#define GL_BUFFER_MAP_POINTER_OES 0x88BD +#endif + +/* GL_OES_packed_depth_stencil */ +#ifndef GL_OES_packed_depth_stencil +#define GL_DEPTH_STENCIL_OES 0x84F9 +#define GL_UNSIGNED_INT_24_8_OES 0x84FA +#define GL_DEPTH24_STENCIL8_OES 0x88F0 +#endif + +/* GL_OES_required_internalformat */ +#ifndef GL_OES_required_internalformat +#define GL_ALPHA8_OES 0x803C +#define GL_DEPTH_COMPONENT16_OES 0x81A5 +/* reuse GL_DEPTH_COMPONENT24_OES */ +/* reuse GL_DEPTH24_STENCIL8_OES */ +/* reuse GL_DEPTH_COMPONENT32_OES */ +#define GL_LUMINANCE4_ALPHA4_OES 0x8043 +#define GL_LUMINANCE8_ALPHA8_OES 0x8045 +#define GL_LUMINANCE8_OES 0x8040 +#define GL_RGBA4_OES 0x8056 +#define GL_RGB5_A1_OES 0x8057 +#define GL_RGB565_OES 0x8D62 +/* reuse GL_RGB8_OES */ +/* reuse GL_RGBA8_OES */ +/* reuse GL_RGB10_EXT */ +/* reuse GL_RGB10_A2_EXT */ +#endif + +/* GL_OES_rgb8_rgba8 */ +#ifndef GL_OES_rgb8_rgba8 +#define GL_RGB8_OES 0x8051 +#define GL_RGBA8_OES 0x8058 #endif + +/* GL_OES_standard_derivatives */ +#ifndef GL_OES_standard_derivatives +#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES 0x8B8B +#endif + +/* GL_OES_stencil1 */ +#ifndef GL_OES_stencil1 +#define GL_STENCIL_INDEX1_OES 0x8D46 +#endif + +/* GL_OES_stencil4 */ +#ifndef GL_OES_stencil4 +#define GL_STENCIL_INDEX4_OES 0x8D47 +#endif + +#ifndef GL_OES_surfaceless_context +#define GL_FRAMEBUFFER_UNDEFINED_OES 0x8219 +#endif + +/* GL_OES_texture_3D */ +#ifndef GL_OES_texture_3D +#define GL_TEXTURE_WRAP_R_OES 0x8072 +#define GL_TEXTURE_3D_OES 0x806F +#define GL_TEXTURE_BINDING_3D_OES 0x806A +#define GL_MAX_3D_TEXTURE_SIZE_OES 0x8073 +#define GL_SAMPLER_3D_OES 0x8B5F +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES 0x8CD4 +#endif + +/* GL_OES_texture_float */ +/* No new tokens introduced by this extension. */ + +/* GL_OES_texture_float_linear */ +/* No new tokens introduced by this extension. */ + +/* GL_OES_texture_half_float */ +#ifndef GL_OES_texture_half_float +#define GL_HALF_FLOAT_OES 0x8D61 +#endif + +/* GL_OES_texture_half_float_linear */ +/* No new tokens introduced by this extension. */ + +/* GL_OES_texture_npot */ +/* No new tokens introduced by this extension. */ + +/* GL_OES_vertex_array_object */ +#ifndef GL_OES_vertex_array_object +#define GL_VERTEX_ARRAY_BINDING_OES 0x85B5 +#endif + +/* GL_OES_vertex_half_float */ +/* GL_HALF_FLOAT_OES defined in GL_OES_texture_half_float already. */ + +/* GL_OES_vertex_type_10_10_10_2 */ +#ifndef GL_OES_vertex_type_10_10_10_2 +#define GL_UNSIGNED_INT_10_10_10_2_OES 0x8DF6 +#define GL_INT_10_10_10_2_OES 0x8DF7 +#endif + +/*------------------------------------------------------------------------* + * KHR extension tokens + *------------------------------------------------------------------------*/ + +#ifndef GL_KHR_debug +typedef void (GL_APIENTRYP GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,GLvoid *userParam); +#define GL_DEBUG_OUTPUT_SYNCHRONOUS 0x8242 +#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH 0x8243 +#define GL_DEBUG_CALLBACK_FUNCTION 0x8244 +#define GL_DEBUG_CALLBACK_USER_PARAM 0x8245 +#define GL_DEBUG_SOURCE_API 0x8246 +#define GL_DEBUG_SOURCE_WINDOW_SYSTEM 0x8247 +#define GL_DEBUG_SOURCE_SHADER_COMPILER 0x8248 +#define GL_DEBUG_SOURCE_THIRD_PARTY 0x8249 +#define GL_DEBUG_SOURCE_APPLICATION 0x824A +#define GL_DEBUG_SOURCE_OTHER 0x824B +#define GL_DEBUG_TYPE_ERROR 0x824C +#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR 0x824D +#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR 0x824E +#define GL_DEBUG_TYPE_PORTABILITY 0x824F +#define GL_DEBUG_TYPE_PERFORMANCE 0x8250 +#define GL_DEBUG_TYPE_OTHER 0x8251 +#define GL_DEBUG_TYPE_MARKER 0x8268 +#define GL_DEBUG_TYPE_PUSH_GROUP 0x8269 +#define GL_DEBUG_TYPE_POP_GROUP 0x826A +#define GL_DEBUG_SEVERITY_NOTIFICATION 0x826B +#define GL_MAX_DEBUG_GROUP_STACK_DEPTH 0x826C +#define GL_DEBUG_GROUP_STACK_DEPTH 0x826D +#define GL_BUFFER 0x82E0 +#define GL_SHADER 0x82E1 +#define GL_PROGRAM 0x82E2 +#define GL_QUERY 0x82E3 +/* PROGRAM_PIPELINE only in GL */ +#define GL_SAMPLER 0x82E6 +/* DISPLAY_LIST only in GL */ +#define GL_MAX_LABEL_LENGTH 0x82E8 +#define GL_MAX_DEBUG_MESSAGE_LENGTH 0x9143 +#define GL_MAX_DEBUG_LOGGED_MESSAGES 0x9144 +#define GL_DEBUG_LOGGED_MESSAGES 0x9145 +#define GL_DEBUG_SEVERITY_HIGH 0x9146 +#define GL_DEBUG_SEVERITY_MEDIUM 0x9147 +#define GL_DEBUG_SEVERITY_LOW 0x9148 +#define GL_DEBUG_OUTPUT 0x92E0 +#define GL_CONTEXT_FLAG_DEBUG_BIT 0x00000002 +#define GL_STACK_OVERFLOW 0x0503 +#define GL_STACK_UNDERFLOW 0x0504 +#endif + +#ifndef GL_KHR_texture_compression_astc_ldr +#define GL_COMPRESSED_RGBA_ASTC_4x4_KHR 0x93B0 +#define GL_COMPRESSED_RGBA_ASTC_5x4_KHR 0x93B1 +#define GL_COMPRESSED_RGBA_ASTC_5x5_KHR 0x93B2 +#define GL_COMPRESSED_RGBA_ASTC_6x5_KHR 0x93B3 +#define GL_COMPRESSED_RGBA_ASTC_6x6_KHR 0x93B4 +#define GL_COMPRESSED_RGBA_ASTC_8x5_KHR 0x93B5 +#define GL_COMPRESSED_RGBA_ASTC_8x6_KHR 0x93B6 +#define GL_COMPRESSED_RGBA_ASTC_8x8_KHR 0x93B7 +#define GL_COMPRESSED_RGBA_ASTC_10x5_KHR 0x93B8 +#define GL_COMPRESSED_RGBA_ASTC_10x6_KHR 0x93B9 +#define GL_COMPRESSED_RGBA_ASTC_10x8_KHR 0x93BA +#define GL_COMPRESSED_RGBA_ASTC_10x10_KHR 0x93BB +#define GL_COMPRESSED_RGBA_ASTC_12x10_KHR 0x93BC +#define GL_COMPRESSED_RGBA_ASTC_12x12_KHR 0x93BD +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR 0x93D0 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR 0x93D1 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR 0x93D2 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR 0x93D3 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR 0x93D4 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR 0x93D5 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR 0x93D6 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR 0x93D7 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR 0x93D8 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR 0x93D9 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR 0x93DA +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR 0x93DB +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR 0x93DC +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR 0x93DD +#endif + +/*------------------------------------------------------------------------* + * AMD extension tokens + *------------------------------------------------------------------------*/ + +/* GL_AMD_compressed_3DC_texture */ +#ifndef GL_AMD_compressed_3DC_texture +#define GL_3DC_X_AMD 0x87F9 +#define GL_3DC_XY_AMD 0x87FA +#endif + +/* GL_AMD_compressed_ATC_texture */ +#ifndef GL_AMD_compressed_ATC_texture +#define GL_ATC_RGB_AMD 0x8C92 +#define GL_ATC_RGBA_EXPLICIT_ALPHA_AMD 0x8C93 +#define GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD 0x87EE +#endif + +/* GL_AMD_performance_monitor */ +#ifndef GL_AMD_performance_monitor +#define GL_COUNTER_TYPE_AMD 0x8BC0 +#define GL_COUNTER_RANGE_AMD 0x8BC1 +#define GL_UNSIGNED_INT64_AMD 0x8BC2 +#define GL_PERCENTAGE_AMD 0x8BC3 +#define GL_PERFMON_RESULT_AVAILABLE_AMD 0x8BC4 +#define GL_PERFMON_RESULT_SIZE_AMD 0x8BC5 +#define GL_PERFMON_RESULT_AMD 0x8BC6 +#endif + +/* GL_AMD_program_binary_Z400 */ +#ifndef GL_AMD_program_binary_Z400 +#define GL_Z400_BINARY_AMD 0x8740 +#endif + +/*------------------------------------------------------------------------* + * ANGLE extension tokens + *------------------------------------------------------------------------*/ + +/* GL_ANGLE_framebuffer_blit */ +#ifndef GL_ANGLE_framebuffer_blit +#define GL_READ_FRAMEBUFFER_ANGLE 0x8CA8 +#define GL_DRAW_FRAMEBUFFER_ANGLE 0x8CA9 +#define GL_DRAW_FRAMEBUFFER_BINDING_ANGLE 0x8CA6 +#define GL_READ_FRAMEBUFFER_BINDING_ANGLE 0x8CAA +#endif + +/* GL_ANGLE_framebuffer_multisample */ +#ifndef GL_ANGLE_framebuffer_multisample +#define GL_RENDERBUFFER_SAMPLES_ANGLE 0x8CAB +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE 0x8D56 +#define GL_MAX_SAMPLES_ANGLE 0x8D57 +#endif + +/* GL_ANGLE_instanced_arrays */ +#ifndef GL_ANGLE_instanced_arrays +#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE 0x88FE +#endif + +/* GL_ANGLE_pack_reverse_row_order */ +#ifndef GL_ANGLE_pack_reverse_row_order +#define GL_PACK_REVERSE_ROW_ORDER_ANGLE 0x93A4 +#endif + +/* GL_ANGLE_texture_compression_dxt3 */ +#ifndef GL_ANGLE_texture_compression_dxt3 +#define GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE 0x83F2 +#endif + +/* GL_ANGLE_texture_compression_dxt5 */ +#ifndef GL_ANGLE_texture_compression_dxt5 +#define GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE 0x83F3 +#endif + +/* GL_ANGLE_texture_usage */ +#ifndef GL_ANGLE_texture_usage +#define GL_TEXTURE_USAGE_ANGLE 0x93A2 +#define GL_FRAMEBUFFER_ATTACHMENT_ANGLE 0x93A3 +#endif + +/* GL_ANGLE_translated_shader_source */ +#ifndef GL_ANGLE_translated_shader_source +#define GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE 0x93A0 +#endif + +/*------------------------------------------------------------------------* + * APPLE extension tokens + *------------------------------------------------------------------------*/ + +/* GL_APPLE_copy_texture_levels */ +/* No new tokens introduced by this extension. */ + +/* GL_APPLE_framebuffer_multisample */ +#ifndef GL_APPLE_framebuffer_multisample +#define GL_RENDERBUFFER_SAMPLES_APPLE 0x8CAB +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE 0x8D56 +#define GL_MAX_SAMPLES_APPLE 0x8D57 +#define GL_READ_FRAMEBUFFER_APPLE 0x8CA8 +#define GL_DRAW_FRAMEBUFFER_APPLE 0x8CA9 +#define GL_DRAW_FRAMEBUFFER_BINDING_APPLE 0x8CA6 +#define GL_READ_FRAMEBUFFER_BINDING_APPLE 0x8CAA +#endif + +/* GL_APPLE_rgb_422 */ +#ifndef GL_APPLE_rgb_422 +#define GL_RGB_422_APPLE 0x8A1F +#define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA +#define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB +#endif + +/* GL_APPLE_sync */ +#ifndef GL_APPLE_sync + +#ifndef __gl3_h_ +/* These types are defined with reference to + * in the Apple extension spec, but here we use the Khronos + * portable types in khrplatform.h, and assume those types + * are always defined. + * If any other extensions using these types are defined, + * the typedefs must move out of this block and be shared. + */ +typedef khronos_int64_t GLint64; +typedef khronos_uint64_t GLuint64; +typedef struct __GLsync *GLsync; +#endif + +#define GL_SYNC_OBJECT_APPLE 0x8A53 +#define GL_MAX_SERVER_WAIT_TIMEOUT_APPLE 0x9111 +#define GL_OBJECT_TYPE_APPLE 0x9112 +#define GL_SYNC_CONDITION_APPLE 0x9113 +#define GL_SYNC_STATUS_APPLE 0x9114 +#define GL_SYNC_FLAGS_APPLE 0x9115 +#define GL_SYNC_FENCE_APPLE 0x9116 +#define GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE 0x9117 +#define GL_UNSIGNALED_APPLE 0x9118 +#define GL_SIGNALED_APPLE 0x9119 +#define GL_ALREADY_SIGNALED_APPLE 0x911A +#define GL_TIMEOUT_EXPIRED_APPLE 0x911B +#define GL_CONDITION_SATISFIED_APPLE 0x911C +#define GL_WAIT_FAILED_APPLE 0x911D +#define GL_SYNC_FLUSH_COMMANDS_BIT_APPLE 0x00000001 +#define GL_TIMEOUT_IGNORED_APPLE 0xFFFFFFFFFFFFFFFFull +#endif + +/* GL_APPLE_texture_format_BGRA8888 */ +#ifndef GL_APPLE_texture_format_BGRA8888 +#define GL_BGRA_EXT 0x80E1 +#endif + +/* GL_APPLE_texture_max_level */ +#ifndef GL_APPLE_texture_max_level +#define GL_TEXTURE_MAX_LEVEL_APPLE 0x813D +#endif + +/*------------------------------------------------------------------------* + * ARM extension tokens + *------------------------------------------------------------------------*/ + +/* GL_ARM_mali_program_binary */ +#ifndef GL_ARM_mali_program_binary +#define GL_MALI_PROGRAM_BINARY_ARM 0x8F61 +#endif + +/* GL_ARM_mali_shader_binary */ +#ifndef GL_ARM_mali_shader_binary +#define GL_MALI_SHADER_BINARY_ARM 0x8F60 +#endif + +/* GL_ARM_rgba8 */ +/* No new tokens introduced by this extension. */ + +/*------------------------------------------------------------------------* + * EXT extension tokens + *------------------------------------------------------------------------*/ + +/* GL_EXT_blend_minmax */ +#ifndef GL_EXT_blend_minmax +#define GL_MIN_EXT 0x8007 +#define GL_MAX_EXT 0x8008 +#endif + +/* GL_EXT_color_buffer_half_float */ +#ifndef GL_EXT_color_buffer_half_float +#define GL_RGBA16F_EXT 0x881A +#define GL_RGB16F_EXT 0x881B +#define GL_RG16F_EXT 0x822F +#define GL_R16F_EXT 0x822D +#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT 0x8211 +#define GL_UNSIGNED_NORMALIZED_EXT 0x8C17 +#endif + +/* GL_EXT_debug_label */ +#ifndef GL_EXT_debug_label +#define GL_PROGRAM_PIPELINE_OBJECT_EXT 0x8A4F +#define GL_PROGRAM_OBJECT_EXT 0x8B40 +#define GL_SHADER_OBJECT_EXT 0x8B48 +#define GL_BUFFER_OBJECT_EXT 0x9151 +#define GL_QUERY_OBJECT_EXT 0x9153 +#define GL_VERTEX_ARRAY_OBJECT_EXT 0x9154 +#endif + +/* GL_EXT_debug_marker */ +/* No new tokens introduced by this extension. */ + +/* GL_EXT_discard_framebuffer */ +#ifndef GL_EXT_discard_framebuffer +#define GL_COLOR_EXT 0x1800 +#define GL_DEPTH_EXT 0x1801 +#define GL_STENCIL_EXT 0x1802 +#endif + +/* GL_EXT_map_buffer_range */ +#ifndef GL_EXT_map_buffer_range +#define GL_MAP_READ_BIT_EXT 0x0001 +#define GL_MAP_WRITE_BIT_EXT 0x0002 +#define GL_MAP_INVALIDATE_RANGE_BIT_EXT 0x0004 +#define GL_MAP_INVALIDATE_BUFFER_BIT_EXT 0x0008 +#define GL_MAP_FLUSH_EXPLICIT_BIT_EXT 0x0010 +#define GL_MAP_UNSYNCHRONIZED_BIT_EXT 0x0020 +#endif + +/* GL_EXT_multisampled_render_to_texture */ +#ifndef GL_EXT_multisampled_render_to_texture +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT 0x8D6C +/* reuse values from GL_EXT_framebuffer_multisample (desktop extension) */ +#define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56 +#define GL_MAX_SAMPLES_EXT 0x8D57 +#endif + +/* GL_EXT_multiview_draw_buffers */ +#ifndef GL_EXT_multiview_draw_buffers +#define GL_COLOR_ATTACHMENT_EXT 0x90F0 +#define GL_MULTIVIEW_EXT 0x90F1 +#define GL_DRAW_BUFFER_EXT 0x0C01 +#define GL_READ_BUFFER_EXT 0x0C02 +#define GL_MAX_MULTIVIEW_BUFFERS_EXT 0x90F2 +#endif + +/* GL_EXT_multi_draw_arrays */ +/* No new tokens introduced by this extension. */ + +/* GL_EXT_occlusion_query_boolean */ +#ifndef GL_EXT_occlusion_query_boolean +#define GL_ANY_SAMPLES_PASSED_EXT 0x8C2F +#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT 0x8D6A +#define GL_CURRENT_QUERY_EXT 0x8865 +#define GL_QUERY_RESULT_EXT 0x8866 +#define GL_QUERY_RESULT_AVAILABLE_EXT 0x8867 +#endif + +/* GL_EXT_read_format_bgra */ +#ifndef GL_EXT_read_format_bgra +#define GL_BGRA_EXT 0x80E1 +#define GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT 0x8365 +#define GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT 0x8366 +#endif + +/* GL_EXT_robustness */ +#ifndef GL_EXT_robustness +/* reuse GL_NO_ERROR */ +#define GL_GUILTY_CONTEXT_RESET_EXT 0x8253 +#define GL_INNOCENT_CONTEXT_RESET_EXT 0x8254 +#define GL_UNKNOWN_CONTEXT_RESET_EXT 0x8255 +#define GL_CONTEXT_ROBUST_ACCESS_EXT 0x90F3 +#define GL_RESET_NOTIFICATION_STRATEGY_EXT 0x8256 +#define GL_LOSE_CONTEXT_ON_RESET_EXT 0x8252 +#define GL_NO_RESET_NOTIFICATION_EXT 0x8261 +#endif + +/* GL_EXT_separate_shader_objects */ +#ifndef GL_EXT_separate_shader_objects +#define GL_VERTEX_SHADER_BIT_EXT 0x00000001 +#define GL_FRAGMENT_SHADER_BIT_EXT 0x00000002 +#define GL_ALL_SHADER_BITS_EXT 0xFFFFFFFF +#define GL_PROGRAM_SEPARABLE_EXT 0x8258 +#define GL_ACTIVE_PROGRAM_EXT 0x8259 +#define GL_PROGRAM_PIPELINE_BINDING_EXT 0x825A +#endif + +/* GL_EXT_shader_framebuffer_fetch */ +#ifndef GL_EXT_shader_framebuffer_fetch +#define GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT 0x8A52 +#endif + +/* GL_EXT_shader_texture_lod */ +/* No new tokens introduced by this extension. */ + +/* GL_EXT_shadow_samplers */ +#ifndef GL_EXT_shadow_samplers +#define GL_TEXTURE_COMPARE_MODE_EXT 0x884C +#define GL_TEXTURE_COMPARE_FUNC_EXT 0x884D +#define GL_COMPARE_REF_TO_TEXTURE_EXT 0x884E +#define GL_SAMPLER_2D_SHADOW_EXT 0x8B62 +#endif + +/* GL_EXT_sRGB */ +#ifndef GL_EXT_sRGB +#define GL_SRGB_EXT 0x8C40 +#define GL_SRGB_ALPHA_EXT 0x8C42 +#define GL_SRGB8_ALPHA8_EXT 0x8C43 +#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT 0x8210 +#endif + +/* GL_EXT_texture_compression_dxt1 */ +#ifndef GL_EXT_texture_compression_dxt1 +#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 +#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 +#endif + +/* GL_EXT_texture_filter_anisotropic */ +#ifndef GL_EXT_texture_filter_anisotropic +#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE +#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF +#endif + +/* GL_EXT_texture_format_BGRA8888 */ +#ifndef GL_EXT_texture_format_BGRA8888 +#define GL_BGRA_EXT 0x80E1 +#endif + +/* GL_EXT_texture_rg */ +#ifndef GL_EXT_texture_rg +#define GL_RED_EXT 0x1903 +#define GL_RG_EXT 0x8227 +#define GL_R8_EXT 0x8229 +#define GL_RG8_EXT 0x822B +#endif + +/* GL_EXT_texture_storage */ +#ifndef GL_EXT_texture_storage +#define GL_TEXTURE_IMMUTABLE_FORMAT_EXT 0x912F +#define GL_ALPHA8_EXT 0x803C +#define GL_LUMINANCE8_EXT 0x8040 +#define GL_LUMINANCE8_ALPHA8_EXT 0x8045 +#define GL_RGBA32F_EXT 0x8814 +#define GL_RGB32F_EXT 0x8815 +#define GL_ALPHA32F_EXT 0x8816 +#define GL_LUMINANCE32F_EXT 0x8818 +#define GL_LUMINANCE_ALPHA32F_EXT 0x8819 +/* reuse GL_RGBA16F_EXT */ +/* reuse GL_RGB16F_EXT */ +#define GL_ALPHA16F_EXT 0x881C +#define GL_LUMINANCE16F_EXT 0x881E +#define GL_LUMINANCE_ALPHA16F_EXT 0x881F +#define GL_RGB10_A2_EXT 0x8059 +#define GL_RGB10_EXT 0x8052 +#define GL_BGRA8_EXT 0x93A1 +#define GL_R8_EXT 0x8229 +#define GL_RG8_EXT 0x822B +#define GL_R32F_EXT 0x822E +#define GL_RG32F_EXT 0x8230 +#define GL_R16F_EXT 0x822D +#define GL_RG16F_EXT 0x822F +#endif + +/* GL_EXT_texture_type_2_10_10_10_REV */ +#ifndef GL_EXT_texture_type_2_10_10_10_REV +#define GL_UNSIGNED_INT_2_10_10_10_REV_EXT 0x8368 +#endif + +/* GL_EXT_unpack_subimage */ +#ifndef GL_EXT_unpack_subimage +#define GL_UNPACK_ROW_LENGTH 0x0CF2 +#define GL_UNPACK_SKIP_ROWS 0x0CF3 +#define GL_UNPACK_SKIP_PIXELS 0x0CF4 +#endif + +/*------------------------------------------------------------------------* + * DMP extension tokens + *------------------------------------------------------------------------*/ + +/* GL_DMP_shader_binary */ +#ifndef GL_DMP_shader_binary +#define GL_SHADER_BINARY_DMP 0x9250 +#endif + +/*------------------------------------------------------------------------* + * FJ extension tokens + *------------------------------------------------------------------------*/ + +/* GL_FJ_shader_binary_GCCSO */ +#ifndef GL_FJ_shader_binary_GCCSO +#define GCCSO_SHADER_BINARY_FJ 0x9260 +#endif + +/*------------------------------------------------------------------------* + * IMG extension tokens + *------------------------------------------------------------------------*/ + +/* GL_IMG_program_binary */ +#ifndef GL_IMG_program_binary +#define GL_SGX_PROGRAM_BINARY_IMG 0x9130 +#endif + +/* GL_IMG_read_format */ +#ifndef GL_IMG_read_format +#define GL_BGRA_IMG 0x80E1 +#define GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG 0x8365 +#endif + +/* GL_IMG_shader_binary */ +#ifndef GL_IMG_shader_binary +#define GL_SGX_BINARY_IMG 0x8C0A +#endif + +/* GL_IMG_texture_compression_pvrtc */ +#ifndef GL_IMG_texture_compression_pvrtc +#define GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG 0x8C00 +#define GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG 0x8C01 +#define GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG 0x8C02 +#define GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG 0x8C03 +#endif + +/* GL_IMG_multisampled_render_to_texture */ +#ifndef GL_IMG_multisampled_render_to_texture +#define GL_RENDERBUFFER_SAMPLES_IMG 0x9133 +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG 0x9134 +#define GL_MAX_SAMPLES_IMG 0x9135 +#define GL_TEXTURE_SAMPLES_IMG 0x9136 +#endif + +/*------------------------------------------------------------------------* + * NV extension tokens + *------------------------------------------------------------------------*/ + +/* GL_NV_coverage_sample */ +#ifndef GL_NV_coverage_sample +#define GL_COVERAGE_COMPONENT_NV 0x8ED0 +#define GL_COVERAGE_COMPONENT4_NV 0x8ED1 +#define GL_COVERAGE_ATTACHMENT_NV 0x8ED2 +#define GL_COVERAGE_BUFFERS_NV 0x8ED3 +#define GL_COVERAGE_SAMPLES_NV 0x8ED4 +#define GL_COVERAGE_ALL_FRAGMENTS_NV 0x8ED5 +#define GL_COVERAGE_EDGE_FRAGMENTS_NV 0x8ED6 +#define GL_COVERAGE_AUTOMATIC_NV 0x8ED7 +#define GL_COVERAGE_BUFFER_BIT_NV 0x8000 +#endif + +/* GL_NV_depth_nonlinear */ +#ifndef GL_NV_depth_nonlinear +#define GL_DEPTH_COMPONENT16_NONLINEAR_NV 0x8E2C +#endif + +/* GL_NV_draw_buffers */ +#ifndef GL_NV_draw_buffers +#define GL_MAX_DRAW_BUFFERS_NV 0x8824 +#define GL_DRAW_BUFFER0_NV 0x8825 +#define GL_DRAW_BUFFER1_NV 0x8826 +#define GL_DRAW_BUFFER2_NV 0x8827 +#define GL_DRAW_BUFFER3_NV 0x8828 +#define GL_DRAW_BUFFER4_NV 0x8829 +#define GL_DRAW_BUFFER5_NV 0x882A +#define GL_DRAW_BUFFER6_NV 0x882B +#define GL_DRAW_BUFFER7_NV 0x882C +#define GL_DRAW_BUFFER8_NV 0x882D +#define GL_DRAW_BUFFER9_NV 0x882E +#define GL_DRAW_BUFFER10_NV 0x882F +#define GL_DRAW_BUFFER11_NV 0x8830 +#define GL_DRAW_BUFFER12_NV 0x8831 +#define GL_DRAW_BUFFER13_NV 0x8832 +#define GL_DRAW_BUFFER14_NV 0x8833 +#define GL_DRAW_BUFFER15_NV 0x8834 +#define GL_COLOR_ATTACHMENT0_NV 0x8CE0 +#define GL_COLOR_ATTACHMENT1_NV 0x8CE1 +#define GL_COLOR_ATTACHMENT2_NV 0x8CE2 +#define GL_COLOR_ATTACHMENT3_NV 0x8CE3 +#define GL_COLOR_ATTACHMENT4_NV 0x8CE4 +#define GL_COLOR_ATTACHMENT5_NV 0x8CE5 +#define GL_COLOR_ATTACHMENT6_NV 0x8CE6 +#define GL_COLOR_ATTACHMENT7_NV 0x8CE7 +#define GL_COLOR_ATTACHMENT8_NV 0x8CE8 +#define GL_COLOR_ATTACHMENT9_NV 0x8CE9 +#define GL_COLOR_ATTACHMENT10_NV 0x8CEA +#define GL_COLOR_ATTACHMENT11_NV 0x8CEB +#define GL_COLOR_ATTACHMENT12_NV 0x8CEC +#define GL_COLOR_ATTACHMENT13_NV 0x8CED +#define GL_COLOR_ATTACHMENT14_NV 0x8CEE +#define GL_COLOR_ATTACHMENT15_NV 0x8CEF +#endif + +/* GL_NV_fbo_color_attachments */ +#ifndef GL_NV_fbo_color_attachments +#define GL_MAX_COLOR_ATTACHMENTS_NV 0x8CDF +/* GL_COLOR_ATTACHMENT{0-15}_NV defined in GL_NV_draw_buffers already. */ +#endif + +/* GL_NV_fence */ +#ifndef GL_NV_fence +#define GL_ALL_COMPLETED_NV 0x84F2 +#define GL_FENCE_STATUS_NV 0x84F3 +#define GL_FENCE_CONDITION_NV 0x84F4 +#endif + +/* GL_NV_read_buffer */ +#ifndef GL_NV_read_buffer +#define GL_READ_BUFFER_NV 0x0C02 +#endif + +/* GL_NV_read_buffer_front */ +/* No new tokens introduced by this extension. */ + +/* GL_NV_read_depth */ +/* No new tokens introduced by this extension. */ + +/* GL_NV_read_depth_stencil */ +/* No new tokens introduced by this extension. */ + +/* GL_NV_read_stencil */ +/* No new tokens introduced by this extension. */ + +/* GL_NV_texture_compression_s3tc_update */ +/* No new tokens introduced by this extension. */ + +/* GL_NV_texture_npot_2D_mipmap */ +/* No new tokens introduced by this extension. */ + +/*------------------------------------------------------------------------* + * QCOM extension tokens + *------------------------------------------------------------------------*/ + +/* GL_QCOM_alpha_test */ +#ifndef GL_QCOM_alpha_test +#define GL_ALPHA_TEST_QCOM 0x0BC0 +#define GL_ALPHA_TEST_FUNC_QCOM 0x0BC1 +#define GL_ALPHA_TEST_REF_QCOM 0x0BC2 +#endif + +/* GL_QCOM_binning_control */ +#ifndef GL_QCOM_binning_control +#define GL_BINNING_CONTROL_HINT_QCOM 0x8FB0 +#define GL_CPU_OPTIMIZED_QCOM 0x8FB1 +#define GL_GPU_OPTIMIZED_QCOM 0x8FB2 +#define GL_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM 0x8FB3 +#endif + +/* GL_QCOM_driver_control */ +/* No new tokens introduced by this extension. */ + +/* GL_QCOM_extended_get */ +#ifndef GL_QCOM_extended_get +#define GL_TEXTURE_WIDTH_QCOM 0x8BD2 +#define GL_TEXTURE_HEIGHT_QCOM 0x8BD3 +#define GL_TEXTURE_DEPTH_QCOM 0x8BD4 +#define GL_TEXTURE_INTERNAL_FORMAT_QCOM 0x8BD5 +#define GL_TEXTURE_FORMAT_QCOM 0x8BD6 +#define GL_TEXTURE_TYPE_QCOM 0x8BD7 +#define GL_TEXTURE_IMAGE_VALID_QCOM 0x8BD8 +#define GL_TEXTURE_NUM_LEVELS_QCOM 0x8BD9 +#define GL_TEXTURE_TARGET_QCOM 0x8BDA +#define GL_TEXTURE_OBJECT_VALID_QCOM 0x8BDB +#define GL_STATE_RESTORE 0x8BDC +#endif + +/* GL_QCOM_extended_get2 */ +/* No new tokens introduced by this extension. */ + +/* GL_QCOM_perfmon_global_mode */ +#ifndef GL_QCOM_perfmon_global_mode +#define GL_PERFMON_GLOBAL_MODE_QCOM 0x8FA0 +#endif + +/* GL_QCOM_writeonly_rendering */ +#ifndef GL_QCOM_writeonly_rendering +#define GL_WRITEONLY_RENDERING_QCOM 0x8823 +#endif + +/* GL_QCOM_tiled_rendering */ +#ifndef GL_QCOM_tiled_rendering +#define GL_COLOR_BUFFER_BIT0_QCOM 0x00000001 +#define GL_COLOR_BUFFER_BIT1_QCOM 0x00000002 +#define GL_COLOR_BUFFER_BIT2_QCOM 0x00000004 +#define GL_COLOR_BUFFER_BIT3_QCOM 0x00000008 +#define GL_COLOR_BUFFER_BIT4_QCOM 0x00000010 +#define GL_COLOR_BUFFER_BIT5_QCOM 0x00000020 +#define GL_COLOR_BUFFER_BIT6_QCOM 0x00000040 +#define GL_COLOR_BUFFER_BIT7_QCOM 0x00000080 +#define GL_DEPTH_BUFFER_BIT0_QCOM 0x00000100 +#define GL_DEPTH_BUFFER_BIT1_QCOM 0x00000200 +#define GL_DEPTH_BUFFER_BIT2_QCOM 0x00000400 +#define GL_DEPTH_BUFFER_BIT3_QCOM 0x00000800 +#define GL_DEPTH_BUFFER_BIT4_QCOM 0x00001000 +#define GL_DEPTH_BUFFER_BIT5_QCOM 0x00002000 +#define GL_DEPTH_BUFFER_BIT6_QCOM 0x00004000 +#define GL_DEPTH_BUFFER_BIT7_QCOM 0x00008000 +#define GL_STENCIL_BUFFER_BIT0_QCOM 0x00010000 +#define GL_STENCIL_BUFFER_BIT1_QCOM 0x00020000 +#define GL_STENCIL_BUFFER_BIT2_QCOM 0x00040000 +#define GL_STENCIL_BUFFER_BIT3_QCOM 0x00080000 +#define GL_STENCIL_BUFFER_BIT4_QCOM 0x00100000 +#define GL_STENCIL_BUFFER_BIT5_QCOM 0x00200000 +#define GL_STENCIL_BUFFER_BIT6_QCOM 0x00400000 +#define GL_STENCIL_BUFFER_BIT7_QCOM 0x00800000 +#define GL_MULTISAMPLE_BUFFER_BIT0_QCOM 0x01000000 +#define GL_MULTISAMPLE_BUFFER_BIT1_QCOM 0x02000000 +#define GL_MULTISAMPLE_BUFFER_BIT2_QCOM 0x04000000 +#define GL_MULTISAMPLE_BUFFER_BIT3_QCOM 0x08000000 +#define GL_MULTISAMPLE_BUFFER_BIT4_QCOM 0x10000000 +#define GL_MULTISAMPLE_BUFFER_BIT5_QCOM 0x20000000 +#define GL_MULTISAMPLE_BUFFER_BIT6_QCOM 0x40000000 +#define GL_MULTISAMPLE_BUFFER_BIT7_QCOM 0x80000000 +#endif + +/*------------------------------------------------------------------------* + * VIV extension tokens + *------------------------------------------------------------------------*/ + +/* GL_VIV_shader_binary */ +#ifndef GL_VIV_shader_binary +#define GL_SHADER_BINARY_VIV 0x8FC4 +#endif + +/*------------------------------------------------------------------------* + * End of extension tokens, start of corresponding extension functions + *------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------* + * OES extension functions + *------------------------------------------------------------------------*/ + +/* GL_OES_compressed_ETC1_RGB8_texture */ +#ifndef GL_OES_compressed_ETC1_RGB8_texture +#define GL_OES_compressed_ETC1_RGB8_texture 1 +#endif + +/* GL_OES_compressed_paletted_texture */ +#ifndef GL_OES_compressed_paletted_texture +#define GL_OES_compressed_paletted_texture 1 +#endif + +/* GL_OES_depth24 */ +#ifndef GL_OES_depth24 +#define GL_OES_depth24 1 +#endif + +/* GL_OES_depth32 */ +#ifndef GL_OES_depth32 +#define GL_OES_depth32 1 +#endif + +/* GL_OES_depth_texture */ +#ifndef GL_OES_depth_texture +#define GL_OES_depth_texture 1 +#endif + +/* GL_OES_EGL_image */ +#ifndef GL_OES_EGL_image +#define GL_OES_EGL_image 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glEGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image); +GL_APICALL void GL_APIENTRY glEGLImageTargetRenderbufferStorageOES (GLenum target, GLeglImageOES image); +#endif +typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) (GLenum target, GLeglImageOES image); +typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLeglImageOES image); +#endif + +/* GL_OES_EGL_image_external */ +#ifndef GL_OES_EGL_image_external +#define GL_OES_EGL_image_external 1 +/* glEGLImageTargetTexture2DOES defined in GL_OES_EGL_image already. */ +#endif + +/* GL_OES_element_index_uint */ +#ifndef GL_OES_element_index_uint +#define GL_OES_element_index_uint 1 +#endif + +/* GL_OES_fbo_render_mipmap */ +#ifndef GL_OES_fbo_render_mipmap +#define GL_OES_fbo_render_mipmap 1 +#endif + +/* GL_OES_fragment_precision_high */ +#ifndef GL_OES_fragment_precision_high +#define GL_OES_fragment_precision_high 1 +#endif + +/* GL_OES_get_program_binary */ +#ifndef GL_OES_get_program_binary +#define GL_OES_get_program_binary 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glGetProgramBinaryOES (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary); +GL_APICALL void GL_APIENTRY glProgramBinaryOES (GLuint program, GLenum binaryFormat, const GLvoid *binary, GLint length); +#endif +typedef void (GL_APIENTRYP PFNGLGETPROGRAMBINARYOESPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary); +typedef void (GL_APIENTRYP PFNGLPROGRAMBINARYOESPROC) (GLuint program, GLenum binaryFormat, const GLvoid *binary, GLint length); +#endif + +/* GL_OES_mapbuffer */ +#ifndef GL_OES_mapbuffer +#define GL_OES_mapbuffer 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void* GL_APIENTRY glMapBufferOES (GLenum target, GLenum access); +GL_APICALL GLboolean GL_APIENTRY glUnmapBufferOES (GLenum target); +GL_APICALL void GL_APIENTRY glGetBufferPointervOES (GLenum target, GLenum pname, GLvoid** params); +#endif +typedef void* (GL_APIENTRYP PFNGLMAPBUFFEROESPROC) (GLenum target, GLenum access); +typedef GLboolean (GL_APIENTRYP PFNGLUNMAPBUFFEROESPROC) (GLenum target); +typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVOESPROC) (GLenum target, GLenum pname, GLvoid** params); +#endif + +/* GL_OES_packed_depth_stencil */ +#ifndef GL_OES_packed_depth_stencil +#define GL_OES_packed_depth_stencil 1 +#endif + +/* GL_OES_required_internalformat */ +#ifndef GL_OES_required_internalformat +#define GL_OES_required_internalformat 1 +#endif + +/* GL_OES_rgb8_rgba8 */ +#ifndef GL_OES_rgb8_rgba8 +#define GL_OES_rgb8_rgba8 1 +#endif + +/* GL_OES_standard_derivatives */ +#ifndef GL_OES_standard_derivatives +#define GL_OES_standard_derivatives 1 +#endif + +/* GL_OES_stencil1 */ +#ifndef GL_OES_stencil1 +#define GL_OES_stencil1 1 +#endif + +/* GL_OES_stencil4 */ +#ifndef GL_OES_stencil4 +#define GL_OES_stencil4 1 +#endif + +#ifndef GL_OES_surfaceless_context +#define GL_OES_surfaceless_context 1 +#endif + +/* GL_OES_texture_3D */ +#ifndef GL_OES_texture_3D +#define GL_OES_texture_3D 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glTexImage3DOES (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* pixels); +GL_APICALL void GL_APIENTRY glTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* pixels); +GL_APICALL void GL_APIENTRY glCopyTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +GL_APICALL void GL_APIENTRY glCompressedTexImage3DOES (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data); +GL_APICALL void GL_APIENTRY glCompressedTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data); +GL_APICALL void GL_APIENTRY glFramebufferTexture3DOES (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +#endif +typedef void (GL_APIENTRYP PFNGLTEXIMAGE3DOESPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* pixels); +typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* pixels); +typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DOESPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data); +typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data); +typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DOES) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +#endif + +/* GL_OES_texture_float */ +#ifndef GL_OES_texture_float +#define GL_OES_texture_float 1 +#endif + +/* GL_OES_texture_float_linear */ +#ifndef GL_OES_texture_float_linear +#define GL_OES_texture_float_linear 1 +#endif + +/* GL_OES_texture_half_float */ +#ifndef GL_OES_texture_half_float +#define GL_OES_texture_half_float 1 +#endif + +/* GL_OES_texture_half_float_linear */ +#ifndef GL_OES_texture_half_float_linear +#define GL_OES_texture_half_float_linear 1 +#endif + +/* GL_OES_texture_npot */ +#ifndef GL_OES_texture_npot +#define GL_OES_texture_npot 1 +#endif + +/* GL_OES_vertex_array_object */ +#ifndef GL_OES_vertex_array_object +#define GL_OES_vertex_array_object 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glBindVertexArrayOES (GLuint array); +GL_APICALL void GL_APIENTRY glDeleteVertexArraysOES (GLsizei n, const GLuint *arrays); +GL_APICALL void GL_APIENTRY glGenVertexArraysOES (GLsizei n, GLuint *arrays); +GL_APICALL GLboolean GL_APIENTRY glIsVertexArrayOES (GLuint array); +#endif +typedef void (GL_APIENTRYP PFNGLBINDVERTEXARRAYOESPROC) (GLuint array); +typedef void (GL_APIENTRYP PFNGLDELETEVERTEXARRAYSOESPROC) (GLsizei n, const GLuint *arrays); +typedef void (GL_APIENTRYP PFNGLGENVERTEXARRAYSOESPROC) (GLsizei n, GLuint *arrays); +typedef GLboolean (GL_APIENTRYP PFNGLISVERTEXARRAYOESPROC) (GLuint array); +#endif + +/* GL_OES_vertex_half_float */ +#ifndef GL_OES_vertex_half_float +#define GL_OES_vertex_half_float 1 +#endif + +/* GL_OES_vertex_type_10_10_10_2 */ +#ifndef GL_OES_vertex_type_10_10_10_2 +#define GL_OES_vertex_type_10_10_10_2 1 +#endif + +/*------------------------------------------------------------------------* + * KHR extension functions + *------------------------------------------------------------------------*/ + +#ifndef GL_KHR_debug +#define GL_KHR_debug 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glDebugMessageControl (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); +GL_APICALL void GL_APIENTRY glDebugMessageInsert (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); +GL_APICALL void GL_APIENTRY glDebugMessageCallback (GLDEBUGPROC callback, const void *userParam); +GL_APICALL GLuint GL_APIENTRY glGetDebugMessageLog (GLuint count, GLsizei bufsize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); +GL_APICALL void GL_APIENTRY glPushDebugGroup (GLenum source, GLuint id, GLsizei length, const GLchar *message); +GL_APICALL void GL_APIENTRY glPopDebugGroup (void); +GL_APICALL void GL_APIENTRY glObjectLabel (GLenum identifier, GLuint name, GLsizei length, const GLchar *label); +GL_APICALL void GL_APIENTRY glGetObjectLabel (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label); +GL_APICALL void GL_APIENTRY glObjectPtrLabel (const void *ptr, GLsizei length, const GLchar *label); +GL_APICALL void GL_APIENTRY glGetObjectPtrLabel (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label); +GL_APICALL void GL_APIENTRY glGetPointerv (GLenum pname, void **params); +#endif +typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGECONTROLPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); +typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGEINSERTPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); +typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGECALLBACKPROC) (GLDEBUGPROC callback, const void *userParam); +typedef GLuint (GL_APIENTRYP PFNGLGETDEBUGMESSAGELOGPROC) (GLuint count, GLsizei bufsize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); +typedef void (GL_APIENTRYP PFNGLPUSHDEBUGGROUPPROC) (GLenum source, GLuint id, GLsizei length, const GLchar *message); +typedef void (GL_APIENTRYP PFNGLPOPDEBUGGROUPPROC) (void); +typedef void (GL_APIENTRYP PFNGLOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei length, const GLchar *label); +typedef void (GL_APIENTRYP PFNGLGETOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label); +typedef void (GL_APIENTRYP PFNGLOBJECTPTRLABELPROC) (const void *ptr, GLsizei length, const GLchar *label); +typedef void (GL_APIENTRYP PFNGLGETOBJECTPTRLABELPROC) (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label); +typedef void (GL_APIENTRYP PFNGLGETPOINTERVPROC) (GLenum pname, void **params); +#endif + +#ifndef GL_KHR_texture_compression_astc_ldr +#define GL_KHR_texture_compression_astc_ldr 1 +#endif + + +/*------------------------------------------------------------------------* + * AMD extension functions + *------------------------------------------------------------------------*/ + +/* GL_AMD_compressed_3DC_texture */ +#ifndef GL_AMD_compressed_3DC_texture +#define GL_AMD_compressed_3DC_texture 1 +#endif + +/* GL_AMD_compressed_ATC_texture */ +#ifndef GL_AMD_compressed_ATC_texture +#define GL_AMD_compressed_ATC_texture 1 +#endif + +/* AMD_performance_monitor */ +#ifndef GL_AMD_performance_monitor +#define GL_AMD_performance_monitor 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glGetPerfMonitorGroupsAMD (GLint *numGroups, GLsizei groupsSize, GLuint *groups); +GL_APICALL void GL_APIENTRY glGetPerfMonitorCountersAMD (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters); +GL_APICALL void GL_APIENTRY glGetPerfMonitorGroupStringAMD (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString); +GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterStringAMD (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString); +GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterInfoAMD (GLuint group, GLuint counter, GLenum pname, GLvoid *data); +GL_APICALL void GL_APIENTRY glGenPerfMonitorsAMD (GLsizei n, GLuint *monitors); +GL_APICALL void GL_APIENTRY glDeletePerfMonitorsAMD (GLsizei n, GLuint *monitors); +GL_APICALL void GL_APIENTRY glSelectPerfMonitorCountersAMD (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *countersList); +GL_APICALL void GL_APIENTRY glBeginPerfMonitorAMD (GLuint monitor); +GL_APICALL void GL_APIENTRY glEndPerfMonitorAMD (GLuint monitor); +GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterDataAMD (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten); +#endif +typedef void (GL_APIENTRYP PFNGLGETPERFMONITORGROUPSAMDPROC) (GLint *numGroups, GLsizei groupsSize, GLuint *groups); +typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERSAMDPROC) (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters); +typedef void (GL_APIENTRYP PFNGLGETPERFMONITORGROUPSTRINGAMDPROC) (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString); +typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString); +typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERINFOAMDPROC) (GLuint group, GLuint counter, GLenum pname, GLvoid *data); +typedef void (GL_APIENTRYP PFNGLGENPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors); +typedef void (GL_APIENTRYP PFNGLDELETEPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors); +typedef void (GL_APIENTRYP PFNGLSELECTPERFMONITORCOUNTERSAMDPROC) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *countersList); +typedef void (GL_APIENTRYP PFNGLBEGINPERFMONITORAMDPROC) (GLuint monitor); +typedef void (GL_APIENTRYP PFNGLENDPERFMONITORAMDPROC) (GLuint monitor); +typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERDATAAMDPROC) (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten); +#endif + +/* GL_AMD_program_binary_Z400 */ +#ifndef GL_AMD_program_binary_Z400 +#define GL_AMD_program_binary_Z400 1 +#endif + +/*------------------------------------------------------------------------* + * ANGLE extension functions + *------------------------------------------------------------------------*/ + +/* GL_ANGLE_framebuffer_blit */ +#ifndef GL_ANGLE_framebuffer_blit +#define GL_ANGLE_framebuffer_blit 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glBlitFramebufferANGLE (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +#endif +typedef void (GL_APIENTRYP PFNGLBLITFRAMEBUFFERANGLEPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +#endif + +/* GL_ANGLE_framebuffer_multisample */ +#ifndef GL_ANGLE_framebuffer_multisample +#define GL_ANGLE_framebuffer_multisample 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleANGLE (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +#endif +typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEANGLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +#endif + +#ifndef GL_ANGLE_instanced_arrays +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glDrawArraysInstancedANGLE (GLenum mode, GLint first, GLsizei count, GLsizei primcount); +GL_APICALL void GL_APIENTRY glDrawElementsInstancedANGLE (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); +GL_APICALL void GL_APIENTRY glVertexAttribDivisorANGLE (GLuint index, GLuint divisor); +#endif +typedef void (GL_APIENTRYP PFLGLDRAWARRAYSINSTANCEDANGLEPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); +typedef void (GL_APIENTRYP PFLGLDRAWELEMENTSINSTANCEDANGLEPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); +typedef void (GL_APIENTRYP PFLGLVERTEXATTRIBDIVISORANGLEPROC) (GLuint index, GLuint divisor); +#endif + +/* GL_ANGLE_pack_reverse_row_order */ +#ifndef GL_ANGLE_pack_reverse_row_order +#define GL_ANGLE_pack_reverse_row_order 1 +#endif + +/* GL_ANGLE_texture_compression_dxt3 */ +#ifndef GL_ANGLE_texture_compression_dxt3 +#define GL_ANGLE_texture_compression_dxt3 1 +#endif + +/* GL_ANGLE_texture_compression_dxt5 */ +#ifndef GL_ANGLE_texture_compression_dxt5 +#define GL_ANGLE_texture_compression_dxt5 1 +#endif + +/* GL_ANGLE_texture_usage */ +#ifndef GL_ANGLE_texture_usage +#define GL_ANGLE_texture_usage 1 +#endif + +#ifndef GL_ANGLE_translated_shader_source +#define GL_ANGLE_translated_shader_source 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glGetTranslatedShaderSourceANGLE (GLuint shader, GLsizei bufsize, GLsizei *length, GLchar *source); +#endif +typedef void (GL_APIENTRYP PFLGLGETTRANSLATEDSHADERSOURCEANGLEPROC) (GLuint shader, GLsizei bufsize, GLsizei *length, GLchar *source); +#endif + +/*------------------------------------------------------------------------* + * APPLE extension functions + *------------------------------------------------------------------------*/ + +/* GL_APPLE_copy_texture_levels */ +#ifndef GL_APPLE_copy_texture_levels +#define GL_APPLE_copy_texture_levels 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glCopyTextureLevelsAPPLE (GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount); +#endif +typedef void (GL_APIENTRYP PFNGLCOPYTEXTURELEVELSAPPLEPROC) (GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount); +#endif + +/* GL_APPLE_framebuffer_multisample */ +#ifndef GL_APPLE_framebuffer_multisample +#define GL_APPLE_framebuffer_multisample 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleAPPLE (GLenum, GLsizei, GLenum, GLsizei, GLsizei); +GL_APICALL void GL_APIENTRY glResolveMultisampleFramebufferAPPLE (void); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEAPPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (GL_APIENTRYP PFNGLRESOLVEMULTISAMPLEFRAMEBUFFERAPPLEPROC) (void); +#endif + +/* GL_APPLE_rgb_422 */ +#ifndef GL_APPLE_rgb_422 +#define GL_APPLE_rgb_422 1 +#endif + +/* GL_APPLE_sync */ +#ifndef GL_APPLE_sync +#define GL_APPLE_sync 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL GLsync GL_APIENTRY glFenceSyncAPPLE (GLenum condition, GLbitfield flags); +GL_APICALL GLboolean GL_APIENTRY glIsSyncAPPLE (GLsync sync); +GL_APICALL void GL_APIENTRY glDeleteSyncAPPLE (GLsync sync); +GL_APICALL GLenum GL_APIENTRY glClientWaitSyncAPPLE (GLsync sync, GLbitfield flags, GLuint64 timeout); +GL_APICALL void GL_APIENTRY glWaitSyncAPPLE (GLsync sync, GLbitfield flags, GLuint64 timeout); +GL_APICALL void GL_APIENTRY glGetInteger64vAPPLE (GLenum pname, GLint64 *params); +GL_APICALL void GL_APIENTRY glGetSyncivAPPLE (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); +#endif +typedef GLsync (GL_APIENTRYP PFNGLFENCESYNCAPPLEPROC) (GLenum condition, GLbitfield flags); +typedef GLboolean (GL_APIENTRYP PFNGLISSYNCAPPLEPROC) (GLsync sync); +typedef void (GL_APIENTRYP PFNGLDELETESYNCAPPLEPROC) (GLsync sync); +typedef GLenum (GL_APIENTRYP PFNGLCLIENTWAITSYNCAPPLEPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); +typedef void (GL_APIENTRYP PFNGLWAITSYNCAPPLEPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); +typedef void (GL_APIENTRYP PFNGLGETINTEGER64VAPPLEPROC) (GLenum pname, GLint64 *params); +typedef void (GL_APIENTRYP PFNGLGETSYNCIVAPPLEPROC) (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); +#endif + +/* GL_APPLE_texture_format_BGRA8888 */ +#ifndef GL_APPLE_texture_format_BGRA8888 +#define GL_APPLE_texture_format_BGRA8888 1 +#endif + +/* GL_APPLE_texture_max_level */ +#ifndef GL_APPLE_texture_max_level +#define GL_APPLE_texture_max_level 1 +#endif + +/*------------------------------------------------------------------------* + * ARM extension functions + *------------------------------------------------------------------------*/ + +/* GL_ARM_mali_program_binary */ +#ifndef GL_ARM_mali_program_binary +#define GL_ARM_mali_program_binary 1 +#endif + +/* GL_ARM_mali_shader_binary */ +#ifndef GL_ARM_mali_shader_binary +#define GL_ARM_mali_shader_binary 1 +#endif + +/* GL_ARM_rgba8 */ +#ifndef GL_ARM_rgba8 +#define GL_ARM_rgba8 1 +#endif + +/*------------------------------------------------------------------------* + * EXT extension functions + *------------------------------------------------------------------------*/ + +/* GL_EXT_blend_minmax */ +#ifndef GL_EXT_blend_minmax +#define GL_EXT_blend_minmax 1 +#endif + +/* GL_EXT_color_buffer_half_float */ +#ifndef GL_EXT_color_buffer_half_float +#define GL_EXT_color_buffer_half_float 1 +#endif + +/* GL_EXT_debug_label */ +#ifndef GL_EXT_debug_label +#define GL_EXT_debug_label 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glLabelObjectEXT (GLenum type, GLuint object, GLsizei length, const GLchar *label); +GL_APICALL void GL_APIENTRY glGetObjectLabelEXT (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label); +#endif +typedef void (GL_APIENTRYP PFNGLLABELOBJECTEXTPROC) (GLenum type, GLuint object, GLsizei length, const GLchar *label); +typedef void (GL_APIENTRYP PFNGLGETOBJECTLABELEXTPROC) (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label); +#endif + +/* GL_EXT_debug_marker */ +#ifndef GL_EXT_debug_marker +#define GL_EXT_debug_marker 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glInsertEventMarkerEXT (GLsizei length, const GLchar *marker); +GL_APICALL void GL_APIENTRY glPushGroupMarkerEXT (GLsizei length, const GLchar *marker); +GL_APICALL void GL_APIENTRY glPopGroupMarkerEXT (void); +#endif +typedef void (GL_APIENTRYP PFNGLINSERTEVENTMARKEREXTPROC) (GLsizei length, const GLchar *marker); +typedef void (GL_APIENTRYP PFNGLPUSHGROUPMARKEREXTPROC) (GLsizei length, const GLchar *marker); +typedef void (GL_APIENTRYP PFNGLPOPGROUPMARKEREXTPROC) (void); +#endif + +/* GL_EXT_discard_framebuffer */ +#ifndef GL_EXT_discard_framebuffer +#define GL_EXT_discard_framebuffer 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glDiscardFramebufferEXT (GLenum target, GLsizei numAttachments, const GLenum *attachments); +#endif +typedef void (GL_APIENTRYP PFNGLDISCARDFRAMEBUFFEREXTPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments); +#endif + +/* GL_EXT_map_buffer_range */ +#ifndef GL_EXT_map_buffer_range +#define GL_EXT_map_buffer_range 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void* GL_APIENTRY glMapBufferRangeEXT (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); +GL_APICALL void GL_APIENTRY glFlushMappedBufferRangeEXT (GLenum target, GLintptr offset, GLsizeiptr length); +#endif +typedef void* (GL_APIENTRYP PFNGLMAPBUFFERRANGEEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); +typedef void (GL_APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr length); +#endif + +/* GL_EXT_multisampled_render_to_texture */ +#ifndef GL_EXT_multisampled_render_to_texture +#define GL_EXT_multisampled_render_to_texture 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleEXT (GLenum, GLsizei, GLenum, GLsizei, GLsizei); +GL_APICALL void GL_APIENTRY glFramebufferTexture2DMultisampleEXT (GLenum, GLenum, GLenum, GLuint, GLint, GLsizei); +#endif +typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); +#endif + +/* GL_EXT_multiview_draw_buffers */ +#ifndef GL_EXT_multiview_draw_buffers +#define GL_EXT_multiview_draw_buffers 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glReadBufferIndexedEXT (GLenum src, GLint index); +GL_APICALL void GL_APIENTRY glDrawBuffersIndexedEXT (GLint n, const GLenum *location, const GLint *indices); +GL_APICALL void GL_APIENTRY glGetIntegeri_vEXT (GLenum target, GLuint index, GLint *data); +#endif +typedef void (GL_APIENTRYP PFNGLREADBUFFERINDEXEDEXTPROC) (GLenum src, GLint index); +typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSINDEXEDEXTPROC) (GLint n, const GLenum *location, const GLint *indices); +typedef void (GL_APIENTRYP PFNGLGETINTEGERI_VEXTPROC) (GLenum target, GLuint index, GLint *data); +#endif + +#ifndef GL_EXT_multi_draw_arrays +#define GL_EXT_multi_draw_arrays 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glMultiDrawArraysEXT (GLenum, GLint *, GLsizei *, GLsizei); +GL_APICALL void GL_APIENTRY glMultiDrawElementsEXT (GLenum, const GLsizei *, GLenum, const GLvoid* *, GLsizei); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (GL_APIENTRYP PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount); +typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount); +#endif + +/* GL_EXT_occlusion_query_boolean */ +#ifndef GL_EXT_occlusion_query_boolean +#define GL_EXT_occlusion_query_boolean 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glGenQueriesEXT (GLsizei n, GLuint *ids); +GL_APICALL void GL_APIENTRY glDeleteQueriesEXT (GLsizei n, const GLuint *ids); +GL_APICALL GLboolean GL_APIENTRY glIsQueryEXT (GLuint id); +GL_APICALL void GL_APIENTRY glBeginQueryEXT (GLenum target, GLuint id); +GL_APICALL void GL_APIENTRY glEndQueryEXT (GLenum target); +GL_APICALL void GL_APIENTRY glGetQueryivEXT (GLenum target, GLenum pname, GLint *params); +GL_APICALL void GL_APIENTRY glGetQueryObjectuivEXT (GLuint id, GLenum pname, GLuint *params); +#endif +typedef void (GL_APIENTRYP PFNGLGENQUERIESEXTPROC) (GLsizei n, GLuint *ids); +typedef void (GL_APIENTRYP PFNGLDELETEQUERIESEXTPROC) (GLsizei n, const GLuint *ids); +typedef GLboolean (GL_APIENTRYP PFNGLISQUERYEXTPROC) (GLuint id); +typedef void (GL_APIENTRYP PFNGLBEGINQUERYEXTPROC) (GLenum target, GLuint id); +typedef void (GL_APIENTRYP PFNGLENDQUERYEXTPROC) (GLenum target); +typedef void (GL_APIENTRYP PFNGLGETQUERYIVEXTPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTUIVEXTPROC) (GLuint id, GLenum pname, GLuint *params); +#endif + +/* GL_EXT_read_format_bgra */ +#ifndef GL_EXT_read_format_bgra +#define GL_EXT_read_format_bgra 1 +#endif + +/* GL_EXT_robustness */ +#ifndef GL_EXT_robustness +#define GL_EXT_robustness 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL GLenum GL_APIENTRY glGetGraphicsResetStatusEXT (void); +GL_APICALL void GL_APIENTRY glReadnPixelsEXT (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); +GL_APICALL void GL_APIENTRY glGetnUniformfvEXT (GLuint program, GLint location, GLsizei bufSize, float *params); +GL_APICALL void GL_APIENTRY glGetnUniformivEXT (GLuint program, GLint location, GLsizei bufSize, GLint *params); +#endif +typedef GLenum (GL_APIENTRYP PFNGLGETGRAPHICSRESETSTATUSEXTPROC) (void); +typedef void (GL_APIENTRYP PFNGLREADNPIXELSEXTPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); +typedef void (GL_APIENTRYP PFNGLGETNUNIFORMFVEXTPROC) (GLuint program, GLint location, GLsizei bufSize, float *params); +typedef void (GL_APIENTRYP PFNGLGETNUNIFORMIVEXTPROC) (GLuint program, GLint location, GLsizei bufSize, GLint *params); +#endif + +/* GL_EXT_separate_shader_objects */ +#ifndef GL_EXT_separate_shader_objects +#define GL_EXT_separate_shader_objects 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glUseProgramStagesEXT (GLuint pipeline, GLbitfield stages, GLuint program); +GL_APICALL void GL_APIENTRY glActiveShaderProgramEXT (GLuint pipeline, GLuint program); +GL_APICALL GLuint GL_APIENTRY glCreateShaderProgramvEXT (GLenum type, GLsizei count, const GLchar **strings); +GL_APICALL void GL_APIENTRY glBindProgramPipelineEXT (GLuint pipeline); +GL_APICALL void GL_APIENTRY glDeleteProgramPipelinesEXT (GLsizei n, const GLuint *pipelines); +GL_APICALL void GL_APIENTRY glGenProgramPipelinesEXT (GLsizei n, GLuint *pipelines); +GL_APICALL GLboolean GL_APIENTRY glIsProgramPipelineEXT (GLuint pipeline); +GL_APICALL void GL_APIENTRY glProgramParameteriEXT (GLuint program, GLenum pname, GLint value); +GL_APICALL void GL_APIENTRY glGetProgramPipelineivEXT (GLuint pipeline, GLenum pname, GLint *params); +GL_APICALL void GL_APIENTRY glProgramUniform1iEXT (GLuint program, GLint location, GLint x); +GL_APICALL void GL_APIENTRY glProgramUniform2iEXT (GLuint program, GLint location, GLint x, GLint y); +GL_APICALL void GL_APIENTRY glProgramUniform3iEXT (GLuint program, GLint location, GLint x, GLint y, GLint z); +GL_APICALL void GL_APIENTRY glProgramUniform4iEXT (GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w); +GL_APICALL void GL_APIENTRY glProgramUniform1fEXT (GLuint program, GLint location, GLfloat x); +GL_APICALL void GL_APIENTRY glProgramUniform2fEXT (GLuint program, GLint location, GLfloat x, GLfloat y); +GL_APICALL void GL_APIENTRY glProgramUniform3fEXT (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z); +GL_APICALL void GL_APIENTRY glProgramUniform4fEXT (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +GL_APICALL void GL_APIENTRY glProgramUniform1ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); +GL_APICALL void GL_APIENTRY glProgramUniform2ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); +GL_APICALL void GL_APIENTRY glProgramUniform3ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); +GL_APICALL void GL_APIENTRY glProgramUniform4ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); +GL_APICALL void GL_APIENTRY glProgramUniform1fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); +GL_APICALL void GL_APIENTRY glProgramUniform2fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); +GL_APICALL void GL_APIENTRY glProgramUniform3fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); +GL_APICALL void GL_APIENTRY glProgramUniform4fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); +GL_APICALL void GL_APIENTRY glProgramUniformMatrix2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GL_APICALL void GL_APIENTRY glProgramUniformMatrix3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GL_APICALL void GL_APIENTRY glProgramUniformMatrix4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GL_APICALL void GL_APIENTRY glValidateProgramPipelineEXT (GLuint pipeline); +GL_APICALL void GL_APIENTRY glGetProgramPipelineInfoLogEXT (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +#endif +typedef void (GL_APIENTRYP PFNGLUSEPROGRAMSTAGESEXTPROC) (GLuint pipeline, GLbitfield stages, GLuint program); +typedef void (GL_APIENTRYP PFNGLACTIVESHADERPROGRAMEXTPROC) (GLuint pipeline, GLuint program); +typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROGRAMVEXTPROC) (GLenum type, GLsizei count, const GLchar **strings); +typedef void (GL_APIENTRYP PFNGLBINDPROGRAMPIPELINEEXTPROC) (GLuint pipeline); +typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPIPELINESEXTPROC) (GLsizei n, const GLuint *pipelines); +typedef void (GL_APIENTRYP PFNGLGENPROGRAMPIPELINESEXTPROC) (GLsizei n, GLuint *pipelines); +typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPIPELINEEXTPROC) (GLuint pipeline); +typedef void (GL_APIENTRYP PFNGLPROGRAMPARAMETERIEXTPROC) (GLuint program, GLenum pname, GLint value); +typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEIVEXTPROC) (GLuint pipeline, GLenum pname, GLint *params); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IEXTPROC) (GLuint program, GLint location, GLint x); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IEXTPROC) (GLuint program, GLint location, GLint x, GLint y); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IEXTPROC) (GLuint program, GLint location, GLint x, GLint y, GLint z); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IEXTPROC) (GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FEXTPROC) (GLuint program, GLint location, GLfloat x); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FEXTPROC) (GLuint program, GLint location, GLfloat x, GLfloat y); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FEXTPROC) (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FEXTPROC) (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPIPELINEEXTPROC) (GLuint pipeline); +typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEINFOLOGEXTPROC) (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +#endif + +/* GL_EXT_shader_framebuffer_fetch */ +#ifndef GL_EXT_shader_framebuffer_fetch +#define GL_EXT_shader_framebuffer_fetch 1 +#endif + +/* GL_EXT_shader_texture_lod */ +#ifndef GL_EXT_shader_texture_lod +#define GL_EXT_shader_texture_lod 1 +#endif + +/* GL_EXT_shadow_samplers */ +#ifndef GL_EXT_shadow_samplers +#define GL_EXT_shadow_samplers 1 +#endif + +/* GL_EXT_sRGB */ +#ifndef GL_EXT_sRGB +#define GL_EXT_sRGB 1 +#endif + +/* GL_EXT_texture_compression_dxt1 */ +#ifndef GL_EXT_texture_compression_dxt1 +#define GL_EXT_texture_compression_dxt1 1 +#endif + +/* GL_EXT_texture_filter_anisotropic */ +#ifndef GL_EXT_texture_filter_anisotropic +#define GL_EXT_texture_filter_anisotropic 1 +#endif + +/* GL_EXT_texture_format_BGRA8888 */ +#ifndef GL_EXT_texture_format_BGRA8888 +#define GL_EXT_texture_format_BGRA8888 1 +#endif + +/* GL_EXT_texture_rg */ +#ifndef GL_EXT_texture_rg +#define GL_EXT_texture_rg 1 +#endif + +/* GL_EXT_texture_storage */ +#ifndef GL_EXT_texture_storage +#define GL_EXT_texture_storage 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glTexStorage1DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); +GL_APICALL void GL_APIENTRY glTexStorage2DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +GL_APICALL void GL_APIENTRY glTexStorage3DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +GL_APICALL void GL_APIENTRY glTextureStorage1DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); +GL_APICALL void GL_APIENTRY glTextureStorage2DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +GL_APICALL void GL_APIENTRY glTextureStorage3DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +#endif +typedef void (GL_APIENTRYP PFNGLTEXSTORAGE1DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); +typedef void (GL_APIENTRYP PFNGLTEXSTORAGE2DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (GL_APIENTRYP PFNGLTEXSTORAGE3DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE1DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); +typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE2DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE3DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +#endif + +/* GL_EXT_texture_type_2_10_10_10_REV */ +#ifndef GL_EXT_texture_type_2_10_10_10_REV +#define GL_EXT_texture_type_2_10_10_10_REV 1 +#endif + +/* GL_EXT_unpack_subimage */ +#ifndef GL_EXT_unpack_subimage +#define GL_EXT_unpack_subimage 1 +#endif + +/*------------------------------------------------------------------------* + * DMP extension functions + *------------------------------------------------------------------------*/ + +/* GL_DMP_shader_binary */ +#ifndef GL_DMP_shader_binary +#define GL_DMP_shader_binary 1 +#endif + +/*------------------------------------------------------------------------* + * FJ extension functions + *------------------------------------------------------------------------*/ + +/* GL_FJ_shader_binary_GCCSO */ +#ifndef GL_FJ_shader_binary_GCCSO +#define GL_FJ_shader_binary_GCCSO 1 +#endif + +/*------------------------------------------------------------------------* + * IMG extension functions + *------------------------------------------------------------------------*/ + +/* GL_IMG_program_binary */ +#ifndef GL_IMG_program_binary +#define GL_IMG_program_binary 1 +#endif + +/* GL_IMG_read_format */ +#ifndef GL_IMG_read_format +#define GL_IMG_read_format 1 +#endif + +/* GL_IMG_shader_binary */ +#ifndef GL_IMG_shader_binary +#define GL_IMG_shader_binary 1 +#endif + +/* GL_IMG_texture_compression_pvrtc */ +#ifndef GL_IMG_texture_compression_pvrtc +#define GL_IMG_texture_compression_pvrtc 1 +#endif + +/* GL_IMG_multisampled_render_to_texture */ +#ifndef GL_IMG_multisampled_render_to_texture +#define GL_IMG_multisampled_render_to_texture 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleIMG (GLenum, GLsizei, GLenum, GLsizei, GLsizei); +GL_APICALL void GL_APIENTRY glFramebufferTexture2DMultisampleIMG (GLenum, GLenum, GLenum, GLuint, GLint, GLsizei); +#endif +typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMGPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMGPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); +#endif + +/*------------------------------------------------------------------------* + * NV extension functions + *------------------------------------------------------------------------*/ + +/* GL_NV_coverage_sample */ +#ifndef GL_NV_coverage_sample +#define GL_NV_coverage_sample 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glCoverageMaskNV (GLboolean mask); +GL_APICALL void GL_APIENTRY glCoverageOperationNV (GLenum operation); +#endif +typedef void (GL_APIENTRYP PFNGLCOVERAGEMASKNVPROC) (GLboolean mask); +typedef void (GL_APIENTRYP PFNGLCOVERAGEOPERATIONNVPROC) (GLenum operation); +#endif + +/* GL_NV_depth_nonlinear */ +#ifndef GL_NV_depth_nonlinear +#define GL_NV_depth_nonlinear 1 +#endif + +/* GL_NV_draw_buffers */ +#ifndef GL_NV_draw_buffers +#define GL_NV_draw_buffers 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glDrawBuffersNV (GLsizei n, const GLenum *bufs); +#endif +typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSNVPROC) (GLsizei n, const GLenum *bufs); +#endif + +/* GL_NV_fbo_color_attachments */ +#ifndef GL_NV_fbo_color_attachments +#define GL_NV_fbo_color_attachments 1 +#endif + +/* GL_NV_fence */ +#ifndef GL_NV_fence +#define GL_NV_fence 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glDeleteFencesNV (GLsizei, const GLuint *); +GL_APICALL void GL_APIENTRY glGenFencesNV (GLsizei, GLuint *); +GL_APICALL GLboolean GL_APIENTRY glIsFenceNV (GLuint); +GL_APICALL GLboolean GL_APIENTRY glTestFenceNV (GLuint); +GL_APICALL void GL_APIENTRY glGetFenceivNV (GLuint, GLenum, GLint *); +GL_APICALL void GL_APIENTRY glFinishFenceNV (GLuint); +GL_APICALL void GL_APIENTRY glSetFenceNV (GLuint, GLenum); +#endif +typedef void (GL_APIENTRYP PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint *fences); +typedef void (GL_APIENTRYP PFNGLGENFENCESNVPROC) (GLsizei n, GLuint *fences); +typedef GLboolean (GL_APIENTRYP PFNGLISFENCENVPROC) (GLuint fence); +typedef GLboolean (GL_APIENTRYP PFNGLTESTFENCENVPROC) (GLuint fence); +typedef void (GL_APIENTRYP PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint *params); +typedef void (GL_APIENTRYP PFNGLFINISHFENCENVPROC) (GLuint fence); +typedef void (GL_APIENTRYP PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition); +#endif + +/* GL_NV_read_buffer */ +#ifndef GL_NV_read_buffer +#define GL_NV_read_buffer 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glReadBufferNV (GLenum mode); +#endif +typedef void (GL_APIENTRYP PFNGLREADBUFFERNVPROC) (GLenum mode); +#endif + +/* GL_NV_read_buffer_front */ +#ifndef GL_NV_read_buffer_front +#define GL_NV_read_buffer_front 1 +#endif + +/* GL_NV_read_depth */ +#ifndef GL_NV_read_depth +#define GL_NV_read_depth 1 +#endif + +/* GL_NV_read_depth_stencil */ +#ifndef GL_NV_read_depth_stencil +#define GL_NV_read_depth_stencil 1 +#endif + +/* GL_NV_read_stencil */ +#ifndef GL_NV_read_stencil +#define GL_NV_read_stencil 1 +#endif + +/* GL_NV_texture_compression_s3tc_update */ +#ifndef GL_NV_texture_compression_s3tc_update +#define GL_NV_texture_compression_s3tc_update 1 +#endif + +/* GL_NV_texture_npot_2D_mipmap */ +#ifndef GL_NV_texture_npot_2D_mipmap +#define GL_NV_texture_npot_2D_mipmap 1 +#endif + +/*------------------------------------------------------------------------* + * QCOM extension functions + *------------------------------------------------------------------------*/ + +/* GL_QCOM_alpha_test */ +#ifndef GL_QCOM_alpha_test +#define GL_QCOM_alpha_test 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glAlphaFuncQCOM (GLenum func, GLclampf ref); +#endif +typedef void (GL_APIENTRYP PFNGLALPHAFUNCQCOMPROC) (GLenum func, GLclampf ref); +#endif + +/* GL_QCOM_binning_control */ +#ifndef GL_QCOM_binning_control +#define GL_QCOM_binning_control 1 +#endif + +/* GL_QCOM_driver_control */ +#ifndef GL_QCOM_driver_control +#define GL_QCOM_driver_control 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glGetDriverControlsQCOM (GLint *num, GLsizei size, GLuint *driverControls); +GL_APICALL void GL_APIENTRY glGetDriverControlStringQCOM (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString); +GL_APICALL void GL_APIENTRY glEnableDriverControlQCOM (GLuint driverControl); +GL_APICALL void GL_APIENTRY glDisableDriverControlQCOM (GLuint driverControl); +#endif +typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSQCOMPROC) (GLint *num, GLsizei size, GLuint *driverControls); +typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSTRINGQCOMPROC) (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString); +typedef void (GL_APIENTRYP PFNGLENABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl); +typedef void (GL_APIENTRYP PFNGLDISABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl); +#endif + +/* GL_QCOM_extended_get */ +#ifndef GL_QCOM_extended_get +#define GL_QCOM_extended_get 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glExtGetTexturesQCOM (GLuint *textures, GLint maxTextures, GLint *numTextures); +GL_APICALL void GL_APIENTRY glExtGetBuffersQCOM (GLuint *buffers, GLint maxBuffers, GLint *numBuffers); +GL_APICALL void GL_APIENTRY glExtGetRenderbuffersQCOM (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers); +GL_APICALL void GL_APIENTRY glExtGetFramebuffersQCOM (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers); +GL_APICALL void GL_APIENTRY glExtGetTexLevelParameterivQCOM (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params); +GL_APICALL void GL_APIENTRY glExtTexObjectStateOverrideiQCOM (GLenum target, GLenum pname, GLint param); +GL_APICALL void GL_APIENTRY glExtGetTexSubImageQCOM (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid *texels); +GL_APICALL void GL_APIENTRY glExtGetBufferPointervQCOM (GLenum target, GLvoid **params); +#endif +typedef void (GL_APIENTRYP PFNGLEXTGETTEXTURESQCOMPROC) (GLuint *textures, GLint maxTextures, GLint *numTextures); +typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERSQCOMPROC) (GLuint *buffers, GLint maxBuffers, GLint *numBuffers); +typedef void (GL_APIENTRYP PFNGLEXTGETRENDERBUFFERSQCOMPROC) (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers); +typedef void (GL_APIENTRYP PFNGLEXTGETFRAMEBUFFERSQCOMPROC) (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers); +typedef void (GL_APIENTRYP PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC) (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params); +typedef void (GL_APIENTRYP PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC) (GLenum target, GLenum pname, GLint param); +typedef void (GL_APIENTRYP PFNGLEXTGETTEXSUBIMAGEQCOMPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid *texels); +typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERPOINTERVQCOMPROC) (GLenum target, GLvoid **params); +#endif + +/* GL_QCOM_extended_get2 */ +#ifndef GL_QCOM_extended_get2 +#define GL_QCOM_extended_get2 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glExtGetShadersQCOM (GLuint *shaders, GLint maxShaders, GLint *numShaders); +GL_APICALL void GL_APIENTRY glExtGetProgramsQCOM (GLuint *programs, GLint maxPrograms, GLint *numPrograms); +GL_APICALL GLboolean GL_APIENTRY glExtIsProgramBinaryQCOM (GLuint program); +GL_APICALL void GL_APIENTRY glExtGetProgramBinarySourceQCOM (GLuint program, GLenum shadertype, GLchar *source, GLint *length); +#endif +typedef void (GL_APIENTRYP PFNGLEXTGETSHADERSQCOMPROC) (GLuint *shaders, GLint maxShaders, GLint *numShaders); +typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMSQCOMPROC) (GLuint *programs, GLint maxPrograms, GLint *numPrograms); +typedef GLboolean (GL_APIENTRYP PFNGLEXTISPROGRAMBINARYQCOMPROC) (GLuint program); +typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMBINARYSOURCEQCOMPROC) (GLuint program, GLenum shadertype, GLchar *source, GLint *length); +#endif + +/* GL_QCOM_perfmon_global_mode */ +#ifndef GL_QCOM_perfmon_global_mode +#define GL_QCOM_perfmon_global_mode 1 +#endif + +/* GL_QCOM_writeonly_rendering */ +#ifndef GL_QCOM_writeonly_rendering +#define GL_QCOM_writeonly_rendering 1 +#endif + +/* GL_QCOM_tiled_rendering */ +#ifndef GL_QCOM_tiled_rendering +#define GL_QCOM_tiled_rendering 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glStartTilingQCOM (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask); +GL_APICALL void GL_APIENTRY glEndTilingQCOM (GLbitfield preserveMask); +#endif +typedef void (GL_APIENTRYP PFNGLSTARTTILINGQCOMPROC) (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask); +typedef void (GL_APIENTRYP PFNGLENDTILINGQCOMPROC) (GLbitfield preserveMask); +#endif + +/*------------------------------------------------------------------------* + * VIV extension tokens + *------------------------------------------------------------------------*/ + +/* GL_VIV_shader_binary */ +#ifndef GL_VIV_shader_binary +#define GL_VIV_shader_binary 1 +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* __gl2ext_h_ */ + +#endif /* _MSC_VER */ + +#ifndef APIENTRY +#define APIENTRY GL_APIENTRY +#endif \ No newline at end of file diff --git a/src/render/opengles2/SDL_gles2funcs.h b/src/render/opengles2/SDL_gles2funcs.h index b201bdfd100e7..9faad133b3324 100644 --- a/src/render/opengles2/SDL_gles2funcs.h +++ b/src/render/opengles2/SDL_gles2funcs.h @@ -46,3 +46,5 @@ SDL_PROC(void, glBindFramebuffer, (GLenum, GLuint)) SDL_PROC(void, glFramebufferTexture2D, (GLenum, GLenum, GLenum, GLuint, GLint)) SDL_PROC(GLenum, glCheckFramebufferStatus, (GLenum)) SDL_PROC(void, glDeleteFramebuffers, (GLsizei, const GLuint *)) +SDL_PROC(GLint, glGetAttribLocation, (GLuint, const GLchar *)) + \ No newline at end of file diff --git a/src/video/SDL_egl.c b/src/video/SDL_egl.c index 73a6df16fa4ef..ce8f46221944d 100644 --- a/src/video/SDL_egl.c +++ b/src/video/SDL_egl.c @@ -23,8 +23,9 @@ #if SDL_VIDEO_OPENGL_EGL #include "SDL_sysvideo.h" -#include "SDL_egl.h" - +#include "SDL_egl_c.h" +#include "SDL_loadso.h" +#include "SDL_hints.h" #if SDL_VIDEO_DRIVER_RPI /* Raspbian places the OpenGL ES/EGL binaries in a non standard path */ @@ -40,6 +41,13 @@ #define DEFAULT_OGL_ES_PVR "libGLES_CM.so" #define DEFAULT_OGL_ES "libGLESv1_CM.so" +#elif SDL_VIDEO_DRIVER_WINDOWS +/* EGL AND OpenGL ES support via ANGLE */ +#define DEFAULT_EGL "libEGL.dll" +#define DEFAULT_OGL_ES2 "libGLESv2.dll" +#define DEFAULT_OGL_ES_PVR "libGLES_CM.dll" +#define DEFAULT_OGL_ES "libGLESv1_CM.dll" + #else /* Desktop Linux */ #define DEFAULT_EGL "libEGL.so.1" @@ -49,7 +57,7 @@ #endif /* SDL_VIDEO_DRIVER_RPI */ #define LOAD_FUNC(NAME) \ -*((void**)&_this->egl_data->NAME) = dlsym(dll_handle, #NAME); \ +*((void**)&_this->egl_data->NAME) = SDL_LoadFunction(_this->egl_data->dll_handle, #NAME); \ if (!_this->egl_data->NAME) \ { \ return SDL_SetError("Could not retrieve EGL function " #NAME); \ @@ -61,12 +69,10 @@ void * SDL_EGL_GetProcAddress(_THIS, const char *proc) { static char procname[1024]; - void *handle; void *retval; /* eglGetProcAddress is busted on Android http://code.google.com/p/android/issues/detail?id=7681 */ -#if !defined(SDL_VIDEO_DRIVER_ANDROID) - handle = _this->egl_data->egl_dll_handle; +#if !defined(SDL_VIDEO_DRIVER_ANDROID) if (_this->egl_data->eglGetProcAddress) { retval = _this->egl_data->eglGetProcAddress(proc); if (retval) { @@ -75,15 +81,11 @@ SDL_EGL_GetProcAddress(_THIS, const char *proc) } #endif - handle = _this->gl_config.dll_handle; - #if defined(__OpenBSD__) && !defined(__ELF__) - #undef dlsym(x,y); - #endif - retval = dlsym(handle, proc); - if (!retval && strlen(proc) <= 1022) { + retval = SDL_LoadFunction(_this->egl_data->egl_dll_handle, proc); + if (!retval && SDL_strlen(proc) <= 1022) { procname[0] = '_'; - strcpy(procname + 1, proc); - retval = dlsym(handle, procname); + SDL_strlcpy(procname + 1, proc, 1022); + retval = SDL_LoadFunction(_this->egl_data->egl_dll_handle, procname); } return retval; } @@ -97,12 +99,12 @@ SDL_EGL_UnloadLibrary(_THIS) _this->egl_data->egl_display = NULL; } - if (_this->gl_config.dll_handle) { - dlclose(_this->gl_config.dll_handle); - _this->gl_config.dll_handle = NULL; + if (_this->egl_data->dll_handle) { + SDL_UnloadObject(_this->egl_data->dll_handle); + _this->egl_data->dll_handle = NULL; } if (_this->egl_data->egl_dll_handle) { - dlclose(_this->egl_data->egl_dll_handle); + SDL_UnloadObject(_this->egl_data->egl_dll_handle); _this->egl_data->egl_dll_handle = NULL; } @@ -114,10 +116,12 @@ SDL_EGL_UnloadLibrary(_THIS) int SDL_EGL_LoadLibrary(_THIS, const char *egl_path, NativeDisplayType native_display) { - void *dll_handle, *egl_dll_handle; /* The naming is counter intuitive, but hey, I just work here -- Gabriel */ - char *path; - int dlopen_flags; - + void *dll_handle = NULL, *egl_dll_handle = NULL; /* The naming is counter intuitive, but hey, I just work here -- Gabriel */ + char *path = NULL; +#if SDL_VIDEO_DRIVER_WINDOWS + const char *d3dcompiler; +#endif + if (_this->egl_data) { return SDL_SetError("OpenGL ES context already created"); } @@ -127,50 +131,63 @@ SDL_EGL_LoadLibrary(_THIS, const char *egl_path, NativeDisplayType native_displa return SDL_OutOfMemory(); } -#ifdef RTLD_GLOBAL - dlopen_flags = RTLD_LAZY | RTLD_GLOBAL; -#else - dlopen_flags = RTLD_LAZY; +#if SDL_VIDEO_DRIVER_WINDOWS + d3dcompiler = SDL_GetHint(SDL_HINT_VIDEO_WIN_D3DCOMPILER); + if (!d3dcompiler) { + /* By default we load the Vista+ compatible compiler */ + d3dcompiler = "d3dcompiler_46.dll"; + } + if (SDL_strcasecmp(d3dcompiler, "none") != 0) { + SDL_LoadObject(d3dcompiler); + } #endif /* A funny thing, loading EGL.so first does not work on the Raspberry, so we load libGL* first */ - path = getenv("SDL_VIDEO_GL_DRIVER"); - egl_dll_handle = dlopen(path, dlopen_flags); - if ((path == NULL) | (egl_dll_handle == NULL)) { + path = SDL_getenv("SDL_VIDEO_GL_DRIVER"); + if (path != NULL) { + egl_dll_handle = SDL_LoadObject(path); + } + + if (egl_dll_handle == NULL) { if (_this->gl_config.major_version > 1) { path = DEFAULT_OGL_ES2; - egl_dll_handle = dlopen(path, dlopen_flags); - } else { + egl_dll_handle = SDL_LoadObject(path); + } + else { path = DEFAULT_OGL_ES; - egl_dll_handle = dlopen(path, dlopen_flags); + egl_dll_handle = SDL_LoadObject(path); if (egl_dll_handle == NULL) { path = DEFAULT_OGL_ES_PVR; - egl_dll_handle = dlopen(path, dlopen_flags); + egl_dll_handle = SDL_LoadObject(path); } } } _this->egl_data->egl_dll_handle = egl_dll_handle; if (egl_dll_handle == NULL) { - return SDL_SetError("Could not initialize OpenGL ES library: %s", dlerror()); + return SDL_SetError("Could not initialize OpenGL ES library"); } - + /* Loading libGL* in the previous step took care of loading libEGL.so, but we future proof by double checking */ - dll_handle = dlopen(egl_path, dlopen_flags); + if (egl_path != NULL) { + dll_handle = SDL_LoadObject(egl_path); + } /* Catch the case where the application isn't linked with EGL */ - if ((dlsym(dll_handle, "eglChooseConfig") == NULL) && (egl_path == NULL)) { - dlclose(dll_handle); - path = getenv("SDL_VIDEO_EGL_DRIVER"); + if ((SDL_LoadFunction(dll_handle, "eglChooseConfig") == NULL) && (egl_path == NULL)) { + if (dll_handle != NULL) { + SDL_UnloadObject(dll_handle); + } + path = SDL_getenv("SDL_VIDEO_EGL_DRIVER"); if (path == NULL) { path = DEFAULT_EGL; } - dll_handle = dlopen(path, dlopen_flags); + dll_handle = SDL_LoadObject(path); + if (dll_handle == NULL) { + return SDL_SetError("Could not load EGL library"); + } } - _this->gl_config.dll_handle = dll_handle; - if (dll_handle == NULL) { - return SDL_SetError("Could not load EGL library: %s", dlerror()); - } + _this->egl_data->dll_handle = dll_handle; /* Load new function pointers */ LOAD_FUNC(eglGetDisplay); @@ -198,14 +215,14 @@ SDL_EGL_LoadLibrary(_THIS, const char *egl_path, NativeDisplayType native_displa return SDL_SetError("Could not initialize EGL"); } - _this->gl_config.dll_handle = dll_handle; + _this->egl_data->dll_handle = dll_handle; _this->egl_data->egl_dll_handle = egl_dll_handle; _this->gl_config.driver_loaded = 1; if (path) { - strncpy(_this->gl_config.driver_path, path, sizeof(_this->gl_config.driver_path) - 1); + SDL_strlcpy(_this->gl_config.driver_path, path, sizeof(_this->gl_config.driver_path) - 1); } else { - strcpy(_this->gl_config.driver_path, ""); + *_this->gl_config.driver_path = '\0'; } /* We need to select a config here to satisfy some video backends such as X11 */ @@ -217,10 +234,10 @@ SDL_EGL_ChooseConfig(_THIS) { /* 64 seems nice. */ EGLint attribs[64]; - EGLint found_configs = 0; + EGLint found_configs = 0, value; /* 128 seems even nicer here */ EGLConfig configs[128]; - int i, j, best_bitdiff = -1, bitdiff, value; + int i, j, best_bitdiff = -1, bitdiff; if (!_this->egl_data) { /* The EGL library wasn't loaded, SDL_GetError() should have info */ @@ -283,10 +300,10 @@ SDL_EGL_ChooseConfig(_THIS) /* eglChooseConfig returns a number of configurations that match or exceed the requested attribs. */ /* From those, we select the one that matches our requirements more closely via a makeshift algorithm */ - + for ( i=0; iegl_data->eglGetConfigAttrib(_this->egl_data->egl_display, configs[i], attribs[j], &value); bitdiff += value - attribs[j + 1]; /* value is always >= attrib */ } diff --git a/src/video/SDL_egl.h b/src/video/SDL_egl_c.h similarity index 76% rename from src/video/SDL_egl.h rename to src/video/SDL_egl_c.h index d6139058d6940..3f0cd06ede38f 100644 --- a/src/video/SDL_egl.h +++ b/src/video/SDL_egl_c.h @@ -25,62 +25,57 @@ #if SDL_VIDEO_OPENGL_EGL -#include - -#include -#if defined(__OpenBSD__) && !defined(__ELF__) -#define dlsym(x,y) dlsym(x, "_" y) -#endif +#include "SDL_egl.h" #include "SDL_sysvideo.h" typedef struct SDL_EGL_VideoData { - void *egl_dll_handle; + void *egl_dll_handle, *dll_handle; EGLDisplay egl_display; EGLConfig egl_config; int egl_swapinterval; - EGLDisplay(*eglGetDisplay) (NativeDisplayType display); - EGLBoolean(*eglInitialize) (EGLDisplay dpy, EGLint * major, + EGLDisplay(EGLAPIENTRY *eglGetDisplay) (NativeDisplayType display); + EGLBoolean(EGLAPIENTRY *eglInitialize) (EGLDisplay dpy, EGLint * major, EGLint * minor); - EGLBoolean(*eglTerminate) (EGLDisplay dpy); + EGLBoolean(EGLAPIENTRY *eglTerminate) (EGLDisplay dpy); - void *(*eglGetProcAddress) (const char * procName); + void *(EGLAPIENTRY *eglGetProcAddress) (const char * procName); - EGLBoolean(*eglChooseConfig) (EGLDisplay dpy, + EGLBoolean(EGLAPIENTRY *eglChooseConfig) (EGLDisplay dpy, const EGLint * attrib_list, EGLConfig * configs, EGLint config_size, EGLint * num_config); - EGLContext(*eglCreateContext) (EGLDisplay dpy, + EGLContext(EGLAPIENTRY *eglCreateContext) (EGLDisplay dpy, EGLConfig config, EGLContext share_list, const EGLint * attrib_list); - EGLBoolean(*eglDestroyContext) (EGLDisplay dpy, EGLContext ctx); + EGLBoolean(EGLAPIENTRY *eglDestroyContext) (EGLDisplay dpy, EGLContext ctx); - EGLSurface(*eglCreateWindowSurface) (EGLDisplay dpy, + EGLSurface(EGLAPIENTRY *eglCreateWindowSurface) (EGLDisplay dpy, EGLConfig config, NativeWindowType window, const EGLint * attrib_list); - EGLBoolean(*eglDestroySurface) (EGLDisplay dpy, EGLSurface surface); + EGLBoolean(EGLAPIENTRY *eglDestroySurface) (EGLDisplay dpy, EGLSurface surface); - EGLBoolean(*eglMakeCurrent) (EGLDisplay dpy, EGLSurface draw, + EGLBoolean(EGLAPIENTRY *eglMakeCurrent) (EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx); - EGLBoolean(*eglSwapBuffers) (EGLDisplay dpy, EGLSurface draw); + EGLBoolean(EGLAPIENTRY *eglSwapBuffers) (EGLDisplay dpy, EGLSurface draw); - EGLBoolean(*eglSwapInterval) (EGLDisplay dpy, EGLint interval); + EGLBoolean(EGLAPIENTRY *eglSwapInterval) (EGLDisplay dpy, EGLint interval); - const char *(*eglQueryString) (EGLDisplay dpy, EGLint name); + const char *(EGLAPIENTRY *eglQueryString) (EGLDisplay dpy, EGLint name); - EGLBoolean(*eglGetConfigAttrib) (EGLDisplay dpy, EGLConfig config, + EGLBoolean(EGLAPIENTRY *eglGetConfigAttrib) (EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint * value); - EGLBoolean(*eglWaitNative) (EGLint engine); + EGLBoolean(EGLAPIENTRY *eglWaitNative) (EGLint engine); - EGLBoolean(*eglWaitGL)(void); + EGLBoolean(EGLAPIENTRY *eglWaitGL)(void); } SDL_EGL_VideoData; /* OpenGLES functions */ diff --git a/src/video/android/SDL_androidgl.c b/src/video/android/SDL_androidgl.c index 691fbf7fb67c9..010465d795450 100644 --- a/src/video/android/SDL_androidgl.c +++ b/src/video/android/SDL_androidgl.c @@ -25,7 +25,7 @@ /* Android SDL video driver implementation */ #include "SDL_video.h" -#include "../SDL_egl.h" +#include "../SDL_egl_c.h" #include "SDL_androidwindow.h" #include "SDL_androidvideo.h" diff --git a/src/video/android/SDL_androidvideo.c b/src/video/android/SDL_androidvideo.c index fc766ece7f643..aea5a48d31f66 100644 --- a/src/video/android/SDL_androidvideo.c +++ b/src/video/android/SDL_androidvideo.c @@ -45,7 +45,7 @@ static int Android_VideoInit(_THIS); static void Android_VideoQuit(_THIS); -#include "../SDL_egl.h" +#include "../SDL_egl_c.h" /* GL functions (SDL_androidgl.c) */ extern SDL_GLContext Android_GLES_CreateContext(_THIS, SDL_Window * window); extern int Android_GLES_MakeCurrent(_THIS, SDL_Window * window, SDL_GLContext context); diff --git a/src/video/android/SDL_androidwindow.h b/src/video/android/SDL_androidwindow.h index 4365cd414de50..ed042765d2933 100644 --- a/src/video/android/SDL_androidwindow.h +++ b/src/video/android/SDL_androidwindow.h @@ -24,7 +24,7 @@ #define _SDL_androidwindow_h #include "../../core/android/SDL_android.h" -#include "../SDL_egl.h" +#include "../SDL_egl_c.h" extern int Android_CreateWindow(_THIS, SDL_Window * window); extern void Android_SetWindowTitle(_THIS, SDL_Window * window); diff --git a/src/video/raspberry/SDL_rpiopengles.h b/src/video/raspberry/SDL_rpiopengles.h index deb4b2f363615..f98c8709d8202 100644 --- a/src/video/raspberry/SDL_rpiopengles.h +++ b/src/video/raspberry/SDL_rpiopengles.h @@ -26,7 +26,7 @@ #if SDL_VIDEO_DRIVER_RPI && SDL_VIDEO_OPENGL_EGL #include "../SDL_sysvideo.h" -#include "../SDL_egl.h" +#include "../SDL_egl_c.h" /* OpenGLES functions */ #define RPI_GLES_GetAttribute SDL_EGL_GetAttribute diff --git a/src/video/windows/SDL_windowsopengl.c b/src/video/windows/SDL_windowsopengl.c index 20d9913d873c1..3156c1a01c492 100644 --- a/src/video/windows/SDL_windowsopengl.c +++ b/src/video/windows/SDL_windowsopengl.c @@ -25,6 +25,7 @@ #include "SDL_assert.h" #include "SDL_loadso.h" #include "SDL_windowsvideo.h" +#include "SDL_windowsopengles.h" /* WGL implementation of SDL OpenGL support */ @@ -323,11 +324,35 @@ HasExtension(const char *extension, const char *extensions) return SDL_FALSE; } -static void -WIN_GL_InitExtensions(_THIS, HDC hdc) +void +WIN_GL_InitExtensions(_THIS) { const char *(WINAPI * wglGetExtensionsStringARB) (HDC) = 0; const char *extensions; + HWND hwnd; + HDC hdc; + HGLRC hglrc; + PIXELFORMATDESCRIPTOR pfd; + + hwnd = + CreateWindow(SDL_Appname, SDL_Appname, (WS_POPUP | WS_DISABLED), 0, 0, + 10, 10, NULL, NULL, SDL_Instance, NULL); + if (!hwnd) { + return; + } + WIN_PumpEvents(_this); + + hdc = GetDC(hwnd); + + WIN_GL_SetupPixelFormat(_this, &pfd); + + SetPixelFormat(hdc, ChoosePixelFormat(hdc, &pfd), &pfd); + + hglrc = _this->gl_data->wglCreateContext(hdc); + if (!hglrc) { + return; + } + _this->gl_data->wglMakeCurrent(hdc, hglrc); wglGetExtensionsStringARB = (const char *(WINAPI *) (HDC)) _this->gl_data->wglGetProcAddress("wglGetExtensionsStringARB"); @@ -369,6 +394,18 @@ WIN_GL_InitExtensions(_THIS, HDC hdc) _this->gl_data->wglSwapIntervalEXT = NULL; _this->gl_data->wglGetSwapIntervalEXT = NULL; } + + /* Check for WGL_EXT_create_context_es2_profile */ + _this->gl_data->HAS_WGL_EXT_create_context_es2_profile = SDL_FALSE; + if (HasExtension("WGL_EXT_create_context_es2_profile", extensions)) { + _this->gl_data->HAS_WGL_EXT_create_context_es2_profile = SDL_TRUE; + } + + _this->gl_data->wglMakeCurrent(hdc, NULL); + _this->gl_data->wglDeleteContext(hglrc); + ReleaseDC(hwnd, hdc); + DestroyWindow(hwnd); + WIN_PumpEvents(_this); } static int @@ -396,8 +433,6 @@ WIN_GL_ChoosePixelFormatARB(_THIS, int *iAttribs, float *fAttribs) if (hglrc) { _this->gl_data->wglMakeCurrent(hdc, hglrc); - WIN_GL_InitExtensions(_this, hdc); - if (_this->gl_data->HAS_WGL_ARB_pixel_format) { _this->gl_data->wglChoosePixelFormatARB(hdc, iAttribs, fAttribs, 1, &pixel_format, @@ -548,6 +583,27 @@ WIN_GL_CreateContext(_THIS, SDL_Window * window) HDC hdc = ((SDL_WindowData *) window->driverdata)->hdc; HGLRC context, share_context; + if (_this->gl_config.profile_mask == SDL_GL_CONTEXT_PROFILE_ES && + !_this->gl_data->HAS_WGL_EXT_create_context_es2_profile) { + /* Switch to EGL based functions */ + WIN_GL_UnloadLibrary(_this); + _this->GL_LoadLibrary = WIN_GLES_LoadLibrary; + _this->GL_GetProcAddress = WIN_GLES_GetProcAddress; + _this->GL_UnloadLibrary = WIN_GLES_UnloadLibrary; + _this->GL_CreateContext = WIN_GLES_CreateContext; + _this->GL_MakeCurrent = WIN_GLES_MakeCurrent; + _this->GL_SetSwapInterval = WIN_GLES_SetSwapInterval; + _this->GL_GetSwapInterval = WIN_GLES_GetSwapInterval; + _this->GL_SwapWindow = WIN_GLES_SwapWindow; + _this->GL_DeleteContext = WIN_GLES_DeleteContext; + + if (WIN_GLES_LoadLibrary(_this, NULL) != 0) { + return NULL; + } + + return WIN_GLES_CreateContext(_this, window); + } + if (_this->gl_config.share_with_current_context) { share_context = (HGLRC)SDL_GL_GetCurrentContext(); } else { @@ -622,8 +678,6 @@ WIN_GL_CreateContext(_THIS, SDL_Window * window) return NULL; } - WIN_GL_InitExtensions(_this, hdc); - return context; } diff --git a/src/video/windows/SDL_windowsopengl.h b/src/video/windows/SDL_windowsopengl.h index 36da7ba89031e..155dbde97f483 100644 --- a/src/video/windows/SDL_windowsopengl.h +++ b/src/video/windows/SDL_windowsopengl.h @@ -29,6 +29,7 @@ struct SDL_GLDriverData { SDL_bool HAS_WGL_ARB_pixel_format; SDL_bool HAS_WGL_EXT_swap_control_tear; + SDL_bool HAS_WGL_EXT_create_context_es2_profile; void *(WINAPI * wglGetProcAddress) (const char *proc); HGLRC(WINAPI * wglCreateContext) (HDC hdc); @@ -62,6 +63,7 @@ extern int WIN_GL_SetSwapInterval(_THIS, int interval); extern int WIN_GL_GetSwapInterval(_THIS); extern void WIN_GL_SwapWindow(_THIS, SDL_Window * window); extern void WIN_GL_DeleteContext(_THIS, SDL_GLContext context); +extern void WIN_GL_InitExtensions(_THIS); #ifndef WGL_ARB_pixel_format #define WGL_NUMBER_PIXEL_FORMATS_ARB 0x2000 diff --git a/src/video/windows/SDL_windowsopengles.c b/src/video/windows/SDL_windowsopengles.c new file mode 100644 index 0000000000000..0934f4f8e9227 --- /dev/null +++ b/src/video/windows/SDL_windowsopengles.c @@ -0,0 +1,141 @@ +/* +Simple DirectMedia Layer +Copyright (C) 1997-2013 Sam Lantinga + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not +claim that you wrote the original software. If you use this software +in a product, an acknowledgment in the product documentation would be +appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be +misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +*/ +#include "SDL_config.h" + +#if SDL_VIDEO_DRIVER_WINDOWS && SDL_VIDEO_OPENGL_EGL + +#include "SDL_windowsvideo.h" +#include "SDL_windowsopengles.h" +#include "SDL_windowsopengl.h" +#include "SDL_log.h" + +/* EGL implementation of SDL OpenGL support */ + +int +WIN_GLES_LoadLibrary(_THIS, const char *path) { + + SDL_VideoData *data = (SDL_VideoData *)_this->driverdata; + + /* If the profile requested is not GL ES, switch over to WIN_GL functions */ + if (_this->gl_config.profile_mask != SDL_GL_CONTEXT_PROFILE_ES) { +#if SDL_VIDEO_OPENGL_WGL + WIN_GLES_UnloadLibrary(_this); + _this->GL_LoadLibrary = WIN_GL_LoadLibrary; + _this->GL_GetProcAddress = WIN_GL_GetProcAddress; + _this->GL_UnloadLibrary = WIN_GL_UnloadLibrary; + _this->GL_CreateContext = WIN_GL_CreateContext; + _this->GL_MakeCurrent = WIN_GL_MakeCurrent; + _this->GL_SetSwapInterval = WIN_GL_SetSwapInterval; + _this->GL_GetSwapInterval = WIN_GL_GetSwapInterval; + _this->GL_SwapWindow = WIN_GL_SwapWindow; + _this->GL_DeleteContext = WIN_GL_DeleteContext; + return WIN_GL_LoadLibrary(_this, path); +#else + return SDL_SetError("SDL not configured with OpenGL/WGL support"); +#endif + } + + if (_this->egl_data == NULL) { + return SDL_EGL_LoadLibrary(_this, NULL, EGL_DEFAULT_DISPLAY); + } + + return 0; +} + +SDL_GLContext +WIN_GLES_CreateContext(_THIS, SDL_Window * window) +{ + SDL_GLContext context; + SDL_WindowData *data = (SDL_WindowData *)window->driverdata; + + if (_this->gl_config.profile_mask != SDL_GL_CONTEXT_PROFILE_ES) { + /* Switch to WGL based functions */ + WIN_GLES_UnloadLibrary(_this); + _this->GL_LoadLibrary = WIN_GL_LoadLibrary; + _this->GL_GetProcAddress = WIN_GL_GetProcAddress; + _this->GL_UnloadLibrary = WIN_GL_UnloadLibrary; + _this->GL_CreateContext = WIN_GL_CreateContext; + _this->GL_MakeCurrent = WIN_GL_MakeCurrent; + _this->GL_SetSwapInterval = WIN_GL_SetSwapInterval; + _this->GL_GetSwapInterval = WIN_GL_GetSwapInterval; + _this->GL_SwapWindow = WIN_GL_SwapWindow; + _this->GL_DeleteContext = WIN_GL_DeleteContext; + + if (WIN_GL_LoadLibrary(_this, NULL) != 0) { + return NULL; + } + + return WIN_GL_CreateContext(_this, window); + } + + context = SDL_EGL_CreateContext(_this, data->egl_surface); + return context; +} + +void +WIN_GLES_DeleteContext(_THIS, SDL_GLContext context) +{ + SDL_EGL_DeleteContext(_this, context); + WIN_GLES_UnloadLibrary(_this); +} + +SDL_EGL_SwapWindow_impl(WIN) +SDL_EGL_MakeCurrent_impl(WIN) + +int +WIN_GLES_SetupWindow(_THIS, SDL_Window * window) +{ + /* The current context is lost in here; save it and reset it. */ + SDL_WindowData *windowdata = (SDL_WindowData *) window->driverdata; + SDL_Window *current_win = SDL_GL_GetCurrentWindow(); + SDL_GLContext current_ctx = SDL_GL_GetCurrentContext(); + + + if (_this->egl_data == NULL) { + if (SDL_EGL_LoadLibrary(_this, NULL, EGL_DEFAULT_DISPLAY) < 0) { + return -1; + } + } + + /* Create the GLES window surface */ + windowdata->egl_surface = SDL_EGL_CreateSurface(_this, (NativeWindowType)windowdata->hwnd); + + if (windowdata->egl_surface == EGL_NO_SURFACE) { + return SDL_SetError("Could not create GLES window surface"); + } + + return WIN_GLES_MakeCurrent(_this, current_win, current_ctx); +} + +int +WIN_GLES_SetSwapInterval(_THIS, int interval) +{ + /* FIXME: This should call SDL_EGL_SetSwapInterval, but ANGLE has a bug that prevents this + * from working if we do (the window contents freeze and don't swap properly). So, we ignore + * the request for now. + */ + SDL_Log("WARNING: Ignoring SDL_GL_SetSwapInterval call due to ANGLE bug"); + return 0; +} + +#endif /* SDL_VIDEO_DRIVER_WINDOWS && SDL_VIDEO_OPENGL_EGL */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/src/video/windows/SDL_windowsopengles.h b/src/video/windows/SDL_windowsopengles.h new file mode 100644 index 0000000000000..cdb1cad4aafc0 --- /dev/null +++ b/src/video/windows/SDL_windowsopengles.h @@ -0,0 +1,51 @@ +/* +Simple DirectMedia Layer +Copyright (C) 1997-2013 Sam Lantinga + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not +claim that you wrote the original software. If you use this software +in a product, an acknowledgment in the product documentation would be +appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be +misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +*/ +#include "SDL_config.h" + +#ifndef _SDL_winopengles_h +#define _SDL_winopengles_h + +#if SDL_VIDEO_OPENGL_EGL + +#include "../SDL_sysvideo.h" +#include "../SDL_egl_c.h" + +/* OpenGLES functions */ +#define WIN_GLES_GetAttribute SDL_EGL_GetAttribute +#define WIN_GLES_GetProcAddress SDL_EGL_GetProcAddress +#define WIN_GLES_UnloadLibrary SDL_EGL_UnloadLibrary +#define WIN_GLES_GetSwapInterval SDL_EGL_GetSwapInterval +/* See the WIN_GLES_GetSwapInterval implementation to see why this is commented out */ +/*#define WIN_GLES_SetSwapInterval SDL_EGL_SetSwapInterval*/ +extern int WIN_GLES_SetSwapInterval(_THIS, int interval); + +extern int WIN_GLES_LoadLibrary(_THIS, const char *path); +extern SDL_GLContext WIN_GLES_CreateContext(_THIS, SDL_Window * window); +extern void WIN_GLES_SwapWindow(_THIS, SDL_Window * window); +extern int WIN_GLES_MakeCurrent(_THIS, SDL_Window * window, SDL_GLContext context); +extern void WIN_GLES_DeleteContext(_THIS, SDL_GLContext context); +extern int WIN_GLES_SetupWindow(_THIS, SDL_Window * window); + +#endif /* SDL_VIDEO_OPENGL_EGL */ + +#endif /* _SDL_winopengles_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/src/video/windows/SDL_windowsvideo.h b/src/video/windows/SDL_windowsvideo.h index ff2b4a2ac7eac..689f17708e337 100644 --- a/src/video/windows/SDL_windowsvideo.h +++ b/src/video/windows/SDL_windowsvideo.h @@ -44,6 +44,7 @@ #include "SDL_windowsmodes.h" #include "SDL_windowsmouse.h" #include "SDL_windowsopengl.h" +#include "SDL_windowsopengles.h" #include "SDL_windowswindow.h" #include "SDL_events.h" #include "SDL_loadso.h" diff --git a/src/video/windows/SDL_windowswindow.c b/src/video/windows/SDL_windowswindow.c index c7055e46d177f..990c0cb23dc5d 100755 --- a/src/video/windows/SDL_windowswindow.c +++ b/src/video/windows/SDL_windowswindow.c @@ -273,6 +273,32 @@ WIN_CreateWindow(_THIS, SDL_Window * window) DestroyWindow(hwnd); return -1; } + +#if SDL_VIDEO_OPENGL_WGL + /* We need to initialize the extensions before deciding how to create ES profiles */ + if (window->flags & SDL_WINDOW_OPENGL) { + WIN_GL_InitExtensions(_this); + } +#endif + +#if SDL_VIDEO_OPENGL_ES2 + if ((window->flags & SDL_WINDOW_OPENGL) && + _this->gl_config.profile_mask == SDL_GL_CONTEXT_PROFILE_ES +#if SDL_VIDEO_OPENGL_WGL + && (!_this->gl_data || !_this->gl_data->HAS_WGL_EXT_create_context_es2_profile) +#endif + ) { +#if SDL_VIDEO_OPENGL_EGL + if (WIN_GLES_SetupWindow(_this, window) < 0) { + WIN_DestroyWindow(_this, window); + return -1; + } +#else + return SDL_SetError("Could not create GLES window surface (no EGL support available)"); +#endif /* SDL_VIDEO_OPENGL_EGL */ + } else +#endif /* SDL_VIDEO_OPENGL_ES2 */ + #if SDL_VIDEO_OPENGL_WGL if (window->flags & SDL_WINDOW_OPENGL) { if (WIN_GL_SetupWindow(_this, window) < 0) { @@ -281,6 +307,7 @@ WIN_CreateWindow(_THIS, SDL_Window * window) } } #endif + return 0; } diff --git a/src/video/windows/SDL_windowswindow.h b/src/video/windows/SDL_windowswindow.h index a4c035f53ab4f..52837a17aaf97 100755 --- a/src/video/windows/SDL_windowswindow.h +++ b/src/video/windows/SDL_windowswindow.h @@ -23,6 +23,10 @@ #ifndef _SDL_windowswindow_h #define _SDL_windowswindow_h +#if SDL_VIDEO_OPENGL_EGL +#include "../SDL_egl_c.h" +#endif + typedef struct { SDL_Window *window; @@ -35,6 +39,9 @@ typedef struct WPARAM mouse_button_flags; BOOL expected_resize; struct SDL_VideoData *videodata; +#if SDL_VIDEO_OPENGL_EGL + EGLSurface egl_surface; +#endif } SDL_WindowData; extern int WIN_CreateWindow(_THIS, SDL_Window * window); diff --git a/src/video/x11/SDL_x11opengles.h b/src/video/x11/SDL_x11opengles.h index 978f91f3d4695..ed2a551b7fdb8 100644 --- a/src/video/x11/SDL_x11opengles.h +++ b/src/video/x11/SDL_x11opengles.h @@ -26,7 +26,7 @@ #if SDL_VIDEO_OPENGL_EGL #include "../SDL_sysvideo.h" -#include "../SDL_egl.h" +#include "../SDL_egl_c.h" typedef struct SDL_PrivateGLESData { diff --git a/test/configure b/test/configure index b55398de080fa..14fb4d34d9435 100755 --- a/test/configure +++ b/test/configure @@ -3902,7 +3902,7 @@ if test x$have_opengles = xyes; then fi if test x$have_opengles2 = xyes; then CFLAGS="$CFLAGS -DHAVE_OPENGLES2" - GLES2LIB="$XPATH -lGLESv2" + #GLES2LIB="$XPATH -lGLESv2" fi if test x$have_opengl = xyes; then CFLAGS="$CFLAGS -DHAVE_OPENGL" diff --git a/test/configure.in b/test/configure.in index efc0d5dd60292..a55e63df830cf 100644 --- a/test/configure.in +++ b/test/configure.in @@ -161,7 +161,7 @@ if test x$have_opengles = xyes; then fi if test x$have_opengles2 = xyes; then CFLAGS="$CFLAGS -DHAVE_OPENGLES2" - GLES2LIB="$XPATH -lGLESv2" + #GLES2LIB="$XPATH -lGLESv2" fi if test x$have_opengl = xyes; then CFLAGS="$CFLAGS -DHAVE_OPENGL" diff --git a/test/testgles2.c b/test/testgles2.c index f73fbdbe41ddb..db729f0fd2cf2 100644 --- a/test/testgles2.c +++ b/test/testgles2.c @@ -1,647 +1,694 @@ -/* - Copyright (r) 1997-2011 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely. -*/ -#include -#include -#include -#include - -#include "SDL_test_common.h" - -#if defined(__IPHONEOS__) || defined(__ANDROID__) -#define HAVE_OPENGLES2 -#endif - -#ifdef HAVE_OPENGLES2 - -#include "SDL_opengles2.h" - -static SDLTest_CommonState *state; -static SDL_GLContext *context = NULL; -static int depth = 16; - -/* Call this instead of exit(), so we can clean up SDL: atexit() is evil. */ -static void -quit(int rc) -{ - int i; - - if (context != NULL) { - for (i = 0; i < state->num_windows; i++) { - if (context[i]) { - SDL_GL_DeleteContext(context[i]); - } - } - - SDL_free(context); - } - - SDLTest_CommonQuit(state); - exit(rc); -} - -#define GL_CHECK(x) \ - x; \ - { \ - GLenum glError = glGetError(); \ - if(glError != GL_NO_ERROR) { \ - fprintf(stderr, "glGetError() = %i (0x%.8x) at line %i\n", glError, glError, __LINE__); \ - quit(1); \ - } \ - } - -/* - * Simulates desktop's glRotatef. The matrix is returned in column-major - * order. - */ -static void -rotate_matrix(double angle, double x, double y, double z, float *r) -{ - double radians, c, s, c1, u[3], length; - int i, j; - - radians = (angle * M_PI) / 180.0; - - c = cos(radians); - s = sin(radians); - - c1 = 1.0 - cos(radians); - - length = sqrt(x * x + y * y + z * z); - - u[0] = x / length; - u[1] = y / length; - u[2] = z / length; - - for (i = 0; i < 16; i++) { - r[i] = 0.0; - } - - r[15] = 1.0; - - for (i = 0; i < 3; i++) { - r[i * 4 + (i + 1) % 3] = u[(i + 2) % 3] * s; - r[i * 4 + (i + 2) % 3] = -u[(i + 1) % 3] * s; - } - - for (i = 0; i < 3; i++) { - for (j = 0; j < 3; j++) { - r[i * 4 + j] += c1 * u[i] * u[j] + (i == j ? c : 0.0); - } - } -} - -/* - * Simulates gluPerspectiveMatrix - */ -static void -perspective_matrix(double fovy, double aspect, double znear, double zfar, float *r) -{ - int i; - double f; - - f = 1.0/tan(fovy * 0.5); - - for (i = 0; i < 16; i++) { - r[i] = 0.0; - } - - r[0] = f / aspect; - r[5] = f; - r[10] = (znear + zfar) / (znear - zfar); - r[11] = -1.0; - r[14] = (2.0 * znear * zfar) / (znear - zfar); - r[15] = 0.0; -} - -/* - * Multiplies lhs by rhs and writes out to r. All matrices are 4x4 and column - * major. In-place multiplication is supported. - */ -static void -multiply_matrix(float *lhs, float *rhs, float *r) -{ - int i, j, k; - float tmp[16]; - - for (i = 0; i < 4; i++) { - for (j = 0; j < 4; j++) { - tmp[j * 4 + i] = 0.0; - - for (k = 0; k < 4; k++) { - tmp[j * 4 + i] += lhs[k * 4 + i] * rhs[j * 4 + k]; - } - } - } - - for (i = 0; i < 16; i++) { - r[i] = tmp[i]; - } -} - -/* - * Create shader, load in source, compile, dump debug as necessary. - * - * shader: Pointer to return created shader ID. - * source: Passed-in shader source code. - * shader_type: Passed to GL, e.g. GL_VERTEX_SHADER. - */ -void -process_shader(GLuint *shader, const char * source, GLint shader_type) -{ - GLint status; - const char *shaders[1] = { NULL }; - - /* Create shader and load into GL. */ - *shader = GL_CHECK(glCreateShader(shader_type)); - - shaders[0] = source; - - GL_CHECK(glShaderSource(*shader, 1, shaders, NULL)); - - /* Clean up shader source. */ - shaders[0] = NULL; - - /* Try compiling the shader. */ - GL_CHECK(glCompileShader(*shader)); - GL_CHECK(glGetShaderiv(*shader, GL_COMPILE_STATUS, &status)); - - // Dump debug info (source and log) if compilation failed. - if(status != GL_TRUE) { - quit(-1); - } -} - -/* 3D data. Vertex range -0.5..0.5 in all axes. -* Z -0.5 is near, 0.5 is far. */ -const float _vertices[] = -{ - /* Front face. */ - /* Bottom left */ - -0.5, 0.5, -0.5, - 0.5, -0.5, -0.5, - -0.5, -0.5, -0.5, - /* Top right */ - -0.5, 0.5, -0.5, - 0.5, 0.5, -0.5, - 0.5, -0.5, -0.5, - /* Left face */ - /* Bottom left */ - -0.5, 0.5, 0.5, - -0.5, -0.5, -0.5, - -0.5, -0.5, 0.5, - /* Top right */ - -0.5, 0.5, 0.5, - -0.5, 0.5, -0.5, - -0.5, -0.5, -0.5, - /* Top face */ - /* Bottom left */ - -0.5, 0.5, 0.5, - 0.5, 0.5, -0.5, - -0.5, 0.5, -0.5, - /* Top right */ - -0.5, 0.5, 0.5, - 0.5, 0.5, 0.5, - 0.5, 0.5, -0.5, - /* Right face */ - /* Bottom left */ - 0.5, 0.5, -0.5, - 0.5, -0.5, 0.5, - 0.5, -0.5, -0.5, - /* Top right */ - 0.5, 0.5, -0.5, - 0.5, 0.5, 0.5, - 0.5, -0.5, 0.5, - /* Back face */ - /* Bottom left */ - 0.5, 0.5, 0.5, - -0.5, -0.5, 0.5, - 0.5, -0.5, 0.5, - /* Top right */ - 0.5, 0.5, 0.5, - -0.5, 0.5, 0.5, - -0.5, -0.5, 0.5, - /* Bottom face */ - /* Bottom left */ - -0.5, -0.5, -0.5, - 0.5, -0.5, 0.5, - -0.5, -0.5, 0.5, - /* Top right */ - -0.5, -0.5, -0.5, - 0.5, -0.5, -0.5, - 0.5, -0.5, 0.5, -}; - -const float _colors[] = -{ - /* Front face */ - /* Bottom left */ - 1.0, 0.0, 0.0, /* red */ - 0.0, 0.0, 1.0, /* blue */ - 0.0, 1.0, 0.0, /* green */ - /* Top right */ - 1.0, 0.0, 0.0, /* red */ - 1.0, 1.0, 0.0, /* yellow */ - 0.0, 0.0, 1.0, /* blue */ - /* Left face */ - /* Bottom left */ - 1.0, 1.0, 1.0, /* white */ - 0.0, 1.0, 0.0, /* green */ - 0.0, 1.0, 1.0, /* cyan */ - /* Top right */ - 1.0, 1.0, 1.0, /* white */ - 1.0, 0.0, 0.0, /* red */ - 0.0, 1.0, 0.0, /* green */ - /* Top face */ - /* Bottom left */ - 1.0, 1.0, 1.0, /* white */ - 1.0, 1.0, 0.0, /* yellow */ - 1.0, 0.0, 0.0, /* red */ - /* Top right */ - 1.0, 1.0, 1.0, /* white */ - 0.0, 0.0, 0.0, /* black */ - 1.0, 1.0, 0.0, /* yellow */ - /* Right face */ - /* Bottom left */ - 1.0, 1.0, 0.0, /* yellow */ - 1.0, 0.0, 1.0, /* magenta */ - 0.0, 0.0, 1.0, /* blue */ - /* Top right */ - 1.0, 1.0, 0.0, /* yellow */ - 0.0, 0.0, 0.0, /* black */ - 1.0, 0.0, 1.0, /* magenta */ - /* Back face */ - /* Bottom left */ - 0.0, 0.0, 0.0, /* black */ - 0.0, 1.0, 1.0, /* cyan */ - 1.0, 0.0, 1.0, /* magenta */ - /* Top right */ - 0.0, 0.0, 0.0, /* black */ - 1.0, 1.0, 1.0, /* white */ - 0.0, 1.0, 1.0, /* cyan */ - /* Bottom face */ - /* Bottom left */ - 0.0, 1.0, 0.0, /* green */ - 1.0, 0.0, 1.0, /* magenta */ - 0.0, 1.0, 1.0, /* cyan */ - /* Top right */ - 0.0, 1.0, 0.0, /* green */ - 0.0, 0.0, 1.0, /* blue */ - 1.0, 0.0, 1.0, /* magenta */ -}; - -const char* _shader_vert_src = -" attribute vec4 av4position; " -" attribute vec3 av3color; " -" uniform mat4 mvp; " -" varying vec3 vv3color; " -" void main() { " -" vv3color = av3color; " -" gl_Position = mvp * av4position; " -" } "; - -const char* _shader_frag_src = -" precision lowp float; " -" varying vec3 vv3color; " -" void main() { " -" gl_FragColor = vec4(vv3color, 1.0); " -" } "; - -typedef struct shader_data -{ - GLuint shader_program, shader_frag, shader_vert; - - GLint attr_position; - GLint attr_color, attr_mvp; - - int angle_x, angle_y, angle_z; - -} shader_data; - -static void -Render(unsigned int width, unsigned int height, shader_data* data) -{ - float matrix_rotate[16], matrix_modelview[16], matrix_perspective[16], matrix_mvp[16]; - - /* - * Do some rotation with Euler angles. It is not a fixed axis as - * quaterions would be, but the effect is cool. - */ - rotate_matrix(data->angle_x, 1.0, 0.0, 0.0, matrix_modelview); - rotate_matrix(data->angle_y, 0.0, 1.0, 0.0, matrix_rotate); - - multiply_matrix(matrix_rotate, matrix_modelview, matrix_modelview); - - rotate_matrix(data->angle_z, 0.0, 1.0, 0.0, matrix_rotate); - - multiply_matrix(matrix_rotate, matrix_modelview, matrix_modelview); - - /* Pull the camera back from the cube */ - matrix_modelview[14] -= 2.5; - - perspective_matrix(45.0, (double)width/(double)height, 0.01, 100.0, matrix_perspective); - multiply_matrix(matrix_perspective, matrix_modelview, matrix_mvp); - - GL_CHECK(glUniformMatrix4fv(data->attr_mvp, 1, GL_FALSE, matrix_mvp)); - - data->angle_x += 3; - data->angle_y += 2; - data->angle_z += 1; - - if(data->angle_x >= 360) data->angle_x -= 360; - if(data->angle_x < 0) data->angle_x += 360; - if(data->angle_y >= 360) data->angle_y -= 360; - if(data->angle_y < 0) data->angle_y += 360; - if(data->angle_z >= 360) data->angle_z -= 360; - if(data->angle_z < 0) data->angle_z += 360; - - GL_CHECK(glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT)); - GL_CHECK(glDrawArrays(GL_TRIANGLES, 0, 36)); -} - -int -main(int argc, char *argv[]) -{ - int fsaa, accel; - int value; - int i, done; - SDL_DisplayMode mode; - SDL_Event event; - Uint32 then, now, frames; - int status; - shader_data *datas, *data; - - /* Initialize parameters */ - fsaa = 0; - accel = 0; - - /* Initialize test framework */ - state = SDLTest_CommonCreateState(argv, SDL_INIT_VIDEO); - if (!state) { - return 1; - } - for (i = 1; i < argc;) { - int consumed; - - consumed = SDLTest_CommonArg(state, i); - if (consumed == 0) { - if (SDL_strcasecmp(argv[i], "--fsaa") == 0) { - ++fsaa; - consumed = 1; - } else if (SDL_strcasecmp(argv[i], "--accel") == 0) { - ++accel; - consumed = 1; - } else if (SDL_strcasecmp(argv[i], "--zdepth") == 0) { - i++; - if (!argv[i]) { - consumed = -1; - } else { - depth = SDL_atoi(argv[i]); - consumed = 1; - } - } else { - consumed = -1; - } - } - if (consumed < 0) { - fprintf(stderr, "Usage: %s %s [--fsaa] [--accel] [--zdepth %%d]\n", argv[0], - SDLTest_CommonUsage(state)); - quit(1); - } - i += consumed; - } - - /* Set OpenGL parameters */ - state->window_flags |= SDL_WINDOW_OPENGL | SDL_WINDOW_RESIZABLE | SDL_WINDOW_BORDERLESS; - state->gl_red_size = 5; - state->gl_green_size = 5; - state->gl_blue_size = 5; - state->gl_depth_size = depth; - state->gl_major_version = 2; - state->gl_minor_version = 0; - state->gl_profile_mask = SDL_GL_CONTEXT_PROFILE_ES; - - if (fsaa) { - state->gl_multisamplebuffers=1; - state->gl_multisamplesamples=fsaa; - } - if (accel) { - state->gl_accelerated=1; - } - if (!SDLTest_CommonInit(state)) { - return; - quit(2); - } - - context = SDL_calloc(state->num_windows, sizeof(context)); - if (context == NULL) { - fprintf(stderr, "Out of memory!\n"); - quit(2); - } - - /* Create OpenGL ES contexts */ - for (i = 0; i < state->num_windows; i++) { - context[i] = SDL_GL_CreateContext(state->windows[i]); - if (!context[i]) { - fprintf(stderr, "SDL_GL_CreateContext(): %s\n", SDL_GetError()); - quit(2); - } - } - - if (state->render_flags & SDL_RENDERER_PRESENTVSYNC) { - SDL_GL_SetSwapInterval(1); - } else { - SDL_GL_SetSwapInterval(0); - } - - SDL_GetCurrentDisplayMode(0, &mode); - printf("Screen bpp: %d\n", SDL_BITSPERPIXEL(mode.format)); - printf("\n"); - printf("Vendor : %s\n", glGetString(GL_VENDOR)); - printf("Renderer : %s\n", glGetString(GL_RENDERER)); - printf("Version : %s\n", glGetString(GL_VERSION)); - printf("Extensions : %s\n", glGetString(GL_EXTENSIONS)); - printf("\n"); - - status = SDL_GL_GetAttribute(SDL_GL_RED_SIZE, &value); - if (!status) { - printf("SDL_GL_RED_SIZE: requested %d, got %d\n", 5, value); - } else { - fprintf(stderr, "Failed to get SDL_GL_RED_SIZE: %s\n", - SDL_GetError()); - } - status = SDL_GL_GetAttribute(SDL_GL_GREEN_SIZE, &value); - if (!status) { - printf("SDL_GL_GREEN_SIZE: requested %d, got %d\n", 5, value); - } else { - fprintf(stderr, "Failed to get SDL_GL_GREEN_SIZE: %s\n", - SDL_GetError()); - } - status = SDL_GL_GetAttribute(SDL_GL_BLUE_SIZE, &value); - if (!status) { - printf("SDL_GL_BLUE_SIZE: requested %d, got %d\n", 5, value); - } else { - fprintf(stderr, "Failed to get SDL_GL_BLUE_SIZE: %s\n", - SDL_GetError()); - } - status = SDL_GL_GetAttribute(SDL_GL_DEPTH_SIZE, &value); - if (!status) { - printf("SDL_GL_DEPTH_SIZE: requested %d, got %d\n", depth, value); - } else { - fprintf(stderr, "Failed to get SDL_GL_DEPTH_SIZE: %s\n", - SDL_GetError()); - } - if (fsaa) { - status = SDL_GL_GetAttribute(SDL_GL_MULTISAMPLEBUFFERS, &value); - if (!status) { - printf("SDL_GL_MULTISAMPLEBUFFERS: requested 1, got %d\n", value); - } else { - fprintf(stderr, "Failed to get SDL_GL_MULTISAMPLEBUFFERS: %s\n", - SDL_GetError()); - } - status = SDL_GL_GetAttribute(SDL_GL_MULTISAMPLESAMPLES, &value); - if (!status) { - printf("SDL_GL_MULTISAMPLESAMPLES: requested %d, got %d\n", fsaa, - value); - } else { - fprintf(stderr, "Failed to get SDL_GL_MULTISAMPLESAMPLES: %s\n", - SDL_GetError()); - } - } - if (accel) { - status = SDL_GL_GetAttribute(SDL_GL_ACCELERATED_VISUAL, &value); - if (!status) { - printf("SDL_GL_ACCELERATED_VISUAL: requested 1, got %d\n", value); - } else { - fprintf(stderr, "Failed to get SDL_GL_ACCELERATED_VISUAL: %s\n", - SDL_GetError()); - } - } - - datas = SDL_calloc(state->num_windows, sizeof(shader_data)); - - /* Set rendering settings for each context */ - for (i = 0; i < state->num_windows; ++i) { - - status = SDL_GL_MakeCurrent(state->windows[i], context[i]); - if (status) { - printf("SDL_GL_MakeCurrent(): %s\n", SDL_GetError()); - - /* Continue for next window */ - continue; - } - glViewport(0, 0, state->window_w, state->window_h); - - data = &datas[i]; - data->angle_x = 0; data->angle_y = 0; data->angle_z = 0; - - /* Shader Initialization */ - process_shader(&data->shader_vert, _shader_vert_src, GL_VERTEX_SHADER); - process_shader(&data->shader_frag, _shader_frag_src, GL_FRAGMENT_SHADER); - - /* Create shader_program (ready to attach shaders) */ - data->shader_program = GL_CHECK(glCreateProgram()); - - /* Attach shaders and link shader_program */ - GL_CHECK(glAttachShader(data->shader_program, data->shader_vert)); - GL_CHECK(glAttachShader(data->shader_program, data->shader_frag)); - GL_CHECK(glLinkProgram(data->shader_program)); - - /* Get attribute locations of non-fixed attributes like color and texture coordinates. */ - data->attr_position = GL_CHECK(glGetAttribLocation(data->shader_program, "av4position")); - data->attr_color = GL_CHECK(glGetAttribLocation(data->shader_program, "av3color")); - - /* Get uniform locations */ - data->attr_mvp = GL_CHECK(glGetUniformLocation(data->shader_program, "mvp")); - - GL_CHECK(glUseProgram(data->shader_program)); - - /* Enable attributes for position, color and texture coordinates etc. */ - GL_CHECK(glEnableVertexAttribArray(data->attr_position)); - GL_CHECK(glEnableVertexAttribArray(data->attr_color)); - - /* Populate attributes for position, color and texture coordinates etc. */ - GL_CHECK(glVertexAttribPointer(data->attr_position, 3, GL_FLOAT, GL_FALSE, 0, _vertices)); - GL_CHECK(glVertexAttribPointer(data->attr_color, 3, GL_FLOAT, GL_FALSE, 0, _colors)); - - GL_CHECK(glEnable(GL_CULL_FACE)); - GL_CHECK(glEnable(GL_DEPTH_TEST)); - } - - /* Main render loop */ - frames = 0; - then = SDL_GetTicks(); - done = 0; - while (!done) { - /* Check for events */ - ++frames; - while (SDL_PollEvent(&event)) { - switch (event.type) { - case SDL_WINDOWEVENT: - switch (event.window.event) { - case SDL_WINDOWEVENT_RESIZED: - for (i = 0; i < state->num_windows; ++i) { - if (event.window.windowID == SDL_GetWindowID(state->windows[i])) { - status = SDL_GL_MakeCurrent(state->windows[i], context[i]); - if (status) { - printf("SDL_GL_MakeCurrent(): %s\n", SDL_GetError()); - break; - } - /* Change view port to the new window dimensions */ - glViewport(0, 0, event.window.data1, event.window.data2); - /* Update window content */ - Render(event.window.data1, event.window.data2, &datas[i]); - SDL_GL_SwapWindow(state->windows[i]); - break; - } - } - break; - } - } - SDLTest_CommonEvent(state, &event, &done); - } - for (i = 0; i < state->num_windows; ++i) { - status = SDL_GL_MakeCurrent(state->windows[i], context[i]); - if (status) { - printf("SDL_GL_MakeCurrent(): %s\n", SDL_GetError()); - - /* Continue for next window */ - continue; - } - Render(state->window_w, state->window_h, &datas[i]); - SDL_GL_SwapWindow(state->windows[i]); - } - } - - /* Print out some timing information */ - now = SDL_GetTicks(); - if (now > then) { - printf("%2.2f frames per second\n", - ((double) frames * 1000) / (now - then)); - } -#if !defined(__ANDROID__) - quit(0); -#endif - return 0; -} - -#else /* HAVE_OPENGLES2 */ - -int -main(int argc, char *argv[]) -{ - printf("No OpenGL ES support on this system\n"); - return 1; -} - -#endif /* HAVE_OPENGLES2 */ - -/* vi: set ts=4 sw=4 expandtab: */ +/* + Copyright (r) 1997-2011 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely. +*/ +#include +#include +#include +#include + +#include "SDL_test_common.h" + +#if defined(__IPHONEOS__) || defined(__ANDROID__) +#define HAVE_OPENGLES2 +#endif + +#ifdef HAVE_OPENGLES2 + +#include "SDL_opengles2.h" + +typedef struct GLES2_Context +{ +#define SDL_PROC(ret,func,params) ret (APIENTRY *func) params; +#include "../src/render/opengles2/SDL_gles2funcs.h" +#undef SDL_PROC +} GLES2_Context; + + +static SDLTest_CommonState *state; +static SDL_GLContext *context = NULL; +static int depth = 16; +static GLES2_Context ctx; + +static int LoadContext(GLES2_Context * data) +{ +#if SDL_VIDEO_DRIVER_UIKIT +#define __SDL_NOGETPROCADDR__ +#elif SDL_VIDEO_DRIVER_ANDROID +#define __SDL_NOGETPROCADDR__ +#elif SDL_VIDEO_DRIVER_PANDORA +#define __SDL_NOGETPROCADDR__ +#endif + +#if defined __SDL_NOGETPROCADDR__ +#define SDL_PROC(ret,func,params) data->func=func; +#else +#define SDL_PROC(ret,func,params) \ + do { \ + data->func = SDL_GL_GetProcAddress(#func); \ + if ( ! data->func ) { \ + return SDL_SetError("Couldn't load GLES2 function %s: %s\n", #func, SDL_GetError()); \ + } \ + } while ( 0 ); +#endif /* _SDL_NOGETPROCADDR_ */ + +#include "../src/render/opengles2/SDL_gles2funcs.h" +#undef SDL_PROC + return 0; +} + +/* Call this instead of exit(), so we can clean up SDL: atexit() is evil. */ +static void +quit(int rc) +{ + int i; + + if (context != NULL) { + for (i = 0; i < state->num_windows; i++) { + if (context[i]) { + SDL_GL_DeleteContext(context[i]); + } + } + + SDL_free(context); + } + + SDLTest_CommonQuit(state); + exit(rc); +} + +#define GL_CHECK(x) \ + x; \ + { \ + GLenum glError = ctx.glGetError(); \ + if(glError != GL_NO_ERROR) { \ + SDL_Log("glGetError() = %i (0x%.8x) at line %i\n", glError, glError, __LINE__); \ + quit(1); \ + } \ + } + +/* + * Simulates desktop's glRotatef. The matrix is returned in column-major + * order. + */ +static void +rotate_matrix(double angle, double x, double y, double z, float *r) +{ + double radians, c, s, c1, u[3], length; + int i, j; + + radians = (angle * M_PI) / 180.0; + + c = cos(radians); + s = sin(radians); + + c1 = 1.0 - cos(radians); + + length = sqrt(x * x + y * y + z * z); + + u[0] = x / length; + u[1] = y / length; + u[2] = z / length; + + for (i = 0; i < 16; i++) { + r[i] = 0.0; + } + + r[15] = 1.0; + + for (i = 0; i < 3; i++) { + r[i * 4 + (i + 1) % 3] = u[(i + 2) % 3] * s; + r[i * 4 + (i + 2) % 3] = -u[(i + 1) % 3] * s; + } + + for (i = 0; i < 3; i++) { + for (j = 0; j < 3; j++) { + r[i * 4 + j] += c1 * u[i] * u[j] + (i == j ? c : 0.0); + } + } +} + +/* + * Simulates gluPerspectiveMatrix + */ +static void +perspective_matrix(double fovy, double aspect, double znear, double zfar, float *r) +{ + int i; + double f; + + f = 1.0/tan(fovy * 0.5); + + for (i = 0; i < 16; i++) { + r[i] = 0.0; + } + + r[0] = f / aspect; + r[5] = f; + r[10] = (znear + zfar) / (znear - zfar); + r[11] = -1.0; + r[14] = (2.0 * znear * zfar) / (znear - zfar); + r[15] = 0.0; +} + +/* + * Multiplies lhs by rhs and writes out to r. All matrices are 4x4 and column + * major. In-place multiplication is supported. + */ +static void +multiply_matrix(float *lhs, float *rhs, float *r) +{ + int i, j, k; + float tmp[16]; + + for (i = 0; i < 4; i++) { + for (j = 0; j < 4; j++) { + tmp[j * 4 + i] = 0.0; + + for (k = 0; k < 4; k++) { + tmp[j * 4 + i] += lhs[k * 4 + i] * rhs[j * 4 + k]; + } + } + } + + for (i = 0; i < 16; i++) { + r[i] = tmp[i]; + } +} + +/* + * Create shader, load in source, compile, dump debug as necessary. + * + * shader: Pointer to return created shader ID. + * source: Passed-in shader source code. + * shader_type: Passed to GL, e.g. GL_VERTEX_SHADER. + */ +void +process_shader(GLuint *shader, const char * source, GLint shader_type) +{ + GLint status = GL_FALSE; + const char *shaders[1] = { NULL }; + + /* Create shader and load into GL. */ + *shader = GL_CHECK(ctx.glCreateShader(shader_type)); + + shaders[0] = source; + + GL_CHECK(ctx.glShaderSource(*shader, 1, shaders, NULL)); + + /* Clean up shader source. */ + shaders[0] = NULL; + + /* Try compiling the shader. */ + GL_CHECK(ctx.glCompileShader(*shader)); + GL_CHECK(ctx.glGetShaderiv(*shader, GL_COMPILE_STATUS, &status)); + + // Dump debug info (source and log) if compilation failed. + if(status != GL_TRUE) { + SDL_Log("Shader compilation failed"); + quit(-1); + } +} + +/* 3D data. Vertex range -0.5..0.5 in all axes. +* Z -0.5 is near, 0.5 is far. */ +const float _vertices[] = +{ + /* Front face. */ + /* Bottom left */ + -0.5, 0.5, -0.5, + 0.5, -0.5, -0.5, + -0.5, -0.5, -0.5, + /* Top right */ + -0.5, 0.5, -0.5, + 0.5, 0.5, -0.5, + 0.5, -0.5, -0.5, + /* Left face */ + /* Bottom left */ + -0.5, 0.5, 0.5, + -0.5, -0.5, -0.5, + -0.5, -0.5, 0.5, + /* Top right */ + -0.5, 0.5, 0.5, + -0.5, 0.5, -0.5, + -0.5, -0.5, -0.5, + /* Top face */ + /* Bottom left */ + -0.5, 0.5, 0.5, + 0.5, 0.5, -0.5, + -0.5, 0.5, -0.5, + /* Top right */ + -0.5, 0.5, 0.5, + 0.5, 0.5, 0.5, + 0.5, 0.5, -0.5, + /* Right face */ + /* Bottom left */ + 0.5, 0.5, -0.5, + 0.5, -0.5, 0.5, + 0.5, -0.5, -0.5, + /* Top right */ + 0.5, 0.5, -0.5, + 0.5, 0.5, 0.5, + 0.5, -0.5, 0.5, + /* Back face */ + /* Bottom left */ + 0.5, 0.5, 0.5, + -0.5, -0.5, 0.5, + 0.5, -0.5, 0.5, + /* Top right */ + 0.5, 0.5, 0.5, + -0.5, 0.5, 0.5, + -0.5, -0.5, 0.5, + /* Bottom face */ + /* Bottom left */ + -0.5, -0.5, -0.5, + 0.5, -0.5, 0.5, + -0.5, -0.5, 0.5, + /* Top right */ + -0.5, -0.5, -0.5, + 0.5, -0.5, -0.5, + 0.5, -0.5, 0.5, +}; + +const float _colors[] = +{ + /* Front face */ + /* Bottom left */ + 1.0, 0.0, 0.0, /* red */ + 0.0, 0.0, 1.0, /* blue */ + 0.0, 1.0, 0.0, /* green */ + /* Top right */ + 1.0, 0.0, 0.0, /* red */ + 1.0, 1.0, 0.0, /* yellow */ + 0.0, 0.0, 1.0, /* blue */ + /* Left face */ + /* Bottom left */ + 1.0, 1.0, 1.0, /* white */ + 0.0, 1.0, 0.0, /* green */ + 0.0, 1.0, 1.0, /* cyan */ + /* Top right */ + 1.0, 1.0, 1.0, /* white */ + 1.0, 0.0, 0.0, /* red */ + 0.0, 1.0, 0.0, /* green */ + /* Top face */ + /* Bottom left */ + 1.0, 1.0, 1.0, /* white */ + 1.0, 1.0, 0.0, /* yellow */ + 1.0, 0.0, 0.0, /* red */ + /* Top right */ + 1.0, 1.0, 1.0, /* white */ + 0.0, 0.0, 0.0, /* black */ + 1.0, 1.0, 0.0, /* yellow */ + /* Right face */ + /* Bottom left */ + 1.0, 1.0, 0.0, /* yellow */ + 1.0, 0.0, 1.0, /* magenta */ + 0.0, 0.0, 1.0, /* blue */ + /* Top right */ + 1.0, 1.0, 0.0, /* yellow */ + 0.0, 0.0, 0.0, /* black */ + 1.0, 0.0, 1.0, /* magenta */ + /* Back face */ + /* Bottom left */ + 0.0, 0.0, 0.0, /* black */ + 0.0, 1.0, 1.0, /* cyan */ + 1.0, 0.0, 1.0, /* magenta */ + /* Top right */ + 0.0, 0.0, 0.0, /* black */ + 1.0, 1.0, 1.0, /* white */ + 0.0, 1.0, 1.0, /* cyan */ + /* Bottom face */ + /* Bottom left */ + 0.0, 1.0, 0.0, /* green */ + 1.0, 0.0, 1.0, /* magenta */ + 0.0, 1.0, 1.0, /* cyan */ + /* Top right */ + 0.0, 1.0, 0.0, /* green */ + 0.0, 0.0, 1.0, /* blue */ + 1.0, 0.0, 1.0, /* magenta */ +}; + +const char* _shader_vert_src = +" attribute vec4 av4position; " +" attribute vec3 av3color; " +" uniform mat4 mvp; " +" varying vec3 vv3color; " +" void main() { " +" vv3color = av3color; " +" gl_Position = mvp * av4position; " +" } "; + +const char* _shader_frag_src = +" precision lowp float; " +" varying vec3 vv3color; " +" void main() { " +" gl_FragColor = vec4(vv3color, 1.0); " +" } "; + +typedef struct shader_data +{ + GLuint shader_program, shader_frag, shader_vert; + + GLint attr_position; + GLint attr_color, attr_mvp; + + int angle_x, angle_y, angle_z; + +} shader_data; + +static void +Render(unsigned int width, unsigned int height, shader_data* data) +{ + float matrix_rotate[16], matrix_modelview[16], matrix_perspective[16], matrix_mvp[16]; + + /* + * Do some rotation with Euler angles. It is not a fixed axis as + * quaterions would be, but the effect is cool. + */ + rotate_matrix(data->angle_x, 1.0, 0.0, 0.0, matrix_modelview); + rotate_matrix(data->angle_y, 0.0, 1.0, 0.0, matrix_rotate); + + multiply_matrix(matrix_rotate, matrix_modelview, matrix_modelview); + + rotate_matrix(data->angle_z, 0.0, 1.0, 0.0, matrix_rotate); + + multiply_matrix(matrix_rotate, matrix_modelview, matrix_modelview); + + /* Pull the camera back from the cube */ + matrix_modelview[14] -= 2.5; + + perspective_matrix(45.0, (double)width/(double)height, 0.01, 100.0, matrix_perspective); + multiply_matrix(matrix_perspective, matrix_modelview, matrix_mvp); + + GL_CHECK(ctx.glUniformMatrix4fv(data->attr_mvp, 1, GL_FALSE, matrix_mvp)); + + data->angle_x += 3; + data->angle_y += 2; + data->angle_z += 1; + + if(data->angle_x >= 360) data->angle_x -= 360; + if(data->angle_x < 0) data->angle_x += 360; + if(data->angle_y >= 360) data->angle_y -= 360; + if(data->angle_y < 0) data->angle_y += 360; + if(data->angle_z >= 360) data->angle_z -= 360; + if(data->angle_z < 0) data->angle_z += 360; + + GL_CHECK(ctx.glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT)); + GL_CHECK(ctx.glDrawArrays(GL_TRIANGLES, 0, 36)); +} + +int +main(int argc, char *argv[]) +{ + int fsaa, accel; + int value; + int i, done; + SDL_DisplayMode mode; + SDL_Event event; + Uint32 then, now, frames; + int status; + shader_data *datas, *data; + + /* Initialize parameters */ + fsaa = 0; + accel = 0; + + /* Initialize test framework */ + state = SDLTest_CommonCreateState(argv, SDL_INIT_VIDEO); + if (!state) { + return 1; + } + for (i = 1; i < argc;) { + int consumed; + + consumed = SDLTest_CommonArg(state, i); + if (consumed == 0) { + if (SDL_strcasecmp(argv[i], "--fsaa") == 0) { + ++fsaa; + consumed = 1; + } else if (SDL_strcasecmp(argv[i], "--accel") == 0) { + ++accel; + consumed = 1; + } else if (SDL_strcasecmp(argv[i], "--zdepth") == 0) { + i++; + if (!argv[i]) { + consumed = -1; + } else { + depth = SDL_atoi(argv[i]); + consumed = 1; + } + } else { + consumed = -1; + } + } + if (consumed < 0) { + SDL_Log ("Usage: %s %s [--fsaa] [--accel] [--zdepth %%d]\n", argv[0], + SDLTest_CommonUsage(state)); + quit(1); + } + i += consumed; + } + + /* Set OpenGL parameters */ + state->window_flags |= SDL_WINDOW_OPENGL | SDL_WINDOW_RESIZABLE | SDL_WINDOW_BORDERLESS; + state->gl_red_size = 5; + state->gl_green_size = 5; + state->gl_blue_size = 5; + state->gl_depth_size = depth; + state->gl_major_version = 2; + state->gl_minor_version = 0; + state->gl_profile_mask = SDL_GL_CONTEXT_PROFILE_ES; + + if (fsaa) { + state->gl_multisamplebuffers=1; + state->gl_multisamplesamples=fsaa; + } + if (accel) { + state->gl_accelerated=1; + } + if (!SDLTest_CommonInit(state)) { + quit(2); + return 0; + } + + context = SDL_calloc(state->num_windows, sizeof(context)); + if (context == NULL) { + SDL_Log("Out of memory!\n"); + quit(2); + } + + /* Create OpenGL ES contexts */ + for (i = 0; i < state->num_windows; i++) { + context[i] = SDL_GL_CreateContext(state->windows[i]); + if (!context[i]) { + SDL_Log("SDL_GL_CreateContext(): %s\n", SDL_GetError()); + quit(2); + } + } + + /* Important: call this *after* creating the context */ + if (LoadContext(&ctx) < 0) { + SDL_Log("Could not load GLES2 functions\n"); + quit(2); + return 0; + } + + + + if (state->render_flags & SDL_RENDERER_PRESENTVSYNC) { + SDL_GL_SetSwapInterval(1); + } else { + SDL_GL_SetSwapInterval(0); + } + + SDL_GetCurrentDisplayMode(0, &mode); + SDL_Log("Screen bpp: %d\n", SDL_BITSPERPIXEL(mode.format)); + SDL_Log("\n"); + SDL_Log("Vendor : %s\n", ctx.glGetString(GL_VENDOR)); + SDL_Log("Renderer : %s\n", ctx.glGetString(GL_RENDERER)); + SDL_Log("Version : %s\n", ctx.glGetString(GL_VERSION)); + SDL_Log("Extensions : %s\n", ctx.glGetString(GL_EXTENSIONS)); + SDL_Log("\n"); + + status = SDL_GL_GetAttribute(SDL_GL_RED_SIZE, &value); + if (!status) { + SDL_Log("SDL_GL_RED_SIZE: requested %d, got %d\n", 5, value); + } else { + SDL_Log( "Failed to get SDL_GL_RED_SIZE: %s\n", + SDL_GetError()); + } + status = SDL_GL_GetAttribute(SDL_GL_GREEN_SIZE, &value); + if (!status) { + SDL_Log("SDL_GL_GREEN_SIZE: requested %d, got %d\n", 5, value); + } else { + SDL_Log( "Failed to get SDL_GL_GREEN_SIZE: %s\n", + SDL_GetError()); + } + status = SDL_GL_GetAttribute(SDL_GL_BLUE_SIZE, &value); + if (!status) { + SDL_Log("SDL_GL_BLUE_SIZE: requested %d, got %d\n", 5, value); + } else { + SDL_Log( "Failed to get SDL_GL_BLUE_SIZE: %s\n", + SDL_GetError()); + } + status = SDL_GL_GetAttribute(SDL_GL_DEPTH_SIZE, &value); + if (!status) { + SDL_Log("SDL_GL_DEPTH_SIZE: requested %d, got %d\n", depth, value); + } else { + SDL_Log( "Failed to get SDL_GL_DEPTH_SIZE: %s\n", + SDL_GetError()); + } + if (fsaa) { + status = SDL_GL_GetAttribute(SDL_GL_MULTISAMPLEBUFFERS, &value); + if (!status) { + SDL_Log("SDL_GL_MULTISAMPLEBUFFERS: requested 1, got %d\n", value); + } else { + SDL_Log( "Failed to get SDL_GL_MULTISAMPLEBUFFERS: %s\n", + SDL_GetError()); + } + status = SDL_GL_GetAttribute(SDL_GL_MULTISAMPLESAMPLES, &value); + if (!status) { + SDL_Log("SDL_GL_MULTISAMPLESAMPLES: requested %d, got %d\n", fsaa, + value); + } else { + SDL_Log( "Failed to get SDL_GL_MULTISAMPLESAMPLES: %s\n", + SDL_GetError()); + } + } + if (accel) { + status = SDL_GL_GetAttribute(SDL_GL_ACCELERATED_VISUAL, &value); + if (!status) { + SDL_Log("SDL_GL_ACCELERATED_VISUAL: requested 1, got %d\n", value); + } else { + SDL_Log( "Failed to get SDL_GL_ACCELERATED_VISUAL: %s\n", + SDL_GetError()); + } + } + + datas = SDL_calloc(state->num_windows, sizeof(shader_data)); + + /* Set rendering settings for each context */ + for (i = 0; i < state->num_windows; ++i) { + + status = SDL_GL_MakeCurrent(state->windows[i], context[i]); + if (status) { + SDL_Log("SDL_GL_MakeCurrent(): %s\n", SDL_GetError()); + + /* Continue for next window */ + continue; + } + ctx.glViewport(0, 0, state->window_w, state->window_h); + + data = &datas[i]; + data->angle_x = 0; data->angle_y = 0; data->angle_z = 0; + + /* Shader Initialization */ + process_shader(&data->shader_vert, _shader_vert_src, GL_VERTEX_SHADER); + process_shader(&data->shader_frag, _shader_frag_src, GL_FRAGMENT_SHADER); + + /* Create shader_program (ready to attach shaders) */ + data->shader_program = GL_CHECK(ctx.glCreateProgram()); + + /* Attach shaders and link shader_program */ + GL_CHECK(ctx.glAttachShader(data->shader_program, data->shader_vert)); + GL_CHECK(ctx.glAttachShader(data->shader_program, data->shader_frag)); + GL_CHECK(ctx.glLinkProgram(data->shader_program)); + + /* Get attribute locations of non-fixed attributes like color and texture coordinates. */ + data->attr_position = GL_CHECK(ctx.glGetAttribLocation(data->shader_program, "av4position")); + data->attr_color = GL_CHECK(ctx.glGetAttribLocation(data->shader_program, "av3color")); + + /* Get uniform locations */ + data->attr_mvp = GL_CHECK(ctx.glGetUniformLocation(data->shader_program, "mvp")); + + GL_CHECK(ctx.glUseProgram(data->shader_program)); + + /* Enable attributes for position, color and texture coordinates etc. */ + GL_CHECK(ctx.glEnableVertexAttribArray(data->attr_position)); + GL_CHECK(ctx.glEnableVertexAttribArray(data->attr_color)); + + /* Populate attributes for position, color and texture coordinates etc. */ + GL_CHECK(ctx.glVertexAttribPointer(data->attr_position, 3, GL_FLOAT, GL_FALSE, 0, _vertices)); + GL_CHECK(ctx.glVertexAttribPointer(data->attr_color, 3, GL_FLOAT, GL_FALSE, 0, _colors)); + + GL_CHECK(ctx.glEnable(GL_CULL_FACE)); + GL_CHECK(ctx.glEnable(GL_DEPTH_TEST)); + } + + /* Main render loop */ + frames = 0; + then = SDL_GetTicks(); + done = 0; + while (!done) { + /* Check for events */ + ++frames; + while (SDL_PollEvent(&event)) { + switch (event.type) { + case SDL_WINDOWEVENT: + switch (event.window.event) { + case SDL_WINDOWEVENT_RESIZED: + for (i = 0; i < state->num_windows; ++i) { + if (event.window.windowID == SDL_GetWindowID(state->windows[i])) { + status = SDL_GL_MakeCurrent(state->windows[i], context[i]); + if (status) { + SDL_Log("SDL_GL_MakeCurrent(): %s\n", SDL_GetError()); + break; + } + /* Change view port to the new window dimensions */ + ctx.glViewport(0, 0, event.window.data1, event.window.data2); + /* Update window content */ + Render(event.window.data1, event.window.data2, &datas[i]); + SDL_GL_SwapWindow(state->windows[i]); + break; + } + } + break; + } + } + SDLTest_CommonEvent(state, &event, &done); + } + for (i = 0; i < state->num_windows; ++i) { + status = SDL_GL_MakeCurrent(state->windows[i], context[i]); + if (status) { + SDL_Log("SDL_GL_MakeCurrent(): %s\n", SDL_GetError()); + + /* Continue for next window */ + continue; + } + Render(state->window_w, state->window_h, &datas[i]); + SDL_GL_SwapWindow(state->windows[i]); + } + } + + /* Print out some timing information */ + now = SDL_GetTicks(); + if (now > then) { + SDL_Log("%2.2f frames per second\n", + ((double) frames * 1000) / (now - then)); + } +#if !defined(__ANDROID__) + quit(0); + return 0; +#endif + return 0; +} + +#else /* HAVE_OPENGLES2 */ + +int +main(int argc, char *argv[]) +{ + SDL_Log("No OpenGL ES support on this system\n"); + return 1; +} + +#endif /* HAVE_OPENGLES2 */ + +/* vi: set ts=4 sw=4 expandtab: */ From 4abeed93c76610a3b9d4e2164a370c4e7086d68e Mon Sep 17 00:00:00 2001 From: Gabriel Jacobo Date: Fri, 22 Nov 2013 14:19:52 -0300 Subject: [PATCH 127/143] Fixes compilation on Mingw. --- configure | 79 +++++++++++++++++++++++++++ configure.in | 38 +++++++++++++ src/video/windows/SDL_windowsopengl.c | 4 ++ 3 files changed, 121 insertions(+) diff --git a/configure b/configure index be2cb61aeb4f9..0e10125a2ab4f 100755 --- a/configure +++ b/configure @@ -20703,6 +20703,84 @@ $as_echo "#define SDL_VIDEO_RENDER_OGL 1" >>confdefs.h fi } +CheckWINDOWSGLES() +{ + if test x$enable_video = xyes -a x$enable_video_opengles = xyes; then + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EGL support" >&5 +$as_echo_n "checking for EGL support... " >&6; } + video_opengl_egl=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + +int +main () +{ + + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + + video_opengl_egl=yes + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $video_opengl_egl" >&5 +$as_echo "$video_opengl_egl" >&6; } + if test x$video_opengl_egl = xyes; then + +$as_echo "#define SDL_VIDEO_OPENGL 1" >>confdefs.h + + +$as_echo "#define SDL_VIDEO_OPENGL_EGL 1" >>confdefs.h + + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for OpenGL ES v2 headers" >&5 +$as_echo_n "checking for OpenGL ES v2 headers... " >&6; } + video_opengles_v2=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + #include + +int +main () +{ + + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + + video_opengles_v2=yes + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $video_opengles_v2" >&5 +$as_echo "$video_opengles_v2" >&6; } + if test x$video_opengles_v2 = xyes; then + +$as_echo "#define SDL_VIDEO_OPENGL 1" >>confdefs.h + + +$as_echo "#define SDL_VIDEO_OPENGL_ES2 1" >>confdefs.h + + +$as_echo "#define SDL_VIDEO_RENDER_OGL_ES2 1" >>confdefs.h + + fi + fi +} + CheckHaikuGL() { if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then @@ -22261,6 +22339,7 @@ $as_echo "#define SDL_TIMER_UNIX 1" >>confdefs.h CheckDummyAudio CheckWINDOWS CheckWINDOWSGL + CheckWINDOWSGLES CheckDIRECTX # Set up the core platform files diff --git a/configure.in b/configure.in index e3f094cc557e1..8d116a58ddc1e 100644 --- a/configure.in +++ b/configure.in @@ -1738,6 +1738,43 @@ CheckWINDOWSGL() fi } +dnl Check for Windows OpenGL +CheckWINDOWSGLES() +{ + if test x$enable_video = xyes -a x$enable_video_opengles = xyes; then + + AC_MSG_CHECKING(for EGL support) + video_opengl_egl=no + AC_TRY_COMPILE([ + #include + ],[ + ],[ + video_opengl_egl=yes + ]) + AC_MSG_RESULT($video_opengl_egl) + if test x$video_opengl_egl = xyes; then + AC_DEFINE(SDL_VIDEO_OPENGL, 1, [ ]) + AC_DEFINE(SDL_VIDEO_OPENGL_EGL, 1, [ ]) + fi + + AC_MSG_CHECKING(for OpenGL ES v2 headers) + video_opengles_v2=no + AC_TRY_COMPILE([ + #include + #include + ],[ + ],[ + video_opengles_v2=yes + ]) + AC_MSG_RESULT($video_opengles_v2) + if test x$video_opengles_v2 = xyes; then + AC_DEFINE(SDL_VIDEO_OPENGL, 1, [ ]) + AC_DEFINE(SDL_VIDEO_OPENGL_ES2, 1, [ ]) + AC_DEFINE(SDL_VIDEO_RENDER_OGL_ES2, 1, [ ]) + fi + fi +} + dnl Check for Haiku OpenGL CheckHaikuGL() { @@ -2515,6 +2552,7 @@ case "$host" in CheckDummyAudio CheckWINDOWS CheckWINDOWSGL + CheckWINDOWSGLES CheckDIRECTX # Set up the core platform files diff --git a/src/video/windows/SDL_windowsopengl.c b/src/video/windows/SDL_windowsopengl.c index 3156c1a01c492..2960bc56f8552 100644 --- a/src/video/windows/SDL_windowsopengl.c +++ b/src/video/windows/SDL_windowsopengl.c @@ -585,6 +585,7 @@ WIN_GL_CreateContext(_THIS, SDL_Window * window) if (_this->gl_config.profile_mask == SDL_GL_CONTEXT_PROFILE_ES && !_this->gl_data->HAS_WGL_EXT_create_context_es2_profile) { +#if SDL_VIDEO_OPENGL_EGL /* Switch to EGL based functions */ WIN_GL_UnloadLibrary(_this); _this->GL_LoadLibrary = WIN_GLES_LoadLibrary; @@ -602,6 +603,9 @@ WIN_GL_CreateContext(_THIS, SDL_Window * window) } return WIN_GLES_CreateContext(_this, window); +#else + return SDL_SetError("SDL not configured with EGL support"); +#endif } if (_this->gl_config.share_with_current_context) { From a3bb007ee559b607c323cc7b1b981722a47a3949 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sat, 23 Nov 2013 02:02:29 -0800 Subject: [PATCH 128/143] Fixed double-free of the window shape path --- src/video/cocoa/SDL_cocoashape.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/video/cocoa/SDL_cocoashape.m b/src/video/cocoa/SDL_cocoashape.m index ae8df8d19ec49..d8034ec49b654 100644 --- a/src/video/cocoa/SDL_cocoashape.m +++ b/src/video/cocoa/SDL_cocoashape.m @@ -92,7 +92,7 @@ pool = [[NSAutoreleasePool alloc] init]; closure.view = [windata->nswindow contentView]; - closure.path = [[NSBezierPath bezierPath] autorelease]; + closure.path = [[NSBezierPath bezierPath] init]; closure.window = shaper->window; SDL_TraverseShapeTree(data->shape,&ConvertRects,&closure); [closure.path addClip]; From 7a18a6747b2d6ca69e8fc5ca16f0efd73c0d780c Mon Sep 17 00:00:00 2001 From: Gabriel Jacobo Date: Sat, 23 Nov 2013 09:47:25 -0300 Subject: [PATCH 129/143] [Android] Fixes #2264, handle joystick open/closed state properly --- src/joystick/android/SDL_sysjoystick.c | 27 +++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/src/joystick/android/SDL_sysjoystick.c b/src/joystick/android/SDL_sysjoystick.c index 3289a2869af77..34d4584d3ce5e 100644 --- a/src/joystick/android/SDL_sysjoystick.c +++ b/src/joystick/android/SDL_sysjoystick.c @@ -161,20 +161,18 @@ SDL_SYS_JoystickInit(void) if (SYS_accelAsJoy) { SYS_numjoysticks++; } - SYS_Joysticks = (SDL_Joystick **)SDL_malloc(SYS_numjoysticks*sizeof(SDL_Joystick *)); + SYS_Joysticks = (SDL_Joystick **)SDL_calloc(1, SYS_numjoysticks*sizeof(SDL_Joystick *)); if (SYS_Joysticks == NULL) { return SDL_OutOfMemory(); } - SYS_JoystickNames = (char **)SDL_malloc(SYS_numjoysticks*sizeof(char *)); + SYS_JoystickNames = (char **)SDL_calloc(1, SYS_numjoysticks*sizeof(char *)); if (SYS_JoystickNames == NULL) { SDL_free(SYS_Joysticks); SYS_Joysticks = NULL; return SDL_OutOfMemory(); } - SDL_memset(SYS_JoystickNames, 0, (SYS_numjoysticks*sizeof(char *))); - SDL_memset(SYS_Joysticks, 0, (SYS_numjoysticks*sizeof(SDL_Joystick *))); for (i = 0; i < SYS_numjoysticks; i++) { @@ -274,6 +272,15 @@ SDL_SYS_JoystickUpdate(SDL_Joystick * joystick) void SDL_SYS_JoystickClose(SDL_Joystick * joystick) { + int device_index; + + for (device_index = 0; device_index < SYS_numjoysticks; device_index++) { + if ( SYS_Joysticks[device_index] == joystick ) { + SYS_Joysticks[device_index] = NULL; + } + } + + joystick->closed = 1; } /* Function to perform any system-specific joystick related cleanup */ @@ -311,7 +318,9 @@ Android_OnPadDown(int padId, int keycode) { int button = keycode_to_SDL(keycode); if (button >= 0) { - SDL_PrivateJoystickButton(SYS_Joysticks[padId], button , SDL_PRESSED); + if (SYS_Joysticks[padId]) { + SDL_PrivateJoystickButton(SYS_Joysticks[padId], button , SDL_PRESSED); + } return 0; } @@ -323,7 +332,9 @@ Android_OnPadUp(int padId, int keycode) { int button = keycode_to_SDL(keycode); if (button >= 0) { - SDL_PrivateJoystickButton(SYS_Joysticks[padId], button, SDL_RELEASED); + if (SYS_Joysticks[padId]) { + SDL_PrivateJoystickButton(SYS_Joysticks[padId], button, SDL_RELEASED); + } return 0; } @@ -335,7 +346,9 @@ Android_OnJoy(int joyId, int axis, float value) { /* Android gives joy info normalized as [-1.0, 1.0] or [0.0, 1.0] */ /* TODO: Are the reported values right? */ - SDL_PrivateJoystickAxis(SYS_Joysticks[joyId], axis, (Sint16) (32767.*value) ); + if (SYS_Joysticks[joyId]) { + SDL_PrivateJoystickAxis(SYS_Joysticks[joyId], axis, (Sint16) (32767.*value) ); + } return 0; } From 2aa4974bf92a1dee423b690a3290a96acd7b88b5 Mon Sep 17 00:00:00 2001 From: Philipp Wiesemann Date: Sat, 23 Nov 2013 18:29:36 +0100 Subject: [PATCH 130/143] Removed include of no more needed header. --- src/joystick/android/SDL_sysjoystick.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/joystick/android/SDL_sysjoystick.c b/src/joystick/android/SDL_sysjoystick.c index 34d4584d3ce5e..55db0158342ad 100644 --- a/src/joystick/android/SDL_sysjoystick.c +++ b/src/joystick/android/SDL_sysjoystick.c @@ -31,7 +31,6 @@ #include "SDL_joystick.h" #include "SDL_hints.h" #include "SDL_assert.h" -#include "SDL_log.h" #include "../SDL_sysjoystick.h" #include "../SDL_joystick_c.h" #include "../../core/android/SDL_android.h" From 01acbd389be33e89a058f907e8fade70e3ae6fdf Mon Sep 17 00:00:00 2001 From: Philipp Wiesemann Date: Sat, 23 Nov 2013 18:34:27 +0100 Subject: [PATCH 131/143] Fixed spaces in license comment. --- src/video/windows/SDL_windowsopengles.c | 36 ++++++++++++------------- src/video/windows/SDL_windowsopengles.h | 36 ++++++++++++------------- 2 files changed, 36 insertions(+), 36 deletions(-) diff --git a/src/video/windows/SDL_windowsopengles.c b/src/video/windows/SDL_windowsopengles.c index 0934f4f8e9227..8f73971eb4ebf 100644 --- a/src/video/windows/SDL_windowsopengles.c +++ b/src/video/windows/SDL_windowsopengles.c @@ -1,22 +1,22 @@ /* -Simple DirectMedia Layer -Copyright (C) 1997-2013 Sam Lantinga - -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. - -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: - -1. The origin of this software must not be misrepresented; you must not -claim that you wrote the original software. If you use this software -in a product, an acknowledgment in the product documentation would be -appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be -misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. + Simple DirectMedia Layer + Copyright (C) 1997-2013 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. */ #include "SDL_config.h" diff --git a/src/video/windows/SDL_windowsopengles.h b/src/video/windows/SDL_windowsopengles.h index cdb1cad4aafc0..f027d02ab380c 100644 --- a/src/video/windows/SDL_windowsopengles.h +++ b/src/video/windows/SDL_windowsopengles.h @@ -1,22 +1,22 @@ /* -Simple DirectMedia Layer -Copyright (C) 1997-2013 Sam Lantinga - -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. - -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: - -1. The origin of this software must not be misrepresented; you must not -claim that you wrote the original software. If you use this software -in a product, an acknowledgment in the product documentation would be -appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be -misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. + Simple DirectMedia Layer + Copyright (C) 1997-2013 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. */ #include "SDL_config.h" From 5aa702fe74b2c4fefbd83a8f9d35339ac0d0f5a9 Mon Sep 17 00:00:00 2001 From: Philipp Wiesemann Date: Sat, 23 Nov 2013 18:37:36 +0100 Subject: [PATCH 132/143] Removed second return statement. --- test/testgles2.c | 1 - 1 file changed, 1 deletion(-) diff --git a/test/testgles2.c b/test/testgles2.c index db729f0fd2cf2..32b19df413f33 100644 --- a/test/testgles2.c +++ b/test/testgles2.c @@ -675,7 +675,6 @@ main(int argc, char *argv[]) } #if !defined(__ANDROID__) quit(0); - return 0; #endif return 0; } From e9af6dcd93e92013198ec7cc8445555632b86c37 Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Sat, 23 Nov 2013 15:52:49 -0500 Subject: [PATCH 133/143] Fixed a few public APIs that we accidentally neglected to mark as SDLCALL. Fixes Bugzilla #2262. --- include/SDL_joystick.h | 2 +- include/SDL_main.h | 2 +- include/SDL_render.h | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/include/SDL_joystick.h b/include/SDL_joystick.h index b0e4b5dab8580..a2843bae21cf7 100644 --- a/include/SDL_joystick.h +++ b/include/SDL_joystick.h @@ -115,7 +115,7 @@ extern DECLSPEC SDL_JoystickGUID SDLCALL SDL_JoystickGetGUID(SDL_Joystick * joys * Return a string representation for this guid. pszGUID must point to at least 33 bytes * (32 for the string plus a NULL terminator). */ -extern DECLSPEC void SDL_JoystickGetGUIDString(SDL_JoystickGUID guid, char *pszGUID, int cbGUID); +extern DECLSPEC void SDLCALL SDL_JoystickGetGUIDString(SDL_JoystickGUID guid, char *pszGUID, int cbGUID); /** * convert a string into a joystick formatted guid diff --git a/include/SDL_main.h b/include/SDL_main.h index b7e4a10e5ef3d..da80a780b64c1 100644 --- a/include/SDL_main.h +++ b/include/SDL_main.h @@ -101,7 +101,7 @@ extern "C" { * Calling this yourself without knowing what you're doing can cause * crashes and hard to diagnose problems with your application. */ -extern DECLSPEC void SDL_SetMainReady(void); +extern DECLSPEC void SDLCALL SDL_SetMainReady(void); #ifdef __WIN32__ diff --git a/include/SDL_render.h b/include/SDL_render.h index a765dc79f0c20..94bf1e6a7d176 100644 --- a/include/SDL_render.h +++ b/include/SDL_render.h @@ -596,7 +596,7 @@ extern DECLSPEC void SDLCALL SDL_RenderGetScale(SDL_Renderer * renderer, * * \return 0 on success, or -1 on error */ -extern DECLSPEC int SDL_SetRenderDrawColor(SDL_Renderer * renderer, +extern DECLSPEC int SDLCALL SDL_SetRenderDrawColor(SDL_Renderer * renderer, Uint8 r, Uint8 g, Uint8 b, Uint8 a); @@ -612,7 +612,7 @@ extern DECLSPEC int SDL_SetRenderDrawColor(SDL_Renderer * renderer, * * \return 0 on success, or -1 on error */ -extern DECLSPEC int SDL_GetRenderDrawColor(SDL_Renderer * renderer, +extern DECLSPEC int SDLCALL SDL_GetRenderDrawColor(SDL_Renderer * renderer, Uint8 * r, Uint8 * g, Uint8 * b, Uint8 * a); From c933166401c3f28bd2d2259808c8369bdf75c6c0 Mon Sep 17 00:00:00 2001 From: Philipp Wiesemann Date: Sat, 23 Nov 2013 23:38:16 +0100 Subject: [PATCH 134/143] Fixed bug 2258 - Crash when using Android clipboard chw The Android clipboard manager methods must be called from the UI thread, otherwise crashes of the dalvikvm happen. --- .../src/org/libsdl/app/SDLActivity.java | 28 +++++++++++++++++++ src/core/android/SDL_android.c | 2 +- 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/android-project/src/org/libsdl/app/SDLActivity.java b/android-project/src/org/libsdl/app/SDLActivity.java index cd7b0c2796675..fcc623918a25b 100755 --- a/android-project/src/org/libsdl/app/SDLActivity.java +++ b/android-project/src/org/libsdl/app/SDLActivity.java @@ -277,6 +277,34 @@ public static Context getContext() { return mSingleton; } + /** + * @return result of getSystemService(name) but executed on UI thread. + */ + public Object getSystemServiceFromUiThread(final String name) { + final Object lock = new Object(); + final Object[] results = new Object[2]; // array for writable variables + synchronized (lock) { + runOnUiThread(new Runnable() { + @Override + public void run() { + synchronized (lock) { + results[0] = getSystemService(name); + results[1] = Boolean.TRUE; + lock.notify(); + } + } + }); + if (results[1] == null) { + try { + lock.wait(); + } catch (InterruptedException ex) { + ex.printStackTrace(); + } + } + } + return results[0]; + } + static class ShowTextInputTask implements Runnable { /* * This is used to regulate the pan&scan method to have some offset from diff --git a/src/core/android/SDL_android.c b/src/core/android/SDL_android.c index 549d0a897e40b..9d044c21e21c9 100644 --- a/src/core/android/SDL_android.c +++ b/src/core/android/SDL_android.c @@ -1041,7 +1041,7 @@ static jobject Android_JNI_GetSystemServiceObject(const char* name) mid = (*env)->GetStaticMethodID(env, mActivityClass, "getContext", "()Landroid/content/Context;"); jobject context = (*env)->CallStaticObjectMethod(env, mActivityClass, mid); - mid = (*env)->GetMethodID(env, mActivityClass, "getSystemService", "(Ljava/lang/String;)Ljava/lang/Object;"); + mid = (*env)->GetMethodID(env, mActivityClass, "getSystemServiceFromUiThread", "(Ljava/lang/String;)Ljava/lang/Object;"); jobject manager = (*env)->CallObjectMethod(env, context, mid, service); (*env)->DeleteLocalRef(env, service); From 1ad0d24828fd04f4e5cbf8996002c1bdefc3564c Mon Sep 17 00:00:00 2001 From: Gabriel Jacobo Date: Mon, 25 Nov 2013 12:28:09 -0300 Subject: [PATCH 135/143] [Android] Fixes #2228, reworked touch code Lets Android take care of which is the primary pointer (the one acting as the mouse in SDL), reorganized the Java side code as well to make it easier to understand. --- .../src/org/libsdl/app/SDLActivity.java | 53 ++++++++++++------- src/video/android/SDL_androidtouch.c | 46 ++++++++-------- 2 files changed, 57 insertions(+), 42 deletions(-) diff --git a/android-project/src/org/libsdl/app/SDLActivity.java b/android-project/src/org/libsdl/app/SDLActivity.java index fcc623918a25b..966d23639ae7a 100755 --- a/android-project/src/org/libsdl/app/SDLActivity.java +++ b/android-project/src/org/libsdl/app/SDLActivity.java @@ -666,31 +666,48 @@ else if (event.getAction() == KeyEvent.ACTION_UP) { // Touch events @Override public boolean onTouch(View v, MotionEvent event) { - final int touchDevId = event.getDeviceId(); - final int pointerCount = event.getPointerCount(); - // touchId, pointerId, action, x, y, pressure - int actionPointerIndex = (event.getAction() & MotionEvent.ACTION_POINTER_ID_MASK) >> MotionEvent.ACTION_POINTER_ID_SHIFT; /* API 8: event.getActionIndex(); */ - int pointerFingerId = event.getPointerId(actionPointerIndex); - int action = (event.getAction() & MotionEvent.ACTION_MASK); /* API 8: event.getActionMasked(); */ - - float x = event.getX(actionPointerIndex) / mWidth; - float y = event.getY(actionPointerIndex) / mHeight; - float p = event.getPressure(actionPointerIndex); - - if (action == MotionEvent.ACTION_MOVE && pointerCount > 1) { - // TODO send motion to every pointer if its position has - // changed since prev event. - for (int i = 0; i < pointerCount; i++) { + /* Ref: http://developer.android.com/training/gestures/multi.html */ + final int touchDevId = event.getDeviceId(); + final int pointerCount = event.getPointerCount(); + int action = event.getActionMasked(); + int pointerFingerId; + int i = -1; + float x,y,p; + + switch(action) { + case MotionEvent.ACTION_MOVE: + for (i = 0; i < pointerCount; i++) { pointerFingerId = event.getPointerId(i); x = event.getX(i) / mWidth; y = event.getY(i) / mHeight; p = event.getPressure(i); SDLActivity.onNativeTouch(touchDevId, pointerFingerId, action, x, y, p); } - } else { + break; + + case MotionEvent.ACTION_UP: + case MotionEvent.ACTION_DOWN: + // Primary pointer up/down, the index is always zero + i = 0; + case MotionEvent.ACTION_POINTER_UP: + case MotionEvent.ACTION_POINTER_DOWN: + // Non primary pointer up/down + if (i == -1) { + i = event.getActionIndex(); + } + + pointerFingerId = event.getPointerId(i); + x = event.getX(i) / mWidth; + y = event.getY(i) / mHeight; + p = event.getPressure(i); SDLActivity.onNativeTouch(touchDevId, pointerFingerId, action, x, y, p); - } - return true; + break; + + default: + break; + } + + return true; } // Sensor events diff --git a/src/video/android/SDL_androidtouch.c b/src/video/android/SDL_androidtouch.c index 6ad26e2c9651f..208594d0452fa 100644 --- a/src/video/android/SDL_androidtouch.c +++ b/src/video/android/SDL_androidtouch.c @@ -38,11 +38,8 @@ #define ACTION_MOVE 2 #define ACTION_CANCEL 3 #define ACTION_OUTSIDE 4 -/* The following two are deprecated but it seems they are still emitted (instead the corresponding ACTION_UP/DOWN) as of Android 3.2 */ -#define ACTION_POINTER_1_DOWN 5 -#define ACTION_POINTER_1_UP 6 - -static SDL_FingerID leftFingerDown = 0; +#define ACTION_POINTER_DOWN 5 +#define ACTION_POINTER_UP 6 static void Android_GetWindowCoordinates(float x, float y, int *window_x, int *window_y) @@ -72,6 +69,7 @@ void Android_OnTouch(int touch_device_id_in, int pointer_finger_id_in, int actio SDL_TouchID touchDeviceId = 0; SDL_FingerID fingerId = 0; int window_x, window_y; + static SDL_FingerID pointerFingerID = 0; if (!Android_Window) { return; @@ -85,22 +83,20 @@ void Android_OnTouch(int touch_device_id_in, int pointer_finger_id_in, int actio fingerId = (SDL_FingerID)pointer_finger_id_in; switch (action) { case ACTION_DOWN: - case ACTION_POINTER_1_DOWN: - if (!leftFingerDown) { - Android_GetWindowCoordinates(x, y, &window_x, &window_y); - - /* send moved event */ - SDL_SendMouseMotion(NULL, SDL_TOUCH_MOUSEID, 0, window_x, window_y); - - /* send mouse down event */ - SDL_SendMouseButton(NULL, SDL_TOUCH_MOUSEID, SDL_PRESSED, SDL_BUTTON_LEFT); - - leftFingerDown = fingerId; - } + /* Primary pointer down */ + Android_GetWindowCoordinates(x, y, &window_x, &window_y); + /* send moved event */ + SDL_SendMouseMotion(NULL, SDL_TOUCH_MOUSEID, 0, window_x, window_y); + /* send mouse down event */ + SDL_SendMouseButton(NULL, SDL_TOUCH_MOUSEID, SDL_PRESSED, SDL_BUTTON_LEFT); + pointerFingerID = fingerId; + case ACTION_POINTER_DOWN: + /* Non primary pointer down */ SDL_SendTouch(touchDeviceId, fingerId, SDL_TRUE, x, y, p); break; + case ACTION_MOVE: - if (!leftFingerDown) { + if (!pointerFingerID) { Android_GetWindowCoordinates(x, y, &window_x, &window_y); /* send moved event */ @@ -108,15 +104,17 @@ void Android_OnTouch(int touch_device_id_in, int pointer_finger_id_in, int actio } SDL_SendTouchMotion(touchDeviceId, fingerId, x, y, p); break; + case ACTION_UP: - case ACTION_POINTER_1_UP: - if (fingerId == leftFingerDown) { - /* send mouse up */ - SDL_SendMouseButton(NULL, SDL_TOUCH_MOUSEID, SDL_RELEASED, SDL_BUTTON_LEFT); - leftFingerDown = 0; - } + /* Primary pointer up */ + /* send mouse up */ + pointerFingerID = (SDL_FingerID) 0; + SDL_SendMouseButton(NULL, SDL_TOUCH_MOUSEID, SDL_RELEASED, SDL_BUTTON_LEFT); + case ACTION_POINTER_UP: + /* Non primary pointer up */ SDL_SendTouch(touchDeviceId, fingerId, SDL_FALSE, x, y, p); break; + default: break; } From 96fe749fc7718e2d7ab075e086e186a40e9c49c4 Mon Sep 17 00:00:00 2001 From: Gabriel Jacobo Date: Tue, 26 Nov 2013 11:47:52 -0300 Subject: [PATCH 136/143] Fixes #2272, typo in CMakeLists.txt (thanks Boris Bendovsky!) --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index edb9f7698c10c..7b8ceaa60a108 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -829,7 +829,7 @@ elseif(WINDOWS) if(SDL_FILESYSTEM) set(SDL_FILESYSTEM_WINDOWS 1) - file(GLOB FILESYSTEM_SOURCES ${SDL2_SOURCE_DIR}/src/filesytem/windows/*.c) + file(GLOB FILESYSTEM_SOURCES ${SDL2_SOURCE_DIR}/src/filesystem/windows/*.c) set(SOURCE_FILES ${SOURCE_FILES} ${FILESYSTEM_SOURCES}) set(HAVE_SDL_FILESYSTEM TRUE) endif(SDL_FILESYSTEM) From c343eab67a7e8a7e47ee1652a20ea23bad2b2763 Mon Sep 17 00:00:00 2001 From: Gabriel Jacobo Date: Tue, 26 Nov 2013 11:50:54 -0300 Subject: [PATCH 137/143] Fixes #2271, Add KD detection under CMake by Scott Percival --- CMakeLists.txt | 15 +++++++++++++++ include/SDL_config.h.cmake | 1 + 2 files changed, 16 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7b8ceaa60a108..1d15fb274a079 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -651,6 +651,17 @@ if(UNIX AND NOT APPLE) #endif int main(int argc, char** argv) {}" HAVE_INPUT_EVENTS) + check_c_source_compiles(" + #include + #include + + int main(int argc, char **argv) + { + struct kbentry kbe; + kbe.kb_table = KG_CTRL; + ioctl(0, KDGKBENT, &kbe); + }" HAVE_INPUT_KD) + file(GLOB CORE_SOURCES ${SDL2_SOURCE_DIR}/src/core/linux/*.c) set(SOURCE_FILES ${SOURCE_FILES} ${CORE_SOURCES}) @@ -665,6 +676,10 @@ if(UNIX AND NOT APPLE) set(HAVE_SDL_HAPTIC TRUE) endif(SDL_HAPTIC AND HAVE_INPUT_EVENTS) + if(HAVE_INPUT_KD) + set(SDL_INPUT_LINUXKD 1) + endif(HAVE_INPUT_KD) + check_include_file("libudev.h" HAVE_LIBUDEV_H) # !!! FIXME: this needs pkg-config to find the include path, I think. diff --git a/include/SDL_config.h.cmake b/include/SDL_config.h.cmake index c69a5aa450039..27e5f734f7d1a 100644 --- a/include/SDL_config.h.cmake +++ b/include/SDL_config.h.cmake @@ -215,6 +215,7 @@ /* Enable various input drivers */ #cmakedefine SDL_INPUT_LINUXEV @SDL_INPUT_LINUXEV@ +#cmakedefine SDL_INPUT_LINUXKD @SDL_INPUT_LINUXKD@ #cmakedefine SDL_INPUT_TSLIB @SDL_INPUT_TSLIB@ #cmakedefine SDL_JOYSTICK_HAIKU @SDL_JOYSTICK_HAIKU@ #cmakedefine SDL_JOYSTICK_DINPUT @SDL_JOYSTICK_DINPUT@ From 8574c0815cfab3952c8cf4c97a5c4467a1a18f55 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Wed, 27 Nov 2013 00:29:46 -0800 Subject: [PATCH 138/143] Fixed bug 2274 - SDL_ceil is incorrectly implemented when HAVE_LIBC is not defined Ghassan Al-Mashareqa The SDL_ceil function is implemented incorrectly when HAVE_CEIL is not defined (HAVE_LIBC not defined). The following code: double val = SDL_ceil(2.3); printf("%g", val); prints "2.0", as STD_ceil is defined as: double SDL_ceil(double x) { #ifdef HAVE_CEIL return ceil(x); #else return (double)(int)((x)+0.5); #endif /* HAVE_CEIL */ } This functions is used in the SDL_BuildAudioResampleCVT function of the audio subsystem (SDL_audiocvt.c), and causes a bug in that function. --- src/stdlib/SDL_stdlib.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/stdlib/SDL_stdlib.c b/src/stdlib/SDL_stdlib.c index 2ee62beee3eca..aa57d41b135a8 100644 --- a/src/stdlib/SDL_stdlib.c +++ b/src/stdlib/SDL_stdlib.c @@ -52,7 +52,12 @@ SDL_ceil(double x) #ifdef HAVE_CEIL return ceil(x); #else - return (double)(int)((x)+0.5); + double integer = SDL_floor(x); + double fraction = x - integer; + if (fraction > 0.0) { + integer += 1.0; + } + return integer; #endif /* HAVE_CEIL */ } From 2bb344d6dc68acd8e9b8687ce2324e89b62e1f91 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Wed, 27 Nov 2013 10:29:27 -0800 Subject: [PATCH 139/143] Don't crash when no WM is present. CR: Sam Lantinga. --- .../src/org/libsdl/app/SDLActivity.java | 0 premake/Linux/SDL_config_premake.h | 0 premake/MinGW/SDL_config_premake.h | 0 premake/VisualC/VS2008/SDL_config_premake.h | 0 premake/VisualC/VS2010/SDL_config_premake.h | 0 premake/VisualC/VS2012/SDL_config_premake.h | 0 premake/Xcode-iOS/SDL_config_premake.h | 0 premake/Xcode/Xcode3/SDL_config_premake.h | 0 premake/Xcode/Xcode4/SDL_config_premake.h | 0 premake/config/SDL_config_cygwin.template.h | 0 premake/config/SDL_config_iphoneos.template.h | 0 premake/config/SDL_config_linux.template.h | 0 premake/config/SDL_config_macosx.template.h | 0 premake/config/SDL_config_minimal.template.h | 0 premake/config/SDL_config_windows.template.h | 0 src/video/SDL_video.c | 0 src/video/windows/SDL_windowsevents.c | 0 src/video/windows/SDL_windowswindow.c | 0 src/video/windows/SDL_windowswindow.h | 0 src/video/x11/SDL_x11video.c | 20 +++++++++++------- visualtest/config.h | 0 visualtest/docs/html/bc_s.png | Bin visualtest/docs/html/bdwn.png | Bin visualtest/docs/html/closed.png | Bin visualtest/docs/html/doxygen.png | Bin visualtest/docs/html/ftv2blank.png | Bin visualtest/docs/html/ftv2cl.png | Bin visualtest/docs/html/ftv2doc.png | Bin visualtest/docs/html/ftv2folderclosed.png | Bin visualtest/docs/html/ftv2folderopen.png | Bin visualtest/docs/html/ftv2lastnode.png | Bin visualtest/docs/html/ftv2link.png | Bin visualtest/docs/html/ftv2mlastnode.png | Bin visualtest/docs/html/ftv2mnode.png | Bin visualtest/docs/html/ftv2mo.png | Bin visualtest/docs/html/ftv2node.png | Bin visualtest/docs/html/ftv2ns.png | Bin visualtest/docs/html/ftv2plastnode.png | Bin visualtest/docs/html/ftv2pnode.png | Bin visualtest/docs/html/ftv2splitbar.png | Bin visualtest/docs/html/ftv2vertline.png | Bin visualtest/docs/html/nav_f.png | Bin visualtest/docs/html/nav_g.png | Bin visualtest/docs/html/nav_h.png | Bin visualtest/docs/html/open.png | Bin visualtest/docs/html/search/close.png | Bin visualtest/docs/html/search/mag_sel.png | Bin visualtest/docs/html/search/search_l.png | Bin visualtest/docs/html/search/search_m.png | Bin visualtest/docs/html/search/search_r.png | Bin visualtest/docs/html/sync_off.png | Bin visualtest/docs/html/sync_on.png | Bin visualtest/docs/html/tab_a.png | Bin visualtest/docs/html/tab_b.png | Bin visualtest/docs/html/tab_h.png | Bin visualtest/docs/html/tab_s.png | Bin .../SDL_visualtest_action_configparser.h | 0 .../SDL_visualtest_exhaustive_variator.h | 0 .../SDL_visualtest_harness_argparser.h | 0 .../include/SDL_visualtest_mischelper.h | 0 .../include/SDL_visualtest_parsehelper.h | 0 visualtest/include/SDL_visualtest_process.h | 0 .../include/SDL_visualtest_random_variator.h | 0 visualtest/include/SDL_visualtest_rwhelper.h | 0 .../include/SDL_visualtest_screenshot.h | 0 .../include/SDL_visualtest_sut_configparser.h | 0 .../include/SDL_visualtest_variator_common.h | 0 visualtest/include/SDL_visualtest_variators.h | 0 visualtest/src/action_configparser.c | 0 visualtest/src/harness_argparser.c | 0 visualtest/src/linux/linux_process.c | 0 visualtest/src/mischelper.c | 0 visualtest/src/parsehelper.c | 0 visualtest/src/rwhelper.c | 0 visualtest/src/screenshot.c | 0 visualtest/src/sut_configparser.c | 0 visualtest/src/testharness.c | 0 visualtest/src/variator_common.c | 0 visualtest/src/variator_exhaustive.c | 0 visualtest/src/variator_random.c | 0 visualtest/src/variators.c | 0 visualtest/src/windows/windows_process.c | 0 visualtest/src/windows/windows_screenshot.c | 0 visualtest/unittest/testquit.c | 0 84 files changed, 12 insertions(+), 8 deletions(-) mode change 100755 => 100644 android-project/src/org/libsdl/app/SDLActivity.java mode change 100755 => 100644 premake/Linux/SDL_config_premake.h mode change 100755 => 100644 premake/MinGW/SDL_config_premake.h mode change 100755 => 100644 premake/VisualC/VS2008/SDL_config_premake.h mode change 100755 => 100644 premake/VisualC/VS2010/SDL_config_premake.h mode change 100755 => 100644 premake/VisualC/VS2012/SDL_config_premake.h mode change 100755 => 100644 premake/Xcode-iOS/SDL_config_premake.h mode change 100755 => 100644 premake/Xcode/Xcode3/SDL_config_premake.h mode change 100755 => 100644 premake/Xcode/Xcode4/SDL_config_premake.h mode change 100755 => 100644 premake/config/SDL_config_cygwin.template.h mode change 100755 => 100644 premake/config/SDL_config_iphoneos.template.h mode change 100755 => 100644 premake/config/SDL_config_linux.template.h mode change 100755 => 100644 premake/config/SDL_config_macosx.template.h mode change 100755 => 100644 premake/config/SDL_config_minimal.template.h mode change 100755 => 100644 premake/config/SDL_config_windows.template.h mode change 100755 => 100644 src/video/SDL_video.c mode change 100755 => 100644 src/video/windows/SDL_windowsevents.c mode change 100755 => 100644 src/video/windows/SDL_windowswindow.c mode change 100755 => 100644 src/video/windows/SDL_windowswindow.h mode change 100755 => 100644 visualtest/config.h mode change 100755 => 100644 visualtest/docs/html/bc_s.png mode change 100755 => 100644 visualtest/docs/html/bdwn.png mode change 100755 => 100644 visualtest/docs/html/closed.png mode change 100755 => 100644 visualtest/docs/html/doxygen.png mode change 100755 => 100644 visualtest/docs/html/ftv2blank.png mode change 100755 => 100644 visualtest/docs/html/ftv2cl.png mode change 100755 => 100644 visualtest/docs/html/ftv2doc.png mode change 100755 => 100644 visualtest/docs/html/ftv2folderclosed.png mode change 100755 => 100644 visualtest/docs/html/ftv2folderopen.png mode change 100755 => 100644 visualtest/docs/html/ftv2lastnode.png mode change 100755 => 100644 visualtest/docs/html/ftv2link.png mode change 100755 => 100644 visualtest/docs/html/ftv2mlastnode.png mode change 100755 => 100644 visualtest/docs/html/ftv2mnode.png mode change 100755 => 100644 visualtest/docs/html/ftv2mo.png mode change 100755 => 100644 visualtest/docs/html/ftv2node.png mode change 100755 => 100644 visualtest/docs/html/ftv2ns.png mode change 100755 => 100644 visualtest/docs/html/ftv2plastnode.png mode change 100755 => 100644 visualtest/docs/html/ftv2pnode.png mode change 100755 => 100644 visualtest/docs/html/ftv2splitbar.png mode change 100755 => 100644 visualtest/docs/html/ftv2vertline.png mode change 100755 => 100644 visualtest/docs/html/nav_f.png mode change 100755 => 100644 visualtest/docs/html/nav_g.png mode change 100755 => 100644 visualtest/docs/html/nav_h.png mode change 100755 => 100644 visualtest/docs/html/open.png mode change 100755 => 100644 visualtest/docs/html/search/close.png mode change 100755 => 100644 visualtest/docs/html/search/mag_sel.png mode change 100755 => 100644 visualtest/docs/html/search/search_l.png mode change 100755 => 100644 visualtest/docs/html/search/search_m.png mode change 100755 => 100644 visualtest/docs/html/search/search_r.png mode change 100755 => 100644 visualtest/docs/html/sync_off.png mode change 100755 => 100644 visualtest/docs/html/sync_on.png mode change 100755 => 100644 visualtest/docs/html/tab_a.png mode change 100755 => 100644 visualtest/docs/html/tab_b.png mode change 100755 => 100644 visualtest/docs/html/tab_h.png mode change 100755 => 100644 visualtest/docs/html/tab_s.png mode change 100755 => 100644 visualtest/include/SDL_visualtest_action_configparser.h mode change 100755 => 100644 visualtest/include/SDL_visualtest_exhaustive_variator.h mode change 100755 => 100644 visualtest/include/SDL_visualtest_harness_argparser.h mode change 100755 => 100644 visualtest/include/SDL_visualtest_mischelper.h mode change 100755 => 100644 visualtest/include/SDL_visualtest_parsehelper.h mode change 100755 => 100644 visualtest/include/SDL_visualtest_process.h mode change 100755 => 100644 visualtest/include/SDL_visualtest_random_variator.h mode change 100755 => 100644 visualtest/include/SDL_visualtest_rwhelper.h mode change 100755 => 100644 visualtest/include/SDL_visualtest_screenshot.h mode change 100755 => 100644 visualtest/include/SDL_visualtest_sut_configparser.h mode change 100755 => 100644 visualtest/include/SDL_visualtest_variator_common.h mode change 100755 => 100644 visualtest/include/SDL_visualtest_variators.h mode change 100755 => 100644 visualtest/src/action_configparser.c mode change 100755 => 100644 visualtest/src/harness_argparser.c mode change 100755 => 100644 visualtest/src/linux/linux_process.c mode change 100755 => 100644 visualtest/src/mischelper.c mode change 100755 => 100644 visualtest/src/parsehelper.c mode change 100755 => 100644 visualtest/src/rwhelper.c mode change 100755 => 100644 visualtest/src/screenshot.c mode change 100755 => 100644 visualtest/src/sut_configparser.c mode change 100755 => 100644 visualtest/src/testharness.c mode change 100755 => 100644 visualtest/src/variator_common.c mode change 100755 => 100644 visualtest/src/variator_exhaustive.c mode change 100755 => 100644 visualtest/src/variator_random.c mode change 100755 => 100644 visualtest/src/variators.c mode change 100755 => 100644 visualtest/src/windows/windows_process.c mode change 100755 => 100644 visualtest/src/windows/windows_screenshot.c mode change 100755 => 100644 visualtest/unittest/testquit.c diff --git a/android-project/src/org/libsdl/app/SDLActivity.java b/android-project/src/org/libsdl/app/SDLActivity.java old mode 100755 new mode 100644 diff --git a/premake/Linux/SDL_config_premake.h b/premake/Linux/SDL_config_premake.h old mode 100755 new mode 100644 diff --git a/premake/MinGW/SDL_config_premake.h b/premake/MinGW/SDL_config_premake.h old mode 100755 new mode 100644 diff --git a/premake/VisualC/VS2008/SDL_config_premake.h b/premake/VisualC/VS2008/SDL_config_premake.h old mode 100755 new mode 100644 diff --git a/premake/VisualC/VS2010/SDL_config_premake.h b/premake/VisualC/VS2010/SDL_config_premake.h old mode 100755 new mode 100644 diff --git a/premake/VisualC/VS2012/SDL_config_premake.h b/premake/VisualC/VS2012/SDL_config_premake.h old mode 100755 new mode 100644 diff --git a/premake/Xcode-iOS/SDL_config_premake.h b/premake/Xcode-iOS/SDL_config_premake.h old mode 100755 new mode 100644 diff --git a/premake/Xcode/Xcode3/SDL_config_premake.h b/premake/Xcode/Xcode3/SDL_config_premake.h old mode 100755 new mode 100644 diff --git a/premake/Xcode/Xcode4/SDL_config_premake.h b/premake/Xcode/Xcode4/SDL_config_premake.h old mode 100755 new mode 100644 diff --git a/premake/config/SDL_config_cygwin.template.h b/premake/config/SDL_config_cygwin.template.h old mode 100755 new mode 100644 diff --git a/premake/config/SDL_config_iphoneos.template.h b/premake/config/SDL_config_iphoneos.template.h old mode 100755 new mode 100644 diff --git a/premake/config/SDL_config_linux.template.h b/premake/config/SDL_config_linux.template.h old mode 100755 new mode 100644 diff --git a/premake/config/SDL_config_macosx.template.h b/premake/config/SDL_config_macosx.template.h old mode 100755 new mode 100644 diff --git a/premake/config/SDL_config_minimal.template.h b/premake/config/SDL_config_minimal.template.h old mode 100755 new mode 100644 diff --git a/premake/config/SDL_config_windows.template.h b/premake/config/SDL_config_windows.template.h old mode 100755 new mode 100644 diff --git a/src/video/SDL_video.c b/src/video/SDL_video.c old mode 100755 new mode 100644 diff --git a/src/video/windows/SDL_windowsevents.c b/src/video/windows/SDL_windowsevents.c old mode 100755 new mode 100644 diff --git a/src/video/windows/SDL_windowswindow.c b/src/video/windows/SDL_windowswindow.c old mode 100755 new mode 100644 diff --git a/src/video/windows/SDL_windowswindow.h b/src/video/windows/SDL_windowswindow.h old mode 100755 new mode 100644 diff --git a/src/video/x11/SDL_x11video.c b/src/video/x11/SDL_x11video.c index c84d4ec6811df..49183e63c3ccc 100644 --- a/src/video/x11/SDL_x11video.c +++ b/src/video/x11/SDL_x11video.c @@ -440,8 +440,8 @@ X11_CheckWindowManager(_THIS) Atom _NET_SUPPORTING_WM_CHECK; int status, real_format; Atom real_type; - unsigned long items_read, items_left; - unsigned char *propdata; + unsigned long items_read = 0, items_left = 0; + unsigned char *propdata = NULL; Window wm_window = 0; #ifdef DEBUG_WINDOW_MANAGER char *wm_name; @@ -453,11 +453,14 @@ X11_CheckWindowManager(_THIS) _NET_SUPPORTING_WM_CHECK = X11_XInternAtom(display, "_NET_SUPPORTING_WM_CHECK", False); status = X11_XGetWindowProperty(display, DefaultRootWindow(display), _NET_SUPPORTING_WM_CHECK, 0L, 1L, False, XA_WINDOW, &real_type, &real_format, &items_read, &items_left, &propdata); - if (status == Success && items_read) { - wm_window = ((Window*)propdata)[0]; - } - if (propdata) { - X11_XFree(propdata); + if (status == Success) { + if (items_read) { + wm_window = ((Window*)propdata)[0]; + } + if (propdata) { + X11_XFree(propdata); + propdata = NULL; + } } if (wm_window) { @@ -465,8 +468,9 @@ X11_CheckWindowManager(_THIS) if (status != Success || !items_read || wm_window != ((Window*)propdata)[0]) { wm_window = None; } - if (propdata) { + if (status == Success && propdata) { X11_XFree(propdata); + propdata = NULL; } } diff --git a/visualtest/config.h b/visualtest/config.h old mode 100755 new mode 100644 diff --git a/visualtest/docs/html/bc_s.png b/visualtest/docs/html/bc_s.png old mode 100755 new mode 100644 diff --git a/visualtest/docs/html/bdwn.png b/visualtest/docs/html/bdwn.png old mode 100755 new mode 100644 diff --git a/visualtest/docs/html/closed.png b/visualtest/docs/html/closed.png old mode 100755 new mode 100644 diff --git a/visualtest/docs/html/doxygen.png b/visualtest/docs/html/doxygen.png old mode 100755 new mode 100644 diff --git a/visualtest/docs/html/ftv2blank.png b/visualtest/docs/html/ftv2blank.png old mode 100755 new mode 100644 diff --git a/visualtest/docs/html/ftv2cl.png b/visualtest/docs/html/ftv2cl.png old mode 100755 new mode 100644 diff --git a/visualtest/docs/html/ftv2doc.png b/visualtest/docs/html/ftv2doc.png old mode 100755 new mode 100644 diff --git a/visualtest/docs/html/ftv2folderclosed.png b/visualtest/docs/html/ftv2folderclosed.png old mode 100755 new mode 100644 diff --git a/visualtest/docs/html/ftv2folderopen.png b/visualtest/docs/html/ftv2folderopen.png old mode 100755 new mode 100644 diff --git a/visualtest/docs/html/ftv2lastnode.png b/visualtest/docs/html/ftv2lastnode.png old mode 100755 new mode 100644 diff --git a/visualtest/docs/html/ftv2link.png b/visualtest/docs/html/ftv2link.png old mode 100755 new mode 100644 diff --git a/visualtest/docs/html/ftv2mlastnode.png b/visualtest/docs/html/ftv2mlastnode.png old mode 100755 new mode 100644 diff --git a/visualtest/docs/html/ftv2mnode.png b/visualtest/docs/html/ftv2mnode.png old mode 100755 new mode 100644 diff --git a/visualtest/docs/html/ftv2mo.png b/visualtest/docs/html/ftv2mo.png old mode 100755 new mode 100644 diff --git a/visualtest/docs/html/ftv2node.png b/visualtest/docs/html/ftv2node.png old mode 100755 new mode 100644 diff --git a/visualtest/docs/html/ftv2ns.png b/visualtest/docs/html/ftv2ns.png old mode 100755 new mode 100644 diff --git a/visualtest/docs/html/ftv2plastnode.png b/visualtest/docs/html/ftv2plastnode.png old mode 100755 new mode 100644 diff --git a/visualtest/docs/html/ftv2pnode.png b/visualtest/docs/html/ftv2pnode.png old mode 100755 new mode 100644 diff --git a/visualtest/docs/html/ftv2splitbar.png b/visualtest/docs/html/ftv2splitbar.png old mode 100755 new mode 100644 diff --git a/visualtest/docs/html/ftv2vertline.png b/visualtest/docs/html/ftv2vertline.png old mode 100755 new mode 100644 diff --git a/visualtest/docs/html/nav_f.png b/visualtest/docs/html/nav_f.png old mode 100755 new mode 100644 diff --git a/visualtest/docs/html/nav_g.png b/visualtest/docs/html/nav_g.png old mode 100755 new mode 100644 diff --git a/visualtest/docs/html/nav_h.png b/visualtest/docs/html/nav_h.png old mode 100755 new mode 100644 diff --git a/visualtest/docs/html/open.png b/visualtest/docs/html/open.png old mode 100755 new mode 100644 diff --git a/visualtest/docs/html/search/close.png b/visualtest/docs/html/search/close.png old mode 100755 new mode 100644 diff --git a/visualtest/docs/html/search/mag_sel.png b/visualtest/docs/html/search/mag_sel.png old mode 100755 new mode 100644 diff --git a/visualtest/docs/html/search/search_l.png b/visualtest/docs/html/search/search_l.png old mode 100755 new mode 100644 diff --git a/visualtest/docs/html/search/search_m.png b/visualtest/docs/html/search/search_m.png old mode 100755 new mode 100644 diff --git a/visualtest/docs/html/search/search_r.png b/visualtest/docs/html/search/search_r.png old mode 100755 new mode 100644 diff --git a/visualtest/docs/html/sync_off.png b/visualtest/docs/html/sync_off.png old mode 100755 new mode 100644 diff --git a/visualtest/docs/html/sync_on.png b/visualtest/docs/html/sync_on.png old mode 100755 new mode 100644 diff --git a/visualtest/docs/html/tab_a.png b/visualtest/docs/html/tab_a.png old mode 100755 new mode 100644 diff --git a/visualtest/docs/html/tab_b.png b/visualtest/docs/html/tab_b.png old mode 100755 new mode 100644 diff --git a/visualtest/docs/html/tab_h.png b/visualtest/docs/html/tab_h.png old mode 100755 new mode 100644 diff --git a/visualtest/docs/html/tab_s.png b/visualtest/docs/html/tab_s.png old mode 100755 new mode 100644 diff --git a/visualtest/include/SDL_visualtest_action_configparser.h b/visualtest/include/SDL_visualtest_action_configparser.h old mode 100755 new mode 100644 diff --git a/visualtest/include/SDL_visualtest_exhaustive_variator.h b/visualtest/include/SDL_visualtest_exhaustive_variator.h old mode 100755 new mode 100644 diff --git a/visualtest/include/SDL_visualtest_harness_argparser.h b/visualtest/include/SDL_visualtest_harness_argparser.h old mode 100755 new mode 100644 diff --git a/visualtest/include/SDL_visualtest_mischelper.h b/visualtest/include/SDL_visualtest_mischelper.h old mode 100755 new mode 100644 diff --git a/visualtest/include/SDL_visualtest_parsehelper.h b/visualtest/include/SDL_visualtest_parsehelper.h old mode 100755 new mode 100644 diff --git a/visualtest/include/SDL_visualtest_process.h b/visualtest/include/SDL_visualtest_process.h old mode 100755 new mode 100644 diff --git a/visualtest/include/SDL_visualtest_random_variator.h b/visualtest/include/SDL_visualtest_random_variator.h old mode 100755 new mode 100644 diff --git a/visualtest/include/SDL_visualtest_rwhelper.h b/visualtest/include/SDL_visualtest_rwhelper.h old mode 100755 new mode 100644 diff --git a/visualtest/include/SDL_visualtest_screenshot.h b/visualtest/include/SDL_visualtest_screenshot.h old mode 100755 new mode 100644 diff --git a/visualtest/include/SDL_visualtest_sut_configparser.h b/visualtest/include/SDL_visualtest_sut_configparser.h old mode 100755 new mode 100644 diff --git a/visualtest/include/SDL_visualtest_variator_common.h b/visualtest/include/SDL_visualtest_variator_common.h old mode 100755 new mode 100644 diff --git a/visualtest/include/SDL_visualtest_variators.h b/visualtest/include/SDL_visualtest_variators.h old mode 100755 new mode 100644 diff --git a/visualtest/src/action_configparser.c b/visualtest/src/action_configparser.c old mode 100755 new mode 100644 diff --git a/visualtest/src/harness_argparser.c b/visualtest/src/harness_argparser.c old mode 100755 new mode 100644 diff --git a/visualtest/src/linux/linux_process.c b/visualtest/src/linux/linux_process.c old mode 100755 new mode 100644 diff --git a/visualtest/src/mischelper.c b/visualtest/src/mischelper.c old mode 100755 new mode 100644 diff --git a/visualtest/src/parsehelper.c b/visualtest/src/parsehelper.c old mode 100755 new mode 100644 diff --git a/visualtest/src/rwhelper.c b/visualtest/src/rwhelper.c old mode 100755 new mode 100644 diff --git a/visualtest/src/screenshot.c b/visualtest/src/screenshot.c old mode 100755 new mode 100644 diff --git a/visualtest/src/sut_configparser.c b/visualtest/src/sut_configparser.c old mode 100755 new mode 100644 diff --git a/visualtest/src/testharness.c b/visualtest/src/testharness.c old mode 100755 new mode 100644 diff --git a/visualtest/src/variator_common.c b/visualtest/src/variator_common.c old mode 100755 new mode 100644 diff --git a/visualtest/src/variator_exhaustive.c b/visualtest/src/variator_exhaustive.c old mode 100755 new mode 100644 diff --git a/visualtest/src/variator_random.c b/visualtest/src/variator_random.c old mode 100755 new mode 100644 diff --git a/visualtest/src/variators.c b/visualtest/src/variators.c old mode 100755 new mode 100644 diff --git a/visualtest/src/windows/windows_process.c b/visualtest/src/windows/windows_process.c old mode 100755 new mode 100644 diff --git a/visualtest/src/windows/windows_screenshot.c b/visualtest/src/windows/windows_screenshot.c old mode 100755 new mode 100644 diff --git a/visualtest/unittest/testquit.c b/visualtest/unittest/testquit.c old mode 100755 new mode 100644 From fa4e4a643a678094375751243185afec511552e6 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Wed, 27 Nov 2013 10:29:32 -0800 Subject: [PATCH 140/143] Fixed large relative mouse motion when iconifying the SDL window. Windows will move the window to -32000,-32000 when it is iconified, so we don't want to send mouse motion for iconic windows. --- src/video/windows/SDL_windowsevents.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/video/windows/SDL_windowsevents.c b/src/video/windows/SDL_windowsevents.c index 34fcbc6ac92f2..eeb26c0a3f973 100644 --- a/src/video/windows/SDL_windowsevents.c +++ b/src/video/windows/SDL_windowsevents.c @@ -496,10 +496,12 @@ WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) #ifdef WM_MOUSELEAVE case WM_MOUSELEAVE: if (SDL_GetMouseFocus() == data->window && !SDL_GetMouse()->relative_mode) { - POINT cursorPos; - GetCursorPos(&cursorPos); - ScreenToClient(hwnd, &cursorPos); - SDL_SendMouseMotion(data->window, 0, 0, cursorPos.x, cursorPos.y); + if (!IsIconic(hwnd)) { + POINT cursorPos; + GetCursorPos(&cursorPos); + ScreenToClient(hwnd, &cursorPos); + SDL_SendMouseMotion(data->window, 0, 0, cursorPos.x, cursorPos.y); + } SDL_SetMouseFocus(NULL); } returnCode = 0; From d2511d9ef9cd73efc9ddc37a248787875d3b5acf Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Wed, 27 Nov 2013 10:29:38 -0800 Subject: [PATCH 141/143] Fixed bug 2260 - SDL_SetCursorGrab() is buggy on Windows BurnSpamAddress Steps to reproduce: 1. Grab the cursor with SDL_SetCursorGrab() 2. Alt-tab away from the window 3. Click on the titlebar of the window This will cause the window to disappear underneath the taskbar! This appears to be a general issue with ClipCursor() on windows, i.e. I am getting the same behavior if I call ClipCursor() directly. It is caused by a feedback loop between the ClipCursor function and the modal resize/move event loop that handles mouse-based sizing on Windows. --- src/video/windows/SDL_windowsevents.c | 82 +++++++++++++++++++-------- src/video/windows/SDL_windowsmouse.c | 9 ++- 2 files changed, 62 insertions(+), 29 deletions(-) diff --git a/src/video/windows/SDL_windowsevents.c b/src/video/windows/SDL_windowsevents.c index eeb26c0a3f973..bbab2da2cb1a6 100644 --- a/src/video/windows/SDL_windowsevents.c +++ b/src/video/windows/SDL_windowsevents.c @@ -286,6 +286,45 @@ WIN_ConvertUTF32toUTF8(UINT32 codepoint, char * text) return SDL_TRUE; } +static void +WIN_UpdateClipCursor(SDL_Window *window) +{ + SDL_WindowData *data = (SDL_WindowData *) window->driverdata; + + /* Don't clip the cursor while we're in the modal resize or move loop */ + if (data->in_modal_loop) { + ClipCursor(NULL); + return; + } + + if (SDL_GetMouse()->relative_mode) { + LONG cx, cy; + RECT rect; + GetWindowRect(data->hwnd, &rect); + + cx = (rect.left + rect.right) / 2; + cy = (rect.top + rect.bottom) / 2; + + /* Make an absurdly small clip rect */ + rect.left = cx-1; + rect.right = cx+1; + rect.top = cy-1; + rect.bottom = cy+1; + + ClipCursor(&rect); + } else if ((window->flags & SDL_WINDOW_INPUT_GRABBED) && + (window->flags & SDL_WINDOW_INPUT_FOCUS)) { + RECT rect; + if (GetClientRect(data->hwnd, &rect) && !IsRectEmpty(&rect)) { + ClientToScreen(data->hwnd, (LPPOINT) & rect); + ClientToScreen(data->hwnd, (LPPOINT) & rect + 1); + ClipCursor(&rect); + } + } else { + ClipCursor(NULL); + } +} + LRESULT CALLBACK WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { @@ -369,22 +408,7 @@ WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) WIN_CheckWParamMouseButton( ( keyState & 0x8000 ), (mouseFlags & SDL_BUTTON_X2MASK), data, SDL_BUTTON_X2 ); data->mouse_button_flags = 0; - if(SDL_GetMouse()->relative_mode) { - LONG cx, cy; - RECT rect; - GetWindowRect(hwnd, &rect); - - cx = (rect.left + rect.right) / 2; - cy = (rect.top + rect.bottom) / 2; - - /* Make an absurdly small clip rect */ - rect.left = cx-1; - rect.right = cx+1; - rect.top = cy-1; - rect.bottom = cy+1; - - ClipCursor(&rect); - } + WIN_UpdateClipCursor(data->window); /* * FIXME: Update keyboard state @@ -585,6 +609,22 @@ WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) break; #endif /* WM_INPUTLANGCHANGE */ + case WM_ENTERSIZEMOVE: + case WM_ENTERMENULOOP: + { + data->in_modal_loop = SDL_TRUE; + WIN_UpdateClipCursor(data->window); + } + break; + + case WM_EXITSIZEMOVE: + case WM_EXITMENULOOP: + { + data->in_modal_loop = SDL_FALSE; + WIN_UpdateClipCursor(data->window); + } + break; + #ifdef WM_GETMINMAXINFO case WM_GETMINMAXINFO: { @@ -673,20 +713,14 @@ WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) RECT rect; int x, y; int w, h; - Uint32 window_flags; - if (!GetClientRect(hwnd, &rect) || - (rect.right == rect.left && rect.bottom == rect.top)) { + if (!GetClientRect(hwnd, &rect) || IsRectEmpty(&rect)) { break; } ClientToScreen(hwnd, (LPPOINT) & rect); ClientToScreen(hwnd, (LPPOINT) & rect + 1); - window_flags = SDL_GetWindowFlags(data->window); - if ((window_flags & SDL_WINDOW_INPUT_GRABBED) && - (window_flags & SDL_WINDOW_INPUT_FOCUS)) { - ClipCursor(&rect); - } + WIN_UpdateClipCursor(data->window); x = rect.left; y = rect.top; diff --git a/src/video/windows/SDL_windowsmouse.c b/src/video/windows/SDL_windowsmouse.c index f50a8724bf5dd..f75b8dad335d9 100644 --- a/src/video/windows/SDL_windowsmouse.c +++ b/src/video/windows/SDL_windowsmouse.c @@ -207,7 +207,7 @@ WIN_SetRelativeMouseMode(SDL_bool enabled) /* (Un)register raw input for mice */ - if(RegisterRawInputDevices(&rawMouse, 1, sizeof(RAWINPUTDEVICE)) == FALSE) { + if (RegisterRawInputDevices(&rawMouse, 1, sizeof(RAWINPUTDEVICE)) == FALSE) { /* Only return an error when registering. If we unregister and fail, then it's probably that we unregistered twice. That's OK. */ @@ -216,7 +216,7 @@ WIN_SetRelativeMouseMode(SDL_bool enabled) } } - if(enabled) { + if (enabled) { LONG cx, cy; RECT rect; GetWindowRect(hWnd, &rect); @@ -231,10 +231,9 @@ WIN_SetRelativeMouseMode(SDL_bool enabled) rect.bottom = cy+1; ClipCursor(&rect); - } - else + } else { ClipCursor(NULL); - + } return 0; } From dee481350c4563e18f7e3f5dba3d9cc60982e2a4 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Wed, 27 Nov 2013 10:29:43 -0800 Subject: [PATCH 142/143] Added alternative XBox 360 controller GUID on Linux Leszek Godlewski As described in the other thread (http://lists.libsdl.org/pipermail/sdl-libsdl.org/2013-November/091997.html), I've run into a case of SDL2 not recognizing a wireless Xbox 360 controller receiver properly on Debian Linux amd64 testing. Apparently, the generated GUID is slightly different. Device in question: Bus 001 Device 015: ID 045e:0291 Microsoft Corp. Xbox 360 Wireless Receiver for Windows --- src/joystick/SDL_gamecontrollerdb.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/joystick/SDL_gamecontrollerdb.h b/src/joystick/SDL_gamecontrollerdb.h index a2f581479eeb0..4dd711cd02f72 100644 --- a/src/joystick/SDL_gamecontrollerdb.h +++ b/src/joystick/SDL_gamecontrollerdb.h @@ -59,6 +59,7 @@ static const char *s_ControllerMappings [] = "030000005e0400008e02000014010000,X360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,", "030000005e0400008e02000010010000,X360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,", "030000005e0400001907000000010000,X360 Wireless Controller,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b11,dpright:b12,dpup:b13,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,", + "030000005e0400009102000007010000,X360 Wireless Controller,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b11,dpright:b12,dpup:b13,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,", #endif NULL }; From 9fa4da1353c98fe4b8b9efcd3e360591dcc0f7a4 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Thu, 28 Nov 2013 02:31:32 -0800 Subject: [PATCH 143/143] Fixed windows build with conflict resolve --- src/video/windows/SDL_windowswindow.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/video/windows/SDL_windowswindow.h b/src/video/windows/SDL_windowswindow.h index 52837a17aaf97..ed304453c0985 100644 --- a/src/video/windows/SDL_windowswindow.h +++ b/src/video/windows/SDL_windowswindow.h @@ -38,6 +38,7 @@ typedef struct SDL_bool created; WPARAM mouse_button_flags; BOOL expected_resize; + SDL_bool in_modal_loop; struct SDL_VideoData *videodata; #if SDL_VIDEO_OPENGL_EGL EGLSurface egl_surface;