From 221ede88f308748197b21df11c05673d455d11ce Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Sat, 12 Sep 2026 11:32:26 -0400 Subject: [PATCH 1/9] A tiling window manager was never told what size the game wanted On Hyprland the engine's window did whatever the window manager made of it. It was tiled whatever size the game asked for, and floating it (SUPER+T) brought back an 800x600 that no preference named: InitOpenGL created the window from $pref::Video::resolution, which nothing sets before the canvas exists, and a tiling window manager remembers the size a window first appeared at. The window is now created at the size canvas.cs is about to ask for, and $pref::Video::windowedRes says whether that size matters. Empty means it does not: the window opens resizable at defaultResolution and a tiler is free to tile it. A size means exactly that size. The window is created fixed-size, so its minimum and maximum size hints are in place before it first maps, which is what makes Hyprland -- and i3 and sway -- float it. The hints are held for 500 ms and then cleared straight on the X server, so the player can still resize it and no texture is reloaded to do it. Clearing them at once loses a race: Hyprland decides a moment after the map, and a window whose hints are gone by then is tiled. Holding them 100 ms was already enough. Following the window manager took a second X connection. Genuine SDL 1.2 draws into a child of the window the window manager manages, so anything read off SDL_SysWMinfo's window was reading the wrong one; wmwindow is the toplevel. And sdl12-compat, which distributions now ship as SDL 1.2, passes on no X events at all -- not even the resizes while the window manager has the window fullscreen. The back-end now selects structure and property events on the toplevel itself, and settles a resize or a _NET_WM_STATE change the way a drag was already settled. SUPER+F is followed into and out of fullscreen: under sdl12-compat by going fullscreen with the window manager, since a windowed SDL_SetVideoMode there asks to leave again; under genuine SDL 1.2 as a plain resize, because its SDL_FULLSCREEN puts up an override-redirect window of its own that the window manager never sees. canvas.cs now honours $pref::Video::fullScreen on Linux, keyed on $platformUnixType because the web build calls itself x86UNIX too. That is right under sdl12-compat and wrong under genuine SDL 1.2 on Wayland, where the game draws unscaled in a corner. This branch moves the engine to SDL 2 before it merges, and SDL 2 does fullscreen through the window manager everywhere. The editor's preferences leave windowedRes empty, so the editor tiles; new projects keep AppCore's 1024x768 and float at it. Windows and macOS read windowedRes when they create the window too, so both now fall back to defaultResolution for an empty one rather than opening at a placeholder and resizing. Video::getDesktopResolution on Linux also had width and height the wrong way round. Tested on Hyprland against both SDL 1.2s -- a hand-built genuine 1.2.15 and Arch's sdl12-compat 1.2.68 -- with an empty and an explicit windowedRes, SUPER+F in and out, and SUPER+T. Not tested on a stacking desktop, and the Windows and macOS changes have only been compiled by CI. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_019qUbGQ6PD6Mqtvnxn67CLp --- CHANGELOG.md | 8 + PlanetX/AppCore/1/scripts/canvas.cs | 3 +- editor/EditorCore/scripts/canvas.cs | 3 +- .../EditorCore/scripts/defaultPreferences.cs | 5 +- engine/source/platformOSX/osxWindow.mm | 5 + engine/source/platformWin32/winWindow.cc | 6 + .../source/platformX86UNIX/x86UNIXOGLVideo.cc | 75 +++++- .../source/platformX86UNIX/x86UNIXOGLVideo.h | 8 + engine/source/platformX86UNIX/x86UNIXState.h | 14 ++ .../source/platformX86UNIX/x86UNIXWindow.cc | 215 +++++++++++++++--- library/AppCore/scripts/canvas.cs | 3 +- toybox/AppCore/1/scripts/canvas.cs | 3 +- 12 files changed, 302 insertions(+), 46 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3344e7704..5d1b12a70 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,8 +8,16 @@ what your scripts have to say, and what ends up in your files. ## [Unreleased] +### Added + +- On Linux, the game window works with tiling window managers such as Hyprland, i3 and sway. `$pref::Video::windowedRes` now says whether the game has a size in mind. Leave it empty and the window opens resizable at `$pref::Video::defaultResolution`, and a tiling window manager is free to tile it. Give it a size and the window opens at exactly that size, which a tiling window manager takes as its cue to float the window rather than tile it; it can still be resized afterwards. A stacking desktop simply opens the window at the size either way. The editor's own preferences now leave `windowedRes` empty, so the editor tiles; everywhere else -- Windows, macOS, a stacking Linux desktop -- it still opens at 1024x768. New projects keep AppCore's `1024 768`, so a game opens at the size it was designed for and floats on a tiling window manager until the player tiles it. +- On Linux, the engine follows the window manager into and out of fullscreen. Make the window fullscreen from the window manager -- SUPER+F in Hyprland -- and the canvas grows to fill the screen, and shrinks back when you leave. With the SDL 1.2 that distributions now ship (`sdl12-compat`), `isFullScreen()` reports it as well, and `$pref::Video::fullScreen` is honoured at start-up as it already was on Windows and macOS. A build against genuine SDL 1.2 follows the new size but goes on reporting a window, because that SDL's own fullscreen covers the screen with a window the window manager never sees. + ### Fixed +- On Linux, the window no longer appears at 800x600 and resizes itself a moment later. It is created at the size the game is about to ask for; the old placeholder came from `$pref::Video::resolution`, which nothing sets before the canvas exists. The first size mattered more than it looked: a tiling window manager remembers it, and it was the size Hyprland floated the window at. +- On Linux, `getDesktopResolution()` could report the desktop's width and height the wrong way round. + - `fileDelete()` and `directoryDelete()` now tell the resource manager what they removed, so `isFile()` stops reporting a file that has been deleted. `isFile()` and `getFileCRC()` answer out of the manager's dictionary rather than off the filesystem -- deliberately, because a file inside a mounted zip has no standalone path to check -- and nothing maintained that dictionary on delete, so for the rest of the session a deleted file went on existing as far as script could tell. A fresh process reported correctly, which is what made it easy to miss. A file whose resource is still loaded is left in place, the same rule `removePath()` follows. `fileSize()` was never affected and remains a straight filesystem check. - `getFileCRC()` no longer crashes when the file behind it has gone. It opened whatever the resource manager handed it and read from the result without checking, so any entry that outlived its file -- a delete that went around the engine, a removable volume, a file taken away by another process -- ended the process with an access violation instead of returning -1. - `populateFontCacheRange()` and `populateAllFontCacheRange()` stop one code point short of `rangeEnd`, and their documentation said the opposite -- it called `rangeEnd` "the final Unicode point in range". A bake asking for printable Latin-1 as `32, 255` therefore never generated 0xFF; it wants `32, 256`. The documentation now states that the range is half-open, and the Gui Profile Editor's own font bake, which had the bug, asks for 256. diff --git a/PlanetX/AppCore/1/scripts/canvas.cs b/PlanetX/AppCore/1/scripts/canvas.cs index acf2ed1a7..73ce0470f 100644 --- a/PlanetX/AppCore/1/scripts/canvas.cs +++ b/PlanetX/AppCore/1/scripts/canvas.cs @@ -53,7 +53,8 @@ %resolution = $pref::Video::defaultResolution; } - if ($platform $= "windows" || $platform $= "macos") + // $platformUnixType, not $platform: the web build calls itself x86UNIX too. + if ($platform $= "windows" || $platform $= "macos" || $platformUnixType $= "Linux") { setScreenMode( %resolution._0, %resolution._1, %resolution._2, $pref::Video::fullScreen ); } diff --git a/editor/EditorCore/scripts/canvas.cs b/editor/EditorCore/scripts/canvas.cs index 59db6d6ac..627b32498 100644 --- a/editor/EditorCore/scripts/canvas.cs +++ b/editor/EditorCore/scripts/canvas.cs @@ -53,7 +53,8 @@ %resolution = $pref::Video::defaultResolution; } - if ($platform $= "windows" || $platform $= "macos") + // $platformUnixType, not $platform: the web build calls itself x86UNIX too. + if ($platform $= "windows" || $platform $= "macos" || $platformUnixType $= "Linux") { setScreenMode( %resolution._0, %resolution._1, %resolution._2, $pref::Video::fullScreen ); } diff --git a/editor/EditorCore/scripts/defaultPreferences.cs b/editor/EditorCore/scripts/defaultPreferences.cs index b8dbc10a5..6ea17f682 100644 --- a/editor/EditorCore/scripts/defaultPreferences.cs +++ b/editor/EditorCore/scripts/defaultPreferences.cs @@ -52,7 +52,10 @@ $pref::Video::preferOpenGL = 1; $pref::Video::fullScreen = 0; $pref::Video::defaultResolution = "1024 768"; -$pref::Video::windowedRes = "1024 768 32"; +/// Empty: no preferred window size, so a tiling window manager is free to tile +/// the window. A size here is one wanted exactly; a tiling window manager then +/// opens the window floating at that size. +$pref::Video::windowedRes = ""; $pref::OpenGL::gammaCorrection = 0.5; /// Fonts. diff --git a/engine/source/platformOSX/osxWindow.mm b/engine/source/platformOSX/osxWindow.mm index 66fad0069..a16744060 100755 --- a/engine/source/platformOSX/osxWindow.mm +++ b/engine/source/platformOSX/osxWindow.mm @@ -43,6 +43,11 @@ static void osxGetInitialResolution(U32 &width, U32 &height, U32 &bpp, bool &ful resString = Con::getVariable("$pref::Video::resolution"); else resString = Con::getVariable("$pref::Video::windowedRes"); + + // An empty windowedRes means the game has no preferred window size, and + // canvas.cs falls back to defaultResolution; so does this. + if (!fullScreen && resString[0] == '\0') + resString = Con::getVariable("$pref::Video::defaultResolution"); // dStrtok is destructive, work on a copy... tempBuf = new char[dStrlen(resString) + 1]; diff --git a/engine/source/platformWin32/winWindow.cc b/engine/source/platformWin32/winWindow.cc index dd323a3a9..aa9a99f39 100644 --- a/engine/source/platformWin32/winWindow.cc +++ b/engine/source/platformWin32/winWindow.cc @@ -1430,6 +1430,12 @@ static void InitOpenGL() const char* resString = Con::getVariable( ( fullScreen ? "$pref::Video::resolution" : "$pref::Video::windowedRes" ) ); + // An empty windowedRes means the game has no preferred window size, and + // canvas.cs falls back to defaultResolution; create the window there too, + // rather than at the minimum size and resize it a moment later. + if ( !fullScreen && resString[0] == '\0' ) + resString = Con::getVariable( "$pref::Video::defaultResolution" ); + // Get the video settings from the prefs: char* tempBuf = new char[dStrlen( resString ) + 1]; dStrcpy( tempBuf, resString ); diff --git a/engine/source/platformX86UNIX/x86UNIXOGLVideo.cc b/engine/source/platformX86UNIX/x86UNIXOGLVideo.cc index db3a55652..19c1eab41 100755 --- a/engine/source/platformX86UNIX/x86UNIXOGLVideo.cc +++ b/engine/source/platformX86UNIX/x86UNIXOGLVideo.cc @@ -41,8 +41,21 @@ bool InitOpenGL() { DisplayDevice::init(); - // Get the video settings from the prefs: - const char* resString = Con::getVariable( "$pref::Video::resolution" ); + // Create the window at the size the game is about to ask for -- the choice + // canvas.cs makes: $pref::Video::windowedRes, or defaultResolution when + // that is empty. This used to read $pref::Video::resolution, which nothing + // sets before the canvas exists, so the window first appeared at an 800x600 + // placeholder and was resized a moment later. The first map is the one a + // tiling window manager remembers: that placeholder was the size Hyprland + // floated the window at. + // + // An empty windowedRes is also how a game says it has no preference, which + // leaves a tiling window manager free to tile the window. A windowedRes is + // a size the game wants exactly; see OpenGLDevice::setScreenMode. + const char* resString = Con::getVariable( "$pref::Video::windowedRes" ); + OpenGLDevice::smCreateAtExactSize = ( resString[0] != '\0' ); + if ( !OpenGLDevice::smCreateAtExactSize ) + resString = Con::getVariable( "$pref::Video::defaultResolution" ); char* tempBuf = new char[dStrlen( resString ) + 1]; dStrcpy( tempBuf, resString ); char* temp = dStrtok( tempBuf, " x\0" ); @@ -75,6 +88,9 @@ bool InitOpenGL() //------------------------------------------------------------------------------ bool OpenGLDevice::smCanSwitchBitDepth = false; +bool OpenGLDevice::smCreateAtExactSize = false; +bool OpenGLDevice::smHoldingExactSize = false; +U32 OpenGLDevice::smExactSizeHeldSince = 0; //------------------------------------------------------------------------------ OpenGLDevice::OpenGLDevice() @@ -301,8 +317,10 @@ bool OpenGLDevice::setScreenMode( U32 width, U32 height, U32 bpp, // The resolution list only constrains fullscreen modes. A windowed surface // can be any size (e.g. an arbitrary window-manager drag resize), so don't - // reject windowed sizes that aren't in the list. - if ( !IsInList && fullScreen ) + // reject windowed sizes that aren't in the list. Nor a fullscreen one with + // forceIt: that is the window manager having made the window fullscreen + // at a size of its choosing, which we are only matching. + if ( !IsInList && fullScreen && !forceIt ) { Con::printf( "Selected resolution not available: %d %d %d", width, height, bpp); @@ -338,21 +356,51 @@ bool OpenGLDevice::setScreenMode( U32 width, U32 height, U32 bpp, // SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 6); // SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 5); + // A window the game wants at an exact size is created fixed-size: SDL sets + // its minimum and maximum size hints to that size before the window is + // first mapped, which is what makes a tiling window manager (Hyprland, i3, + // sway) float it at that size instead of tiling it; a stacking window + // manager just sees a window open at the size it asked for. It is held + // fixed-size -- through the canvas's own setScreenMode a moment later -- + // until x86UNIXWindow.cc lets go of it, so the player can then resize it. + // Letting go straight away loses the race: the window manager decides a + // moment after the window maps, and by then the hints would be gone. Only + // ever at creation: a window already mapped and tiled cannot be floated. + const bool creatingExact = !fullScreen && smCreateAtExactSize && + !x86UNIXState->windowCreated(); + if ( creatingExact ) + { + smHoldingExactSize = true; + smExactSizeHeldSince = Platform::getRealMilliseconds(); + } + U32 flags = SDL_OPENGL; if (fullScreen) flags |= SDL_FULLSCREEN; - else - // Let the window manager resize the window; without this SDL fixes the - // window size and never emits SDL_VIDEORESIZE, so the canvas could not - // follow a resize. The resize handler in x86UNIXWindow.cc picks up the - // new size from the event. + else if (!smHoldingExactSize) + // Let the window manager resize the window; without this SDL sets + // minimum and maximum size hints that pin it at this size. Its resizes + // arrive as SDL_VIDEORESIZE and are followed in x86UNIXWindow.cc. flags |= SDL_RESIZABLE; + // Centre the window we are creating at an exact size. Genuine SDL 1.2 + // otherwise leaves it where the X server put it, the top-left corner, which + // is where a tiling window manager floats it -- under its bar. SDL 1.2 + // reads this on every mode change, so it is set for creation only, and + // never over a value of the user's own. (sdl12-compat reads its environment + // once, at SDL_Init, and needs no help: SDL3 centres a window by default.) + const bool centre = creatingExact && getenv( "SDL_VIDEO_CENTERED" ) == NULL; + if ( centre ) + setenv( "SDL_VIDEO_CENTERED", "1", 1 ); + Con::printf( "Setting screen mode to %dx%dx%d (%s)...", width, height, - bpp, ( fullScreen ? "fs" : "w" ) ); + bpp, ( fullScreen ? "fs" : ( smHoldingExactSize ? "w, exact" : "w" ) ) ); // set the new video mode - if (SDL_SetVideoMode(width, height, bpp, flags) == NULL) + SDL_Surface* surface = SDL_SetVideoMode(width, height, bpp, flags); + if ( centre ) + unsetenv( "SDL_VIDEO_CENTERED" ); + if (surface == NULL) { Con::printf("Unable to set SDL Video Mode: %s", SDL_GetError()); return false; @@ -385,6 +433,11 @@ bool OpenGLDevice::setScreenMode( U32 width, U32 height, U32 bpp, return false; } x86UNIXState->setWindow(sysinfo.info.x11.window); + // The toplevel, which under genuine SDL 1.2 is not the window above (see + // x86UNIXPlatformState::setWMWindow). + x86UNIXState->setWMWindow(sysinfo.info.x11.wmwindow ? + sysinfo.info.x11.wmwindow : sysinfo.info.x11.window); + WatchWMWindow(x86UNIXState->getWMWindow()); // set various other parameters x86UNIXState->setWindowCreated(true); diff --git a/engine/source/platformX86UNIX/x86UNIXOGLVideo.h b/engine/source/platformX86UNIX/x86UNIXOGLVideo.h index 485e913cc..9708b81bc 100755 --- a/engine/source/platformX86UNIX/x86UNIXOGLVideo.h +++ b/engine/source/platformX86UNIX/x86UNIXOGLVideo.h @@ -39,6 +39,14 @@ class OpenGLDevice : public DisplayDevice void addResolution(S32 width, S32 height, bool check=true); public: + // Set by InitOpenGL: the window is to be created at exactly the size + // asked for, so a tiling window manager floats it instead of tiling it. + static bool smCreateAtExactSize; + // While set, the window is being held at that size (see setScreenMode); + // x86UNIXWindow.cc lets go of it once the window manager has decided. + static bool smHoldingExactSize; + static U32 smExactSizeHeldSince; + OpenGLDevice(); virtual ~OpenGLDevice(); diff --git a/engine/source/platformX86UNIX/x86UNIXState.h b/engine/source/platformX86UNIX/x86UNIXState.h index 6b2efa71a..01e8cb07e 100755 --- a/engine/source/platformX86UNIX/x86UNIXState.h +++ b/engine/source/platformX86UNIX/x86UNIXState.h @@ -48,6 +48,7 @@ class x86UNIXPlatformState S32 mDesktopBpp; Display *mDisplay; Window mCurrentWindow; + Window mWMWindow; Screen *mScreenPointer; int mScreenNumber; char mWindowName[40]; @@ -96,6 +97,14 @@ class x86UNIXPlatformState void setWindow( Window newWindow ) { mCurrentWindow = newWindow; } Window getWindow() { return mCurrentWindow; } + // The window the window manager manages, which is not always the one we + // draw into: genuine SDL 1.2 draws into a child of it (SDL_SysWMinfo's + // window) and hands the toplevel over as wmwindow; sdl12-compat has only + // the one window and reports it as both. Size hints, _NET_WM_STATE and + // the window manager's resizes all belong to this one. + void setWMWindow( Window newWindow ) { mWMWindow = newWindow; } + Window getWMWindow() { return mWMWindow; } + void setWindowSize (S32 horizontal, S32 vertical ) { mWindowSize.set ( horizontal, vertical ); } void setWindowSize( Point2I size ) { mWindowSize = size; } @@ -156,11 +165,16 @@ class x86UNIXPlatformState mXWindowsRunning = false; mDedicated = false; mDSleep = false; + mCurrentWindow = mWMWindow = 0; } }; extern x86UNIXPlatformState * x86UNIXState; +// Follow what the window manager does to wmWindow -- its resizes and its +// _NET_WM_STATE -- on a connection of our own (x86UNIXWindow.cc). +void WatchWMWindow( Window wmWindow ); + class DisplayPtrManager { // static interface diff --git a/engine/source/platformX86UNIX/x86UNIXWindow.cc b/engine/source/platformX86UNIX/x86UNIXWindow.cc index 9b2d733d1..967c33c61 100755 --- a/engine/source/platformX86UNIX/x86UNIXWindow.cc +++ b/engine/source/platformX86UNIX/x86UNIXWindow.cc @@ -53,6 +53,8 @@ #include #include #include +#include +#include #endif x86UNIXPlatformState *x86UNIXState; @@ -203,6 +205,135 @@ static bool InitSDL() return true; } +//------------------------------------------------------------------------------ +// Debounced window-geometry state (see ProcessMessages). File scope because a +// change can be reported by SDL or by the window watcher below, and both are +// settled the same way. +static bool sGeometryPending = false; +static U32 sGeometryChangedMs = 0; +static const U32 GeometrySettleMs = 150; + +static void NoteGeometryChanged() +{ + sGeometryPending = true; + sGeometryChangedMs = Platform::getRealMilliseconds(); +} + +//------------------------------------------------------------------------------ +// The window watcher: a connection of our own to the X server, selecting +// structure and property events on the window the window manager manages. +// Neither SDL 1.2 reports what the window manager does to the window: genuine +// SDL 1.2 passes on its resizes but not its _NET_WM_STATE, and sdl12-compat +// passes on no X events at all -- and while the window manager has the window +// fullscreen (SUPER+F in Hyprland), not even its resizes, which SDL3 sees but +// drops on the way up to the SDL 1.2 API. Any client may select events on any +// window, so a second connection sees all of it without disturbing SDL's. +static Display* sWatchDisplay = NULL; +static Window sWatchedWindow = 0; +static Atom sNetWMState = None; +static Atom sNetWMStateFullScreen = None; + +void WatchWMWindow(Window wmWindow) +{ + if (sWatchDisplay == NULL) + { + sWatchDisplay = XOpenDisplay(NULL); + if (sWatchDisplay == NULL) + return; + sNetWMState = XInternAtom(sWatchDisplay, "_NET_WM_STATE", False); + sNetWMStateFullScreen = + XInternAtom(sWatchDisplay, "_NET_WM_STATE_FULLSCREEN", False); + } + if (wmWindow == sWatchedWindow) + return; + sWatchedWindow = wmWindow; + XSelectInput(sWatchDisplay, wmWindow, StructureNotifyMask | PropertyChangeMask); + XFlush(sWatchDisplay); +} + +static void ProcessWatcherEvents() +{ + if (sWatchDisplay == NULL) + return; + while (XPending(sWatchDisplay)) + { + XEvent event; + XNextEvent(sWatchDisplay, &event); + if (event.xany.window != sWatchedWindow) + continue; + if (event.type == ConfigureNotify || + (event.type == PropertyNotify && event.xproperty.atom == sNetWMState)) + NoteGeometryChanged(); + } +} + +//------------------------------------------------------------------------------ +// The managed window's real size, and whether the window manager has it +// fullscreen (_NET_WM_STATE_FULLSCREEN). +static bool GetWindowGeometry(Point2I& size, bool& fullScreen) +{ + XWindowAttributes attributes; + if (sWatchDisplay == NULL || sWatchedWindow == 0 || + !XGetWindowAttributes(sWatchDisplay, sWatchedWindow, &attributes)) + return false; + size.set(attributes.width, attributes.height); + + fullScreen = false; + Atom type; + int format; + unsigned long count, remaining; + unsigned char* data = NULL; + if (XGetWindowProperty(sWatchDisplay, sWatchedWindow, sNetWMState, 0, 64, + False, XA_ATOM, &type, &format, &count, &remaining, &data) == Success && + data != NULL) + { + Atom* atoms = (Atom*) data; + for (unsigned long i = 0; i < count; ++i) + if (atoms[i] == sNetWMStateFullScreen) + fullScreen = true; + XFree(data); + } + return true; +} + +//------------------------------------------------------------------------------ +// Let go of a window created at an exact size (OpenGLDevice::setScreenMode) +// once the window manager has had time to float it. It decides a moment after +// the window maps, not at the map itself, and a window whose hints are gone by +// then is tiled; holding them 100 ms was already enough on Hyprland. Straight +// to the X server rather than through SDL_SetVideoMode, which would rebuild the +// surface and reload every texture to change nothing else; both SDL 1.2s go on +// reporting the window's resizes either way. +static const U32 ExactSizeHoldMs = 500; + +static void ReleaseExactSize() +{ + if (!OpenGLDevice::smHoldingExactSize || + Platform::getRealMilliseconds() - OpenGLDevice::smExactSizeHeldSince < ExactSizeHoldMs) + return; + OpenGLDevice::smHoldingExactSize = false; + if (sWatchDisplay == NULL || sWatchedWindow == 0) + return; + XSizeHints hints; + long supplied; + if (!XGetWMNormalHints(sWatchDisplay, sWatchedWindow, &hints, &supplied)) + hints.flags = 0; + hints.flags &= ~(PMinSize | PMaxSize); + XSetWMNormalHints(sWatchDisplay, sWatchedWindow, &hints); + XFlush(sWatchDisplay); +} + +//------------------------------------------------------------------------------ +// sdl12-compat -- SDL 1.2 implemented on SDL2/SDL3, which distributions now ship +// as SDL 1.2 -- reports itself as 1.2.50 or later; genuine SDL 1.2 ended at +// 1.2.15. They go fullscreen differently: sdl12-compat asks the window manager +// (_NET_WM_STATE_FULLSCREEN), while genuine SDL 1.2 covers the screen with an +// override-redirect window of its own that the window manager never sees. +static bool SDLIsCompat() +{ + return SDL_Linked_Version()->patch >= 50; +} + //------------------------------------------------------------------------------ static void ProcessSYSWMEvent(const SDL_Event& event) { @@ -307,18 +438,14 @@ static bool ProcessMessages() SDL_EVENTMASK(SDL_USEREVENT); static SDL_Event events[MaxEvents]; - // Debounced window-resize state. Under SDL 1.2 the only way to resize the GL + // Window geometry is debounced. Under SDL 1.2 the only way to resize the GL // surface is SDL_SetVideoMode, which recreates the GL context and forces a // full texture reload -- unlike the Win32 back-end, where the GL drawable // follows the window for free (WM_SIZE just calls Platform::setWindowSize). // Rebuilding on every SDL_VIDEORESIZE during a live drag is painfully laggy, - // so we remember the latest requested size and rebuild the surface only once - // the user stops resizing for ResizeSettleMs (one texture reload per resize - // gesture instead of one per frame). - static bool sResizePending = false; - static S32 sResizeW = 0, sResizeH = 0; - static U32 sLastResizeMs = 0; - static const U32 ResizeSettleMs = 150; + // so the surface is rebuilt only once the user stops resizing for + // GeometrySettleMs (one texture reload per resize gesture instead of one per + // frame). The state lives at file scope, beside NoteGeometryChanged. SDL_PumpEvents(); S32 numEvents = SDL_PeepEvents(events, MaxEvents, SDL_GETEVENT, Mask); @@ -332,15 +459,9 @@ static bool ProcessMessages() return false; break; case SDL_VIDEORESIZE: - // Record the requested size; the surface is rebuilt once the drag - // settles (see below). - if (event.resize.w > 0 && event.resize.h > 0) - { - sResizePending = true; - sResizeW = event.resize.w; - sResizeH = event.resize.h; - sLastResizeMs = Platform::getRealMilliseconds(); - } + // The surface is rebuilt once the drag settles (see below), at + // the size the X server reports then. + NoteGeometryChanged(); break; case SDL_VIDEOEXPOSE: Game->refreshWindow(); @@ -368,19 +489,53 @@ static bool ProcessMessages() } } - // Once the drag has settled, rebuild the GL surface at the final size. This - // runs every frame (not gated on events) so it still fires after the resize + ProcessWatcherEvents(); + ReleaseExactSize(); + + // Once things have settled, bring the surface into line with the window. + // This runs every frame (not gated on events) so it still fires after the // events stop. setScreenMode also updates Platform::getWindowSize(), which // drives the canvas extent (GuiCanvas::maintainSizing) and GL viewport - // (dglSetClipRect). Windowed sizes bypass the resolution-list check in - // OpenGLDevice::setScreenMode. - if (sResizePending && - (Platform::getRealMilliseconds() - sLastResizeMs) >= ResizeSettleMs) - { - sResizePending = false; - Point2I cur = Platform::getWindowSize(); - if (sResizeW != cur.x || sResizeH != cur.y) - Video::setScreenMode(sResizeW, sResizeH, Video::getResolution().bpp, false); + // (dglSetClipRect). + if (sGeometryPending && + (Platform::getRealMilliseconds() - sGeometryChangedMs) >= GeometrySettleMs) + { + sGeometryPending = false; + Point2I size; + bool wmFullScreen; + if (GetWindowGeometry(size, wmFullScreen)) + { + const U32 bpp = Video::getResolution().bpp; + if (SDLIsCompat() && wmFullScreen != Video::isFullScreen()) + { + if (wmFullScreen) + { + // The window manager made the window fullscreen (SUPER+F). Go + // fullscreen with it: sdl12-compat takes a windowed + // SDL_SetVideoMode now as a request to leave again. forceIt: + // this is the size the window manager chose, not a mode to + // check against the resolution list. + DisplayDevice* device = Video::getDevice("OpenGL"); + if (device) + device->setScreenMode(size.x, size.y, bpp, true, true); + } + else + { + // ...and has taken it out of fullscreen again. + Video::setScreenMode(size.x, size.y, bpp, false); + } + } + else if (!Video::isFullScreen() && size != Platform::getWindowSize()) + { + // Resized as a window -- a drag, or a tiling window manager laying + // it out. Under genuine SDL 1.2 this is also how a window the + // window manager makes fullscreen is followed, since SDL_FULLSCREEN + // there would put up an override-redirect window of its own. A + // window the game made fullscreen keeps the size the game gave it: + // it may have asked for 1024x768, which SDL scales to fill. + Video::setScreenMode(size.x, size.y, bpp, false); + } + } Game->refreshWindow(); } @@ -945,8 +1100,8 @@ void Platform::setWindowTitle( const char* title ) Resolution Video::getDesktopResolution() { Resolution Result; - Result.h = x86UNIXState->getDesktopSize().x; - Result.w = x86UNIXState->getDesktopSize().y; + Result.w = x86UNIXState->getDesktopSize().x; + Result.h = x86UNIXState->getDesktopSize().y; Result.bpp = x86UNIXState->getDesktopBpp(); return Result; diff --git a/library/AppCore/scripts/canvas.cs b/library/AppCore/scripts/canvas.cs index acf2ed1a7..73ce0470f 100644 --- a/library/AppCore/scripts/canvas.cs +++ b/library/AppCore/scripts/canvas.cs @@ -53,7 +53,8 @@ %resolution = $pref::Video::defaultResolution; } - if ($platform $= "windows" || $platform $= "macos") + // $platformUnixType, not $platform: the web build calls itself x86UNIX too. + if ($platform $= "windows" || $platform $= "macos" || $platformUnixType $= "Linux") { setScreenMode( %resolution._0, %resolution._1, %resolution._2, $pref::Video::fullScreen ); } diff --git a/toybox/AppCore/1/scripts/canvas.cs b/toybox/AppCore/1/scripts/canvas.cs index 40544d71a..819a2a4b5 100644 --- a/toybox/AppCore/1/scripts/canvas.cs +++ b/toybox/AppCore/1/scripts/canvas.cs @@ -53,7 +53,8 @@ function initializeCanvas(%windowName) %resolution = $pref::Video::defaultResolution; } - if ($platform $= "windows" || $platform $= "macos") + // $platformUnixType, not $platform: the web build calls itself x86UNIX too. + if ($platform $= "windows" || $platform $= "macos" || $platformUnixType $= "Linux") { setScreenMode( %resolution._0, %resolution._1, %resolution._2, $pref::Video::fullScreen ); } From 09a71466c2a40080f807b06f6bf15e9e2f792b4f Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Sat, 12 Sep 2026 14:48:25 -0400 Subject: [PATCH 2/9] Linux left SDL 1.2 for the SDL 2 Torque3D already builds The Linux back-end was written against SDL 1.2, which now comes in two implementations that disagree about exactly what a window manager cares about. Genuine 1.2.15 draws into a child of its toplevel and goes fullscreen with an override-redirect window of its own; the sdl12-compat shim that distributions ship as SDL 1.2 passes on none of the window manager's events, and not even its resizes while it holds the window fullscreen. This week's tiling work needed a second X connection just to see what Hyprland had done to the window. It now runs on SDL 2.32.10, vendored in engine/lib/sdl from Torque3D's tree (without SDL's 51 MB of tests) and built as a static library, so the engine still ships as one executable. It is the same version Emscripten's port gives the Web build, which moves to SDL 2 next. - One window and one GL context for the life of the process. Resizes, tiling and fullscreen go through SDL_SetWindowSize and desktop SDL_SetWindowFullscreen around the context already there, so the 150 ms settle delay and the texture reload on every mode change are gone, with the second X connection and the check for which SDL 1.2 was linked. - The exact-size rule stays. A window with an explicit windowedRes is created fixed-size and made resizable after 500 ms; the phase-0 prototype showed Hyprland needs the hold (released at 0 ms, the window tiled three runs in three). - SDL 2 never flags a fullscreen the window manager imposes, only the resize, so _NET_WM_STATE is read through SDL's own X display to keep isFullScreen() and $pref::Video::fullScreen true. toggleFullScreen() no longer demands that a fullscreen size be in the resolution list, which refused whatever size a drag or a tiling layout had left. - One SDL_PollEvent loop a frame; keyboard, text and mouse events go to UInputManager::processEvent. - engine/source/platformSDL, shared with the Web back-end: Torque3D's scancode key table, sized to SDL's scancode range (Torque3D's 256 entries let media keys read past the end); modifiers reported per side (Torque3D reports a left Shift as both); key names and bind-by-character through the current layout, Torque3D's a78235dd fix without its detour through key names; the SDL_TEXTINPUT bridge, posting each UTF-16 unit as a character-only KEY_NULL event and decoding the UTF-8 properly (Torque3D copies the bytes into 16-bit slots), with text input switched at the end of the frame as Torque3D switches it; SDL's clipboard (freed, where Torque3D leaks it); and Torque3D's message box, whose Retry button returned OK. - The mouse wheel is SDL_MOUSEWHEEL, because SDL 2 gives buttons 4 and 5 to the side buttons. - x86UNIXMessageBox, the Xlib clipboard and the Xlib keymap reader are deleted. CI and the build scripts install SDL's X11 build headers instead of libsdl1.2-dev; libxext-dev is the one SDL insists on. Tested: 348 unit tests pass, 16 of them new (the key table, modifiers, and UTF-8 decoding including surrogate pairs and malformed bytes). On Hyprland the editor tiles with its own preferences, floats centred at an explicit 1024x768 and stays resizable, and follows SUPER+F in and out, SUPER+T, and a fullscreen start. Typing, the clipboard and alert dialogs were not driven on the desktop. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_019qUbGQ6PD6Mqtvnxn67CLp --- .github/workflows/PR-builds.yml | 16 +- CHANGELOG.md | 9 +- CMakeLists.txt | 39 +- build-linux.sh | 7 +- cmake/BUILD-PLATFORM-NOTES.md | 48 +- cmake/EngineSources.cmake | 2 + cmake/PlatformSources.cmake | 7 +- engine/lib/CMakeLists.txt | 16 + engine/lib/sdl/.clang-format | 90 + engine/lib/sdl/.editorconfig | 79 + engine/lib/sdl/.gitignore | 190 + engine/lib/sdl/.wikiheaders-options | 31 + engine/lib/sdl/Android.mk | 131 + engine/lib/sdl/BUGS.txt | 16 + engine/lib/sdl/CMakeLists.txt | 3781 ++ engine/lib/sdl/CREDITS.txt | 53 + engine/lib/sdl/INSTALL.txt | 41 + engine/lib/sdl/LICENSE.txt | 18 + engine/lib/sdl/Makefile.in | 263 + engine/lib/sdl/Makefile.minimal | 61 + engine/lib/sdl/Makefile.os2 | 298 + engine/lib/sdl/Makefile.pandora | 64 + engine/lib/sdl/Makefile.w32 | 283 + engine/lib/sdl/README-SDL.txt | 13 + engine/lib/sdl/README-TORQUE2D.md | 14 + engine/lib/sdl/README.md | 17 + engine/lib/sdl/SDL2.spec.in | 119 + engine/lib/sdl/SDL2Config.cmake.in | 77 + engine/lib/sdl/TODO.txt | 10 + engine/lib/sdl/VisualC-GDK/clean.sh | 7 + .../lib/sdl/VisualC-GDK/logos/Logo100x100.png | Bin 0 -> 10832 bytes .../lib/sdl/VisualC-GDK/logos/Logo150x150.png | Bin 0 -> 12709 bytes .../lib/sdl/VisualC-GDK/logos/Logo44x44.png | Bin 0 -> 7460 bytes .../lib/sdl/VisualC-GDK/logos/Logo480x480.png | Bin 0 -> 28677 bytes .../VisualC-GDK/logos/SplashScreenImage.png | Bin 0 -> 6599 bytes .../shaders/D3D12_PixelShader_Colors.hlsl | 19 + .../shaders/D3D12_PixelShader_NV12_BT601.hlsl | 43 + .../shaders/D3D12_PixelShader_NV12_BT709.hlsl | 43 + .../shaders/D3D12_PixelShader_NV12_JPEG.hlsl | 43 + .../shaders/D3D12_PixelShader_NV21_BT601.hlsl | 43 + .../shaders/D3D12_PixelShader_NV21_BT709.hlsl | 43 + .../shaders/D3D12_PixelShader_NV21_JPEG.hlsl | 43 + .../shaders/D3D12_PixelShader_Textures.hlsl | 24 + .../shaders/D3D12_PixelShader_YUV_BT601.hlsl | 46 + .../shaders/D3D12_PixelShader_YUV_BT709.hlsl | 46 + .../shaders/D3D12_PixelShader_YUV_JPEG.hlsl | 46 + .../shaders/D3D12_VertexShader.hlsl | 95 + .../sdl/VisualC-GDK/shaders/buildshaders.bat | 35 + .../testgamecontroller/PackageLayout.xml | 9 + .../wingdk/MicrosoftGame.config | 34 + .../xboxone/MicrosoftGame.config | 29 + .../xboxseries/MicrosoftGame.config | 29 + .../tests/testgdk/PackageLayout.xml | 10 + .../VisualC-GDK/tests/testgdk/src/testgdk.cpp | 503 + .../tests/testgdk/wingdk/MicrosoftGame.config | 34 + .../testgdk/xboxone/MicrosoftGame.config | 29 + .../testgdk/xboxseries/MicrosoftGame.config | 29 + .../tests/testsprite2/PackageLayout.xml | 9 + .../testsprite2/wingdk/MicrosoftGame.config | 34 + .../testsprite2/xboxone/MicrosoftGame.config | 29 + .../xboxseries/MicrosoftGame.config | 29 + engine/lib/sdl/VisualC/clean.sh | 4 + engine/lib/sdl/WhatsNew.txt | 889 + engine/lib/sdl/Xcode-iOS/Demos/Default.png | Bin 0 -> 18383 bytes .../Demos/Demos.xcodeproj/project.pbxproj | 1065 + engine/lib/sdl/Xcode-iOS/Demos/Icon.png | Bin 0 -> 2409 bytes engine/lib/sdl/Xcode-iOS/Demos/README | 43 + .../lib/sdl/Xcode-iOS/Demos/config.xcconfig | 14 + .../Demos/data/bitmapfont/kromasky_16x16.bmp | Bin 0 -> 45368 bytes .../Demos/data/bitmapfont/license.txt | 258 + .../Demos/data/drums/ds_brush_snare.wav | Bin 0 -> 194604 bytes .../Xcode-iOS/Demos/data/drums/ds_china.wav | Bin 0 -> 984604 bytes .../Demos/data/drums/ds_kick_big_amb.wav | Bin 0 -> 307080 bytes .../Demos/data/drums/ds_loose_skin_mute.wav | Bin 0 -> 127052 bytes engine/lib/sdl/Xcode-iOS/Demos/data/icon.bmp | Bin 0 -> 578 bytes engine/lib/sdl/Xcode-iOS/Demos/data/ship.bmp | Bin 0 -> 12344 bytes engine/lib/sdl/Xcode-iOS/Demos/data/space.bmp | Bin 0 -> 460856 bytes .../lib/sdl/Xcode-iOS/Demos/data/stroke.bmp | Bin 0 -> 3128 bytes .../Demos/iOS Launch Screen.storyboard | 40 + .../sdl/Xcode-iOS/Demos/src/accelerometer.c | 226 + engine/lib/sdl/Xcode-iOS/Demos/src/common.c | 56 + engine/lib/sdl/Xcode-iOS/Demos/src/common.h | 10 + .../lib/sdl/Xcode-iOS/Demos/src/fireworks.c | 491 + engine/lib/sdl/Xcode-iOS/Demos/src/happy.c | 180 + engine/lib/sdl/Xcode-iOS/Demos/src/keyboard.c | 301 + engine/lib/sdl/Xcode-iOS/Demos/src/mixer.c | 344 + .../lib/sdl/Xcode-iOS/Demos/src/rectangles.c | 92 + engine/lib/sdl/Xcode-iOS/Demos/src/touch.c | 139 + engine/lib/sdl/Xcode/SDL/Info-Framework.plist | 28 + .../Xcode/SDL/SDL.xcodeproj/project.pbxproj | 10261 +++++ .../xcschemes/Framework-iOS.xcscheme | 67 + .../xcschemes/xcFramework-iOS.xcscheme | 67 + engine/lib/sdl/Xcode/SDL/SDL2/Info.plist | 22 + engine/lib/sdl/Xcode/SDL/pkg-support/SDL.info | 15 + .../SDL/pkg-support/resources/License.txt | 19 + .../SDL/pkg-support/resources/ReadMe.txt | 44 + .../SDL/pkg-support/resources/SDL_DS_Store | Bin 0 -> 15364 bytes .../sdl/Xcode/SDL/pkg-support/sdl_logo.pdf | Bin 0 -> 163800 bytes .../SDLTest/SDLTest.xcodeproj/project.pbxproj | 5169 +++ .../sdl/Xcode/SDLTest/TestDropFile-Info.plist | 35 + engine/lib/sdl/Xcode/SDLTest/config.xcconfig | 14 + engine/lib/sdl/Xcode/XcodeDocSet/Doxyfile | 1558 + engine/lib/sdl/acinclude/ac_check_define.m4 | 14 + engine/lib/sdl/acinclude/alsa.m4 | 144 + .../sdl/acinclude/ax_check_compiler_flags.m4 | 76 + .../acinclude/ax_compute_relative_paths.m4 | 173 + engine/lib/sdl/acinclude/ax_gcc_archflag.m4 | 215 + engine/lib/sdl/acinclude/ax_gcc_x86_cpuid.m4 | 79 + engine/lib/sdl/acinclude/ax_normalize_path.m4 | 115 + engine/lib/sdl/acinclude/ax_recursive_eval.m4 | 56 + engine/lib/sdl/acinclude/esd.m4 | 173 + engine/lib/sdl/acinclude/libtool.m4 | 8399 ++++ engine/lib/sdl/acinclude/ltoptions.m4 | 437 + engine/lib/sdl/acinclude/ltsugar.m4 | 124 + engine/lib/sdl/acinclude/ltversion.m4 | 23 + engine/lib/sdl/acinclude/lt~obsolete.m4 | 99 + engine/lib/sdl/acinclude/pkg.m4 | 275 + .../android-project-ant/AndroidManifest.xml | 1 + .../sdl/android-project-ant/ant.properties | 17 + .../sdl/android-project-ant/build.properties | 17 + engine/lib/sdl/android-project-ant/build.xml | 93 + .../android-project-ant/default.properties | 11 + .../sdl/android-project-ant/jni/Android.mk | 1 + .../android-project-ant/jni/Application.mk | 10 + .../android-project-ant/jni/src/Android.mk | 18 + .../jni/src/Android_static.mk | 12 + .../android-project-ant/proguard-project.txt | 20 + .../android-project-ant/project.properties | 14 + .../res/drawable-hdpi/ic_launcher.png | Bin 0 -> 2683 bytes .../res/drawable-mdpi/ic_launcher.png | Bin 0 -> 1698 bytes .../res/drawable-xhdpi/ic_launcher.png | Bin 0 -> 3872 bytes .../res/drawable-xxhdpi/ic_launcher.png | Bin 0 -> 6874 bytes .../android-project-ant/res/layout/main.xml | 13 + .../res/values/strings.xml | 4 + engine/lib/sdl/android-project-ant/src | 1 + .../lib/sdl/android-project/app/build.gradle | 75 + .../sdl/android-project/app/jni/Android.mk | 1 + .../android-project/app/jni/Application.mk | 10 + .../android-project/app/jni/CMakeLists.txt | 20 + .../android-project/app/jni/src/Android.mk | 18 + .../app/jni/src/CMakeLists.txt | 13 + .../android-project/app/proguard-rules.pro | 98 + .../app/src/main/AndroidManifest.xml | 99 + .../main/java/org/libsdl/app/HIDDevice.java | 22 + .../app/HIDDeviceBLESteamController.java | 650 + .../java/org/libsdl/app/HIDDeviceManager.java | 698 + .../java/org/libsdl/app/HIDDeviceUSB.java | 309 + .../app/src/main/java/org/libsdl/app/SDL.java | 90 + .../main/java/org/libsdl/app/SDLActivity.java | 2120 + .../java/org/libsdl/app/SDLAudioManager.java | 514 + .../org/libsdl/app/SDLControllerManager.java | 856 + .../main/java/org/libsdl/app/SDLSurface.java | 405 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 2683 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 1698 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 3872 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 6874 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 14526 bytes .../app/src/main/res/values/colors.xml | 6 + .../app/src/main/res/values/strings.xml | 3 + .../app/src/main/res/values/styles.xml | 7 + engine/lib/sdl/android-project/build.gradle | 25 + .../lib/sdl/android-project/gradle.properties | 17 + .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 54213 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + engine/lib/sdl/android-project/gradlew | 160 + engine/lib/sdl/android-project/gradlew.bat | 90 + .../lib/sdl/android-project/settings.gradle | 1 + engine/lib/sdl/autogen.sh | 21 + .../lib/sdl/build-scripts/android-prefab.sh | 351 + engine/lib/sdl/build-scripts/androidbuild.sh | 101 + .../lib/sdl/build-scripts/androidbuildlibs.sh | 73 + engine/lib/sdl/build-scripts/build-release.py | 1470 + .../lib/sdl/build-scripts/checker-buildbot.sh | 62 + engine/lib/sdl/build-scripts/clang++-fat.sh | 102 + engine/lib/sdl/build-scripts/clang-fat.sh | 105 + .../lib/sdl/build-scripts/clang-format-src.sh | 32 + .../cmake-toolchain-mingw64-i686.cmake | 18 + .../cmake-toolchain-mingw64-x86_64.cmake | 18 + .../sdl/build-scripts/codechecker-buildbot.sh | 59 + engine/lib/sdl/build-scripts/config.guess | 1818 + engine/lib/sdl/build-scripts/config.sub | 2364 ++ .../lib/sdl/build-scripts/create-release.py | 43 + .../sdl/build-scripts/emscripten-buildbot.sh | 76 + engine/lib/sdl/build-scripts/fnsince.pl | 188 + .../gen_audio_channel_conversion.c | 450 + .../gen_audio_resampler_filter.c | 163 + .../sdl/build-scripts/git-pre-push-hook.pl | 80 + engine/lib/sdl/build-scripts/install-sh | 541 + engine/lib/sdl/build-scripts/ltmain.sh | 11199 ++++++ engine/lib/sdl/build-scripts/mkinstalldirs | 162 + engine/lib/sdl/build-scripts/nacl-buildbot.sh | 61 + engine/lib/sdl/build-scripts/naclbuild.sh | 105 + .../sdl/build-scripts/raspberrypi-buildbot.sh | 58 + .../lib/sdl/build-scripts/release-info.json | 108 + .../sdl/build-scripts/setup-gdk-desktop.py | 303 + engine/lib/sdl/build-scripts/showrev.sh | 48 + engine/lib/sdl/build-scripts/strip_fPIC.sh | 21 + .../lib/sdl/build-scripts/test-versioning.sh | 213 + .../lib/sdl/build-scripts/update-copyright.sh | 15 + .../lib/sdl/build-scripts/update-version.sh | 96 + engine/lib/sdl/build-scripts/updaterev.sh | 49 + engine/lib/sdl/build-scripts/wikiheaders.pl | 2969 ++ .../build-scripts/windows-buildbot-zipper.bat | 28 + .../lib/sdl/cmake/CheckCPUArchitecture.cmake | 44 + engine/lib/sdl/cmake/macros.cmake | 148 + engine/lib/sdl/cmake/sdlchecks.cmake | 1420 + engine/lib/sdl/cmake/sdlfind.cmake | 9 + engine/lib/sdl/cmake/sdlplatform.cmake | 61 + engine/lib/sdl/cmake/test/CMakeLists.txt | 174 + engine/lib/sdl/cmake/test/jni/Android.mk | 11 + engine/lib/sdl/cmake/test/main.swift | 12 + engine/lib/sdl/cmake/test/main_cli.c | 14 + engine/lib/sdl/cmake/test/main_gui.c | 28 + engine/lib/sdl/cmake/test/main_lib.c | 33 + engine/lib/sdl/cmake/test/sdltest.c | 9 + .../lib/sdl/cmake/test/swift/module.modulemap | 4 + engine/lib/sdl/cmake/test/swift/shim.h | 3 + engine/lib/sdl/cmake/test/test_pkgconfig.sh | 51 + engine/lib/sdl/cmake/test/test_sdlconfig.sh | 51 + engine/lib/sdl/cmake_uninstall.cmake.in | 18 + engine/lib/sdl/configure | 32874 ++++++++++++++++ engine/lib/sdl/configure.ac | 5004 +++ engine/lib/sdl/docs/CONTRIBUTING.md | 97 + engine/lib/sdl/docs/README-android.md | 483 + engine/lib/sdl/docs/README-cmake.md | 163 + engine/lib/sdl/docs/README-directfb.md | 123 + engine/lib/sdl/docs/README-dynapi.md | 138 + engine/lib/sdl/docs/README-emscripten.md | 374 + engine/lib/sdl/docs/README-gdk.md | 176 + engine/lib/sdl/docs/README-gesture.md | 71 + engine/lib/sdl/docs/README-git.md | 19 + engine/lib/sdl/docs/README-hg.md | 4 + engine/lib/sdl/docs/README-ios.md | 307 + engine/lib/sdl/docs/README-kmsbsd.md | 27 + engine/lib/sdl/docs/README-linux.md | 96 + engine/lib/sdl/docs/README-macos.md | 285 + engine/lib/sdl/docs/README-n3ds.md | 28 + engine/lib/sdl/docs/README-nacl.md | 103 + engine/lib/sdl/docs/README-ngage.md | 44 + engine/lib/sdl/docs/README-os2.md | 92 + engine/lib/sdl/docs/README-pandora.md | 17 + engine/lib/sdl/docs/README-platforms.md | 8 + engine/lib/sdl/docs/README-porting.md | 68 + engine/lib/sdl/docs/README-ps2.md | 51 + engine/lib/sdl/docs/README-psp.md | 36 + engine/lib/sdl/docs/README-raspberrypi.md | 180 + engine/lib/sdl/docs/README-riscos.md | 41 + engine/lib/sdl/docs/README-touch.md | 86 + engine/lib/sdl/docs/README-versions.md | 60 + engine/lib/sdl/docs/README-visualc.md | 114 + engine/lib/sdl/docs/README-vita.md | 33 + engine/lib/sdl/docs/README-wince.md | 10 + engine/lib/sdl/docs/README-windows.md | 58 + engine/lib/sdl/docs/README-winrt.md | 519 + engine/lib/sdl/docs/README.md | 63 + engine/lib/sdl/docs/doxyfile | 1561 + engine/lib/sdl/docs/release_checklist.md | 49 + engine/lib/sdl/include/SDL.h | 234 + engine/lib/sdl/include/SDL_assert.h | 324 + engine/lib/sdl/include/SDL_atomic.h | 408 + engine/lib/sdl/include/SDL_audio.h | 1502 + engine/lib/sdl/include/SDL_bits.h | 132 + engine/lib/sdl/include/SDL_blendmode.h | 199 + engine/lib/sdl/include/SDL_clipboard.h | 141 + engine/lib/sdl/include/SDL_config.h | 59 + engine/lib/sdl/include/SDL_config.h.cmake | 571 + engine/lib/sdl/include/SDL_config.h.in | 500 + engine/lib/sdl/include/SDL_config_android.h | 194 + .../lib/sdl/include/SDL_config_emscripten.h | 218 + engine/lib/sdl/include/SDL_config_iphoneos.h | 217 + engine/lib/sdl/include/SDL_config_macosx.h | 277 + engine/lib/sdl/include/SDL_config_minimal.h | 95 + engine/lib/sdl/include/SDL_config_ngage.h | 89 + engine/lib/sdl/include/SDL_config_os2.h | 204 + engine/lib/sdl/include/SDL_config_pandora.h | 141 + engine/lib/sdl/include/SDL_config_windows.h | 333 + engine/lib/sdl/include/SDL_config_wingdk.h | 253 + engine/lib/sdl/include/SDL_config_winrt.h | 220 + engine/lib/sdl/include/SDL_config_xbox.h | 240 + engine/lib/sdl/include/SDL_copying.h | 20 + engine/lib/sdl/include/SDL_cpuinfo.h | 603 + engine/lib/sdl/include/SDL_egl.h | 2351 ++ engine/lib/sdl/include/SDL_endian.h | 396 + engine/lib/sdl/include/SDL_error.h | 163 + engine/lib/sdl/include/SDL_events.h | 1196 + engine/lib/sdl/include/SDL_filesystem.h | 149 + engine/lib/sdl/include/SDL_gamecontroller.h | 1110 + engine/lib/sdl/include/SDL_gesture.h | 117 + engine/lib/sdl/include/SDL_guid.h | 107 + engine/lib/sdl/include/SDL_haptic.h | 1354 + engine/lib/sdl/include/SDL_hidapi.h | 443 + engine/lib/sdl/include/SDL_hints.h | 3303 ++ engine/lib/sdl/include/SDL_joystick.h | 1088 + engine/lib/sdl/include/SDL_keyboard.h | 361 + engine/lib/sdl/include/SDL_keycode.h | 358 + engine/lib/sdl/include/SDL_loadso.h | 117 + engine/lib/sdl/include/SDL_locale.h | 103 + engine/lib/sdl/include/SDL_log.h | 405 + engine/lib/sdl/include/SDL_main.h | 282 + engine/lib/sdl/include/SDL_messagebox.h | 196 + engine/lib/sdl/include/SDL_metal.h | 114 + engine/lib/sdl/include/SDL_misc.h | 79 + engine/lib/sdl/include/SDL_mouse.h | 464 + engine/lib/sdl/include/SDL_mutex.h | 545 + engine/lib/sdl/include/SDL_name.h | 33 + engine/lib/sdl/include/SDL_opengl.h | 2126 + engine/lib/sdl/include/SDL_opengl_glext.h | 13213 +++++++ engine/lib/sdl/include/SDL_opengles.h | 38 + engine/lib/sdl/include/SDL_opengles2.h | 51 + engine/lib/sdl/include/SDL_opengles2_gl2.h | 656 + engine/lib/sdl/include/SDL_opengles2_gl2ext.h | 4033 ++ .../sdl/include/SDL_opengles2_gl2platform.h | 27 + .../sdl/include/SDL_opengles2_khrplatform.h | 311 + engine/lib/sdl/include/SDL_pixels.h | 686 + engine/lib/sdl/include/SDL_platform.h | 275 + engine/lib/sdl/include/SDL_power.h | 87 + engine/lib/sdl/include/SDL_quit.h | 50 + engine/lib/sdl/include/SDL_rect.h | 376 + engine/lib/sdl/include/SDL_render.h | 1932 + engine/lib/sdl/include/SDL_revision.h | 6 + engine/lib/sdl/include/SDL_revision.h.cmake | 8 + engine/lib/sdl/include/SDL_rwops.h | 844 + engine/lib/sdl/include/SDL_scancode.h | 438 + engine/lib/sdl/include/SDL_sensor.h | 329 + engine/lib/sdl/include/SDL_shape.h | 155 + engine/lib/sdl/include/SDL_stdinc.h | 873 + engine/lib/sdl/include/SDL_surface.h | 1001 + engine/lib/sdl/include/SDL_system.h | 642 + engine/lib/sdl/include/SDL_syswm.h | 386 + engine/lib/sdl/include/SDL_test.h | 69 + engine/lib/sdl/include/SDL_test_assert.h | 105 + engine/lib/sdl/include/SDL_test_common.h | 236 + engine/lib/sdl/include/SDL_test_compare.h | 69 + engine/lib/sdl/include/SDL_test_crc32.h | 124 + engine/lib/sdl/include/SDL_test_font.h | 168 + engine/lib/sdl/include/SDL_test_fuzzer.h | 387 + engine/lib/sdl/include/SDL_test_harness.h | 134 + engine/lib/sdl/include/SDL_test_images.h | 78 + engine/lib/sdl/include/SDL_test_log.h | 67 + engine/lib/sdl/include/SDL_test_md5.h | 129 + engine/lib/sdl/include/SDL_test_memory.h | 63 + engine/lib/sdl/include/SDL_test_random.h | 115 + engine/lib/sdl/include/SDL_thread.h | 468 + engine/lib/sdl/include/SDL_timer.h | 222 + engine/lib/sdl/include/SDL_touch.h | 150 + engine/lib/sdl/include/SDL_types.h | 24 + engine/lib/sdl/include/SDL_version.h | 205 + engine/lib/sdl/include/SDL_video.h | 2228 ++ engine/lib/sdl/include/SDL_vulkan.h | 219 + engine/lib/sdl/include/begin_code.h | 189 + engine/lib/sdl/include/close_code.h | 40 + engine/lib/sdl/mingw/pkg-support/INSTALL.txt | 18 + engine/lib/sdl/sdl2-config-version.cmake.in | 12 + engine/lib/sdl/sdl2-config.cmake.in | 225 + engine/lib/sdl/sdl2-config.in | 65 + engine/lib/sdl/sdl2.m4 | 215 + engine/lib/sdl/sdl2.pc.in | 14 + engine/lib/sdl/src/SDL.c | 683 + engine/lib/sdl/src/SDL_assert.c | 462 + engine/lib/sdl/src/SDL_assert_c.h | 29 + engine/lib/sdl/src/SDL_dataqueue.c | 323 + engine/lib/sdl/src/SDL_dataqueue.h | 40 + engine/lib/sdl/src/SDL_error.c | 123 + engine/lib/sdl/src/SDL_error_c.h | 44 + engine/lib/sdl/src/SDL_guid.c | 91 + engine/lib/sdl/src/SDL_hints.c | 303 + engine/lib/sdl/src/SDL_hints_c.h | 32 + engine/lib/sdl/src/SDL_internal.h | 215 + engine/lib/sdl/src/SDL_list.c | 89 + engine/lib/sdl/src/SDL_list.h | 38 + engine/lib/sdl/src/SDL_log.c | 611 + engine/lib/sdl/src/SDL_log_c.h | 33 + engine/lib/sdl/src/SDL_utils.c | 52 + engine/lib/sdl/src/SDL_utils_c.h | 32 + engine/lib/sdl/src/atomic/SDL_atomic.c | 305 + engine/lib/sdl/src/atomic/SDL_spinlock.c | 213 + engine/lib/sdl/src/audio/SDL_audio.c | 1797 + engine/lib/sdl/src/audio/SDL_audio_c.h | 76 + .../src/audio/SDL_audio_channel_converters.h | 1402 + .../src/audio/SDL_audio_resampler_filter.h | 1061 + engine/lib/sdl/src/audio/SDL_audiocvt.c | 1429 + engine/lib/sdl/src/audio/SDL_audiodev.c | 128 + engine/lib/sdl/src/audio/SDL_audiodev_c.h | 44 + engine/lib/sdl/src/audio/SDL_audiotypecvt.c | 1466 + engine/lib/sdl/src/audio/SDL_mixer.c | 345 + engine/lib/sdl/src/audio/SDL_sysaudio.h | 215 + engine/lib/sdl/src/audio/SDL_wave.c | 2137 + engine/lib/sdl/src/audio/SDL_wave.h | 153 + engine/lib/sdl/src/audio/aaudio/SDL_aaudio.c | 528 + engine/lib/sdl/src/audio/aaudio/SDL_aaudio.h | 50 + .../sdl/src/audio/aaudio/SDL_aaudiofuncs.h | 79 + .../lib/sdl/src/audio/alsa/SDL_alsa_audio.c | 1056 + .../lib/sdl/src/audio/alsa/SDL_alsa_audio.h | 48 + .../sdl/src/audio/android/SDL_androidaudio.c | 180 + .../sdl/src/audio/android/SDL_androidaudio.h | 41 + engine/lib/sdl/src/audio/arts/SDL_artsaudio.c | 344 + engine/lib/sdl/src/audio/arts/SDL_artsaudio.h | 53 + .../sdl/src/audio/coreaudio/SDL_coreaudio.h | 76 + .../sdl/src/audio/coreaudio/SDL_coreaudio.m | 1350 + .../src/audio/directsound/SDL_directsound.c | 659 + .../src/audio/directsound/SDL_directsound.h | 47 + engine/lib/sdl/src/audio/disk/SDL_diskaudio.c | 197 + engine/lib/sdl/src/audio/disk/SDL_diskaudio.h | 41 + engine/lib/sdl/src/audio/dsp/SDL_dspaudio.c | 318 + engine/lib/sdl/src/audio/dsp/SDL_dspaudio.h | 43 + .../lib/sdl/src/audio/dummy/SDL_dummyaudio.c | 68 + .../lib/sdl/src/audio/dummy/SDL_dummyaudio.h | 41 + .../audio/emscripten/SDL_emscriptenaudio.c | 442 + .../audio/emscripten/SDL_emscriptenaudio.h | 38 + engine/lib/sdl/src/audio/esd/SDL_esdaudio.c | 322 + engine/lib/sdl/src/audio/esd/SDL_esdaudio.h | 51 + .../sdl/src/audio/fusionsound/SDL_fsaudio.c | 305 + .../sdl/src/audio/fusionsound/SDL_fsaudio.h | 50 + .../lib/sdl/src/audio/haiku/SDL_haikuaudio.cc | 238 + .../lib/sdl/src/audio/haiku/SDL_haikuaudio.h | 38 + engine/lib/sdl/src/audio/jack/SDL_jackaudio.c | 431 + engine/lib/sdl/src/audio/jack/SDL_jackaudio.h | 41 + engine/lib/sdl/src/audio/n3ds/SDL_n3dsaudio.c | 337 + engine/lib/sdl/src/audio/n3ds/SDL_n3dsaudio.h | 50 + engine/lib/sdl/src/audio/nacl/SDL_naclaudio.c | 161 + engine/lib/sdl/src/audio/nacl/SDL_naclaudio.h | 42 + engine/lib/sdl/src/audio/nas/SDL_nasaudio.c | 443 + engine/lib/sdl/src/audio/nas/SDL_nasaudio.h | 56 + .../sdl/src/audio/netbsd/SDL_netbsdaudio.c | 334 + .../sdl/src/audio/netbsd/SDL_netbsdaudio.h | 48 + .../lib/sdl/src/audio/openslES/SDL_openslES.c | 780 + .../lib/sdl/src/audio/openslES/SDL_openslES.h | 46 + engine/lib/sdl/src/audio/os2/SDL_os2audio.c | 601 + engine/lib/sdl/src/audio/os2/SDL_os2audio.h | 55 + engine/lib/sdl/src/audio/paudio/SDL_paudio.c | 485 + engine/lib/sdl/src/audio/paudio/SDL_paudio.h | 48 + .../lib/sdl/src/audio/pipewire/SDL_pipewire.c | 1417 + .../lib/sdl/src/audio/pipewire/SDL_pipewire.h | 47 + engine/lib/sdl/src/audio/ps2/SDL_ps2audio.c | 177 + engine/lib/sdl/src/audio/ps2/SDL_ps2audio.h | 46 + engine/lib/sdl/src/audio/psp/SDL_pspaudio.c | 203 + engine/lib/sdl/src/audio/psp/SDL_pspaudio.h | 46 + .../sdl/src/audio/pulseaudio/SDL_pulseaudio.c | 1000 + .../sdl/src/audio/pulseaudio/SDL_pulseaudio.h | 52 + engine/lib/sdl/src/audio/qsa/SDL_qsa_audio.c | 618 + engine/lib/sdl/src/audio/qsa/SDL_qsa_audio.h | 54 + .../lib/sdl/src/audio/sndio/SDL_sndioaudio.c | 371 + .../lib/sdl/src/audio/sndio/SDL_sndioaudio.h | 49 + engine/lib/sdl/src/audio/sun/SDL_sunaudio.c | 404 + engine/lib/sdl/src/audio/sun/SDL_sunaudio.h | 47 + engine/lib/sdl/src/audio/vita/SDL_vitaaudio.c | 221 + engine/lib/sdl/src/audio/vita/SDL_vitaaudio.h | 46 + engine/lib/sdl/src/audio/wasapi/SDL_wasapi.c | 638 + engine/lib/sdl/src/audio/wasapi/SDL_wasapi.h | 80 + .../sdl/src/audio/wasapi/SDL_wasapi_win32.c | 153 + .../sdl/src/audio/wasapi/SDL_wasapi_winrt.cpp | 431 + engine/lib/sdl/src/audio/winmm/SDL_winmm.c | 443 + engine/lib/sdl/src/audio/winmm/SDL_winmm.h | 45 + engine/lib/sdl/src/core/android/SDL_android.c | 2709 ++ engine/lib/sdl/src/core/android/SDL_android.h | 156 + .../freebsd/SDL_evdev_kbd_default_keyaccmap.h | 167 + .../src/core/freebsd/SDL_evdev_kbd_freebsd.c | 613 + engine/lib/sdl/src/core/gdk/SDL_gdk.cpp | 262 + engine/lib/sdl/src/core/gdk/SDL_gdk.h | 24 + engine/lib/sdl/src/core/linux/SDL_dbus.c | 603 + engine/lib/sdl/src/core/linux/SDL_dbus.h | 111 + engine/lib/sdl/src/core/linux/SDL_evdev.c | 962 + engine/lib/sdl/src/core/linux/SDL_evdev.h | 42 + .../src/core/linux/SDL_evdev_capabilities.c | 150 + .../src/core/linux/SDL_evdev_capabilities.h | 59 + engine/lib/sdl/src/core/linux/SDL_evdev_kbd.c | 1001 + engine/lib/sdl/src/core/linux/SDL_evdev_kbd.h | 37 + .../linux/SDL_evdev_kbd_default_accents.h | 284 + .../core/linux/SDL_evdev_kbd_default_keymap.h | 4767 +++ engine/lib/sdl/src/core/linux/SDL_fcitx.c | 491 + engine/lib/sdl/src/core/linux/SDL_fcitx.h | 40 + engine/lib/sdl/src/core/linux/SDL_ibus.c | 765 + engine/lib/sdl/src/core/linux/SDL_ibus.h | 58 + engine/lib/sdl/src/core/linux/SDL_ime.c | 152 + engine/lib/sdl/src/core/linux/SDL_ime.h | 40 + engine/lib/sdl/src/core/linux/SDL_sandbox.c | 47 + engine/lib/sdl/src/core/linux/SDL_sandbox.h | 39 + .../lib/sdl/src/core/linux/SDL_threadprio.c | 352 + engine/lib/sdl/src/core/linux/SDL_udev.c | 592 + engine/lib/sdl/src/core/linux/SDL_udev.h | 116 + engine/lib/sdl/src/core/openbsd/SDL_wscons.h | 25 + .../lib/sdl/src/core/openbsd/SDL_wscons_kbd.c | 933 + .../sdl/src/core/openbsd/SDL_wscons_mouse.c | 134 + engine/lib/sdl/src/core/os2/SDL_os2.c | 38 + engine/lib/sdl/src/core/os2/SDL_os2.h | 57 + .../lib/sdl/src/core/os2/geniconv/geniconv.c | 161 + .../lib/sdl/src/core/os2/geniconv/geniconv.h | 85 + engine/lib/sdl/src/core/os2/geniconv/iconv.h | 21 + engine/lib/sdl/src/core/os2/geniconv/makefile | 37 + engine/lib/sdl/src/core/os2/geniconv/os2cp.c | 416 + engine/lib/sdl/src/core/os2/geniconv/os2cp.h | 32 + .../lib/sdl/src/core/os2/geniconv/os2iconv.c | 286 + .../lib/sdl/src/core/os2/geniconv/sys2utf8.c | 119 + engine/lib/sdl/src/core/os2/geniconv/test.c | 69 + engine/lib/sdl/src/core/os2/iconv2.lbc | 4 + engine/lib/sdl/src/core/unix/SDL_poll.c | 88 + engine/lib/sdl/src/core/unix/SDL_poll.h | 37 + engine/lib/sdl/src/core/windows/SDL_directx.h | 114 + engine/lib/sdl/src/core/windows/SDL_hid.c | 86 + engine/lib/sdl/src/core/windows/SDL_hid.h | 215 + .../lib/sdl/src/core/windows/SDL_immdevice.c | 543 + .../lib/sdl/src/core/windows/SDL_immdevice.h | 44 + engine/lib/sdl/src/core/windows/SDL_windows.c | 386 + engine/lib/sdl/src/core/windows/SDL_windows.h | 169 + engine/lib/sdl/src/core/windows/SDL_xinput.c | 146 + engine/lib/sdl/src/core/windows/SDL_xinput.h | 278 + .../src/core/winrt/SDL_winrtapp_common.cpp | 61 + .../sdl/src/core/winrt/SDL_winrtapp_common.h | 31 + .../src/core/winrt/SDL_winrtapp_direct3d.cpp | 778 + .../src/core/winrt/SDL_winrtapp_direct3d.h | 93 + .../sdl/src/core/winrt/SDL_winrtapp_xaml.cpp | 147 + .../sdl/src/core/winrt/SDL_winrtapp_xaml.h | 33 + engine/lib/sdl/src/cpuinfo/SDL_cpuinfo.c | 1301 + engine/lib/sdl/src/dynapi/SDL_dynapi.c | 539 + engine/lib/sdl/src/dynapi/SDL_dynapi.h | 81 + .../lib/sdl/src/dynapi/SDL_dynapi_overrides.h | 900 + engine/lib/sdl/src/dynapi/SDL_dynapi_procs.h | 987 + engine/lib/sdl/src/dynapi/gendynapi.pl | 155 + .../lib/sdl/src/events/SDL_clipboardevents.c | 44 + .../sdl/src/events/SDL_clipboardevents_c.h | 30 + engine/lib/sdl/src/events/SDL_displayevents.c | 58 + .../lib/sdl/src/events/SDL_displayevents_c.h | 30 + engine/lib/sdl/src/events/SDL_dropevents.c | 92 + engine/lib/sdl/src/events/SDL_dropevents_c.h | 32 + engine/lib/sdl/src/events/SDL_events.c | 1428 + engine/lib/sdl/src/events/SDL_events_c.h | 63 + engine/lib/sdl/src/events/SDL_gesture.c | 742 + engine/lib/sdl/src/events/SDL_gesture_c.h | 35 + engine/lib/sdl/src/events/SDL_keyboard.c | 1303 + engine/lib/sdl/src/events/SDL_keyboard_c.h | 89 + .../sdl/src/events/SDL_keysym_to_scancode.c | 440 + .../sdl/src/events/SDL_keysym_to_scancode_c.h | 32 + engine/lib/sdl/src/events/SDL_mouse.c | 1517 + engine/lib/sdl/src/events/SDL_mouse_c.h | 178 + engine/lib/sdl/src/events/SDL_quit.c | 200 + .../lib/sdl/src/events/SDL_scancode_tables.c | 73 + .../sdl/src/events/SDL_scancode_tables_c.h | 37 + engine/lib/sdl/src/events/SDL_touch.c | 499 + engine/lib/sdl/src/events/SDL_touch_c.h | 62 + engine/lib/sdl/src/events/SDL_windowevents.c | 232 + .../lib/sdl/src/events/SDL_windowevents_c.h | 31 + engine/lib/sdl/src/events/blank_cursor.h | 33 + engine/lib/sdl/src/events/default_cursor.h | 115 + engine/lib/sdl/src/events/imKStoUCS.c | 349 + engine/lib/sdl/src/events/imKStoUCS.h | 32 + engine/lib/sdl/src/events/scancodes_ascii.h | 170 + engine/lib/sdl/src/events/scancodes_darwin.h | 161 + engine/lib/sdl/src/events/scancodes_linux.h | 850 + engine/lib/sdl/src/events/scancodes_windows.h | 57 + engine/lib/sdl/src/events/scancodes_xfree86.h | 523 + engine/lib/sdl/src/file/SDL_rwops.c | 952 + .../src/file/cocoa/SDL_rwopsbundlesupport.h | 30 + .../src/file/cocoa/SDL_rwopsbundlesupport.m | 73 + engine/lib/sdl/src/file/n3ds/SDL_rwopsromfs.c | 92 + engine/lib/sdl/src/file/n3ds/SDL_rwopsromfs.h | 30 + .../filesystem/android/SDL_sysfilesystem.c | 60 + .../src/filesystem/cocoa/SDL_sysfilesystem.m | 139 + .../src/filesystem/dummy/SDL_sysfilesystem.c | 45 + .../filesystem/emscripten/SDL_sysfilesystem.c | 91 + .../src/filesystem/gdk/SDL_sysfilesystem.cpp | 138 + .../src/filesystem/haiku/SDL_sysfilesystem.cc | 107 + .../src/filesystem/n3ds/SDL_sysfilesystem.c | 89 + .../src/filesystem/nacl/SDL_sysfilesystem.c | 41 + .../src/filesystem/os2/SDL_sysfilesystem.c | 129 + .../src/filesystem/ps2/SDL_sysfilesystem.c | 108 + .../src/filesystem/psp/SDL_sysfilesystem.c | 77 + .../src/filesystem/riscos/SDL_sysfilesystem.c | 208 + .../src/filesystem/unix/SDL_sysfilesystem.c | 347 + .../src/filesystem/vita/SDL_sysfilesystem.c | 93 + .../filesystem/windows/SDL_sysfilesystem.c | 173 + .../filesystem/winrt/SDL_sysfilesystem.cpp | 242 + engine/lib/sdl/src/haptic/SDL_haptic.c | 908 + engine/lib/sdl/src/haptic/SDL_haptic_c.h | 30 + engine/lib/sdl/src/haptic/SDL_syshaptic.h | 217 + .../sdl/src/haptic/android/SDL_syshaptic.c | 317 + .../sdl/src/haptic/android/SDL_syshaptic_c.h | 12 + .../lib/sdl/src/haptic/darwin/SDL_syshaptic.c | 1369 + .../sdl/src/haptic/darwin/SDL_syshaptic_c.h | 31 + .../lib/sdl/src/haptic/dummy/SDL_syshaptic.c | 147 + .../lib/sdl/src/haptic/linux/SDL_syshaptic.c | 1122 + .../sdl/src/haptic/windows/SDL_dinputhaptic.c | 1262 + .../src/haptic/windows/SDL_dinputhaptic_c.h | 56 + .../src/haptic/windows/SDL_windowshaptic.c | 453 + .../src/haptic/windows/SDL_windowshaptic_c.h | 98 + .../sdl/src/haptic/windows/SDL_xinputhaptic.c | 456 + .../src/haptic/windows/SDL_xinputhaptic_c.h | 56 + engine/lib/sdl/src/hidapi/AUTHORS.txt | 16 + engine/lib/sdl/src/hidapi/HACKING.txt | 15 + engine/lib/sdl/src/hidapi/LICENSE-bsd.txt | 26 + engine/lib/sdl/src/hidapi/LICENSE-gpl3.txt | 674 + engine/lib/sdl/src/hidapi/LICENSE-orig.txt | 9 + engine/lib/sdl/src/hidapi/LICENSE.txt | 13 + engine/lib/sdl/src/hidapi/Makefile.am | 85 + engine/lib/sdl/src/hidapi/README.txt | 339 + engine/lib/sdl/src/hidapi/SDL_hidapi.c | 1691 + engine/lib/sdl/src/hidapi/SDL_hidapi_c.h | 35 + engine/lib/sdl/src/hidapi/android/hid.cpp | 1431 + .../lib/sdl/src/hidapi/android/jni/Android.mk | 16 + .../sdl/src/hidapi/android/jni/Application.mk | 2 + .../sdl/src/hidapi/android/project.properties | 14 + engine/lib/sdl/src/hidapi/bootstrap | 2 + engine/lib/sdl/src/hidapi/configure.ac | 236 + engine/lib/sdl/src/hidapi/doxygen/Doxyfile | 1630 + engine/lib/sdl/src/hidapi/hidapi/hidapi.h | 421 + engine/lib/sdl/src/hidapi/hidtest/Makefile.am | 20 + engine/lib/sdl/src/hidapi/hidtest/hidtest.cpp | 194 + engine/lib/sdl/src/hidapi/ios/Makefile-manual | 32 + engine/lib/sdl/src/hidapi/ios/Makefile.am | 9 + engine/lib/sdl/src/hidapi/ios/hid.m | 1005 + .../lib/sdl/src/hidapi/libusb/Makefile-manual | 18 + engine/lib/sdl/src/hidapi/libusb/Makefile.am | 27 + .../sdl/src/hidapi/libusb/Makefile.freebsd | 46 + .../lib/sdl/src/hidapi/libusb/Makefile.linux | 49 + engine/lib/sdl/src/hidapi/libusb/hid.c | 1895 + engine/lib/sdl/src/hidapi/libusb/hidusb.cpp | 3 + .../lib/sdl/src/hidapi/linux/Makefile-manual | 49 + engine/lib/sdl/src/hidapi/linux/Makefile.am | 10 + engine/lib/sdl/src/hidapi/linux/README.txt | 59 + engine/lib/sdl/src/hidapi/linux/hid.c | 947 + engine/lib/sdl/src/hidapi/linux/hidraw.cpp | 3 + engine/lib/sdl/src/hidapi/m4/ax_pthread.m4 | 309 + engine/lib/sdl/src/hidapi/m4/pkg.m4 | 157 + engine/lib/sdl/src/hidapi/mac/Makefile-manual | 32 + engine/lib/sdl/src/hidapi/mac/Makefile.am | 9 + engine/lib/sdl/src/hidapi/mac/hid.c | 1284 + .../lib/sdl/src/hidapi/pc/hidapi-hidraw.pc.in | 10 + .../lib/sdl/src/hidapi/pc/hidapi-libusb.pc.in | 10 + engine/lib/sdl/src/hidapi/pc/hidapi.pc.in | 10 + .../sdl/src/hidapi/testgui/Makefile-manual | 26 + engine/lib/sdl/src/hidapi/testgui/Makefile.am | 43 + .../sdl/src/hidapi/testgui/Makefile.freebsd | 33 + .../lib/sdl/src/hidapi/testgui/Makefile.linux | 32 + .../lib/sdl/src/hidapi/testgui/Makefile.mac | 46 + .../lib/sdl/src/hidapi/testgui/Makefile.mingw | 32 + .../TestGUI.app.in/Contents/Info.plist | 28 + .../testgui/TestGUI.app.in/Contents/PkgInfo | 1 + .../Resources/English.lproj/InfoPlist.strings | Bin 0 -> 92 bytes .../Contents/Resources/Signal11.icns | Bin 0 -> 21918 bytes .../sdl/src/hidapi/testgui/copy_to_bundle.sh | 97 + .../sdl/src/hidapi/testgui/mac_support.cpp | 134 + .../lib/sdl/src/hidapi/testgui/mac_support.h | 17 + .../src/hidapi/testgui/mac_support_cocoa.m | 94 + engine/lib/sdl/src/hidapi/testgui/start.sh | 2 + engine/lib/sdl/src/hidapi/testgui/test.cpp | 532 + engine/lib/sdl/src/hidapi/udev/99-hid.rules | 33 + .../sdl/src/hidapi/windows/Makefile-manual | 14 + engine/lib/sdl/src/hidapi/windows/Makefile.am | 16 + .../lib/sdl/src/hidapi/windows/Makefile.mingw | 35 + .../src/hidapi/windows/ddk_build/hidapi.def | 17 + .../sdl/src/hidapi/windows/ddk_build/makefile | 49 + .../sdl/src/hidapi/windows/ddk_build/sources | 23 + engine/lib/sdl/src/hidapi/windows/hid.c | 1108 + .../lib/sdl/src/joystick/SDL_gamecontroller.c | 3267 ++ .../sdl/src/joystick/SDL_gamecontrollerdb.h | 1007 + engine/lib/sdl/src/joystick/SDL_joystick.c | 3596 ++ engine/lib/sdl/src/joystick/SDL_joystick_c.h | 278 + .../src/joystick/SDL_steam_virtual_gamepad.c | 251 + .../src/joystick/SDL_steam_virtual_gamepad.h | 36 + engine/lib/sdl/src/joystick/SDL_sysjoystick.h | 264 + .../src/joystick/android/SDL_sysjoystick.c | 710 + .../src/joystick/android/SDL_sysjoystick_c.h | 59 + .../sdl/src/joystick/bsd/SDL_bsdjoystick.c | 879 + engine/lib/sdl/src/joystick/check_8bitdo.sh | 15 + engine/lib/sdl/src/joystick/controller_list.h | 603 + engine/lib/sdl/src/joystick/controller_type.c | 144 + engine/lib/sdl/src/joystick/controller_type.h | 80 + .../src/joystick/darwin/SDL_iokitjoystick.c | 1107 + .../src/joystick/darwin/SDL_iokitjoystick_c.h | 82 + .../sdl/src/joystick/dummy/SDL_sysjoystick.c | 159 + .../src/joystick/emscripten/SDL_sysjoystick.c | 449 + .../joystick/emscripten/SDL_sysjoystick_c.h | 51 + .../src/joystick/haiku/SDL_haikujoystick.cc | 329 + .../src/joystick/hidapi/SDL_hidapi_combined.c | 238 + .../src/joystick/hidapi/SDL_hidapi_gamecube.c | 559 + .../sdl/src/joystick/hidapi/SDL_hidapi_luna.c | 451 + .../src/joystick/hidapi/SDL_hidapi_nintendo.h | 51 + .../sdl/src/joystick/hidapi/SDL_hidapi_ps3.c | 1028 + .../sdl/src/joystick/hidapi/SDL_hidapi_ps4.c | 1291 + .../sdl/src/joystick/hidapi/SDL_hidapi_ps5.c | 1579 + .../src/joystick/hidapi/SDL_hidapi_rumble.c | 287 + .../src/joystick/hidapi/SDL_hidapi_rumble.h | 44 + .../src/joystick/hidapi/SDL_hidapi_shield.c | 603 + .../src/joystick/hidapi/SDL_hidapi_stadia.c | 339 + .../src/joystick/hidapi/SDL_hidapi_steam.c | 1243 + .../joystick/hidapi/SDL_hidapi_steamdeck.c | 433 + .../src/joystick/hidapi/SDL_hidapi_switch.c | 2462 ++ .../sdl/src/joystick/hidapi/SDL_hidapi_wii.c | 1685 + .../src/joystick/hidapi/SDL_hidapi_xbox360.c | 368 + .../src/joystick/hidapi/SDL_hidapi_xbox360w.c | 384 + .../src/joystick/hidapi/SDL_hidapi_xboxone.c | 1360 + .../src/joystick/hidapi/SDL_hidapijoystick.c | 1696 + .../joystick/hidapi/SDL_hidapijoystick_c.h | 182 + .../hidapi/steam/controller_constants.h | 582 + .../hidapi/steam/controller_structs.h | 463 + .../src/joystick/iphoneos/SDL_mfijoystick.m | 2220 ++ .../src/joystick/iphoneos/SDL_mfijoystick_c.h | 77 + .../sdl/src/joystick/linux/SDL_sysjoystick.c | 2814 ++ .../src/joystick/linux/SDL_sysjoystick_c.h | 118 + .../sdl/src/joystick/n3ds/SDL_sysjoystick.c | 302 + .../sdl/src/joystick/os2/SDL_os2joystick.c | 843 + .../sdl/src/joystick/ps2/SDL_sysjoystick.c | 372 + .../sdl/src/joystick/psp/SDL_sysjoystick.c | 289 + .../lib/sdl/src/joystick/sort_controllers.py | 153 + .../src/joystick/steam/SDL_steamcontroller.c | 51 + .../src/joystick/steam/SDL_steamcontroller.h | 39 + engine/lib/sdl/src/joystick/usb_ids.h | 181 + .../joystick/virtual/SDL_virtualjoystick.c | 750 + .../joystick/virtual/SDL_virtualjoystick_c.h | 60 + .../sdl/src/joystick/vita/SDL_sysjoystick.c | 409 + .../src/joystick/windows/SDL_dinputjoystick.c | 1223 + .../joystick/windows/SDL_dinputjoystick_c.h | 43 + .../joystick/windows/SDL_rawinputjoystick.c | 2228 ++ .../joystick/windows/SDL_rawinputjoystick_c.h | 37 + .../windows/SDL_windows_gaming_input.c | 1085 + .../joystick/windows/SDL_windowsjoystick.c | 850 + .../joystick/windows/SDL_windowsjoystick_c.h | 106 + .../src/joystick/windows/SDL_xinputjoystick.c | 520 + .../joystick/windows/SDL_xinputjoystick_c.h | 46 + engine/lib/sdl/src/libm/e_atan2.c | 134 + engine/lib/sdl/src/libm/e_exp.c | 191 + engine/lib/sdl/src/libm/e_fmod.c | 144 + engine/lib/sdl/src/libm/e_log.c | 152 + engine/lib/sdl/src/libm/e_log10.c | 106 + engine/lib/sdl/src/libm/e_pow.c | 347 + engine/lib/sdl/src/libm/e_rem_pio2.c | 161 + engine/lib/sdl/src/libm/e_sqrt.c | 457 + engine/lib/sdl/src/libm/k_cos.c | 82 + engine/lib/sdl/src/libm/k_rem_pio2.c | 317 + engine/lib/sdl/src/libm/k_sin.c | 65 + engine/lib/sdl/src/libm/k_tan.c | 118 + engine/lib/sdl/src/libm/math_libm.h | 47 + engine/lib/sdl/src/libm/math_private.h | 228 + engine/lib/sdl/src/libm/s_atan.c | 118 + engine/lib/sdl/src/libm/s_copysign.c | 29 + engine/lib/sdl/src/libm/s_cos.c | 73 + engine/lib/sdl/src/libm/s_fabs.c | 29 + engine/lib/sdl/src/libm/s_floor.c | 75 + engine/lib/sdl/src/libm/s_scalbn.c | 73 + engine/lib/sdl/src/libm/s_sin.c | 73 + engine/lib/sdl/src/libm/s_tan.c | 67 + .../lib/sdl/src/loadso/dlopen/SDL_sysloadso.c | 86 + .../lib/sdl/src/loadso/dummy/SDL_sysloadso.c | 51 + engine/lib/sdl/src/loadso/os2/SDL_sysloadso.c | 100 + .../sdl/src/loadso/windows/SDL_sysloadso.c | 84 + engine/lib/sdl/src/locale/SDL_locale.c | 103 + engine/lib/sdl/src/locale/SDL_syslocale.h | 37 + .../sdl/src/locale/android/SDL_syslocale.c | 31 + .../lib/sdl/src/locale/dummy/SDL_syslocale.c | 31 + .../sdl/src/locale/emscripten/SDL_syslocale.c | 72 + .../lib/sdl/src/locale/haiku/SDL_syslocale.cc | 76 + .../lib/sdl/src/locale/macosx/SDL_syslocale.m | 77 + .../lib/sdl/src/locale/n3ds/SDL_syslocale.c | 57 + engine/lib/sdl/src/locale/psp/SDL_syslocale.c | 77 + .../lib/sdl/src/locale/unix/SDL_syslocale.c | 105 + .../lib/sdl/src/locale/vita/SDL_syslocale.c | 70 + .../sdl/src/locale/windows/SDL_syslocale.c | 112 + .../lib/sdl/src/locale/winrt/SDL_syslocale.c | 55 + .../sdl/src/main/android/SDL_android_main.c | 7 + .../lib/sdl/src/main/dummy/SDL_dummy_main.c | 23 + engine/lib/sdl/src/main/gdk/SDL_gdk_main.c | 41 + engine/lib/sdl/src/main/haiku/SDL_BApp.h | 427 + engine/lib/sdl/src/main/haiku/SDL_BeApp.cc | 202 + engine/lib/sdl/src/main/haiku/SDL_BeApp.h | 41 + engine/lib/sdl/src/main/n3ds/SDL_n3ds_main.c | 61 + engine/lib/sdl/src/main/nacl/SDL_nacl_main.c | 92 + .../lib/sdl/src/main/ngage/SDL_ngage_main.cpp | 79 + engine/lib/sdl/src/main/ps2/SDL_ps2_main.c | 74 + engine/lib/sdl/src/main/psp/SDL_psp_main.c | 69 + .../lib/sdl/src/main/uikit/SDL_uikit_main.c | 23 + .../sdl/src/main/windows/SDL_windows_main.c | 114 + engine/lib/sdl/src/main/windows/version.rc | 38 + .../winrt/SDL2-WinRTResource_BlankCursor.cur | Bin 0 -> 326 bytes .../sdl/src/main/winrt/SDL2-WinRTResources.rc | 3 + .../src/main/winrt/SDL_winrt_main_NonXAML.cpp | 54 + engine/lib/sdl/src/misc/SDL_sysurl.h | 36 + engine/lib/sdl/src/misc/SDL_url.c | 32 + engine/lib/sdl/src/misc/android/SDL_sysurl.c | 30 + engine/lib/sdl/src/misc/dummy/SDL_sysurl.c | 29 + .../lib/sdl/src/misc/emscripten/SDL_sysurl.c | 34 + engine/lib/sdl/src/misc/haiku/SDL_sysurl.cc | 33 + engine/lib/sdl/src/misc/ios/SDL_sysurl.m | 45 + engine/lib/sdl/src/misc/macosx/SDL_sysurl.m | 36 + engine/lib/sdl/src/misc/riscos/SDL_sysurl.c | 47 + engine/lib/sdl/src/misc/unix/SDL_sysurl.c | 82 + engine/lib/sdl/src/misc/vita/SDL_sysurl.c | 42 + engine/lib/sdl/src/misc/windows/SDL_sysurl.c | 60 + engine/lib/sdl/src/misc/winrt/SDL_sysurl.cpp | 39 + engine/lib/sdl/src/power/SDL_power.c | 119 + engine/lib/sdl/src/power/SDL_syspower.h | 51 + .../lib/sdl/src/power/android/SDL_syspower.c | 63 + .../sdl/src/power/emscripten/SDL_syspower.c | 62 + engine/lib/sdl/src/power/haiku/SDL_syspower.c | 127 + engine/lib/sdl/src/power/linux/SDL_syspower.c | 651 + .../lib/sdl/src/power/macosx/SDL_syspower.c | 189 + engine/lib/sdl/src/power/n3ds/SDL_syspower.c | 108 + engine/lib/sdl/src/power/psp/SDL_syspower.c | 64 + engine/lib/sdl/src/power/uikit/SDL_syspower.h | 32 + engine/lib/sdl/src/power/uikit/SDL_syspower.m | 109 + engine/lib/sdl/src/power/vita/SDL_syspower.c | 64 + .../lib/sdl/src/power/windows/SDL_syspower.c | 74 + .../lib/sdl/src/power/winrt/SDL_syspower.cpp | 43 + engine/lib/sdl/src/render/SDL_d3dmath.c | 135 + engine/lib/sdl/src/render/SDL_d3dmath.h | 83 + engine/lib/sdl/src/render/SDL_render.c | 4585 +++ engine/lib/sdl/src/render/SDL_sysrender.h | 339 + engine/lib/sdl/src/render/SDL_yuv_sw.c | 419 + engine/lib/sdl/src/render/SDL_yuv_sw_c.h | 71 + .../sdl/src/render/direct3d/SDL_render_d3d.c | 1751 + .../sdl/src/render/direct3d/SDL_shaders_d3d.c | 273 + .../sdl/src/render/direct3d/SDL_shaders_d3d.h | 35 + .../src/render/direct3d11/SDL_render_d3d11.c | 2441 ++ .../render/direct3d11/SDL_render_winrt.cpp | 114 + .../src/render/direct3d11/SDL_render_winrt.h | 40 + .../src/render/direct3d11/SDL_shaders_d3d11.c | 1954 + .../src/render/direct3d11/SDL_shaders_d3d11.h | 46 + .../src/render/direct3d12/SDL_render_d3d12.c | 3134 ++ .../direct3d12/SDL_render_d3d12_xbox.cpp | 174 + .../render/direct3d12/SDL_render_d3d12_xbox.h | 49 + .../src/render/direct3d12/SDL_shaders_d3d12.c | 6939 ++++ .../src/render/direct3d12/SDL_shaders_d3d12.h | 69 + .../direct3d12/SDL_shaders_d3d12_xboxone.cpp | 144 + .../SDL_shaders_d3d12_xboxseries.cpp | 144 + .../sdl/src/render/metal/SDL_render_metal.m | 1888 + .../src/render/metal/SDL_shaders_metal.metal | 120 + .../src/render/metal/SDL_shaders_metal_ios.h | 1821 + .../metal/SDL_shaders_metal_iphonesimulator.h | 2058 + .../src/render/metal/SDL_shaders_metal_osx.h | 1825 + .../src/render/metal/SDL_shaders_metal_tvos.h | 1821 + .../metal/SDL_shaders_metal_tvsimulator.h | 2060 + .../src/render/metal/build-metal-shaders.sh | 24 + .../lib/sdl/src/render/opengl/SDL_glfuncs.h | 478 + .../lib/sdl/src/render/opengl/SDL_render_gl.c | 1963 + .../sdl/src/render/opengl/SDL_shaders_gl.c | 582 + .../sdl/src/render/opengl/SDL_shaders_gl.h | 60 + .../sdl/src/render/opengles/SDL_glesfuncs.h | 62 + .../sdl/src/render/opengles/SDL_render_gles.c | 1212 + .../sdl/src/render/opengles2/SDL_gles2funcs.h | 80 + .../src/render/opengles2/SDL_render_gles2.c | 2234 ++ .../src/render/opengles2/SDL_shaders_gles2.c | 449 + .../src/render/opengles2/SDL_shaders_gles2.h | 73 + .../lib/sdl/src/render/ps2/SDL_render_ps2.c | 702 + .../lib/sdl/src/render/psp/SDL_render_psp.c | 1427 + .../lib/sdl/src/render/psp/SDL_render_psp.h | 38 + .../src/render/software/SDL_blendfillrect.c | 348 + .../src/render/software/SDL_blendfillrect.h | 32 + .../sdl/src/render/software/SDL_blendline.c | 864 + .../sdl/src/render/software/SDL_blendline.h | 32 + .../sdl/src/render/software/SDL_blendpoint.c | 353 + .../sdl/src/render/software/SDL_blendpoint.h | 32 + engine/lib/sdl/src/render/software/SDL_draw.h | 661 + .../sdl/src/render/software/SDL_drawline.c | 202 + .../sdl/src/render/software/SDL_drawline.h | 32 + .../sdl/src/render/software/SDL_drawpoint.c | 111 + .../sdl/src/render/software/SDL_drawpoint.h | 32 + .../sdl/src/render/software/SDL_render_sw.c | 1088 + .../sdl/src/render/software/SDL_render_sw_c.h | 29 + .../lib/sdl/src/render/software/SDL_rotate.c | 620 + .../lib/sdl/src/render/software/SDL_rotate.h | 30 + .../sdl/src/render/software/SDL_triangle.c | 940 + .../sdl/src/render/software/SDL_triangle.h | 42 + .../src/render/vitagxm/SDL_render_vita_gxm.c | 1277 + .../vitagxm/SDL_render_vita_gxm_memory.c | 181 + .../vitagxm/SDL_render_vita_gxm_memory.h | 44 + .../vitagxm/SDL_render_vita_gxm_shaders.h | 284 + .../vitagxm/SDL_render_vita_gxm_tools.c | 1217 + .../vitagxm/SDL_render_vita_gxm_tools.h | 66 + .../vitagxm/SDL_render_vita_gxm_types.h | 215 + .../src/render/vitagxm/shader_src/clear_f.cg | 4 + .../src/render/vitagxm/shader_src/clear_v.cg | 4 + .../src/render/vitagxm/shader_src/color_f.cg | 4 + .../src/render/vitagxm/shader_src/color_v.cg | 13 + .../render/vitagxm/shader_src/texture_f.cg | 4 + .../render/vitagxm/shader_src/texture_v.cg | 14 + engine/lib/sdl/src/sensor/SDL_sensor.c | 540 + engine/lib/sdl/src/sensor/SDL_sensor_c.h | 44 + engine/lib/sdl/src/sensor/SDL_syssensor.h | 109 + .../src/sensor/android/SDL_androidsensor.c | 207 + .../src/sensor/android/SDL_androidsensor.h | 30 + .../sensor/coremotion/SDL_coremotionsensor.h | 29 + .../sensor/coremotion/SDL_coremotionsensor.m | 217 + .../sdl/src/sensor/dummy/SDL_dummysensor.c | 99 + .../sdl/src/sensor/dummy/SDL_dummysensor.h | 23 + .../lib/sdl/src/sensor/n3ds/SDL_n3dssensor.c | 207 + .../lib/sdl/src/sensor/vita/SDL_vitasensor.c | 212 + .../lib/sdl/src/sensor/vita/SDL_vitasensor.h | 31 + .../src/sensor/windows/SDL_windowssensor.c | 478 + .../src/sensor/windows/SDL_windowssensor.h | 23 + engine/lib/sdl/src/stdlib/SDL_crc16.c | 57 + engine/lib/sdl/src/stdlib/SDL_crc32.c | 55 + engine/lib/sdl/src/stdlib/SDL_getenv.c | 306 + engine/lib/sdl/src/stdlib/SDL_iconv.c | 861 + engine/lib/sdl/src/stdlib/SDL_malloc.c | 5343 +++ engine/lib/sdl/src/stdlib/SDL_mslibc.c | 719 + engine/lib/sdl/src/stdlib/SDL_qsort.c | 578 + engine/lib/sdl/src/stdlib/SDL_stdlib.c | 633 + engine/lib/sdl/src/stdlib/SDL_string.c | 2028 + engine/lib/sdl/src/stdlib/SDL_strtokr.c | 100 + engine/lib/sdl/src/stdlib/SDL_vacopy.h | 36 + engine/lib/sdl/src/test/SDL_test_assert.c | 146 + engine/lib/sdl/src/test/SDL_test_common.c | 2501 ++ engine/lib/sdl/src/test/SDL_test_compare.c | 140 + engine/lib/sdl/src/test/SDL_test_crc32.c | 165 + engine/lib/sdl/src/test/SDL_test_font.c | 3495 ++ engine/lib/sdl/src/test/SDL_test_fuzzer.c | 507 + engine/lib/sdl/src/test/SDL_test_harness.c | 690 + engine/lib/sdl/src/test/SDL_test_imageBlit.c | 1666 + .../sdl/src/test/SDL_test_imageBlitBlend.c | 2947 ++ engine/lib/sdl/src/test/SDL_test_imageFace.c | 238 + .../sdl/src/test/SDL_test_imagePrimitives.c | 519 + .../src/test/SDL_test_imagePrimitivesBlend.c | 692 + engine/lib/sdl/src/test/SDL_test_log.c | 122 + engine/lib/sdl/src/test/SDL_test_md5.c | 347 + engine/lib/sdl/src/test/SDL_test_memory.c | 424 + engine/lib/sdl/src/test/SDL_test_random.c | 104 + engine/lib/sdl/src/thread/SDL_systhread.h | 86 + engine/lib/sdl/src/thread/SDL_thread.c | 518 + engine/lib/sdl/src/thread/SDL_thread_c.h | 110 + .../lib/sdl/src/thread/generic/SDL_syscond.c | 233 + .../sdl/src/thread/generic/SDL_syscond_c.h | 42 + .../lib/sdl/src/thread/generic/SDL_sysmutex.c | 163 + .../sdl/src/thread/generic/SDL_sysmutex_c.h | 22 + .../lib/sdl/src/thread/generic/SDL_syssem.c | 202 + .../sdl/src/thread/generic/SDL_systhread.c | 64 + .../sdl/src/thread/generic/SDL_systhread_c.h | 26 + .../lib/sdl/src/thread/generic/SDL_systls.c | 45 + engine/lib/sdl/src/thread/n3ds/SDL_sysmutex.c | 88 + .../lib/sdl/src/thread/n3ds/SDL_sysmutex_c.h | 37 + engine/lib/sdl/src/thread/n3ds/SDL_syssem.c | 143 + .../lib/sdl/src/thread/n3ds/SDL_systhread.c | 139 + .../lib/sdl/src/thread/n3ds/SDL_systhread_c.h | 32 + .../lib/sdl/src/thread/ngage/SDL_sysmutex.cpp | 112 + .../lib/sdl/src/thread/ngage/SDL_syssem.cpp | 173 + .../sdl/src/thread/ngage/SDL_systhread.cpp | 115 + .../sdl/src/thread/ngage/SDL_systhread_c.h | 25 + engine/lib/sdl/src/thread/os2/SDL_sysmutex.c | 124 + engine/lib/sdl/src/thread/os2/SDL_syssem.c | 183 + engine/lib/sdl/src/thread/os2/SDL_systhread.c | 127 + .../lib/sdl/src/thread/os2/SDL_systhread_c.h | 25 + engine/lib/sdl/src/thread/os2/SDL_systls.c | 81 + engine/lib/sdl/src/thread/os2/SDL_systls_c.h | 30 + engine/lib/sdl/src/thread/ps2/SDL_syssem.c | 158 + engine/lib/sdl/src/thread/ps2/SDL_systhread.c | 140 + .../lib/sdl/src/thread/ps2/SDL_systhread_c.h | 24 + engine/lib/sdl/src/thread/psp/SDL_sysmutex.c | 148 + .../lib/sdl/src/thread/psp/SDL_sysmutex_c.h | 22 + engine/lib/sdl/src/thread/psp/SDL_syssem.c | 160 + engine/lib/sdl/src/thread/psp/SDL_systhread.c | 120 + .../lib/sdl/src/thread/psp/SDL_systhread_c.h | 24 + .../lib/sdl/src/thread/pthread/SDL_syscond.c | 152 + .../lib/sdl/src/thread/pthread/SDL_sysmutex.c | 190 + .../sdl/src/thread/pthread/SDL_sysmutex_c.h | 32 + .../lib/sdl/src/thread/pthread/SDL_syssem.c | 206 + .../sdl/src/thread/pthread/SDL_systhread.c | 298 + .../sdl/src/thread/pthread/SDL_systhread_c.h | 27 + .../lib/sdl/src/thread/pthread/SDL_systls.c | 81 + .../lib/sdl/src/thread/stdcpp/SDL_syscond.cpp | 151 + .../sdl/src/thread/stdcpp/SDL_sysmutex.cpp | 102 + .../sdl/src/thread/stdcpp/SDL_sysmutex_c.h | 30 + .../sdl/src/thread/stdcpp/SDL_systhread.cpp | 185 + .../sdl/src/thread/stdcpp/SDL_systhread_c.h | 26 + engine/lib/sdl/src/thread/vita/SDL_sysmutex.c | 144 + .../lib/sdl/src/thread/vita/SDL_sysmutex_c.h | 23 + engine/lib/sdl/src/thread/vita/SDL_syssem.c | 161 + .../lib/sdl/src/thread/vita/SDL_systhread.c | 137 + .../lib/sdl/src/thread/vita/SDL_systhread_c.h | 26 + .../sdl/src/thread/windows/SDL_syscond_cv.c | 287 + .../lib/sdl/src/thread/windows/SDL_sysmutex.c | 290 + .../sdl/src/thread/windows/SDL_sysmutex_c.h | 77 + .../lib/sdl/src/thread/windows/SDL_syssem.c | 444 + .../sdl/src/thread/windows/SDL_systhread.c | 204 + .../sdl/src/thread/windows/SDL_systhread_c.h | 32 + .../lib/sdl/src/thread/windows/SDL_systls.c | 96 + engine/lib/sdl/src/timer/SDL_timer.c | 484 + engine/lib/sdl/src/timer/SDL_timer_c.h | 40 + engine/lib/sdl/src/timer/dummy/SDL_systimer.c | 69 + engine/lib/sdl/src/timer/haiku/SDL_systimer.c | 74 + engine/lib/sdl/src/timer/n3ds/SDL_systimer.c | 75 + .../lib/sdl/src/timer/ngage/SDL_systimer.cpp | 92 + engine/lib/sdl/src/timer/os2/SDL_systimer.c | 180 + engine/lib/sdl/src/timer/ps2/SDL_systimer.c | 87 + engine/lib/sdl/src/timer/psp/SDL_systimer.c | 83 + engine/lib/sdl/src/timer/unix/SDL_systimer.c | 233 + engine/lib/sdl/src/timer/vita/SDL_systimer.c | 85 + .../lib/sdl/src/timer/windows/SDL_systimer.c | 170 + engine/lib/sdl/src/video/SDL_RLEaccel.c | 1594 + engine/lib/sdl/src/video/SDL_RLEaccel_c.h | 34 + engine/lib/sdl/src/video/SDL_blit.c | 289 + engine/lib/sdl/src/video/SDL_blit.h | 615 + engine/lib/sdl/src/video/SDL_blit_0.c | 957 + engine/lib/sdl/src/video/SDL_blit_1.c | 552 + engine/lib/sdl/src/video/SDL_blit_A.c | 1577 + engine/lib/sdl/src/video/SDL_blit_N.c | 3458 ++ engine/lib/sdl/src/video/SDL_blit_auto.c | 6997 ++++ engine/lib/sdl/src/video/SDL_blit_auto.h | 34 + engine/lib/sdl/src/video/SDL_blit_copy.c | 162 + engine/lib/sdl/src/video/SDL_blit_copy.h | 29 + engine/lib/sdl/src/video/SDL_blit_slow.c | 206 + engine/lib/sdl/src/video/SDL_blit_slow.h | 31 + engine/lib/sdl/src/video/SDL_bmp.c | 858 + engine/lib/sdl/src/video/SDL_clipboard.c | 146 + engine/lib/sdl/src/video/SDL_egl.c | 1280 + engine/lib/sdl/src/video/SDL_egl_c.h | 186 + engine/lib/sdl/src/video/SDL_fillrect.c | 453 + engine/lib/sdl/src/video/SDL_pixels.c | 1182 + engine/lib/sdl/src/video/SDL_pixels_c.h | 49 + engine/lib/sdl/src/video/SDL_rect.c | 115 + engine/lib/sdl/src/video/SDL_rect_c.h | 31 + engine/lib/sdl/src/video/SDL_rect_impl.h | 441 + engine/lib/sdl/src/video/SDL_shape.c | 341 + .../lib/sdl/src/video/SDL_shape_internals.h | 79 + engine/lib/sdl/src/video/SDL_stretch.c | 958 + engine/lib/sdl/src/video/SDL_surface.c | 1585 + engine/lib/sdl/src/video/SDL_sysvideo.h | 540 + engine/lib/sdl/src/video/SDL_video.c | 4937 +++ .../lib/sdl/src/video/SDL_vulkan_internal.h | 97 + engine/lib/sdl/src/video/SDL_vulkan_utils.c | 499 + engine/lib/sdl/src/video/SDL_yuv.c | 1989 + engine/lib/sdl/src/video/SDL_yuv_c.h | 38 + .../src/video/android/SDL_androidclipboard.c | 46 + .../src/video/android/SDL_androidclipboard.h | 32 + .../sdl/src/video/android/SDL_androidevents.c | 268 + .../sdl/src/video/android/SDL_androidevents.h | 28 + .../lib/sdl/src/video/android/SDL_androidgl.c | 88 + .../lib/sdl/src/video/android/SDL_androidgl.h | 33 + .../src/video/android/SDL_androidkeyboard.c | 385 + .../src/video/android/SDL_androidkeyboard.h | 35 + .../src/video/android/SDL_androidmessagebox.c | 36 + .../src/video/android/SDL_androidmessagebox.h | 29 + .../sdl/src/video/android/SDL_androidmouse.c | 256 + .../sdl/src/video/android/SDL_androidmouse.h | 33 + .../sdl/src/video/android/SDL_androidtouch.c | 89 + .../sdl/src/video/android/SDL_androidtouch.h | 29 + .../sdl/src/video/android/SDL_androidvideo.c | 302 + .../sdl/src/video/android/SDL_androidvideo.h | 52 + .../sdl/src/video/android/SDL_androidvulkan.c | 171 + .../sdl/src/video/android/SDL_androidvulkan.h | 52 + .../sdl/src/video/android/SDL_androidwindow.c | 222 + .../sdl/src/video/android/SDL_androidwindow.h | 52 + engine/lib/sdl/src/video/arm/pixman-arm-asm.h | 36 + .../sdl/src/video/arm/pixman-arm-neon-asm.S | 375 + .../sdl/src/video/arm/pixman-arm-neon-asm.h | 1184 + .../sdl/src/video/arm/pixman-arm-simd-asm.S | 532 + .../sdl/src/video/arm/pixman-arm-simd-asm.h | 1034 + .../sdl/src/video/cocoa/SDL_cocoaclipboard.h | 36 + .../sdl/src/video/cocoa/SDL_cocoaclipboard.m | 103 + .../lib/sdl/src/video/cocoa/SDL_cocoaevents.h | 34 + .../lib/sdl/src/video/cocoa/SDL_cocoaevents.m | 619 + .../sdl/src/video/cocoa/SDL_cocoakeyboard.h | 38 + .../sdl/src/video/cocoa/SDL_cocoakeyboard.m | 480 + .../sdl/src/video/cocoa/SDL_cocoamessagebox.h | 29 + .../sdl/src/video/cocoa/SDL_cocoamessagebox.m | 166 + .../sdl/src/video/cocoa/SDL_cocoametalview.h | 70 + .../sdl/src/video/cocoa/SDL_cocoametalview.m | 195 + .../lib/sdl/src/video/cocoa/SDL_cocoamodes.h | 46 + .../lib/sdl/src/video/cocoa/SDL_cocoamodes.m | 690 + .../lib/sdl/src/video/cocoa/SDL_cocoamouse.h | 53 + .../lib/sdl/src/video/cocoa/SDL_cocoamouse.m | 572 + .../lib/sdl/src/video/cocoa/SDL_cocoaopengl.h | 87 + .../lib/sdl/src/video/cocoa/SDL_cocoaopengl.m | 543 + .../sdl/src/video/cocoa/SDL_cocoaopengles.h | 49 + .../sdl/src/video/cocoa/SDL_cocoaopengles.m | 143 + .../lib/sdl/src/video/cocoa/SDL_cocoashape.h | 44 + .../lib/sdl/src/video/cocoa/SDL_cocoashape.m | 127 + .../lib/sdl/src/video/cocoa/SDL_cocoavideo.h | 121 + .../lib/sdl/src/video/cocoa/SDL_cocoavideo.m | 292 + .../lib/sdl/src/video/cocoa/SDL_cocoavulkan.h | 55 + .../lib/sdl/src/video/cocoa/SDL_cocoavulkan.m | 268 + .../lib/sdl/src/video/cocoa/SDL_cocoawindow.h | 179 + .../lib/sdl/src/video/cocoa/SDL_cocoawindow.m | 2546 ++ .../sdl/src/video/directfb/SDL_DirectFB_WM.c | 403 + .../sdl/src/video/directfb/SDL_DirectFB_WM.h | 56 + .../sdl/src/video/directfb/SDL_DirectFB_dyn.c | 115 + .../sdl/src/video/directfb/SDL_DirectFB_dyn.h | 41 + .../src/video/directfb/SDL_DirectFB_events.c | 723 + .../src/video/directfb/SDL_DirectFB_events.h | 34 + .../src/video/directfb/SDL_DirectFB_modes.c | 403 + .../src/video/directfb/SDL_DirectFB_modes.h | 59 + .../src/video/directfb/SDL_DirectFB_mouse.c | 373 + .../src/video/directfb/SDL_DirectFB_mouse.h | 44 + .../src/video/directfb/SDL_DirectFB_opengl.c | 318 + .../src/video/directfb/SDL_DirectFB_opengl.h | 64 + .../src/video/directfb/SDL_DirectFB_render.c | 1240 + .../src/video/directfb/SDL_DirectFB_render.h | 25 + .../src/video/directfb/SDL_DirectFB_shape.c | 138 + .../src/video/directfb/SDL_DirectFB_shape.h | 38 + .../src/video/directfb/SDL_DirectFB_video.c | 412 + .../src/video/directfb/SDL_DirectFB_video.h | 165 + .../src/video/directfb/SDL_DirectFB_vulkan.c | 169 + .../src/video/directfb/SDL_DirectFB_vulkan.h | 47 + .../src/video/directfb/SDL_DirectFB_window.c | 547 + .../src/video/directfb/SDL_DirectFB_window.h | 83 + .../lib/sdl/src/video/dummy/SDL_nullevents.c | 40 + .../sdl/src/video/dummy/SDL_nullevents_c.h | 33 + .../sdl/src/video/dummy/SDL_nullframebuffer.c | 84 + .../src/video/dummy/SDL_nullframebuffer_c.h | 33 + .../lib/sdl/src/video/dummy/SDL_nullvideo.c | 177 + .../lib/sdl/src/video/dummy/SDL_nullvideo.h | 30 + .../video/emscripten/SDL_emscriptenevents.c | 1047 + .../video/emscripten/SDL_emscriptenevents.h | 38 + .../emscripten/SDL_emscriptenframebuffer.c | 179 + .../emscripten/SDL_emscriptenframebuffer.h | 32 + .../video/emscripten/SDL_emscriptenmouse.c | 245 + .../video/emscripten/SDL_emscriptenmouse.h | 41 + .../video/emscripten/SDL_emscriptenopengles.c | 100 + .../video/emscripten/SDL_emscriptenopengles.h | 48 + .../video/emscripten/SDL_emscriptenvideo.c | 381 + .../video/emscripten/SDL_emscriptenvideo.h | 57 + engine/lib/sdl/src/video/haiku/SDL_BApp.h | 427 + engine/lib/sdl/src/video/haiku/SDL_BWin.h | 754 + .../lib/sdl/src/video/haiku/SDL_bclipboard.cc | 95 + .../lib/sdl/src/video/haiku/SDL_bclipboard.h | 33 + engine/lib/sdl/src/video/haiku/SDL_bevents.cc | 41 + engine/lib/sdl/src/video/haiku/SDL_bevents.h | 39 + .../sdl/src/video/haiku/SDL_bframebuffer.cc | 129 + .../sdl/src/video/haiku/SDL_bframebuffer.h | 47 + .../lib/sdl/src/video/haiku/SDL_bkeyboard.cc | 190 + .../lib/sdl/src/video/haiku/SDL_bkeyboard.h | 44 + .../sdl/src/video/haiku/SDL_bmessagebox.cc | 400 + .../lib/sdl/src/video/haiku/SDL_bmessagebox.h | 45 + engine/lib/sdl/src/video/haiku/SDL_bmodes.cc | 306 + engine/lib/sdl/src/video/haiku/SDL_bmodes.h | 47 + engine/lib/sdl/src/video/haiku/SDL_bopengl.cc | 197 + engine/lib/sdl/src/video/haiku/SDL_bopengl.h | 54 + engine/lib/sdl/src/video/haiku/SDL_bvideo.cc | 319 + engine/lib/sdl/src/video/haiku/SDL_bvideo.h | 42 + engine/lib/sdl/src/video/haiku/SDL_bwindow.cc | 251 + engine/lib/sdl/src/video/haiku/SDL_bwindow.h | 52 + engine/lib/sdl/src/video/khronos/EGL/egl.h | 342 + engine/lib/sdl/src/video/khronos/EGL/eglext.h | 1507 + .../sdl/src/video/khronos/EGL/eglplatform.h | 175 + engine/lib/sdl/src/video/khronos/GLES2/gl2.h | 656 + .../lib/sdl/src/video/khronos/GLES2/gl2ext.h | 4101 ++ .../sdl/src/video/khronos/GLES2/gl2platform.h | 27 + .../sdl/src/video/khronos/KHR/khrplatform.h | 311 + .../vk_video/vulkan_video_codec_h264std.h | 312 + .../vulkan_video_codec_h264std_decode.h | 77 + .../vulkan_video_codec_h264std_encode.h | 147 + .../vk_video/vulkan_video_codec_h265std.h | 446 + .../vulkan_video_codec_h265std_decode.h | 67 + .../vulkan_video_codec_h265std_encode.h | 157 + .../vk_video/vulkan_video_codecs_common.h | 36 + .../lib/sdl/src/video/khronos/vulkan/vk_icd.h | 244 + .../sdl/src/video/khronos/vulkan/vk_layer.h | 189 + .../src/video/khronos/vulkan/vk_platform.h | 84 + .../video/khronos/vulkan/vk_sdk_platform.h | 69 + .../lib/sdl/src/video/khronos/vulkan/vulkan.h | 99 + .../src/video/khronos/vulkan/vulkan_android.h | 153 + .../src/video/khronos/vulkan/vulkan_beta.h | 216 + .../src/video/khronos/vulkan/vulkan_core.h | 19371 +++++++++ .../video/khronos/vulkan/vulkan_directfb.h | 55 + .../src/video/khronos/vulkan/vulkan_fuchsia.h | 262 + .../sdl/src/video/khronos/vulkan/vulkan_ggp.h | 60 + .../sdl/src/video/khronos/vulkan/vulkan_ios.h | 48 + .../src/video/khronos/vulkan/vulkan_macos.h | 48 + .../src/video/khronos/vulkan/vulkan_metal.h | 203 + .../src/video/khronos/vulkan/vulkan_screen.h | 108 + .../sdl/src/video/khronos/vulkan/vulkan_vi.h | 48 + .../src/video/khronos/vulkan/vulkan_wayland.h | 55 + .../src/video/khronos/vulkan/vulkan_win32.h | 342 + .../sdl/src/video/khronos/vulkan/vulkan_xcb.h | 56 + .../src/video/khronos/vulkan/vulkan_xlib.h | 56 + .../video/khronos/vulkan/vulkan_xlib_xrandr.h | 46 + .../lib/sdl/src/video/kmsdrm/SDL_kmsdrmdyn.c | 166 + .../lib/sdl/src/video/kmsdrm/SDL_kmsdrmdyn.h | 56 + .../sdl/src/video/kmsdrm/SDL_kmsdrmevents.c | 44 + .../sdl/src/video/kmsdrm/SDL_kmsdrmevents.h | 29 + .../sdl/src/video/kmsdrm/SDL_kmsdrmmouse.c | 451 + .../sdl/src/video/kmsdrm/SDL_kmsdrmmouse.h | 55 + .../sdl/src/video/kmsdrm/SDL_kmsdrmopengles.c | 214 + .../sdl/src/video/kmsdrm/SDL_kmsdrmopengles.h | 48 + .../lib/sdl/src/video/kmsdrm/SDL_kmsdrmsym.h | 149 + .../sdl/src/video/kmsdrm/SDL_kmsdrmvideo.c | 1740 + .../sdl/src/video/kmsdrm/SDL_kmsdrmvideo.h | 197 + .../sdl/src/video/kmsdrm/SDL_kmsdrmvulkan.c | 528 + .../sdl/src/video/kmsdrm/SDL_kmsdrmvulkan.h | 53 + .../lib/sdl/src/video/n3ds/SDL_n3dsevents.c | 46 + .../lib/sdl/src/video/n3ds/SDL_n3dsevents_c.h | 31 + .../sdl/src/video/n3ds/SDL_n3dsframebuffer.c | 169 + .../src/video/n3ds/SDL_n3dsframebuffer_c.h | 33 + engine/lib/sdl/src/video/n3ds/SDL_n3dsswkb.c | 70 + engine/lib/sdl/src/video/n3ds/SDL_n3dsswkb.h | 38 + engine/lib/sdl/src/video/n3ds/SDL_n3dstouch.c | 89 + engine/lib/sdl/src/video/n3ds/SDL_n3dstouch.h | 31 + engine/lib/sdl/src/video/n3ds/SDL_n3dsvideo.c | 260 + engine/lib/sdl/src/video/n3ds/SDL_n3dsvideo.h | 43 + .../lib/sdl/src/video/nacl/SDL_naclevents.c | 439 + .../lib/sdl/src/video/nacl/SDL_naclevents_c.h | 30 + engine/lib/sdl/src/video/nacl/SDL_naclglue.c | 24 + .../lib/sdl/src/video/nacl/SDL_naclopengles.c | 165 + .../lib/sdl/src/video/nacl/SDL_naclopengles.h | 38 + engine/lib/sdl/src/video/nacl/SDL_naclvideo.c | 187 + engine/lib/sdl/src/video/nacl/SDL_naclvideo.h | 67 + .../lib/sdl/src/video/nacl/SDL_naclwindow.c | 74 + .../lib/sdl/src/video/nacl/SDL_naclwindow.h | 32 + .../sdl/src/video/ngage/SDL_ngageevents.cpp | 196 + .../sdl/src/video/ngage/SDL_ngageevents_c.h | 28 + .../src/video/ngage/SDL_ngageframebuffer.cpp | 399 + .../src/video/ngage/SDL_ngageframebuffer_c.h | 38 + .../sdl/src/video/ngage/SDL_ngagevideo.cpp | 180 + .../lib/sdl/src/video/ngage/SDL_ngagevideo.h | 68 + .../sdl/src/video/ngage/SDL_ngagewindow.cpp | 127 + .../lib/sdl/src/video/ngage/SDL_ngagewindow.h | 44 + .../src/video/offscreen/SDL_offscreenevents.c | 40 + .../video/offscreen/SDL_offscreenevents_c.h | 25 + .../offscreen/SDL_offscreenframebuffer.c | 85 + .../offscreen/SDL_offscreenframebuffer_c.h | 27 + .../video/offscreen/SDL_offscreenopengles.c | 86 + .../video/offscreen/SDL_offscreenopengles.h | 46 + .../src/video/offscreen/SDL_offscreenvideo.c | 134 + .../src/video/offscreen/SDL_offscreenvideo.h | 30 + .../src/video/offscreen/SDL_offscreenwindow.c | 87 + .../src/video/offscreen/SDL_offscreenwindow.h | 42 + engine/lib/sdl/src/video/os2/SDL_gradd.h | 171 + engine/lib/sdl/src/video/os2/SDL_os2dive.c | 331 + .../lib/sdl/src/video/os2/SDL_os2messagebox.c | 561 + .../lib/sdl/src/video/os2/SDL_os2messagebox.h | 29 + engine/lib/sdl/src/video/os2/SDL_os2mouse.c | 194 + engine/lib/sdl/src/video/os2/SDL_os2mouse.h | 33 + engine/lib/sdl/src/video/os2/SDL_os2output.h | 59 + engine/lib/sdl/src/video/os2/SDL_os2util.c | 114 + engine/lib/sdl/src/video/os2/SDL_os2util.h | 38 + engine/lib/sdl/src/video/os2/SDL_os2video.c | 1699 + engine/lib/sdl/src/video/os2/SDL_os2video.h | 82 + engine/lib/sdl/src/video/os2/SDL_os2vman.c | 483 + .../lib/sdl/src/video/pandora/SDL_pandora.c | 789 + .../lib/sdl/src/video/pandora/SDL_pandora.h | 100 + .../src/video/pandora/SDL_pandora_events.c | 37 + .../src/video/pandora/SDL_pandora_events.h | 25 + engine/lib/sdl/src/video/ps2/SDL_ps2video.c | 135 + engine/lib/sdl/src/video/ps2/SDL_ps2video.h | 42 + engine/lib/sdl/src/video/psp/SDL_pspevents.c | 280 + .../lib/sdl/src/video/psp/SDL_pspevents_c.h | 29 + engine/lib/sdl/src/video/psp/SDL_pspgl.c | 195 + engine/lib/sdl/src/video/psp/SDL_pspgl_c.h | 52 + engine/lib/sdl/src/video/psp/SDL_pspmouse.c | 41 + engine/lib/sdl/src/video/psp/SDL_pspmouse_c.h | 24 + engine/lib/sdl/src/video/psp/SDL_pspvideo.c | 634 + engine/lib/sdl/src/video/psp/SDL_pspvideo.h | 102 + engine/lib/sdl/src/video/qnx/gl.c | 275 + engine/lib/sdl/src/video/qnx/keyboard.c | 132 + engine/lib/sdl/src/video/qnx/sdl_qnx.h | 48 + engine/lib/sdl/src/video/qnx/video.c | 347 + .../sdl/src/video/raspberry/SDL_rpievents.c | 43 + .../sdl/src/video/raspberry/SDL_rpievents_c.h | 29 + .../sdl/src/video/raspberry/SDL_rpimouse.c | 380 + .../sdl/src/video/raspberry/SDL_rpimouse.h | 43 + .../sdl/src/video/raspberry/SDL_rpiopengles.c | 69 + .../sdl/src/video/raspberry/SDL_rpiopengles.h | 49 + .../sdl/src/video/raspberry/SDL_rpivideo.c | 421 + .../sdl/src/video/raspberry/SDL_rpivideo.h | 108 + .../lib/sdl/src/video/riscos/SDL_riscosdefs.h | 53 + .../sdl/src/video/riscos/SDL_riscosevents.c | 179 + .../sdl/src/video/riscos/SDL_riscosevents_c.h | 35 + .../src/video/riscos/SDL_riscosframebuffer.c | 129 + .../video/riscos/SDL_riscosframebuffer_c.h | 33 + .../src/video/riscos/SDL_riscosmessagebox.c | 70 + .../src/video/riscos/SDL_riscosmessagebox.h | 29 + .../sdl/src/video/riscos/SDL_riscosmodes.c | 310 + .../sdl/src/video/riscos/SDL_riscosmodes.h | 33 + .../sdl/src/video/riscos/SDL_riscosmouse.c | 83 + .../sdl/src/video/riscos/SDL_riscosmouse.h | 30 + .../sdl/src/video/riscos/SDL_riscosvideo.c | 130 + .../sdl/src/video/riscos/SDL_riscosvideo.h | 38 + .../sdl/src/video/riscos/SDL_riscoswindow.c | 77 + .../sdl/src/video/riscos/SDL_riscoswindow.h | 42 + .../sdl/src/video/riscos/scancodes_riscos.h | 158 + engine/lib/sdl/src/video/sdlgenblit.pl | 685 + .../src/video/uikit/SDL_uikitappdelegate.h | 47 + .../src/video/uikit/SDL_uikitappdelegate.m | 532 + .../sdl/src/video/uikit/SDL_uikitclipboard.h | 35 + .../sdl/src/video/uikit/SDL_uikitclipboard.m | 106 + .../lib/sdl/src/video/uikit/SDL_uikitevents.h | 39 + .../lib/sdl/src/video/uikit/SDL_uikitevents.m | 486 + .../sdl/src/video/uikit/SDL_uikitmessagebox.h | 31 + .../sdl/src/video/uikit/SDL_uikitmessagebox.m | 149 + .../sdl/src/video/uikit/SDL_uikitmetalview.h | 58 + .../sdl/src/video/uikit/SDL_uikitmetalview.m | 140 + .../lib/sdl/src/video/uikit/SDL_uikitmodes.h | 56 + .../lib/sdl/src/video/uikit/SDL_uikitmodes.m | 578 + .../sdl/src/video/uikit/SDL_uikitopengles.h | 44 + .../sdl/src/video/uikit/SDL_uikitopengles.m | 237 + .../sdl/src/video/uikit/SDL_uikitopenglview.h | 64 + .../sdl/src/video/uikit/SDL_uikitopenglview.m | 382 + .../lib/sdl/src/video/uikit/SDL_uikitvideo.h | 48 + .../lib/sdl/src/video/uikit/SDL_uikitvideo.m | 299 + .../lib/sdl/src/video/uikit/SDL_uikitview.h | 50 + .../lib/sdl/src/video/uikit/SDL_uikitview.m | 497 + .../src/video/uikit/SDL_uikitviewcontroller.h | 95 + .../src/video/uikit/SDL_uikitviewcontroller.m | 663 + .../lib/sdl/src/video/uikit/SDL_uikitvulkan.h | 54 + .../lib/sdl/src/video/uikit/SDL_uikitvulkan.m | 275 + .../lib/sdl/src/video/uikit/SDL_uikitwindow.h | 59 + .../lib/sdl/src/video/uikit/SDL_uikitwindow.m | 502 + .../sdl/src/video/vita/SDL_vitaframebuffer.c | 118 + .../sdl/src/video/vita/SDL_vitaframebuffer.h | 27 + .../lib/sdl/src/video/vita/SDL_vitagl_pvr.c | 126 + .../lib/sdl/src/video/vita/SDL_vitagl_pvr_c.h | 33 + engine/lib/sdl/src/video/vita/SDL_vitagles.c | 222 + .../lib/sdl/src/video/vita/SDL_vitagles_c.h | 55 + .../lib/sdl/src/video/vita/SDL_vitagles_pvr.c | 97 + .../sdl/src/video/vita/SDL_vitagles_pvr_c.h | 34 + .../lib/sdl/src/video/vita/SDL_vitakeyboard.c | 189 + .../lib/sdl/src/video/vita/SDL_vitakeyboard.h | 33 + .../sdl/src/video/vita/SDL_vitamessagebox.c | 127 + .../sdl/src/video/vita/SDL_vitamessagebox.h | 33 + engine/lib/sdl/src/video/vita/SDL_vitamouse.c | 105 + .../lib/sdl/src/video/vita/SDL_vitamouse_c.h | 33 + engine/lib/sdl/src/video/vita/SDL_vitatouch.c | 193 + engine/lib/sdl/src/video/vita/SDL_vitatouch.h | 35 + engine/lib/sdl/src/video/vita/SDL_vitavideo.c | 610 + engine/lib/sdl/src/video/vita/SDL_vitavideo.h | 119 + .../src/video/vivante/SDL_vivanteopengles.c | 45 + .../src/video/vivante/SDL_vivanteopengles.h | 48 + .../src/video/vivante/SDL_vivanteplatform.c | 51 + .../src/video/vivante/SDL_vivanteplatform.h | 47 + .../sdl/src/video/vivante/SDL_vivantevideo.c | 396 + .../sdl/src/video/vivante/SDL_vivantevideo.h | 91 + .../sdl/src/video/vivante/SDL_vivantevulkan.c | 152 + .../sdl/src/video/vivante/SDL_vivantevulkan.h | 52 + .../src/video/wayland/SDL_waylandclipboard.c | 204 + .../src/video/wayland/SDL_waylandclipboard.h | 35 + .../video/wayland/SDL_waylanddatamanager.c | 750 + .../video/wayland/SDL_waylanddatamanager.h | 161 + .../sdl/src/video/wayland/SDL_waylanddyn.c | 178 + .../sdl/src/video/wayland/SDL_waylanddyn.h | 188 + .../sdl/src/video/wayland/SDL_waylandevents.c | 2959 ++ .../src/video/wayland/SDL_waylandevents_c.h | 183 + .../src/video/wayland/SDL_waylandkeyboard.c | 155 + .../src/video/wayland/SDL_waylandkeyboard.h | 42 + .../src/video/wayland/SDL_waylandmessagebox.c | 252 + .../src/video/wayland/SDL_waylandmessagebox.h | 33 + .../sdl/src/video/wayland/SDL_waylandmouse.c | 660 + .../sdl/src/video/wayland/SDL_waylandmouse.h | 34 + .../src/video/wayland/SDL_waylandopengles.c | 216 + .../src/video/wayland/SDL_waylandopengles.h | 49 + .../src/video/wayland/SDL_waylandshmbuffer.c | 172 + .../src/video/wayland/SDL_waylandshmbuffer.h | 34 + .../sdl/src/video/wayland/SDL_waylandsym.h | 240 + .../sdl/src/video/wayland/SDL_waylandtouch.c | 282 + .../sdl/src/video/wayland/SDL_waylandtouch.h | 334 + .../sdl/src/video/wayland/SDL_waylandvideo.c | 1217 + .../sdl/src/video/wayland/SDL_waylandvideo.h | 140 + .../sdl/src/video/wayland/SDL_waylandvulkan.c | 178 + .../sdl/src/video/wayland/SDL_waylandvulkan.h | 52 + .../sdl/src/video/wayland/SDL_waylandwindow.c | 2395 ++ .../sdl/src/video/wayland/SDL_waylandwindow.h | 164 + engine/lib/sdl/src/video/windows/SDL_msctf.h | 246 + engine/lib/sdl/src/video/windows/SDL_vkeys.h | 76 + .../src/video/windows/SDL_windowsclipboard.c | 162 + .../src/video/windows/SDL_windowsclipboard.h | 36 + .../sdl/src/video/windows/SDL_windowsevents.c | 2122 + .../sdl/src/video/windows/SDL_windowsevents.h | 39 + .../video/windows/SDL_windowsframebuffer.c | 134 + .../video/windows/SDL_windowsframebuffer.h | 27 + .../src/video/windows/SDL_windowskeyboard.c | 1741 + .../src/video/windows/SDL_windowskeyboard.h | 42 + .../src/video/windows/SDL_windowsmessagebox.c | 1045 + .../src/video/windows/SDL_windowsmessagebox.h | 29 + .../sdl/src/video/windows/SDL_windowsmodes.c | 826 + .../sdl/src/video/windows/SDL_windowsmodes.h | 52 + .../sdl/src/video/windows/SDL_windowsmouse.c | 494 + .../sdl/src/video/windows/SDL_windowsmouse.h | 36 + .../sdl/src/video/windows/SDL_windowsopengl.c | 924 + .../sdl/src/video/windows/SDL_windowsopengl.h | 181 + .../src/video/windows/SDL_windowsopengles.c | 133 + .../src/video/windows/SDL_windowsopengles.h | 49 + .../sdl/src/video/windows/SDL_windowsshape.c | 126 + .../sdl/src/video/windows/SDL_windowsshape.h | 41 + .../sdl/src/video/windows/SDL_windowsvideo.c | 704 + .../sdl/src/video/windows/SDL_windowsvideo.h | 479 + .../sdl/src/video/windows/SDL_windowsvulkan.c | 172 + .../sdl/src/video/windows/SDL_windowsvulkan.h | 52 + .../sdl/src/video/windows/SDL_windowswindow.c | 1490 + .../sdl/src/video/windows/SDL_windowswindow.h | 121 + engine/lib/sdl/src/video/windows/wmmsg.h | 1052 + .../sdl/src/video/winrt/SDL_winrtevents.cpp | 146 + .../sdl/src/video/winrt/SDL_winrtevents_c.h | 83 + .../sdl/src/video/winrt/SDL_winrtgamebar.cpp | 188 + .../src/video/winrt/SDL_winrtgamebar_cpp.h | 35 + .../sdl/src/video/winrt/SDL_winrtkeyboard.cpp | 479 + .../src/video/winrt/SDL_winrtmessagebox.cpp | 114 + .../sdl/src/video/winrt/SDL_winrtmessagebox.h | 29 + .../sdl/src/video/winrt/SDL_winrtmouse.cpp | 236 + .../sdl/src/video/winrt/SDL_winrtmouse_c.h | 40 + .../sdl/src/video/winrt/SDL_winrtopengles.cpp | 210 + .../sdl/src/video/winrt/SDL_winrtopengles.h | 69 + .../src/video/winrt/SDL_winrtpointerinput.cpp | 397 + .../sdl/src/video/winrt/SDL_winrtvideo.cpp | 872 + .../sdl/src/video/winrt/SDL_winrtvideo_cpp.h | 107 + .../lib/sdl/src/video/x11/SDL_x11clipboard.c | 271 + .../lib/sdl/src/video/x11/SDL_x11clipboard.h | 49 + engine/lib/sdl/src/video/x11/SDL_x11dyn.c | 206 + engine/lib/sdl/src/video/x11/SDL_x11dyn.h | 106 + engine/lib/sdl/src/video/x11/SDL_x11events.c | 1812 + engine/lib/sdl/src/video/x11/SDL_x11events.h | 35 + .../sdl/src/video/x11/SDL_x11framebuffer.c | 258 + .../sdl/src/video/x11/SDL_x11framebuffer.h | 36 + .../lib/sdl/src/video/x11/SDL_x11keyboard.c | 506 + .../lib/sdl/src/video/x11/SDL_x11keyboard.h | 40 + .../lib/sdl/src/video/x11/SDL_x11messagebox.c | 876 + .../lib/sdl/src/video/x11/SDL_x11messagebox.h | 33 + engine/lib/sdl/src/video/x11/SDL_x11modes.c | 895 + engine/lib/sdl/src/video/x11/SDL_x11modes.h | 74 + engine/lib/sdl/src/video/x11/SDL_x11mouse.c | 496 + engine/lib/sdl/src/video/x11/SDL_x11mouse.h | 41 + engine/lib/sdl/src/video/x11/SDL_x11opengl.c | 1030 + engine/lib/sdl/src/video/x11/SDL_x11opengl.h | 96 + .../lib/sdl/src/video/x11/SDL_x11opengles.c | 109 + .../lib/sdl/src/video/x11/SDL_x11opengles.h | 56 + engine/lib/sdl/src/video/x11/SDL_x11shape.c | 131 + engine/lib/sdl/src/video/x11/SDL_x11shape.h | 40 + engine/lib/sdl/src/video/x11/SDL_x11sym.h | 334 + engine/lib/sdl/src/video/x11/SDL_x11touch.c | 48 + engine/lib/sdl/src/video/x11/SDL_x11touch.h | 32 + engine/lib/sdl/src/video/x11/SDL_x11video.c | 513 + engine/lib/sdl/src/video/x11/SDL_x11video.h | 167 + engine/lib/sdl/src/video/x11/SDL_x11vulkan.c | 239 + engine/lib/sdl/src/video/x11/SDL_x11vulkan.h | 48 + engine/lib/sdl/src/video/x11/SDL_x11window.c | 1940 + engine/lib/sdl/src/video/x11/SDL_x11window.h | 124 + engine/lib/sdl/src/video/x11/SDL_x11xfixes.c | 214 + engine/lib/sdl/src/video/x11/SDL_x11xfixes.h | 41 + engine/lib/sdl/src/video/x11/SDL_x11xinput2.c | 525 + engine/lib/sdl/src/video/x11/SDL_x11xinput2.h | 44 + engine/lib/sdl/src/video/x11/edid-parse.c | 754 + engine/lib/sdl/src/video/x11/edid.h | 167 + engine/lib/sdl/src/video/yuv2rgb/LICENSE | 27 + engine/lib/sdl/src/video/yuv2rgb/README.md | 63 + engine/lib/sdl/src/video/yuv2rgb/yuv_rgb.h | 33 + .../sdl/src/video/yuv2rgb/yuv_rgb_common.h | 13 + .../sdl/src/video/yuv2rgb/yuv_rgb_internal.h | 74 + .../lib/sdl/src/video/yuv2rgb/yuv_rgb_lsx.c | 44 + .../lib/sdl/src/video/yuv2rgb/yuv_rgb_lsx.h | 407 + .../sdl/src/video/yuv2rgb/yuv_rgb_lsx_func.h | 372 + .../lib/sdl/src/video/yuv2rgb/yuv_rgb_sse.c | 464 + .../lib/sdl/src/video/yuv2rgb/yuv_rgb_sse.h | 266 + .../sdl/src/video/yuv2rgb/yuv_rgb_sse_func.h | 529 + .../lib/sdl/src/video/yuv2rgb/yuv_rgb_std.c | 179 + .../lib/sdl/src/video/yuv2rgb/yuv_rgb_std.h | 131 + .../sdl/src/video/yuv2rgb/yuv_rgb_std_func.h | 242 + engine/lib/sdl/visualtest/COPYING.txt | 18 + engine/lib/sdl/visualtest/Makefile.in | 44 + engine/lib/sdl/visualtest/README.txt | 214 + engine/lib/sdl/visualtest/acinclude.m4 | 337 + engine/lib/sdl/visualtest/autogen.sh | 11 + .../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 + engine/lib/sdl/visualtest/configure | 4442 +++ engine/lib/sdl/visualtest/configure.ac | 41 + engine/lib/sdl/visualtest/docs/Doxyfile | 1936 + .../SDL_visualtest_action_configparser.h | 149 + .../SDL_visualtest_exhaustive_variator.h | 64 + .../SDL_visualtest_harness_argparser.h | 75 + .../include/SDL_visualtest_mischelper.h | 28 + .../include/SDL_visualtest_parsehelper.h | 46 + .../include/SDL_visualtest_process.h | 112 + .../include/SDL_visualtest_random_variator.h | 61 + .../include/SDL_visualtest_rwhelper.h | 87 + .../include/SDL_visualtest_screenshot.h | 52 + .../include/SDL_visualtest_sut_configparser.h | 105 + .../include/SDL_visualtest_variator_common.h | 122 + .../include/SDL_visualtest_variators.h | 66 + engine/lib/sdl/visualtest/launch_harness.cmd | 2 + engine/lib/sdl/visualtest/launch_harness.sh | 6 + .../sdl/visualtest/src/action_configparser.c | 399 + .../sdl/visualtest/src/harness_argparser.c | 358 + .../sdl/visualtest/src/linux/linux_process.c | 208 + engine/lib/sdl/visualtest/src/mischelper.c | 28 + engine/lib/sdl/visualtest/src/parsehelper.c | 231 + engine/lib/sdl/visualtest/src/rwhelper.c | 131 + engine/lib/sdl/visualtest/src/screenshot.c | 136 + .../lib/sdl/visualtest/src/sut_configparser.c | 232 + engine/lib/sdl/visualtest/src/testharness.c | 532 + .../lib/sdl/visualtest/src/variator_common.c | 225 + .../sdl/visualtest/src/variator_exhaustive.c | 133 + .../lib/sdl/visualtest/src/variator_random.c | 113 + engine/lib/sdl/visualtest/src/variators.c | 95 + .../visualtest/src/windows/windows_process.c | 283 + .../src/windows/windows_screenshot.c | 349 + .../sdl/visualtest/testsprite2_sample.actions | 3 + .../sdl/visualtest/testsprite2_sample.config | 6 + .../visualtest/testsprite2_sample.parameters | 29 + .../sdl/visualtest/unittest/testquit.actions | 1 + engine/lib/sdl/visualtest/unittest/testquit.c | 102 + .../sdl/visualtest/unittest/testquit.config | 5 + .../visualtest/unittest/testquit.parameters | 3 + .../sdl/wayland-protocols/cursor-shape-v1.xml | 147 + .../wayland-protocols/fractional-scale-v1.xml | 102 + .../idle-inhibit-unstable-v1.xml | 83 + ...keyboard-shortcuts-inhibit-unstable-v1.xml | 143 + .../pointer-constraints-unstable-v1.xml | 339 + .../primary-selection-unstable-v1.xml | 225 + .../relative-pointer-unstable-v1.xml | 136 + .../wayland-protocols/tablet-unstable-v2.xml | 1178 + .../text-input-unstable-v3.xml | 452 + .../lib/sdl/wayland-protocols/viewporter.xml | 186 + engine/lib/sdl/wayland-protocols/wayland.xml | 3058 ++ .../wayland-protocols/xdg-activation-v1.xml | 186 + .../xdg-decoration-unstable-v1.xml | 156 + .../xdg-output-unstable-v1.xml | 220 + .../lib/sdl/wayland-protocols/xdg-shell.xml | 1383 + .../xdg-toplevel-icon-v1.xml | 205 + engine/source/platformSDL/sdlInput.cpp | 359 + engine/source/platformSDL/sdlInput.h | 55 + engine/source/platformSDL/sdlMsgBox.cpp | 175 + engine/source/platformSDL/sdlTextInput.cpp | 188 + engine/source/platformSDL/sdlTextInput.h | 85 + .../source/platformX86UNIX/platformX86UNIX.h | 3 - engine/source/platformX86UNIX/x86UNIXGL.cc | 8 +- engine/source/platformX86UNIX/x86UNIXInput.cc | 374 +- .../platformX86UNIX/x86UNIXInputManager.cc | 748 +- .../platformX86UNIX/x86UNIXInputManager.h | 51 +- .../platformX86UNIX/x86UNIXMessageBox.cc | 510 - .../platformX86UNIX/x86UNIXMessageBox.h | 123 - .../source/platformX86UNIX/x86UNIXOGLVideo.cc | 459 +- .../source/platformX86UNIX/x86UNIXOGLVideo.h | 15 +- .../platformX86UNIX/x86UNIXProcessControl.cc | 2 +- engine/source/platformX86UNIX/x86UNIXState.h | 188 +- .../source/platformX86UNIX/x86UNIXWindow.cc | 731 +- engine/source/testing/tests/sdlKeyMapTests.cc | 193 + .../source/testing/tests/sdlTextInputTests.cc | 237 + generate-make.sh | 8 +- 1532 files changed, 581250 insertions(+), 2609 deletions(-) create mode 100644 engine/lib/sdl/.clang-format create mode 100644 engine/lib/sdl/.editorconfig create mode 100644 engine/lib/sdl/.gitignore create mode 100644 engine/lib/sdl/.wikiheaders-options create mode 100644 engine/lib/sdl/Android.mk create mode 100644 engine/lib/sdl/BUGS.txt create mode 100644 engine/lib/sdl/CMakeLists.txt create mode 100644 engine/lib/sdl/CREDITS.txt create mode 100644 engine/lib/sdl/INSTALL.txt create mode 100644 engine/lib/sdl/LICENSE.txt create mode 100644 engine/lib/sdl/Makefile.in create mode 100644 engine/lib/sdl/Makefile.minimal create mode 100644 engine/lib/sdl/Makefile.os2 create mode 100644 engine/lib/sdl/Makefile.pandora create mode 100644 engine/lib/sdl/Makefile.w32 create mode 100644 engine/lib/sdl/README-SDL.txt create mode 100644 engine/lib/sdl/README-TORQUE2D.md create mode 100644 engine/lib/sdl/README.md create mode 100644 engine/lib/sdl/SDL2.spec.in create mode 100644 engine/lib/sdl/SDL2Config.cmake.in create mode 100644 engine/lib/sdl/TODO.txt create mode 100644 engine/lib/sdl/VisualC-GDK/clean.sh create mode 100644 engine/lib/sdl/VisualC-GDK/logos/Logo100x100.png create mode 100644 engine/lib/sdl/VisualC-GDK/logos/Logo150x150.png create mode 100644 engine/lib/sdl/VisualC-GDK/logos/Logo44x44.png create mode 100644 engine/lib/sdl/VisualC-GDK/logos/Logo480x480.png create mode 100644 engine/lib/sdl/VisualC-GDK/logos/SplashScreenImage.png create mode 100644 engine/lib/sdl/VisualC-GDK/shaders/D3D12_PixelShader_Colors.hlsl create mode 100644 engine/lib/sdl/VisualC-GDK/shaders/D3D12_PixelShader_NV12_BT601.hlsl create mode 100644 engine/lib/sdl/VisualC-GDK/shaders/D3D12_PixelShader_NV12_BT709.hlsl create mode 100644 engine/lib/sdl/VisualC-GDK/shaders/D3D12_PixelShader_NV12_JPEG.hlsl create mode 100644 engine/lib/sdl/VisualC-GDK/shaders/D3D12_PixelShader_NV21_BT601.hlsl create mode 100644 engine/lib/sdl/VisualC-GDK/shaders/D3D12_PixelShader_NV21_BT709.hlsl create mode 100644 engine/lib/sdl/VisualC-GDK/shaders/D3D12_PixelShader_NV21_JPEG.hlsl create mode 100644 engine/lib/sdl/VisualC-GDK/shaders/D3D12_PixelShader_Textures.hlsl create mode 100644 engine/lib/sdl/VisualC-GDK/shaders/D3D12_PixelShader_YUV_BT601.hlsl create mode 100644 engine/lib/sdl/VisualC-GDK/shaders/D3D12_PixelShader_YUV_BT709.hlsl create mode 100644 engine/lib/sdl/VisualC-GDK/shaders/D3D12_PixelShader_YUV_JPEG.hlsl create mode 100644 engine/lib/sdl/VisualC-GDK/shaders/D3D12_VertexShader.hlsl create mode 100644 engine/lib/sdl/VisualC-GDK/shaders/buildshaders.bat create mode 100644 engine/lib/sdl/VisualC-GDK/tests/testgamecontroller/PackageLayout.xml create mode 100644 engine/lib/sdl/VisualC-GDK/tests/testgamecontroller/wingdk/MicrosoftGame.config create mode 100644 engine/lib/sdl/VisualC-GDK/tests/testgamecontroller/xboxone/MicrosoftGame.config create mode 100644 engine/lib/sdl/VisualC-GDK/tests/testgamecontroller/xboxseries/MicrosoftGame.config create mode 100644 engine/lib/sdl/VisualC-GDK/tests/testgdk/PackageLayout.xml create mode 100644 engine/lib/sdl/VisualC-GDK/tests/testgdk/src/testgdk.cpp create mode 100644 engine/lib/sdl/VisualC-GDK/tests/testgdk/wingdk/MicrosoftGame.config create mode 100644 engine/lib/sdl/VisualC-GDK/tests/testgdk/xboxone/MicrosoftGame.config create mode 100644 engine/lib/sdl/VisualC-GDK/tests/testgdk/xboxseries/MicrosoftGame.config create mode 100644 engine/lib/sdl/VisualC-GDK/tests/testsprite2/PackageLayout.xml create mode 100644 engine/lib/sdl/VisualC-GDK/tests/testsprite2/wingdk/MicrosoftGame.config create mode 100644 engine/lib/sdl/VisualC-GDK/tests/testsprite2/xboxone/MicrosoftGame.config create mode 100644 engine/lib/sdl/VisualC-GDK/tests/testsprite2/xboxseries/MicrosoftGame.config create mode 100755 engine/lib/sdl/VisualC/clean.sh create mode 100644 engine/lib/sdl/WhatsNew.txt create mode 100644 engine/lib/sdl/Xcode-iOS/Demos/Default.png create mode 100644 engine/lib/sdl/Xcode-iOS/Demos/Demos.xcodeproj/project.pbxproj create mode 100644 engine/lib/sdl/Xcode-iOS/Demos/Icon.png create mode 100644 engine/lib/sdl/Xcode-iOS/Demos/README create mode 100644 engine/lib/sdl/Xcode-iOS/Demos/config.xcconfig create mode 100644 engine/lib/sdl/Xcode-iOS/Demos/data/bitmapfont/kromasky_16x16.bmp create mode 100644 engine/lib/sdl/Xcode-iOS/Demos/data/bitmapfont/license.txt create mode 100644 engine/lib/sdl/Xcode-iOS/Demos/data/drums/ds_brush_snare.wav create mode 100644 engine/lib/sdl/Xcode-iOS/Demos/data/drums/ds_china.wav create mode 100644 engine/lib/sdl/Xcode-iOS/Demos/data/drums/ds_kick_big_amb.wav create mode 100644 engine/lib/sdl/Xcode-iOS/Demos/data/drums/ds_loose_skin_mute.wav create mode 100644 engine/lib/sdl/Xcode-iOS/Demos/data/icon.bmp create mode 100644 engine/lib/sdl/Xcode-iOS/Demos/data/ship.bmp create mode 100644 engine/lib/sdl/Xcode-iOS/Demos/data/space.bmp create mode 100644 engine/lib/sdl/Xcode-iOS/Demos/data/stroke.bmp create mode 100644 engine/lib/sdl/Xcode-iOS/Demos/iOS Launch Screen.storyboard create mode 100644 engine/lib/sdl/Xcode-iOS/Demos/src/accelerometer.c create mode 100644 engine/lib/sdl/Xcode-iOS/Demos/src/common.c create mode 100644 engine/lib/sdl/Xcode-iOS/Demos/src/common.h create mode 100644 engine/lib/sdl/Xcode-iOS/Demos/src/fireworks.c create mode 100644 engine/lib/sdl/Xcode-iOS/Demos/src/happy.c create mode 100644 engine/lib/sdl/Xcode-iOS/Demos/src/keyboard.c create mode 100644 engine/lib/sdl/Xcode-iOS/Demos/src/mixer.c create mode 100644 engine/lib/sdl/Xcode-iOS/Demos/src/rectangles.c create mode 100644 engine/lib/sdl/Xcode-iOS/Demos/src/touch.c create mode 100644 engine/lib/sdl/Xcode/SDL/Info-Framework.plist create mode 100644 engine/lib/sdl/Xcode/SDL/SDL.xcodeproj/project.pbxproj create mode 100644 engine/lib/sdl/Xcode/SDL/SDL.xcodeproj/xcshareddata/xcschemes/Framework-iOS.xcscheme create mode 100644 engine/lib/sdl/Xcode/SDL/SDL.xcodeproj/xcshareddata/xcschemes/xcFramework-iOS.xcscheme create mode 100644 engine/lib/sdl/Xcode/SDL/SDL2/Info.plist create mode 100644 engine/lib/sdl/Xcode/SDL/pkg-support/SDL.info create mode 100644 engine/lib/sdl/Xcode/SDL/pkg-support/resources/License.txt create mode 100644 engine/lib/sdl/Xcode/SDL/pkg-support/resources/ReadMe.txt create mode 100644 engine/lib/sdl/Xcode/SDL/pkg-support/resources/SDL_DS_Store create mode 100644 engine/lib/sdl/Xcode/SDL/pkg-support/sdl_logo.pdf create mode 100644 engine/lib/sdl/Xcode/SDLTest/SDLTest.xcodeproj/project.pbxproj create mode 100644 engine/lib/sdl/Xcode/SDLTest/TestDropFile-Info.plist create mode 100644 engine/lib/sdl/Xcode/SDLTest/config.xcconfig create mode 100644 engine/lib/sdl/Xcode/XcodeDocSet/Doxyfile create mode 100644 engine/lib/sdl/acinclude/ac_check_define.m4 create mode 100644 engine/lib/sdl/acinclude/alsa.m4 create mode 100644 engine/lib/sdl/acinclude/ax_check_compiler_flags.m4 create mode 100644 engine/lib/sdl/acinclude/ax_compute_relative_paths.m4 create mode 100644 engine/lib/sdl/acinclude/ax_gcc_archflag.m4 create mode 100644 engine/lib/sdl/acinclude/ax_gcc_x86_cpuid.m4 create mode 100644 engine/lib/sdl/acinclude/ax_normalize_path.m4 create mode 100644 engine/lib/sdl/acinclude/ax_recursive_eval.m4 create mode 100644 engine/lib/sdl/acinclude/esd.m4 create mode 100644 engine/lib/sdl/acinclude/libtool.m4 create mode 100644 engine/lib/sdl/acinclude/ltoptions.m4 create mode 100644 engine/lib/sdl/acinclude/ltsugar.m4 create mode 100644 engine/lib/sdl/acinclude/ltversion.m4 create mode 100644 engine/lib/sdl/acinclude/lt~obsolete.m4 create mode 100644 engine/lib/sdl/acinclude/pkg.m4 create mode 100644 engine/lib/sdl/android-project-ant/AndroidManifest.xml create mode 100644 engine/lib/sdl/android-project-ant/ant.properties create mode 100644 engine/lib/sdl/android-project-ant/build.properties create mode 100644 engine/lib/sdl/android-project-ant/build.xml create mode 100644 engine/lib/sdl/android-project-ant/default.properties create mode 100644 engine/lib/sdl/android-project-ant/jni/Android.mk create mode 100644 engine/lib/sdl/android-project-ant/jni/Application.mk create mode 100644 engine/lib/sdl/android-project-ant/jni/src/Android.mk create mode 100644 engine/lib/sdl/android-project-ant/jni/src/Android_static.mk create mode 100644 engine/lib/sdl/android-project-ant/proguard-project.txt create mode 100644 engine/lib/sdl/android-project-ant/project.properties create mode 100644 engine/lib/sdl/android-project-ant/res/drawable-hdpi/ic_launcher.png create mode 100644 engine/lib/sdl/android-project-ant/res/drawable-mdpi/ic_launcher.png create mode 100644 engine/lib/sdl/android-project-ant/res/drawable-xhdpi/ic_launcher.png create mode 100644 engine/lib/sdl/android-project-ant/res/drawable-xxhdpi/ic_launcher.png create mode 100644 engine/lib/sdl/android-project-ant/res/layout/main.xml create mode 100644 engine/lib/sdl/android-project-ant/res/values/strings.xml create mode 100644 engine/lib/sdl/android-project-ant/src create mode 100644 engine/lib/sdl/android-project/app/build.gradle create mode 100644 engine/lib/sdl/android-project/app/jni/Android.mk create mode 100644 engine/lib/sdl/android-project/app/jni/Application.mk create mode 100644 engine/lib/sdl/android-project/app/jni/CMakeLists.txt create mode 100644 engine/lib/sdl/android-project/app/jni/src/Android.mk create mode 100644 engine/lib/sdl/android-project/app/jni/src/CMakeLists.txt create mode 100644 engine/lib/sdl/android-project/app/proguard-rules.pro create mode 100644 engine/lib/sdl/android-project/app/src/main/AndroidManifest.xml create mode 100644 engine/lib/sdl/android-project/app/src/main/java/org/libsdl/app/HIDDevice.java create mode 100644 engine/lib/sdl/android-project/app/src/main/java/org/libsdl/app/HIDDeviceBLESteamController.java create mode 100644 engine/lib/sdl/android-project/app/src/main/java/org/libsdl/app/HIDDeviceManager.java create mode 100644 engine/lib/sdl/android-project/app/src/main/java/org/libsdl/app/HIDDeviceUSB.java create mode 100644 engine/lib/sdl/android-project/app/src/main/java/org/libsdl/app/SDL.java create mode 100644 engine/lib/sdl/android-project/app/src/main/java/org/libsdl/app/SDLActivity.java create mode 100644 engine/lib/sdl/android-project/app/src/main/java/org/libsdl/app/SDLAudioManager.java create mode 100644 engine/lib/sdl/android-project/app/src/main/java/org/libsdl/app/SDLControllerManager.java create mode 100644 engine/lib/sdl/android-project/app/src/main/java/org/libsdl/app/SDLSurface.java create mode 100644 engine/lib/sdl/android-project/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 engine/lib/sdl/android-project/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 engine/lib/sdl/android-project/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 engine/lib/sdl/android-project/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 engine/lib/sdl/android-project/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 engine/lib/sdl/android-project/app/src/main/res/values/colors.xml create mode 100644 engine/lib/sdl/android-project/app/src/main/res/values/strings.xml create mode 100644 engine/lib/sdl/android-project/app/src/main/res/values/styles.xml create mode 100644 engine/lib/sdl/android-project/build.gradle create mode 100644 engine/lib/sdl/android-project/gradle.properties create mode 100644 engine/lib/sdl/android-project/gradle/wrapper/gradle-wrapper.jar create mode 100644 engine/lib/sdl/android-project/gradle/wrapper/gradle-wrapper.properties create mode 100755 engine/lib/sdl/android-project/gradlew create mode 100644 engine/lib/sdl/android-project/gradlew.bat create mode 100644 engine/lib/sdl/android-project/settings.gradle create mode 100755 engine/lib/sdl/autogen.sh create mode 100644 engine/lib/sdl/build-scripts/android-prefab.sh create mode 100755 engine/lib/sdl/build-scripts/androidbuild.sh create mode 100755 engine/lib/sdl/build-scripts/androidbuildlibs.sh create mode 100644 engine/lib/sdl/build-scripts/build-release.py create mode 100755 engine/lib/sdl/build-scripts/checker-buildbot.sh create mode 100755 engine/lib/sdl/build-scripts/clang++-fat.sh create mode 100755 engine/lib/sdl/build-scripts/clang-fat.sh create mode 100644 engine/lib/sdl/build-scripts/clang-format-src.sh create mode 100644 engine/lib/sdl/build-scripts/cmake-toolchain-mingw64-i686.cmake create mode 100644 engine/lib/sdl/build-scripts/cmake-toolchain-mingw64-x86_64.cmake create mode 100755 engine/lib/sdl/build-scripts/codechecker-buildbot.sh create mode 100755 engine/lib/sdl/build-scripts/config.guess create mode 100755 engine/lib/sdl/build-scripts/config.sub create mode 100644 engine/lib/sdl/build-scripts/create-release.py create mode 100755 engine/lib/sdl/build-scripts/emscripten-buildbot.sh create mode 100755 engine/lib/sdl/build-scripts/fnsince.pl create mode 100644 engine/lib/sdl/build-scripts/gen_audio_channel_conversion.c create mode 100644 engine/lib/sdl/build-scripts/gen_audio_resampler_filter.c create mode 100755 engine/lib/sdl/build-scripts/git-pre-push-hook.pl create mode 100755 engine/lib/sdl/build-scripts/install-sh create mode 100644 engine/lib/sdl/build-scripts/ltmain.sh create mode 100755 engine/lib/sdl/build-scripts/mkinstalldirs create mode 100755 engine/lib/sdl/build-scripts/nacl-buildbot.sh create mode 100755 engine/lib/sdl/build-scripts/naclbuild.sh create mode 100755 engine/lib/sdl/build-scripts/raspberrypi-buildbot.sh create mode 100644 engine/lib/sdl/build-scripts/release-info.json create mode 100644 engine/lib/sdl/build-scripts/setup-gdk-desktop.py create mode 100755 engine/lib/sdl/build-scripts/showrev.sh create mode 100755 engine/lib/sdl/build-scripts/strip_fPIC.sh create mode 100644 engine/lib/sdl/build-scripts/test-versioning.sh create mode 100755 engine/lib/sdl/build-scripts/update-copyright.sh create mode 100644 engine/lib/sdl/build-scripts/update-version.sh create mode 100755 engine/lib/sdl/build-scripts/updaterev.sh create mode 100755 engine/lib/sdl/build-scripts/wikiheaders.pl create mode 100644 engine/lib/sdl/build-scripts/windows-buildbot-zipper.bat create mode 100644 engine/lib/sdl/cmake/CheckCPUArchitecture.cmake create mode 100644 engine/lib/sdl/cmake/macros.cmake create mode 100644 engine/lib/sdl/cmake/sdlchecks.cmake create mode 100644 engine/lib/sdl/cmake/sdlfind.cmake create mode 100644 engine/lib/sdl/cmake/sdlplatform.cmake create mode 100644 engine/lib/sdl/cmake/test/CMakeLists.txt create mode 100644 engine/lib/sdl/cmake/test/jni/Android.mk create mode 100644 engine/lib/sdl/cmake/test/main.swift create mode 100644 engine/lib/sdl/cmake/test/main_cli.c create mode 100644 engine/lib/sdl/cmake/test/main_gui.c create mode 100644 engine/lib/sdl/cmake/test/main_lib.c create mode 100644 engine/lib/sdl/cmake/test/sdltest.c create mode 100644 engine/lib/sdl/cmake/test/swift/module.modulemap create mode 100644 engine/lib/sdl/cmake/test/swift/shim.h create mode 100644 engine/lib/sdl/cmake/test/test_pkgconfig.sh create mode 100644 engine/lib/sdl/cmake/test/test_sdlconfig.sh create mode 100644 engine/lib/sdl/cmake_uninstall.cmake.in create mode 100755 engine/lib/sdl/configure create mode 100644 engine/lib/sdl/configure.ac create mode 100644 engine/lib/sdl/docs/CONTRIBUTING.md create mode 100644 engine/lib/sdl/docs/README-android.md create mode 100644 engine/lib/sdl/docs/README-cmake.md create mode 100644 engine/lib/sdl/docs/README-directfb.md create mode 100644 engine/lib/sdl/docs/README-dynapi.md create mode 100644 engine/lib/sdl/docs/README-emscripten.md create mode 100644 engine/lib/sdl/docs/README-gdk.md create mode 100644 engine/lib/sdl/docs/README-gesture.md create mode 100644 engine/lib/sdl/docs/README-git.md create mode 100644 engine/lib/sdl/docs/README-hg.md create mode 100644 engine/lib/sdl/docs/README-ios.md create mode 100644 engine/lib/sdl/docs/README-kmsbsd.md create mode 100644 engine/lib/sdl/docs/README-linux.md create mode 100644 engine/lib/sdl/docs/README-macos.md create mode 100644 engine/lib/sdl/docs/README-n3ds.md create mode 100644 engine/lib/sdl/docs/README-nacl.md create mode 100644 engine/lib/sdl/docs/README-ngage.md create mode 100644 engine/lib/sdl/docs/README-os2.md create mode 100644 engine/lib/sdl/docs/README-pandora.md create mode 100644 engine/lib/sdl/docs/README-platforms.md create mode 100644 engine/lib/sdl/docs/README-porting.md create mode 100644 engine/lib/sdl/docs/README-ps2.md create mode 100644 engine/lib/sdl/docs/README-psp.md create mode 100644 engine/lib/sdl/docs/README-raspberrypi.md create mode 100644 engine/lib/sdl/docs/README-riscos.md create mode 100644 engine/lib/sdl/docs/README-touch.md create mode 100644 engine/lib/sdl/docs/README-versions.md create mode 100644 engine/lib/sdl/docs/README-visualc.md create mode 100644 engine/lib/sdl/docs/README-vita.md create mode 100644 engine/lib/sdl/docs/README-wince.md create mode 100644 engine/lib/sdl/docs/README-windows.md create mode 100644 engine/lib/sdl/docs/README-winrt.md create mode 100644 engine/lib/sdl/docs/README.md create mode 100644 engine/lib/sdl/docs/doxyfile create mode 100644 engine/lib/sdl/docs/release_checklist.md create mode 100644 engine/lib/sdl/include/SDL.h create mode 100644 engine/lib/sdl/include/SDL_assert.h create mode 100644 engine/lib/sdl/include/SDL_atomic.h create mode 100644 engine/lib/sdl/include/SDL_audio.h create mode 100644 engine/lib/sdl/include/SDL_bits.h create mode 100644 engine/lib/sdl/include/SDL_blendmode.h create mode 100644 engine/lib/sdl/include/SDL_clipboard.h create mode 100644 engine/lib/sdl/include/SDL_config.h create mode 100644 engine/lib/sdl/include/SDL_config.h.cmake create mode 100644 engine/lib/sdl/include/SDL_config.h.in create mode 100644 engine/lib/sdl/include/SDL_config_android.h create mode 100644 engine/lib/sdl/include/SDL_config_emscripten.h create mode 100644 engine/lib/sdl/include/SDL_config_iphoneos.h create mode 100644 engine/lib/sdl/include/SDL_config_macosx.h create mode 100644 engine/lib/sdl/include/SDL_config_minimal.h create mode 100644 engine/lib/sdl/include/SDL_config_ngage.h create mode 100644 engine/lib/sdl/include/SDL_config_os2.h create mode 100644 engine/lib/sdl/include/SDL_config_pandora.h create mode 100644 engine/lib/sdl/include/SDL_config_windows.h create mode 100644 engine/lib/sdl/include/SDL_config_wingdk.h create mode 100644 engine/lib/sdl/include/SDL_config_winrt.h create mode 100644 engine/lib/sdl/include/SDL_config_xbox.h create mode 100644 engine/lib/sdl/include/SDL_copying.h create mode 100644 engine/lib/sdl/include/SDL_cpuinfo.h create mode 100644 engine/lib/sdl/include/SDL_egl.h create mode 100644 engine/lib/sdl/include/SDL_endian.h create mode 100644 engine/lib/sdl/include/SDL_error.h create mode 100644 engine/lib/sdl/include/SDL_events.h create mode 100644 engine/lib/sdl/include/SDL_filesystem.h create mode 100644 engine/lib/sdl/include/SDL_gamecontroller.h create mode 100644 engine/lib/sdl/include/SDL_gesture.h create mode 100644 engine/lib/sdl/include/SDL_guid.h create mode 100644 engine/lib/sdl/include/SDL_haptic.h create mode 100644 engine/lib/sdl/include/SDL_hidapi.h create mode 100644 engine/lib/sdl/include/SDL_hints.h create mode 100644 engine/lib/sdl/include/SDL_joystick.h create mode 100644 engine/lib/sdl/include/SDL_keyboard.h create mode 100644 engine/lib/sdl/include/SDL_keycode.h create mode 100644 engine/lib/sdl/include/SDL_loadso.h create mode 100644 engine/lib/sdl/include/SDL_locale.h create mode 100644 engine/lib/sdl/include/SDL_log.h create mode 100644 engine/lib/sdl/include/SDL_main.h create mode 100644 engine/lib/sdl/include/SDL_messagebox.h create mode 100644 engine/lib/sdl/include/SDL_metal.h create mode 100644 engine/lib/sdl/include/SDL_misc.h create mode 100644 engine/lib/sdl/include/SDL_mouse.h create mode 100644 engine/lib/sdl/include/SDL_mutex.h create mode 100644 engine/lib/sdl/include/SDL_name.h create mode 100644 engine/lib/sdl/include/SDL_opengl.h create mode 100644 engine/lib/sdl/include/SDL_opengl_glext.h create mode 100644 engine/lib/sdl/include/SDL_opengles.h create mode 100644 engine/lib/sdl/include/SDL_opengles2.h create mode 100644 engine/lib/sdl/include/SDL_opengles2_gl2.h create mode 100644 engine/lib/sdl/include/SDL_opengles2_gl2ext.h create mode 100644 engine/lib/sdl/include/SDL_opengles2_gl2platform.h create mode 100644 engine/lib/sdl/include/SDL_opengles2_khrplatform.h create mode 100644 engine/lib/sdl/include/SDL_pixels.h create mode 100644 engine/lib/sdl/include/SDL_platform.h create mode 100644 engine/lib/sdl/include/SDL_power.h create mode 100644 engine/lib/sdl/include/SDL_quit.h create mode 100644 engine/lib/sdl/include/SDL_rect.h create mode 100644 engine/lib/sdl/include/SDL_render.h create mode 100644 engine/lib/sdl/include/SDL_revision.h create mode 100644 engine/lib/sdl/include/SDL_revision.h.cmake create mode 100644 engine/lib/sdl/include/SDL_rwops.h create mode 100644 engine/lib/sdl/include/SDL_scancode.h create mode 100644 engine/lib/sdl/include/SDL_sensor.h create mode 100644 engine/lib/sdl/include/SDL_shape.h create mode 100644 engine/lib/sdl/include/SDL_stdinc.h create mode 100644 engine/lib/sdl/include/SDL_surface.h create mode 100644 engine/lib/sdl/include/SDL_system.h create mode 100644 engine/lib/sdl/include/SDL_syswm.h create mode 100644 engine/lib/sdl/include/SDL_test.h create mode 100644 engine/lib/sdl/include/SDL_test_assert.h create mode 100644 engine/lib/sdl/include/SDL_test_common.h create mode 100644 engine/lib/sdl/include/SDL_test_compare.h create mode 100644 engine/lib/sdl/include/SDL_test_crc32.h create mode 100644 engine/lib/sdl/include/SDL_test_font.h create mode 100644 engine/lib/sdl/include/SDL_test_fuzzer.h create mode 100644 engine/lib/sdl/include/SDL_test_harness.h create mode 100644 engine/lib/sdl/include/SDL_test_images.h create mode 100644 engine/lib/sdl/include/SDL_test_log.h create mode 100644 engine/lib/sdl/include/SDL_test_md5.h create mode 100644 engine/lib/sdl/include/SDL_test_memory.h create mode 100644 engine/lib/sdl/include/SDL_test_random.h create mode 100644 engine/lib/sdl/include/SDL_thread.h create mode 100644 engine/lib/sdl/include/SDL_timer.h create mode 100644 engine/lib/sdl/include/SDL_touch.h create mode 100644 engine/lib/sdl/include/SDL_types.h create mode 100644 engine/lib/sdl/include/SDL_version.h create mode 100644 engine/lib/sdl/include/SDL_video.h create mode 100644 engine/lib/sdl/include/SDL_vulkan.h create mode 100644 engine/lib/sdl/include/begin_code.h create mode 100644 engine/lib/sdl/include/close_code.h create mode 100644 engine/lib/sdl/mingw/pkg-support/INSTALL.txt create mode 100644 engine/lib/sdl/sdl2-config-version.cmake.in create mode 100644 engine/lib/sdl/sdl2-config.cmake.in create mode 100644 engine/lib/sdl/sdl2-config.in create mode 100644 engine/lib/sdl/sdl2.m4 create mode 100644 engine/lib/sdl/sdl2.pc.in create mode 100644 engine/lib/sdl/src/SDL.c create mode 100644 engine/lib/sdl/src/SDL_assert.c create mode 100644 engine/lib/sdl/src/SDL_assert_c.h create mode 100644 engine/lib/sdl/src/SDL_dataqueue.c create mode 100644 engine/lib/sdl/src/SDL_dataqueue.h create mode 100644 engine/lib/sdl/src/SDL_error.c create mode 100644 engine/lib/sdl/src/SDL_error_c.h create mode 100644 engine/lib/sdl/src/SDL_guid.c create mode 100644 engine/lib/sdl/src/SDL_hints.c create mode 100644 engine/lib/sdl/src/SDL_hints_c.h create mode 100644 engine/lib/sdl/src/SDL_internal.h create mode 100644 engine/lib/sdl/src/SDL_list.c create mode 100644 engine/lib/sdl/src/SDL_list.h create mode 100644 engine/lib/sdl/src/SDL_log.c create mode 100644 engine/lib/sdl/src/SDL_log_c.h create mode 100644 engine/lib/sdl/src/SDL_utils.c create mode 100644 engine/lib/sdl/src/SDL_utils_c.h create mode 100644 engine/lib/sdl/src/atomic/SDL_atomic.c create mode 100644 engine/lib/sdl/src/atomic/SDL_spinlock.c create mode 100644 engine/lib/sdl/src/audio/SDL_audio.c create mode 100644 engine/lib/sdl/src/audio/SDL_audio_c.h create mode 100644 engine/lib/sdl/src/audio/SDL_audio_channel_converters.h create mode 100644 engine/lib/sdl/src/audio/SDL_audio_resampler_filter.h create mode 100644 engine/lib/sdl/src/audio/SDL_audiocvt.c create mode 100644 engine/lib/sdl/src/audio/SDL_audiodev.c create mode 100644 engine/lib/sdl/src/audio/SDL_audiodev_c.h create mode 100644 engine/lib/sdl/src/audio/SDL_audiotypecvt.c create mode 100644 engine/lib/sdl/src/audio/SDL_mixer.c create mode 100644 engine/lib/sdl/src/audio/SDL_sysaudio.h create mode 100644 engine/lib/sdl/src/audio/SDL_wave.c create mode 100644 engine/lib/sdl/src/audio/SDL_wave.h create mode 100644 engine/lib/sdl/src/audio/aaudio/SDL_aaudio.c create mode 100644 engine/lib/sdl/src/audio/aaudio/SDL_aaudio.h create mode 100644 engine/lib/sdl/src/audio/aaudio/SDL_aaudiofuncs.h create mode 100644 engine/lib/sdl/src/audio/alsa/SDL_alsa_audio.c create mode 100644 engine/lib/sdl/src/audio/alsa/SDL_alsa_audio.h create mode 100644 engine/lib/sdl/src/audio/android/SDL_androidaudio.c create mode 100644 engine/lib/sdl/src/audio/android/SDL_androidaudio.h create mode 100644 engine/lib/sdl/src/audio/arts/SDL_artsaudio.c create mode 100644 engine/lib/sdl/src/audio/arts/SDL_artsaudio.h create mode 100644 engine/lib/sdl/src/audio/coreaudio/SDL_coreaudio.h create mode 100644 engine/lib/sdl/src/audio/coreaudio/SDL_coreaudio.m create mode 100644 engine/lib/sdl/src/audio/directsound/SDL_directsound.c create mode 100644 engine/lib/sdl/src/audio/directsound/SDL_directsound.h create mode 100644 engine/lib/sdl/src/audio/disk/SDL_diskaudio.c create mode 100644 engine/lib/sdl/src/audio/disk/SDL_diskaudio.h create mode 100644 engine/lib/sdl/src/audio/dsp/SDL_dspaudio.c create mode 100644 engine/lib/sdl/src/audio/dsp/SDL_dspaudio.h create mode 100644 engine/lib/sdl/src/audio/dummy/SDL_dummyaudio.c create mode 100644 engine/lib/sdl/src/audio/dummy/SDL_dummyaudio.h create mode 100644 engine/lib/sdl/src/audio/emscripten/SDL_emscriptenaudio.c create mode 100644 engine/lib/sdl/src/audio/emscripten/SDL_emscriptenaudio.h create mode 100644 engine/lib/sdl/src/audio/esd/SDL_esdaudio.c create mode 100644 engine/lib/sdl/src/audio/esd/SDL_esdaudio.h create mode 100644 engine/lib/sdl/src/audio/fusionsound/SDL_fsaudio.c create mode 100644 engine/lib/sdl/src/audio/fusionsound/SDL_fsaudio.h create mode 100644 engine/lib/sdl/src/audio/haiku/SDL_haikuaudio.cc create mode 100644 engine/lib/sdl/src/audio/haiku/SDL_haikuaudio.h create mode 100644 engine/lib/sdl/src/audio/jack/SDL_jackaudio.c create mode 100644 engine/lib/sdl/src/audio/jack/SDL_jackaudio.h create mode 100644 engine/lib/sdl/src/audio/n3ds/SDL_n3dsaudio.c create mode 100644 engine/lib/sdl/src/audio/n3ds/SDL_n3dsaudio.h create mode 100644 engine/lib/sdl/src/audio/nacl/SDL_naclaudio.c create mode 100644 engine/lib/sdl/src/audio/nacl/SDL_naclaudio.h create mode 100644 engine/lib/sdl/src/audio/nas/SDL_nasaudio.c create mode 100644 engine/lib/sdl/src/audio/nas/SDL_nasaudio.h create mode 100644 engine/lib/sdl/src/audio/netbsd/SDL_netbsdaudio.c create mode 100644 engine/lib/sdl/src/audio/netbsd/SDL_netbsdaudio.h create mode 100644 engine/lib/sdl/src/audio/openslES/SDL_openslES.c create mode 100644 engine/lib/sdl/src/audio/openslES/SDL_openslES.h create mode 100644 engine/lib/sdl/src/audio/os2/SDL_os2audio.c create mode 100644 engine/lib/sdl/src/audio/os2/SDL_os2audio.h create mode 100644 engine/lib/sdl/src/audio/paudio/SDL_paudio.c create mode 100644 engine/lib/sdl/src/audio/paudio/SDL_paudio.h create mode 100644 engine/lib/sdl/src/audio/pipewire/SDL_pipewire.c create mode 100644 engine/lib/sdl/src/audio/pipewire/SDL_pipewire.h create mode 100644 engine/lib/sdl/src/audio/ps2/SDL_ps2audio.c create mode 100644 engine/lib/sdl/src/audio/ps2/SDL_ps2audio.h create mode 100644 engine/lib/sdl/src/audio/psp/SDL_pspaudio.c create mode 100644 engine/lib/sdl/src/audio/psp/SDL_pspaudio.h create mode 100644 engine/lib/sdl/src/audio/pulseaudio/SDL_pulseaudio.c create mode 100644 engine/lib/sdl/src/audio/pulseaudio/SDL_pulseaudio.h create mode 100644 engine/lib/sdl/src/audio/qsa/SDL_qsa_audio.c create mode 100644 engine/lib/sdl/src/audio/qsa/SDL_qsa_audio.h create mode 100644 engine/lib/sdl/src/audio/sndio/SDL_sndioaudio.c create mode 100644 engine/lib/sdl/src/audio/sndio/SDL_sndioaudio.h create mode 100644 engine/lib/sdl/src/audio/sun/SDL_sunaudio.c create mode 100644 engine/lib/sdl/src/audio/sun/SDL_sunaudio.h create mode 100644 engine/lib/sdl/src/audio/vita/SDL_vitaaudio.c create mode 100644 engine/lib/sdl/src/audio/vita/SDL_vitaaudio.h create mode 100644 engine/lib/sdl/src/audio/wasapi/SDL_wasapi.c create mode 100644 engine/lib/sdl/src/audio/wasapi/SDL_wasapi.h create mode 100644 engine/lib/sdl/src/audio/wasapi/SDL_wasapi_win32.c create mode 100644 engine/lib/sdl/src/audio/wasapi/SDL_wasapi_winrt.cpp create mode 100644 engine/lib/sdl/src/audio/winmm/SDL_winmm.c create mode 100644 engine/lib/sdl/src/audio/winmm/SDL_winmm.h create mode 100644 engine/lib/sdl/src/core/android/SDL_android.c create mode 100644 engine/lib/sdl/src/core/android/SDL_android.h create mode 100644 engine/lib/sdl/src/core/freebsd/SDL_evdev_kbd_default_keyaccmap.h create mode 100644 engine/lib/sdl/src/core/freebsd/SDL_evdev_kbd_freebsd.c create mode 100644 engine/lib/sdl/src/core/gdk/SDL_gdk.cpp create mode 100644 engine/lib/sdl/src/core/gdk/SDL_gdk.h create mode 100644 engine/lib/sdl/src/core/linux/SDL_dbus.c create mode 100644 engine/lib/sdl/src/core/linux/SDL_dbus.h create mode 100644 engine/lib/sdl/src/core/linux/SDL_evdev.c create mode 100644 engine/lib/sdl/src/core/linux/SDL_evdev.h create mode 100644 engine/lib/sdl/src/core/linux/SDL_evdev_capabilities.c create mode 100644 engine/lib/sdl/src/core/linux/SDL_evdev_capabilities.h create mode 100644 engine/lib/sdl/src/core/linux/SDL_evdev_kbd.c create mode 100644 engine/lib/sdl/src/core/linux/SDL_evdev_kbd.h create mode 100644 engine/lib/sdl/src/core/linux/SDL_evdev_kbd_default_accents.h create mode 100644 engine/lib/sdl/src/core/linux/SDL_evdev_kbd_default_keymap.h create mode 100644 engine/lib/sdl/src/core/linux/SDL_fcitx.c create mode 100644 engine/lib/sdl/src/core/linux/SDL_fcitx.h create mode 100644 engine/lib/sdl/src/core/linux/SDL_ibus.c create mode 100644 engine/lib/sdl/src/core/linux/SDL_ibus.h create mode 100644 engine/lib/sdl/src/core/linux/SDL_ime.c create mode 100644 engine/lib/sdl/src/core/linux/SDL_ime.h create mode 100644 engine/lib/sdl/src/core/linux/SDL_sandbox.c create mode 100644 engine/lib/sdl/src/core/linux/SDL_sandbox.h create mode 100644 engine/lib/sdl/src/core/linux/SDL_threadprio.c create mode 100644 engine/lib/sdl/src/core/linux/SDL_udev.c create mode 100644 engine/lib/sdl/src/core/linux/SDL_udev.h create mode 100644 engine/lib/sdl/src/core/openbsd/SDL_wscons.h create mode 100644 engine/lib/sdl/src/core/openbsd/SDL_wscons_kbd.c create mode 100644 engine/lib/sdl/src/core/openbsd/SDL_wscons_mouse.c create mode 100644 engine/lib/sdl/src/core/os2/SDL_os2.c create mode 100644 engine/lib/sdl/src/core/os2/SDL_os2.h create mode 100644 engine/lib/sdl/src/core/os2/geniconv/geniconv.c create mode 100644 engine/lib/sdl/src/core/os2/geniconv/geniconv.h create mode 100644 engine/lib/sdl/src/core/os2/geniconv/iconv.h create mode 100644 engine/lib/sdl/src/core/os2/geniconv/makefile create mode 100644 engine/lib/sdl/src/core/os2/geniconv/os2cp.c create mode 100644 engine/lib/sdl/src/core/os2/geniconv/os2cp.h create mode 100644 engine/lib/sdl/src/core/os2/geniconv/os2iconv.c create mode 100644 engine/lib/sdl/src/core/os2/geniconv/sys2utf8.c create mode 100644 engine/lib/sdl/src/core/os2/geniconv/test.c create mode 100644 engine/lib/sdl/src/core/os2/iconv2.lbc create mode 100644 engine/lib/sdl/src/core/unix/SDL_poll.c create mode 100644 engine/lib/sdl/src/core/unix/SDL_poll.h create mode 100644 engine/lib/sdl/src/core/windows/SDL_directx.h create mode 100644 engine/lib/sdl/src/core/windows/SDL_hid.c create mode 100644 engine/lib/sdl/src/core/windows/SDL_hid.h create mode 100644 engine/lib/sdl/src/core/windows/SDL_immdevice.c create mode 100644 engine/lib/sdl/src/core/windows/SDL_immdevice.h create mode 100644 engine/lib/sdl/src/core/windows/SDL_windows.c create mode 100644 engine/lib/sdl/src/core/windows/SDL_windows.h create mode 100644 engine/lib/sdl/src/core/windows/SDL_xinput.c create mode 100644 engine/lib/sdl/src/core/windows/SDL_xinput.h create mode 100644 engine/lib/sdl/src/core/winrt/SDL_winrtapp_common.cpp create mode 100644 engine/lib/sdl/src/core/winrt/SDL_winrtapp_common.h create mode 100644 engine/lib/sdl/src/core/winrt/SDL_winrtapp_direct3d.cpp create mode 100644 engine/lib/sdl/src/core/winrt/SDL_winrtapp_direct3d.h create mode 100644 engine/lib/sdl/src/core/winrt/SDL_winrtapp_xaml.cpp create mode 100644 engine/lib/sdl/src/core/winrt/SDL_winrtapp_xaml.h create mode 100644 engine/lib/sdl/src/cpuinfo/SDL_cpuinfo.c create mode 100644 engine/lib/sdl/src/dynapi/SDL_dynapi.c create mode 100644 engine/lib/sdl/src/dynapi/SDL_dynapi.h create mode 100644 engine/lib/sdl/src/dynapi/SDL_dynapi_overrides.h create mode 100644 engine/lib/sdl/src/dynapi/SDL_dynapi_procs.h create mode 100755 engine/lib/sdl/src/dynapi/gendynapi.pl create mode 100644 engine/lib/sdl/src/events/SDL_clipboardevents.c create mode 100644 engine/lib/sdl/src/events/SDL_clipboardevents_c.h create mode 100644 engine/lib/sdl/src/events/SDL_displayevents.c create mode 100644 engine/lib/sdl/src/events/SDL_displayevents_c.h create mode 100644 engine/lib/sdl/src/events/SDL_dropevents.c create mode 100644 engine/lib/sdl/src/events/SDL_dropevents_c.h create mode 100644 engine/lib/sdl/src/events/SDL_events.c create mode 100644 engine/lib/sdl/src/events/SDL_events_c.h create mode 100644 engine/lib/sdl/src/events/SDL_gesture.c create mode 100644 engine/lib/sdl/src/events/SDL_gesture_c.h create mode 100644 engine/lib/sdl/src/events/SDL_keyboard.c create mode 100644 engine/lib/sdl/src/events/SDL_keyboard_c.h create mode 100644 engine/lib/sdl/src/events/SDL_keysym_to_scancode.c create mode 100644 engine/lib/sdl/src/events/SDL_keysym_to_scancode_c.h create mode 100644 engine/lib/sdl/src/events/SDL_mouse.c create mode 100644 engine/lib/sdl/src/events/SDL_mouse_c.h create mode 100644 engine/lib/sdl/src/events/SDL_quit.c create mode 100644 engine/lib/sdl/src/events/SDL_scancode_tables.c create mode 100644 engine/lib/sdl/src/events/SDL_scancode_tables_c.h create mode 100644 engine/lib/sdl/src/events/SDL_touch.c create mode 100644 engine/lib/sdl/src/events/SDL_touch_c.h create mode 100644 engine/lib/sdl/src/events/SDL_windowevents.c create mode 100644 engine/lib/sdl/src/events/SDL_windowevents_c.h create mode 100644 engine/lib/sdl/src/events/blank_cursor.h create mode 100644 engine/lib/sdl/src/events/default_cursor.h create mode 100644 engine/lib/sdl/src/events/imKStoUCS.c create mode 100644 engine/lib/sdl/src/events/imKStoUCS.h create mode 100644 engine/lib/sdl/src/events/scancodes_ascii.h create mode 100644 engine/lib/sdl/src/events/scancodes_darwin.h create mode 100644 engine/lib/sdl/src/events/scancodes_linux.h create mode 100644 engine/lib/sdl/src/events/scancodes_windows.h create mode 100644 engine/lib/sdl/src/events/scancodes_xfree86.h create mode 100644 engine/lib/sdl/src/file/SDL_rwops.c create mode 100644 engine/lib/sdl/src/file/cocoa/SDL_rwopsbundlesupport.h create mode 100644 engine/lib/sdl/src/file/cocoa/SDL_rwopsbundlesupport.m create mode 100644 engine/lib/sdl/src/file/n3ds/SDL_rwopsromfs.c create mode 100644 engine/lib/sdl/src/file/n3ds/SDL_rwopsromfs.h create mode 100644 engine/lib/sdl/src/filesystem/android/SDL_sysfilesystem.c create mode 100644 engine/lib/sdl/src/filesystem/cocoa/SDL_sysfilesystem.m create mode 100644 engine/lib/sdl/src/filesystem/dummy/SDL_sysfilesystem.c create mode 100644 engine/lib/sdl/src/filesystem/emscripten/SDL_sysfilesystem.c create mode 100644 engine/lib/sdl/src/filesystem/gdk/SDL_sysfilesystem.cpp create mode 100644 engine/lib/sdl/src/filesystem/haiku/SDL_sysfilesystem.cc create mode 100644 engine/lib/sdl/src/filesystem/n3ds/SDL_sysfilesystem.c create mode 100644 engine/lib/sdl/src/filesystem/nacl/SDL_sysfilesystem.c create mode 100644 engine/lib/sdl/src/filesystem/os2/SDL_sysfilesystem.c create mode 100644 engine/lib/sdl/src/filesystem/ps2/SDL_sysfilesystem.c create mode 100644 engine/lib/sdl/src/filesystem/psp/SDL_sysfilesystem.c create mode 100644 engine/lib/sdl/src/filesystem/riscos/SDL_sysfilesystem.c create mode 100644 engine/lib/sdl/src/filesystem/unix/SDL_sysfilesystem.c create mode 100644 engine/lib/sdl/src/filesystem/vita/SDL_sysfilesystem.c create mode 100644 engine/lib/sdl/src/filesystem/windows/SDL_sysfilesystem.c create mode 100644 engine/lib/sdl/src/filesystem/winrt/SDL_sysfilesystem.cpp create mode 100644 engine/lib/sdl/src/haptic/SDL_haptic.c create mode 100644 engine/lib/sdl/src/haptic/SDL_haptic_c.h create mode 100644 engine/lib/sdl/src/haptic/SDL_syshaptic.h create mode 100644 engine/lib/sdl/src/haptic/android/SDL_syshaptic.c create mode 100644 engine/lib/sdl/src/haptic/android/SDL_syshaptic_c.h create mode 100644 engine/lib/sdl/src/haptic/darwin/SDL_syshaptic.c create mode 100644 engine/lib/sdl/src/haptic/darwin/SDL_syshaptic_c.h create mode 100644 engine/lib/sdl/src/haptic/dummy/SDL_syshaptic.c create mode 100644 engine/lib/sdl/src/haptic/linux/SDL_syshaptic.c create mode 100644 engine/lib/sdl/src/haptic/windows/SDL_dinputhaptic.c create mode 100644 engine/lib/sdl/src/haptic/windows/SDL_dinputhaptic_c.h create mode 100644 engine/lib/sdl/src/haptic/windows/SDL_windowshaptic.c create mode 100644 engine/lib/sdl/src/haptic/windows/SDL_windowshaptic_c.h create mode 100644 engine/lib/sdl/src/haptic/windows/SDL_xinputhaptic.c create mode 100644 engine/lib/sdl/src/haptic/windows/SDL_xinputhaptic_c.h create mode 100644 engine/lib/sdl/src/hidapi/AUTHORS.txt create mode 100644 engine/lib/sdl/src/hidapi/HACKING.txt create mode 100644 engine/lib/sdl/src/hidapi/LICENSE-bsd.txt create mode 100644 engine/lib/sdl/src/hidapi/LICENSE-gpl3.txt create mode 100644 engine/lib/sdl/src/hidapi/LICENSE-orig.txt create mode 100644 engine/lib/sdl/src/hidapi/LICENSE.txt create mode 100644 engine/lib/sdl/src/hidapi/Makefile.am create mode 100644 engine/lib/sdl/src/hidapi/README.txt create mode 100644 engine/lib/sdl/src/hidapi/SDL_hidapi.c create mode 100644 engine/lib/sdl/src/hidapi/SDL_hidapi_c.h create mode 100644 engine/lib/sdl/src/hidapi/android/hid.cpp create mode 100644 engine/lib/sdl/src/hidapi/android/jni/Android.mk create mode 100644 engine/lib/sdl/src/hidapi/android/jni/Application.mk create mode 100644 engine/lib/sdl/src/hidapi/android/project.properties create mode 100755 engine/lib/sdl/src/hidapi/bootstrap create mode 100644 engine/lib/sdl/src/hidapi/configure.ac create mode 100644 engine/lib/sdl/src/hidapi/doxygen/Doxyfile create mode 100644 engine/lib/sdl/src/hidapi/hidapi/hidapi.h create mode 100644 engine/lib/sdl/src/hidapi/hidtest/Makefile.am create mode 100644 engine/lib/sdl/src/hidapi/hidtest/hidtest.cpp create mode 100644 engine/lib/sdl/src/hidapi/ios/Makefile-manual create mode 100644 engine/lib/sdl/src/hidapi/ios/Makefile.am create mode 100644 engine/lib/sdl/src/hidapi/ios/hid.m create mode 100644 engine/lib/sdl/src/hidapi/libusb/Makefile-manual create mode 100644 engine/lib/sdl/src/hidapi/libusb/Makefile.am create mode 100644 engine/lib/sdl/src/hidapi/libusb/Makefile.freebsd create mode 100644 engine/lib/sdl/src/hidapi/libusb/Makefile.linux create mode 100644 engine/lib/sdl/src/hidapi/libusb/hid.c create mode 100644 engine/lib/sdl/src/hidapi/libusb/hidusb.cpp create mode 100644 engine/lib/sdl/src/hidapi/linux/Makefile-manual create mode 100644 engine/lib/sdl/src/hidapi/linux/Makefile.am create mode 100644 engine/lib/sdl/src/hidapi/linux/README.txt create mode 100644 engine/lib/sdl/src/hidapi/linux/hid.c create mode 100644 engine/lib/sdl/src/hidapi/linux/hidraw.cpp create mode 100644 engine/lib/sdl/src/hidapi/m4/ax_pthread.m4 create mode 100644 engine/lib/sdl/src/hidapi/m4/pkg.m4 create mode 100644 engine/lib/sdl/src/hidapi/mac/Makefile-manual create mode 100644 engine/lib/sdl/src/hidapi/mac/Makefile.am create mode 100644 engine/lib/sdl/src/hidapi/mac/hid.c create mode 100644 engine/lib/sdl/src/hidapi/pc/hidapi-hidraw.pc.in create mode 100644 engine/lib/sdl/src/hidapi/pc/hidapi-libusb.pc.in create mode 100644 engine/lib/sdl/src/hidapi/pc/hidapi.pc.in create mode 100644 engine/lib/sdl/src/hidapi/testgui/Makefile-manual create mode 100644 engine/lib/sdl/src/hidapi/testgui/Makefile.am create mode 100644 engine/lib/sdl/src/hidapi/testgui/Makefile.freebsd create mode 100644 engine/lib/sdl/src/hidapi/testgui/Makefile.linux create mode 100644 engine/lib/sdl/src/hidapi/testgui/Makefile.mac create mode 100644 engine/lib/sdl/src/hidapi/testgui/Makefile.mingw create mode 100644 engine/lib/sdl/src/hidapi/testgui/TestGUI.app.in/Contents/Info.plist create mode 100644 engine/lib/sdl/src/hidapi/testgui/TestGUI.app.in/Contents/PkgInfo create mode 100644 engine/lib/sdl/src/hidapi/testgui/TestGUI.app.in/Contents/Resources/English.lproj/InfoPlist.strings create mode 100644 engine/lib/sdl/src/hidapi/testgui/TestGUI.app.in/Contents/Resources/Signal11.icns create mode 100755 engine/lib/sdl/src/hidapi/testgui/copy_to_bundle.sh create mode 100644 engine/lib/sdl/src/hidapi/testgui/mac_support.cpp create mode 100644 engine/lib/sdl/src/hidapi/testgui/mac_support.h create mode 100644 engine/lib/sdl/src/hidapi/testgui/mac_support_cocoa.m create mode 100755 engine/lib/sdl/src/hidapi/testgui/start.sh create mode 100644 engine/lib/sdl/src/hidapi/testgui/test.cpp create mode 100644 engine/lib/sdl/src/hidapi/udev/99-hid.rules create mode 100644 engine/lib/sdl/src/hidapi/windows/Makefile-manual create mode 100644 engine/lib/sdl/src/hidapi/windows/Makefile.am create mode 100644 engine/lib/sdl/src/hidapi/windows/Makefile.mingw create mode 100644 engine/lib/sdl/src/hidapi/windows/ddk_build/hidapi.def create mode 100644 engine/lib/sdl/src/hidapi/windows/ddk_build/makefile create mode 100644 engine/lib/sdl/src/hidapi/windows/ddk_build/sources create mode 100644 engine/lib/sdl/src/hidapi/windows/hid.c create mode 100644 engine/lib/sdl/src/joystick/SDL_gamecontroller.c create mode 100644 engine/lib/sdl/src/joystick/SDL_gamecontrollerdb.h create mode 100644 engine/lib/sdl/src/joystick/SDL_joystick.c create mode 100644 engine/lib/sdl/src/joystick/SDL_joystick_c.h create mode 100644 engine/lib/sdl/src/joystick/SDL_steam_virtual_gamepad.c create mode 100644 engine/lib/sdl/src/joystick/SDL_steam_virtual_gamepad.h create mode 100644 engine/lib/sdl/src/joystick/SDL_sysjoystick.h create mode 100644 engine/lib/sdl/src/joystick/android/SDL_sysjoystick.c create mode 100644 engine/lib/sdl/src/joystick/android/SDL_sysjoystick_c.h create mode 100644 engine/lib/sdl/src/joystick/bsd/SDL_bsdjoystick.c create mode 100755 engine/lib/sdl/src/joystick/check_8bitdo.sh create mode 100644 engine/lib/sdl/src/joystick/controller_list.h create mode 100644 engine/lib/sdl/src/joystick/controller_type.c create mode 100644 engine/lib/sdl/src/joystick/controller_type.h create mode 100644 engine/lib/sdl/src/joystick/darwin/SDL_iokitjoystick.c create mode 100644 engine/lib/sdl/src/joystick/darwin/SDL_iokitjoystick_c.h create mode 100644 engine/lib/sdl/src/joystick/dummy/SDL_sysjoystick.c create mode 100644 engine/lib/sdl/src/joystick/emscripten/SDL_sysjoystick.c create mode 100644 engine/lib/sdl/src/joystick/emscripten/SDL_sysjoystick_c.h create mode 100644 engine/lib/sdl/src/joystick/haiku/SDL_haikujoystick.cc create mode 100644 engine/lib/sdl/src/joystick/hidapi/SDL_hidapi_combined.c create mode 100644 engine/lib/sdl/src/joystick/hidapi/SDL_hidapi_gamecube.c create mode 100644 engine/lib/sdl/src/joystick/hidapi/SDL_hidapi_luna.c create mode 100644 engine/lib/sdl/src/joystick/hidapi/SDL_hidapi_nintendo.h create mode 100644 engine/lib/sdl/src/joystick/hidapi/SDL_hidapi_ps3.c create mode 100644 engine/lib/sdl/src/joystick/hidapi/SDL_hidapi_ps4.c create mode 100644 engine/lib/sdl/src/joystick/hidapi/SDL_hidapi_ps5.c create mode 100644 engine/lib/sdl/src/joystick/hidapi/SDL_hidapi_rumble.c create mode 100644 engine/lib/sdl/src/joystick/hidapi/SDL_hidapi_rumble.h create mode 100644 engine/lib/sdl/src/joystick/hidapi/SDL_hidapi_shield.c create mode 100644 engine/lib/sdl/src/joystick/hidapi/SDL_hidapi_stadia.c create mode 100644 engine/lib/sdl/src/joystick/hidapi/SDL_hidapi_steam.c create mode 100644 engine/lib/sdl/src/joystick/hidapi/SDL_hidapi_steamdeck.c create mode 100644 engine/lib/sdl/src/joystick/hidapi/SDL_hidapi_switch.c create mode 100644 engine/lib/sdl/src/joystick/hidapi/SDL_hidapi_wii.c create mode 100644 engine/lib/sdl/src/joystick/hidapi/SDL_hidapi_xbox360.c create mode 100644 engine/lib/sdl/src/joystick/hidapi/SDL_hidapi_xbox360w.c create mode 100644 engine/lib/sdl/src/joystick/hidapi/SDL_hidapi_xboxone.c create mode 100644 engine/lib/sdl/src/joystick/hidapi/SDL_hidapijoystick.c create mode 100644 engine/lib/sdl/src/joystick/hidapi/SDL_hidapijoystick_c.h create mode 100644 engine/lib/sdl/src/joystick/hidapi/steam/controller_constants.h create mode 100644 engine/lib/sdl/src/joystick/hidapi/steam/controller_structs.h create mode 100644 engine/lib/sdl/src/joystick/iphoneos/SDL_mfijoystick.m create mode 100644 engine/lib/sdl/src/joystick/iphoneos/SDL_mfijoystick_c.h create mode 100644 engine/lib/sdl/src/joystick/linux/SDL_sysjoystick.c create mode 100644 engine/lib/sdl/src/joystick/linux/SDL_sysjoystick_c.h create mode 100644 engine/lib/sdl/src/joystick/n3ds/SDL_sysjoystick.c create mode 100644 engine/lib/sdl/src/joystick/os2/SDL_os2joystick.c create mode 100644 engine/lib/sdl/src/joystick/ps2/SDL_sysjoystick.c create mode 100644 engine/lib/sdl/src/joystick/psp/SDL_sysjoystick.c create mode 100755 engine/lib/sdl/src/joystick/sort_controllers.py create mode 100644 engine/lib/sdl/src/joystick/steam/SDL_steamcontroller.c create mode 100644 engine/lib/sdl/src/joystick/steam/SDL_steamcontroller.h create mode 100644 engine/lib/sdl/src/joystick/usb_ids.h create mode 100644 engine/lib/sdl/src/joystick/virtual/SDL_virtualjoystick.c create mode 100644 engine/lib/sdl/src/joystick/virtual/SDL_virtualjoystick_c.h create mode 100644 engine/lib/sdl/src/joystick/vita/SDL_sysjoystick.c create mode 100644 engine/lib/sdl/src/joystick/windows/SDL_dinputjoystick.c create mode 100644 engine/lib/sdl/src/joystick/windows/SDL_dinputjoystick_c.h create mode 100644 engine/lib/sdl/src/joystick/windows/SDL_rawinputjoystick.c create mode 100644 engine/lib/sdl/src/joystick/windows/SDL_rawinputjoystick_c.h create mode 100644 engine/lib/sdl/src/joystick/windows/SDL_windows_gaming_input.c create mode 100644 engine/lib/sdl/src/joystick/windows/SDL_windowsjoystick.c create mode 100644 engine/lib/sdl/src/joystick/windows/SDL_windowsjoystick_c.h create mode 100644 engine/lib/sdl/src/joystick/windows/SDL_xinputjoystick.c create mode 100644 engine/lib/sdl/src/joystick/windows/SDL_xinputjoystick_c.h create mode 100644 engine/lib/sdl/src/libm/e_atan2.c create mode 100644 engine/lib/sdl/src/libm/e_exp.c create mode 100644 engine/lib/sdl/src/libm/e_fmod.c create mode 100644 engine/lib/sdl/src/libm/e_log.c create mode 100644 engine/lib/sdl/src/libm/e_log10.c create mode 100644 engine/lib/sdl/src/libm/e_pow.c create mode 100644 engine/lib/sdl/src/libm/e_rem_pio2.c create mode 100644 engine/lib/sdl/src/libm/e_sqrt.c create mode 100644 engine/lib/sdl/src/libm/k_cos.c create mode 100644 engine/lib/sdl/src/libm/k_rem_pio2.c create mode 100644 engine/lib/sdl/src/libm/k_sin.c create mode 100644 engine/lib/sdl/src/libm/k_tan.c create mode 100644 engine/lib/sdl/src/libm/math_libm.h create mode 100644 engine/lib/sdl/src/libm/math_private.h create mode 100644 engine/lib/sdl/src/libm/s_atan.c create mode 100644 engine/lib/sdl/src/libm/s_copysign.c create mode 100644 engine/lib/sdl/src/libm/s_cos.c create mode 100644 engine/lib/sdl/src/libm/s_fabs.c create mode 100644 engine/lib/sdl/src/libm/s_floor.c create mode 100644 engine/lib/sdl/src/libm/s_scalbn.c create mode 100644 engine/lib/sdl/src/libm/s_sin.c create mode 100644 engine/lib/sdl/src/libm/s_tan.c create mode 100644 engine/lib/sdl/src/loadso/dlopen/SDL_sysloadso.c create mode 100644 engine/lib/sdl/src/loadso/dummy/SDL_sysloadso.c create mode 100644 engine/lib/sdl/src/loadso/os2/SDL_sysloadso.c create mode 100644 engine/lib/sdl/src/loadso/windows/SDL_sysloadso.c create mode 100644 engine/lib/sdl/src/locale/SDL_locale.c create mode 100644 engine/lib/sdl/src/locale/SDL_syslocale.h create mode 100644 engine/lib/sdl/src/locale/android/SDL_syslocale.c create mode 100644 engine/lib/sdl/src/locale/dummy/SDL_syslocale.c create mode 100644 engine/lib/sdl/src/locale/emscripten/SDL_syslocale.c create mode 100644 engine/lib/sdl/src/locale/haiku/SDL_syslocale.cc create mode 100644 engine/lib/sdl/src/locale/macosx/SDL_syslocale.m create mode 100644 engine/lib/sdl/src/locale/n3ds/SDL_syslocale.c create mode 100644 engine/lib/sdl/src/locale/psp/SDL_syslocale.c create mode 100644 engine/lib/sdl/src/locale/unix/SDL_syslocale.c create mode 100644 engine/lib/sdl/src/locale/vita/SDL_syslocale.c create mode 100644 engine/lib/sdl/src/locale/windows/SDL_syslocale.c create mode 100644 engine/lib/sdl/src/locale/winrt/SDL_syslocale.c create mode 100644 engine/lib/sdl/src/main/android/SDL_android_main.c create mode 100644 engine/lib/sdl/src/main/dummy/SDL_dummy_main.c create mode 100644 engine/lib/sdl/src/main/gdk/SDL_gdk_main.c create mode 100644 engine/lib/sdl/src/main/haiku/SDL_BApp.h create mode 100644 engine/lib/sdl/src/main/haiku/SDL_BeApp.cc create mode 100644 engine/lib/sdl/src/main/haiku/SDL_BeApp.h create mode 100644 engine/lib/sdl/src/main/n3ds/SDL_n3ds_main.c create mode 100644 engine/lib/sdl/src/main/nacl/SDL_nacl_main.c create mode 100644 engine/lib/sdl/src/main/ngage/SDL_ngage_main.cpp create mode 100644 engine/lib/sdl/src/main/ps2/SDL_ps2_main.c create mode 100644 engine/lib/sdl/src/main/psp/SDL_psp_main.c create mode 100644 engine/lib/sdl/src/main/uikit/SDL_uikit_main.c create mode 100644 engine/lib/sdl/src/main/windows/SDL_windows_main.c create mode 100644 engine/lib/sdl/src/main/windows/version.rc create mode 100644 engine/lib/sdl/src/main/winrt/SDL2-WinRTResource_BlankCursor.cur create mode 100644 engine/lib/sdl/src/main/winrt/SDL2-WinRTResources.rc create mode 100644 engine/lib/sdl/src/main/winrt/SDL_winrt_main_NonXAML.cpp create mode 100644 engine/lib/sdl/src/misc/SDL_sysurl.h create mode 100644 engine/lib/sdl/src/misc/SDL_url.c create mode 100644 engine/lib/sdl/src/misc/android/SDL_sysurl.c create mode 100644 engine/lib/sdl/src/misc/dummy/SDL_sysurl.c create mode 100644 engine/lib/sdl/src/misc/emscripten/SDL_sysurl.c create mode 100644 engine/lib/sdl/src/misc/haiku/SDL_sysurl.cc create mode 100644 engine/lib/sdl/src/misc/ios/SDL_sysurl.m create mode 100644 engine/lib/sdl/src/misc/macosx/SDL_sysurl.m create mode 100644 engine/lib/sdl/src/misc/riscos/SDL_sysurl.c create mode 100644 engine/lib/sdl/src/misc/unix/SDL_sysurl.c create mode 100644 engine/lib/sdl/src/misc/vita/SDL_sysurl.c create mode 100644 engine/lib/sdl/src/misc/windows/SDL_sysurl.c create mode 100644 engine/lib/sdl/src/misc/winrt/SDL_sysurl.cpp create mode 100644 engine/lib/sdl/src/power/SDL_power.c create mode 100644 engine/lib/sdl/src/power/SDL_syspower.h create mode 100644 engine/lib/sdl/src/power/android/SDL_syspower.c create mode 100644 engine/lib/sdl/src/power/emscripten/SDL_syspower.c create mode 100644 engine/lib/sdl/src/power/haiku/SDL_syspower.c create mode 100644 engine/lib/sdl/src/power/linux/SDL_syspower.c create mode 100644 engine/lib/sdl/src/power/macosx/SDL_syspower.c create mode 100644 engine/lib/sdl/src/power/n3ds/SDL_syspower.c create mode 100644 engine/lib/sdl/src/power/psp/SDL_syspower.c create mode 100644 engine/lib/sdl/src/power/uikit/SDL_syspower.h create mode 100644 engine/lib/sdl/src/power/uikit/SDL_syspower.m create mode 100644 engine/lib/sdl/src/power/vita/SDL_syspower.c create mode 100644 engine/lib/sdl/src/power/windows/SDL_syspower.c create mode 100644 engine/lib/sdl/src/power/winrt/SDL_syspower.cpp create mode 100644 engine/lib/sdl/src/render/SDL_d3dmath.c create mode 100644 engine/lib/sdl/src/render/SDL_d3dmath.h create mode 100644 engine/lib/sdl/src/render/SDL_render.c create mode 100644 engine/lib/sdl/src/render/SDL_sysrender.h create mode 100644 engine/lib/sdl/src/render/SDL_yuv_sw.c create mode 100644 engine/lib/sdl/src/render/SDL_yuv_sw_c.h create mode 100644 engine/lib/sdl/src/render/direct3d/SDL_render_d3d.c create mode 100644 engine/lib/sdl/src/render/direct3d/SDL_shaders_d3d.c create mode 100644 engine/lib/sdl/src/render/direct3d/SDL_shaders_d3d.h create mode 100644 engine/lib/sdl/src/render/direct3d11/SDL_render_d3d11.c create mode 100644 engine/lib/sdl/src/render/direct3d11/SDL_render_winrt.cpp create mode 100644 engine/lib/sdl/src/render/direct3d11/SDL_render_winrt.h create mode 100644 engine/lib/sdl/src/render/direct3d11/SDL_shaders_d3d11.c create mode 100644 engine/lib/sdl/src/render/direct3d11/SDL_shaders_d3d11.h create mode 100644 engine/lib/sdl/src/render/direct3d12/SDL_render_d3d12.c create mode 100644 engine/lib/sdl/src/render/direct3d12/SDL_render_d3d12_xbox.cpp create mode 100644 engine/lib/sdl/src/render/direct3d12/SDL_render_d3d12_xbox.h create mode 100644 engine/lib/sdl/src/render/direct3d12/SDL_shaders_d3d12.c create mode 100644 engine/lib/sdl/src/render/direct3d12/SDL_shaders_d3d12.h create mode 100644 engine/lib/sdl/src/render/direct3d12/SDL_shaders_d3d12_xboxone.cpp create mode 100644 engine/lib/sdl/src/render/direct3d12/SDL_shaders_d3d12_xboxseries.cpp create mode 100644 engine/lib/sdl/src/render/metal/SDL_render_metal.m create mode 100644 engine/lib/sdl/src/render/metal/SDL_shaders_metal.metal create mode 100644 engine/lib/sdl/src/render/metal/SDL_shaders_metal_ios.h create mode 100644 engine/lib/sdl/src/render/metal/SDL_shaders_metal_iphonesimulator.h create mode 100644 engine/lib/sdl/src/render/metal/SDL_shaders_metal_osx.h create mode 100644 engine/lib/sdl/src/render/metal/SDL_shaders_metal_tvos.h create mode 100644 engine/lib/sdl/src/render/metal/SDL_shaders_metal_tvsimulator.h create mode 100755 engine/lib/sdl/src/render/metal/build-metal-shaders.sh create mode 100644 engine/lib/sdl/src/render/opengl/SDL_glfuncs.h create mode 100644 engine/lib/sdl/src/render/opengl/SDL_render_gl.c create mode 100644 engine/lib/sdl/src/render/opengl/SDL_shaders_gl.c create mode 100644 engine/lib/sdl/src/render/opengl/SDL_shaders_gl.h create mode 100644 engine/lib/sdl/src/render/opengles/SDL_glesfuncs.h create mode 100644 engine/lib/sdl/src/render/opengles/SDL_render_gles.c create mode 100644 engine/lib/sdl/src/render/opengles2/SDL_gles2funcs.h create mode 100644 engine/lib/sdl/src/render/opengles2/SDL_render_gles2.c create mode 100644 engine/lib/sdl/src/render/opengles2/SDL_shaders_gles2.c create mode 100644 engine/lib/sdl/src/render/opengles2/SDL_shaders_gles2.h create mode 100644 engine/lib/sdl/src/render/ps2/SDL_render_ps2.c create mode 100644 engine/lib/sdl/src/render/psp/SDL_render_psp.c create mode 100644 engine/lib/sdl/src/render/psp/SDL_render_psp.h create mode 100644 engine/lib/sdl/src/render/software/SDL_blendfillrect.c create mode 100644 engine/lib/sdl/src/render/software/SDL_blendfillrect.h create mode 100644 engine/lib/sdl/src/render/software/SDL_blendline.c create mode 100644 engine/lib/sdl/src/render/software/SDL_blendline.h create mode 100644 engine/lib/sdl/src/render/software/SDL_blendpoint.c create mode 100644 engine/lib/sdl/src/render/software/SDL_blendpoint.h create mode 100644 engine/lib/sdl/src/render/software/SDL_draw.h create mode 100644 engine/lib/sdl/src/render/software/SDL_drawline.c create mode 100644 engine/lib/sdl/src/render/software/SDL_drawline.h create mode 100644 engine/lib/sdl/src/render/software/SDL_drawpoint.c create mode 100644 engine/lib/sdl/src/render/software/SDL_drawpoint.h create mode 100644 engine/lib/sdl/src/render/software/SDL_render_sw.c create mode 100644 engine/lib/sdl/src/render/software/SDL_render_sw_c.h create mode 100644 engine/lib/sdl/src/render/software/SDL_rotate.c create mode 100644 engine/lib/sdl/src/render/software/SDL_rotate.h create mode 100644 engine/lib/sdl/src/render/software/SDL_triangle.c create mode 100644 engine/lib/sdl/src/render/software/SDL_triangle.h create mode 100644 engine/lib/sdl/src/render/vitagxm/SDL_render_vita_gxm.c create mode 100644 engine/lib/sdl/src/render/vitagxm/SDL_render_vita_gxm_memory.c create mode 100644 engine/lib/sdl/src/render/vitagxm/SDL_render_vita_gxm_memory.h create mode 100644 engine/lib/sdl/src/render/vitagxm/SDL_render_vita_gxm_shaders.h create mode 100644 engine/lib/sdl/src/render/vitagxm/SDL_render_vita_gxm_tools.c create mode 100644 engine/lib/sdl/src/render/vitagxm/SDL_render_vita_gxm_tools.h create mode 100644 engine/lib/sdl/src/render/vitagxm/SDL_render_vita_gxm_types.h create mode 100644 engine/lib/sdl/src/render/vitagxm/shader_src/clear_f.cg create mode 100644 engine/lib/sdl/src/render/vitagxm/shader_src/clear_v.cg create mode 100644 engine/lib/sdl/src/render/vitagxm/shader_src/color_f.cg create mode 100644 engine/lib/sdl/src/render/vitagxm/shader_src/color_v.cg create mode 100644 engine/lib/sdl/src/render/vitagxm/shader_src/texture_f.cg create mode 100644 engine/lib/sdl/src/render/vitagxm/shader_src/texture_v.cg create mode 100644 engine/lib/sdl/src/sensor/SDL_sensor.c create mode 100644 engine/lib/sdl/src/sensor/SDL_sensor_c.h create mode 100644 engine/lib/sdl/src/sensor/SDL_syssensor.h create mode 100644 engine/lib/sdl/src/sensor/android/SDL_androidsensor.c create mode 100644 engine/lib/sdl/src/sensor/android/SDL_androidsensor.h create mode 100644 engine/lib/sdl/src/sensor/coremotion/SDL_coremotionsensor.h create mode 100644 engine/lib/sdl/src/sensor/coremotion/SDL_coremotionsensor.m create mode 100644 engine/lib/sdl/src/sensor/dummy/SDL_dummysensor.c create mode 100644 engine/lib/sdl/src/sensor/dummy/SDL_dummysensor.h create mode 100644 engine/lib/sdl/src/sensor/n3ds/SDL_n3dssensor.c create mode 100644 engine/lib/sdl/src/sensor/vita/SDL_vitasensor.c create mode 100644 engine/lib/sdl/src/sensor/vita/SDL_vitasensor.h create mode 100644 engine/lib/sdl/src/sensor/windows/SDL_windowssensor.c create mode 100644 engine/lib/sdl/src/sensor/windows/SDL_windowssensor.h create mode 100644 engine/lib/sdl/src/stdlib/SDL_crc16.c create mode 100644 engine/lib/sdl/src/stdlib/SDL_crc32.c create mode 100644 engine/lib/sdl/src/stdlib/SDL_getenv.c create mode 100644 engine/lib/sdl/src/stdlib/SDL_iconv.c create mode 100644 engine/lib/sdl/src/stdlib/SDL_malloc.c create mode 100644 engine/lib/sdl/src/stdlib/SDL_mslibc.c create mode 100644 engine/lib/sdl/src/stdlib/SDL_qsort.c create mode 100644 engine/lib/sdl/src/stdlib/SDL_stdlib.c create mode 100644 engine/lib/sdl/src/stdlib/SDL_string.c create mode 100644 engine/lib/sdl/src/stdlib/SDL_strtokr.c create mode 100644 engine/lib/sdl/src/stdlib/SDL_vacopy.h create mode 100644 engine/lib/sdl/src/test/SDL_test_assert.c create mode 100644 engine/lib/sdl/src/test/SDL_test_common.c create mode 100644 engine/lib/sdl/src/test/SDL_test_compare.c create mode 100644 engine/lib/sdl/src/test/SDL_test_crc32.c create mode 100644 engine/lib/sdl/src/test/SDL_test_font.c create mode 100644 engine/lib/sdl/src/test/SDL_test_fuzzer.c create mode 100644 engine/lib/sdl/src/test/SDL_test_harness.c create mode 100644 engine/lib/sdl/src/test/SDL_test_imageBlit.c create mode 100644 engine/lib/sdl/src/test/SDL_test_imageBlitBlend.c create mode 100644 engine/lib/sdl/src/test/SDL_test_imageFace.c create mode 100644 engine/lib/sdl/src/test/SDL_test_imagePrimitives.c create mode 100644 engine/lib/sdl/src/test/SDL_test_imagePrimitivesBlend.c create mode 100644 engine/lib/sdl/src/test/SDL_test_log.c create mode 100644 engine/lib/sdl/src/test/SDL_test_md5.c create mode 100644 engine/lib/sdl/src/test/SDL_test_memory.c create mode 100644 engine/lib/sdl/src/test/SDL_test_random.c create mode 100644 engine/lib/sdl/src/thread/SDL_systhread.h create mode 100644 engine/lib/sdl/src/thread/SDL_thread.c create mode 100644 engine/lib/sdl/src/thread/SDL_thread_c.h create mode 100644 engine/lib/sdl/src/thread/generic/SDL_syscond.c create mode 100644 engine/lib/sdl/src/thread/generic/SDL_syscond_c.h create mode 100644 engine/lib/sdl/src/thread/generic/SDL_sysmutex.c create mode 100644 engine/lib/sdl/src/thread/generic/SDL_sysmutex_c.h create mode 100644 engine/lib/sdl/src/thread/generic/SDL_syssem.c create mode 100644 engine/lib/sdl/src/thread/generic/SDL_systhread.c create mode 100644 engine/lib/sdl/src/thread/generic/SDL_systhread_c.h create mode 100644 engine/lib/sdl/src/thread/generic/SDL_systls.c create mode 100644 engine/lib/sdl/src/thread/n3ds/SDL_sysmutex.c create mode 100644 engine/lib/sdl/src/thread/n3ds/SDL_sysmutex_c.h create mode 100644 engine/lib/sdl/src/thread/n3ds/SDL_syssem.c create mode 100644 engine/lib/sdl/src/thread/n3ds/SDL_systhread.c create mode 100644 engine/lib/sdl/src/thread/n3ds/SDL_systhread_c.h create mode 100644 engine/lib/sdl/src/thread/ngage/SDL_sysmutex.cpp create mode 100644 engine/lib/sdl/src/thread/ngage/SDL_syssem.cpp create mode 100644 engine/lib/sdl/src/thread/ngage/SDL_systhread.cpp create mode 100644 engine/lib/sdl/src/thread/ngage/SDL_systhread_c.h create mode 100644 engine/lib/sdl/src/thread/os2/SDL_sysmutex.c create mode 100644 engine/lib/sdl/src/thread/os2/SDL_syssem.c create mode 100644 engine/lib/sdl/src/thread/os2/SDL_systhread.c create mode 100644 engine/lib/sdl/src/thread/os2/SDL_systhread_c.h create mode 100644 engine/lib/sdl/src/thread/os2/SDL_systls.c create mode 100644 engine/lib/sdl/src/thread/os2/SDL_systls_c.h create mode 100644 engine/lib/sdl/src/thread/ps2/SDL_syssem.c create mode 100644 engine/lib/sdl/src/thread/ps2/SDL_systhread.c create mode 100644 engine/lib/sdl/src/thread/ps2/SDL_systhread_c.h create mode 100644 engine/lib/sdl/src/thread/psp/SDL_sysmutex.c create mode 100644 engine/lib/sdl/src/thread/psp/SDL_sysmutex_c.h create mode 100644 engine/lib/sdl/src/thread/psp/SDL_syssem.c create mode 100644 engine/lib/sdl/src/thread/psp/SDL_systhread.c create mode 100644 engine/lib/sdl/src/thread/psp/SDL_systhread_c.h create mode 100644 engine/lib/sdl/src/thread/pthread/SDL_syscond.c create mode 100644 engine/lib/sdl/src/thread/pthread/SDL_sysmutex.c create mode 100644 engine/lib/sdl/src/thread/pthread/SDL_sysmutex_c.h create mode 100644 engine/lib/sdl/src/thread/pthread/SDL_syssem.c create mode 100644 engine/lib/sdl/src/thread/pthread/SDL_systhread.c create mode 100644 engine/lib/sdl/src/thread/pthread/SDL_systhread_c.h create mode 100644 engine/lib/sdl/src/thread/pthread/SDL_systls.c create mode 100644 engine/lib/sdl/src/thread/stdcpp/SDL_syscond.cpp create mode 100644 engine/lib/sdl/src/thread/stdcpp/SDL_sysmutex.cpp create mode 100644 engine/lib/sdl/src/thread/stdcpp/SDL_sysmutex_c.h create mode 100644 engine/lib/sdl/src/thread/stdcpp/SDL_systhread.cpp create mode 100644 engine/lib/sdl/src/thread/stdcpp/SDL_systhread_c.h create mode 100644 engine/lib/sdl/src/thread/vita/SDL_sysmutex.c create mode 100644 engine/lib/sdl/src/thread/vita/SDL_sysmutex_c.h create mode 100644 engine/lib/sdl/src/thread/vita/SDL_syssem.c create mode 100644 engine/lib/sdl/src/thread/vita/SDL_systhread.c create mode 100644 engine/lib/sdl/src/thread/vita/SDL_systhread_c.h create mode 100644 engine/lib/sdl/src/thread/windows/SDL_syscond_cv.c create mode 100644 engine/lib/sdl/src/thread/windows/SDL_sysmutex.c create mode 100644 engine/lib/sdl/src/thread/windows/SDL_sysmutex_c.h create mode 100644 engine/lib/sdl/src/thread/windows/SDL_syssem.c create mode 100644 engine/lib/sdl/src/thread/windows/SDL_systhread.c create mode 100644 engine/lib/sdl/src/thread/windows/SDL_systhread_c.h create mode 100644 engine/lib/sdl/src/thread/windows/SDL_systls.c create mode 100644 engine/lib/sdl/src/timer/SDL_timer.c create mode 100644 engine/lib/sdl/src/timer/SDL_timer_c.h create mode 100644 engine/lib/sdl/src/timer/dummy/SDL_systimer.c create mode 100644 engine/lib/sdl/src/timer/haiku/SDL_systimer.c create mode 100644 engine/lib/sdl/src/timer/n3ds/SDL_systimer.c create mode 100644 engine/lib/sdl/src/timer/ngage/SDL_systimer.cpp create mode 100644 engine/lib/sdl/src/timer/os2/SDL_systimer.c create mode 100644 engine/lib/sdl/src/timer/ps2/SDL_systimer.c create mode 100644 engine/lib/sdl/src/timer/psp/SDL_systimer.c create mode 100644 engine/lib/sdl/src/timer/unix/SDL_systimer.c create mode 100644 engine/lib/sdl/src/timer/vita/SDL_systimer.c create mode 100644 engine/lib/sdl/src/timer/windows/SDL_systimer.c create mode 100644 engine/lib/sdl/src/video/SDL_RLEaccel.c create mode 100644 engine/lib/sdl/src/video/SDL_RLEaccel_c.h create mode 100644 engine/lib/sdl/src/video/SDL_blit.c create mode 100644 engine/lib/sdl/src/video/SDL_blit.h create mode 100644 engine/lib/sdl/src/video/SDL_blit_0.c create mode 100644 engine/lib/sdl/src/video/SDL_blit_1.c create mode 100644 engine/lib/sdl/src/video/SDL_blit_A.c create mode 100644 engine/lib/sdl/src/video/SDL_blit_N.c create mode 100644 engine/lib/sdl/src/video/SDL_blit_auto.c create mode 100644 engine/lib/sdl/src/video/SDL_blit_auto.h create mode 100644 engine/lib/sdl/src/video/SDL_blit_copy.c create mode 100644 engine/lib/sdl/src/video/SDL_blit_copy.h create mode 100644 engine/lib/sdl/src/video/SDL_blit_slow.c create mode 100644 engine/lib/sdl/src/video/SDL_blit_slow.h create mode 100644 engine/lib/sdl/src/video/SDL_bmp.c create mode 100644 engine/lib/sdl/src/video/SDL_clipboard.c create mode 100644 engine/lib/sdl/src/video/SDL_egl.c create mode 100644 engine/lib/sdl/src/video/SDL_egl_c.h create mode 100644 engine/lib/sdl/src/video/SDL_fillrect.c create mode 100644 engine/lib/sdl/src/video/SDL_pixels.c create mode 100644 engine/lib/sdl/src/video/SDL_pixels_c.h create mode 100644 engine/lib/sdl/src/video/SDL_rect.c create mode 100644 engine/lib/sdl/src/video/SDL_rect_c.h create mode 100644 engine/lib/sdl/src/video/SDL_rect_impl.h create mode 100644 engine/lib/sdl/src/video/SDL_shape.c create mode 100644 engine/lib/sdl/src/video/SDL_shape_internals.h create mode 100644 engine/lib/sdl/src/video/SDL_stretch.c create mode 100644 engine/lib/sdl/src/video/SDL_surface.c create mode 100644 engine/lib/sdl/src/video/SDL_sysvideo.h create mode 100644 engine/lib/sdl/src/video/SDL_video.c create mode 100644 engine/lib/sdl/src/video/SDL_vulkan_internal.h create mode 100644 engine/lib/sdl/src/video/SDL_vulkan_utils.c create mode 100644 engine/lib/sdl/src/video/SDL_yuv.c create mode 100644 engine/lib/sdl/src/video/SDL_yuv_c.h create mode 100644 engine/lib/sdl/src/video/android/SDL_androidclipboard.c create mode 100644 engine/lib/sdl/src/video/android/SDL_androidclipboard.h create mode 100644 engine/lib/sdl/src/video/android/SDL_androidevents.c create mode 100644 engine/lib/sdl/src/video/android/SDL_androidevents.h create mode 100644 engine/lib/sdl/src/video/android/SDL_androidgl.c create mode 100644 engine/lib/sdl/src/video/android/SDL_androidgl.h create mode 100644 engine/lib/sdl/src/video/android/SDL_androidkeyboard.c create mode 100644 engine/lib/sdl/src/video/android/SDL_androidkeyboard.h create mode 100644 engine/lib/sdl/src/video/android/SDL_androidmessagebox.c create mode 100644 engine/lib/sdl/src/video/android/SDL_androidmessagebox.h create mode 100644 engine/lib/sdl/src/video/android/SDL_androidmouse.c create mode 100644 engine/lib/sdl/src/video/android/SDL_androidmouse.h create mode 100644 engine/lib/sdl/src/video/android/SDL_androidtouch.c create mode 100644 engine/lib/sdl/src/video/android/SDL_androidtouch.h create mode 100644 engine/lib/sdl/src/video/android/SDL_androidvideo.c create mode 100644 engine/lib/sdl/src/video/android/SDL_androidvideo.h create mode 100644 engine/lib/sdl/src/video/android/SDL_androidvulkan.c create mode 100644 engine/lib/sdl/src/video/android/SDL_androidvulkan.h create mode 100644 engine/lib/sdl/src/video/android/SDL_androidwindow.c create mode 100644 engine/lib/sdl/src/video/android/SDL_androidwindow.h create mode 100644 engine/lib/sdl/src/video/arm/pixman-arm-asm.h create mode 100644 engine/lib/sdl/src/video/arm/pixman-arm-neon-asm.S create mode 100644 engine/lib/sdl/src/video/arm/pixman-arm-neon-asm.h create mode 100644 engine/lib/sdl/src/video/arm/pixman-arm-simd-asm.S create mode 100644 engine/lib/sdl/src/video/arm/pixman-arm-simd-asm.h create mode 100644 engine/lib/sdl/src/video/cocoa/SDL_cocoaclipboard.h create mode 100644 engine/lib/sdl/src/video/cocoa/SDL_cocoaclipboard.m create mode 100644 engine/lib/sdl/src/video/cocoa/SDL_cocoaevents.h create mode 100644 engine/lib/sdl/src/video/cocoa/SDL_cocoaevents.m create mode 100644 engine/lib/sdl/src/video/cocoa/SDL_cocoakeyboard.h create mode 100644 engine/lib/sdl/src/video/cocoa/SDL_cocoakeyboard.m create mode 100644 engine/lib/sdl/src/video/cocoa/SDL_cocoamessagebox.h create mode 100644 engine/lib/sdl/src/video/cocoa/SDL_cocoamessagebox.m create mode 100644 engine/lib/sdl/src/video/cocoa/SDL_cocoametalview.h create mode 100644 engine/lib/sdl/src/video/cocoa/SDL_cocoametalview.m create mode 100644 engine/lib/sdl/src/video/cocoa/SDL_cocoamodes.h create mode 100644 engine/lib/sdl/src/video/cocoa/SDL_cocoamodes.m create mode 100644 engine/lib/sdl/src/video/cocoa/SDL_cocoamouse.h create mode 100644 engine/lib/sdl/src/video/cocoa/SDL_cocoamouse.m create mode 100644 engine/lib/sdl/src/video/cocoa/SDL_cocoaopengl.h create mode 100644 engine/lib/sdl/src/video/cocoa/SDL_cocoaopengl.m create mode 100644 engine/lib/sdl/src/video/cocoa/SDL_cocoaopengles.h create mode 100644 engine/lib/sdl/src/video/cocoa/SDL_cocoaopengles.m create mode 100644 engine/lib/sdl/src/video/cocoa/SDL_cocoashape.h create mode 100644 engine/lib/sdl/src/video/cocoa/SDL_cocoashape.m create mode 100644 engine/lib/sdl/src/video/cocoa/SDL_cocoavideo.h create mode 100644 engine/lib/sdl/src/video/cocoa/SDL_cocoavideo.m create mode 100644 engine/lib/sdl/src/video/cocoa/SDL_cocoavulkan.h create mode 100644 engine/lib/sdl/src/video/cocoa/SDL_cocoavulkan.m create mode 100644 engine/lib/sdl/src/video/cocoa/SDL_cocoawindow.h create mode 100644 engine/lib/sdl/src/video/cocoa/SDL_cocoawindow.m create mode 100644 engine/lib/sdl/src/video/directfb/SDL_DirectFB_WM.c create mode 100644 engine/lib/sdl/src/video/directfb/SDL_DirectFB_WM.h create mode 100644 engine/lib/sdl/src/video/directfb/SDL_DirectFB_dyn.c create mode 100644 engine/lib/sdl/src/video/directfb/SDL_DirectFB_dyn.h create mode 100644 engine/lib/sdl/src/video/directfb/SDL_DirectFB_events.c create mode 100644 engine/lib/sdl/src/video/directfb/SDL_DirectFB_events.h create mode 100644 engine/lib/sdl/src/video/directfb/SDL_DirectFB_modes.c create mode 100644 engine/lib/sdl/src/video/directfb/SDL_DirectFB_modes.h create mode 100644 engine/lib/sdl/src/video/directfb/SDL_DirectFB_mouse.c create mode 100644 engine/lib/sdl/src/video/directfb/SDL_DirectFB_mouse.h create mode 100644 engine/lib/sdl/src/video/directfb/SDL_DirectFB_opengl.c create mode 100644 engine/lib/sdl/src/video/directfb/SDL_DirectFB_opengl.h create mode 100644 engine/lib/sdl/src/video/directfb/SDL_DirectFB_render.c create mode 100644 engine/lib/sdl/src/video/directfb/SDL_DirectFB_render.h create mode 100644 engine/lib/sdl/src/video/directfb/SDL_DirectFB_shape.c create mode 100644 engine/lib/sdl/src/video/directfb/SDL_DirectFB_shape.h create mode 100644 engine/lib/sdl/src/video/directfb/SDL_DirectFB_video.c create mode 100644 engine/lib/sdl/src/video/directfb/SDL_DirectFB_video.h create mode 100644 engine/lib/sdl/src/video/directfb/SDL_DirectFB_vulkan.c create mode 100644 engine/lib/sdl/src/video/directfb/SDL_DirectFB_vulkan.h create mode 100644 engine/lib/sdl/src/video/directfb/SDL_DirectFB_window.c create mode 100644 engine/lib/sdl/src/video/directfb/SDL_DirectFB_window.h create mode 100644 engine/lib/sdl/src/video/dummy/SDL_nullevents.c create mode 100644 engine/lib/sdl/src/video/dummy/SDL_nullevents_c.h create mode 100644 engine/lib/sdl/src/video/dummy/SDL_nullframebuffer.c create mode 100644 engine/lib/sdl/src/video/dummy/SDL_nullframebuffer_c.h create mode 100644 engine/lib/sdl/src/video/dummy/SDL_nullvideo.c create mode 100644 engine/lib/sdl/src/video/dummy/SDL_nullvideo.h create mode 100644 engine/lib/sdl/src/video/emscripten/SDL_emscriptenevents.c create mode 100644 engine/lib/sdl/src/video/emscripten/SDL_emscriptenevents.h create mode 100644 engine/lib/sdl/src/video/emscripten/SDL_emscriptenframebuffer.c create mode 100644 engine/lib/sdl/src/video/emscripten/SDL_emscriptenframebuffer.h create mode 100644 engine/lib/sdl/src/video/emscripten/SDL_emscriptenmouse.c create mode 100644 engine/lib/sdl/src/video/emscripten/SDL_emscriptenmouse.h create mode 100644 engine/lib/sdl/src/video/emscripten/SDL_emscriptenopengles.c create mode 100644 engine/lib/sdl/src/video/emscripten/SDL_emscriptenopengles.h create mode 100644 engine/lib/sdl/src/video/emscripten/SDL_emscriptenvideo.c create mode 100644 engine/lib/sdl/src/video/emscripten/SDL_emscriptenvideo.h create mode 100644 engine/lib/sdl/src/video/haiku/SDL_BApp.h create mode 100644 engine/lib/sdl/src/video/haiku/SDL_BWin.h create mode 100644 engine/lib/sdl/src/video/haiku/SDL_bclipboard.cc create mode 100644 engine/lib/sdl/src/video/haiku/SDL_bclipboard.h create mode 100644 engine/lib/sdl/src/video/haiku/SDL_bevents.cc create mode 100644 engine/lib/sdl/src/video/haiku/SDL_bevents.h create mode 100644 engine/lib/sdl/src/video/haiku/SDL_bframebuffer.cc create mode 100644 engine/lib/sdl/src/video/haiku/SDL_bframebuffer.h create mode 100644 engine/lib/sdl/src/video/haiku/SDL_bkeyboard.cc create mode 100644 engine/lib/sdl/src/video/haiku/SDL_bkeyboard.h create mode 100644 engine/lib/sdl/src/video/haiku/SDL_bmessagebox.cc create mode 100644 engine/lib/sdl/src/video/haiku/SDL_bmessagebox.h create mode 100644 engine/lib/sdl/src/video/haiku/SDL_bmodes.cc create mode 100644 engine/lib/sdl/src/video/haiku/SDL_bmodes.h create mode 100644 engine/lib/sdl/src/video/haiku/SDL_bopengl.cc create mode 100644 engine/lib/sdl/src/video/haiku/SDL_bopengl.h create mode 100644 engine/lib/sdl/src/video/haiku/SDL_bvideo.cc create mode 100644 engine/lib/sdl/src/video/haiku/SDL_bvideo.h create mode 100644 engine/lib/sdl/src/video/haiku/SDL_bwindow.cc create mode 100644 engine/lib/sdl/src/video/haiku/SDL_bwindow.h create mode 100644 engine/lib/sdl/src/video/khronos/EGL/egl.h create mode 100644 engine/lib/sdl/src/video/khronos/EGL/eglext.h create mode 100644 engine/lib/sdl/src/video/khronos/EGL/eglplatform.h create mode 100644 engine/lib/sdl/src/video/khronos/GLES2/gl2.h create mode 100644 engine/lib/sdl/src/video/khronos/GLES2/gl2ext.h create mode 100644 engine/lib/sdl/src/video/khronos/GLES2/gl2platform.h create mode 100644 engine/lib/sdl/src/video/khronos/KHR/khrplatform.h create mode 100644 engine/lib/sdl/src/video/khronos/vk_video/vulkan_video_codec_h264std.h create mode 100644 engine/lib/sdl/src/video/khronos/vk_video/vulkan_video_codec_h264std_decode.h create mode 100644 engine/lib/sdl/src/video/khronos/vk_video/vulkan_video_codec_h264std_encode.h create mode 100644 engine/lib/sdl/src/video/khronos/vk_video/vulkan_video_codec_h265std.h create mode 100644 engine/lib/sdl/src/video/khronos/vk_video/vulkan_video_codec_h265std_decode.h create mode 100644 engine/lib/sdl/src/video/khronos/vk_video/vulkan_video_codec_h265std_encode.h create mode 100644 engine/lib/sdl/src/video/khronos/vk_video/vulkan_video_codecs_common.h create mode 100644 engine/lib/sdl/src/video/khronos/vulkan/vk_icd.h create mode 100644 engine/lib/sdl/src/video/khronos/vulkan/vk_layer.h create mode 100644 engine/lib/sdl/src/video/khronos/vulkan/vk_platform.h create mode 100644 engine/lib/sdl/src/video/khronos/vulkan/vk_sdk_platform.h create mode 100644 engine/lib/sdl/src/video/khronos/vulkan/vulkan.h create mode 100644 engine/lib/sdl/src/video/khronos/vulkan/vulkan_android.h create mode 100644 engine/lib/sdl/src/video/khronos/vulkan/vulkan_beta.h create mode 100644 engine/lib/sdl/src/video/khronos/vulkan/vulkan_core.h create mode 100644 engine/lib/sdl/src/video/khronos/vulkan/vulkan_directfb.h create mode 100644 engine/lib/sdl/src/video/khronos/vulkan/vulkan_fuchsia.h create mode 100644 engine/lib/sdl/src/video/khronos/vulkan/vulkan_ggp.h create mode 100644 engine/lib/sdl/src/video/khronos/vulkan/vulkan_ios.h create mode 100644 engine/lib/sdl/src/video/khronos/vulkan/vulkan_macos.h create mode 100644 engine/lib/sdl/src/video/khronos/vulkan/vulkan_metal.h create mode 100644 engine/lib/sdl/src/video/khronos/vulkan/vulkan_screen.h create mode 100644 engine/lib/sdl/src/video/khronos/vulkan/vulkan_vi.h create mode 100644 engine/lib/sdl/src/video/khronos/vulkan/vulkan_wayland.h create mode 100644 engine/lib/sdl/src/video/khronos/vulkan/vulkan_win32.h create mode 100644 engine/lib/sdl/src/video/khronos/vulkan/vulkan_xcb.h create mode 100644 engine/lib/sdl/src/video/khronos/vulkan/vulkan_xlib.h create mode 100644 engine/lib/sdl/src/video/khronos/vulkan/vulkan_xlib_xrandr.h create mode 100644 engine/lib/sdl/src/video/kmsdrm/SDL_kmsdrmdyn.c create mode 100644 engine/lib/sdl/src/video/kmsdrm/SDL_kmsdrmdyn.h create mode 100644 engine/lib/sdl/src/video/kmsdrm/SDL_kmsdrmevents.c create mode 100644 engine/lib/sdl/src/video/kmsdrm/SDL_kmsdrmevents.h create mode 100644 engine/lib/sdl/src/video/kmsdrm/SDL_kmsdrmmouse.c create mode 100644 engine/lib/sdl/src/video/kmsdrm/SDL_kmsdrmmouse.h create mode 100644 engine/lib/sdl/src/video/kmsdrm/SDL_kmsdrmopengles.c create mode 100644 engine/lib/sdl/src/video/kmsdrm/SDL_kmsdrmopengles.h create mode 100644 engine/lib/sdl/src/video/kmsdrm/SDL_kmsdrmsym.h create mode 100644 engine/lib/sdl/src/video/kmsdrm/SDL_kmsdrmvideo.c create mode 100644 engine/lib/sdl/src/video/kmsdrm/SDL_kmsdrmvideo.h create mode 100644 engine/lib/sdl/src/video/kmsdrm/SDL_kmsdrmvulkan.c create mode 100644 engine/lib/sdl/src/video/kmsdrm/SDL_kmsdrmvulkan.h create mode 100644 engine/lib/sdl/src/video/n3ds/SDL_n3dsevents.c create mode 100644 engine/lib/sdl/src/video/n3ds/SDL_n3dsevents_c.h create mode 100644 engine/lib/sdl/src/video/n3ds/SDL_n3dsframebuffer.c create mode 100644 engine/lib/sdl/src/video/n3ds/SDL_n3dsframebuffer_c.h create mode 100644 engine/lib/sdl/src/video/n3ds/SDL_n3dsswkb.c create mode 100644 engine/lib/sdl/src/video/n3ds/SDL_n3dsswkb.h create mode 100644 engine/lib/sdl/src/video/n3ds/SDL_n3dstouch.c create mode 100644 engine/lib/sdl/src/video/n3ds/SDL_n3dstouch.h create mode 100644 engine/lib/sdl/src/video/n3ds/SDL_n3dsvideo.c create mode 100644 engine/lib/sdl/src/video/n3ds/SDL_n3dsvideo.h create mode 100644 engine/lib/sdl/src/video/nacl/SDL_naclevents.c create mode 100644 engine/lib/sdl/src/video/nacl/SDL_naclevents_c.h create mode 100644 engine/lib/sdl/src/video/nacl/SDL_naclglue.c create mode 100644 engine/lib/sdl/src/video/nacl/SDL_naclopengles.c create mode 100644 engine/lib/sdl/src/video/nacl/SDL_naclopengles.h create mode 100644 engine/lib/sdl/src/video/nacl/SDL_naclvideo.c create mode 100644 engine/lib/sdl/src/video/nacl/SDL_naclvideo.h create mode 100644 engine/lib/sdl/src/video/nacl/SDL_naclwindow.c create mode 100644 engine/lib/sdl/src/video/nacl/SDL_naclwindow.h create mode 100644 engine/lib/sdl/src/video/ngage/SDL_ngageevents.cpp create mode 100644 engine/lib/sdl/src/video/ngage/SDL_ngageevents_c.h create mode 100644 engine/lib/sdl/src/video/ngage/SDL_ngageframebuffer.cpp create mode 100644 engine/lib/sdl/src/video/ngage/SDL_ngageframebuffer_c.h create mode 100644 engine/lib/sdl/src/video/ngage/SDL_ngagevideo.cpp create mode 100644 engine/lib/sdl/src/video/ngage/SDL_ngagevideo.h create mode 100644 engine/lib/sdl/src/video/ngage/SDL_ngagewindow.cpp create mode 100644 engine/lib/sdl/src/video/ngage/SDL_ngagewindow.h create mode 100644 engine/lib/sdl/src/video/offscreen/SDL_offscreenevents.c create mode 100644 engine/lib/sdl/src/video/offscreen/SDL_offscreenevents_c.h create mode 100644 engine/lib/sdl/src/video/offscreen/SDL_offscreenframebuffer.c create mode 100644 engine/lib/sdl/src/video/offscreen/SDL_offscreenframebuffer_c.h create mode 100644 engine/lib/sdl/src/video/offscreen/SDL_offscreenopengles.c create mode 100644 engine/lib/sdl/src/video/offscreen/SDL_offscreenopengles.h create mode 100644 engine/lib/sdl/src/video/offscreen/SDL_offscreenvideo.c create mode 100644 engine/lib/sdl/src/video/offscreen/SDL_offscreenvideo.h create mode 100644 engine/lib/sdl/src/video/offscreen/SDL_offscreenwindow.c create mode 100644 engine/lib/sdl/src/video/offscreen/SDL_offscreenwindow.h create mode 100644 engine/lib/sdl/src/video/os2/SDL_gradd.h create mode 100644 engine/lib/sdl/src/video/os2/SDL_os2dive.c create mode 100644 engine/lib/sdl/src/video/os2/SDL_os2messagebox.c create mode 100644 engine/lib/sdl/src/video/os2/SDL_os2messagebox.h create mode 100644 engine/lib/sdl/src/video/os2/SDL_os2mouse.c create mode 100644 engine/lib/sdl/src/video/os2/SDL_os2mouse.h create mode 100644 engine/lib/sdl/src/video/os2/SDL_os2output.h create mode 100644 engine/lib/sdl/src/video/os2/SDL_os2util.c create mode 100644 engine/lib/sdl/src/video/os2/SDL_os2util.h create mode 100644 engine/lib/sdl/src/video/os2/SDL_os2video.c create mode 100644 engine/lib/sdl/src/video/os2/SDL_os2video.h create mode 100644 engine/lib/sdl/src/video/os2/SDL_os2vman.c create mode 100644 engine/lib/sdl/src/video/pandora/SDL_pandora.c create mode 100644 engine/lib/sdl/src/video/pandora/SDL_pandora.h create mode 100644 engine/lib/sdl/src/video/pandora/SDL_pandora_events.c create mode 100644 engine/lib/sdl/src/video/pandora/SDL_pandora_events.h create mode 100644 engine/lib/sdl/src/video/ps2/SDL_ps2video.c create mode 100644 engine/lib/sdl/src/video/ps2/SDL_ps2video.h create mode 100644 engine/lib/sdl/src/video/psp/SDL_pspevents.c create mode 100644 engine/lib/sdl/src/video/psp/SDL_pspevents_c.h create mode 100644 engine/lib/sdl/src/video/psp/SDL_pspgl.c create mode 100644 engine/lib/sdl/src/video/psp/SDL_pspgl_c.h create mode 100644 engine/lib/sdl/src/video/psp/SDL_pspmouse.c create mode 100644 engine/lib/sdl/src/video/psp/SDL_pspmouse_c.h create mode 100644 engine/lib/sdl/src/video/psp/SDL_pspvideo.c create mode 100644 engine/lib/sdl/src/video/psp/SDL_pspvideo.h create mode 100644 engine/lib/sdl/src/video/qnx/gl.c create mode 100644 engine/lib/sdl/src/video/qnx/keyboard.c create mode 100644 engine/lib/sdl/src/video/qnx/sdl_qnx.h create mode 100644 engine/lib/sdl/src/video/qnx/video.c create mode 100644 engine/lib/sdl/src/video/raspberry/SDL_rpievents.c create mode 100644 engine/lib/sdl/src/video/raspberry/SDL_rpievents_c.h create mode 100644 engine/lib/sdl/src/video/raspberry/SDL_rpimouse.c create mode 100644 engine/lib/sdl/src/video/raspberry/SDL_rpimouse.h create mode 100644 engine/lib/sdl/src/video/raspberry/SDL_rpiopengles.c create mode 100644 engine/lib/sdl/src/video/raspberry/SDL_rpiopengles.h create mode 100644 engine/lib/sdl/src/video/raspberry/SDL_rpivideo.c create mode 100644 engine/lib/sdl/src/video/raspberry/SDL_rpivideo.h create mode 100644 engine/lib/sdl/src/video/riscos/SDL_riscosdefs.h create mode 100644 engine/lib/sdl/src/video/riscos/SDL_riscosevents.c create mode 100644 engine/lib/sdl/src/video/riscos/SDL_riscosevents_c.h create mode 100644 engine/lib/sdl/src/video/riscos/SDL_riscosframebuffer.c create mode 100644 engine/lib/sdl/src/video/riscos/SDL_riscosframebuffer_c.h create mode 100644 engine/lib/sdl/src/video/riscos/SDL_riscosmessagebox.c create mode 100644 engine/lib/sdl/src/video/riscos/SDL_riscosmessagebox.h create mode 100644 engine/lib/sdl/src/video/riscos/SDL_riscosmodes.c create mode 100644 engine/lib/sdl/src/video/riscos/SDL_riscosmodes.h create mode 100644 engine/lib/sdl/src/video/riscos/SDL_riscosmouse.c create mode 100644 engine/lib/sdl/src/video/riscos/SDL_riscosmouse.h create mode 100644 engine/lib/sdl/src/video/riscos/SDL_riscosvideo.c create mode 100644 engine/lib/sdl/src/video/riscos/SDL_riscosvideo.h create mode 100644 engine/lib/sdl/src/video/riscos/SDL_riscoswindow.c create mode 100644 engine/lib/sdl/src/video/riscos/SDL_riscoswindow.h create mode 100644 engine/lib/sdl/src/video/riscos/scancodes_riscos.h create mode 100755 engine/lib/sdl/src/video/sdlgenblit.pl create mode 100644 engine/lib/sdl/src/video/uikit/SDL_uikitappdelegate.h create mode 100644 engine/lib/sdl/src/video/uikit/SDL_uikitappdelegate.m create mode 100644 engine/lib/sdl/src/video/uikit/SDL_uikitclipboard.h create mode 100644 engine/lib/sdl/src/video/uikit/SDL_uikitclipboard.m create mode 100644 engine/lib/sdl/src/video/uikit/SDL_uikitevents.h create mode 100644 engine/lib/sdl/src/video/uikit/SDL_uikitevents.m create mode 100644 engine/lib/sdl/src/video/uikit/SDL_uikitmessagebox.h create mode 100644 engine/lib/sdl/src/video/uikit/SDL_uikitmessagebox.m create mode 100644 engine/lib/sdl/src/video/uikit/SDL_uikitmetalview.h create mode 100644 engine/lib/sdl/src/video/uikit/SDL_uikitmetalview.m create mode 100644 engine/lib/sdl/src/video/uikit/SDL_uikitmodes.h create mode 100644 engine/lib/sdl/src/video/uikit/SDL_uikitmodes.m create mode 100644 engine/lib/sdl/src/video/uikit/SDL_uikitopengles.h create mode 100644 engine/lib/sdl/src/video/uikit/SDL_uikitopengles.m create mode 100644 engine/lib/sdl/src/video/uikit/SDL_uikitopenglview.h create mode 100644 engine/lib/sdl/src/video/uikit/SDL_uikitopenglview.m create mode 100644 engine/lib/sdl/src/video/uikit/SDL_uikitvideo.h create mode 100644 engine/lib/sdl/src/video/uikit/SDL_uikitvideo.m create mode 100644 engine/lib/sdl/src/video/uikit/SDL_uikitview.h create mode 100644 engine/lib/sdl/src/video/uikit/SDL_uikitview.m create mode 100644 engine/lib/sdl/src/video/uikit/SDL_uikitviewcontroller.h create mode 100644 engine/lib/sdl/src/video/uikit/SDL_uikitviewcontroller.m create mode 100644 engine/lib/sdl/src/video/uikit/SDL_uikitvulkan.h create mode 100644 engine/lib/sdl/src/video/uikit/SDL_uikitvulkan.m create mode 100644 engine/lib/sdl/src/video/uikit/SDL_uikitwindow.h create mode 100644 engine/lib/sdl/src/video/uikit/SDL_uikitwindow.m create mode 100644 engine/lib/sdl/src/video/vita/SDL_vitaframebuffer.c create mode 100644 engine/lib/sdl/src/video/vita/SDL_vitaframebuffer.h create mode 100644 engine/lib/sdl/src/video/vita/SDL_vitagl_pvr.c create mode 100644 engine/lib/sdl/src/video/vita/SDL_vitagl_pvr_c.h create mode 100644 engine/lib/sdl/src/video/vita/SDL_vitagles.c create mode 100644 engine/lib/sdl/src/video/vita/SDL_vitagles_c.h create mode 100644 engine/lib/sdl/src/video/vita/SDL_vitagles_pvr.c create mode 100644 engine/lib/sdl/src/video/vita/SDL_vitagles_pvr_c.h create mode 100644 engine/lib/sdl/src/video/vita/SDL_vitakeyboard.c create mode 100644 engine/lib/sdl/src/video/vita/SDL_vitakeyboard.h create mode 100644 engine/lib/sdl/src/video/vita/SDL_vitamessagebox.c create mode 100644 engine/lib/sdl/src/video/vita/SDL_vitamessagebox.h create mode 100644 engine/lib/sdl/src/video/vita/SDL_vitamouse.c create mode 100644 engine/lib/sdl/src/video/vita/SDL_vitamouse_c.h create mode 100644 engine/lib/sdl/src/video/vita/SDL_vitatouch.c create mode 100644 engine/lib/sdl/src/video/vita/SDL_vitatouch.h create mode 100644 engine/lib/sdl/src/video/vita/SDL_vitavideo.c create mode 100644 engine/lib/sdl/src/video/vita/SDL_vitavideo.h create mode 100644 engine/lib/sdl/src/video/vivante/SDL_vivanteopengles.c create mode 100644 engine/lib/sdl/src/video/vivante/SDL_vivanteopengles.h create mode 100644 engine/lib/sdl/src/video/vivante/SDL_vivanteplatform.c create mode 100644 engine/lib/sdl/src/video/vivante/SDL_vivanteplatform.h create mode 100644 engine/lib/sdl/src/video/vivante/SDL_vivantevideo.c create mode 100644 engine/lib/sdl/src/video/vivante/SDL_vivantevideo.h create mode 100644 engine/lib/sdl/src/video/vivante/SDL_vivantevulkan.c create mode 100644 engine/lib/sdl/src/video/vivante/SDL_vivantevulkan.h create mode 100644 engine/lib/sdl/src/video/wayland/SDL_waylandclipboard.c create mode 100644 engine/lib/sdl/src/video/wayland/SDL_waylandclipboard.h create mode 100644 engine/lib/sdl/src/video/wayland/SDL_waylanddatamanager.c create mode 100644 engine/lib/sdl/src/video/wayland/SDL_waylanddatamanager.h create mode 100644 engine/lib/sdl/src/video/wayland/SDL_waylanddyn.c create mode 100644 engine/lib/sdl/src/video/wayland/SDL_waylanddyn.h create mode 100644 engine/lib/sdl/src/video/wayland/SDL_waylandevents.c create mode 100644 engine/lib/sdl/src/video/wayland/SDL_waylandevents_c.h create mode 100644 engine/lib/sdl/src/video/wayland/SDL_waylandkeyboard.c create mode 100644 engine/lib/sdl/src/video/wayland/SDL_waylandkeyboard.h create mode 100644 engine/lib/sdl/src/video/wayland/SDL_waylandmessagebox.c create mode 100644 engine/lib/sdl/src/video/wayland/SDL_waylandmessagebox.h create mode 100644 engine/lib/sdl/src/video/wayland/SDL_waylandmouse.c create mode 100644 engine/lib/sdl/src/video/wayland/SDL_waylandmouse.h create mode 100644 engine/lib/sdl/src/video/wayland/SDL_waylandopengles.c create mode 100644 engine/lib/sdl/src/video/wayland/SDL_waylandopengles.h create mode 100644 engine/lib/sdl/src/video/wayland/SDL_waylandshmbuffer.c create mode 100644 engine/lib/sdl/src/video/wayland/SDL_waylandshmbuffer.h create mode 100644 engine/lib/sdl/src/video/wayland/SDL_waylandsym.h create mode 100644 engine/lib/sdl/src/video/wayland/SDL_waylandtouch.c create mode 100644 engine/lib/sdl/src/video/wayland/SDL_waylandtouch.h create mode 100644 engine/lib/sdl/src/video/wayland/SDL_waylandvideo.c create mode 100644 engine/lib/sdl/src/video/wayland/SDL_waylandvideo.h create mode 100644 engine/lib/sdl/src/video/wayland/SDL_waylandvulkan.c create mode 100644 engine/lib/sdl/src/video/wayland/SDL_waylandvulkan.h create mode 100644 engine/lib/sdl/src/video/wayland/SDL_waylandwindow.c create mode 100644 engine/lib/sdl/src/video/wayland/SDL_waylandwindow.h create mode 100644 engine/lib/sdl/src/video/windows/SDL_msctf.h create mode 100644 engine/lib/sdl/src/video/windows/SDL_vkeys.h create mode 100644 engine/lib/sdl/src/video/windows/SDL_windowsclipboard.c create mode 100644 engine/lib/sdl/src/video/windows/SDL_windowsclipboard.h create mode 100644 engine/lib/sdl/src/video/windows/SDL_windowsevents.c create mode 100644 engine/lib/sdl/src/video/windows/SDL_windowsevents.h create mode 100644 engine/lib/sdl/src/video/windows/SDL_windowsframebuffer.c create mode 100644 engine/lib/sdl/src/video/windows/SDL_windowsframebuffer.h create mode 100644 engine/lib/sdl/src/video/windows/SDL_windowskeyboard.c create mode 100644 engine/lib/sdl/src/video/windows/SDL_windowskeyboard.h create mode 100644 engine/lib/sdl/src/video/windows/SDL_windowsmessagebox.c create mode 100644 engine/lib/sdl/src/video/windows/SDL_windowsmessagebox.h create mode 100644 engine/lib/sdl/src/video/windows/SDL_windowsmodes.c create mode 100644 engine/lib/sdl/src/video/windows/SDL_windowsmodes.h create mode 100644 engine/lib/sdl/src/video/windows/SDL_windowsmouse.c create mode 100644 engine/lib/sdl/src/video/windows/SDL_windowsmouse.h create mode 100644 engine/lib/sdl/src/video/windows/SDL_windowsopengl.c create mode 100644 engine/lib/sdl/src/video/windows/SDL_windowsopengl.h create mode 100644 engine/lib/sdl/src/video/windows/SDL_windowsopengles.c create mode 100644 engine/lib/sdl/src/video/windows/SDL_windowsopengles.h create mode 100644 engine/lib/sdl/src/video/windows/SDL_windowsshape.c create mode 100644 engine/lib/sdl/src/video/windows/SDL_windowsshape.h create mode 100644 engine/lib/sdl/src/video/windows/SDL_windowsvideo.c create mode 100644 engine/lib/sdl/src/video/windows/SDL_windowsvideo.h create mode 100644 engine/lib/sdl/src/video/windows/SDL_windowsvulkan.c create mode 100644 engine/lib/sdl/src/video/windows/SDL_windowsvulkan.h create mode 100644 engine/lib/sdl/src/video/windows/SDL_windowswindow.c create mode 100644 engine/lib/sdl/src/video/windows/SDL_windowswindow.h create mode 100644 engine/lib/sdl/src/video/windows/wmmsg.h create mode 100644 engine/lib/sdl/src/video/winrt/SDL_winrtevents.cpp create mode 100644 engine/lib/sdl/src/video/winrt/SDL_winrtevents_c.h create mode 100644 engine/lib/sdl/src/video/winrt/SDL_winrtgamebar.cpp create mode 100644 engine/lib/sdl/src/video/winrt/SDL_winrtgamebar_cpp.h create mode 100644 engine/lib/sdl/src/video/winrt/SDL_winrtkeyboard.cpp create mode 100644 engine/lib/sdl/src/video/winrt/SDL_winrtmessagebox.cpp create mode 100644 engine/lib/sdl/src/video/winrt/SDL_winrtmessagebox.h create mode 100644 engine/lib/sdl/src/video/winrt/SDL_winrtmouse.cpp create mode 100644 engine/lib/sdl/src/video/winrt/SDL_winrtmouse_c.h create mode 100644 engine/lib/sdl/src/video/winrt/SDL_winrtopengles.cpp create mode 100644 engine/lib/sdl/src/video/winrt/SDL_winrtopengles.h create mode 100644 engine/lib/sdl/src/video/winrt/SDL_winrtpointerinput.cpp create mode 100644 engine/lib/sdl/src/video/winrt/SDL_winrtvideo.cpp create mode 100644 engine/lib/sdl/src/video/winrt/SDL_winrtvideo_cpp.h create mode 100644 engine/lib/sdl/src/video/x11/SDL_x11clipboard.c create mode 100644 engine/lib/sdl/src/video/x11/SDL_x11clipboard.h create mode 100644 engine/lib/sdl/src/video/x11/SDL_x11dyn.c create mode 100644 engine/lib/sdl/src/video/x11/SDL_x11dyn.h create mode 100644 engine/lib/sdl/src/video/x11/SDL_x11events.c create mode 100644 engine/lib/sdl/src/video/x11/SDL_x11events.h create mode 100644 engine/lib/sdl/src/video/x11/SDL_x11framebuffer.c create mode 100644 engine/lib/sdl/src/video/x11/SDL_x11framebuffer.h create mode 100644 engine/lib/sdl/src/video/x11/SDL_x11keyboard.c create mode 100644 engine/lib/sdl/src/video/x11/SDL_x11keyboard.h create mode 100644 engine/lib/sdl/src/video/x11/SDL_x11messagebox.c create mode 100644 engine/lib/sdl/src/video/x11/SDL_x11messagebox.h create mode 100644 engine/lib/sdl/src/video/x11/SDL_x11modes.c create mode 100644 engine/lib/sdl/src/video/x11/SDL_x11modes.h create mode 100644 engine/lib/sdl/src/video/x11/SDL_x11mouse.c create mode 100644 engine/lib/sdl/src/video/x11/SDL_x11mouse.h create mode 100644 engine/lib/sdl/src/video/x11/SDL_x11opengl.c create mode 100644 engine/lib/sdl/src/video/x11/SDL_x11opengl.h create mode 100644 engine/lib/sdl/src/video/x11/SDL_x11opengles.c create mode 100644 engine/lib/sdl/src/video/x11/SDL_x11opengles.h create mode 100644 engine/lib/sdl/src/video/x11/SDL_x11shape.c create mode 100644 engine/lib/sdl/src/video/x11/SDL_x11shape.h create mode 100644 engine/lib/sdl/src/video/x11/SDL_x11sym.h create mode 100644 engine/lib/sdl/src/video/x11/SDL_x11touch.c create mode 100644 engine/lib/sdl/src/video/x11/SDL_x11touch.h create mode 100644 engine/lib/sdl/src/video/x11/SDL_x11video.c create mode 100644 engine/lib/sdl/src/video/x11/SDL_x11video.h create mode 100644 engine/lib/sdl/src/video/x11/SDL_x11vulkan.c create mode 100644 engine/lib/sdl/src/video/x11/SDL_x11vulkan.h create mode 100644 engine/lib/sdl/src/video/x11/SDL_x11window.c create mode 100644 engine/lib/sdl/src/video/x11/SDL_x11window.h create mode 100644 engine/lib/sdl/src/video/x11/SDL_x11xfixes.c create mode 100644 engine/lib/sdl/src/video/x11/SDL_x11xfixes.h create mode 100644 engine/lib/sdl/src/video/x11/SDL_x11xinput2.c create mode 100644 engine/lib/sdl/src/video/x11/SDL_x11xinput2.h create mode 100644 engine/lib/sdl/src/video/x11/edid-parse.c create mode 100644 engine/lib/sdl/src/video/x11/edid.h create mode 100644 engine/lib/sdl/src/video/yuv2rgb/LICENSE create mode 100644 engine/lib/sdl/src/video/yuv2rgb/README.md create mode 100644 engine/lib/sdl/src/video/yuv2rgb/yuv_rgb.h create mode 100644 engine/lib/sdl/src/video/yuv2rgb/yuv_rgb_common.h create mode 100644 engine/lib/sdl/src/video/yuv2rgb/yuv_rgb_internal.h create mode 100644 engine/lib/sdl/src/video/yuv2rgb/yuv_rgb_lsx.c create mode 100644 engine/lib/sdl/src/video/yuv2rgb/yuv_rgb_lsx.h create mode 100644 engine/lib/sdl/src/video/yuv2rgb/yuv_rgb_lsx_func.h create mode 100644 engine/lib/sdl/src/video/yuv2rgb/yuv_rgb_sse.c create mode 100644 engine/lib/sdl/src/video/yuv2rgb/yuv_rgb_sse.h create mode 100644 engine/lib/sdl/src/video/yuv2rgb/yuv_rgb_sse_func.h create mode 100644 engine/lib/sdl/src/video/yuv2rgb/yuv_rgb_std.c create mode 100644 engine/lib/sdl/src/video/yuv2rgb/yuv_rgb_std.h create mode 100644 engine/lib/sdl/src/video/yuv2rgb/yuv_rgb_std_func.h create mode 100644 engine/lib/sdl/visualtest/COPYING.txt create mode 100644 engine/lib/sdl/visualtest/Makefile.in create mode 100644 engine/lib/sdl/visualtest/README.txt create mode 100644 engine/lib/sdl/visualtest/acinclude.m4 create mode 100644 engine/lib/sdl/visualtest/autogen.sh create mode 100644 engine/lib/sdl/visualtest/configs/testsprite2_blendmodes/testsprite2_blendmodes.actions create mode 100644 engine/lib/sdl/visualtest/configs/testsprite2_blendmodes/testsprite2_blendmodes.config create mode 100644 engine/lib/sdl/visualtest/configs/testsprite2_blendmodes/testsprite2_blendmodes.parameters create mode 100644 engine/lib/sdl/visualtest/configs/testsprite2_crashtest/testsprite2_crashtest.actions create mode 100644 engine/lib/sdl/visualtest/configs/testsprite2_crashtest/testsprite2_crashtest.config create mode 100644 engine/lib/sdl/visualtest/configs/testsprite2_crashtest/testsprite2_crashtest.parameters create mode 100644 engine/lib/sdl/visualtest/configs/testsprite2_fullscreen/testsprite2_fullscreen.actions create mode 100644 engine/lib/sdl/visualtest/configs/testsprite2_fullscreen/testsprite2_fullscreen.config create mode 100644 engine/lib/sdl/visualtest/configs/testsprite2_fullscreen/testsprite2_fullscreen.parameters create mode 100644 engine/lib/sdl/visualtest/configs/testsprite2_geometry/testsprite2_geometry.actions create mode 100644 engine/lib/sdl/visualtest/configs/testsprite2_geometry/testsprite2_geometry.config create mode 100644 engine/lib/sdl/visualtest/configs/testsprite2_geometry/testsprite2_geometry.parameters create mode 100644 engine/lib/sdl/visualtest/configure create mode 100644 engine/lib/sdl/visualtest/configure.ac create mode 100644 engine/lib/sdl/visualtest/docs/Doxyfile create mode 100644 engine/lib/sdl/visualtest/include/SDL_visualtest_action_configparser.h create mode 100644 engine/lib/sdl/visualtest/include/SDL_visualtest_exhaustive_variator.h create mode 100644 engine/lib/sdl/visualtest/include/SDL_visualtest_harness_argparser.h create mode 100644 engine/lib/sdl/visualtest/include/SDL_visualtest_mischelper.h create mode 100644 engine/lib/sdl/visualtest/include/SDL_visualtest_parsehelper.h create mode 100644 engine/lib/sdl/visualtest/include/SDL_visualtest_process.h create mode 100644 engine/lib/sdl/visualtest/include/SDL_visualtest_random_variator.h create mode 100644 engine/lib/sdl/visualtest/include/SDL_visualtest_rwhelper.h create mode 100644 engine/lib/sdl/visualtest/include/SDL_visualtest_screenshot.h create mode 100644 engine/lib/sdl/visualtest/include/SDL_visualtest_sut_configparser.h create mode 100644 engine/lib/sdl/visualtest/include/SDL_visualtest_variator_common.h create mode 100644 engine/lib/sdl/visualtest/include/SDL_visualtest_variators.h create mode 100644 engine/lib/sdl/visualtest/launch_harness.cmd create mode 100644 engine/lib/sdl/visualtest/launch_harness.sh create mode 100644 engine/lib/sdl/visualtest/src/action_configparser.c create mode 100644 engine/lib/sdl/visualtest/src/harness_argparser.c create mode 100644 engine/lib/sdl/visualtest/src/linux/linux_process.c create mode 100644 engine/lib/sdl/visualtest/src/mischelper.c create mode 100644 engine/lib/sdl/visualtest/src/parsehelper.c create mode 100644 engine/lib/sdl/visualtest/src/rwhelper.c create mode 100644 engine/lib/sdl/visualtest/src/screenshot.c create mode 100644 engine/lib/sdl/visualtest/src/sut_configparser.c create mode 100644 engine/lib/sdl/visualtest/src/testharness.c create mode 100644 engine/lib/sdl/visualtest/src/variator_common.c create mode 100644 engine/lib/sdl/visualtest/src/variator_exhaustive.c create mode 100644 engine/lib/sdl/visualtest/src/variator_random.c create mode 100644 engine/lib/sdl/visualtest/src/variators.c create mode 100644 engine/lib/sdl/visualtest/src/windows/windows_process.c create mode 100644 engine/lib/sdl/visualtest/src/windows/windows_screenshot.c create mode 100644 engine/lib/sdl/visualtest/testsprite2_sample.actions create mode 100644 engine/lib/sdl/visualtest/testsprite2_sample.config create mode 100644 engine/lib/sdl/visualtest/testsprite2_sample.parameters create mode 100644 engine/lib/sdl/visualtest/unittest/testquit.actions create mode 100644 engine/lib/sdl/visualtest/unittest/testquit.c create mode 100644 engine/lib/sdl/visualtest/unittest/testquit.config create mode 100644 engine/lib/sdl/visualtest/unittest/testquit.parameters create mode 100644 engine/lib/sdl/wayland-protocols/cursor-shape-v1.xml create mode 100644 engine/lib/sdl/wayland-protocols/fractional-scale-v1.xml create mode 100644 engine/lib/sdl/wayland-protocols/idle-inhibit-unstable-v1.xml create mode 100644 engine/lib/sdl/wayland-protocols/keyboard-shortcuts-inhibit-unstable-v1.xml create mode 100644 engine/lib/sdl/wayland-protocols/pointer-constraints-unstable-v1.xml create mode 100644 engine/lib/sdl/wayland-protocols/primary-selection-unstable-v1.xml create mode 100644 engine/lib/sdl/wayland-protocols/relative-pointer-unstable-v1.xml create mode 100644 engine/lib/sdl/wayland-protocols/tablet-unstable-v2.xml create mode 100644 engine/lib/sdl/wayland-protocols/text-input-unstable-v3.xml create mode 100644 engine/lib/sdl/wayland-protocols/viewporter.xml create mode 100644 engine/lib/sdl/wayland-protocols/wayland.xml create mode 100644 engine/lib/sdl/wayland-protocols/xdg-activation-v1.xml create mode 100644 engine/lib/sdl/wayland-protocols/xdg-decoration-unstable-v1.xml create mode 100644 engine/lib/sdl/wayland-protocols/xdg-output-unstable-v1.xml create mode 100644 engine/lib/sdl/wayland-protocols/xdg-shell.xml create mode 100644 engine/lib/sdl/wayland-protocols/xdg-toplevel-icon-v1.xml create mode 100644 engine/source/platformSDL/sdlInput.cpp create mode 100644 engine/source/platformSDL/sdlInput.h create mode 100644 engine/source/platformSDL/sdlMsgBox.cpp create mode 100644 engine/source/platformSDL/sdlTextInput.cpp create mode 100644 engine/source/platformSDL/sdlTextInput.h delete mode 100755 engine/source/platformX86UNIX/x86UNIXMessageBox.cc delete mode 100755 engine/source/platformX86UNIX/x86UNIXMessageBox.h create mode 100644 engine/source/testing/tests/sdlKeyMapTests.cc create mode 100644 engine/source/testing/tests/sdlTextInputTests.cc diff --git a/.github/workflows/PR-builds.yml b/.github/workflows/PR-builds.yml index d18dab020..8b35bf903 100644 --- a/.github/workflows/PR-builds.yml +++ b/.github/workflows/PR-builds.yml @@ -52,9 +52,11 @@ jobs: # =========================================================================== linux-x64: name: Linux x86_64 - # Not pinned: libsdl1.2-dev on 24.04 is the SDL2-backed sdl12-compat shim, - # which the back-end is happy with now that the ascii key table is read from - # the X keymap rather than from SDL's private X11_KeyToUnicode. + # Not pinned. SDL 2 is vendored in engine/lib/sdl and compiled by the + # configure step, so there is no SDL package to install -- only SDL's X11 + # build dependencies: libxext-dev is required, and libxrandr-dev through + # libxss-dev each turn on an SDL feature that is silently left out when its + # headers are missing. runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 @@ -63,7 +65,8 @@ jobs: run: | sudo apt-get update sudo apt-get install -y build-essential \ - libsdl1.2-dev libx11-dev libxft-dev libfreetype6-dev libopenal-dev libgl1-mesa-dev + libx11-dev libxext-dev libxrandr-dev libxcursor-dev libxfixes-dev libxi-dev libxss-dev \ + libxft-dev libfreetype6-dev libopenal-dev libgl1-mesa-dev - name: Build Debug run: | cmake -S . -B build/linux-debug -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug @@ -103,8 +106,9 @@ jobs: sudo dpkg --add-architecture i386 sudo apt-get update sudo apt-get install -y gcc-multilib g++-multilib nasm \ - libsdl1.2-dev:i386 libx11-dev:i386 libxft-dev:i386 libfreetype6-dev:i386 \ - libopenal-dev:i386 libgl1-mesa-dev:i386 + libx11-dev:i386 libxext-dev:i386 libxrandr-dev:i386 libxcursor-dev:i386 \ + libxfixes-dev:i386 libxi-dev:i386 libxss-dev:i386 \ + libxft-dev:i386 libfreetype6-dev:i386 libopenal-dev:i386 libgl1-mesa-dev:i386 - name: Build Release (-m32) env: # Point pkg-config / find_package at the 32-bit libraries. diff --git a/CHANGELOG.md b/CHANGELOG.md index 5d1b12a70..c942d929d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,10 +11,17 @@ what your scripts have to say, and what ends up in your files. ### Added - On Linux, the game window works with tiling window managers such as Hyprland, i3 and sway. `$pref::Video::windowedRes` now says whether the game has a size in mind. Leave it empty and the window opens resizable at `$pref::Video::defaultResolution`, and a tiling window manager is free to tile it. Give it a size and the window opens at exactly that size, which a tiling window manager takes as its cue to float the window rather than tile it; it can still be resized afterwards. A stacking desktop simply opens the window at the size either way. The editor's own preferences now leave `windowedRes` empty, so the editor tiles; everywhere else -- Windows, macOS, a stacking Linux desktop -- it still opens at 1024x768. New projects keep AppCore's `1024 768`, so a game opens at the size it was designed for and floats on a tiling window manager until the player tiles it. -- On Linux, the engine follows the window manager into and out of fullscreen. Make the window fullscreen from the window manager -- SUPER+F in Hyprland -- and the canvas grows to fill the screen, and shrinks back when you leave. With the SDL 1.2 that distributions now ship (`sdl12-compat`), `isFullScreen()` reports it as well, and `$pref::Video::fullScreen` is honoured at start-up as it already was on Windows and macOS. A build against genuine SDL 1.2 follows the new size but goes on reporting a window, because that SDL's own fullscreen covers the screen with a window the window manager never sees. +- On Linux, the engine follows the window manager into and out of fullscreen. Make the window fullscreen from the window manager -- SUPER+F in Hyprland -- and the canvas grows to fill the screen, and shrinks back when you leave. `isFullScreen()` and `$pref::Video::fullScreen` report it, although SDL itself never notices, so `toggleFullScreen()` takes the window out again from there. `$pref::Video::fullScreen` is also honoured at start-up, as it already was on Windows and macOS. + +### Changed + +- On Linux, the engine runs on SDL 2, built from source with the engine, instead of the SDL 1.2 installed on the system; there is no SDL package to install any more. SDL 1.2 came in two implementations that disagreed about windows, events and fullscreen -- the original 1.2.15 and the `sdl12-compat` shim that Arch and Ubuntu 24.04+ ship under its name -- and the engine now builds one SDL, 2.32.10, the same as Torque3D and as the Emscripten port the Web build uses. What a game sees: the window follows a drag, a tiling layout or fullscreen at once, where it used to wait for a drag to settle and then reload every texture; fullscreen always uses the desktop's own resolution; typed text arrives as character events of its own, so accented letters, dead keys, compose and input methods type what they should on any keyboard layout; a key binding written with a character still finds the key that types that character; alerts are native dialogs; the clipboard carries UTF-8 both ways instead of Latin-1, and no longer blocks for up to five seconds when another program is slow to answer; and `$pref::Video::disableVerticalSync` is honoured, where it was ignored. +- On Linux, a notch of the mouse wheel is worth `$pref::Input::MouseWheelSpeed` on the wheel axis -- 120 by default, as Windows reports it -- instead of 10. GUI scrolling looks only at the direction and is unchanged, but a binding that scales by the value moves twelve times as far per notch. The two side buttons reach the engine as `button3` and `button4`. ### Fixed +- On Linux, `toggleFullScreen()` works after the window has been resized or tiled. It asks for fullscreen at the window's current size, and a check that a fullscreen size must be one the display lists refused any size a drag or a tiling layout had produced. + - On Linux, the window no longer appears at 800x600 and resizes itself a moment later. It is created at the size the game is about to ask for; the old placeholder came from `$pref::Video::resolution`, which nothing sets before the canvas exists. The first size mattered more than it looked: a tiling window manager remembers it, and it was the size Hyprland floated the window at. - On Linux, `getDesktopResolution()` could report the desktop's width and height the wrong way round. diff --git a/CMakeLists.txt b/CMakeLists.txt index a15837aa4..e01e966e4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -449,45 +449,44 @@ if(TORQUE_IOS) endif() if(UNIX AND NOT APPLE AND NOT ANDROID AND NOT EMSCRIPTEN) - # Linux / X11 desktop build (platformX86UNIX). NOTES for the on-platform - # (WSL/Linux) session: - # * SDL 1.2 is REQUIRED, not optional: the platform back-end calls 1.2-only - # APIs (SDL_GetVideoSurface, SDL_WM_*, SDL_*GammaRamp, SDL_GL_SwapBuffers). - # This is NOT SDL2. The SDL2-backed sdl12-compat shim (Ubuntu 24.04+, Arch) - # is fine: the back-end no longer reaches into libSDL for the private - # X11_KeyToUnicode symbol, it reads the keymap through Xlib. + # Linux desktop build: platformX86UNIX on SDL 2, with platformSDL -- the code + # it shares with the other back-ends on SDL 2. NOTES for the on-platform + # session: + # * SDL 2 is vendored (engine/lib/sdl, the same 2.32.10 Torque3D builds) and + # built by engine/lib/CMakeLists.txt as a static library, so there is no + # SDL to install and the engine still ships as one executable. SDL's CMake + # needs the X11 development headers to build its X11 driver, which is the + # driver the back-end runs on (InitSDL in x86UNIXWindow.cc). # * `rt` is a no-op on modern glibc but harmless. # * OpenGL/FreeType are resolved via find_package (more robust than the old # hard-coded /usr/include/freetype2 paths). Install dev packages, e.g. on - # Debian/Ubuntu: libsdl1.2-dev libx11-dev libxft-dev libfontconfig1-dev + # Debian/Ubuntu: libx11-dev libxext-dev libxrandr-dev libxcursor-dev + # libxfixes-dev libxi-dev libxss-dev libxft-dev libfontconfig1-dev # libfreetype6-dev libopenal-dev libgl1-mesa-dev (and nasm for the 32-bit # build). + # * X11 is linked directly as well as through SDL: the fonts (x86UNIXFont.cc) + # use Xft on a display connection of their own, and the back-end reads the + # window manager's _NET_WM_STATE through SDL's (x86UNIXOGLVideo.cc). # * fontconfig is linked explicitly, not left to Xft: x86UNIXFont.cc calls # Fc* directly for PlatformFont::enumeratePlatformFonts. find_package(Threads REQUIRED) find_package(OpenGL REQUIRED) find_package(Freetype REQUIRED) - # SDL 1.2 (legacy). Resolve it directly rather than via FindSDL: the sources - # use `#include `, which needs the PARENT of the SDL header dir on - # the include path (find_path on SDL/SDL.h returns exactly that directory). - find_library(SDL12_LIBRARY NAMES SDL SDL-1.2) - find_path(SDL12_INCLUDE_DIR NAMES SDL/SDL.h) - if(NOT SDL12_LIBRARY OR NOT SDL12_INCLUDE_DIR) - message(FATAL_ERROR - "SDL 1.2 not found. Install it (Debian/Ubuntu: 'sudo apt install libsdl1.2-dev').") - endif() - target_include_directories(Torque2D PRIVATE ${SDL12_INCLUDE_DIR}) - target_link_libraries(Torque2D PRIVATE Threads::Threads OpenGL::GL Freetype::Freetype m dl rt X11 Xft fontconfig - ${SDL12_LIBRARY} + SDL2::SDL2-static openal) + # TORQUE_SDL: the platform layer is built on SDL 2 and compiles + # engine/source/platformSDL -- Torque3D's name for the same switch. The unit + # tests of that shared code are compiled only where it is. + target_compile_definitions(Torque2D PRIVATE TORQUE_SDL) + # CPU / bitness. detectX86CPUInfo() (platform/platformCPUInfo.asm — 32-bit # NASM, it does NOT assemble for elf64) is referenced only when TORQUE_64 is # undefined (engine/source/platformX86UNIX/x86UNIXCPUInfo.cc). diff --git a/build-linux.sh b/build-linux.sh index 448d6235f..230181b95 100755 --- a/build-linux.sh +++ b/build-linux.sh @@ -15,10 +15,11 @@ # # Requires CMake, a C/C++ toolchain, and the dev packages. On Debian/Ubuntu: # sudo apt install build-essential cmake \ -# libsdl1.2-dev libx11-dev libxft-dev libfreetype6-dev \ +# libx11-dev libxext-dev libxrandr-dev libxcursor-dev libxfixes-dev \ +# libxi-dev libxss-dev libxft-dev libfreetype6-dev \ # libopenal-dev libgl1-mesa-dev -# Note: that is SDL *1.2*, not SDL2. The SDL2-backed sdl12-compat shim that -# ships on Ubuntu 24.04+ and Arch works too. +# SDL 2 is not among them: it is vendored in engine/lib/sdl and built by the +# configure step, and the libx*-dev packages are what it needs to build. # For a 32-bit build see cmake/BUILD-PLATFORM-NOTES.md. # --------------------------------------------------------------------------- set -e diff --git a/cmake/BUILD-PLATFORM-NOTES.md b/cmake/BUILD-PLATFORM-NOTES.md index 5f28d6cb8..a9858938f 100644 --- a/cmake/BUILD-PLATFORM-NOTES.md +++ b/cmake/BUILD-PLATFORM-NOTES.md @@ -336,57 +336,45 @@ codesign — `rm -rf Torque2D_DEBUG.app` when switching platforms. ## Linux round (run in WSL or on Linux) — DONE (builds & links, 32 & 64-bit) 1. Install deps (Debian/Ubuntu): - `sudo apt install build-essential cmake nasm libsdl1.2-dev libx11-dev libxft-dev libfontconfig1-dev libfreetype6-dev libopenal-dev libgl1-mesa-dev` + `sudo apt install build-essential cmake nasm libx11-dev libxext-dev libxrandr-dev libxcursor-dev libxfixes-dev libxi-dev libxss-dev libxft-dev libfontconfig1-dev libfreetype6-dev libopenal-dev libgl1-mesa-dev` For 32-bit add the multilib toolchain + `:i386` libs: - `sudo dpkg --add-architecture i386 && sudo apt update && sudo apt install gcc-multilib g++-multilib libsdl1.2-dev:i386 libx11-dev:i386 libxft-dev:i386 libfontconfig1-dev:i386 libfreetype6-dev:i386 libopenal-dev:i386 libgl1-mesa-dev:i386` + `sudo dpkg --add-architecture i386 && sudo apt update && sudo apt install gcc-multilib g++-multilib libx11-dev:i386 libxext-dev:i386 libxrandr-dev:i386 libxcursor-dev:i386 libxfixes-dev:i386 libxi-dev:i386 libxss-dev:i386 libxft-dev:i386 libfontconfig1-dev:i386 libfreetype6-dev:i386 libopenal-dev:i386 libgl1-mesa-dev:i386` + **SDL 2 is not a package to install.** It is vendored in `engine/lib/sdl` + (SDL 2.32.10, the tree Torque3D builds; see its `README-TORQUE2D.md`) and + compiled by the configure step as a static library. The `libx*-dev` packages + are its X11 build dependencies: `libxext-dev` is required -- SDL's configure + stops with "Missing Xext.h" without it -- and each of the others turns on an + SDL feature (display modes through XRandR, cursors, XInput2 relative mouse, + screensaver inhibit) that is silently left out when its headers are missing. **fontconfig is a direct dependency, not just Xft's:** `x86UNIXFont.cc` calls `Fc*` itself for `PlatformFont::enumeratePlatformFonts` (the installed-font list the GUI tools offer), so the Linux link list carries `fontconfig` explicitly. - **Gotcha (per-arch `-dev`, and they do NOT coexist):** `libsdl1.2-dev:amd64` - and `libsdl1.2-dev:i386` conflict (shared files like `sdl-config`), so only one - can be installed at a time — installing one removes the other. A box prepped for - 32-bit has only `libsdl1.2-dev:i386` (which still provides `sdl-config`, masking - the problem), so a default 64-bit configure fails `find_library(SDL12_LIBRARY)` - with "SDL 1.2 not found"; install `libsdl1.2-dev` (`:amd64`) to build 64-bit. - The reverse bites the 32-bit build: with the amd64 `-dev` installed, the i386 - dev symlink `/usr/lib/i386-linux-gnu/libSDL.so` is gone (only the runtime - `libSDL-1.2.so.0` from `libsdl1.2debian:i386` remains), so `find_library` can't - find it. The headers are arch-independent (shared), so the fix is to point CMake - at the i386 runtime directly: `-DSDL12_LIBRARY=/usr/lib/i386-linux-gnu/libSDL-1.2.so.0` - (no sudo; leaves the 64-bit setup intact). Alternatively recreate the symlink - (`sudo ln -s libSDL-1.2.so.0 /usr/lib/i386-linux-gnu/libSDL.so`) or swap dev - packages per build. 2. 64-bit one-shot: `./build-linux.sh [Debug|Release|Shipping]` (configures **and** compiles, bounding `--parallel` to `nproc`, leaving the exe at the repo root). Configure-only: `./generate-make.sh Debug` then `cmake --build build/make -j$(nproc)`. 32-bit (verified building, linking, and running): configure with `-DCMAKE_C_FLAGS=-m32 -DCMAKE_CXX_FLAGS=-m32 -DCMAKE_EXE_LINKER_FLAGS=-m32` - (and `PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig`, plus the SDL override - above when only the amd64 `-dev` is present), then build. `-m32` makes CMake + (and `PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig`), then build. `-m32` makes CMake auto-detect `CMAKE_LIBRARY_ARCHITECTURE=i386-linux-gnu`, so OpenGL/FreeType/etc. resolve to `/usr/lib/i386-linux-gnu`; the root picks the bitness code path from `CMAKE_SIZEOF_VOID_P`. Note both builds emit `Torque2D_DEBUG` at the repo root, so they overwrite each other — use separate build dirs (`build/make`, `build/make32`) and rebuild whichever bitness you want at the root. 3. Resolved issues (the original scaffold's wrong assumptions): - - **SDL 1.2 is REQUIRED, not optional.** The back-end calls 1.2-only APIs - (`SDL_GetVideoSurface`, `SDL_WM_*`, `SDL_*GammaRamp`, `SDL_GL_SwapBuffers`). - This is **NOT SDL2**. The SDL2-backed `sdl12-compat` shim (Ubuntu 24.04+, - Arch) *is* supported: the ascii key table used to be built by calling - `X11_KeyToUnicode`, a private symbol of SDL 1.2's X11 driver that was never - in a public header, and it is now read from the X keymap through Xlib. - `sdl12-compat` does export an `X11_KeyToUnicode`, but it is a US-layout - `toupper()` stub — it answers `1` for shift-`1` and `;` for shift-`;` — so - linking against it used to succeed and then mistype every shifted - punctuation character. + - **SDL 2, vendored.** The back-end was written against SDL 1.2 and ran on + either a genuine 1.2.15 or the SDL2-backed `sdl12-compat` shim that Ubuntu + 24.04+ and Arch ship as SDL 1.2 -- two implementations that disagreed about + windows, events and fullscreen. It now uses the vendored SDL 2 on SDL's X11 + driver (through Xwayland on a Wayland desktop); `SDL_VIDEODRIVER` overrides + the driver. - **`detectX86CPUInfo`** comes from `platform/platformCPUInfo.asm`, 32-bit-only NASM (does not assemble for elf64). It's referenced only `#ifndef TORQUE_64`, so 64-bit defines `TORQUE_64` (asm unneeded); 32-bit assembles it via NASM. - **Bitness macros:** 64-bit defines `TORQUE_64` (`__amd64__` is auto); 32-bit defines `i386` (bare `i386` isn't predefined under standard C++, and `types.gcc.h`'s CPU detection keys off it). - - **OpenGL/FreeType** are resolved via `find_package`; SDL via - `find_library`/`find_path` (the latter so `#include ` resolves). + - **OpenGL/FreeType** are resolved via `find_package`; SDL is the vendored + `SDL2::SDL2-static` target from `engine/lib`. 4. **WSL runtime — VERIFIED under WSLg (64-bit Debug).** On a WSL2 box with WSLg up (`DISPLAY=:0`, `WAYLAND_DISPLAY=wayland-0`, `/mnt/wslg/.X11-unix/X0`), `./Torque2D_DEBUG` launches the Project Manager GUI: OpenGL initializes through diff --git a/cmake/EngineSources.cmake b/cmake/EngineSources.cmake index ab78d8aa5..1a45b46de 100644 --- a/cmake/EngineSources.cmake +++ b/cmake/EngineSources.cmake @@ -365,6 +365,8 @@ set(TORQUE_ENGINE_SOURCES ${TORQUE_SRC}/testing/tests/platformMemoryTests.cc ${TORQUE_SRC}/testing/tests/platformStringTests.cc ${TORQUE_SRC}/testing/tests/resourceManagerDeleteTests.cc + ${TORQUE_SRC}/testing/tests/sdlKeyMapTests.cc + ${TORQUE_SRC}/testing/tests/sdlTextInputTests.cc ${TORQUE_SRC}/testing/tests/simObjectCloneTests.cc ${TORQUE_SRC}/testing/tests/stringTableCaseTests.cc # ---- platform ---- diff --git a/cmake/PlatformSources.cmake b/cmake/PlatformSources.cmake index 41328bb1a..85c02b693 100644 --- a/cmake/PlatformSources.cmake +++ b/cmake/PlatformSources.cmake @@ -86,7 +86,7 @@ set(TORQUE_PLATFORM_SOURCES_MACOS ${TORQUE_SRC}/platformOSX/platformOSX.mm ) -# === Linux / X11 (platformX86UNIX) =========================================== +# === Linux (platformX86UNIX + platformSDL, on SDL 2's X11 driver) ============= set(TORQUE_PLATFORM_SOURCES_LINUX # ---- platformX86UNIX ---- ${TORQUE_SRC}/platformX86UNIX/x86UNIXAsmBlit.cc @@ -103,7 +103,6 @@ set(TORQUE_PLATFORM_SOURCES_LINUX ${TORQUE_SRC}/platformX86UNIX/x86UNIXMath.cc ${TORQUE_SRC}/platformX86UNIX/x86UNIXMath_ASM.cc ${TORQUE_SRC}/platformX86UNIX/x86UNIXMemory.cc - ${TORQUE_SRC}/platformX86UNIX/x86UNIXMessageBox.cc ${TORQUE_SRC}/platformX86UNIX/x86UNIXMutex.cc ${TORQUE_SRC}/platformX86UNIX/x86UNIXOGLVideo.cc ${TORQUE_SRC}/platformX86UNIX/x86UNIXOpenAL.cc @@ -115,6 +114,10 @@ set(TORQUE_PLATFORM_SOURCES_LINUX ${TORQUE_SRC}/platformX86UNIX/x86UNIXTime.cc ${TORQUE_SRC}/platformX86UNIX/x86UNIXUtils.cc ${TORQUE_SRC}/platformX86UNIX/x86UNIXWindow.cc + # ---- platformSDL: shared by every back-end on SDL 2 (the web build next) ---- + ${TORQUE_SRC}/platformSDL/sdlInput.cpp + ${TORQUE_SRC}/platformSDL/sdlMsgBox.cpp + ${TORQUE_SRC}/platformSDL/sdlTextInput.cpp ) # === iOS (platformiOS) ======================================================= diff --git a/engine/lib/CMakeLists.txt b/engine/lib/CMakeLists.txt index 96bc3341e..3d5c51362 100644 --- a/engine/lib/CMakeLists.txt +++ b/engine/lib/CMakeLists.txt @@ -21,6 +21,22 @@ function(torque_thirdparty_lib name) set_target_properties(${name} PROPERTIES FOLDER "ThirdParty") endfunction() +# --- SDL 2 (Linux desktop only) ---------------------------------------------- +# Vendored from Torque3D and built by SDL's own CMake, the way Torque3D builds it +# (see sdl/README-TORQUE2D.md) -- except static rather than shared, so the engine +# still ships as one executable. The Web build takes SDL 2 from Emscripten's port +# (-sUSE_SDL=2) instead, and Windows, macOS, iOS and Android don't use SDL. +# EXCLUDE_FROM_ALL: nothing is built unless the engine links SDL2::SDL2-static. +if(UNIX AND NOT APPLE AND NOT ANDROID AND NOT EMSCRIPTEN) + set(SDL_SHARED OFF CACHE BOOL "Build a shared version of the library" FORCE) + set(SDL_STATIC ON CACHE BOOL "Build a static version of the library" FORCE) + set(SDL_TEST OFF CACHE BOOL "Build the SDL2_test library" FORCE) + set(SDL2_DISABLE_SDL2MAIN ON CACHE BOOL "The engine has its own main()" FORCE) + set(SDL2_DISABLE_INSTALL ON CACHE BOOL "Don't install SDL with the engine" FORCE) + set(SDL2_DISABLE_UNINSTALL ON CACHE BOOL "Don't add an uninstall target" FORCE) + add_subdirectory(sdl ${CMAKE_CURRENT_BINARY_DIR}/sdl2 EXCLUDE_FROM_ALL) +endif() + # --- zlib (built from source on desktop; Android uses the NDK system libz) ----- if(NOT ANDROID) add_library(zlib STATIC diff --git a/engine/lib/sdl/.clang-format b/engine/lib/sdl/.clang-format new file mode 100644 index 000000000..e98e5cd70 --- /dev/null +++ b/engine/lib/sdl/.clang-format @@ -0,0 +1,90 @@ +--- +AlignConsecutiveMacros: Consecutive +AlignConsecutiveAssignments: None +AlignConsecutiveBitFields: None +AlignConsecutiveDeclarations: None +AlignEscapedNewlines: Right +AlignOperands: Align +AlignTrailingComments: true + +AllowAllArgumentsOnNextLine: true +AllowAllParametersOfDeclarationOnNextLine: true +AllowShortEnumsOnASingleLine: true +AllowShortBlocksOnASingleLine: Never +AllowShortCaseLabelsOnASingleLine: false +AllowShortFunctionsOnASingleLine: All +AllowShortIfStatementsOnASingleLine: Never +AllowShortLoopsOnASingleLine: false + +AlwaysBreakAfterDefinitionReturnType: None +AlwaysBreakAfterReturnType: None +AlwaysBreakBeforeMultilineStrings: false +AlwaysBreakTemplateDeclarations: MultiLine + +# Custom brace breaking +BreakBeforeBraces: Custom +BraceWrapping: + AfterCaseLabel: true + AfterClass: true + AfterControlStatement: Never + AfterEnum: true + AfterFunction: true + AfterNamespace: true + AfterObjCDeclaration: true + AfterStruct: true + AfterUnion: true + AfterExternBlock: false + BeforeElse: false + BeforeWhile: false + IndentBraces: false + SplitEmptyFunction: true + SplitEmptyRecord: true + +# Make the closing brace of container literals go to a new line +Cpp11BracedListStyle: false + +# Never format includes +IncludeBlocks: Preserve +# clang-format version 4.0 through 12.0: +#SortIncludes: false +# clang-format version 13.0+: +#SortIncludes: Never + +# No length limit, in case it breaks macros, you can +# disable it with /* clang-format off/on */ comments +ColumnLimit: 0 + +IndentWidth: 4 +ContinuationIndentWidth: 4 +IndentCaseLabels: false +IndentCaseBlocks: false +IndentGotoLabels: true +IndentPPDirectives: None +IndentExternBlock: NoIndent + +PointerAlignment: Right +SpaceAfterCStyleCast: false +SpacesInCStyleCastParentheses: false +SpacesInConditionalStatement: false +SpacesInContainerLiterals: true +SpaceBeforeAssignmentOperators: true +SpaceBeforeCaseColon: false +SpaceBeforeParens: ControlStatements +SpaceAroundPointerQualifiers: Default +SpaceInEmptyBlock: false +SpaceInEmptyParentheses: false + +UseCRLF: false +UseTab: Never + +ForEachMacros: + [ + "spa_list_for_each", + "spa_list_for_each_safe", + "wl_list_for_each", + "wl_array_for_each", + "udev_list_entry_foreach", + ] + +--- + diff --git a/engine/lib/sdl/.editorconfig b/engine/lib/sdl/.editorconfig new file mode 100644 index 000000000..cdd3c4ea9 --- /dev/null +++ b/engine/lib/sdl/.editorconfig @@ -0,0 +1,79 @@ +# For format see editorconfig.org +# Copyright 2022 Collabora Ltd. +# SPDX-License-Identifier: Zlib + +root = true + +[*.{c,cg,cpp,gradle,h,java,m,metal,pl,py,S,sh,txt}] +indent_size = 4 +indent_style = space +insert_final_newline = true +trim_trailing_whitespace = true + +[*.{html,js,json,m4,yml,yaml,vcxproj,vcxproj.filters}] +indent_size = 2 +indent_style = space + +[*.xml] +indent_size = 4 +indent_style = space + +[{CMakeLists.txt,sdl2-config*.cmake.in,cmake/*.cmake}] +indent_size = 2 +indent_style = space + +[{cmake_uninstall.cmake.in,test/CMakeLists.txt}] +indent_size = 4 +indent_style = space + +[configure.ac] +# Inconsistently 2-, 4- or occasionally 3-space indented, but mostly 4, +# so let's use 4 for new code +indent_size = 4 +indent_style = space + +[{Makefile.*,*.mk,*.sln,*.pbxproj,*.plist}] +indent_size = 8 +indent_style = tab +tab_width = 8 + +[Makefile.os2] +indent_size = 4 +indent_style = space + +[test/Makefile.os2] +indent_size = 2 +indent_style = space + +[{src/core/os2/geniconv/makefile,src/core/os2/geniconv/os2cp.c}] +indent_size = 2 +indent_style = space + +[src/joystick/controller_type.*] +indent_style = tab + +[src/joystick/hidapi/steam/*.h] +indent_style = tab + +[src/libm/*.c] +indent_style = tab + +[src/test/SDL_test_{crc32,md5,random}.c] +indent_size = 2 +indent_style = space + +[src/video/yuv2rgb/*.{c,h}] +indent_style = tab + +[wayland-protocols/*.xml] +indent_size = 2 +indent_style = space + +[*.{markdown,md}] +indent_size = 4 +indent_style = space +# Markdown syntax treats tabs as 4 spaces +tab_width = 4 + +[{*.bat,*.rc}] +end_of_line = crlf diff --git a/engine/lib/sdl/.gitignore b/engine/lib/sdl/.gitignore new file mode 100644 index 000000000..f53f91c3b --- /dev/null +++ b/engine/lib/sdl/.gitignore @@ -0,0 +1,190 @@ +aclocal.m4 +autom4te* +config.cache +config.log +config.status +libtool +Makefile +Makefile.rules +sdl2-config +sdl2-config.cmake +sdl2-config-version.cmake +sdl2.pc +SDL2.spec +build +gen +Build +buildbot +/REVISION.txt +dist + +*.so +*.so.* +*.dll +*.exe +*.o +*.obj +*.res +*.lib +*.a +*.la +*.dSYM +*,e1f +*,ff8 +*.lnk +*.err +*.exp +*.map +*.orig +*~ +*.swp +*.tmp +*.rej + +# for CMake +CMakeFiles/ +CMakeCache.txt +cmake_install.cmake +cmake_uninstall.cmake +SDL2ConfigVersion.cmake +.ninja_* +*.ninja + +# for CLion +.idea +cmake-build-* + +# for Xcode +*.mode1* +*.perspective* +*.pbxuser +(^|/)build($|/) +.DS_Store +xcuserdata +*.xcworkspace + +# for QtCreator +CMakeLists.txt.user +build*/ +*.pro.user* + +# for Visual C++ +.vs +Debug +Release +*.user +*.ncb +*.suo +*.sdf +VisualC/tests/controllermap/axis.bmp +VisualC/tests/controllermap/button.bmp +VisualC/tests/controllermap/controllermap.bmp +VisualC/tests/controllermap/controllermap_back.bmp +VisualC/tests/loopwave/sample.wav +VisualC/tests/testautomation/CompareSurfaces0001_Reference.bmp +VisualC/tests/testautomation/CompareSurfaces0001_TestOutput.bmp +VisualC/tests/testgamecontroller/axis.bmp +VisualC/tests/testgamecontroller/button.bmp +VisualC/tests/testgamecontroller/controllermap.bmp +VisualC/tests/testgamecontroller/controllermap_back.bmp +VisualC/tests/testoverlay2/moose.dat +VisualC/tests/testrendertarget/icon.bmp +VisualC/tests/testrendertarget/sample.bmp +VisualC/tests/testscale/icon.bmp +VisualC/tests/testscale/sample.bmp +VisualC/tests/testsprite2/icon.bmp +VisualC/tests/testyuv/testyuv.bmp +VisualC/visualtest/icon.bmp +VisualC/visualtest/testquit.actions +VisualC/visualtest/testquit.config +VisualC/visualtest/testquit.exe +VisualC/visualtest/testquit.parameters +VisualC/visualtest/testsprite2.exe +VisualC/visualtest/testsprite2_sample.actions +VisualC/visualtest/testsprite2_sample.config +VisualC/visualtest/testsprite2_sample.parameters +VisualC-GDK/**/Layout +VisualC-GDK/shaders/*.h + +# for Android +android-project/local.properties +android-project/.gradle/ + +test/checkkeys +test/checkkeysthreads +test/controllermap +test/loopwave +test/loopwavequeue +test/testatomic +test/testaudiocapture +test/testaudiohotplug +test/testaudioinfo +test/testautomation +test/testbounds +test/testcustomcursor +test/testdisplayinfo +test/testdraw2 +test/testdrawchessboard +test/testdropfile +test/testerror +test/testevdev +test/testfile +test/testfilesystem +test/testgamecontroller +test/testgeometry +test/testgesture +test/testgl2 +test/testgles +test/testgles2 +test/testhaptic +test/testhittesting +test/testhotplug +test/testiconv +test/testime +test/testintersections +test/testjoystick +test/testkeys +test/testloadso +test/testlocale +test/testlock +test/testmessage +test/testmouse +test/testmultiaudio +test/testnative +test/testoverlay2 +test/testplatform +test/testpower +test/testqsort +test/testrelative +test/testrendercopyex +test/testrendertarget +test/testresample +test/testrumble +test/testscale +test/testsem +test/testsensor +test/testshader +test/testshape +test/testsprite2 +test/testspriteminimal +test/teststreaming +test/testsurround +test/testthread +test/testtimer +test/testurl +test/testver +test/testviewport +test/testvulkan +test/testwm2 +test/testyuv +test/torturethread + +builddir/ +!build-scripts/ +debian/*.debhelper.log +debian/*.substvars +debian/*.tar.gz +debian/.debhelper/ +debian/files +debian/libsdl*/ +debian/tmp/ diff --git a/engine/lib/sdl/.wikiheaders-options b/engine/lib/sdl/.wikiheaders-options new file mode 100644 index 000000000..6fb34503d --- /dev/null +++ b/engine/lib/sdl/.wikiheaders-options @@ -0,0 +1,31 @@ +projectfullname = Simple Directmedia Layer +projectshortname = SDL +incsubdir = include +wikisubdir = SDL2 +readmesubdir = docs +apiprefixregex = (SDL_|SDLK_|KMOD_|AUDIO_|[US]int\d+) +mainincludefname = SDL.h +versionfname = include/SDL_version.h +versionmajorregex = \A\#define\s+SDL_MAJOR_VERSION\s+(\d+)\Z +versionminorregex = \A\#define\s+SDL_MINOR_VERSION\s+(\d+)\Z +versionpatchregex = \A\#define\s+SDL_PATCHLEVEL\s+(\d+)\Z +selectheaderregex = \ASDL.*?\.h\Z +projecturl = https://libsdl.org/ +wikiurl = https://wiki.libsdl.org/SDL2 +bugreporturl = https://github.com/libsdl-org/sdlwiki/issues/new +warn_about_missing = 0 +#wikipreamble = (This is the legacy documentation for SDL2, the previous stable version; [SDL3](https://wiki.libsdl.org/SDL3/) is the current stable version.) +wikiheaderfiletext = Defined in [%fname%](https://github.com/libsdl-org/SDL/blob/SDL2/include/%fname%) +manpageheaderfiletext = Defined in %fname% + +# All SDL_config_*.h headers are uncategorized, in case something slips in from them. +# All SDL_test_* headers become uncategorized, everything else just converts like SDL_audio.h -> Audio +# A handful of others we fix up in the header itself with /* WIKI CATEGORY: x */ comments. +headercategoryeval = s/\ASDL_config_.*?\.h\Z//; s/\ASDL_test_.*?\.h\Z//; s/\ASDL_?(.*?)\.h\Z/$1/; ucfirst(); + +quickrefenabled = 0 # !!! FIXME: maybe later, but there are probably documentation gaps to fix first. +quickrefcategoryorder = Init,Hints,Error,Version,Properties,Log,Video,Events,Keyboard,Mouse,Touch,Gesture,GameController,Joystick,Haptic,Audio,Timer,Render,LoadSO,Thread,Mutex,Atomic,Filesystem,RWOPS,Pixels,Surface,Blendmode,Rect,Clipboard,Messagebox,Vulkan,Metal,Platform,Power,Sensor,Bits,Endian,Assert,CPUInfo,Locale,System,Misc,GUID,Main,Stdinc +quickreftitle = SDL2 API Quick Reference +quickrefurl = https://libsdl.org/ +quickrefdesc = The latest version of this document can be found at https://wiki.libsdl.org/SDL2/QuickReference +quickrefmacroregex = \A(SDL_Atomic...Ref|SDL_assert.*?|SDL_arraysize|SDL_Swap[BL]E\d\d|SDL_[a-z]+_cast|SDL_Load...)\Z diff --git a/engine/lib/sdl/Android.mk b/engine/lib/sdl/Android.mk new file mode 100644 index 000000000..3ccbd44ca --- /dev/null +++ b/engine/lib/sdl/Android.mk @@ -0,0 +1,131 @@ +LOCAL_PATH := $(call my-dir) + +########################### +# +# SDL shared library +# +########################### + +include $(CLEAR_VARS) + +LOCAL_MODULE := SDL2 + +LOCAL_C_INCLUDES := $(LOCAL_PATH)/include + +LOCAL_EXPORT_C_INCLUDES := $(LOCAL_C_INCLUDES) + +LOCAL_SRC_FILES := \ + $(subst $(LOCAL_PATH)/,, \ + $(wildcard $(LOCAL_PATH)/src/*.c) \ + $(wildcard $(LOCAL_PATH)/src/audio/*.c) \ + $(wildcard $(LOCAL_PATH)/src/audio/android/*.c) \ + $(wildcard $(LOCAL_PATH)/src/audio/dummy/*.c) \ + $(wildcard $(LOCAL_PATH)/src/audio/aaudio/*.c) \ + $(wildcard $(LOCAL_PATH)/src/audio/openslES/*.c) \ + $(LOCAL_PATH)/src/atomic/SDL_atomic.c.arm \ + $(LOCAL_PATH)/src/atomic/SDL_spinlock.c.arm \ + $(wildcard $(LOCAL_PATH)/src/core/android/*.c) \ + $(wildcard $(LOCAL_PATH)/src/cpuinfo/*.c) \ + $(wildcard $(LOCAL_PATH)/src/dynapi/*.c) \ + $(wildcard $(LOCAL_PATH)/src/events/*.c) \ + $(wildcard $(LOCAL_PATH)/src/file/*.c) \ + $(wildcard $(LOCAL_PATH)/src/haptic/*.c) \ + $(wildcard $(LOCAL_PATH)/src/haptic/android/*.c) \ + $(wildcard $(LOCAL_PATH)/src/hidapi/*.c) \ + $(wildcard $(LOCAL_PATH)/src/hidapi/android/*.cpp) \ + $(wildcard $(LOCAL_PATH)/src/joystick/*.c) \ + $(wildcard $(LOCAL_PATH)/src/joystick/android/*.c) \ + $(wildcard $(LOCAL_PATH)/src/joystick/dummy/*.c) \ + $(wildcard $(LOCAL_PATH)/src/joystick/hidapi/*.c) \ + $(wildcard $(LOCAL_PATH)/src/joystick/virtual/*.c) \ + $(wildcard $(LOCAL_PATH)/src/loadso/dlopen/*.c) \ + $(wildcard $(LOCAL_PATH)/src/locale/*.c) \ + $(wildcard $(LOCAL_PATH)/src/locale/android/*.c) \ + $(wildcard $(LOCAL_PATH)/src/misc/*.c) \ + $(wildcard $(LOCAL_PATH)/src/misc/android/*.c) \ + $(wildcard $(LOCAL_PATH)/src/power/*.c) \ + $(wildcard $(LOCAL_PATH)/src/power/android/*.c) \ + $(wildcard $(LOCAL_PATH)/src/filesystem/android/*.c) \ + $(wildcard $(LOCAL_PATH)/src/sensor/*.c) \ + $(wildcard $(LOCAL_PATH)/src/sensor/android/*.c) \ + $(wildcard $(LOCAL_PATH)/src/render/*.c) \ + $(wildcard $(LOCAL_PATH)/src/render/*/*.c) \ + $(wildcard $(LOCAL_PATH)/src/stdlib/*.c) \ + $(wildcard $(LOCAL_PATH)/src/thread/*.c) \ + $(wildcard $(LOCAL_PATH)/src/thread/pthread/*.c) \ + $(wildcard $(LOCAL_PATH)/src/timer/*.c) \ + $(wildcard $(LOCAL_PATH)/src/timer/unix/*.c) \ + $(wildcard $(LOCAL_PATH)/src/video/*.c) \ + $(wildcard $(LOCAL_PATH)/src/video/android/*.c) \ + $(wildcard $(LOCAL_PATH)/src/video/yuv2rgb/*.c) \ + $(wildcard $(LOCAL_PATH)/src/test/*.c)) + +LOCAL_CFLAGS += -DGL_GLEXT_PROTOTYPES +LOCAL_CFLAGS += \ + -Wall -Wextra \ + -Wdocumentation \ + -Wmissing-prototypes \ + -Wunreachable-code-break \ + -Wunneeded-internal-declaration \ + -Wmissing-variable-declarations \ + -Wfloat-conversion \ + -Wshorten-64-to-32 \ + -Wunreachable-code-return \ + -Wshift-sign-overflow \ + -Wstrict-prototypes \ + -Wkeyword-macro \ + +# Warnings we haven't fixed (yet) +LOCAL_CFLAGS += -Wno-unused-parameter -Wno-sign-compare + +LOCAL_CXXFLAGS += -std=gnu++11 + +LOCAL_LDLIBS := -ldl -lGLESv1_CM -lGLESv2 -lOpenSLES -llog -landroid + +LOCAL_LDFLAGS := -Wl,--no-undefined + +ifeq ($(NDK_DEBUG),1) + cmd-strip := +endif + +LOCAL_STATIC_LIBRARIES := cpufeatures + +include $(BUILD_SHARED_LIBRARY) + + +########################### +# +# SDL static library +# +########################### + +LOCAL_MODULE := SDL2_static + +LOCAL_MODULE_FILENAME := libSDL2 + +LOCAL_LDLIBS := + +LOCAL_LDFLAGS := + +LOCAL_EXPORT_LDLIBS := -ldl -lGLESv1_CM -lGLESv2 -llog -landroid + +include $(BUILD_STATIC_LIBRARY) + + +########################### +# +# SDL main static library +# +########################### + +include $(CLEAR_VARS) + +LOCAL_C_INCLUDES := $(LOCAL_PATH)/include + +LOCAL_MODULE := SDL2_main + +LOCAL_MODULE_FILENAME := libSDL2main + +include $(BUILD_STATIC_LIBRARY) + +$(call import-module,android/cpufeatures) diff --git a/engine/lib/sdl/BUGS.txt b/engine/lib/sdl/BUGS.txt new file mode 100644 index 000000000..b1463e777 --- /dev/null +++ b/engine/lib/sdl/BUGS.txt @@ -0,0 +1,16 @@ + +Bugs are now managed in the SDL issue tracker, here: + + https://github.com/libsdl-org/SDL/issues + +You may report bugs there, and search to see if a given issue has already + been reported, discussed, and maybe even fixed. + + +You may also find help at the SDL forums/mailing list: + + https://discourse.libsdl.org/ + +Bug reports are welcome here, but we really appreciate if you use the issue + tracker, as bugs discussed on the mailing list may be forgotten or missed. + diff --git a/engine/lib/sdl/CMakeLists.txt b/engine/lib/sdl/CMakeLists.txt new file mode 100644 index 000000000..e45b53e20 --- /dev/null +++ b/engine/lib/sdl/CMakeLists.txt @@ -0,0 +1,3781 @@ +if(${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_BINARY_DIR}) + message(FATAL_ERROR "Prevented in-tree build. Please create a build directory outside of the SDL source code and run \"cmake -S ${CMAKE_SOURCE_DIR} -B .\" from there") +endif() + +# MSVC runtime library flags are selected by an abstraction. +set(CMAKE_POLICY_DEFAULT_CMP0091 NEW) + +cmake_minimum_required(VERSION 3.0.0...3.10) +project(SDL2 C) + +if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) + set(SDL2_SUBPROJECT OFF) +else() + set(SDL2_SUBPROJECT ON) +endif() + +if (HAIKU) + enable_language(CXX) + set(LINKER_LANGUAGE CXX) +endif() + +set(EXTRA_LIBS) +set(EXTRA_LDFLAGS) + +set(CMAKE_LIBS) +set(PKGCONFIG_LDFLAGS) +set(PKGCONFIG_DEPENDS) + +# This is a virtual "library" that just exists to collect up compiler and +# linker options that used to be global to this CMake project. When you +# specify it as part of a real library's target_link_libraries(), that +# library will also gain all those build options too. This is meant to +# modularize old calls to the global add_definitions and include_directories, +# etc. See https://github.com/libsdl-org/SDL/issues/4150 +add_library(sdl-build-options INTERFACE) + +if(WINDOWS_STORE) + target_compile_definitions(sdl-build-options INTERFACE "-DSDL_BUILDING_WINRT=1" "WINAPI_FAMILY=WINAPI_FAMILY_APP") + target_compile_options(sdl-build-options INTERFACE "$<$:-ZW>" "$<$:-EHsc>") +endif() + +# CMake 3.0 expands the "if(${A})" in "set(OFF 1);set(A OFF);if(${A})" to "if(1)" +# CMake 3.24+ emits a warning when not set. +unset(OFF) +unset(ON) +if(POLICY CMP0054) + cmake_policy(SET CMP0054 NEW) +endif() + +# !!! FIXME: this should probably do "MACOSX_RPATH ON" as a target property +# !!! FIXME: for the SDL2 shared library (so you get an +# !!! FIXME: install_name ("soname") of "@rpath/libSDL-whatever.dylib" +# !!! FIXME: instead of "/usr/local/lib/libSDL-whatever.dylib"), but I'm +# !!! FIXME: punting for now and leaving the existing behavior. Until this +# !!! FIXME: properly resolved, this line silences a warning in CMake 3.0+. +# !!! FIXME: remove it and this comment entirely once the problem is +# !!! FIXME: properly resolved. +#cmake_policy(SET CMP0042 OLD) + +include(CheckLibraryExists) +include(CheckIncludeFiles) +include(CheckIncludeFile) +include(CheckLanguage) +include(CheckSymbolExists) +include(CheckCSourceCompiles) +include(CheckCSourceRuns) +include(CheckCCompilerFlag) +include(CheckCXXCompilerFlag) +include(CheckStructHasMember) +include(CMakeDependentOption) +include(CMakePushCheckState) +include(GNUInstallDirs) + +find_package(PkgConfig) + +list(APPEND CMAKE_MODULE_PATH "${SDL2_SOURCE_DIR}/cmake") +include(${SDL2_SOURCE_DIR}/cmake/macros.cmake) +include(${SDL2_SOURCE_DIR}/cmake/sdlchecks.cmake) +include(${SDL2_SOURCE_DIR}/cmake/sdlplatform.cmake) +include(${SDL2_SOURCE_DIR}/cmake/CheckCPUArchitecture.cmake) + +# Enable large file support on 32-bit glibc, so that we can access files +# with large inode numbers +check_symbol_exists("__GLIBC__" "stdlib.h" LIBC_IS_GLIBC) +if (LIBC_IS_GLIBC AND CMAKE_SIZEOF_VOID_P EQUAL 4) + add_definitions(-D_FILE_OFFSET_BITS=64) +endif() + +# See docs/release_checklist.md +set(SDL_MAJOR_VERSION 2) +set(SDL_MINOR_VERSION 32) +set(SDL_MICRO_VERSION 10) +set(SDL_VERSION "${SDL_MAJOR_VERSION}.${SDL_MINOR_VERSION}.${SDL_MICRO_VERSION}") + +# Set defaults preventing destination file conflicts +set(SDL_CMAKE_DEBUG_POSTFIX "d" + CACHE STRING "Name suffix for debug builds") + +mark_as_advanced(CMAKE_IMPORT_LIBRARY_SUFFIX SDL_CMAKE_DEBUG_POSTFIX) + +# Calculate a libtool-like version number +math(EXPR SDL_BINARY_AGE "${SDL_MINOR_VERSION} * 100 + ${SDL_MICRO_VERSION}") +if(SDL_MINOR_VERSION MATCHES "[02468]$") + # Stable branch, 2.24.1 -> libSDL2-2.0.so.0.2400.1 + set(SDL_INTERFACE_AGE ${SDL_MICRO_VERSION}) +else() + # Development branch, 2.23.1 -> libSDL2-2.0.so.0.2301.0 + set(SDL_INTERFACE_AGE 0) +endif() + +# Increment this if there is an incompatible change - but if that happens, +# we should rename the library from SDL2 to SDL3, at which point this would +# reset to 0 anyway. +set(LT_MAJOR "0") + +math(EXPR LT_AGE "${SDL_BINARY_AGE} - ${SDL_INTERFACE_AGE}") +math(EXPR LT_CURRENT "${LT_MAJOR} + ${LT_AGE}") +set(LT_REVISION "${SDL_INTERFACE_AGE}") +# For historical reasons, the library name redundantly includes the major +# version twice: libSDL2-2.0.so.0. +# TODO: in SDL 3, set the OUTPUT_NAME to plain SDL3, which will simplify +# it to libSDL3.so.0 +set(LT_RELEASE "2.0") +set(LT_VERSION "${LT_MAJOR}.${LT_AGE}.${LT_REVISION}") + +# The following should match the versions in the Xcode project file. +# Each version is 1 higher than you might expect, for compatibility +# with libtool: macOS ABI versioning is 1-based, unlike other platforms +# which are normally 0-based. +math(EXPR DYLIB_CURRENT_VERSION_MAJOR "${LT_MAJOR} + ${LT_AGE} + 1") +math(EXPR DYLIB_CURRENT_VERSION_MINOR "${LT_REVISION}") +set(DYLIB_CURRENT_VERSION "${DYLIB_CURRENT_VERSION_MAJOR}.${DYLIB_CURRENT_VERSION_MINOR}.0") +set(DYLIB_COMPATIBILITY_VERSION "${DYLIB_CURRENT_VERSION_MAJOR}.0.0") + +# This list holds all generated headers. +# To avoid generating them twice, these are added to a dummy target on which all sdl targets depend. +set(SDL_GENERATED_HEADERS) + +#message(STATUS "${LT_VERSION} :: ${LT_AGE} :: ${LT_REVISION} :: ${LT_CURRENT} :: ${LT_RELEASE}") + +check_cpu_architecture(x86 SDL_CPU_X86) +check_cpu_architecture(x64 SDL_CPU_X64) +check_cpu_architecture(arm32 SDL_CPU_ARM32) +check_cpu_architecture(arm64 SDL_CPU_ARM64) +check_cpu_architecture(arm64ec SDL_CPU_ARM64EC) +check_cpu_architecture(loongarch64 SDL_CPU_LOONGARCH64) + +# Check for 64 or 32 bit +set(SIZEOF_VOIDP ${CMAKE_SIZEOF_VOID_P}) +if(CMAKE_SIZEOF_VOID_P EQUAL 8) + set(ARCH_64 TRUE) + set(PROCESSOR_ARCH "x64") +else() + set(ARCH_64 FALSE) + set(PROCESSOR_ARCH "x86") +endif() +set(LIBNAME SDL2) +if(NOT LIBTYPE) + set(LIBTYPE SHARED) +endif() + +# Get the platform +SDL_DetectCMakePlatform() + +# Don't mistake osx for unix +if(UNIX AND NOT ANDROID AND NOT APPLE AND NOT RISCOS) + set(UNIX_SYS ON) +else() + set(UNIX_SYS OFF) +endif() + +if(UNIX OR APPLE) + set(UNIX_OR_MAC_SYS ON) +else() + set(UNIX_OR_MAC_SYS OFF) +endif() + +# Emscripten pthreads work, but you need to have a non-pthread fallback build +# for systems without support. It's not currently enough to not use +# pthread functions in a pthread-build; it won't start up on unsupported +# browsers. As such, you have to explicitly enable it on Emscripten builds +# for the time being. This default with change to ON once this becomes +# commonly supported in browsers or the Emscripten teams makes a single +# binary work everywhere. +if (UNIX_OR_MAC_SYS AND NOT EMSCRIPTEN) + set(SDL_PTHREADS_ENABLED_BY_DEFAULT ON) +else() + set(SDL_PTHREADS_ENABLED_BY_DEFAULT OFF) +endif() + +if(UNIX_SYS OR ANDROID) + set(SDL_CLOCK_GETTIME_ENABLED_BY_DEFAULT ON) +else() + set(SDL_CLOCK_GETTIME_ENABLED_BY_DEFAULT OFF) +endif() + +# The hidraw support doesn't catch Xbox, PS4 and Nintendo controllers, +# so we'll just use libusb when it's available. libusb does not support iOS, +# so we default to yes on iOS. +# TODO: Windows can support libusb, the hid.c file just depends on Unix APIs +if((WINDOWS AND NOT WINDOWS_STORE) OR IOS OR TVOS OR VISIONOS OR WATCHOS OR ANDROID) + set(HIDAPI_SKIP_LIBUSB TRUE) +else() + set(HIDAPI_SKIP_LIBUSB FALSE) +endif() + +# On the other hand, *BSD specifically uses libusb only, so we make a special +# case just for them. +if(FREEBSD OR NETBSD OR OPENBSD OR BSDI) + set(HIDAPI_ONLY_LIBUSB TRUE) +else() + set(HIDAPI_ONLY_LIBUSB FALSE) +endif() + +# Compiler info +if(CMAKE_C_COMPILER_ID MATCHES "Clang|IntelLLVM") + set(USE_CLANG TRUE) + set(OPT_DEF_ASM TRUE) + # Visual Studio 2019 v16.2 added support for Clang/LLVM. + # Check if a Visual Studio project is being generated with the Clang toolset. + if(MSVC) + set(MSVC_CLANG TRUE) + endif() +elseif(CMAKE_COMPILER_IS_GNUCC) + set(USE_GCC TRUE) + set(OPT_DEF_ASM TRUE) +elseif(MSVC_VERSION GREATER 1400) # VisualStudio 8.0+ + set(OPT_DEF_ASM TRUE) + #set(CMAKE_C_FLAGS "/ZI /WX- / +elseif(CMAKE_C_COMPILER_ID MATCHES "^Intel$") + set(OPT_DEF_ASM TRUE) + set(USE_INTELCC TRUE) +elseif(CMAKE_C_COMPILER_ID MATCHES "QCC") + set(USE_QCC TRUE) +else() + set(OPT_DEF_ASM FALSE) +endif() + +if(USE_GCC OR USE_CLANG OR USE_INTELCC OR USE_QCC) + set(OPT_DEF_GCC_ATOMICS ON) +endif() + +# Default option knobs +if(UNIX OR MINGW OR MSYS OR (USE_CLANG AND NOT WINDOWS) OR VITA OR PSP OR PS2 OR N3DS OR SDL_CPU_ARM64EC) + set(OPT_DEF_LIBC ON) +endif() +if(WINDOWS OR MACOS OR IOS OR TVOS OR VISIONOS OR WATCHOS) + set(SDL_SYSTEM_ICONV_DEFAULT OFF) +else() + set(SDL_SYSTEM_ICONV_DEFAULT ON) +endif() + +if(NOT ("$ENV{CFLAGS}" STREQUAL "")) + if(CMAKE_VERSION VERSION_LESS 3.11.0) + message(WARNING "SDL's CMakeLists.txt no longer checks the CFLAGS environment.") + message(WARNING "Please use CMake's CMAKE_C_FLAGS and CMAKE_BUILD_TYPE variables directly.") + message(WARNING "Or upgrade to CMake >= 3.11.0, which respects the CFLAGS environment var.") + endif() +endif() + +# Build in parallel under Visual Studio. Not enabled by default. +if(MSVC AND NOT USE_CLANG) + target_compile_options(sdl-build-options INTERFACE "/MP") +endif() + +if(MSVC) + option(SDL_FORCE_STATIC_VCRT "Force /MT for static VC runtimes" OFF) + if(SDL_FORCE_STATIC_VCRT) + if(NOT DEFINED CMAKE_MSVC_RUNTIME_LIBRARY) + set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") + endif() + foreach(flag_var + CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE + CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO) + if(${flag_var} MATCHES "/MD") + string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}") + endif() + endforeach() + endif() + + if(NOT SDL_LIBC) + # Make sure /RTC1 is disabled, otherwise it will use functions from the CRT + foreach(flag_var + CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE + CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO) + string(REGEX REPLACE "/RTC(su|[1su])" "" ${flag_var} "${${flag_var}}") + endforeach(flag_var) + endif() + + if(MSVC_CLANG) + # clang-cl treats /W4 as '-Wall -Wextra' -- we don't need -Wextra + foreach(flag_var + CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE + CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO) + string(REGEX REPLACE "/W4" "/W3" ${flag_var} "${${flag_var}}") + endforeach(flag_var) + endif() +endif() + +# Those are used for pkg-config and friends, so that the sdl2.pc, sdl2-config, +# etc. are created correctly. +set(SDL_LIBS "-lSDL2") +set(SDL_CFLAGS ) + +# When building shared lib for Windows with MinGW, +# avoid the DLL having a "lib" prefix +if(WINDOWS) + set(CMAKE_SHARED_LIBRARY_PREFIX "") +endif() + +set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -D_GNU_SOURCE=1") + +# Emscripten toolchain has a nonempty default value for this, and the checks +# in this file need to change that, so remember the original value, and +# restore back to that afterwards. For check_function_exists() to work in +# Emscripten, this value must be at its default value. +set(ORIG_CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS}) + +if(CYGWIN) + # We build SDL on cygwin without the UNIX emulation layer + target_include_directories(sdl-build-options INTERFACE "/usr/include/mingw") + set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -mno-cygwin") + check_c_source_compiles("int main(int argc, char **argv) { return 0; }" + HAVE_GCC_NO_CYGWIN) + set(CMAKE_REQUIRED_FLAGS ${ORIG_CMAKE_REQUIRED_FLAGS}) + if(HAVE_GCC_NO_CYGWIN) + list(APPEND EXTRA_LDFLAGS_BUILD "-mno-cygwin") + list(APPEND SDL_LIBS "-mno-cygwin") + endif() + list(APPEND SDL_CFLAGS "-I/usr/include/mingw") +endif() + +# General includes +target_compile_definitions(sdl-build-options INTERFACE "-DUSING_GENERATED_CONFIG_H") +target_include_directories(sdl-build-options BEFORE INTERFACE "${SDL2_BINARY_DIR}/include" "${SDL2_BINARY_DIR}/include-config-$>") +# Note: The clang toolset for Visual Studio does not support the '-idirafter' option. +if(USE_GCC OR (USE_CLANG AND NOT MSVC_CLANG)) + # !!! FIXME: do we _need_ to mess with CMAKE_C_FLAGS here? + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -idirafter \"${SDL2_SOURCE_DIR}/src/video/khronos\"") +else() + target_include_directories(sdl-build-options INTERFACE "${SDL2_SOURCE_DIR}/src/video/khronos") +endif() + +# All these ENABLED_BY_DEFAULT vars will default to ON if not specified, so +# you only need to have a platform override them if they are disabling. +if(EMSCRIPTEN) + # Set up default values for the currently supported set of subsystems: + # Emscripten/Javascript does not have assembly support, a dynamic library + # loading architecture, or low-level CPU inspection. + + # SDL_THREADS_ENABLED_BY_DEFAULT now defaults to ON, but pthread support might be disabled by default. + # !!! FIXME: most of these subsystems should default to ON if there are dummy implementations to be used. + + set(OPT_DEF_ASM FALSE) + set(SDL_SHARED_ENABLED_BY_DEFAULT OFF) + set(SDL_ATOMIC_ENABLED_BY_DEFAULT OFF) + set(SDL_LOADSO_ENABLED_BY_DEFAULT OFF) + set(SDL_CPUINFO_ENABLED_BY_DEFAULT OFF) +endif() + +if(VITA OR PSP OR PS2 OR N3DS) + set(SDL_SHARED_ENABLED_BY_DEFAULT OFF) + set(SDL_LOADSO_ENABLED_BY_DEFAULT OFF) +endif() + +set(SDL_X11_XRANDR_DEFAULT ON) +if(SOLARIS) + set(SDL_X11_XRANDR_DEFAULT OFF) +endif() + +# When defined, respect CMake's BUILD_SHARED_LIBS setting: +set(SDL_STATIC_ENABLED_BY_DEFAULT ON) +if (NOT DEFINED SDL_SHARED_ENABLED_BY_DEFAULT) + # ...unless decided already (as for EMSCRIPTEN) + + set(SDL_SHARED_ENABLED_BY_DEFAULT OFF) + + if (NOT DEFINED BUILD_SHARED_LIBS) + # No preference? Build both, just like the AC/AM configure + set(SDL_SHARED_ENABLED_BY_DEFAULT ON) + + elseif (BUILD_SHARED_LIBS) + # In this case, we assume the user wants a shared lib and don't build + # the static one + set(SDL_SHARED_ENABLED_BY_DEFAULT ON) + set(SDL_STATIC_ENABLED_BY_DEFAULT OFF) + endif() +endif() + +if (NOT DEFINED SDL_TEST_ENABLED_BY_DEFAULT) + set(SDL_TEST_ENABLED_BY_DEFAULT ON) +endif() + +set(LONGESTOPTIONNAME 0) # set_option and friends will change this. + +set(SDL_SUBSYSTEMS + Atomic Audio Video Render Events Joystick Haptic Hidapi Power Threads Timers + File Loadso CPUinfo Filesystem Sensor Locale Misc) +foreach(_SUB ${SDL_SUBSYSTEMS}) + string(TOUPPER ${_SUB} _OPT) + if (NOT DEFINED SDL_${_OPT}_ENABLED_BY_DEFAULT) + set(SDL_${_OPT}_ENABLED_BY_DEFAULT ON) + endif() + option(SDL_${_OPT} "Enable the ${_SUB} subsystem" ${SDL_${_OPT}_ENABLED_BY_DEFAULT}) +endforeach() + +# Allow some projects to be built conditionally. +set_option(SDL2_DISABLE_SDL2MAIN "Disable building/installation of SDL2main" OFF) +set_option(SDL2_DISABLE_INSTALL "Disable installation of SDL2" ${SDL2_SUBPROJECT}) +set_option(SDL2_DISABLE_UNINSTALL "Disable uninstallation of SDL2" OFF) + +option_string(SDL_ASSERTIONS "Enable internal sanity checks (auto/disabled/release/enabled/paranoid)" "auto") +#set_option(SDL_DEPENDENCY_TRACKING "Use gcc -MMD -MT dependency tracking" ON) +set_option(SDL_ASSEMBLY "Enable assembly routines" ${OPT_DEF_ASM}) +dep_option(SDL_SSEMATH "Allow GCC to use SSE floating point math" ON "SDL_ASSEMBLY;SDL_CPU_X86 OR SDL_CPU_X64" OFF) +dep_option(SDL_SSE "Use SSE assembly routines" ON "SDL_ASSEMBLY;SDL_CPU_X86 OR SDL_CPU_X64" OFF) +dep_option(SDL_SSE2 "Use SSE2 assembly routines" ON "SDL_ASSEMBLY;SDL_CPU_X86 OR SDL_CPU_X64" OFF) +dep_option(SDL_SSE3 "Use SSE3 assembly routines" ON "SDL_ASSEMBLY;SDL_CPU_X86 OR SDL_CPU_X64" OFF) +dep_option(SDL_MMX "Use MMX assembly routines" ON "SDL_ASSEMBLY;SDL_CPU_X86 OR SDL_CPU_X64" OFF) +dep_option(SDL_3DNOW "Use 3Dnow! MMX assembly routines" OFF "SDL_ASSEMBLY;SDL_CPU_X86 OR SDL_CPU_X64" OFF) +dep_option(SDL_ALTIVEC "Use Altivec assembly routines" ON "SDL_ASSEMBLY" OFF) +dep_option(SDL_ARMSIMD "Use SIMD assembly blitters on ARM" OFF "SDL_ASSEMBLY;SDL_CPU_ARM32" OFF) +dep_option(SDL_ARMNEON "Use NEON assembly blitters on ARM" OFF "SDL_ASSEMBLY;SDL_CPU_ARM32" OFF) +dep_option(SDL_LSX "Use LSX assembly routines" ON "SDL_ASSEMBLY;SDL_CPU_LOONGARCH64" OFF) +dep_option(SDL_LASX "Use LASX assembly routines" ON "SDL_ASSEMBLY;SDL_CPU_LOONGARCH64" OFF) + +set_option(SDL_LIBC "Use the system C library" ${OPT_DEF_LIBC}) +set_option(SDL_GCC_ATOMICS "Use gcc builtin atomics" ${OPT_DEF_GCC_ATOMICS}) +dep_option(SDL_DBUS "Enable D-Bus support" ON ${UNIX_SYS} OFF) +set_option(SDL_DISKAUDIO "Support the disk writer audio driver" ON) +set_option(SDL_DUMMYAUDIO "Support the dummy audio driver" ON) +set_option(SDL_DIRECTFB "Use DirectFB video driver" OFF) +dep_option(SDL_DIRECTFB_SHARED "Dynamically load directfb support" ON "SDL_DIRECTFB" OFF) +set_option(SDL_DUMMYVIDEO "Use dummy video driver" ON) +dep_option(SDL_IBUS "Enable IBus support" ON ${UNIX_SYS} OFF) +set_option(SDL_SYSTEM_ICONV "Use iconv() from system-installed libraries" ${SDL_SYSTEM_ICONV_DEFAULT}) +set_option(SDL_LIBICONV "Prefer iconv() from libiconv, if available, over libc version" OFF) +set_option(SDL_OPENGL "Include OpenGL support" ON) +set_option(SDL_OPENGLES "Include OpenGL ES support" ON) +set_option(SDL_PTHREADS "Use POSIX threads for multi-threading" ${SDL_PTHREADS_ENABLED_BY_DEFAULT}) +dep_option(SDL_PTHREADS_SEM "Use pthread semaphores" ON "SDL_PTHREADS" OFF) +dep_option(SDL_OSS "Support the OSS audio API" ON "UNIX_SYS OR RISCOS" OFF) +set_option(SDL_ALSA "Support the ALSA audio API" ${UNIX_SYS}) +dep_option(SDL_ALSA_SHARED "Dynamically load ALSA audio support" ON "SDL_ALSA" OFF) +set_option(SDL_JACK "Support the JACK audio API" ${UNIX_SYS}) +dep_option(SDL_JACK_SHARED "Dynamically load JACK audio support" ON "SDL_JACK" OFF) +set_option(SDL_ESD "Support the Enlightened Sound Daemon" ${UNIX_SYS}) +dep_option(SDL_ESD_SHARED "Dynamically load ESD audio support" ON "SDL_ESD" OFF) +set_option(SDL_PIPEWIRE "Use Pipewire audio" ${UNIX_SYS}) +dep_option(SDL_PIPEWIRE_SHARED "Dynamically load Pipewire support" ON "SDL_PIPEWIRE" OFF) +set_option(SDL_PULSEAUDIO "Use PulseAudio" ${UNIX_SYS}) +dep_option(SDL_PULSEAUDIO_SHARED "Dynamically load PulseAudio support" ON "SDL_PULSEAUDIO" OFF) +set_option(SDL_ARTS "Support the Analog Real Time Synthesizer" ${UNIX_SYS}) +dep_option(SDL_ARTS_SHARED "Dynamically load aRts audio support" ON "SDL_ARTS" OFF) +set_option(SDL_NAS "Support the NAS audio API" ${UNIX_SYS}) +dep_option(SDL_NAS_SHARED "Dynamically load NAS audio support" ON "SDL_NAS" OFF) +set_option(SDL_SNDIO "Support the sndio audio API" ${UNIX_SYS}) +dep_option(SDL_SNDIO_SHARED "Dynamically load the sndio audio API" ON "SDL_SNDIO" OFF) +set_option(SDL_FUSIONSOUND "Use FusionSound audio driver" OFF) +dep_option(SDL_FUSIONSOUND_SHARED "Dynamically load fusionsound audio support" ON "SDL_FUSIONSOUND" OFF) +set_option(SDL_LIBSAMPLERATE "Use libsamplerate for audio rate conversion" ${UNIX_SYS}) +dep_option(SDL_LIBSAMPLERATE_SHARED "Dynamically load libsamplerate" ON "SDL_LIBSAMPLERATE" OFF) +set_option(SDL_RPATH "Use an rpath when linking SDL" ${UNIX_SYS}) +set_option(SDL_CLOCK_GETTIME "Use clock_gettime() instead of gettimeofday()" ${SDL_CLOCK_GETTIME_ENABLED_BY_DEFAULT}) +set_option(SDL_X11 "Use X11 video driver" ${UNIX_SYS}) +dep_option(SDL_X11_SHARED "Dynamically load X11 support" ON "SDL_X11" OFF) +dep_option(SDL_X11_XCURSOR "Enable Xcursor support" ON SDL_X11 OFF) +dep_option(SDL_X11_XDBE "Enable Xdbe support" ON SDL_X11 OFF) +dep_option(SDL_X11_XINPUT "Enable XInput support" ON SDL_X11 OFF) +dep_option(SDL_X11_XFIXES "Enable Xfixes support" ON SDL_X11 OFF) +dep_option(SDL_X11_XRANDR "Enable Xrandr support" "${SDL_X11_XRANDR_DEFAULT}" SDL_X11 OFF) +dep_option(SDL_X11_XSCRNSAVER "Enable Xscrnsaver support" ON SDL_X11 OFF) +dep_option(SDL_X11_XSHAPE "Enable XShape support" ON SDL_X11 OFF) +set_option(SDL_WAYLAND "Use Wayland video driver" ${UNIX_SYS}) +dep_option(SDL_WAYLAND_SHARED "Dynamically load Wayland support" ON "SDL_WAYLAND" OFF) +dep_option(SDL_WAYLAND_LIBDECOR "Use client-side window decorations on Wayland" ON "SDL_WAYLAND" OFF) +dep_option(SDL_WAYLAND_LIBDECOR_SHARED "Dynamically load libdecor support" ON "SDL_WAYLAND_LIBDECOR;SDL_WAYLAND_SHARED" OFF) +dep_option(SDL_WAYLAND_QT_TOUCH "QtWayland server support for Wayland video driver" ON "SDL_WAYLAND" OFF) +set_option(SDL_RPI "Use Raspberry Pi 0-3 video driver" ${UNIX_SYS}) +set_option(SDL_COCOA "Use Cocoa video driver" ${APPLE}) +set_option(SDL_DIRECTX "Use DirectX for Windows audio/video" ${WINDOWS}) +set_option(SDL_XINPUT "Use Xinput for Windows" ${WINDOWS}) +set_option(SDL_WASAPI "Use the Windows WASAPI audio driver" ${WINDOWS}) +set_option(SDL_RENDER_D3D "Enable the Direct3D render driver" ${WINDOWS}) +set_option(SDL_RENDER_METAL "Enable the Metal render driver" ${APPLE}) +set_option(SDL_VIVANTE "Use Vivante EGL video driver" ${UNIX_SYS}) +dep_option(SDL_VULKAN "Enable Vulkan support" ON "ANDROID OR APPLE OR LINUX OR WINDOWS" OFF) +set_option(SDL_METAL "Enable Metal support" ${APPLE}) +set_option(SDL_KMSDRM "Use KMS DRM video driver" ${UNIX_SYS}) +dep_option(SDL_KMSDRM_SHARED "Dynamically load KMS DRM support" ON "SDL_KMSDRM" OFF) +set_option(SDL_OFFSCREEN "Use offscreen video driver" ON) +option_string(SDL_BACKGROUNDING_SIGNAL "number to use for magic backgrounding signal or 'OFF'" OFF) +option_string(SDL_FOREGROUNDING_SIGNAL "number to use for magic foregrounding signal or 'OFF'" OFF) +set_option(SDL_HIDAPI "Enable the HIDAPI subsystem" ON) +dep_option(SDL_HIDAPI_LIBUSB "Use libusb for low level joystick drivers" OFF SDL_HIDAPI OFF) +dep_option(SDL_HIDAPI_JOYSTICK "Use HIDAPI for low level joystick drivers" ON SDL_HIDAPI OFF) +dep_option(SDL_VIRTUAL_JOYSTICK "Enable the virtual-joystick driver" ON SDL_HIDAPI OFF) +set_option(SDL_LIBUDEV "Enable libudev support" ON) +set_option(SDL_ASAN "Use AddressSanitizer to detect memory errors" OFF) +option_string(SDL_VENDOR_INFO "Vendor name and/or version to add to SDL_REVISION" "") +set_option(SDL_CCACHE "Use Ccache to speed up build" ON) + +option(SDL_WERROR "Enable -Werror" OFF) + +option(SDL_SHARED "Build a shared version of the library" ${SDL_SHARED_ENABLED_BY_DEFAULT}) +option(SDL_STATIC "Build a static version of the library" ${SDL_STATIC_ENABLED_BY_DEFAULT}) +option(SDL_TEST "Build the SDL2_test library" ${SDL_TEST_ENABLED_BY_DEFAULT}) + +dep_option(SDL_STATIC_PIC "Static version of the library should be built with Position Independent Code" "${CMAKE_POSITION_INDEPENDENT_CODE}" "SDL_STATIC" OFF) +dep_option(SDL_TESTS "Build the test directory" OFF SDL_TEST OFF) +set_option(SDL_INSTALL_TESTS "Install test-cases" OFF) + +set(HAVE_STATIC_PIC "${SDL_STATIC_PIC}") + +if(SDL_HIDAPI) + if(HIDAPI_ONLY_LIBUSB) + set(SDL_HIDAPI_LIBUSB ON CACHE BOOL "" FORCE) + elseif(HIDAPI_SKIP_LIBUSB) + set(SDL_HIDAPI_LIBUSB OFF CACHE BOOL "" FORCE) + endif() +endif() + +if(VITA) + set_option(VIDEO_VITA_PIB "Build with PSVita piglet gles2 support" OFF) + set_option(VIDEO_VITA_PVR "Build with PSVita PVR gles/gles2 support" OFF) +endif() + +# General source files +file(GLOB SOURCE_FILES + ${SDL2_SOURCE_DIR}/src/*.c + ${SDL2_SOURCE_DIR}/src/atomic/*.c + ${SDL2_SOURCE_DIR}/src/audio/*.c + ${SDL2_SOURCE_DIR}/src/cpuinfo/*.c + ${SDL2_SOURCE_DIR}/src/dynapi/*.c + ${SDL2_SOURCE_DIR}/src/events/*.c + ${SDL2_SOURCE_DIR}/src/file/*.c + ${SDL2_SOURCE_DIR}/src/joystick/*.c + ${SDL2_SOURCE_DIR}/src/haptic/*.c + ${SDL2_SOURCE_DIR}/src/hidapi/*.c + ${SDL2_SOURCE_DIR}/src/libm/*.c + ${SDL2_SOURCE_DIR}/src/locale/*.c + ${SDL2_SOURCE_DIR}/src/misc/*.c + ${SDL2_SOURCE_DIR}/src/power/*.c + ${SDL2_SOURCE_DIR}/src/render/*.c + ${SDL2_SOURCE_DIR}/src/render/*/*.c + ${SDL2_SOURCE_DIR}/src/sensor/*.c + ${SDL2_SOURCE_DIR}/src/stdlib/*.c + ${SDL2_SOURCE_DIR}/src/thread/*.c + ${SDL2_SOURCE_DIR}/src/timer/*.c + ${SDL2_SOURCE_DIR}/src/video/*.c + ${SDL2_SOURCE_DIR}/src/video/yuv2rgb/*.c) + +if(USE_INTELCC) + # warning #39: division by zero + # warning #239: floating point underflow + # warning #264: floating-point value does not fit in required floating-point type + set_property(SOURCE "${SDL2_SOURCE_DIR}/src/libm/e_exp.c" APPEND_STRING PROPERTY COMPILE_FLAGS " -wd239 -wd264") + set_property(SOURCE "${SDL2_SOURCE_DIR}/src/libm/e_log.c" APPEND_STRING PROPERTY COMPILE_FLAGS " -wd39") + set_property(SOURCE "${SDL2_SOURCE_DIR}/src/libm/e_log10.c" APPEND_STRING PROPERTY COMPILE_FLAGS " -wd39") +endif() + + +set(SDL_DEFAULT_ASSERT_LEVEL_CONFIGURED 1) +if(SDL_ASSERTIONS MATCHES "^(auto|)$") + # Do nada - use optimization settings to determine the assertion level + set(SDL_DEFAULT_ASSERT_LEVEL ) + set(SDL_DEFAULT_ASSERT_LEVEL_CONFIGURED 0) +elseif(SDL_ASSERTIONS MATCHES "^(disabled|0)$") + set(SDL_DEFAULT_ASSERT_LEVEL 0) +elseif(SDL_ASSERTIONS MATCHES "^(release|1)$") + set(SDL_DEFAULT_ASSERT_LEVEL 1) +elseif(SDL_ASSERTIONS MATCHES "^(enabled|2)$") + set(SDL_DEFAULT_ASSERT_LEVEL 2) +elseif(SDL_ASSERTIONS MATCHES "^(paranoid|3)$") + set(SDL_DEFAULT_ASSERT_LEVEL 3) +else() + message_error("unknown assertion level") +endif() +set(HAVE_ASSERTIONS ${SDL_ASSERTIONS}) + +if(NOT SDL_BACKGROUNDING_SIGNAL STREQUAL "OFF") + target_compile_definitions(sdl-build-options INTERFACE "-DSDL_BACKGROUNDING_SIGNAL=${SDL_BACKGROUNDING_SIGNAL}") +endif() + +if(NOT SDL_FOREGROUNDING_SIGNAL STREQUAL "OFF") + target_compile_definitions(sdl-build-options INTERFACE "-DSDL_FOREGROUNDING_SIGNAL=${SDL_FOREGROUNDING_SIGNAL}") +endif() + +# Compiler option evaluation +if(USE_GCC OR USE_CLANG OR USE_INTELCC OR USE_QCC) + # Check for -Wall first, so later things can override pieces of it. + # Note: clang-cl treats -Wall as -Weverything (which is very loud), + # /W3 as -Wall, and /W4 as -Wall -Wextra. So: /W3 is enough. + check_c_compiler_flag(-Wall HAVE_GCC_WALL) + if(MSVC_CLANG) + list(APPEND EXTRA_CFLAGS "/W3") + elseif(HAVE_GCC_WALL) + list(APPEND EXTRA_CFLAGS "-Wall") + if(HAIKU) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-multichar") + endif() + endif() + + check_c_compiler_flag(-Wundef HAVE_GCC_WUNDEF) + if(HAVE_GCC_WUNDEF) + list(APPEND EXTRA_CFLAGS "-Wundef") + endif() + + check_c_compiler_flag(-fno-strict-aliasing HAVE_GCC_NO_STRICT_ALIASING) + if(HAVE_GCC_NO_STRICT_ALIASING) + list(APPEND EXTRA_CFLAGS "-fno-strict-aliasing") + endif() + + check_c_compiler_flag(-Wdocumentation HAVE_GCC_WDOCUMENTATION) + if(HAVE_GCC_WDOCUMENTATION) + if(SDL_WERROR) + check_c_compiler_flag(-Werror=documentation HAVE_GCC_WERROR_DOCUMENTATION) + if(HAVE_GCC_WERROR_DOCUMENTATION) + list(APPEND EXTRA_CFLAGS "-Werror=documentation") + endif() + endif() + list(APPEND EXTRA_CFLAGS "-Wdocumentation") + endif() + + check_c_compiler_flag(-Wdocumentation-unknown-command HAVE_GCC_WDOCUMENTATION_UNKNOWN_COMMAND) + if(HAVE_GCC_WDOCUMENTATION_UNKNOWN_COMMAND) + if(SDL_WERROR) + check_c_compiler_flag(-Werror=documentation-unknown-command HAVE_GCC_WERROR_DOCUMENTATION_UNKNOWN_COMMAND) + if(HAVE_GCC_WERROR_DOCUMENTATION_UNKNOWN_COMMAND) + list(APPEND EXTRA_CFLAGS "-Werror=documentation-unknown-command") + endif() + endif() + list(APPEND EXTRA_CFLAGS "-Wdocumentation-unknown-command") + endif() + + check_c_compiler_flag(-fcomment-block-commands=threadsafety HAVE_GCC_COMMENT_BLOCK_COMMANDS) + if(HAVE_GCC_COMMENT_BLOCK_COMMANDS) + list(APPEND EXTRA_CFLAGS "-fcomment-block-commands=threadsafety") + list(APPEND EXTRA_CFLAGS "-fcomment-block-commands=deprecated") + else() + check_c_compiler_flag(/clang:-fcomment-block-commands=threadsafety HAVE_CLANG_COMMENT_BLOCK_COMMANDS) + if(HAVE_CLANG_COMMENT_BLOCK_COMMANDS) + list(APPEND EXTRA_CFLAGS "/clang:-fcomment-block-commands=threadsafety") + list(APPEND EXTRA_CFLAGS "/clang:-fcomment-block-commands=deprecated") + endif() + endif() + + check_c_compiler_flag(-Wdeclaration-after-statement HAVE_GCC_WDECLARATION_AFTER_STATEMENT) + if(HAVE_GCC_WDECLARATION_AFTER_STATEMENT) + if(SDL_WERROR) + check_c_compiler_flag(-Werror=declaration-after-statement HAVE_GCC_WERROR_DECLARATION_AFTER_STATEMENT) + if(HAVE_GCC_WERROR_DECLARATION_AFTER_STATEMENT) + list(APPEND EXTRA_CFLAGS "-Werror=declaration-after-statement") + endif() + endif() + list(APPEND EXTRA_CFLAGS "-Wdeclaration-after-statement") + endif() + + if(DEPENDENCY_TRACKING) + check_c_source_compiles(" + #if !defined(__GNUC__) || __GNUC__ < 3 + #error Dependency tracking requires GCC 3.0 or newer + #endif + int main(int argc, char **argv) { return 0; }" HAVE_DEPENDENCY_TRACKING) + endif() + + if(SDL_GCC_ATOMICS) + check_c_source_compiles("int main(int argc, char **argv) { + int a; + void *x, *y, *z; + __sync_lock_test_and_set(&a, 4); + __sync_lock_test_and_set(&x, y); + __sync_fetch_and_add(&a, 1); + __sync_bool_compare_and_swap(&a, 5, 10); + __sync_bool_compare_and_swap(&x, y, z); + return 0; }" HAVE_GCC_ATOMICS) + if(NOT HAVE_GCC_ATOMICS) + check_c_source_compiles("int main(int argc, char **argv) { + int a; + __sync_lock_test_and_set(&a, 1); + __sync_lock_release(&a); + return 0; }" HAVE_GCC_SYNC_LOCK_TEST_AND_SET) + endif() + endif() + + set(CMAKE_REQUIRED_FLAGS "-fvisibility=hidden -Werror") + check_c_source_compiles(" + #if !defined(__GNUC__) || __GNUC__ < 4 + #error SDL only uses visibility attributes in GCC 4 or newer + #endif + int main(int argc, char **argv) { return 0; }" HAVE_GCC_FVISIBILITY) + if(HAVE_GCC_FVISIBILITY) + list(APPEND EXTRA_CFLAGS "-fvisibility=hidden") + endif() + set(CMAKE_REQUIRED_FLAGS ${ORIG_CMAKE_REQUIRED_FLAGS}) + + check_c_compiler_flag(-Wshadow HAVE_GCC_WSHADOW) + if(HAVE_GCC_WSHADOW) + list(APPEND EXTRA_CFLAGS "-Wshadow") + endif() + + check_c_compiler_flag(-Wunused-local-typedefs HAVE_GCC_WUNUSED_LOCAL_TYPEDEFS) + if(HAVE_GCC_WUNUSED_LOCAL_TYPEDEFS) + list(APPEND EXTRA_CFLAGS "-Wno-unused-local-typedefs") + endif() + + if(APPLE) + cmake_push_check_state(RESET) + # FIXME: don't use deprecated declarations + check_c_compiler_flag(-Wno-error=deprecated-declarations HAVE_WNO_ERROR_DEPRECATED_DECLARATIONS) + if(HAVE_WNO_ERROR_DEPRECATED_DECLARATIONS) + target_compile_options(sdl-build-options INTERFACE "-Wno-error=deprecated-declarations") + endif() + cmake_pop_check_state() + + # FIXME: use generator expression instead of appending to EXTRA_LDFLAGS_BUILD + list(APPEND EXTRA_LDFLAGS_BUILD "-Wl,-compatibility_version,${DYLIB_COMPATIBILITY_VERSION}") + list(APPEND EXTRA_LDFLAGS_BUILD "-Wl,-current_version,${DYLIB_CURRENT_VERSION}") + elseif(NOT OPENBSD) + set(CMAKE_REQUIRED_FLAGS "-Wl,--no-undefined") + check_c_compiler_flag("" HAVE_NO_UNDEFINED) + set(CMAKE_REQUIRED_FLAGS ${ORIG_CMAKE_REQUIRED_FLAGS}) + if(HAVE_NO_UNDEFINED AND NOT (USE_CLANG AND WINDOWS)) + list(APPEND EXTRA_LDFLAGS_BUILD "-Wl,--no-undefined") + endif() + endif() + + if(MINGW) + # See if GCC's -gdwarf-4 is supported + # See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101377 for why this is needed on Windows + cmake_push_check_state(RESET) + check_c_compiler_flag("-gdwarf-4" HAVE_GDWARF_4) + if(HAVE_GDWARF_4) + set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -gdwarf-4") + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -gdwarf-4") + endif() + cmake_pop_check_state() + endif() + + # Force color diagnostics when one of these conditions are met + if(DEFINED ENV{CI} OR DEFINED ENV{USE_CCACHE} OR CMAKE_GENERATOR MATCHES Ninja) + if(EMSCRIPTEN OR (USE_GCC AND NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.9)) + list(APPEND EXTRA_CFLAGS -fdiagnostics-color=always) + elseif(USE_CLANG AND NOT CMAKE_C_COMPILER_ID MATCHES AppleClang) + list(APPEND EXTRA_CFLAGS -fcolor-diagnostics) + endif() + endif() +endif() +if(MSVC) + target_compile_definitions(sdl-build-options INTERFACE "-D_CRT_SECURE_NO_DEPRECATE") + target_compile_definitions(sdl-build-options INTERFACE "-D_CRT_NONSTDC_NO_DEPRECATE") + target_compile_definitions(sdl-build-options INTERFACE "-D_CRT_SECURE_NO_WARNINGS") + + # CET support was added in VS 16.7 + if(MSVC_VERSION GREATER 1926 AND CMAKE_GENERATOR_PLATFORM MATCHES "Win32|x64") + list(APPEND EXTRA_LDFLAGS_BUILD "-CETCOMPAT") + endif() + + # for VS >= 17.14 targeting ARM64: inline the Interlocked funcs + if(MSVC_VERSION GREATER 1943 AND SDL_CPU_ARM64 AND NOT SDL_LIBC) + list(APPEND EXTRA_CFLAGS /forceInterlockedFunctions-) + endif() +endif() + +if(CMAKE_C_COMPILER_ID STREQUAL "MSVC") + # Due to a limitation of Microsoft's LTO implementation, LTO must be disabled for memcpy and memset. + # The same applies to various functions normally belonging in the C library (for x86 architecture). + set_property(SOURCE src/stdlib/SDL_mslibc.c APPEND_STRING PROPERTY COMPILE_FLAGS " /GL-") +endif() + +if(SDL_ASSEMBLY) + if(USE_GCC OR USE_CLANG OR USE_INTELCC) + # TODO: Those all seem to be quite GCC specific - needs to be + # reworked for better compiler support + set(HAVE_ASSEMBLY TRUE) + if(SDL_MMX) + set(CMAKE_REQUIRED_FLAGS "-mmmx") + check_c_source_compiles(" + #ifdef __MINGW32__ + #include <_mingw.h> + #ifdef __MINGW64_VERSION_MAJOR + #include + #else + #include + #endif + #else + #include + #endif + #ifndef __MMX__ + #error Assembler CPP flag not enabled + #endif + int main(int argc, char **argv) { return 0; }" HAVE_MMX) + if(HAVE_MMX) + list(APPEND EXTRA_CFLAGS "-mmmx") + endif() + set(CMAKE_REQUIRED_FLAGS ${ORIG_CMAKE_REQUIRED_FLAGS}) + endif() + + if(SDL_3DNOW) + set(CMAKE_REQUIRED_FLAGS "-m3dnow") + check_c_source_compiles(" + #include + #ifndef __3dNOW__ + #error Assembler CPP flag not enabled + #endif + int main(int argc, char **argv) { + void *p = 0; + _m_prefetch(p); + return 0; + }" HAVE_3DNOW) + if(HAVE_3DNOW) + list(APPEND EXTRA_CFLAGS "-m3dnow") + endif() + set(CMAKE_REQUIRED_FLAGS ${ORIG_CMAKE_REQUIRED_FLAGS}) + endif() + + if(SDL_SSE) + set(CMAKE_REQUIRED_FLAGS "-msse") + check_c_source_compiles(" + #ifdef __MINGW32__ + #include <_mingw.h> + #ifdef __MINGW64_VERSION_MAJOR + #include + #else + #include + #endif + #else + #include + #endif + #ifndef __SSE__ + #error Assembler CPP flag not enabled + #endif + int main(int argc, char **argv) { return 0; }" HAVE_SSE) + if(HAVE_SSE) + list(APPEND EXTRA_CFLAGS "-msse") + endif() + set(CMAKE_REQUIRED_FLAGS ${ORIG_CMAKE_REQUIRED_FLAGS}) + endif() + + if(SDL_SSE2) + set(CMAKE_REQUIRED_FLAGS "-msse2") + check_c_source_compiles(" + #ifdef __MINGW32__ + #include <_mingw.h> + #ifdef __MINGW64_VERSION_MAJOR + #include + #else + #include + #endif + #else + #include + #endif + #ifndef __SSE2__ + #error Assembler CPP flag not enabled + #endif + int main(int argc, char **argv) { return 0; }" CPU_SUPPORTS_SSE2) + if(CPU_SUPPORTS_SSE2) + set(HAVE_SSE2 TRUE) + list(APPEND EXTRA_CFLAGS "-msse2") + endif() + set(CMAKE_REQUIRED_FLAGS ${ORIG_CMAKE_REQUIRED_FLAGS}) + endif() + + if(SDL_SSE3) + set(CMAKE_REQUIRED_FLAGS "-msse3") + check_c_source_compiles(" + #ifdef __MINGW32__ + #include <_mingw.h> + #ifdef __MINGW64_VERSION_MAJOR + #include + #else + #include + #endif + #else + #include + #endif + #ifndef __SSE3__ + #error Assembler CPP flag not enabled + #endif + int main(int argc, char **argv) { return 0; }" CPU_SUPPORTS_SSE3) + if(CPU_SUPPORTS_SSE3) + set(HAVE_SSE3 TRUE) + list(APPEND EXTRA_CFLAGS "-msse3") + endif() + set(CMAKE_REQUIRED_FLAGS ${ORIG_CMAKE_REQUIRED_FLAGS}) + endif() + + if(NOT SDL_SSEMATH) + if(SDL_SSE OR SDL_SSE2 OR SDL_SSE3) + if(USE_GCC) + check_c_compiler_flag(-mfpmath=387 HAVE_FP_387) + if(HAVE_FP_387) + list(APPEND EXTRA_CFLAGS "-mfpmath=387") + endif() + endif() + endif() + else() + set(HAVE_SSEMATH TRUE) + endif() + + check_include_file("immintrin.h" HAVE_IMMINTRIN_H) + + if(SDL_ALTIVEC) + set(CMAKE_REQUIRED_FLAGS "-maltivec") + check_c_source_compiles(" + #include + vector unsigned int vzero() { + return vec_splat_u32(0); + } + int main(int argc, char **argv) { return 0; }" HAVE_ALTIVEC_H_HDR) + check_c_source_compiles(" + vector unsigned int vzero() { + return vec_splat_u32(0); + } + int main(int argc, char **argv) { return 0; }" CPU_SUPPORTS_ALTIVEC) + set(CMAKE_REQUIRED_FLAGS ${ORIG_CMAKE_REQUIRED_FLAGS}) + if(CPU_SUPPORTS_ALTIVEC OR HAVE_ALTIVEC_H_HDR) + set(HAVE_ALTIVEC TRUE) # if only HAVE_ALTIVEC_H_HDR is set + list(APPEND EXTRA_CFLAGS "-maltivec") + set(SDL_ALTIVEC_BLITTERS 1) + if(HAVE_ALTIVEC_H_HDR) + set(HAVE_ALTIVEC_H 1) + endif() + endif() + endif() + + if(SDL_LSX) + cmake_push_check_state() + set(CMAKE_REQUIRED_FLAGS "-mlsx") + check_c_source_compiles(" + #ifndef __loongarch_sx + #error Assembler CPP flag not enabled + #endif + int main(int argc, char **argv) { return 0; }" CPU_SUPPORTS_LSX) + check_include_file("lsxintrin.h" HAVE_LSXINTRIN_H) + cmake_pop_check_state() + + if(CPU_SUPPORTS_LSX AND HAVE_LSXINTRIN_H) + list(APPEND EXTRA_CFLAGS "-mlsx") + set(HAVE_LSX TRUE) + endif() + endif() + + if(SDL_ARMSIMD) + set(ORIG_CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS}") + set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -x assembler-with-cpp") + check_c_source_compiles(" + .text + .arch armv6 + .object_arch armv4 + .arm + .altmacro + #ifndef __ARM_EABI__ + #error EABI is required (to be sure that calling conventions are compatible) + #endif + pld [r0] + uqadd8 r0, r0, r0 + " ARMSIMD_FOUND) + set(CMAKE_REQUIRED_FLAGS "${ORIG_CMAKE_REQUIRED_FLAGS}") + + if(ARMSIMD_FOUND) + set(HAVE_ARMSIMD TRUE) + set(SDL_ARM_SIMD_BLITTERS 1) + file(GLOB ARMSIMD_SOURCES ${SDL2_SOURCE_DIR}/src/video/arm/pixman-arm-simd*.S) + list(APPEND SOURCE_FILES ${ARMSIMD_SOURCES}) + set(WARN_ABOUT_ARM_SIMD_ASM_MIT TRUE) + endif() + endif() + + if(SDL_ARMNEON) + set(ORIG_CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS}") + set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -x assembler-with-cpp") + check_c_source_compiles(" + .text + .fpu neon + .arch armv7a + .object_arch armv4 + .eabi_attribute 10, 0 + .arm + .altmacro + #ifndef __ARM_EABI__ + #error EABI is required (to be sure that calling conventions are compatible) + #endif + pld [r0] + vmovn.u16 d0, q0 + " ARMNEON_FOUND) + set(CMAKE_REQUIRED_FLAGS "${ORIG_CMAKE_REQUIRED_FLAGS}") + + if(ARMNEON_FOUND) + set(HAVE_ARMNEON TRUE) + set(SDL_ARM_NEON_BLITTERS 1) + file(GLOB ARMNEON_SOURCES ${SDL2_SOURCE_DIR}/src/video/arm/pixman-arm-neon*.S) + list(APPEND SOURCE_FILES ${ARMNEON_SOURCES}) + set(WARN_ABOUT_ARM_NEON_ASM_MIT TRUE) + endif() + endif() + + elseif(MSVC_VERSION GREATER 1500) + # TODO: SDL_cpuinfo.h needs to support the user's configuration wish + # for MSVC - right now it is always activated + if(NOT ARCH_64) + if(SDL_MMX) + set(HAVE_MMX TRUE) + endif() + if(SDL_3DNOW) + set(HAVE_3DNOW TRUE) + endif() + endif() + if(SDL_SSE) + set(HAVE_SSE TRUE) + endif() + if(SDL_SSE2) + set(HAVE_SSE2 TRUE) + endif() + if(SDL_SSE3) + set(HAVE_SSE3 TRUE) + endif() + check_include_file("immintrin.h" HAVE_IMMINTRIN_H) + endif() +endif() + +# TODO: Can't deactivate on FreeBSD? w/o LIBC, SDL_stdinc.h can't define +# anything. +if(SDL_LIBC) + if(WINDOWS AND NOT MINGW) + set(HAVE_LIBC TRUE) + check_include_file(stdint.h HAVE_STDINT_H) + foreach(_HEADER stdio.h string.h wchar.h ctype.h math.h limits.h) + string(TOUPPER "HAVE_${_HEADER}" _UPPER) + string(REPLACE "." "_" _HAVE_H ${_UPPER}) + set(${_HAVE_H} 1) + endforeach() + set(HAVE_SIGNAL_H 1) + foreach(_FN + malloc calloc realloc free bsearch qsort abs memset memcpy memmove memcmp + wcslen _wcsdup wcsdup wcsstr wcscmp wcsncmp _wcsicmp _wcsnicmp + strlen _strrev _strupr _strlwr strchr strrchr strstr itoa _ltoa + _ultoa strtol strtoul strtoll strtod atoi atof strcmp strncmp + _stricmp _strnicmp sscanf + acos acosf asin asinf atan atanf atan2 atan2f ceil ceilf + copysign copysignf cos cosf exp expf fabs fabsf floor floorf fmod fmodf + log logf log10 log10f lround lroundf pow powf round roundf scalbn scalbnf + sin sinf sqrt sqrtf tan tanf trunc truncf) + string(TOUPPER ${_FN} _UPPER) + set(HAVE_${_UPPER} 1) + endforeach() + set(HAVE_ALLOCA 1) + check_symbol_exists(M_PI math.h HAVE_M_PI) + target_compile_definitions(sdl-build-options INTERFACE "-D_USE_MATH_DEFINES") # needed for M_PI + set(STDC_HEADERS 1) + else() + set(HAVE_LIBC TRUE) + set(headers_to_check + ctype.h + float.h + iconv.h + inttypes.h + limits.h + malloc.h + math.h + memory.h + signal.h + stdarg.h + stddef.h + stdint.h + stdio.h + stdlib.h + string.h + strings.h + sys/types.h + wchar.h + ) + foreach(_HEADER ${headers_to_check}) + string(TOUPPER "HAVE_${_HEADER}" _UPPER) + string(REGEX REPLACE "[./]" "_" _HAVE_H ${_UPPER}) + check_include_file("${_HEADER}" ${_HAVE_H}) + endforeach() + + set(STDC_HEADER_NAMES "stddef.h;stdarg.h;stdlib.h;string.h;stdio.h;wchar.h;float.h") + check_include_files("${STDC_HEADER_NAMES}" STDC_HEADERS) + check_symbol_exists(M_PI math.h HAVE_M_PI) + # TODO: refine the mprotect check + check_c_source_compiles("#include + #include + int main(void) { return 0; }" HAVE_MPROTECT) + foreach(_FN + strtod malloc calloc realloc free getenv setenv putenv unsetenv + bsearch qsort abs bcopy memset memcpy memmove memcmp strlen strlcpy strlcat + _strrev _strupr _strlwr index rindex strchr strrchr strstr strtok_r + itoa _ltoa _uitoa _ultoa strtol strtoul _i64toa _ui64toa strtoll strtoull + atoi atof strcmp strncmp _stricmp strcasecmp _strnicmp strncasecmp strcasestr + wcscmp _wcsdup wcsdup wcslcat wcslcpy wcslen wcsncmp wcsstr + wcscasecmp _wcsicmp wcsncasecmp _wcsnicmp + sscanf vsscanf vsnprintf fopen64 fseeko fseeko64 _Exit + ) + string(TOUPPER ${_FN} _UPPER) + set(_HAVEVAR "HAVE_${_UPPER}") + check_symbol_exists("${_FN}" "${STDC_HEADER_NAMES}" ${_HAVEVAR}) + endforeach() + + check_symbol_exists(sigaction "signal.h" HAVE_SIGACTION) + check_symbol_exists(sigtimedwait "signal.h" HAVE_SIGTIMEDWAIT) + check_symbol_exists(setjmp "setjmp.h" HAVE_SETJMP) + check_symbol_exists(nanosleep "time.h" HAVE_NANOSLEEP) + check_symbol_exists(sysconf "unistd.h" HAVE_SYSCONF) + check_symbol_exists(sysctlbyname "sys/types.h;sys/sysctl.h" HAVE_SYSCTLBYNAME) + check_symbol_exists(getauxval "sys/auxv.h" HAVE_GETAUXVAL) + check_symbol_exists(elf_aux_info "sys/auxv.h" HAVE_ELF_AUX_INFO) + check_symbol_exists(poll "poll.h" HAVE_POLL) + check_symbol_exists(memfd_create "sys/mman.h" HAVE_MEMFD_CREATE) + check_symbol_exists(posix_fallocate "fcntl.h" HAVE_POSIX_FALLOCATE) + + check_library_exists(m pow "" HAVE_LIBM) + if(HAVE_LIBM) + set(CMAKE_REQUIRED_LIBRARIES m) + endif() + foreach(_FN + atan atan2 atanf atan2f ceil ceilf copysign copysignf cos cosf + exp expf fabs fabsf floor floorf fmod fmodf log logf log10 log10f + lround lroundf pow powf round roundf scalbn scalbnf sin sinf sqrt + sqrtf tan tanf acos acosf asin asinf trunc truncf) + string(TOUPPER ${_FN} _UPPER) + set(_HAVEVAR "HAVE_${_UPPER}") + check_symbol_exists("${_FN}" "math.h" ${_HAVEVAR}) + endforeach() + if(HAVE_LIBM) + set(CMAKE_REQUIRED_LIBRARIES) + if(NOT VITA) + list(APPEND EXTRA_LIBS m) + endif() + endif() + + if(SDL_SYSTEM_ICONV) + check_c_source_compiles(" + #define LIBICONV_PLUG 1 /* in case libiconv header is in include path */ + #include + #include + int main(int argc, char **argv) { + return !iconv_open(NULL,NULL); + }" ICONV_IN_LIBC) + + cmake_push_check_state() + list(APPEND CMAKE_REQUIRED_LIBRARIES iconv) + check_c_source_compiles(" + #include + #include + int main(int argc, char **argv) { + return !iconv_open(NULL,NULL); + }" ICONV_IN_LIBICONV) + cmake_pop_check_state() + + if(ICONV_IN_LIBC OR ICONV_IN_LIBICONV) + set(HAVE_ICONV 1) + set(HAVE_SYSTEM_ICONV TRUE) + if(ICONV_IN_LIBICONV AND (SDL_LIBICONV OR (NOT ICONV_IN_LIBC))) + set(SDL_USE_LIBICONV 1) + set(HAVE_LIBICONV TRUE) + list(APPEND EXTRA_LIBS iconv) + endif() + endif() + endif() + + if(NOT APPLE) + check_include_file(alloca.h HAVE_ALLOCA_H) + check_symbol_exists(alloca "alloca.h" HAVE_ALLOCA1) + check_symbol_exists(alloca "stdlib.h" HAVE_ALLOCA2) + check_symbol_exists(alloca "malloc.h" HAVE_ALLOCA3) + if(HAVE_ALLOCA1 OR HAVE_ALLOCA2 OR HAVE_ALLOCA3) + set(HAVE_ALLOCA 1) + endif() + else() + set(HAVE_ALLOCA_H 1) + set(HAVE_ALLOCA 1) + endif() + + check_struct_has_member("struct sigaction" "sa_sigaction" "signal.h" HAVE_SA_SIGACTION) + endif() +else() + if(WINDOWS) + set(HAVE_STDARG_H 1) + set(HAVE_STDDEF_H 1) + check_include_file(stdint.h HAVE_STDINT_H) + + if(MSVC AND USE_CLANG) + check_c_compiler_flag("/Q_no-use-libirc" HAS_Q_NO_USE_LIBIRC ) + endif() + endif() +endif() + + +# Enable/disable various subsystems of the SDL library +foreach(_SUB ${SDL_SUBSYSTEMS}) + string(TOUPPER ${_SUB} _OPT) + if(NOT SDL_${_OPT}) + set(SDL_${_OPT}_DISABLED 1) + endif() +endforeach() +if(SDL_HAPTIC) + if(NOT SDL_JOYSTICK) + # Haptic requires some private functions from the joystick subsystem. + message_error("SDL_HAPTIC requires SDL_JOYSTICK, which is not enabled") + endif() +endif() + + +# General SDL subsystem options, valid for all platforms +if(SDL_AUDIO) + # CheckDummyAudio/CheckDiskAudio - valid for all platforms + if(SDL_DUMMYAUDIO) + set(SDL_AUDIO_DRIVER_DUMMY 1) + file(GLOB DUMMYAUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/dummy/*.c) + list(APPEND SOURCE_FILES ${DUMMYAUDIO_SOURCES}) + set(HAVE_DUMMYAUDIO TRUE) + set(HAVE_SDL_AUDIO TRUE) + endif() + if(SDL_DISKAUDIO) + set(SDL_AUDIO_DRIVER_DISK 1) + file(GLOB DISKAUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/disk/*.c) + list(APPEND SOURCE_FILES ${DISKAUDIO_SOURCES}) + set(HAVE_DISKAUDIO TRUE) + set(HAVE_SDL_AUDIO TRUE) + endif() +endif() + +if(UNIX OR APPLE) + # Relevant for Unix/Darwin only + set(DYNAPI_NEEDS_DLOPEN 1) + CheckDLOPEN() + if(SDL_LOADSO AND HAVE_DLOPEN) + set(SDL_LOADSO_DLOPEN 1) + file(GLOB DLOPEN_SOURCES ${SDL2_SOURCE_DIR}/src/loadso/dlopen/*.c) + list(APPEND SOURCE_FILES ${DLOPEN_SOURCES}) + set(HAVE_SDL_LOADSO TRUE) + endif() +endif() + +if(UNIX OR APPLE OR HAIKU OR RISCOS) + CheckO_CLOEXEC() +endif() + +if(SDL_JOYSTICK) + if(SDL_VIRTUAL_JOYSTICK) + set(HAVE_VIRTUAL_JOYSTICK TRUE) + set(SDL_JOYSTICK_VIRTUAL 1) + file(GLOB JOYSTICK_VIRTUAL_SOURCES ${SDL2_SOURCE_DIR}/src/joystick/virtual/*.c) + list(APPEND SOURCE_FILES ${JOYSTICK_VIRTUAL_SOURCES}) + endif() +endif() + +if(SDL_VIDEO) + if(SDL_DUMMYVIDEO) + set(SDL_VIDEO_DRIVER_DUMMY 1) + file(GLOB VIDEO_DUMMY_SOURCES ${SDL2_SOURCE_DIR}/src/video/dummy/*.c) + list(APPEND SOURCE_FILES ${VIDEO_DUMMY_SOURCES}) + set(HAVE_DUMMYVIDEO TRUE) + set(HAVE_SDL_VIDEO TRUE) + endif() + if(SDL_OFFSCREEN) + set(SDL_VIDEO_DRIVER_OFFSCREEN 1) + file(GLOB VIDEO_OFFSCREEN_SOURCES ${SDL2_SOURCE_DIR}/src/video/offscreen/*.c) + list(APPEND SOURCE_FILES ${VIDEO_OFFSCREEN_SOURCES}) + set(HAVE_OFFSCREEN TRUE) + set(HAVE_SDL_VIDEO TRUE) + endif() +endif() + +# Platform-specific options and settings +if(ANDROID) + file(GLOB ANDROID_CORE_SOURCES ${SDL2_SOURCE_DIR}/src/core/android/*.c) + list(APPEND SOURCE_FILES ${ANDROID_CORE_SOURCES} ${ANDROID_NDK}/sources/android/cpufeatures/cpu-features.c) + set_property(SOURCE "${ANDROID_NDK}/sources/android/cpufeatures/cpu-features.c" APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-declaration-after-statement") + + if(SDL_MISC) + file(GLOB ANDROID_MISC_SOURCES ${SDL2_SOURCE_DIR}/src/misc/android/*.c) + list(APPEND SOURCE_FILES ${ANDROID_MISC_SOURCES}) + set(HAVE_SDL_MISC TRUE) + endif() + + # SDL_spinlock.c Needs to be compiled in ARM mode. + # There seems to be no better way currently to set the ARM mode. + # see: https://issuetracker.google.com/issues/62264618 + # Another option would be to set ARM mode to all compiled files + cmake_push_check_state(RESET) + set(CMAKE_REQUIRED_FLAGS "-Werror=unused-command-line-argument") + check_c_compiler_flag(-marm HAVE_ARM_MODE) + if(HAVE_ARM_MODE) + set_property(SOURCE "${SDL2_SOURCE_DIR}/src/atomic/SDL_spinlock.c" APPEND_STRING PROPERTY COMPILE_FLAGS " -marm") + endif() + cmake_pop_check_state() + + file(GLOB ANDROID_MAIN_SOURCES ${SDL2_SOURCE_DIR}/src/main/android/*.c) + list(APPEND SDLMAIN_SOURCES ${ANDROID_MAIN_SOURCES}) + + if(SDL_AUDIO) + set(SDL_AUDIO_DRIVER_ANDROID 1) + file(GLOB ANDROID_AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/android/*.c) + list(APPEND SOURCE_FILES ${ANDROID_AUDIO_SOURCES}) + + set(SDL_AUDIO_DRIVER_OPENSLES 1) + file(GLOB OPENSLES_AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/openslES/*.c) + list(APPEND SOURCE_FILES ${OPENSLES_AUDIO_SOURCES}) + + list(APPEND EXTRA_LIBS ${ANDROID_DL_LIBRARY} OpenSLES) + + set(SDL_AUDIO_DRIVER_AAUDIO 1) + file(GLOB AAUDIO_AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/aaudio/*.c) + list(APPEND SOURCE_FILES ${AAUDIO_AUDIO_SOURCES}) + + set(HAVE_SDL_AUDIO TRUE) + endif() + if(SDL_FILESYSTEM) + set(SDL_FILESYSTEM_ANDROID 1) + file(GLOB ANDROID_FILESYSTEM_SOURCES ${SDL2_SOURCE_DIR}/src/filesystem/android/*.c) + list(APPEND SOURCE_FILES ${ANDROID_FILESYSTEM_SOURCES}) + set(HAVE_SDL_FILESYSTEM TRUE) + endif() + if(SDL_HAPTIC) + set(SDL_HAPTIC_ANDROID 1) + file(GLOB ANDROID_HAPTIC_SOURCES ${SDL2_SOURCE_DIR}/src/haptic/android/*.c) + list(APPEND SOURCE_FILES ${ANDROID_HAPTIC_SOURCES}) + set(HAVE_SDL_HAPTIC TRUE) + endif() + if(SDL_HIDAPI) + CheckHIDAPI() + endif() + if(SDL_JOYSTICK) + set(SDL_JOYSTICK_ANDROID 1) + file(GLOB ANDROID_JOYSTICK_SOURCES ${SDL2_SOURCE_DIR}/src/joystick/android/*.c ${SDL2_SOURCE_DIR}/src/joystick/steam/*.c) + list(APPEND SOURCE_FILES ${ANDROID_JOYSTICK_SOURCES}) + set(HAVE_SDL_JOYSTICK TRUE) + endif() + if(SDL_LOADSO) + set(SDL_LOADSO_DLOPEN 1) + file(GLOB LOADSO_SOURCES ${SDL2_SOURCE_DIR}/src/loadso/dlopen/*.c) + list(APPEND SOURCE_FILES ${LOADSO_SOURCES}) + set(HAVE_SDL_LOADSO TRUE) + endif() + if(SDL_POWER) + set(SDL_POWER_ANDROID 1) + file(GLOB ANDROID_POWER_SOURCES ${SDL2_SOURCE_DIR}/src/power/android/*.c) + list(APPEND SOURCE_FILES ${ANDROID_POWER_SOURCES}) + set(HAVE_SDL_POWER TRUE) + endif() + if(SDL_LOCALE) + file(GLOB ANDROID_LOCALE_SOURCES ${SDL2_SOURCE_DIR}/src/locale/android/*.c) + list(APPEND SOURCE_FILES ${ANDROID_LOCALE_SOURCES}) + set(HAVE_SDL_LOCALE TRUE) + endif() + if(SDL_TIMERS) + set(SDL_TIMER_UNIX 1) + file(GLOB TIMER_SOURCES ${SDL2_SOURCE_DIR}/src/timer/unix/*.c) + list(APPEND SOURCE_FILES ${TIMER_SOURCES}) + set(HAVE_SDL_TIMERS TRUE) + endif() + if(SDL_SENSOR) + set(SDL_SENSOR_ANDROID 1) + set(HAVE_SDL_SENSORS TRUE) + file(GLOB ANDROID_SENSOR_SOURCES ${SDL2_SOURCE_DIR}/src/sensor/android/*.c) + list(APPEND SOURCE_FILES ${ANDROID_SENSOR_SOURCES}) + endif() + if(SDL_VIDEO) + set(SDL_VIDEO_DRIVER_ANDROID 1) + file(GLOB ANDROID_VIDEO_SOURCES ${SDL2_SOURCE_DIR}/src/video/android/*.c) + list(APPEND SOURCE_FILES ${ANDROID_VIDEO_SOURCES}) + set(HAVE_SDL_VIDEO TRUE) + + # Core stuff + # find_library(ANDROID_DL_LIBRARY dl) + # FIXME failing dlopen https://github.com/android-ndk/ndk/issues/929 + list(APPEND EXTRA_LIBS dl log android) + target_compile_definitions(sdl-build-options INTERFACE "-DGL_GLEXT_PROTOTYPES") + + #enable gles + if(SDL_OPENGLES) + set(SDL_VIDEO_OPENGL_EGL 1) + set(HAVE_OPENGLES TRUE) + set(SDL_VIDEO_OPENGL_ES 1) + set(SDL_VIDEO_RENDER_OGL_ES 1) + set(SDL_VIDEO_OPENGL_ES2 1) + set(SDL_VIDEO_RENDER_OGL_ES2 1) + + list(APPEND EXTRA_LIBS GLESv1_CM GLESv2) + endif() + + if(SDL_VULKAN) + CHECK_C_SOURCE_COMPILES(" + #if defined(__ARM_ARCH) && __ARM_ARCH < 7 + #error Vulkan doesn't work on this configuration + #endif + int main(int argc, char **argv) { return 0; } + " VULKAN_PASSED_ANDROID_CHECKS) + if(VULKAN_PASSED_ANDROID_CHECKS) + set(SDL_VIDEO_VULKAN 1) + set(HAVE_VULKAN TRUE) + endif() + endif() + endif() + + CheckPTHREAD() + if(SDL_CLOCK_GETTIME) + set(HAVE_CLOCK_GETTIME 1) + endif() + +elseif(EMSCRIPTEN) + # Hide noisy warnings that intend to aid mostly during initial stages of porting a new + # project. Uncomment at will for verbose cross-compiling -I/../ path info. + target_compile_options(sdl-build-options INTERFACE "-Wno-warn-absolute-paths") + + if(SDL_MISC) + file(GLOB EMSRIPTEN_MISC_SOURCES ${SDL2_SOURCE_DIR}/src/misc/emscripten/*.c) + list(APPEND SOURCE_FILES ${EMSRIPTEN_MISC_SOURCES}) + set(HAVE_SDL_MISC TRUE) + endif() + if(SDL_AUDIO) + set(SDL_AUDIO_DRIVER_EMSCRIPTEN 1) + file(GLOB EM_AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/emscripten/*.c) + list(APPEND SOURCE_FILES ${EM_AUDIO_SOURCES}) + set(HAVE_SDL_AUDIO TRUE) + endif() + if(SDL_FILESYSTEM) + set(SDL_FILESYSTEM_EMSCRIPTEN 1) + file(GLOB EM_FILESYSTEM_SOURCES ${SDL2_SOURCE_DIR}/src/filesystem/emscripten/*.c) + list(APPEND SOURCE_FILES ${EM_FILESYSTEM_SOURCES}) + set(HAVE_SDL_FILESYSTEM TRUE) + endif() + if(SDL_JOYSTICK) + set(SDL_JOYSTICK_EMSCRIPTEN 1) + file(GLOB EM_JOYSTICK_SOURCES ${SDL2_SOURCE_DIR}/src/joystick/emscripten/*.c) + list(APPEND SOURCE_FILES ${EM_JOYSTICK_SOURCES}) + set(HAVE_SDL_JOYSTICK TRUE) + endif() + if(SDL_POWER) + set(SDL_POWER_EMSCRIPTEN 1) + file(GLOB EM_POWER_SOURCES ${SDL2_SOURCE_DIR}/src/power/emscripten/*.c) + list(APPEND SOURCE_FILES ${EM_POWER_SOURCES}) + set(HAVE_SDL_POWER TRUE) + endif() + if(SDL_LOCALE) + file(GLOB LOCALE_SOURCES ${SDL2_SOURCE_DIR}/src/locale/emscripten/*.c) + list(APPEND SOURCE_FILES ${LOCALE_SOURCES}) + set(HAVE_SDL_LOCALE TRUE) + endif() + if(SDL_TIMERS) + set(SDL_TIMER_UNIX 1) + file(GLOB TIMER_SOURCES ${SDL2_SOURCE_DIR}/src/timer/unix/*.c) + list(APPEND SOURCE_FILES ${TIMER_SOURCES}) + set(HAVE_SDL_TIMERS TRUE) + + if(SDL_CLOCK_GETTIME) + set(HAVE_CLOCK_GETTIME 1) + endif() + endif() + if(SDL_VIDEO) + set(SDL_VIDEO_DRIVER_EMSCRIPTEN 1) + file(GLOB EM_VIDEO_SOURCES ${SDL2_SOURCE_DIR}/src/video/emscripten/*.c) + list(APPEND SOURCE_FILES ${EM_VIDEO_SOURCES}) + set(HAVE_SDL_VIDEO TRUE) + + #enable gles + if(SDL_OPENGLES) + set(SDL_VIDEO_OPENGL_EGL 1) + set(HAVE_OPENGLES TRUE) + set(SDL_VIDEO_OPENGL_ES2 1) + set(SDL_VIDEO_RENDER_OGL_ES2 1) + endif() + endif() + + CheckPTHREAD() + CheckLibUnwind() + +elseif(UNIX AND NOT APPLE AND NOT RISCOS AND NOT HAIKU) + if(SDL_AUDIO) + if(SYSV5 OR SOLARIS OR HPUX) + # Newer Solaris-based systems, like OpenIndiana, don't have this interface anymore. Check for the header first. + check_include_file(sys/audioio.h HAVE_SYS_AUDIOIO_H) + if(HAVE_SYS_AUDIOIO_H) + set(SDL_AUDIO_DRIVER_SUNAUDIO 1) + file(GLOB SUN_AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/sun/*.c) + list(APPEND SOURCE_FILES ${SUN_AUDIO_SOURCES}) + set(HAVE_SDL_AUDIO TRUE) + endif() + elseif(NETBSD) + set(SDL_AUDIO_DRIVER_NETBSD 1) + file(GLOB NETBSD_AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/netbsd/*.c) + list(APPEND SOURCE_FILES ${NETBSD_AUDIO_SOURCES}) + set(HAVE_SDL_AUDIO TRUE) + elseif(AIX) + set(SDL_AUDIO_DRIVER_PAUDIO 1) + file(GLOB AIX_AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/paudio/*.c) + list(APPEND SOURCE_FILES ${AIX_AUDIO_SOURCES}) + set(HAVE_SDL_AUDIO TRUE) + elseif(QNX) + set(SDL_AUDIO_DRIVER_QSA 1) + file(GLOB QSA_AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/qsa/*.c) + list(APPEND SOURCE_FILES ${QSA_AUDIO_SOURCES}) + list(APPEND EXTRA_LIBS asound) + set(HAVE_SDL_AUDIO TRUE) + endif() + CheckOSS() + CheckALSA() + CheckJACK() + CheckPipewire() + CheckPulseAudio() + CheckESD() + CheckARTS() + CheckNAS() + CheckSNDIO() + CheckFusionSound() + endif() + + if(SDL_VIDEO) + # Need to check for Raspberry PI first and add platform specific compiler flags, otherwise the test for GLES fails! + CheckRPI() + CheckX11() + CheckDirectFB() + # Need to check for EGL first because KMSDRM and Wayland depends on it. + CheckEGL() + CheckKMSDRM() + CheckGLX() + CheckOpenGL() + CheckOpenGLES() + CheckWayland() + CheckVivante() + # FIXME: implement CheckVulkan() + if(SDL_VULKAN) + set(SDL_VIDEO_VULKAN 1) + set(HAVE_VULKAN TRUE) + endif() + CheckQNXScreen() + endif() + + if(UNIX) + file(GLOB CORE_UNIX_SOURCES ${SDL2_SOURCE_DIR}/src/core/unix/*.c) + list(APPEND SOURCE_FILES ${CORE_UNIX_SOURCES}) + + check_c_source_compiles(" + #include + #ifndef EVIOCGNAME + #error EVIOCGNAME() ioctl not available + #endif + int main(int argc, char** argv) { return 0; }" HAVE_LINUX_INPUT_H) + + if(LINUX) + check_c_source_compiles(" + #include + #include + #include + int main(int argc, char **argv) { + struct kbentry kbe; + kbe.kb_table = KG_CTRL; + ioctl(0, KDGKBENT, &kbe); + return 0; + }" HAVE_INPUT_KD) + elseif(FREEBSD) + check_c_source_compiles(" + #include + #include + int main(int argc, char **argv) { + accentmap_t accTable; + ioctl(0, KDENABIO, 1); + return 0; + }" HAVE_INPUT_KBIO) + elseif(OPENBSD OR NETBSD) + check_c_source_compiles(" + #include + #include + #include + #include + #include + int main(int argc, char **argv) { + struct wskbd_map_data data; + ioctl(0, WSKBDIO_GETMAP, &data); + return 0; + }" HAVE_INPUT_WSCONS) + endif() + + if(HAVE_LINUX_INPUT_H) + set(SDL_INPUT_LINUXEV 1) + endif() + + if(SDL_HAPTIC AND HAVE_LINUX_INPUT_H) + set(SDL_HAPTIC_LINUX 1) + file(GLOB HAPTIC_SOURCES ${SDL2_SOURCE_DIR}/src/haptic/linux/*.c) + list(APPEND SOURCE_FILES ${HAPTIC_SOURCES}) + set(HAVE_SDL_HAPTIC TRUE) + endif() + + if(HAVE_INPUT_KD) + set(SDL_INPUT_LINUXKD 1) + endif() + + if(HAVE_INPUT_KBIO) + set(SDL_INPUT_FBSDKBIO 1) + endif() + + if(HAVE_INPUT_WSCONS) + set(SDL_INPUT_WSCONS 1) + endif() + + CheckLibUDev() + check_include_file("sys/inotify.h" HAVE_SYS_INOTIFY_H) + check_symbol_exists(inotify_init "sys/inotify.h" HAVE_INOTIFY_INIT) + check_symbol_exists(inotify_init1 "sys/inotify.h" HAVE_INOTIFY_INIT1) + + if(HAVE_SYS_INOTIFY_H AND HAVE_INOTIFY_INIT) + set(HAVE_INOTIFY 1) + endif() + + if(PKG_CONFIG_FOUND) + if(SDL_DBUS) + pkg_search_module(DBUS dbus-1 dbus) + if(DBUS_FOUND) + set(HAVE_DBUS_DBUS_H TRUE) + target_include_directories(sdl-build-options INTERFACE "${DBUS_INCLUDE_DIRS}") + # Fcitx need only dbus. + set(HAVE_FCITX TRUE) + set(HAVE_DBUS TRUE) + endif() + endif() + + if(SDL_IBUS) + pkg_search_module(IBUS ibus-1.0 ibus) + find_path(HAVE_SYS_INOTIFY_H NAMES sys/inotify.h) + if(IBUS_FOUND AND HAVE_SYS_INOTIFY_H) + set(HAVE_IBUS_IBUS_H TRUE) + target_include_directories(sdl-build-options INTERFACE "${IBUS_INCLUDE_DIRS}") + set(HAVE_IBUS TRUE) + endif() + endif() + + if (HAVE_IBUS_IBUS_H OR HAVE_FCITX) + set(SDL_USE_IME 1) + endif() + + if(FREEBSD AND NOT HAVE_INOTIFY) + pkg_search_module(INOTIFY libinotify) + if(INOTIFY_FOUND) + set(HAVE_INOTIFY 1) + target_include_directories(sdl-build-options INTERFACE "${INOTIFY_INCLUDE_DIRS}") + list(APPEND EXTRA_LIBS ${INOTIFY_LIBRARIES}) + endif() + endif() + + endif() + CheckLibUnwind() + + if(HAVE_DBUS_DBUS_H) + list(APPEND SOURCE_FILES "${SDL2_SOURCE_DIR}/src/core/linux/SDL_dbus.c") + endif() + + if(SDL_USE_IME) + list(APPEND SOURCE_FILES "${SDL2_SOURCE_DIR}/src/core/linux/SDL_ime.c") + endif() + + if(HAVE_IBUS_IBUS_H) + list(APPEND SOURCE_FILES "${SDL2_SOURCE_DIR}/src/core/linux/SDL_ibus.c") + endif() + + if(HAVE_FCITX) + list(APPEND SOURCE_FILES "${SDL2_SOURCE_DIR}/src/core/linux/SDL_fcitx.c") + endif() + + if(HAVE_LIBUDEV_H) + list(APPEND SOURCE_FILES "${SDL2_SOURCE_DIR}/src/core/linux/SDL_udev.c") + endif() + + if(HAVE_LINUX_INPUT_H) + list(APPEND SOURCE_FILES "${SDL2_SOURCE_DIR}/src/core/linux/SDL_evdev.c") + list(APPEND SOURCE_FILES "${SDL2_SOURCE_DIR}/src/core/linux/SDL_evdev_kbd.c") + endif() + + if(HAVE_INPUT_KBIO) + list(APPEND SOURCE_FILES "${SDL2_SOURCE_DIR}/src/core/freebsd/SDL_evdev_kbd_freebsd.c") + endif() + + if(HAVE_INPUT_WSCONS) + list(APPEND SOURCE_FILES "${SDL2_SOURCE_DIR}/src/core/openbsd/SDL_wscons_kbd.c") + list(APPEND SOURCE_FILES "${SDL2_SOURCE_DIR}/src/core/openbsd/SDL_wscons_mouse.c") + endif() + + # Always compiled for Linux, unconditionally: + list(APPEND SOURCE_FILES "${SDL2_SOURCE_DIR}/src/core/linux/SDL_evdev_capabilities.c") + list(APPEND SOURCE_FILES "${SDL2_SOURCE_DIR}/src/core/linux/SDL_threadprio.c") + list(APPEND SOURCE_FILES "${SDL2_SOURCE_DIR}/src/core/linux/SDL_sandbox.c") + + # src/core/unix/*.c is included in a generic if(UNIX) section, elsewhere. + endif() + + if(SDL_HIDAPI) + CheckHIDAPI() + endif() + + if(SDL_JOYSTICK) + if(FREEBSD OR NETBSD OR OPENBSD OR BSDI) + CheckUSBHID() + endif() + if((LINUX OR FREEBSD) AND HAVE_LINUX_INPUT_H AND NOT ANDROID) + set(SDL_JOYSTICK_LINUX 1) + file(GLOB JOYSTICK_SOURCES ${SDL2_SOURCE_DIR}/src/joystick/linux/*.c ${SDL2_SOURCE_DIR}/src/joystick/steam/*.c) + list(APPEND SOURCE_FILES ${JOYSTICK_SOURCES}) + set(HAVE_SDL_JOYSTICK TRUE) + endif() + endif() + + CheckPTHREAD() + + if(SDL_CLOCK_GETTIME) + check_library_exists(c clock_gettime "" FOUND_CLOCK_GETTIME_LIBC) + if(FOUND_CLOCK_GETTIME_LIBC) + set(HAVE_CLOCK_GETTIME 1) + else() + check_library_exists(rt clock_gettime "" FOUND_CLOCK_GETTIME_LIBRT) + if(FOUND_CLOCK_GETTIME_LIBRT) + set(HAVE_CLOCK_GETTIME 1) + list(APPEND EXTRA_LIBS rt) + endif() + endif() + endif() + + check_include_file(linux/version.h HAVE_LINUX_VERSION_H) + if(HAVE_LINUX_VERSION_H) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DHAVE_LINUX_VERSION_H") + endif() + + if(SDL_MISC) + file(GLOB MISC_SOURCES ${SDL2_SOURCE_DIR}/src/misc/unix/*.c) + list(APPEND SOURCE_FILES ${MISC_SOURCES}) + set(HAVE_SDL_MISC TRUE) + endif() + + if(SDL_POWER) + if(LINUX) + set(SDL_POWER_LINUX 1) + file(GLOB POWER_SOURCES ${SDL2_SOURCE_DIR}/src/power/linux/*.c) + list(APPEND SOURCE_FILES ${POWER_SOURCES}) + set(HAVE_SDL_POWER TRUE) + endif() + endif() + + if(SDL_LOCALE) + file(GLOB LOCALE_SOURCES ${SDL2_SOURCE_DIR}/src/locale/unix/*.c) + list(APPEND SOURCE_FILES ${LOCALE_SOURCES}) + set(HAVE_SDL_LOCALE TRUE) + endif() + + if(SDL_FILESYSTEM) + set(SDL_FILESYSTEM_UNIX 1) + file(GLOB FILESYSTEM_SOURCES ${SDL2_SOURCE_DIR}/src/filesystem/unix/*.c) + list(APPEND SOURCE_FILES ${FILESYSTEM_SOURCES}) + set(HAVE_SDL_FILESYSTEM TRUE) + endif() + + if(SDL_TIMERS) + set(SDL_TIMER_UNIX 1) + file(GLOB TIMER_SOURCES ${SDL2_SOURCE_DIR}/src/timer/unix/*.c) + list(APPEND SOURCE_FILES ${TIMER_SOURCES}) + set(HAVE_SDL_TIMERS TRUE) + endif() + + set(SDL_RLD_FLAGS "") + if(SDL_RPATH AND SDL_SHARED) + if(BSDI OR FREEBSD OR LINUX OR NETBSD) + set(CMAKE_REQUIRED_FLAGS "-Wl,--enable-new-dtags") + check_c_compiler_flag("" HAVE_ENABLE_NEW_DTAGS) + set(CMAKE_REQUIRED_FLAGS ${ORIG_CMAKE_REQUIRED_FLAGS}) + if(HAVE_ENABLE_NEW_DTAGS) + set(SDL_RLD_FLAGS "-Wl,-rpath,\${libdir} -Wl,--enable-new-dtags") + else() + set(SDL_RLD_FLAGS "-Wl,-rpath,\${libdir}") + endif() + elseif(SOLARIS) + set(SDL_RLD_FLAGS "-R\${libdir}") + endif() + set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) + set(HAVE_RPATH TRUE) + endif() + + if(QNX) + # QNX's *printf() family generates a SIGSEGV if NULL is passed for a string + # specifier (on purpose), but SDL expects "(null)". Use the built-in + # implementation. + set(HAVE_VSNPRINTF 0) + set(USE_POSIX_SPAWN 1) + endif() +elseif(WINDOWS) + find_program(WINDRES windres) + + check_c_source_compiles(" + #include + int main(int argc, char **argv) { return 0; }" HAVE_WIN32_CC) + + file(GLOB CORE_SOURCES ${SDL2_SOURCE_DIR}/src/core/windows/*.c) + list(APPEND SOURCE_FILES ${CORE_SOURCES}) + + if(WINDOWS_STORE) + enable_language(CXX) + file(GLOB WINRT_SOURCE_FILES ${SDL2_SOURCE_DIR}/src/core/winrt/*.c ${SDL2_SOURCE_DIR}/src/core/winrt/*.cpp) + list(APPEND SOURCE_FILES ${WINRT_SOURCE_FILES}) + endif() + + if(SDL_MISC) + if(WINDOWS_STORE) + file(GLOB MISC_SOURCES ${SDL2_SOURCE_DIR}/src/misc/winrt/*.cpp) + else() + file(GLOB MISC_SOURCES ${SDL2_SOURCE_DIR}/src/misc/windows/*.c) + endif() + list(APPEND SOURCE_FILES ${MISC_SOURCES}) + set(HAVE_SDL_MISC TRUE) + endif() + + # Check for DirectX + if(SDL_DIRECTX) + if(DEFINED MSVC_VERSION AND NOT ${MSVC_VERSION} LESS 1700) + set(USE_WINSDK_DIRECTX TRUE) + endif() + if(NOT MINGW AND NOT USE_WINSDK_DIRECTX) + if("$ENV{DXSDK_DIR}" STREQUAL "") + message_error("DIRECTX requires the \$DXSDK_DIR environment variable to be set") + endif() + set(CMAKE_REQUIRED_FLAGS "/I\"$ENV{DXSDK_DIR}\\Include\"") + endif() + + check_include_file(d3d9.h HAVE_D3D_H) + check_include_file(d3d11_1.h HAVE_D3D11_H) + check_c_source_compiles(" + #include + #include + ID3D12Device1 *device; + int main(int argc, char **argv) {return 0; } + " HAVE_D3D12_H) + check_include_file(ddraw.h HAVE_DDRAW_H) + check_include_file(dsound.h HAVE_DSOUND_H) + check_include_file(dinput.h HAVE_DINPUT_H) + if(WINDOWS_STORE OR SDL_CPU_ARM32) + set(HAVE_DINPUT_H 0) + endif() + check_include_file(dxgi.h HAVE_DXGI_H) + if(HAVE_D3D_H OR HAVE_D3D11_H OR HAVE_D3D12_H OR HAVE_DDRAW_H OR HAVE_DSOUND_H OR HAVE_DINPUT_H) + set(HAVE_DIRECTX TRUE) + if(NOT MINGW AND NOT USE_WINSDK_DIRECTX) + # TODO: change $ENV{DXSDL_DIR} to get the path from the include checks + file(TO_CMAKE_PATH "$ENV{DXSDK_DIR}\\lib\\${PROCESSOR_ARCH}" SDL2_TMP_DXSDK_LIB_DIR) + target_link_directories(sdl-build-options INTERFACE "${SDL2_TMP_DXSDK_LIB_DIR}") + file(TO_CMAKE_PATH "$ENV{DXSDK_DIR}\\Include" SDL2_TMP_DXSDK_INCLUDE_DIR) + target_include_directories(sdl-build-options INTERFACE "${SDL2_TMP_DXSDK_INCLUDE_DIR}") + endif() + endif() + set(CMAKE_REQUIRED_FLAGS ${ORIG_CMAKE_REQUIRED_FLAGS}) + endif() + + if(SDL_XINPUT) + # xinput.h may need windows.h, but does not include it itself. + check_c_source_compiles(" + #include + #include + int main(int argc, char **argv) { return 0; }" HAVE_XINPUT_H) + check_c_source_compiles(" + #define COBJMACROS + #include + __x_ABI_CWindows_CGaming_CInput_CIGamepadStatics2 *s2; + int main(int argc, char **argv) { return 0; }" HAVE_WINDOWS_GAMING_INPUT_H) + endif() + + # headers needed elsewhere + check_include_file(tpcshrd.h HAVE_TPCSHRD_H) + check_include_file(roapi.h HAVE_ROAPI_H) + check_include_file(mmdeviceapi.h HAVE_MMDEVICEAPI_H) + check_include_file(audioclient.h HAVE_AUDIOCLIENT_H) + check_include_file(sensorsapi.h HAVE_SENSORSAPI_H) + check_include_file(shellscalingapi.h HAVE_SHELLSCALINGAPI_H) + + if(SDL_AUDIO) + if(NOT WINDOWS_STORE) + set(SDL_AUDIO_DRIVER_WINMM 1) + file(GLOB WINMM_AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/winmm/*.c) + list(APPEND SOURCE_FILES ${WINMM_AUDIO_SOURCES}) + set(HAVE_SDL_AUDIO TRUE) + endif() + + if(HAVE_DSOUND_H AND NOT WINDOWS_STORE) + set(SDL_AUDIO_DRIVER_DSOUND 1) + file(GLOB DSOUND_AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/directsound/*.c) + list(APPEND SOURCE_FILES ${DSOUND_AUDIO_SOURCES}) + set(HAVE_SDL_AUDIO TRUE) + endif() + + if(SDL_WASAPI AND HAVE_AUDIOCLIENT_H AND HAVE_MMDEVICEAPI_H) + set(SDL_AUDIO_DRIVER_WASAPI 1) + set(HAVE_WASAPI TRUE) + file(GLOB WASAPI_AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/wasapi/*.c) + if(WINDOWS_STORE) + list(APPEND WASAPI_AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/wasapi/SDL_wasapi_winrt.cpp) + endif() + list(APPEND SOURCE_FILES ${WASAPI_AUDIO_SOURCES}) + set(HAVE_SDL_AUDIO TRUE) + endif() + endif() + + if(SDL_VIDEO) + # requires SDL_LOADSO on Windows (IME, DX, etc.) + if(NOT SDL_LOADSO) + message_error("SDL_VIDEO requires SDL_LOADSO, which is not enabled") + endif() + if(WINDOWS_STORE) + set(SDL_VIDEO_DRIVER_WINRT 1) + file(GLOB WIN_VIDEO_SOURCES + ${SDL2_SOURCE_DIR}/src/video/winrt/*.c + ${SDL2_SOURCE_DIR}/src/video/winrt/*.cpp + ${SDL2_SOURCE_DIR}/src/render/direct3d11/*.cpp + ) + else() + set(SDL_VIDEO_DRIVER_WINDOWS 1) + file(GLOB WIN_VIDEO_SOURCES ${SDL2_SOURCE_DIR}/src/video/windows/*.c) + endif() + list(APPEND SOURCE_FILES ${WIN_VIDEO_SOURCES}) + + if(SDL_RENDER_D3D AND HAVE_D3D_H AND NOT WINDOWS_STORE) + set(SDL_VIDEO_RENDER_D3D 1) + set(HAVE_RENDER_D3D TRUE) + endif() + if(SDL_RENDER_D3D AND HAVE_D3D11_H) + set(SDL_VIDEO_RENDER_D3D11 1) + set(HAVE_RENDER_D3D TRUE) + endif() + if(SDL_RENDER_D3D AND HAVE_D3D12_H AND NOT WINDOWS_STORE) + set(SDL_VIDEO_RENDER_D3D12 1) + set(HAVE_RENDER_D3D TRUE) + endif() + set(HAVE_SDL_VIDEO TRUE) + endif() + + if(SDL_THREADS) + set(SDL_THREAD_GENERIC_COND_SUFFIX 1) + set(SDL_THREAD_WINDOWS 1) + list(APPEND SOURCE_FILES + ${SDL2_SOURCE_DIR}/src/thread/generic/SDL_syscond.c + ${SDL2_SOURCE_DIR}/src/thread/windows/SDL_syscond_cv.c + ${SDL2_SOURCE_DIR}/src/thread/windows/SDL_sysmutex.c + ${SDL2_SOURCE_DIR}/src/thread/windows/SDL_syssem.c + ${SDL2_SOURCE_DIR}/src/thread/windows/SDL_systhread.c + ${SDL2_SOURCE_DIR}/src/thread/windows/SDL_systls.c) + set(HAVE_SDL_THREADS TRUE) + endif() + + if(SDL_SENSOR AND HAVE_SENSORSAPI_H AND NOT WINDOWS_STORE) + set(SDL_SENSOR_WINDOWS 1) + set(HAVE_SDL_SENSORS TRUE) + file(GLOB WINDOWS_SENSOR_SOURCES ${SDL2_SOURCE_DIR}/src/sensor/windows/*.c) + list(APPEND SOURCE_FILES ${WINDOWS_SENSOR_SOURCES}) + endif() + + if(SDL_POWER) + if(WINDOWS_STORE) + set(SDL_POWER_WINRT 1) + list(APPEND SOURCE_FILES ${SDL2_SOURCE_DIR}/src/power/winrt/SDL_syspower.cpp) + else() + set(SDL_POWER_WINDOWS 1) + list(APPEND SOURCE_FILES ${SDL2_SOURCE_DIR}/src/power/windows/SDL_syspower.c) + set(HAVE_SDL_POWER TRUE) + endif() + endif() + + if(SDL_LOCALE) + if(WINDOWS_STORE) + file(GLOB LOCALE_SOURCES ${SDL2_SOURCE_DIR}/src/locale/winrt/*.c) + else() + file(GLOB LOCALE_SOURCES ${SDL2_SOURCE_DIR}/src/locale/windows/*.c) + endif() + list(APPEND SOURCE_FILES ${LOCALE_SOURCES}) + set(HAVE_SDL_LOCALE TRUE) + endif() + + if(SDL_FILESYSTEM) + set(SDL_FILESYSTEM_WINDOWS 1) + if(WINDOWS_STORE) + file(GLOB FILESYSTEM_SOURCES ${SDL2_SOURCE_DIR}/src/filesystem/winrt/*.cpp) + else() + file(GLOB FILESYSTEM_SOURCES ${SDL2_SOURCE_DIR}/src/filesystem/windows/*.c) + endif() + list(APPEND SOURCE_FILES ${FILESYSTEM_SOURCES}) + set(HAVE_SDL_FILESYSTEM TRUE) + endif() + + # Libraries for Win32 native and MinGW + if(NOT WINDOWS_STORE) + list(APPEND EXTRA_LIBS kernel32 user32 gdi32 winmm imm32 ole32 oleaut32 version uuid advapi32 setupapi shell32) + endif() + + if(WINDOWS_STORE) + list(APPEND EXTRA_LIBS + -nodefaultlib:vccorlib$<$:d> + -nodefaultlib:msvcrt$<$:d> + vccorlib$<$:d>.lib + msvcrt$<$:d>.lib + ) + endif() + + if(SDL_TIMERS) + set(SDL_TIMER_WINDOWS 1) + file(GLOB TIMER_SOURCES ${SDL2_SOURCE_DIR}/src/timer/windows/*.c) + list(APPEND SOURCE_FILES ${TIMER_SOURCES}) + set(HAVE_SDL_TIMERS TRUE) + endif() + + if(SDL_LOADSO) + set(SDL_LOADSO_WINDOWS 1) + file(GLOB LOADSO_SOURCES ${SDL2_SOURCE_DIR}/src/loadso/windows/*.c) + list(APPEND SOURCE_FILES ${LOADSO_SOURCES}) + set(HAVE_SDL_LOADSO TRUE) + endif() + + file(GLOB CORE_SOURCES ${SDL2_SOURCE_DIR}/src/core/windows/*.c) + list(APPEND SOURCE_FILES ${CORE_SOURCES}) + + if(SDL_VIDEO) + if(SDL_OPENGL AND NOT WINDOWS_STORE) + set(SDL_VIDEO_OPENGL 1) + set(SDL_VIDEO_OPENGL_WGL 1) + set(SDL_VIDEO_RENDER_OGL 1) + set(HAVE_OPENGL TRUE) + endif() + + if(SDL_OPENGLES) + set(SDL_VIDEO_OPENGL_EGL 1) + set(SDL_VIDEO_OPENGL_ES2 1) + set(SDL_VIDEO_RENDER_OGL_ES2 1) + set(HAVE_OPENGLES TRUE) + endif() + + if(SDL_VULKAN) + set(SDL_VIDEO_VULKAN 1) + set(HAVE_VULKAN TRUE) + endif() + endif() + + if(SDL_HIDAPI) + CheckHIDAPI() + endif() + + if(SDL_JOYSTICK) + file(GLOB JOYSTICK_SOURCES ${SDL2_SOURCE_DIR}/src/joystick/windows/*.c) + list(APPEND SOURCE_FILES ${JOYSTICK_SOURCES}) + + if(NOT WINDOWS_STORE) + set(SDL_JOYSTICK_RAWINPUT 1) + endif() + if(HAVE_DINPUT_H) + set(SDL_JOYSTICK_DINPUT 1) + list(APPEND EXTRA_LIBS dinput8) + endif() + if(HAVE_XINPUT_H) + if(NOT WINDOWS_STORE) + set(SDL_JOYSTICK_XINPUT 1) + set(HAVE_XINPUT TRUE) + endif() + if(HAVE_WINDOWS_GAMING_INPUT_H) + set(SDL_JOYSTICK_WGI 1) + endif() + endif() + set(HAVE_SDL_JOYSTICK TRUE) + + if(SDL_HAPTIC) + if((HAVE_DINPUT_H OR HAVE_XINPUT_H) AND NOT WINDOWS_STORE) + file(GLOB HAPTIC_SOURCES ${SDL2_SOURCE_DIR}/src/haptic/windows/*.c) + if(HAVE_DINPUT_H) + set(SDL_HAPTIC_DINPUT 1) + endif() + if(HAVE_XINPUT_H) + set(SDL_HAPTIC_XINPUT 1) + endif() + else() + file(GLOB HAPTIC_SOURCES ${SDL2_SOURCE_DIR}/src/haptic/dummy/*.c) + set(SDL_HAPTIC_DUMMY 1) + endif() + list(APPEND SOURCE_FILES ${HAPTIC_SOURCES}) + set(HAVE_SDL_HAPTIC TRUE) + endif() + endif() + + enable_language(RC) + file(GLOB VERSION_SOURCES ${SDL2_SOURCE_DIR}/src/main/windows/*.rc) + file(GLOB SDLMAIN_SOURCES ${SDL2_SOURCE_DIR}/src/main/windows/*.c) + if(MINGW OR CYGWIN) + if(NOT SDL2_DISABLE_SDL2MAIN) + list(APPEND SDL_CFLAGS "-Dmain=SDL_main") + list(INSERT SDL_LIBS 0 "-lSDL2main") + endif(NOT SDL2_DISABLE_SDL2MAIN) + list(INSERT SDL_LIBS 0 "-lmingw32" "-mwindows") + endif() + +elseif(APPLE) + # TODO: rework this all for proper MacOS X, iOS and Darwin support + + # We always need these libs on macOS at the moment. + # !!! FIXME: we need Carbon for some very old API calls in + # !!! FIXME: src/video/cocoa/SDL_cocoakeyboard.c, but we should figure out + # !!! FIXME: how to dump those. + if(MACOS) + set(SDL_FRAMEWORK_COCOA 1) + set(SDL_FRAMEWORK_CARBON 1) + endif() + set(SDL_FRAMEWORK_FOUNDATION 1) + set(SDL_FRAMEWORK_COREVIDEO 1) + + # Requires the darwin file implementation + if(SDL_FILE) + file(GLOB EXTRA_SOURCES ${SDL2_SOURCE_DIR}/src/file/cocoa/*.m) + list(APPEND SOURCE_FILES ${EXTRA_SOURCES}) + set(HAVE_SDL_FILE TRUE) + endif() + + if(IOS OR TVOS OR VISIONOS OR WATCHOS) + file(GLOB SDLMAIN_SOURCES ${SDL2_SOURCE_DIR}/src/main/uikit/*.c) + endif() + + if(SDL_MISC) + if(IOS OR TVOS OR VISIONOS OR WATCHOS) + file(GLOB MISC_SOURCES ${SDL2_SOURCE_DIR}/src/misc/ios/*.m) + else() + file(GLOB MISC_SOURCES ${SDL2_SOURCE_DIR}/src/misc/macosx/*.m) + endif() + list(APPEND SOURCE_FILES ${MISC_SOURCES}) + set(HAVE_SDL_MISC TRUE) + endif() + + if(SDL_AUDIO) + set(SDL_AUDIO_DRIVER_COREAUDIO 1) + file(GLOB AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/coreaudio/*.m) + list(APPEND SOURCE_FILES ${AUDIO_SOURCES}) + set(HAVE_SDL_AUDIO TRUE) + set(SDL_FRAMEWORK_COREAUDIO 1) + set(SDL_FRAMEWORK_AUDIOTOOLBOX 1) + set(SDL_FRAMEWORK_AVFOUNDATION 1) + endif() + + if(SDL_HIDAPI) + CheckHIDAPI() + endif() + + if(SDL_JOYSTICK) + file(GLOB MFI_JOYSTICK_SOURCES ${SDL2_SOURCE_DIR}/src/joystick/iphoneos/*.m) + if(IOS OR TVOS OR VISIONOS OR WATCHOS) + file(GLOB JOYSTICK_SOURCES ${SDL2_SOURCE_DIR}/src/joystick/steam/*.c) + set(SDL_JOYSTICK_MFI 1) + if(IOS OR VISIONOS OR WATCHOS) + set(SDL_FRAMEWORK_COREMOTION 1) + endif() + set(SDL_FRAMEWORK_GAMECONTROLLER 1) + set(SDL_FRAMEWORK_COREHAPTICS 1) + else() + file(GLOB JOYSTICK_SOURCES ${SDL2_SOURCE_DIR}/src/joystick/darwin/*.c) + set_property(SOURCE ${MFI_JOYSTICK_SOURCES} APPEND_STRING PROPERTY COMPILE_FLAGS " -fobjc-weak") + check_objc_source_compiles(" + #include + #include + #import + #import + #if MAC_OS_X_VERSION_MIN_REQUIRED < 1080 + #error GameController framework doesn't work on this configuration + #endif + #if TARGET_CPU_X86 + #error GameController framework doesn't work on this configuration + #endif + int main() { return 0; }" HAVE_FRAMEWORK_GAMECONTROLLER) + check_objc_source_compiles(" + #include + #include + #import + #import + int main() { return 0; }" HAVE_FRAMEWORK_COREHAPTICS) + if(HAVE_FRAMEWORK_GAMECONTROLLER AND HAVE_FRAMEWORK_COREHAPTICS) + # Only enable MFI if we also have CoreHaptics to ensure rumble works + set(SDL_JOYSTICK_MFI 1) + set(SDL_FRAMEWORK_GAMECONTROLLER 1) + set(SDL_FRAMEWORK_COREHAPTICS 1) + endif() + set(SDL_JOYSTICK_IOKIT 1) + set(SDL_FRAMEWORK_IOKIT 1) + set(SDL_FRAMEWORK_FF 1) + endif() + list(APPEND SOURCE_FILES ${JOYSTICK_SOURCES} ${MFI_JOYSTICK_SOURCES}) + set(HAVE_SDL_JOYSTICK TRUE) + endif() + + if(SDL_HAPTIC) + if(IOS OR TVOS OR VISIONOS OR WATCHOS) + file(GLOB HAPTIC_SOURCES ${SDL2_SOURCE_DIR}/src/haptic/dummy/*.c) + set(SDL_HAPTIC_DUMMY 1) + else() + file(GLOB HAPTIC_SOURCES ${SDL2_SOURCE_DIR}/src/haptic/darwin/*.c) + set(SDL_HAPTIC_IOKIT 1) + set(SDL_FRAMEWORK_IOKIT 1) + set(SDL_FRAMEWORK_FF 1) + endif() + list(APPEND SOURCE_FILES ${HAPTIC_SOURCES}) + set(HAVE_SDL_HAPTIC TRUE) + endif() + + if(SDL_POWER) + if(IOS OR TVOS OR VISIONOS OR WATCHOS) + file(GLOB POWER_SOURCES ${SDL2_SOURCE_DIR}/src/power/uikit/*.m) + set(SDL_POWER_UIKIT 1) + else() + file(GLOB POWER_SOURCES ${SDL2_SOURCE_DIR}/src/power/macosx/*.c) + set(SDL_POWER_MACOSX 1) + set(SDL_FRAMEWORK_IOKIT 1) + endif() + list(APPEND SOURCE_FILES ${POWER_SOURCES}) + set(HAVE_SDL_POWER TRUE) + endif() + + if(SDL_LOCALE) + file(GLOB LOCALE_SOURCES ${SDL2_SOURCE_DIR}/src/locale/macosx/*.m) + list(APPEND SOURCE_FILES ${LOCALE_SOURCES}) + set(HAVE_SDL_LOCALE TRUE) + endif() + + if(SDL_TIMERS) + set(SDL_TIMER_UNIX 1) + file(GLOB TIMER_SOURCES ${SDL2_SOURCE_DIR}/src/timer/unix/*.c) + list(APPEND SOURCE_FILES ${TIMER_SOURCES}) + set(HAVE_SDL_TIMERS TRUE) + endif(SDL_TIMERS) + + if(SDL_FILESYSTEM) + set(SDL_FILESYSTEM_COCOA 1) + file(GLOB FILESYSTEM_SOURCES ${SDL2_SOURCE_DIR}/src/filesystem/cocoa/*.m) + list(APPEND SOURCE_FILES ${FILESYSTEM_SOURCES}) + set(HAVE_SDL_FILESYSTEM TRUE) + endif() + + if(SDL_SENSOR) + if(IOS OR VISIONOS OR WATCHOS) + set(SDL_SENSOR_COREMOTION 1) + set(HAVE_SDL_SENSORS TRUE) + file(GLOB SENSOR_SOURCES ${SDL2_SOURCE_DIR}/src/sensor/coremotion/*.m) + list(APPEND SOURCE_FILES ${SENSOR_SOURCES}) + endif() + endif() + + # iOS hack needed - http://code.google.com/p/ios-cmake/ ? + if(SDL_VIDEO) + if(IOS OR TVOS OR VISIONOS OR WATCHOS) + set(SDL_VIDEO_DRIVER_UIKIT 1) + set(SDL_FRAMEWORK_COREGRAPHICS 1) + set(SDL_FRAMEWORK_QUARTZCORE 1) + set(SDL_FRAMEWORK_UIKIT 1) + set(SDL_IPHONE_KEYBOARD 1) + set(SDL_IPHONE_LAUNCHSCREEN 1) + file(GLOB UIKITVIDEO_SOURCES ${SDL2_SOURCE_DIR}/src/video/uikit/*.m) + list(APPEND SOURCE_FILES ${UIKITVIDEO_SOURCES}) + set(HAVE_SDL_VIDEO TRUE) + else() + CheckCOCOA() + if(SDL_OPENGL) + set(SDL_VIDEO_OPENGL 1) + set(SDL_VIDEO_OPENGL_CGL 1) + set(SDL_VIDEO_RENDER_OGL 1) + set(HAVE_OPENGL TRUE) + endif() + endif() + + if(SDL_OPENGLES) + if(IOS OR TVOS OR VISIONOS OR WATCHOS) + set(SDL_FRAMEWORK_OPENGLES 1) + set(SDL_VIDEO_OPENGL_ES 1) + set(SDL_VIDEO_RENDER_OGL_ES 1) + else() + set(SDL_VIDEO_OPENGL_EGL 1) + endif() + set(SDL_VIDEO_OPENGL_ES2 1) + set(SDL_VIDEO_RENDER_OGL_ES2 1) + set(HAVE_OPENGLES TRUE) + endif() + + if(SDL_VULKAN OR SDL_METAL OR SDL_RENDER_METAL) + check_objc_source_compiles(" + #include + #import + #import + + #if (!TARGET_CPU_X86_64 && !TARGET_CPU_ARM64) + #error Metal doesn't work on this configuration + #endif + int main(int argc, char **argv) { return 0; }" HAVE_FRAMEWORK_METAL) + if(HAVE_FRAMEWORK_METAL) + set(SDL_FRAMEWORK_METAL 1) + set(SDL_FRAMEWORK_QUARTZCORE 1) + if(SDL_VULKAN) + set(SDL_VIDEO_VULKAN 1) + set(HAVE_VULKAN TRUE) + endif() + if(SDL_METAL) + set(SDL_VIDEO_METAL 1) + set(HAVE_METAL TRUE) + endif() + if(SDL_RENDER_METAL) + file(GLOB RENDER_METAL_SOURCES ${SDL2_SOURCE_DIR}/src/render/metal/*.m) + list(APPEND SOURCE_FILES ${RENDER_METAL_SOURCES}) + set(SDL_VIDEO_RENDER_METAL 1) + set(HAVE_RENDER_METAL TRUE) + endif() + endif() + endif() + endif() + + # Minimum version for $ + cmake_minimum_required(VERSION 3.24) + + # Actually load the frameworks at the end so we don't duplicate include. + if(SDL_FRAMEWORK_COREVIDEO) + list(APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,CoreVideo") + list(APPEND CMAKE_LIBS "$") + endif() + if(SDL_FRAMEWORK_COCOA) + list(APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,Cocoa") + list(APPEND CMAKE_LIBS "$") + endif() + if(SDL_FRAMEWORK_IOKIT) + list(APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,IOKit") + list(APPEND CMAKE_LIBS "$") + endif() + if(SDL_FRAMEWORK_FF) + list(APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,ForceFeedback") + list(APPEND CMAKE_LIBS "$") + endif() + if(SDL_FRAMEWORK_CARBON) + list(APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,Carbon") + list(APPEND CMAKE_LIBS "$") + endif() + if(SDL_FRAMEWORK_COREAUDIO) + list(APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,CoreAudio") + list(APPEND CMAKE_LIBS "$") + endif() + if(SDL_FRAMEWORK_AUDIOTOOLBOX) + list(APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,AudioToolbox") + list(APPEND CMAKE_LIBS "$") + endif() + if(SDL_FRAMEWORK_AVFOUNDATION) + list(APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,AVFoundation") + list(APPEND CMAKE_LIBS "$") + endif() + if(SDL_FRAMEWORK_COREBLUETOOTH) + list(APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,CoreBluetooth") + list(APPEND CMAKE_LIBS "$") + endif() + if(SDL_FRAMEWORK_COREGRAPHICS) + list(APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,CoreGraphics") + list(APPEND CMAKE_LIBS "$") + endif() + if(SDL_FRAMEWORK_COREMOTION) + list(APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,CoreMotion") + list(APPEND CMAKE_LIBS "$") + endif() + if(SDL_FRAMEWORK_FOUNDATION) + list(APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,Foundation") + list(APPEND CMAKE_LIBS "$") + endif() + if(SDL_FRAMEWORK_GAMECONTROLLER) + find_library(GAMECONTROLLER GameController) + if(GAMECONTROLLER) + list(APPEND PKGCONFIG_LDFLAGS "-Wl,-weak_framework,GameController") + list(APPEND CMAKE_LIBS "$") + endif() + endif() + if(SDL_FRAMEWORK_METAL) + if(IOS OR TVOS OR VISIONOS OR WATCHOS) + list(APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,Metal") + list(APPEND CMAKE_LIBS "$") + else() + list(APPEND PKGCONFIG_LDFLAGS "-Wl,-weak_framework,Metal") + list(APPEND CMAKE_LIBS "$") + endif() + endif() + if(SDL_FRAMEWORK_OPENGLES) + list(APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,OpenGLES") + list(APPEND CMAKE_LIBS "$") + endif() + if(SDL_FRAMEWORK_QUARTZCORE) + if(IOS OR TVOS OR VISIONOS OR WATCHOS) + list(APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,QuartzCore") + list(APPEND CMAKE_LIBS "$") + else() + list(APPEND PKGCONFIG_LDFLAGS "-Wl,-weak_framework,QuartzCore") + list(APPEND CMAKE_LIBS "$") + endif() + endif() + if(SDL_FRAMEWORK_UIKIT) + list(APPEND PKGCONFIG_LDFLAGS "-Wl,-framework,UIKit") + list(APPEND CMAKE_LIBS "$") + endif() + if(SDL_FRAMEWORK_COREHAPTICS) + find_library(COREHAPTICS CoreHaptics) + if(COREHAPTICS) + list(APPEND PKGCONFIG_LDFLAGS "-Wl,-weak_framework,CoreHaptics") + list(APPEND CMAKE_LIBS "$") + endif() + endif() + + CheckPTHREAD() + +elseif(HAIKU) + if(SDL_AUDIO) + set(SDL_AUDIO_DRIVER_HAIKU 1) + file(GLOB HAIKU_AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/haiku/*.cc) + list(APPEND SOURCE_FILES ${HAIKU_AUDIO_SOURCES}) + set(HAVE_SDL_AUDIO TRUE) + endif() + + if(SDL_JOYSTICK) + set(SDL_JOYSTICK_HAIKU 1) + file(GLOB HAIKU_JOYSTICK_SOURCES ${SDL2_SOURCE_DIR}/src/joystick/haiku/*.cc) + list(APPEND SOURCE_FILES ${HAIKU_JOYSTICK_SOURCES}) + set(HAVE_SDL_JOYSTICK TRUE) + endif() + + if(SDL_MISC) + file(GLOB MISC_SOURCES ${SDL2_SOURCE_DIR}/src/misc/haiku/*.cc) + list(APPEND SOURCE_FILES ${MISC_SOURCES}) + set(HAVE_SDL_MISC TRUE) + endif() + + if(SDL_VIDEO) + set(SDL_VIDEO_DRIVER_HAIKU 1) + file(GLOB HAIKUVIDEO_SOURCES ${SDL2_SOURCE_DIR}/src/video/haiku/*.cc) + list(APPEND SOURCE_FILES ${HAIKUVIDEO_SOURCES}) + set(HAVE_SDL_VIDEO TRUE) + + if(SDL_OPENGL) + # TODO: Use FIND_PACKAGE(OpenGL) instead + set(SDL_VIDEO_OPENGL 1) + set(SDL_VIDEO_OPENGL_HAIKU 1) + set(SDL_VIDEO_RENDER_OGL 1) + list(APPEND EXTRA_LIBS GL) + set(HAVE_OPENGL TRUE) + endif() + endif() + + if(SDL_FILESYSTEM) + set(SDL_FILESYSTEM_HAIKU 1) + file(GLOB FILESYSTEM_SOURCES ${SDL2_SOURCE_DIR}/src/filesystem/haiku/*.cc) + list(APPEND SOURCE_FILES ${FILESYSTEM_SOURCES}) + set(HAVE_SDL_FILESYSTEM TRUE) + endif() + + if(SDL_TIMERS) + set(SDL_TIMER_HAIKU 1) + file(GLOB TIMER_SOURCES ${SDL2_SOURCE_DIR}/src/timer/haiku/*.c) + list(APPEND SOURCE_FILES ${TIMER_SOURCES}) + set(HAVE_SDL_TIMERS TRUE) + endif() + + if(SDL_POWER) + set(SDL_POWER_HAIKU 1) + file(GLOB HAIKU_POWER_SOURCES ${SDL2_SOURCE_DIR}/src/power/haiku/*.c) + list(APPEND SOURCE_FILES ${HAIKU_POWER_SOURCES}) + set(HAVE_SDL_POWER TRUE) + endif() + + if(SDL_LOCALE) + file(GLOB LOCALE_SOURCES ${SDL2_SOURCE_DIR}/src/locale/haiku/*.cc) + list(APPEND SOURCE_FILES ${LOCALE_SOURCES}) + set(HAVE_SDL_LOCALE TRUE) + endif() + + file(GLOB MAIN_SOURCES ${SDL2_SOURCE_DIR}/src/main/haiku/*.cc) + list(APPEND SOURCE_FILES ${MAIN_SOURCES}) + + CheckPTHREAD() + list(APPEND EXTRA_LIBS root be media game device textencoding) + +elseif(RISCOS) + if(SDL_MISC) + file(GLOB MISC_SOURCES ${SDL2_SOURCE_DIR}/src/misc/riscos/*.c) + list(APPEND SOURCE_FILES ${MISC_SOURCES}) + set(HAVE_SDL_MISC TRUE) + endif() + + if(SDL_VIDEO) + set(SDL_VIDEO_DRIVER_RISCOS 1) + file(GLOB RISCOSVIDEO_SOURCES ${SDL2_SOURCE_DIR}/src/video/riscos/*.c) + list(APPEND SOURCE_FILES ${RISCOSVIDEO_SOURCES}) + set(HAVE_SDL_VIDEO TRUE) + endif() + + if(SDL_FILESYSTEM) + set(SDL_FILESYSTEM_RISCOS 1) + file(GLOB FILESYSTEM_SOURCES ${SDL2_SOURCE_DIR}/src/filesystem/riscos/*.c) + list(APPEND SOURCE_FILES ${FILESYSTEM_SOURCES}) + set(HAVE_SDL_FILESYSTEM TRUE) + endif() + + if(SDL_TIMERS) + set(SDL_TIMER_UNIX 1) + file(GLOB TIMER_SOURCES ${SDL2_SOURCE_DIR}/src/timer/unix/*.c) + list(APPEND SOURCE_FILES ${TIMER_SOURCES}) + set(HAVE_SDL_TIMERS TRUE) + + if(SDL_CLOCK_GETTIME) + set(HAVE_CLOCK_GETTIME 1) + endif() + endif() + + CheckPTHREAD() + + if(SDL_AUDIO) + CheckOSS() + endif() + +elseif(VITA) + # SDL_spinlock.c Needs to be compiled in ARM mode. + cmake_push_check_state(RESET) + set(CMAKE_REQUIRED_FLAGS "-Werror=unused-command-line-argument") + check_c_compiler_flag(-marm HAVE_ARM_MODE) + if(HAVE_ARM_MODE) + set_property(SOURCE "${SDL2_SOURCE_DIR}/src/atomic/SDL_spinlock.c" APPEND_STRING PROPERTY COMPILE_FLAGS " -marm") + endif() + cmake_pop_check_state() + + if(SDL_MISC) + file(GLOB MISC_SOURCES ${SDL2_SOURCE_DIR}/src/misc/vita/*.c) + list(APPEND SOURCE_FILES ${MISC_SOURCES}) + set(HAVE_SDL_MISC TRUE) + endif() + + if(SDL_AUDIO) + set(SDL_AUDIO_DRIVER_VITA 1) + file(GLOB VITA_AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/vita/*.c) + list(APPEND SOURCE_FILES ${VITA_AUDIO_SOURCES}) + set(HAVE_SDL_AUDIO TRUE) + endif() + if(SDL_FILESYSTEM) + set(SDL_FILESYSTEM_VITA 1) + file(GLOB VITA_FILESYSTEM_SOURCES ${SDL2_SOURCE_DIR}/src/filesystem/vita/*.c) + list(APPEND SOURCE_FILES ${VITA_FILESYSTEM_SOURCES}) + set(HAVE_SDL_FILESYSTEM TRUE) + endif() + if(SDL_JOYSTICK) + set(SDL_JOYSTICK_VITA 1) + file(GLOB VITA_JOYSTICK_SOURCES ${SDL2_SOURCE_DIR}/src/joystick/vita/*.c) + list(APPEND SOURCE_FILES ${VITA_JOYSTICK_SOURCES}) + set(HAVE_SDL_JOYSTICK TRUE) + endif() + if(SDL_POWER) + set(SDL_POWER_VITA 1) + file(GLOB VITA_POWER_SOURCES ${SDL2_SOURCE_DIR}/src/power/vita/*.c) + list(APPEND SOURCE_FILES ${VITA_POWER_SOURCES}) + set(HAVE_SDL_POWER TRUE) + endif() + if(SDL_THREADS) + set(SDL_THREAD_VITA 1) + list(APPEND SOURCE_FILES + ${SDL2_SOURCE_DIR}/src/thread/vita/SDL_sysmutex.c + ${SDL2_SOURCE_DIR}/src/thread/vita/SDL_syssem.c + ${SDL2_SOURCE_DIR}/src/thread/vita/SDL_systhread.c + ${SDL2_SOURCE_DIR}/src/thread/generic/SDL_syscond.c + ${SDL2_SOURCE_DIR}/src/thread/generic/SDL_systls.c) + set(HAVE_SDL_THREADS TRUE) + endif() + if(SDL_LOCALE) + file(GLOB LOCALE_SOURCES ${SDL2_SOURCE_DIR}/src/locale/vita/*.c) + list(APPEND SOURCE_FILES ${LOCALE_SOURCES}) + set(HAVE_SDL_LOCALE TRUE) + endif() + if(SDL_TIMERS) + set(SDL_TIMER_VITA 1) + file(GLOB TIMER_SOURCES ${SDL2_SOURCE_DIR}/src/timer/vita/*.c) + list(APPEND SOURCE_FILES ${TIMER_SOURCES}) + set(HAVE_SDL_TIMERS TRUE) + endif() + if(SDL_SENSOR) + set(SDL_SENSOR_VITA 1) + set(HAVE_SDL_SENSORS TRUE) + file(GLOB VITA_SENSOR_SOURCES ${SDL2_SOURCE_DIR}/src/sensor/vita/*.c) + list(APPEND SOURCE_FILES ${VITA_SENSOR_SOURCES}) + endif() + if(SDL_VIDEO) + set(SDL_VIDEO_DRIVER_VITA 1) + file(GLOB VITA_VIDEO_SOURCES ${SDL2_SOURCE_DIR}/src/video/vita/*.c) + list(APPEND SOURCE_FILES ${VITA_VIDEO_SOURCES}) + set(HAVE_SDL_VIDEO TRUE) + + if(VIDEO_VITA_PIB) + check_include_file(pib.h HAVE_PIGS_IN_BLANKET_H) + + if(HAVE_PIGS_IN_BLANKET_H) + set(SDL_VIDEO_OPENGL_ES2 1) + list(APPEND EXTRA_LIBS + pib + libScePiglet_stub_weak + taihen_stub_weak + SceShaccCg_stub_weak + ) + set(HAVE_VIDEO_VITA_PIB ON) + set(SDL_VIDEO_VITA_PIB 1) + else() + set(HAVE_VIDEO_VITA_PIB OFF) + endif() + endif() + + if(VIDEO_VITA_PVR) + check_include_file(gpu_es4/psp2_pvr_hint.h HAVE_PVR_H) + if(HAVE_PVR_H) + target_compile_definitions(sdl-build-options INTERFACE "-D__psp2__") + set(SDL_VIDEO_OPENGL_EGL 1) + set(HAVE_OPENGLES TRUE) + set(SDL_VIDEO_OPENGL_ES 1) + set(SDL_VIDEO_RENDER_OGL_ES 1) + set(SDL_VIDEO_OPENGL_ES2 1) + set(SDL_VIDEO_RENDER_OGL_ES2 1) + + list(APPEND EXTRA_LIBS + libgpu_es4_ext_stub_weak + libIMGEGL_stub_weak + SceIme_stub + ) + + set(HAVE_VIDEO_VITA_PVR ON) + set(SDL_VIDEO_VITA_PVR 1) + + if(SDL_OPENGL) + check_include_file(gl4esinit.h HAVE_GL4ES_H) + if(HAVE_GL4ES_H) + set(HAVE_OPENGL TRUE) + set(SDL_VIDEO_OPENGL 1) + set(SDL_VIDEO_RENDER_OGL 1) + list(APPEND EXTRA_LIBS libGL_stub) + set(SDL_VIDEO_VITA_PVR_OGL 1) + endif() + endif() + + else() + set(HAVE_VIDEO_VITA_PVR OFF) + endif() + endif() + + set(SDL_VIDEO_RENDER_VITA_GXM 1) + + list(APPEND EXTRA_LIBS + SceGxm_stub + SceDisplay_stub + SceCtrl_stub + SceAppMgr_stub + SceAppUtil_stub + SceAudio_stub + SceAudioIn_stub + SceSysmodule_stub + SceDisplay_stub + SceCtrl_stub + SceIofilemgr_stub + SceCommonDialog_stub + SceTouch_stub + SceHid_stub + SceMotion_stub + ScePower_stub + SceProcessmgr_stub + m + ) + endif() + + set(HAVE_ARMSIMD TRUE) +# set(SDL_ARM_SIMD_BLITTERS 1) +# file(GLOB ARMSIMD_SOURCES ${SDL2_SOURCE_DIR}/src/video/arm/pixman-arm-simd*.S) +# list(APPEND SOURCE_FILES ${ARMSIMD_SOURCES}) + + set(HAVE_ARMNEON TRUE) +# set(SDL_ARM_NEON_BLITTERS 1) +# file(GLOB ARMNEON_SOURCES ${SDL2_SOURCE_DIR}/src/video/arm/pixman-arm-neon*.S) +# list(APPEND SOURCE_FILES ${ARMNEON_SOURCES}) + +# set_property(SOURCE ${SDL2_SOURCE_DIR}/src/video/arm/pixman-arm-simd-asm.S PROPERTY LANGUAGE C) +# set_property(SOURCE ${SDL2_SOURCE_DIR}/src/video/arm/pixman-arm-neon-asm.S PROPERTY LANGUAGE C) + + target_compile_definitions(sdl-build-options INTERFACE "-D__VITA__") + +# CheckPTHREAD() + +elseif(PSP) + file(GLOB PSP_MAIN_SOURCES ${SDL2_SOURCE_DIR}/src/main/psp/*.c) + list(APPEND SDLMAIN_SOURCES ${PSP_MAIN_SOURCES}) + + if(SDL_AUDIO) + set(SDL_AUDIO_DRIVER_PSP 1) + file(GLOB PSP_AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/psp/*.c) + list(APPEND SOURCE_FILES ${PSP_AUDIO_SOURCES}) + set(HAVE_SDL_AUDIO TRUE) + endif() + if(SDL_FILESYSTEM) + set(SDL_FILESYSTEM_PSP 1) + file(GLOB PSP_FILESYSTEM_SOURCES ${SDL2_SOURCE_DIR}/src/filesystem/psp/*.c) + list(APPEND SOURCE_FILES ${PSP_FILESYSTEM_SOURCES}) + set(HAVE_SDL_FILESYSTEM TRUE) + endif() + if(SDL_JOYSTICK) + set(SDL_JOYSTICK_PSP 1) + file(GLOB PSP_JOYSTICK_SOURCES ${SDL2_SOURCE_DIR}/src/joystick/psp/*.c) + list(APPEND SOURCE_FILES ${PSP_JOYSTICK_SOURCES}) + set(HAVE_SDL_JOYSTICK TRUE) + endif() + if(SDL_POWER) + set(SDL_POWER_PSP 1) + file(GLOB PSP_POWER_SOURCES ${SDL2_SOURCE_DIR}/src/power/psp/*.c) + list(APPEND SOURCE_FILES ${PSP_POWER_SOURCES}) + set(HAVE_SDL_POWER TRUE) + endif() + if(SDL_THREADS) + set(SDL_THREAD_PSP 1) + file(GLOB PSP_THREAD_SOURCES + ${SDL2_SOURCE_DIR}/src/thread/generic/SDL_systls.c + ${SDL2_SOURCE_DIR}/src/thread/generic/SDL_syscond.c + ${SDL2_SOURCE_DIR}/src/thread/psp/*.c) + list(APPEND SOURCE_FILES ${PSP_THREAD_SOURCES}) + set(HAVE_SDL_THREADS TRUE) + endif() + if(SDL_LOCALE) + file(GLOB PSP_LOCALE_SOURCES ${SDL2_SOURCE_DIR}/src/locale/psp/*.c) + list(APPEND SOURCE_FILES ${PSP_LOCALE_SOURCES}) + set(HAVE_SDL_LOCALE TRUE) + endif() + if(SDL_TIMERS) + set(SDL_TIMER_PSP 1) + file(GLOB PSP_TIMER_SOURCES ${SDL2_SOURCE_DIR}/src/timer/psp/*.c) + list(APPEND SOURCE_FILES ${PSP_TIMER_SOURCES}) + set(HAVE_SDL_TIMERS TRUE) + endif() + if(SDL_VIDEO) + set(SDL_VIDEO_DRIVER_PSP 1) + set(SDL_VIDEO_RENDER_PSP 1) + file(GLOB PSP_VIDEO_SOURCES ${SDL2_SOURCE_DIR}/src/video/psp/*.c) + list(APPEND SOURCE_FILES ${PSP_VIDEO_SOURCES}) + set(SDL_VIDEO_OPENGL 1) + set(HAVE_SDL_VIDEO TRUE) + endif() + + list(APPEND EXTRA_LIBS + GL + pspvram + pspaudio + pspvfpu + pspdisplay + pspgu + pspge + psphprm + pspctrl + psppower + ) + if(NOT SDL2_DISABLE_SDL2MAIN) + list(INSERT SDL_LIBS 0 "-lSDL2main") + endif() + +elseif(PS2) + + file(GLOB PS2_MAIN_SOURCES ${SDL2_SOURCE_DIR}/src/main/ps2/*.c) + set(SDLMAIN_SOURCES ${SDLMAIN_SOURCES} ${PS2_MAIN_SOURCES}) + + if(SDL_AUDIO) + set(SDL_AUDIO_DRIVER_PS2 1) + file(GLOB PS2_AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/ps2/*.c) + set(SOURCE_FILES ${SOURCE_FILES} ${PS2_AUDIO_SOURCES}) + set(HAVE_SDL_AUDIO TRUE) + endif() + if(SDL_FILESYSTEM) + set(SDL_FILESYSTEM_PS2 1) + file(GLOB PS2_FILESYSTEM_SOURCES ${SDL2_SOURCE_DIR}/src/filesystem/ps2/*.c) + list(APPEND SOURCE_FILES ${PS2_FILESYSTEM_SOURCES}) + set(HAVE_SDL_FILESYSTEM TRUE) + endif() + if(SDL_JOYSTICK) + set(SDL_JOYSTICK_PS2 1) + file(GLOB PS2_JOYSTICK_SOURCES ${SDL2_SOURCE_DIR}/src/joystick/ps2/*.c) + list(APPEND SOURCE_FILES ${PS2_JOYSTICK_SOURCES}) + set(HAVE_SDL_JOYSTICK TRUE) + endif() + if(SDL_THREADS) + set(SDL_THREAD_PS2 1) + file(GLOB PS2_THREAD_SOURCES + ${SDL2_SOURCE_DIR}/src/thread/generic/SDL_systls.c + ${SDL2_SOURCE_DIR}/src/thread/generic/SDL_sysmutex.c + ${SDL2_SOURCE_DIR}/src/thread/generic/SDL_syscond.c + ${SDL2_SOURCE_DIR}/src/thread/ps2/*.c) + list(APPEND SOURCE_FILES ${PS2_THREAD_SOURCES}) + set(HAVE_SDL_THREADS TRUE) + endif() + if(SDL_TIMERS) + set(SDL_TIMER_PS2 1) + file(GLOB PS2_TIMER_SOURCES ${SDL2_SOURCE_DIR}/src/timer/ps2/*.c) + list(APPEND SOURCE_FILES ${PS2_TIMER_SOURCES}) + set(HAVE_SDL_TIMERS TRUE) + endif() + if(SDL_VIDEO) + set(SDL_VIDEO_DRIVER_PS2 1) + set(SDL_VIDEO_RENDER_PS2 1) + file(GLOB PS2_VIDEO_SOURCES ${SDL2_SOURCE_DIR}/src/video/ps2/*.c ${SDL2_SOURCE_DIR}/src/render/ps2/*.c) + list(APPEND SOURCE_FILES ${PS2_VIDEO_SOURCES}) + set(SDL_VIDEO_OPENGL 0) + set(HAVE_SDL_VIDEO TRUE) + endif() + + list(APPEND EXTRA_LIBS + patches + gskit + dmakit + ps2_drivers + ) + +elseif(OS2) + list(APPEND EXTRA_CFLAGS "-DOS2EMX_PLAIN_CHAR") + + file(GLOB CORE_SOURCES ${SDL2_SOURCE_DIR}/src/core/os2/*.c) + list(APPEND SOURCE_FILES ${CORE_SOURCES}) + if(NOT (HAVE_ICONV AND HAVE_ICONV_H)) + file(GLOB CORE_SOURCES ${SDL2_SOURCE_DIR}/src/core/os2/geniconv/*.c) + list(APPEND SOURCE_FILES ${CORE_SOURCES}) + endif() + + if(SDL_THREADS) + set(SDL_THREAD_OS2 1) + file(GLOB OS2_THREAD_SOURCES ${SDL2_SOURCE_DIR}/src/thread/os2/*.c) + list(APPEND SOURCE_FILES ${OS2_THREAD_SOURCES}) + set(HAVE_SDL_THREADS TRUE) + endif() + + if(SDL_TIMERS) + set(SDL_TIMER_UNIX 1) + file(GLOB OS2_TIMER_SOURCES ${SDL2_SOURCE_DIR}/src/timer/os2/*.c) + list(APPEND SOURCE_FILES ${OS2_TIMER_SOURCES}) + set(HAVE_SDL_TIMERS TRUE) + endif() + + if(SDL_LOADSO) + set(SDL_LOADSO_OS2 1) + file(GLOB OS2_LOADSO_SOURCES ${SDL2_SOURCE_DIR}/src/loadso/os2/*.c) + list(APPEND SOURCE_FILES ${OS2_LOADSO_SOURCES}) + set(HAVE_SDL_LOADSO TRUE) + endif() + + if(SDL_FILESYSTEM) + set(SDL_FILESYSTEM_OS2 1) + file(GLOB FILESYSTEM_SOURCES ${SDL2_SOURCE_DIR}/src/filesystem/os2/*.c) + list(APPEND SOURCE_FILES ${FILESYSTEM_SOURCES}) + set(HAVE_SDL_FILESYSTEM TRUE) + endif() + + if(SDL_LOCALE) + file(GLOB LOCALE_SOURCES ${SDL2_SOURCE_DIR}/src/locale/unix/*.c) + list(APPEND SOURCE_FILES ${LOCALE_SOURCES}) + set(HAVE_SDL_LOCALE TRUE) + endif() + + if(SDL_VIDEO) + set(SDL_VIDEO_DRIVER_OS2 1) + file(GLOB OS2_VIDEO_SOURCES ${SDL2_SOURCE_DIR}/src/video/os2/*.c) + list(APPEND SOURCE_FILES ${OS2_VIDEO_SOURCES}) + set(HAVE_SDL_VIDEO TRUE) + endif() + + if(SDL_AUDIO) + set(SDL_AUDIO_DRIVER_OS2 1) + file(GLOB OS2_AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/os2/*.c) + list(APPEND SOURCE_FILES ${OS2_AUDIO_SOURCES}) + set(HAVE_SDL_AUDIO TRUE) + list(APPEND EXTRA_LIBS mmpm2) + endif() + + if(SDL_JOYSTICK) + set(SDL_JOYSTICK_OS2 1) + file(GLOB OS2_JOYSTICK_SOURCES ${SDL2_SOURCE_DIR}/src/joystick/os2/*.c) + list(APPEND SOURCE_FILES ${OS2_JOYSTICK_SOURCES}) + set(HAVE_SDL_JOYSTICK TRUE) + endif() + + if(SDL_HIDAPI) + CheckHIDAPI() + endif() + +elseif(N3DS) + file(GLOB N3DS_MAIN_SOURCES ${SDL2_SOURCE_DIR}/src/main/n3ds/*.c) + set(SDLMAIN_SOURCES ${SDLMAIN_SOURCES} ${N3DS_MAIN_SOURCES}) + + if(SDL_AUDIO) + set(SDL_AUDIO_DRIVER_N3DS 1) + file(GLOB N3DS_AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/n3ds/*.c) + list(APPEND SOURCE_FILES ${N3DS_AUDIO_SOURCES}) + set(HAVE_SDL_AUDIO TRUE) + endif() + + if(SDL_FILESYSTEM) + set(SDL_FILESYSTEM_N3DS 1) + file(GLOB N3DS_FILESYSTEM_SOURCES ${SDL2_SOURCE_DIR}/src/filesystem/n3ds/*.c) + list(APPEND SOURCE_FILES ${N3DS_FILESYSTEM_SOURCES}) + set(HAVE_SDL_FILESYSTEM TRUE) + endif() + + if(SDL_JOYSTICK) + set(SDL_JOYSTICK_N3DS 1) + file(GLOB N3DS_JOYSTICK_SOURCES ${SDL2_SOURCE_DIR}/src/joystick/n3ds/*.c) + list(APPEND SOURCE_FILES ${N3DS_JOYSTICK_SOURCES}) + set(HAVE_SDL_JOYSTICK TRUE) + endif() + + if(SDL_POWER) + set(SDL_POWER_N3DS 1) + file(GLOB N3DS_POWER_SOURCES ${SDL2_SOURCE_DIR}/src/power/n3ds/*.c) + list(APPEND SOURCE_FILES ${N3DS_POWER_SOURCES}) + set(HAVE_SDL_POWER TRUE) + endif() + + if(SDL_THREADS) + set(SDL_THREAD_N3DS 1) + file(GLOB N3DS_THREAD_SOURCES ${SDL2_SOURCE_DIR}/src/thread/n3ds/*.c) + list(APPEND SOURCE_FILES ${N3DS_THREAD_SOURCES} + ${SDL2_SOURCE_DIR}/src/thread/generic/SDL_systls.c + ${SDL2_SOURCE_DIR}/src/thread/generic/SDL_syscond.c) + set(HAVE_SDL_THREADS TRUE) + endif() + + if(SDL_TIMERS) + set(SDL_TIMER_N3DS 1) + file(GLOB N3DS_TIMER_SOURCES ${SDL2_SOURCE_DIR}/src/timer/n3ds/*.c) + list(APPEND SOURCE_FILES ${N3DS_TIMER_SOURCES}) + set(HAVE_SDL_TIMERS TRUE) + endif() + + if(SDL_SENSOR) + set(SDL_SENSOR_N3DS 1) + file(GLOB N3DS_SENSOR_SOURCES ${SDL2_SOURCE_DIR}/src/sensor/n3ds/*.c) + list(APPEND SOURCE_FILES ${N3DS_SENSOR_SOURCES}) + set(HAVE_SDL_SENSORS TRUE) + endif() + + if(SDL_VIDEO) + set(SDL_VIDEO_DRIVER_N3DS 1) + file(GLOB N3DS_VIDEO_SOURCES ${SDL2_SOURCE_DIR}/src/video/n3ds/*.c) + list(APPEND SOURCE_FILES ${N3DS_VIDEO_SOURCES}) + set(HAVE_SDL_VIDEO TRUE) + endif() + + if(SDL_LOCALE) + file(GLOB N3DS_LOCALE_SOURCES ${SDL2_SOURCE_DIR}/src/locale/n3ds/*.c) + list(APPEND SOURCE_FILES ${N3DS_LOCALE_SOURCES}) + set(HAVE_SDL_LOCALE TRUE) + endif() + + # Requires the n3ds file implementation + if(SDL_FILE) + file(GLOB N3DS_FILE_SOURCES ${SDL2_SOURCE_DIR}/src/file/n3ds/*.c) + list(APPEND SOURCE_FILES ${N3DS_FILE_SOURCES}) + set(HAVE_SDL_FILE TRUE) + else() + message_error("SDL_FILE must be enabled to build on N3DS") + endif() + + if(NOT SDL2_DISABLE_SDL2MAIN) + list(INSERT SDL_LIBS 0 "-lSDL2main") + endif() + + foreach(lib ${CMAKE_C_STANDARD_LIBRARIES}) + if(lib MATCHES "^-l") + string(SUBSTRING "${lib}" 2 -1 lib) + endif() + list(APPEND EXTRA_LIBS ${lib}) + endforeach() +endif() + +if(HAVE_VULKAN AND NOT SDL_LOADSO) + message(STATUS "Vulkan support is available, but disabled because there's no loadso.") + set(HAVE_VULKAN FALSE) + set(SDL_VIDEO_VULKAN 0) +endif() + +# Platform-independent options +CheckLibSampleRate() + +# Dummies +# configure.ac does it differently: +# if not have X +# if enable_X { SDL_X_DISABLED = 1 } +# [add dummy sources] +# so it always adds a dummy, without checking, if it was actually requested. +# This leads to missing internal references on building, since the +# src/X/*.c does not get included. +if(NOT HAVE_SDL_AUDIO) + set(SDL_AUDIO_DRIVER_DUMMY 1) + file(GLOB AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/dummy/*.c) + list(APPEND SOURCE_FILES ${AUDIO_SOURCES}) +endif() +if(NOT HAVE_SDL_VIDEO) + set(SDL_VIDEO_DRIVER_DUMMY 1) + file(GLOB VIDEO_SOURCES ${SDL2_SOURCE_DIR}/src/video/dummy/*.c) + list(APPEND SOURCE_FILES ${VIDEO_SOURCES}) +endif() +if(NOT HAVE_SDL_JOYSTICK) + set(SDL_JOYSTICK_DUMMY 1) + file(GLOB JOYSTICK_SOURCES ${SDL2_SOURCE_DIR}/src/joystick/dummy/*.c) + list(APPEND SOURCE_FILES ${JOYSTICK_SOURCES}) +endif() +if(NOT HAVE_SDL_HAPTIC) + set(SDL_HAPTIC_DUMMY 1) + file(GLOB HAPTIC_SOURCES ${SDL2_SOURCE_DIR}/src/haptic/dummy/*.c) + list(APPEND SOURCE_FILES ${HAPTIC_SOURCES}) +endif() +if(NOT HAVE_SDL_SENSORS) + set(SDL_SENSOR_DUMMY 1) + file(GLOB SENSORS_SOURCES ${SDL2_SOURCE_DIR}/src/sensor/dummy/*.c) + list(APPEND SOURCE_FILES ${SENSORS_SOURCES}) +endif() +if(NOT HAVE_SDL_LOADSO) + set(SDL_LOADSO_DUMMY 1) + file(GLOB LOADSO_SOURCES ${SDL2_SOURCE_DIR}/src/loadso/dummy/*.c) + list(APPEND SOURCE_FILES ${LOADSO_SOURCES}) +endif() +if(NOT HAVE_SDL_FILESYSTEM) + set(SDL_FILESYSTEM_DUMMY 1) + file(GLOB FILESYSTEM_SOURCES ${SDL2_SOURCE_DIR}/src/filesystem/dummy/*.c) + list(APPEND SOURCE_FILES ${FILESYSTEM_SOURCES}) +endif() +if(NOT HAVE_SDL_LOCALE) + set(SDL_LOCALE_DUMMY 1) + file(GLOB LOCALE_SOURCES ${SDL2_SOURCE_DIR}/src/locale/dummy/*.c) + list(APPEND SOURCE_FILES ${LOCALE_SOURCES}) +endif() +if(NOT HAVE_SDL_MISC) + set(SDL_MISC_DUMMY 1) + file(GLOB MISC_SOURCES ${SDL2_SOURCE_DIR}/src/misc/dummy/*.c) + list(APPEND SOURCE_FILES ${MISC_SOURCES}) +endif() + +# We always need to have threads and timers around +if(NOT HAVE_SDL_THREADS) + # The emscripten platform has been carefully vetted to work without threads + if (EMSCRIPTEN) + set(SDL_THREADS_DISABLED 1) + file(GLOB THREADS_SOURCES ${SDL2_SOURCE_DIR}/src/thread/generic/*.c) + list(APPEND SOURCE_FILES ${THREADS_SOURCES}) + else() + message_error("Threads are needed by many SDL subsystems and may not be disabled") + endif() +endif() +if(NOT HAVE_SDL_TIMERS) + set(SDL_TIMER_DUMMY 1) + file(GLOB TIMER_SOURCES ${SDL2_SOURCE_DIR}/src/timer/dummy/*.c) + list(APPEND SOURCE_FILES ${TIMER_SOURCES}) +endif() + +if(NOT SDLMAIN_SOURCES) + file(GLOB SDLMAIN_SOURCES ${SDL2_SOURCE_DIR}/src/main/dummy/*.c) +endif() + +if(SDL_WERROR) + if(MSVC) + cmake_push_check_state(RESET) + check_c_compiler_flag(/WX HAVE_WX) + if(HAVE_WX) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /WX") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /WX") + endif() + elseif(USE_GCC OR USE_CLANG OR USE_INTELCC) + cmake_push_check_state(RESET) + check_c_compiler_flag(-Werror HAVE_WERROR) + if(HAVE_WERROR) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror") + set(CMAKE_OBJC_FLAGS "${CMAKE_OBJC_FLAGS} -Werror") + endif() + cmake_pop_check_state() + endif() +endif() + +# Append the -MMD -MT flags +# if(DEPENDENCY_TRACKING) +# if(COMPILER_IS_GNUCC) +# set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -MMD -MT \$@") +# endif() +# endif() + +# config variables may contain generator expression, so we need to generate SDL_config.h in 2 steps: +# 1. replace all `#cmakedefine`'s and `@abc@` +configure_file("${SDL2_SOURCE_DIR}/include/SDL_config.h.cmake" + "${SDL2_BINARY_DIR}/SDL_config.h.intermediate") +# 2. Create the "include-config-${CMAKE_BUILD_TYPE}" folder (fails on older CMake versions when it does not exist) +string(TOLOWER "${CMAKE_BUILD_TYPE}" lower_build_type) +execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_CURRENT_BINARY_DIR}/include-config-${lower_build_type}") +# 3. generate SDL_config in an build_type-dependent folder (which should be first in the include search path) +file(GENERATE + OUTPUT "${SDL2_BINARY_DIR}/include-config-$>/SDL2/SDL_config.h" + INPUT "${SDL2_BINARY_DIR}/SDL_config.h.intermediate") + +# Prepare the flags and remove duplicates +if(EXTRA_LDFLAGS) + list(REMOVE_DUPLICATES EXTRA_LDFLAGS) +endif() +if(EXTRA_LIBS) + list(REMOVE_DUPLICATES EXTRA_LIBS) +endif() +if(EXTRA_CFLAGS) + list(REMOVE_DUPLICATES EXTRA_CFLAGS) +endif() +listtostr(EXTRA_CFLAGS _EXTRA_CFLAGS) +set(EXTRA_CFLAGS ${_EXTRA_CFLAGS}) + +if(USE_GCC OR USE_CLANG) + string(REGEX REPLACE "(^| )-I" "\\1 -isystem" EXTRA_CFLAGS "${EXTRA_CFLAGS}") +endif() + +# Compat helpers for the configuration files + +if(EXISTS "${PROJECT_SOURCE_DIR}/REVISION.txt") + file(READ "${PROJECT_SOURCE_DIR}/REVISION.txt" SDL_SOURCE_VERSION) + string(STRIP "${SDL_SOURCE_VERSION}" SDL_SOURCE_VERSION) +endif() + +find_package(Git) +if(Git_FOUND) + execute_process(COMMAND + "${GIT_EXECUTABLE}" describe --always --tags --long + WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}" + RESULT_VARIABLE GIT_REVISION_STATUS + OUTPUT_VARIABLE GIT_REVISION + ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) +else() + set(GIT_REVISION_STATUS 1) + set(GIT_REVISION "") +endif() + +if(SDL_SOURCE_VERSION) + set(SDL_REVISION "SDL-${SDL_SOURCE_VERSION}") +elseif(GIT_REVISION_STATUS EQUAL 0) + if(GIT_REVISION MATCHES "^[0-9a-f]+$") + # Just a truncated sha1, so prefix it with the version number + set(SDL_REVISION "SDL-${SDL_VERSION}-g${GIT_REVISION}") + else() + # e.g. release-2.24.0-542-g96361fc47 + set(SDL_REVISION "SDL-${GIT_REVISION}") + endif() +else() + set(SDL_REVISION "SDL-${SDL_VERSION}-no-vcs") +endif() + +configure_file("${SDL2_SOURCE_DIR}/include/SDL_revision.h.cmake" + "${SDL2_BINARY_DIR}/include/SDL2/SDL_revision.h") + +# Copy all non-generated headers to "${SDL2_BINARY_DIR}/include/SDL2" +# This is done to avoid the inclusion of a pre-generated SDL_config.h +file(GLOB SDL2_INCLUDE_FILES ${SDL2_SOURCE_DIR}/include/*.h) +set(SDL2_COPIED_INCLUDE_FILES) +foreach(_hdr IN LISTS SDL2_INCLUDE_FILES) + if(_hdr MATCHES ".*(SDL_config|SDL_revision).*") + list(REMOVE_ITEM SDL2_INCLUDE_FILES "${_hdr}") + else() + get_filename_component(_name "${_hdr}" NAME) + set(_bin_hdr "${SDL2_BINARY_DIR}/include/SDL2/${_name}") + list(APPEND SDL2_COPIED_INCLUDE_FILES "${_bin_hdr}") + add_custom_command(OUTPUT "${_bin_hdr}" + COMMAND ${CMAKE_COMMAND} -E copy_if_different "${_hdr}" "${_bin_hdr}" + DEPENDS "${_hdr}") + endif() +endforeach() +list(APPEND SDL_GENERATED_HEADERS ${SDL2_COPIED_INCLUDE_FILES}) + +if(CMAKE_STATIC_LIBRARY_PREFIX STREQUAL "" AND CMAKE_STATIC_LIBRARY_SUFFIX STREQUAL ".lib") + # Avoid conflict between the dll import library and the static library + set(sdl_static_libname "SDL2-static") +else() + set(sdl_static_libname "SDL2") +endif() + +# CMAKE_PREFIX_PATH and CMAKE_INSTALL_FULL_BINDIR can be a non-absolute path +# when a master-project does e.g. `set(CMAKE_INSTALL_PREFIX "libs/SDL2" CACHE PATH "prefix" FORCE)`. +if(NOT IS_ABSOLUTE "${CMAKE_INSTALL_PREFIX}") + set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_PREFIX}") +endif() +if(NOT IS_ABSOLUTE "${CMAKE_INSTALL_FULL_BINDIR}") + set(CMAKE_INSTALL_FULL_BINDIR "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_FULL_BINDIR}") +endif() +file(RELATIVE_PATH bin_prefix_relpath "${CMAKE_INSTALL_FULL_BINDIR}" "${CMAKE_INSTALL_PREFIX}") + +set(prefix ${CMAKE_INSTALL_PREFIX}) +set(exec_prefix "\${prefix}") +set(libdir "\${exec_prefix}/${CMAKE_INSTALL_LIBDIR}") +set(bindir "\${exec_prefix}/${CMAKE_INSTALL_BINDIR}") +set(includedir "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}") +if(SDL_STATIC) + set(ENABLE_STATIC_TRUE "") + set(ENABLE_STATIC_FALSE "#") +else() + set(ENABLE_STATIC_TRUE "#") + set(ENABLE_STATIC_FALSE "") +endif() +if(SDL_SHARED) + set(PKGCONFIG_LIBS_PRIV " +Libs.private:") + set(ENABLE_SHARED_TRUE "") + set(ENABLE_SHARED_FALSE "#") +else() + set(PKGCONFIG_LIBS_PRIV "") + set(ENABLE_SHARED_TRUE "#") + set(ENABLE_SHARED_FALSE "") +endif() + +# Clean up the different lists +listtostr(EXTRA_LIBS _EXTRA_LIBS "-l") +set(SDL_STATIC_LIBS ${EXTRA_LDFLAGS} ${_EXTRA_LIBS} ${PKGCONFIG_LDFLAGS}) +list(REMOVE_DUPLICATES SDL_STATIC_LIBS) +listtostr(SDL_STATIC_LIBS _SDL_STATIC_LIBS) +set(SDL_STATIC_LIBS ${_SDL_STATIC_LIBS}) +listtostr(SDL_LIBS _SDL_LIBS) +set(SDL_LIBS ${_SDL_LIBS}) +listtostr(SDL_CFLAGS _SDL_CFLAGS "") +set(SDL_CFLAGS ${_SDL_CFLAGS}) +string(REGEX REPLACE "-lSDL2( |$)" "-l${sdl_static_libname} " SDL_STATIC_LIBS "${SDL_STATIC_LIBS}") +if(NOT SDL_SHARED) + string(REGEX REPLACE "-lSDL2( |$)" "-l${sdl_static_libname} " SDL_LIBS "${SDL_LIBS}") +endif() +listtostr(PKGCONFIG_DEPENDS PKGCONFIG_DEPENDS) + +if(SDL_STATIC AND SDL_SHARED AND NOT sdl_static_libname STREQUAL "SDL2") + message(STATUS "\"pkg-config --static --libs sdl2\" will return invalid information") +endif() + +# MESSAGE(STATUS "SDL_LIBS: ${SDL_LIBS}") +# MESSAGE(STATUS "SDL_STATIC_LIBS: ${SDL_STATIC_LIBS}") + +configure_file("${SDL2_SOURCE_DIR}/sdl2.pc.in" + "${SDL2_BINARY_DIR}/sdl2.pc" @ONLY) +configure_file("${SDL2_SOURCE_DIR}/sdl2-config.in" + "${SDL2_BINARY_DIR}/sdl2-config" @ONLY) +configure_file("${SDL2_SOURCE_DIR}/SDL2.spec.in" + "${SDL2_BINARY_DIR}/SDL2.spec" @ONLY) + +macro(check_add_debug_flag FLAG SUFFIX) + check_c_compiler_flag(${FLAG} HAS_C_FLAG_${SUFFIX}) + if (HAS_C_FLAG_${SUFFIX}) + set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${FLAG}") + endif() + + if(CMAKE_CXX_COMPILER) + check_cxx_compiler_flag(${FLAG} HAS_CXX_${SUFFIX}) + if (HAS_CXX_${SUFFIX}) + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${FLAG}") + endif() + endif() +endmacro() + +macro(asan_check_add_debug_flag ASAN_FLAG) + check_add_debug_flag("-fsanitize=${ASAN_FLAG}" "${ASAN_FLAG}") + if(HAS_C_${ASAN_FLAG} OR HAS_CXX_${ASAN_FLAG}) + set(HAVE_ASAN ON) + endif() +endmacro() + +macro(asan_check_add_debug_flag2 ASAN_FLAG) + # for some sanitize flags we have to manipulate the CMAKE_REQUIRED_LIBRARIES: + # http://cmake.3232098.n2.nabble.com/CHECK-CXX-COMPILER-FLAG-doesn-t-give-correct-result-for-fsanitize-address-tp7600216p7600217.html + + set(FLAG "-fsanitize=${ASAN_FLAG}") + + set (STORED_REQLIBS ${CMAKE_REQUIRED_LIBRARIES}) + set (CMAKE_REQUIRED_LIBRARIES "${FLAG};asan") + + check_c_compiler_flag (${FLAG} HAS_C_FLAG_${ASAN_FLAG}) + if (HAS_C_FLAG_${ASAN_FLAG}) + set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${FLAG}") + endif() + + if(CMAKE_CXX_COMPILER) + check_cxx_compiler_flag (${FLAG} HAS_CXX_FLAG_${ASAN_FLAG}) + if (HAS_CXX_${ASAN_FLAG}) + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${FLAG}") + endif() + endif() + + set (CMAKE_REQUIRED_LIBRARIES ${STORED_REQLIBS}) + if(HAS_C_${ASAN_FLAG} OR HAS_CXX_${ASAN_FLAG}) + set(HAVE_ASAN ON) + endif() +endmacro() + +# enable AddressSanitizer if supported +if (SDL_ASAN) + asan_check_add_debug_flag2("address") + asan_check_add_debug_flag("bool") + asan_check_add_debug_flag("bounds") + asan_check_add_debug_flag("enum") + asan_check_add_debug_flag("float-cast-overflow") + asan_check_add_debug_flag("float-divide-by-zero") + asan_check_add_debug_flag("nonnull-attribute") + asan_check_add_debug_flag("returns-nonnull-attribute") + asan_check_add_debug_flag("signed-integer-overflow") + asan_check_add_debug_flag("undefined") + asan_check_add_debug_flag("vla-bound") + asan_check_add_debug_flag("leak") + # The object size sanitizer has no effect on unoptimized builds on Clang, + # but causes warnings. + if((NOT USE_CLANG) OR ("${CMAKE_BUILD_TYPE}" STREQUAL "")) + asan_check_add_debug_flag("object-size") + endif() +endif() + +if(SDL_CCACHE AND NOT CMAKE_VERSION VERSION_LESS 3.4) + cmake_minimum_required(VERSION 3.4...3.5) + find_program(CCACHE_BINARY ccache) + if(CCACHE_BINARY) + set(CMAKE_C_COMPILER_LAUNCHER ${CCACHE_BINARY}) + set(CMAKE_CXX_COMPILER_LAUNCHER ${CCACHE_BINARY}) + set(CMAKE_OBJC_COMPILER_LAUNCHER ${CCACHE_BINARY}) + set(HAVE_CCACHE ON) + else() + set(HAVE_CCACHE OFF) + endif() +else() + set(HAVE_CCACHE OFF) +endif() + +if(SDL_TESTS) + set(HAVE_TESTS ON) +endif() + +# Create target that collects all all generated include files. +add_custom_target(sdl_headers_copy + DEPENDS ${SDL_GENERATED_HEADERS}) + +##### Info output ##### +message(STATUS "") +message(STATUS "SDL2 was configured with the following options:") +message(STATUS "") +message(STATUS "Platform: ${CMAKE_SYSTEM}") +message(STATUS "64-bit: ${ARCH_64}") +message(STATUS "Compiler: ${CMAKE_C_COMPILER}") +message(STATUS "Revision: ${SDL_REVISION}") +message(STATUS "") +message(STATUS "Subsystems:") +foreach(_SUB ${SDL_SUBSYSTEMS}) + string(TOUPPER ${_SUB} _OPT) + message_bool_option(${_SUB} SDL_${_OPT}) +endforeach() +message(STATUS "") +message(STATUS "Options:") +list(SORT ALLOPTIONS) +foreach(_OPT ${ALLOPTIONS}) + # Get the padding + string(LENGTH ${_OPT} _OPTLEN) + math(EXPR _PADLEN "(${LONGESTOPTIONNAME} + 1) - ${_OPTLEN}") + string(RANDOM LENGTH ${_PADLEN} ALPHABET " " _PADDING) + message_tested_option(${_OPT} ${_PADDING}) +endforeach() +if("${CMAKE_BUILD_TYPE}" STREQUAL "Debug") + message(STATUS "") + message(STATUS " CMAKE_C_FLAGS_DEBUG: ${CMAKE_C_FLAGS_DEBUG}") + message(STATUS " CMAKE_CXX_FLAGS_DEBUG: ${CMAKE_CXX_FLAGS_DEBUG}") +endif() +message(STATUS "") +message(STATUS " CFLAGS: ${CMAKE_C_FLAGS}") +message(STATUS " EXTRA_CFLAGS: ${EXTRA_CFLAGS}") +message(STATUS " EXTRA_LDFLAGS: ${EXTRA_LDFLAGS} ${EXTRA_LDFLAGS_BUILD}") +message(STATUS " EXTRA_LIBS: ${EXTRA_LIBS}") +message(STATUS "") +message(STATUS " Build Shared Library: ${SDL_SHARED}") +message(STATUS " Build Static Library: ${SDL_STATIC}") +if(SDL_STATIC) + message(STATUS " Build Static Library with Position Independent Code: ${SDL_STATIC_PIC}") +endif() +message(STATUS "") +if(UNIX) + message(STATUS "If something was not detected, although the libraries") + message(STATUS "were installed, then make sure you have set the") + message(STATUS "CFLAGS and LDFLAGS environment variables correctly.") + message(STATUS "") +endif() + +if(WARN_ABOUT_ARM_SIMD_ASM_MIT) + message(STATUS "") + message(STATUS "SDL is being built with ARM SIMD optimizations, which") + message(STATUS "uses code licensed under the MIT license. If this is a") + message(STATUS "problem, please disable that code by rerunning CMake with:") + message(STATUS "") + message(STATUS " -DSDL_ARMSIMD=OFF") +endif() + +if(WARN_ABOUT_ARM_NEON_ASM_MIT) + message(STATUS "") + message(STATUS "SDL is being built with ARM NEON optimizations, which") + message(STATUS "uses code licensed under the MIT license. If this is a") + message(STATUS "problem, please disable that code by rerunning CMake with:") + message(STATUS "") + message(STATUS " -DSDL_ARMNEON=OFF") +endif() + +# Ensure that the extra cflags are used at compile time +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} ${EXTRA_CFLAGS_BUILD}") + +if(NOT WINDOWS_STORE AND NOT SDL2_DISABLE_SDL2MAIN) + # Build SDLmain + add_library(SDL2main STATIC ${SDLMAIN_SOURCES}) + add_dependencies(SDL2main sdl_headers_copy) + # alias target for in-tree builds + add_library(SDL2::SDL2main ALIAS SDL2main) + target_include_directories(SDL2main BEFORE + PRIVATE "${SDL2_BINARY_DIR}/include" + PRIVATE "${SDL2_BINARY_DIR}/include/SDL2" + PRIVATE "${SDL2_BINARY_DIR}/include-config-$>/SDL2" + ) + target_include_directories(SDL2main PUBLIC "$" $ $) + if (WIN32) + target_link_libraries(SDL2main PRIVATE shell32) + endif() + if(MINGW OR CYGWIN) + if(CMAKE_SIZEOF_VOID_P EQUAL 4) + target_link_libraries(SDL2main PUBLIC "$<$,EXECUTABLE>:-Wl,--undefined=_WinMain@16>") + else() + target_link_libraries(SDL2main PUBLIC "$<$,EXECUTABLE>:-Wl,--undefined=WinMain>") + endif() + endif() + if (NOT ANDROID) + set_target_properties(SDL2main PROPERTIES DEBUG_POSTFIX "${SDL_CMAKE_DEBUG_POSTFIX}") + endif() + set_property(TARGET SDL2main APPEND PROPERTY COMPATIBLE_INTERFACE_STRING "SDL_VERSION") + set_property(TARGET SDL2main PROPERTY INTERFACE_SDL_VERSION "SDL2") +endif() + +if(ANDROID) + target_include_directories(sdl-build-options INTERFACE "${ANDROID_NDK}/sources/android/cpufeatures") +endif() + +if(APPLE) + cmake_push_check_state(RESET) + check_c_compiler_flag(-fobjc-arc COMPILER_SUPPORTS_FOBJC_ARC) + cmake_pop_check_state() + if(NOT COMPILER_SUPPORTS_FOBJC_ARC) + message(FATAL_ERROR "Compiler does not support -fobjc-arc: this is required on Apple platforms") + endif() + target_compile_options(sdl-build-options INTERFACE "-fobjc-arc") +endif() + +if(PS2) + target_compile_options(sdl-build-options INTERFACE "-Wno-error=declaration-after-statement") +endif() + +if(APPLE) + foreach(SOURCE_FILE ${SOURCE_FILES}) + get_filename_component(FILE_EXTENSION ${SOURCE_FILE} EXT) + if(FILE_EXTENSION STREQUAL ".m") + set_property(SOURCE ${SOURCE_FILE} APPEND_STRING PROPERTY COMPILE_FLAGS " -x objective-c") + endif() + endforeach() +endif() + +if(SDL_SHARED) + add_library(SDL2 SHARED ${SOURCE_FILES} ${VERSION_SOURCES}) + add_dependencies(SDL2 sdl_headers_copy) + # alias target for in-tree builds + add_library(SDL2::SDL2 ALIAS SDL2) + set_target_properties(SDL2 PROPERTIES POSITION_INDEPENDENT_CODE TRUE) + set_target_properties(SDL2 PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS FALSE) + if(NOT SDL_LIBC) + if(SDL_CPU_X86) + # FIXME: should be added for all architectures (missing symbols for ARM) + target_link_libraries(SDL2 PRIVATE "-nodefaultlib:MSVCRT") + endif() + if(HAS_Q_NO_USE_LIBIRC) + target_compile_options(SDL2 PRIVATE /Q_no-use-libirc) + endif() + endif() + if(APPLE) + # FIXME: Remove SOVERSION in SDL3 + set_target_properties(SDL2 PROPERTIES + MACOSX_RPATH 1 + SOVERSION 0 + OUTPUT_NAME "SDL2-${LT_RELEASE}") + elseif(UNIX AND NOT ANDROID) + set_target_properties(SDL2 PROPERTIES + VERSION ${LT_VERSION} + SOVERSION ${LT_MAJOR} + OUTPUT_NAME "SDL2-${LT_RELEASE}") + else() + if(WINDOWS OR CYGWIN) + set_target_properties(SDL2 PROPERTIES + DEFINE_SYMBOL DLL_EXPORT) + elseif(OS2) + set_target_properties(SDL2 PROPERTIES + DEFINE_SYMBOL BUILD_SDL) + endif() + set_target_properties(SDL2 PROPERTIES + VERSION ${SDL_VERSION} + SOVERSION ${LT_REVISION} + OUTPUT_NAME "SDL2") + endif() + # Note: The clang toolset for Visual Studio does not support /NODEFAULTLIB. + if(MSVC AND NOT SDL_LIBC AND NOT MSVC_CLANG AND NOT SDL_CPU_ARM32) + # Don't try to link with the default set of libraries. + if(NOT WINDOWS_STORE) + set_property(TARGET SDL2 APPEND_STRING PROPERTY LINK_FLAGS " /NODEFAULTLIB") + endif() + set_property(TARGET SDL2 APPEND_STRING PROPERTY STATIC_LIBRARY_FLAGS " /NODEFAULTLIB") + endif() + # FIXME: if CMAKE_VERSION >= 3.13, use target_link_options for EXTRA_LDFLAGS + target_link_libraries(SDL2 PRIVATE ${EXTRA_LIBS} ${EXTRA_LDFLAGS} ${EXTRA_LDFLAGS_BUILD} ${CMAKE_LIBS}) + target_include_directories(SDL2 PUBLIC + "$" + "$" + "$>/SDL2>" + "$" + "$" + ) + # This picks up all the compiler options and such we've accumulated up to here. + target_link_libraries(SDL2 PRIVATE $) + if(MINGW OR CYGWIN) + if(NOT CMAKE_VERSION VERSION_LESS "3.13") + target_link_options(SDL2 PRIVATE -static-libgcc) + endif() + endif() + if(NOT ANDROID) + set_target_properties(SDL2 PROPERTIES DEBUG_POSTFIX "${SDL_CMAKE_DEBUG_POSTFIX}") + endif() + # Use `Compatible Interface Properties` to allow consumers to enforce a shared/static library + set_property(TARGET SDL2 APPEND PROPERTY COMPATIBLE_INTERFACE_BOOL SDL2_SHARED) + set_property(TARGET SDL2 PROPERTY INTERFACE_SDL2_SHARED TRUE) + set_property(TARGET SDL2 APPEND PROPERTY COMPATIBLE_INTERFACE_STRING "SDL_VERSION") + set_property(TARGET SDL2 PROPERTY INTERFACE_SDL_VERSION "SDL2") +endif() + +if(SDL_STATIC) + add_library(SDL2-static STATIC ${SOURCE_FILES}) + add_dependencies(SDL2-static sdl_headers_copy) + # alias target for in-tree builds + add_library(SDL2::SDL2-static ALIAS SDL2-static) + set_target_properties(SDL2-static PROPERTIES + OUTPUT_NAME "${sdl_static_libname}" + POSITION_INDEPENDENT_CODE "${SDL_STATIC_PIC}") + target_compile_definitions(SDL2-static PRIVATE SDL_STATIC_LIB) + # TODO: Win32 platforms keep the same suffix .lib for import and static + # libraries - do we need to consider this? + target_link_libraries(SDL2-static PRIVATE ${EXTRA_LIBS} ${EXTRA_LDFLAGS} ${CMAKE_LIBS}) + target_include_directories(SDL2-static PUBLIC + "$" + "$" + "$>/SDL2>" + "$" + "$" + ) + # This picks up all the compiler options and such we've accumulated up to here. + target_link_libraries(SDL2-static PRIVATE $) + if(NOT ANDROID) + set_target_properties(SDL2-static PROPERTIES DEBUG_POSTFIX "${SDL_CMAKE_DEBUG_POSTFIX}") + endif() + # Use `Compatible Interface Properties` to allow consumers to enforce a shared/static library + set_property(TARGET SDL2-static APPEND PROPERTY COMPATIBLE_INTERFACE_BOOL SDL2_SHARED) + set_property(TARGET SDL2-static PROPERTY INTERFACE_SDL2_SHARED FALSE) + set_property(TARGET SDL2-static APPEND PROPERTY COMPATIBLE_INTERFACE_STRING "SDL_VERSION") + set_property(TARGET SDL2-static PROPERTY INTERFACE_SDL_VERSION "SDL2") +endif() + +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DSDL_BUILD_MAJOR_VERSION=${SDL_MAJOR_VERSION}") +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DSDL_BUILD_MINOR_VERSION=${SDL_MINOR_VERSION}") +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DSDL_BUILD_MICRO_VERSION=${SDL_MICRO_VERSION}") + +##### Tests ##### + +if(SDL_TEST) + file(GLOB TEST_SOURCES ${SDL2_SOURCE_DIR}/src/test/*.c) + add_library(SDL2_test STATIC ${TEST_SOURCES}) + add_dependencies(SDL2_test sdl_headers_copy) + add_library(SDL2::SDL2test ALIAS SDL2_test) + set_target_properties(SDL2_test PROPERTIES + EXPORT_NAME SDL2test) + target_include_directories(SDL2_test PUBLIC + "$" + "$" + "$>/SDL2>" + "$" + "$") + target_link_libraries(SDL2_test PRIVATE ${EXTRA_TEST_LIBS}) + target_include_directories(SDL2_test PRIVATE ${EXTRA_TEST_INCLUDES}) + set_property(TARGET SDL2_test APPEND PROPERTY COMPATIBLE_INTERFACE_STRING "SDL_VERSION") + set_property(TARGET SDL2_test PROPERTY INTERFACE_SDL_VERSION "SDL2") +endif() + +if(MSVC AND NOT SDL_LIBC) + set(targets ) + if(TARGET SDL2) + list(APPEND targets SDL2) + endif() + if(TARGET SDL2-static) + list(APPEND targets SDL2-static) + endif() + if(TARGET SDL2_test) + list(APPEND targets SDL2_test) + endif() + set_property(TARGET ${targets} APPEND PROPERTY COMPILE_OPTIONS "/GS-;/Gs1048576") + if(NOT ARCH_64 AND NOT CMAKE_GENERATOR_PLATFORM STREQUAL "ARM") + set_property(TARGET ${targets} APPEND PROPERTY COMPILE_OPTIONS "/arch:SSE") + endif() +endif() + +##### Installation targets ##### +if(NOT SDL2_DISABLE_INSTALL) + if(SDL_SHARED) + install(TARGETS SDL2 EXPORT SDL2Targets + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") + if(MSVC) + SDL_install_pdb(SDL2 "${CMAKE_INSTALL_BINDIR}") + endif() + endif() + + if(NOT WINDOWS_STORE AND NOT SDL2_DISABLE_SDL2MAIN) + install(TARGETS SDL2main EXPORT SDL2mainTargets + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") + if(MSVC) + SDL_install_pdb(SDL2main "${CMAKE_INSTALL_LIBDIR}") + endif() + endif() + + if(SDL_STATIC) + install(TARGETS SDL2-static EXPORT SDL2staticTargets + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") + if(MSVC) + SDL_install_pdb(SDL2-static "${CMAKE_INSTALL_LIBDIR}") + endif() + endif() + + if(SDL_TEST) + install(TARGETS SDL2_test EXPORT SDL2testTargets + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") + if(MSVC) + SDL_install_pdb(SDL2_test "${CMAKE_INSTALL_LIBDIR}") + endif() + endif() + + ##### Export files ##### + if (WINDOWS AND NOT MINGW) + set(SDL_INSTALL_CMAKEDIR_DEFAULT "cmake") + set(LICENSES_PREFIX "licenses/SDL2") + else () + set(SDL_INSTALL_CMAKEDIR_DEFAULT "${CMAKE_INSTALL_LIBDIR}/cmake/SDL2") + set(LICENSES_PREFIX "${CMAKE_INSTALL_DATAROOTDIR}/licenses/${PROJECT_NAME}") + endif () + set(SDL_INSTALL_CMAKEDIR "${SDL_INSTALL_CMAKEDIR_DEFAULT}" CACHE STRING "Location where to install SDL2Config.cmake") + + include(CMakePackageConfigHelpers) + configure_package_config_file(SDL2Config.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/SDL2Config.cmake" + PATH_VARS CMAKE_INSTALL_PREFIX CMAKE_INSTALL_FULL_BINDIR CMAKE_INSTALL_FULL_INCLUDEDIR CMAKE_INSTALL_FULL_LIBDIR + INSTALL_DESTINATION "${SDL_INSTALL_CMAKEDIR}" + ) + write_basic_package_version_file("${CMAKE_CURRENT_BINARY_DIR}/SDL2ConfigVersion.cmake" + VERSION ${SDL_VERSION} + COMPATIBILITY AnyNewerVersion + ) + + if(SDL_SHARED) + install(EXPORT SDL2Targets + FILE SDL2Targets.cmake + NAMESPACE SDL2:: + DESTINATION "${SDL_INSTALL_CMAKEDIR}" + ) + if(ANDROID AND NOT CMAKE_VERSION VERSION_LESS 3.7) + install(EXPORT_ANDROID_MK SDL2Targets + DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/ndk-modules/SDL2") + endif() + endif() + + if(NOT WINDOWS_STORE AND NOT SDL2_DISABLE_SDL2MAIN) + install(EXPORT SDL2mainTargets + FILE SDL2mainTargets.cmake + NAMESPACE SDL2:: + DESTINATION "${SDL_INSTALL_CMAKEDIR}" + ) + if(ANDROID AND NOT CMAKE_VERSION VERSION_LESS 3.7) + install(EXPORT_ANDROID_MK SDL2mainTargets + DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/ndk-modules/SDL2main") + endif() + endif() + + if(SDL_STATIC) + install(EXPORT SDL2staticTargets + FILE SDL2staticTargets.cmake + NAMESPACE SDL2:: + DESTINATION "${SDL_INSTALL_CMAKEDIR}" + ) + if(ANDROID AND NOT CMAKE_VERSION VERSION_LESS 3.7) + install(EXPORT_ANDROID_MK SDL2staticTargets + DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/ndk-modules/SDL2-static") + endif() + endif() + + if(SDL_TEST) + install(EXPORT SDL2testTargets + FILE SDL2testTargets.cmake + NAMESPACE SDL2:: + DESTINATION "${SDL_INSTALL_CMAKEDIR}" + ) + if(ANDROID AND NOT CMAKE_VERSION VERSION_LESS 3.7) + install(EXPORT_ANDROID_MK SDL2testTargets + DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/ndk-modules/SDL2test") + endif() + endif() + + install( + FILES + ${CMAKE_CURRENT_BINARY_DIR}/SDL2Config.cmake + ${CMAKE_CURRENT_BINARY_DIR}/SDL2ConfigVersion.cmake + ${SDL2_SOURCE_DIR}/cmake/sdlfind.cmake + DESTINATION "${SDL_INSTALL_CMAKEDIR}" + COMPONENT Devel + ) + + install( + FILES + ${SDL2_INCLUDE_FILES} + "${SDL2_BINARY_DIR}/include/SDL2/SDL_revision.h" + "${SDL2_BINARY_DIR}/include-config-$>/SDL2/SDL_config.h" + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/SDL2) + + string(TOUPPER "${CMAKE_BUILD_TYPE}" UPPER_BUILD_TYPE) + if (UPPER_BUILD_TYPE MATCHES DEBUG) + set(SOPOSTFIX "${SDL_CMAKE_DEBUG_POSTFIX}") + else() + set(SOPOSTFIX "") + endif() + + install(FILES "LICENSE.txt" DESTINATION "${LICENSES_PREFIX}") + if(FREEBSD) + # FreeBSD uses ${PREFIX}/libdata/pkgconfig + install(FILES ${SDL2_BINARY_DIR}/sdl2.pc DESTINATION "libdata/pkgconfig") + else() + install(FILES ${SDL2_BINARY_DIR}/sdl2.pc + DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") + endif() + if(NOT (WINDOWS OR CYGWIN) OR MINGW) + if(SDL_SHARED) + set(SOEXT ${CMAKE_SHARED_LIBRARY_SUFFIX}) # ".so", ".dylib", etc. + get_target_property(SONAME SDL2 OUTPUT_NAME) + if(NOT ANDROID AND NOT MINGW AND NOT OS2) + install(CODE " + execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink + \"lib${SONAME}${SOPOSTFIX}${SOEXT}\" \"libSDL2${SOPOSTFIX}${SOEXT}\" + WORKING_DIRECTORY \"${SDL2_BINARY_DIR}\")") + install(FILES ${SDL2_BINARY_DIR}/libSDL2${SOPOSTFIX}${SOEXT} DESTINATION "${CMAKE_INSTALL_LIBDIR}") + endif() + endif() + install(PROGRAMS ${SDL2_BINARY_DIR}/sdl2-config DESTINATION "${CMAKE_INSTALL_BINDIR}") + # TODO: what about the .spec file? Is it only needed for RPM creation? + install(FILES "${SDL2_SOURCE_DIR}/sdl2.m4" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/aclocal") + endif() +endif() + +##### Uninstall target ##### + +if(NOT SDL2_DISABLE_UNINSTALL) + if(NOT TARGET uninstall) + configure_file( + "${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" + IMMEDIATE @ONLY) + + add_custom_target(uninstall + COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake) + endif() +endif() + +##### Tests subproject (must appear after the install/uninstall targets) ##### + +if(SDL_TESTS) + set(HAVE_TESTS ON) + enable_testing() + add_subdirectory(test) +endif() + +##### Fix Objective C builds ##### +set(CMAKE_OBJC_FLAGS "${CMAKE_OBJC_FLAGS} ${CMAKE_C_FLAGS}") + +# Make sure SDL2::SDL2 always exists +if(TARGET SDL2::SDL2-static AND NOT TARGET SDL2::SDL2) + add_library(SDL2::SDL2 ALIAS SDL2-static) +endif() diff --git a/engine/lib/sdl/CREDITS.txt b/engine/lib/sdl/CREDITS.txt new file mode 100644 index 000000000..7e4086712 --- /dev/null +++ b/engine/lib/sdl/CREDITS.txt @@ -0,0 +1,53 @@ + +Simple DirectMedia Layer CREDITS +Thanks to everyone who made this possible, including: + +* Cliff Matthews, for giving me a reason to start this project. :) + -- Executor rocks! *grin* + +* Ryan Gordon for helping everybody out and keeping the dream alive. :) + +* Gabriel Jacobo for his work on the Android port and generally helping out all around. + +* Philipp Wiesemann for his attention to detail reviewing the entire SDL code base and proposes patches. + +* Andreas Schiffler for his dedication to unit tests, Visual Studio projects, and managing the Google Summer of Code. + +* Mike Sartain for incorporating SDL into Team Fortress 2 and cheering me on at Valve. + +* Alfred Reynolds for the game controller API and general (in)sanity + +* Jørgen Tjernø for numerous magical Mac OS X fixes. + +* Pierre-Loup Griffais for his deep knowledge of OpenGL drivers. + +* Julian Winter for the SDL 2.0 website. + +* Sheena Smith for many months of great work on the SDL wiki creating the API documentation and style guides. + +* Paul Hunkin for his port of SDL to Android during the Google Summer of Code 2010. + +* Eli Gottlieb for his work on shaped windows during the Google Summer of Code 2010. + +* Jim Grandpre for his work on multi-touch and gesture recognition during + the Google Summer of Code 2010. + +* Edgar "bobbens" Simo for his force feedback API development during the + Google Summer of Code 2008. + +* Aaron Wishnick for his work on audio resampling and pitch shifting during + the Google Summer of Code 2008. + +* Holmes Futrell for his port of SDL to the iPhone and iPod Touch during the + Google Summer of Code 2008. + +* Jon Atkins for SDL_image, SDL_mixer and SDL_net documentation. + +* Everybody at Loki Software, Inc. for their great contributions! + + And a big hand to everyone else who has contributed over the years. + +THANKS! :) + + -- Sam Lantinga + diff --git a/engine/lib/sdl/INSTALL.txt b/engine/lib/sdl/INSTALL.txt new file mode 100644 index 000000000..5856e2875 --- /dev/null +++ b/engine/lib/sdl/INSTALL.txt @@ -0,0 +1,41 @@ + +To compile and install SDL: + + 1. Windows with Visual Studio: + * Read ./docs/README-visualc.md + + Windows with gcc, either native or cross-compiling: + * Read the FAQ at https://wiki.libsdl.org/FAQWindows + * Run './configure; make; make install' + + macOS with Xcode: + * Read docs/README-macosx.md + + macOS from the command line: + * Run './configure; make; make install' + + Linux and other UNIX systems: + * Run './configure; make; make install' + + Android: + * Read docs/README-android.md + + iOS: + * Read docs/README-ios.md + + Using Cmake: + * Read docs/README-cmake.md + + 2. Look at the example programs in ./test, and check out the online + documentation at https://wiki.libsdl.org/ + + 3. Join the SDL developer discussions, sign up on + https://discourse.libsdl.org/ + and go to the development forum + https://discourse.libsdl.org/c/sdl-development/6 + + 4. Sign up for the announcement list through the web interface: + https://www.libsdl.org/mailing-list.php + +That's it! +Sam Lantinga diff --git a/engine/lib/sdl/LICENSE.txt b/engine/lib/sdl/LICENSE.txt new file mode 100644 index 000000000..23abb73f2 --- /dev/null +++ b/engine/lib/sdl/LICENSE.txt @@ -0,0 +1,18 @@ +Copyright (C) 1997-2025 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. + diff --git a/engine/lib/sdl/Makefile.in b/engine/lib/sdl/Makefile.in new file mode 100644 index 000000000..27e0bbbf3 --- /dev/null +++ b/engine/lib/sdl/Makefile.in @@ -0,0 +1,263 @@ +# Makefile to build and install the SDL library + +top_builddir = . +srcdir = @srcdir@ +objects = build +gen = gen +prefix = @prefix@ +exec_prefix = @exec_prefix@ +bindir = @bindir@ +libdir = @libdir@ +includedir = @includedir@ +datarootdir = @datarootdir@ +datadir = @datadir@ +auxdir = @ac_aux_dir@ +distpath = $(srcdir)/.. +distdir = SDL2-@SDL_VERSION@ +distfile = $(distdir).tar.gz + +@SET_MAKE@ +SHELL = @SHELL@ +CC = @CC@ +CXX = @CXX@ +INCLUDE = @INCLUDE@ +CFLAGS = @BUILD_CFLAGS@ +EXTRA_CFLAGS = @EXTRA_CFLAGS@ +LDFLAGS = @BUILD_LDFLAGS@ +EXTRA_LDFLAGS = @EXTRA_LDFLAGS@ +LIBTOOL = @LIBTOOL@ +INSTALL = @INSTALL@ +FGREP = @FGREP@ +AR = @AR@ +RANLIB = @RANLIB@ +RC = @RC@ +LINKER = @LINKER@ +LIBTOOLLINKERTAG = @LIBTOOLLINKERTAG@ +SDL_VENDOR_INFO = @SDL_VENDOR_INFO@ + +TARGET = libSDL2.la +OBJECTS = @OBJECTS@ +GEN_HEADERS = @GEN_HEADERS@ +GEN_OBJECTS = @GEN_OBJECTS@ +VERSION_OBJECTS = @VERSION_OBJECTS@ + +SDLMAIN_TARGET = libSDL2main.la +SDLMAIN_OBJECTS = @SDLMAIN_OBJECTS@ + +SDLTEST_TARGET = libSDL2_test.la +SDLTEST_OBJECTS = @SDLTEST_OBJECTS@ + +WAYLAND_SCANNER = @WAYLAND_SCANNER@ +WAYLAND_SCANNER_CODE_MODE = @WAYLAND_SCANNER_CODE_MODE@ + +INSTALL_SDL2_CONFIG = @INSTALL_SDL2_CONFIG@ + +SRC_DIST = *.md *.txt acinclude Android.mk autogen.sh android-project build-scripts cmake cmake_uninstall.cmake.in configure configure.ac docs include Makefile.* mingw sdl2-config.cmake.in sdl2-config-version.cmake.in sdl2-config.in sdl2.m4 sdl2.pc.in SDL2.spec.in SDL2Config.cmake.in src test VisualC VisualC-GDK VisualC-WinRT Xcode Xcode-iOS wayland-protocols +GEN_DIST = SDL2.spec + +ifneq ($V,1) +RUN_CMD_AR = @echo " AR " $@; +RUN_CMD_CC = @echo " CC " $@; +RUN_CMD_CXX = @echo " CXX " $@; +RUN_CMD_LTLINK = @echo " LTLINK" $@; +RUN_CMD_RANLIB = @echo " RANLIB" $@; +RUN_CMD_RC = @echo " RC " $@; +RUN_CMD_GEN = @echo " GEN " $@; +LIBTOOL += --quiet +endif + +HDRS = \ + SDL.h \ + SDL_assert.h \ + SDL_atomic.h \ + SDL_audio.h \ + SDL_bits.h \ + SDL_blendmode.h \ + SDL_clipboard.h \ + SDL_cpuinfo.h \ + SDL_egl.h \ + SDL_endian.h \ + SDL_error.h \ + SDL_events.h \ + SDL_filesystem.h \ + SDL_gamecontroller.h \ + SDL_gesture.h \ + SDL_guid.h \ + SDL_haptic.h \ + SDL_hidapi.h \ + SDL_hints.h \ + SDL_joystick.h \ + SDL_keyboard.h \ + SDL_keycode.h \ + SDL_loadso.h \ + SDL_locale.h \ + SDL_log.h \ + SDL_main.h \ + SDL_messagebox.h \ + SDL_metal.h \ + SDL_misc.h \ + SDL_mouse.h \ + SDL_mutex.h \ + SDL_name.h \ + SDL_opengl.h \ + SDL_opengl_glext.h \ + SDL_opengles.h \ + SDL_opengles2_gl2ext.h \ + SDL_opengles2_gl2.h \ + SDL_opengles2_gl2platform.h \ + SDL_opengles2.h \ + SDL_opengles2_khrplatform.h \ + SDL_pixels.h \ + SDL_platform.h \ + SDL_power.h \ + SDL_quit.h \ + SDL_rect.h \ + SDL_render.h \ + SDL_rwops.h \ + SDL_scancode.h \ + SDL_sensor.h \ + SDL_shape.h \ + SDL_stdinc.h \ + SDL_surface.h \ + SDL_system.h \ + SDL_syswm.h \ + SDL_thread.h \ + SDL_timer.h \ + SDL_touch.h \ + SDL_types.h \ + SDL_version.h \ + SDL_video.h \ + SDL_vulkan.h \ + begin_code.h \ + close_code.h + +SDLTEST_HDRS = $(shell ls $(srcdir)/include | $(FGREP) SDL_test) + +LT_AGE = @LT_AGE@ +LT_CURRENT = @LT_CURRENT@ +LT_RELEASE = @LT_RELEASE@ +LT_REVISION = @LT_REVISION@ +LT_LDFLAGS = -no-undefined -rpath $(libdir) -release $(LT_RELEASE) -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) + +all: $(srcdir)/configure Makefile $(objects)/$(TARGET) $(objects)/$(SDLMAIN_TARGET) $(objects)/$(SDLTEST_TARGET) + +$(srcdir)/configure: $(srcdir)/configure.ac + @echo "Warning, configure is out of date, please re-run autogen.sh" + +Makefile: $(srcdir)/Makefile.in + $(SHELL) config.status $@ + +Makefile.in:; + +$(objects)/.created: + $(SHELL) $(auxdir)/mkinstalldirs $(objects) + touch $@ + +update-revision: + $(SHELL) $(auxdir)/updaterev.sh --vendor "$(SDL_VENDOR_INFO)" + +.PHONY: all update-revision install install-bin install-hdrs install-lib install-data uninstall uninstall-bin uninstall-hdrs uninstall-lib uninstall-data clean distclean dist $(OBJECTS:.lo=.d) + +$(objects)/$(TARGET): $(GEN_HEADERS) $(GEN_OBJECTS) $(OBJECTS) $(VERSION_OBJECTS) + $(RUN_CMD_LTLINK)$(LIBTOOL) --tag=$(LIBTOOLLINKERTAG) --mode=link $(LINKER) -o $@ $(OBJECTS) $(GEN_OBJECTS) $(VERSION_OBJECTS) $(LDFLAGS) $(EXTRA_LDFLAGS) $(LT_LDFLAGS) + +$(objects)/$(SDLMAIN_TARGET): $(SDLMAIN_OBJECTS) + $(RUN_CMD_LTLINK)$(LIBTOOL) --tag=$(LIBTOOLLINKERTAG) --mode=link $(LINKER) -static -o $@ $(SDLMAIN_OBJECTS) -rpath $(libdir) + +$(objects)/$(SDLTEST_TARGET): $(SDLTEST_OBJECTS) + $(RUN_CMD_LTLINK)$(LIBTOOL) --tag=$(LIBTOOLLINKERTAG) --mode=link $(LINKER) -static -o $@ $(SDLTEST_OBJECTS) -rpath $(libdir) + +install: all install-bin install-hdrs install-lib install-data +install-bin: +ifeq ($(INSTALL_SDL2_CONFIG),TRUE) + $(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(bindir) + $(INSTALL) -m 755 sdl2-config $(DESTDIR)$(bindir)/sdl2-config +endif + +install-hdrs: update-revision + $(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(includedir)/SDL2 + for file in $(HDRS) $(SDLTEST_HDRS); do \ + $(INSTALL) -m 644 $(srcdir)/include/$$file $(DESTDIR)$(includedir)/SDL2/$$file; \ + done + $(INSTALL) -m 644 include/SDL_config.h $(DESTDIR)$(includedir)/SDL2/SDL_config.h + if test -f include/SDL_revision.h; then \ + $(INSTALL) -m 644 include/SDL_revision.h $(DESTDIR)$(includedir)/SDL2/SDL_revision.h; \ + else \ + $(INSTALL) -m 644 $(srcdir)/include/SDL_revision.h $(DESTDIR)$(includedir)/SDL2/SDL_revision.h; \ + fi + +install-lib: $(objects)/$(TARGET) $(objects)/$(SDLMAIN_TARGET) $(objects)/$(SDLTEST_TARGET) + $(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(libdir) + $(LIBTOOL) --mode=install $(INSTALL) $(objects)/$(TARGET) $(DESTDIR)$(libdir)/$(TARGET) + $(LIBTOOL) --mode=install $(INSTALL) $(objects)/$(SDLMAIN_TARGET) $(DESTDIR)$(libdir)/$(SDLMAIN_TARGET) + $(LIBTOOL) --mode=install $(INSTALL) $(objects)/$(SDLTEST_TARGET) $(DESTDIR)$(libdir)/$(SDLTEST_TARGET) +install-data: + $(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(datadir)/aclocal + $(INSTALL) -m 644 $(srcdir)/sdl2.m4 $(DESTDIR)$(datadir)/aclocal/sdl2.m4 + $(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(libdir)/pkgconfig + $(INSTALL) -m 644 sdl2.pc $(DESTDIR)$(libdir)/pkgconfig +ifeq ($(INSTALL_SDL2_CONFIG),TRUE) + $(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(libdir)/cmake/SDL2 + $(INSTALL) -m 644 sdl2-config.cmake $(DESTDIR)$(libdir)/cmake/SDL2 + $(INSTALL) -m 644 sdl2-config-version.cmake $(DESTDIR)$(libdir)/cmake/SDL2 +endif + +uninstall: uninstall-bin uninstall-hdrs uninstall-lib uninstall-data +uninstall-bin: + rm -f $(DESTDIR)$(bindir)/sdl2-config +uninstall-hdrs: + for file in $(HDRS) $(SDLTEST_HDRS); do \ + rm -f $(DESTDIR)$(includedir)/SDL2/$$file; \ + done + rm -f $(DESTDIR)$(includedir)/SDL2/SDL_config.h + rm -f $(DESTDIR)$(includedir)/SDL2/SDL_revision.h + -rmdir $(DESTDIR)$(includedir)/SDL2 +uninstall-lib: + $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$(TARGET) + rm -f $(DESTDIR)$(libdir)/$(SDLMAIN_TARGET) + rm -f $(DESTDIR)$(libdir)/$(SDLTEST_TARGET) +uninstall-data: + rm -f $(DESTDIR)$(datadir)/aclocal/sdl2.m4 + rm -f $(DESTDIR)$(libdir)/pkgconfig/sdl2.pc + rm -f $(DESTDIR)$(libdir)/cmake/SDL2/sdl2-config.cmake + rm -f $(DESTDIR)$(libdir)/cmake/SDL2/sdl2-config-version.cmake + +clean: + rm -rf $(objects) + rm -rf $(gen) + if test -f test/Makefile; then (cd test; $(MAKE) $@); fi + +distclean: clean + rm -f Makefile Makefile.rules sdl2-config + rm -f config.status config.cache config.log libtool + rm -rf $(srcdir)/autom4te* + find $(srcdir) \( \ + -name '*~' -o \ + -name '*.bak' -o \ + -name '*.old' -o \ + -name '*.rej' -o \ + -name '*.orig' -o \ + -name '.#*' \) \ + -exec rm -f {} \; + if test -f test/Makefile; then (cd test; $(MAKE) $@); fi + +dist $(distfile): + $(SHELL) $(auxdir)/mkinstalldirs $(distdir) + (cd $(srcdir); tar cf - $(SRC_DIST)) | (cd $(distdir); tar xf -) + tar cf - $(GEN_DIST) | (cd $(distdir); tar xf -) + find $(distdir) \( \ + -name '*~' -o \ + -name '*.bak' -o \ + -name '*.old' -o \ + -name '*.rej' -o \ + -name '*.orig' -o \ + -name '.#*' \) \ + -exec rm -f {} \; + if test -f $(distdir)/test/Makefile; then (cd $(distdir)/test && make distclean); fi + # Intentionally no vendor suffix: that's a property of the build, not the source + (cd $(distdir); $(srcdir)/build-scripts/updaterev.sh --dist) + tar cvf - $(distdir) | gzip --best >$(distfile) + rm -rf $(distdir) + +rpm: $(distfile) + rpmbuild -ta $? diff --git a/engine/lib/sdl/Makefile.minimal b/engine/lib/sdl/Makefile.minimal new file mode 100644 index 000000000..f9c4b53cb --- /dev/null +++ b/engine/lib/sdl/Makefile.minimal @@ -0,0 +1,61 @@ +# Makefile to build the SDL library + +CPPFLAGS = -I./include +CFLAGS = -g -O2 +AR = ar +RANLIB = ranlib + +TARGET = libSDL2.a +TESTTARGET = libSDL2_test.a + +SOURCES = \ + src/*.c \ + src/atomic/*.c \ + src/audio/*.c \ + src/audio/dummy/*.c \ + src/cpuinfo/*.c \ + src/events/*.c \ + src/file/*.c \ + src/haptic/*.c \ + src/haptic/dummy/*.c \ + src/hidapi/*.c \ + src/joystick/*.c \ + src/joystick/dummy/*.c \ + src/loadso/dummy/*.c \ + src/power/*.c \ + src/filesystem/dummy/*.c \ + src/locale/*.c \ + src/locale/dummy/*.c \ + src/misc/*.c \ + src/misc/dummy/*.c \ + src/render/*.c \ + src/render/software/*.c \ + src/sensor/*.c \ + src/sensor/dummy/*.c \ + src/stdlib/*.c \ + src/libm/*.c \ + src/thread/*.c \ + src/thread/generic/*.c \ + src/timer/*.c \ + src/timer/dummy/*.c \ + src/video/*.c \ + src/video/yuv2rgb/*.c \ + src/video/dummy/*.c \ + +TSOURCES = src/test/*.c + +OBJECTS = $(shell echo $(SOURCES) | sed -e 's,\.c,\.o,g') +TOBJECTS= $(shell echo $(TSOURCES) | sed -e 's,\.c,\.o,g') + +all: $(TARGET) $(TESTTARGET) + +$(TARGET): $(OBJECTS) + $(AR) crv $@ $^ + $(RANLIB) $@ + +$(TESTTARGET): $(TOBJECTS) + $(AR) crv $@ $^ + $(RANLIB) $@ + +clean: + rm -f $(TARGET) $(TESTTARGET) $(OBJECTS) $(TOBJECTS) diff --git a/engine/lib/sdl/Makefile.os2 b/engine/lib/sdl/Makefile.os2 new file mode 100644 index 000000000..8e98aae30 --- /dev/null +++ b/engine/lib/sdl/Makefile.os2 @@ -0,0 +1,298 @@ +# Open Watcom makefile to build SDL2.dll for OS/2: +# wmake -f Makefile.os2 +# +# If you have GNU libiconv installed (iconv2.dll), you +# can compile against it by specifying LIBICONV=1, e.g.: +# wmake -f Makefile.os2 LIBICONV=1 +# +# If you have libusb-1.0 installed (usb100.dll, libusb.h), you +# can compile hidapi joystick support against it (experimental) +# by specifying HIDAPI=1, e.g.: +# wmake -f Makefile.os2 HIDAPI=1 +# +# To error out upon warnings: wmake -f Makefile.os2 ENABLE_WERROR=1 + +LIBNAME = SDL2 +MAJOR_VERSION = 2 +MINOR_VERSION = 32 +MICRO_VERSION = 10 +VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(MICRO_VERSION) +DESCRIPTION = Simple DirectMedia Layer 2 + +LIBICONV=0 +ICONVLIB=$(LIBICONV_LIB) + +LIBHOME = . +DLLFILE = $(LIBHOME)/$(LIBNAME).dll +LIBFILE = $(LIBHOME)/$(LIBNAME).lib +LNKFILE = $(LIBNAME).lnk + +INCPATH = -I"$(%WATCOM)/h/os2" -I"$(%WATCOM)/h" +INCPATH+= -Iinclude + +LIBM = SDL2libm.lib +TLIB = SDL2test.lib +LIBS = mmpm2.lib $(LIBM) +CFLAGS = -bt=os2 -d0 -q -bm -5s -fp5 -fpi87 -sg -oeatxhn -ei +# Debug options: +# - debug messages from OS/2 related code to stdout: +#CFLAGS+= -DOS2DEBUG +# - debug messages from OS/2 code via SDL_LogDebug(): +#CFLAGS+= -DOS2DEBUG=2 + +# max warnings: +CFLAGS+= -wx +!ifeq ENABLE_WERROR 1 +CFLAGS+= -we +!endif +# newer OpenWatcom versions enable W303 by default +CFLAGS+= -wcd=303 +# the include paths : +CFLAGS+= $(INCPATH) +CFLAGS_STATIC=$(CFLAGS) +# building dll: +CFLAGS_DLL =$(CFLAGS) +CFLAGS_DLL+= -bd +# iconv: +LIBICONV_LIB=iconv2.lib +!ifeq LIBICONV 1 +CFLAGS_DLL+= -DHAVE_ICONV=1 -DHAVE_ICONV_H=1 -DSDL_USE_LIBICONV +LIBS+= $(ICONVLIB) +!else +LIBS+= libuls.lib libconv.lib +!endif +# hidapi (libusb): +!ifeq HIDAPI 1 +CFLAGS_DLL+= -DHAVE_LIBUSB_H=1 +!endif +# building SDL itself (for DECLSPEC): +CFLAGS_DLL+= -DBUILD_SDL + +CFLAGS_DLL+= -DSDL_BUILD_MAJOR_VERSION=$(MAJOR_VERSION) +CFLAGS_DLL+= -DSDL_BUILD_MINOR_VERSION=$(MINOR_VERSION) +CFLAGS_DLL+= -DSDL_BUILD_MICRO_VERSION=$(MICRO_VERSION) + +SRCS = SDL.c SDL_assert.c SDL_error.c SDL_guid.c SDL_log.c SDL_dataqueue.c SDL_hints.c SDL_list.c SDL_utils.c +SRCS+= SDL_getenv.c SDL_iconv.c SDL_malloc.c SDL_qsort.c SDL_stdlib.c SDL_string.c SDL_strtokr.c SDL_crc16.c SDL_crc32.c +SRCS+= SDL_cpuinfo.c SDL_atomic.c SDL_spinlock.c SDL_thread.c SDL_timer.c +SRCS+= SDL_rwops.c SDL_power.c +SRCS+= SDL_audio.c SDL_audiocvt.c SDL_audiodev.c SDL_audiotypecvt.c SDL_mixer.c SDL_wave.c +SRCS+= SDL_events.c SDL_quit.c SDL_keyboard.c SDL_mouse.c SDL_windowevents.c & + SDL_clipboardevents.c SDL_dropevents.c SDL_displayevents.c SDL_gesture.c & + SDL_sensor.c SDL_touch.c +SRCS+= SDL_haptic.c SDL_hidapi.c SDL_gamecontroller.c SDL_joystick.c controller_type.c +SRCS+= SDL_render.c yuv_rgb_sse.c yuv_rgb_std.c SDL_yuv.c SDL_yuv_sw.c SDL_blendfillrect.c & + SDL_blendline.c SDL_blendpoint.c SDL_drawline.c SDL_drawpoint.c & + SDL_render_sw.c SDL_rotate.c SDL_triangle.c +SRCS+= SDL_blit.c SDL_blit_0.c SDL_blit_1.c SDL_blit_A.c SDL_blit_auto.c & + SDL_blit_copy.c SDL_blit_N.c SDL_blit_slow.c SDL_fillrect.c SDL_bmp.c & + SDL_pixels.c SDL_rect.c SDL_RLEaccel.c SDL_shape.c SDL_stretch.c & + SDL_surface.c SDL_video.c SDL_clipboard.c SDL_vulkan_utils.c SDL_egl.c + +SRCS+= SDL_syscond.c SDL_sysmutex.c SDL_syssem.c SDL_systhread.c SDL_systls.c +SRCS+= SDL_systimer.c +SRCS+= SDL_sysloadso.c +SRCS+= SDL_sysfilesystem.c +SRCS+= SDL_os2joystick.c SDL_syshaptic.c SDL_sysjoystick.c SDL_virtualjoystick.c +SRCS+= SDL_hidapijoystick.c SDL_hidapi_rumble.c SDL_hidapi_combined.c SDL_hidapi_gamecube.c SDL_hidapi_luna.c SDL_hidapi_ps3.c SDL_hidapi_ps4.c SDL_hidapi_ps5.c SDL_hidapi_shield.c SDL_hidapi_stadia.c SDL_hidapi_switch.c SDL_hidapi_wii.c SDL_hidapi_xbox360.c SDL_hidapi_xbox360w.c SDL_hidapi_xboxone.c SDL_hidapi_steam.c SDL_hidapi_steamdeck.c SDL_steam_virtual_gamepad.c +SRCS+= SDL_dummyaudio.c SDL_diskaudio.c +SRCS+= SDL_nullvideo.c SDL_nullframebuffer.c SDL_nullevents.c +SRCS+= SDL_dummysensor.c +SRCS+= SDL_locale.c SDL_syslocale.c +SRCS+= SDL_url.c SDL_sysurl.c + +SRCS+= SDL_os2.c +!ifeq LIBICONV 0 +SRCS+= geniconv.c os2cp.c os2iconv.c sys2utf8.c +!endif +SRCS+= SDL_os2audio.c +SRCS+= SDL_os2video.c SDL_os2util.c SDL_os2dive.c SDL_os2vman.c & + SDL_os2mouse.c SDL_os2messagebox.c + +SRCS+= SDL_dynapi.c + +OBJS = $(SRCS:.c=.obj) + +.extensions: +.extensions: .lib .dll .obj .c .asm + +.c: ./src;./src/dynapi;./src/audio;./src/cpuinfo;./src/events;./src/file;./src/haptic;./src/joystick;./src/power;./src/render;./src/render/software;./src/sensor;./src/stdlib;./src/thread;./src/timer;./src/video;./src/video/yuv2rgb;./src/atomic;./src/audio/disk; +.c: ./src/haptic/dummy;./src/joystick/dummy;./src/joystick/virtual;./src/audio/dummy;./src/video/dummy;./src/sensor/dummy; +.c: ./src/core/os2;./src/audio/os2;./src/loadso/os2;./src/filesystem/os2;./src/joystick/os2;./src/thread/os2;./src/timer/os2;./src/video/os2; +.c: ./src/core/os2/geniconv; +.c: ./src/locale/;./src/locale/unix;./src/misc;./src/misc/dummy;./src/joystick/hidapi;./src/hidapi + +all: $(DLLFILE) $(LIBFILE) $(TLIB) .symbolic + +build_dll: .symbolic + @echo * Compiling dll objects + +$(DLLFILE): build_dll $(OBJS) $(LIBM) $(LIBICONV_LIB) $(LNKFILE) + @echo * Linking: $@ + wlink @$(LNKFILE) + +$(LIBFILE): $(DLLFILE) + @echo * Creating LIB file: $@ + wlib -q -b -n -c -pa -s -t -zld -ii -io $* $(DLLFILE) + +.c.obj: + wcc386 $(CFLAGS_DLL) -fo=$^@ $< + +SDL_syscond.obj: "src/thread/generic/SDL_syscond.c" + wcc386 $(CFLAGS_DLL) -fo=$^@ $< +SDL_cpuinfo.obj: SDL_cpuinfo.c + wcc386 $(CFLAGS_DLL) -wcd=200 -fo=$^@ $< +SDL_wave.obj: SDL_wave.c + wcc386 $(CFLAGS_DLL) -wcd=124 -fo=$^@ $< +SDL_blendfillrect.obj: SDL_blendfillrect.c + wcc386 $(CFLAGS_DLL) -wcd=200 -fo=$^@ $< +SDL_blendline.obj: SDL_blendline.c + wcc386 $(CFLAGS_DLL) -wcd=200 -fo=$^@ $< +SDL_blendpoint.obj: SDL_blendpoint.c + wcc386 $(CFLAGS_DLL) -wcd=200 -fo=$^@ $< +SDL_RLEaccel.obj: SDL_RLEaccel.c + wcc386 $(CFLAGS_DLL) -wcd=201 -fo=$^@ $< +yuv_rgb_sse.obj: yuv_rgb_sse.c + wcc386 $(CFLAGS_DLL) -wcd=202 -fo=$^@ $< +!ifeq HIDAPI 1 +# c99 mode needed because of structs with flexible array members in libusb.h +SDL_hidapi.obj: SDL_hidapi.c + wcc386 $(CFLAGS_DLL) -za99 -fo=$^@ $< +!endif + +$(LIBICONV_LIB): "src/core/os2/iconv2.lbc" + @echo * Creating: $@ + wlib -q -b -n -c -pa -s -t -zld -ii -io $@ @$< + +# SDL2libm +MSRCS= e_atan2.c e_exp.c e_fmod.c e_log10.c e_log.c e_pow.c e_rem_pio2.c e_sqrt.c & + k_cos.c k_rem_pio2.c k_sin.c k_tan.c & + s_atan.c s_copysign.c s_cos.c s_fabs.c s_floor.c s_scalbn.c s_sin.c s_tan.c +MOBJS= $(MSRCS:.c=.obj) + +.c: ./src/libm; +e_atan2.obj: e_atan2.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +e_exp.obj: e_exp.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +e_fmod.obj: e_fmod.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +e_log10.obj: e_log10.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +e_log.obj: e_log.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +e_pow.obj: e_pow.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +e_rem_pio2.obj: e_rem_pio2.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +e_sqrt.obj: e_sqrt.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +k_cos.obj: k_cos.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +k_rem_pio2.obj: k_rem_pio2.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +k_sin.obj: k_sin.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +k_tan.obj: k_tan.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +s_atan.obj: s_atan.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +s_copysign.obj: s_copysign.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +s_cos.obj: s_cos.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +s_fabs.obj: s_fabs.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +s_floor.obj: s_floor.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +s_scalbn.obj: s_scalbn.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +s_sin.obj: s_sin.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +s_tan.obj: s_tan.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< + +build_libm: .symbolic + @echo * Compiling libm objects +$(LIBM): build_libm $(MOBJS) + @echo * Creating: $@ + wlib -q -b -n -c -pa -s -t -zld -ii -io $@ $(MOBJS) + +# SDL2test +TSRCS = SDL_test_assert.c SDL_test_common.c SDL_test_compare.c & + SDL_test_crc32.c SDL_test_font.c SDL_test_fuzzer.c SDL_test_harness.c & + SDL_test_imageBlit.c SDL_test_imageBlitBlend.c SDL_test_imageFace.c & + SDL_test_imagePrimitives.c SDL_test_imagePrimitivesBlend.c & + SDL_test_log.c SDL_test_md5.c SDL_test_random.c SDL_test_memory.c +TOBJS= $(TSRCS:.c=.obj) + +.c: ./src/test; +SDL_test_assert.obj: SDL_test_assert.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +SDL_test_common.obj: SDL_test_common.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +SDL_test_compare.obj: SDL_test_compare.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +SDL_test_crc32.obj: SDL_test_crc32.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +SDL_test_font.obj: SDL_test_font.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +SDL_test_fuzzer.obj: SDL_test_fuzzer.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +SDL_test_harness.obj: SDL_test_harness.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +SDL_test_imageBlit.obj: SDL_test_imageBlit.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +SDL_test_imageBlitBlend.obj: SDL_test_imageBlitBlend.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +SDL_test_imageFace.obj: SDL_test_imageFace.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +SDL_test_imagePrimitives.obj: SDL_test_imagePrimitives.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +SDL_test_imagePrimitivesBlend.obj: SDL_test_imagePrimitivesBlend.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +SDL_test_log.obj: SDL_test_log.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +SDL_test_md5.obj: SDL_test_md5.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +SDL_test_random.obj: SDL_test_random.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +SDL_test_memory.obj: SDL_test_memory.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< + +build_tlib: .symbolic + @echo * Compiling testlib objects +$(TLIB): build_tlib $(TOBJS) + @echo * Creating: $@ + wlib -q -b -n -c -pa -s -t -zld -ii -io $@ $(TOBJS) + +$(LNKFILE): + @echo * Creating linker file: $@ + @%create $@ + @%append $@ SYSTEM os2v2_dll INITINSTANCE TERMINSTANCE + @%append $@ NAME $(DLLFILE) + @for %i in ($(OBJS)) do @%append $@ FILE %i + @for %i in ($(LIBS)) do @%append $@ LIB %i + @%append $@ OPTION QUIET + @%append $@ OPTION IMPF=$(LIBHOME)/$^&.exp + @%append $@ OPTION MAP=$(LIBHOME)/$^&.map + @%append $@ OPTION DESCRIPTION '@$#libsdl org:$(VERSION)$#@$(DESCRIPTION)' + @%append $@ OPTION ELIMINATE + @%append $@ OPTION MANYAUTODATA + @%append $@ OPTION OSNAME='OS/2 and eComStation' + @%append $@ OPTION SHOWDEAD + +clean: .SYMBOLIC + @echo * Clean: $(LIBNAME) + @if exist *.obj rm *.obj + @if exist *.err rm *.err + @if exist $(LNKFILE) rm $(LNKFILE) + @if exist $(LIBM) rm $(LIBM) + @if exist $(LIBICONV_LIB) rm $(LIBICONV_LIB) + +distclean: .SYMBOLIC clean + @if exist $(LIBHOME)/*.exp rm $(LIBHOME)/*.exp + @if exist $(LIBHOME)/*.map rm $(LIBHOME)/*.map + @if exist $(LIBFILE) rm $(LIBFILE) + @if exist $(DLLFILE) rm $(DLLFILE) + @if exist $(TLIB) rm $(TLIB) diff --git a/engine/lib/sdl/Makefile.pandora b/engine/lib/sdl/Makefile.pandora new file mode 100644 index 000000000..fe2249979 --- /dev/null +++ b/engine/lib/sdl/Makefile.pandora @@ -0,0 +1,64 @@ +# Makefile to build the pandora SDL library + +AR = arm-none-linux-gnueabi-ar +RANLIB = arm-none-linux-gnueabi-ranlib +CC = arm-none-linux-gnueabi-gcc +CXX = arm-none-linux-gnueabi-g++ +STRIP = arm-none-linux-gnueabi-strip + +CFLAGS = -O3 -march=armv7-a -mcpu=cortex-a8 -mtune=cortex-a8 -mfloat-abi=softfp \ + -mfpu=neon -ftree-vectorize -ffast-math -fomit-frame-pointer -fno-strict-aliasing -fsingle-precision-constant \ + -I./include -I$(PNDSDK)/usr/include + +TARGET = libSDL2.a + +SOURCES = + ./src/*.c \ + ./src/atomic/*.c \ + ./src/audio/*.c \ + ./src/audio/disk/*.c \ + ./src/audio/dsp/*.c \ + ./src/audio/dummy/*.c \ + ./src/cpuinfo/*.c \ + ./src/events/*.c \ + ./src/file/*.c \ + ./src/filesystem/unix/*.c \ + ./src/haptic/*.c \ + ./src/haptic/linux/*.c \ + ./src/hidapi/*.c \ + ./src/joystick/*.c \ + ./src/joystick/linux/*.c \ + ./src/loadso/dlopen/*.c \ + ./src/locale/*.c \ + ./src/locale/unix/*.c \ + ./src/misc/*.c \ + ./src/misc/unix/*.c \ + ./src/power/*.c \ + ./src/sensor/*.c \ + ./src/sensor/dummy/*.c \ + ./src/stdlib/*.c \ + ./src/thread/*.c \ + ./src/thread/pthread/SDL_syscond.c \ + ./src/thread/pthread/SDL_sysmutex.c \ + ./src/thread/pthread/SDL_syssem.c \ + ./src/thread/pthread/SDL_systhread.c \ + ./src/timer/*.c \ + ./src/timer/unix/*.c \ + ./src/video/*.c \ + ./src/video/yuv2rgb/*.c \ + ./src/video/dummy/*.c \ + ./src/video/x11/*.c \ + ./src/video/pandora/*.c + +OBJECTS = $(shell echo $(SOURCES) | sed -e 's,\.c,\.o,g') + +CONFIG_H = $(shell cp include/SDL_config_pandora.h include/SDL_config.h) + +all: $(TARGET) + +$(TARGET): $(CONFIG_H) $(OBJECTS) + $(AR) crv $@ $^ + $(RANLIB) $@ + +clean: + rm -f $(TARGET) $(OBJECTS) diff --git a/engine/lib/sdl/Makefile.w32 b/engine/lib/sdl/Makefile.w32 new file mode 100644 index 000000000..7cfd64cae --- /dev/null +++ b/engine/lib/sdl/Makefile.w32 @@ -0,0 +1,283 @@ +# Open Watcom makefile to build SDL2.dll for Win32: +# wmake -f Makefile.w32 +# +# To error out upon warnings: wmake -f Makefile.w32 ENABLE_WERROR=1 + +LIBNAME = SDL2 +MAJOR_VERSION = 2 +MINOR_VERSION = 32 +MICRO_VERSION = 10 +VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(MICRO_VERSION) + +LIBHOME = . +DLLFILE = $(LIBHOME)/$(LIBNAME).dll +LIBFILE = $(LIBHOME)/$(LIBNAME).lib +EXPFILE = $(LIBHOME)/$(LIBNAME).exp +LNKFILE = $(LIBNAME).lnk + +INCPATH = -I"$(%WATCOM)/h/nt" -I"$(%WATCOM)/h/nt/directx" -I"$(%WATCOM)/h" +INCPATH+= -Iinclude +INCPATH+= -I"src/video/khronos" + +LIBM = SDL2libm.lib +TLIB = SDL2test.lib +# user32.lib, gdi32.lib, ole32.lib and oleaut32.lib are actually +# among the default libraries in wlink.lnk for nt_dll linkage... +LIBS = user32.lib gdi32.lib winmm.lib imm32.lib ole32.lib oleaut32.lib shell32.lib setupapi.lib version.lib uuid.lib dxguid.lib $(LIBM) + +CFLAGS = -bt=nt -d0 -q -bm -5s -fp5 -fpi87 -sg -oeatxhn -ei +# max warnings: +CFLAGS+= -wx +!ifeq ENABLE_WERROR 1 +CFLAGS+= -we +!endif +# newer OpenWatcom versions enable W303 by default +CFLAGS+= -wcd=303 +# new vulkan headers result in lots of W202 warnings +CFLAGS+= -wcd=202 +# the include paths : +CFLAGS+= $(INCPATH) +CFLAGS_STATIC=$(CFLAGS) +# building dll: +CFLAGS_DLL =$(CFLAGS) +CFLAGS_DLL+= -bd +# we override the DECLSPEC define in begin_code.h, because we are using +# an exports file to remove the _cdecl '_' prefix from the symbol names +CFLAGS_DLL+= -DDECLSPEC= + +CFLAGS_DLL+= -DSDL_BUILD_MAJOR_VERSION=$(MAJOR_VERSION) +CFLAGS_DLL+= -DSDL_BUILD_MINOR_VERSION=$(MINOR_VERSION) +CFLAGS_DLL+= -DSDL_BUILD_MICRO_VERSION=$(MICRO_VERSION) + +RCFLAGS = -q -r -bt=nt $(INCPATH) + +SRCS = SDL.c SDL_assert.c SDL_error.c SDL_guid.c SDL_log.c SDL_dataqueue.c SDL_hints.c SDL_list.c SDL_utils.c +SRCS+= SDL_getenv.c SDL_iconv.c SDL_malloc.c SDL_qsort.c SDL_stdlib.c SDL_string.c SDL_strtokr.c SDL_crc16.c SDL_crc32.c +SRCS+= SDL_cpuinfo.c SDL_atomic.c SDL_spinlock.c SDL_thread.c SDL_timer.c +SRCS+= SDL_rwops.c SDL_power.c +SRCS+= SDL_audio.c SDL_audiocvt.c SDL_audiodev.c SDL_audiotypecvt.c SDL_mixer.c SDL_wave.c +SRCS+= SDL_events.c SDL_quit.c SDL_keyboard.c SDL_mouse.c SDL_windowevents.c & + SDL_clipboardevents.c SDL_dropevents.c SDL_displayevents.c SDL_gesture.c & + SDL_sensor.c SDL_touch.c +SRCS+= SDL_haptic.c SDL_hidapi.c SDL_gamecontroller.c SDL_joystick.c controller_type.c +SRCS+= SDL_render.c yuv_rgb_sse.c yuv_rgb_std.c SDL_yuv.c SDL_yuv_sw.c SDL_blendfillrect.c & + SDL_blendline.c SDL_blendpoint.c SDL_drawline.c SDL_drawpoint.c & + SDL_render_sw.c SDL_rotate.c SDL_triangle.c +SRCS+= SDL_blit.c SDL_blit_0.c SDL_blit_1.c SDL_blit_A.c SDL_blit_auto.c & + SDL_blit_copy.c SDL_blit_N.c SDL_blit_slow.c SDL_fillrect.c SDL_bmp.c & + SDL_pixels.c SDL_rect.c SDL_RLEaccel.c SDL_shape.c SDL_stretch.c & + SDL_surface.c SDL_video.c SDL_clipboard.c SDL_vulkan_utils.c SDL_egl.c + +SRCS+= SDL_syscond.c SDL_sysmutex.c SDL_syssem.c SDL_systhread.c SDL_systls.c +SRCS+= SDL_systimer.c +SRCS+= SDL_sysloadso.c +SRCS+= SDL_sysfilesystem.c +SRCS+= SDL_syshaptic.c SDL_sysjoystick.c SDL_virtualjoystick.c +SRCS+= SDL_hidapijoystick.c SDL_hidapi_rumble.c SDL_hidapi_combined.c SDL_hidapi_gamecube.c SDL_hidapi_luna.c SDL_hidapi_ps3.c SDL_hidapi_ps4.c SDL_hidapi_ps5.c SDL_hidapi_shield.c SDL_hidapi_stadia.c SDL_hidapi_switch.c SDL_hidapi_wii.c SDL_hidapi_xbox360.c SDL_hidapi_xbox360w.c SDL_hidapi_xboxone.c SDL_hidapi_steam.c SDL_hidapi_steamdeck.c +SRCS+= SDL_dummyaudio.c SDL_diskaudio.c +SRCS+= SDL_nullvideo.c SDL_nullframebuffer.c SDL_nullevents.c +SRCS+= SDL_dummysensor.c +SRCS+= SDL_locale.c SDL_syslocale.c +SRCS+= SDL_url.c SDL_sysurl.c + +SRCS+= SDL_winmm.c SDL_directsound.c SDL_wasapi.c SDL_wasapi_win32.c +SRCS+= SDL_hid.c SDL_immdevice.c SDL_windows.c SDL_xinput.c +SRCS+= SDL_dinputhaptic.c SDL_windowshaptic.c SDL_xinputhaptic.c +SRCS+= SDL_dinputjoystick.c SDL_rawinputjoystick.c SDL_windowsjoystick.c SDL_windows_gaming_input.c SDL_xinputjoystick.c +SRCS+= SDL_syspower.c +SRCS+= SDL_d3dmath.c +SRCS+= SDL_render_d3d.c SDL_shaders_d3d.c +SRCS+= SDL_render_d3d11.c SDL_shaders_d3d11.c +SRCS+= SDL_render_d3d12.c SDL_shaders_d3d12.c +SRCS+= SDL_render_gl.c SDL_shaders_gl.c +SRCS+= SDL_render_gles2.c SDL_shaders_gles2.c +SRCS+= SDL_windowssensor.c +SRCS+= SDL_syscond_cv.c +SRCS+= SDL_windowsclipboard.c SDL_windowsevents.c SDL_windowsframebuffer.c SDL_windowskeyboard.c SDL_windowsmessagebox.c SDL_windowsmodes.c SDL_windowsmouse.c SDL_windowsopengl.c SDL_windowsopengles.c SDL_windowsshape.c SDL_windowsvideo.c SDL_windowsvulkan.c SDL_windowswindow.c SDL_steam_virtual_gamepad.c + +SRCS+= SDL_dynapi.c + +RCSRCS = version.rc + +OBJS = $(SRCS:.c=.obj) +RCOBJS= $(RCSRCS:.rc=.res) + +.extensions: +.extensions: .lib .dll .obj .res .c .rc .asm + +.c: ./src;./src/dynapi;./src/audio;./src/cpuinfo;./src/events;./src/file;./src/haptic;./src/joystick;./src/power;./src/render;./src/render/software;./src/sensor;./src/stdlib;./src/thread;./src/timer;./src/video;./src/video/yuv2rgb;./src/atomic;./src/audio/disk; +.c: ./src/haptic/dummy;./src/joystick/dummy;./src/joystick/virtual;./src/audio/dummy;./src/video/dummy;./src/sensor/dummy; +.c: ./src/core/windows;./src/audio/winmm;./src/audio/directsound;./src/audio/wasapi;./src/loadso/windows;./src/filesystem/windows;./src/haptic/windows;./src/joystick/windows;./src/sensor/windows;./src/thread/windows;./src/timer/windows;./src/video/windows; +.c: ./src/locale/;./src/locale/windows;./src/misc;./src/misc/windows;./src/power/windows;./src/joystick/hidapi;./src/hidapi;./src/render/direct3d;./src/render/direct3d11;./src/render/direct3d12;./src/render/opengl;./src/render/opengles2 +.rc: ./src/main/windows + +all: $(DLLFILE) $(LIBFILE) $(TLIB) .symbolic + +build_dll: .symbolic + @echo * Compiling dll objects + +$(DLLFILE): build_dll $(OBJS) $(LIBM) $(RCOBJS) $(LNKFILE) + @echo * Linking: $@ + wlink @$(LNKFILE) + +$(LIBFILE): $(DLLFILE) + @echo * Creating LIB file: $@ + wlib -q -b -n -c -pa -s -t -zld -ii -io $* @$(EXPFILE) + +.c.obj: + wcc386 $(CFLAGS_DLL) -fo=$^@ $< + +.rc.res: + wrc $(RCFLAGS) -fo=$^@ $< + +SDL_syscond.obj: "src/thread/generic/SDL_syscond.c" + wcc386 $(CFLAGS_DLL) -fo=$^@ $< +SDL_cpuinfo.obj: SDL_cpuinfo.c + wcc386 $(CFLAGS_DLL) -wcd=200 -fo=$^@ $< +SDL_wave.obj: SDL_wave.c + wcc386 $(CFLAGS_DLL) -wcd=124 -fo=$^@ $< +SDL_blendfillrect.obj: SDL_blendfillrect.c + wcc386 $(CFLAGS_DLL) -wcd=200 -fo=$^@ $< +SDL_blendline.obj: SDL_blendline.c + wcc386 $(CFLAGS_DLL) -wcd=200 -fo=$^@ $< +SDL_blendpoint.obj: SDL_blendpoint.c + wcc386 $(CFLAGS_DLL) -wcd=200 -fo=$^@ $< +SDL_RLEaccel.obj: SDL_RLEaccel.c + wcc386 $(CFLAGS_DLL) -wcd=201 -fo=$^@ $< +SDL_malloc.obj: SDL_malloc.c + wcc386 $(CFLAGS_DLL) -wcd=201 -fo=$^@ $< + +yuv_rgb_sse.obj: yuv_rgb_sse.c + wcc386 $(CFLAGS_DLL) -wcd=202 -fo=$^@ $< + +# SDL2libm +MSRCS= e_atan2.c e_exp.c e_fmod.c e_log10.c e_log.c e_pow.c e_rem_pio2.c e_sqrt.c & + k_cos.c k_rem_pio2.c k_sin.c k_tan.c & + s_atan.c s_copysign.c s_cos.c s_fabs.c s_floor.c s_scalbn.c s_sin.c s_tan.c +MOBJS= $(MSRCS:.c=.obj) + +.c: ./src/libm; +e_atan2.obj: e_atan2.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +e_exp.obj: e_exp.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +e_fmod.obj: e_fmod.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +e_log10.obj: e_log10.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +e_log.obj: e_log.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +e_pow.obj: e_pow.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +e_rem_pio2.obj: e_rem_pio2.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +e_sqrt.obj: e_sqrt.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +k_cos.obj: k_cos.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +k_rem_pio2.obj: k_rem_pio2.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +k_sin.obj: k_sin.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +k_tan.obj: k_tan.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +s_atan.obj: s_atan.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +s_copysign.obj: s_copysign.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +s_cos.obj: s_cos.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +s_fabs.obj: s_fabs.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +s_floor.obj: s_floor.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +s_scalbn.obj: s_scalbn.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +s_sin.obj: s_sin.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +s_tan.obj: s_tan.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< + +build_libm: .symbolic + @echo * Compiling libm objects +$(LIBM): build_libm $(MOBJS) + @echo * Creating: $@ + wlib -q -b -n -c -pa -s -t -zld -ii -io $@ $(MOBJS) + +# SDL2test +TSRCS = SDL_test_assert.c SDL_test_common.c SDL_test_compare.c & + SDL_test_crc32.c SDL_test_font.c SDL_test_fuzzer.c SDL_test_harness.c & + SDL_test_imageBlit.c SDL_test_imageBlitBlend.c SDL_test_imageFace.c & + SDL_test_imagePrimitives.c SDL_test_imagePrimitivesBlend.c & + SDL_test_log.c SDL_test_md5.c SDL_test_random.c SDL_test_memory.c +TOBJS= $(TSRCS:.c=.obj) + +.c: ./src/test; +SDL_test_assert.obj: SDL_test_assert.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +SDL_test_common.obj: SDL_test_common.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +SDL_test_compare.obj: SDL_test_compare.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +SDL_test_crc32.obj: SDL_test_crc32.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +SDL_test_font.obj: SDL_test_font.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +SDL_test_fuzzer.obj: SDL_test_fuzzer.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +SDL_test_harness.obj: SDL_test_harness.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +SDL_test_imageBlit.obj: SDL_test_imageBlit.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +SDL_test_imageBlitBlend.obj: SDL_test_imageBlitBlend.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +SDL_test_imageFace.obj: SDL_test_imageFace.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +SDL_test_imagePrimitives.obj: SDL_test_imagePrimitives.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +SDL_test_imagePrimitivesBlend.obj: SDL_test_imagePrimitivesBlend.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +SDL_test_log.obj: SDL_test_log.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +SDL_test_md5.obj: SDL_test_md5.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +SDL_test_random.obj: SDL_test_random.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< +SDL_test_memory.obj: SDL_test_memory.c + wcc386 $(CFLAGS_STATIC) -fo=$^@ $< + +build_tlib: .symbolic + @echo * Compiling testlib objects +$(TLIB): build_tlib $(TOBJS) + @echo * Creating: $@ + wlib -q -b -n -c -pa -s -t -zld -ii -io $@ $(TOBJS) + +$(LNKFILE): Makefile.w32 + @echo * Creating linker file: $@ + @%create $@ + @%append $@ SYSTEM nt_dll INITINSTANCE TERMINSTANCE + @%append $@ NAME $(DLLFILE) + @for %i in ($(OBJS)) do @%append $@ FILE %i + @for %i in ($(LIBS)) do @%append $@ LIB %i + @%append $@ OPTION RESOURCE=$(RCOBJS) + @%append $@ EXPORT=src/dynapi/SDL2.exports + @%append $@ OPTION QUIET + @%append $@ OPTION IMPF=$(EXPFILE) + @%append $@ OPTION MAP=$(LIBHOME)/$^&.map + @%append $@ OPTION ELIMINATE + @%append $@ OPTION SHOWDEAD + +clean: .SYMBOLIC + @echo * Clean: $(LIBNAME) + @if exist *.obj rm *.obj + @if exist *.res rm *.res + @if exist *.err rm *.err + @if exist $(LNKFILE) rm $(LNKFILE) + @if exist $(LIBM) rm $(LIBM) + +distclean: .SYMBOLIC clean + @if exist $(LIBHOME)/*.exp rm $(LIBHOME)/*.exp + @if exist $(LIBHOME)/*.map rm $(LIBHOME)/*.map + @if exist $(LIBFILE) rm $(LIBFILE) + @if exist $(DLLFILE) rm $(DLLFILE) + @if exist $(TLIB) rm $(TLIB) diff --git a/engine/lib/sdl/README-SDL.txt b/engine/lib/sdl/README-SDL.txt new file mode 100644 index 000000000..8d92955a9 --- /dev/null +++ b/engine/lib/sdl/README-SDL.txt @@ -0,0 +1,13 @@ + +Please distribute this file with the SDL runtime environment: + +The Simple DirectMedia Layer (SDL for short) is a cross-platform library +designed to make it easy to write multi-media software, such as games +and emulators. + +The Simple DirectMedia Layer library source code is available from: +https://www.libsdl.org/ + +This library is distributed under the terms of the zlib license: +http://www.zlib.net/zlib_license.html + diff --git a/engine/lib/sdl/README-TORQUE2D.md b/engine/lib/sdl/README-TORQUE2D.md new file mode 100644 index 000000000..8009ced96 --- /dev/null +++ b/engine/lib/sdl/README-TORQUE2D.md @@ -0,0 +1,14 @@ +# SDL 2 in Torque2D + +This is SDL 2.32.10, copied from Torque3D's vendored tree +(`Engine/lib/sdl` in TorqueGameEngines/Torque3D, `development` at `d3d253d1`) +so that the two engines build the same SDL. The Emscripten port that the Web +build uses (`-sUSE_SDL=2`) is also 2.32.10; keep the three in step. + +The tree is Torque3D's, byte for byte, except that `test/` has been left out: +it is 51 MB of SDL's own test programs, which the engine never builds +(`SDL_TEST` is off). + +To upgrade: replace this directory with Torque3D's `Engine/lib/sdl`, delete +`test/`, keep this file, and update the version above. SDL is zlib-licensed; +see `LICENSE.txt`. diff --git a/engine/lib/sdl/README.md b/engine/lib/sdl/README.md new file mode 100644 index 000000000..d1719bb6f --- /dev/null +++ b/engine/lib/sdl/README.md @@ -0,0 +1,17 @@ + +# Simple DirectMedia Layer (SDL) Version 2.0 + +https://www.libsdl.org/ + +Simple DirectMedia Layer is a cross-platform development library designed +to provide low level access to audio, keyboard, mouse, joystick, and graphics +hardware via OpenGL and Direct3D. It is used by video playback software, +emulators, and popular games including Valve's award winning catalog +and many Humble Bundle games. + +More extensive documentation is available in the docs directory, starting +with README.md + +Enjoy! + +Sam Lantinga (slouken@libsdl.org) diff --git a/engine/lib/sdl/SDL2.spec.in b/engine/lib/sdl/SDL2.spec.in new file mode 100644 index 000000000..812d2d861 --- /dev/null +++ b/engine/lib/sdl/SDL2.spec.in @@ -0,0 +1,119 @@ +Summary: Simple DirectMedia Layer +Name: SDL2 +Version: @SDL_VERSION@ +Release: 2 +Source: http://www.libsdl.org/release/%{name}-%{version}.tar.gz +URL: http://www.libsdl.org/ +License: zlib +Group: System Environment/Libraries +BuildRoot: %{_tmppath}/%{name}-%{version}-buildroot +Prefix: %{_prefix} +%ifos linux +Provides: libSDL2-2.0.so.0 +%endif + +%define __defattr %defattr(-,root,root) +%define __soext so + +%description +This is the Simple DirectMedia Layer, a generic API that provides low +level access to audio, keyboard, mouse, and display framebuffer across +multiple platforms. + +%package devel +Summary: Libraries, includes and more to develop SDL applications. +Group: Development/Libraries +Requires: %{name} = %{version} + +%description devel +This is the Simple DirectMedia Layer, a generic API that provides low +level access to audio, keyboard, mouse, and display framebuffer across +multiple platforms. + +This is the libraries, include files and other resources you can use +to develop SDL applications. + + +%prep +%setup -q + +%build +%ifos linux +CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%{prefix} --disable-video-directfb +%else +%configure +%endif +make + +%install +rm -rf $RPM_BUILD_ROOT +%ifos linux +make install prefix=$RPM_BUILD_ROOT%{prefix} \ + bindir=$RPM_BUILD_ROOT%{_bindir} \ + libdir=$RPM_BUILD_ROOT%{_libdir} \ + includedir=$RPM_BUILD_ROOT%{_includedir} \ + datadir=$RPM_BUILD_ROOT%{_datadir} \ + mandir=$RPM_BUILD_ROOT%{_mandir} +%else +%makeinstall +%endif + +%clean +rm -rf $RPM_BUILD_ROOT + +%files +%{__defattr} +%doc README*.txt LICENSE.txt CREDITS.txt BUGS.txt +%{_libdir}/lib*.%{__soext}.* + +%files devel +%{__defattr} +%doc docs/README*.md +%{_bindir}/*-config +%{_libdir}/lib*.a +%{_libdir}/lib*.la +%{_libdir}/lib*.%{__soext} +%{_includedir}/*/*.h +%{_libdir}/cmake/* +%{_libdir}/pkgconfig/SDL2/* +%{_datadir}/aclocal/* + +%changelog +* Thu Jun 04 2015 Ryan C. Gordon +- Fixed README paths. + +* Sun Dec 07 2014 Simone Contini +- Fixed changelog date issue and docs filenames + +* Sun Jan 22 2012 Sam Lantinga +- Updated for SDL 2.0 + +* Tue May 16 2006 Sam Lantinga +- Removed support for Darwin, due to build problems on ps2linux + +* Sat Jan 03 2004 Anders Bjorklund +- Added support for Darwin, updated spec file + +* Wed Jan 19 2000 Sam Lantinga +- Re-integrated spec file into SDL distribution +- 'name' and 'version' come from configure +- Some of the documentation is devel specific +- Removed SMP support from %build - it doesn't work with libtool anyway + +* Tue Jan 18 2000 Hakan Tandogan +- Hacked Mandrake sdl spec to build 1.1 + +* Sun Dec 19 1999 John Buswell +- Build Release + +* Sat Dec 18 1999 John Buswell +- Add symlink for libSDL-1.0.so.0 required by sdlbomber +- Added docs + +* Thu Dec 09 1999 Lenny Cartier +- v 1.0.0 + +* Mon Nov 1 1999 Chmouel Boudjnah +- First spec file for Mandrake distribution. + +# end of file diff --git a/engine/lib/sdl/SDL2Config.cmake.in b/engine/lib/sdl/SDL2Config.cmake.in new file mode 100644 index 000000000..cc8bcf26d --- /dev/null +++ b/engine/lib/sdl/SDL2Config.cmake.in @@ -0,0 +1,77 @@ +# sdl2 cmake project-config input for CMakeLists.txt script + +include(FeatureSummary) +set_package_properties(SDL2 PROPERTIES + URL "https://www.libsdl.org/" + DESCRIPTION "low level access to audio, keyboard, mouse, joystick, and graphics hardware" +) + +@PACKAGE_INIT@ + +set(SDL2_FOUND TRUE) + +if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/SDL2Targets.cmake") + include("${CMAKE_CURRENT_LIST_DIR}/SDL2Targets.cmake") + set(SDL2_SDL2_FOUND TRUE) +endif() +if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/SDL2staticTargets.cmake") + if(ANDROID) + enable_language(CXX) + endif() + include("${CMAKE_CURRENT_LIST_DIR}/SDL2staticTargets.cmake") + set(SDL2_SDL2-static_FOUND TRUE) +endif() +if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/SDL2mainTargets.cmake") + include("${CMAKE_CURRENT_LIST_DIR}/SDL2mainTargets.cmake") + set(SDL2_SDL2main_FOUND TRUE) +endif() +if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/SDL2testTargets.cmake") + include("${CMAKE_CURRENT_LIST_DIR}/SDL2testTargets.cmake") + set(SDL2_SDL2test_FOUND TRUE) +endif() + + +include("${CMAKE_CURRENT_LIST_DIR}/sdlfind.cmake") + +set(SDL_ALSA @SDL_ALSA@) +set(SDL_ALSA_SHARED @SDL_ALSA_SHARED@) +if(SDL_ALSA AND NOT SDL_ALSA_SHARED AND TARGET SDL2::SDL2-static) + sdlFindALSA() +endif() +unset(SDL_ALSA) +unset(SDL_ALSA_SHARED) + + +check_required_components(SDL2) + +# Create SDL2::SDL2 alias for static-only builds +if(TARGET SDL2::SDL2-static AND NOT TARGET SDL2::SDL2) + if(CMAKE_VERSION VERSION_LESS "3.18") + # FIXME: Aliasing local targets is not supported on CMake < 3.18, so make it global. + add_library(SDL2::SDL2 INTERFACE IMPORTED) + set_target_properties(SDL2::SDL2 PROPERTIES INTERFACE_LINK_LIBRARIES "SDL2::SDL2-static") + else() + add_library(SDL2::SDL2 ALIAS SDL2::SDL2-static) + endif() +endif() + +# For compatibility with autotools sdl2-config.cmake, provide SDL2_* variables. + +set(SDL2_PREFIX "@PACKAGE_CMAKE_INSTALL_PREFIX@") +set(SDL2_EXEC_PREFIX "@PACKAGE_CMAKE_INSTALL_PREFIX@") +set(SDL2_INCLUDE_DIR "@PACKAGE_CMAKE_INSTALL_FULL_INCLUDEDIR@/SDL2") +set(SDL2_INCLUDE_DIRS "@PACKAGE_CMAKE_INSTALL_FULL_INCLUDEDIR@;@PACKAGE_CMAKE_INSTALL_FULL_INCLUDEDIR@/SDL2") +set(SDL2_BINDIR "@PACKAGE_CMAKE_INSTALL_FULL_BINDIR@") +set(SDL2_LIBDIR "@PACKAGE_CMAKE_INSTALL_FULL_LIBDIR@") +set(SDL2_LIBRARIES SDL2::SDL2) +set(SDL2_STATIC_LIBRARIES SDL2::SDL2-static) +set(SDL2_STATIC_PRIVATE_LIBS) + +set(SDL2MAIN_LIBRARY) +if(TARGET SDL2::SDL2main) + set(SDL2MAIN_LIBRARY SDL2::SDL2main) + list(INSERT SDL2_LIBRARIES 0 SDL2::SDL2main) + list(INSERT SDL2_STATIC_LIBRARIES 0 SDL2::SDL2main) +endif() + +set(SDL2TEST_LIBRARY SDL2::SDL2test) diff --git a/engine/lib/sdl/TODO.txt b/engine/lib/sdl/TODO.txt new file mode 100644 index 000000000..456a8ae3c --- /dev/null +++ b/engine/lib/sdl/TODO.txt @@ -0,0 +1,10 @@ +Future work roadmap: + * http://wiki.libsdl.org/Roadmap + + * Check 1.2 revisions: + 3554 - Need to resolve semantics for locking keys on different platforms + 4874 - Do we want screen rotation? At what level? + 4974 - Windows file code needs to convert UTF-8 to Unicode, but we don't need to tap dance for Windows 95/98 + 4865 - See if this is still needed (mouse coordinate clamping) + 4866 - See if this is still needed (blocking window repositioning) + diff --git a/engine/lib/sdl/VisualC-GDK/clean.sh b/engine/lib/sdl/VisualC-GDK/clean.sh new file mode 100644 index 000000000..235b79c49 --- /dev/null +++ b/engine/lib/sdl/VisualC-GDK/clean.sh @@ -0,0 +1,7 @@ +#!/bin/sh +find . -type f \( -name '*.user' -o -name '*.sdf' -o -name '*.ncb' -o -name '*.suo' \) -print -delete +find . -type f \( -name '*.bmp' -o -name '*.wav' -o -name '*.dat' \) -print -delete +find . -depth -type d \( -name Gaming.Desktop.x64 \) -exec rm -rv {} \; +find . -depth -type d \( -name Gaming.Xbox.Scarlett.x64 \) -exec rm -rv {} \; +find . -depth -type d \( -name Gaming.Xbox.XboxOne.x64 \) -exec rm -rv {} \; +rm shaders/*.h diff --git a/engine/lib/sdl/VisualC-GDK/logos/Logo100x100.png b/engine/lib/sdl/VisualC-GDK/logos/Logo100x100.png new file mode 100644 index 0000000000000000000000000000000000000000..2d0333dbd273699a1513b8d2afaa40555bff986b GIT binary patch literal 10832 zcma)>MNk}!6XjYe)3hxdz6QTm34{23Vl0HDdrNUHs}P5);^`2XgQ-4qP~0N=w)L(4_Y$esL$lY_aH ztr@wC=MOV-GY>0s0KjAQBJ;b`7yeYKkNQY$P?Hw=V9=j)!&H%@j&BU+n%c_RYd^U& zOxc8V0m{0-;Kq;VtFwPmwWsp#?M?dMs&i`vZ^M&BI{bP!SGMo&UY{$T@ARMU+g|@k z@2l)``>@o_JSXiPjKEzu`)c))y4(3(E{O0VZ#lgEq!!Zl%bOt=;g!1)A{G8{-*fJ( z5>Y(5!+AVv$;3G`S$*ajOD;4t1Ytr5f)n|5%kGmD+o6g6- z-WNF=lS^1NFByxi<$`{WyOh}{?NzrMPxNmaxmSJej|&bBZt15^zBhSTl=}reDoIc}H8oCZAKZEJVcPM$oW1kVIvS(> zVUD`aB$)AjvgRXnt=#L^KG)4~hxzk^lyMjrY=A0}vEVRGNwMQ=49R_hf9!dxHITEV z3_3t^wg_CPeZ;E_CTmW~6{IyFE;avnkheT?h7liZL@GI`a$TQ6l5}GJU~`97B7u znml87G>1(^dn&}HvcLR~+C+8JD&)+r>5uwM_uo~WE1$poyE0HM$D&xC7XlL{(yw>> z`bl@R2%5T92VhM-yL;~C_2il9&hw77OYd{fU0DRgAEmi&FN78lHo36|+{)#uwK~u8 z<}CZ3gXJ~*-o5E7?N`(Ll`5a9^(_nLpAC3%JxNAIju{_1Wz zP46mVcKO)#PGMsq{39zDwj3pb9x=mGM5#{LByYFG@9*iqlaP=0xsS&fx@wZFkfzCv z*_e4Q^iv)p#XxNLHVdESEs5om7FdE zuR0#_2(u?#%j`BC0)E@Ok{F*aCdePYUd$)6NE11Y?r@&8Xx$yn0~?wxNi?je){?6n zFIGqMimk8$W-U(G?;GfPg!7A%x&+KxWSeevr(~#r*s8X zoyHE_ArmH(*4^LduO`ZYj%=sxsQG%+%_=mWUy!HDQ)V@eetu1=#&wso$vU#84vhV^k$D{CW;rKfQra9R!qaDbZJi|kJe zx#_qyWB~NhQIV!0AG)2+kG4PoD>Rn5)2h(jhnB19aUUGxYQ9=DxJD!e*LuwNeSS zijtE|5LSMf<}0#9FaAY6?%vW_2Rx8w49e`ryt*Aimg)&3vB((vQl$uyoRZ<<>}0PV z@N6AvKADSoU;U>*QwcBRrkSg<|A&z(CBxduUwO;-dlZLEbyyOSYhZ)DuQp`mNC7F= z)ww}>%Cgv-x+D5y1n1;4cY6^77M#YazQpfF<*1T%jtFim8*S-ds~`@ZJ~{Jk@!;G$ ze~mJOA8JOJDkgyC^BZ^0&Xb$qK?4@Uz3h@) z5^}?c9{;d!1zRXR_dNdk!tFFEdNWB9Y_qR-FhlncwbA+%wM;f3W#n?gDIjiN@ zLgLprIyErj*OPOhs|dHx6~7GT@zp9l3DT85@`4KY5+h;9TSO8v)b4&d6yr3)iG~$L z(F|X)M4^NgTQ&RMHV^;I#HLQz!B*@Gpn+@>HUvL)waOP|G=F z%G6zU^b`R+0EFh?WV606d88A<)7#`L zK75+Evx4KGdbPB9@cueuF-zS|dC^it?l4nbeQxxy^_*cf3bi35ASWcYgoI>Cp7~M% zWA_k^Kv>c?GiJXPn7apDNICW^6ho2jkz*Sa(m|$0H4fcqw9wH(B<+Td6`}9$a(;M+vY|7s(|(x|R4o4N2M* zkaBQe>4EZqIuFK7G^0}D98X+79`U2MZT z_3sD$Yze0KM0VfVMy&i|2ewa#LNUY;`b9L;m!rLgAAt#bGx4B`n!IAo2yS8x zIqQkfeb6He|9tyJsbT{{XK|Qw-lR|PsEFJez+++Z9oK?!MJ!p*Z^@|7+7z|`lDzbK z?LRsmS=KHFr0i!By@_zaV*T3*a7rEir%OO<0|zf;<4?F$U;D8Wi5gc2ym3%0AM!~cNa>R10bL~9N+mo)cb}BPmM>dUj)mAE_b#IJTpqA==pGvQfz`~! z3_{{z-=q7qy1YW<2~3D&l>N5t8duL<5Pmt|tKlv`2<5W*f% zh`C~8M!N@DmN2oBJU~P)uphARsM^EUhG!wSQ=r^nAY*T`=#WF4Sr(LiL=%3g}C81M5dch^c0hB({Swv?um89U7{c9s$k*`@h>1r zzz?K*oO@tdNy1}7A7z=BA{2MLe)@*BkOxE%^I_Z1o>?OFNe;ZCuV9MDAlYjVh8L)V zx{Gcx)&Gdl`Ib@t%QC#6zvt&Pj2j9tHwNaMFw%uqz;|?2{O;4mG@bAuSK`?uri0Wu{*@$$Cw3osVo)Um@ zpcg8|#@3rTX0OdNB1OP?uGLk9QVo&M%v(Ya>453q6Wf{zM}u*U%k(;o(U{Q?pLBul z=x*O~%;vVk5~?sk(cl#CI6i4F+@j8)tS~w6>}h7Yj%TQ#BHs&Hw6G;rbxg~tMv5ZC z&+tC-fBHN3a8cPsuZ|WlDseClpCld8y>AD0W;j+i!&@?3;?A66(>!XIO z&B5sLg3pT$Re|6P(PjjrT3Xuf&qM1-p=iqWx`>dSuB;jj=0|;?Ce&1QM?299mDx&d zXJUo2n0EA;W)*h`d2p=3C|)l{yG^cO|EbCluZfFO0Sk$(gbSTR^gaWsfss&TDcHbk z_grF<-0rCJZI7jRd%;UP^N@Yyg7St)qPY=Y>1e15*XO6x{tQQ zs+!m&9Q8#kBR0@!>Mw9r9tBLN6EqNy=sbSJvI^LUXkcq242({C`wrMC{&pdCz}EK zcabsu>ClS3Pnrer7vyj|-+&uQcm$8S0MwzP(NV^Cx1*U;zyfOJbYFnxK9G#r;~J#2 z@@ozd;>`s$gBF8gEeEjtF-40y!zy3VolC9Ap_UQnf^swxj20S%4nJ{y@9P6BlOJ4! z>XdgVj%i{Ou%xQJF-mYS@{DAH*%@5qwscs}|bb0fJ3R5CL} zrt4;_7-6${H5ZR5i|1ioreK8=8KYumM%JXDfj1`YARC&y<_*!BlYjwGxcw_Yv!WGL zDFxA8aAEyKBf^rwbuz)~ieZEGpO#*prB^WpJ;J~#3G9APD1!TLWd{0uybHLTr4^)1 zs93y#x!pTFL5n0E50gp`|rRx`;Sj^}PR(p*v+rMeEnhPcF?T;cd?xw3;@pNwE1 zm{*Cak+7B;3sMP4nyhNI=OJ*6g6x%0D@k5#*U5uwu1VI0DyomynxMm$^uDAi1-ajG;(yBm3;EV%TDa22>$tX@Ew6`I=a`cKyt z3|TyYK1#m7S1)M-V9?#Jkt(Qpus<8XI{rzJDgI9X*jCVa9FuFW9mx~5=+g^2wv6~G zofg932q0u%d$!CIX*fY%#*k(BHxTFnp@ddjwY3o2hNCu?{&qlUZt79~R=AJ3$5t6A zYXu`MRk^o1e7Vi{@9z0mIrl<+p zfBi?$g=O^-ECGkFH+w76EP1VR^Ox63rFmXht7;D)z52r9;Aj_60X;NFOqagi7XA@a zu)3gn=7B!wOOu2@ITB^01QZd?%Hy|-3x=sZk>d&E5e(2)Hq!k1OYth9Hf!FizHo$N zBQlqFat<)W?jnj5Ew&P75Azd`hY6^+o^#jv5I`U*-ev#ITh|p9Gpjis{>19!$(pyL zJh843Jg$(7$z0-EmFDTo%@`}f7UFBb?6h#Y7}e6-OyL<5D4j|I7D`=8@@_MX=qb<8 z$LDUG+XeDpzI~pL<5a_v33cDmVQhciX4$or(g{VyIj994V*=FAHH8Hjez`XPAa07y z1+i~~zwBjHOht<+eXq4}GQ$e7R z9FXUpBS_=uowNBS^NMn8a}As<7}!zQcny%uH)aZMp=#;^$+7t36<6QF2IJ%*Ma|D; zq?Y_XD+wrfg&dMP$p)AZDaUlvcqvZUr)x9YSk9q5WZTc-p8|s$5*(0{CbhL zNm)fg$r!Vus$JI9-5`MdT{m=+ClwA4p|VtwOur34rsIQa`y#j@!;RfxbFb5T1m2zThcwvZU*wKlwMu9fBXHk`!+e}Hb=e5sie1v=vAGvS%g_&nIUi%`IcY7vYAdU~h zH|Xwv_=C&MK>l8X9j9Q~qYF=*!+)u4WV4@GC+AP5%h|e8CkavgkRLYxP%wqYtUVM^ z7|<~d5jn?o2Vwe~Q^+h!EH+bEY){4P%KnAetUgE1atfO1EU}C^CH3 zTzDYa3?+=|YG&t{&5=i+C1!`O`$4=&@Gv_LE&CDh^g{fT4E@KzKoPAEO@xaDr2~~L zodzAIVoX^q`d>hCpkU38Ar?5C9zKP#45hnBx#G7%NDny$o#n9!p>kJlxA~{#^wCUJ zn5Jl<*|ao*k!KI4kJ(6YG0kvfHbB&E>{yN;`=Q4Ao3o1kC+*lvaDeVgaMkfQq$f?x z-a99}P{P#iRyCPd?ab1#cnZ~5_us?|`W!uG0{pwO&iy)6MI*?@v6JyC@nHFh7fGtQ zI?Y_6Y~kV9K@vLJcA&H>GrH`L@< zGc&2pAchLJ_$^xtF_mKI*j~_zj?GNdmL(b#z@$QK9qj#t!IgT+uxV^b#c;tuMc7bCdt-JIKoAc@>rkisk-M6ce6*kF_aMgj zc=cSi;%EO?**+LeaNwQw2+$nyZ$X$3004$qNl2*3N=W?Q4*tL9J=-TiNM=CgQ;4#9 zb0IE*KscXinG&9qluHr=UZ1!XW7DbO?L1k5tVH7OE?pZQ@tbzl*EYVh(`^RCKoRm- zC8bCfwOt?C0;y;WmaDxkcl5^%1jJ@+^{Ezi(IqA-!l=lM^GE^@DTI!4X?7}h^|(^J z`DC;P;X;aW^hb?g0AmSuxUgGN$IbOxhsRX;X&t5O-N=4kzl*h-m8+myJ& z3GlGKfhbKi>H@HtBrR8D*b|EH%EJ7hH?*VFNj5Oi#CLQOA^T5#AKQ<%Q*VQ9S)Zao z7pyJs?69zI0bWZjy>WJ(zM!YP0LJPQ))oH~<@riQ=AW>C?P2g&6csmNSls>p(du!0 z`F5+0^elMoE4`Hr_hKJV19rEMan2S7SYB0=J+-%yQ|4%KAGXTIs^*;kWN<`fL3lUso6{Qdk;Zfju zh^Gh=@BjeJQCUebjsLhww)aomrRI@dZ}UVP8Bj1LRX*-d@%DmFK+Ue z_T}Z4mX(&($kt|tN4cmtFP-XUExYbz>pW3<$l5BN&OVr{3nZ+fifKh5iWwZ7?QCA_ z`jPHK9vpuZ5$e{HH}m|3ElG&e`=WcRN?=vNfFkbE3zjckzO0kRW8TYmN-|| zTKG{oH9*h|K`1*s*iPMBf4$^_cy1T~3zdOZ>UJh_r!Y2%NCaMz6?j0?HF-)kz>{$3 zv9a?B>Z>j$K$T`+`kl?*<`)N)mpF>vm2VIid+^Y??PNS^nl|Ga_&n2;K~Kl+(CW*r zeBE-(3_04@dLlL~0?=Q$TOdjo#v6$iMi=bc#WezVa%?8ZF1shjZ9B3(e}12znG80x zBGRDcHCJ$}sKJT4A~O5|+3tyO>(OAX(c9g8ee&co%Z$& zbS9t#Dj+&f@=9}^qA6&Ccbd3qWIsM3|AuK)bM;DA zy1F?Zq!4x&F(mn+``-asxO(5%eO^c=_1?aUn#C2`t5>BMW9cPjjnZd-WIa#%J)B7U z+_M>4a`wHbv(TJRei5Bc4-r*f8McFl^Q^nC!u@8R9y;JR<3(&6ZlC{kjKl>0;y!HE z)osj^dz2veORZZzYNQJCIt;(X%gSPKf0~anL!wBTK%SvMY8+oa)#QoGMti&9e0oF> z$nGsSL30J<0p0l{LEQs5bsT3v8h~0}r*pUMBIu)kz|>@NslUzFH6|b?*27h;+3$n6 z<$BhiXQ4Ks%IRE=3Q`QXv9CAEd2))(c~0RIpH~ztrv9}1MxbP_vIVMw+1Ch>v*`$c zx_=@W{KsGqLdiz%?BW0AXSj_A;0V}2J9itLVlPtsFM7KT-_kiRmr8DT6Rtv=M&xjh#>>Aguq+0FSn$9bR{zV9*N9 z{9KCMVA2#eld7@#y)y-OFa-6FzKj!2ip#fdy2)4+rpREI`)oN)wz1eAQlQ4s1X~~2 z>{N{_CfQ?Go&4{ZR(Z#hG(eqxAk)$;{_e^qfb5%g+aCx-v!}9vozwnTF3LpWEx+M5 zuO7FdF%E4W2GemBP5W)+m?*Sq?c=o>`q-M1{Fkq#t?ZhpLigi%FK(yZa2-3e&D6G? zQ;E6`vyCDNK$QAb7LhvC#86d1`X>&mOMa<%y8-fh)St z`9Ale+P1M1CI1M}nElBYj{t?H)MbA^b`nY7VVD;E>*t2mQ?zFJIL68Lo5-k8i{#%v z6_H2Lj`Dalj`fTTEY3ioSLq03XYTvR)EIQ=w0(3%B!BkDT+fNJp72XSU?9tq5dn56 z2S*Ni+?eEHX|}j*>m3B1j;dl5ee5NuDm^J-SCN_RDaX&34(0IO|E_ZT6j8{`-4TWrEq?Bt4n zqyL?5`M!gs4UXNZ$o7J^FRHFK_1vJWPAq&7u{uwN;+3t5pWTK%BOYU5Su_$ln4N|b z8NWkW86N{41|PfH{jc4Ss{`ES*li=K!{HNhEVgfp;k(d~UeFl=vBBVWV2cJA$r~(8RxIplR6mm2Ip(_^v;I8@|fRX(pt9rN6h_9rDV*P6&2GQ7xR5__e>1w6q+x=1%{{sLWQ@l425dE2#Fo3wa^Qz!>6sa z%#IaKX;M|{_VTA@G>;cc_R+uPRHIjk$LinHPLt3FWXvMENEau%EI=zD16a-E)Rgb7 z`5V5_B}HO`&3Tq3CL9Phge>nTpRnqLQ$gJTEuIl}xGjn`1C*+48za)x^w_a?*S?~ZmOPrM~ z>I=;^Y`XcQEjQbCb9H+66)?|HWX%#OZoa{(N?fTXPv%ltd03Ly5EW$pCjq-k_|n;^ z`vYZTs+9{z|Df2}*#jzdLGS~`UtpEZOW8RuwP6D-m1pjK@ow}?6EwTT8Li!Zn3IH% z>oQ57d&M7=-fQyvQ&Zv8a<-15hHLei;rBPdHJIF1H`=s)a}GV59e_tjpjvN)-}y*Q zC~!^{&XCJK!`QWg9~|^O2<<>Tt+;+S5Q{)T2yo& zb#lmhBLyh8&C9zsIq;lit>{xgYRO;)-Apq!`Try&u0kreR&%f`68ovCVu7DjyA{Fi zX6v(emr3NSv7Cf_ee|{cR8NZ35a#s@SSSvZ3L$0GD5ojP663pk#n^6i*6y}`9WKij zf1Uk8pyG<`b~V$(ky2(22XA@BzxVS!?GEdR47S_sxiO7!2f^E0r@F$dm|LHju-B_h zLi%XwVgun>7`h*krSjd_GBHtTgh5>^$xJSGN3*wfC4@o2VIt`xEor_9^k-aYy&ji6 zjf4^p-@%jiODM+i?7Wnp93|rL{;S#D+Tfu&AFUMmRe8-?t zVcHJwKWa0Ddf7MDkj$!W zgX*RoZz?uX9WWH;{H4BxV1V{=zCA^$+n(tv+D3J@%KIB&U9^4RFl$}b967$|%;kt- z{!|W$W6aFJC77AK2YvXWF=K3cyJr>KdjH;*er^rlyiY$T^=(QTvFONq?7TYy8aTn< zWV2hesT!OcPq1ur9BHyT+U4%*?tNOR&&n2C#<}QOKSb>eEsOU1ih$n*!guc3gC9qc z^zIYBLTznKDaoh>J=#}P92D#S3!i>{zpsWWB3`yL9Qrpjt)jNwuuMFydu27q~y_ z{PSe>=sn*)tFz9Z)_ykQd@Rn#9%jC96bi(zj)yZOUDBVr$r%h z*4Bo?maxxJ#Hm?X=8Kbp6boL$R)Eop_mbev`;}iC{PV~zRL$KN(zNEM&*Kuuo=rvR z3~pwm0}+5VwC$qXe?vNPxBYr=?yHtc{Ur=wNO_u~*_u9r;Z>`wF}BjT7_;A|Q%^T& z@6TL0hNJc?1I5JJm9{My61j3md^j&Bt^2Oycd6qc-R498=$KVQF^HZqY=})zABC?0 zJy$r8C@@-!?H~5jxCvhL4M@`TnoiRBfj6*BY8JC7N~60xaAODfIN8=Xv~_N{$|n(> zlqHd4?8Rx4UT-q2uCDIANL1j<^!&E3y6-+EQMhrcF162C;U%r8s5iZt`8CpOfA5u) zp+i)oCt2>od+4#~O1RzTg{1l=Glpj<{_U-X$i*PHjmY<9Kk4UP z4?=9_u0d!RsZTJg?*py=$*3?6ZpVhl!SOhYXM`-}tt*%rJH_&QB{H%rC8WHfH8Lf{ zY91DL-Se#4uEQ-$S5r}uSppuz;-Ul0_x=$&Q8(ihv7%eQ)6Z5)0NzwIaOd_kRADE;vE#(svDYA*!FX$Z zELk`$|FL4Xu=X~@sSVaf>$%%IWouIZxPCKm*8}_RNL*c2|G7NY_IKVu`m4{B(>3JfqE9-WwFWG3lELVFI-$)z8TBt{cJEhR~L#3BOv$!=pInp|xGUJMQ?Cq_)>`g^d^JRD|5m}v*lECDtmZe!si^n7T6;dP)(0M~M zf8r80wTsTk5?Ww3x@}2xSvchPtE>#MkTqWW_A<5l*W3J^yxY|u9Z>e^?zA>k6x@uj zNIcZ0T3Q;G&AzP%-nbgp9{IYy*>XrWXAWQ zu0wsKIGc-g4^(8-LjV8( literal 0 HcmV?d00001 diff --git a/engine/lib/sdl/VisualC-GDK/logos/Logo150x150.png b/engine/lib/sdl/VisualC-GDK/logos/Logo150x150.png new file mode 100644 index 0000000000000000000000000000000000000000..046a8fb142c1bd3c161f5640e534c3215a348103 GIT binary patch literal 12709 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 literal 0 HcmV?d00001 diff --git a/engine/lib/sdl/VisualC-GDK/logos/Logo44x44.png b/engine/lib/sdl/VisualC-GDK/logos/Logo44x44.png new file mode 100644 index 0000000000000000000000000000000000000000..3ca25b565e0073f90af055eb44e449cf42aec262 GIT binary patch literal 7460 zcmV+<9oyoGP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+U=TIa^$>~h2OD?UIOM}IT$V?dIw&9e}_!fY`6V~ z!%vnrhtKbB zd@h*vhvj^Jm~Hqh<7-(z{hk}aIEC?2bkR~s{`o(?cS`z+Y4Te6U!Uqo;(g&;$HVXO zbKgSuhX8(i_e=cz*UZxQaJ&P3Evx<#r_b?FemS1L-6sAtqY%H{IsQ1Kw7x?5d;IP_ z{a$-lH*|YpS`HT5GGqso7G?t+d)&>ut2zQ_sEh+FS2^^f}^4z*upkjyC!jV@_^5^JJ{a z`I7@HuC($htFE^C8f$LKXXjmZ-EH?h_B`>V0|dBJPdojLGc6dUWZ8;UYu0VpywuuF zH{WvWZMWZX=eMkVvift@e$CuJ&RY0nEk23TdF^}FINaLT5J7NKlru6Gb0FhQ8K9t} za^`!;IVy9?nIAE^luBflMaelq86$()LM%6Y%iZ_P{oTAdqWiDrE&eHUPO1BMWX>sd zKV22i75z~Xg^M{K4YKarN8v*{_2JQ9q2zj&^iffySL}%a)O2K zty@2E-kHnxvD`+v>$H5 z=01%!yL9qe)okDB8=ZSY8s0LorPON~gI}%x?Cb~R~w3bV`pVD-9;9?d|@43di z+XaYh(EC-_+?C3n`OwRD*05A-S~Z=zGANNkbAhh!HaBo${h4d2yMl?J!(rIQ+%%6u zD(*N9;fVbqLr!*rdTw2QKKtdw1GQ&l+Z`ME&GBz>4 zEXUAahm{QlIdR@5wah2<-Gb2~bBC7ZS?8HQk+aMk}gEOtbBGMH0Rdd*FB{YHwyEdVPhl0xoUceKvvR*FGTF7)%>~4e-Sem z&OLF?y1?#Lh`?#o-!*#ow7MXC@;_ePI-S3gM_$*YZ0W=?G^iY4EUKuN8;)OH#zF#Htq zTskopdeQ=uO6Z$2i-gim$yA$jVZUDEr`ksM2tZpDQ!r5bmg9+`_^iMe=Ouzc9|P*a0rsaN5zP}<<}kt-bxlaP zju2Q}0o!0Gs1?vkMRw7uQfwJ;F9W#-DRwtedXzKJiLisbz!)IoMkv!iu*3{D-Im9E zy2NH0`!^l1hAV4nh{MzwFf|It71p8JAq$QTQOgLu;1fniecS|Bq4iVqR5K8Jps~;q z!h;@R%9b-XT?rh-vR(Wd;5r$m-(+zCjY2b+Zh2yLOKe9dNS&d?>lxvIP}$&eI5yTz z6Zl!F`s?V-%O}7(^H})B)K!c0_@+TgG!f7i4NAmgp9YXd1~`adI*?ocfTauRL9M+; zq_7K#MtXU$kV1ny7QhFG(eQ;1q~L{?Co=&CNKt3MbIgf z4VO`;b_l}ASfXiGJdGfAhK0zA7cdMaL6QJT{9|3AWfpgZ3z{}X5_)9=1=^vY5-3Q- zAV0pXQc3*)=U^({&@H3(^p@e-JO7~ypJJnlDL3~l;I~SAKm6&le^iY>%i|?jhmZkg zh}bMCmA5yPXQ`f;)m{i0Ac&g9nNcn13aW|>4hgM2M`Z^4qK68LhO7+yDpX?yswl+v zvUWp5)Fwk`@$eO7M#ky7g;ojSlnnNNM2M%UcMg?h?-*c1UZ?Ylm`?+3!B`{2BR>Js zueRx7qYUT)#9ltv%djH@3r>GX-U3M2?*_Isw-f%y@hQQbtG?>=Tq(h)Ca=I(#ZSgQZ`7?YBY;WCfwVJjSmknCN({i9dPi zbGqJ_FHQNq+TG_3;{(I z-R@UmAkXYkYZV+G+L4AxROZz5!j4FdAiyX0YTFsiyMhPM2V&)!8%?*uaatUDNumpP7JK?GpsC*{2YMTK}eo%u-p1-Xby9x{#%AeNf6Q{xB??%8|NPl!+T zT97m1M)TRks6?CGA5nJPJ{?KGsBXrcHuNis4Js~In{Az7sFUlcw8Wu$E6Yrg{ooT*%Fq9Rt_O>Sh z(9z>dP8dNRp}zhbl;fIObU3_rb$fM+^)<$McHz3(sN$+=UEI&d5AA9{xD$&bmWI_BF5V z0cm@X-52f161*9JVfuj7VpvTdQwK~KUE;_pa*CVK@1J8+iX{Rc@d@d~&SN(2^Xy69 zT%~^~AF7gkVV7u}>_G8&ZnH+s9?Dp-D;tB|$05vw7_c`;w<2%RRoL2%>8mO3E=3R8 zuhJ6*x=k0JXGTIb~defD;b(#AoiZ6CRH^ za^wkG4)aB=gZq64F5RS3_(AR5qQFcZy=Z1wvod7>;k`?3KUWgEg%_aP_V>{+3!pIFALS6@pnf+@ zV?d##tcOV8_OWD?H*`u)R)y@N|8baw`9cPQz-|CSqh>*!Nk89C(H&$B#%z$lc2KmP z=7}flxGAMe4pkVq9^7@$czQIe16QV3{(AH*m$DvQjWP#5HL0Dct%xH%31g>S0l?fu zv#=tqh`-?y-yGPLkOcI>vt7g)SR?H|c3J$eXgsE=y$-wJ7IwGNji?&1{-7FAw_BPN zsNE_@8j=hIdb?sa09VW!c@4FSOYPLI~6E%b()N4&ofdLgK-uXH|g(M0@3Ro;{(# zj03=&(B^Z~+-Qi}PZRS*j1*0SsR8HKUX#?up7Ura?c$?Y1!!x2B2Xx`J0A*9Ep(~q z5FsM~3>mpk2AEQEFt|2O8#sr#qp)SzT8`PrhAV3rN_#si2bfgPJ3HMH<`w&4@U%OQ zmvcG9sIm#T-q~0MGz%r_X;cCRhvuC}$4&__(F+VeXj*G%k9bFW=rDH&3tk1Sbn?-) zA)rLa%Z^z{3%t~fS;v{z5Bp(Mgr_u~{r)J+>sF!mDSKo)fySVrzQO0EO$Isu@{nW@ zQJT0+M*TphLIwT-R)|D?L`T#hLaib5vbG|zCGZ-QQjg}qDHsB$ z9?A{46DqR-BMHQzsHp38h73>;7J{cxIeCPV(Ti9kvXNq8)t%Xm($PTBN6>Eb+S@IX zi6?{T=oy2iJJgI{Ai=FkrylLcf*x`(_<6+{*d>!FPc)I9aX>QKKf>p814EAatR3+! z>)w`8bDb)ZyTCa@aZeGzp^B;41p^WEl;GhS7x$$(wQmc^mPWmwIu~{f*=UfLgdF@& z5V{&dRn5rs)UGGhTM3+H{4C?ZdT`o(O^jE$}(EbX)WR z#fr|>-=@r{C?k}RVt^cay~~prlSmYCYd&ox&4M8)7R)>uvJfXul^I_SSI5wDqp^z4 z<#aE6hm&phr2epbWf^rA^4MWyVmGk8a%U^c>v--D06VFD1W!jMm+RkobLAsSA5(!s zq{( zwWTflv#XUdQoU!SS+(Oo4ozsZv6Lc8YOi;Wcr+|TFI#gBr@ytKU4OJ{Mw!vU;5bGB z%A(m!2tp+;v>8ez!d@AJjS=$I<<3G04^Uo<#|#j!9tUc|9?3c%Lr9p$id0!^FvqM^ z)2b%xM85;Z)7%6I*TsM9VIx>WX`-+Z_h{INW~U0Z@kG?%k~qp_#)uq1QZ&}=acEX3 zkd7K@dbEo0nz?`W+v>l%qXY=M-q6urHYy7r27vQoKSh!hXIwRLTpe%e+k^abA#3_F zz_n9;o4P;dQh#?K9z%;EQ)-ykW}%rzz!FkR8FYKL<}JVK_HO;5hd!pSAoGXUp!9V*As675YQWG+<;^Q)g5IX4%7asTeBHEj2b>WLf<;hPOWUP{N+UhvoWk1CF-D$P zGB;iCyuA|i!!1do9s&x(+F8p5%f7$ZnK{o<^XWi%);&3E}_q=R|HHAE8M@lH%ehxE37zS*$v^IP2=*DhPriY`*(eMzB3j1MmFt++O%}e`@|tuloaA~;t_)yB!1+&?D8Aug2MvO3>oR<9C3(PEVQuP z!mMbh#FNBfMb#)@$hfR<-r}s5Dy-2be_=4EEvL9nHHa7%5k~?dWK^($5-db$*GMsu zr1PkUf57o4$R(3&1B@K=C_{zh_`(0+_iWAl#JHOji~{X1w*4^#1a^UX)waKnZM%K~ z_@99*t?4hjm-m||pnw6y}Zg=!g70wLytB|w=_2;nB=MUwm6J*R(gE-u#uBI)!W z?{{Wr&+d8bcfY^i@BDrTl1L(nB$7xXiT@M)hYpGse-jU^ybmG7uww*(ue!$l&I@<| z354|>VVEfCT=AoU#`=qG-<)NT_+cRk?0a=Y!oVckc7|@Kn%V7dJ*+CrZ@hH6CTjo- zfv*8oz<5peB+vr<0r(s6G%zjUI}Q*4_5%&Tzv9Gw)ioBd0VvSoyafEw{ZnxmhJln4 z|Dl6)1iH#Xq44LXPAUD1Z4$YUuH}M_$}})P*D&mz!6}I z?q35uKOA8bg}^)@ z-SzGq@Bq*`T)+kz>p>|S_%5*1)xRbluvd#26|;Eeu`l~UJs%21HVTws0DpIlDc8^c z2AY8Nz~n3L4EtY;H(zwU_5s(Ab*uZyrrmt|XKx*AJ$~wrp-_0P0XznDBq&!1%mN+< zj$gQs%DMqp+oN4&OlWU>ow|p=)I70t!rPH>bcLbSoT0ZYKhT#j$Go7l_~IzmPfOVD zf@39|T3o?HE59x}yLvk!vFJQQzwZOS2UG$xfd#;pgt?1G5kz;o+5>tI9}{v)D)3d; zT=U}V2UeUP7%H}ajlf!9u;)Y*W@>tSPH}m=P82r*(=WH6uX|g3j}%(2|=l)_szS2-;6Jt{RYqmSiq75vb%uKyPhk6Z-7YC?NzS66TlPN zo!poQIKJu{k>EPN4m8$(GVdE6rr$W9wv%V4rg*GMDV-g{S6wrjXxa`e2R^t$rbEZU zUBEFQG1Co)7?2fctdD%cdKYSurTH12x&=31Q=Xcda<2hA0{j!Ohgs}|HuF7N2^)we zTw%RO?*di=bAe;7^lNKUBVCbUt1=<@=8~DroS2p7%k`E!((yaCT^}!gOdu1;(UI-| z=Yd`zHq?EJjJ#4nU!JMUZ?(gHl zHB|*bv&XV>P1F1Wf(A6JtrfI@w}Bo#-sAGuATU8&uw6gLif*bQH{HXM1r>zCk($#TeQQ#^DM8CJ?omp; zR=;J-$MrxWTKr7_R9-*(Vx0g)?vl;myVH zq~Q#8B0L$WX#XV#hCpLI6RKPd~B#l6lr}(J7^rhGFyoMcQXmN+y<_KKxO0mr_t$yOwwUylYg%L_8v| zTLNL5Cm)$lzBgN_bXBrp%bsVXQpG8zdE2<0%;xOu^arI>o286Io~v6o@|o^3hr;+z z6m*>JDk}8lUuT*|dh4;azG-EXJ~V_lHDgAVef-1`1_y@-hQhq}k0x%txf0v9$;!&$ zryIAKcYozJuat7yySoqEKCv`^R#9QzbjNlkpC1@HZd&FWO39t$^3o0j&h+zPOAD`V z-i%V}(-V&4U~?m;X(EKcvdoO`?!LU7oUAEAh&f&7dZy)$%PCPPGZu?EM~=4TO`cQ~ zjM;Y1z~E4NPw)A(@wwSD7PHR`}CDP>PIYTLGBv;Ftm*!%wbqq5jl zW8eM;va>RX#cUi$5{H<6t`uX=!OJzWq*w5F@IX iL=s6Pkwg-oUHli9?UpW?NmoYz0000 literal 0 HcmV?d00001 diff --git a/engine/lib/sdl/VisualC-GDK/logos/Logo480x480.png b/engine/lib/sdl/VisualC-GDK/logos/Logo480x480.png new file mode 100644 index 0000000000000000000000000000000000000000..11231500eb28e235b4b344ef60b4080c6bd38a52 GIT binary patch literal 28677 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 literal 0 HcmV?d00001 diff --git a/engine/lib/sdl/VisualC-GDK/logos/SplashScreenImage.png b/engine/lib/sdl/VisualC-GDK/logos/SplashScreenImage.png new file mode 100644 index 0000000000000000000000000000000000000000..def578f665e3ae62954bc864dd7f564641866681 GIT binary patch literal 6599 zcmeAS@N?(olHy`uVBq!ia0y~yU~gbxV6os}0*a(>3=?5sU~J8Fb`J1#c2+1T%1_J8 zNo8Qrm{>c}*5h!1NUMKvwyPGOn4sXvfVnyyT^3%V-3be~h(?tfRKD!Lutd?buuvq1 zo9~}am~70P($WG^mV@#F?&|8U;+h}#ExDj{jD7m|!h6>3zuz&pRLxwOcHCk?*0hOT z$B*RXx$^8=Bz!o8@r(DFE5a{Zd2Fst!-~CDFeRcghIn{il1L{KOjqYyfxZb(k zTzBqgyTTb$Ra$?{sW`KMty6xd-tIrgcD~qf!1%D6nyI^tnpk(P&UQm>Nv)3}g)V`n zr^GkuY0ueivHGc2_P3Mq5~s3HXRZt8RqS(Bnb5)^8Je?zhdc0=X^_v77dFox%9s4{ zEIRq*7K8F}8?69E%eoKtKWw8n8(2P6YfW-^aCDo!Tf+mr3oCAZ`@S*P+>hbEalz89 zf2LX)eD;a={8N4u7utUmCR&)~xn@3to%by^Dp819{aF}uj&zV3y+ugeuddDee=qagdv@!uMH9a^ec20)7tR8Y$YKTtJ!KGP ztXOJa1{7p3@$_|Nf5s-q#>Oe(@?EZzkx!g~L41R!i(^Q|tv3f58G%|FCj49fjsuh&M!{$ZjE2By2#kinXb6mkz-S1J zhQMeDjE2By2#kinXb6mkz_1R1hTF}|LLeVH{*V8z95Sr^I_kO65Eu=C(GVC7fzc2c c3L&tA^Xo1KMnOeOSCDHxUHx3vIVCg!0PLmbtpET3 literal 0 HcmV?d00001 diff --git a/engine/lib/sdl/VisualC-GDK/shaders/D3D12_PixelShader_Colors.hlsl b/engine/lib/sdl/VisualC-GDK/shaders/D3D12_PixelShader_Colors.hlsl new file mode 100644 index 000000000..47eff4cc2 --- /dev/null +++ b/engine/lib/sdl/VisualC-GDK/shaders/D3D12_PixelShader_Colors.hlsl @@ -0,0 +1,19 @@ +struct PixelShaderInput +{ + float4 pos : SV_POSITION; + float2 tex : TEXCOORD0; + float4 color : COLOR0; +}; + +#define ColorRS \ + "RootFlags ( ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT |" \ + "DENY_DOMAIN_SHADER_ROOT_ACCESS |" \ + "DENY_GEOMETRY_SHADER_ROOT_ACCESS |" \ + "DENY_HULL_SHADER_ROOT_ACCESS )," \ + "RootConstants(num32BitConstants=32, b0)" + +[RootSignature(ColorRS)] +float4 main(PixelShaderInput input) : SV_TARGET0 +{ + return input.color; +} \ No newline at end of file diff --git a/engine/lib/sdl/VisualC-GDK/shaders/D3D12_PixelShader_NV12_BT601.hlsl b/engine/lib/sdl/VisualC-GDK/shaders/D3D12_PixelShader_NV12_BT601.hlsl new file mode 100644 index 000000000..cffbc2261 --- /dev/null +++ b/engine/lib/sdl/VisualC-GDK/shaders/D3D12_PixelShader_NV12_BT601.hlsl @@ -0,0 +1,43 @@ +Texture2D theTextureY : register(t0); +Texture2D theTextureUV : register(t1); +SamplerState theSampler : register(s0); + +struct PixelShaderInput +{ + float4 pos : SV_POSITION; + float2 tex : TEXCOORD0; + float4 color : COLOR0; +}; + +#define NVRS \ + "RootFlags ( ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT |" \ + " DENY_DOMAIN_SHADER_ROOT_ACCESS |" \ + " DENY_GEOMETRY_SHADER_ROOT_ACCESS |" \ + " DENY_HULL_SHADER_ROOT_ACCESS )," \ + "RootConstants(num32BitConstants=32, b0),"\ + "DescriptorTable ( SRV(t0), visibility = SHADER_VISIBILITY_PIXEL ),"\ + "DescriptorTable ( SRV(t1), visibility = SHADER_VISIBILITY_PIXEL ),"\ + "DescriptorTable ( Sampler(s0), visibility = SHADER_VISIBILITY_PIXEL )" + +[RootSignature(NVRS)] +float4 main(PixelShaderInput input) : SV_TARGET +{ + const float3 offset = {-0.0627451017, -0.501960814, -0.501960814}; + const float3 Rcoeff = {1.1644, 0.0000, 1.5960}; + const float3 Gcoeff = {1.1644, -0.3918, -0.8130}; + const float3 Bcoeff = {1.1644, 2.0172, 0.0000}; + + float4 Output; + + float3 yuv; + yuv.x = theTextureY.Sample(theSampler, input.tex).r; + yuv.yz = theTextureUV.Sample(theSampler, input.tex).rg; + + yuv += offset; + Output.r = dot(yuv, Rcoeff); + Output.g = dot(yuv, Gcoeff); + Output.b = dot(yuv, Bcoeff); + Output.a = 1.0f; + + return Output * input.color; +} \ No newline at end of file diff --git a/engine/lib/sdl/VisualC-GDK/shaders/D3D12_PixelShader_NV12_BT709.hlsl b/engine/lib/sdl/VisualC-GDK/shaders/D3D12_PixelShader_NV12_BT709.hlsl new file mode 100644 index 000000000..81d409c94 --- /dev/null +++ b/engine/lib/sdl/VisualC-GDK/shaders/D3D12_PixelShader_NV12_BT709.hlsl @@ -0,0 +1,43 @@ +Texture2D theTextureY : register(t0); +Texture2D theTextureUV : register(t1); +SamplerState theSampler : register(s0); + +struct PixelShaderInput +{ + float4 pos : SV_POSITION; + float2 tex : TEXCOORD0; + float4 color : COLOR0; +}; + +#define NVRS \ + "RootFlags ( ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT |" \ + " DENY_DOMAIN_SHADER_ROOT_ACCESS |" \ + " DENY_GEOMETRY_SHADER_ROOT_ACCESS |" \ + " DENY_HULL_SHADER_ROOT_ACCESS )," \ + "RootConstants(num32BitConstants=32, b0),"\ + "DescriptorTable ( SRV(t0), visibility = SHADER_VISIBILITY_PIXEL ),"\ + "DescriptorTable ( SRV(t1), visibility = SHADER_VISIBILITY_PIXEL ),"\ + "DescriptorTable ( Sampler(s0), visibility = SHADER_VISIBILITY_PIXEL )" + +[RootSignature(NVRS)] +float4 main(PixelShaderInput input) : SV_TARGET +{ + const float3 offset = {-0.0627451017, -0.501960814, -0.501960814}; + const float3 Rcoeff = {1.1644, 0.0000, 1.7927}; + const float3 Gcoeff = {1.1644, -0.2132, -0.5329}; + const float3 Bcoeff = {1.1644, 2.1124, 0.0000}; + + float4 Output; + + float3 yuv; + yuv.x = theTextureY.Sample(theSampler, input.tex).r; + yuv.yz = theTextureUV.Sample(theSampler, input.tex).rg; + + yuv += offset; + Output.r = dot(yuv, Rcoeff); + Output.g = dot(yuv, Gcoeff); + Output.b = dot(yuv, Bcoeff); + Output.a = 1.0f; + + return Output * input.color; +} \ No newline at end of file diff --git a/engine/lib/sdl/VisualC-GDK/shaders/D3D12_PixelShader_NV12_JPEG.hlsl b/engine/lib/sdl/VisualC-GDK/shaders/D3D12_PixelShader_NV12_JPEG.hlsl new file mode 100644 index 000000000..494bce519 --- /dev/null +++ b/engine/lib/sdl/VisualC-GDK/shaders/D3D12_PixelShader_NV12_JPEG.hlsl @@ -0,0 +1,43 @@ +Texture2D theTextureY : register(t0); +Texture2D theTextureUV : register(t1); +SamplerState theSampler : register(s0); + +struct PixelShaderInput +{ + float4 pos : SV_POSITION; + float2 tex : TEXCOORD0; + float4 color : COLOR0; +}; + +#define NVRS \ + "RootFlags ( ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT |" \ + " DENY_DOMAIN_SHADER_ROOT_ACCESS |" \ + " DENY_GEOMETRY_SHADER_ROOT_ACCESS |" \ + " DENY_HULL_SHADER_ROOT_ACCESS )," \ + "RootConstants(num32BitConstants=32, b0),"\ + "DescriptorTable ( SRV(t0), visibility = SHADER_VISIBILITY_PIXEL ),"\ + "DescriptorTable ( SRV(t1), visibility = SHADER_VISIBILITY_PIXEL ),"\ + "DescriptorTable ( Sampler(s0), visibility = SHADER_VISIBILITY_PIXEL )" + +[RootSignature(NVRS)] +float4 main(PixelShaderInput input) : SV_TARGET +{ + const float3 offset = {0.0, -0.501960814, -0.501960814}; + const float3 Rcoeff = {1.0000, 0.0000, 1.4020}; + const float3 Gcoeff = {1.0000, -0.3441, -0.7141}; + const float3 Bcoeff = {1.0000, 1.7720, 0.0000}; + + float4 Output; + + float3 yuv; + yuv.x = theTextureY.Sample(theSampler, input.tex).r; + yuv.yz = theTextureUV.Sample(theSampler, input.tex).rg; + + yuv += offset; + Output.r = dot(yuv, Rcoeff); + Output.g = dot(yuv, Gcoeff); + Output.b = dot(yuv, Bcoeff); + Output.a = 1.0f; + + return Output * input.color; +} \ No newline at end of file diff --git a/engine/lib/sdl/VisualC-GDK/shaders/D3D12_PixelShader_NV21_BT601.hlsl b/engine/lib/sdl/VisualC-GDK/shaders/D3D12_PixelShader_NV21_BT601.hlsl new file mode 100644 index 000000000..794c76372 --- /dev/null +++ b/engine/lib/sdl/VisualC-GDK/shaders/D3D12_PixelShader_NV21_BT601.hlsl @@ -0,0 +1,43 @@ +Texture2D theTextureY : register(t0); +Texture2D theTextureUV : register(t1); +SamplerState theSampler : register(s0); + +struct PixelShaderInput +{ + float4 pos : SV_POSITION; + float2 tex : TEXCOORD0; + float4 color : COLOR0; +}; + +#define NVRS \ + "RootFlags ( ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT |" \ + " DENY_DOMAIN_SHADER_ROOT_ACCESS |" \ + " DENY_GEOMETRY_SHADER_ROOT_ACCESS |" \ + " DENY_HULL_SHADER_ROOT_ACCESS )," \ + "RootConstants(num32BitConstants=32, b0),"\ + "DescriptorTable ( SRV(t0), visibility = SHADER_VISIBILITY_PIXEL ),"\ + "DescriptorTable ( SRV(t1), visibility = SHADER_VISIBILITY_PIXEL ),"\ + "DescriptorTable ( Sampler(s0), visibility = SHADER_VISIBILITY_PIXEL )" + +[RootSignature(NVRS)] +float4 main(PixelShaderInput input) : SV_TARGET +{ + const float3 offset = {-0.0627451017, -0.501960814, -0.501960814}; + const float3 Rcoeff = {1.1644, 0.0000, 1.5960}; + const float3 Gcoeff = {1.1644, -0.3918, -0.8130}; + const float3 Bcoeff = {1.1644, 2.0172, 0.0000}; + + float4 Output; + + float3 yuv; + yuv.x = theTextureY.Sample(theSampler, input.tex).r; + yuv.yz = theTextureUV.Sample(theSampler, input.tex).gr; + + yuv += offset; + Output.r = dot(yuv, Rcoeff); + Output.g = dot(yuv, Gcoeff); + Output.b = dot(yuv, Bcoeff); + Output.a = 1.0f; + + return Output * input.color; +} \ No newline at end of file diff --git a/engine/lib/sdl/VisualC-GDK/shaders/D3D12_PixelShader_NV21_BT709.hlsl b/engine/lib/sdl/VisualC-GDK/shaders/D3D12_PixelShader_NV21_BT709.hlsl new file mode 100644 index 000000000..f5b9522c0 --- /dev/null +++ b/engine/lib/sdl/VisualC-GDK/shaders/D3D12_PixelShader_NV21_BT709.hlsl @@ -0,0 +1,43 @@ +Texture2D theTextureY : register(t0); +Texture2D theTextureUV : register(t1); +SamplerState theSampler : register(s0); + +struct PixelShaderInput +{ + float4 pos : SV_POSITION; + float2 tex : TEXCOORD0; + float4 color : COLOR0; +}; + +#define NVRS \ + "RootFlags ( ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT |" \ + " DENY_DOMAIN_SHADER_ROOT_ACCESS |" \ + " DENY_GEOMETRY_SHADER_ROOT_ACCESS |" \ + " DENY_HULL_SHADER_ROOT_ACCESS )," \ + "RootConstants(num32BitConstants=32, b0),"\ + "DescriptorTable ( SRV(t0), visibility = SHADER_VISIBILITY_PIXEL ),"\ + "DescriptorTable ( SRV(t1), visibility = SHADER_VISIBILITY_PIXEL ),"\ + "DescriptorTable ( Sampler(s0), visibility = SHADER_VISIBILITY_PIXEL )" + +[RootSignature(NVRS)] +float4 main(PixelShaderInput input) : SV_TARGET +{ + const float3 offset = {-0.0627451017, -0.501960814, -0.501960814}; + const float3 Rcoeff = {1.1644, 0.0000, 1.7927}; + const float3 Gcoeff = {1.1644, -0.2132, -0.5329}; + const float3 Bcoeff = {1.1644, 2.1124, 0.0000}; + + float4 Output; + + float3 yuv; + yuv.x = theTextureY.Sample(theSampler, input.tex).r; + yuv.yz = theTextureUV.Sample(theSampler, input.tex).gr; + + yuv += offset; + Output.r = dot(yuv, Rcoeff); + Output.g = dot(yuv, Gcoeff); + Output.b = dot(yuv, Bcoeff); + Output.a = 1.0f; + + return Output * input.color; +} \ No newline at end of file diff --git a/engine/lib/sdl/VisualC-GDK/shaders/D3D12_PixelShader_NV21_JPEG.hlsl b/engine/lib/sdl/VisualC-GDK/shaders/D3D12_PixelShader_NV21_JPEG.hlsl new file mode 100644 index 000000000..1b467b480 --- /dev/null +++ b/engine/lib/sdl/VisualC-GDK/shaders/D3D12_PixelShader_NV21_JPEG.hlsl @@ -0,0 +1,43 @@ +Texture2D theTextureY : register(t0); +Texture2D theTextureUV : register(t1); +SamplerState theSampler : register(s0); + +struct PixelShaderInput +{ + float4 pos : SV_POSITION; + float2 tex : TEXCOORD0; + float4 color : COLOR0; +}; + +#define NVRS \ + "RootFlags ( ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT |" \ + " DENY_DOMAIN_SHADER_ROOT_ACCESS |" \ + " DENY_GEOMETRY_SHADER_ROOT_ACCESS |" \ + " DENY_HULL_SHADER_ROOT_ACCESS )," \ + "RootConstants(num32BitConstants=32, b0),"\ + "DescriptorTable ( SRV(t0), visibility = SHADER_VISIBILITY_PIXEL ),"\ + "DescriptorTable ( SRV(t1), visibility = SHADER_VISIBILITY_PIXEL ),"\ + "DescriptorTable ( Sampler(s0), visibility = SHADER_VISIBILITY_PIXEL )" + +[RootSignature(NVRS)] +float4 main(PixelShaderInput input) : SV_TARGET +{ + const float3 offset = {0.0, -0.501960814, -0.501960814}; + const float3 Rcoeff = {1.0000, 0.0000, 1.4020}; + const float3 Gcoeff = {1.0000, -0.3441, -0.7141}; + const float3 Bcoeff = {1.0000, 1.7720, 0.0000}; + + float4 Output; + + float3 yuv; + yuv.x = theTextureY.Sample(theSampler, input.tex).r; + yuv.yz = theTextureUV.Sample(theSampler, input.tex).gr; + + yuv += offset; + Output.r = dot(yuv, Rcoeff); + Output.g = dot(yuv, Gcoeff); + Output.b = dot(yuv, Bcoeff); + Output.a = 1.0f; + + return Output * input.color; +} \ No newline at end of file diff --git a/engine/lib/sdl/VisualC-GDK/shaders/D3D12_PixelShader_Textures.hlsl b/engine/lib/sdl/VisualC-GDK/shaders/D3D12_PixelShader_Textures.hlsl new file mode 100644 index 000000000..0dcdf89c6 --- /dev/null +++ b/engine/lib/sdl/VisualC-GDK/shaders/D3D12_PixelShader_Textures.hlsl @@ -0,0 +1,24 @@ +Texture2D theTexture : register(t0); +SamplerState theSampler : register(s0); + +struct PixelShaderInput +{ + float4 pos : SV_POSITION; + float2 tex : TEXCOORD0; + float4 color : COLOR0; +}; + +#define TextureRS \ + "RootFlags ( ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT |" \ + " DENY_DOMAIN_SHADER_ROOT_ACCESS |" \ + " DENY_GEOMETRY_SHADER_ROOT_ACCESS |" \ + " DENY_HULL_SHADER_ROOT_ACCESS )," \ + "RootConstants(num32BitConstants=32, b0),"\ + "DescriptorTable ( SRV(t0), visibility = SHADER_VISIBILITY_PIXEL ),"\ + "DescriptorTable ( Sampler(s0), visibility = SHADER_VISIBILITY_PIXEL )" + +[RootSignature(TextureRS)] +float4 main(PixelShaderInput input) : SV_TARGET +{ + return theTexture.Sample(theSampler, input.tex) * input.color; +} \ No newline at end of file diff --git a/engine/lib/sdl/VisualC-GDK/shaders/D3D12_PixelShader_YUV_BT601.hlsl b/engine/lib/sdl/VisualC-GDK/shaders/D3D12_PixelShader_YUV_BT601.hlsl new file mode 100644 index 000000000..09e58943a --- /dev/null +++ b/engine/lib/sdl/VisualC-GDK/shaders/D3D12_PixelShader_YUV_BT601.hlsl @@ -0,0 +1,46 @@ +Texture2D theTextureY : register(t0); +Texture2D theTextureU : register(t1); +Texture2D theTextureV : register(t2); +SamplerState theSampler : register(s0); + +struct PixelShaderInput +{ + float4 pos : SV_POSITION; + float2 tex : TEXCOORD0; + float4 color : COLOR0; +}; + +#define YUVRS \ + "RootFlags ( ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT |" \ + " DENY_DOMAIN_SHADER_ROOT_ACCESS |" \ + " DENY_GEOMETRY_SHADER_ROOT_ACCESS |" \ + " DENY_HULL_SHADER_ROOT_ACCESS )," \ + "RootConstants(num32BitConstants=32, b0),"\ + "DescriptorTable ( SRV(t0), visibility = SHADER_VISIBILITY_PIXEL ),"\ + "DescriptorTable ( SRV(t1), visibility = SHADER_VISIBILITY_PIXEL ),"\ + "DescriptorTable ( SRV(t2), visibility = SHADER_VISIBILITY_PIXEL ),"\ + "DescriptorTable ( Sampler(s0), visibility = SHADER_VISIBILITY_PIXEL )" + +[RootSignature(YUVRS)] +float4 main(PixelShaderInput input) : SV_TARGET +{ + const float3 offset = {-0.0627451017, -0.501960814, -0.501960814}; + const float3 Rcoeff = {1.1644, 0.0000, 1.5960}; + const float3 Gcoeff = {1.1644, -0.3918, -0.8130}; + const float3 Bcoeff = {1.1644, 2.0172, 0.0000}; + + float4 Output; + + float3 yuv; + yuv.x = theTextureY.Sample(theSampler, input.tex).r; + yuv.y = theTextureU.Sample(theSampler, input.tex).r; + yuv.z = theTextureV.Sample(theSampler, input.tex).r; + + yuv += offset; + Output.r = dot(yuv, Rcoeff); + Output.g = dot(yuv, Gcoeff); + Output.b = dot(yuv, Bcoeff); + Output.a = 1.0f; + + return Output * input.color; +} \ No newline at end of file diff --git a/engine/lib/sdl/VisualC-GDK/shaders/D3D12_PixelShader_YUV_BT709.hlsl b/engine/lib/sdl/VisualC-GDK/shaders/D3D12_PixelShader_YUV_BT709.hlsl new file mode 100644 index 000000000..f5aa0cd7e --- /dev/null +++ b/engine/lib/sdl/VisualC-GDK/shaders/D3D12_PixelShader_YUV_BT709.hlsl @@ -0,0 +1,46 @@ +Texture2D theTextureY : register(t0); +Texture2D theTextureU : register(t1); +Texture2D theTextureV : register(t2); +SamplerState theSampler : register(s0); + +struct PixelShaderInput +{ + float4 pos : SV_POSITION; + float2 tex : TEXCOORD0; + float4 color : COLOR0; +}; + +#define YUVRS \ + "RootFlags ( ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT |" \ + " DENY_DOMAIN_SHADER_ROOT_ACCESS |" \ + " DENY_GEOMETRY_SHADER_ROOT_ACCESS |" \ + " DENY_HULL_SHADER_ROOT_ACCESS )," \ + "RootConstants(num32BitConstants=32, b0),"\ + "DescriptorTable ( SRV(t0), visibility = SHADER_VISIBILITY_PIXEL ),"\ + "DescriptorTable ( SRV(t1), visibility = SHADER_VISIBILITY_PIXEL ),"\ + "DescriptorTable ( SRV(t2), visibility = SHADER_VISIBILITY_PIXEL ),"\ + "DescriptorTable ( Sampler(s0), visibility = SHADER_VISIBILITY_PIXEL )" + +[RootSignature(YUVRS)] +float4 main(PixelShaderInput input) : SV_TARGET +{ + const float3 offset = {-0.0627451017, -0.501960814, -0.501960814}; + const float3 Rcoeff = {1.1644, 0.0000, 1.7927}; + const float3 Gcoeff = {1.1644, -0.2132, -0.5329}; + const float3 Bcoeff = {1.1644, 2.1124, 0.0000}; + + float4 Output; + + float3 yuv; + yuv.x = theTextureY.Sample(theSampler, input.tex).r; + yuv.y = theTextureU.Sample(theSampler, input.tex).r; + yuv.z = theTextureV.Sample(theSampler, input.tex).r; + + yuv += offset; + Output.r = dot(yuv, Rcoeff); + Output.g = dot(yuv, Gcoeff); + Output.b = dot(yuv, Bcoeff); + Output.a = 1.0f; + + return Output * input.color; +} \ No newline at end of file diff --git a/engine/lib/sdl/VisualC-GDK/shaders/D3D12_PixelShader_YUV_JPEG.hlsl b/engine/lib/sdl/VisualC-GDK/shaders/D3D12_PixelShader_YUV_JPEG.hlsl new file mode 100644 index 000000000..84d09b8bf --- /dev/null +++ b/engine/lib/sdl/VisualC-GDK/shaders/D3D12_PixelShader_YUV_JPEG.hlsl @@ -0,0 +1,46 @@ +Texture2D theTextureY : register(t0); +Texture2D theTextureU : register(t1); +Texture2D theTextureV : register(t2); +SamplerState theSampler : register(s0); + +struct PixelShaderInput +{ + float4 pos : SV_POSITION; + float2 tex : TEXCOORD0; + float4 color : COLOR0; +}; + +#define YUVRS \ + "RootFlags ( ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT |" \ + " DENY_DOMAIN_SHADER_ROOT_ACCESS |" \ + " DENY_GEOMETRY_SHADER_ROOT_ACCESS |" \ + " DENY_HULL_SHADER_ROOT_ACCESS )," \ + "RootConstants(num32BitConstants=32, b0),"\ + "DescriptorTable ( SRV(t0), visibility = SHADER_VISIBILITY_PIXEL ),"\ + "DescriptorTable ( SRV(t1), visibility = SHADER_VISIBILITY_PIXEL ),"\ + "DescriptorTable ( SRV(t2), visibility = SHADER_VISIBILITY_PIXEL ),"\ + "DescriptorTable ( Sampler(s0), visibility = SHADER_VISIBILITY_PIXEL )" + +[RootSignature(YUVRS)] +float4 main(PixelShaderInput input) : SV_TARGET +{ + const float3 offset = {0.0, -0.501960814, -0.501960814}; + const float3 Rcoeff = {1.0000, 0.0000, 1.4020}; + const float3 Gcoeff = {1.0000, -0.3441, -0.7141}; + const float3 Bcoeff = {1.0000, 1.7720, 0.0000}; + + float4 Output; + + float3 yuv; + yuv.x = theTextureY.Sample(theSampler, input.tex).r; + yuv.y = theTextureU.Sample(theSampler, input.tex).r; + yuv.z = theTextureV.Sample(theSampler, input.tex).r; + + yuv += offset; + Output.r = dot(yuv, Rcoeff); + Output.g = dot(yuv, Gcoeff); + Output.b = dot(yuv, Bcoeff); + Output.a = 1.0f; + + return Output * input.color; +} \ No newline at end of file diff --git a/engine/lib/sdl/VisualC-GDK/shaders/D3D12_VertexShader.hlsl b/engine/lib/sdl/VisualC-GDK/shaders/D3D12_VertexShader.hlsl new file mode 100644 index 000000000..e10b48892 --- /dev/null +++ b/engine/lib/sdl/VisualC-GDK/shaders/D3D12_VertexShader.hlsl @@ -0,0 +1,95 @@ +#pragma pack_matrix( row_major ) + +struct VertexShaderConstants +{ + matrix model; + matrix projectionAndView; +}; +ConstantBuffer Constants : register(b0); + +struct VertexShaderInput +{ + float3 pos : POSITION; + float2 tex : TEXCOORD0; + float4 color : COLOR0; +}; + +struct VertexShaderOutput +{ + float4 pos : SV_POSITION; + float2 tex : TEXCOORD0; + float4 color : COLOR0; +}; + +#define ColorRS \ + "RootFlags ( ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT |" \ + "DENY_DOMAIN_SHADER_ROOT_ACCESS |" \ + "DENY_GEOMETRY_SHADER_ROOT_ACCESS |" \ + "DENY_HULL_SHADER_ROOT_ACCESS )," \ + "RootConstants(num32BitConstants=32, b0)" + +#define TextureRS \ + "RootFlags ( ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT |" \ + " DENY_DOMAIN_SHADER_ROOT_ACCESS |" \ + " DENY_GEOMETRY_SHADER_ROOT_ACCESS |" \ + " DENY_HULL_SHADER_ROOT_ACCESS )," \ + "RootConstants(num32BitConstants=32, b0),"\ + "DescriptorTable ( SRV(t0), visibility = SHADER_VISIBILITY_PIXEL ),"\ + "DescriptorTable ( Sampler(s0), visibility = SHADER_VISIBILITY_PIXEL )" + +#define YUVRS \ + "RootFlags ( ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT |" \ + " DENY_DOMAIN_SHADER_ROOT_ACCESS |" \ + " DENY_GEOMETRY_SHADER_ROOT_ACCESS |" \ + " DENY_HULL_SHADER_ROOT_ACCESS )," \ + "RootConstants(num32BitConstants=32, b0),"\ + "DescriptorTable ( SRV(t0), visibility = SHADER_VISIBILITY_PIXEL ),"\ + "DescriptorTable ( SRV(t1), visibility = SHADER_VISIBILITY_PIXEL ),"\ + "DescriptorTable ( SRV(t2), visibility = SHADER_VISIBILITY_PIXEL ),"\ + "DescriptorTable ( Sampler(s0), visibility = SHADER_VISIBILITY_PIXEL )" + +#define NVRS \ + "RootFlags ( ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT |" \ + " DENY_DOMAIN_SHADER_ROOT_ACCESS |" \ + " DENY_GEOMETRY_SHADER_ROOT_ACCESS |" \ + " DENY_HULL_SHADER_ROOT_ACCESS )," \ + "RootConstants(num32BitConstants=32, b0),"\ + "DescriptorTable ( SRV(t0), visibility = SHADER_VISIBILITY_PIXEL ),"\ + "DescriptorTable ( SRV(t1), visibility = SHADER_VISIBILITY_PIXEL ),"\ + "DescriptorTable ( Sampler(s0), visibility = SHADER_VISIBILITY_PIXEL )" + +[RootSignature(ColorRS)] +VertexShaderOutput mainColor(VertexShaderInput input) +{ + VertexShaderOutput output; + float4 pos = float4(input.pos, 1.0f); + + // Transform the vertex position into projected space. + pos = mul(pos, Constants.model); + pos = mul(pos, Constants.projectionAndView); + output.pos = pos; + + // Pass through texture coordinates and color values without transformation + output.tex = input.tex; + output.color = input.color; + + return output; +} + +[RootSignature(TextureRS)] +VertexShaderOutput mainTexture(VertexShaderInput input) +{ + return mainColor(input); +} + +[RootSignature(YUVRS)] +VertexShaderOutput mainYUV(VertexShaderInput input) +{ + return mainColor(input); +} + +[RootSignature(NVRS)] +VertexShaderOutput mainNV(VertexShaderInput input) +{ + return mainColor(input); +} \ No newline at end of file diff --git a/engine/lib/sdl/VisualC-GDK/shaders/buildshaders.bat b/engine/lib/sdl/VisualC-GDK/shaders/buildshaders.bat new file mode 100644 index 000000000..4447b5e2f --- /dev/null +++ b/engine/lib/sdl/VisualC-GDK/shaders/buildshaders.bat @@ -0,0 +1,35 @@ +if %2.==one. goto setxboxone +rem Xbox Series compile +set XBOXDXC="%GameDKLatest%\GXDK\bin\Scarlett\DXC.exe" +set SUFFIX=_Series.h +goto startbuild + +:setxboxone +set XBOXDXC="%GameDKLatest%\GXDK\bin\XboxOne\DXC.exe" +set SUFFIX=_One.h + +:startbuild +echo Building with %XBOXDXC% +cd "%1\shaders" +rem Root Signatures +%XBOXDXC% -E ColorRS -T rootsig_1_1 -rootsig-define ColorRS -Fh D3D12_RootSig_Color%SUFFIX% -Vn D3D12_RootSig_Color D3D12_VertexShader.hlsl +%XBOXDXC% -E TextureRS -T rootsig_1_1 -rootsig-define TextureRS -Fh D3D12_RootSig_Texture%SUFFIX% -Vn D3D12_RootSig_Texture D3D12_VertexShader.hlsl +%XBOXDXC% -E YUVRS -T rootsig_1_1 -rootsig-define YUVRS -Fh D3D12_RootSig_YUV%SUFFIX% -Vn D3D12_RootSig_YUV D3D12_VertexShader.hlsl +%XBOXDXC% -E NVRS -T rootsig_1_1 -rootsig-define NVRS -Fh D3D12_RootSig_NV%SUFFIX% -Vn D3D12_RootSig_NV D3D12_VertexShader.hlsl +rem Vertex Shaders +%XBOXDXC% -E mainColor -T vs_6_0 -Fh D3D12_VertexShader_Color%SUFFIX% -Vn D3D12_VertexShader_Color D3D12_VertexShader.hlsl +%XBOXDXC% -E mainTexture -T vs_6_0 -Fh D3D12_VertexShader_Texture%SUFFIX% -Vn D3D12_VertexShader_Texture D3D12_VertexShader.hlsl +%XBOXDXC% -E mainNV -T vs_6_0 -Fh D3D12_VertexShader_NV%SUFFIX% -Vn D3D12_VertexShader_NV D3D12_VertexShader.hlsl +%XBOXDXC% -E mainYUV -T vs_6_0 -Fh D3D12_VertexShader_YUV%SUFFIX% -Vn D3D12_VertexShader_YUV D3D12_VertexShader.hlsl +rem Pixel Shaders +%XBOXDXC% -E main -T ps_6_0 -Fh D3D12_PixelShader_Colors%SUFFIX% -Vn D3D12_PixelShader_Colors D3D12_PixelShader_Colors.hlsl +%XBOXDXC% -E main -T ps_6_0 -Fh D3D12_PixelShader_NV12_BT601%SUFFIX% -Vn D3D12_PixelShader_NV12_BT601 D3D12_PixelShader_NV12_BT601.hlsl +%XBOXDXC% -E main -T ps_6_0 -Fh D3D12_PixelShader_NV12_BT709%SUFFIX% -Vn D3D12_PixelShader_NV12_BT709 D3D12_PixelShader_NV12_BT709.hlsl +%XBOXDXC% -E main -T ps_6_0 -Fh D3D12_PixelShader_NV12_JPEG%SUFFIX% -Vn D3D12_PixelShader_NV12_JPEG D3D12_PixelShader_NV12_JPEG.hlsl +%XBOXDXC% -E main -T ps_6_0 -Fh D3D12_PixelShader_NV21_BT601%SUFFIX% -Vn D3D12_PixelShader_NV21_BT601 D3D12_PixelShader_NV21_BT601.hlsl +%XBOXDXC% -E main -T ps_6_0 -Fh D3D12_PixelShader_NV21_BT709%SUFFIX% -Vn D3D12_PixelShader_NV21_BT709 D3D12_PixelShader_NV21_BT709.hlsl +%XBOXDXC% -E main -T ps_6_0 -Fh D3D12_PixelShader_NV21_JPEG%SUFFIX% -Vn D3D12_PixelShader_NV21_JPEG D3D12_PixelShader_NV21_JPEG.hlsl +%XBOXDXC% -E main -T ps_6_0 -Fh D3D12_PixelShader_Textures%SUFFIX% -Vn D3D12_PixelShader_Textures D3D12_PixelShader_Textures.hlsl +%XBOXDXC% -E main -T ps_6_0 -Fh D3D12_PixelShader_YUV_BT601%SUFFIX% -Vn D3D12_PixelShader_YUV_BT601 D3D12_PixelShader_YUV_BT601.hlsl +%XBOXDXC% -E main -T ps_6_0 -Fh D3D12_PixelShader_YUV_BT709%SUFFIX% -Vn D3D12_PixelShader_YUV_BT709 D3D12_PixelShader_YUV_BT709.hlsl +%XBOXDXC% -E main -T ps_6_0 -Fh D3D12_PixelShader_YUV_JPEG%SUFFIX% -Vn D3D12_PixelShader_YUV_JPEG D3D12_PixelShader_YUV_JPEG.hlsl \ No newline at end of file diff --git a/engine/lib/sdl/VisualC-GDK/tests/testgamecontroller/PackageLayout.xml b/engine/lib/sdl/VisualC-GDK/tests/testgamecontroller/PackageLayout.xml new file mode 100644 index 000000000..cda188c7c --- /dev/null +++ b/engine/lib/sdl/VisualC-GDK/tests/testgamecontroller/PackageLayout.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/engine/lib/sdl/VisualC-GDK/tests/testgamecontroller/wingdk/MicrosoftGame.config b/engine/lib/sdl/VisualC-GDK/tests/testgamecontroller/wingdk/MicrosoftGame.config new file mode 100644 index 000000000..eb4ec4e17 --- /dev/null +++ b/engine/lib/sdl/VisualC-GDK/tests/testgamecontroller/wingdk/MicrosoftGame.config @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + PleaseChangeMe + FFFFFFFF + + + \ No newline at end of file diff --git a/engine/lib/sdl/VisualC-GDK/tests/testgamecontroller/xboxone/MicrosoftGame.config b/engine/lib/sdl/VisualC-GDK/tests/testgamecontroller/xboxone/MicrosoftGame.config new file mode 100644 index 000000000..c18d626d5 --- /dev/null +++ b/engine/lib/sdl/VisualC-GDK/tests/testgamecontroller/xboxone/MicrosoftGame.config @@ -0,0 +1,29 @@ + + + + + + + + + + + + PleaseChangeMe + FFFFFFFF + + + \ No newline at end of file diff --git a/engine/lib/sdl/VisualC-GDK/tests/testgamecontroller/xboxseries/MicrosoftGame.config b/engine/lib/sdl/VisualC-GDK/tests/testgamecontroller/xboxseries/MicrosoftGame.config new file mode 100644 index 000000000..53ba05d1e --- /dev/null +++ b/engine/lib/sdl/VisualC-GDK/tests/testgamecontroller/xboxseries/MicrosoftGame.config @@ -0,0 +1,29 @@ + + + + + + + + + + + + PleaseChangeMe + FFFFFFFF + + + \ No newline at end of file diff --git a/engine/lib/sdl/VisualC-GDK/tests/testgdk/PackageLayout.xml b/engine/lib/sdl/VisualC-GDK/tests/testgdk/PackageLayout.xml new file mode 100644 index 000000000..abee981bd --- /dev/null +++ b/engine/lib/sdl/VisualC-GDK/tests/testgdk/PackageLayout.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/engine/lib/sdl/VisualC-GDK/tests/testgdk/src/testgdk.cpp b/engine/lib/sdl/VisualC-GDK/tests/testgdk/src/testgdk.cpp new file mode 100644 index 000000000..21c89d25f --- /dev/null +++ b/engine/lib/sdl/VisualC-GDK/tests/testgdk/src/testgdk.cpp @@ -0,0 +1,503 @@ +/* + Copyright (C) 1997-2025 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. +*/ +/* testgdk: Basic tests of using task queue/xbl (with simple drawing) in GDK. + * NOTE: As of June 2022 GDK, login will only work if MicrosoftGame.config is + * configured properly. See README-gdk.md. + */ + +#include +#include +#include + +#include "SDL_test.h" +#include "SDL_test_common.h" +#include "../src/core/windows/SDL_windows.h" + +extern "C" { +#include "../test/testutils.h" +} + +#include + +#define NUM_SPRITES 100 +#define MAX_SPEED 1 + +static SDLTest_CommonState *state; +static int num_sprites; +static SDL_Texture **sprites; +static SDL_bool cycle_color; +static SDL_bool cycle_alpha; +static int cycle_direction = 1; +static int current_alpha = 0; +static int current_color = 0; +static int sprite_w, sprite_h; +static SDL_BlendMode blendMode = SDL_BLENDMODE_BLEND; + +int done; + +static struct +{ + SDL_AudioSpec spec; + Uint8 *sound; /* Pointer to wave data */ + Uint32 soundlen; /* Length of wave data */ + int soundpos; /* Current play position */ +} wave; + +static SDL_AudioDeviceID device; + +static void +close_audio() +{ + if (device != 0) { + SDL_CloseAudioDevice(device); + device = 0; + } +} + +/* Call this instead of exit(), so we can clean up SDL: atexit() is evil. */ +static void +quit(int rc) +{ + SDL_free(sprites); + close_audio(); + SDL_FreeWAV(wave.sound); + SDLTest_CommonQuit(state); + /* If rc is 0, just let main return normally rather than calling exit. + * This allows testing of platforms where SDL_main is required and does meaningful cleanup. + */ + if (rc != 0) { + exit(rc); + } +} + +static void +open_audio() +{ + /* Initialize fillerup() variables */ + device = SDL_OpenAudioDevice(NULL, SDL_FALSE, &wave.spec, NULL, 0); + if (!device) { + SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't open audio: %s\n", SDL_GetError()); + SDL_FreeWAV(wave.sound); + quit(2); + } + + /* Let the audio run */ + SDL_PauseAudioDevice(device, SDL_FALSE); +} + +static void +reopen_audio() +{ + close_audio(); + open_audio(); +} + +void SDLCALL +fillerup(void *unused, Uint8 *stream, int len) +{ + Uint8 *waveptr; + int waveleft; + + /* Set up the pointers */ + waveptr = wave.sound + wave.soundpos; + waveleft = wave.soundlen - wave.soundpos; + + /* Go! */ + while (waveleft <= len) { + SDL_memcpy(stream, waveptr, waveleft); + stream += waveleft; + len -= waveleft; + waveptr = wave.sound; + waveleft = wave.soundlen; + wave.soundpos = 0; + } + SDL_memcpy(stream, waveptr, len); + wave.soundpos += len; +} + +void +UserLoggedIn(XUserHandle user) +{ + HRESULT hr; + char gamertag[128]; + hr = XUserGetGamertag(user, XUserGamertagComponent::UniqueModern, sizeof(gamertag), gamertag, NULL); + + if (SUCCEEDED(hr)) { + SDL_Log("User logged in: %s", gamertag); + } else { + SDL_Log("[GDK] UserLoggedIn -- XUserGetGamertag failed: 0x%08x.", hr); + } + + XUserCloseHandle(user); +} + +void +AddUserUICallback(XAsyncBlock *asyncBlock) +{ + HRESULT hr; + XUserHandle user = NULL; + + hr = XUserAddResult(asyncBlock, &user); + if (SUCCEEDED(hr)) { + uint64_t userId; + + hr = XUserGetId(user, &userId); + if (FAILED(hr)) { + /* If unable to get the user ID, it means the account is banned, etc. */ + SDL_Log("[GDK] AddUserSilentCallback -- XUserGetId failed: 0x%08x.", hr); + XUserCloseHandle(user); + + /* Per the docs, likely should call XUserResolveIssueWithUiAsync here. */ + } else { + UserLoggedIn(user); + } + } else { + SDL_Log("[GDK] AddUserUICallback -- XUserAddAsync failed: 0x%08x.", hr); + } + + delete asyncBlock; +} + +void +AddUserUI() +{ + HRESULT hr; + XAsyncBlock *asyncBlock = new XAsyncBlock; + + asyncBlock->context = NULL; + asyncBlock->queue = NULL; /* A null queue will use the global process task queue */ + asyncBlock->callback = &AddUserUICallback; + + hr = XUserAddAsync(XUserAddOptions::None, asyncBlock); + + if (FAILED(hr)) { + delete asyncBlock; + SDL_Log("[GDK] AddUserSilent -- failed: 0x%08x", hr); + } +} + +void +AddUserSilentCallback(XAsyncBlock *asyncBlock) +{ + HRESULT hr; + XUserHandle user = NULL; + + hr = XUserAddResult(asyncBlock, &user); + if (SUCCEEDED(hr)) { + uint64_t userId; + + hr = XUserGetId(user, &userId); + if (FAILED(hr)) { + /* If unable to get the user ID, it means the account is banned, etc. */ + SDL_Log("[GDK] AddUserSilentCallback -- XUserGetId failed: 0x%08x. Trying with UI.", hr); + XUserCloseHandle(user); + AddUserUI(); + } else { + UserLoggedIn(user); + } + } else { + SDL_Log("[GDK] AddUserSilentCallback -- XUserAddAsync failed: 0x%08x. Trying with UI.", hr); + AddUserUI(); + } + + delete asyncBlock; +} + +void +AddUserSilent() +{ + HRESULT hr; + XAsyncBlock *asyncBlock = new XAsyncBlock; + + asyncBlock->context = NULL; + asyncBlock->queue = NULL; /* A null queue will use the global process task queue */ + asyncBlock->callback = &AddUserSilentCallback; + + hr = XUserAddAsync(XUserAddOptions::AddDefaultUserSilently, asyncBlock); + + if (FAILED(hr)) { + delete asyncBlock; + SDL_Log("[GDK] AddUserSilent -- failed: 0x%08x", hr); + } +} + +int +LoadSprite(const char *file) +{ + int i; + + for (i = 0; i < state->num_windows; ++i) { + /* This does the SDL_LoadBMP step repeatedly, but that's OK for test code. */ + sprites[i] = LoadTexture(state->renderers[i], file, SDL_TRUE, &sprite_w, &sprite_h); + if (!sprites[i]) { + return -1; + } + if (SDL_SetTextureBlendMode(sprites[i], blendMode) < 0) { + SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't set blend mode: %s\n", SDL_GetError()); + SDL_DestroyTexture(sprites[i]); + return -1; + } + } + + /* We're ready to roll. :) */ + return 0; +} + +void +DrawSprites(SDL_Renderer * renderer, SDL_Texture * sprite) +{ + SDL_Rect viewport, temp; + + /* Query the sizes */ + SDL_RenderGetViewport(renderer, &viewport); + + /* Cycle the color and alpha, if desired */ + if (cycle_color) { + current_color += cycle_direction; + if (current_color < 0) { + current_color = 0; + cycle_direction = -cycle_direction; + } + if (current_color > 255) { + current_color = 255; + cycle_direction = -cycle_direction; + } + SDL_SetTextureColorMod(sprite, 255, (Uint8) current_color, + (Uint8) current_color); + } + if (cycle_alpha) { + current_alpha += cycle_direction; + if (current_alpha < 0) { + current_alpha = 0; + cycle_direction = -cycle_direction; + } + if (current_alpha > 255) { + current_alpha = 255; + cycle_direction = -cycle_direction; + } + SDL_SetTextureAlphaMod(sprite, (Uint8) current_alpha); + } + + /* Draw a gray background */ + SDL_SetRenderDrawColor(renderer, 0xA0, 0xA0, 0xA0, 0xFF); + SDL_RenderClear(renderer); + + /* Test points */ + SDL_SetRenderDrawColor(renderer, 0xFF, 0x00, 0x00, 0xFF); + SDL_RenderDrawPoint(renderer, 0, 0); + SDL_RenderDrawPoint(renderer, viewport.w-1, 0); + SDL_RenderDrawPoint(renderer, 0, viewport.h-1); + SDL_RenderDrawPoint(renderer, viewport.w-1, viewport.h-1); + + /* 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 fill and copy */ + SDL_SetRenderDrawColor(renderer, 0xFF, 0xFF, 0xFF, 0xFF); + temp.x = 1; + temp.y = 1; + temp.w = sprite_w; + temp.h = sprite_h; + SDL_RenderFillRect(renderer, &temp); + SDL_RenderCopy(renderer, sprite, NULL, &temp); + temp.x = viewport.w-sprite_w-1; + temp.y = 1; + temp.w = sprite_w; + temp.h = sprite_h; + SDL_RenderFillRect(renderer, &temp); + SDL_RenderCopy(renderer, sprite, NULL, &temp); + temp.x = 1; + temp.y = viewport.h-sprite_h-1; + temp.w = sprite_w; + temp.h = sprite_h; + SDL_RenderFillRect(renderer, &temp); + SDL_RenderCopy(renderer, sprite, NULL, &temp); + temp.x = viewport.w-sprite_w-1; + temp.y = viewport.h-sprite_h-1; + temp.w = sprite_w; + temp.h = sprite_h; + SDL_RenderFillRect(renderer, &temp); + SDL_RenderCopy(renderer, sprite, NULL, &temp); + + /* Test diagonal lines */ + SDL_SetRenderDrawColor(renderer, 0x00, 0xFF, 0x00, 0xFF); + SDL_RenderDrawLine(renderer, sprite_w, sprite_h, + viewport.w-sprite_w-2, viewport.h-sprite_h-2); + SDL_RenderDrawLine(renderer, viewport.w-sprite_w-2, sprite_h, + sprite_w, viewport.h-sprite_h-2); + + /* Update the screen! */ + SDL_RenderPresent(renderer); +} + +void +loop() +{ + int i; + SDL_Event event; + + /* Check for events */ + while (SDL_PollEvent(&event)) { + if (event.type == SDL_KEYDOWN && !event.key.repeat) { + SDL_Log("Initial SDL_KEYDOWN: %s", SDL_GetScancodeName(event.key.keysym.scancode)); + } +#if defined(__XBOXONE__) || defined(__XBOXSERIES__) + /* On Xbox, ignore the keydown event because the features aren't supported */ + if (event.type != SDL_KEYDOWN) { + SDLTest_CommonEvent(state, &event, &done); + } +#else + SDLTest_CommonEvent(state, &event, &done); +#endif + } + for (i = 0; i < state->num_windows; ++i) { + if (state->windows[i] == NULL) { + continue; + } + DrawSprites(state->renderers[i], sprites[i]); + } +} + +int +main(int argc, char *argv[]) +{ + int i; + const char *icon = "icon.bmp"; + char *soundname = NULL; + + /* Initialize parameters */ + num_sprites = NUM_SPRITES; + + /* Initialize test framework */ + state = SDLTest_CommonCreateState(argv, SDL_INIT_VIDEO | SDL_INIT_AUDIO); + 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], "--blend") == 0) { + if (argv[i + 1]) { + if (SDL_strcasecmp(argv[i + 1], "none") == 0) { + blendMode = SDL_BLENDMODE_NONE; + consumed = 2; + } else if (SDL_strcasecmp(argv[i + 1], "blend") == 0) { + blendMode = SDL_BLENDMODE_BLEND; + consumed = 2; + } else if (SDL_strcasecmp(argv[i + 1], "add") == 0) { + blendMode = SDL_BLENDMODE_ADD; + consumed = 2; + } else if (SDL_strcasecmp(argv[i + 1], "mod") == 0) { + blendMode = SDL_BLENDMODE_MOD; + consumed = 2; + } else if (SDL_strcasecmp(argv[i + 1], "sub") == 0) { + blendMode = SDL_ComposeCustomBlendMode(SDL_BLENDFACTOR_SRC_ALPHA, SDL_BLENDFACTOR_ONE, SDL_BLENDOPERATION_SUBTRACT, SDL_BLENDFACTOR_ZERO, SDL_BLENDFACTOR_ONE, SDL_BLENDOPERATION_SUBTRACT); + consumed = 2; + } + } + } else if (SDL_strcasecmp(argv[i], "--cyclecolor") == 0) { + cycle_color = SDL_TRUE; + consumed = 1; + } else if (SDL_strcasecmp(argv[i], "--cyclealpha") == 0) { + cycle_alpha = SDL_TRUE; + consumed = 1; + } else if (SDL_isdigit(*argv[i])) { + num_sprites = SDL_atoi(argv[i]); + consumed = 1; + } else if (argv[i][0] != '-') { + icon = argv[i]; + consumed = 1; + } + } + if (consumed < 0) { + static const char *options[] = { + "[--blend none|blend|add|mod]", + "[--cyclecolor]", + "[--cyclealpha]", + "[num_sprites]", + "[icon.bmp]", + NULL }; + SDLTest_CommonLogUsage(state, argv[0], options); + quit(1); + } + i += consumed; + } + if (!SDLTest_CommonInit(state)) { + quit(2); + } + + /* Create the windows, initialize the renderers, and load the textures */ + sprites = + (SDL_Texture **) SDL_malloc(state->num_windows * sizeof(*sprites)); + if (!sprites) { + SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Out of memory!\n"); + quit(2); + } + for (i = 0; i < state->num_windows; ++i) { + SDL_Renderer *renderer = state->renderers[i]; + SDL_SetRenderDrawColor(renderer, 0xA0, 0xA0, 0xA0, 0xFF); + SDL_RenderClear(renderer); + } + if (LoadSprite(icon) < 0) { + quit(2); + } + + soundname = GetResourceFilename(argc > 1 ? argv[1] : NULL, "sample.wav"); + + if (!soundname) { + SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "%s\n", SDL_GetError()); + quit(1); + } + + /* Load the wave file into memory */ + if (SDL_LoadWAV(soundname, &wave.spec, &wave.sound, &wave.soundlen) == NULL) { + SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't load %s: %s\n", soundname, SDL_GetError()); + quit(1); + } + + wave.spec.callback = fillerup; + + /* Show the list of available drivers */ + SDL_Log("Available audio drivers:"); + for (i = 0; i < SDL_GetNumAudioDrivers(); ++i) { + SDL_Log("%i: %s", i, SDL_GetAudioDriver(i)); + } + + SDL_Log("Using audio driver: %s\n", SDL_GetCurrentAudioDriver()); + + open_audio(); + + /* Main render loop */ + done = 0; + + /* Try to add the default user silently */ + AddUserSilent(); + + while (!done) { + loop(); + } + + quit(0); + + SDL_free(soundname); + return 0; +} + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/engine/lib/sdl/VisualC-GDK/tests/testgdk/wingdk/MicrosoftGame.config b/engine/lib/sdl/VisualC-GDK/tests/testgdk/wingdk/MicrosoftGame.config new file mode 100644 index 000000000..afd57d69d --- /dev/null +++ b/engine/lib/sdl/VisualC-GDK/tests/testgdk/wingdk/MicrosoftGame.config @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + PleaseChangeMe + FFFFFFFF + + + \ No newline at end of file diff --git a/engine/lib/sdl/VisualC-GDK/tests/testgdk/xboxone/MicrosoftGame.config b/engine/lib/sdl/VisualC-GDK/tests/testgdk/xboxone/MicrosoftGame.config new file mode 100644 index 000000000..a593bd161 --- /dev/null +++ b/engine/lib/sdl/VisualC-GDK/tests/testgdk/xboxone/MicrosoftGame.config @@ -0,0 +1,29 @@ + + + + + + + + + + + + PleaseChangeMe + FFFFFFFF + + + \ No newline at end of file diff --git a/engine/lib/sdl/VisualC-GDK/tests/testgdk/xboxseries/MicrosoftGame.config b/engine/lib/sdl/VisualC-GDK/tests/testgdk/xboxseries/MicrosoftGame.config new file mode 100644 index 000000000..1ab7c17ff --- /dev/null +++ b/engine/lib/sdl/VisualC-GDK/tests/testgdk/xboxseries/MicrosoftGame.config @@ -0,0 +1,29 @@ + + + + + + + + + + + + PleaseChangeMe + FFFFFFFF + + + \ No newline at end of file diff --git a/engine/lib/sdl/VisualC-GDK/tests/testsprite2/PackageLayout.xml b/engine/lib/sdl/VisualC-GDK/tests/testsprite2/PackageLayout.xml new file mode 100644 index 000000000..62ca97bbe --- /dev/null +++ b/engine/lib/sdl/VisualC-GDK/tests/testsprite2/PackageLayout.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/engine/lib/sdl/VisualC-GDK/tests/testsprite2/wingdk/MicrosoftGame.config b/engine/lib/sdl/VisualC-GDK/tests/testsprite2/wingdk/MicrosoftGame.config new file mode 100644 index 000000000..8aa5865b2 --- /dev/null +++ b/engine/lib/sdl/VisualC-GDK/tests/testsprite2/wingdk/MicrosoftGame.config @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + PleaseChangeMe + FFFFFFFF + + + \ No newline at end of file diff --git a/engine/lib/sdl/VisualC-GDK/tests/testsprite2/xboxone/MicrosoftGame.config b/engine/lib/sdl/VisualC-GDK/tests/testsprite2/xboxone/MicrosoftGame.config new file mode 100644 index 000000000..23ac15a84 --- /dev/null +++ b/engine/lib/sdl/VisualC-GDK/tests/testsprite2/xboxone/MicrosoftGame.config @@ -0,0 +1,29 @@ + + + + + + + + + + + + PleaseChangeMe + FFFFFFFF + + + \ No newline at end of file diff --git a/engine/lib/sdl/VisualC-GDK/tests/testsprite2/xboxseries/MicrosoftGame.config b/engine/lib/sdl/VisualC-GDK/tests/testsprite2/xboxseries/MicrosoftGame.config new file mode 100644 index 000000000..288ee2901 --- /dev/null +++ b/engine/lib/sdl/VisualC-GDK/tests/testsprite2/xboxseries/MicrosoftGame.config @@ -0,0 +1,29 @@ + + + + + + + + + + + + PleaseChangeMe + FFFFFFFF + + + \ No newline at end of file diff --git a/engine/lib/sdl/VisualC/clean.sh b/engine/lib/sdl/VisualC/clean.sh new file mode 100755 index 000000000..fd16f9a12 --- /dev/null +++ b/engine/lib/sdl/VisualC/clean.sh @@ -0,0 +1,4 @@ +#!/bin/sh +find . -type f \( -name '*.user' -o -name '*.sdf' -o -name '*.ncb' -o -name '*.suo' \) -print -delete +find . -type f \( -name '*.bmp' -o -name '*.wav' -o -name '*.dat' \) -print -delete +find . -depth -type d \( -name Win32 -o -name x64 \) -exec rm -rv {} \; diff --git a/engine/lib/sdl/WhatsNew.txt b/engine/lib/sdl/WhatsNew.txt new file mode 100644 index 000000000..4e17d25aa --- /dev/null +++ b/engine/lib/sdl/WhatsNew.txt @@ -0,0 +1,889 @@ + +This is a list of major changes in SDL's version history. + +--------------------------------------------------------------------------- +2.30.0: +--------------------------------------------------------------------------- + +General: +* Added support for 2 bits-per-pixel indexed surface formats +* Added the function SDL_GameControllerGetSteamHandle() to get the Steam API handle for a controller, if available +* Added the event SDL_CONTROLLERSTEAMHANDLEUPDATED which is sent when the Steam API handle for a controller changes. This could also change the name, VID, and PID of the controller. +* Added the environment variable SDL_LOGGING to control default log output + +macOS: +* Added the hint SDL_HINT_JOYSTICK_IOKIT to control whether the IOKit controller driver should be used +* Added the hint SDL_HINT_JOYSTICK_MFI to control whether the GCController controller driver should be used +* Added the hint SDL_HINT_RENDER_METAL_PREFER_LOW_POWER_DEVICE to choose whether high or low power GPU should be used for rendering, in the case where there are multiple GPUs available + +Xbox: +* Added the function SDL_GDKGetDefaultUser() + +--------------------------------------------------------------------------- +2.28.2: +--------------------------------------------------------------------------- + +General: +* Added the hint SDL_HINT_JOYSTICK_WGI to control whether to use Windows.Gaming.Input for controllers + + +--------------------------------------------------------------------------- +2.28.0: +--------------------------------------------------------------------------- + +General: +* Added SDL_HasWindowSurface() and SDL_DestroyWindowSurface() to switch between the window surface and rendering APIs +* Added a display event SDL_DISPLAYEVENT_MOVED which is sent when the primary monitor changes or displays change position relative to each other +* Added the hint SDL_HINT_ENABLE_SCREEN_KEYBOARD to control whether the on-screen keyboard should be shown when text input is active + + +--------------------------------------------------------------------------- +2.26.0: +--------------------------------------------------------------------------- + +General: +* Updated OpenGL headers to the latest API from The Khronos Group Inc. +* Added SDL_GetWindowSizeInPixels() to get the window size in pixels, which may differ from the window coordinate size for windows with high-DPI support +* Added simulated vsync synchronization for the software renderer +* Added the mouse position to SDL_MouseWheelEvent +* Added SDL_ResetHints() to reset all hints to their default values +* Added SDL_GetJoystickGUIDInfo() to get device information encoded in a joystick GUID +* Added the hint SDL_HINT_JOYSTICK_HIDAPI_XBOX_360 to control whether the HIDAPI driver for XBox 360 controllers should be used +* Added the hint SDL_HINT_JOYSTICK_HIDAPI_XBOX_360_PLAYER_LED to control whether the player LEDs should be lit to indicate which player is associated with an Xbox 360 controller +* Added the hint SDL_HINT_JOYSTICK_HIDAPI_XBOX_360_WIRELESS to control whether the HIDAPI driver for XBox 360 wireless controllers should be used +* Added the hint SDL_HINT_JOYSTICK_HIDAPI_XBOX_ONE to control whether the HIDAPI driver for XBox One controllers should be used +* Added the hint SDL_HINT_JOYSTICK_HIDAPI_XBOX_ONE_HOME_LED to control the brightness of the XBox One guide button LED +* Added support for PS3 controllers to the HIDAPI driver, enabled by default on macOS, controlled by the SDL_HINT_JOYSTICK_HIDAPI_PS3 hint +* Added support for Nintendo Wii controllers to the HIDAPI driver, not enabled by default, controlled by the SDL_HINT_JOYSTICK_HIDAPI_WII hint +* Added the hint SDL_HINT_JOYSTICK_HIDAPI_WII_PLAYER_LED to control whether the player LED should be lit on the Nintendo Wii controllers +* Added the hint SDL_HINT_JOYSTICK_HIDAPI_VERTICAL_JOY_CONS to control whether Nintendo Switch Joy-Con controllers will be in vertical mode when using the HIDAPI driver +* Added access to the individual left and right gyro sensors of the combined Joy-Cons controller +* Added a microsecond timestamp to SDL_SensorEvent and SDL_ControllerSensorEvent, when the hardware provides that information +* Added SDL_SensorGetDataWithTimestamp() and SDL_GameControllerGetSensorDataWithTimestamp() to retrieve the last sensor data with the associated microsecond timestamp +* Added the hint SDL_HINT_HIDAPI_IGNORE_DEVICES to have the SDL HID API ignore specific devices +* SDL_GetRevision() now includes more information about the SDL build, including the git commit hash if available + +Windows: +* Added the hint SDL_HINT_MOUSE_RELATIVE_SYSTEM_SCALE to control whether the system mouse acceleration curve is used for relative mouse motion + +macOS: +* Implemented vsync synchronization on macOS 12 + +Linux: +* Added SDL_SetPrimarySelectionText(), SDL_GetPrimarySelectionText(), and SDL_HasPrimarySelectionText() to interact with the X11 primary selection clipboard +* Added the hint SDL_HINT_VIDEO_WAYLAND_EMULATE_MOUSE_WARP to control whether mouse pointer warp emulation is enabled under Wayland + +Android: +* Enabled IME soft keyboard input +* Added version checking to make sure the SDL Java and C code are compatible + + +--------------------------------------------------------------------------- +2.24.0: +--------------------------------------------------------------------------- + +General: +* New version numbering scheme, similar to GLib and Flatpak. + * An even number in the minor version (second component) indicates a production-ready stable release such as 2.24.0, which would have been 2.0.24 under the old system. + * The patchlevel (micro version, third component) indicates a bugfix-only update: for example, 2.24.1 would be a bugfix-only release to fix bugs in 2.24.0, without adding new features. + * An odd number in the minor version indicates a prerelease such as 2.23.0. Stable distributions should not use these prereleases. + * The patchlevel indicates successive prereleases, for example 2.23.1 and 2.23.2 would be prereleases during development of the SDL 2.24.0 stable release. +* Added SDL_GetPointDisplayIndex() and SDL_GetRectDisplayIndex() to get the display associated with a point and rectangle in screen space +* Added SDL_bsearch(), SDL_crc16(), and SDL_utf8strnlen() to the stdlib routines +* Added SDL_CPUPauseInstruction() as a macro in SDL_atomic.h +* Added SDL_size_mul_overflow() and SDL_size_add_overflow() for better size overflow protection +* Added SDL_ResetHint() to reset a hint to the default value +* Added SDL_ResetKeyboard() to reset SDL's internal keyboard state, generating key up events for all currently pressed keys +* Added the hint SDL_HINT_MOUSE_RELATIVE_WARP_MOTION to control whether mouse warping generates motion events in relative mode. This hint defaults off. +* Added the hint SDL_HINT_TRACKPAD_IS_TOUCH_ONLY to control whether trackpads are treated as touch devices or mice. By default touchpads are treated as mouse input. +* The hint SDL_HINT_JOYSTICK_HIDAPI_JOY_CONS now defaults on +* Added support for mini-gamepad mode for Nintendo Joy-Con controllers using the HIDAPI driver +* Added the hint SDL_HINT_JOYSTICK_HIDAPI_COMBINE_JOY_CONS to control whether Joy-Con controllers are automatically merged into a unified gamepad when using the HIDAPI driver. This hint defaults on. +* The hint SDL_HINT_JOYSTICK_HIDAPI_SWITCH_HOME_LED can be set to a floating point value to set the brightness of the Home LED on Nintendo Switch controllers +* Added the hint SDL_HINT_JOYSTICK_HIDAPI_JOYCON_HOME_LED to set the Home LED brightness for the Nintendo Joy-Con controllers. By default the Home LED is not modified. +* Added the hint SDL_HINT_JOYSTICK_HIDAPI_SWITCH_PLAYER_LED to control whether the player LED should be lit on the Nintendo Joy-Con controllers +* Added support for Nintendo Online classic controllers using the HIDAPI driver +* Added the hint SDL_HINT_JOYSTICK_HIDAPI_NINTENDO_CLASSIC to control whether the HIDAPI driver for Nintendo Online classic controllers should be used +* Added support for the NVIDIA Shield Controller to the HIDAPI driver, supporting rumble and battery status +* Added support for NVIDIA SHIELD controller to the HIDAPI driver, and a hint SDL_HINT_JOYSTICK_HIDAPI_SHIELD to control whether this is used +* Added functions to get the platform dependent name for a joystick or game controller: + * SDL_JoystickPathForIndex() + * SDL_JoystickPath() + * SDL_GameControllerPathForIndex() + * SDL_GameControllerPath() +* Added SDL_GameControllerGetFirmwareVersion() and SDL_JoystickGetFirmwareVersion(), currently implemented for DualSense(tm) Wireless Controllers using HIDAPI +* Added SDL_JoystickAttachVirtualEx() for extended virtual controller support +* Added joystick event SDL_JOYBATTERYUPDATED for when battery status changes +* Added SDL_GUIDToString() and SDL_GUIDFromString() to convert between SDL GUID and string +* Added SDL_HasLSX() and SDL_HasLASX() to detect LoongArch SIMD support +* Added SDL_GetOriginalMemoryFunctions() +* Added SDL_GetDefaultAudioInfo() to get the name and format of the default audio device, currently implemented for PipeWire, PulseAudio, WASAPI, and DirectSound +* Added HIDAPI driver for the NVIDIA SHIELD controller (2017 model) to enable support for battery status and rumble +* Added support for opening audio devices with 3 or 5 channels (2.1, 4.1). All channel counts from Mono to 7.1 are now supported. +* Rewrote audio channel converters used by SDL_AudioCVT, based on the channel matrix coefficients used as the default for FAudio voices +* SDL log messages are no longer limited to 4K and can be any length +* Fixed a long-standing calling convention issue with dynapi affecting OpenWatcom or OS/2 builds + +Windows: +* Added initial support for building for Windows and Xbox with Microsoft's Game Development Kit (GDK), see docs/README-gdk.md for details +* Added a D3D12 renderer implementation and SDL_RenderGetD3D12Device() to retrieve the D3D12 device associated with it +* Added the hint SDL_HINT_WINDOWS_DPI_AWARENESS to set whether the application is DPI-aware. This hint must be set before initializing the video subsystem +* Added the hint SDL_HINT_WINDOWS_DPI_SCALING to control whether the SDL coordinates are in DPI-scaled points or pixels +* Added the hint SDL_HINT_DIRECTINPUT_ENABLED to control whether the DirectInput driver should be used +* Added support for SDL_GetAudioDeviceSpec to the DirectSound backend + +Linux: +* Support for XVidMode has been removed, mode changes are only supported using the XRandR extension +* Added the hint SDL_HINT_VIDEO_WAYLAND_MODE_EMULATION to control whether to expose a set of emulated modes in addition to the native resolution modes available on Wayland +* Added the hint SDL_HINT_KMSDRM_DEVICE_INDEX to specify which KMSDRM device to use if the default is not desired +* Added the hint SDL_HINT_LINUX_DIGITAL_HATS to control whether to treat hats as digital rather than checking to see if they may be analog +* Added the hint SDL_HINT_LINUX_HAT_DEADZONES to control whether to use deadzones on analog hats + +macOS: +* Bumped minimum OS deployment version to macOS 10.9 +* Added SDL_GL_FLOATBUFFERS to allow Cocoa GL contexts to use EDR +* Added the hint SDL_HINT_MAC_OPENGL_ASYNC_DISPATCH to control whether dispatching OpenGL context updates should block the dispatching thread until the main thread finishes processing. This hint defaults to blocking, which is the safer option on modern macOS. + + +--------------------------------------------------------------------------- +2.0.22: +--------------------------------------------------------------------------- + +General: +* Added SDL_RenderGetWindow() to get the window associated with a renderer +* Added floating point rectangle functions: + * SDL_PointInFRect() + * SDL_FRectEmpty() + * SDL_FRectEquals() + * SDL_FRectEqualsEpsilon() + * SDL_HasIntersectionF() + * SDL_IntersectFRect() + * SDL_UnionFRect() + * SDL_EncloseFPoints() + * SDL_IntersectFRectAndLine() +* Added SDL_IsTextInputShown() which returns whether the IME window is currently shown +* Added SDL_ClearComposition() to dismiss the composition window without disabling IME input +* Added SDL_TEXTEDITING_EXT event for handling long composition text, and a hint SDL_HINT_IME_SUPPORT_EXTENDED_TEXT to enable it +* Added the hint SDL_HINT_MOUSE_RELATIVE_MODE_CENTER to control whether the mouse should be constrained to the whole window or the center of the window when relative mode is enabled +* The mouse is now automatically captured when mouse buttons are pressed, and the hint SDL_HINT_MOUSE_AUTO_CAPTURE allows you to control this behavior +* Added the hint SDL_HINT_VIDEO_FOREIGN_WINDOW_OPENGL to let SDL know that a foreign window will be used with OpenGL +* Added the hint SDL_HINT_VIDEO_FOREIGN_WINDOW_VULKAN to let SDL know that a foreign window will be used with Vulkan +* Added the hint SDL_HINT_QUIT_ON_LAST_WINDOW_CLOSE to specify whether an SDL_QUIT event will be delivered when the last application window is closed +* Added the hint SDL_HINT_JOYSTICK_ROG_CHAKRAM to control whether ROG Chakram mice show up as joysticks + +Windows: +* Added support for SDL_BLENDOPERATION_MINIMUM and SDL_BLENDOPERATION_MAXIMUM to the D3D9 renderer + +Linux: +* Compiling with Wayland support requires libwayland-client version 1.18.0 or later +* Added the hint SDL_HINT_X11_WINDOW_TYPE to specify the _NET_WM_WINDOW_TYPE of SDL windows +* Added the hint SDL_HINT_VIDEO_WAYLAND_PREFER_LIBDECOR to allow using libdecor with compositors that support xdg-decoration + +Android: +* Added SDL_AndroidSendMessage() to send a custom command to the SDL java activity + + +--------------------------------------------------------------------------- +2.0.20: +--------------------------------------------------------------------------- + +General: +* SDL_RenderGeometryRaw() takes a pointer to SDL_Color, not int. You can cast color data in SDL_PIXELFORMAT_RGBA32 format (SDL_PIXELFORMAT_ABGR8888 on little endian systems) for this parameter. +* Improved accuracy of horizontal and vertical line drawing when using OpenGL or OpenGLES +* Added the hint SDL_HINT_RENDER_LINE_METHOD to control the method of line drawing used, to select speed, correctness, and compatibility. + +Windows: +* Fixed size of custom cursors + +Linux: +* Fixed hotplug controller detection, broken in 2.0.18 + + +--------------------------------------------------------------------------- +2.0.18: +--------------------------------------------------------------------------- + +General: +* The SDL wiki documentation and development headers are automatically kept in sync +* Each function has information about in which version of SDL it was introduced +* SDL-specific CMake options are now prefixed with 'SDL_'. Be sure to update your CMake build scripts accordingly! +* Added the hint SDL_HINT_APP_NAME to let SDL know the name of your application for various places it might show up in system information +* Added SDL_RenderGeometry() and SDL_RenderGeometryRaw() to allow rendering of arbitrary shapes using the SDL 2D render API +* Added SDL_SetTextureUserData() and SDL_GetTextureUserData() to associate application data with an SDL texture +* Added SDL_RenderWindowToLogical() and SDL_RenderLogicalToWindow() to convert between window coordinates and logical render coordinates +* Added SDL_RenderSetVSync() to change whether a renderer present is synchronized with vblank at runtime +* Added SDL_PremultiplyAlpha() to premultiply alpha on a block of SDL_PIXELFORMAT_ARGB8888 pixels +* Added a window event SDL_WINDOWEVENT_DISPLAY_CHANGED which is sent when a window changes what display it's centered on +* Added SDL_GetWindowICCProfile() to query a window's ICC profile, and a window event SDL_WINDOWEVENT_ICCPROF_CHANGED that is sent when it changes +* Added the hint SDL_HINT_VIDEO_EGL_ALLOW_TRANSPARENCY to allow EGL windows to be transparent instead of opaque +* SDL_WaitEvent() has been redesigned to use less CPU in most cases +* Added SDL_SetWindowMouseRect() and SDL_GetWindowMouseRect() to confine the mouse cursor to an area of a window +* You can now read precise mouse wheel motion using 'preciseX' and 'preciseY' event fields +* Added SDL_GameControllerHasRumble() and SDL_GameControllerHasRumbleTriggers() to query whether a game controller supports rumble +* Added SDL_JoystickHasRumble() and SDL_JoystickHasRumbleTriggers() to query whether a joystick supports rumble +* SDL's hidapi implementation is now available as a public API in SDL_hidapi.h + +Windows: +* Improved relative mouse motion over Windows Remote Desktop +* Added the hint SDL_HINT_IME_SHOW_UI to show native UI components instead of hiding them (defaults off) + +Windows/UWP: +* WGI is used instead of XInput for better controller support in UWP apps + +Linux: +* Added the hint SDL_HINT_SCREENSAVER_INHIBIT_ACTIVITY_NAME to set the activity that's displayed by the system when the screensaver is disabled +* Added the hint SDL_HINT_LINUX_JOYSTICK_CLASSIC to control whether /dev/input/js* or /dev/input/event* are used as joystick devices +* Added the hint SDL_HINT_JOYSTICK_DEVICE to allow the user to specify devices that will be opened in addition to the normal joystick detection +* Added SDL_LinuxSetThreadPriorityAndPolicy() for more control over a thread priority on Linux + +Android: +* Added support for audio output and capture using AAudio on Android 8.1 and newer +* Steam Controller support is disabled by default, and can be enabled by setting the hint SDL_HINT_JOYSTICK_HIDAPI_STEAM to "1" before calling SDL_Init() + +Apple Arcade: +* Added SDL_GameControllerGetAppleSFSymbolsNameForButton() and SDL_GameControllerGetAppleSFSymbolsNameForAxis() to support Apple Arcade titles + +iOS: +* Added documentation that the UIApplicationSupportsIndirectInputEvents key must be set to true in your application's Info.plist in order to get real Bluetooth mouse events. +* Steam Controller support is disabled by default, and can be enabled by setting the hint SDL_HINT_JOYSTICK_HIDAPI_STEAM to "1" before calling SDL_Init() + + +--------------------------------------------------------------------------- +2.0.16: +--------------------------------------------------------------------------- +General: +* Added SDL_FlashWindow() to get a user's attention +* Added SDL_GetAudioDeviceSpec() to get the preferred audio format of a device +* Added SDL_SetWindowAlwaysOnTop() to dynamically change the SDL_WINDOW_ALWAYS_ON_TOP flag for a window +* Added SDL_SetWindowKeyboardGrab() to support grabbing the keyboard independently of the mouse +* Added SDL_SoftStretchLinear() to do bilinear scaling between 32-bit software surfaces +* Added SDL_UpdateNVTexture() to update streaming NV12/21 textures +* Added SDL_GameControllerSendEffect() and SDL_JoystickSendEffect() to allow sending custom trigger effects to the DualSense controller +* Added SDL_GameControllerGetSensorDataRate() to get the sensor data rate for PlayStation and Nintendo Switch controllers +* Added support for the Amazon Luna game controller +* Added rumble support for the Google Stadia controller using the HIDAPI driver +* Added SDL_GameControllerType constants for the Amazon Luna and Google Stadia controllers +* Added analog rumble for Nintendo Switch Pro controllers using the HIDAPI driver +* Reduced CPU usage when using SDL_WaitEvent() and SDL_WaitEventTimeout() + +Windows: +* Added SDL_SetWindowsMessageHook() to set a function that is called for all Windows messages +* Added SDL_RenderGetD3D11Device() to get the D3D11 device used by the SDL renderer + +Linux: +* Greatly improved Wayland support +* Added support for audio output and capture using Pipewire +* Added the hint SDL_HINT_AUDIO_INCLUDE_MONITORS to control whether PulseAudio recording should include monitor devices +* Added the hint SDL_HINT_AUDIO_DEVICE_STREAM_ROLE to describe the role of your application for audio control panels + +Android: +* Added SDL_AndroidShowToast() to show a lightweight notification + +iOS: +* Added support for mouse relative mode on iOS 14.1 and newer +* Added support for the Xbox Series X controller + +tvOS: +* Added support for the Xbox Series X controller + + +--------------------------------------------------------------------------- +2.0.14: +--------------------------------------------------------------------------- +General: +* Added support for PS5 DualSense and Xbox Series X controllers to the HIDAPI controller driver +* Added game controller button constants for paddles and new buttons +* Added game controller functions to get additional information: + * SDL_GameControllerGetSerial() + * SDL_GameControllerHasAxis() + * SDL_GameControllerHasButton() + * SDL_GameControllerGetNumTouchpads() + * SDL_GameControllerGetNumTouchpadFingers() + * SDL_GameControllerGetTouchpadFinger() + * SDL_GameControllerHasSensor() + * SDL_GameControllerSetSensorEnabled() + * SDL_GameControllerIsSensorEnabled() + * SDL_GameControllerGetSensorData() + * SDL_GameControllerRumbleTriggers() + * SDL_GameControllerHasLED() + * SDL_GameControllerSetLED() +* Added the hint SDL_HINT_JOYSTICK_HIDAPI_PS5 to control whether the HIDAPI driver for PS5 controllers should be used. +* Added joystick functions to get additional information: + * SDL_JoystickGetSerial() + * SDL_JoystickRumbleTriggers() + * SDL_JoystickHasLED() + * SDL_JoystickSetLED() +* Added an API to allow the application to create virtual joysticks: + * SDL_JoystickAttachVirtual() + * SDL_JoystickDetachVirtual() + * SDL_JoystickIsVirtual() + * SDL_JoystickSetVirtualAxis() + * SDL_JoystickSetVirtualButton() + * SDL_JoystickSetVirtualHat() +* Added SDL_LockSensors() and SDL_UnlockSensors() to guarantee exclusive access to the sensor list +* Added SDL_HAPTIC_STEERING_AXIS to play an effect on the steering wheel +* Added the hint SDL_HINT_MOUSE_RELATIVE_SCALING to control whether relative motion is scaled by the screen DPI or renderer logical size +* The default value for SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS is now false for better compatibility with modern window managers +* Added SDL_GetPreferredLocales() to get the application's current locale setting +* Added the hint SDL_HINT_PREFERRED_LOCALES to override your application's default locale setting +* Added SDL_OpenURL() to open a URL in the system's default browser +* Added SDL_HasSurfaceRLE() to tell whether a surface is currently using RLE encoding +* Added SDL_SIMDRealloc() to reallocate memory obtained from SDL_SIMDAlloc() +* Added SDL_GetErrorMsg() to get the last error in a thread-safe way +* Added SDL_crc32(), SDL_wcscasecmp(), SDL_wcsncasecmp(), SDL_trunc(), SDL_truncf() +* Added clearer names for RGB pixel formats, e.g. SDL_PIXELFORMAT_XRGB8888, SDL_PIXELFORMAT_XBGR8888, etc. + +Windows: +* Added the RAWINPUT controller driver to support more than 4 Xbox controllers simultaneously +* Added the hint SDL_HINT_JOYSTICK_RAWINPUT to control whether the RAWINPUT driver should be used +* Added the hint SDL_HINT_JOYSTICK_HIDAPI_CORRELATE_XINPUT to control whether XInput and WGI should be used to for complete controller functionality with the RAWINPUT driver. + +macOS: +* Added the SDL_WINDOW_METAL flag to specify that a window should be created with a Metal view +* Added SDL_Metal_GetLayer() to get the CAMetalLayer backing a Metal view +* Added SDL_Metal_GetDrawableSize() to get the size of a window's drawable, in pixels + +Linux: +* Added the hint SDL_HINT_AUDIO_DEVICE_APP_NAME to specify the name that shows up in PulseAudio for your application +* Added the hint SDL_HINT_AUDIO_DEVICE_STREAM_NAME to specify the name that shows up in PulseAudio associated with your audio stream +* Added the hint SDL_HINT_LINUX_JOYSTICK_DEADZONES to control whether HID defined dead zones should be respected on Linux +* Added the hint SDL_HINT_THREAD_PRIORITY_POLICY to specify the thread scheduler policy +* Added the hint SDL_HINT_THREAD_FORCE_REALTIME_TIME_CRITICAL to allow time critical threads to use a realtime scheduling policy + +Android: +* Added SDL_AndroidRequestPermission() to request a specific system permission +* Added the hint SDL_HINT_ANDROID_BLOCK_ON_PAUSE_PAUSEAUDIO to control whether audio will pause when the application goes intot he background + +OS/2: +* Added support for OS/2, see docs/README-os2.md for details + +Emscripten (running in a web browser): +* Added the hint SDL_HINT_EMSCRIPTEN_ASYNCIFY to control whether SDL should call emscripten_sleep internally + + +--------------------------------------------------------------------------- +2.0.12: +--------------------------------------------------------------------------- + +General: +* Added SDL_GetTextureScaleMode() and SDL_SetTextureScaleMode() to get and set the scaling mode used for a texture +* Added SDL_LockTextureToSurface(), similar to SDL_LockTexture() but the locked area is exposed as a SDL surface. +* Added new blend mode, SDL_BLENDMODE_MUL, which does a modulate and blend operation +* Added the hint SDL_HINT_DISPLAY_USABLE_BOUNDS to override the results of SDL_GetDisplayUsableBounds() for display index 0. +* Added the window underneath the finger to the SDL_TouchFingerEvent +* Added SDL_GameControllerTypeForIndex(), SDL_GameControllerGetType() to return the type of a game controller (Xbox 360, Xbox One, PS3, PS4, or Nintendo Switch Pro) +* Added the hint SDL_HINT_GAMECONTROLLERTYPE to override the automatic game controller type detection +* Added SDL_JoystickFromPlayerIndex() and SDL_GameControllerFromPlayerIndex() to get the device associated with a player index +* Added SDL_JoystickSetPlayerIndex() and SDL_GameControllerSetPlayerIndex() to set the player index associated with a device +* Added the hint SDL_HINT_GAMECONTROLLER_USE_BUTTON_LABELS to specify whether Nintendo Switch Pro controllers should use the buttons as labeled or swapped to match positional layout. The default is to use the buttons as labeled. +* Added support for Nintendo GameCube controllers to the HIDAPI driver, and a hint SDL_HINT_JOYSTICK_HIDAPI_GAMECUBE to control whether this is used. +* Improved support for Xbox 360 and Xbox One controllers when using the HIDAPI driver +* Added support for many game controllers, including: + * 8BitDo FC30 Pro + * 8BitDo M30 GamePad + * BDA PS4 Fightpad + * HORI Fighting Commander + * Hyperkin Duke + * Hyperkin X91 + * MOGA XP5-A Plus + * NACON GC-400ES + * NVIDIA Controller v01.04 + * PDP Versus Fighting Pad + * Razer Raion Fightpad for PS4 + * Razer Serval + * Stadia Controller + * SteelSeries Stratus Duo + * Victrix Pro Fight Stick for PS4 + * Xbox One Elite Series 2 +* Fixed blocking game controller rumble calls when using the HIDAPI driver +* Added SDL_zeroa() macro to zero an array of elements +* Added SDL_HasARMSIMD() which returns true if the CPU has ARM SIMD (ARMv6+) features + +Windows: +* Fixed crash when using the release SDL DLL with applications built with gcc +* Fixed performance regression in event handling introduced in 2.0.10 +* Added support for SDL_SetThreadPriority() for UWP applications + +Linux: +* Added the hint SDL_HINT_VIDEO_X11_WINDOW_VISUALID to specify the visual chosen for new X11 windows +* Added the hint SDL_HINT_VIDEO_X11_FORCE_EGL to specify whether X11 should use GLX or EGL by default + +iOS / tvOS / macOS: +* Added SDL_Metal_CreateView() and SDL_Metal_DestroyView() to create CAMetalLayer-backed NSView/UIView and attach it to the specified window. + +iOS/ tvOS: +* Added support for Bluetooth Steam Controllers as game controllers + +tvOS: +* Fixed support for surround sound on Apple TV + +Android: +* Added SDL_GetAndroidSDKVersion() to return the API level of the current device +* Added support for audio capture using OpenSL-ES +* Added support for Bluetooth Steam Controllers as game controllers +* Fixed rare crashes when the app goes into the background or terminates + + +--------------------------------------------------------------------------- +2.0.10: +--------------------------------------------------------------------------- + +General: +* The SDL_RW* macros have been turned into functions that are available only in 2.0.10 and onward +* Added SDL_SIMDGetAlignment(), SDL_SIMDAlloc(), and SDL_SIMDFree(), to allocate memory aligned for SIMD operations for the current CPU +* Added SDL_RenderDrawPointF(), SDL_RenderDrawPointsF(), SDL_RenderDrawLineF(), SDL_RenderDrawLinesF(), SDL_RenderDrawRectF(), SDL_RenderDrawRectsF(), SDL_RenderFillRectF(), SDL_RenderFillRectsF(), SDL_RenderCopyF(), SDL_RenderCopyExF(), to allow floating point precision in the SDL rendering API. +* Added SDL_GetTouchDeviceType() to get the type of a touch device, which can be a touch screen or a trackpad in relative or absolute coordinate mode. +* The SDL rendering API now uses batched rendering by default, for improved performance +* Added SDL_RenderFlush() to force batched render commands to execute, if you're going to mix SDL rendering with native rendering +* Added the hint SDL_HINT_RENDER_BATCHING to control whether batching should be used for the rendering API. This defaults to "1" if you don't specify what rendering driver to use when creating the renderer. +* Added the hint SDL_HINT_EVENT_LOGGING to enable logging of SDL events for debugging purposes +* Added the hint SDL_HINT_GAMECONTROLLERCONFIG_FILE to specify a file that will be loaded at joystick initialization with game controller bindings +* Added the hint SDL_HINT_MOUSE_TOUCH_EVENTS to control whether SDL will synthesize touch events from mouse events +* Improved handling of malformed WAVE and BMP files, fixing potential security exploits + +Linux: +* Removed the Mir video driver in favor of Wayland + +iOS / tvOS: +* Added support for Xbox and PS4 wireless controllers in iOS 13 and tvOS 13 +* Added support for text input using Bluetooth keyboards + +Android: +* Added low latency audio using OpenSL ES +* Removed SDL_HINT_ANDROID_SEPARATE_MOUSE_AND_TOUCH (replaced by SDL_HINT_MOUSE_TOUCH_EVENTS and SDL_HINT_TOUCH_MOUSE_EVENTS) + SDL_HINT_ANDROID_SEPARATE_MOUSE_AND_TOUCH=1, should be replaced by setting both previous hints to 0. + SDL_HINT_ANDROID_SEPARATE_MOUSE_AND_TOUCH=0, should be replaced by setting both previous hints to 1. +* Added the hint SDL_HINT_ANDROID_BLOCK_ON_PAUSE to set whether the event loop will block itself when the app is paused. + + +--------------------------------------------------------------------------- +2.0.9: +--------------------------------------------------------------------------- + +General: +* Added a new sensor API, initialized by passing SDL_INIT_SENSOR to SDL_Init(), and defined in SDL_sensor.h +* Added an event SDL_SENSORUPDATE which is sent when a sensor is updated +* Added SDL_GetDisplayOrientation() to return the current display orientation +* Added an event SDL_DISPLAYEVENT which is sent when the display orientation changes +* Added HIDAPI joystick drivers for more consistent support for Xbox, PS4 and Nintendo Switch Pro controller support across platforms. (Thanks to Valve for contributing the PS4 and Nintendo Switch Pro controller support) +* Added support for many other popular game controllers +* Added SDL_JoystickGetDevicePlayerIndex(), SDL_JoystickGetPlayerIndex(), and SDL_GameControllerGetPlayerIndex() to get the player index for a controller. For XInput controllers this returns the XInput index for the controller. +* Added SDL_GameControllerRumble() and SDL_JoystickRumble() which allow simple rumble without using the haptics API +* Added SDL_GameControllerMappingForDeviceIndex() to get the mapping for a controller before it's opened +* Added the hint SDL_HINT_MOUSE_DOUBLE_CLICK_TIME to control the mouse double-click time +* Added the hint SDL_HINT_MOUSE_DOUBLE_CLICK_RADIUS to control the mouse double-click radius, in pixels +* Added SDL_HasColorKey() to return whether a surface has a colorkey active +* Added SDL_HasAVX512F() to return whether the CPU has AVX-512F features +* Added SDL_IsTablet() to return whether the application is running on a tablet +* Added SDL_THREAD_PRIORITY_TIME_CRITICAL for threads that must run at the highest priority + +Mac OS X: +* Fixed black screen at start on Mac OS X Mojave + +Linux: +* Added SDL_LinuxSetThreadPriority() to allow adjusting the thread priority of native threads using RealtimeKit if available. + +iOS: +* Fixed Asian IME input + +Android: +* Updated required Android SDK to API 26, to match Google's new App Store requirements +* Added support for wired USB Xbox, PS4, and Nintendo Switch Pro controllers +* Added support for relative mouse mode on Android 7.0 and newer (except where it's broken, on Chromebooks and when in DeX mode with Samsung Experience 9.0) +* Added support for custom mouse cursors on Android 7.0 and newer +* Added the hint SDL_HINT_ANDROID_TRAP_BACK_BUTTON to control whether the back button will back out of the app (the default) or be passed to the application as SDL_SCANCODE_AC_BACK +* Added SDL_AndroidBackButton() to trigger the Android system back button behavior when handling the back button in the application +* Added SDL_IsChromebook() to return whether the app is running in the Chromebook Android runtime +* Added SDL_IsDeXMode() to return whether the app is running while docked in the Samsung DeX + + +--------------------------------------------------------------------------- +2.0.8: +--------------------------------------------------------------------------- + +General: +* Added SDL_fmod() and SDL_log10() +* Each of the SDL math functions now has the corresponding float version +* Added SDL_SetYUVConversionMode() and SDL_GetYUVConversionMode() to control the formula used when converting to and from YUV colorspace. The options are JPEG, BT.601, and BT.709 + +Windows: +* Implemented WASAPI support on Windows UWP and removed the deprecated XAudio2 implementation +* Added resampling support on WASAPI on Windows 7 and above + +Windows UWP: +* Added SDL_WinRTGetDeviceFamily() to find out what type of device your application is running on + +Mac OS X: +* Added support for the Vulkan SDK for Mac: + https://www.lunarg.com/lunarg-releases-vulkan-sdk-1-0-69-0-for-mac/ +* Added support for OpenGL ES using ANGLE when it's available + +Mac OS X / iOS / tvOS: +* Added a Metal 2D render implementation +* Added SDL_RenderGetMetalLayer() and SDL_RenderGetMetalCommandEncoder() to insert your own drawing into SDL rendering when using the Metal implementation + +iOS: +* Added the hint SDL_HINT_IOS_HIDE_HOME_INDICATOR to control whether the home indicator bar on iPhone X should be hidden. This defaults to dimming the indicator for fullscreen applications and showing the indicator for windowed applications. + +iOS / Android: +* Added the hint SDL_HINT_RETURN_KEY_HIDES_IME to control whether the return key on the software keyboard should hide the keyboard or send a key event (the default) + +Android: +* SDL now supports building with Android Studio and Gradle by default, and the old Ant project is available in android-project-ant +* SDL now requires the API 19 SDK to build, but can still target devices down to API 14 (Android 4.0.1) +* Added SDL_IsAndroidTV() to tell whether the application is running on Android TV + +Android / tvOS: +* Added the hint SDL_HINT_TV_REMOTE_AS_JOYSTICK to control whether TV remotes should be listed as joystick devices (the default) or send keyboard events. + +Linux: +* Added the hint SDL_HINT_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR to control whether the X server should skip the compositor for the SDL application. This defaults to "1" +* Added the hint SDL_HINT_VIDEO_DOUBLE_BUFFER to control whether the Raspberry Pi and KMSDRM video drivers should use double or triple buffering (the default) + + +--------------------------------------------------------------------------- +2.0.7: +--------------------------------------------------------------------------- + +General: +* Added audio stream conversion functions: + SDL_NewAudioStream + SDL_AudioStreamPut + SDL_AudioStreamGet + SDL_AudioStreamAvailable + SDL_AudioStreamFlush + SDL_AudioStreamClear + SDL_FreeAudioStream +* Added functions to query and set the SDL memory allocation functions: + SDL_GetMemoryFunctions() + SDL_SetMemoryFunctions() + SDL_GetNumAllocations() +* Added locking functions for multi-threaded access to the joystick and game controller APIs: + SDL_LockJoysticks() + SDL_UnlockJoysticks() +* The following functions are now thread-safe: + SDL_SetEventFilter() + SDL_GetEventFilter() + SDL_AddEventWatch() + SDL_DelEventWatch() + + +General: +--------------------------------------------------------------------------- +2.0.6: +--------------------------------------------------------------------------- + +General: +* Added cross-platform Vulkan graphics support in SDL_vulkan.h + SDL_Vulkan_LoadLibrary() + SDL_Vulkan_GetVkGetInstanceProcAddr() + SDL_Vulkan_GetInstanceExtensions() + SDL_Vulkan_CreateSurface() + SDL_Vulkan_GetDrawableSize() + SDL_Vulkan_UnloadLibrary() + This is all the platform-specific code you need to bring up Vulkan on all SDL platforms. You can look at an example in test/testvulkan.c +* Added SDL_ComposeCustomBlendMode() to create custom blend modes for 2D rendering +* Added SDL_HasNEON() which returns whether the CPU has NEON instruction support +* Added support for many game controllers, including the Nintendo Switch Pro Controller +* Added support for inverted axes and separate axis directions in game controller mappings +* Added functions to return information about a joystick before it's opened: + SDL_JoystickGetDeviceVendor() + SDL_JoystickGetDeviceProduct() + SDL_JoystickGetDeviceProductVersion() + SDL_JoystickGetDeviceType() + SDL_JoystickGetDeviceInstanceID() +* Added functions to return information about an open joystick: + SDL_JoystickGetVendor() + SDL_JoystickGetProduct() + SDL_JoystickGetProductVersion() + SDL_JoystickGetType() + SDL_JoystickGetAxisInitialState() +* Added functions to return information about an open game controller: + SDL_GameControllerGetVendor() + SDL_GameControllerGetProduct() + SDL_GameControllerGetProductVersion() +* Added SDL_GameControllerNumMappings() and SDL_GameControllerMappingForIndex() to be able to enumerate the built-in game controller mappings +* Added SDL_LoadFile() and SDL_LoadFile_RW() to load a file into memory +* Added SDL_DuplicateSurface() to make a copy of a surface +* Added an experimental JACK audio driver +* Implemented non-power-of-two audio resampling, optionally using libsamplerate to perform the resampling +* Added the hint SDL_HINT_AUDIO_RESAMPLING_MODE to control the quality of resampling +* Added the hint SDL_HINT_RENDER_LOGICAL_SIZE_MODE to control the scaling policy for SDL_RenderSetLogicalSize(): + "0" or "letterbox" - Uses letterbox/sidebars to fit the entire rendering on screen (the default) + "1" or "overscan" - Will zoom the rendering so it fills the entire screen, allowing edges to be drawn offscreen +* Added the hints SDL_HINT_MOUSE_NORMAL_SPEED_SCALE and SDL_HINT_MOUSE_RELATIVE_SPEED_SCALE to scale the mouse speed when being read from raw mouse input +* Added the hint SDL_HINT_TOUCH_MOUSE_EVENTS to control whether SDL will synthesize mouse events from touch events + +Windows: +* The new default audio driver on Windows is WASAPI and supports hot-plugging devices and changing the default audio device +* The old XAudio2 audio driver is deprecated and will be removed in the next release +* Added hints SDL_HINT_WINDOWS_INTRESOURCE_ICON and SDL_HINT_WINDOWS_INTRESOURCE_ICON_SMALL to specify a custom icon resource ID for SDL windows +* The hint SDL_HINT_WINDOWS_DISABLE_THREAD_NAMING is now on by default for compatibility with .NET languages and various Windows debuggers +* Updated the GUID format for game controller mappings, older mappings will be automatically converted on load +* Implemented the SDL_WINDOW_ALWAYS_ON_TOP flag on Windows + +Linux: +* Added an experimental KMS/DRM video driver for embedded development + +iOS: +* Added a hint SDL_HINT_AUDIO_CATEGORY to control the audio category, determining whether the phone mute switch affects the audio + +--------------------------------------------------------------------------- +2.0.5: +--------------------------------------------------------------------------- + +General: +* Implemented audio capture support for some platforms +* Added SDL_DequeueAudio() to retrieve audio when buffer queuing is turned on for audio capture +* Added events for dragging and dropping text +* Added events for dragging and dropping multiple items +* By default the click raising a window will not be delivered to the SDL application. You can set the hint SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH to "1" to allow that click through to the window. +* Saving a surface with an alpha channel as a BMP will use a newer BMP format that supports alpha information. You can set the hint SDL_HINT_BMP_SAVE_LEGACY_FORMAT to "1" to use the old format. +* Added SDL_GetHintBoolean() to get the boolean value of a hint +* Added SDL_RenderSetIntegerScale() to set whether to smoothly scale or use integral multiples of the viewport size when scaling the rendering output +* Added SDL_CreateRGBSurfaceWithFormat() and SDL_CreateRGBSurfaceWithFormatFrom() to create an SDL surface with a specific pixel format +* Added SDL_GetDisplayUsableBounds() which returns the area usable for windows. For example, on Mac OS X, this subtracts the area occupied by the menu bar and dock. +* Added SDL_GetWindowBordersSize() which returns the size of the window's borders around the client area +* Added a window event SDL_WINDOWEVENT_HIT_TEST when a window had a hit test that wasn't SDL_HITTEST_NORMAL (e.g. in the title bar or window frame) +* Added SDL_SetWindowResizable() to change whether a window is resizable +* Added SDL_SetWindowOpacity() and SDL_GetWindowOpacity() to affect the window transparency +* Added SDL_SetWindowModalFor() to set a window as modal for another window +* Added support for AUDIO_U16LSB and AUDIO_U16MSB to SDL_MixAudioFormat() +* Fixed flipped images when reading back from target textures when using the OpenGL renderer +* Fixed texture color modulation with SDL_BLENDMODE_NONE when using the OpenGL renderer +* Fixed bug where the alpha value of colorkeys was ignored when blitting in some cases + +Windows: +* Added a hint SDL_HINT_WINDOWS_DISABLE_THREAD_NAMING to prevent SDL from raising a debugger exception to name threads. This exception can cause problems with .NET applications when running under a debugger. +* The hint SDL_HINT_THREAD_STACK_SIZE is now supported on Windows +* Fixed XBox controller triggers automatically being pulled at startup +* The first icon from the executable is used as the default window icon at runtime +* Fixed SDL log messages being printed twice if SDL was built with C library support +* Reset dead keys when the SDL window loses focus, so dead keys pressed in SDL applications don't affect text input into other applications. + +Mac OS X: +* Fixed selecting the dummy video driver +* The caps lock key now generates a pressed event when pressed and a released event when released, instead of a press/release event pair when pressed. +* Fixed mouse wheel events on Mac OS X 10.12 +* The audio driver has been updated to use AVFoundation for better compatibility with newer versions of Mac OS X + +Linux: +* Added support for the Fcitx IME +* Added a window event SDL_WINDOWEVENT_TAKE_FOCUS when a window manager asks the SDL window whether it wants to take focus. +* Refresh rates are now rounded instead of truncated, e.g. 59.94 Hz is rounded up to 60 Hz instead of 59. +* Added initial support for touchscreens on Raspberry Pi + +OpenBSD: +* SDL_GetBasePath() is now implemented on OpenBSD + +iOS: +* Added support for dynamically loaded objects on iOS 8 and newer + +tvOS: +* Added support for Apple TV +* Added a hint SDL_HINT_APPLE_TV_REMOTE_ALLOW_ROTATION to control whether he Apple TV remote's joystick axes will automatically match the rotation of the remote. + +Android: +* Fixed SDL not resizing window when Android screen resolution changes +* Corrected the joystick Z axis reporting for the accelerometer + +Emscripten (running in a web browser): +* Many bug fixes and improvements + + +--------------------------------------------------------------------------- +2.0.4: +--------------------------------------------------------------------------- + +General: +* Added support for web applications using Emscripten, see docs/README-emscripten.md for more information +* Added support for web applications using Native Client (NaCl), see docs/README-nacl.md for more information +* Added an API to queue audio instead of using the audio callback: + SDL_QueueAudio(), SDL_GetQueuedAudioSize(), SDL_ClearQueuedAudio() +* Added events for audio device hot plug support: + SDL_AUDIODEVICEADDED, SDL_AUDIODEVICEREMOVED +* Added SDL_PointInRect() +* Added SDL_HasAVX2() to detect CPUs with AVX2 support +* Added SDL_SetWindowHitTest() to let apps treat parts of their SDL window like traditional window decorations (drag areas, resize areas) +* Added SDL_GetGrabbedWindow() to get the window that currently has input grab, if any +* Added SDL_RenderIsClipEnabled() to tell whether clipping is currently enabled in a renderer +* Added SDL_CaptureMouse() to capture the mouse to get events while the mouse is not in your window +* Added SDL_WarpMouseGlobal() to warp the mouse cursor in global screen space +* Added SDL_GetGlobalMouseState() to get the current mouse state outside of an SDL window +* Added a direction field to mouse wheel events to tell whether they are flipped (natural) or not +* Added GL_CONTEXT_RELEASE_BEHAVIOR GL attribute (maps to [WGL|GLX]_ARB_context_flush_control extension) +* Added EGL_KHR_create_context support to allow OpenGL ES version selection on some platforms +* Added NV12 and NV21 YUV texture support for OpenGL and OpenGL ES 2.0 renderers +* Added a Vivante video driver that is used on various SoC platforms +* Added an event SDL_RENDER_DEVICE_RESET that is sent from the D3D renderers when the D3D device is lost, and from Android's event loop when the GLES context had to be recreated +* Added a hint SDL_HINT_NO_SIGNAL_HANDLERS to disable SDL's built in signal handling +* Added a hint SDL_HINT_THREAD_STACK_SIZE to set the stack size of SDL's threads +* Added SDL_sqrtf(), SDL_tan(), and SDL_tanf() to the stdlib routines +* Improved support for WAV and BMP files with unusual chunks in them +* Renamed SDL_assert_data to SDL_AssertData and SDL_assert_state to SDL_AssertState +* Added a hint SDL_HINT_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN to prevent window interaction while cursor is hidden +* Added SDL_GetDisplayDPI() to get the DPI information for a display +* Added SDL_JoystickCurrentPowerLevel() to get the battery level of a joystick +* Added SDL_JoystickFromInstanceID(), as a helper function, to get the SDL_Joystick* that an event is referring to. +* Added SDL_GameControllerFromInstanceID(), as a helper function, to get the SDL_GameController* that an event is referring to. + +Windows: +* Added support for Windows Phone 8.1 and Windows 10/UWP (Universal Windows Platform) +* Timer resolution is now 1 ms by default, adjustable with the SDL_HINT_TIMER_RESOLUTION hint +* SDLmain no longer depends on the C runtime, so you can use the same .lib in both Debug and Release builds +* Added SDL_SetWindowsMessageHook() to set a function to be called for every windows message before TranslateMessage() +* Added a hint SDL_HINT_WINDOWS_ENABLE_MESSAGELOOP to control whether SDL_PumpEvents() processes the Windows message loop +* You can distinguish between real mouse and touch events by looking for SDL_TOUCH_MOUSEID in the mouse event "which" field +* SDL_SysWMinfo now contains the window HDC +* Added support for Unicode command line options +* Prevent beeping when Alt-key combos are pressed +* SDL_SetTextInputRect() re-positions the OS-rendered IME +* Added a hint SDL_HINT_WINDOWS_NO_CLOSE_ON_ALT_F4 to prevent generating SDL_WINDOWEVENT_CLOSE events when Alt-F4 is pressed +* Added a hint SDL_HINT_XINPUT_USE_OLD_JOYSTICK_MAPPING to use the old axis and button mapping for XInput devices (deprecated) + +Mac OS X: +* Implemented drag-and-drop support +* Improved joystick hot-plug detection +* The SDL_WINDOWEVENT_EXPOSED window event is triggered in the appropriate situations +* Fixed relative mouse mode when the application loses/regains focus +* Fixed bugs related to transitioning to and from Spaces-aware fullscreen-desktop mode +* Fixed the refresh rate of display modes +* SDL_SysWMInfo is now ARC-compatible +* Added a hint SDL_HINT_MAC_BACKGROUND_APP to prevent forcing the application to become a foreground process + +Linux: +* Enabled building with Mir and Wayland support by default. +* Added IBus IME support +* Added a hint SDL_HINT_IME_INTERNAL_EDITING to control whether IBus should handle text editing internally instead of sending SDL_TEXTEDITING events +* Added a hint SDL_HINT_VIDEO_X11_NET_WM_PING to allow disabling _NET_WM_PING protocol handling in SDL_CreateWindow() +* Added support for multiple audio devices when using Pulseaudio +* Fixed duplicate mouse events when using relative mouse motion + +iOS: +* Added support for iOS 8 +* The SDL_WINDOW_ALLOW_HIGHDPI window flag now enables high-dpi support, and SDL_GL_GetDrawableSize() or SDL_GetRendererOutputSize() gets the window resolution in pixels +* SDL_GetWindowSize() and display mode sizes are in the "DPI-independent points" / "screen coordinates" coordinate space rather than pixels (matches OS X behavior) +* Added native resolution support for the iPhone 6 Plus +* Added support for MFi game controllers +* Added support for the hint SDL_HINT_ACCELEROMETER_AS_JOYSTICK +* Added sRGB OpenGL ES context support on iOS 7+ +* Added support for SDL_DisableScreenSaver(), SDL_EnableScreenSaver() and the hint SDL_HINT_VIDEO_ALLOW_SCREENSAVER +* SDL_SysWMinfo now contains the OpenGL ES framebuffer and color renderbuffer objects used by the window's active GLES view +* Fixed various rotation and orientation issues +* Fixed memory leaks + +Android: +* Added a hint SDL_HINT_ANDROID_SEPARATE_MOUSE_AND_TOUCH to prevent mouse events from being registered as touch events +* Added hints SDL_HINT_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION and SDL_HINT_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION +* Added support for SDL_DisableScreenSaver(), SDL_EnableScreenSaver() and the hint SDL_HINT_VIDEO_ALLOW_SCREENSAVER +* Added support for SDL_ShowMessageBox() and SDL_ShowSimpleMessageBox() + +Raspberry Pi: +* Added support for the Raspberry Pi 2 + + +--------------------------------------------------------------------------- +2.0.3: +--------------------------------------------------------------------------- + +Mac OS X: +* Fixed creating an OpenGL context by default on Mac OS X 10.6 + + +--------------------------------------------------------------------------- +2.0.2: +--------------------------------------------------------------------------- +General: +* Added SDL_GL_ResetAttributes() to reset OpenGL attributes to default values +* Added an API to load a database of game controller mappings from a file: + SDL_GameControllerAddMappingsFromFile(), SDL_GameControllerAddMappingsFromRW() +* Added game controller mappings for the PS4 and OUYA controllers +* Added SDL_GetDefaultAssertionHandler() and SDL_GetAssertionHandler() +* Added SDL_DetachThread() +* Added SDL_HasAVX() to determine if the CPU has AVX features +* Added SDL_vsscanf(), SDL_acos(), and SDL_asin() to the stdlib routines +* EGL can now create/manage OpenGL and OpenGL ES 1.x/2.x contexts, and share + them using SDL_GL_SHARE_WITH_CURRENT_CONTEXT +* Added a field "clicks" to the mouse button event which records whether the event is a single click, double click, etc. +* The screensaver is now disabled by default, and there is a hint SDL_HINT_VIDEO_ALLOW_SCREENSAVER that can change that behavior. +* Added a hint SDL_HINT_MOUSE_RELATIVE_MODE_WARP to specify whether mouse relative mode should be emulated using mouse warping. +* testgl2 does not need to link with libGL anymore +* Added testgles2 test program to demonstrate working with OpenGL ES 2.0 +* Added controllermap test program to visually map a game controller + +Windows: +* Support for OpenGL ES 2.x contexts using either WGL or EGL (natively via + the driver or emulated through ANGLE) +* Added a hint SDL_HINT_VIDEO_WIN_D3DCOMPILER to specify which D3D shader compiler to use for OpenGL ES 2 support through ANGLE +* Added a hint SDL_HINT_VIDEO_WINDOW_SHARE_PIXEL_FORMAT that is useful when creating multiple windows that should share the same OpenGL context. +* Added an event SDL_RENDER_TARGETS_RESET that is sent when D3D9 render targets are reset after the device has been restored. + +Mac OS X: +* Added a hint SDL_HINT_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK to control whether Ctrl+click should be treated as a right click on Mac OS X. This is off by default. + +Linux: +* Fixed fullscreen and focused behavior when receiving NotifyGrab events +* Added experimental Wayland and Mir support, disabled by default + +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). +* Hotplugging support for joysticks +* Added a hint SDL_HINT_ACCELEROMETER_AS_JOYSTICK to control whether the accelerometer should be listed as a 3 axis joystick, which it will by default. + + +--------------------------------------------------------------------------- +2.0.1: +--------------------------------------------------------------------------- + +General: +* Added an API to get common filesystem paths in SDL_filesystem.h: + SDL_GetBasePath(), SDL_GetPrefPath() +* Added an API to do optimized YV12 and IYUV texture updates: + SDL_UpdateYUVTexture() +* Added an API to get the amount of RAM on the system: + SDL_GetSystemRAM() +* Added a macro to perform timestamp comparisons with SDL_GetTicks(): + SDL_TICKS_PASSED() +* Dramatically improved OpenGL ES 2.0 rendering performance +* Added OpenGL attribute SDL_GL_FRAMEBUFFER_SRGB_CAPABLE + +Windows: +* Created a static library configuration for the Visual Studio 2010 project +* Added a hint to create the Direct3D device with support for multi-threading: + SDL_HINT_RENDER_DIRECT3D_THREADSAFE +* Added a function to get the D3D9 adapter index for a display: + SDL_Direct3D9GetAdapterIndex() +* Added a function to get the D3D9 device for a D3D9 renderer: + SDL_RenderGetD3D9Device() +* Fixed building SDL with the mingw32 toolchain (mingw-w64 is preferred) +* Fixed crash when using two XInput controllers at the same time +* Fixed detecting a mixture of XInput and DirectInput controllers +* Fixed clearing a D3D render target larger than the window +* Improved support for format specifiers in SDL_snprintf() + +Mac OS X: +* Added support for retina displays: + Create your window with the SDL_WINDOW_ALLOW_HIGHDPI flag, and then use SDL_GL_GetDrawableSize() to find the actual drawable size. You are responsible for scaling mouse and drawing coordinates appropriately. +* Fixed mouse warping in fullscreen mode +* Right mouse click is emulated by holding the Ctrl key while left clicking + +Linux: +* Fixed float audio support with the PulseAudio driver +* Fixed missing line endpoints in the OpenGL renderer on some drivers +* X11 symbols are no longer defined to avoid collisions when linking statically + +iOS: +* Fixed status bar visibility on iOS 7 +* Flipped the accelerometer Y axis to match expected values + +Android: +IMPORTANT: You MUST get the updated SDLActivity.java to match C code +* Moved EGL initialization to native code +* Fixed the accelerometer axis rotation relative to the device rotation +* Fixed race conditions when handling the EGL context on pause/resume +* Touch devices are available for enumeration immediately after init + +Raspberry Pi: +* Added support for the Raspberry Pi, see README-raspberrypi.txt for details diff --git a/engine/lib/sdl/Xcode-iOS/Demos/Default.png b/engine/lib/sdl/Xcode-iOS/Demos/Default.png new file mode 100644 index 0000000000000000000000000000000000000000..f91282875ae2654ee5ff9f347921620f358fd85e GIT binary patch literal 18383 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 literal 0 HcmV?d00001 diff --git a/engine/lib/sdl/Xcode-iOS/Demos/README b/engine/lib/sdl/Xcode-iOS/Demos/README new file mode 100644 index 000000000..da6fb7490 --- /dev/null +++ b/engine/lib/sdl/Xcode-iOS/Demos/README @@ -0,0 +1,43 @@ +============================================================================== +About the iPhone OS Demo Applications +============================================================================== + +Demos.xcodeproj contains several targets for iPhone oriented SDL demos. These demos are written strictly using SDL 2.0 calls. All the demos except for Fireworks (which requires OpenGL ES) should work on platforms other than iPhone OS, though you'll need to write your own compile script. + +Common files: + + common.c and common.h contain code common to all demo applications. This includes functions about delta timing (in seconds), simple error handling, and functions for generating random numbers. + +Rectangles (rectangles.c): + + Draws randomly sized and colored rectangles all over the screen by using SDL_RenderFillRect. This is the simplest of all the demos. + +Happy (happy.c): + + Loads the classic happy-face bitmap and draws a large number of happy faces bouncing around the screen. Shows how you can load a bitmap into an SDL_Texture. + +Accelerometer (accelerometer.c): + + Uses the iPhone's accelerometer as a joystick device to move a spaceship around the screen. Note the use of the macro SDL_IPHONE_MAX_GFORCE (normally defined in SDL_config_iphoneos.h) which converts between the Sint16 number returned by SDL_JoystickGetAxis, and the floating point units of g-force reported natively by the iPhone. + +Touch (touch.c): + + Acts as a finger-paint type program. Demonstrates how you can use SDL mouse input to accept touch input from the iPhone. If SDL for iPhone is compiled with multitouch as multiple mouse emulation (SDL_IPHONE_MULTIPLE_MICE in SDL_config_iphoneos.h) then the program will accept multiple finger inputs simultaneously. + +Mixer (mixer.c): + + Displays several rectangular buttons which can be used as a virtual drumkit. Demonstrates how you can play .wav sounds in SDL and how you can use SDL_MixAudioFormat to build a software mixer that can play multiple sounds at once. + +Keyboard (keyboard.c): + + Loads a bitmap font and let's the user type words, numbers, and symbols using the iPhone's virtual keyboard. The iPhone's onscreen keyboard visibility is toggled when the user taps the screen. If the user types ':)' a happy face is displayed. Demonstrates how to use functions added to the iPhone implementation of SDL to toggle keyboard onscreen visibility. + +Fireworks (fireworks.c): + + Displays a fireworks show. When you tap the iPhone's screen, fireworks fly from the bottom of the screen and explode at the point that you tapped. Demonstrates how you can use SDL on iPhone to build an OpenGL ES based application. Shows you how you can use SDL_LoadBMP to load a bmp image and convert it to an OpenGL ES texture. Of lesser importance, shows how you can use OpenGL ES point sprites to build an efficient particle system. + +============================================================================== +Building and Running the demos +============================================================================== + +Before building the demos you must first build SDL as a static library for BOTH the iPhone Simulator and the iPhone itself. See the iPhone SDL main README file for directions on how to do this. Once this is done, simply launch XCode, select the target you'd like to build, select the active SDK (simulator or device), and then build and go. diff --git a/engine/lib/sdl/Xcode-iOS/Demos/config.xcconfig b/engine/lib/sdl/Xcode-iOS/Demos/config.xcconfig new file mode 100644 index 000000000..563917290 --- /dev/null +++ b/engine/lib/sdl/Xcode-iOS/Demos/config.xcconfig @@ -0,0 +1,14 @@ +// +// config.xcconfig +// SDL tests +// + +// Configuration settings file format documentation can be found at: +// https://help.apple.com/xcode/#/dev745c5c974 + +// Include any optional config for this build +#include? "build.xcconfig" + +CONFIG_FRAMEWORK_LDFLAGS[sdk=macos*] = $(inherited) -framework SDL2 -framework AudioToolbox -framework Carbon -framework Cocoa -framework CoreAudio -framework CoreHaptics -framework CoreVideo -framework ForceFeedback -framework GameController -framework IOKit -framework Metal +CONFIG_FRAMEWORK_LDFLAGS[sdk=iphone*] = $(inherited) -framework AVFoundation -framework AudioToolbox -framework CoreGraphics -framework CoreHaptics -framework CoreMotion -framework Foundation -framework GameController -framework Metal -framework OpenGLES -framework QuartzCore -framework UIKit +CONFIG_FRAMEWORK_LDFLAGS[sdk=appletv*] = $(inherited) -framework AVFoundation -framework AudioToolbox -framework CoreGraphics -framework CoreHaptics -framework Foundation -framework GameController -framework Metal -framework OpenGLES -framework QuartzCore -framework UIKit diff --git a/engine/lib/sdl/Xcode-iOS/Demos/data/bitmapfont/kromasky_16x16.bmp b/engine/lib/sdl/Xcode-iOS/Demos/data/bitmapfont/kromasky_16x16.bmp new file mode 100644 index 0000000000000000000000000000000000000000..c0b6fb964fd176d5770cf7000088fe1c87b220bf GIT binary patch literal 45368 zcmeHPF{`CX6&y7%FcCK~G8Qut)Nm0L4EzVi`xD$Bp_$Qwk*f;^D{7`-WV$SDCJ2h4 z*{Wb5h{Chpt9@n7sXqO6fA`**eY(TlZ>mq%sZ)LWd*AK3duP7(t*`$4*~70dQc8Et4vTyOxTdFfapyc~ z>DW`cxN{skzr!7WH@>UC%fGcB*C(b!kGtpHxaT@v(Q%Gr*CFPt$2yw~!BiG`0I$eC%4|P&4BlC52{7d|}x9jSst8@D9 zu+yA#GK-P*taYZ>VwOj|Zi%Zzi4TV&0}Khnpl6-H)cnRbzy97Yzl#?DBPXPkBA=3_ zxL;KWWF z*02`pGSRPYCUGgmVbT;K;iaF4wLo@8L-{O#gq7z5nYw?}=f!yL6eFF^RrnD9(pSC+ zhgfy-xvMXqrGXk=OTXx-F5|d%&KVa?V9qc47?Qsm@2VW?uz_@&OL$p+w5S5NnDhI80hblsJ^__*#fS zR%GPG`8FnS0q$%wzD3Ry7k8vsCCKuqS`+X^R@i#|nsbtOeVTrku5 zFa3c6naSUc7c&^H_{l8R^?vSRD*WNyxAnT6=3=b}+FP%^cK5~`cf%ub>cG4jsD%Jr zzLwp7-iVKd=&cQJaQp@E(4RYgV$3(eG~n$zY>1QD$-|VaIEk$2C&%|U#fN;q4TQ^D zIK)*100mWu5$AMRxkYo%S0RC{$Os8JJJ;Xk%LYK^x|4H$*0WY>C1=;a^MNVo=V3$& z$A{!EeqVxQTwUMQ9E&XAvyMUF^8t?n;Ge$zi|@StI-U{$7?$S))%>1eWIgV=jyoOa zIDT1t*7XKD&OW$j$DRLq9JQPP+-YJ;Wao6)Wu3Dd_gu#-I^-~Gg}6#)&1E~Z12#>4Z^ zzx}m5?CLn5no#4*n*gjh0H-1s9}DB8cZVbKJMRpR#LR+Kmjb5wTuU)t449B1x| zez(7<<$}Ph?wXEyV>3dgr)Ta8$MuDI`!OBY^iSs8553J@adurl)#Mpq?k97#OtmpN zEBf6kcKuLCW(r7eb3W2Z;Cc1OKl%xWejS#WoQFM^7_wJ94^xxR2Vk6m(LWX`78cQt0kWP-CkE~&XG7k>Zc}Xut$fB zd@muq(g%?NoWI^5W_5h&gFvSD>I8O^R}_5zkMH6oaSqG1lzSL{a2VE+c=#zX6VZVp zsGg`U8X~+1vWHB}_$0DetI±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 a>CgMt_2-hf@6IJUzMH!`p6mG0+kXHiqKaAo literal 0 HcmV?d00001 diff --git a/engine/lib/sdl/Xcode-iOS/Demos/data/bitmapfont/license.txt b/engine/lib/sdl/Xcode-iOS/Demos/data/bitmapfont/license.txt new file mode 100644 index 000000000..6949ec444 --- /dev/null +++ b/engine/lib/sdl/Xcode-iOS/Demos/data/bitmapfont/license.txt @@ -0,0 +1,258 @@ + __ _ _ + / _| | | | | +| |_ ___ _ __ | |_ _ __ __ _ ___| | __ +| _/ _ \| '_ \| __| '_ \ / _` |/ __| |/ / +| || (_) | | | | |_| |_) | (_| | (__| < +|_| \___/|_| |_|\__| .__/ \__,_|\___|_|\_\ + | | + |_| +---------------------------------------------------------------------- +Product : font-pack.zip +Website : http://www.spicypixel.net +Author : Marc Russell +Released: 16th January 2008 +---------------------------------------------------------------------- + +What is this? +------------- +font-pack is a package of free art assets to be used under the terms of this document. It is available to game developers and hobbyists alike. + +Contents +-------- +The contents of the font-pack ZIP file include 20 bitmap fonts + +Usage License & Restrictions +---------------------------- +font-pack is distributed under the "Common Public License Version 1.0." +The terms of which are given below. If you do not understand the terms of the license please refer to a solicitor. It should however, be relatively clear how this package can be used. + +THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON +PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF +THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + +1. DEFINITIONS + +"Contribution" means: + + a) in the case of the initial Contributor, the initial code and + documentation distributed under this Agreement, and + + b) in the case of each subsequent Contributor: + + i) changes to the Program, and + + ii) additions to the Program; + + where such changes and/or additions to the Program originate from + and are distributed by that particular Contributor. A Contribution + 'originates' from a Contributor if it was added to the Program by + such Contributor itself or anyone acting on such Contributor's + behalf. Contributions do not include additions to the Program which: + (i) are separate modules of software distributed in conjunction with + the Program under their own license agreement, and (ii) are not + derivative works of the Program. + +"Contributor" means any person or entity that distributes the Program. + +"Licensed Patents " mean patent claims licensable by a Contributor which +are necessarily infringed by the use or sale of its Contribution alone +or when combined with the Program. + +"Program" means the Contributions distributed in accordance with this +Agreement. + +"Recipient" means anyone who receives the Program under this Agreement, +including all Contributors. + +2. GRANT OF RIGHTS + + a) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free copyright + license to reproduce, prepare derivative works of, publicly display, + publicly perform, distribute and sublicense the Contribution of such + Contributor, if any, and such derivative works, in source code and + object code form. + + b) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free patent + license under Licensed Patents to make, use, sell, offer to sell, + import and otherwise transfer the Contribution of such Contributor, + if any, in source code and object code form. This patent license + shall apply to the combination of the Contribution and the Program + if, at the time the Contribution is added by the Contributor, such + addition of the Contribution causes such combination to be covered + by the Licensed Patents. The patent license shall not apply to any + other combinations which include the Contribution. No hardware per + se is licensed hereunder. + + c) Recipient understands that although each Contributor grants the + licenses to its Contributions set forth herein, no assurances are + provided by any Contributor that the Program does not infringe the + patent or other intellectual property rights of any other entity. + Each Contributor disclaims any liability to Recipient for claims + brought by any other entity based on infringement of intellectual + property rights or otherwise. As a condition to exercising the + rights and licenses granted hereunder, each Recipient hereby assumes + sole responsibility to secure any other intellectual property rights + needed, if any. For example, if a third party patent license is + required to allow Recipient to distribute the Program, it is + Recipient's responsibility to acquire that license before + distributing the Program. + + d) Each Contributor represents that to its knowledge it has + sufficient copyright rights in its Contribution, if any, to grant + the copyright license set forth in this Agreement. + +3. REQUIREMENTS + +A Contributor may choose to distribute the Program in object code form +under its own license agreement, provided that: + + a) it complies with the terms and conditions of this Agreement; and + + b) its license agreement: + + i) effectively disclaims on behalf of all Contributors all + warranties and conditions, express and implied, including warranties + or conditions of title and non-infringement, and implied warranties + or conditions of merchantability and fitness for a particular + purpose; + + ii) effectively excludes on behalf of all Contributors all liability + for damages, including direct, indirect, special, incidental and + consequential damages, such as lost profits; + + iii) states that any provisions which differ from this Agreement are + offered by that Contributor alone and not by any other party; and + + iv) states that source code for the Program is available from such + Contributor, and informs licensees how to obtain it in a reasonable + manner on or through a medium customarily used for software + exchange. + +When the Program is made available in source code form: + + a) it must be made available under this Agreement; and + + b) a copy of this Agreement must be included with each copy of the + Program. + +Contributors may not remove or alter any copyright notices contained +within the Program. + +Each Contributor must identify itself as the originator of its +Contribution, if any, in a manner that reasonably allows subsequent +Recipients to identify the originator of the Contribution. + +4. COMMERCIAL DISTRIBUTION + +Commercial distributors of software may accept certain responsibilities +with respect to end users, business partners and the like. While this +license is intended to facilitate the commercial use of the Program, the +Contributor who includes the Program in a commercial product offering +should do so in a manner which does not create potential liability for +other Contributors. Therefore, if a Contributor includes the Program in +a commercial product offering, such Contributor ("Commercial +Contributor") hereby agrees to defend and indemnify every other +Contributor ("Indemnified Contributor") against any losses, damages and +costs (collectively "Losses") arising from claims, lawsuits and other +legal actions brought by a third party against the Indemnified +Contributor to the extent caused by the acts or omissions of such +Commercial Contributor in connection with its distribution of the +Program in a commercial product offering. The obligations in this +section do not apply to any claims or Losses relating to any actual or +alleged intellectual property infringement. In order to qualify, an +Indemnified Contributor must: a) promptly notify the Commercial +Contributor in writing of such claim, and b) allow the Commercial +Contributor to control, and cooperate with the Commercial Contributor +in, the defense and any related settlement negotiations. The Indemnified +Contributor may participate in any such claim at its own expense. + +For example, a Contributor might include the Program in a commercial +product offering, Product X. That Contributor is then a Commercial +Contributor. If that Commercial Contributor then makes performance +claims, or offers warranties related to Product X, those performance +claims and warranties are such Commercial Contributor's responsibility +alone. Under this section, the Commercial Contributor would have to +defend claims against the other Contributors related to those +performance claims and warranties, and if a court requires any other +Contributor to pay any damages as a result, the Commercial Contributor +must pay those damages. + +5. NO WARRANTY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED +ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, +EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES +OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR +A PARTICULAR PURPOSE. Each Recipient is solely responsible for +determining the appropriateness of using and distributing the Program +and assumes all risks associated with its exercise of rights under this +Agreement, including but not limited to the risks and costs of program +errors, compliance with applicable laws, damage to or loss of data, +programs or equipment, and unavailability or interruption of operations. + +6. DISCLAIMER OF LIABILITY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR +ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING +WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR +DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED +HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +7. GENERAL + +If any provision of this Agreement is invalid or unenforceable under +applicable law, it shall not affect the validity or enforceability of +the remainder of the terms of this Agreement, and without further action +by the parties hereto, such provision shall be reformed to the minimum +extent necessary to make such provision valid and enforceable. + +If Recipient institutes patent litigation against a Contributor with +respect to a patent applicable to software (including a cross-claim or +counterclaim in a lawsuit), then any patent licenses granted by that +Contributor to such Recipient under this Agreement shall terminate as of +the date such litigation is filed. In addition, if Recipient institutes +patent litigation against any entity (including a cross-claim or +counterclaim in a lawsuit) alleging that the Program itself (excluding +combinations of the Program with other software or hardware) infringes +such Recipient's patent(s), then such Recipient's rights granted under +Section 2(b) shall terminate as of the date such litigation is filed. + +All Recipient's rights under this Agreement shall terminate if it fails +to comply with any of the material terms or conditions of this Agreement +and does not cure such failure in a reasonable period of time after +becoming aware of such noncompliance. If all Recipient's rights under +this Agreement terminate, Recipient agrees to cease use and distribution +of the Program as soon as reasonably practicable. However, Recipient's +obligations under this Agreement and any licenses granted by Recipient +relating to the Program shall continue and survive. + +Everyone is permitted to copy and distribute copies of this Agreement, +but in order to avoid inconsistency the Agreement is copyrighted and may +only be modified in the following manner. The Agreement Steward reserves +the right to publish new versions (including revisions) of this +Agreement from time to time. No one other than the Agreement Steward has +the right to modify this Agreement. IBM is the initial Agreement +Steward. IBM may assign the responsibility to serve as the Agreement +Steward to a suitable separate entity. Each new version of the Agreement +will be given a distinguishing version number. The Program (including +Contributions) may always be distributed subject to the version of the +Agreement under which it was received. In addition, after a new version +of the Agreement is published, Contributor may elect to distribute the +Program (including its Contributions) under the new version. Except as +expressly stated in Sections 2(a) and 2(b) above, Recipient receives no +rights or licenses to the intellectual property of any Contributor under +this Agreement, whether expressly, by implication, estoppel or +otherwise. All rights in the Program not expressly granted under this +Agreement are reserved. + +This Agreement is governed by the laws of the State of New York and the +intellectual property laws of the United States of America. No party to +this Agreement will bring a legal action under this Agreement more than +one year after the cause of action arose. Each party waives its rights +to a jury trial in any resulting litigation. + diff --git a/engine/lib/sdl/Xcode-iOS/Demos/data/drums/ds_brush_snare.wav b/engine/lib/sdl/Xcode-iOS/Demos/data/drums/ds_brush_snare.wav new file mode 100644 index 0000000000000000000000000000000000000000..fa752637a0e32359a2339d235d0c069d61f4494d GIT binary patch literal 194604 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 z%0D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ΜNj)iACe8#hMWom^FwHLI=JD(N~ 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 z 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�#4TuUQ<1UHPmD~_qSg7N$wZ^ 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 J0#D`>_%}>GqR9XN literal 0 HcmV?d00001 diff --git a/engine/lib/sdl/Xcode-iOS/Demos/data/drums/ds_loose_skin_mute.wav b/engine/lib/sdl/Xcode-iOS/Demos/data/drums/ds_loose_skin_mute.wav new file mode 100644 index 0000000000000000000000000000000000000000..3db05222b5fdc6de49192b662296c84ec6fa59ea GIT binary patch literal 127052 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

    mpP+z!zFm9{1qb-q!?Yo2 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 literal 0 HcmV?d00001 diff --git a/engine/lib/sdl/Xcode-iOS/Demos/data/icon.bmp b/engine/lib/sdl/Xcode-iOS/Demos/data/icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..cc96356acb521c7f1518acdb2a3b5d59b8a061aa GIT binary patch literal 578 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 Wcm37GMvG%_Te-@Zz#)GAfI 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

    HX$YZ>Lf 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

    r`O)g3^uY6{Do_HYqz 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/engine/lib/sdl/Xcode-iOS/Demos/src/accelerometer.c b/engine/lib/sdl/Xcode-iOS/Demos/src/accelerometer.c new file mode 100644 index 000000000..4c166a621 --- /dev/null +++ b/engine/lib/sdl/Xcode-iOS/Demos/src/accelerometer.c @@ -0,0 +1,226 @@ +/* + * accelerometer.c + * written by Holmes Futrell + * use however you want + */ + +#include "SDL.h" +#include +#include "common.h" + +#define DAMPING 0.5f; /* after bouncing off a wall, damping coefficient determines final speed */ +#define FRICTION 0.0008f /* coefficient of acceleration that opposes direction of motion */ +#define GRAVITY_CONSTANT 0.004f /* how sensitive the ship is to the accelerometer */ + +/* If we aren't on an iPhone, then this definition ought to yield reasonable behavior */ +#ifndef SDL_IPHONE_MAX_GFORCE +#define SDL_IPHONE_MAX_GFORCE 5.0f +#endif + +static SDL_Joystick *accelerometer; /* used for controlling the ship */ + +static struct +{ + float x, y; /* position of ship */ + float vx, vy; /* velocity of ship (in pixels per millesecond) */ + SDL_Rect rect; /* (drawn) position and size of ship */ +} shipData; + +static SDL_Texture *ship = 0; /* texture for spaceship */ +static SDL_Texture *space = 0; /* texture for space (background */ + +void +render(SDL_Renderer *renderer, int w, int h, double deltaTime) +{ + double deltaMilliseconds = deltaTime * 1000; + float speed; + + /* get joystick (accelerometer) axis values and normalize them */ + float ax = SDL_JoystickGetAxis(accelerometer, 0); + float ay = SDL_JoystickGetAxis(accelerometer, 1); + + /* ship screen constraints */ + Uint32 minx = 0.0f; + Uint32 maxx = w - shipData.rect.w; + Uint32 miny = 0.0f; + Uint32 maxy = h - shipData.rect.h; + +#define SINT16_MAX ((float)(0x7FFF)) + + /* update velocity from accelerometer + the factor SDL_IPHONE_MAX_G_FORCE / SINT16_MAX converts between + SDL's units reported from the joytick, and units of g-force, as reported by the accelerometer + */ + shipData.vx += + ax * SDL_IPHONE_MAX_GFORCE / SINT16_MAX * GRAVITY_CONSTANT * + deltaMilliseconds; + shipData.vy += + ay * SDL_IPHONE_MAX_GFORCE / SINT16_MAX * GRAVITY_CONSTANT * + deltaMilliseconds; + + speed = SDL_sqrt(shipData.vx * shipData.vx + shipData.vy * shipData.vy); + + if (speed > 0) { + /* compensate for friction */ + float dirx = shipData.vx / speed; /* normalized x velocity */ + float diry = shipData.vy / speed; /* normalized y velocity */ + + /* update velocity due to friction */ + if (speed - FRICTION * deltaMilliseconds > 0) { + /* apply friction */ + shipData.vx -= dirx * FRICTION * deltaMilliseconds; + shipData.vy -= diry * FRICTION * deltaMilliseconds; + } else { + /* applying friction would MORE than stop the ship, so just stop the ship */ + shipData.vx = 0.0f; + shipData.vy = 0.0f; + } + } + + /* update ship location */ + shipData.x += shipData.vx * deltaMilliseconds; + shipData.y += shipData.vy * deltaMilliseconds; + + if (shipData.x > maxx) { + shipData.x = maxx; + shipData.vx = -shipData.vx * DAMPING; + } else if (shipData.x < minx) { + shipData.x = minx; + shipData.vx = -shipData.vx * DAMPING; + } + if (shipData.y > maxy) { + shipData.y = maxy; + shipData.vy = -shipData.vy * DAMPING; + } else if (shipData.y < miny) { + shipData.y = miny; + shipData.vy = -shipData.vy * DAMPING; + } + + /* draw the background */ + SDL_RenderCopy(renderer, space, NULL, NULL); + + /* draw the ship */ + shipData.rect.x = shipData.x; + shipData.rect.y = shipData.y; + + SDL_RenderCopy(renderer, ship, NULL, &shipData.rect); + + /* update screen */ + SDL_RenderPresent(renderer); + +} + +void +initializeTextures(SDL_Renderer *renderer) +{ + + SDL_Surface *bmp_surface; + + /* load the ship */ + bmp_surface = SDL_LoadBMP("ship.bmp"); + if (!bmp_surface) { + fatalError("could not ship.bmp"); + } + /* set blue to transparent on the ship */ + SDL_SetColorKey(bmp_surface, 1, + SDL_MapRGB(bmp_surface->format, 0, 0, 255)); + + /* create ship texture from surface */ + ship = SDL_CreateTextureFromSurface(renderer, bmp_surface); + if (!ship) { + fatalError("could not create ship texture"); + } + SDL_SetTextureBlendMode(ship, SDL_BLENDMODE_BLEND); + + /* set the width and height of the ship from the surface dimensions */ + shipData.rect.w = bmp_surface->w; + shipData.rect.h = bmp_surface->h; + + SDL_FreeSurface(bmp_surface); + + /* load the space background */ + bmp_surface = SDL_LoadBMP("space.bmp"); + if (!bmp_surface) { + fatalError("could not load space.bmp"); + } + /* create space texture from surface */ + space = SDL_CreateTextureFromSurface(renderer, bmp_surface); + if (!space) { + fatalError("could not create space texture"); + } + SDL_FreeSurface(bmp_surface); + +} + + + +int +main(int argc, char *argv[]) +{ + + SDL_Window *window; /* main window */ + SDL_Renderer *renderer; + int done; /* should we clean up and exit? */ + int w, h; + + /* initialize SDL */ + if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_JOYSTICK) < 0) { + fatalError("Could not initialize SDL"); + } + + /* create main window and renderer */ + window = SDL_CreateWindow(NULL, 0, 0, 320, 480, SDL_WINDOW_FULLSCREEN | SDL_WINDOW_ALLOW_HIGHDPI); + renderer = SDL_CreateRenderer(window, 0, 0); + + SDL_GetWindowSize(window, &w, &h); + SDL_RenderSetLogicalSize(renderer, w, h); + + /* print out some info about joysticks and try to open accelerometer for use */ + printf("There are %d joysticks available\n", SDL_NumJoysticks()); + printf("Default joystick (index 0) is %s\n", SDL_JoystickName(0)); + accelerometer = SDL_JoystickOpen(0); + if (!accelerometer) { + fatalError("Could not open joystick (accelerometer)"); + } + printf("joystick number of axis = %d\n", + SDL_JoystickNumAxes(accelerometer)); + printf("joystick number of hats = %d\n", + SDL_JoystickNumHats(accelerometer)); + printf("joystick number of balls = %d\n", + SDL_JoystickNumBalls(accelerometer)); + printf("joystick number of buttons = %d\n", + SDL_JoystickNumButtons(accelerometer)); + + /* load graphics */ + initializeTextures(renderer); + + /* setup ship */ + shipData.x = (w - shipData.rect.w) / 2; + shipData.y = (h - shipData.rect.h) / 2; + shipData.vx = 0.0f; + shipData.vy = 0.0f; + + done = 0; + /* enter main loop */ + while (!done) { + double deltaTime = updateDeltaTime(); + SDL_Event event; + while (SDL_PollEvent(&event)) { + if (event.type == SDL_QUIT) { + done = 1; + } + } + render(renderer, w, h, deltaTime); + SDL_Delay(1); + } + + /* delete textures */ + SDL_DestroyTexture(ship); + SDL_DestroyTexture(space); + + /* shutdown SDL */ + SDL_Quit(); + + return 0; + +} diff --git a/engine/lib/sdl/Xcode-iOS/Demos/src/common.c b/engine/lib/sdl/Xcode-iOS/Demos/src/common.c new file mode 100644 index 000000000..e15fb5ff1 --- /dev/null +++ b/engine/lib/sdl/Xcode-iOS/Demos/src/common.c @@ -0,0 +1,56 @@ +/* + * common.c + * written by Holmes Futrell + * use however you want + */ + +#include "common.h" +#include "SDL.h" +#include + +/* + Produces a random int x, min <= x <= max + following a uniform distribution +*/ +int +randomInt(int min, int max) +{ + return min + rand() % (max - min + 1); +} + +/* + Produces a random float x, min <= x <= max + following a uniform distribution + */ +float +randomFloat(float min, float max) +{ + return rand() / (float) RAND_MAX *(max - min) + min; +} + +void +fatalError(const char *string) +{ + printf("%s: %s\n", string, SDL_GetError()); + SDL_ShowSimpleMessageBox(SDL_MESSAGEBOX_ERROR, string, SDL_GetError(), NULL); + exit(1); +} + +static Uint64 prevTime = 0; + +double +updateDeltaTime(void) +{ + Uint64 curTime; + double deltaTime; + + if (prevTime == 0) { + prevTime = SDL_GetPerformanceCounter(); + } + + curTime = SDL_GetPerformanceCounter(); + deltaTime = (double) (curTime - prevTime) / (double) SDL_GetPerformanceFrequency(); + prevTime = curTime; + + return deltaTime; +} diff --git a/engine/lib/sdl/Xcode-iOS/Demos/src/common.h b/engine/lib/sdl/Xcode-iOS/Demos/src/common.h new file mode 100644 index 000000000..60475086e --- /dev/null +++ b/engine/lib/sdl/Xcode-iOS/Demos/src/common.h @@ -0,0 +1,10 @@ +/* + * common.h + * written by Holmes Futrell + * use however you want + */ + +extern int randomInt(int min, int max); +extern float randomFloat(float min, float max); +extern void fatalError(const char *string); +extern double updateDeltaTime(void); diff --git a/engine/lib/sdl/Xcode-iOS/Demos/src/fireworks.c b/engine/lib/sdl/Xcode-iOS/Demos/src/fireworks.c new file mode 100644 index 000000000..9f444b4b2 --- /dev/null +++ b/engine/lib/sdl/Xcode-iOS/Demos/src/fireworks.c @@ -0,0 +1,491 @@ +/* + * fireworks.c + * written by Holmes Futrell + * use however you want + */ + +#include "SDL.h" +#include "SDL_opengles.h" +#include "common.h" +#include +#include + +#define ACCEL 0.0001f /* acceleration due to gravity, units in pixels per millesecond squared */ +#define WIND_RESISTANCE 0.00005f /* acceleration per unit velocity due to wind resistance */ +#define MAX_PARTICLES 2000 /* maximum number of particles displayed at once */ + +static GLuint particleTextureID; /* OpenGL particle texture id */ +static SDL_bool pointSizeExtensionSupported; /* is GL_OES_point_size_array supported ? */ +static float pointSizeScale; +/* + used to describe what type of particle a given struct particle is. + emitter - this particle flies up, shooting off trail particles, then finally explodes into dust particles. + trail - shoots off, following emitter particle + dust - radiates outwards from emitter explosion +*/ +enum particleType +{ + emitter = 0, + trail, + dust +}; +/* + struct particle is used to describe each particle displayed on screen +*/ +struct particle +{ + GLfloat x; /* x position of particle */ + GLfloat y; /* y position of particle */ + GLubyte color[4]; /* rgba color of particle */ + GLfloat size; /* size of particle in pixels */ + GLfloat xvel; /* x velocity of particle in pixels per milesecond */ + GLfloat yvel; /* y velocity of particle in pixels per millescond */ + int isActive; /* if not active, then particle is overwritten */ + enum particleType type; /* see enum particleType */ +} particles[MAX_PARTICLES]; /* this array holds all our particles */ + +static int num_active_particles; /* how many members of the particle array are actually being drawn / animated? */ +static int screen_w, screen_h; + +/* function declarations */ +void spawnTrailFromEmitter(struct particle *emitter); +void spawnEmitterParticle(GLfloat x, GLfloat y); +void explodeEmitter(struct particle *emitter); +void initializeParticles(void); +void initializeTexture(void); +int nextPowerOfTwo(int x); +void drawParticles(void); +void stepParticles(double deltaTime); + +/* helper function (used in texture loading) + returns next power of two greater than or equal to x +*/ +int +nextPowerOfTwo(int x) +{ + int val = 1; + while (val < x) { + val *= 2; + } + return val; +} + +/* + steps each active particle by timestep deltaTime +*/ +void +stepParticles(double deltaTime) +{ + float deltaMilliseconds = deltaTime * 1000; + int i; + struct particle *slot = particles; + struct particle *curr = particles; + for (i = 0; i < num_active_particles; i++) { + /* is the particle actually active, or is it marked for deletion? */ + if (curr->isActive) { + /* is the particle off the screen? */ + if (curr->y > screen_h) { + curr->isActive = 0; + } else if (curr->y < 0) { + curr->isActive = 0; + } + if (curr->x > screen_w) { + curr->isActive = 0; + } else if (curr->x < 0) { + curr->isActive = 0; + } + + /* step velocity, then step position */ + curr->yvel += ACCEL * deltaMilliseconds; + curr->xvel += 0.0f; + curr->y += curr->yvel * deltaMilliseconds; + curr->x += curr->xvel * deltaMilliseconds; + + /* particle behavior */ + if (curr->type == emitter) { + /* if we're an emitter, spawn a trail */ + spawnTrailFromEmitter(curr); + /* if we've reached our peak, explode */ + if (curr->yvel > 0.0) { + explodeEmitter(curr); + } + } else { + float speed = + SDL_sqrt(curr->xvel * curr->xvel + curr->yvel * curr->yvel); + /* if wind resistance is not powerful enough to stop us completely, + then apply winde resistance, otherwise just stop us completely */ + if (WIND_RESISTANCE * deltaMilliseconds < speed) { + float normx = curr->xvel / speed; + float normy = curr->yvel / speed; + curr->xvel -= + normx * WIND_RESISTANCE * deltaMilliseconds; + curr->yvel -= + normy * WIND_RESISTANCE * deltaMilliseconds; + } else { + curr->xvel = curr->yvel = 0; /* stop particle */ + } + + if (curr->color[3] <= deltaMilliseconds * 0.1275f) { + /* if this next step will cause us to fade out completely + then just mark for deletion */ + curr->isActive = 0; + } else { + /* otherwise, let's fade a bit more */ + curr->color[3] -= deltaMilliseconds * 0.1275f; + } + + /* if we're a dust particle, shrink our size */ + if (curr->type == dust) { + curr->size -= deltaMilliseconds * 0.010f; + } + + } + + /* if we're still active, pack ourselves in the array next + to the last active guy (pack the array tightly) */ + if (curr->isActive) { + *(slot++) = *curr; + } + } /* endif (curr->isActive) */ + curr++; + } + /* the number of active particles is computed as the difference between + old number of active particles, where slot points, and the + new size of the array, where particles points */ + num_active_particles = (int) (slot - particles); +} + +/* + This draws all the particles shown on screen +*/ +void +drawParticles(void) +{ + + /* draw the background */ + glClear(GL_COLOR_BUFFER_BIT); + + /* set up the position and color pointers */ + glVertexPointer(2, GL_FLOAT, sizeof(struct particle), particles); + glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(struct particle), + particles[0].color); + + if (pointSizeExtensionSupported) { + /* pass in our array of point sizes */ + glPointSizePointerOES(GL_FLOAT, sizeof(struct particle), + &(particles[0].size)); + } + + /* draw our particles! */ + glDrawArrays(GL_POINTS, 0, num_active_particles); + +} + +/* + This causes an emitter to explode in a circular bloom of dust particles +*/ +void +explodeEmitter(struct particle *emitter) +{ + /* first off, we're done with this particle, so turn active off */ + emitter->isActive = 0; + int i; + for (i = 0; i < 200; i++) { + + if (num_active_particles >= MAX_PARTICLES) { + return; + } + + /* come up with a random angle and speed for new particle */ + float theta = randomFloat(0, 2.0f * 3.141592); + float exponent = 3.0f; + float speed = randomFloat(0.00, SDL_powf(0.17, exponent)); + speed = SDL_powf(speed, 1.0f / exponent); + + /* select the particle at the end of our array */ + struct particle *p = &particles[num_active_particles]; + + /* set the particles properties */ + p->xvel = speed * SDL_cos(theta); + p->yvel = speed * SDL_sin(theta); + p->x = emitter->x + emitter->xvel; + p->y = emitter->y + emitter->yvel; + p->isActive = 1; + p->type = dust; + p->size = 15 * pointSizeScale; + /* inherit emitter's color */ + p->color[0] = emitter->color[0]; + p->color[1] = emitter->color[1]; + p->color[2] = emitter->color[2]; + p->color[3] = 255; + /* our array has expanded at the end */ + num_active_particles++; + } + +} + +/* + This spawns a trail particle from an emitter +*/ +void +spawnTrailFromEmitter(struct particle *emitter) +{ + + if (num_active_particles >= MAX_PARTICLES) { + return; + } + + /* select the particle at the slot at the end of our array */ + struct particle *p = &particles[num_active_particles]; + + /* set position and velocity to roughly that of the emitter */ + p->x = emitter->x + randomFloat(-3.0, 3.0); + p->y = emitter->y + emitter->size / 2.0f; + p->xvel = emitter->xvel + randomFloat(-0.005, 0.005); + p->yvel = emitter->yvel + 0.1; + + /* set the color to a random-ish orangy type color */ + p->color[0] = (0.8f + randomFloat(-0.1, 0.0)) * 255; + p->color[1] = (0.4f + randomFloat(-0.1, 0.1)) * 255; + p->color[2] = (0.0f + randomFloat(0.0, 0.2)) * 255; + p->color[3] = (0.7f) * 255; + + /* set other attributes */ + p->size = 10 * pointSizeScale; + p->type = trail; + p->isActive = 1; + + /* our array has expanded at the end */ + num_active_particles++; + +} + +/* + spawns a new emitter particle at the bottom of the screen + destined for the point (x,y). +*/ +void +spawnEmitterParticle(GLfloat x, GLfloat y) +{ + + if (num_active_particles >= MAX_PARTICLES) { + return; + } + + /* find particle at endpoint of array */ + struct particle *p = &particles[num_active_particles]; + + /* set the color randomly */ + switch (rand() % 4) { + case 0: + p->color[0] = 255; + p->color[1] = 100; + p->color[2] = 100; + break; + case 1: + p->color[0] = 100; + p->color[1] = 255; + p->color[2] = 100; + break; + case 2: + p->color[0] = 100; + p->color[1] = 100; + p->color[2] = 255; + break; + case 3: + p->color[0] = 255; + p->color[1] = 150; + p->color[2] = 50; + break; + } + p->color[3] = 255; + /* set position to (x, screen_h) */ + p->x = x; + p->y = screen_h; + /* set velocity so that terminal point is (x,y) */ + p->xvel = 0; + p->yvel = -SDL_sqrt(2 * ACCEL * (screen_h - y)); + /* set other attributes */ + p->size = 10 * pointSizeScale; + p->type = emitter; + p->isActive = 1; + /* our array has expanded at the end */ + num_active_particles++; +} + +/* just sets the endpoint of the particle array to element zero */ +void +initializeParticles(void) +{ + num_active_particles = 0; +} + +/* + loads the particle texture + */ +void +initializeTexture(void) +{ + + int bpp; /* texture bits per pixel */ + Uint32 Rmask, Gmask, Bmask, Amask; /* masks for pixel format passed into OpenGL */ + SDL_Surface *bmp_surface; /* the bmp is loaded here */ + SDL_Surface *bmp_surface_rgba8888; /* this serves as a destination to convert the BMP + to format passed into OpenGL */ + + bmp_surface = SDL_LoadBMP("stroke.bmp"); + if (!bmp_surface) { + fatalError("could not load stroke.bmp"); + } + + /* Grab info about format that will be passed into OpenGL */ + SDL_PixelFormatEnumToMasks(SDL_PIXELFORMAT_ABGR8888, &bpp, &Rmask, &Gmask, + &Bmask, &Amask); + /* Create surface that will hold pixels passed into OpenGL */ + bmp_surface_rgba8888 = + SDL_CreateRGBSurface(0, bmp_surface->w, bmp_surface->h, bpp, Rmask, + Gmask, Bmask, Amask); + /* Blit to this surface, effectively converting the format */ + SDL_BlitSurface(bmp_surface, NULL, bmp_surface_rgba8888, NULL); + + glGenTextures(1, &particleTextureID); + glBindTexture(GL_TEXTURE_2D, particleTextureID); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, + nextPowerOfTwo(bmp_surface->w), + nextPowerOfTwo(bmp_surface->h), + 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + /* this is where we actually pass in the pixel data */ + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, bmp_surface->w, bmp_surface->h, 0, + GL_RGBA, GL_UNSIGNED_BYTE, bmp_surface_rgba8888->pixels); + + /* free bmp surface and converted bmp surface */ + SDL_FreeSurface(bmp_surface); + SDL_FreeSurface(bmp_surface_rgba8888); + +} + +int +main(int argc, char *argv[]) +{ + SDL_Window *window; /* main window */ + SDL_GLContext context; + int drawableW, drawableH; + int done; /* should we clean up and exit? */ + + /* initialize SDL */ + if (SDL_Init(SDL_INIT_VIDEO) < 0) { + fatalError("Could not initialize SDL"); + } + /* seed the random number generator */ + srand(time(NULL)); + /* + request some OpenGL parameters + that may speed drawing + */ + SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 5); + SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 6); + SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 5); + SDL_GL_SetAttribute(SDL_GL_ALPHA_SIZE, 0); + SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 0); + SDL_GL_SetAttribute(SDL_GL_RETAINED_BACKING, 0); + SDL_GL_SetAttribute(SDL_GL_ACCELERATED_VISUAL, 1); + + SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 1); + SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 1); + + /* create main window and renderer */ + window = SDL_CreateWindow(NULL, 0, 0, 320, 480, + SDL_WINDOW_OPENGL | SDL_WINDOW_BORDERLESS | SDL_WINDOW_ALLOW_HIGHDPI); + context = SDL_GL_CreateContext(window); + + /* The window size and drawable size may be different when highdpi is enabled, + * due to the increased pixel density of the drawable. */ + SDL_GetWindowSize(window, &screen_w, &screen_h); + SDL_GL_GetDrawableSize(window, &drawableW, &drawableH); + + /* In OpenGL, point sizes are always in pixels. We don't want them looking + * tiny on a retina screen. */ + pointSizeScale = (float) drawableH / (float) screen_h; + + /* load the particle texture */ + initializeTexture(); + + /* check if GL_POINT_SIZE_ARRAY_OES is supported + this is used to give each particle its own size + */ + pointSizeExtensionSupported = + SDL_GL_ExtensionSupported("GL_OES_point_size_array"); + + /* set up some OpenGL state */ + glDisable(GL_DEPTH_TEST); + glDisable(GL_CULL_FACE); + + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + + glViewport(0, 0, drawableW, drawableH); + + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + glOrthof((GLfloat) 0, + (GLfloat) screen_w, + (GLfloat) screen_h, + (GLfloat) 0, 0.0, 1.0); + + glEnable(GL_TEXTURE_2D); + glEnable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA, GL_ONE); + glEnableClientState(GL_VERTEX_ARRAY); + glEnableClientState(GL_COLOR_ARRAY); + + glEnable(GL_POINT_SPRITE_OES); + glTexEnvi(GL_POINT_SPRITE_OES, GL_COORD_REPLACE_OES, 1); + + if (pointSizeExtensionSupported) { + /* we use this to set the sizes of all the particles */ + glEnableClientState(GL_POINT_SIZE_ARRAY_OES); + } else { + /* if extension not available then all particles have size 10 */ + glPointSize(10 * pointSizeScale); + } + + done = 0; + /* enter main loop */ + while (!done) { + SDL_Event event; + double deltaTime = updateDeltaTime(); + SDL_bool hasEvents = SDL_FALSE; + + while (SDL_PollEvent(&event)) { + hasEvents = SDL_TRUE; + if (event.type == SDL_QUIT) { + done = 1; + } + if (event.type == SDL_MOUSEBUTTONDOWN) { + int x, y; + SDL_GetMouseState(&x, &y); + spawnEmitterParticle(x, y); + } + } + + /* Only update and render if we have active particles or just received events */ + if (num_active_particles > 0 || hasEvents) { + stepParticles(deltaTime); + drawParticles(); + SDL_GL_SwapWindow(window); + SDL_Delay(16); // Target 60 FPS when active + } else { + /* Idle state - wait for events with longer delay to save CPU */ + SDL_Delay(100); // Much longer delay when idle + } + } + + /* delete textures */ + glDeleteTextures(1, &particleTextureID); + /* shutdown SDL */ + SDL_Quit(); + + return 0; +} diff --git a/engine/lib/sdl/Xcode-iOS/Demos/src/happy.c b/engine/lib/sdl/Xcode-iOS/Demos/src/happy.c new file mode 100644 index 000000000..163d3463f --- /dev/null +++ b/engine/lib/sdl/Xcode-iOS/Demos/src/happy.c @@ -0,0 +1,180 @@ +/* + * happy.c + * written by Holmes Futrell + * use however you want + */ + +#include "SDL.h" +#include "common.h" + +#define NUM_HAPPY_FACES 100 /* number of faces to draw */ +#define HAPPY_FACE_SIZE 32 /* width and height of happyface */ + +static SDL_Texture *texture = 0; /* reference to texture holding happyface */ + +static struct +{ + float x, y; /* position of happyface */ + float xvel, yvel; /* velocity of happyface */ +} faces[NUM_HAPPY_FACES]; + +/* + Sets initial positions and velocities of happyfaces + units of velocity are pixels per millesecond +*/ +void +initializeHappyFaces(SDL_Renderer *renderer) +{ + int i; + int w; + int h; + SDL_RenderGetLogicalSize(renderer, &w, &h); + + for (i = 0; i < NUM_HAPPY_FACES; i++) { + faces[i].x = randomFloat(0.0f, w - HAPPY_FACE_SIZE); + faces[i].y = randomFloat(0.0f, h - HAPPY_FACE_SIZE); + faces[i].xvel = randomFloat(-60.0f, 60.0f); + faces[i].yvel = randomFloat(-60.0f, 60.0f); + } +} + +void +render(SDL_Renderer *renderer, double deltaTime) +{ + int i; + SDL_Rect srcRect; + SDL_Rect dstRect; + int w; + int h; + + SDL_RenderGetLogicalSize(renderer, &w, &h); + + /* setup boundaries for happyface bouncing */ + int maxx = w - HAPPY_FACE_SIZE; + int maxy = h - HAPPY_FACE_SIZE; + int minx = 0; + int miny = 0; + + /* setup rects for drawing */ + srcRect.x = 0; + srcRect.y = 0; + srcRect.w = HAPPY_FACE_SIZE; + srcRect.h = HAPPY_FACE_SIZE; + dstRect.w = HAPPY_FACE_SIZE; + dstRect.h = HAPPY_FACE_SIZE; + + /* fill background in with black */ + SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255); + SDL_RenderClear(renderer); + + /* + loop through all the happy faces: + - update position + - update velocity (if boundary is hit) + - draw + */ + for (i = 0; i < NUM_HAPPY_FACES; i++) { + faces[i].x += faces[i].xvel * deltaTime; + faces[i].y += faces[i].yvel * deltaTime; + if (faces[i].x > maxx) { + faces[i].x = maxx; + faces[i].xvel = -faces[i].xvel; + } else if (faces[i].y > maxy) { + faces[i].y = maxy; + faces[i].yvel = -faces[i].yvel; + } + if (faces[i].x < minx) { + faces[i].x = minx; + faces[i].xvel = -faces[i].xvel; + } else if (faces[i].y < miny) { + faces[i].y = miny; + faces[i].yvel = -faces[i].yvel; + } + dstRect.x = faces[i].x; + dstRect.y = faces[i].y; + SDL_RenderCopy(renderer, texture, &srcRect, &dstRect); + } + /* update screen */ + SDL_RenderPresent(renderer); + +} + +/* + loads the happyface graphic into a texture +*/ +void +initializeTexture(SDL_Renderer *renderer) +{ + SDL_Surface *bmp_surface; + /* load the bmp */ + bmp_surface = SDL_LoadBMP("icon.bmp"); + if (!bmp_surface) { + fatalError("could not load bmp"); + } + /* set white to transparent on the happyface */ + SDL_SetColorKey(bmp_surface, 1, + SDL_MapRGB(bmp_surface->format, 255, 255, 255)); + + /* convert RGBA surface to texture */ + texture = SDL_CreateTextureFromSurface(renderer, bmp_surface); + if (!texture) { + fatalError("could not create texture"); + } + SDL_SetTextureBlendMode(texture, SDL_BLENDMODE_BLEND); + + /* free up allocated memory */ + SDL_FreeSurface(bmp_surface); +} + +int +main(int argc, char *argv[]) +{ + SDL_Window *window; + SDL_Renderer *renderer; + int done; + int width; + int height; + + /* initialize SDL */ + if (SDL_Init(SDL_INIT_VIDEO) < 0) { + fatalError("Could not initialize SDL"); + } + + /* The specified window size doesn't matter - except for its aspect ratio, + * which determines whether the window is in portrait or landscape on iOS + * (if SDL_WINDOW_RESIZABLE isn't specified). */ + window = SDL_CreateWindow(NULL, 0, 0, 320, 480, SDL_WINDOW_FULLSCREEN | SDL_WINDOW_ALLOW_HIGHDPI); + + renderer = SDL_CreateRenderer(window, -1, 0); + + SDL_GetWindowSize(window, &width, &height); + SDL_RenderSetLogicalSize(renderer, width, height); + + initializeTexture(renderer); + initializeHappyFaces(renderer); + + + /* main loop */ + done = 0; + while (!done) { + SDL_Event event; + double deltaTime = updateDeltaTime(); + + while (SDL_PollEvent(&event)) { + if (event.type == SDL_QUIT) { + done = 1; + } + } + + render(renderer, deltaTime); + SDL_Delay(1); + } + + /* cleanup */ + SDL_DestroyTexture(texture); + /* shutdown SDL */ + SDL_Quit(); + + return 0; + +} diff --git a/engine/lib/sdl/Xcode-iOS/Demos/src/keyboard.c b/engine/lib/sdl/Xcode-iOS/Demos/src/keyboard.c new file mode 100644 index 000000000..3e1bedf5b --- /dev/null +++ b/engine/lib/sdl/Xcode-iOS/Demos/src/keyboard.c @@ -0,0 +1,301 @@ +/* + * keyboard.c + * written by Holmes Futrell + * use however you want + */ + +#include "SDL.h" +#include "common.h" + +#define TEST_INPUT_RECT + +#define GLYPH_SIZE_IMAGE 16 /* size of glyphs (characters) in the bitmap font file */ +#define GLYPH_SIZE_SCREEN 32 /* size of glyphs (characters) as shown on the screen */ + +#define MAX_CHARS 1024 + +static SDL_Texture *texture; /* texture where we'll hold our font */ + +static SDL_Renderer *renderer; +static int numChars = 0; /* number of characters we've typed so far */ +static SDL_Color bg_color = { 50, 50, 100, 255 }; /* color of background */ + +static int glyphs[MAX_CHARS]; + +/* this structure maps a scancode to an index in our bitmap font. + it also contains data about under which modifiers the mapping is valid + (for example, we don't want shift + 1 to produce the character '1', + but rather the character '!') +*/ +typedef struct +{ + SDL_Scancode scancode; /* scancode of the key we want to map */ + int allow_no_mod; /* is the map valid if the key has no modifiers? */ + SDL_Keymod mod; /* what modifiers are allowed for the mapping */ + int index; /* what index in the font does the scancode map to */ +} fontMapping; + +#define TABLE_SIZE 51 /* size of our table which maps keys and modifiers to font indices */ + +/* Below is the table that defines the mapping between scancodes and modifiers to indices in the + bitmap font. As an example, then line '{ SDL_SCANCODE_A, 1, KMOD_SHIFT, 33 }' means, map + the key A (which has scancode SDL_SCANCODE_A) to index 33 in the font (which is a picture of an A), + The '1' means that the mapping is valid even if there are no modifiers, and KMOD_SHIFT means the + mapping is also valid if the user is holding shift. +*/ +fontMapping map[TABLE_SIZE] = { + + {SDL_SCANCODE_A, 1, KMOD_SHIFT, 33}, /* A */ + {SDL_SCANCODE_B, 1, KMOD_SHIFT, 34}, /* B */ + {SDL_SCANCODE_C, 1, KMOD_SHIFT, 35}, /* C */ + {SDL_SCANCODE_D, 1, KMOD_SHIFT, 36}, /* D */ + {SDL_SCANCODE_E, 1, KMOD_SHIFT, 37}, /* E */ + {SDL_SCANCODE_F, 1, KMOD_SHIFT, 38}, /* F */ + {SDL_SCANCODE_G, 1, KMOD_SHIFT, 39}, /* G */ + {SDL_SCANCODE_H, 1, KMOD_SHIFT, 40}, /* H */ + {SDL_SCANCODE_I, 1, KMOD_SHIFT, 41}, /* I */ + {SDL_SCANCODE_J, 1, KMOD_SHIFT, 42}, /* J */ + {SDL_SCANCODE_K, 1, KMOD_SHIFT, 43}, /* K */ + {SDL_SCANCODE_L, 1, KMOD_SHIFT, 44}, /* L */ + {SDL_SCANCODE_M, 1, KMOD_SHIFT, 45}, /* M */ + {SDL_SCANCODE_N, 1, KMOD_SHIFT, 46}, /* N */ + {SDL_SCANCODE_O, 1, KMOD_SHIFT, 47}, /* O */ + {SDL_SCANCODE_P, 1, KMOD_SHIFT, 48}, /* P */ + {SDL_SCANCODE_Q, 1, KMOD_SHIFT, 49}, /* Q */ + {SDL_SCANCODE_R, 1, KMOD_SHIFT, 50}, /* R */ + {SDL_SCANCODE_S, 1, KMOD_SHIFT, 51}, /* S */ + {SDL_SCANCODE_T, 1, KMOD_SHIFT, 52}, /* T */ + {SDL_SCANCODE_U, 1, KMOD_SHIFT, 53}, /* U */ + {SDL_SCANCODE_V, 1, KMOD_SHIFT, 54}, /* V */ + {SDL_SCANCODE_W, 1, KMOD_SHIFT, 55}, /* W */ + {SDL_SCANCODE_X, 1, KMOD_SHIFT, 56}, /* X */ + {SDL_SCANCODE_Y, 1, KMOD_SHIFT, 57}, /* Y */ + {SDL_SCANCODE_Z, 1, KMOD_SHIFT, 58}, /* Z */ + {SDL_SCANCODE_0, 1, 0, 16}, /* 0 */ + {SDL_SCANCODE_1, 1, 0, 17}, /* 1 */ + {SDL_SCANCODE_2, 1, 0, 18}, /* 2 */ + {SDL_SCANCODE_3, 1, 0, 19}, /* 3 */ + {SDL_SCANCODE_4, 1, 0, 20}, /* 4 */ + {SDL_SCANCODE_5, 1, 0, 21}, /* 5 */ + {SDL_SCANCODE_6, 1, 0, 22}, /* 6 */ + {SDL_SCANCODE_7, 1, 0, 23}, /* 7 */ + {SDL_SCANCODE_8, 1, 0, 24}, /* 8 */ + {SDL_SCANCODE_9, 1, 0, 25}, /* 9 */ + {SDL_SCANCODE_SPACE, 1, 0, 0}, /* ' ' */ + {SDL_SCANCODE_1, 0, KMOD_SHIFT, 1}, /* ! */ + {SDL_SCANCODE_SLASH, 0, KMOD_SHIFT, 31}, /* ? */ + {SDL_SCANCODE_SLASH, 1, 0, 15}, /* / */ + {SDL_SCANCODE_COMMA, 1, 0, 12}, /* , */ + {SDL_SCANCODE_SEMICOLON, 1, 0, 27}, /* ; */ + {SDL_SCANCODE_SEMICOLON, 0, KMOD_SHIFT, 26}, /* : */ + {SDL_SCANCODE_PERIOD, 1, 0, 14}, /* . */ + {SDL_SCANCODE_MINUS, 1, 0, 13}, /* - */ + {SDL_SCANCODE_EQUALS, 0, KMOD_SHIFT, 11}, /* = */ + {SDL_SCANCODE_APOSTROPHE, 1, 0, 7}, /* ' */ + {SDL_SCANCODE_APOSTROPHE, 0, KMOD_SHIFT, 2}, /* " */ + {SDL_SCANCODE_5, 0, KMOD_SHIFT, 5}, /* % */ + +}; + +/* + This function maps an SDL_KeySym to an index in the bitmap font. + It does so by scanning through the font mapping table one entry + at a time. + + If a match is found (scancode and allowed modifiers), the proper + index is returned. + + If there is no entry for the key, -1 is returned +*/ +int +keyToGlyphIndex(SDL_Keysym key) +{ + int i, index = -1; + for (i = 0; i < TABLE_SIZE; i++) { + fontMapping compare = map[i]; + if (key.scancode == compare.scancode) { + /* if this entry is valid with no key mod and we have no keymod, or if + the key's modifiers are allowed modifiers for that mapping */ + if ((compare.allow_no_mod && key.mod == 0) + || (key.mod & compare.mod)) { + index = compare.index; + break; + } + } + } + return index; +} + +/* + This function returns and x,y position for a given character number. + It is used for positioning each character of text +*/ +void +getPositionForCharNumber(int n, int *x, int *y) +{ + int renderW, renderH; + SDL_RenderGetLogicalSize(renderer, &renderW, &renderH); + + int x_padding = 16; /* padding space on left and right side of screen */ + int y_padding = 32; /* padding space at top of screen */ + /* figure out the number of characters that can fit horizontally across the screen */ + int max_x_chars = (renderW - 2 * x_padding) / GLYPH_SIZE_SCREEN; + int line_separation = 5; /* pixels between each line */ + *x = (n % max_x_chars) * GLYPH_SIZE_SCREEN + x_padding; +#ifdef TEST_INPUT_RECT + *y = renderH - GLYPH_SIZE_SCREEN; +#else + *y = (n / max_x_chars) * (GLYPH_SIZE_SCREEN + line_separation) + y_padding; +#endif +} + +void +drawGlyph(int glyph, int positionIndex) +{ + int x, y; + getPositionForCharNumber(positionIndex, &x, &y); + SDL_Rect srcRect = { GLYPH_SIZE_IMAGE * glyph, 0, GLYPH_SIZE_IMAGE, GLYPH_SIZE_IMAGE }; + SDL_Rect dstRect = { x, y, GLYPH_SIZE_SCREEN, GLYPH_SIZE_SCREEN }; + SDL_RenderCopy(renderer, texture, &srcRect, &dstRect); +} + +/* this function loads our font into an SDL_Texture and returns the SDL_Texture */ +SDL_Texture* +loadFont(void) +{ + SDL_Surface *surface = SDL_LoadBMP("kromasky_16x16.bmp"); + + if (!surface) { + printf("Error loading bitmap: %s\n", SDL_GetError()); + return 0; + } else { + /* set the transparent color for the bitmap font (hot pink) */ + SDL_SetColorKey(surface, 1, SDL_MapRGB(surface->format, 238, 0, 252)); + /* now we convert the surface to our desired pixel format */ + int format = SDL_PIXELFORMAT_ABGR8888; /* desired texture format */ + Uint32 Rmask, Gmask, Bmask, Amask; /* masks for desired format */ + int bpp; /* bits per pixel for desired format */ + SDL_PixelFormatEnumToMasks(format, &bpp, &Rmask, &Gmask, &Bmask, + &Amask); + SDL_Surface *converted = + SDL_CreateRGBSurface(0, surface->w, surface->h, bpp, Rmask, Gmask, + Bmask, Amask); + SDL_BlitSurface(surface, NULL, converted, NULL); + /* create our texture */ + texture = SDL_CreateTextureFromSurface(renderer, converted); + if (!texture) { + printf("texture creation failed: %s\n", SDL_GetError()); + } else { + /* set blend mode for our texture */ + SDL_SetTextureBlendMode(texture, SDL_BLENDMODE_BLEND); + } + SDL_FreeSurface(surface); + SDL_FreeSurface(converted); + return texture; + } +} + +void +draw(void) +{ + SDL_SetRenderDrawColor(renderer, bg_color.r, bg_color.g, bg_color.b, bg_color.a); + SDL_RenderClear(renderer); + + for (int i = 0; i < numChars; i++) { + drawGlyph(glyphs[i], i); + } + + drawGlyph(29, numChars); /* cursor is at index 29 in the bitmap font */ + + SDL_RenderPresent(renderer); +} + +int +main(int argc, char *argv[]) +{ + SDL_Window *window; + SDL_Event event; /* last event received */ + SDL_Scancode scancode; /* scancode of last key we pushed */ + int width; + int height; + int done; + SDL_Rect textrect; + + if (SDL_Init(SDL_INIT_VIDEO) < 0) { + printf("Error initializing SDL: %s", SDL_GetError()); + } + /* create window */ + window = SDL_CreateWindow("iOS keyboard test", 0, 0, 0, 0, SDL_WINDOW_FULLSCREEN_DESKTOP | SDL_WINDOW_RESIZABLE | SDL_WINDOW_ALLOW_HIGHDPI); + /* create renderer */ + renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_PRESENTVSYNC); + + SDL_GetWindowSize(window, &width, &height); + SDL_RenderSetLogicalSize(renderer, width, height); + + /* load up our font */ + loadFont(); + + /* Show onscreen keyboard */ +#ifdef TEST_INPUT_RECT + textrect.x = 0; + textrect.y = height - GLYPH_SIZE_IMAGE; + textrect.w = width; + textrect.h = GLYPH_SIZE_IMAGE; + SDL_SetTextInputRect(&textrect); +#endif + SDL_StartTextInput(); + + done = 0; + while (!done) { + while (SDL_PollEvent(&event)) { + switch (event.type) { + case SDL_QUIT: + done = 1; + break; + case SDL_WINDOWEVENT: + if (event.window.event == SDL_WINDOWEVENT_RESIZED) { + width = event.window.data1; + height = event.window.data2; + SDL_RenderSetLogicalSize(renderer, width, height); +#ifdef TEST_INPUT_RECT + textrect.x = 0; + textrect.y = height - GLYPH_SIZE_IMAGE; + textrect.w = width; + textrect.h = GLYPH_SIZE_IMAGE; + SDL_SetTextInputRect(&textrect); +#endif + } + break; + case SDL_KEYDOWN: + if (event.key.keysym.scancode == SDL_SCANCODE_BACKSPACE) { + if (numChars > 0) { + numChars--; + } + } else if (numChars + 1 < MAX_CHARS) { + int index = keyToGlyphIndex(event.key.keysym); + if (index >= 0) { + glyphs[numChars++] = index; + } + } + break; + case SDL_MOUSEBUTTONUP: + /* mouse up toggles onscreen keyboard visibility */ + if (SDL_IsTextInputActive()) { + SDL_StopTextInput(); + } else { + SDL_StartTextInput(); + } + break; + } + } + + draw(); + SDL_Delay(15); + } + + SDL_DestroyTexture(texture); + SDL_DestroyRenderer(renderer); + SDL_DestroyWindow(window); + SDL_Quit(); + return 0; +} diff --git a/engine/lib/sdl/Xcode-iOS/Demos/src/mixer.c b/engine/lib/sdl/Xcode-iOS/Demos/src/mixer.c new file mode 100644 index 000000000..4c4ffbad0 --- /dev/null +++ b/engine/lib/sdl/Xcode-iOS/Demos/src/mixer.c @@ -0,0 +1,344 @@ +/* + * mixer.c + * written by Holmes Futrell + * use however you want + */ + +#include "SDL.h" +#include "common.h" + +#define NUM_CHANNELS 8 /* max number of sounds we can play at once */ +#define NUM_DRUMS 4 /* number of drums in our set */ + +static struct +{ + SDL_Rect rect; /* where the button is drawn */ + SDL_Color upColor; /* color when button is not active */ + SDL_Color downColor; /* color when button is active */ + int isPressed; /* is the button being pressed ? */ + int touchIndex; /* what mouse (touch) index pressed the button ? */ +} buttons[NUM_DRUMS]; + +struct sound +{ + Uint8 *buffer; /* audio buffer for sound file */ + Uint32 length; /* length of the buffer (in bytes) */ +}; + +/* this array holds the audio for the drum noises */ +static struct sound drums[NUM_DRUMS]; + +/* function declarations */ +void handleMouseButtonDown(SDL_Event * event); +void handleMouseButtonUp(SDL_Event * event); +int playSound(struct sound *); +void initializeButtons(SDL_Renderer *); +void audioCallback(void *userdata, Uint8 * stream, int len); +void loadSound(const char *file, struct sound *s); + +struct +{ + /* channel array holds information about currently playing sounds */ + struct + { + Uint8 *position; /* what is the current position in the buffer of this sound ? */ + Uint32 remaining; /* how many bytes remaining before we're done playing the sound ? */ + Uint32 timestamp; /* when did this sound start playing ? */ + } channels[NUM_CHANNELS]; + SDL_AudioSpec outputSpec; /* what audio format are we using for output? */ + int numSoundsPlaying; /* how many sounds are currently playing */ +} mixer; + +/* sets up the buttons (color, position, state) */ +void +initializeButtons(SDL_Renderer *renderer) +{ + int i; + int spacing = 10; /* gap between drum buttons */ + SDL_Rect buttonRect; /* keeps track of where to position drum */ + SDL_Color upColor = { 86, 86, 140, 255 }; /* color of drum when not pressed */ + SDL_Color downColor = { 191, 191, 221, 255 }; /* color of drum when pressed */ + int renderW, renderH; + + SDL_RenderGetLogicalSize(renderer, &renderW, &renderH); + + buttonRect.x = spacing; + buttonRect.y = spacing; + buttonRect.w = renderW - 2 * spacing; + buttonRect.h = (renderH - (NUM_DRUMS + 1) * spacing) / NUM_DRUMS; + + /* setup each button */ + for (i = 0; i < NUM_DRUMS; i++) { + + buttons[i].rect = buttonRect; + buttons[i].isPressed = 0; + buttons[i].upColor = upColor; + buttons[i].downColor = downColor; + + buttonRect.y += spacing + buttonRect.h; /* setup y coordinate for next drum */ + + } +} + +/* + loads a wav file (stored in 'file'), converts it to the mixer's output format, + and stores the resulting buffer and length in the sound structure + */ +void +loadSound(const char *file, struct sound *s) +{ + SDL_AudioSpec spec; /* the audio format of the .wav file */ + SDL_AudioCVT cvt; /* used to convert .wav to output format when formats differ */ + int result; + if (SDL_LoadWAV(file, &spec, &s->buffer, &s->length) == NULL) { + fatalError("could not load .wav"); + } + /* build the audio converter */ + result = SDL_BuildAudioCVT(&cvt, spec.format, spec.channels, spec.freq, + mixer.outputSpec.format, + mixer.outputSpec.channels, + mixer.outputSpec.freq); + if (result == -1) { + fatalError("could not build audio CVT"); + } else if (result != 0) { + /* + this happens when the .wav format differs from the output format. + we convert the .wav buffer here + */ + cvt.buf = (Uint8 *) SDL_malloc(s->length * cvt.len_mult); /* allocate conversion buffer */ + cvt.len = s->length; /* set conversion buffer length */ + SDL_memcpy(cvt.buf, s->buffer, s->length); /* copy sound to conversion buffer */ + if (SDL_ConvertAudio(&cvt) == -1) { /* convert the sound */ + fatalError("could not convert .wav"); + } + SDL_free(s->buffer); /* Free the original (unconverted) buffer */ + s->buffer = cvt.buf; /* point sound buffer to converted buffer */ + s->length = cvt.len_cvt; /* set sound buffer's new length */ + } +} + +/* called from main event loop */ +void +handleMouseButtonDown(SDL_Event * event) +{ + + int x, y, mouseIndex, i, drumIndex; + + mouseIndex = 0; + drumIndex = -1; + + SDL_GetMouseState(&x, &y); + /* check if we hit any of the drum buttons */ + for (i = 0; i < NUM_DRUMS; i++) { + if (x >= buttons[i].rect.x + && x < buttons[i].rect.x + buttons[i].rect.w + && y >= buttons[i].rect.y + && y < buttons[i].rect.y + buttons[i].rect.h) { + drumIndex = i; + break; + } + } + if (drumIndex != -1) { + /* if we hit a button */ + buttons[drumIndex].touchIndex = mouseIndex; + buttons[drumIndex].isPressed = 1; + playSound(&drums[drumIndex]); + } + +} + +/* called from main event loop */ +void +handleMouseButtonUp(SDL_Event * event) +{ + int i; + int mouseIndex = 0; + /* check if this should cause any of the buttons to become unpressed */ + for (i = 0; i < NUM_DRUMS; i++) { + if (buttons[i].touchIndex == mouseIndex) { + buttons[i].isPressed = 0; + } + } +} + +/* draws buttons to screen */ +void +render(SDL_Renderer *renderer) +{ + int i; + SDL_SetRenderDrawColor(renderer, 50, 50, 50, 255); + SDL_RenderClear(renderer); /* draw background (gray) */ + /* draw the drum buttons */ + for (i = 0; i < NUM_DRUMS; i++) { + SDL_Color color = + buttons[i].isPressed ? buttons[i].downColor : buttons[i].upColor; + SDL_SetRenderDrawColor(renderer, color.r, color.g, color.b, color.a); + SDL_RenderFillRect(renderer, &buttons[i].rect); + } + /* update the screen */ + SDL_RenderPresent(renderer); +} + +/* + finds a sound channel in the mixer for a sound + and sets it up to start playing +*/ +int +playSound(struct sound *s) +{ + /* + find an empty channel to play on. + if no channel is available, use oldest channel + */ + int i; + int selected_channel = -1; + int oldest_channel = 0; + + if (mixer.numSoundsPlaying == 0) { + /* we're playing a sound now, so start audio callback back up */ + SDL_PauseAudio(0); + } + + /* find a sound channel to play the sound on */ + for (i = 0; i < NUM_CHANNELS; i++) { + if (mixer.channels[i].position == NULL) { + /* if no sound on this channel, select it */ + selected_channel = i; + break; + } + /* if this channel's sound is older than the oldest so far, set it to oldest */ + if (mixer.channels[i].timestamp < mixer.channels[oldest_channel].timestamp) { + oldest_channel = i; + } + } + + /* no empty channels, take the oldest one */ + if (selected_channel == -1) + selected_channel = oldest_channel; + else + mixer.numSoundsPlaying++; + + /* point channel data to wav data */ + mixer.channels[selected_channel].position = s->buffer; + mixer.channels[selected_channel].remaining = s->length; + mixer.channels[selected_channel].timestamp = SDL_GetTicks(); + + return selected_channel; +} + +/* + Called from SDL's audio system. Supplies sound input with data by mixing together all + currently playing sound effects. +*/ +void +audioCallback(void *userdata, Uint8 * stream, int len) +{ + int i; + int copy_amt; + SDL_memset(stream, mixer.outputSpec.silence, len); /* initialize buffer to silence */ + /* for each channel, mix in whatever is playing on that channel */ + for (i = 0; i < NUM_CHANNELS; i++) { + if (mixer.channels[i].position == NULL) { + /* if no sound is playing on this channel */ + continue; /* nothing to do for this channel */ + } + + /* copy len bytes to the buffer, unless we have fewer than len bytes remaining */ + copy_amt = + mixer.channels[i].remaining < + len ? mixer.channels[i].remaining : len; + + /* mix this sound effect with the output */ + SDL_MixAudioFormat(stream, mixer.channels[i].position, + mixer.outputSpec.format, copy_amt, SDL_MIX_MAXVOLUME); + + /* update buffer position in sound effect and the number of bytes left */ + mixer.channels[i].position += copy_amt; + mixer.channels[i].remaining -= copy_amt; + + /* did we finish playing the sound effect ? */ + if (mixer.channels[i].remaining == 0) { + mixer.channels[i].position = NULL; /* indicates no sound playing on channel anymore */ + mixer.numSoundsPlaying--; + if (mixer.numSoundsPlaying == 0) { + /* if no sounds left playing, pause audio callback */ + SDL_PauseAudio(1); + } + } + } +} + +int +main(int argc, char *argv[]) +{ + int done; /* has user tried to quit ? */ + SDL_Window *window; /* main window */ + SDL_Renderer *renderer; + SDL_Event event; + int i; + int width; + int height; + + if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO) < 0) { + fatalError("could not initialize SDL"); + } + window = SDL_CreateWindow(NULL, 0, 0, 320, 480, SDL_WINDOW_BORDERLESS | SDL_WINDOW_ALLOW_HIGHDPI); + renderer = SDL_CreateRenderer(window, 0, 0); + + SDL_GetWindowSize(window, &width, &height); + SDL_RenderSetLogicalSize(renderer, width, height); + + /* initialize the mixer */ + SDL_memset(&mixer, 0, sizeof(mixer)); + /* setup output format */ + mixer.outputSpec.freq = 44100; + mixer.outputSpec.format = AUDIO_S16LSB; + mixer.outputSpec.channels = 2; + mixer.outputSpec.samples = 256; + mixer.outputSpec.callback = audioCallback; + mixer.outputSpec.userdata = NULL; + + /* open audio for output */ + if (SDL_OpenAudio(&mixer.outputSpec, NULL) != 0) { + fatalError("Opening audio failed"); + } + + /* load our drum noises */ + loadSound("ds_kick_big_amb.wav", &drums[3]); + loadSound("ds_brush_snare.wav", &drums[2]); + loadSound("ds_loose_skin_mute.wav", &drums[1]); + loadSound("ds_china.wav", &drums[0]); + + /* setup positions, colors, and state of buttons */ + initializeButtons(renderer); + + /* enter main loop */ + done = 0; + while (!done) { + while (SDL_PollEvent(&event)) { + switch (event.type) { + case SDL_MOUSEBUTTONDOWN: + handleMouseButtonDown(&event); + break; + case SDL_MOUSEBUTTONUP: + handleMouseButtonUp(&event); + break; + case SDL_QUIT: + done = 1; + break; + } + } + render(renderer); /* draw buttons */ + + SDL_Delay(1); + } + + /* cleanup code, let's free up those sound buffers */ + for (i = 0; i < NUM_DRUMS; i++) { + SDL_free(drums[i].buffer); + } + /* let SDL do its exit code */ + SDL_Quit(); + + return 0; +} diff --git a/engine/lib/sdl/Xcode-iOS/Demos/src/rectangles.c b/engine/lib/sdl/Xcode-iOS/Demos/src/rectangles.c new file mode 100644 index 000000000..a08f99790 --- /dev/null +++ b/engine/lib/sdl/Xcode-iOS/Demos/src/rectangles.c @@ -0,0 +1,92 @@ +/* + * rectangles.c + * written by Holmes Futrell + * use however you want +*/ + +#include "SDL.h" +#include +#include "common.h" + +void +render(SDL_Renderer *renderer) +{ + Uint8 r, g, b; + int renderW; + int renderH; + + SDL_RenderGetLogicalSize(renderer, &renderW, &renderH); + + /* Come up with a random rectangle */ + SDL_Rect rect; + rect.w = randomInt(64, 128); + rect.h = randomInt(64, 128); + rect.x = randomInt(0, renderW); + rect.y = randomInt(0, renderH); + + /* Come up with a random color */ + r = randomInt(50, 255); + g = randomInt(50, 255); + b = randomInt(50, 255); + + /* Fill the rectangle in the color */ + SDL_SetRenderDrawColor(renderer, r, g, b, 255); + SDL_RenderFillRect(renderer, &rect); + + /* update screen */ + SDL_RenderPresent(renderer); +} + +int +main(int argc, char *argv[]) +{ + + SDL_Window *window; + SDL_Renderer *renderer; + int done; + SDL_Event event; + int windowW; + int windowH; + + /* initialize SDL */ + if (SDL_Init(SDL_INIT_VIDEO) < 0) { + fatalError("Could not initialize SDL"); + } + + /* seed random number generator */ + srand(time(NULL)); + + /* create window and renderer */ + window = SDL_CreateWindow(NULL, 0, 0, 320, 480, SDL_WINDOW_ALLOW_HIGHDPI); + if (!window) { + fatalError("Could not initialize Window"); + } + renderer = SDL_CreateRenderer(window, -1, 0); + if (!renderer) { + fatalError("Could not create renderer"); + } + + SDL_GetWindowSize(window, &windowW, &windowH); + SDL_RenderSetLogicalSize(renderer, windowW, windowH); + + /* Fill screen with black */ + SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255); + SDL_RenderClear(renderer); + + /* Enter render loop, waiting for user to quit */ + done = 0; + while (!done) { + while (SDL_PollEvent(&event)) { + if (event.type == SDL_QUIT) { + done = 1; + } + } + render(renderer); + SDL_Delay(1); + } + + /* shutdown SDL */ + SDL_Quit(); + + return 0; +} diff --git a/engine/lib/sdl/Xcode-iOS/Demos/src/touch.c b/engine/lib/sdl/Xcode-iOS/Demos/src/touch.c new file mode 100644 index 000000000..4b7ff9548 --- /dev/null +++ b/engine/lib/sdl/Xcode-iOS/Demos/src/touch.c @@ -0,0 +1,139 @@ +/* + * touch.c + * written by Holmes Futrell + * use however you want + */ + +#include "SDL.h" +#include +#include "common.h" + +#define BRUSH_SIZE 32 /* width and height of the brush */ +#define PIXELS_PER_ITERATION 5 /* number of pixels between brush blots when forming a line */ + +static SDL_Texture *brush = 0; /* texture for the brush */ + +/* + draws a line from (startx, starty) to (startx + dx, starty + dy) + this is accomplished by drawing several blots spaced PIXELS_PER_ITERATION apart +*/ +void +drawLine(SDL_Renderer *renderer, float startx, float starty, float dx, float dy) +{ + + float distance = SDL_sqrt(dx * dx + dy * dy); /* length of line segment (pythagoras) */ + int iterations = distance / PIXELS_PER_ITERATION + 1; /* number of brush sprites to draw for the line */ + float dx_prime = dx / iterations; /* x-shift per iteration */ + float dy_prime = dy / iterations; /* y-shift per iteration */ + SDL_Rect dstRect; /* rect to draw brush sprite into */ + float x; + float y; + int i; + + dstRect.w = BRUSH_SIZE; + dstRect.h = BRUSH_SIZE; + + /* setup x and y for the location of the first sprite */ + x = startx - BRUSH_SIZE / 2.0f; + y = starty - BRUSH_SIZE / 2.0f; + + /* draw a series of blots to form the line */ + for (i = 0; i < iterations; i++) { + dstRect.x = x; + dstRect.y = y; + /* shift x and y for next sprite location */ + x += dx_prime; + y += dy_prime; + /* draw brush blot */ + SDL_RenderCopy(renderer, brush, NULL, &dstRect); + } +} + +/* + loads the brush texture +*/ +void +initializeTexture(SDL_Renderer *renderer) +{ + SDL_Surface *bmp_surface; + bmp_surface = SDL_LoadBMP("stroke.bmp"); + if (!bmp_surface) { + fatalError("could not load stroke.bmp"); + } + brush = + SDL_CreateTextureFromSurface(renderer, bmp_surface); + SDL_FreeSurface(bmp_surface); + if (!brush) { + fatalError("could not create brush texture"); + } + /* additive blending -- laying strokes on top of eachother makes them brighter */ + SDL_SetTextureBlendMode(brush, SDL_BLENDMODE_ADD); + /* set brush color (red) */ + SDL_SetTextureColorMod(brush, 255, 100, 100); +} + +int +main(int argc, char *argv[]) +{ + + int x, y, dx, dy; /* mouse location */ + Uint8 state; /* mouse (touch) state */ + SDL_Event event; + SDL_Window *window; /* main window */ + SDL_Renderer *renderer; + SDL_Texture *target; + int done; /* does user want to quit? */ + int w, h; + + /* initialize SDL */ + if (SDL_Init(SDL_INIT_VIDEO) < 0) { + fatalError("Could not initialize SDL"); + } + + /* create main window and renderer */ + window = SDL_CreateWindow(NULL, 0, 0, 320, 480, SDL_WINDOW_BORDERLESS | SDL_WINDOW_ALLOW_HIGHDPI); + renderer = SDL_CreateRenderer(window, 0, 0); + + SDL_GetWindowSize(window, &w, &h); + SDL_RenderSetLogicalSize(renderer, w, h); + + /* load brush texture */ + initializeTexture(renderer); + + /* fill canvass initially with all black */ + target = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_ARGB8888, SDL_TEXTUREACCESS_TARGET, w, h); + SDL_SetRenderTarget(renderer, target); + SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255); + SDL_RenderClear(renderer); + SDL_SetRenderTarget(renderer, NULL); + + done = 0; + while (!done) { + while (SDL_PollEvent(&event) == 1) { + switch (event.type) { + case SDL_QUIT: + done = 1; + break; + case SDL_MOUSEMOTION: + state = SDL_GetMouseState(&x, &y); /* get its location */ + SDL_GetRelativeMouseState(&dx, &dy); /* find how much the mouse moved */ + if (state & SDL_BUTTON_LMASK) { /* is the mouse (touch) down? */ + SDL_SetRenderTarget(renderer, target); + drawLine(renderer, x - dx, y - dy, dx, dy); /* draw line segment */ + SDL_SetRenderTarget(renderer, NULL); + } + break; + } + } + + SDL_RenderCopy(renderer, target, NULL, NULL); + SDL_RenderPresent(renderer); + } + + /* cleanup */ + SDL_DestroyTexture(brush); + SDL_DestroyTexture(target); + SDL_Quit(); + + return 0; +} diff --git a/engine/lib/sdl/Xcode/SDL/Info-Framework.plist b/engine/lib/sdl/Xcode/SDL/Info-Framework.plist new file mode 100644 index 000000000..ac069e127 --- /dev/null +++ b/engine/lib/sdl/Xcode/SDL/Info-Framework.plist @@ -0,0 +1,28 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleGetInfoString + http://www.libsdl.org + CFBundleIconFile + + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + Simple DirectMedia Layer + CFBundlePackageType + FMWK + CFBundleShortVersionString + 2.32.10 + CFBundleSignature + SDLX + CFBundleVersion + 2.32.10 + + diff --git a/engine/lib/sdl/Xcode/SDL/SDL.xcodeproj/project.pbxproj b/engine/lib/sdl/Xcode/SDL/SDL.xcodeproj/project.pbxproj new file mode 100644 index 000000000..57ae61938 --- /dev/null +++ b/engine/lib/sdl/Xcode/SDL/SDL.xcodeproj/project.pbxproj @@ -0,0 +1,10261 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + objects = { + +/* Begin PBXBuildFile section */ + 007317A40858DECD00B2BC32 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0073179D0858DECD00B2BC32 /* Cocoa.framework */; }; + 007317A60858DECD00B2BC32 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0073179F0858DECD00B2BC32 /* IOKit.framework */; }; + 00CFA89D106B4BA100758660 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00CFA89C106B4BA100758660 /* ForceFeedback.framework */; }; + 00D0D08410675DD9004B05EF /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00D0D08310675DD9004B05EF /* CoreFoundation.framework */; }; + 00D0D0D810675E46004B05EF /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 007317C10858E15000B2BC32 /* Carbon.framework */; }; + 552673EB2546054600085751 /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A75FDABD23E28B6200529352 /* GameController.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; + 552673EC2546055000085751 /* CoreHaptics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F37DC5F225350EBC0002E6F7 /* CoreHaptics.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; + 557D0CFA254586CA003913E3 /* CoreHaptics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F37DC5F225350EBC0002E6F7 /* CoreHaptics.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; + 557D0CFB254586D7003913E3 /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A75FDABD23E28B6200529352 /* GameController.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; + 560572062473687700B46B66 /* SDL_syslocale.m in Sources */ = {isa = PBXBuildFile; fileRef = 566E26CC246274CB00718109 /* SDL_syslocale.m */; }; + 560572072473687800B46B66 /* SDL_syslocale.m in Sources */ = {isa = PBXBuildFile; fileRef = 566E26CC246274CB00718109 /* SDL_syslocale.m */; }; + 560572092473687900B46B66 /* SDL_syslocale.m in Sources */ = {isa = PBXBuildFile; fileRef = 566E26CC246274CB00718109 /* SDL_syslocale.m */; }; + 5605720A2473687900B46B66 /* SDL_syslocale.m in Sources */ = {isa = PBXBuildFile; fileRef = 566E26CC246274CB00718109 /* SDL_syslocale.m */; }; + 5605720B2473687A00B46B66 /* SDL_syslocale.m in Sources */ = {isa = PBXBuildFile; fileRef = 566E26CC246274CB00718109 /* SDL_syslocale.m */; }; + 5605720C2473687B00B46B66 /* SDL_syslocale.m in Sources */ = {isa = PBXBuildFile; fileRef = 566E26CC246274CB00718109 /* SDL_syslocale.m */; }; + 5605720D2473687B00B46B66 /* SDL_syslocale.m in Sources */ = {isa = PBXBuildFile; fileRef = 566E26CC246274CB00718109 /* SDL_syslocale.m */; }; + 5605720E2473687C00B46B66 /* SDL_syslocale.m in Sources */ = {isa = PBXBuildFile; fileRef = 566E26CC246274CB00718109 /* SDL_syslocale.m */; }; + 5605720F2473688000B46B66 /* SDL_locale.c in Sources */ = {isa = PBXBuildFile; fileRef = 566E26CD246274CB00718109 /* SDL_locale.c */; }; + 560572102473688000B46B66 /* SDL_locale.c in Sources */ = {isa = PBXBuildFile; fileRef = 566E26CD246274CB00718109 /* SDL_locale.c */; }; + 560572112473688100B46B66 /* SDL_locale.c in Sources */ = {isa = PBXBuildFile; fileRef = 566E26CD246274CB00718109 /* SDL_locale.c */; }; + 560572122473688200B46B66 /* SDL_locale.c in Sources */ = {isa = PBXBuildFile; fileRef = 566E26CD246274CB00718109 /* SDL_locale.c */; }; + 560572132473688200B46B66 /* SDL_locale.c in Sources */ = {isa = PBXBuildFile; fileRef = 566E26CD246274CB00718109 /* SDL_locale.c */; }; + 560572142473688300B46B66 /* SDL_locale.c in Sources */ = {isa = PBXBuildFile; fileRef = 566E26CD246274CB00718109 /* SDL_locale.c */; }; + 560572152473688300B46B66 /* SDL_locale.c in Sources */ = {isa = PBXBuildFile; fileRef = 566E26CD246274CB00718109 /* SDL_locale.c */; }; + 560572162473688400B46B66 /* SDL_locale.c in Sources */ = {isa = PBXBuildFile; fileRef = 566E26CD246274CB00718109 /* SDL_locale.c */; }; + 560572172473688A00B46B66 /* SDL_syslocale.h in Headers */ = {isa = PBXBuildFile; fileRef = 566E26CE246274CC00718109 /* SDL_syslocale.h */; }; + 560572182473688B00B46B66 /* SDL_syslocale.h in Headers */ = {isa = PBXBuildFile; fileRef = 566E26CE246274CC00718109 /* SDL_syslocale.h */; }; + 560572192473688C00B46B66 /* SDL_syslocale.h in Headers */ = {isa = PBXBuildFile; fileRef = 566E26CE246274CC00718109 /* SDL_syslocale.h */; }; + 5605721A2473688C00B46B66 /* SDL_syslocale.h in Headers */ = {isa = PBXBuildFile; fileRef = 566E26CE246274CC00718109 /* SDL_syslocale.h */; }; + 5605721B2473688D00B46B66 /* SDL_syslocale.h in Headers */ = {isa = PBXBuildFile; fileRef = 566E26CE246274CC00718109 /* SDL_syslocale.h */; }; + 5605721C2473688D00B46B66 /* SDL_syslocale.h in Headers */ = {isa = PBXBuildFile; fileRef = 566E26CE246274CC00718109 /* SDL_syslocale.h */; }; + 5605721D2473688E00B46B66 /* SDL_syslocale.h in Headers */ = {isa = PBXBuildFile; fileRef = 566E26CE246274CC00718109 /* SDL_syslocale.h */; }; + 5605721E2473688F00B46B66 /* SDL_syslocale.h in Headers */ = {isa = PBXBuildFile; fileRef = 566E26CE246274CC00718109 /* SDL_syslocale.h */; }; + 5616CA4C252BB2A6005D5928 /* SDL_url.c in Sources */ = {isa = PBXBuildFile; fileRef = 5616CA49252BB2A5005D5928 /* SDL_url.c */; }; + 5616CA4D252BB2A6005D5928 /* SDL_sysurl.h in Headers */ = {isa = PBXBuildFile; fileRef = 5616CA4A252BB2A6005D5928 /* SDL_sysurl.h */; }; + 5616CA4E252BB2A6005D5928 /* SDL_sysurl.m in Sources */ = {isa = PBXBuildFile; fileRef = 5616CA4B252BB2A6005D5928 /* SDL_sysurl.m */; }; + 5616CA50252BB2BE005D5928 /* SDL_misc.h in Headers */ = {isa = PBXBuildFile; fileRef = 5616CA4F252BB2BE005D5928 /* SDL_misc.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5616CA51252BB35A005D5928 /* SDL_sysurl.h in Headers */ = {isa = PBXBuildFile; fileRef = 5616CA4A252BB2A6005D5928 /* SDL_sysurl.h */; }; + 5616CA52252BB35A005D5928 /* SDL_url.c in Sources */ = {isa = PBXBuildFile; fileRef = 5616CA49252BB2A5005D5928 /* SDL_url.c */; }; + 5616CA54252BB35B005D5928 /* SDL_sysurl.h in Headers */ = {isa = PBXBuildFile; fileRef = 5616CA4A252BB2A6005D5928 /* SDL_sysurl.h */; }; + 5616CA55252BB35B005D5928 /* SDL_url.c in Sources */ = {isa = PBXBuildFile; fileRef = 5616CA49252BB2A5005D5928 /* SDL_url.c */; }; + 5616CA57252BB35C005D5928 /* SDL_sysurl.h in Headers */ = {isa = PBXBuildFile; fileRef = 5616CA4A252BB2A6005D5928 /* SDL_sysurl.h */; }; + 5616CA58252BB35C005D5928 /* SDL_url.c in Sources */ = {isa = PBXBuildFile; fileRef = 5616CA49252BB2A5005D5928 /* SDL_url.c */; }; + 5616CA59252BB35C005D5928 /* SDL_sysurl.m in Sources */ = {isa = PBXBuildFile; fileRef = 5616CA4B252BB2A6005D5928 /* SDL_sysurl.m */; }; + 5616CA5A252BB35D005D5928 /* SDL_sysurl.h in Headers */ = {isa = PBXBuildFile; fileRef = 5616CA4A252BB2A6005D5928 /* SDL_sysurl.h */; }; + 5616CA5B252BB35D005D5928 /* SDL_url.c in Sources */ = {isa = PBXBuildFile; fileRef = 5616CA49252BB2A5005D5928 /* SDL_url.c */; }; + 5616CA5D252BB35E005D5928 /* SDL_sysurl.h in Headers */ = {isa = PBXBuildFile; fileRef = 5616CA4A252BB2A6005D5928 /* SDL_sysurl.h */; }; + 5616CA5E252BB35E005D5928 /* SDL_url.c in Sources */ = {isa = PBXBuildFile; fileRef = 5616CA49252BB2A5005D5928 /* SDL_url.c */; }; + 5616CA60252BB35E005D5928 /* SDL_sysurl.h in Headers */ = {isa = PBXBuildFile; fileRef = 5616CA4A252BB2A6005D5928 /* SDL_sysurl.h */; }; + 5616CA61252BB35E005D5928 /* SDL_url.c in Sources */ = {isa = PBXBuildFile; fileRef = 5616CA49252BB2A5005D5928 /* SDL_url.c */; }; + 5616CA62252BB35E005D5928 /* SDL_sysurl.m in Sources */ = {isa = PBXBuildFile; fileRef = 5616CA4B252BB2A6005D5928 /* SDL_sysurl.m */; }; + 5616CA63252BB35F005D5928 /* SDL_sysurl.h in Headers */ = {isa = PBXBuildFile; fileRef = 5616CA4A252BB2A6005D5928 /* SDL_sysurl.h */; }; + 5616CA64252BB35F005D5928 /* SDL_url.c in Sources */ = {isa = PBXBuildFile; fileRef = 5616CA49252BB2A5005D5928 /* SDL_url.c */; }; + 5616CA66252BB361005D5928 /* SDL_sysurl.h in Headers */ = {isa = PBXBuildFile; fileRef = 5616CA4A252BB2A6005D5928 /* SDL_sysurl.h */; }; + 5616CA67252BB361005D5928 /* SDL_url.c in Sources */ = {isa = PBXBuildFile; fileRef = 5616CA49252BB2A5005D5928 /* SDL_url.c */; }; + 562C4AEA1D8F496300AF9EBE /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7381E931D8B69C300B177DD /* AudioToolbox.framework */; }; + 564624361FF821C20074AC87 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 564624351FF821B80074AC87 /* QuartzCore.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; + 564624381FF821DA0074AC87 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 564624371FF821CB0074AC87 /* Metal.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; + 5646243B1FF822100074AC87 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 564624351FF821B80074AC87 /* QuartzCore.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; + 5646243C1FF822170074AC87 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 564624371FF821CB0074AC87 /* Metal.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; + 566E267A2462701100718109 /* SDL_locale.h in Headers */ = {isa = PBXBuildFile; fileRef = 566E26792462701100718109 /* SDL_locale.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 566E26CF246274CC00718109 /* SDL_syslocale.m in Sources */ = {isa = PBXBuildFile; fileRef = 566E26CC246274CB00718109 /* SDL_syslocale.m */; }; + 566E26D8246274CC00718109 /* SDL_locale.c in Sources */ = {isa = PBXBuildFile; fileRef = 566E26CD246274CB00718109 /* SDL_locale.c */; }; + 566E26E1246274CC00718109 /* SDL_syslocale.h in Headers */ = {isa = PBXBuildFile; fileRef = 566E26CE246274CC00718109 /* SDL_syslocale.h */; }; + 567E2F2117C44C35005F1892 /* SDL_filesystem.h in Headers */ = {isa = PBXBuildFile; fileRef = 567E2F2017C44C35005F1892 /* SDL_filesystem.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 56C5237F1D8F4985001F2F30 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7381E951D8B69D600B177DD /* CoreAudio.framework */; }; + 56C523811D8F498C001F2F30 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00D0D08310675DD9004B05EF /* CoreFoundation.framework */; }; + 5C2EF7011FC9EF10003F5197 /* SDL_egl.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C2EF7001FC9EF0F003F5197 /* SDL_egl.h */; }; + 75E0915A241EA924004729E1 /* SDL_virtualjoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = 75E09158241EA924004729E1 /* SDL_virtualjoystick.c */; }; + 75E0915B241EA924004729E1 /* SDL_virtualjoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = 75E09158241EA924004729E1 /* SDL_virtualjoystick.c */; }; + 75E0915C241EA924004729E1 /* SDL_virtualjoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = 75E09158241EA924004729E1 /* SDL_virtualjoystick.c */; }; + 75E0915D241EA924004729E1 /* SDL_virtualjoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = 75E09158241EA924004729E1 /* SDL_virtualjoystick.c */; }; + 75E0915E241EA924004729E1 /* SDL_virtualjoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = 75E09158241EA924004729E1 /* SDL_virtualjoystick.c */; }; + 75E0915F241EA924004729E1 /* SDL_virtualjoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = 75E09158241EA924004729E1 /* SDL_virtualjoystick.c */; }; + 75E09160241EA924004729E1 /* SDL_virtualjoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = 75E09158241EA924004729E1 /* SDL_virtualjoystick.c */; }; + 75E09161241EA924004729E1 /* SDL_virtualjoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = 75E09158241EA924004729E1 /* SDL_virtualjoystick.c */; }; + 75E09162241EA924004729E1 /* SDL_virtualjoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = 75E09158241EA924004729E1 /* SDL_virtualjoystick.c */; }; + 75E09163241EA924004729E1 /* SDL_virtualjoystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = 75E09159241EA924004729E1 /* SDL_virtualjoystick_c.h */; }; + 75E09164241EA924004729E1 /* SDL_virtualjoystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = 75E09159241EA924004729E1 /* SDL_virtualjoystick_c.h */; }; + 75E09165241EA924004729E1 /* SDL_virtualjoystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = 75E09159241EA924004729E1 /* SDL_virtualjoystick_c.h */; }; + 75E09166241EA924004729E1 /* SDL_virtualjoystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = 75E09159241EA924004729E1 /* SDL_virtualjoystick_c.h */; }; + 75E09167241EA924004729E1 /* SDL_virtualjoystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = 75E09159241EA924004729E1 /* SDL_virtualjoystick_c.h */; }; + 75E09168241EA924004729E1 /* SDL_virtualjoystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = 75E09159241EA924004729E1 /* SDL_virtualjoystick_c.h */; }; + 75E09169241EA924004729E1 /* SDL_virtualjoystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = 75E09159241EA924004729E1 /* SDL_virtualjoystick_c.h */; }; + 75E0916A241EA924004729E1 /* SDL_virtualjoystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = 75E09159241EA924004729E1 /* SDL_virtualjoystick_c.h */; }; + 75E0916B241EA924004729E1 /* SDL_virtualjoystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = 75E09159241EA924004729E1 /* SDL_virtualjoystick_c.h */; }; + 9846B07C287A9020000C35C8 /* SDL_hidapi_shield.c in Sources */ = {isa = PBXBuildFile; fileRef = 9846B07B287A9020000C35C8 /* SDL_hidapi_shield.c */; }; + 9846B07D287A9020000C35C8 /* SDL_hidapi_shield.c in Sources */ = {isa = PBXBuildFile; fileRef = 9846B07B287A9020000C35C8 /* SDL_hidapi_shield.c */; }; + 9846B07E287A9020000C35C8 /* SDL_hidapi_shield.c in Sources */ = {isa = PBXBuildFile; fileRef = 9846B07B287A9020000C35C8 /* SDL_hidapi_shield.c */; }; + 9846B07F287A9020000C35C8 /* SDL_hidapi_shield.c in Sources */ = {isa = PBXBuildFile; fileRef = 9846B07B287A9020000C35C8 /* SDL_hidapi_shield.c */; }; + 9846B080287A9020000C35C8 /* SDL_hidapi_shield.c in Sources */ = {isa = PBXBuildFile; fileRef = 9846B07B287A9020000C35C8 /* SDL_hidapi_shield.c */; }; + 9846B081287A9020000C35C8 /* SDL_hidapi_shield.c in Sources */ = {isa = PBXBuildFile; fileRef = 9846B07B287A9020000C35C8 /* SDL_hidapi_shield.c */; }; + 9846B082287A9020000C35C8 /* SDL_hidapi_shield.c in Sources */ = {isa = PBXBuildFile; fileRef = 9846B07B287A9020000C35C8 /* SDL_hidapi_shield.c */; }; + 9846B083287A9020000C35C8 /* SDL_hidapi_shield.c in Sources */ = {isa = PBXBuildFile; fileRef = 9846B07B287A9020000C35C8 /* SDL_hidapi_shield.c */; }; + 9846B084287A9020000C35C8 /* SDL_hidapi_shield.c in Sources */ = {isa = PBXBuildFile; fileRef = 9846B07B287A9020000C35C8 /* SDL_hidapi_shield.c */; }; + A1626A3E2617006A003F1973 /* SDL_triangle.c in Sources */ = {isa = PBXBuildFile; fileRef = A1626A3D2617006A003F1973 /* SDL_triangle.c */; }; + A1626A3F2617006A003F1973 /* SDL_triangle.c in Sources */ = {isa = PBXBuildFile; fileRef = A1626A3D2617006A003F1973 /* SDL_triangle.c */; }; + A1626A402617006A003F1973 /* SDL_triangle.c in Sources */ = {isa = PBXBuildFile; fileRef = A1626A3D2617006A003F1973 /* SDL_triangle.c */; }; + A1626A412617006A003F1973 /* SDL_triangle.c in Sources */ = {isa = PBXBuildFile; fileRef = A1626A3D2617006A003F1973 /* SDL_triangle.c */; }; + A1626A422617006A003F1973 /* SDL_triangle.c in Sources */ = {isa = PBXBuildFile; fileRef = A1626A3D2617006A003F1973 /* SDL_triangle.c */; }; + A1626A432617006A003F1973 /* SDL_triangle.c in Sources */ = {isa = PBXBuildFile; fileRef = A1626A3D2617006A003F1973 /* SDL_triangle.c */; }; + A1626A442617006A003F1973 /* SDL_triangle.c in Sources */ = {isa = PBXBuildFile; fileRef = A1626A3D2617006A003F1973 /* SDL_triangle.c */; }; + A1626A452617006A003F1973 /* SDL_triangle.c in Sources */ = {isa = PBXBuildFile; fileRef = A1626A3D2617006A003F1973 /* SDL_triangle.c */; }; + A1626A462617006A003F1973 /* SDL_triangle.c in Sources */ = {isa = PBXBuildFile; fileRef = A1626A3D2617006A003F1973 /* SDL_triangle.c */; }; + A1626A522617008D003F1973 /* SDL_triangle.h in Headers */ = {isa = PBXBuildFile; fileRef = A1626A512617008C003F1973 /* SDL_triangle.h */; }; + A1626A532617008D003F1973 /* SDL_triangle.h in Headers */ = {isa = PBXBuildFile; fileRef = A1626A512617008C003F1973 /* SDL_triangle.h */; }; + A1626A542617008D003F1973 /* SDL_triangle.h in Headers */ = {isa = PBXBuildFile; fileRef = A1626A512617008C003F1973 /* SDL_triangle.h */; }; + A1626A552617008D003F1973 /* SDL_triangle.h in Headers */ = {isa = PBXBuildFile; fileRef = A1626A512617008C003F1973 /* SDL_triangle.h */; }; + A1626A562617008D003F1973 /* SDL_triangle.h in Headers */ = {isa = PBXBuildFile; fileRef = A1626A512617008C003F1973 /* SDL_triangle.h */; }; + A1626A572617008D003F1973 /* SDL_triangle.h in Headers */ = {isa = PBXBuildFile; fileRef = A1626A512617008C003F1973 /* SDL_triangle.h */; }; + A1626A582617008D003F1973 /* SDL_triangle.h in Headers */ = {isa = PBXBuildFile; fileRef = A1626A512617008C003F1973 /* SDL_triangle.h */; }; + A1626A592617008D003F1973 /* SDL_triangle.h in Headers */ = {isa = PBXBuildFile; fileRef = A1626A512617008C003F1973 /* SDL_triangle.h */; }; + A1626A5A2617008D003F1973 /* SDL_triangle.h in Headers */ = {isa = PBXBuildFile; fileRef = A1626A512617008C003F1973 /* SDL_triangle.h */; }; + A1BB8B6327F6CF330057CFA8 /* SDL_list.c in Sources */ = {isa = PBXBuildFile; fileRef = A1BB8B6127F6CF320057CFA8 /* SDL_list.c */; }; + A1BB8B6427F6CF330057CFA8 /* SDL_list.c in Sources */ = {isa = PBXBuildFile; fileRef = A1BB8B6127F6CF320057CFA8 /* SDL_list.c */; }; + A1BB8B6527F6CF330057CFA8 /* SDL_list.c in Sources */ = {isa = PBXBuildFile; fileRef = A1BB8B6127F6CF320057CFA8 /* SDL_list.c */; }; + A1BB8B6627F6CF330057CFA8 /* SDL_list.c in Sources */ = {isa = PBXBuildFile; fileRef = A1BB8B6127F6CF320057CFA8 /* SDL_list.c */; }; + A1BB8B6727F6CF330057CFA8 /* SDL_list.c in Sources */ = {isa = PBXBuildFile; fileRef = A1BB8B6127F6CF320057CFA8 /* SDL_list.c */; }; + A1BB8B6827F6CF330057CFA8 /* SDL_list.c in Sources */ = {isa = PBXBuildFile; fileRef = A1BB8B6127F6CF320057CFA8 /* SDL_list.c */; }; + A1BB8B6927F6CF330057CFA8 /* SDL_list.c in Sources */ = {isa = PBXBuildFile; fileRef = A1BB8B6127F6CF320057CFA8 /* SDL_list.c */; }; + A1BB8B6A27F6CF330057CFA8 /* SDL_list.c in Sources */ = {isa = PBXBuildFile; fileRef = A1BB8B6127F6CF320057CFA8 /* SDL_list.c */; }; + A1BB8B6B27F6CF330057CFA8 /* SDL_list.c in Sources */ = {isa = PBXBuildFile; fileRef = A1BB8B6127F6CF320057CFA8 /* SDL_list.c */; }; + A1BB8B6C27F6CF330057CFA8 /* SDL_list.h in Headers */ = {isa = PBXBuildFile; fileRef = A1BB8B6227F6CF330057CFA8 /* SDL_list.h */; }; + A1BB8B6D27F6CF330057CFA8 /* SDL_list.h in Headers */ = {isa = PBXBuildFile; fileRef = A1BB8B6227F6CF330057CFA8 /* SDL_list.h */; }; + A1BB8B6E27F6CF330057CFA8 /* SDL_list.h in Headers */ = {isa = PBXBuildFile; fileRef = A1BB8B6227F6CF330057CFA8 /* SDL_list.h */; }; + A1BB8B6F27F6CF330057CFA8 /* SDL_list.h in Headers */ = {isa = PBXBuildFile; fileRef = A1BB8B6227F6CF330057CFA8 /* SDL_list.h */; }; + A1BB8B7027F6CF330057CFA8 /* SDL_list.h in Headers */ = {isa = PBXBuildFile; fileRef = A1BB8B6227F6CF330057CFA8 /* SDL_list.h */; }; + A1BB8B7127F6CF330057CFA8 /* SDL_list.h in Headers */ = {isa = PBXBuildFile; fileRef = A1BB8B6227F6CF330057CFA8 /* SDL_list.h */; }; + A1BB8B7227F6CF330057CFA8 /* SDL_list.h in Headers */ = {isa = PBXBuildFile; fileRef = A1BB8B6227F6CF330057CFA8 /* SDL_list.h */; }; + A1BB8B7327F6CF330057CFA8 /* SDL_list.h in Headers */ = {isa = PBXBuildFile; fileRef = A1BB8B6227F6CF330057CFA8 /* SDL_list.h */; }; + A1BB8B7427F6CF330057CFA8 /* SDL_list.h in Headers */ = {isa = PBXBuildFile; fileRef = A1BB8B6227F6CF330057CFA8 /* SDL_list.h */; }; + A7381E961D8B69D600B177DD /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7381E951D8B69D600B177DD /* CoreAudio.framework */; }; + A7381E971D8B6A0300B177DD /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7381E931D8B69C300B177DD /* AudioToolbox.framework */; }; + A75FCCFD23E25AB700529352 /* SDL_shaders_metal_tvos.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8E323E2514000DCD162 /* SDL_shaders_metal_tvos.h */; }; + A75FCCFE23E25AB700529352 /* SDL_filesystem.h in Headers */ = {isa = PBXBuildFile; fileRef = 567E2F2017C44C35005F1892 /* SDL_filesystem.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCD0023E25AB700529352 /* begin_code.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557C71595D4D800BBD41B /* begin_code.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCD0123E25AB700529352 /* SDL_uikitopengles.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A63123E2513D00DCD162 /* SDL_uikitopengles.h */; }; + A75FCD0223E25AB700529352 /* close_code.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557C81595D4D800BBD41B /* close_code.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCD0323E25AB700529352 /* SDL.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F91595D4D800BBD41B /* SDL.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCD0423E25AB700529352 /* SDL_uikitmetalview.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A61D23E2513D00DCD162 /* SDL_uikitmetalview.h */; }; + A75FCD0523E25AB700529352 /* SDL_assert.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557C91595D4D800BBD41B /* SDL_assert.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCD0623E25AB700529352 /* SDL_shape_internals.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60D23E2513D00DCD162 /* SDL_shape_internals.h */; }; + A75FCD0723E25AB700529352 /* SDL_glfuncs.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A90E23E2514000DCD162 /* SDL_glfuncs.h */; }; + A75FCD0823E25AB700529352 /* SDL_atomic.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557CA1595D4D800BBD41B /* SDL_atomic.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCD0923E25AB700529352 /* SDL_rect_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60C23E2513D00DCD162 /* SDL_rect_c.h */; }; + A75FCD0B23E25AB700529352 /* SDL_shaders_metal_osx.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8E223E2514000DCD162 /* SDL_shaders_metal_osx.h */; }; + A75FCD0C23E25AB700529352 /* SDL_shaders_metal_ios.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8DF23E2514000DCD162 /* SDL_shaders_metal_ios.h */; }; + A75FCD0D23E25AB700529352 /* SDL_offscreenwindow.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5F523E2513D00DCD162 /* SDL_offscreenwindow.h */; }; + A75FCD0E23E25AB700529352 /* SDL_audio.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557CB1595D4D800BBD41B /* SDL_audio.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCD0F23E25AB700529352 /* SDL_coremotionsensor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A57B23E2513D00DCD162 /* SDL_coremotionsensor.h */; }; + A75FCD1023E25AB700529352 /* SDL_uikitview.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A61923E2513D00DCD162 /* SDL_uikitview.h */; }; + A75FCD1123E25AB700529352 /* SDL_bits.h in Headers */ = {isa = PBXBuildFile; fileRef = AADA5B8616CCAB3000107CF7 /* SDL_bits.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCD1223E25AB700529352 /* SDL_uikitappdelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62F23E2513D00DCD162 /* SDL_uikitappdelegate.h */; }; + A75FCD1423E25AB700529352 /* SDL_blendmode.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557CC1595D4D800BBD41B /* SDL_blendmode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCD1523E25AB700529352 /* SDL_dropevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A92E23E2514000DCD162 /* SDL_dropevents_c.h */; }; + A75FCD1623E25AB700529352 /* SDL_haptic_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5C623E2513D00DCD162 /* SDL_haptic_c.h */; }; + A75FCD1723E25AB700529352 /* SDL_clipboard.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557CD1595D4D800BBD41B /* SDL_clipboard.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCD1823E25AB700529352 /* SDL_dataqueue.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A57023E2513D00DCD162 /* SDL_dataqueue.h */; }; + A75FCD1923E25AB700529352 /* SDL_error_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A57523E2513D00DCD162 /* SDL_error_c.h */; }; + A75FCD1B23E25AB700529352 /* SDL_config.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557CF1595D4D800BBD41B /* SDL_config.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCD1C23E25AB700529352 /* SDL_d3dmath.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8DC23E2514000DCD162 /* SDL_d3dmath.h */; }; + A75FCD1F23E25AB700529352 /* SDL_egl_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60423E2513D00DCD162 /* SDL_egl_c.h */; }; + A75FCD2023E25AB700529352 /* SDL_copying.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D01595D4D800BBD41B /* SDL_copying.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCD2123E25AB700529352 /* yuv_rgb.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A77223E2513E00DCD162 /* yuv_rgb.h */; }; + A75FCD2223E25AB700529352 /* SDL_dummyaudio.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A87123E2513F00DCD162 /* SDL_dummyaudio.h */; }; + A75FCD2323E25AB700529352 /* SDL_uikitmessagebox.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62623E2513D00DCD162 /* SDL_uikitmessagebox.h */; }; + A75FCD2523E25AB700529352 /* SDL_thread_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A77823E2513E00DCD162 /* SDL_thread_c.h */; }; + A75FCD2623E25AB700529352 /* SDL_cocoamessagebox.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69423E2513E00DCD162 /* SDL_cocoamessagebox.h */; }; + A75FCD2823E25AB700529352 /* SDL_cpuinfo.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D11595D4D800BBD41B /* SDL_cpuinfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCD2923E25AB700529352 /* SDL_endian.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D21595D4D800BBD41B /* SDL_endian.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCD2A23E25AB700529352 /* SDL_error.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D31595D4D800BBD41B /* SDL_error.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCD2B23E25AB700529352 /* SDL_events.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D41595D4D800BBD41B /* SDL_events.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCD2C23E25AB700529352 /* SDL_blendfillrect.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F623E2514000DCD162 /* SDL_blendfillrect.h */; }; + A75FCD2D23E25AB700529352 /* SDL_gamecontroller.h in Headers */ = {isa = PBXBuildFile; fileRef = A77E6EB3167AB0A90010E40B /* SDL_gamecontroller.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCD2E23E25AB700529352 /* SDL_hidapijoystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7C723E2513E00DCD162 /* SDL_hidapijoystick_c.h */; }; + A75FCD3023E25AB700529352 /* SDL_pixels_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A74023E2513E00DCD162 /* SDL_pixels_c.h */; }; + A75FCD3223E25AB700529352 /* SDL_joystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7D023E2513E00DCD162 /* SDL_joystick_c.h */; }; + A75FCD3323E25AB700529352 /* vk_sdk_platform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73D23E2513E00DCD162 /* vk_sdk_platform.h */; }; + A75FCD3423E25AB700529352 /* blank_cursor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93223E2514000DCD162 /* blank_cursor.h */; }; + A75FCD3523E25AB700529352 /* SDL_gesture.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D51595D4D800BBD41B /* SDL_gesture.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCD3623E25AB700529352 /* SDL_sysaudio.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A89F23E2513F00DCD162 /* SDL_sysaudio.h */; }; + A75FCD3723E25AB700529352 /* SDL_haptic.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D61595D4D800BBD41B /* SDL_haptic.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCD3923E25AB700529352 /* math_libm.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A92623E2514000DCD162 /* math_libm.h */; }; + A75FCD3A23E25AB700529352 /* SDL_uikitvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62223E2513D00DCD162 /* SDL_uikitvideo.h */; }; + A75FCD3B23E25AB700529352 /* SDL_cocoamouse.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69823E2513E00DCD162 /* SDL_cocoamouse.h */; }; + A75FCD3C23E25AB700529352 /* SDL_hints.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D71595D4D800BBD41B /* SDL_hints.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCD3D23E25AB700529352 /* SDL_blit_slow.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A66323E2513E00DCD162 /* SDL_blit_slow.h */; }; + A75FCD3E23E25AB700529352 /* SDL_yuv_sw_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8EC23E2514000DCD162 /* SDL_yuv_sw_c.h */; }; + A75FCD4023E25AB700529352 /* SDL_windowevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A94323E2514000DCD162 /* SDL_windowevents_c.h */; }; + A75FCD4123E25AB700529352 /* SDL_joystick.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D91595D4D800BBD41B /* SDL_joystick.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCD4223E25AB700529352 /* SDL_cocoavideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69323E2513E00DCD162 /* SDL_cocoavideo.h */; }; + A75FCD4323E25AB700529352 /* SDL_keyboard.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557DA1595D4D800BBD41B /* SDL_keyboard.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCD4423E25AB700529352 /* SDL_uikitevents.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62D23E2513D00DCD162 /* SDL_uikitevents.h */; }; + A75FCD4523E25AB700529352 /* SDL_gesture_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93023E2514000DCD162 /* SDL_gesture_c.h */; }; + A75FCD4623E25AB700529352 /* SDL_shaders_gl.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A90D23E2514000DCD162 /* SDL_shaders_gl.h */; }; + A75FCD4723E25AB700529352 /* SDL_systhread_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A78423E2513E00DCD162 /* SDL_systhread_c.h */; }; + A75FCD4823E25AB700529352 /* SDL_keycode.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557DB1595D4D800BBD41B /* SDL_keycode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCD4A23E25AB700529352 /* SDL_cocoakeyboard.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68023E2513E00DCD162 /* SDL_cocoakeyboard.h */; }; + A75FCD4B23E25AB700529352 /* SDL_uikitvulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A63323E2513D00DCD162 /* SDL_uikitvulkan.h */; }; + A75FCD4F23E25AB700529352 /* SDL_loadso.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557DC1595D4D800BBD41B /* SDL_loadso.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCD5023E25AB700529352 /* gl2ext.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72323E2513E00DCD162 /* gl2ext.h */; }; + A75FCD5123E25AB700529352 /* SDL_clipboardevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93923E2514000DCD162 /* SDL_clipboardevents_c.h */; }; + A75FCD5323E25AB700529352 /* SDL_syshaptic_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5CF23E2513D00DCD162 /* SDL_syshaptic_c.h */; }; + A75FCD5423E25AB700529352 /* SDL_hints_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8D123E2514000DCD162 /* SDL_hints_c.h */; }; + A75FCD5523E25AB700529352 /* SDL_audiodev_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A87723E2513F00DCD162 /* SDL_audiodev_c.h */; }; + A75FCD5623E25AB700529352 /* SDL_audio_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A87323E2513F00DCD162 /* SDL_audio_c.h */; }; + A75FCD5723E25AB700529352 /* SDL_uikitmodes.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A61F23E2513D00DCD162 /* SDL_uikitmodes.h */; }; + A75FCD5823E25AB700529352 /* egl.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72923E2513E00DCD162 /* egl.h */; }; + A75FCD5923E25AB700529352 /* khrplatform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72723E2513E00DCD162 /* khrplatform.h */; }; + A75FCD5A23E25AB700529352 /* SDL_log.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557DD1595D4D800BBD41B /* SDL_log.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCD5B23E25AB700529352 /* SDL_uikitviewcontroller.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62423E2513D00DCD162 /* SDL_uikitviewcontroller.h */; }; + A75FCD5C23E25AB700529352 /* SDL_dummysensor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A57823E2513D00DCD162 /* SDL_dummysensor.h */; }; + A75FCD5D23E25AB700529352 /* vulkan_android.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73E23E2513E00DCD162 /* vulkan_android.h */; }; + A75FCD5E23E25AB700529352 /* yuv_rgb_std_func.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A77123E2513E00DCD162 /* yuv_rgb_std_func.h */; }; + A75FCD5F23E25AB700529352 /* vulkan_core.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73C23E2513E00DCD162 /* vulkan_core.h */; }; + A75FCD6023E25AB700529352 /* SDL_syssensor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A57D23E2513D00DCD162 /* SDL_syssensor.h */; }; + A75FCD6123E25AB700529352 /* SDL_dynapi.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5D823E2513D00DCD162 /* SDL_dynapi.h */; }; + A75FCD6223E25AB700529352 /* SDL_assert_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7F523E2513F00DCD162 /* SDL_assert_c.h */; }; + A75FCD6323E25AB700529352 /* SDL_diskaudio.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8B023E2513F00DCD162 /* SDL_diskaudio.h */; }; + A75FCD6423E25AB700529352 /* SDL_main.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557DE1595D4D800BBD41B /* SDL_main.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCD6523E25AB700529352 /* SDL_drawpoint.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F323E2514000DCD162 /* SDL_drawpoint.h */; }; + A75FCD6623E25AB700529352 /* SDL_opengles2_khrplatform.h in Headers */ = {isa = PBXBuildFile; fileRef = AAC070F8195606770073DCDF /* SDL_opengles2_khrplatform.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCD6723E25AB700529352 /* SDL_wave.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8A223E2513F00DCD162 /* SDL_wave.h */; }; + A75FCD6823E25AB700529352 /* SDL_cocoaopengl.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68D23E2513E00DCD162 /* SDL_cocoaopengl.h */; }; + A75FCD6923E25AB700529352 /* yuv_rgb_sse_func.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A77023E2513E00DCD162 /* yuv_rgb_sse_func.h */; }; + A75FCD6B23E25AB700529352 /* SDL_offscreenevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5EE23E2513D00DCD162 /* SDL_offscreenevents_c.h */; }; + A75FCD6D23E25AB700529352 /* SDL_coreaudio.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8BA23E2513F00DCD162 /* SDL_coreaudio.h */; }; + A75FCD6E23E25AB700529352 /* SDL_draw.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8FA23E2514000DCD162 /* SDL_draw.h */; }; + A75FCD6F23E25AB700529352 /* SDL_drawline.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F723E2514000DCD162 /* SDL_drawline.h */; }; + A75FCD7023E25AB700529352 /* SDL_messagebox.h in Headers */ = {isa = PBXBuildFile; fileRef = AA9FF9591637CBF9000DF050 /* SDL_messagebox.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCD7123E25AB700529352 /* SDL_mouse.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557DF1595D4D800BBD41B /* SDL_mouse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCD7223E25AB700529352 /* SDL_mutex.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E01595D4D800BBD41B /* SDL_mutex.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCD7323E25AB700529352 /* SDL_yuv_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A76A23E2513E00DCD162 /* SDL_yuv_c.h */; }; + A75FCD7423E25AB700529352 /* scancodes_xfree86.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A94123E2514000DCD162 /* scancodes_xfree86.h */; }; + A75FCD7523E25AB700529352 /* SDL_syspower.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7E223E2513F00DCD162 /* SDL_syspower.h */; }; + A75FCD7723E25AB700529352 /* SDL_name.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E11595D4D800BBD41B /* SDL_name.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCD7823E25AB700529352 /* eglext.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72A23E2513E00DCD162 /* eglext.h */; }; + A75FCD7923E25AB700529352 /* SDL_events_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A94223E2514000DCD162 /* SDL_events_c.h */; }; + A75FCD7A23E25AB700529352 /* math_private.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A91B23E2514000DCD162 /* math_private.h */; }; + A75FCD7C23E25AB700529352 /* vulkan_wayland.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73423E2513E00DCD162 /* vulkan_wayland.h */; }; + A75FCD7D23E25AB700529352 /* SDL_opengl.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E21595D4D800BBD41B /* SDL_opengl.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCD7E23E25AB700529352 /* SDL_cocoashape.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A67E23E2513E00DCD162 /* SDL_cocoashape.h */; }; + A75FCD7F23E25AB700529352 /* SDL_opengles.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E31595D4D800BBD41B /* SDL_opengles.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCD8023E25AB700529352 /* SDL_shaders_gles2.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A90523E2514000DCD162 /* SDL_shaders_gles2.h */; }; + A75FCD8123E25AB700529352 /* SDL_opengles2.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E41595D4D800BBD41B /* SDL_opengles2.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCD8223E25AB700529352 /* SDL_glesfuncs.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A90223E2514000DCD162 /* SDL_glesfuncs.h */; }; + A75FCD8323E25AB700529352 /* SDL_blendpoint.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F823E2514000DCD162 /* SDL_blendpoint.h */; }; + A75FCD8423E25AB700529352 /* SDL_offscreenvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5F123E2513D00DCD162 /* SDL_offscreenvideo.h */; }; + A75FCD8523E25AB700529352 /* SDL_nullevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60B23E2513D00DCD162 /* SDL_nullevents_c.h */; }; + A75FCD8623E25AB700529352 /* SDL_sysjoystick.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7CF23E2513E00DCD162 /* SDL_sysjoystick.h */; }; + A75FCD8723E25AB700529352 /* SDL_steamcontroller.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7A523E2513E00DCD162 /* SDL_steamcontroller.h */; }; + A75FCD8823E25AB700529352 /* scancodes_linux.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93623E2514000DCD162 /* scancodes_linux.h */; }; + A75FCD8A23E25AB700529352 /* SDL_touch_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93723E2514000DCD162 /* SDL_touch_c.h */; }; + A75FCD8B23E25AB700529352 /* SDL_gamecontrollerdb.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A79E23E2513E00DCD162 /* SDL_gamecontrollerdb.h */; }; + A75FCD8C23E25AB700529352 /* SDL_cocoavulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68F23E2513E00DCD162 /* SDL_cocoavulkan.h */; }; + A75FCD8D23E25AB700529352 /* gl2platform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72523E2513E00DCD162 /* gl2platform.h */; }; + A75FCD8E23E25AB700529352 /* SDL_pixels.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E51595D4D800BBD41B /* SDL_pixels.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCD8F23E25AB700529352 /* vk_layer.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72D23E2513E00DCD162 /* vk_layer.h */; }; + A75FCD9123E25AB700529352 /* vk_platform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73123E2513E00DCD162 /* vk_platform.h */; }; + A75FCD9223E25AB700529352 /* SDL_cocoametalview.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68623E2513E00DCD162 /* SDL_cocoametalview.h */; }; + A75FCD9323E25AB700529352 /* SDL_cocoaopengles.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69023E2513E00DCD162 /* SDL_cocoaopengles.h */; }; + A75FCD9423E25AB700529352 /* SDL_blit.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A76B23E2513E00DCD162 /* SDL_blit.h */; }; + A75FCD9523E25AB700529352 /* vulkan_xlib_xrandr.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73723E2513E00DCD162 /* vulkan_xlib_xrandr.h */; }; + A75FCD9623E25AB700529352 /* SDL_sensor_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A58123E2513D00DCD162 /* SDL_sensor_c.h */; }; + A75FCD9723E25AB700529352 /* SDL_sysrender.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8EE23E2514000DCD162 /* SDL_sysrender.h */; }; + A75FCD9823E25AB700529352 /* SDL_rotate.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8FE23E2514000DCD162 /* SDL_rotate.h */; }; + A75FCD9923E25AB700529352 /* SDL_platform.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E61595D4D800BBD41B /* SDL_platform.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCD9A23E25AB700529352 /* SDL_power.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E71595D4D800BBD41B /* SDL_power.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCD9D23E25AB700529352 /* scancodes_darwin.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93423E2514000DCD162 /* scancodes_darwin.h */; }; + A75FCD9E23E25AB700529352 /* controller_type.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7D923E2513E00DCD162 /* controller_type.h */; }; + A75FCDA023E25AB700529352 /* SDL_uikitclipboard.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62123E2513D00DCD162 /* SDL_uikitclipboard.h */; }; + A75FCDA123E25AB700529352 /* vulkan_xlib.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73A23E2513E00DCD162 /* vulkan_xlib.h */; }; + A75FCDA223E25AB700529352 /* SDL_uikitwindow.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62723E2513D00DCD162 /* SDL_uikitwindow.h */; }; + A75FCDA323E25AB700529352 /* vulkan_vi.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72F23E2513E00DCD162 /* vulkan_vi.h */; }; + A75FCDA523E25AB700529352 /* SDL_quit.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E81595D4D800BBD41B /* SDL_quit.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCDA623E25AB700529352 /* default_cursor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93323E2514000DCD162 /* default_cursor.h */; }; + A75FCDA723E25AB700529352 /* SDL_render_sw_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F523E2514000DCD162 /* SDL_render_sw_c.h */; }; + A75FCDA823E25AB700529352 /* SDL_rect.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E91595D4D800BBD41B /* SDL_rect.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCDA923E25AB700529352 /* SDL_render.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557EA1595D4D800BBD41B /* SDL_render.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCDAA23E25AB700529352 /* SDL_nullvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60A23E2513D00DCD162 /* SDL_nullvideo.h */; }; + A75FCDAB23E25AB700529352 /* SDL_blit_copy.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A76623E2513E00DCD162 /* SDL_blit_copy.h */; }; + A75FCDAC23E25AB700529352 /* SDL_RLEaccel_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A76723E2513E00DCD162 /* SDL_RLEaccel_c.h */; }; + A75FCDAD23E25AB700529352 /* eglplatform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72B23E2513E00DCD162 /* eglplatform.h */; }; + A75FCDAF23E25AB700529352 /* SDL_revision.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557EB1595D4D800BBD41B /* SDL_revision.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCDB023E25AB700529352 /* SDL_systhread.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A77723E2513E00DCD162 /* SDL_systhread.h */; }; + A75FCDB123E25AB700529352 /* SDL_rwops.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557EC1595D4D800BBD41B /* SDL_rwops.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCDB223E25AB700529352 /* SDL_scancode.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557ED1595D4D800BBD41B /* SDL_scancode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCDB323E25AB700529352 /* SDL_cocoaclipboard.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68A23E2513E00DCD162 /* SDL_cocoaclipboard.h */; }; + A75FCDB423E25AB700529352 /* SDL_cocoamodes.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69123E2513E00DCD162 /* SDL_cocoamodes.h */; }; + A75FCDB523E25AB700529352 /* SDL_uikitopenglview.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62B23E2513D00DCD162 /* SDL_uikitopenglview.h */; }; + A75FCDB623E25AB700529352 /* vulkan_win32.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73523E2513E00DCD162 /* vulkan_win32.h */; }; + A75FCDB723E25AB700529352 /* SDL_offscreenframebuffer_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5F423E2513D00DCD162 /* SDL_offscreenframebuffer_c.h */; }; + A75FCDB823E25AB700529352 /* SDL_displayevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93123E2514000DCD162 /* SDL_displayevents_c.h */; }; + A75FCDBA23E25AB700529352 /* SDL_timer_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5E023E2513D00DCD162 /* SDL_timer_c.h */; }; + A75FCDBB23E25AB700529352 /* gl2.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72423E2513E00DCD162 /* gl2.h */; }; + A75FCDBC23E25AB700529352 /* SDL_sysmutex_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A78823E2513E00DCD162 /* SDL_sysmutex_c.h */; }; + A75FCDBD23E25AB700529352 /* scancodes_windows.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A92C23E2514000DCD162 /* scancodes_windows.h */; }; + A75FCDBE23E25AB700529352 /* SDL_rwopsbundlesupport.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7DD23E2513F00DCD162 /* SDL_rwopsbundlesupport.h */; }; + A75FCDBF23E25AB700529352 /* SDL_syspower.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7F423E2513F00DCD162 /* SDL_syspower.h */; }; + A75FCDC023E25AB700529352 /* vulkan_macos.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73623E2513E00DCD162 /* vulkan_macos.h */; }; + A75FCDC123E25AB700529352 /* vulkan_xcb.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73823E2513E00DCD162 /* vulkan_xcb.h */; }; + A75FCDC223E25AB700529352 /* vulkan_ios.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73B23E2513E00DCD162 /* vulkan_ios.h */; }; + A75FCDC323E25AB700529352 /* SDL_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A58323E2513D00DCD162 /* SDL_internal.h */; }; + A75FCDC423E25AB700529352 /* SDL_shape.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557EE1595D4D800BBD41B /* SDL_shape.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCDC523E25AB700529352 /* SDL_stdinc.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557EF1595D4D800BBD41B /* SDL_stdinc.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCDC623E25AB700529352 /* SDL_surface.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F01595D4D800BBD41B /* SDL_surface.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCDC723E25AB700529352 /* vulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73023E2513E00DCD162 /* vulkan.h */; }; + A75FCDC823E25AB700529352 /* SDL_keyboard_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93D23E2514000DCD162 /* SDL_keyboard_c.h */; }; + A75FCDC923E25AB700529352 /* SDL_system.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F11595D4D800BBD41B /* SDL_system.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCDCA23E25AB700529352 /* SDL_syswm.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F21595D4D800BBD41B /* SDL_syswm.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCDCB23E25AB700529352 /* SDL_opengl_glext.h in Headers */ = {isa = PBXBuildFile; fileRef = AAC070F4195606770073DCDF /* SDL_opengl_glext.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCDCC23E25AB700529352 /* SDL_mouse_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A92B23E2514000DCD162 /* SDL_mouse_c.h */; }; + A75FCDCD23E25AB700529352 /* SDL_blit_auto.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73F23E2513E00DCD162 /* SDL_blit_auto.h */; }; + A75FCDCE23E25AB700529352 /* SDL_blendline.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F223E2514000DCD162 /* SDL_blendline.h */; }; + A75FCDCF23E25AB700529352 /* SDL_syshaptic.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5CC23E2513D00DCD162 /* SDL_syshaptic.h */; }; + A75FCDD023E25AB700529352 /* SDL_vulkan_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A63E23E2513D00DCD162 /* SDL_vulkan_internal.h */; }; + A75FCDD123E25AB700529352 /* SDL_thread.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F31595D4D800BBD41B /* SDL_thread.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCDD223E25AB700529352 /* SDL_cocoaevents.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69623E2513E00DCD162 /* SDL_cocoaevents.h */; }; + A75FCDD323E25AB700529352 /* vk_icd.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72E23E2513E00DCD162 /* vk_icd.h */; }; + A75FCDD423E25AB700529352 /* SDL_nullframebuffer_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60723E2513D00DCD162 /* SDL_nullframebuffer_c.h */; }; + A75FCDD523E25AB700529352 /* SDL_timer.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F41595D4D800BBD41B /* SDL_timer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCDD623E25AB700529352 /* SDL_dynapi_procs.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5DB23E2513D00DCD162 /* SDL_dynapi_procs.h */; }; + A75FCDD723E25AB700529352 /* vulkan_fuchsia.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73323E2513E00DCD162 /* vulkan_fuchsia.h */; }; + A75FCDD823E25AB700529352 /* SDL_touch.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F51595D4D800BBD41B /* SDL_touch.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCDD923E25AB700529352 /* SDL_types.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F61595D4D800BBD41B /* SDL_types.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCDDA23E25AB700529352 /* usb_ids.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7CB23E2513E00DCD162 /* usb_ids.h */; }; + A75FCDDB23E25AB700529352 /* SDL_gles2funcs.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A90623E2514000DCD162 /* SDL_gles2funcs.h */; }; + A75FCDDD23E25AB700529352 /* SDL_version.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F71595D4D800BBD41B /* SDL_version.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCDDE23E25AB700529352 /* SDL_video.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F81595D4D800BBD41B /* SDL_video.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCDDF23E25AB700529352 /* SDL_opengles2_gl2.h in Headers */ = {isa = PBXBuildFile; fileRef = AAC070F5195606770073DCDF /* SDL_opengles2_gl2.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCDE023E25AB700529352 /* SDL_sensor.h in Headers */ = {isa = PBXBuildFile; fileRef = F3950CD7212BC88D00F51292 /* SDL_sensor.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCDE123E25AB700529352 /* SDL_sysvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A61723E2513D00DCD162 /* SDL_sysvideo.h */; }; + A75FCDE223E25AB700529352 /* SDL_opengles2_gl2platform.h in Headers */ = {isa = PBXBuildFile; fileRef = AAC070F7195606770073DCDF /* SDL_opengles2_gl2platform.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCDE323E25AB700529352 /* SDL_opengles2_gl2ext.h in Headers */ = {isa = PBXBuildFile; fileRef = AAC070F6195606770073DCDF /* SDL_opengles2_gl2ext.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCDE523E25AB700529352 /* SDL_dynapi_overrides.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5D923E2513D00DCD162 /* SDL_dynapi_overrides.h */; }; + A75FCDE623E25AB700529352 /* SDL_cocoawindow.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69223E2513E00DCD162 /* SDL_cocoawindow.h */; }; + A75FCDE923E25AB700529352 /* SDL_drawline.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8F123E2514000DCD162 /* SDL_drawline.c */; }; + A75FCDEA23E25AB700529352 /* SDL_yuv.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A67C23E2513E00DCD162 /* SDL_yuv.c */; }; + A75FCDEB23E25AB700529352 /* SDL_sysfilesystem.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7FE23E2513F00DCD162 /* SDL_sysfilesystem.m */; }; + A75FCDEC23E25AB700529352 /* e_pow.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91C23E2514000DCD162 /* e_pow.c */; }; + A75FCDED23E25AB700529352 /* SDL_systls.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A78223E2513E00DCD162 /* SDL_systls.c */; }; + A75FCDEE23E25AB700529352 /* SDL_vulkan_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A64023E2513D00DCD162 /* SDL_vulkan_utils.c */; }; + A75FCDEF23E25AB700529352 /* SDL_spinlock.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A57323E2513D00DCD162 /* SDL_spinlock.c */; }; + A75FCDF023E25AB700529352 /* s_atan.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91823E2514000DCD162 /* s_atan.c */; }; + A75FCDF123E25AB700529352 /* SDL_sysloadso.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A85F23E2513F00DCD162 /* SDL_sysloadso.c */; }; + A75FCDF223E25AB700529352 /* SDL_render_metal.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8DE23E2514000DCD162 /* SDL_render_metal.m */; }; + A75FCDF323E25AB700529352 /* SDL_clipboard.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A67B23E2513E00DCD162 /* SDL_clipboard.c */; }; + A75FCDF423E25AB700529352 /* SDL_cocoaevents.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68923E2513E00DCD162 /* SDL_cocoaevents.m */; }; + A75FCDF623E25AB700529352 /* SDL_audiocvt.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8A123E2513F00DCD162 /* SDL_audiocvt.c */; }; + A75FCDF723E25AB700529352 /* SDL_shape.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A76923E2513E00DCD162 /* SDL_shape.c */; }; + A75FCDF823E25AB700529352 /* SDL_rotate.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8F423E2514000DCD162 /* SDL_rotate.c */; }; + A75FCDF923E25AB700529352 /* SDL_coremotionsensor.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A57C23E2513D00DCD162 /* SDL_coremotionsensor.m */; }; + A75FCDFA23E25AB700529352 /* SDL_touch.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93E23E2514000DCD162 /* SDL_touch.c */; }; + A75FCDFC23E25AB700529352 /* SDL_uikitmessagebox.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61B23E2513D00DCD162 /* SDL_uikitmessagebox.m */; }; + A75FCDFD23E25AB700529352 /* SDL_thread.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A77923E2513E00DCD162 /* SDL_thread.c */; }; + A75FCDFE23E25AB700529352 /* SDL_hidapi_xbox360w.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C823E2513E00DCD162 /* SDL_hidapi_xbox360w.c */; }; + A75FCDFF23E25AB700529352 /* SDL_atomic.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A57423E2513D00DCD162 /* SDL_atomic.c */; }; + A75FCE0023E25AB700529352 /* SDL_displayevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92D23E2514000DCD162 /* SDL_displayevents.c */; }; + A75FCE0223E25AB700529352 /* SDL_log.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5DD23E2513D00DCD162 /* SDL_log.c */; }; + A75FCE0323E25AB700529352 /* SDL_cocoaopengl.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A67F23E2513E00DCD162 /* SDL_cocoaopengl.m */; }; + A75FCE0423E25AB700529352 /* SDL_offscreenframebuffer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5F223E2513D00DCD162 /* SDL_offscreenframebuffer.c */; }; + A75FCE0623E25AB700529352 /* SDL_render_gles.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A90123E2514000DCD162 /* SDL_render_gles.c */; }; + A75FCE0723E25AB700529352 /* SDL_systhread.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A78623E2513E00DCD162 /* SDL_systhread.c */; }; + A75FCE0823E25AB700529352 /* SDL_windowevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92F23E2514000DCD162 /* SDL_windowevents.c */; }; + A75FCE0923E25AB700529352 /* s_scalbn.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91A23E2514000DCD162 /* s_scalbn.c */; }; + A75FCE0A23E25AB700529352 /* SDL_timer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5DF23E2513D00DCD162 /* SDL_timer.c */; }; + A75FCE0B23E25AB700529352 /* SDL_blendpoint.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8F023E2514000DCD162 /* SDL_blendpoint.c */; }; + A75FCE0C23E25AB700529352 /* SDL_gamecontroller.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7AD23E2513E00DCD162 /* SDL_gamecontroller.c */; }; + A75FCE0D23E25AB700529352 /* SDL_systimer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5E223E2513D00DCD162 /* SDL_systimer.c */; }; + A75FCE0E23E25AB700529352 /* SDL_uikitclipboard.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62A23E2513D00DCD162 /* SDL_uikitclipboard.m */; }; + A75FCE0F23E25AB700529352 /* SDL_render_sw.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8F923E2514000DCD162 /* SDL_render_sw.c */; }; + A75FCE1123E25AB700529352 /* SDL_syssem.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A78323E2513E00DCD162 /* SDL_syssem.c */; }; + A75FCE1223E25AB700529352 /* SDL_hidapi_xbox360.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C223E2513E00DCD162 /* SDL_hidapi_xbox360.c */; }; + A75FCE1323E25AB700529352 /* SDL_coreaudio.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8BB23E2513F00DCD162 /* SDL_coreaudio.m */; }; + A75FCE1423E25AB700529352 /* SDL_blendline.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8FB23E2514000DCD162 /* SDL_blendline.c */; }; + A75FCE1523E25AB700529352 /* SDL_blit_A.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A66423E2513E00DCD162 /* SDL_blit_A.c */; }; + A75FCE1623E25AB700529352 /* SDL_d3dmath.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8FF23E2514000DCD162 /* SDL_d3dmath.c */; }; + A75FCE1823E25AB700529352 /* SDL_nullvideo.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60823E2513D00DCD162 /* SDL_nullvideo.c */; }; + A75FCE1923E25AB700529352 /* SDL_offscreenevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5F023E2513D00DCD162 /* SDL_offscreenevents.c */; }; + A75FCE1A23E25AB700529352 /* SDL_uikitview.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62923E2513D00DCD162 /* SDL_uikitview.m */; }; + A75FCE1B23E25AB700529352 /* SDL_nullevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60923E2513D00DCD162 /* SDL_nullevents.c */; }; + A75FCE1C23E25AB700529352 /* SDL_audiodev.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A88F23E2513F00DCD162 /* SDL_audiodev.c */; }; + A75FCE1D23E25AB700529352 /* SDL_cocoaclipboard.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A69523E2513E00DCD162 /* SDL_cocoaclipboard.m */; }; + A75FCE1E23E25AB700529352 /* SDL_blit_slow.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60223E2513D00DCD162 /* SDL_blit_slow.c */; }; + A75FCE1F23E25AB700529352 /* s_copysign.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91423E2514000DCD162 /* s_copysign.c */; }; + A75FCE2023E25AB700529352 /* SDL_haptic.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5C523E2513D00DCD162 /* SDL_haptic.c */; }; + A75FCE2123E25AB700529352 /* SDL_uikitvulkan.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62523E2513D00DCD162 /* SDL_uikitvulkan.m */; }; + A75FCE2323E25AB700529352 /* SDL_cocoametalview.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A69923E2513E00DCD162 /* SDL_cocoametalview.m */; }; + A75FCE2423E25AB700529352 /* SDL_audiotypecvt.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8A023E2513F00DCD162 /* SDL_audiotypecvt.c */; }; + A75FCE2523E25AB700529352 /* SDL_uikitevents.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61C23E2513D00DCD162 /* SDL_uikitevents.m */; }; + A75FCE2623E25AB700529352 /* SDL_uikitmodes.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62C23E2513D00DCD162 /* SDL_uikitmodes.m */; }; + A75FCE2723E25AB700529352 /* SDL_blit_N.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A64223E2513D00DCD162 /* SDL_blit_N.c */; }; + A75FCE2823E25AB700529352 /* SDL_dropevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93B23E2514000DCD162 /* SDL_dropevents.c */; }; + A75FCE2923E25AB700529352 /* e_atan2.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91D23E2514000DCD162 /* e_atan2.c */; }; + A75FCE2A23E25AB700529352 /* s_sin.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91223E2514000DCD162 /* s_sin.c */; }; + A75FCE2B23E25AB700529352 /* SDL_power.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7E723E2513F00DCD162 /* SDL_power.c */; }; + A75FCE2C23E25AB700529352 /* SDL_cocoakeyboard.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68C23E2513E00DCD162 /* SDL_cocoakeyboard.m */; }; + A75FCE2D23E25AB700529352 /* SDL_dynapi.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5DA23E2513D00DCD162 /* SDL_dynapi.c */; }; + A75FCE2E23E25AB700529352 /* SDL_shaders_gl.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91023E2514000DCD162 /* SDL_shaders_gl.c */; }; + A75FCE2F23E25AB700529352 /* e_log.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92323E2514000DCD162 /* e_log.c */; }; + A75FCE3023E25AB700529352 /* SDL_cocoamessagebox.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68B23E2513E00DCD162 /* SDL_cocoamessagebox.m */; }; + A75FCE3123E25AB700529352 /* SDL_blendfillrect.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8FD23E2514000DCD162 /* SDL_blendfillrect.c */; }; + A75FCE3223E25AB700529352 /* SDL_uikitvideo.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A63223E2513D00DCD162 /* SDL_uikitvideo.m */; }; + A75FCE3323E25AB700529352 /* SDL_cocoashape.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68E23E2513E00DCD162 /* SDL_cocoashape.m */; }; + A75FCE3423E25AB700529352 /* SDL_cocoamouse.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68723E2513E00DCD162 /* SDL_cocoamouse.m */; }; + A75FCE3523E25AB700529352 /* SDL_error.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8BF23E2513F00DCD162 /* SDL_error.c */; }; + A75FCE3623E25AB700529352 /* SDL_blit.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A64C23E2513D00DCD162 /* SDL_blit.c */; }; + A75FCE3723E25AB700529352 /* SDL_rwops.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7DB23E2513F00DCD162 /* SDL_rwops.c */; }; + A75FCE3823E25AB700529352 /* SDL_uikitviewcontroller.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A63023E2513D00DCD162 /* SDL_uikitviewcontroller.m */; }; + A75FCE3923E25AB700529352 /* s_cos.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91323E2514000DCD162 /* s_cos.c */; }; + A75FCE3A23E25AB700529352 /* SDL_yuv_sw.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8ED23E2514000DCD162 /* SDL_yuv_sw.c */; }; + A75FCE3B23E25AB700529352 /* SDL_wave.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A86623E2513F00DCD162 /* SDL_wave.c */; }; + A75FCE3C23E25AB700529352 /* s_tan.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91E23E2514000DCD162 /* s_tan.c */; }; + A75FCE3D23E25AB700529352 /* SDL_hints.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5AB23E2513D00DCD162 /* SDL_hints.c */; }; + A75FCE3E23E25AB700529352 /* SDL_hidapi_ps4.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C323E2513E00DCD162 /* SDL_hidapi_ps4.c */; }; + A75FCE3F23E25AB700529352 /* SDL_pixels.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A64D23E2513D00DCD162 /* SDL_pixels.c */; }; + A75FCE4123E25AB700529352 /* SDL_sysloadso.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A86323E2513F00DCD162 /* SDL_sysloadso.c */; }; + A75FCE4323E25AB700529352 /* SDL_syspower.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7EB23E2513F00DCD162 /* SDL_syspower.c */; }; + A75FCE4523E25AB700529352 /* SDL_iconv.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D323E2514000DCD162 /* SDL_iconv.c */; }; + A75FCE4623E25AB700529352 /* s_fabs.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91523E2514000DCD162 /* s_fabs.c */; }; + A75FCE4923E25AB700529352 /* SDL_shaders_metal.metal in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8E023E2514000DCD162 /* SDL_shaders_metal.metal */; }; + A75FCE4A23E25AB700529352 /* SDL_uikitwindow.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61A23E2513D00DCD162 /* SDL_uikitwindow.m */; }; + A75FCE4B23E25AB700529352 /* SDL_render.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8DB23E2514000DCD162 /* SDL_render.c */; }; + A75FCE4C23E25AB700529352 /* SDL_stretch.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60323E2513D00DCD162 /* SDL_stretch.c */; }; + A75FCE4D23E25AB700529352 /* s_floor.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92523E2514000DCD162 /* s_floor.c */; }; + A75FCE4E23E25AB700529352 /* SDL_blit_copy.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61623E2513D00DCD162 /* SDL_blit_copy.c */; }; + A75FCE4F23E25AB700529352 /* e_fmod.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92023E2514000DCD162 /* e_fmod.c */; }; + A75FCE5023E25AB700529352 /* SDL_syspower.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7E123E2513F00DCD162 /* SDL_syspower.m */; }; + A75FCE5123E25AB700529352 /* e_log10.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92223E2514000DCD162 /* e_log10.c */; }; + A75FCE5223E25AB700529352 /* SDL_uikitopenglview.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62023E2513D00DCD162 /* SDL_uikitopenglview.m */; }; + A75FCE5323E25AB700529352 /* SDL_mixer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A86523E2513F00DCD162 /* SDL_mixer.c */; }; + A75FCE5423E25AB700529352 /* SDL_events.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93523E2514000DCD162 /* SDL_events.c */; }; + A75FCE5523E25AB700529352 /* SDL_blit_0.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A66223E2513E00DCD162 /* SDL_blit_0.c */; }; + A75FCE5623E25AB700529352 /* k_tan.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92723E2514000DCD162 /* k_tan.c */; }; + A75FCE5823E25AB700529352 /* SDL_diskaudio.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8B123E2513F00DCD162 /* SDL_diskaudio.c */; }; + A75FCE5923E25AB700529352 /* SDL_egl.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A6B623E2513E00DCD162 /* SDL_egl.c */; }; + A75FCE5A23E25AB700529352 /* SDL_RLEaccel.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61523E2513D00DCD162 /* SDL_RLEaccel.c */; }; + A75FCE5C23E25AB700529352 /* SDL_assert.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A94423E2514000DCD162 /* SDL_assert.c */; }; + A75FCE5D23E25AB700529352 /* SDL_bmp.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A77323E2513E00DCD162 /* SDL_bmp.c */; }; + A75FCE5E23E25AB700529352 /* SDL_stdlib.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D823E2514000DCD162 /* SDL_stdlib.c */; }; + A75FCE5F23E25AB700529352 /* SDL_dummyaudio.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A87223E2513F00DCD162 /* SDL_dummyaudio.c */; }; + A75FCE6023E25AB700529352 /* SDL_fillrect.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A76823E2513E00DCD162 /* SDL_fillrect.c */; }; + A75FCE6123E25AB700529352 /* SDL_nullframebuffer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60623E2513D00DCD162 /* SDL_nullframebuffer.c */; }; + A75FCE6223E25AB700529352 /* SDL_dummysensor.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A57923E2513D00DCD162 /* SDL_dummysensor.c */; }; + A75FCE6323E25AB700529352 /* SDL_string.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D523E2514000DCD162 /* SDL_string.c */; }; + A75FCE6423E25AB700529352 /* SDL_render_gl.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A90F23E2514000DCD162 /* SDL_render_gl.c */; }; + A75FCE6523E25AB700529352 /* SDL_uikitopengles.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62323E2513D00DCD162 /* SDL_uikitopengles.m */; }; + A75FCE6723E25AB700529352 /* SDL_cocoamodes.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68123E2513E00DCD162 /* SDL_cocoamodes.m */; }; + A75FCE6823E25AB700529352 /* k_rem_pio2.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91623E2514000DCD162 /* k_rem_pio2.c */; }; + A75FCE6A23E25AB700529352 /* SDL_gesture.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A94023E2514000DCD162 /* SDL_gesture.c */; }; + A75FCE6B23E25AB700529352 /* SDL_getenv.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D423E2514000DCD162 /* SDL_getenv.c */; }; + A75FCE6C23E25AB700529352 /* SDL_hidapi_gamecube.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C923E2513E00DCD162 /* SDL_hidapi_gamecube.c */; }; + A75FCE6D23E25AB700529352 /* SDL_joystick.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7A923E2513E00DCD162 /* SDL_joystick.c */; }; + A75FCE6E23E25AB700529352 /* SDL_render_gles2.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A90423E2514000DCD162 /* SDL_render_gles2.c */; }; + A75FCE6F23E25AB700529352 /* SDL_surface.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61423E2513D00DCD162 /* SDL_surface.c */; }; + A75FCE7023E25AB700529352 /* SDL_hidapi_xboxone.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C523E2513E00DCD162 /* SDL_hidapi_xboxone.c */; }; + A75FCE7123E25AB700529352 /* SDL_blit_auto.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A63F23E2513D00DCD162 /* SDL_blit_auto.c */; }; + A75FCE7323E25AB700529352 /* SDL_keyboard.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93823E2514000DCD162 /* SDL_keyboard.c */; }; + A75FCE7523E25AB700529352 /* SDL_rect.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A63423E2513D00DCD162 /* SDL_rect.c */; }; + A75FCE7623E25AB700529352 /* SDL_cocoaopengles.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68223E2513E00DCD162 /* SDL_cocoaopengles.m */; }; + A75FCE7723E25AB700529352 /* SDL_qsort.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D723E2514000DCD162 /* SDL_qsort.c */; }; + A75FCE7823E25AB700529352 /* SDL_hidapi_switch.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C623E2513E00DCD162 /* SDL_hidapi_switch.c */; }; + A75FCE7923E25AB700529352 /* SDL_strtokr.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D623E2514000DCD162 /* SDL_strtokr.c */; }; + A75FCE7A23E25AB700529352 /* SDL_clipboardevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93A23E2514000DCD162 /* SDL_clipboardevents.c */; }; + A75FCE7C23E25AB700529352 /* k_cos.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91923E2514000DCD162 /* k_cos.c */; }; + A75FCE7D23E25AB700529352 /* SDL_hidapijoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C423E2513E00DCD162 /* SDL_hidapijoystick.c */; }; + A75FCE7E23E25AB700529352 /* SDL_malloc.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D923E2514000DCD162 /* SDL_malloc.c */; }; + A75FCE7F23E25AB700529352 /* SDL_audio.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8B823E2513F00DCD162 /* SDL_audio.c */; }; + A75FCE8023E25AB700529352 /* SDL_sysfilesystem.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7F823E2513F00DCD162 /* SDL_sysfilesystem.c */; }; + A75FCE8123E25AB700529352 /* SDL_offscreenvideo.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5F623E2513D00DCD162 /* SDL_offscreenvideo.c */; }; + A75FCE8223E25AB700529352 /* SDL_syscond.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A78523E2513E00DCD162 /* SDL_syscond.c */; }; + A75FCE8323E25AB700529352 /* SDL_syshaptic.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5CE23E2513D00DCD162 /* SDL_syshaptic.c */; }; + A75FCE8423E25AB700529352 /* e_exp.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92123E2514000DCD162 /* e_exp.c */; }; + A75FCE8523E25AB700529352 /* SDL_quit.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93C23E2514000DCD162 /* SDL_quit.c */; }; + A75FCE8623E25AB700529352 /* SDL_cocoawindow.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68423E2513E00DCD162 /* SDL_cocoawindow.m */; }; + A75FCE8723E25AB700529352 /* SDL_sysmutex.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A78723E2513E00DCD162 /* SDL_sysmutex.c */; }; + A75FCE8823E25AB700529352 /* SDL_syshaptic.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5C423E2513D00DCD162 /* SDL_syshaptic.c */; }; + A75FCE8923E25AB700529352 /* SDL_rwopsbundlesupport.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7DE23E2513F00DCD162 /* SDL_rwopsbundlesupport.m */; }; + A75FCE8A23E25AB700529352 /* SDL_video.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60E23E2513D00DCD162 /* SDL_video.c */; }; + A75FCE8C23E25AB700529352 /* SDL_uikitmetalview.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62E23E2513D00DCD162 /* SDL_uikitmetalview.m */; }; + A75FCE8D23E25AB700529352 /* SDL_steamcontroller.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7A723E2513E00DCD162 /* SDL_steamcontroller.c */; }; + A75FCE8E23E25AB700529352 /* SDL_shaders_gles2.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A90723E2514000DCD162 /* SDL_shaders_gles2.c */; }; + A75FCE8F23E25AB700529352 /* SDL_blit_1.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A6FA23E2513E00DCD162 /* SDL_blit_1.c */; }; + A75FCE9123E25AB700529352 /* SDL_mouse.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92A23E2514000DCD162 /* SDL_mouse.c */; }; + A75FCE9223E25AB700529352 /* e_rem_pio2.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91F23E2514000DCD162 /* e_rem_pio2.c */; }; + A75FCE9323E25AB700529352 /* SDL_dataqueue.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92823E2514000DCD162 /* SDL_dataqueue.c */; }; + A75FCE9423E25AB700529352 /* SDL_sysjoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7A023E2513E00DCD162 /* SDL_sysjoystick.c */; }; + A75FCE9523E25AB700529352 /* SDL_cpuinfo.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A77523E2513E00DCD162 /* SDL_cpuinfo.c */; }; + A75FCE9623E25AB700529352 /* SDL_sensor.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A58223E2513D00DCD162 /* SDL_sensor.c */; }; + A75FCE9823E25AB700529352 /* k_sin.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91723E2514000DCD162 /* k_sin.c */; }; + A75FCE9A23E25AB700529352 /* SDL_systimer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5E823E2513D00DCD162 /* SDL_systimer.c */; }; + A75FCE9B23E25AB700529352 /* SDL_drawpoint.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8FC23E2514000DCD162 /* SDL_drawpoint.c */; }; + A75FCE9C23E25AB700529352 /* e_sqrt.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92423E2514000DCD162 /* e_sqrt.c */; }; + A75FCE9D23E25AB700529352 /* SDL_cocoavideo.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68523E2513E00DCD162 /* SDL_cocoavideo.m */; }; + A75FCE9F23E25AB700529352 /* SDL.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A57123E2513D00DCD162 /* SDL.c */; }; + A75FCEA123E25AB700529352 /* SDL_cocoavulkan.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68323E2513E00DCD162 /* SDL_cocoavulkan.m */; }; + A75FCEA223E25AB700529352 /* SDL_uikitappdelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61E23E2513D00DCD162 /* SDL_uikitappdelegate.m */; }; + A75FCEA323E25AB700529352 /* SDL_offscreenwindow.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5EF23E2513D00DCD162 /* SDL_offscreenwindow.c */; }; + A75FCEA523E25AB700529352 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 564624371FF821CB0074AC87 /* Metal.framework */; }; + A75FCEA623E25AB700529352 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 564624351FF821B80074AC87 /* QuartzCore.framework */; }; + A75FCEA723E25AB700529352 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7381E951D8B69D600B177DD /* CoreAudio.framework */; }; + A75FCEA823E25AB700529352 /* CoreVideo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA73671C19A540EF004122E4 /* CoreVideo.framework */; }; + A75FCEAA23E25AB700529352 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0073179F0858DECD00B2BC32 /* IOKit.framework */; }; + A75FCEAB23E25AB700529352 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00D0D08310675DD9004B05EF /* CoreFoundation.framework */; }; + A75FCEAE23E25AB700529352 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7381E931D8B69C300B177DD /* AudioToolbox.framework */; }; + A75FCEB623E25AC700529352 /* SDL_shaders_metal_tvos.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8E323E2514000DCD162 /* SDL_shaders_metal_tvos.h */; }; + A75FCEB723E25AC700529352 /* SDL_filesystem.h in Headers */ = {isa = PBXBuildFile; fileRef = 567E2F2017C44C35005F1892 /* SDL_filesystem.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCEB923E25AC700529352 /* begin_code.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557C71595D4D800BBD41B /* begin_code.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCEBA23E25AC700529352 /* SDL_uikitopengles.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A63123E2513D00DCD162 /* SDL_uikitopengles.h */; }; + A75FCEBB23E25AC700529352 /* close_code.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557C81595D4D800BBD41B /* close_code.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCEBC23E25AC700529352 /* SDL.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F91595D4D800BBD41B /* SDL.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCEBD23E25AC700529352 /* SDL_uikitmetalview.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A61D23E2513D00DCD162 /* SDL_uikitmetalview.h */; }; + A75FCEBE23E25AC700529352 /* SDL_assert.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557C91595D4D800BBD41B /* SDL_assert.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCEBF23E25AC700529352 /* SDL_shape_internals.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60D23E2513D00DCD162 /* SDL_shape_internals.h */; }; + A75FCEC023E25AC700529352 /* SDL_glfuncs.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A90E23E2514000DCD162 /* SDL_glfuncs.h */; }; + A75FCEC123E25AC700529352 /* SDL_atomic.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557CA1595D4D800BBD41B /* SDL_atomic.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCEC223E25AC700529352 /* SDL_rect_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60C23E2513D00DCD162 /* SDL_rect_c.h */; }; + A75FCEC423E25AC700529352 /* SDL_shaders_metal_osx.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8E223E2514000DCD162 /* SDL_shaders_metal_osx.h */; }; + A75FCEC523E25AC700529352 /* SDL_shaders_metal_ios.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8DF23E2514000DCD162 /* SDL_shaders_metal_ios.h */; }; + A75FCEC623E25AC700529352 /* SDL_offscreenwindow.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5F523E2513D00DCD162 /* SDL_offscreenwindow.h */; }; + A75FCEC723E25AC700529352 /* SDL_audio.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557CB1595D4D800BBD41B /* SDL_audio.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCEC823E25AC700529352 /* SDL_coremotionsensor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A57B23E2513D00DCD162 /* SDL_coremotionsensor.h */; }; + A75FCEC923E25AC700529352 /* SDL_uikitview.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A61923E2513D00DCD162 /* SDL_uikitview.h */; }; + A75FCECA23E25AC700529352 /* SDL_bits.h in Headers */ = {isa = PBXBuildFile; fileRef = AADA5B8616CCAB3000107CF7 /* SDL_bits.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCECB23E25AC700529352 /* SDL_uikitappdelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62F23E2513D00DCD162 /* SDL_uikitappdelegate.h */; }; + A75FCECD23E25AC700529352 /* SDL_blendmode.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557CC1595D4D800BBD41B /* SDL_blendmode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCECE23E25AC700529352 /* SDL_dropevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A92E23E2514000DCD162 /* SDL_dropevents_c.h */; }; + A75FCECF23E25AC700529352 /* SDL_haptic_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5C623E2513D00DCD162 /* SDL_haptic_c.h */; }; + A75FCED023E25AC700529352 /* SDL_clipboard.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557CD1595D4D800BBD41B /* SDL_clipboard.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCED123E25AC700529352 /* SDL_dataqueue.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A57023E2513D00DCD162 /* SDL_dataqueue.h */; }; + A75FCED223E25AC700529352 /* SDL_error_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A57523E2513D00DCD162 /* SDL_error_c.h */; }; + A75FCED423E25AC700529352 /* SDL_config.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557CF1595D4D800BBD41B /* SDL_config.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCED523E25AC700529352 /* SDL_d3dmath.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8DC23E2514000DCD162 /* SDL_d3dmath.h */; }; + A75FCED823E25AC700529352 /* SDL_egl_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60423E2513D00DCD162 /* SDL_egl_c.h */; }; + A75FCED923E25AC700529352 /* SDL_copying.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D01595D4D800BBD41B /* SDL_copying.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCEDA23E25AC700529352 /* yuv_rgb.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A77223E2513E00DCD162 /* yuv_rgb.h */; }; + A75FCEDB23E25AC700529352 /* SDL_dummyaudio.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A87123E2513F00DCD162 /* SDL_dummyaudio.h */; }; + A75FCEDC23E25AC700529352 /* SDL_uikitmessagebox.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62623E2513D00DCD162 /* SDL_uikitmessagebox.h */; }; + A75FCEDE23E25AC700529352 /* SDL_thread_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A77823E2513E00DCD162 /* SDL_thread_c.h */; }; + A75FCEDF23E25AC700529352 /* SDL_cocoamessagebox.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69423E2513E00DCD162 /* SDL_cocoamessagebox.h */; }; + A75FCEE123E25AC700529352 /* SDL_cpuinfo.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D11595D4D800BBD41B /* SDL_cpuinfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCEE223E25AC700529352 /* SDL_endian.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D21595D4D800BBD41B /* SDL_endian.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCEE323E25AC700529352 /* SDL_error.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D31595D4D800BBD41B /* SDL_error.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCEE423E25AC700529352 /* SDL_events.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D41595D4D800BBD41B /* SDL_events.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCEE523E25AC700529352 /* SDL_blendfillrect.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F623E2514000DCD162 /* SDL_blendfillrect.h */; }; + A75FCEE623E25AC700529352 /* SDL_gamecontroller.h in Headers */ = {isa = PBXBuildFile; fileRef = A77E6EB3167AB0A90010E40B /* SDL_gamecontroller.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCEE723E25AC700529352 /* SDL_hidapijoystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7C723E2513E00DCD162 /* SDL_hidapijoystick_c.h */; }; + A75FCEE923E25AC700529352 /* SDL_pixels_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A74023E2513E00DCD162 /* SDL_pixels_c.h */; }; + A75FCEEB23E25AC700529352 /* SDL_joystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7D023E2513E00DCD162 /* SDL_joystick_c.h */; }; + A75FCEEC23E25AC700529352 /* vk_sdk_platform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73D23E2513E00DCD162 /* vk_sdk_platform.h */; }; + A75FCEED23E25AC700529352 /* blank_cursor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93223E2514000DCD162 /* blank_cursor.h */; }; + A75FCEEE23E25AC700529352 /* SDL_gesture.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D51595D4D800BBD41B /* SDL_gesture.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCEEF23E25AC700529352 /* SDL_sysaudio.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A89F23E2513F00DCD162 /* SDL_sysaudio.h */; }; + A75FCEF023E25AC700529352 /* SDL_haptic.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D61595D4D800BBD41B /* SDL_haptic.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCEF223E25AC700529352 /* math_libm.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A92623E2514000DCD162 /* math_libm.h */; }; + A75FCEF323E25AC700529352 /* SDL_uikitvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62223E2513D00DCD162 /* SDL_uikitvideo.h */; }; + A75FCEF423E25AC700529352 /* SDL_cocoamouse.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69823E2513E00DCD162 /* SDL_cocoamouse.h */; }; + A75FCEF523E25AC700529352 /* SDL_hints.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D71595D4D800BBD41B /* SDL_hints.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCEF623E25AC700529352 /* SDL_blit_slow.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A66323E2513E00DCD162 /* SDL_blit_slow.h */; }; + A75FCEF723E25AC700529352 /* SDL_yuv_sw_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8EC23E2514000DCD162 /* SDL_yuv_sw_c.h */; }; + A75FCEF923E25AC700529352 /* SDL_windowevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A94323E2514000DCD162 /* SDL_windowevents_c.h */; }; + A75FCEFA23E25AC700529352 /* SDL_joystick.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D91595D4D800BBD41B /* SDL_joystick.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCEFB23E25AC700529352 /* SDL_cocoavideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69323E2513E00DCD162 /* SDL_cocoavideo.h */; }; + A75FCEFC23E25AC700529352 /* SDL_keyboard.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557DA1595D4D800BBD41B /* SDL_keyboard.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCEFD23E25AC700529352 /* SDL_uikitevents.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62D23E2513D00DCD162 /* SDL_uikitevents.h */; }; + A75FCEFE23E25AC700529352 /* SDL_gesture_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93023E2514000DCD162 /* SDL_gesture_c.h */; }; + A75FCEFF23E25AC700529352 /* SDL_shaders_gl.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A90D23E2514000DCD162 /* SDL_shaders_gl.h */; }; + A75FCF0023E25AC700529352 /* SDL_systhread_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A78423E2513E00DCD162 /* SDL_systhread_c.h */; }; + A75FCF0123E25AC700529352 /* SDL_keycode.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557DB1595D4D800BBD41B /* SDL_keycode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCF0323E25AC700529352 /* SDL_cocoakeyboard.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68023E2513E00DCD162 /* SDL_cocoakeyboard.h */; }; + A75FCF0423E25AC700529352 /* SDL_uikitvulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A63323E2513D00DCD162 /* SDL_uikitvulkan.h */; }; + A75FCF0823E25AC700529352 /* SDL_loadso.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557DC1595D4D800BBD41B /* SDL_loadso.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCF0923E25AC700529352 /* gl2ext.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72323E2513E00DCD162 /* gl2ext.h */; }; + A75FCF0A23E25AC700529352 /* SDL_clipboardevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93923E2514000DCD162 /* SDL_clipboardevents_c.h */; }; + A75FCF0C23E25AC700529352 /* SDL_syshaptic_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5CF23E2513D00DCD162 /* SDL_syshaptic_c.h */; }; + A75FCF0D23E25AC700529352 /* SDL_hints_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8D123E2514000DCD162 /* SDL_hints_c.h */; }; + A75FCF0E23E25AC700529352 /* SDL_audiodev_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A87723E2513F00DCD162 /* SDL_audiodev_c.h */; }; + A75FCF0F23E25AC700529352 /* SDL_audio_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A87323E2513F00DCD162 /* SDL_audio_c.h */; }; + A75FCF1023E25AC700529352 /* SDL_uikitmodes.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A61F23E2513D00DCD162 /* SDL_uikitmodes.h */; }; + A75FCF1123E25AC700529352 /* egl.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72923E2513E00DCD162 /* egl.h */; }; + A75FCF1223E25AC700529352 /* khrplatform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72723E2513E00DCD162 /* khrplatform.h */; }; + A75FCF1323E25AC700529352 /* SDL_log.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557DD1595D4D800BBD41B /* SDL_log.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCF1423E25AC700529352 /* SDL_uikitviewcontroller.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62423E2513D00DCD162 /* SDL_uikitviewcontroller.h */; }; + A75FCF1523E25AC700529352 /* SDL_dummysensor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A57823E2513D00DCD162 /* SDL_dummysensor.h */; }; + A75FCF1623E25AC700529352 /* vulkan_android.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73E23E2513E00DCD162 /* vulkan_android.h */; }; + A75FCF1723E25AC700529352 /* yuv_rgb_std_func.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A77123E2513E00DCD162 /* yuv_rgb_std_func.h */; }; + A75FCF1823E25AC700529352 /* vulkan_core.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73C23E2513E00DCD162 /* vulkan_core.h */; }; + A75FCF1923E25AC700529352 /* SDL_syssensor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A57D23E2513D00DCD162 /* SDL_syssensor.h */; }; + A75FCF1A23E25AC700529352 /* SDL_dynapi.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5D823E2513D00DCD162 /* SDL_dynapi.h */; }; + A75FCF1B23E25AC700529352 /* SDL_assert_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7F523E2513F00DCD162 /* SDL_assert_c.h */; }; + A75FCF1C23E25AC700529352 /* SDL_diskaudio.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8B023E2513F00DCD162 /* SDL_diskaudio.h */; }; + A75FCF1D23E25AC700529352 /* SDL_main.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557DE1595D4D800BBD41B /* SDL_main.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCF1E23E25AC700529352 /* SDL_drawpoint.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F323E2514000DCD162 /* SDL_drawpoint.h */; }; + A75FCF1F23E25AC700529352 /* SDL_opengles2_khrplatform.h in Headers */ = {isa = PBXBuildFile; fileRef = AAC070F8195606770073DCDF /* SDL_opengles2_khrplatform.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCF2023E25AC700529352 /* SDL_wave.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8A223E2513F00DCD162 /* SDL_wave.h */; }; + A75FCF2123E25AC700529352 /* SDL_cocoaopengl.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68D23E2513E00DCD162 /* SDL_cocoaopengl.h */; }; + A75FCF2223E25AC700529352 /* yuv_rgb_sse_func.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A77023E2513E00DCD162 /* yuv_rgb_sse_func.h */; }; + A75FCF2423E25AC700529352 /* SDL_offscreenevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5EE23E2513D00DCD162 /* SDL_offscreenevents_c.h */; }; + A75FCF2623E25AC700529352 /* SDL_coreaudio.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8BA23E2513F00DCD162 /* SDL_coreaudio.h */; }; + A75FCF2723E25AC700529352 /* SDL_draw.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8FA23E2514000DCD162 /* SDL_draw.h */; }; + A75FCF2823E25AC700529352 /* SDL_drawline.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F723E2514000DCD162 /* SDL_drawline.h */; }; + A75FCF2923E25AC700529352 /* SDL_messagebox.h in Headers */ = {isa = PBXBuildFile; fileRef = AA9FF9591637CBF9000DF050 /* SDL_messagebox.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCF2A23E25AC700529352 /* SDL_mouse.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557DF1595D4D800BBD41B /* SDL_mouse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCF2B23E25AC700529352 /* SDL_mutex.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E01595D4D800BBD41B /* SDL_mutex.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCF2C23E25AC700529352 /* SDL_yuv_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A76A23E2513E00DCD162 /* SDL_yuv_c.h */; }; + A75FCF2D23E25AC700529352 /* scancodes_xfree86.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A94123E2514000DCD162 /* scancodes_xfree86.h */; }; + A75FCF2E23E25AC700529352 /* SDL_syspower.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7E223E2513F00DCD162 /* SDL_syspower.h */; }; + A75FCF3023E25AC700529352 /* SDL_name.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E11595D4D800BBD41B /* SDL_name.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCF3123E25AC700529352 /* eglext.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72A23E2513E00DCD162 /* eglext.h */; }; + A75FCF3223E25AC700529352 /* SDL_events_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A94223E2514000DCD162 /* SDL_events_c.h */; }; + A75FCF3323E25AC700529352 /* math_private.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A91B23E2514000DCD162 /* math_private.h */; }; + A75FCF3523E25AC700529352 /* vulkan_wayland.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73423E2513E00DCD162 /* vulkan_wayland.h */; }; + A75FCF3623E25AC700529352 /* SDL_opengl.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E21595D4D800BBD41B /* SDL_opengl.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCF3723E25AC700529352 /* SDL_cocoashape.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A67E23E2513E00DCD162 /* SDL_cocoashape.h */; }; + A75FCF3823E25AC700529352 /* SDL_opengles.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E31595D4D800BBD41B /* SDL_opengles.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCF3923E25AC700529352 /* SDL_shaders_gles2.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A90523E2514000DCD162 /* SDL_shaders_gles2.h */; }; + A75FCF3A23E25AC700529352 /* SDL_opengles2.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E41595D4D800BBD41B /* SDL_opengles2.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCF3B23E25AC700529352 /* SDL_glesfuncs.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A90223E2514000DCD162 /* SDL_glesfuncs.h */; }; + A75FCF3C23E25AC700529352 /* SDL_blendpoint.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F823E2514000DCD162 /* SDL_blendpoint.h */; }; + A75FCF3D23E25AC700529352 /* SDL_offscreenvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5F123E2513D00DCD162 /* SDL_offscreenvideo.h */; }; + A75FCF3E23E25AC700529352 /* SDL_nullevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60B23E2513D00DCD162 /* SDL_nullevents_c.h */; }; + A75FCF3F23E25AC700529352 /* SDL_sysjoystick.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7CF23E2513E00DCD162 /* SDL_sysjoystick.h */; }; + A75FCF4023E25AC700529352 /* SDL_steamcontroller.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7A523E2513E00DCD162 /* SDL_steamcontroller.h */; }; + A75FCF4123E25AC700529352 /* scancodes_linux.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93623E2514000DCD162 /* scancodes_linux.h */; }; + A75FCF4323E25AC700529352 /* SDL_touch_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93723E2514000DCD162 /* SDL_touch_c.h */; }; + A75FCF4423E25AC700529352 /* SDL_gamecontrollerdb.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A79E23E2513E00DCD162 /* SDL_gamecontrollerdb.h */; }; + A75FCF4523E25AC700529352 /* SDL_cocoavulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68F23E2513E00DCD162 /* SDL_cocoavulkan.h */; }; + A75FCF4623E25AC700529352 /* gl2platform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72523E2513E00DCD162 /* gl2platform.h */; }; + A75FCF4723E25AC700529352 /* SDL_pixels.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E51595D4D800BBD41B /* SDL_pixels.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCF4823E25AC700529352 /* vk_layer.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72D23E2513E00DCD162 /* vk_layer.h */; }; + A75FCF4A23E25AC700529352 /* vk_platform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73123E2513E00DCD162 /* vk_platform.h */; }; + A75FCF4B23E25AC700529352 /* SDL_cocoametalview.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68623E2513E00DCD162 /* SDL_cocoametalview.h */; }; + A75FCF4C23E25AC700529352 /* SDL_cocoaopengles.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69023E2513E00DCD162 /* SDL_cocoaopengles.h */; }; + A75FCF4D23E25AC700529352 /* SDL_blit.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A76B23E2513E00DCD162 /* SDL_blit.h */; }; + A75FCF4E23E25AC700529352 /* vulkan_xlib_xrandr.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73723E2513E00DCD162 /* vulkan_xlib_xrandr.h */; }; + A75FCF4F23E25AC700529352 /* SDL_sensor_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A58123E2513D00DCD162 /* SDL_sensor_c.h */; }; + A75FCF5023E25AC700529352 /* SDL_sysrender.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8EE23E2514000DCD162 /* SDL_sysrender.h */; }; + A75FCF5123E25AC700529352 /* SDL_rotate.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8FE23E2514000DCD162 /* SDL_rotate.h */; }; + A75FCF5223E25AC700529352 /* SDL_platform.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E61595D4D800BBD41B /* SDL_platform.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCF5323E25AC700529352 /* SDL_power.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E71595D4D800BBD41B /* SDL_power.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCF5623E25AC700529352 /* scancodes_darwin.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93423E2514000DCD162 /* scancodes_darwin.h */; }; + A75FCF5723E25AC700529352 /* controller_type.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7D923E2513E00DCD162 /* controller_type.h */; }; + A75FCF5923E25AC700529352 /* SDL_uikitclipboard.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62123E2513D00DCD162 /* SDL_uikitclipboard.h */; }; + A75FCF5A23E25AC700529352 /* vulkan_xlib.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73A23E2513E00DCD162 /* vulkan_xlib.h */; }; + A75FCF5B23E25AC700529352 /* SDL_uikitwindow.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62723E2513D00DCD162 /* SDL_uikitwindow.h */; }; + A75FCF5C23E25AC700529352 /* vulkan_vi.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72F23E2513E00DCD162 /* vulkan_vi.h */; }; + A75FCF5E23E25AC700529352 /* SDL_quit.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E81595D4D800BBD41B /* SDL_quit.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCF5F23E25AC700529352 /* default_cursor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93323E2514000DCD162 /* default_cursor.h */; }; + A75FCF6023E25AC700529352 /* SDL_render_sw_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F523E2514000DCD162 /* SDL_render_sw_c.h */; }; + A75FCF6123E25AC700529352 /* SDL_rect.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E91595D4D800BBD41B /* SDL_rect.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCF6223E25AC700529352 /* SDL_render.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557EA1595D4D800BBD41B /* SDL_render.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCF6323E25AC700529352 /* SDL_nullvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60A23E2513D00DCD162 /* SDL_nullvideo.h */; }; + A75FCF6423E25AC700529352 /* SDL_blit_copy.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A76623E2513E00DCD162 /* SDL_blit_copy.h */; }; + A75FCF6523E25AC700529352 /* SDL_RLEaccel_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A76723E2513E00DCD162 /* SDL_RLEaccel_c.h */; }; + A75FCF6623E25AC700529352 /* eglplatform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72B23E2513E00DCD162 /* eglplatform.h */; }; + A75FCF6823E25AC700529352 /* SDL_revision.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557EB1595D4D800BBD41B /* SDL_revision.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCF6923E25AC700529352 /* SDL_systhread.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A77723E2513E00DCD162 /* SDL_systhread.h */; }; + A75FCF6A23E25AC700529352 /* SDL_rwops.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557EC1595D4D800BBD41B /* SDL_rwops.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCF6B23E25AC700529352 /* SDL_scancode.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557ED1595D4D800BBD41B /* SDL_scancode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCF6C23E25AC700529352 /* SDL_cocoaclipboard.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68A23E2513E00DCD162 /* SDL_cocoaclipboard.h */; }; + A75FCF6D23E25AC700529352 /* SDL_cocoamodes.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69123E2513E00DCD162 /* SDL_cocoamodes.h */; }; + A75FCF6E23E25AC700529352 /* SDL_uikitopenglview.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62B23E2513D00DCD162 /* SDL_uikitopenglview.h */; }; + A75FCF6F23E25AC700529352 /* vulkan_win32.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73523E2513E00DCD162 /* vulkan_win32.h */; }; + A75FCF7023E25AC700529352 /* SDL_offscreenframebuffer_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5F423E2513D00DCD162 /* SDL_offscreenframebuffer_c.h */; }; + A75FCF7123E25AC700529352 /* SDL_displayevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93123E2514000DCD162 /* SDL_displayevents_c.h */; }; + A75FCF7323E25AC700529352 /* SDL_timer_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5E023E2513D00DCD162 /* SDL_timer_c.h */; }; + A75FCF7423E25AC700529352 /* gl2.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72423E2513E00DCD162 /* gl2.h */; }; + A75FCF7523E25AC700529352 /* SDL_sysmutex_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A78823E2513E00DCD162 /* SDL_sysmutex_c.h */; }; + A75FCF7623E25AC700529352 /* scancodes_windows.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A92C23E2514000DCD162 /* scancodes_windows.h */; }; + A75FCF7723E25AC700529352 /* SDL_rwopsbundlesupport.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7DD23E2513F00DCD162 /* SDL_rwopsbundlesupport.h */; }; + A75FCF7823E25AC700529352 /* SDL_syspower.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7F423E2513F00DCD162 /* SDL_syspower.h */; }; + A75FCF7923E25AC700529352 /* vulkan_macos.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73623E2513E00DCD162 /* vulkan_macos.h */; }; + A75FCF7A23E25AC700529352 /* vulkan_xcb.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73823E2513E00DCD162 /* vulkan_xcb.h */; }; + A75FCF7B23E25AC700529352 /* vulkan_ios.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73B23E2513E00DCD162 /* vulkan_ios.h */; }; + A75FCF7C23E25AC700529352 /* SDL_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A58323E2513D00DCD162 /* SDL_internal.h */; }; + A75FCF7D23E25AC700529352 /* SDL_shape.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557EE1595D4D800BBD41B /* SDL_shape.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCF7E23E25AC700529352 /* SDL_stdinc.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557EF1595D4D800BBD41B /* SDL_stdinc.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCF7F23E25AC700529352 /* SDL_surface.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F01595D4D800BBD41B /* SDL_surface.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCF8023E25AC700529352 /* vulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73023E2513E00DCD162 /* vulkan.h */; }; + A75FCF8123E25AC700529352 /* SDL_keyboard_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93D23E2514000DCD162 /* SDL_keyboard_c.h */; }; + A75FCF8223E25AC700529352 /* SDL_system.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F11595D4D800BBD41B /* SDL_system.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCF8323E25AC700529352 /* SDL_syswm.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F21595D4D800BBD41B /* SDL_syswm.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCF8423E25AC700529352 /* SDL_opengl_glext.h in Headers */ = {isa = PBXBuildFile; fileRef = AAC070F4195606770073DCDF /* SDL_opengl_glext.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCF8523E25AC700529352 /* SDL_mouse_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A92B23E2514000DCD162 /* SDL_mouse_c.h */; }; + A75FCF8623E25AC700529352 /* SDL_blit_auto.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73F23E2513E00DCD162 /* SDL_blit_auto.h */; }; + A75FCF8723E25AC700529352 /* SDL_blendline.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F223E2514000DCD162 /* SDL_blendline.h */; }; + A75FCF8823E25AC700529352 /* SDL_syshaptic.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5CC23E2513D00DCD162 /* SDL_syshaptic.h */; }; + A75FCF8923E25AC700529352 /* SDL_vulkan_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A63E23E2513D00DCD162 /* SDL_vulkan_internal.h */; }; + A75FCF8A23E25AC700529352 /* SDL_thread.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F31595D4D800BBD41B /* SDL_thread.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCF8B23E25AC700529352 /* SDL_cocoaevents.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69623E2513E00DCD162 /* SDL_cocoaevents.h */; }; + A75FCF8C23E25AC700529352 /* vk_icd.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72E23E2513E00DCD162 /* vk_icd.h */; }; + A75FCF8D23E25AC700529352 /* SDL_nullframebuffer_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60723E2513D00DCD162 /* SDL_nullframebuffer_c.h */; }; + A75FCF8E23E25AC700529352 /* SDL_timer.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F41595D4D800BBD41B /* SDL_timer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCF8F23E25AC700529352 /* SDL_dynapi_procs.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5DB23E2513D00DCD162 /* SDL_dynapi_procs.h */; }; + A75FCF9023E25AC700529352 /* vulkan_fuchsia.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73323E2513E00DCD162 /* vulkan_fuchsia.h */; }; + A75FCF9123E25AC700529352 /* SDL_touch.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F51595D4D800BBD41B /* SDL_touch.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCF9223E25AC700529352 /* SDL_types.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F61595D4D800BBD41B /* SDL_types.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCF9323E25AC700529352 /* usb_ids.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7CB23E2513E00DCD162 /* usb_ids.h */; }; + A75FCF9423E25AC700529352 /* SDL_gles2funcs.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A90623E2514000DCD162 /* SDL_gles2funcs.h */; }; + A75FCF9623E25AC700529352 /* SDL_version.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F71595D4D800BBD41B /* SDL_version.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCF9723E25AC700529352 /* SDL_video.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F81595D4D800BBD41B /* SDL_video.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCF9823E25AC700529352 /* SDL_opengles2_gl2.h in Headers */ = {isa = PBXBuildFile; fileRef = AAC070F5195606770073DCDF /* SDL_opengles2_gl2.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCF9923E25AC700529352 /* SDL_sensor.h in Headers */ = {isa = PBXBuildFile; fileRef = F3950CD7212BC88D00F51292 /* SDL_sensor.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCF9A23E25AC700529352 /* SDL_sysvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A61723E2513D00DCD162 /* SDL_sysvideo.h */; }; + A75FCF9B23E25AC700529352 /* SDL_opengles2_gl2platform.h in Headers */ = {isa = PBXBuildFile; fileRef = AAC070F7195606770073DCDF /* SDL_opengles2_gl2platform.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCF9C23E25AC700529352 /* SDL_opengles2_gl2ext.h in Headers */ = {isa = PBXBuildFile; fileRef = AAC070F6195606770073DCDF /* SDL_opengles2_gl2ext.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FCF9E23E25AC700529352 /* SDL_dynapi_overrides.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5D923E2513D00DCD162 /* SDL_dynapi_overrides.h */; }; + A75FCF9F23E25AC700529352 /* SDL_cocoawindow.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69223E2513E00DCD162 /* SDL_cocoawindow.h */; }; + A75FCFA223E25AC700529352 /* SDL_drawline.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8F123E2514000DCD162 /* SDL_drawline.c */; }; + A75FCFA323E25AC700529352 /* SDL_yuv.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A67C23E2513E00DCD162 /* SDL_yuv.c */; }; + A75FCFA423E25AC700529352 /* SDL_sysfilesystem.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7FE23E2513F00DCD162 /* SDL_sysfilesystem.m */; }; + A75FCFA523E25AC700529352 /* e_pow.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91C23E2514000DCD162 /* e_pow.c */; }; + A75FCFA623E25AC700529352 /* SDL_systls.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A78223E2513E00DCD162 /* SDL_systls.c */; }; + A75FCFA723E25AC700529352 /* SDL_vulkan_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A64023E2513D00DCD162 /* SDL_vulkan_utils.c */; }; + A75FCFA823E25AC700529352 /* SDL_spinlock.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A57323E2513D00DCD162 /* SDL_spinlock.c */; }; + A75FCFA923E25AC700529352 /* s_atan.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91823E2514000DCD162 /* s_atan.c */; }; + A75FCFAA23E25AC700529352 /* SDL_sysloadso.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A85F23E2513F00DCD162 /* SDL_sysloadso.c */; }; + A75FCFAB23E25AC700529352 /* SDL_render_metal.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8DE23E2514000DCD162 /* SDL_render_metal.m */; }; + A75FCFAC23E25AC700529352 /* SDL_clipboard.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A67B23E2513E00DCD162 /* SDL_clipboard.c */; }; + A75FCFAD23E25AC700529352 /* SDL_cocoaevents.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68923E2513E00DCD162 /* SDL_cocoaevents.m */; }; + A75FCFAF23E25AC700529352 /* SDL_audiocvt.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8A123E2513F00DCD162 /* SDL_audiocvt.c */; }; + A75FCFB023E25AC700529352 /* SDL_shape.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A76923E2513E00DCD162 /* SDL_shape.c */; }; + A75FCFB123E25AC700529352 /* SDL_rotate.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8F423E2514000DCD162 /* SDL_rotate.c */; }; + A75FCFB223E25AC700529352 /* SDL_coremotionsensor.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A57C23E2513D00DCD162 /* SDL_coremotionsensor.m */; }; + A75FCFB323E25AC700529352 /* SDL_touch.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93E23E2514000DCD162 /* SDL_touch.c */; }; + A75FCFB523E25AC700529352 /* SDL_uikitmessagebox.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61B23E2513D00DCD162 /* SDL_uikitmessagebox.m */; }; + A75FCFB623E25AC700529352 /* SDL_thread.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A77923E2513E00DCD162 /* SDL_thread.c */; }; + A75FCFB723E25AC700529352 /* SDL_hidapi_xbox360w.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C823E2513E00DCD162 /* SDL_hidapi_xbox360w.c */; }; + A75FCFB823E25AC700529352 /* SDL_atomic.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A57423E2513D00DCD162 /* SDL_atomic.c */; }; + A75FCFB923E25AC700529352 /* SDL_displayevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92D23E2514000DCD162 /* SDL_displayevents.c */; }; + A75FCFBB23E25AC700529352 /* SDL_log.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5DD23E2513D00DCD162 /* SDL_log.c */; }; + A75FCFBC23E25AC700529352 /* SDL_cocoaopengl.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A67F23E2513E00DCD162 /* SDL_cocoaopengl.m */; }; + A75FCFBD23E25AC700529352 /* SDL_offscreenframebuffer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5F223E2513D00DCD162 /* SDL_offscreenframebuffer.c */; }; + A75FCFBF23E25AC700529352 /* SDL_render_gles.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A90123E2514000DCD162 /* SDL_render_gles.c */; }; + A75FCFC023E25AC700529352 /* SDL_systhread.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A78623E2513E00DCD162 /* SDL_systhread.c */; }; + A75FCFC123E25AC700529352 /* SDL_windowevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92F23E2514000DCD162 /* SDL_windowevents.c */; }; + A75FCFC223E25AC700529352 /* s_scalbn.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91A23E2514000DCD162 /* s_scalbn.c */; }; + A75FCFC323E25AC700529352 /* SDL_timer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5DF23E2513D00DCD162 /* SDL_timer.c */; }; + A75FCFC423E25AC700529352 /* SDL_blendpoint.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8F023E2514000DCD162 /* SDL_blendpoint.c */; }; + A75FCFC523E25AC700529352 /* SDL_gamecontroller.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7AD23E2513E00DCD162 /* SDL_gamecontroller.c */; }; + A75FCFC623E25AC700529352 /* SDL_systimer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5E223E2513D00DCD162 /* SDL_systimer.c */; }; + A75FCFC723E25AC700529352 /* SDL_uikitclipboard.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62A23E2513D00DCD162 /* SDL_uikitclipboard.m */; }; + A75FCFC823E25AC700529352 /* SDL_render_sw.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8F923E2514000DCD162 /* SDL_render_sw.c */; }; + A75FCFCA23E25AC700529352 /* SDL_syssem.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A78323E2513E00DCD162 /* SDL_syssem.c */; }; + A75FCFCB23E25AC700529352 /* SDL_hidapi_xbox360.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C223E2513E00DCD162 /* SDL_hidapi_xbox360.c */; }; + A75FCFCC23E25AC700529352 /* SDL_coreaudio.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8BB23E2513F00DCD162 /* SDL_coreaudio.m */; }; + A75FCFCD23E25AC700529352 /* SDL_blendline.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8FB23E2514000DCD162 /* SDL_blendline.c */; }; + A75FCFCE23E25AC700529352 /* SDL_blit_A.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A66423E2513E00DCD162 /* SDL_blit_A.c */; }; + A75FCFCF23E25AC700529352 /* SDL_d3dmath.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8FF23E2514000DCD162 /* SDL_d3dmath.c */; }; + A75FCFD123E25AC700529352 /* SDL_nullvideo.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60823E2513D00DCD162 /* SDL_nullvideo.c */; }; + A75FCFD223E25AC700529352 /* SDL_offscreenevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5F023E2513D00DCD162 /* SDL_offscreenevents.c */; }; + A75FCFD323E25AC700529352 /* SDL_uikitview.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62923E2513D00DCD162 /* SDL_uikitview.m */; }; + A75FCFD423E25AC700529352 /* SDL_nullevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60923E2513D00DCD162 /* SDL_nullevents.c */; }; + A75FCFD523E25AC700529352 /* SDL_audiodev.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A88F23E2513F00DCD162 /* SDL_audiodev.c */; }; + A75FCFD623E25AC700529352 /* SDL_cocoaclipboard.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A69523E2513E00DCD162 /* SDL_cocoaclipboard.m */; }; + A75FCFD723E25AC700529352 /* SDL_blit_slow.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60223E2513D00DCD162 /* SDL_blit_slow.c */; }; + A75FCFD823E25AC700529352 /* s_copysign.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91423E2514000DCD162 /* s_copysign.c */; }; + A75FCFD923E25AC700529352 /* SDL_haptic.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5C523E2513D00DCD162 /* SDL_haptic.c */; }; + A75FCFDA23E25AC700529352 /* SDL_uikitvulkan.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62523E2513D00DCD162 /* SDL_uikitvulkan.m */; }; + A75FCFDC23E25AC700529352 /* SDL_cocoametalview.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A69923E2513E00DCD162 /* SDL_cocoametalview.m */; }; + A75FCFDD23E25AC700529352 /* SDL_audiotypecvt.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8A023E2513F00DCD162 /* SDL_audiotypecvt.c */; }; + A75FCFDE23E25AC700529352 /* SDL_uikitevents.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61C23E2513D00DCD162 /* SDL_uikitevents.m */; }; + A75FCFDF23E25AC700529352 /* SDL_uikitmodes.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62C23E2513D00DCD162 /* SDL_uikitmodes.m */; }; + A75FCFE023E25AC700529352 /* SDL_blit_N.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A64223E2513D00DCD162 /* SDL_blit_N.c */; }; + A75FCFE123E25AC700529352 /* SDL_dropevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93B23E2514000DCD162 /* SDL_dropevents.c */; }; + A75FCFE223E25AC700529352 /* e_atan2.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91D23E2514000DCD162 /* e_atan2.c */; }; + A75FCFE323E25AC700529352 /* s_sin.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91223E2514000DCD162 /* s_sin.c */; }; + A75FCFE423E25AC700529352 /* SDL_power.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7E723E2513F00DCD162 /* SDL_power.c */; }; + A75FCFE523E25AC700529352 /* SDL_cocoakeyboard.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68C23E2513E00DCD162 /* SDL_cocoakeyboard.m */; }; + A75FCFE623E25AC700529352 /* SDL_dynapi.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5DA23E2513D00DCD162 /* SDL_dynapi.c */; }; + A75FCFE723E25AC700529352 /* SDL_shaders_gl.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91023E2514000DCD162 /* SDL_shaders_gl.c */; }; + A75FCFE823E25AC700529352 /* e_log.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92323E2514000DCD162 /* e_log.c */; }; + A75FCFE923E25AC700529352 /* SDL_cocoamessagebox.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68B23E2513E00DCD162 /* SDL_cocoamessagebox.m */; }; + A75FCFEA23E25AC700529352 /* SDL_blendfillrect.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8FD23E2514000DCD162 /* SDL_blendfillrect.c */; }; + A75FCFEB23E25AC700529352 /* SDL_uikitvideo.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A63223E2513D00DCD162 /* SDL_uikitvideo.m */; }; + A75FCFEC23E25AC700529352 /* SDL_cocoashape.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68E23E2513E00DCD162 /* SDL_cocoashape.m */; }; + A75FCFED23E25AC700529352 /* SDL_cocoamouse.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68723E2513E00DCD162 /* SDL_cocoamouse.m */; }; + A75FCFEE23E25AC700529352 /* SDL_error.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8BF23E2513F00DCD162 /* SDL_error.c */; }; + A75FCFEF23E25AC700529352 /* SDL_blit.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A64C23E2513D00DCD162 /* SDL_blit.c */; }; + A75FCFF023E25AC700529352 /* SDL_rwops.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7DB23E2513F00DCD162 /* SDL_rwops.c */; }; + A75FCFF123E25AC700529352 /* SDL_uikitviewcontroller.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A63023E2513D00DCD162 /* SDL_uikitviewcontroller.m */; }; + A75FCFF223E25AC700529352 /* s_cos.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91323E2514000DCD162 /* s_cos.c */; }; + A75FCFF323E25AC700529352 /* SDL_yuv_sw.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8ED23E2514000DCD162 /* SDL_yuv_sw.c */; }; + A75FCFF423E25AC700529352 /* SDL_wave.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A86623E2513F00DCD162 /* SDL_wave.c */; }; + A75FCFF523E25AC700529352 /* s_tan.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91E23E2514000DCD162 /* s_tan.c */; }; + A75FCFF623E25AC700529352 /* SDL_hints.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5AB23E2513D00DCD162 /* SDL_hints.c */; }; + A75FCFF723E25AC700529352 /* SDL_hidapi_ps4.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C323E2513E00DCD162 /* SDL_hidapi_ps4.c */; }; + A75FCFF823E25AC700529352 /* SDL_pixels.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A64D23E2513D00DCD162 /* SDL_pixels.c */; }; + A75FCFFA23E25AC700529352 /* SDL_sysloadso.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A86323E2513F00DCD162 /* SDL_sysloadso.c */; }; + A75FCFFC23E25AC700529352 /* SDL_syspower.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7EB23E2513F00DCD162 /* SDL_syspower.c */; }; + A75FCFFE23E25AC700529352 /* SDL_iconv.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D323E2514000DCD162 /* SDL_iconv.c */; }; + A75FCFFF23E25AC700529352 /* s_fabs.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91523E2514000DCD162 /* s_fabs.c */; }; + A75FD00223E25AC700529352 /* SDL_shaders_metal.metal in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8E023E2514000DCD162 /* SDL_shaders_metal.metal */; }; + A75FD00323E25AC700529352 /* SDL_uikitwindow.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61A23E2513D00DCD162 /* SDL_uikitwindow.m */; }; + A75FD00423E25AC700529352 /* SDL_render.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8DB23E2514000DCD162 /* SDL_render.c */; }; + A75FD00523E25AC700529352 /* SDL_stretch.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60323E2513D00DCD162 /* SDL_stretch.c */; }; + A75FD00623E25AC700529352 /* s_floor.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92523E2514000DCD162 /* s_floor.c */; }; + A75FD00723E25AC700529352 /* SDL_blit_copy.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61623E2513D00DCD162 /* SDL_blit_copy.c */; }; + A75FD00823E25AC700529352 /* e_fmod.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92023E2514000DCD162 /* e_fmod.c */; }; + A75FD00923E25AC700529352 /* SDL_syspower.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7E123E2513F00DCD162 /* SDL_syspower.m */; }; + A75FD00A23E25AC700529352 /* e_log10.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92223E2514000DCD162 /* e_log10.c */; }; + A75FD00B23E25AC700529352 /* SDL_uikitopenglview.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62023E2513D00DCD162 /* SDL_uikitopenglview.m */; }; + A75FD00C23E25AC700529352 /* SDL_mixer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A86523E2513F00DCD162 /* SDL_mixer.c */; }; + A75FD00D23E25AC700529352 /* SDL_events.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93523E2514000DCD162 /* SDL_events.c */; }; + A75FD00E23E25AC700529352 /* SDL_blit_0.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A66223E2513E00DCD162 /* SDL_blit_0.c */; }; + A75FD00F23E25AC700529352 /* k_tan.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92723E2514000DCD162 /* k_tan.c */; }; + A75FD01123E25AC700529352 /* SDL_diskaudio.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8B123E2513F00DCD162 /* SDL_diskaudio.c */; }; + A75FD01223E25AC700529352 /* SDL_egl.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A6B623E2513E00DCD162 /* SDL_egl.c */; }; + A75FD01323E25AC700529352 /* SDL_RLEaccel.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61523E2513D00DCD162 /* SDL_RLEaccel.c */; }; + A75FD01523E25AC700529352 /* SDL_assert.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A94423E2514000DCD162 /* SDL_assert.c */; }; + A75FD01623E25AC700529352 /* SDL_bmp.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A77323E2513E00DCD162 /* SDL_bmp.c */; }; + A75FD01723E25AC700529352 /* SDL_stdlib.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D823E2514000DCD162 /* SDL_stdlib.c */; }; + A75FD01823E25AC700529352 /* SDL_dummyaudio.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A87223E2513F00DCD162 /* SDL_dummyaudio.c */; }; + A75FD01923E25AC700529352 /* SDL_fillrect.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A76823E2513E00DCD162 /* SDL_fillrect.c */; }; + A75FD01A23E25AC700529352 /* SDL_nullframebuffer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60623E2513D00DCD162 /* SDL_nullframebuffer.c */; }; + A75FD01B23E25AC700529352 /* SDL_dummysensor.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A57923E2513D00DCD162 /* SDL_dummysensor.c */; }; + A75FD01C23E25AC700529352 /* SDL_string.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D523E2514000DCD162 /* SDL_string.c */; }; + A75FD01D23E25AC700529352 /* SDL_render_gl.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A90F23E2514000DCD162 /* SDL_render_gl.c */; }; + A75FD01E23E25AC700529352 /* SDL_uikitopengles.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62323E2513D00DCD162 /* SDL_uikitopengles.m */; }; + A75FD02023E25AC700529352 /* SDL_cocoamodes.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68123E2513E00DCD162 /* SDL_cocoamodes.m */; }; + A75FD02123E25AC700529352 /* k_rem_pio2.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91623E2514000DCD162 /* k_rem_pio2.c */; }; + A75FD02323E25AC700529352 /* SDL_gesture.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A94023E2514000DCD162 /* SDL_gesture.c */; }; + A75FD02423E25AC700529352 /* SDL_getenv.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D423E2514000DCD162 /* SDL_getenv.c */; }; + A75FD02523E25AC700529352 /* SDL_hidapi_gamecube.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C923E2513E00DCD162 /* SDL_hidapi_gamecube.c */; }; + A75FD02623E25AC700529352 /* SDL_joystick.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7A923E2513E00DCD162 /* SDL_joystick.c */; }; + A75FD02723E25AC700529352 /* SDL_render_gles2.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A90423E2514000DCD162 /* SDL_render_gles2.c */; }; + A75FD02823E25AC700529352 /* SDL_surface.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61423E2513D00DCD162 /* SDL_surface.c */; }; + A75FD02923E25AC700529352 /* SDL_hidapi_xboxone.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C523E2513E00DCD162 /* SDL_hidapi_xboxone.c */; }; + A75FD02A23E25AC700529352 /* SDL_blit_auto.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A63F23E2513D00DCD162 /* SDL_blit_auto.c */; }; + A75FD02C23E25AC700529352 /* SDL_keyboard.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93823E2514000DCD162 /* SDL_keyboard.c */; }; + A75FD02E23E25AC700529352 /* SDL_rect.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A63423E2513D00DCD162 /* SDL_rect.c */; }; + A75FD02F23E25AC700529352 /* SDL_cocoaopengles.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68223E2513E00DCD162 /* SDL_cocoaopengles.m */; }; + A75FD03023E25AC700529352 /* SDL_qsort.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D723E2514000DCD162 /* SDL_qsort.c */; }; + A75FD03123E25AC700529352 /* SDL_hidapi_switch.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C623E2513E00DCD162 /* SDL_hidapi_switch.c */; }; + A75FD03223E25AC700529352 /* SDL_strtokr.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D623E2514000DCD162 /* SDL_strtokr.c */; }; + A75FD03323E25AC700529352 /* SDL_clipboardevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93A23E2514000DCD162 /* SDL_clipboardevents.c */; }; + A75FD03523E25AC700529352 /* k_cos.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91923E2514000DCD162 /* k_cos.c */; }; + A75FD03623E25AC700529352 /* SDL_hidapijoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C423E2513E00DCD162 /* SDL_hidapijoystick.c */; }; + A75FD03723E25AC700529352 /* SDL_malloc.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D923E2514000DCD162 /* SDL_malloc.c */; }; + A75FD03823E25AC700529352 /* SDL_audio.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8B823E2513F00DCD162 /* SDL_audio.c */; }; + A75FD03923E25AC700529352 /* SDL_sysfilesystem.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7F823E2513F00DCD162 /* SDL_sysfilesystem.c */; }; + A75FD03A23E25AC700529352 /* SDL_offscreenvideo.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5F623E2513D00DCD162 /* SDL_offscreenvideo.c */; }; + A75FD03B23E25AC700529352 /* SDL_syscond.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A78523E2513E00DCD162 /* SDL_syscond.c */; }; + A75FD03C23E25AC700529352 /* SDL_syshaptic.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5CE23E2513D00DCD162 /* SDL_syshaptic.c */; }; + A75FD03D23E25AC700529352 /* e_exp.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92123E2514000DCD162 /* e_exp.c */; }; + A75FD03E23E25AC700529352 /* SDL_quit.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93C23E2514000DCD162 /* SDL_quit.c */; }; + A75FD03F23E25AC700529352 /* SDL_cocoawindow.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68423E2513E00DCD162 /* SDL_cocoawindow.m */; }; + A75FD04023E25AC700529352 /* SDL_sysmutex.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A78723E2513E00DCD162 /* SDL_sysmutex.c */; }; + A75FD04123E25AC700529352 /* SDL_syshaptic.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5C423E2513D00DCD162 /* SDL_syshaptic.c */; }; + A75FD04223E25AC700529352 /* SDL_rwopsbundlesupport.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7DE23E2513F00DCD162 /* SDL_rwopsbundlesupport.m */; }; + A75FD04323E25AC700529352 /* SDL_video.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60E23E2513D00DCD162 /* SDL_video.c */; }; + A75FD04523E25AC700529352 /* SDL_uikitmetalview.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62E23E2513D00DCD162 /* SDL_uikitmetalview.m */; }; + A75FD04623E25AC700529352 /* SDL_steamcontroller.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7A723E2513E00DCD162 /* SDL_steamcontroller.c */; }; + A75FD04723E25AC700529352 /* SDL_shaders_gles2.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A90723E2514000DCD162 /* SDL_shaders_gles2.c */; }; + A75FD04823E25AC700529352 /* SDL_blit_1.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A6FA23E2513E00DCD162 /* SDL_blit_1.c */; }; + A75FD04A23E25AC700529352 /* SDL_mouse.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92A23E2514000DCD162 /* SDL_mouse.c */; }; + A75FD04B23E25AC700529352 /* e_rem_pio2.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91F23E2514000DCD162 /* e_rem_pio2.c */; }; + A75FD04C23E25AC700529352 /* SDL_dataqueue.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92823E2514000DCD162 /* SDL_dataqueue.c */; }; + A75FD04D23E25AC700529352 /* SDL_sysjoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7A023E2513E00DCD162 /* SDL_sysjoystick.c */; }; + A75FD04E23E25AC700529352 /* SDL_cpuinfo.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A77523E2513E00DCD162 /* SDL_cpuinfo.c */; }; + A75FD04F23E25AC700529352 /* SDL_sensor.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A58223E2513D00DCD162 /* SDL_sensor.c */; }; + A75FD05123E25AC700529352 /* k_sin.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91723E2514000DCD162 /* k_sin.c */; }; + A75FD05323E25AC700529352 /* SDL_systimer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5E823E2513D00DCD162 /* SDL_systimer.c */; }; + A75FD05423E25AC700529352 /* SDL_drawpoint.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8FC23E2514000DCD162 /* SDL_drawpoint.c */; }; + A75FD05523E25AC700529352 /* e_sqrt.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92423E2514000DCD162 /* e_sqrt.c */; }; + A75FD05623E25AC700529352 /* SDL_cocoavideo.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68523E2513E00DCD162 /* SDL_cocoavideo.m */; }; + A75FD05823E25AC700529352 /* SDL.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A57123E2513D00DCD162 /* SDL.c */; }; + A75FD05A23E25AC700529352 /* SDL_cocoavulkan.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68323E2513E00DCD162 /* SDL_cocoavulkan.m */; }; + A75FD05B23E25AC700529352 /* SDL_uikitappdelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61E23E2513D00DCD162 /* SDL_uikitappdelegate.m */; }; + A75FD05C23E25AC700529352 /* SDL_offscreenwindow.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5EF23E2513D00DCD162 /* SDL_offscreenwindow.c */; }; + A75FDAAD23E2795C00529352 /* SDL_hidapi_steam.c in Sources */ = {isa = PBXBuildFile; fileRef = A75FDAAC23E2795C00529352 /* SDL_hidapi_steam.c */; }; + A75FDAAE23E2795C00529352 /* SDL_hidapi_steam.c in Sources */ = {isa = PBXBuildFile; fileRef = A75FDAAC23E2795C00529352 /* SDL_hidapi_steam.c */; }; + A75FDAAF23E2795C00529352 /* SDL_hidapi_steam.c in Sources */ = {isa = PBXBuildFile; fileRef = A75FDAAC23E2795C00529352 /* SDL_hidapi_steam.c */; }; + A75FDAB023E2795C00529352 /* SDL_hidapi_steam.c in Sources */ = {isa = PBXBuildFile; fileRef = A75FDAAC23E2795C00529352 /* SDL_hidapi_steam.c */; }; + A75FDAB123E2795C00529352 /* SDL_hidapi_steam.c in Sources */ = {isa = PBXBuildFile; fileRef = A75FDAAC23E2795C00529352 /* SDL_hidapi_steam.c */; }; + A75FDAB223E2795C00529352 /* SDL_hidapi_steam.c in Sources */ = {isa = PBXBuildFile; fileRef = A75FDAAC23E2795C00529352 /* SDL_hidapi_steam.c */; }; + A75FDABA23E28A7A00529352 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A75FDAB923E28A7A00529352 /* AVFoundation.framework */; }; + A75FDABE23E28B6200529352 /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A75FDABD23E28B6200529352 /* GameController.framework */; }; + A75FDAC023E28B8000529352 /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A75FDABF23E28B8000529352 /* CoreMotion.framework */; }; + A75FDAC223E28B9600529352 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A75FDAC123E28B9600529352 /* CoreGraphics.framework */; }; + A75FDAC423E28BA700529352 /* CoreBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A75FDAC323E28BA700529352 /* CoreBluetooth.framework */; }; + A75FDAF623E35EC400529352 /* SDL_config_iphoneos.h in Headers */ = {isa = PBXBuildFile; fileRef = A75FDAF523E35EC400529352 /* SDL_config_iphoneos.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FDAF723E35EC400529352 /* SDL_config_iphoneos.h in Headers */ = {isa = PBXBuildFile; fileRef = A75FDAF523E35EC400529352 /* SDL_config_iphoneos.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75FDAF823E35ED500529352 /* SDL_config_iphoneos.h in Headers */ = {isa = PBXBuildFile; fileRef = A75FDAF523E35EC400529352 /* SDL_config_iphoneos.h */; }; + A75FDAF923E35ED500529352 /* SDL_config_iphoneos.h in Headers */ = {isa = PBXBuildFile; fileRef = A75FDAF523E35EC400529352 /* SDL_config_iphoneos.h */; }; + A75FDAFA23E35ED600529352 /* SDL_config_iphoneos.h in Headers */ = {isa = PBXBuildFile; fileRef = A75FDAF523E35EC400529352 /* SDL_config_iphoneos.h */; }; + A75FDAFB23E35ED700529352 /* SDL_config_iphoneos.h in Headers */ = {isa = PBXBuildFile; fileRef = A75FDAF523E35EC400529352 /* SDL_config_iphoneos.h */; }; + A75FDB5823E39E6100529352 /* hidapi.h in Headers */ = {isa = PBXBuildFile; fileRef = A75FDB5723E39E6100529352 /* hidapi.h */; }; + A75FDB5923E39E6100529352 /* hidapi.h in Headers */ = {isa = PBXBuildFile; fileRef = A75FDB5723E39E6100529352 /* hidapi.h */; }; + A75FDB5A23E39E6100529352 /* hidapi.h in Headers */ = {isa = PBXBuildFile; fileRef = A75FDB5723E39E6100529352 /* hidapi.h */; }; + A75FDB5B23E39E6100529352 /* hidapi.h in Headers */ = {isa = PBXBuildFile; fileRef = A75FDB5723E39E6100529352 /* hidapi.h */; }; + A75FDB5C23E39E6100529352 /* hidapi.h in Headers */ = {isa = PBXBuildFile; fileRef = A75FDB5723E39E6100529352 /* hidapi.h */; }; + A75FDB5D23E39E6100529352 /* hidapi.h in Headers */ = {isa = PBXBuildFile; fileRef = A75FDB5723E39E6100529352 /* hidapi.h */; }; + A75FDB5E23E39E6100529352 /* hidapi.h in Headers */ = {isa = PBXBuildFile; fileRef = A75FDB5723E39E6100529352 /* hidapi.h */; }; + A75FDB5F23E39E6100529352 /* hidapi.h in Headers */ = {isa = PBXBuildFile; fileRef = A75FDB5723E39E6100529352 /* hidapi.h */; }; + A75FDB6023E39E6100529352 /* hidapi.h in Headers */ = {isa = PBXBuildFile; fileRef = A75FDB5723E39E6100529352 /* hidapi.h */; }; + A75FDBB723E4CBC700529352 /* License.txt in Resources */ = {isa = PBXBuildFile; fileRef = 00794D3F09D0C461003FC8A1 /* License.txt */; }; + A75FDBB823E4CBC700529352 /* ReadMe.txt in Resources */ = {isa = PBXBuildFile; fileRef = F59C710300D5CB5801000001 /* ReadMe.txt */; }; + A75FDBB923E4CBC700529352 /* License.txt in Resources */ = {isa = PBXBuildFile; fileRef = 00794D3F09D0C461003FC8A1 /* License.txt */; }; + A75FDBBA23E4CBC700529352 /* ReadMe.txt in Resources */ = {isa = PBXBuildFile; fileRef = F59C710300D5CB5801000001 /* ReadMe.txt */; }; + A75FDBBB23E4CBC800529352 /* License.txt in Resources */ = {isa = PBXBuildFile; fileRef = 00794D3F09D0C461003FC8A1 /* License.txt */; }; + A75FDBBC23E4CBC800529352 /* ReadMe.txt in Resources */ = {isa = PBXBuildFile; fileRef = F59C710300D5CB5801000001 /* ReadMe.txt */; }; + A75FDBC523EA380300529352 /* SDL_hidapi_rumble.h in Headers */ = {isa = PBXBuildFile; fileRef = A75FDBC323EA380300529352 /* SDL_hidapi_rumble.h */; }; + A75FDBC623EA380300529352 /* SDL_hidapi_rumble.h in Headers */ = {isa = PBXBuildFile; fileRef = A75FDBC323EA380300529352 /* SDL_hidapi_rumble.h */; }; + A75FDBC723EA380300529352 /* SDL_hidapi_rumble.h in Headers */ = {isa = PBXBuildFile; fileRef = A75FDBC323EA380300529352 /* SDL_hidapi_rumble.h */; }; + A75FDBC823EA380300529352 /* SDL_hidapi_rumble.h in Headers */ = {isa = PBXBuildFile; fileRef = A75FDBC323EA380300529352 /* SDL_hidapi_rumble.h */; }; + A75FDBC923EA380300529352 /* SDL_hidapi_rumble.h in Headers */ = {isa = PBXBuildFile; fileRef = A75FDBC323EA380300529352 /* SDL_hidapi_rumble.h */; }; + A75FDBCA23EA380300529352 /* SDL_hidapi_rumble.h in Headers */ = {isa = PBXBuildFile; fileRef = A75FDBC323EA380300529352 /* SDL_hidapi_rumble.h */; }; + A75FDBCB23EA380300529352 /* SDL_hidapi_rumble.h in Headers */ = {isa = PBXBuildFile; fileRef = A75FDBC323EA380300529352 /* SDL_hidapi_rumble.h */; }; + A75FDBCC23EA380300529352 /* SDL_hidapi_rumble.h in Headers */ = {isa = PBXBuildFile; fileRef = A75FDBC323EA380300529352 /* SDL_hidapi_rumble.h */; }; + A75FDBCD23EA380300529352 /* SDL_hidapi_rumble.h in Headers */ = {isa = PBXBuildFile; fileRef = A75FDBC323EA380300529352 /* SDL_hidapi_rumble.h */; }; + A75FDBCE23EA380300529352 /* SDL_hidapi_rumble.c in Sources */ = {isa = PBXBuildFile; fileRef = A75FDBC423EA380300529352 /* SDL_hidapi_rumble.c */; }; + A75FDBCF23EA380300529352 /* SDL_hidapi_rumble.c in Sources */ = {isa = PBXBuildFile; fileRef = A75FDBC423EA380300529352 /* SDL_hidapi_rumble.c */; }; + A75FDBD023EA380300529352 /* SDL_hidapi_rumble.c in Sources */ = {isa = PBXBuildFile; fileRef = A75FDBC423EA380300529352 /* SDL_hidapi_rumble.c */; }; + A75FDBD123EA380300529352 /* SDL_hidapi_rumble.c in Sources */ = {isa = PBXBuildFile; fileRef = A75FDBC423EA380300529352 /* SDL_hidapi_rumble.c */; }; + A75FDBD223EA380300529352 /* SDL_hidapi_rumble.c in Sources */ = {isa = PBXBuildFile; fileRef = A75FDBC423EA380300529352 /* SDL_hidapi_rumble.c */; }; + A75FDBD323EA380300529352 /* SDL_hidapi_rumble.c in Sources */ = {isa = PBXBuildFile; fileRef = A75FDBC423EA380300529352 /* SDL_hidapi_rumble.c */; }; + A75FDBD423EA380300529352 /* SDL_hidapi_rumble.c in Sources */ = {isa = PBXBuildFile; fileRef = A75FDBC423EA380300529352 /* SDL_hidapi_rumble.c */; }; + A75FDBD523EA380300529352 /* SDL_hidapi_rumble.c in Sources */ = {isa = PBXBuildFile; fileRef = A75FDBC423EA380300529352 /* SDL_hidapi_rumble.c */; }; + A75FDBD623EA380300529352 /* SDL_hidapi_rumble.c in Sources */ = {isa = PBXBuildFile; fileRef = A75FDBC423EA380300529352 /* SDL_hidapi_rumble.c */; }; + A769B08423E259AE00872273 /* SDL_shaders_metal_tvos.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8E323E2514000DCD162 /* SDL_shaders_metal_tvos.h */; }; + A769B08823E259AE00872273 /* SDL_uikitopengles.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A63123E2513D00DCD162 /* SDL_uikitopengles.h */; }; + A769B08B23E259AE00872273 /* SDL_uikitmetalview.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A61D23E2513D00DCD162 /* SDL_uikitmetalview.h */; }; + A769B08D23E259AE00872273 /* SDL_shape_internals.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60D23E2513D00DCD162 /* SDL_shape_internals.h */; }; + A769B08E23E259AE00872273 /* SDL_glfuncs.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A90E23E2514000DCD162 /* SDL_glfuncs.h */; }; + A769B09023E259AE00872273 /* SDL_rect_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60C23E2513D00DCD162 /* SDL_rect_c.h */; }; + A769B09223E259AE00872273 /* SDL_shaders_metal_osx.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8E223E2514000DCD162 /* SDL_shaders_metal_osx.h */; }; + A769B09323E259AE00872273 /* SDL_shaders_metal_ios.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8DF23E2514000DCD162 /* SDL_shaders_metal_ios.h */; }; + A769B09423E259AE00872273 /* SDL_offscreenwindow.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5F523E2513D00DCD162 /* SDL_offscreenwindow.h */; }; + A769B09623E259AE00872273 /* SDL_coremotionsensor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A57B23E2513D00DCD162 /* SDL_coremotionsensor.h */; }; + A769B09723E259AE00872273 /* SDL_uikitview.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A61923E2513D00DCD162 /* SDL_uikitview.h */; }; + A769B09923E259AE00872273 /* SDL_uikitappdelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62F23E2513D00DCD162 /* SDL_uikitappdelegate.h */; }; + A769B09C23E259AE00872273 /* SDL_dropevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A92E23E2514000DCD162 /* SDL_dropevents_c.h */; }; + A769B09D23E259AE00872273 /* SDL_haptic_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5C623E2513D00DCD162 /* SDL_haptic_c.h */; }; + A769B09F23E259AE00872273 /* SDL_dataqueue.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A57023E2513D00DCD162 /* SDL_dataqueue.h */; }; + A769B0A023E259AE00872273 /* SDL_error_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A57523E2513D00DCD162 /* SDL_error_c.h */; }; + A769B0A323E259AE00872273 /* SDL_d3dmath.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8DC23E2514000DCD162 /* SDL_d3dmath.h */; }; + A769B0A623E259AE00872273 /* SDL_egl_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60423E2513D00DCD162 /* SDL_egl_c.h */; }; + A769B0A823E259AE00872273 /* yuv_rgb.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A77223E2513E00DCD162 /* yuv_rgb.h */; }; + A769B0A923E259AE00872273 /* SDL_dummyaudio.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A87123E2513F00DCD162 /* SDL_dummyaudio.h */; }; + A769B0AA23E259AE00872273 /* SDL_uikitmessagebox.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62623E2513D00DCD162 /* SDL_uikitmessagebox.h */; }; + A769B0AC23E259AE00872273 /* SDL_thread_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A77823E2513E00DCD162 /* SDL_thread_c.h */; }; + A769B0AD23E259AE00872273 /* SDL_cocoamessagebox.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69423E2513E00DCD162 /* SDL_cocoamessagebox.h */; }; + A769B0B323E259AE00872273 /* SDL_blendfillrect.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F623E2514000DCD162 /* SDL_blendfillrect.h */; }; + A769B0B523E259AE00872273 /* SDL_hidapijoystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7C723E2513E00DCD162 /* SDL_hidapijoystick_c.h */; }; + A769B0B623E259AE00872273 /* SDL_pixels_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A74023E2513E00DCD162 /* SDL_pixels_c.h */; }; + A769B0B823E259AE00872273 /* SDL_joystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7D023E2513E00DCD162 /* SDL_joystick_c.h */; }; + A769B0B923E259AE00872273 /* vk_sdk_platform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73D23E2513E00DCD162 /* vk_sdk_platform.h */; }; + A769B0BA23E259AE00872273 /* blank_cursor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93223E2514000DCD162 /* blank_cursor.h */; }; + A769B0BC23E259AE00872273 /* SDL_sysaudio.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A89F23E2513F00DCD162 /* SDL_sysaudio.h */; }; + A769B0BF23E259AE00872273 /* math_libm.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A92623E2514000DCD162 /* math_libm.h */; }; + A769B0C023E259AE00872273 /* SDL_uikitvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62223E2513D00DCD162 /* SDL_uikitvideo.h */; }; + A769B0C123E259AE00872273 /* SDL_cocoamouse.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69823E2513E00DCD162 /* SDL_cocoamouse.h */; }; + A769B0C323E259AE00872273 /* SDL_blit_slow.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A66323E2513E00DCD162 /* SDL_blit_slow.h */; }; + A769B0C423E259AE00872273 /* SDL_yuv_sw_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8EC23E2514000DCD162 /* SDL_yuv_sw_c.h */; }; + A769B0C623E259AE00872273 /* SDL_windowevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A94323E2514000DCD162 /* SDL_windowevents_c.h */; }; + A769B0C823E259AE00872273 /* SDL_cocoavideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69323E2513E00DCD162 /* SDL_cocoavideo.h */; }; + A769B0CA23E259AE00872273 /* SDL_uikitevents.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62D23E2513D00DCD162 /* SDL_uikitevents.h */; }; + A769B0CB23E259AE00872273 /* SDL_gesture_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93023E2514000DCD162 /* SDL_gesture_c.h */; }; + A769B0CC23E259AE00872273 /* SDL_shaders_gl.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A90D23E2514000DCD162 /* SDL_shaders_gl.h */; }; + A769B0CD23E259AE00872273 /* SDL_systhread_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A78423E2513E00DCD162 /* SDL_systhread_c.h */; }; + A769B0D023E259AE00872273 /* SDL_cocoakeyboard.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68023E2513E00DCD162 /* SDL_cocoakeyboard.h */; }; + A769B0D123E259AE00872273 /* SDL_uikitvulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A63323E2513D00DCD162 /* SDL_uikitvulkan.h */; }; + A769B0D623E259AE00872273 /* gl2ext.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72323E2513E00DCD162 /* gl2ext.h */; }; + A769B0D723E259AE00872273 /* SDL_clipboardevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93923E2514000DCD162 /* SDL_clipboardevents_c.h */; }; + A769B0D923E259AE00872273 /* SDL_syshaptic_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5CF23E2513D00DCD162 /* SDL_syshaptic_c.h */; }; + A769B0DA23E259AE00872273 /* SDL_hints_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8D123E2514000DCD162 /* SDL_hints_c.h */; }; + A769B0DB23E259AE00872273 /* SDL_audiodev_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A87723E2513F00DCD162 /* SDL_audiodev_c.h */; }; + A769B0DC23E259AE00872273 /* SDL_audio_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A87323E2513F00DCD162 /* SDL_audio_c.h */; }; + A769B0DD23E259AE00872273 /* SDL_uikitmodes.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A61F23E2513D00DCD162 /* SDL_uikitmodes.h */; }; + A769B0DE23E259AE00872273 /* egl.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72923E2513E00DCD162 /* egl.h */; }; + A769B0DF23E259AE00872273 /* khrplatform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72723E2513E00DCD162 /* khrplatform.h */; }; + A769B0E123E259AE00872273 /* SDL_uikitviewcontroller.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62423E2513D00DCD162 /* SDL_uikitviewcontroller.h */; }; + A769B0E223E259AE00872273 /* SDL_dummysensor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A57823E2513D00DCD162 /* SDL_dummysensor.h */; }; + A769B0E423E259AE00872273 /* SDL_steamcontroller.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7A523E2513E00DCD162 /* SDL_steamcontroller.h */; }; + A769B0E523E259AE00872273 /* vulkan_android.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73E23E2513E00DCD162 /* vulkan_android.h */; }; + A769B0E623E259AE00872273 /* yuv_rgb_std_func.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A77123E2513E00DCD162 /* yuv_rgb_std_func.h */; }; + A769B0E723E259AE00872273 /* vulkan_core.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73C23E2513E00DCD162 /* vulkan_core.h */; }; + A769B0E823E259AE00872273 /* SDL_syssensor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A57D23E2513D00DCD162 /* SDL_syssensor.h */; }; + A769B0E923E259AE00872273 /* SDL_dynapi.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5D823E2513D00DCD162 /* SDL_dynapi.h */; }; + A769B0EA23E259AE00872273 /* SDL_assert_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7F523E2513F00DCD162 /* SDL_assert_c.h */; }; + A769B0EB23E259AE00872273 /* SDL_diskaudio.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8B023E2513F00DCD162 /* SDL_diskaudio.h */; }; + A769B0ED23E259AE00872273 /* SDL_drawpoint.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F323E2514000DCD162 /* SDL_drawpoint.h */; }; + A769B0EF23E259AE00872273 /* SDL_wave.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8A223E2513F00DCD162 /* SDL_wave.h */; }; + A769B0F023E259AE00872273 /* SDL_cocoaopengl.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68D23E2513E00DCD162 /* SDL_cocoaopengl.h */; }; + A769B0F123E259AE00872273 /* yuv_rgb_sse_func.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A77023E2513E00DCD162 /* yuv_rgb_sse_func.h */; }; + A769B0F323E259AE00872273 /* SDL_offscreenevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5EE23E2513D00DCD162 /* SDL_offscreenevents_c.h */; }; + A769B0F523E259AE00872273 /* SDL_coreaudio.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8BA23E2513F00DCD162 /* SDL_coreaudio.h */; }; + A769B0F623E259AE00872273 /* SDL_draw.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8FA23E2514000DCD162 /* SDL_draw.h */; }; + A769B0F723E259AE00872273 /* SDL_drawline.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F723E2514000DCD162 /* SDL_drawline.h */; }; + A769B0FB23E259AE00872273 /* SDL_yuv_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A76A23E2513E00DCD162 /* SDL_yuv_c.h */; }; + A769B0FC23E259AE00872273 /* scancodes_xfree86.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A94123E2514000DCD162 /* scancodes_xfree86.h */; }; + A769B0FD23E259AE00872273 /* SDL_syspower.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7E223E2513F00DCD162 /* SDL_syspower.h */; }; + A769B10023E259AE00872273 /* eglext.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72A23E2513E00DCD162 /* eglext.h */; }; + A769B10123E259AE00872273 /* SDL_events_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A94223E2514000DCD162 /* SDL_events_c.h */; }; + A769B10223E259AE00872273 /* math_private.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A91B23E2514000DCD162 /* math_private.h */; }; + A769B10323E259AE00872273 /* vulkan_wayland.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73423E2513E00DCD162 /* vulkan_wayland.h */; }; + A769B10523E259AE00872273 /* SDL_cocoashape.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A67E23E2513E00DCD162 /* SDL_cocoashape.h */; }; + A769B10723E259AE00872273 /* SDL_shaders_gles2.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A90523E2514000DCD162 /* SDL_shaders_gles2.h */; }; + A769B10923E259AE00872273 /* SDL_glesfuncs.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A90223E2514000DCD162 /* SDL_glesfuncs.h */; }; + A769B10A23E259AE00872273 /* SDL_blendpoint.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F823E2514000DCD162 /* SDL_blendpoint.h */; }; + A769B10B23E259AE00872273 /* SDL_offscreenvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5F123E2513D00DCD162 /* SDL_offscreenvideo.h */; }; + A769B10C23E259AE00872273 /* SDL_nullevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60B23E2513D00DCD162 /* SDL_nullevents_c.h */; }; + A769B10D23E259AE00872273 /* SDL_sysjoystick.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7CF23E2513E00DCD162 /* SDL_sysjoystick.h */; }; + A769B10E23E259AE00872273 /* scancodes_linux.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93623E2514000DCD162 /* scancodes_linux.h */; }; + A769B11023E259AE00872273 /* SDL_touch_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93723E2514000DCD162 /* SDL_touch_c.h */; }; + A769B11123E259AE00872273 /* SDL_gamecontrollerdb.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A79E23E2513E00DCD162 /* SDL_gamecontrollerdb.h */; }; + A769B11223E259AE00872273 /* SDL_cocoavulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68F23E2513E00DCD162 /* SDL_cocoavulkan.h */; }; + A769B11323E259AE00872273 /* gl2platform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72523E2513E00DCD162 /* gl2platform.h */; }; + A769B11523E259AE00872273 /* vk_layer.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72D23E2513E00DCD162 /* vk_layer.h */; }; + A769B11823E259AE00872273 /* vk_platform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73123E2513E00DCD162 /* vk_platform.h */; }; + A769B11A23E259AE00872273 /* SDL_cocoametalview.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68623E2513E00DCD162 /* SDL_cocoametalview.h */; }; + A769B11B23E259AE00872273 /* SDL_cocoaopengles.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69023E2513E00DCD162 /* SDL_cocoaopengles.h */; }; + A769B11C23E259AE00872273 /* SDL_blit.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A76B23E2513E00DCD162 /* SDL_blit.h */; }; + A769B11D23E259AE00872273 /* vulkan_xlib_xrandr.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73723E2513E00DCD162 /* vulkan_xlib_xrandr.h */; }; + A769B11E23E259AE00872273 /* SDL_sensor_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A58123E2513D00DCD162 /* SDL_sensor_c.h */; }; + A769B11F23E259AE00872273 /* SDL_sysrender.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8EE23E2514000DCD162 /* SDL_sysrender.h */; }; + A769B12023E259AE00872273 /* SDL_rotate.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8FE23E2514000DCD162 /* SDL_rotate.h */; }; + A769B12523E259AE00872273 /* scancodes_darwin.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93423E2514000DCD162 /* scancodes_darwin.h */; }; + A769B12623E259AE00872273 /* controller_type.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7D923E2513E00DCD162 /* controller_type.h */; }; + A769B12823E259AE00872273 /* SDL_uikitclipboard.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62123E2513D00DCD162 /* SDL_uikitclipboard.h */; }; + A769B12923E259AE00872273 /* vulkan_xlib.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73A23E2513E00DCD162 /* vulkan_xlib.h */; }; + A769B12A23E259AE00872273 /* SDL_uikitwindow.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62723E2513D00DCD162 /* SDL_uikitwindow.h */; }; + A769B12B23E259AE00872273 /* vulkan_vi.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72F23E2513E00DCD162 /* vulkan_vi.h */; }; + A769B12E23E259AE00872273 /* default_cursor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93323E2514000DCD162 /* default_cursor.h */; }; + A769B12F23E259AE00872273 /* SDL_render_sw_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F523E2514000DCD162 /* SDL_render_sw_c.h */; }; + A769B13223E259AE00872273 /* SDL_nullvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60A23E2513D00DCD162 /* SDL_nullvideo.h */; }; + A769B13323E259AE00872273 /* SDL_blit_copy.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A76623E2513E00DCD162 /* SDL_blit_copy.h */; }; + A769B13423E259AE00872273 /* SDL_RLEaccel_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A76723E2513E00DCD162 /* SDL_RLEaccel_c.h */; }; + A769B13523E259AE00872273 /* eglplatform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72B23E2513E00DCD162 /* eglplatform.h */; }; + A769B13823E259AE00872273 /* SDL_systhread.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A77723E2513E00DCD162 /* SDL_systhread.h */; }; + A769B13B23E259AE00872273 /* SDL_cocoaclipboard.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68A23E2513E00DCD162 /* SDL_cocoaclipboard.h */; }; + A769B13C23E259AE00872273 /* SDL_cocoamodes.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69123E2513E00DCD162 /* SDL_cocoamodes.h */; }; + A769B13D23E259AE00872273 /* SDL_uikitopenglview.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62B23E2513D00DCD162 /* SDL_uikitopenglview.h */; }; + A769B13E23E259AE00872273 /* vulkan_win32.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73523E2513E00DCD162 /* vulkan_win32.h */; }; + A769B13F23E259AE00872273 /* SDL_offscreenframebuffer_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5F423E2513D00DCD162 /* SDL_offscreenframebuffer_c.h */; }; + A769B14023E259AE00872273 /* SDL_displayevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93123E2514000DCD162 /* SDL_displayevents_c.h */; }; + A769B14123E259AE00872273 /* SDL_timer_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5E023E2513D00DCD162 /* SDL_timer_c.h */; }; + A769B14223E259AE00872273 /* gl2.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72423E2513E00DCD162 /* gl2.h */; }; + A769B14323E259AE00872273 /* SDL_sysmutex_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A78823E2513E00DCD162 /* SDL_sysmutex_c.h */; }; + A769B14423E259AE00872273 /* scancodes_windows.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A92C23E2514000DCD162 /* scancodes_windows.h */; }; + A769B14523E259AE00872273 /* SDL_rwopsbundlesupport.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7DD23E2513F00DCD162 /* SDL_rwopsbundlesupport.h */; }; + A769B14623E259AE00872273 /* SDL_syspower.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7F423E2513F00DCD162 /* SDL_syspower.h */; }; + A769B14723E259AE00872273 /* vulkan_macos.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73623E2513E00DCD162 /* vulkan_macos.h */; }; + A769B14823E259AE00872273 /* vulkan_xcb.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73823E2513E00DCD162 /* vulkan_xcb.h */; }; + A769B14923E259AE00872273 /* vulkan_ios.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73B23E2513E00DCD162 /* vulkan_ios.h */; }; + A769B14A23E259AE00872273 /* SDL_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A58323E2513D00DCD162 /* SDL_internal.h */; }; + A769B14E23E259AE00872273 /* vulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73023E2513E00DCD162 /* vulkan.h */; }; + A769B14F23E259AE00872273 /* SDL_keyboard_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93D23E2514000DCD162 /* SDL_keyboard_c.h */; }; + A769B15323E259AE00872273 /* SDL_mouse_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A92B23E2514000DCD162 /* SDL_mouse_c.h */; }; + A769B15423E259AE00872273 /* SDL_blit_auto.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73F23E2513E00DCD162 /* SDL_blit_auto.h */; }; + A769B15523E259AE00872273 /* SDL_blendline.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F223E2514000DCD162 /* SDL_blendline.h */; }; + A769B15623E259AE00872273 /* SDL_syshaptic.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5CC23E2513D00DCD162 /* SDL_syshaptic.h */; }; + A769B15723E259AE00872273 /* SDL_vulkan_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A63E23E2513D00DCD162 /* SDL_vulkan_internal.h */; }; + A769B15923E259AE00872273 /* SDL_cocoaevents.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69623E2513E00DCD162 /* SDL_cocoaevents.h */; }; + A769B15A23E259AE00872273 /* vk_icd.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72E23E2513E00DCD162 /* vk_icd.h */; }; + A769B15B23E259AE00872273 /* SDL_nullframebuffer_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60723E2513D00DCD162 /* SDL_nullframebuffer_c.h */; }; + A769B15D23E259AE00872273 /* SDL_dynapi_procs.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5DB23E2513D00DCD162 /* SDL_dynapi_procs.h */; }; + A769B15E23E259AE00872273 /* vulkan_fuchsia.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73323E2513E00DCD162 /* vulkan_fuchsia.h */; }; + A769B16123E259AE00872273 /* usb_ids.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7CB23E2513E00DCD162 /* usb_ids.h */; }; + A769B16323E259AE00872273 /* SDL_gles2funcs.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A90623E2514000DCD162 /* SDL_gles2funcs.h */; }; + A769B16923E259AE00872273 /* SDL_sysvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A61723E2513D00DCD162 /* SDL_sysvideo.h */; }; + A769B16D23E259AE00872273 /* SDL_dynapi_overrides.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5D923E2513D00DCD162 /* SDL_dynapi_overrides.h */; }; + A769B16E23E259AE00872273 /* SDL_cocoawindow.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69223E2513E00DCD162 /* SDL_cocoawindow.h */; }; + A769B17123E259AE00872273 /* SDL_drawline.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8F123E2514000DCD162 /* SDL_drawline.c */; }; + A769B17223E259AE00872273 /* SDL_yuv.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A67C23E2513E00DCD162 /* SDL_yuv.c */; }; + A769B17323E259AE00872273 /* SDL_sysfilesystem.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7FE23E2513F00DCD162 /* SDL_sysfilesystem.m */; }; + A769B17423E259AE00872273 /* e_pow.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91C23E2514000DCD162 /* e_pow.c */; }; + A769B17523E259AE00872273 /* SDL_systls.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A78223E2513E00DCD162 /* SDL_systls.c */; }; + A769B17623E259AE00872273 /* SDL_vulkan_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A64023E2513D00DCD162 /* SDL_vulkan_utils.c */; }; + A769B17723E259AE00872273 /* SDL_spinlock.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A57323E2513D00DCD162 /* SDL_spinlock.c */; }; + A769B17823E259AE00872273 /* s_atan.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91823E2514000DCD162 /* s_atan.c */; }; + A769B17923E259AE00872273 /* SDL_sysloadso.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A85F23E2513F00DCD162 /* SDL_sysloadso.c */; }; + A769B17A23E259AE00872273 /* SDL_render_metal.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8DE23E2514000DCD162 /* SDL_render_metal.m */; }; + A769B17B23E259AE00872273 /* SDL_clipboard.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A67B23E2513E00DCD162 /* SDL_clipboard.c */; }; + A769B17C23E259AE00872273 /* SDL_cocoaevents.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68923E2513E00DCD162 /* SDL_cocoaevents.m */; }; + A769B17E23E259AE00872273 /* SDL_audiocvt.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8A123E2513F00DCD162 /* SDL_audiocvt.c */; }; + A769B17F23E259AE00872273 /* SDL_shape.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A76923E2513E00DCD162 /* SDL_shape.c */; }; + A769B18023E259AE00872273 /* SDL_rotate.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8F423E2514000DCD162 /* SDL_rotate.c */; }; + A769B18123E259AE00872273 /* SDL_coremotionsensor.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A57C23E2513D00DCD162 /* SDL_coremotionsensor.m */; }; + A769B18223E259AE00872273 /* SDL_touch.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93E23E2514000DCD162 /* SDL_touch.c */; }; + A769B18523E259AE00872273 /* SDL_uikitmessagebox.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61B23E2513D00DCD162 /* SDL_uikitmessagebox.m */; }; + A769B18623E259AE00872273 /* SDL_thread.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A77923E2513E00DCD162 /* SDL_thread.c */; }; + A769B18723E259AE00872273 /* SDL_hidapi_xbox360w.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C823E2513E00DCD162 /* SDL_hidapi_xbox360w.c */; }; + A769B18823E259AE00872273 /* SDL_atomic.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A57423E2513D00DCD162 /* SDL_atomic.c */; }; + A769B18923E259AE00872273 /* SDL_displayevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92D23E2514000DCD162 /* SDL_displayevents.c */; }; + A769B18B23E259AE00872273 /* SDL_log.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5DD23E2513D00DCD162 /* SDL_log.c */; }; + A769B18C23E259AE00872273 /* SDL_cocoaopengl.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A67F23E2513E00DCD162 /* SDL_cocoaopengl.m */; }; + A769B18D23E259AE00872273 /* SDL_offscreenframebuffer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5F223E2513D00DCD162 /* SDL_offscreenframebuffer.c */; }; + A769B18F23E259AE00872273 /* SDL_render_gles.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A90123E2514000DCD162 /* SDL_render_gles.c */; }; + A769B19023E259AE00872273 /* SDL_systhread.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A78623E2513E00DCD162 /* SDL_systhread.c */; }; + A769B19123E259AE00872273 /* SDL_windowevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92F23E2514000DCD162 /* SDL_windowevents.c */; }; + A769B19223E259AE00872273 /* s_scalbn.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91A23E2514000DCD162 /* s_scalbn.c */; }; + A769B19323E259AE00872273 /* SDL_timer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5DF23E2513D00DCD162 /* SDL_timer.c */; }; + A769B19423E259AE00872273 /* SDL_blendpoint.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8F023E2514000DCD162 /* SDL_blendpoint.c */; }; + A769B19523E259AE00872273 /* SDL_gamecontroller.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7AD23E2513E00DCD162 /* SDL_gamecontroller.c */; }; + A769B19623E259AE00872273 /* SDL_systimer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5E223E2513D00DCD162 /* SDL_systimer.c */; }; + A769B19723E259AE00872273 /* SDL_uikitclipboard.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62A23E2513D00DCD162 /* SDL_uikitclipboard.m */; }; + A769B19823E259AE00872273 /* SDL_render_sw.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8F923E2514000DCD162 /* SDL_render_sw.c */; }; + A769B19A23E259AE00872273 /* SDL_syssem.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A78323E2513E00DCD162 /* SDL_syssem.c */; }; + A769B19B23E259AE00872273 /* SDL_hidapi_xbox360.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C223E2513E00DCD162 /* SDL_hidapi_xbox360.c */; }; + A769B19C23E259AE00872273 /* SDL_coreaudio.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8BB23E2513F00DCD162 /* SDL_coreaudio.m */; }; + A769B19D23E259AE00872273 /* SDL_blendline.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8FB23E2514000DCD162 /* SDL_blendline.c */; }; + A769B19E23E259AE00872273 /* SDL_blit_A.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A66423E2513E00DCD162 /* SDL_blit_A.c */; }; + A769B19F23E259AE00872273 /* SDL_d3dmath.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8FF23E2514000DCD162 /* SDL_d3dmath.c */; }; + A769B1A123E259AE00872273 /* SDL_nullvideo.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60823E2513D00DCD162 /* SDL_nullvideo.c */; }; + A769B1A223E259AE00872273 /* SDL_offscreenevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5F023E2513D00DCD162 /* SDL_offscreenevents.c */; }; + A769B1A323E259AE00872273 /* SDL_uikitview.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62923E2513D00DCD162 /* SDL_uikitview.m */; }; + A769B1A423E259AE00872273 /* SDL_nullevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60923E2513D00DCD162 /* SDL_nullevents.c */; }; + A769B1A523E259AE00872273 /* SDL_audiodev.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A88F23E2513F00DCD162 /* SDL_audiodev.c */; }; + A769B1A623E259AE00872273 /* SDL_cocoaclipboard.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A69523E2513E00DCD162 /* SDL_cocoaclipboard.m */; }; + A769B1A723E259AE00872273 /* SDL_blit_slow.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60223E2513D00DCD162 /* SDL_blit_slow.c */; }; + A769B1A823E259AE00872273 /* s_copysign.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91423E2514000DCD162 /* s_copysign.c */; }; + A769B1A923E259AE00872273 /* SDL_haptic.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5C523E2513D00DCD162 /* SDL_haptic.c */; }; + A769B1AA23E259AE00872273 /* SDL_uikitvulkan.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62523E2513D00DCD162 /* SDL_uikitvulkan.m */; }; + A769B1AC23E259AE00872273 /* SDL_cocoametalview.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A69923E2513E00DCD162 /* SDL_cocoametalview.m */; }; + A769B1AD23E259AE00872273 /* SDL_audiotypecvt.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8A023E2513F00DCD162 /* SDL_audiotypecvt.c */; }; + A769B1AE23E259AE00872273 /* SDL_uikitevents.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61C23E2513D00DCD162 /* SDL_uikitevents.m */; }; + A769B1AF23E259AE00872273 /* SDL_uikitmodes.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62C23E2513D00DCD162 /* SDL_uikitmodes.m */; }; + A769B1B023E259AE00872273 /* SDL_blit_N.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A64223E2513D00DCD162 /* SDL_blit_N.c */; }; + A769B1B123E259AE00872273 /* SDL_dropevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93B23E2514000DCD162 /* SDL_dropevents.c */; }; + A769B1B223E259AE00872273 /* e_atan2.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91D23E2514000DCD162 /* e_atan2.c */; }; + A769B1B323E259AE00872273 /* s_sin.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91223E2514000DCD162 /* s_sin.c */; }; + A769B1B423E259AE00872273 /* SDL_power.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7E723E2513F00DCD162 /* SDL_power.c */; }; + A769B1B523E259AE00872273 /* SDL_cocoakeyboard.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68C23E2513E00DCD162 /* SDL_cocoakeyboard.m */; }; + A769B1B623E259AE00872273 /* SDL_dynapi.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5DA23E2513D00DCD162 /* SDL_dynapi.c */; }; + A769B1B723E259AE00872273 /* SDL_shaders_gl.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91023E2514000DCD162 /* SDL_shaders_gl.c */; }; + A769B1B823E259AE00872273 /* e_log.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92323E2514000DCD162 /* e_log.c */; }; + A769B1B923E259AE00872273 /* SDL_cocoamessagebox.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68B23E2513E00DCD162 /* SDL_cocoamessagebox.m */; }; + A769B1BA23E259AE00872273 /* SDL_blendfillrect.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8FD23E2514000DCD162 /* SDL_blendfillrect.c */; }; + A769B1BB23E259AE00872273 /* SDL_uikitvideo.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A63223E2513D00DCD162 /* SDL_uikitvideo.m */; }; + A769B1BC23E259AE00872273 /* SDL_cocoashape.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68E23E2513E00DCD162 /* SDL_cocoashape.m */; }; + A769B1BD23E259AE00872273 /* SDL_cocoamouse.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68723E2513E00DCD162 /* SDL_cocoamouse.m */; }; + A769B1BE23E259AE00872273 /* SDL_error.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8BF23E2513F00DCD162 /* SDL_error.c */; }; + A769B1BF23E259AE00872273 /* SDL_blit.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A64C23E2513D00DCD162 /* SDL_blit.c */; }; + A769B1C023E259AE00872273 /* SDL_rwops.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7DB23E2513F00DCD162 /* SDL_rwops.c */; }; + A769B1C123E259AE00872273 /* SDL_uikitviewcontroller.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A63023E2513D00DCD162 /* SDL_uikitviewcontroller.m */; }; + A769B1C223E259AE00872273 /* s_cos.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91323E2514000DCD162 /* s_cos.c */; }; + A769B1C323E259AE00872273 /* SDL_steamcontroller.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7A723E2513E00DCD162 /* SDL_steamcontroller.c */; }; + A769B1C423E259AE00872273 /* SDL_yuv_sw.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8ED23E2514000DCD162 /* SDL_yuv_sw.c */; }; + A769B1C523E259AE00872273 /* SDL_wave.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A86623E2513F00DCD162 /* SDL_wave.c */; }; + A769B1C623E259AE00872273 /* s_tan.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91E23E2514000DCD162 /* s_tan.c */; }; + A769B1C723E259AE00872273 /* SDL_hints.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5AB23E2513D00DCD162 /* SDL_hints.c */; }; + A769B1C823E259AE00872273 /* SDL_hidapi_ps4.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C323E2513E00DCD162 /* SDL_hidapi_ps4.c */; }; + A769B1C923E259AE00872273 /* SDL_pixels.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A64D23E2513D00DCD162 /* SDL_pixels.c */; }; + A769B1CB23E259AE00872273 /* SDL_sysloadso.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A86323E2513F00DCD162 /* SDL_sysloadso.c */; }; + A769B1CD23E259AE00872273 /* SDL_syspower.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7EB23E2513F00DCD162 /* SDL_syspower.c */; }; + A769B1CF23E259AE00872273 /* SDL_iconv.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D323E2514000DCD162 /* SDL_iconv.c */; }; + A769B1D023E259AE00872273 /* s_fabs.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91523E2514000DCD162 /* s_fabs.c */; }; + A769B1D323E259AE00872273 /* SDL_shaders_metal.metal in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8E023E2514000DCD162 /* SDL_shaders_metal.metal */; }; + A769B1D423E259AE00872273 /* SDL_uikitwindow.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61A23E2513D00DCD162 /* SDL_uikitwindow.m */; }; + A769B1D523E259AE00872273 /* SDL_render.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8DB23E2514000DCD162 /* SDL_render.c */; }; + A769B1D623E259AE00872273 /* SDL_stretch.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60323E2513D00DCD162 /* SDL_stretch.c */; }; + A769B1D723E259AE00872273 /* s_floor.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92523E2514000DCD162 /* s_floor.c */; }; + A769B1D823E259AE00872273 /* SDL_blit_copy.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61623E2513D00DCD162 /* SDL_blit_copy.c */; }; + A769B1D923E259AE00872273 /* e_fmod.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92023E2514000DCD162 /* e_fmod.c */; }; + A769B1DA23E259AE00872273 /* SDL_syspower.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7E123E2513F00DCD162 /* SDL_syspower.m */; }; + A769B1DB23E259AE00872273 /* e_log10.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92223E2514000DCD162 /* e_log10.c */; }; + A769B1DC23E259AE00872273 /* SDL_uikitopenglview.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62023E2513D00DCD162 /* SDL_uikitopenglview.m */; }; + A769B1DD23E259AE00872273 /* SDL_mixer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A86523E2513F00DCD162 /* SDL_mixer.c */; }; + A769B1DE23E259AE00872273 /* SDL_events.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93523E2514000DCD162 /* SDL_events.c */; }; + A769B1DF23E259AE00872273 /* SDL_blit_0.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A66223E2513E00DCD162 /* SDL_blit_0.c */; }; + A769B1E023E259AE00872273 /* k_tan.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92723E2514000DCD162 /* k_tan.c */; }; + A769B1E223E259AE00872273 /* SDL_diskaudio.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8B123E2513F00DCD162 /* SDL_diskaudio.c */; }; + A769B1E423E259AE00872273 /* SDL_egl.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A6B623E2513E00DCD162 /* SDL_egl.c */; }; + A769B1E523E259AE00872273 /* SDL_RLEaccel.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61523E2513D00DCD162 /* SDL_RLEaccel.c */; }; + A769B1E723E259AE00872273 /* SDL_assert.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A94423E2514000DCD162 /* SDL_assert.c */; }; + A769B1E823E259AE00872273 /* SDL_bmp.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A77323E2513E00DCD162 /* SDL_bmp.c */; }; + A769B1E923E259AE00872273 /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5B023E2513D00DCD162 /* SDL_uikit_main.c */; }; + A769B1EA23E259AE00872273 /* SDL_stdlib.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D823E2514000DCD162 /* SDL_stdlib.c */; }; + A769B1EB23E259AE00872273 /* SDL_dummyaudio.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A87223E2513F00DCD162 /* SDL_dummyaudio.c */; }; + A769B1EC23E259AE00872273 /* SDL_fillrect.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A76823E2513E00DCD162 /* SDL_fillrect.c */; }; + A769B1ED23E259AE00872273 /* SDL_nullframebuffer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60623E2513D00DCD162 /* SDL_nullframebuffer.c */; }; + A769B1EE23E259AE00872273 /* SDL_dummysensor.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A57923E2513D00DCD162 /* SDL_dummysensor.c */; }; + A769B1EF23E259AE00872273 /* SDL_string.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D523E2514000DCD162 /* SDL_string.c */; }; + A769B1F023E259AE00872273 /* SDL_render_gl.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A90F23E2514000DCD162 /* SDL_render_gl.c */; }; + A769B1F123E259AE00872273 /* SDL_uikitopengles.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62323E2513D00DCD162 /* SDL_uikitopengles.m */; }; + A769B1F323E259AE00872273 /* SDL_cocoamodes.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68123E2513E00DCD162 /* SDL_cocoamodes.m */; }; + A769B1F423E259AE00872273 /* k_rem_pio2.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91623E2514000DCD162 /* k_rem_pio2.c */; }; + A769B1F623E259AE00872273 /* SDL_gesture.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A94023E2514000DCD162 /* SDL_gesture.c */; }; + A769B1F723E259AE00872273 /* SDL_getenv.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D423E2514000DCD162 /* SDL_getenv.c */; }; + A769B1F823E259AE00872273 /* SDL_hidapi_gamecube.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C923E2513E00DCD162 /* SDL_hidapi_gamecube.c */; }; + A769B1F923E259AE00872273 /* SDL_joystick.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7A923E2513E00DCD162 /* SDL_joystick.c */; }; + A769B1FA23E259AE00872273 /* SDL_render_gles2.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A90423E2514000DCD162 /* SDL_render_gles2.c */; }; + A769B1FB23E259AE00872273 /* SDL_surface.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61423E2513D00DCD162 /* SDL_surface.c */; }; + A769B1FC23E259AE00872273 /* SDL_hidapi_xboxone.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C523E2513E00DCD162 /* SDL_hidapi_xboxone.c */; }; + A769B1FD23E259AE00872273 /* SDL_blit_auto.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A63F23E2513D00DCD162 /* SDL_blit_auto.c */; }; + A769B1FF23E259AE00872273 /* SDL_keyboard.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93823E2514000DCD162 /* SDL_keyboard.c */; }; + A769B20123E259AE00872273 /* SDL_rect.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A63423E2513D00DCD162 /* SDL_rect.c */; }; + A769B20223E259AE00872273 /* SDL_cocoaopengles.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68223E2513E00DCD162 /* SDL_cocoaopengles.m */; }; + A769B20323E259AE00872273 /* SDL_qsort.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D723E2514000DCD162 /* SDL_qsort.c */; }; + A769B20423E259AE00872273 /* SDL_hidapi_switch.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C623E2513E00DCD162 /* SDL_hidapi_switch.c */; }; + A769B20523E259AE00872273 /* SDL_strtokr.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D623E2514000DCD162 /* SDL_strtokr.c */; }; + A769B20623E259AE00872273 /* SDL_clipboardevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93A23E2514000DCD162 /* SDL_clipboardevents.c */; }; + A769B20823E259AE00872273 /* k_cos.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91923E2514000DCD162 /* k_cos.c */; }; + A769B20923E259AE00872273 /* SDL_hidapijoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C423E2513E00DCD162 /* SDL_hidapijoystick.c */; }; + A769B20A23E259AE00872273 /* SDL_malloc.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D923E2514000DCD162 /* SDL_malloc.c */; }; + A769B20B23E259AE00872273 /* SDL_audio.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8B823E2513F00DCD162 /* SDL_audio.c */; }; + A769B20C23E259AE00872273 /* SDL_sysfilesystem.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7F823E2513F00DCD162 /* SDL_sysfilesystem.c */; }; + A769B20D23E259AE00872273 /* SDL_offscreenvideo.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5F623E2513D00DCD162 /* SDL_offscreenvideo.c */; }; + A769B20E23E259AE00872273 /* SDL_syscond.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A78523E2513E00DCD162 /* SDL_syscond.c */; }; + A769B20F23E259AE00872273 /* SDL_syshaptic.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5CE23E2513D00DCD162 /* SDL_syshaptic.c */; }; + A769B21023E259AE00872273 /* e_exp.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92123E2514000DCD162 /* e_exp.c */; }; + A769B21123E259AE00872273 /* SDL_quit.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93C23E2514000DCD162 /* SDL_quit.c */; }; + A769B21223E259AE00872273 /* SDL_cocoawindow.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68423E2513E00DCD162 /* SDL_cocoawindow.m */; }; + A769B21323E259AE00872273 /* SDL_sysmutex.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A78723E2513E00DCD162 /* SDL_sysmutex.c */; }; + A769B21423E259AE00872273 /* SDL_syshaptic.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5C423E2513D00DCD162 /* SDL_syshaptic.c */; }; + A769B21523E259AE00872273 /* SDL_rwopsbundlesupport.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7DE23E2513F00DCD162 /* SDL_rwopsbundlesupport.m */; }; + A769B21623E259AE00872273 /* SDL_video.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60E23E2513D00DCD162 /* SDL_video.c */; }; + A769B21823E259AE00872273 /* SDL_uikitmetalview.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62E23E2513D00DCD162 /* SDL_uikitmetalview.m */; }; + A769B21923E259AE00872273 /* SDL_shaders_gles2.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A90723E2514000DCD162 /* SDL_shaders_gles2.c */; }; + A769B21A23E259AE00872273 /* SDL_blit_1.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A6FA23E2513E00DCD162 /* SDL_blit_1.c */; }; + A769B21C23E259AE00872273 /* SDL_mouse.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92A23E2514000DCD162 /* SDL_mouse.c */; }; + A769B21D23E259AE00872273 /* e_rem_pio2.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91F23E2514000DCD162 /* e_rem_pio2.c */; }; + A769B21E23E259AE00872273 /* SDL_dataqueue.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92823E2514000DCD162 /* SDL_dataqueue.c */; }; + A769B21F23E259AE00872273 /* SDL_sysjoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7A023E2513E00DCD162 /* SDL_sysjoystick.c */; }; + A769B22023E259AE00872273 /* SDL_cpuinfo.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A77523E2513E00DCD162 /* SDL_cpuinfo.c */; }; + A769B22123E259AE00872273 /* SDL_sensor.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A58223E2513D00DCD162 /* SDL_sensor.c */; }; + A769B22323E259AE00872273 /* k_sin.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91723E2514000DCD162 /* k_sin.c */; }; + A769B22523E259AE00872273 /* SDL_systimer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5E823E2513D00DCD162 /* SDL_systimer.c */; }; + A769B22623E259AE00872273 /* SDL_drawpoint.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8FC23E2514000DCD162 /* SDL_drawpoint.c */; }; + A769B22723E259AE00872273 /* e_sqrt.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92423E2514000DCD162 /* e_sqrt.c */; }; + A769B22823E259AE00872273 /* SDL_cocoavideo.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68523E2513E00DCD162 /* SDL_cocoavideo.m */; }; + A769B22923E259AE00872273 /* SDL.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A57123E2513D00DCD162 /* SDL.c */; }; + A769B22B23E259AE00872273 /* SDL_cocoavulkan.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68323E2513E00DCD162 /* SDL_cocoavulkan.m */; }; + A769B22C23E259AE00872273 /* SDL_uikitappdelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61E23E2513D00DCD162 /* SDL_uikitappdelegate.m */; }; + A769B22D23E259AE00872273 /* SDL_offscreenwindow.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5EF23E2513D00DCD162 /* SDL_offscreenwindow.c */; }; + A77E6EB4167AB0A90010E40B /* SDL_gamecontroller.h in Headers */ = {isa = PBXBuildFile; fileRef = A77E6EB3167AB0A90010E40B /* SDL_gamecontroller.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A1623E2437C00DCD162 /* begin_code.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557C71595D4D800BBD41B /* begin_code.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A1823E2437C00DCD162 /* close_code.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557C81595D4D800BBD41B /* close_code.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A1923E2437C00DCD162 /* SDL.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F91595D4D800BBD41B /* SDL.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A1A23E2437C00DCD162 /* SDL_assert.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557C91595D4D800BBD41B /* SDL_assert.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A1B23E2437C00DCD162 /* SDL_atomic.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557CA1595D4D800BBD41B /* SDL_atomic.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A1D23E2437C00DCD162 /* SDL_audio.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557CB1595D4D800BBD41B /* SDL_audio.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A1E23E2437C00DCD162 /* SDL_bits.h in Headers */ = {isa = PBXBuildFile; fileRef = AADA5B8616CCAB3000107CF7 /* SDL_bits.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A1F23E2437C00DCD162 /* SDL_blendmode.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557CC1595D4D800BBD41B /* SDL_blendmode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A2023E2437C00DCD162 /* SDL_egl.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C2EF7001FC9EF0F003F5197 /* SDL_egl.h */; }; + A7D88A2123E2437C00DCD162 /* SDL_clipboard.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557CD1595D4D800BBD41B /* SDL_clipboard.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A2323E2437C00DCD162 /* SDL_config.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557CF1595D4D800BBD41B /* SDL_config.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A2523E2437C00DCD162 /* SDL_copying.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D01595D4D800BBD41B /* SDL_copying.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A2623E2437C00DCD162 /* SDL_cpuinfo.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D11595D4D800BBD41B /* SDL_cpuinfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A2723E2437C00DCD162 /* SDL_endian.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D21595D4D800BBD41B /* SDL_endian.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A2823E2437C00DCD162 /* SDL_error.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D31595D4D800BBD41B /* SDL_error.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A2923E2437C00DCD162 /* SDL_events.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D41595D4D800BBD41B /* SDL_events.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A2A23E2437C00DCD162 /* SDL_filesystem.h in Headers */ = {isa = PBXBuildFile; fileRef = 567E2F2017C44C35005F1892 /* SDL_filesystem.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A2B23E2437C00DCD162 /* SDL_gamecontroller.h in Headers */ = {isa = PBXBuildFile; fileRef = A77E6EB3167AB0A90010E40B /* SDL_gamecontroller.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A2C23E2437C00DCD162 /* SDL_gesture.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D51595D4D800BBD41B /* SDL_gesture.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A2D23E2437C00DCD162 /* SDL_haptic.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D61595D4D800BBD41B /* SDL_haptic.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A2E23E2437C00DCD162 /* SDL_hints.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D71595D4D800BBD41B /* SDL_hints.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A2F23E2437C00DCD162 /* SDL_joystick.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D91595D4D800BBD41B /* SDL_joystick.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A3023E2437C00DCD162 /* SDL_keyboard.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557DA1595D4D800BBD41B /* SDL_keyboard.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A3123E2437C00DCD162 /* SDL_sensor.h in Headers */ = {isa = PBXBuildFile; fileRef = F3950CD7212BC88D00F51292 /* SDL_sensor.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A3223E2437C00DCD162 /* SDL_metal.h in Headers */ = {isa = PBXBuildFile; fileRef = FA24348A21D41FFB00B8918A /* SDL_metal.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A3323E2437C00DCD162 /* SDL_keycode.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557DB1595D4D800BBD41B /* SDL_keycode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A3523E2437C00DCD162 /* SDL_loadso.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557DC1595D4D800BBD41B /* SDL_loadso.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A3623E2437C00DCD162 /* SDL_log.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557DD1595D4D800BBD41B /* SDL_log.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A3823E2437C00DCD162 /* SDL_main.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557DE1595D4D800BBD41B /* SDL_main.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A3923E2437C00DCD162 /* SDL_messagebox.h in Headers */ = {isa = PBXBuildFile; fileRef = AA9FF9591637CBF9000DF050 /* SDL_messagebox.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A3A23E2437C00DCD162 /* SDL_mouse.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557DF1595D4D800BBD41B /* SDL_mouse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A3B23E2437C00DCD162 /* SDL_mutex.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E01595D4D800BBD41B /* SDL_mutex.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A3C23E2437C00DCD162 /* SDL_name.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E11595D4D800BBD41B /* SDL_name.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A3D23E2437C00DCD162 /* SDL_opengl.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E21595D4D800BBD41B /* SDL_opengl.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A3E23E2437C00DCD162 /* SDL_opengl_glext.h in Headers */ = {isa = PBXBuildFile; fileRef = AAC070F4195606770073DCDF /* SDL_opengl_glext.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A3F23E2437C00DCD162 /* SDL_opengles.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E31595D4D800BBD41B /* SDL_opengles.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A4023E2437C00DCD162 /* SDL_opengles2.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E41595D4D800BBD41B /* SDL_opengles2.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A4123E2437C00DCD162 /* SDL_opengles2_gl2.h in Headers */ = {isa = PBXBuildFile; fileRef = AAC070F5195606770073DCDF /* SDL_opengles2_gl2.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A4223E2437C00DCD162 /* SDL_opengles2_gl2ext.h in Headers */ = {isa = PBXBuildFile; fileRef = AAC070F6195606770073DCDF /* SDL_opengles2_gl2ext.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A4323E2437C00DCD162 /* SDL_opengles2_gl2platform.h in Headers */ = {isa = PBXBuildFile; fileRef = AAC070F7195606770073DCDF /* SDL_opengles2_gl2platform.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A4423E2437C00DCD162 /* SDL_opengles2_khrplatform.h in Headers */ = {isa = PBXBuildFile; fileRef = AAC070F8195606770073DCDF /* SDL_opengles2_khrplatform.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A4523E2437C00DCD162 /* SDL_pixels.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E51595D4D800BBD41B /* SDL_pixels.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A4623E2437C00DCD162 /* SDL_platform.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E61595D4D800BBD41B /* SDL_platform.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A4723E2437C00DCD162 /* SDL_power.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E71595D4D800BBD41B /* SDL_power.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A4823E2437C00DCD162 /* SDL_quit.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E81595D4D800BBD41B /* SDL_quit.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A4923E2437C00DCD162 /* SDL_rect.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E91595D4D800BBD41B /* SDL_rect.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A4B23E2437C00DCD162 /* SDL_render.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557EA1595D4D800BBD41B /* SDL_render.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A4C23E2437C00DCD162 /* SDL_revision.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557EB1595D4D800BBD41B /* SDL_revision.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A4D23E2437C00DCD162 /* SDL_rwops.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557EC1595D4D800BBD41B /* SDL_rwops.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A4E23E2437C00DCD162 /* SDL_scancode.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557ED1595D4D800BBD41B /* SDL_scancode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A5023E2437C00DCD162 /* SDL_shape.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557EE1595D4D800BBD41B /* SDL_shape.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A5123E2437C00DCD162 /* SDL_stdinc.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557EF1595D4D800BBD41B /* SDL_stdinc.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A5223E2437C00DCD162 /* SDL_surface.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F01595D4D800BBD41B /* SDL_surface.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A5323E2437C00DCD162 /* SDL_system.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F11595D4D800BBD41B /* SDL_system.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A5423E2437C00DCD162 /* SDL_syswm.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F21595D4D800BBD41B /* SDL_syswm.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A5523E2437C00DCD162 /* SDL_thread.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F31595D4D800BBD41B /* SDL_thread.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A5623E2437C00DCD162 /* SDL_timer.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F41595D4D800BBD41B /* SDL_timer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A5723E2437C00DCD162 /* SDL_touch.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F51595D4D800BBD41B /* SDL_touch.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A5823E2437C00DCD162 /* SDL_types.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F61595D4D800BBD41B /* SDL_types.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A5923E2437C00DCD162 /* SDL_version.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F71595D4D800BBD41B /* SDL_version.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A5A23E2437C00DCD162 /* SDL_video.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F81595D4D800BBD41B /* SDL_video.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88A5C23E2437C00DCD162 /* SDL_vulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D4820431F0F10B400EDC31C /* SDL_vulkan.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88B4723E2437C00DCD162 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 564624371FF821CB0074AC87 /* Metal.framework */; }; + A7D88B4823E2437C00DCD162 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 564624351FF821B80074AC87 /* QuartzCore.framework */; }; + A7D88B4C23E2437C00DCD162 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7381E951D8B69D600B177DD /* CoreAudio.framework */; }; + A7D88B4D23E2437C00DCD162 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00D0D08310675DD9004B05EF /* CoreFoundation.framework */; }; + A7D88B4E23E2437C00DCD162 /* CoreVideo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA73671C19A540EF004122E4 /* CoreVideo.framework */; }; + A7D88B5023E2437C00DCD162 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0073179F0858DECD00B2BC32 /* IOKit.framework */; }; + A7D88BCC23E24BED00DCD162 /* begin_code.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557C71595D4D800BBD41B /* begin_code.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88BCE23E24BED00DCD162 /* close_code.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557C81595D4D800BBD41B /* close_code.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88BCF23E24BED00DCD162 /* SDL.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F91595D4D800BBD41B /* SDL.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88BD023E24BED00DCD162 /* SDL_assert.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557C91595D4D800BBD41B /* SDL_assert.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88BD123E24BED00DCD162 /* SDL_atomic.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557CA1595D4D800BBD41B /* SDL_atomic.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88BD423E24BED00DCD162 /* SDL_audio.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557CB1595D4D800BBD41B /* SDL_audio.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88BD523E24BED00DCD162 /* SDL_bits.h in Headers */ = {isa = PBXBuildFile; fileRef = AADA5B8616CCAB3000107CF7 /* SDL_bits.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88BD623E24BED00DCD162 /* SDL_blendmode.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557CC1595D4D800BBD41B /* SDL_blendmode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88BD723E24BED00DCD162 /* SDL_egl.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C2EF7001FC9EF0F003F5197 /* SDL_egl.h */; }; + A7D88BD823E24BED00DCD162 /* SDL_clipboard.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557CD1595D4D800BBD41B /* SDL_clipboard.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88BDA23E24BED00DCD162 /* SDL_config.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557CF1595D4D800BBD41B /* SDL_config.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88BDC23E24BED00DCD162 /* SDL_copying.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D01595D4D800BBD41B /* SDL_copying.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88BDD23E24BED00DCD162 /* SDL_cpuinfo.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D11595D4D800BBD41B /* SDL_cpuinfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88BDE23E24BED00DCD162 /* SDL_endian.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D21595D4D800BBD41B /* SDL_endian.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88BDF23E24BED00DCD162 /* SDL_error.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D31595D4D800BBD41B /* SDL_error.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88BE023E24BED00DCD162 /* SDL_events.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D41595D4D800BBD41B /* SDL_events.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88BE123E24BED00DCD162 /* SDL_filesystem.h in Headers */ = {isa = PBXBuildFile; fileRef = 567E2F2017C44C35005F1892 /* SDL_filesystem.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88BE223E24BED00DCD162 /* SDL_gamecontroller.h in Headers */ = {isa = PBXBuildFile; fileRef = A77E6EB3167AB0A90010E40B /* SDL_gamecontroller.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88BE323E24BED00DCD162 /* SDL_gesture.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D51595D4D800BBD41B /* SDL_gesture.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88BE423E24BED00DCD162 /* SDL_haptic.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D61595D4D800BBD41B /* SDL_haptic.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88BE523E24BED00DCD162 /* SDL_hints.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D71595D4D800BBD41B /* SDL_hints.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88BE623E24BED00DCD162 /* SDL_joystick.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D91595D4D800BBD41B /* SDL_joystick.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88BE723E24BED00DCD162 /* SDL_keyboard.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557DA1595D4D800BBD41B /* SDL_keyboard.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88BE923E24BED00DCD162 /* SDL_sensor.h in Headers */ = {isa = PBXBuildFile; fileRef = F3950CD7212BC88D00F51292 /* SDL_sensor.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88BEA23E24BED00DCD162 /* SDL_metal.h in Headers */ = {isa = PBXBuildFile; fileRef = FA24348A21D41FFB00B8918A /* SDL_metal.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88BEB23E24BED00DCD162 /* SDL_keycode.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557DB1595D4D800BBD41B /* SDL_keycode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88BED23E24BED00DCD162 /* SDL_loadso.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557DC1595D4D800BBD41B /* SDL_loadso.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88BEF23E24BED00DCD162 /* SDL_log.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557DD1595D4D800BBD41B /* SDL_log.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88BF123E24BED00DCD162 /* SDL_main.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557DE1595D4D800BBD41B /* SDL_main.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88BF223E24BED00DCD162 /* SDL_messagebox.h in Headers */ = {isa = PBXBuildFile; fileRef = AA9FF9591637CBF9000DF050 /* SDL_messagebox.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88BF323E24BED00DCD162 /* SDL_mouse.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557DF1595D4D800BBD41B /* SDL_mouse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88BF423E24BED00DCD162 /* SDL_mutex.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E01595D4D800BBD41B /* SDL_mutex.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88BF523E24BED00DCD162 /* SDL_name.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E11595D4D800BBD41B /* SDL_name.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88BF623E24BED00DCD162 /* SDL_opengl.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E21595D4D800BBD41B /* SDL_opengl.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88BF723E24BED00DCD162 /* SDL_opengl_glext.h in Headers */ = {isa = PBXBuildFile; fileRef = AAC070F4195606770073DCDF /* SDL_opengl_glext.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88BF823E24BED00DCD162 /* SDL_opengles.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E31595D4D800BBD41B /* SDL_opengles.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88BF923E24BED00DCD162 /* SDL_opengles2.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E41595D4D800BBD41B /* SDL_opengles2.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88BFA23E24BED00DCD162 /* SDL_opengles2_gl2.h in Headers */ = {isa = PBXBuildFile; fileRef = AAC070F5195606770073DCDF /* SDL_opengles2_gl2.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88BFB23E24BED00DCD162 /* SDL_opengles2_gl2ext.h in Headers */ = {isa = PBXBuildFile; fileRef = AAC070F6195606770073DCDF /* SDL_opengles2_gl2ext.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88BFC23E24BED00DCD162 /* SDL_opengles2_gl2platform.h in Headers */ = {isa = PBXBuildFile; fileRef = AAC070F7195606770073DCDF /* SDL_opengles2_gl2platform.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88BFD23E24BED00DCD162 /* SDL_opengles2_khrplatform.h in Headers */ = {isa = PBXBuildFile; fileRef = AAC070F8195606770073DCDF /* SDL_opengles2_khrplatform.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88BFE23E24BED00DCD162 /* SDL_pixels.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E51595D4D800BBD41B /* SDL_pixels.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88BFF23E24BED00DCD162 /* SDL_platform.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E61595D4D800BBD41B /* SDL_platform.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88C0023E24BED00DCD162 /* SDL_power.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E71595D4D800BBD41B /* SDL_power.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88C0123E24BED00DCD162 /* SDL_quit.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E81595D4D800BBD41B /* SDL_quit.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88C0223E24BED00DCD162 /* SDL_rect.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E91595D4D800BBD41B /* SDL_rect.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88C0423E24BED00DCD162 /* SDL_render.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557EA1595D4D800BBD41B /* SDL_render.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88C0523E24BED00DCD162 /* SDL_revision.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557EB1595D4D800BBD41B /* SDL_revision.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88C0723E24BED00DCD162 /* SDL_rwops.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557EC1595D4D800BBD41B /* SDL_rwops.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88C0823E24BED00DCD162 /* SDL_scancode.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557ED1595D4D800BBD41B /* SDL_scancode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88C0A23E24BED00DCD162 /* SDL_shape.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557EE1595D4D800BBD41B /* SDL_shape.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88C0C23E24BED00DCD162 /* SDL_stdinc.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557EF1595D4D800BBD41B /* SDL_stdinc.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88C0D23E24BED00DCD162 /* SDL_surface.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F01595D4D800BBD41B /* SDL_surface.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88C0E23E24BED00DCD162 /* SDL_system.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F11595D4D800BBD41B /* SDL_system.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88C0F23E24BED00DCD162 /* SDL_syswm.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F21595D4D800BBD41B /* SDL_syswm.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88C1123E24BED00DCD162 /* SDL_thread.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F31595D4D800BBD41B /* SDL_thread.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88C1223E24BED00DCD162 /* SDL_timer.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F41595D4D800BBD41B /* SDL_timer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88C1423E24BED00DCD162 /* SDL_touch.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F51595D4D800BBD41B /* SDL_touch.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88C1523E24BED00DCD162 /* SDL_types.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F61595D4D800BBD41B /* SDL_types.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88C1623E24BED00DCD162 /* SDL_version.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F71595D4D800BBD41B /* SDL_version.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88C1723E24BED00DCD162 /* SDL_video.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F81595D4D800BBD41B /* SDL_video.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88C1923E24BED00DCD162 /* SDL_vulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D4820431F0F10B400EDC31C /* SDL_vulkan.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D88D0723E24BED00DCD162 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7381E951D8B69D600B177DD /* CoreAudio.framework */; }; + A7D88D0823E24BED00DCD162 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00D0D08310675DD9004B05EF /* CoreFoundation.framework */; }; + A7D88D0B23E24BED00DCD162 /* CoreVideo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA73671C19A540EF004122E4 /* CoreVideo.framework */; }; + A7D88D0E23E24BED00DCD162 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 564624371FF821CB0074AC87 /* Metal.framework */; }; + A7D88D1023E24BED00DCD162 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 564624351FF821B80074AC87 /* QuartzCore.framework */; }; + A7D8A94523E2514000DCD162 /* SDL_dataqueue.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A57023E2513D00DCD162 /* SDL_dataqueue.h */; }; + A7D8A94623E2514000DCD162 /* SDL_dataqueue.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A57023E2513D00DCD162 /* SDL_dataqueue.h */; }; + A7D8A94723E2514000DCD162 /* SDL_dataqueue.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A57023E2513D00DCD162 /* SDL_dataqueue.h */; }; + A7D8A94823E2514000DCD162 /* SDL_dataqueue.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A57023E2513D00DCD162 /* SDL_dataqueue.h */; }; + A7D8A94923E2514000DCD162 /* SDL_dataqueue.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A57023E2513D00DCD162 /* SDL_dataqueue.h */; }; + A7D8A94A23E2514000DCD162 /* SDL_dataqueue.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A57023E2513D00DCD162 /* SDL_dataqueue.h */; }; + A7D8A94B23E2514000DCD162 /* SDL.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A57123E2513D00DCD162 /* SDL.c */; }; + A7D8A94C23E2514000DCD162 /* SDL.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A57123E2513D00DCD162 /* SDL.c */; }; + A7D8A94D23E2514000DCD162 /* SDL.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A57123E2513D00DCD162 /* SDL.c */; }; + A7D8A94E23E2514000DCD162 /* SDL.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A57123E2513D00DCD162 /* SDL.c */; }; + A7D8A94F23E2514000DCD162 /* SDL.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A57123E2513D00DCD162 /* SDL.c */; }; + A7D8A95023E2514000DCD162 /* SDL.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A57123E2513D00DCD162 /* SDL.c */; }; + A7D8A95123E2514000DCD162 /* SDL_spinlock.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A57323E2513D00DCD162 /* SDL_spinlock.c */; }; + A7D8A95223E2514000DCD162 /* SDL_spinlock.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A57323E2513D00DCD162 /* SDL_spinlock.c */; }; + A7D8A95323E2514000DCD162 /* SDL_spinlock.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A57323E2513D00DCD162 /* SDL_spinlock.c */; }; + A7D8A95423E2514000DCD162 /* SDL_spinlock.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A57323E2513D00DCD162 /* SDL_spinlock.c */; }; + A7D8A95523E2514000DCD162 /* SDL_spinlock.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A57323E2513D00DCD162 /* SDL_spinlock.c */; }; + A7D8A95623E2514000DCD162 /* SDL_spinlock.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A57323E2513D00DCD162 /* SDL_spinlock.c */; }; + A7D8A95723E2514000DCD162 /* SDL_atomic.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A57423E2513D00DCD162 /* SDL_atomic.c */; }; + A7D8A95823E2514000DCD162 /* SDL_atomic.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A57423E2513D00DCD162 /* SDL_atomic.c */; }; + A7D8A95923E2514000DCD162 /* SDL_atomic.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A57423E2513D00DCD162 /* SDL_atomic.c */; }; + A7D8A95A23E2514000DCD162 /* SDL_atomic.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A57423E2513D00DCD162 /* SDL_atomic.c */; }; + A7D8A95B23E2514000DCD162 /* SDL_atomic.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A57423E2513D00DCD162 /* SDL_atomic.c */; }; + A7D8A95C23E2514000DCD162 /* SDL_atomic.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A57423E2513D00DCD162 /* SDL_atomic.c */; }; + A7D8A95D23E2514000DCD162 /* SDL_error_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A57523E2513D00DCD162 /* SDL_error_c.h */; }; + A7D8A95E23E2514000DCD162 /* SDL_error_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A57523E2513D00DCD162 /* SDL_error_c.h */; }; + A7D8A95F23E2514000DCD162 /* SDL_error_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A57523E2513D00DCD162 /* SDL_error_c.h */; }; + A7D8A96023E2514000DCD162 /* SDL_error_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A57523E2513D00DCD162 /* SDL_error_c.h */; }; + A7D8A96123E2514000DCD162 /* SDL_error_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A57523E2513D00DCD162 /* SDL_error_c.h */; }; + A7D8A96223E2514000DCD162 /* SDL_error_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A57523E2513D00DCD162 /* SDL_error_c.h */; }; + A7D8A96323E2514000DCD162 /* SDL_dummysensor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A57823E2513D00DCD162 /* SDL_dummysensor.h */; }; + A7D8A96423E2514000DCD162 /* SDL_dummysensor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A57823E2513D00DCD162 /* SDL_dummysensor.h */; }; + A7D8A96523E2514000DCD162 /* SDL_dummysensor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A57823E2513D00DCD162 /* SDL_dummysensor.h */; }; + A7D8A96623E2514000DCD162 /* SDL_dummysensor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A57823E2513D00DCD162 /* SDL_dummysensor.h */; }; + A7D8A96723E2514000DCD162 /* SDL_dummysensor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A57823E2513D00DCD162 /* SDL_dummysensor.h */; }; + A7D8A96823E2514000DCD162 /* SDL_dummysensor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A57823E2513D00DCD162 /* SDL_dummysensor.h */; }; + A7D8A96923E2514000DCD162 /* SDL_dummysensor.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A57923E2513D00DCD162 /* SDL_dummysensor.c */; }; + A7D8A96A23E2514000DCD162 /* SDL_dummysensor.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A57923E2513D00DCD162 /* SDL_dummysensor.c */; }; + A7D8A96B23E2514000DCD162 /* SDL_dummysensor.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A57923E2513D00DCD162 /* SDL_dummysensor.c */; }; + A7D8A96C23E2514000DCD162 /* SDL_dummysensor.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A57923E2513D00DCD162 /* SDL_dummysensor.c */; }; + A7D8A96D23E2514000DCD162 /* SDL_dummysensor.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A57923E2513D00DCD162 /* SDL_dummysensor.c */; }; + A7D8A96E23E2514000DCD162 /* SDL_dummysensor.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A57923E2513D00DCD162 /* SDL_dummysensor.c */; }; + A7D8A96F23E2514000DCD162 /* SDL_coremotionsensor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A57B23E2513D00DCD162 /* SDL_coremotionsensor.h */; }; + A7D8A97023E2514000DCD162 /* SDL_coremotionsensor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A57B23E2513D00DCD162 /* SDL_coremotionsensor.h */; }; + A7D8A97123E2514000DCD162 /* SDL_coremotionsensor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A57B23E2513D00DCD162 /* SDL_coremotionsensor.h */; }; + A7D8A97223E2514000DCD162 /* SDL_coremotionsensor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A57B23E2513D00DCD162 /* SDL_coremotionsensor.h */; }; + A7D8A97323E2514000DCD162 /* SDL_coremotionsensor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A57B23E2513D00DCD162 /* SDL_coremotionsensor.h */; }; + A7D8A97423E2514000DCD162 /* SDL_coremotionsensor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A57B23E2513D00DCD162 /* SDL_coremotionsensor.h */; }; + A7D8A97523E2514000DCD162 /* SDL_coremotionsensor.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A57C23E2513D00DCD162 /* SDL_coremotionsensor.m */; }; + A7D8A97623E2514000DCD162 /* SDL_coremotionsensor.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A57C23E2513D00DCD162 /* SDL_coremotionsensor.m */; }; + A7D8A97723E2514000DCD162 /* SDL_coremotionsensor.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A57C23E2513D00DCD162 /* SDL_coremotionsensor.m */; }; + A7D8A97823E2514000DCD162 /* SDL_coremotionsensor.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A57C23E2513D00DCD162 /* SDL_coremotionsensor.m */; }; + A7D8A97923E2514000DCD162 /* SDL_coremotionsensor.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A57C23E2513D00DCD162 /* SDL_coremotionsensor.m */; }; + A7D8A97A23E2514000DCD162 /* SDL_coremotionsensor.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A57C23E2513D00DCD162 /* SDL_coremotionsensor.m */; }; + A7D8A97B23E2514000DCD162 /* SDL_syssensor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A57D23E2513D00DCD162 /* SDL_syssensor.h */; }; + A7D8A97C23E2514000DCD162 /* SDL_syssensor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A57D23E2513D00DCD162 /* SDL_syssensor.h */; }; + A7D8A97D23E2514000DCD162 /* SDL_syssensor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A57D23E2513D00DCD162 /* SDL_syssensor.h */; }; + A7D8A97E23E2514000DCD162 /* SDL_syssensor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A57D23E2513D00DCD162 /* SDL_syssensor.h */; }; + A7D8A97F23E2514000DCD162 /* SDL_syssensor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A57D23E2513D00DCD162 /* SDL_syssensor.h */; }; + A7D8A98023E2514000DCD162 /* SDL_syssensor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A57D23E2513D00DCD162 /* SDL_syssensor.h */; }; + A7D8A98D23E2514000DCD162 /* SDL_sensor_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A58123E2513D00DCD162 /* SDL_sensor_c.h */; }; + A7D8A98E23E2514000DCD162 /* SDL_sensor_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A58123E2513D00DCD162 /* SDL_sensor_c.h */; }; + A7D8A98F23E2514000DCD162 /* SDL_sensor_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A58123E2513D00DCD162 /* SDL_sensor_c.h */; }; + A7D8A99023E2514000DCD162 /* SDL_sensor_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A58123E2513D00DCD162 /* SDL_sensor_c.h */; }; + A7D8A99123E2514000DCD162 /* SDL_sensor_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A58123E2513D00DCD162 /* SDL_sensor_c.h */; }; + A7D8A99223E2514000DCD162 /* SDL_sensor_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A58123E2513D00DCD162 /* SDL_sensor_c.h */; }; + A7D8A99323E2514000DCD162 /* SDL_sensor.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A58223E2513D00DCD162 /* SDL_sensor.c */; }; + A7D8A99423E2514000DCD162 /* SDL_sensor.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A58223E2513D00DCD162 /* SDL_sensor.c */; }; + A7D8A99523E2514000DCD162 /* SDL_sensor.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A58223E2513D00DCD162 /* SDL_sensor.c */; }; + A7D8A99623E2514000DCD162 /* SDL_sensor.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A58223E2513D00DCD162 /* SDL_sensor.c */; }; + A7D8A99723E2514000DCD162 /* SDL_sensor.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A58223E2513D00DCD162 /* SDL_sensor.c */; }; + A7D8A99823E2514000DCD162 /* SDL_sensor.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A58223E2513D00DCD162 /* SDL_sensor.c */; }; + A7D8A99923E2514000DCD162 /* SDL_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A58323E2513D00DCD162 /* SDL_internal.h */; }; + A7D8A99A23E2514000DCD162 /* SDL_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A58323E2513D00DCD162 /* SDL_internal.h */; }; + A7D8A99B23E2514000DCD162 /* SDL_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A58323E2513D00DCD162 /* SDL_internal.h */; }; + A7D8A99C23E2514000DCD162 /* SDL_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A58323E2513D00DCD162 /* SDL_internal.h */; }; + A7D8A99D23E2514000DCD162 /* SDL_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A58323E2513D00DCD162 /* SDL_internal.h */; }; + A7D8A99E23E2514000DCD162 /* SDL_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A58323E2513D00DCD162 /* SDL_internal.h */; }; + A7D8AA6523E2514000DCD162 /* SDL_hints.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5AB23E2513D00DCD162 /* SDL_hints.c */; }; + A7D8AA6623E2514000DCD162 /* SDL_hints.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5AB23E2513D00DCD162 /* SDL_hints.c */; }; + A7D8AA6723E2514000DCD162 /* SDL_hints.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5AB23E2513D00DCD162 /* SDL_hints.c */; }; + A7D8AA6823E2514000DCD162 /* SDL_hints.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5AB23E2513D00DCD162 /* SDL_hints.c */; }; + A7D8AA6923E2514000DCD162 /* SDL_hints.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5AB23E2513D00DCD162 /* SDL_hints.c */; }; + A7D8AA6A23E2514000DCD162 /* SDL_hints.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5AB23E2513D00DCD162 /* SDL_hints.c */; }; + A7D8AAB023E2514100DCD162 /* SDL_syshaptic.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5C423E2513D00DCD162 /* SDL_syshaptic.c */; }; + A7D8AAB123E2514100DCD162 /* SDL_syshaptic.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5C423E2513D00DCD162 /* SDL_syshaptic.c */; }; + A7D8AAB223E2514100DCD162 /* SDL_syshaptic.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5C423E2513D00DCD162 /* SDL_syshaptic.c */; }; + A7D8AAB323E2514100DCD162 /* SDL_syshaptic.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5C423E2513D00DCD162 /* SDL_syshaptic.c */; }; + A7D8AAB423E2514100DCD162 /* SDL_syshaptic.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5C423E2513D00DCD162 /* SDL_syshaptic.c */; }; + A7D8AAB523E2514100DCD162 /* SDL_syshaptic.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5C423E2513D00DCD162 /* SDL_syshaptic.c */; }; + A7D8AAB623E2514100DCD162 /* SDL_haptic.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5C523E2513D00DCD162 /* SDL_haptic.c */; }; + A7D8AAB723E2514100DCD162 /* SDL_haptic.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5C523E2513D00DCD162 /* SDL_haptic.c */; }; + A7D8AAB823E2514100DCD162 /* SDL_haptic.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5C523E2513D00DCD162 /* SDL_haptic.c */; }; + A7D8AAB923E2514100DCD162 /* SDL_haptic.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5C523E2513D00DCD162 /* SDL_haptic.c */; }; + A7D8AABA23E2514100DCD162 /* SDL_haptic.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5C523E2513D00DCD162 /* SDL_haptic.c */; }; + A7D8AABB23E2514100DCD162 /* SDL_haptic.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5C523E2513D00DCD162 /* SDL_haptic.c */; }; + A7D8AABC23E2514100DCD162 /* SDL_haptic_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5C623E2513D00DCD162 /* SDL_haptic_c.h */; }; + A7D8AABD23E2514100DCD162 /* SDL_haptic_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5C623E2513D00DCD162 /* SDL_haptic_c.h */; }; + A7D8AABE23E2514100DCD162 /* SDL_haptic_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5C623E2513D00DCD162 /* SDL_haptic_c.h */; }; + A7D8AABF23E2514100DCD162 /* SDL_haptic_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5C623E2513D00DCD162 /* SDL_haptic_c.h */; }; + A7D8AAC023E2514100DCD162 /* SDL_haptic_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5C623E2513D00DCD162 /* SDL_haptic_c.h */; }; + A7D8AAC123E2514100DCD162 /* SDL_haptic_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5C623E2513D00DCD162 /* SDL_haptic_c.h */; }; + A7D8AAD423E2514100DCD162 /* SDL_syshaptic.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5CC23E2513D00DCD162 /* SDL_syshaptic.h */; }; + A7D8AAD523E2514100DCD162 /* SDL_syshaptic.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5CC23E2513D00DCD162 /* SDL_syshaptic.h */; }; + A7D8AAD623E2514100DCD162 /* SDL_syshaptic.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5CC23E2513D00DCD162 /* SDL_syshaptic.h */; }; + A7D8AAD723E2514100DCD162 /* SDL_syshaptic.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5CC23E2513D00DCD162 /* SDL_syshaptic.h */; }; + A7D8AAD823E2514100DCD162 /* SDL_syshaptic.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5CC23E2513D00DCD162 /* SDL_syshaptic.h */; }; + A7D8AAD923E2514100DCD162 /* SDL_syshaptic.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5CC23E2513D00DCD162 /* SDL_syshaptic.h */; }; + A7D8AADA23E2514100DCD162 /* SDL_syshaptic.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5CE23E2513D00DCD162 /* SDL_syshaptic.c */; }; + A7D8AADB23E2514100DCD162 /* SDL_syshaptic.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5CE23E2513D00DCD162 /* SDL_syshaptic.c */; }; + A7D8AADC23E2514100DCD162 /* SDL_syshaptic.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5CE23E2513D00DCD162 /* SDL_syshaptic.c */; }; + A7D8AADD23E2514100DCD162 /* SDL_syshaptic.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5CE23E2513D00DCD162 /* SDL_syshaptic.c */; }; + A7D8AADE23E2514100DCD162 /* SDL_syshaptic.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5CE23E2513D00DCD162 /* SDL_syshaptic.c */; }; + A7D8AADF23E2514100DCD162 /* SDL_syshaptic.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5CE23E2513D00DCD162 /* SDL_syshaptic.c */; }; + A7D8AAE023E2514100DCD162 /* SDL_syshaptic_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5CF23E2513D00DCD162 /* SDL_syshaptic_c.h */; }; + A7D8AAE123E2514100DCD162 /* SDL_syshaptic_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5CF23E2513D00DCD162 /* SDL_syshaptic_c.h */; }; + A7D8AAE223E2514100DCD162 /* SDL_syshaptic_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5CF23E2513D00DCD162 /* SDL_syshaptic_c.h */; }; + A7D8AAE323E2514100DCD162 /* SDL_syshaptic_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5CF23E2513D00DCD162 /* SDL_syshaptic_c.h */; }; + A7D8AAE423E2514100DCD162 /* SDL_syshaptic_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5CF23E2513D00DCD162 /* SDL_syshaptic_c.h */; }; + A7D8AAE523E2514100DCD162 /* SDL_syshaptic_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5CF23E2513D00DCD162 /* SDL_syshaptic_c.h */; }; + A7D8AB0A23E2514100DCD162 /* SDL_dynapi.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5D823E2513D00DCD162 /* SDL_dynapi.h */; }; + A7D8AB0B23E2514100DCD162 /* SDL_dynapi.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5D823E2513D00DCD162 /* SDL_dynapi.h */; }; + A7D8AB0C23E2514100DCD162 /* SDL_dynapi.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5D823E2513D00DCD162 /* SDL_dynapi.h */; }; + A7D8AB0D23E2514100DCD162 /* SDL_dynapi.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5D823E2513D00DCD162 /* SDL_dynapi.h */; }; + A7D8AB0E23E2514100DCD162 /* SDL_dynapi.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5D823E2513D00DCD162 /* SDL_dynapi.h */; }; + A7D8AB0F23E2514100DCD162 /* SDL_dynapi.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5D823E2513D00DCD162 /* SDL_dynapi.h */; }; + A7D8AB1023E2514100DCD162 /* SDL_dynapi_overrides.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5D923E2513D00DCD162 /* SDL_dynapi_overrides.h */; }; + A7D8AB1123E2514100DCD162 /* SDL_dynapi_overrides.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5D923E2513D00DCD162 /* SDL_dynapi_overrides.h */; }; + A7D8AB1223E2514100DCD162 /* SDL_dynapi_overrides.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5D923E2513D00DCD162 /* SDL_dynapi_overrides.h */; }; + A7D8AB1323E2514100DCD162 /* SDL_dynapi_overrides.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5D923E2513D00DCD162 /* SDL_dynapi_overrides.h */; }; + A7D8AB1423E2514100DCD162 /* SDL_dynapi_overrides.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5D923E2513D00DCD162 /* SDL_dynapi_overrides.h */; }; + A7D8AB1523E2514100DCD162 /* SDL_dynapi_overrides.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5D923E2513D00DCD162 /* SDL_dynapi_overrides.h */; }; + A7D8AB1623E2514100DCD162 /* SDL_dynapi.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5DA23E2513D00DCD162 /* SDL_dynapi.c */; }; + A7D8AB1723E2514100DCD162 /* SDL_dynapi.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5DA23E2513D00DCD162 /* SDL_dynapi.c */; }; + A7D8AB1823E2514100DCD162 /* SDL_dynapi.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5DA23E2513D00DCD162 /* SDL_dynapi.c */; }; + A7D8AB1923E2514100DCD162 /* SDL_dynapi.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5DA23E2513D00DCD162 /* SDL_dynapi.c */; }; + A7D8AB1A23E2514100DCD162 /* SDL_dynapi.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5DA23E2513D00DCD162 /* SDL_dynapi.c */; }; + A7D8AB1B23E2514100DCD162 /* SDL_dynapi.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5DA23E2513D00DCD162 /* SDL_dynapi.c */; }; + A7D8AB1C23E2514100DCD162 /* SDL_dynapi_procs.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5DB23E2513D00DCD162 /* SDL_dynapi_procs.h */; }; + A7D8AB1D23E2514100DCD162 /* SDL_dynapi_procs.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5DB23E2513D00DCD162 /* SDL_dynapi_procs.h */; }; + A7D8AB1E23E2514100DCD162 /* SDL_dynapi_procs.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5DB23E2513D00DCD162 /* SDL_dynapi_procs.h */; }; + A7D8AB1F23E2514100DCD162 /* SDL_dynapi_procs.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5DB23E2513D00DCD162 /* SDL_dynapi_procs.h */; }; + A7D8AB2023E2514100DCD162 /* SDL_dynapi_procs.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5DB23E2513D00DCD162 /* SDL_dynapi_procs.h */; }; + A7D8AB2123E2514100DCD162 /* SDL_dynapi_procs.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5DB23E2513D00DCD162 /* SDL_dynapi_procs.h */; }; + A7D8AB2523E2514100DCD162 /* SDL_log.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5DD23E2513D00DCD162 /* SDL_log.c */; }; + A7D8AB2623E2514100DCD162 /* SDL_log.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5DD23E2513D00DCD162 /* SDL_log.c */; }; + A7D8AB2723E2514100DCD162 /* SDL_log.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5DD23E2513D00DCD162 /* SDL_log.c */; }; + A7D8AB2823E2514100DCD162 /* SDL_log.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5DD23E2513D00DCD162 /* SDL_log.c */; }; + A7D8AB2923E2514100DCD162 /* SDL_log.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5DD23E2513D00DCD162 /* SDL_log.c */; }; + A7D8AB2A23E2514100DCD162 /* SDL_log.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5DD23E2513D00DCD162 /* SDL_log.c */; }; + A7D8AB2B23E2514100DCD162 /* SDL_timer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5DF23E2513D00DCD162 /* SDL_timer.c */; }; + A7D8AB2C23E2514100DCD162 /* SDL_timer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5DF23E2513D00DCD162 /* SDL_timer.c */; }; + A7D8AB2D23E2514100DCD162 /* SDL_timer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5DF23E2513D00DCD162 /* SDL_timer.c */; }; + A7D8AB2E23E2514100DCD162 /* SDL_timer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5DF23E2513D00DCD162 /* SDL_timer.c */; }; + A7D8AB2F23E2514100DCD162 /* SDL_timer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5DF23E2513D00DCD162 /* SDL_timer.c */; }; + A7D8AB3023E2514100DCD162 /* SDL_timer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5DF23E2513D00DCD162 /* SDL_timer.c */; }; + A7D8AB3123E2514100DCD162 /* SDL_timer_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5E023E2513D00DCD162 /* SDL_timer_c.h */; }; + A7D8AB3223E2514100DCD162 /* SDL_timer_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5E023E2513D00DCD162 /* SDL_timer_c.h */; }; + A7D8AB3323E2514100DCD162 /* SDL_timer_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5E023E2513D00DCD162 /* SDL_timer_c.h */; }; + A7D8AB3423E2514100DCD162 /* SDL_timer_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5E023E2513D00DCD162 /* SDL_timer_c.h */; }; + A7D8AB3523E2514100DCD162 /* SDL_timer_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5E023E2513D00DCD162 /* SDL_timer_c.h */; }; + A7D8AB3623E2514100DCD162 /* SDL_timer_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5E023E2513D00DCD162 /* SDL_timer_c.h */; }; + A7D8AB3723E2514100DCD162 /* SDL_systimer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5E223E2513D00DCD162 /* SDL_systimer.c */; }; + A7D8AB3823E2514100DCD162 /* SDL_systimer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5E223E2513D00DCD162 /* SDL_systimer.c */; }; + A7D8AB3923E2514100DCD162 /* SDL_systimer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5E223E2513D00DCD162 /* SDL_systimer.c */; }; + A7D8AB3A23E2514100DCD162 /* SDL_systimer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5E223E2513D00DCD162 /* SDL_systimer.c */; }; + A7D8AB3B23E2514100DCD162 /* SDL_systimer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5E223E2513D00DCD162 /* SDL_systimer.c */; }; + A7D8AB3C23E2514100DCD162 /* SDL_systimer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5E223E2513D00DCD162 /* SDL_systimer.c */; }; + A7D8AB4923E2514100DCD162 /* SDL_systimer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5E823E2513D00DCD162 /* SDL_systimer.c */; }; + A7D8AB4A23E2514100DCD162 /* SDL_systimer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5E823E2513D00DCD162 /* SDL_systimer.c */; }; + A7D8AB4B23E2514100DCD162 /* SDL_systimer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5E823E2513D00DCD162 /* SDL_systimer.c */; }; + A7D8AB4C23E2514100DCD162 /* SDL_systimer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5E823E2513D00DCD162 /* SDL_systimer.c */; }; + A7D8AB4D23E2514100DCD162 /* SDL_systimer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5E823E2513D00DCD162 /* SDL_systimer.c */; }; + A7D8AB4E23E2514100DCD162 /* SDL_systimer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5E823E2513D00DCD162 /* SDL_systimer.c */; }; + A7D8AB5B23E2514100DCD162 /* SDL_offscreenevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5EE23E2513D00DCD162 /* SDL_offscreenevents_c.h */; }; + A7D8AB5C23E2514100DCD162 /* SDL_offscreenevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5EE23E2513D00DCD162 /* SDL_offscreenevents_c.h */; }; + A7D8AB5D23E2514100DCD162 /* SDL_offscreenevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5EE23E2513D00DCD162 /* SDL_offscreenevents_c.h */; }; + A7D8AB5E23E2514100DCD162 /* SDL_offscreenevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5EE23E2513D00DCD162 /* SDL_offscreenevents_c.h */; }; + A7D8AB5F23E2514100DCD162 /* SDL_offscreenevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5EE23E2513D00DCD162 /* SDL_offscreenevents_c.h */; }; + A7D8AB6023E2514100DCD162 /* SDL_offscreenevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5EE23E2513D00DCD162 /* SDL_offscreenevents_c.h */; }; + A7D8AB6123E2514100DCD162 /* SDL_offscreenwindow.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5EF23E2513D00DCD162 /* SDL_offscreenwindow.c */; }; + A7D8AB6223E2514100DCD162 /* SDL_offscreenwindow.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5EF23E2513D00DCD162 /* SDL_offscreenwindow.c */; }; + A7D8AB6323E2514100DCD162 /* SDL_offscreenwindow.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5EF23E2513D00DCD162 /* SDL_offscreenwindow.c */; }; + A7D8AB6423E2514100DCD162 /* SDL_offscreenwindow.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5EF23E2513D00DCD162 /* SDL_offscreenwindow.c */; }; + A7D8AB6523E2514100DCD162 /* SDL_offscreenwindow.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5EF23E2513D00DCD162 /* SDL_offscreenwindow.c */; }; + A7D8AB6623E2514100DCD162 /* SDL_offscreenwindow.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5EF23E2513D00DCD162 /* SDL_offscreenwindow.c */; }; + A7D8AB6723E2514100DCD162 /* SDL_offscreenevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5F023E2513D00DCD162 /* SDL_offscreenevents.c */; }; + A7D8AB6823E2514100DCD162 /* SDL_offscreenevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5F023E2513D00DCD162 /* SDL_offscreenevents.c */; }; + A7D8AB6923E2514100DCD162 /* SDL_offscreenevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5F023E2513D00DCD162 /* SDL_offscreenevents.c */; }; + A7D8AB6A23E2514100DCD162 /* SDL_offscreenevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5F023E2513D00DCD162 /* SDL_offscreenevents.c */; }; + A7D8AB6B23E2514100DCD162 /* SDL_offscreenevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5F023E2513D00DCD162 /* SDL_offscreenevents.c */; }; + A7D8AB6C23E2514100DCD162 /* SDL_offscreenevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5F023E2513D00DCD162 /* SDL_offscreenevents.c */; }; + A7D8AB6D23E2514100DCD162 /* SDL_offscreenvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5F123E2513D00DCD162 /* SDL_offscreenvideo.h */; }; + A7D8AB6E23E2514100DCD162 /* SDL_offscreenvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5F123E2513D00DCD162 /* SDL_offscreenvideo.h */; }; + A7D8AB6F23E2514100DCD162 /* SDL_offscreenvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5F123E2513D00DCD162 /* SDL_offscreenvideo.h */; }; + A7D8AB7023E2514100DCD162 /* SDL_offscreenvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5F123E2513D00DCD162 /* SDL_offscreenvideo.h */; }; + A7D8AB7123E2514100DCD162 /* SDL_offscreenvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5F123E2513D00DCD162 /* SDL_offscreenvideo.h */; }; + A7D8AB7223E2514100DCD162 /* SDL_offscreenvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5F123E2513D00DCD162 /* SDL_offscreenvideo.h */; }; + A7D8AB7323E2514100DCD162 /* SDL_offscreenframebuffer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5F223E2513D00DCD162 /* SDL_offscreenframebuffer.c */; }; + A7D8AB7423E2514100DCD162 /* SDL_offscreenframebuffer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5F223E2513D00DCD162 /* SDL_offscreenframebuffer.c */; }; + A7D8AB7523E2514100DCD162 /* SDL_offscreenframebuffer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5F223E2513D00DCD162 /* SDL_offscreenframebuffer.c */; }; + A7D8AB7623E2514100DCD162 /* SDL_offscreenframebuffer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5F223E2513D00DCD162 /* SDL_offscreenframebuffer.c */; }; + A7D8AB7723E2514100DCD162 /* SDL_offscreenframebuffer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5F223E2513D00DCD162 /* SDL_offscreenframebuffer.c */; }; + A7D8AB7823E2514100DCD162 /* SDL_offscreenframebuffer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5F223E2513D00DCD162 /* SDL_offscreenframebuffer.c */; }; + A7D8AB7F23E2514100DCD162 /* SDL_offscreenframebuffer_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5F423E2513D00DCD162 /* SDL_offscreenframebuffer_c.h */; }; + A7D8AB8023E2514100DCD162 /* SDL_offscreenframebuffer_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5F423E2513D00DCD162 /* SDL_offscreenframebuffer_c.h */; }; + A7D8AB8123E2514100DCD162 /* SDL_offscreenframebuffer_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5F423E2513D00DCD162 /* SDL_offscreenframebuffer_c.h */; }; + A7D8AB8223E2514100DCD162 /* SDL_offscreenframebuffer_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5F423E2513D00DCD162 /* SDL_offscreenframebuffer_c.h */; }; + A7D8AB8323E2514100DCD162 /* SDL_offscreenframebuffer_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5F423E2513D00DCD162 /* SDL_offscreenframebuffer_c.h */; }; + A7D8AB8423E2514100DCD162 /* SDL_offscreenframebuffer_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5F423E2513D00DCD162 /* SDL_offscreenframebuffer_c.h */; }; + A7D8AB8523E2514100DCD162 /* SDL_offscreenwindow.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5F523E2513D00DCD162 /* SDL_offscreenwindow.h */; }; + A7D8AB8623E2514100DCD162 /* SDL_offscreenwindow.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5F523E2513D00DCD162 /* SDL_offscreenwindow.h */; }; + A7D8AB8723E2514100DCD162 /* SDL_offscreenwindow.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5F523E2513D00DCD162 /* SDL_offscreenwindow.h */; }; + A7D8AB8823E2514100DCD162 /* SDL_offscreenwindow.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5F523E2513D00DCD162 /* SDL_offscreenwindow.h */; }; + A7D8AB8923E2514100DCD162 /* SDL_offscreenwindow.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5F523E2513D00DCD162 /* SDL_offscreenwindow.h */; }; + A7D8AB8A23E2514100DCD162 /* SDL_offscreenwindow.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5F523E2513D00DCD162 /* SDL_offscreenwindow.h */; }; + A7D8AB8B23E2514100DCD162 /* SDL_offscreenvideo.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5F623E2513D00DCD162 /* SDL_offscreenvideo.c */; }; + A7D8AB8C23E2514100DCD162 /* SDL_offscreenvideo.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5F623E2513D00DCD162 /* SDL_offscreenvideo.c */; }; + A7D8AB8D23E2514100DCD162 /* SDL_offscreenvideo.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5F623E2513D00DCD162 /* SDL_offscreenvideo.c */; }; + A7D8AB8E23E2514100DCD162 /* SDL_offscreenvideo.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5F623E2513D00DCD162 /* SDL_offscreenvideo.c */; }; + A7D8AB8F23E2514100DCD162 /* SDL_offscreenvideo.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5F623E2513D00DCD162 /* SDL_offscreenvideo.c */; }; + A7D8AB9023E2514100DCD162 /* SDL_offscreenvideo.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5F623E2513D00DCD162 /* SDL_offscreenvideo.c */; }; + A7D8ABCD23E2514100DCD162 /* SDL_blit_slow.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60223E2513D00DCD162 /* SDL_blit_slow.c */; }; + A7D8ABCE23E2514100DCD162 /* SDL_blit_slow.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60223E2513D00DCD162 /* SDL_blit_slow.c */; }; + A7D8ABCF23E2514100DCD162 /* SDL_blit_slow.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60223E2513D00DCD162 /* SDL_blit_slow.c */; }; + A7D8ABD023E2514100DCD162 /* SDL_blit_slow.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60223E2513D00DCD162 /* SDL_blit_slow.c */; }; + A7D8ABD123E2514100DCD162 /* SDL_blit_slow.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60223E2513D00DCD162 /* SDL_blit_slow.c */; }; + A7D8ABD223E2514100DCD162 /* SDL_blit_slow.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60223E2513D00DCD162 /* SDL_blit_slow.c */; }; + A7D8ABD323E2514100DCD162 /* SDL_stretch.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60323E2513D00DCD162 /* SDL_stretch.c */; }; + A7D8ABD423E2514100DCD162 /* SDL_stretch.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60323E2513D00DCD162 /* SDL_stretch.c */; }; + A7D8ABD523E2514100DCD162 /* SDL_stretch.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60323E2513D00DCD162 /* SDL_stretch.c */; }; + A7D8ABD623E2514100DCD162 /* SDL_stretch.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60323E2513D00DCD162 /* SDL_stretch.c */; }; + A7D8ABD723E2514100DCD162 /* SDL_stretch.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60323E2513D00DCD162 /* SDL_stretch.c */; }; + A7D8ABD823E2514100DCD162 /* SDL_stretch.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60323E2513D00DCD162 /* SDL_stretch.c */; }; + A7D8ABD923E2514100DCD162 /* SDL_egl_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60423E2513D00DCD162 /* SDL_egl_c.h */; }; + A7D8ABDA23E2514100DCD162 /* SDL_egl_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60423E2513D00DCD162 /* SDL_egl_c.h */; }; + A7D8ABDB23E2514100DCD162 /* SDL_egl_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60423E2513D00DCD162 /* SDL_egl_c.h */; }; + A7D8ABDC23E2514100DCD162 /* SDL_egl_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60423E2513D00DCD162 /* SDL_egl_c.h */; }; + A7D8ABDD23E2514100DCD162 /* SDL_egl_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60423E2513D00DCD162 /* SDL_egl_c.h */; }; + A7D8ABDE23E2514100DCD162 /* SDL_egl_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60423E2513D00DCD162 /* SDL_egl_c.h */; }; + A7D8ABDF23E2514100DCD162 /* SDL_nullframebuffer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60623E2513D00DCD162 /* SDL_nullframebuffer.c */; }; + A7D8ABE023E2514100DCD162 /* SDL_nullframebuffer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60623E2513D00DCD162 /* SDL_nullframebuffer.c */; }; + A7D8ABE123E2514100DCD162 /* SDL_nullframebuffer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60623E2513D00DCD162 /* SDL_nullframebuffer.c */; }; + A7D8ABE223E2514100DCD162 /* SDL_nullframebuffer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60623E2513D00DCD162 /* SDL_nullframebuffer.c */; }; + A7D8ABE323E2514100DCD162 /* SDL_nullframebuffer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60623E2513D00DCD162 /* SDL_nullframebuffer.c */; }; + A7D8ABE423E2514100DCD162 /* SDL_nullframebuffer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60623E2513D00DCD162 /* SDL_nullframebuffer.c */; }; + A7D8ABE523E2514100DCD162 /* SDL_nullframebuffer_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60723E2513D00DCD162 /* SDL_nullframebuffer_c.h */; }; + A7D8ABE623E2514100DCD162 /* SDL_nullframebuffer_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60723E2513D00DCD162 /* SDL_nullframebuffer_c.h */; }; + A7D8ABE723E2514100DCD162 /* SDL_nullframebuffer_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60723E2513D00DCD162 /* SDL_nullframebuffer_c.h */; }; + A7D8ABE823E2514100DCD162 /* SDL_nullframebuffer_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60723E2513D00DCD162 /* SDL_nullframebuffer_c.h */; }; + A7D8ABE923E2514100DCD162 /* SDL_nullframebuffer_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60723E2513D00DCD162 /* SDL_nullframebuffer_c.h */; }; + A7D8ABEA23E2514100DCD162 /* SDL_nullframebuffer_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60723E2513D00DCD162 /* SDL_nullframebuffer_c.h */; }; + A7D8ABEB23E2514100DCD162 /* SDL_nullvideo.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60823E2513D00DCD162 /* SDL_nullvideo.c */; }; + A7D8ABEC23E2514100DCD162 /* SDL_nullvideo.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60823E2513D00DCD162 /* SDL_nullvideo.c */; }; + A7D8ABED23E2514100DCD162 /* SDL_nullvideo.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60823E2513D00DCD162 /* SDL_nullvideo.c */; }; + A7D8ABEE23E2514100DCD162 /* SDL_nullvideo.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60823E2513D00DCD162 /* SDL_nullvideo.c */; }; + A7D8ABEF23E2514100DCD162 /* SDL_nullvideo.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60823E2513D00DCD162 /* SDL_nullvideo.c */; }; + A7D8ABF023E2514100DCD162 /* SDL_nullvideo.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60823E2513D00DCD162 /* SDL_nullvideo.c */; }; + A7D8ABF123E2514100DCD162 /* SDL_nullevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60923E2513D00DCD162 /* SDL_nullevents.c */; }; + A7D8ABF223E2514100DCD162 /* SDL_nullevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60923E2513D00DCD162 /* SDL_nullevents.c */; }; + A7D8ABF323E2514100DCD162 /* SDL_nullevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60923E2513D00DCD162 /* SDL_nullevents.c */; }; + A7D8ABF423E2514100DCD162 /* SDL_nullevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60923E2513D00DCD162 /* SDL_nullevents.c */; }; + A7D8ABF523E2514100DCD162 /* SDL_nullevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60923E2513D00DCD162 /* SDL_nullevents.c */; }; + A7D8ABF623E2514100DCD162 /* SDL_nullevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60923E2513D00DCD162 /* SDL_nullevents.c */; }; + A7D8ABF723E2514100DCD162 /* SDL_nullvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60A23E2513D00DCD162 /* SDL_nullvideo.h */; }; + A7D8ABF823E2514100DCD162 /* SDL_nullvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60A23E2513D00DCD162 /* SDL_nullvideo.h */; }; + A7D8ABF923E2514100DCD162 /* SDL_nullvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60A23E2513D00DCD162 /* SDL_nullvideo.h */; }; + A7D8ABFA23E2514100DCD162 /* SDL_nullvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60A23E2513D00DCD162 /* SDL_nullvideo.h */; }; + A7D8ABFB23E2514100DCD162 /* SDL_nullvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60A23E2513D00DCD162 /* SDL_nullvideo.h */; }; + A7D8ABFC23E2514100DCD162 /* SDL_nullvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60A23E2513D00DCD162 /* SDL_nullvideo.h */; }; + A7D8ABFD23E2514100DCD162 /* SDL_nullevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60B23E2513D00DCD162 /* SDL_nullevents_c.h */; }; + A7D8ABFE23E2514100DCD162 /* SDL_nullevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60B23E2513D00DCD162 /* SDL_nullevents_c.h */; }; + A7D8ABFF23E2514100DCD162 /* SDL_nullevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60B23E2513D00DCD162 /* SDL_nullevents_c.h */; }; + A7D8AC0023E2514100DCD162 /* SDL_nullevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60B23E2513D00DCD162 /* SDL_nullevents_c.h */; }; + A7D8AC0123E2514100DCD162 /* SDL_nullevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60B23E2513D00DCD162 /* SDL_nullevents_c.h */; }; + A7D8AC0223E2514100DCD162 /* SDL_nullevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60B23E2513D00DCD162 /* SDL_nullevents_c.h */; }; + A7D8AC0323E2514100DCD162 /* SDL_rect_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60C23E2513D00DCD162 /* SDL_rect_c.h */; }; + A7D8AC0423E2514100DCD162 /* SDL_rect_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60C23E2513D00DCD162 /* SDL_rect_c.h */; }; + A7D8AC0523E2514100DCD162 /* SDL_rect_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60C23E2513D00DCD162 /* SDL_rect_c.h */; }; + A7D8AC0623E2514100DCD162 /* SDL_rect_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60C23E2513D00DCD162 /* SDL_rect_c.h */; }; + A7D8AC0723E2514100DCD162 /* SDL_rect_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60C23E2513D00DCD162 /* SDL_rect_c.h */; }; + A7D8AC0823E2514100DCD162 /* SDL_rect_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60C23E2513D00DCD162 /* SDL_rect_c.h */; }; + A7D8AC0923E2514100DCD162 /* SDL_shape_internals.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60D23E2513D00DCD162 /* SDL_shape_internals.h */; }; + A7D8AC0A23E2514100DCD162 /* SDL_shape_internals.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60D23E2513D00DCD162 /* SDL_shape_internals.h */; }; + A7D8AC0B23E2514100DCD162 /* SDL_shape_internals.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60D23E2513D00DCD162 /* SDL_shape_internals.h */; }; + A7D8AC0C23E2514100DCD162 /* SDL_shape_internals.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60D23E2513D00DCD162 /* SDL_shape_internals.h */; }; + A7D8AC0D23E2514100DCD162 /* SDL_shape_internals.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60D23E2513D00DCD162 /* SDL_shape_internals.h */; }; + A7D8AC0E23E2514100DCD162 /* SDL_shape_internals.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60D23E2513D00DCD162 /* SDL_shape_internals.h */; }; + A7D8AC0F23E2514100DCD162 /* SDL_video.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60E23E2513D00DCD162 /* SDL_video.c */; }; + A7D8AC1023E2514100DCD162 /* SDL_video.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60E23E2513D00DCD162 /* SDL_video.c */; }; + A7D8AC1123E2514100DCD162 /* SDL_video.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60E23E2513D00DCD162 /* SDL_video.c */; }; + A7D8AC1223E2514100DCD162 /* SDL_video.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60E23E2513D00DCD162 /* SDL_video.c */; }; + A7D8AC1323E2514100DCD162 /* SDL_video.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60E23E2513D00DCD162 /* SDL_video.c */; }; + A7D8AC1423E2514100DCD162 /* SDL_video.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A60E23E2513D00DCD162 /* SDL_video.c */; }; + A7D8AC2D23E2514100DCD162 /* SDL_surface.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61423E2513D00DCD162 /* SDL_surface.c */; }; + A7D8AC2E23E2514100DCD162 /* SDL_surface.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61423E2513D00DCD162 /* SDL_surface.c */; }; + A7D8AC2F23E2514100DCD162 /* SDL_surface.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61423E2513D00DCD162 /* SDL_surface.c */; }; + A7D8AC3023E2514100DCD162 /* SDL_surface.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61423E2513D00DCD162 /* SDL_surface.c */; }; + A7D8AC3123E2514100DCD162 /* SDL_surface.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61423E2513D00DCD162 /* SDL_surface.c */; }; + A7D8AC3223E2514100DCD162 /* SDL_surface.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61423E2513D00DCD162 /* SDL_surface.c */; }; + A7D8AC3323E2514100DCD162 /* SDL_RLEaccel.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61523E2513D00DCD162 /* SDL_RLEaccel.c */; }; + A7D8AC3423E2514100DCD162 /* SDL_RLEaccel.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61523E2513D00DCD162 /* SDL_RLEaccel.c */; }; + A7D8AC3523E2514100DCD162 /* SDL_RLEaccel.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61523E2513D00DCD162 /* SDL_RLEaccel.c */; }; + A7D8AC3623E2514100DCD162 /* SDL_RLEaccel.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61523E2513D00DCD162 /* SDL_RLEaccel.c */; }; + A7D8AC3723E2514100DCD162 /* SDL_RLEaccel.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61523E2513D00DCD162 /* SDL_RLEaccel.c */; }; + A7D8AC3823E2514100DCD162 /* SDL_RLEaccel.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61523E2513D00DCD162 /* SDL_RLEaccel.c */; }; + A7D8AC3923E2514100DCD162 /* SDL_blit_copy.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61623E2513D00DCD162 /* SDL_blit_copy.c */; }; + A7D8AC3A23E2514100DCD162 /* SDL_blit_copy.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61623E2513D00DCD162 /* SDL_blit_copy.c */; }; + A7D8AC3B23E2514100DCD162 /* SDL_blit_copy.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61623E2513D00DCD162 /* SDL_blit_copy.c */; }; + A7D8AC3C23E2514100DCD162 /* SDL_blit_copy.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61623E2513D00DCD162 /* SDL_blit_copy.c */; }; + A7D8AC3D23E2514100DCD162 /* SDL_blit_copy.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61623E2513D00DCD162 /* SDL_blit_copy.c */; }; + A7D8AC3E23E2514100DCD162 /* SDL_blit_copy.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61623E2513D00DCD162 /* SDL_blit_copy.c */; }; + A7D8AC3F23E2514100DCD162 /* SDL_sysvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A61723E2513D00DCD162 /* SDL_sysvideo.h */; }; + A7D8AC4023E2514100DCD162 /* SDL_sysvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A61723E2513D00DCD162 /* SDL_sysvideo.h */; }; + A7D8AC4123E2514100DCD162 /* SDL_sysvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A61723E2513D00DCD162 /* SDL_sysvideo.h */; }; + A7D8AC4223E2514100DCD162 /* SDL_sysvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A61723E2513D00DCD162 /* SDL_sysvideo.h */; }; + A7D8AC4323E2514100DCD162 /* SDL_sysvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A61723E2513D00DCD162 /* SDL_sysvideo.h */; }; + A7D8AC4423E2514100DCD162 /* SDL_sysvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A61723E2513D00DCD162 /* SDL_sysvideo.h */; }; + A7D8AC4623E2514100DCD162 /* SDL_uikitview.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A61923E2513D00DCD162 /* SDL_uikitview.h */; }; + A7D8AC4723E2514100DCD162 /* SDL_uikitview.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A61923E2513D00DCD162 /* SDL_uikitview.h */; }; + A7D8AC4923E2514100DCD162 /* SDL_uikitview.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A61923E2513D00DCD162 /* SDL_uikitview.h */; }; + A7D8AC4A23E2514100DCD162 /* SDL_uikitview.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A61923E2513D00DCD162 /* SDL_uikitview.h */; }; + A7D8AC4C23E2514100DCD162 /* SDL_uikitwindow.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61A23E2513D00DCD162 /* SDL_uikitwindow.m */; }; + A7D8AC4D23E2514100DCD162 /* SDL_uikitwindow.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61A23E2513D00DCD162 /* SDL_uikitwindow.m */; }; + A7D8AC4F23E2514100DCD162 /* SDL_uikitwindow.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61A23E2513D00DCD162 /* SDL_uikitwindow.m */; }; + A7D8AC5023E2514100DCD162 /* SDL_uikitwindow.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61A23E2513D00DCD162 /* SDL_uikitwindow.m */; }; + A7D8AC5223E2514100DCD162 /* SDL_uikitmessagebox.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61B23E2513D00DCD162 /* SDL_uikitmessagebox.m */; }; + A7D8AC5323E2514100DCD162 /* SDL_uikitmessagebox.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61B23E2513D00DCD162 /* SDL_uikitmessagebox.m */; }; + A7D8AC5523E2514100DCD162 /* SDL_uikitmessagebox.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61B23E2513D00DCD162 /* SDL_uikitmessagebox.m */; }; + A7D8AC5623E2514100DCD162 /* SDL_uikitmessagebox.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61B23E2513D00DCD162 /* SDL_uikitmessagebox.m */; }; + A7D8AC5823E2514100DCD162 /* SDL_uikitevents.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61C23E2513D00DCD162 /* SDL_uikitevents.m */; }; + A7D8AC5923E2514100DCD162 /* SDL_uikitevents.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61C23E2513D00DCD162 /* SDL_uikitevents.m */; }; + A7D8AC5B23E2514100DCD162 /* SDL_uikitevents.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61C23E2513D00DCD162 /* SDL_uikitevents.m */; }; + A7D8AC5C23E2514100DCD162 /* SDL_uikitevents.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61C23E2513D00DCD162 /* SDL_uikitevents.m */; }; + A7D8AC5E23E2514100DCD162 /* SDL_uikitmetalview.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A61D23E2513D00DCD162 /* SDL_uikitmetalview.h */; }; + A7D8AC5F23E2514100DCD162 /* SDL_uikitmetalview.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A61D23E2513D00DCD162 /* SDL_uikitmetalview.h */; }; + A7D8AC6123E2514100DCD162 /* SDL_uikitmetalview.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A61D23E2513D00DCD162 /* SDL_uikitmetalview.h */; }; + A7D8AC6223E2514100DCD162 /* SDL_uikitmetalview.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A61D23E2513D00DCD162 /* SDL_uikitmetalview.h */; }; + A7D8AC6423E2514100DCD162 /* SDL_uikitappdelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61E23E2513D00DCD162 /* SDL_uikitappdelegate.m */; }; + A7D8AC6523E2514100DCD162 /* SDL_uikitappdelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61E23E2513D00DCD162 /* SDL_uikitappdelegate.m */; }; + A7D8AC6723E2514100DCD162 /* SDL_uikitappdelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61E23E2513D00DCD162 /* SDL_uikitappdelegate.m */; }; + A7D8AC6823E2514100DCD162 /* SDL_uikitappdelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61E23E2513D00DCD162 /* SDL_uikitappdelegate.m */; }; + A7D8AC6A23E2514100DCD162 /* SDL_uikitmodes.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A61F23E2513D00DCD162 /* SDL_uikitmodes.h */; }; + A7D8AC6B23E2514100DCD162 /* SDL_uikitmodes.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A61F23E2513D00DCD162 /* SDL_uikitmodes.h */; }; + A7D8AC6D23E2514100DCD162 /* SDL_uikitmodes.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A61F23E2513D00DCD162 /* SDL_uikitmodes.h */; }; + A7D8AC6E23E2514100DCD162 /* SDL_uikitmodes.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A61F23E2513D00DCD162 /* SDL_uikitmodes.h */; }; + A7D8AC7023E2514100DCD162 /* SDL_uikitopenglview.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62023E2513D00DCD162 /* SDL_uikitopenglview.m */; }; + A7D8AC7123E2514100DCD162 /* SDL_uikitopenglview.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62023E2513D00DCD162 /* SDL_uikitopenglview.m */; }; + A7D8AC7323E2514100DCD162 /* SDL_uikitopenglview.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62023E2513D00DCD162 /* SDL_uikitopenglview.m */; }; + A7D8AC7423E2514100DCD162 /* SDL_uikitopenglview.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62023E2513D00DCD162 /* SDL_uikitopenglview.m */; }; + A7D8AC7623E2514100DCD162 /* SDL_uikitclipboard.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62123E2513D00DCD162 /* SDL_uikitclipboard.h */; }; + A7D8AC7723E2514100DCD162 /* SDL_uikitclipboard.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62123E2513D00DCD162 /* SDL_uikitclipboard.h */; }; + A7D8AC7923E2514100DCD162 /* SDL_uikitclipboard.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62123E2513D00DCD162 /* SDL_uikitclipboard.h */; }; + A7D8AC7A23E2514100DCD162 /* SDL_uikitclipboard.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62123E2513D00DCD162 /* SDL_uikitclipboard.h */; }; + A7D8AC7C23E2514100DCD162 /* SDL_uikitvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62223E2513D00DCD162 /* SDL_uikitvideo.h */; }; + A7D8AC7D23E2514100DCD162 /* SDL_uikitvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62223E2513D00DCD162 /* SDL_uikitvideo.h */; }; + A7D8AC7F23E2514100DCD162 /* SDL_uikitvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62223E2513D00DCD162 /* SDL_uikitvideo.h */; }; + A7D8AC8023E2514100DCD162 /* SDL_uikitvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62223E2513D00DCD162 /* SDL_uikitvideo.h */; }; + A7D8AC8223E2514100DCD162 /* SDL_uikitopengles.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62323E2513D00DCD162 /* SDL_uikitopengles.m */; }; + A7D8AC8323E2514100DCD162 /* SDL_uikitopengles.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62323E2513D00DCD162 /* SDL_uikitopengles.m */; }; + A7D8AC8523E2514100DCD162 /* SDL_uikitopengles.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62323E2513D00DCD162 /* SDL_uikitopengles.m */; }; + A7D8AC8623E2514100DCD162 /* SDL_uikitopengles.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62323E2513D00DCD162 /* SDL_uikitopengles.m */; }; + A7D8AC8823E2514100DCD162 /* SDL_uikitviewcontroller.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62423E2513D00DCD162 /* SDL_uikitviewcontroller.h */; }; + A7D8AC8923E2514100DCD162 /* SDL_uikitviewcontroller.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62423E2513D00DCD162 /* SDL_uikitviewcontroller.h */; }; + A7D8AC8B23E2514100DCD162 /* SDL_uikitviewcontroller.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62423E2513D00DCD162 /* SDL_uikitviewcontroller.h */; }; + A7D8AC8C23E2514100DCD162 /* SDL_uikitviewcontroller.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62423E2513D00DCD162 /* SDL_uikitviewcontroller.h */; }; + A7D8AC8E23E2514100DCD162 /* SDL_uikitvulkan.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62523E2513D00DCD162 /* SDL_uikitvulkan.m */; }; + A7D8AC8F23E2514100DCD162 /* SDL_uikitvulkan.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62523E2513D00DCD162 /* SDL_uikitvulkan.m */; }; + A7D8AC9123E2514100DCD162 /* SDL_uikitvulkan.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62523E2513D00DCD162 /* SDL_uikitvulkan.m */; }; + A7D8AC9223E2514100DCD162 /* SDL_uikitvulkan.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62523E2513D00DCD162 /* SDL_uikitvulkan.m */; }; + A7D8AC9423E2514100DCD162 /* SDL_uikitmessagebox.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62623E2513D00DCD162 /* SDL_uikitmessagebox.h */; }; + A7D8AC9523E2514100DCD162 /* SDL_uikitmessagebox.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62623E2513D00DCD162 /* SDL_uikitmessagebox.h */; }; + A7D8AC9723E2514100DCD162 /* SDL_uikitmessagebox.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62623E2513D00DCD162 /* SDL_uikitmessagebox.h */; }; + A7D8AC9823E2514100DCD162 /* SDL_uikitmessagebox.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62623E2513D00DCD162 /* SDL_uikitmessagebox.h */; }; + A7D8AC9A23E2514100DCD162 /* SDL_uikitwindow.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62723E2513D00DCD162 /* SDL_uikitwindow.h */; }; + A7D8AC9B23E2514100DCD162 /* SDL_uikitwindow.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62723E2513D00DCD162 /* SDL_uikitwindow.h */; }; + A7D8AC9D23E2514100DCD162 /* SDL_uikitwindow.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62723E2513D00DCD162 /* SDL_uikitwindow.h */; }; + A7D8AC9E23E2514100DCD162 /* SDL_uikitwindow.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62723E2513D00DCD162 /* SDL_uikitwindow.h */; }; + A7D8ACA623E2514100DCD162 /* SDL_uikitview.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62923E2513D00DCD162 /* SDL_uikitview.m */; }; + A7D8ACA723E2514100DCD162 /* SDL_uikitview.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62923E2513D00DCD162 /* SDL_uikitview.m */; }; + A7D8ACA923E2514100DCD162 /* SDL_uikitview.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62923E2513D00DCD162 /* SDL_uikitview.m */; }; + A7D8ACAA23E2514100DCD162 /* SDL_uikitview.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62923E2513D00DCD162 /* SDL_uikitview.m */; }; + A7D8ACAC23E2514100DCD162 /* SDL_uikitclipboard.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62A23E2513D00DCD162 /* SDL_uikitclipboard.m */; }; + A7D8ACAD23E2514100DCD162 /* SDL_uikitclipboard.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62A23E2513D00DCD162 /* SDL_uikitclipboard.m */; }; + A7D8ACAF23E2514100DCD162 /* SDL_uikitclipboard.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62A23E2513D00DCD162 /* SDL_uikitclipboard.m */; }; + A7D8ACB023E2514100DCD162 /* SDL_uikitclipboard.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62A23E2513D00DCD162 /* SDL_uikitclipboard.m */; }; + A7D8ACB223E2514100DCD162 /* SDL_uikitopenglview.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62B23E2513D00DCD162 /* SDL_uikitopenglview.h */; }; + A7D8ACB323E2514100DCD162 /* SDL_uikitopenglview.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62B23E2513D00DCD162 /* SDL_uikitopenglview.h */; }; + A7D8ACB523E2514100DCD162 /* SDL_uikitopenglview.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62B23E2513D00DCD162 /* SDL_uikitopenglview.h */; }; + A7D8ACB623E2514100DCD162 /* SDL_uikitopenglview.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62B23E2513D00DCD162 /* SDL_uikitopenglview.h */; }; + A7D8ACB823E2514100DCD162 /* SDL_uikitmodes.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62C23E2513D00DCD162 /* SDL_uikitmodes.m */; }; + A7D8ACB923E2514100DCD162 /* SDL_uikitmodes.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62C23E2513D00DCD162 /* SDL_uikitmodes.m */; }; + A7D8ACBB23E2514100DCD162 /* SDL_uikitmodes.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62C23E2513D00DCD162 /* SDL_uikitmodes.m */; }; + A7D8ACBC23E2514100DCD162 /* SDL_uikitmodes.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62C23E2513D00DCD162 /* SDL_uikitmodes.m */; }; + A7D8ACBE23E2514100DCD162 /* SDL_uikitevents.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62D23E2513D00DCD162 /* SDL_uikitevents.h */; }; + A7D8ACBF23E2514100DCD162 /* SDL_uikitevents.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62D23E2513D00DCD162 /* SDL_uikitevents.h */; }; + A7D8ACC123E2514100DCD162 /* SDL_uikitevents.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62D23E2513D00DCD162 /* SDL_uikitevents.h */; }; + A7D8ACC223E2514100DCD162 /* SDL_uikitevents.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62D23E2513D00DCD162 /* SDL_uikitevents.h */; }; + A7D8ACC423E2514100DCD162 /* SDL_uikitmetalview.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62E23E2513D00DCD162 /* SDL_uikitmetalview.m */; }; + A7D8ACC523E2514100DCD162 /* SDL_uikitmetalview.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62E23E2513D00DCD162 /* SDL_uikitmetalview.m */; }; + A7D8ACC723E2514100DCD162 /* SDL_uikitmetalview.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62E23E2513D00DCD162 /* SDL_uikitmetalview.m */; }; + A7D8ACC823E2514100DCD162 /* SDL_uikitmetalview.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62E23E2513D00DCD162 /* SDL_uikitmetalview.m */; }; + A7D8ACCA23E2514100DCD162 /* SDL_uikitappdelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62F23E2513D00DCD162 /* SDL_uikitappdelegate.h */; }; + A7D8ACCB23E2514100DCD162 /* SDL_uikitappdelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62F23E2513D00DCD162 /* SDL_uikitappdelegate.h */; }; + A7D8ACCD23E2514100DCD162 /* SDL_uikitappdelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62F23E2513D00DCD162 /* SDL_uikitappdelegate.h */; }; + A7D8ACCE23E2514100DCD162 /* SDL_uikitappdelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62F23E2513D00DCD162 /* SDL_uikitappdelegate.h */; }; + A7D8ACD023E2514100DCD162 /* SDL_uikitviewcontroller.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A63023E2513D00DCD162 /* SDL_uikitviewcontroller.m */; }; + A7D8ACD123E2514100DCD162 /* SDL_uikitviewcontroller.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A63023E2513D00DCD162 /* SDL_uikitviewcontroller.m */; }; + A7D8ACD323E2514100DCD162 /* SDL_uikitviewcontroller.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A63023E2513D00DCD162 /* SDL_uikitviewcontroller.m */; }; + A7D8ACD423E2514100DCD162 /* SDL_uikitviewcontroller.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A63023E2513D00DCD162 /* SDL_uikitviewcontroller.m */; }; + A7D8ACD623E2514100DCD162 /* SDL_uikitopengles.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A63123E2513D00DCD162 /* SDL_uikitopengles.h */; }; + A7D8ACD723E2514100DCD162 /* SDL_uikitopengles.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A63123E2513D00DCD162 /* SDL_uikitopengles.h */; }; + A7D8ACD923E2514100DCD162 /* SDL_uikitopengles.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A63123E2513D00DCD162 /* SDL_uikitopengles.h */; }; + A7D8ACDA23E2514100DCD162 /* SDL_uikitopengles.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A63123E2513D00DCD162 /* SDL_uikitopengles.h */; }; + A7D8ACDC23E2514100DCD162 /* SDL_uikitvideo.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A63223E2513D00DCD162 /* SDL_uikitvideo.m */; }; + A7D8ACDD23E2514100DCD162 /* SDL_uikitvideo.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A63223E2513D00DCD162 /* SDL_uikitvideo.m */; }; + A7D8ACDF23E2514100DCD162 /* SDL_uikitvideo.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A63223E2513D00DCD162 /* SDL_uikitvideo.m */; }; + A7D8ACE023E2514100DCD162 /* SDL_uikitvideo.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A63223E2513D00DCD162 /* SDL_uikitvideo.m */; }; + A7D8ACE223E2514100DCD162 /* SDL_uikitvulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A63323E2513D00DCD162 /* SDL_uikitvulkan.h */; }; + A7D8ACE323E2514100DCD162 /* SDL_uikitvulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A63323E2513D00DCD162 /* SDL_uikitvulkan.h */; }; + A7D8ACE523E2514100DCD162 /* SDL_uikitvulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A63323E2513D00DCD162 /* SDL_uikitvulkan.h */; }; + A7D8ACE623E2514100DCD162 /* SDL_uikitvulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A63323E2513D00DCD162 /* SDL_uikitvulkan.h */; }; + A7D8ACE723E2514100DCD162 /* SDL_rect.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A63423E2513D00DCD162 /* SDL_rect.c */; }; + A7D8ACE823E2514100DCD162 /* SDL_rect.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A63423E2513D00DCD162 /* SDL_rect.c */; }; + A7D8ACE923E2514100DCD162 /* SDL_rect.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A63423E2513D00DCD162 /* SDL_rect.c */; }; + A7D8ACEA23E2514100DCD162 /* SDL_rect.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A63423E2513D00DCD162 /* SDL_rect.c */; }; + A7D8ACEB23E2514100DCD162 /* SDL_rect.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A63423E2513D00DCD162 /* SDL_rect.c */; }; + A7D8ACEC23E2514100DCD162 /* SDL_rect.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A63423E2513D00DCD162 /* SDL_rect.c */; }; + A7D8AD1D23E2514100DCD162 /* SDL_vulkan_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A63E23E2513D00DCD162 /* SDL_vulkan_internal.h */; }; + A7D8AD1E23E2514100DCD162 /* SDL_vulkan_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A63E23E2513D00DCD162 /* SDL_vulkan_internal.h */; }; + A7D8AD1F23E2514100DCD162 /* SDL_vulkan_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A63E23E2513D00DCD162 /* SDL_vulkan_internal.h */; }; + A7D8AD2023E2514100DCD162 /* SDL_vulkan_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A63E23E2513D00DCD162 /* SDL_vulkan_internal.h */; }; + A7D8AD2123E2514100DCD162 /* SDL_vulkan_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A63E23E2513D00DCD162 /* SDL_vulkan_internal.h */; }; + A7D8AD2223E2514100DCD162 /* SDL_vulkan_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A63E23E2513D00DCD162 /* SDL_vulkan_internal.h */; }; + A7D8AD2323E2514100DCD162 /* SDL_blit_auto.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A63F23E2513D00DCD162 /* SDL_blit_auto.c */; }; + A7D8AD2423E2514100DCD162 /* SDL_blit_auto.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A63F23E2513D00DCD162 /* SDL_blit_auto.c */; }; + A7D8AD2523E2514100DCD162 /* SDL_blit_auto.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A63F23E2513D00DCD162 /* SDL_blit_auto.c */; }; + A7D8AD2623E2514100DCD162 /* SDL_blit_auto.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A63F23E2513D00DCD162 /* SDL_blit_auto.c */; }; + A7D8AD2723E2514100DCD162 /* SDL_blit_auto.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A63F23E2513D00DCD162 /* SDL_blit_auto.c */; }; + A7D8AD2823E2514100DCD162 /* SDL_blit_auto.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A63F23E2513D00DCD162 /* SDL_blit_auto.c */; }; + A7D8AD2923E2514100DCD162 /* SDL_vulkan_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A64023E2513D00DCD162 /* SDL_vulkan_utils.c */; }; + A7D8AD2A23E2514100DCD162 /* SDL_vulkan_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A64023E2513D00DCD162 /* SDL_vulkan_utils.c */; }; + A7D8AD2B23E2514100DCD162 /* SDL_vulkan_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A64023E2513D00DCD162 /* SDL_vulkan_utils.c */; }; + A7D8AD2C23E2514100DCD162 /* SDL_vulkan_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A64023E2513D00DCD162 /* SDL_vulkan_utils.c */; }; + A7D8AD2D23E2514100DCD162 /* SDL_vulkan_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A64023E2513D00DCD162 /* SDL_vulkan_utils.c */; }; + A7D8AD2E23E2514100DCD162 /* SDL_vulkan_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A64023E2513D00DCD162 /* SDL_vulkan_utils.c */; }; + A7D8AD3223E2514100DCD162 /* SDL_blit_N.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A64223E2513D00DCD162 /* SDL_blit_N.c */; }; + A7D8AD3323E2514100DCD162 /* SDL_blit_N.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A64223E2513D00DCD162 /* SDL_blit_N.c */; }; + A7D8AD3423E2514100DCD162 /* SDL_blit_N.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A64223E2513D00DCD162 /* SDL_blit_N.c */; }; + A7D8AD3523E2514100DCD162 /* SDL_blit_N.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A64223E2513D00DCD162 /* SDL_blit_N.c */; }; + A7D8AD3623E2514100DCD162 /* SDL_blit_N.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A64223E2513D00DCD162 /* SDL_blit_N.c */; }; + A7D8AD3723E2514100DCD162 /* SDL_blit_N.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A64223E2513D00DCD162 /* SDL_blit_N.c */; }; + A7D8AD6823E2514100DCD162 /* SDL_blit.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A64C23E2513D00DCD162 /* SDL_blit.c */; }; + A7D8AD6923E2514100DCD162 /* SDL_blit.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A64C23E2513D00DCD162 /* SDL_blit.c */; }; + A7D8AD6A23E2514100DCD162 /* SDL_blit.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A64C23E2513D00DCD162 /* SDL_blit.c */; }; + A7D8AD6B23E2514100DCD162 /* SDL_blit.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A64C23E2513D00DCD162 /* SDL_blit.c */; }; + A7D8AD6C23E2514100DCD162 /* SDL_blit.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A64C23E2513D00DCD162 /* SDL_blit.c */; }; + A7D8AD6D23E2514100DCD162 /* SDL_blit.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A64C23E2513D00DCD162 /* SDL_blit.c */; }; + A7D8AD6E23E2514100DCD162 /* SDL_pixels.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A64D23E2513D00DCD162 /* SDL_pixels.c */; }; + A7D8AD6F23E2514100DCD162 /* SDL_pixels.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A64D23E2513D00DCD162 /* SDL_pixels.c */; }; + A7D8AD7023E2514100DCD162 /* SDL_pixels.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A64D23E2513D00DCD162 /* SDL_pixels.c */; }; + A7D8AD7123E2514100DCD162 /* SDL_pixels.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A64D23E2513D00DCD162 /* SDL_pixels.c */; }; + A7D8AD7223E2514100DCD162 /* SDL_pixels.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A64D23E2513D00DCD162 /* SDL_pixels.c */; }; + A7D8AD7323E2514100DCD162 /* SDL_pixels.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A64D23E2513D00DCD162 /* SDL_pixels.c */; }; + A7D8ADE623E2514100DCD162 /* SDL_blit_0.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A66223E2513E00DCD162 /* SDL_blit_0.c */; }; + A7D8ADE723E2514100DCD162 /* SDL_blit_0.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A66223E2513E00DCD162 /* SDL_blit_0.c */; }; + A7D8ADE823E2514100DCD162 /* SDL_blit_0.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A66223E2513E00DCD162 /* SDL_blit_0.c */; }; + A7D8ADE923E2514100DCD162 /* SDL_blit_0.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A66223E2513E00DCD162 /* SDL_blit_0.c */; }; + A7D8ADEA23E2514100DCD162 /* SDL_blit_0.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A66223E2513E00DCD162 /* SDL_blit_0.c */; }; + A7D8ADEB23E2514100DCD162 /* SDL_blit_0.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A66223E2513E00DCD162 /* SDL_blit_0.c */; }; + A7D8ADEC23E2514100DCD162 /* SDL_blit_slow.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A66323E2513E00DCD162 /* SDL_blit_slow.h */; }; + A7D8ADED23E2514100DCD162 /* SDL_blit_slow.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A66323E2513E00DCD162 /* SDL_blit_slow.h */; }; + A7D8ADEE23E2514100DCD162 /* SDL_blit_slow.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A66323E2513E00DCD162 /* SDL_blit_slow.h */; }; + A7D8ADEF23E2514100DCD162 /* SDL_blit_slow.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A66323E2513E00DCD162 /* SDL_blit_slow.h */; }; + A7D8ADF023E2514100DCD162 /* SDL_blit_slow.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A66323E2513E00DCD162 /* SDL_blit_slow.h */; }; + A7D8ADF123E2514100DCD162 /* SDL_blit_slow.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A66323E2513E00DCD162 /* SDL_blit_slow.h */; }; + A7D8ADF223E2514100DCD162 /* SDL_blit_A.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A66423E2513E00DCD162 /* SDL_blit_A.c */; }; + A7D8ADF323E2514100DCD162 /* SDL_blit_A.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A66423E2513E00DCD162 /* SDL_blit_A.c */; }; + A7D8ADF423E2514100DCD162 /* SDL_blit_A.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A66423E2513E00DCD162 /* SDL_blit_A.c */; }; + A7D8ADF523E2514100DCD162 /* SDL_blit_A.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A66423E2513E00DCD162 /* SDL_blit_A.c */; }; + A7D8ADF623E2514100DCD162 /* SDL_blit_A.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A66423E2513E00DCD162 /* SDL_blit_A.c */; }; + A7D8ADF723E2514100DCD162 /* SDL_blit_A.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A66423E2513E00DCD162 /* SDL_blit_A.c */; }; + A7D8AE7623E2514100DCD162 /* SDL_clipboard.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A67B23E2513E00DCD162 /* SDL_clipboard.c */; }; + A7D8AE7723E2514100DCD162 /* SDL_clipboard.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A67B23E2513E00DCD162 /* SDL_clipboard.c */; }; + A7D8AE7823E2514100DCD162 /* SDL_clipboard.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A67B23E2513E00DCD162 /* SDL_clipboard.c */; }; + A7D8AE7923E2514100DCD162 /* SDL_clipboard.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A67B23E2513E00DCD162 /* SDL_clipboard.c */; }; + A7D8AE7A23E2514100DCD162 /* SDL_clipboard.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A67B23E2513E00DCD162 /* SDL_clipboard.c */; }; + A7D8AE7B23E2514100DCD162 /* SDL_clipboard.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A67B23E2513E00DCD162 /* SDL_clipboard.c */; }; + A7D8AE7C23E2514100DCD162 /* SDL_yuv.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A67C23E2513E00DCD162 /* SDL_yuv.c */; }; + A7D8AE7D23E2514100DCD162 /* SDL_yuv.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A67C23E2513E00DCD162 /* SDL_yuv.c */; }; + A7D8AE7E23E2514100DCD162 /* SDL_yuv.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A67C23E2513E00DCD162 /* SDL_yuv.c */; }; + A7D8AE7F23E2514100DCD162 /* SDL_yuv.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A67C23E2513E00DCD162 /* SDL_yuv.c */; }; + A7D8AE8023E2514100DCD162 /* SDL_yuv.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A67C23E2513E00DCD162 /* SDL_yuv.c */; }; + A7D8AE8123E2514100DCD162 /* SDL_yuv.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A67C23E2513E00DCD162 /* SDL_yuv.c */; }; + A7D8AE8223E2514100DCD162 /* SDL_cocoashape.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A67E23E2513E00DCD162 /* SDL_cocoashape.h */; }; + A7D8AE8323E2514100DCD162 /* SDL_cocoashape.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A67E23E2513E00DCD162 /* SDL_cocoashape.h */; }; + A7D8AE8423E2514100DCD162 /* SDL_cocoashape.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A67E23E2513E00DCD162 /* SDL_cocoashape.h */; }; + A7D8AE8523E2514100DCD162 /* SDL_cocoashape.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A67E23E2513E00DCD162 /* SDL_cocoashape.h */; }; + A7D8AE8623E2514100DCD162 /* SDL_cocoashape.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A67E23E2513E00DCD162 /* SDL_cocoashape.h */; }; + A7D8AE8723E2514100DCD162 /* SDL_cocoashape.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A67E23E2513E00DCD162 /* SDL_cocoashape.h */; }; + A7D8AE8823E2514100DCD162 /* SDL_cocoaopengl.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A67F23E2513E00DCD162 /* SDL_cocoaopengl.m */; }; + A7D8AE8923E2514100DCD162 /* SDL_cocoaopengl.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A67F23E2513E00DCD162 /* SDL_cocoaopengl.m */; }; + A7D8AE8A23E2514100DCD162 /* SDL_cocoaopengl.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A67F23E2513E00DCD162 /* SDL_cocoaopengl.m */; }; + A7D8AE8B23E2514100DCD162 /* SDL_cocoaopengl.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A67F23E2513E00DCD162 /* SDL_cocoaopengl.m */; }; + A7D8AE8C23E2514100DCD162 /* SDL_cocoaopengl.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A67F23E2513E00DCD162 /* SDL_cocoaopengl.m */; }; + A7D8AE8D23E2514100DCD162 /* SDL_cocoaopengl.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A67F23E2513E00DCD162 /* SDL_cocoaopengl.m */; }; + A7D8AE8E23E2514100DCD162 /* SDL_cocoakeyboard.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68023E2513E00DCD162 /* SDL_cocoakeyboard.h */; }; + A7D8AE8F23E2514100DCD162 /* SDL_cocoakeyboard.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68023E2513E00DCD162 /* SDL_cocoakeyboard.h */; }; + A7D8AE9023E2514100DCD162 /* SDL_cocoakeyboard.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68023E2513E00DCD162 /* SDL_cocoakeyboard.h */; }; + A7D8AE9123E2514100DCD162 /* SDL_cocoakeyboard.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68023E2513E00DCD162 /* SDL_cocoakeyboard.h */; }; + A7D8AE9223E2514100DCD162 /* SDL_cocoakeyboard.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68023E2513E00DCD162 /* SDL_cocoakeyboard.h */; }; + A7D8AE9323E2514100DCD162 /* SDL_cocoakeyboard.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68023E2513E00DCD162 /* SDL_cocoakeyboard.h */; }; + A7D8AE9423E2514100DCD162 /* SDL_cocoamodes.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68123E2513E00DCD162 /* SDL_cocoamodes.m */; }; + A7D8AE9523E2514100DCD162 /* SDL_cocoamodes.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68123E2513E00DCD162 /* SDL_cocoamodes.m */; }; + A7D8AE9623E2514100DCD162 /* SDL_cocoamodes.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68123E2513E00DCD162 /* SDL_cocoamodes.m */; }; + A7D8AE9723E2514100DCD162 /* SDL_cocoamodes.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68123E2513E00DCD162 /* SDL_cocoamodes.m */; }; + A7D8AE9823E2514100DCD162 /* SDL_cocoamodes.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68123E2513E00DCD162 /* SDL_cocoamodes.m */; }; + A7D8AE9923E2514100DCD162 /* SDL_cocoamodes.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68123E2513E00DCD162 /* SDL_cocoamodes.m */; }; + A7D8AE9A23E2514100DCD162 /* SDL_cocoaopengles.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68223E2513E00DCD162 /* SDL_cocoaopengles.m */; }; + A7D8AE9B23E2514100DCD162 /* SDL_cocoaopengles.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68223E2513E00DCD162 /* SDL_cocoaopengles.m */; }; + A7D8AE9C23E2514100DCD162 /* SDL_cocoaopengles.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68223E2513E00DCD162 /* SDL_cocoaopengles.m */; }; + A7D8AE9D23E2514100DCD162 /* SDL_cocoaopengles.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68223E2513E00DCD162 /* SDL_cocoaopengles.m */; }; + A7D8AE9E23E2514100DCD162 /* SDL_cocoaopengles.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68223E2513E00DCD162 /* SDL_cocoaopengles.m */; }; + A7D8AE9F23E2514100DCD162 /* SDL_cocoaopengles.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68223E2513E00DCD162 /* SDL_cocoaopengles.m */; }; + A7D8AEA023E2514100DCD162 /* SDL_cocoavulkan.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68323E2513E00DCD162 /* SDL_cocoavulkan.m */; }; + A7D8AEA123E2514100DCD162 /* SDL_cocoavulkan.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68323E2513E00DCD162 /* SDL_cocoavulkan.m */; }; + A7D8AEA223E2514100DCD162 /* SDL_cocoavulkan.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68323E2513E00DCD162 /* SDL_cocoavulkan.m */; }; + A7D8AEA323E2514100DCD162 /* SDL_cocoavulkan.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68323E2513E00DCD162 /* SDL_cocoavulkan.m */; }; + A7D8AEA423E2514100DCD162 /* SDL_cocoavulkan.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68323E2513E00DCD162 /* SDL_cocoavulkan.m */; }; + A7D8AEA523E2514100DCD162 /* SDL_cocoavulkan.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68323E2513E00DCD162 /* SDL_cocoavulkan.m */; }; + A7D8AEA623E2514100DCD162 /* SDL_cocoawindow.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68423E2513E00DCD162 /* SDL_cocoawindow.m */; }; + A7D8AEA723E2514100DCD162 /* SDL_cocoawindow.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68423E2513E00DCD162 /* SDL_cocoawindow.m */; }; + A7D8AEA823E2514100DCD162 /* SDL_cocoawindow.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68423E2513E00DCD162 /* SDL_cocoawindow.m */; }; + A7D8AEA923E2514100DCD162 /* SDL_cocoawindow.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68423E2513E00DCD162 /* SDL_cocoawindow.m */; }; + A7D8AEAA23E2514100DCD162 /* SDL_cocoawindow.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68423E2513E00DCD162 /* SDL_cocoawindow.m */; }; + A7D8AEAB23E2514100DCD162 /* SDL_cocoawindow.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68423E2513E00DCD162 /* SDL_cocoawindow.m */; }; + A7D8AEAC23E2514100DCD162 /* SDL_cocoavideo.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68523E2513E00DCD162 /* SDL_cocoavideo.m */; }; + A7D8AEAD23E2514100DCD162 /* SDL_cocoavideo.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68523E2513E00DCD162 /* SDL_cocoavideo.m */; }; + A7D8AEAE23E2514100DCD162 /* SDL_cocoavideo.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68523E2513E00DCD162 /* SDL_cocoavideo.m */; }; + A7D8AEAF23E2514100DCD162 /* SDL_cocoavideo.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68523E2513E00DCD162 /* SDL_cocoavideo.m */; }; + A7D8AEB023E2514100DCD162 /* SDL_cocoavideo.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68523E2513E00DCD162 /* SDL_cocoavideo.m */; }; + A7D8AEB123E2514100DCD162 /* SDL_cocoavideo.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68523E2513E00DCD162 /* SDL_cocoavideo.m */; }; + A7D8AEB223E2514100DCD162 /* SDL_cocoametalview.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68623E2513E00DCD162 /* SDL_cocoametalview.h */; }; + A7D8AEB323E2514100DCD162 /* SDL_cocoametalview.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68623E2513E00DCD162 /* SDL_cocoametalview.h */; }; + A7D8AEB423E2514100DCD162 /* SDL_cocoametalview.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68623E2513E00DCD162 /* SDL_cocoametalview.h */; }; + A7D8AEB523E2514100DCD162 /* SDL_cocoametalview.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68623E2513E00DCD162 /* SDL_cocoametalview.h */; }; + A7D8AEB623E2514100DCD162 /* SDL_cocoametalview.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68623E2513E00DCD162 /* SDL_cocoametalview.h */; }; + A7D8AEB723E2514100DCD162 /* SDL_cocoametalview.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68623E2513E00DCD162 /* SDL_cocoametalview.h */; }; + A7D8AEB823E2514100DCD162 /* SDL_cocoamouse.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68723E2513E00DCD162 /* SDL_cocoamouse.m */; }; + A7D8AEB923E2514100DCD162 /* SDL_cocoamouse.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68723E2513E00DCD162 /* SDL_cocoamouse.m */; }; + A7D8AEBA23E2514100DCD162 /* SDL_cocoamouse.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68723E2513E00DCD162 /* SDL_cocoamouse.m */; }; + A7D8AEBB23E2514100DCD162 /* SDL_cocoamouse.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68723E2513E00DCD162 /* SDL_cocoamouse.m */; }; + A7D8AEBC23E2514100DCD162 /* SDL_cocoamouse.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68723E2513E00DCD162 /* SDL_cocoamouse.m */; }; + A7D8AEBD23E2514100DCD162 /* SDL_cocoamouse.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68723E2513E00DCD162 /* SDL_cocoamouse.m */; }; + A7D8AEC423E2514100DCD162 /* SDL_cocoaevents.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68923E2513E00DCD162 /* SDL_cocoaevents.m */; }; + A7D8AEC523E2514100DCD162 /* SDL_cocoaevents.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68923E2513E00DCD162 /* SDL_cocoaevents.m */; }; + A7D8AEC623E2514100DCD162 /* SDL_cocoaevents.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68923E2513E00DCD162 /* SDL_cocoaevents.m */; }; + A7D8AEC723E2514100DCD162 /* SDL_cocoaevents.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68923E2513E00DCD162 /* SDL_cocoaevents.m */; }; + A7D8AEC823E2514100DCD162 /* SDL_cocoaevents.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68923E2513E00DCD162 /* SDL_cocoaevents.m */; }; + A7D8AEC923E2514100DCD162 /* SDL_cocoaevents.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68923E2513E00DCD162 /* SDL_cocoaevents.m */; }; + A7D8AECA23E2514100DCD162 /* SDL_cocoaclipboard.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68A23E2513E00DCD162 /* SDL_cocoaclipboard.h */; }; + A7D8AECB23E2514100DCD162 /* SDL_cocoaclipboard.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68A23E2513E00DCD162 /* SDL_cocoaclipboard.h */; }; + A7D8AECC23E2514100DCD162 /* SDL_cocoaclipboard.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68A23E2513E00DCD162 /* SDL_cocoaclipboard.h */; }; + A7D8AECD23E2514100DCD162 /* SDL_cocoaclipboard.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68A23E2513E00DCD162 /* SDL_cocoaclipboard.h */; }; + A7D8AECE23E2514100DCD162 /* SDL_cocoaclipboard.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68A23E2513E00DCD162 /* SDL_cocoaclipboard.h */; }; + A7D8AECF23E2514100DCD162 /* SDL_cocoaclipboard.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68A23E2513E00DCD162 /* SDL_cocoaclipboard.h */; }; + A7D8AED023E2514100DCD162 /* SDL_cocoamessagebox.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68B23E2513E00DCD162 /* SDL_cocoamessagebox.m */; }; + A7D8AED123E2514100DCD162 /* SDL_cocoamessagebox.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68B23E2513E00DCD162 /* SDL_cocoamessagebox.m */; }; + A7D8AED223E2514100DCD162 /* SDL_cocoamessagebox.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68B23E2513E00DCD162 /* SDL_cocoamessagebox.m */; }; + A7D8AED323E2514100DCD162 /* SDL_cocoamessagebox.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68B23E2513E00DCD162 /* SDL_cocoamessagebox.m */; }; + A7D8AED423E2514100DCD162 /* SDL_cocoamessagebox.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68B23E2513E00DCD162 /* SDL_cocoamessagebox.m */; }; + A7D8AED523E2514100DCD162 /* SDL_cocoamessagebox.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68B23E2513E00DCD162 /* SDL_cocoamessagebox.m */; }; + A7D8AED623E2514100DCD162 /* SDL_cocoakeyboard.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68C23E2513E00DCD162 /* SDL_cocoakeyboard.m */; }; + A7D8AED723E2514100DCD162 /* SDL_cocoakeyboard.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68C23E2513E00DCD162 /* SDL_cocoakeyboard.m */; }; + A7D8AED823E2514100DCD162 /* SDL_cocoakeyboard.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68C23E2513E00DCD162 /* SDL_cocoakeyboard.m */; }; + A7D8AED923E2514100DCD162 /* SDL_cocoakeyboard.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68C23E2513E00DCD162 /* SDL_cocoakeyboard.m */; }; + A7D8AEDA23E2514100DCD162 /* SDL_cocoakeyboard.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68C23E2513E00DCD162 /* SDL_cocoakeyboard.m */; }; + A7D8AEDB23E2514100DCD162 /* SDL_cocoakeyboard.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68C23E2513E00DCD162 /* SDL_cocoakeyboard.m */; }; + A7D8AEDC23E2514100DCD162 /* SDL_cocoaopengl.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68D23E2513E00DCD162 /* SDL_cocoaopengl.h */; }; + A7D8AEDD23E2514100DCD162 /* SDL_cocoaopengl.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68D23E2513E00DCD162 /* SDL_cocoaopengl.h */; }; + A7D8AEDE23E2514100DCD162 /* SDL_cocoaopengl.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68D23E2513E00DCD162 /* SDL_cocoaopengl.h */; }; + A7D8AEDF23E2514100DCD162 /* SDL_cocoaopengl.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68D23E2513E00DCD162 /* SDL_cocoaopengl.h */; }; + A7D8AEE023E2514100DCD162 /* SDL_cocoaopengl.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68D23E2513E00DCD162 /* SDL_cocoaopengl.h */; }; + A7D8AEE123E2514100DCD162 /* SDL_cocoaopengl.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68D23E2513E00DCD162 /* SDL_cocoaopengl.h */; }; + A7D8AEE223E2514100DCD162 /* SDL_cocoashape.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68E23E2513E00DCD162 /* SDL_cocoashape.m */; }; + A7D8AEE323E2514100DCD162 /* SDL_cocoashape.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68E23E2513E00DCD162 /* SDL_cocoashape.m */; }; + A7D8AEE423E2514100DCD162 /* SDL_cocoashape.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68E23E2513E00DCD162 /* SDL_cocoashape.m */; }; + A7D8AEE523E2514100DCD162 /* SDL_cocoashape.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68E23E2513E00DCD162 /* SDL_cocoashape.m */; }; + A7D8AEE623E2514100DCD162 /* SDL_cocoashape.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68E23E2513E00DCD162 /* SDL_cocoashape.m */; }; + A7D8AEE723E2514100DCD162 /* SDL_cocoashape.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A68E23E2513E00DCD162 /* SDL_cocoashape.m */; }; + A7D8AEE823E2514100DCD162 /* SDL_cocoavulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68F23E2513E00DCD162 /* SDL_cocoavulkan.h */; }; + A7D8AEE923E2514100DCD162 /* SDL_cocoavulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68F23E2513E00DCD162 /* SDL_cocoavulkan.h */; }; + A7D8AEEA23E2514100DCD162 /* SDL_cocoavulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68F23E2513E00DCD162 /* SDL_cocoavulkan.h */; }; + A7D8AEEB23E2514100DCD162 /* SDL_cocoavulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68F23E2513E00DCD162 /* SDL_cocoavulkan.h */; }; + A7D8AEEC23E2514100DCD162 /* SDL_cocoavulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68F23E2513E00DCD162 /* SDL_cocoavulkan.h */; }; + A7D8AEED23E2514100DCD162 /* SDL_cocoavulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68F23E2513E00DCD162 /* SDL_cocoavulkan.h */; }; + A7D8AEEE23E2514100DCD162 /* SDL_cocoaopengles.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69023E2513E00DCD162 /* SDL_cocoaopengles.h */; }; + A7D8AEEF23E2514100DCD162 /* SDL_cocoaopengles.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69023E2513E00DCD162 /* SDL_cocoaopengles.h */; }; + A7D8AEF023E2514100DCD162 /* SDL_cocoaopengles.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69023E2513E00DCD162 /* SDL_cocoaopengles.h */; }; + A7D8AEF123E2514100DCD162 /* SDL_cocoaopengles.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69023E2513E00DCD162 /* SDL_cocoaopengles.h */; }; + A7D8AEF223E2514100DCD162 /* SDL_cocoaopengles.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69023E2513E00DCD162 /* SDL_cocoaopengles.h */; }; + A7D8AEF323E2514100DCD162 /* SDL_cocoaopengles.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69023E2513E00DCD162 /* SDL_cocoaopengles.h */; }; + A7D8AEF423E2514100DCD162 /* SDL_cocoamodes.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69123E2513E00DCD162 /* SDL_cocoamodes.h */; }; + A7D8AEF523E2514100DCD162 /* SDL_cocoamodes.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69123E2513E00DCD162 /* SDL_cocoamodes.h */; }; + A7D8AEF623E2514100DCD162 /* SDL_cocoamodes.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69123E2513E00DCD162 /* SDL_cocoamodes.h */; }; + A7D8AEF723E2514100DCD162 /* SDL_cocoamodes.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69123E2513E00DCD162 /* SDL_cocoamodes.h */; }; + A7D8AEF823E2514100DCD162 /* SDL_cocoamodes.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69123E2513E00DCD162 /* SDL_cocoamodes.h */; }; + A7D8AEF923E2514100DCD162 /* SDL_cocoamodes.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69123E2513E00DCD162 /* SDL_cocoamodes.h */; }; + A7D8AEFA23E2514100DCD162 /* SDL_cocoawindow.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69223E2513E00DCD162 /* SDL_cocoawindow.h */; }; + A7D8AEFB23E2514100DCD162 /* SDL_cocoawindow.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69223E2513E00DCD162 /* SDL_cocoawindow.h */; }; + A7D8AEFC23E2514100DCD162 /* SDL_cocoawindow.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69223E2513E00DCD162 /* SDL_cocoawindow.h */; }; + A7D8AEFD23E2514100DCD162 /* SDL_cocoawindow.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69223E2513E00DCD162 /* SDL_cocoawindow.h */; }; + A7D8AEFE23E2514100DCD162 /* SDL_cocoawindow.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69223E2513E00DCD162 /* SDL_cocoawindow.h */; }; + A7D8AEFF23E2514100DCD162 /* SDL_cocoawindow.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69223E2513E00DCD162 /* SDL_cocoawindow.h */; }; + A7D8AF0023E2514100DCD162 /* SDL_cocoavideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69323E2513E00DCD162 /* SDL_cocoavideo.h */; }; + A7D8AF0123E2514100DCD162 /* SDL_cocoavideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69323E2513E00DCD162 /* SDL_cocoavideo.h */; }; + A7D8AF0223E2514100DCD162 /* SDL_cocoavideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69323E2513E00DCD162 /* SDL_cocoavideo.h */; }; + A7D8AF0323E2514100DCD162 /* SDL_cocoavideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69323E2513E00DCD162 /* SDL_cocoavideo.h */; }; + A7D8AF0423E2514100DCD162 /* SDL_cocoavideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69323E2513E00DCD162 /* SDL_cocoavideo.h */; }; + A7D8AF0523E2514100DCD162 /* SDL_cocoavideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69323E2513E00DCD162 /* SDL_cocoavideo.h */; }; + A7D8AF0623E2514100DCD162 /* SDL_cocoamessagebox.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69423E2513E00DCD162 /* SDL_cocoamessagebox.h */; }; + A7D8AF0723E2514100DCD162 /* SDL_cocoamessagebox.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69423E2513E00DCD162 /* SDL_cocoamessagebox.h */; }; + A7D8AF0823E2514100DCD162 /* SDL_cocoamessagebox.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69423E2513E00DCD162 /* SDL_cocoamessagebox.h */; }; + A7D8AF0923E2514100DCD162 /* SDL_cocoamessagebox.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69423E2513E00DCD162 /* SDL_cocoamessagebox.h */; }; + A7D8AF0A23E2514100DCD162 /* SDL_cocoamessagebox.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69423E2513E00DCD162 /* SDL_cocoamessagebox.h */; }; + A7D8AF0B23E2514100DCD162 /* SDL_cocoamessagebox.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69423E2513E00DCD162 /* SDL_cocoamessagebox.h */; }; + A7D8AF0C23E2514100DCD162 /* SDL_cocoaclipboard.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A69523E2513E00DCD162 /* SDL_cocoaclipboard.m */; }; + A7D8AF0D23E2514100DCD162 /* SDL_cocoaclipboard.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A69523E2513E00DCD162 /* SDL_cocoaclipboard.m */; }; + A7D8AF0E23E2514100DCD162 /* SDL_cocoaclipboard.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A69523E2513E00DCD162 /* SDL_cocoaclipboard.m */; }; + A7D8AF0F23E2514100DCD162 /* SDL_cocoaclipboard.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A69523E2513E00DCD162 /* SDL_cocoaclipboard.m */; }; + A7D8AF1023E2514100DCD162 /* SDL_cocoaclipboard.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A69523E2513E00DCD162 /* SDL_cocoaclipboard.m */; }; + A7D8AF1123E2514100DCD162 /* SDL_cocoaclipboard.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A69523E2513E00DCD162 /* SDL_cocoaclipboard.m */; }; + A7D8AF1223E2514100DCD162 /* SDL_cocoaevents.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69623E2513E00DCD162 /* SDL_cocoaevents.h */; }; + A7D8AF1323E2514100DCD162 /* SDL_cocoaevents.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69623E2513E00DCD162 /* SDL_cocoaevents.h */; }; + A7D8AF1423E2514100DCD162 /* SDL_cocoaevents.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69623E2513E00DCD162 /* SDL_cocoaevents.h */; }; + A7D8AF1523E2514100DCD162 /* SDL_cocoaevents.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69623E2513E00DCD162 /* SDL_cocoaevents.h */; }; + A7D8AF1623E2514100DCD162 /* SDL_cocoaevents.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69623E2513E00DCD162 /* SDL_cocoaevents.h */; }; + A7D8AF1723E2514100DCD162 /* SDL_cocoaevents.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69623E2513E00DCD162 /* SDL_cocoaevents.h */; }; + A7D8AF1E23E2514100DCD162 /* SDL_cocoamouse.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69823E2513E00DCD162 /* SDL_cocoamouse.h */; }; + A7D8AF1F23E2514100DCD162 /* SDL_cocoamouse.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69823E2513E00DCD162 /* SDL_cocoamouse.h */; }; + A7D8AF2023E2514100DCD162 /* SDL_cocoamouse.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69823E2513E00DCD162 /* SDL_cocoamouse.h */; }; + A7D8AF2123E2514100DCD162 /* SDL_cocoamouse.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69823E2513E00DCD162 /* SDL_cocoamouse.h */; }; + A7D8AF2223E2514100DCD162 /* SDL_cocoamouse.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69823E2513E00DCD162 /* SDL_cocoamouse.h */; }; + A7D8AF2323E2514100DCD162 /* SDL_cocoamouse.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A69823E2513E00DCD162 /* SDL_cocoamouse.h */; }; + A7D8AF2423E2514100DCD162 /* SDL_cocoametalview.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A69923E2513E00DCD162 /* SDL_cocoametalview.m */; }; + A7D8AF2523E2514100DCD162 /* SDL_cocoametalview.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A69923E2513E00DCD162 /* SDL_cocoametalview.m */; }; + A7D8AF2623E2514100DCD162 /* SDL_cocoametalview.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A69923E2513E00DCD162 /* SDL_cocoametalview.m */; }; + A7D8AF2723E2514100DCD162 /* SDL_cocoametalview.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A69923E2513E00DCD162 /* SDL_cocoametalview.m */; }; + A7D8AF2823E2514100DCD162 /* SDL_cocoametalview.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A69923E2513E00DCD162 /* SDL_cocoametalview.m */; }; + A7D8AF2923E2514100DCD162 /* SDL_cocoametalview.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A69923E2513E00DCD162 /* SDL_cocoametalview.m */; }; + A7D8AFC023E2514200DCD162 /* SDL_egl.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A6B623E2513E00DCD162 /* SDL_egl.c */; }; + A7D8AFC123E2514200DCD162 /* SDL_egl.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A6B623E2513E00DCD162 /* SDL_egl.c */; }; + A7D8AFC223E2514200DCD162 /* SDL_egl.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A6B623E2513E00DCD162 /* SDL_egl.c */; }; + A7D8AFC323E2514200DCD162 /* SDL_egl.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A6B623E2513E00DCD162 /* SDL_egl.c */; }; + A7D8AFC423E2514200DCD162 /* SDL_egl.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A6B623E2513E00DCD162 /* SDL_egl.c */; }; + A7D8AFC523E2514200DCD162 /* SDL_egl.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A6B623E2513E00DCD162 /* SDL_egl.c */; }; + A7D8B14023E2514200DCD162 /* SDL_blit_1.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A6FA23E2513E00DCD162 /* SDL_blit_1.c */; }; + A7D8B14123E2514200DCD162 /* SDL_blit_1.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A6FA23E2513E00DCD162 /* SDL_blit_1.c */; }; + A7D8B14223E2514200DCD162 /* SDL_blit_1.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A6FA23E2513E00DCD162 /* SDL_blit_1.c */; }; + A7D8B14323E2514200DCD162 /* SDL_blit_1.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A6FA23E2513E00DCD162 /* SDL_blit_1.c */; }; + A7D8B14423E2514200DCD162 /* SDL_blit_1.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A6FA23E2513E00DCD162 /* SDL_blit_1.c */; }; + A7D8B14523E2514200DCD162 /* SDL_blit_1.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A6FA23E2513E00DCD162 /* SDL_blit_1.c */; }; + A7D8B22423E2514200DCD162 /* gl2ext.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72323E2513E00DCD162 /* gl2ext.h */; }; + A7D8B22523E2514200DCD162 /* gl2ext.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72323E2513E00DCD162 /* gl2ext.h */; }; + A7D8B22623E2514200DCD162 /* gl2ext.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72323E2513E00DCD162 /* gl2ext.h */; }; + A7D8B22723E2514200DCD162 /* gl2ext.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72323E2513E00DCD162 /* gl2ext.h */; }; + A7D8B22823E2514200DCD162 /* gl2ext.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72323E2513E00DCD162 /* gl2ext.h */; }; + A7D8B22923E2514200DCD162 /* gl2ext.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72323E2513E00DCD162 /* gl2ext.h */; }; + A7D8B22A23E2514200DCD162 /* gl2.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72423E2513E00DCD162 /* gl2.h */; }; + A7D8B22B23E2514200DCD162 /* gl2.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72423E2513E00DCD162 /* gl2.h */; }; + A7D8B22C23E2514200DCD162 /* gl2.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72423E2513E00DCD162 /* gl2.h */; }; + A7D8B22D23E2514200DCD162 /* gl2.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72423E2513E00DCD162 /* gl2.h */; }; + A7D8B22E23E2514200DCD162 /* gl2.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72423E2513E00DCD162 /* gl2.h */; }; + A7D8B22F23E2514200DCD162 /* gl2.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72423E2513E00DCD162 /* gl2.h */; }; + A7D8B23023E2514200DCD162 /* gl2platform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72523E2513E00DCD162 /* gl2platform.h */; }; + A7D8B23123E2514200DCD162 /* gl2platform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72523E2513E00DCD162 /* gl2platform.h */; }; + A7D8B23223E2514200DCD162 /* gl2platform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72523E2513E00DCD162 /* gl2platform.h */; }; + A7D8B23323E2514200DCD162 /* gl2platform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72523E2513E00DCD162 /* gl2platform.h */; }; + A7D8B23423E2514200DCD162 /* gl2platform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72523E2513E00DCD162 /* gl2platform.h */; }; + A7D8B23523E2514200DCD162 /* gl2platform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72523E2513E00DCD162 /* gl2platform.h */; }; + A7D8B23623E2514200DCD162 /* khrplatform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72723E2513E00DCD162 /* khrplatform.h */; }; + A7D8B23723E2514200DCD162 /* khrplatform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72723E2513E00DCD162 /* khrplatform.h */; }; + A7D8B23823E2514200DCD162 /* khrplatform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72723E2513E00DCD162 /* khrplatform.h */; }; + A7D8B23923E2514200DCD162 /* khrplatform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72723E2513E00DCD162 /* khrplatform.h */; }; + A7D8B23A23E2514200DCD162 /* khrplatform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72723E2513E00DCD162 /* khrplatform.h */; }; + A7D8B23B23E2514200DCD162 /* khrplatform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72723E2513E00DCD162 /* khrplatform.h */; }; + A7D8B23C23E2514200DCD162 /* egl.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72923E2513E00DCD162 /* egl.h */; }; + A7D8B23D23E2514200DCD162 /* egl.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72923E2513E00DCD162 /* egl.h */; }; + A7D8B23E23E2514200DCD162 /* egl.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72923E2513E00DCD162 /* egl.h */; }; + A7D8B23F23E2514200DCD162 /* egl.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72923E2513E00DCD162 /* egl.h */; }; + A7D8B24023E2514200DCD162 /* egl.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72923E2513E00DCD162 /* egl.h */; }; + A7D8B24123E2514200DCD162 /* egl.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72923E2513E00DCD162 /* egl.h */; }; + A7D8B24223E2514200DCD162 /* eglext.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72A23E2513E00DCD162 /* eglext.h */; }; + A7D8B24323E2514200DCD162 /* eglext.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72A23E2513E00DCD162 /* eglext.h */; }; + A7D8B24423E2514200DCD162 /* eglext.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72A23E2513E00DCD162 /* eglext.h */; }; + A7D8B24523E2514200DCD162 /* eglext.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72A23E2513E00DCD162 /* eglext.h */; }; + A7D8B24623E2514200DCD162 /* eglext.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72A23E2513E00DCD162 /* eglext.h */; }; + A7D8B24723E2514200DCD162 /* eglext.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72A23E2513E00DCD162 /* eglext.h */; }; + A7D8B24823E2514200DCD162 /* eglplatform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72B23E2513E00DCD162 /* eglplatform.h */; }; + A7D8B24923E2514200DCD162 /* eglplatform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72B23E2513E00DCD162 /* eglplatform.h */; }; + A7D8B24A23E2514200DCD162 /* eglplatform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72B23E2513E00DCD162 /* eglplatform.h */; }; + A7D8B24B23E2514200DCD162 /* eglplatform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72B23E2513E00DCD162 /* eglplatform.h */; }; + A7D8B24C23E2514200DCD162 /* eglplatform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72B23E2513E00DCD162 /* eglplatform.h */; }; + A7D8B24D23E2514200DCD162 /* eglplatform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72B23E2513E00DCD162 /* eglplatform.h */; }; + A7D8B24E23E2514200DCD162 /* vk_layer.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72D23E2513E00DCD162 /* vk_layer.h */; }; + A7D8B24F23E2514200DCD162 /* vk_layer.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72D23E2513E00DCD162 /* vk_layer.h */; }; + A7D8B25023E2514200DCD162 /* vk_layer.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72D23E2513E00DCD162 /* vk_layer.h */; }; + A7D8B25123E2514200DCD162 /* vk_layer.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72D23E2513E00DCD162 /* vk_layer.h */; }; + A7D8B25223E2514200DCD162 /* vk_layer.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72D23E2513E00DCD162 /* vk_layer.h */; }; + A7D8B25323E2514200DCD162 /* vk_layer.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72D23E2513E00DCD162 /* vk_layer.h */; }; + A7D8B25423E2514200DCD162 /* vk_icd.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72E23E2513E00DCD162 /* vk_icd.h */; }; + A7D8B25523E2514200DCD162 /* vk_icd.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72E23E2513E00DCD162 /* vk_icd.h */; }; + A7D8B25623E2514200DCD162 /* vk_icd.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72E23E2513E00DCD162 /* vk_icd.h */; }; + A7D8B25723E2514200DCD162 /* vk_icd.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72E23E2513E00DCD162 /* vk_icd.h */; }; + A7D8B25823E2514200DCD162 /* vk_icd.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72E23E2513E00DCD162 /* vk_icd.h */; }; + A7D8B25923E2514200DCD162 /* vk_icd.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72E23E2513E00DCD162 /* vk_icd.h */; }; + A7D8B25A23E2514200DCD162 /* vulkan_vi.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72F23E2513E00DCD162 /* vulkan_vi.h */; }; + A7D8B25B23E2514200DCD162 /* vulkan_vi.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72F23E2513E00DCD162 /* vulkan_vi.h */; }; + A7D8B25C23E2514200DCD162 /* vulkan_vi.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72F23E2513E00DCD162 /* vulkan_vi.h */; }; + A7D8B25D23E2514200DCD162 /* vulkan_vi.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72F23E2513E00DCD162 /* vulkan_vi.h */; }; + A7D8B25E23E2514200DCD162 /* vulkan_vi.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72F23E2513E00DCD162 /* vulkan_vi.h */; }; + A7D8B25F23E2514200DCD162 /* vulkan_vi.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72F23E2513E00DCD162 /* vulkan_vi.h */; }; + A7D8B26023E2514200DCD162 /* vulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73023E2513E00DCD162 /* vulkan.h */; }; + A7D8B26123E2514200DCD162 /* vulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73023E2513E00DCD162 /* vulkan.h */; }; + A7D8B26223E2514200DCD162 /* vulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73023E2513E00DCD162 /* vulkan.h */; }; + A7D8B26323E2514200DCD162 /* vulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73023E2513E00DCD162 /* vulkan.h */; }; + A7D8B26423E2514200DCD162 /* vulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73023E2513E00DCD162 /* vulkan.h */; }; + A7D8B26523E2514200DCD162 /* vulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73023E2513E00DCD162 /* vulkan.h */; }; + A7D8B26623E2514200DCD162 /* vk_platform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73123E2513E00DCD162 /* vk_platform.h */; }; + A7D8B26723E2514200DCD162 /* vk_platform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73123E2513E00DCD162 /* vk_platform.h */; }; + A7D8B26823E2514200DCD162 /* vk_platform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73123E2513E00DCD162 /* vk_platform.h */; }; + A7D8B26923E2514200DCD162 /* vk_platform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73123E2513E00DCD162 /* vk_platform.h */; }; + A7D8B26A23E2514200DCD162 /* vk_platform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73123E2513E00DCD162 /* vk_platform.h */; }; + A7D8B26B23E2514200DCD162 /* vk_platform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73123E2513E00DCD162 /* vk_platform.h */; }; + A7D8B27223E2514200DCD162 /* vulkan_fuchsia.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73323E2513E00DCD162 /* vulkan_fuchsia.h */; }; + A7D8B27323E2514200DCD162 /* vulkan_fuchsia.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73323E2513E00DCD162 /* vulkan_fuchsia.h */; }; + A7D8B27423E2514200DCD162 /* vulkan_fuchsia.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73323E2513E00DCD162 /* vulkan_fuchsia.h */; }; + A7D8B27523E2514200DCD162 /* vulkan_fuchsia.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73323E2513E00DCD162 /* vulkan_fuchsia.h */; }; + A7D8B27623E2514200DCD162 /* vulkan_fuchsia.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73323E2513E00DCD162 /* vulkan_fuchsia.h */; }; + A7D8B27723E2514200DCD162 /* vulkan_fuchsia.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73323E2513E00DCD162 /* vulkan_fuchsia.h */; }; + A7D8B27823E2514200DCD162 /* vulkan_wayland.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73423E2513E00DCD162 /* vulkan_wayland.h */; }; + A7D8B27923E2514200DCD162 /* vulkan_wayland.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73423E2513E00DCD162 /* vulkan_wayland.h */; }; + A7D8B27A23E2514200DCD162 /* vulkan_wayland.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73423E2513E00DCD162 /* vulkan_wayland.h */; }; + A7D8B27B23E2514200DCD162 /* vulkan_wayland.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73423E2513E00DCD162 /* vulkan_wayland.h */; }; + A7D8B27C23E2514200DCD162 /* vulkan_wayland.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73423E2513E00DCD162 /* vulkan_wayland.h */; }; + A7D8B27D23E2514200DCD162 /* vulkan_wayland.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73423E2513E00DCD162 /* vulkan_wayland.h */; }; + A7D8B27E23E2514200DCD162 /* vulkan_win32.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73523E2513E00DCD162 /* vulkan_win32.h */; }; + A7D8B27F23E2514200DCD162 /* vulkan_win32.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73523E2513E00DCD162 /* vulkan_win32.h */; }; + A7D8B28023E2514200DCD162 /* vulkan_win32.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73523E2513E00DCD162 /* vulkan_win32.h */; }; + A7D8B28123E2514200DCD162 /* vulkan_win32.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73523E2513E00DCD162 /* vulkan_win32.h */; }; + A7D8B28223E2514200DCD162 /* vulkan_win32.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73523E2513E00DCD162 /* vulkan_win32.h */; }; + A7D8B28323E2514200DCD162 /* vulkan_win32.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73523E2513E00DCD162 /* vulkan_win32.h */; }; + A7D8B28423E2514200DCD162 /* vulkan_macos.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73623E2513E00DCD162 /* vulkan_macos.h */; }; + A7D8B28523E2514200DCD162 /* vulkan_macos.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73623E2513E00DCD162 /* vulkan_macos.h */; }; + A7D8B28623E2514200DCD162 /* vulkan_macos.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73623E2513E00DCD162 /* vulkan_macos.h */; }; + A7D8B28723E2514200DCD162 /* vulkan_macos.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73623E2513E00DCD162 /* vulkan_macos.h */; }; + A7D8B28823E2514200DCD162 /* vulkan_macos.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73623E2513E00DCD162 /* vulkan_macos.h */; }; + A7D8B28923E2514200DCD162 /* vulkan_macos.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73623E2513E00DCD162 /* vulkan_macos.h */; }; + A7D8B28A23E2514200DCD162 /* vulkan_xlib_xrandr.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73723E2513E00DCD162 /* vulkan_xlib_xrandr.h */; }; + A7D8B28B23E2514200DCD162 /* vulkan_xlib_xrandr.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73723E2513E00DCD162 /* vulkan_xlib_xrandr.h */; }; + A7D8B28C23E2514200DCD162 /* vulkan_xlib_xrandr.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73723E2513E00DCD162 /* vulkan_xlib_xrandr.h */; }; + A7D8B28D23E2514200DCD162 /* vulkan_xlib_xrandr.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73723E2513E00DCD162 /* vulkan_xlib_xrandr.h */; }; + A7D8B28E23E2514200DCD162 /* vulkan_xlib_xrandr.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73723E2513E00DCD162 /* vulkan_xlib_xrandr.h */; }; + A7D8B28F23E2514200DCD162 /* vulkan_xlib_xrandr.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73723E2513E00DCD162 /* vulkan_xlib_xrandr.h */; }; + A7D8B29023E2514200DCD162 /* vulkan_xcb.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73823E2513E00DCD162 /* vulkan_xcb.h */; }; + A7D8B29123E2514200DCD162 /* vulkan_xcb.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73823E2513E00DCD162 /* vulkan_xcb.h */; }; + A7D8B29223E2514200DCD162 /* vulkan_xcb.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73823E2513E00DCD162 /* vulkan_xcb.h */; }; + A7D8B29323E2514200DCD162 /* vulkan_xcb.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73823E2513E00DCD162 /* vulkan_xcb.h */; }; + A7D8B29423E2514200DCD162 /* vulkan_xcb.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73823E2513E00DCD162 /* vulkan_xcb.h */; }; + A7D8B29523E2514200DCD162 /* vulkan_xcb.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73823E2513E00DCD162 /* vulkan_xcb.h */; }; + A7D8B29C23E2514200DCD162 /* vulkan_xlib.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73A23E2513E00DCD162 /* vulkan_xlib.h */; }; + A7D8B29D23E2514200DCD162 /* vulkan_xlib.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73A23E2513E00DCD162 /* vulkan_xlib.h */; }; + A7D8B29E23E2514200DCD162 /* vulkan_xlib.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73A23E2513E00DCD162 /* vulkan_xlib.h */; }; + A7D8B29F23E2514200DCD162 /* vulkan_xlib.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73A23E2513E00DCD162 /* vulkan_xlib.h */; }; + A7D8B2A023E2514200DCD162 /* vulkan_xlib.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73A23E2513E00DCD162 /* vulkan_xlib.h */; }; + A7D8B2A123E2514200DCD162 /* vulkan_xlib.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73A23E2513E00DCD162 /* vulkan_xlib.h */; }; + A7D8B2A223E2514200DCD162 /* vulkan_ios.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73B23E2513E00DCD162 /* vulkan_ios.h */; }; + A7D8B2A323E2514200DCD162 /* vulkan_ios.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73B23E2513E00DCD162 /* vulkan_ios.h */; }; + A7D8B2A423E2514200DCD162 /* vulkan_ios.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73B23E2513E00DCD162 /* vulkan_ios.h */; }; + A7D8B2A523E2514200DCD162 /* vulkan_ios.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73B23E2513E00DCD162 /* vulkan_ios.h */; }; + A7D8B2A623E2514200DCD162 /* vulkan_ios.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73B23E2513E00DCD162 /* vulkan_ios.h */; }; + A7D8B2A723E2514200DCD162 /* vulkan_ios.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73B23E2513E00DCD162 /* vulkan_ios.h */; }; + A7D8B2A823E2514200DCD162 /* vulkan_core.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73C23E2513E00DCD162 /* vulkan_core.h */; }; + A7D8B2A923E2514200DCD162 /* vulkan_core.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73C23E2513E00DCD162 /* vulkan_core.h */; }; + A7D8B2AA23E2514200DCD162 /* vulkan_core.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73C23E2513E00DCD162 /* vulkan_core.h */; }; + A7D8B2AB23E2514200DCD162 /* vulkan_core.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73C23E2513E00DCD162 /* vulkan_core.h */; }; + A7D8B2AC23E2514200DCD162 /* vulkan_core.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73C23E2513E00DCD162 /* vulkan_core.h */; }; + A7D8B2AD23E2514200DCD162 /* vulkan_core.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73C23E2513E00DCD162 /* vulkan_core.h */; }; + A7D8B2AE23E2514200DCD162 /* vk_sdk_platform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73D23E2513E00DCD162 /* vk_sdk_platform.h */; }; + A7D8B2AF23E2514200DCD162 /* vk_sdk_platform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73D23E2513E00DCD162 /* vk_sdk_platform.h */; }; + A7D8B2B023E2514200DCD162 /* vk_sdk_platform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73D23E2513E00DCD162 /* vk_sdk_platform.h */; }; + A7D8B2B123E2514200DCD162 /* vk_sdk_platform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73D23E2513E00DCD162 /* vk_sdk_platform.h */; }; + A7D8B2B223E2514200DCD162 /* vk_sdk_platform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73D23E2513E00DCD162 /* vk_sdk_platform.h */; }; + A7D8B2B323E2514200DCD162 /* vk_sdk_platform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73D23E2513E00DCD162 /* vk_sdk_platform.h */; }; + A7D8B2B423E2514200DCD162 /* vulkan_android.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73E23E2513E00DCD162 /* vulkan_android.h */; }; + A7D8B2B523E2514200DCD162 /* vulkan_android.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73E23E2513E00DCD162 /* vulkan_android.h */; }; + A7D8B2B623E2514200DCD162 /* vulkan_android.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73E23E2513E00DCD162 /* vulkan_android.h */; }; + A7D8B2B723E2514200DCD162 /* vulkan_android.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73E23E2513E00DCD162 /* vulkan_android.h */; }; + A7D8B2B823E2514200DCD162 /* vulkan_android.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73E23E2513E00DCD162 /* vulkan_android.h */; }; + A7D8B2B923E2514200DCD162 /* vulkan_android.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73E23E2513E00DCD162 /* vulkan_android.h */; }; + A7D8B2BA23E2514200DCD162 /* SDL_blit_auto.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73F23E2513E00DCD162 /* SDL_blit_auto.h */; }; + A7D8B2BB23E2514200DCD162 /* SDL_blit_auto.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73F23E2513E00DCD162 /* SDL_blit_auto.h */; }; + A7D8B2BC23E2514200DCD162 /* SDL_blit_auto.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73F23E2513E00DCD162 /* SDL_blit_auto.h */; }; + A7D8B2BD23E2514200DCD162 /* SDL_blit_auto.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73F23E2513E00DCD162 /* SDL_blit_auto.h */; }; + A7D8B2BE23E2514200DCD162 /* SDL_blit_auto.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73F23E2513E00DCD162 /* SDL_blit_auto.h */; }; + A7D8B2BF23E2514200DCD162 /* SDL_blit_auto.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73F23E2513E00DCD162 /* SDL_blit_auto.h */; }; + A7D8B2C023E2514200DCD162 /* SDL_pixels_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A74023E2513E00DCD162 /* SDL_pixels_c.h */; }; + A7D8B2C123E2514200DCD162 /* SDL_pixels_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A74023E2513E00DCD162 /* SDL_pixels_c.h */; }; + A7D8B2C223E2514200DCD162 /* SDL_pixels_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A74023E2513E00DCD162 /* SDL_pixels_c.h */; }; + A7D8B2C323E2514200DCD162 /* SDL_pixels_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A74023E2513E00DCD162 /* SDL_pixels_c.h */; }; + A7D8B2C423E2514200DCD162 /* SDL_pixels_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A74023E2513E00DCD162 /* SDL_pixels_c.h */; }; + A7D8B2C523E2514200DCD162 /* SDL_pixels_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A74023E2513E00DCD162 /* SDL_pixels_c.h */; }; + A7D8B39823E2514200DCD162 /* SDL_blit_copy.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A76623E2513E00DCD162 /* SDL_blit_copy.h */; }; + A7D8B39923E2514200DCD162 /* SDL_blit_copy.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A76623E2513E00DCD162 /* SDL_blit_copy.h */; }; + A7D8B39A23E2514200DCD162 /* SDL_blit_copy.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A76623E2513E00DCD162 /* SDL_blit_copy.h */; }; + A7D8B39B23E2514200DCD162 /* SDL_blit_copy.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A76623E2513E00DCD162 /* SDL_blit_copy.h */; }; + A7D8B39C23E2514200DCD162 /* SDL_blit_copy.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A76623E2513E00DCD162 /* SDL_blit_copy.h */; }; + A7D8B39D23E2514200DCD162 /* SDL_blit_copy.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A76623E2513E00DCD162 /* SDL_blit_copy.h */; }; + A7D8B39E23E2514200DCD162 /* SDL_RLEaccel_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A76723E2513E00DCD162 /* SDL_RLEaccel_c.h */; }; + A7D8B39F23E2514200DCD162 /* SDL_RLEaccel_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A76723E2513E00DCD162 /* SDL_RLEaccel_c.h */; }; + A7D8B3A023E2514200DCD162 /* SDL_RLEaccel_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A76723E2513E00DCD162 /* SDL_RLEaccel_c.h */; }; + A7D8B3A123E2514200DCD162 /* SDL_RLEaccel_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A76723E2513E00DCD162 /* SDL_RLEaccel_c.h */; }; + A7D8B3A223E2514200DCD162 /* SDL_RLEaccel_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A76723E2513E00DCD162 /* SDL_RLEaccel_c.h */; }; + A7D8B3A323E2514200DCD162 /* SDL_RLEaccel_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A76723E2513E00DCD162 /* SDL_RLEaccel_c.h */; }; + A7D8B3A423E2514200DCD162 /* SDL_fillrect.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A76823E2513E00DCD162 /* SDL_fillrect.c */; }; + A7D8B3A523E2514200DCD162 /* SDL_fillrect.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A76823E2513E00DCD162 /* SDL_fillrect.c */; }; + A7D8B3A623E2514200DCD162 /* SDL_fillrect.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A76823E2513E00DCD162 /* SDL_fillrect.c */; }; + A7D8B3A723E2514200DCD162 /* SDL_fillrect.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A76823E2513E00DCD162 /* SDL_fillrect.c */; }; + A7D8B3A823E2514200DCD162 /* SDL_fillrect.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A76823E2513E00DCD162 /* SDL_fillrect.c */; }; + A7D8B3A923E2514200DCD162 /* SDL_fillrect.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A76823E2513E00DCD162 /* SDL_fillrect.c */; }; + A7D8B3AA23E2514200DCD162 /* SDL_shape.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A76923E2513E00DCD162 /* SDL_shape.c */; }; + A7D8B3AB23E2514200DCD162 /* SDL_shape.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A76923E2513E00DCD162 /* SDL_shape.c */; }; + A7D8B3AC23E2514200DCD162 /* SDL_shape.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A76923E2513E00DCD162 /* SDL_shape.c */; }; + A7D8B3AD23E2514200DCD162 /* SDL_shape.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A76923E2513E00DCD162 /* SDL_shape.c */; }; + A7D8B3AE23E2514200DCD162 /* SDL_shape.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A76923E2513E00DCD162 /* SDL_shape.c */; }; + A7D8B3AF23E2514200DCD162 /* SDL_shape.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A76923E2513E00DCD162 /* SDL_shape.c */; }; + A7D8B3B023E2514200DCD162 /* SDL_yuv_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A76A23E2513E00DCD162 /* SDL_yuv_c.h */; }; + A7D8B3B123E2514200DCD162 /* SDL_yuv_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A76A23E2513E00DCD162 /* SDL_yuv_c.h */; }; + A7D8B3B223E2514200DCD162 /* SDL_yuv_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A76A23E2513E00DCD162 /* SDL_yuv_c.h */; }; + A7D8B3B323E2514200DCD162 /* SDL_yuv_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A76A23E2513E00DCD162 /* SDL_yuv_c.h */; }; + A7D8B3B423E2514200DCD162 /* SDL_yuv_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A76A23E2513E00DCD162 /* SDL_yuv_c.h */; }; + A7D8B3B523E2514200DCD162 /* SDL_yuv_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A76A23E2513E00DCD162 /* SDL_yuv_c.h */; }; + A7D8B3B623E2514200DCD162 /* SDL_blit.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A76B23E2513E00DCD162 /* SDL_blit.h */; }; + A7D8B3B723E2514200DCD162 /* SDL_blit.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A76B23E2513E00DCD162 /* SDL_blit.h */; }; + A7D8B3B823E2514200DCD162 /* SDL_blit.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A76B23E2513E00DCD162 /* SDL_blit.h */; }; + A7D8B3B923E2514200DCD162 /* SDL_blit.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A76B23E2513E00DCD162 /* SDL_blit.h */; }; + A7D8B3BA23E2514200DCD162 /* SDL_blit.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A76B23E2513E00DCD162 /* SDL_blit.h */; }; + A7D8B3BB23E2514200DCD162 /* SDL_blit.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A76B23E2513E00DCD162 /* SDL_blit.h */; }; + A7D8B3C823E2514200DCD162 /* yuv_rgb_sse_func.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A77023E2513E00DCD162 /* yuv_rgb_sse_func.h */; }; + A7D8B3C923E2514300DCD162 /* yuv_rgb_sse_func.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A77023E2513E00DCD162 /* yuv_rgb_sse_func.h */; }; + A7D8B3CA23E2514300DCD162 /* yuv_rgb_sse_func.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A77023E2513E00DCD162 /* yuv_rgb_sse_func.h */; }; + A7D8B3CB23E2514300DCD162 /* yuv_rgb_sse_func.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A77023E2513E00DCD162 /* yuv_rgb_sse_func.h */; }; + A7D8B3CC23E2514300DCD162 /* yuv_rgb_sse_func.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A77023E2513E00DCD162 /* yuv_rgb_sse_func.h */; }; + A7D8B3CD23E2514300DCD162 /* yuv_rgb_sse_func.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A77023E2513E00DCD162 /* yuv_rgb_sse_func.h */; }; + A7D8B3CE23E2514300DCD162 /* yuv_rgb_std_func.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A77123E2513E00DCD162 /* yuv_rgb_std_func.h */; }; + A7D8B3CF23E2514300DCD162 /* yuv_rgb_std_func.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A77123E2513E00DCD162 /* yuv_rgb_std_func.h */; }; + A7D8B3D023E2514300DCD162 /* yuv_rgb_std_func.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A77123E2513E00DCD162 /* yuv_rgb_std_func.h */; }; + A7D8B3D123E2514300DCD162 /* yuv_rgb_std_func.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A77123E2513E00DCD162 /* yuv_rgb_std_func.h */; }; + A7D8B3D223E2514300DCD162 /* yuv_rgb_std_func.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A77123E2513E00DCD162 /* yuv_rgb_std_func.h */; }; + A7D8B3D323E2514300DCD162 /* yuv_rgb_std_func.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A77123E2513E00DCD162 /* yuv_rgb_std_func.h */; }; + A7D8B3D423E2514300DCD162 /* yuv_rgb.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A77223E2513E00DCD162 /* yuv_rgb.h */; }; + A7D8B3D523E2514300DCD162 /* yuv_rgb.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A77223E2513E00DCD162 /* yuv_rgb.h */; }; + A7D8B3D623E2514300DCD162 /* yuv_rgb.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A77223E2513E00DCD162 /* yuv_rgb.h */; }; + A7D8B3D723E2514300DCD162 /* yuv_rgb.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A77223E2513E00DCD162 /* yuv_rgb.h */; }; + A7D8B3D823E2514300DCD162 /* yuv_rgb.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A77223E2513E00DCD162 /* yuv_rgb.h */; }; + A7D8B3D923E2514300DCD162 /* yuv_rgb.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A77223E2513E00DCD162 /* yuv_rgb.h */; }; + A7D8B3DA23E2514300DCD162 /* SDL_bmp.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A77323E2513E00DCD162 /* SDL_bmp.c */; }; + A7D8B3DB23E2514300DCD162 /* SDL_bmp.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A77323E2513E00DCD162 /* SDL_bmp.c */; }; + A7D8B3DC23E2514300DCD162 /* SDL_bmp.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A77323E2513E00DCD162 /* SDL_bmp.c */; }; + A7D8B3DD23E2514300DCD162 /* SDL_bmp.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A77323E2513E00DCD162 /* SDL_bmp.c */; }; + A7D8B3DE23E2514300DCD162 /* SDL_bmp.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A77323E2513E00DCD162 /* SDL_bmp.c */; }; + A7D8B3DF23E2514300DCD162 /* SDL_bmp.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A77323E2513E00DCD162 /* SDL_bmp.c */; }; + A7D8B3E023E2514300DCD162 /* SDL_cpuinfo.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A77523E2513E00DCD162 /* SDL_cpuinfo.c */; }; + A7D8B3E123E2514300DCD162 /* SDL_cpuinfo.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A77523E2513E00DCD162 /* SDL_cpuinfo.c */; }; + A7D8B3E223E2514300DCD162 /* SDL_cpuinfo.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A77523E2513E00DCD162 /* SDL_cpuinfo.c */; }; + A7D8B3E323E2514300DCD162 /* SDL_cpuinfo.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A77523E2513E00DCD162 /* SDL_cpuinfo.c */; }; + A7D8B3E423E2514300DCD162 /* SDL_cpuinfo.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A77523E2513E00DCD162 /* SDL_cpuinfo.c */; }; + A7D8B3E523E2514300DCD162 /* SDL_cpuinfo.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A77523E2513E00DCD162 /* SDL_cpuinfo.c */; }; + A7D8B3E623E2514300DCD162 /* SDL_systhread.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A77723E2513E00DCD162 /* SDL_systhread.h */; }; + A7D8B3E723E2514300DCD162 /* SDL_systhread.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A77723E2513E00DCD162 /* SDL_systhread.h */; }; + A7D8B3E823E2514300DCD162 /* SDL_systhread.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A77723E2513E00DCD162 /* SDL_systhread.h */; }; + A7D8B3E923E2514300DCD162 /* SDL_systhread.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A77723E2513E00DCD162 /* SDL_systhread.h */; }; + A7D8B3EA23E2514300DCD162 /* SDL_systhread.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A77723E2513E00DCD162 /* SDL_systhread.h */; }; + A7D8B3EB23E2514300DCD162 /* SDL_systhread.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A77723E2513E00DCD162 /* SDL_systhread.h */; }; + A7D8B3EC23E2514300DCD162 /* SDL_thread_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A77823E2513E00DCD162 /* SDL_thread_c.h */; }; + A7D8B3ED23E2514300DCD162 /* SDL_thread_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A77823E2513E00DCD162 /* SDL_thread_c.h */; }; + A7D8B3EE23E2514300DCD162 /* SDL_thread_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A77823E2513E00DCD162 /* SDL_thread_c.h */; }; + A7D8B3EF23E2514300DCD162 /* SDL_thread_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A77823E2513E00DCD162 /* SDL_thread_c.h */; }; + A7D8B3F023E2514300DCD162 /* SDL_thread_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A77823E2513E00DCD162 /* SDL_thread_c.h */; }; + A7D8B3F123E2514300DCD162 /* SDL_thread_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A77823E2513E00DCD162 /* SDL_thread_c.h */; }; + A7D8B3F223E2514300DCD162 /* SDL_thread.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A77923E2513E00DCD162 /* SDL_thread.c */; }; + A7D8B3F323E2514300DCD162 /* SDL_thread.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A77923E2513E00DCD162 /* SDL_thread.c */; }; + A7D8B3F423E2514300DCD162 /* SDL_thread.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A77923E2513E00DCD162 /* SDL_thread.c */; }; + A7D8B3F523E2514300DCD162 /* SDL_thread.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A77923E2513E00DCD162 /* SDL_thread.c */; }; + A7D8B3F623E2514300DCD162 /* SDL_thread.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A77923E2513E00DCD162 /* SDL_thread.c */; }; + A7D8B3F723E2514300DCD162 /* SDL_thread.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A77923E2513E00DCD162 /* SDL_thread.c */; }; + A7D8B41C23E2514300DCD162 /* SDL_systls.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A78223E2513E00DCD162 /* SDL_systls.c */; }; + A7D8B41D23E2514300DCD162 /* SDL_systls.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A78223E2513E00DCD162 /* SDL_systls.c */; }; + A7D8B41E23E2514300DCD162 /* SDL_systls.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A78223E2513E00DCD162 /* SDL_systls.c */; }; + A7D8B41F23E2514300DCD162 /* SDL_systls.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A78223E2513E00DCD162 /* SDL_systls.c */; }; + A7D8B42023E2514300DCD162 /* SDL_systls.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A78223E2513E00DCD162 /* SDL_systls.c */; }; + A7D8B42123E2514300DCD162 /* SDL_systls.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A78223E2513E00DCD162 /* SDL_systls.c */; }; + A7D8B42223E2514300DCD162 /* SDL_syssem.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A78323E2513E00DCD162 /* SDL_syssem.c */; }; + A7D8B42323E2514300DCD162 /* SDL_syssem.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A78323E2513E00DCD162 /* SDL_syssem.c */; }; + A7D8B42423E2514300DCD162 /* SDL_syssem.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A78323E2513E00DCD162 /* SDL_syssem.c */; }; + A7D8B42523E2514300DCD162 /* SDL_syssem.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A78323E2513E00DCD162 /* SDL_syssem.c */; }; + A7D8B42623E2514300DCD162 /* SDL_syssem.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A78323E2513E00DCD162 /* SDL_syssem.c */; }; + A7D8B42723E2514300DCD162 /* SDL_syssem.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A78323E2513E00DCD162 /* SDL_syssem.c */; }; + A7D8B42823E2514300DCD162 /* SDL_systhread_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A78423E2513E00DCD162 /* SDL_systhread_c.h */; }; + A7D8B42923E2514300DCD162 /* SDL_systhread_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A78423E2513E00DCD162 /* SDL_systhread_c.h */; }; + A7D8B42A23E2514300DCD162 /* SDL_systhread_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A78423E2513E00DCD162 /* SDL_systhread_c.h */; }; + A7D8B42B23E2514300DCD162 /* SDL_systhread_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A78423E2513E00DCD162 /* SDL_systhread_c.h */; }; + A7D8B42C23E2514300DCD162 /* SDL_systhread_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A78423E2513E00DCD162 /* SDL_systhread_c.h */; }; + A7D8B42D23E2514300DCD162 /* SDL_systhread_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A78423E2513E00DCD162 /* SDL_systhread_c.h */; }; + A7D8B42E23E2514300DCD162 /* SDL_syscond.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A78523E2513E00DCD162 /* SDL_syscond.c */; }; + A7D8B42F23E2514300DCD162 /* SDL_syscond.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A78523E2513E00DCD162 /* SDL_syscond.c */; }; + A7D8B43023E2514300DCD162 /* SDL_syscond.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A78523E2513E00DCD162 /* SDL_syscond.c */; }; + A7D8B43123E2514300DCD162 /* SDL_syscond.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A78523E2513E00DCD162 /* SDL_syscond.c */; }; + A7D8B43223E2514300DCD162 /* SDL_syscond.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A78523E2513E00DCD162 /* SDL_syscond.c */; }; + A7D8B43323E2514300DCD162 /* SDL_syscond.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A78523E2513E00DCD162 /* SDL_syscond.c */; }; + A7D8B43423E2514300DCD162 /* SDL_systhread.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A78623E2513E00DCD162 /* SDL_systhread.c */; }; + A7D8B43523E2514300DCD162 /* SDL_systhread.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A78623E2513E00DCD162 /* SDL_systhread.c */; }; + A7D8B43623E2514300DCD162 /* SDL_systhread.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A78623E2513E00DCD162 /* SDL_systhread.c */; }; + A7D8B43723E2514300DCD162 /* SDL_systhread.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A78623E2513E00DCD162 /* SDL_systhread.c */; }; + A7D8B43823E2514300DCD162 /* SDL_systhread.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A78623E2513E00DCD162 /* SDL_systhread.c */; }; + A7D8B43923E2514300DCD162 /* SDL_systhread.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A78623E2513E00DCD162 /* SDL_systhread.c */; }; + A7D8B43A23E2514300DCD162 /* SDL_sysmutex.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A78723E2513E00DCD162 /* SDL_sysmutex.c */; }; + A7D8B43B23E2514300DCD162 /* SDL_sysmutex.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A78723E2513E00DCD162 /* SDL_sysmutex.c */; }; + A7D8B43C23E2514300DCD162 /* SDL_sysmutex.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A78723E2513E00DCD162 /* SDL_sysmutex.c */; }; + A7D8B43D23E2514300DCD162 /* SDL_sysmutex.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A78723E2513E00DCD162 /* SDL_sysmutex.c */; }; + A7D8B43E23E2514300DCD162 /* SDL_sysmutex.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A78723E2513E00DCD162 /* SDL_sysmutex.c */; }; + A7D8B43F23E2514300DCD162 /* SDL_sysmutex.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A78723E2513E00DCD162 /* SDL_sysmutex.c */; }; + A7D8B44023E2514300DCD162 /* SDL_sysmutex_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A78823E2513E00DCD162 /* SDL_sysmutex_c.h */; }; + A7D8B44123E2514300DCD162 /* SDL_sysmutex_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A78823E2513E00DCD162 /* SDL_sysmutex_c.h */; }; + A7D8B44223E2514300DCD162 /* SDL_sysmutex_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A78823E2513E00DCD162 /* SDL_sysmutex_c.h */; }; + A7D8B44323E2514300DCD162 /* SDL_sysmutex_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A78823E2513E00DCD162 /* SDL_sysmutex_c.h */; }; + A7D8B44423E2514300DCD162 /* SDL_sysmutex_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A78823E2513E00DCD162 /* SDL_sysmutex_c.h */; }; + A7D8B44523E2514300DCD162 /* SDL_sysmutex_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A78823E2513E00DCD162 /* SDL_sysmutex_c.h */; }; + A7D8B4AC23E2514300DCD162 /* SDL_gamecontrollerdb.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A79E23E2513E00DCD162 /* SDL_gamecontrollerdb.h */; }; + A7D8B4AD23E2514300DCD162 /* SDL_gamecontrollerdb.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A79E23E2513E00DCD162 /* SDL_gamecontrollerdb.h */; }; + A7D8B4AE23E2514300DCD162 /* SDL_gamecontrollerdb.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A79E23E2513E00DCD162 /* SDL_gamecontrollerdb.h */; }; + A7D8B4AF23E2514300DCD162 /* SDL_gamecontrollerdb.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A79E23E2513E00DCD162 /* SDL_gamecontrollerdb.h */; }; + A7D8B4B023E2514300DCD162 /* SDL_gamecontrollerdb.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A79E23E2513E00DCD162 /* SDL_gamecontrollerdb.h */; }; + A7D8B4B123E2514300DCD162 /* SDL_gamecontrollerdb.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A79E23E2513E00DCD162 /* SDL_gamecontrollerdb.h */; }; + A7D8B4B223E2514300DCD162 /* SDL_sysjoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7A023E2513E00DCD162 /* SDL_sysjoystick.c */; }; + A7D8B4B323E2514300DCD162 /* SDL_sysjoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7A023E2513E00DCD162 /* SDL_sysjoystick.c */; }; + A7D8B4B423E2514300DCD162 /* SDL_sysjoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7A023E2513E00DCD162 /* SDL_sysjoystick.c */; }; + A7D8B4B523E2514300DCD162 /* SDL_sysjoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7A023E2513E00DCD162 /* SDL_sysjoystick.c */; }; + A7D8B4B623E2514300DCD162 /* SDL_sysjoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7A023E2513E00DCD162 /* SDL_sysjoystick.c */; }; + A7D8B4B723E2514300DCD162 /* SDL_sysjoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7A023E2513E00DCD162 /* SDL_sysjoystick.c */; }; + A7D8B4C523E2514300DCD162 /* SDL_steamcontroller.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7A523E2513E00DCD162 /* SDL_steamcontroller.h */; }; + A7D8B4C623E2514300DCD162 /* SDL_steamcontroller.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7A523E2513E00DCD162 /* SDL_steamcontroller.h */; }; + A7D8B4C823E2514300DCD162 /* SDL_steamcontroller.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7A523E2513E00DCD162 /* SDL_steamcontroller.h */; }; + A7D8B4D123E2514300DCD162 /* SDL_steamcontroller.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7A723E2513E00DCD162 /* SDL_steamcontroller.c */; }; + A7D8B4D223E2514300DCD162 /* SDL_steamcontroller.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7A723E2513E00DCD162 /* SDL_steamcontroller.c */; }; + A7D8B4D423E2514300DCD162 /* SDL_steamcontroller.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7A723E2513E00DCD162 /* SDL_steamcontroller.c */; }; + A7D8B4DC23E2514300DCD162 /* SDL_joystick.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7A923E2513E00DCD162 /* SDL_joystick.c */; }; + A7D8B4DD23E2514300DCD162 /* SDL_joystick.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7A923E2513E00DCD162 /* SDL_joystick.c */; }; + A7D8B4DE23E2514300DCD162 /* SDL_joystick.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7A923E2513E00DCD162 /* SDL_joystick.c */; }; + A7D8B4DF23E2514300DCD162 /* SDL_joystick.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7A923E2513E00DCD162 /* SDL_joystick.c */; }; + A7D8B4E023E2514300DCD162 /* SDL_joystick.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7A923E2513E00DCD162 /* SDL_joystick.c */; }; + A7D8B4E123E2514300DCD162 /* SDL_joystick.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7A923E2513E00DCD162 /* SDL_joystick.c */; }; + A7D8B4EE23E2514300DCD162 /* SDL_gamecontroller.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7AD23E2513E00DCD162 /* SDL_gamecontroller.c */; }; + A7D8B4EF23E2514300DCD162 /* SDL_gamecontroller.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7AD23E2513E00DCD162 /* SDL_gamecontroller.c */; }; + A7D8B4F023E2514300DCD162 /* SDL_gamecontroller.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7AD23E2513E00DCD162 /* SDL_gamecontroller.c */; }; + A7D8B4F123E2514300DCD162 /* SDL_gamecontroller.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7AD23E2513E00DCD162 /* SDL_gamecontroller.c */; }; + A7D8B4F223E2514300DCD162 /* SDL_gamecontroller.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7AD23E2513E00DCD162 /* SDL_gamecontroller.c */; }; + A7D8B4F323E2514300DCD162 /* SDL_gamecontroller.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7AD23E2513E00DCD162 /* SDL_gamecontroller.c */; }; + A7D8B53923E2514300DCD162 /* SDL_hidapi_xbox360.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C223E2513E00DCD162 /* SDL_hidapi_xbox360.c */; }; + A7D8B53A23E2514300DCD162 /* SDL_hidapi_xbox360.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C223E2513E00DCD162 /* SDL_hidapi_xbox360.c */; }; + A7D8B53B23E2514300DCD162 /* SDL_hidapi_xbox360.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C223E2513E00DCD162 /* SDL_hidapi_xbox360.c */; }; + A7D8B53C23E2514300DCD162 /* SDL_hidapi_xbox360.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C223E2513E00DCD162 /* SDL_hidapi_xbox360.c */; }; + A7D8B53D23E2514300DCD162 /* SDL_hidapi_xbox360.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C223E2513E00DCD162 /* SDL_hidapi_xbox360.c */; }; + A7D8B53E23E2514300DCD162 /* SDL_hidapi_xbox360.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C223E2513E00DCD162 /* SDL_hidapi_xbox360.c */; }; + A7D8B53F23E2514300DCD162 /* SDL_hidapi_ps4.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C323E2513E00DCD162 /* SDL_hidapi_ps4.c */; }; + A7D8B54023E2514300DCD162 /* SDL_hidapi_ps4.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C323E2513E00DCD162 /* SDL_hidapi_ps4.c */; }; + A7D8B54123E2514300DCD162 /* SDL_hidapi_ps4.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C323E2513E00DCD162 /* SDL_hidapi_ps4.c */; }; + A7D8B54223E2514300DCD162 /* SDL_hidapi_ps4.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C323E2513E00DCD162 /* SDL_hidapi_ps4.c */; }; + A7D8B54323E2514300DCD162 /* SDL_hidapi_ps4.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C323E2513E00DCD162 /* SDL_hidapi_ps4.c */; }; + A7D8B54423E2514300DCD162 /* SDL_hidapi_ps4.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C323E2513E00DCD162 /* SDL_hidapi_ps4.c */; }; + A7D8B54523E2514300DCD162 /* SDL_hidapijoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C423E2513E00DCD162 /* SDL_hidapijoystick.c */; }; + A7D8B54623E2514300DCD162 /* SDL_hidapijoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C423E2513E00DCD162 /* SDL_hidapijoystick.c */; }; + A7D8B54723E2514300DCD162 /* SDL_hidapijoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C423E2513E00DCD162 /* SDL_hidapijoystick.c */; }; + A7D8B54823E2514300DCD162 /* SDL_hidapijoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C423E2513E00DCD162 /* SDL_hidapijoystick.c */; }; + A7D8B54923E2514300DCD162 /* SDL_hidapijoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C423E2513E00DCD162 /* SDL_hidapijoystick.c */; }; + A7D8B54A23E2514300DCD162 /* SDL_hidapijoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C423E2513E00DCD162 /* SDL_hidapijoystick.c */; }; + A7D8B54B23E2514300DCD162 /* SDL_hidapi_xboxone.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C523E2513E00DCD162 /* SDL_hidapi_xboxone.c */; }; + A7D8B54C23E2514300DCD162 /* SDL_hidapi_xboxone.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C523E2513E00DCD162 /* SDL_hidapi_xboxone.c */; }; + A7D8B54D23E2514300DCD162 /* SDL_hidapi_xboxone.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C523E2513E00DCD162 /* SDL_hidapi_xboxone.c */; }; + A7D8B54E23E2514300DCD162 /* SDL_hidapi_xboxone.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C523E2513E00DCD162 /* SDL_hidapi_xboxone.c */; }; + A7D8B54F23E2514300DCD162 /* SDL_hidapi_xboxone.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C523E2513E00DCD162 /* SDL_hidapi_xboxone.c */; }; + A7D8B55023E2514300DCD162 /* SDL_hidapi_xboxone.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C523E2513E00DCD162 /* SDL_hidapi_xboxone.c */; }; + A7D8B55123E2514300DCD162 /* SDL_hidapi_switch.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C623E2513E00DCD162 /* SDL_hidapi_switch.c */; }; + A7D8B55223E2514300DCD162 /* SDL_hidapi_switch.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C623E2513E00DCD162 /* SDL_hidapi_switch.c */; }; + A7D8B55323E2514300DCD162 /* SDL_hidapi_switch.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C623E2513E00DCD162 /* SDL_hidapi_switch.c */; }; + A7D8B55423E2514300DCD162 /* SDL_hidapi_switch.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C623E2513E00DCD162 /* SDL_hidapi_switch.c */; }; + A7D8B55523E2514300DCD162 /* SDL_hidapi_switch.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C623E2513E00DCD162 /* SDL_hidapi_switch.c */; }; + A7D8B55623E2514300DCD162 /* SDL_hidapi_switch.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C623E2513E00DCD162 /* SDL_hidapi_switch.c */; }; + A7D8B55723E2514300DCD162 /* SDL_hidapijoystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7C723E2513E00DCD162 /* SDL_hidapijoystick_c.h */; }; + A7D8B55823E2514300DCD162 /* SDL_hidapijoystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7C723E2513E00DCD162 /* SDL_hidapijoystick_c.h */; }; + A7D8B55923E2514300DCD162 /* SDL_hidapijoystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7C723E2513E00DCD162 /* SDL_hidapijoystick_c.h */; }; + A7D8B55A23E2514300DCD162 /* SDL_hidapijoystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7C723E2513E00DCD162 /* SDL_hidapijoystick_c.h */; }; + A7D8B55B23E2514300DCD162 /* SDL_hidapijoystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7C723E2513E00DCD162 /* SDL_hidapijoystick_c.h */; }; + A7D8B55C23E2514300DCD162 /* SDL_hidapijoystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7C723E2513E00DCD162 /* SDL_hidapijoystick_c.h */; }; + A7D8B55D23E2514300DCD162 /* SDL_hidapi_xbox360w.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C823E2513E00DCD162 /* SDL_hidapi_xbox360w.c */; }; + A7D8B55E23E2514300DCD162 /* SDL_hidapi_xbox360w.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C823E2513E00DCD162 /* SDL_hidapi_xbox360w.c */; }; + A7D8B55F23E2514300DCD162 /* SDL_hidapi_xbox360w.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C823E2513E00DCD162 /* SDL_hidapi_xbox360w.c */; }; + A7D8B56023E2514300DCD162 /* SDL_hidapi_xbox360w.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C823E2513E00DCD162 /* SDL_hidapi_xbox360w.c */; }; + A7D8B56123E2514300DCD162 /* SDL_hidapi_xbox360w.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C823E2513E00DCD162 /* SDL_hidapi_xbox360w.c */; }; + A7D8B56223E2514300DCD162 /* SDL_hidapi_xbox360w.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C823E2513E00DCD162 /* SDL_hidapi_xbox360w.c */; }; + A7D8B56323E2514300DCD162 /* SDL_hidapi_gamecube.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C923E2513E00DCD162 /* SDL_hidapi_gamecube.c */; }; + A7D8B56423E2514300DCD162 /* SDL_hidapi_gamecube.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C923E2513E00DCD162 /* SDL_hidapi_gamecube.c */; }; + A7D8B56523E2514300DCD162 /* SDL_hidapi_gamecube.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C923E2513E00DCD162 /* SDL_hidapi_gamecube.c */; }; + A7D8B56623E2514300DCD162 /* SDL_hidapi_gamecube.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C923E2513E00DCD162 /* SDL_hidapi_gamecube.c */; }; + A7D8B56723E2514300DCD162 /* SDL_hidapi_gamecube.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C923E2513E00DCD162 /* SDL_hidapi_gamecube.c */; }; + A7D8B56823E2514300DCD162 /* SDL_hidapi_gamecube.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7C923E2513E00DCD162 /* SDL_hidapi_gamecube.c */; }; + A7D8B56F23E2514300DCD162 /* usb_ids.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7CB23E2513E00DCD162 /* usb_ids.h */; }; + A7D8B57023E2514300DCD162 /* usb_ids.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7CB23E2513E00DCD162 /* usb_ids.h */; }; + A7D8B57123E2514300DCD162 /* usb_ids.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7CB23E2513E00DCD162 /* usb_ids.h */; }; + A7D8B57223E2514300DCD162 /* usb_ids.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7CB23E2513E00DCD162 /* usb_ids.h */; }; + A7D8B57323E2514300DCD162 /* usb_ids.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7CB23E2513E00DCD162 /* usb_ids.h */; }; + A7D8B57423E2514300DCD162 /* usb_ids.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7CB23E2513E00DCD162 /* usb_ids.h */; }; + A7D8B58123E2514300DCD162 /* SDL_sysjoystick.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7CF23E2513E00DCD162 /* SDL_sysjoystick.h */; }; + A7D8B58223E2514300DCD162 /* SDL_sysjoystick.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7CF23E2513E00DCD162 /* SDL_sysjoystick.h */; }; + A7D8B58323E2514300DCD162 /* SDL_sysjoystick.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7CF23E2513E00DCD162 /* SDL_sysjoystick.h */; }; + A7D8B58423E2514300DCD162 /* SDL_sysjoystick.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7CF23E2513E00DCD162 /* SDL_sysjoystick.h */; }; + A7D8B58523E2514300DCD162 /* SDL_sysjoystick.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7CF23E2513E00DCD162 /* SDL_sysjoystick.h */; }; + A7D8B58623E2514300DCD162 /* SDL_sysjoystick.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7CF23E2513E00DCD162 /* SDL_sysjoystick.h */; }; + A7D8B58723E2514300DCD162 /* SDL_joystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7D023E2513E00DCD162 /* SDL_joystick_c.h */; }; + A7D8B58823E2514300DCD162 /* SDL_joystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7D023E2513E00DCD162 /* SDL_joystick_c.h */; }; + A7D8B58923E2514300DCD162 /* SDL_joystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7D023E2513E00DCD162 /* SDL_joystick_c.h */; }; + A7D8B58A23E2514300DCD162 /* SDL_joystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7D023E2513E00DCD162 /* SDL_joystick_c.h */; }; + A7D8B58B23E2514300DCD162 /* SDL_joystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7D023E2513E00DCD162 /* SDL_joystick_c.h */; }; + A7D8B58C23E2514300DCD162 /* SDL_joystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7D023E2513E00DCD162 /* SDL_joystick_c.h */; }; + A7D8B5B723E2514300DCD162 /* controller_type.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7D923E2513E00DCD162 /* controller_type.h */; }; + A7D8B5B823E2514300DCD162 /* controller_type.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7D923E2513E00DCD162 /* controller_type.h */; }; + A7D8B5B923E2514300DCD162 /* controller_type.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7D923E2513E00DCD162 /* controller_type.h */; }; + A7D8B5BA23E2514300DCD162 /* controller_type.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7D923E2513E00DCD162 /* controller_type.h */; }; + A7D8B5BB23E2514300DCD162 /* controller_type.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7D923E2513E00DCD162 /* controller_type.h */; }; + A7D8B5BC23E2514300DCD162 /* controller_type.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7D923E2513E00DCD162 /* controller_type.h */; }; + A7D8B5BD23E2514300DCD162 /* SDL_rwops.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7DB23E2513F00DCD162 /* SDL_rwops.c */; }; + A7D8B5BE23E2514300DCD162 /* SDL_rwops.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7DB23E2513F00DCD162 /* SDL_rwops.c */; }; + A7D8B5BF23E2514300DCD162 /* SDL_rwops.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7DB23E2513F00DCD162 /* SDL_rwops.c */; }; + A7D8B5C023E2514300DCD162 /* SDL_rwops.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7DB23E2513F00DCD162 /* SDL_rwops.c */; }; + A7D8B5C123E2514300DCD162 /* SDL_rwops.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7DB23E2513F00DCD162 /* SDL_rwops.c */; }; + A7D8B5C223E2514300DCD162 /* SDL_rwops.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7DB23E2513F00DCD162 /* SDL_rwops.c */; }; + A7D8B5C323E2514300DCD162 /* SDL_rwopsbundlesupport.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7DD23E2513F00DCD162 /* SDL_rwopsbundlesupport.h */; }; + A7D8B5C423E2514300DCD162 /* SDL_rwopsbundlesupport.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7DD23E2513F00DCD162 /* SDL_rwopsbundlesupport.h */; }; + A7D8B5C523E2514300DCD162 /* SDL_rwopsbundlesupport.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7DD23E2513F00DCD162 /* SDL_rwopsbundlesupport.h */; }; + A7D8B5C623E2514300DCD162 /* SDL_rwopsbundlesupport.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7DD23E2513F00DCD162 /* SDL_rwopsbundlesupport.h */; }; + A7D8B5C723E2514300DCD162 /* SDL_rwopsbundlesupport.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7DD23E2513F00DCD162 /* SDL_rwopsbundlesupport.h */; }; + A7D8B5C823E2514300DCD162 /* SDL_rwopsbundlesupport.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7DD23E2513F00DCD162 /* SDL_rwopsbundlesupport.h */; }; + A7D8B5C923E2514300DCD162 /* SDL_rwopsbundlesupport.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7DE23E2513F00DCD162 /* SDL_rwopsbundlesupport.m */; }; + A7D8B5CA23E2514300DCD162 /* SDL_rwopsbundlesupport.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7DE23E2513F00DCD162 /* SDL_rwopsbundlesupport.m */; }; + A7D8B5CB23E2514300DCD162 /* SDL_rwopsbundlesupport.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7DE23E2513F00DCD162 /* SDL_rwopsbundlesupport.m */; }; + A7D8B5CC23E2514300DCD162 /* SDL_rwopsbundlesupport.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7DE23E2513F00DCD162 /* SDL_rwopsbundlesupport.m */; }; + A7D8B5CD23E2514300DCD162 /* SDL_rwopsbundlesupport.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7DE23E2513F00DCD162 /* SDL_rwopsbundlesupport.m */; }; + A7D8B5CE23E2514300DCD162 /* SDL_rwopsbundlesupport.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7DE23E2513F00DCD162 /* SDL_rwopsbundlesupport.m */; }; + A7D8B5CF23E2514300DCD162 /* SDL_syspower.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7E123E2513F00DCD162 /* SDL_syspower.m */; }; + A7D8B5D023E2514300DCD162 /* SDL_syspower.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7E123E2513F00DCD162 /* SDL_syspower.m */; }; + A7D8B5D123E2514300DCD162 /* SDL_syspower.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7E123E2513F00DCD162 /* SDL_syspower.m */; }; + A7D8B5D223E2514300DCD162 /* SDL_syspower.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7E123E2513F00DCD162 /* SDL_syspower.m */; }; + A7D8B5D323E2514300DCD162 /* SDL_syspower.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7E123E2513F00DCD162 /* SDL_syspower.m */; }; + A7D8B5D423E2514300DCD162 /* SDL_syspower.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7E123E2513F00DCD162 /* SDL_syspower.m */; }; + A7D8B5D523E2514300DCD162 /* SDL_syspower.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7E223E2513F00DCD162 /* SDL_syspower.h */; }; + A7D8B5D623E2514300DCD162 /* SDL_syspower.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7E223E2513F00DCD162 /* SDL_syspower.h */; }; + A7D8B5D723E2514300DCD162 /* SDL_syspower.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7E223E2513F00DCD162 /* SDL_syspower.h */; }; + A7D8B5D823E2514300DCD162 /* SDL_syspower.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7E223E2513F00DCD162 /* SDL_syspower.h */; }; + A7D8B5D923E2514300DCD162 /* SDL_syspower.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7E223E2513F00DCD162 /* SDL_syspower.h */; }; + A7D8B5DA23E2514300DCD162 /* SDL_syspower.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7E223E2513F00DCD162 /* SDL_syspower.h */; }; + A7D8B5E723E2514300DCD162 /* SDL_power.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7E723E2513F00DCD162 /* SDL_power.c */; }; + A7D8B5E823E2514300DCD162 /* SDL_power.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7E723E2513F00DCD162 /* SDL_power.c */; }; + A7D8B5E923E2514300DCD162 /* SDL_power.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7E723E2513F00DCD162 /* SDL_power.c */; }; + A7D8B5EA23E2514300DCD162 /* SDL_power.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7E723E2513F00DCD162 /* SDL_power.c */; }; + A7D8B5EB23E2514300DCD162 /* SDL_power.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7E723E2513F00DCD162 /* SDL_power.c */; }; + A7D8B5EC23E2514300DCD162 /* SDL_power.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7E723E2513F00DCD162 /* SDL_power.c */; }; + A7D8B5F323E2514300DCD162 /* SDL_syspower.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7EB23E2513F00DCD162 /* SDL_syspower.c */; }; + A7D8B5F423E2514300DCD162 /* SDL_syspower.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7EB23E2513F00DCD162 /* SDL_syspower.c */; }; + A7D8B5F523E2514300DCD162 /* SDL_syspower.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7EB23E2513F00DCD162 /* SDL_syspower.c */; }; + A7D8B5F623E2514300DCD162 /* SDL_syspower.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7EB23E2513F00DCD162 /* SDL_syspower.c */; }; + A7D8B5F723E2514300DCD162 /* SDL_syspower.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7EB23E2513F00DCD162 /* SDL_syspower.c */; }; + A7D8B5F823E2514300DCD162 /* SDL_syspower.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7EB23E2513F00DCD162 /* SDL_syspower.c */; }; + A7D8B61123E2514300DCD162 /* SDL_syspower.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7F423E2513F00DCD162 /* SDL_syspower.h */; }; + A7D8B61223E2514300DCD162 /* SDL_syspower.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7F423E2513F00DCD162 /* SDL_syspower.h */; }; + A7D8B61323E2514300DCD162 /* SDL_syspower.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7F423E2513F00DCD162 /* SDL_syspower.h */; }; + A7D8B61423E2514300DCD162 /* SDL_syspower.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7F423E2513F00DCD162 /* SDL_syspower.h */; }; + A7D8B61523E2514300DCD162 /* SDL_syspower.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7F423E2513F00DCD162 /* SDL_syspower.h */; }; + A7D8B61623E2514300DCD162 /* SDL_syspower.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7F423E2513F00DCD162 /* SDL_syspower.h */; }; + A7D8B61723E2514300DCD162 /* SDL_assert_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7F523E2513F00DCD162 /* SDL_assert_c.h */; }; + A7D8B61823E2514300DCD162 /* SDL_assert_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7F523E2513F00DCD162 /* SDL_assert_c.h */; }; + A7D8B61923E2514300DCD162 /* SDL_assert_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7F523E2513F00DCD162 /* SDL_assert_c.h */; }; + A7D8B61A23E2514300DCD162 /* SDL_assert_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7F523E2513F00DCD162 /* SDL_assert_c.h */; }; + A7D8B61B23E2514300DCD162 /* SDL_assert_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7F523E2513F00DCD162 /* SDL_assert_c.h */; }; + A7D8B61C23E2514300DCD162 /* SDL_assert_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7F523E2513F00DCD162 /* SDL_assert_c.h */; }; + A7D8B61D23E2514300DCD162 /* SDL_sysfilesystem.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7F823E2513F00DCD162 /* SDL_sysfilesystem.c */; }; + A7D8B61E23E2514300DCD162 /* SDL_sysfilesystem.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7F823E2513F00DCD162 /* SDL_sysfilesystem.c */; }; + A7D8B61F23E2514300DCD162 /* SDL_sysfilesystem.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7F823E2513F00DCD162 /* SDL_sysfilesystem.c */; }; + A7D8B62023E2514300DCD162 /* SDL_sysfilesystem.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7F823E2513F00DCD162 /* SDL_sysfilesystem.c */; }; + A7D8B62123E2514300DCD162 /* SDL_sysfilesystem.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7F823E2513F00DCD162 /* SDL_sysfilesystem.c */; }; + A7D8B62223E2514300DCD162 /* SDL_sysfilesystem.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7F823E2513F00DCD162 /* SDL_sysfilesystem.c */; }; + A7D8B62F23E2514300DCD162 /* SDL_sysfilesystem.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7FE23E2513F00DCD162 /* SDL_sysfilesystem.m */; }; + A7D8B63023E2514300DCD162 /* SDL_sysfilesystem.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7FE23E2513F00DCD162 /* SDL_sysfilesystem.m */; }; + A7D8B63123E2514300DCD162 /* SDL_sysfilesystem.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7FE23E2513F00DCD162 /* SDL_sysfilesystem.m */; }; + A7D8B63223E2514300DCD162 /* SDL_sysfilesystem.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7FE23E2513F00DCD162 /* SDL_sysfilesystem.m */; }; + A7D8B63323E2514300DCD162 /* SDL_sysfilesystem.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7FE23E2513F00DCD162 /* SDL_sysfilesystem.m */; }; + A7D8B63423E2514300DCD162 /* SDL_sysfilesystem.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7FE23E2513F00DCD162 /* SDL_sysfilesystem.m */; }; + A7D8B75223E2514300DCD162 /* SDL_sysloadso.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A85F23E2513F00DCD162 /* SDL_sysloadso.c */; }; + A7D8B75323E2514300DCD162 /* SDL_sysloadso.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A85F23E2513F00DCD162 /* SDL_sysloadso.c */; }; + A7D8B75423E2514300DCD162 /* SDL_sysloadso.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A85F23E2513F00DCD162 /* SDL_sysloadso.c */; }; + A7D8B75523E2514300DCD162 /* SDL_sysloadso.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A85F23E2513F00DCD162 /* SDL_sysloadso.c */; }; + A7D8B75623E2514300DCD162 /* SDL_sysloadso.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A85F23E2513F00DCD162 /* SDL_sysloadso.c */; }; + A7D8B75723E2514300DCD162 /* SDL_sysloadso.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A85F23E2513F00DCD162 /* SDL_sysloadso.c */; }; + A7D8B75E23E2514300DCD162 /* SDL_sysloadso.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A86323E2513F00DCD162 /* SDL_sysloadso.c */; }; + A7D8B75F23E2514300DCD162 /* SDL_sysloadso.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A86323E2513F00DCD162 /* SDL_sysloadso.c */; }; + A7D8B76023E2514300DCD162 /* SDL_sysloadso.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A86323E2513F00DCD162 /* SDL_sysloadso.c */; }; + A7D8B76123E2514300DCD162 /* SDL_sysloadso.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A86323E2513F00DCD162 /* SDL_sysloadso.c */; }; + A7D8B76223E2514300DCD162 /* SDL_sysloadso.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A86323E2513F00DCD162 /* SDL_sysloadso.c */; }; + A7D8B76323E2514300DCD162 /* SDL_sysloadso.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A86323E2513F00DCD162 /* SDL_sysloadso.c */; }; + A7D8B76423E2514300DCD162 /* SDL_mixer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A86523E2513F00DCD162 /* SDL_mixer.c */; }; + A7D8B76523E2514300DCD162 /* SDL_mixer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A86523E2513F00DCD162 /* SDL_mixer.c */; }; + A7D8B76623E2514300DCD162 /* SDL_mixer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A86523E2513F00DCD162 /* SDL_mixer.c */; }; + A7D8B76723E2514300DCD162 /* SDL_mixer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A86523E2513F00DCD162 /* SDL_mixer.c */; }; + A7D8B76823E2514300DCD162 /* SDL_mixer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A86523E2513F00DCD162 /* SDL_mixer.c */; }; + A7D8B76923E2514300DCD162 /* SDL_mixer.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A86523E2513F00DCD162 /* SDL_mixer.c */; }; + A7D8B76A23E2514300DCD162 /* SDL_wave.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A86623E2513F00DCD162 /* SDL_wave.c */; }; + A7D8B76B23E2514300DCD162 /* SDL_wave.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A86623E2513F00DCD162 /* SDL_wave.c */; }; + A7D8B76C23E2514300DCD162 /* SDL_wave.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A86623E2513F00DCD162 /* SDL_wave.c */; }; + A7D8B76D23E2514300DCD162 /* SDL_wave.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A86623E2513F00DCD162 /* SDL_wave.c */; }; + A7D8B76E23E2514300DCD162 /* SDL_wave.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A86623E2513F00DCD162 /* SDL_wave.c */; }; + A7D8B76F23E2514300DCD162 /* SDL_wave.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A86623E2513F00DCD162 /* SDL_wave.c */; }; + A7D8B79423E2514400DCD162 /* SDL_dummyaudio.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A87123E2513F00DCD162 /* SDL_dummyaudio.h */; }; + A7D8B79523E2514400DCD162 /* SDL_dummyaudio.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A87123E2513F00DCD162 /* SDL_dummyaudio.h */; }; + A7D8B79623E2514400DCD162 /* SDL_dummyaudio.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A87123E2513F00DCD162 /* SDL_dummyaudio.h */; }; + A7D8B79723E2514400DCD162 /* SDL_dummyaudio.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A87123E2513F00DCD162 /* SDL_dummyaudio.h */; }; + A7D8B79823E2514400DCD162 /* SDL_dummyaudio.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A87123E2513F00DCD162 /* SDL_dummyaudio.h */; }; + A7D8B79923E2514400DCD162 /* SDL_dummyaudio.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A87123E2513F00DCD162 /* SDL_dummyaudio.h */; }; + A7D8B79A23E2514400DCD162 /* SDL_dummyaudio.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A87223E2513F00DCD162 /* SDL_dummyaudio.c */; }; + A7D8B79B23E2514400DCD162 /* SDL_dummyaudio.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A87223E2513F00DCD162 /* SDL_dummyaudio.c */; }; + A7D8B79C23E2514400DCD162 /* SDL_dummyaudio.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A87223E2513F00DCD162 /* SDL_dummyaudio.c */; }; + A7D8B79D23E2514400DCD162 /* SDL_dummyaudio.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A87223E2513F00DCD162 /* SDL_dummyaudio.c */; }; + A7D8B79E23E2514400DCD162 /* SDL_dummyaudio.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A87223E2513F00DCD162 /* SDL_dummyaudio.c */; }; + A7D8B79F23E2514400DCD162 /* SDL_dummyaudio.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A87223E2513F00DCD162 /* SDL_dummyaudio.c */; }; + A7D8B7A023E2514400DCD162 /* SDL_audio_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A87323E2513F00DCD162 /* SDL_audio_c.h */; }; + A7D8B7A123E2514400DCD162 /* SDL_audio_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A87323E2513F00DCD162 /* SDL_audio_c.h */; }; + A7D8B7A223E2514400DCD162 /* SDL_audio_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A87323E2513F00DCD162 /* SDL_audio_c.h */; }; + A7D8B7A323E2514400DCD162 /* SDL_audio_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A87323E2513F00DCD162 /* SDL_audio_c.h */; }; + A7D8B7A423E2514400DCD162 /* SDL_audio_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A87323E2513F00DCD162 /* SDL_audio_c.h */; }; + A7D8B7A523E2514400DCD162 /* SDL_audio_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A87323E2513F00DCD162 /* SDL_audio_c.h */; }; + A7D8B7B223E2514400DCD162 /* SDL_audiodev_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A87723E2513F00DCD162 /* SDL_audiodev_c.h */; }; + A7D8B7B323E2514400DCD162 /* SDL_audiodev_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A87723E2513F00DCD162 /* SDL_audiodev_c.h */; }; + A7D8B7B423E2514400DCD162 /* SDL_audiodev_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A87723E2513F00DCD162 /* SDL_audiodev_c.h */; }; + A7D8B7B523E2514400DCD162 /* SDL_audiodev_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A87723E2513F00DCD162 /* SDL_audiodev_c.h */; }; + A7D8B7B623E2514400DCD162 /* SDL_audiodev_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A87723E2513F00DCD162 /* SDL_audiodev_c.h */; }; + A7D8B7B723E2514400DCD162 /* SDL_audiodev_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A87723E2513F00DCD162 /* SDL_audiodev_c.h */; }; + A7D8B81823E2514400DCD162 /* SDL_audiodev.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A88F23E2513F00DCD162 /* SDL_audiodev.c */; }; + A7D8B81923E2514400DCD162 /* SDL_audiodev.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A88F23E2513F00DCD162 /* SDL_audiodev.c */; }; + A7D8B81A23E2514400DCD162 /* SDL_audiodev.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A88F23E2513F00DCD162 /* SDL_audiodev.c */; }; + A7D8B81B23E2514400DCD162 /* SDL_audiodev.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A88F23E2513F00DCD162 /* SDL_audiodev.c */; }; + A7D8B81C23E2514400DCD162 /* SDL_audiodev.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A88F23E2513F00DCD162 /* SDL_audiodev.c */; }; + A7D8B81D23E2514400DCD162 /* SDL_audiodev.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A88F23E2513F00DCD162 /* SDL_audiodev.c */; }; + A7D8B85A23E2514400DCD162 /* SDL_sysaudio.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A89F23E2513F00DCD162 /* SDL_sysaudio.h */; }; + A7D8B85B23E2514400DCD162 /* SDL_sysaudio.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A89F23E2513F00DCD162 /* SDL_sysaudio.h */; }; + A7D8B85C23E2514400DCD162 /* SDL_sysaudio.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A89F23E2513F00DCD162 /* SDL_sysaudio.h */; }; + A7D8B85D23E2514400DCD162 /* SDL_sysaudio.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A89F23E2513F00DCD162 /* SDL_sysaudio.h */; }; + A7D8B85E23E2514400DCD162 /* SDL_sysaudio.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A89F23E2513F00DCD162 /* SDL_sysaudio.h */; }; + A7D8B85F23E2514400DCD162 /* SDL_sysaudio.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A89F23E2513F00DCD162 /* SDL_sysaudio.h */; }; + A7D8B86023E2514400DCD162 /* SDL_audiotypecvt.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8A023E2513F00DCD162 /* SDL_audiotypecvt.c */; }; + A7D8B86123E2514400DCD162 /* SDL_audiotypecvt.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8A023E2513F00DCD162 /* SDL_audiotypecvt.c */; }; + A7D8B86223E2514400DCD162 /* SDL_audiotypecvt.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8A023E2513F00DCD162 /* SDL_audiotypecvt.c */; }; + A7D8B86323E2514400DCD162 /* SDL_audiotypecvt.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8A023E2513F00DCD162 /* SDL_audiotypecvt.c */; }; + A7D8B86423E2514400DCD162 /* SDL_audiotypecvt.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8A023E2513F00DCD162 /* SDL_audiotypecvt.c */; }; + A7D8B86523E2514400DCD162 /* SDL_audiotypecvt.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8A023E2513F00DCD162 /* SDL_audiotypecvt.c */; }; + A7D8B86623E2514400DCD162 /* SDL_audiocvt.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8A123E2513F00DCD162 /* SDL_audiocvt.c */; }; + A7D8B86723E2514400DCD162 /* SDL_audiocvt.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8A123E2513F00DCD162 /* SDL_audiocvt.c */; }; + A7D8B86823E2514400DCD162 /* SDL_audiocvt.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8A123E2513F00DCD162 /* SDL_audiocvt.c */; }; + A7D8B86923E2514400DCD162 /* SDL_audiocvt.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8A123E2513F00DCD162 /* SDL_audiocvt.c */; }; + A7D8B86A23E2514400DCD162 /* SDL_audiocvt.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8A123E2513F00DCD162 /* SDL_audiocvt.c */; }; + A7D8B86B23E2514400DCD162 /* SDL_audiocvt.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8A123E2513F00DCD162 /* SDL_audiocvt.c */; }; + A7D8B86C23E2514400DCD162 /* SDL_wave.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8A223E2513F00DCD162 /* SDL_wave.h */; }; + A7D8B86D23E2514400DCD162 /* SDL_wave.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8A223E2513F00DCD162 /* SDL_wave.h */; }; + A7D8B86E23E2514400DCD162 /* SDL_wave.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8A223E2513F00DCD162 /* SDL_wave.h */; }; + A7D8B86F23E2514400DCD162 /* SDL_wave.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8A223E2513F00DCD162 /* SDL_wave.h */; }; + A7D8B87023E2514400DCD162 /* SDL_wave.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8A223E2513F00DCD162 /* SDL_wave.h */; }; + A7D8B87123E2514400DCD162 /* SDL_wave.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8A223E2513F00DCD162 /* SDL_wave.h */; }; + A7D8B8A223E2514400DCD162 /* SDL_diskaudio.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8B023E2513F00DCD162 /* SDL_diskaudio.h */; }; + A7D8B8A323E2514400DCD162 /* SDL_diskaudio.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8B023E2513F00DCD162 /* SDL_diskaudio.h */; }; + A7D8B8A423E2514400DCD162 /* SDL_diskaudio.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8B023E2513F00DCD162 /* SDL_diskaudio.h */; }; + A7D8B8A523E2514400DCD162 /* SDL_diskaudio.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8B023E2513F00DCD162 /* SDL_diskaudio.h */; }; + A7D8B8A623E2514400DCD162 /* SDL_diskaudio.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8B023E2513F00DCD162 /* SDL_diskaudio.h */; }; + A7D8B8A723E2514400DCD162 /* SDL_diskaudio.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8B023E2513F00DCD162 /* SDL_diskaudio.h */; }; + A7D8B8A823E2514400DCD162 /* SDL_diskaudio.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8B123E2513F00DCD162 /* SDL_diskaudio.c */; }; + A7D8B8A923E2514400DCD162 /* SDL_diskaudio.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8B123E2513F00DCD162 /* SDL_diskaudio.c */; }; + A7D8B8AA23E2514400DCD162 /* SDL_diskaudio.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8B123E2513F00DCD162 /* SDL_diskaudio.c */; }; + A7D8B8AB23E2514400DCD162 /* SDL_diskaudio.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8B123E2513F00DCD162 /* SDL_diskaudio.c */; }; + A7D8B8AC23E2514400DCD162 /* SDL_diskaudio.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8B123E2513F00DCD162 /* SDL_diskaudio.c */; }; + A7D8B8AD23E2514400DCD162 /* SDL_diskaudio.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8B123E2513F00DCD162 /* SDL_diskaudio.c */; }; + A7D8B8C623E2514400DCD162 /* SDL_audio.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8B823E2513F00DCD162 /* SDL_audio.c */; }; + A7D8B8C723E2514400DCD162 /* SDL_audio.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8B823E2513F00DCD162 /* SDL_audio.c */; }; + A7D8B8C823E2514400DCD162 /* SDL_audio.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8B823E2513F00DCD162 /* SDL_audio.c */; }; + A7D8B8C923E2514400DCD162 /* SDL_audio.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8B823E2513F00DCD162 /* SDL_audio.c */; }; + A7D8B8CA23E2514400DCD162 /* SDL_audio.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8B823E2513F00DCD162 /* SDL_audio.c */; }; + A7D8B8CB23E2514400DCD162 /* SDL_audio.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8B823E2513F00DCD162 /* SDL_audio.c */; }; + A7D8B8CC23E2514400DCD162 /* SDL_coreaudio.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8BA23E2513F00DCD162 /* SDL_coreaudio.h */; }; + A7D8B8CD23E2514400DCD162 /* SDL_coreaudio.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8BA23E2513F00DCD162 /* SDL_coreaudio.h */; }; + A7D8B8CE23E2514400DCD162 /* SDL_coreaudio.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8BA23E2513F00DCD162 /* SDL_coreaudio.h */; }; + A7D8B8CF23E2514400DCD162 /* SDL_coreaudio.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8BA23E2513F00DCD162 /* SDL_coreaudio.h */; }; + A7D8B8D023E2514400DCD162 /* SDL_coreaudio.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8BA23E2513F00DCD162 /* SDL_coreaudio.h */; }; + A7D8B8D123E2514400DCD162 /* SDL_coreaudio.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8BA23E2513F00DCD162 /* SDL_coreaudio.h */; }; + A7D8B8D223E2514400DCD162 /* SDL_coreaudio.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8BB23E2513F00DCD162 /* SDL_coreaudio.m */; }; + A7D8B8D323E2514400DCD162 /* SDL_coreaudio.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8BB23E2513F00DCD162 /* SDL_coreaudio.m */; }; + A7D8B8D423E2514400DCD162 /* SDL_coreaudio.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8BB23E2513F00DCD162 /* SDL_coreaudio.m */; }; + A7D8B8D523E2514400DCD162 /* SDL_coreaudio.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8BB23E2513F00DCD162 /* SDL_coreaudio.m */; }; + A7D8B8D623E2514400DCD162 /* SDL_coreaudio.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8BB23E2513F00DCD162 /* SDL_coreaudio.m */; }; + A7D8B8D723E2514400DCD162 /* SDL_coreaudio.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8BB23E2513F00DCD162 /* SDL_coreaudio.m */; }; + A7D8B8E423E2514400DCD162 /* SDL_error.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8BF23E2513F00DCD162 /* SDL_error.c */; }; + A7D8B8E523E2514400DCD162 /* SDL_error.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8BF23E2513F00DCD162 /* SDL_error.c */; }; + A7D8B8E623E2514400DCD162 /* SDL_error.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8BF23E2513F00DCD162 /* SDL_error.c */; }; + A7D8B8E723E2514400DCD162 /* SDL_error.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8BF23E2513F00DCD162 /* SDL_error.c */; }; + A7D8B8E823E2514400DCD162 /* SDL_error.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8BF23E2513F00DCD162 /* SDL_error.c */; }; + A7D8B8E923E2514400DCD162 /* SDL_error.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8BF23E2513F00DCD162 /* SDL_error.c */; }; + A7D8B94A23E2514400DCD162 /* SDL_hints_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8D123E2514000DCD162 /* SDL_hints_c.h */; }; + A7D8B94B23E2514400DCD162 /* SDL_hints_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8D123E2514000DCD162 /* SDL_hints_c.h */; }; + A7D8B94C23E2514400DCD162 /* SDL_hints_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8D123E2514000DCD162 /* SDL_hints_c.h */; }; + A7D8B94D23E2514400DCD162 /* SDL_hints_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8D123E2514000DCD162 /* SDL_hints_c.h */; }; + A7D8B94E23E2514400DCD162 /* SDL_hints_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8D123E2514000DCD162 /* SDL_hints_c.h */; }; + A7D8B94F23E2514400DCD162 /* SDL_hints_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8D123E2514000DCD162 /* SDL_hints_c.h */; }; + A7D8B95023E2514400DCD162 /* SDL_iconv.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D323E2514000DCD162 /* SDL_iconv.c */; }; + A7D8B95123E2514400DCD162 /* SDL_iconv.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D323E2514000DCD162 /* SDL_iconv.c */; }; + A7D8B95223E2514400DCD162 /* SDL_iconv.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D323E2514000DCD162 /* SDL_iconv.c */; }; + A7D8B95323E2514400DCD162 /* SDL_iconv.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D323E2514000DCD162 /* SDL_iconv.c */; }; + A7D8B95423E2514400DCD162 /* SDL_iconv.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D323E2514000DCD162 /* SDL_iconv.c */; }; + A7D8B95523E2514400DCD162 /* SDL_iconv.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D323E2514000DCD162 /* SDL_iconv.c */; }; + A7D8B95623E2514400DCD162 /* SDL_getenv.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D423E2514000DCD162 /* SDL_getenv.c */; }; + A7D8B95723E2514400DCD162 /* SDL_getenv.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D423E2514000DCD162 /* SDL_getenv.c */; }; + A7D8B95823E2514400DCD162 /* SDL_getenv.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D423E2514000DCD162 /* SDL_getenv.c */; }; + A7D8B95923E2514400DCD162 /* SDL_getenv.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D423E2514000DCD162 /* SDL_getenv.c */; }; + A7D8B95A23E2514400DCD162 /* SDL_getenv.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D423E2514000DCD162 /* SDL_getenv.c */; }; + A7D8B95B23E2514400DCD162 /* SDL_getenv.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D423E2514000DCD162 /* SDL_getenv.c */; }; + A7D8B95C23E2514400DCD162 /* SDL_string.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D523E2514000DCD162 /* SDL_string.c */; }; + A7D8B95D23E2514400DCD162 /* SDL_string.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D523E2514000DCD162 /* SDL_string.c */; }; + A7D8B95E23E2514400DCD162 /* SDL_string.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D523E2514000DCD162 /* SDL_string.c */; }; + A7D8B95F23E2514400DCD162 /* SDL_string.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D523E2514000DCD162 /* SDL_string.c */; }; + A7D8B96023E2514400DCD162 /* SDL_string.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D523E2514000DCD162 /* SDL_string.c */; }; + A7D8B96123E2514400DCD162 /* SDL_string.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D523E2514000DCD162 /* SDL_string.c */; }; + A7D8B96223E2514400DCD162 /* SDL_strtokr.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D623E2514000DCD162 /* SDL_strtokr.c */; }; + A7D8B96323E2514400DCD162 /* SDL_strtokr.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D623E2514000DCD162 /* SDL_strtokr.c */; }; + A7D8B96423E2514400DCD162 /* SDL_strtokr.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D623E2514000DCD162 /* SDL_strtokr.c */; }; + A7D8B96523E2514400DCD162 /* SDL_strtokr.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D623E2514000DCD162 /* SDL_strtokr.c */; }; + A7D8B96623E2514400DCD162 /* SDL_strtokr.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D623E2514000DCD162 /* SDL_strtokr.c */; }; + A7D8B96723E2514400DCD162 /* SDL_strtokr.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D623E2514000DCD162 /* SDL_strtokr.c */; }; + A7D8B96823E2514400DCD162 /* SDL_qsort.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D723E2514000DCD162 /* SDL_qsort.c */; }; + A7D8B96923E2514400DCD162 /* SDL_qsort.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D723E2514000DCD162 /* SDL_qsort.c */; }; + A7D8B96A23E2514400DCD162 /* SDL_qsort.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D723E2514000DCD162 /* SDL_qsort.c */; }; + A7D8B96B23E2514400DCD162 /* SDL_qsort.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D723E2514000DCD162 /* SDL_qsort.c */; }; + A7D8B96C23E2514400DCD162 /* SDL_qsort.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D723E2514000DCD162 /* SDL_qsort.c */; }; + A7D8B96D23E2514400DCD162 /* SDL_qsort.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D723E2514000DCD162 /* SDL_qsort.c */; }; + A7D8B96E23E2514400DCD162 /* SDL_stdlib.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D823E2514000DCD162 /* SDL_stdlib.c */; }; + A7D8B96F23E2514400DCD162 /* SDL_stdlib.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D823E2514000DCD162 /* SDL_stdlib.c */; }; + A7D8B97023E2514400DCD162 /* SDL_stdlib.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D823E2514000DCD162 /* SDL_stdlib.c */; }; + A7D8B97123E2514400DCD162 /* SDL_stdlib.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D823E2514000DCD162 /* SDL_stdlib.c */; }; + A7D8B97223E2514400DCD162 /* SDL_stdlib.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D823E2514000DCD162 /* SDL_stdlib.c */; }; + A7D8B97323E2514400DCD162 /* SDL_stdlib.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D823E2514000DCD162 /* SDL_stdlib.c */; }; + A7D8B97423E2514400DCD162 /* SDL_malloc.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D923E2514000DCD162 /* SDL_malloc.c */; }; + A7D8B97523E2514400DCD162 /* SDL_malloc.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D923E2514000DCD162 /* SDL_malloc.c */; }; + A7D8B97623E2514400DCD162 /* SDL_malloc.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D923E2514000DCD162 /* SDL_malloc.c */; }; + A7D8B97723E2514400DCD162 /* SDL_malloc.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D923E2514000DCD162 /* SDL_malloc.c */; }; + A7D8B97823E2514400DCD162 /* SDL_malloc.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D923E2514000DCD162 /* SDL_malloc.c */; }; + A7D8B97923E2514400DCD162 /* SDL_malloc.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D923E2514000DCD162 /* SDL_malloc.c */; }; + A7D8B97A23E2514400DCD162 /* SDL_render.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8DB23E2514000DCD162 /* SDL_render.c */; }; + A7D8B97B23E2514400DCD162 /* SDL_render.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8DB23E2514000DCD162 /* SDL_render.c */; }; + A7D8B97C23E2514400DCD162 /* SDL_render.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8DB23E2514000DCD162 /* SDL_render.c */; }; + A7D8B97D23E2514400DCD162 /* SDL_render.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8DB23E2514000DCD162 /* SDL_render.c */; }; + A7D8B97E23E2514400DCD162 /* SDL_render.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8DB23E2514000DCD162 /* SDL_render.c */; }; + A7D8B97F23E2514400DCD162 /* SDL_render.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8DB23E2514000DCD162 /* SDL_render.c */; }; + A7D8B98023E2514400DCD162 /* SDL_d3dmath.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8DC23E2514000DCD162 /* SDL_d3dmath.h */; }; + A7D8B98123E2514400DCD162 /* SDL_d3dmath.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8DC23E2514000DCD162 /* SDL_d3dmath.h */; }; + A7D8B98223E2514400DCD162 /* SDL_d3dmath.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8DC23E2514000DCD162 /* SDL_d3dmath.h */; }; + A7D8B98323E2514400DCD162 /* SDL_d3dmath.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8DC23E2514000DCD162 /* SDL_d3dmath.h */; }; + A7D8B98423E2514400DCD162 /* SDL_d3dmath.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8DC23E2514000DCD162 /* SDL_d3dmath.h */; }; + A7D8B98523E2514400DCD162 /* SDL_d3dmath.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8DC23E2514000DCD162 /* SDL_d3dmath.h */; }; + A7D8B98623E2514400DCD162 /* SDL_render_metal.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8DE23E2514000DCD162 /* SDL_render_metal.m */; }; + A7D8B98723E2514400DCD162 /* SDL_render_metal.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8DE23E2514000DCD162 /* SDL_render_metal.m */; }; + A7D8B98823E2514400DCD162 /* SDL_render_metal.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8DE23E2514000DCD162 /* SDL_render_metal.m */; }; + A7D8B98923E2514400DCD162 /* SDL_render_metal.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8DE23E2514000DCD162 /* SDL_render_metal.m */; }; + A7D8B98A23E2514400DCD162 /* SDL_render_metal.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8DE23E2514000DCD162 /* SDL_render_metal.m */; }; + A7D8B98B23E2514400DCD162 /* SDL_render_metal.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8DE23E2514000DCD162 /* SDL_render_metal.m */; }; + A7D8B98C23E2514400DCD162 /* SDL_shaders_metal_ios.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8DF23E2514000DCD162 /* SDL_shaders_metal_ios.h */; }; + A7D8B98D23E2514400DCD162 /* SDL_shaders_metal_ios.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8DF23E2514000DCD162 /* SDL_shaders_metal_ios.h */; }; + A7D8B98E23E2514400DCD162 /* SDL_shaders_metal_ios.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8DF23E2514000DCD162 /* SDL_shaders_metal_ios.h */; }; + A7D8B98F23E2514400DCD162 /* SDL_shaders_metal_ios.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8DF23E2514000DCD162 /* SDL_shaders_metal_ios.h */; }; + A7D8B99023E2514400DCD162 /* SDL_shaders_metal_ios.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8DF23E2514000DCD162 /* SDL_shaders_metal_ios.h */; }; + A7D8B99123E2514400DCD162 /* SDL_shaders_metal_ios.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8DF23E2514000DCD162 /* SDL_shaders_metal_ios.h */; }; + A7D8B99223E2514400DCD162 /* SDL_shaders_metal.metal in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8E023E2514000DCD162 /* SDL_shaders_metal.metal */; }; + A7D8B99323E2514400DCD162 /* SDL_shaders_metal.metal in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8E023E2514000DCD162 /* SDL_shaders_metal.metal */; }; + A7D8B99423E2514400DCD162 /* SDL_shaders_metal.metal in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8E023E2514000DCD162 /* SDL_shaders_metal.metal */; }; + A7D8B99523E2514400DCD162 /* SDL_shaders_metal.metal in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8E023E2514000DCD162 /* SDL_shaders_metal.metal */; }; + A7D8B99623E2514400DCD162 /* SDL_shaders_metal.metal in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8E023E2514000DCD162 /* SDL_shaders_metal.metal */; }; + A7D8B99723E2514400DCD162 /* SDL_shaders_metal.metal in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8E023E2514000DCD162 /* SDL_shaders_metal.metal */; }; + A7D8B99B23E2514400DCD162 /* SDL_shaders_metal_osx.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8E223E2514000DCD162 /* SDL_shaders_metal_osx.h */; }; + A7D8B99C23E2514400DCD162 /* SDL_shaders_metal_osx.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8E223E2514000DCD162 /* SDL_shaders_metal_osx.h */; }; + A7D8B99D23E2514400DCD162 /* SDL_shaders_metal_osx.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8E223E2514000DCD162 /* SDL_shaders_metal_osx.h */; }; + A7D8B99E23E2514400DCD162 /* SDL_shaders_metal_osx.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8E223E2514000DCD162 /* SDL_shaders_metal_osx.h */; }; + A7D8B99F23E2514400DCD162 /* SDL_shaders_metal_osx.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8E223E2514000DCD162 /* SDL_shaders_metal_osx.h */; }; + A7D8B9A023E2514400DCD162 /* SDL_shaders_metal_osx.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8E223E2514000DCD162 /* SDL_shaders_metal_osx.h */; }; + A7D8B9A123E2514400DCD162 /* SDL_shaders_metal_tvos.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8E323E2514000DCD162 /* SDL_shaders_metal_tvos.h */; }; + A7D8B9A223E2514400DCD162 /* SDL_shaders_metal_tvos.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8E323E2514000DCD162 /* SDL_shaders_metal_tvos.h */; }; + A7D8B9A323E2514400DCD162 /* SDL_shaders_metal_tvos.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8E323E2514000DCD162 /* SDL_shaders_metal_tvos.h */; }; + A7D8B9A423E2514400DCD162 /* SDL_shaders_metal_tvos.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8E323E2514000DCD162 /* SDL_shaders_metal_tvos.h */; }; + A7D8B9A523E2514400DCD162 /* SDL_shaders_metal_tvos.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8E323E2514000DCD162 /* SDL_shaders_metal_tvos.h */; }; + A7D8B9A623E2514400DCD162 /* SDL_shaders_metal_tvos.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8E323E2514000DCD162 /* SDL_shaders_metal_tvos.h */; }; + A7D8B9CB23E2514400DCD162 /* SDL_yuv_sw_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8EC23E2514000DCD162 /* SDL_yuv_sw_c.h */; }; + A7D8B9CC23E2514400DCD162 /* SDL_yuv_sw_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8EC23E2514000DCD162 /* SDL_yuv_sw_c.h */; }; + A7D8B9CD23E2514400DCD162 /* SDL_yuv_sw_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8EC23E2514000DCD162 /* SDL_yuv_sw_c.h */; }; + A7D8B9CE23E2514400DCD162 /* SDL_yuv_sw_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8EC23E2514000DCD162 /* SDL_yuv_sw_c.h */; }; + A7D8B9CF23E2514400DCD162 /* SDL_yuv_sw_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8EC23E2514000DCD162 /* SDL_yuv_sw_c.h */; }; + A7D8B9D023E2514400DCD162 /* SDL_yuv_sw_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8EC23E2514000DCD162 /* SDL_yuv_sw_c.h */; }; + A7D8B9D123E2514400DCD162 /* SDL_yuv_sw.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8ED23E2514000DCD162 /* SDL_yuv_sw.c */; }; + A7D8B9D223E2514400DCD162 /* SDL_yuv_sw.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8ED23E2514000DCD162 /* SDL_yuv_sw.c */; }; + A7D8B9D323E2514400DCD162 /* SDL_yuv_sw.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8ED23E2514000DCD162 /* SDL_yuv_sw.c */; }; + A7D8B9D423E2514400DCD162 /* SDL_yuv_sw.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8ED23E2514000DCD162 /* SDL_yuv_sw.c */; }; + A7D8B9D523E2514400DCD162 /* SDL_yuv_sw.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8ED23E2514000DCD162 /* SDL_yuv_sw.c */; }; + A7D8B9D623E2514400DCD162 /* SDL_yuv_sw.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8ED23E2514000DCD162 /* SDL_yuv_sw.c */; }; + A7D8B9D723E2514400DCD162 /* SDL_sysrender.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8EE23E2514000DCD162 /* SDL_sysrender.h */; }; + A7D8B9D823E2514400DCD162 /* SDL_sysrender.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8EE23E2514000DCD162 /* SDL_sysrender.h */; }; + A7D8B9D923E2514400DCD162 /* SDL_sysrender.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8EE23E2514000DCD162 /* SDL_sysrender.h */; }; + A7D8B9DA23E2514400DCD162 /* SDL_sysrender.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8EE23E2514000DCD162 /* SDL_sysrender.h */; }; + A7D8B9DB23E2514400DCD162 /* SDL_sysrender.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8EE23E2514000DCD162 /* SDL_sysrender.h */; }; + A7D8B9DC23E2514400DCD162 /* SDL_sysrender.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8EE23E2514000DCD162 /* SDL_sysrender.h */; }; + A7D8B9DD23E2514400DCD162 /* SDL_blendpoint.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8F023E2514000DCD162 /* SDL_blendpoint.c */; }; + A7D8B9DE23E2514400DCD162 /* SDL_blendpoint.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8F023E2514000DCD162 /* SDL_blendpoint.c */; }; + A7D8B9DF23E2514400DCD162 /* SDL_blendpoint.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8F023E2514000DCD162 /* SDL_blendpoint.c */; }; + A7D8B9E023E2514400DCD162 /* SDL_blendpoint.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8F023E2514000DCD162 /* SDL_blendpoint.c */; }; + A7D8B9E123E2514400DCD162 /* SDL_blendpoint.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8F023E2514000DCD162 /* SDL_blendpoint.c */; }; + A7D8B9E223E2514400DCD162 /* SDL_blendpoint.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8F023E2514000DCD162 /* SDL_blendpoint.c */; }; + A7D8B9E323E2514400DCD162 /* SDL_drawline.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8F123E2514000DCD162 /* SDL_drawline.c */; }; + A7D8B9E423E2514400DCD162 /* SDL_drawline.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8F123E2514000DCD162 /* SDL_drawline.c */; }; + A7D8B9E523E2514400DCD162 /* SDL_drawline.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8F123E2514000DCD162 /* SDL_drawline.c */; }; + A7D8B9E623E2514400DCD162 /* SDL_drawline.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8F123E2514000DCD162 /* SDL_drawline.c */; }; + A7D8B9E723E2514400DCD162 /* SDL_drawline.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8F123E2514000DCD162 /* SDL_drawline.c */; }; + A7D8B9E823E2514400DCD162 /* SDL_drawline.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8F123E2514000DCD162 /* SDL_drawline.c */; }; + A7D8B9E923E2514400DCD162 /* SDL_blendline.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F223E2514000DCD162 /* SDL_blendline.h */; }; + A7D8B9EA23E2514400DCD162 /* SDL_blendline.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F223E2514000DCD162 /* SDL_blendline.h */; }; + A7D8B9EB23E2514400DCD162 /* SDL_blendline.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F223E2514000DCD162 /* SDL_blendline.h */; }; + A7D8B9EC23E2514400DCD162 /* SDL_blendline.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F223E2514000DCD162 /* SDL_blendline.h */; }; + A7D8B9ED23E2514400DCD162 /* SDL_blendline.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F223E2514000DCD162 /* SDL_blendline.h */; }; + A7D8B9EE23E2514400DCD162 /* SDL_blendline.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F223E2514000DCD162 /* SDL_blendline.h */; }; + A7D8B9EF23E2514400DCD162 /* SDL_drawpoint.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F323E2514000DCD162 /* SDL_drawpoint.h */; }; + A7D8B9F023E2514400DCD162 /* SDL_drawpoint.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F323E2514000DCD162 /* SDL_drawpoint.h */; }; + A7D8B9F123E2514400DCD162 /* SDL_drawpoint.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F323E2514000DCD162 /* SDL_drawpoint.h */; }; + A7D8B9F223E2514400DCD162 /* SDL_drawpoint.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F323E2514000DCD162 /* SDL_drawpoint.h */; }; + A7D8B9F323E2514400DCD162 /* SDL_drawpoint.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F323E2514000DCD162 /* SDL_drawpoint.h */; }; + A7D8B9F423E2514400DCD162 /* SDL_drawpoint.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F323E2514000DCD162 /* SDL_drawpoint.h */; }; + A7D8B9F523E2514400DCD162 /* SDL_rotate.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8F423E2514000DCD162 /* SDL_rotate.c */; }; + A7D8B9F623E2514400DCD162 /* SDL_rotate.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8F423E2514000DCD162 /* SDL_rotate.c */; }; + A7D8B9F723E2514400DCD162 /* SDL_rotate.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8F423E2514000DCD162 /* SDL_rotate.c */; }; + A7D8B9F823E2514400DCD162 /* SDL_rotate.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8F423E2514000DCD162 /* SDL_rotate.c */; }; + A7D8B9F923E2514400DCD162 /* SDL_rotate.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8F423E2514000DCD162 /* SDL_rotate.c */; }; + A7D8B9FA23E2514400DCD162 /* SDL_rotate.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8F423E2514000DCD162 /* SDL_rotate.c */; }; + A7D8B9FB23E2514400DCD162 /* SDL_render_sw_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F523E2514000DCD162 /* SDL_render_sw_c.h */; }; + A7D8B9FC23E2514400DCD162 /* SDL_render_sw_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F523E2514000DCD162 /* SDL_render_sw_c.h */; }; + A7D8B9FD23E2514400DCD162 /* SDL_render_sw_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F523E2514000DCD162 /* SDL_render_sw_c.h */; }; + A7D8B9FE23E2514400DCD162 /* SDL_render_sw_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F523E2514000DCD162 /* SDL_render_sw_c.h */; }; + A7D8B9FF23E2514400DCD162 /* SDL_render_sw_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F523E2514000DCD162 /* SDL_render_sw_c.h */; }; + A7D8BA0023E2514400DCD162 /* SDL_render_sw_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F523E2514000DCD162 /* SDL_render_sw_c.h */; }; + A7D8BA0123E2514400DCD162 /* SDL_blendfillrect.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F623E2514000DCD162 /* SDL_blendfillrect.h */; }; + A7D8BA0223E2514400DCD162 /* SDL_blendfillrect.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F623E2514000DCD162 /* SDL_blendfillrect.h */; }; + A7D8BA0323E2514400DCD162 /* SDL_blendfillrect.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F623E2514000DCD162 /* SDL_blendfillrect.h */; }; + A7D8BA0423E2514400DCD162 /* SDL_blendfillrect.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F623E2514000DCD162 /* SDL_blendfillrect.h */; }; + A7D8BA0523E2514400DCD162 /* SDL_blendfillrect.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F623E2514000DCD162 /* SDL_blendfillrect.h */; }; + A7D8BA0623E2514400DCD162 /* SDL_blendfillrect.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F623E2514000DCD162 /* SDL_blendfillrect.h */; }; + A7D8BA0723E2514400DCD162 /* SDL_drawline.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F723E2514000DCD162 /* SDL_drawline.h */; }; + A7D8BA0823E2514400DCD162 /* SDL_drawline.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F723E2514000DCD162 /* SDL_drawline.h */; }; + A7D8BA0923E2514400DCD162 /* SDL_drawline.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F723E2514000DCD162 /* SDL_drawline.h */; }; + A7D8BA0A23E2514400DCD162 /* SDL_drawline.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F723E2514000DCD162 /* SDL_drawline.h */; }; + A7D8BA0B23E2514400DCD162 /* SDL_drawline.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F723E2514000DCD162 /* SDL_drawline.h */; }; + A7D8BA0C23E2514400DCD162 /* SDL_drawline.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F723E2514000DCD162 /* SDL_drawline.h */; }; + A7D8BA0D23E2514400DCD162 /* SDL_blendpoint.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F823E2514000DCD162 /* SDL_blendpoint.h */; }; + A7D8BA0E23E2514400DCD162 /* SDL_blendpoint.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F823E2514000DCD162 /* SDL_blendpoint.h */; }; + A7D8BA0F23E2514400DCD162 /* SDL_blendpoint.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F823E2514000DCD162 /* SDL_blendpoint.h */; }; + A7D8BA1023E2514400DCD162 /* SDL_blendpoint.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F823E2514000DCD162 /* SDL_blendpoint.h */; }; + A7D8BA1123E2514400DCD162 /* SDL_blendpoint.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F823E2514000DCD162 /* SDL_blendpoint.h */; }; + A7D8BA1223E2514400DCD162 /* SDL_blendpoint.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F823E2514000DCD162 /* SDL_blendpoint.h */; }; + A7D8BA1323E2514400DCD162 /* SDL_render_sw.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8F923E2514000DCD162 /* SDL_render_sw.c */; }; + A7D8BA1423E2514400DCD162 /* SDL_render_sw.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8F923E2514000DCD162 /* SDL_render_sw.c */; }; + A7D8BA1523E2514400DCD162 /* SDL_render_sw.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8F923E2514000DCD162 /* SDL_render_sw.c */; }; + A7D8BA1623E2514400DCD162 /* SDL_render_sw.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8F923E2514000DCD162 /* SDL_render_sw.c */; }; + A7D8BA1723E2514400DCD162 /* SDL_render_sw.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8F923E2514000DCD162 /* SDL_render_sw.c */; }; + A7D8BA1823E2514400DCD162 /* SDL_render_sw.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8F923E2514000DCD162 /* SDL_render_sw.c */; }; + A7D8BA1923E2514400DCD162 /* SDL_draw.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8FA23E2514000DCD162 /* SDL_draw.h */; }; + A7D8BA1A23E2514400DCD162 /* SDL_draw.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8FA23E2514000DCD162 /* SDL_draw.h */; }; + A7D8BA1B23E2514400DCD162 /* SDL_draw.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8FA23E2514000DCD162 /* SDL_draw.h */; }; + A7D8BA1C23E2514400DCD162 /* SDL_draw.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8FA23E2514000DCD162 /* SDL_draw.h */; }; + A7D8BA1D23E2514400DCD162 /* SDL_draw.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8FA23E2514000DCD162 /* SDL_draw.h */; }; + A7D8BA1E23E2514400DCD162 /* SDL_draw.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8FA23E2514000DCD162 /* SDL_draw.h */; }; + A7D8BA1F23E2514400DCD162 /* SDL_blendline.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8FB23E2514000DCD162 /* SDL_blendline.c */; }; + A7D8BA2023E2514400DCD162 /* SDL_blendline.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8FB23E2514000DCD162 /* SDL_blendline.c */; }; + A7D8BA2123E2514400DCD162 /* SDL_blendline.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8FB23E2514000DCD162 /* SDL_blendline.c */; }; + A7D8BA2223E2514400DCD162 /* SDL_blendline.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8FB23E2514000DCD162 /* SDL_blendline.c */; }; + A7D8BA2323E2514400DCD162 /* SDL_blendline.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8FB23E2514000DCD162 /* SDL_blendline.c */; }; + A7D8BA2423E2514400DCD162 /* SDL_blendline.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8FB23E2514000DCD162 /* SDL_blendline.c */; }; + A7D8BA2523E2514400DCD162 /* SDL_drawpoint.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8FC23E2514000DCD162 /* SDL_drawpoint.c */; }; + A7D8BA2623E2514400DCD162 /* SDL_drawpoint.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8FC23E2514000DCD162 /* SDL_drawpoint.c */; }; + A7D8BA2723E2514400DCD162 /* SDL_drawpoint.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8FC23E2514000DCD162 /* SDL_drawpoint.c */; }; + A7D8BA2823E2514400DCD162 /* SDL_drawpoint.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8FC23E2514000DCD162 /* SDL_drawpoint.c */; }; + A7D8BA2923E2514400DCD162 /* SDL_drawpoint.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8FC23E2514000DCD162 /* SDL_drawpoint.c */; }; + A7D8BA2A23E2514400DCD162 /* SDL_drawpoint.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8FC23E2514000DCD162 /* SDL_drawpoint.c */; }; + A7D8BA2B23E2514400DCD162 /* SDL_blendfillrect.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8FD23E2514000DCD162 /* SDL_blendfillrect.c */; }; + A7D8BA2C23E2514400DCD162 /* SDL_blendfillrect.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8FD23E2514000DCD162 /* SDL_blendfillrect.c */; }; + A7D8BA2D23E2514400DCD162 /* SDL_blendfillrect.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8FD23E2514000DCD162 /* SDL_blendfillrect.c */; }; + A7D8BA2E23E2514400DCD162 /* SDL_blendfillrect.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8FD23E2514000DCD162 /* SDL_blendfillrect.c */; }; + A7D8BA2F23E2514400DCD162 /* SDL_blendfillrect.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8FD23E2514000DCD162 /* SDL_blendfillrect.c */; }; + A7D8BA3023E2514400DCD162 /* SDL_blendfillrect.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8FD23E2514000DCD162 /* SDL_blendfillrect.c */; }; + A7D8BA3123E2514400DCD162 /* SDL_rotate.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8FE23E2514000DCD162 /* SDL_rotate.h */; }; + A7D8BA3223E2514400DCD162 /* SDL_rotate.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8FE23E2514000DCD162 /* SDL_rotate.h */; }; + A7D8BA3323E2514400DCD162 /* SDL_rotate.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8FE23E2514000DCD162 /* SDL_rotate.h */; }; + A7D8BA3423E2514400DCD162 /* SDL_rotate.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8FE23E2514000DCD162 /* SDL_rotate.h */; }; + A7D8BA3523E2514400DCD162 /* SDL_rotate.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8FE23E2514000DCD162 /* SDL_rotate.h */; }; + A7D8BA3623E2514400DCD162 /* SDL_rotate.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8FE23E2514000DCD162 /* SDL_rotate.h */; }; + A7D8BA3723E2514400DCD162 /* SDL_d3dmath.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8FF23E2514000DCD162 /* SDL_d3dmath.c */; }; + A7D8BA3823E2514400DCD162 /* SDL_d3dmath.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8FF23E2514000DCD162 /* SDL_d3dmath.c */; }; + A7D8BA3923E2514400DCD162 /* SDL_d3dmath.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8FF23E2514000DCD162 /* SDL_d3dmath.c */; }; + A7D8BA3A23E2514400DCD162 /* SDL_d3dmath.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8FF23E2514000DCD162 /* SDL_d3dmath.c */; }; + A7D8BA3B23E2514400DCD162 /* SDL_d3dmath.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8FF23E2514000DCD162 /* SDL_d3dmath.c */; }; + A7D8BA3C23E2514400DCD162 /* SDL_d3dmath.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8FF23E2514000DCD162 /* SDL_d3dmath.c */; }; + A7D8BA3D23E2514400DCD162 /* SDL_render_gles.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A90123E2514000DCD162 /* SDL_render_gles.c */; }; + A7D8BA3E23E2514400DCD162 /* SDL_render_gles.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A90123E2514000DCD162 /* SDL_render_gles.c */; }; + A7D8BA3F23E2514400DCD162 /* SDL_render_gles.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A90123E2514000DCD162 /* SDL_render_gles.c */; }; + A7D8BA4023E2514400DCD162 /* SDL_render_gles.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A90123E2514000DCD162 /* SDL_render_gles.c */; }; + A7D8BA4123E2514400DCD162 /* SDL_render_gles.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A90123E2514000DCD162 /* SDL_render_gles.c */; }; + A7D8BA4223E2514400DCD162 /* SDL_render_gles.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A90123E2514000DCD162 /* SDL_render_gles.c */; }; + A7D8BA4323E2514400DCD162 /* SDL_glesfuncs.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A90223E2514000DCD162 /* SDL_glesfuncs.h */; }; + A7D8BA4423E2514400DCD162 /* SDL_glesfuncs.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A90223E2514000DCD162 /* SDL_glesfuncs.h */; }; + A7D8BA4523E2514400DCD162 /* SDL_glesfuncs.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A90223E2514000DCD162 /* SDL_glesfuncs.h */; }; + A7D8BA4623E2514400DCD162 /* SDL_glesfuncs.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A90223E2514000DCD162 /* SDL_glesfuncs.h */; }; + A7D8BA4723E2514400DCD162 /* SDL_glesfuncs.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A90223E2514000DCD162 /* SDL_glesfuncs.h */; }; + A7D8BA4823E2514400DCD162 /* SDL_glesfuncs.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A90223E2514000DCD162 /* SDL_glesfuncs.h */; }; + A7D8BA4923E2514400DCD162 /* SDL_render_gles2.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A90423E2514000DCD162 /* SDL_render_gles2.c */; }; + A7D8BA4A23E2514400DCD162 /* SDL_render_gles2.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A90423E2514000DCD162 /* SDL_render_gles2.c */; }; + A7D8BA4B23E2514400DCD162 /* SDL_render_gles2.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A90423E2514000DCD162 /* SDL_render_gles2.c */; }; + A7D8BA4C23E2514400DCD162 /* SDL_render_gles2.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A90423E2514000DCD162 /* SDL_render_gles2.c */; }; + A7D8BA4D23E2514400DCD162 /* SDL_render_gles2.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A90423E2514000DCD162 /* SDL_render_gles2.c */; }; + A7D8BA4E23E2514400DCD162 /* SDL_render_gles2.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A90423E2514000DCD162 /* SDL_render_gles2.c */; }; + A7D8BA4F23E2514400DCD162 /* SDL_shaders_gles2.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A90523E2514000DCD162 /* SDL_shaders_gles2.h */; }; + A7D8BA5023E2514400DCD162 /* SDL_shaders_gles2.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A90523E2514000DCD162 /* SDL_shaders_gles2.h */; }; + A7D8BA5123E2514400DCD162 /* SDL_shaders_gles2.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A90523E2514000DCD162 /* SDL_shaders_gles2.h */; }; + A7D8BA5223E2514400DCD162 /* SDL_shaders_gles2.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A90523E2514000DCD162 /* SDL_shaders_gles2.h */; }; + A7D8BA5323E2514400DCD162 /* SDL_shaders_gles2.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A90523E2514000DCD162 /* SDL_shaders_gles2.h */; }; + A7D8BA5423E2514400DCD162 /* SDL_shaders_gles2.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A90523E2514000DCD162 /* SDL_shaders_gles2.h */; }; + A7D8BA5523E2514400DCD162 /* SDL_gles2funcs.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A90623E2514000DCD162 /* SDL_gles2funcs.h */; }; + A7D8BA5623E2514400DCD162 /* SDL_gles2funcs.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A90623E2514000DCD162 /* SDL_gles2funcs.h */; }; + A7D8BA5723E2514400DCD162 /* SDL_gles2funcs.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A90623E2514000DCD162 /* SDL_gles2funcs.h */; }; + A7D8BA5823E2514400DCD162 /* SDL_gles2funcs.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A90623E2514000DCD162 /* SDL_gles2funcs.h */; }; + A7D8BA5923E2514400DCD162 /* SDL_gles2funcs.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A90623E2514000DCD162 /* SDL_gles2funcs.h */; }; + A7D8BA5A23E2514400DCD162 /* SDL_gles2funcs.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A90623E2514000DCD162 /* SDL_gles2funcs.h */; }; + A7D8BA5B23E2514400DCD162 /* SDL_shaders_gles2.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A90723E2514000DCD162 /* SDL_shaders_gles2.c */; }; + A7D8BA5C23E2514400DCD162 /* SDL_shaders_gles2.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A90723E2514000DCD162 /* SDL_shaders_gles2.c */; }; + A7D8BA5D23E2514400DCD162 /* SDL_shaders_gles2.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A90723E2514000DCD162 /* SDL_shaders_gles2.c */; }; + A7D8BA5E23E2514400DCD162 /* SDL_shaders_gles2.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A90723E2514000DCD162 /* SDL_shaders_gles2.c */; }; + A7D8BA5F23E2514400DCD162 /* SDL_shaders_gles2.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A90723E2514000DCD162 /* SDL_shaders_gles2.c */; }; + A7D8BA6023E2514400DCD162 /* SDL_shaders_gles2.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A90723E2514000DCD162 /* SDL_shaders_gles2.c */; }; + A7D8BA7323E2514400DCD162 /* SDL_shaders_gl.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A90D23E2514000DCD162 /* SDL_shaders_gl.h */; }; + A7D8BA7423E2514400DCD162 /* SDL_shaders_gl.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A90D23E2514000DCD162 /* SDL_shaders_gl.h */; }; + A7D8BA7523E2514400DCD162 /* SDL_shaders_gl.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A90D23E2514000DCD162 /* SDL_shaders_gl.h */; }; + A7D8BA7623E2514400DCD162 /* SDL_shaders_gl.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A90D23E2514000DCD162 /* SDL_shaders_gl.h */; }; + A7D8BA7723E2514400DCD162 /* SDL_shaders_gl.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A90D23E2514000DCD162 /* SDL_shaders_gl.h */; }; + A7D8BA7823E2514400DCD162 /* SDL_shaders_gl.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A90D23E2514000DCD162 /* SDL_shaders_gl.h */; }; + A7D8BA7923E2514400DCD162 /* SDL_glfuncs.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A90E23E2514000DCD162 /* SDL_glfuncs.h */; }; + A7D8BA7A23E2514400DCD162 /* SDL_glfuncs.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A90E23E2514000DCD162 /* SDL_glfuncs.h */; }; + A7D8BA7B23E2514400DCD162 /* SDL_glfuncs.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A90E23E2514000DCD162 /* SDL_glfuncs.h */; }; + A7D8BA7C23E2514400DCD162 /* SDL_glfuncs.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A90E23E2514000DCD162 /* SDL_glfuncs.h */; }; + A7D8BA7D23E2514400DCD162 /* SDL_glfuncs.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A90E23E2514000DCD162 /* SDL_glfuncs.h */; }; + A7D8BA7E23E2514400DCD162 /* SDL_glfuncs.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A90E23E2514000DCD162 /* SDL_glfuncs.h */; }; + A7D8BA7F23E2514400DCD162 /* SDL_render_gl.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A90F23E2514000DCD162 /* SDL_render_gl.c */; }; + A7D8BA8023E2514400DCD162 /* SDL_render_gl.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A90F23E2514000DCD162 /* SDL_render_gl.c */; }; + A7D8BA8123E2514400DCD162 /* SDL_render_gl.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A90F23E2514000DCD162 /* SDL_render_gl.c */; }; + A7D8BA8223E2514400DCD162 /* SDL_render_gl.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A90F23E2514000DCD162 /* SDL_render_gl.c */; }; + A7D8BA8323E2514400DCD162 /* SDL_render_gl.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A90F23E2514000DCD162 /* SDL_render_gl.c */; }; + A7D8BA8423E2514400DCD162 /* SDL_render_gl.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A90F23E2514000DCD162 /* SDL_render_gl.c */; }; + A7D8BA8523E2514400DCD162 /* SDL_shaders_gl.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91023E2514000DCD162 /* SDL_shaders_gl.c */; }; + A7D8BA8623E2514400DCD162 /* SDL_shaders_gl.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91023E2514000DCD162 /* SDL_shaders_gl.c */; }; + A7D8BA8723E2514400DCD162 /* SDL_shaders_gl.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91023E2514000DCD162 /* SDL_shaders_gl.c */; }; + A7D8BA8823E2514400DCD162 /* SDL_shaders_gl.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91023E2514000DCD162 /* SDL_shaders_gl.c */; }; + A7D8BA8923E2514400DCD162 /* SDL_shaders_gl.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91023E2514000DCD162 /* SDL_shaders_gl.c */; }; + A7D8BA8A23E2514400DCD162 /* SDL_shaders_gl.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91023E2514000DCD162 /* SDL_shaders_gl.c */; }; + A7D8BA8B23E2514400DCD162 /* s_sin.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91223E2514000DCD162 /* s_sin.c */; }; + A7D8BA8C23E2514400DCD162 /* s_sin.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91223E2514000DCD162 /* s_sin.c */; }; + A7D8BA8D23E2514400DCD162 /* s_sin.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91223E2514000DCD162 /* s_sin.c */; }; + A7D8BA8E23E2514400DCD162 /* s_sin.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91223E2514000DCD162 /* s_sin.c */; }; + A7D8BA8F23E2514400DCD162 /* s_sin.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91223E2514000DCD162 /* s_sin.c */; }; + A7D8BA9023E2514400DCD162 /* s_sin.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91223E2514000DCD162 /* s_sin.c */; }; + A7D8BA9123E2514400DCD162 /* s_cos.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91323E2514000DCD162 /* s_cos.c */; }; + A7D8BA9223E2514400DCD162 /* s_cos.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91323E2514000DCD162 /* s_cos.c */; }; + A7D8BA9323E2514400DCD162 /* s_cos.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91323E2514000DCD162 /* s_cos.c */; }; + A7D8BA9423E2514400DCD162 /* s_cos.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91323E2514000DCD162 /* s_cos.c */; }; + A7D8BA9523E2514400DCD162 /* s_cos.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91323E2514000DCD162 /* s_cos.c */; }; + A7D8BA9623E2514400DCD162 /* s_cos.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91323E2514000DCD162 /* s_cos.c */; }; + A7D8BA9723E2514400DCD162 /* s_copysign.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91423E2514000DCD162 /* s_copysign.c */; }; + A7D8BA9823E2514400DCD162 /* s_copysign.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91423E2514000DCD162 /* s_copysign.c */; }; + A7D8BA9923E2514400DCD162 /* s_copysign.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91423E2514000DCD162 /* s_copysign.c */; }; + A7D8BA9A23E2514400DCD162 /* s_copysign.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91423E2514000DCD162 /* s_copysign.c */; }; + A7D8BA9B23E2514400DCD162 /* s_copysign.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91423E2514000DCD162 /* s_copysign.c */; }; + A7D8BA9C23E2514400DCD162 /* s_copysign.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91423E2514000DCD162 /* s_copysign.c */; }; + A7D8BA9D23E2514400DCD162 /* s_fabs.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91523E2514000DCD162 /* s_fabs.c */; }; + A7D8BA9E23E2514400DCD162 /* s_fabs.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91523E2514000DCD162 /* s_fabs.c */; }; + A7D8BA9F23E2514400DCD162 /* s_fabs.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91523E2514000DCD162 /* s_fabs.c */; }; + A7D8BAA023E2514400DCD162 /* s_fabs.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91523E2514000DCD162 /* s_fabs.c */; }; + A7D8BAA123E2514400DCD162 /* s_fabs.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91523E2514000DCD162 /* s_fabs.c */; }; + A7D8BAA223E2514400DCD162 /* s_fabs.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91523E2514000DCD162 /* s_fabs.c */; }; + A7D8BAA323E2514400DCD162 /* k_rem_pio2.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91623E2514000DCD162 /* k_rem_pio2.c */; }; + A7D8BAA423E2514400DCD162 /* k_rem_pio2.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91623E2514000DCD162 /* k_rem_pio2.c */; }; + A7D8BAA523E2514400DCD162 /* k_rem_pio2.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91623E2514000DCD162 /* k_rem_pio2.c */; }; + A7D8BAA623E2514400DCD162 /* k_rem_pio2.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91623E2514000DCD162 /* k_rem_pio2.c */; }; + A7D8BAA723E2514400DCD162 /* k_rem_pio2.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91623E2514000DCD162 /* k_rem_pio2.c */; }; + A7D8BAA823E2514400DCD162 /* k_rem_pio2.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91623E2514000DCD162 /* k_rem_pio2.c */; }; + A7D8BAA923E2514400DCD162 /* k_sin.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91723E2514000DCD162 /* k_sin.c */; }; + A7D8BAAA23E2514400DCD162 /* k_sin.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91723E2514000DCD162 /* k_sin.c */; }; + A7D8BAAB23E2514400DCD162 /* k_sin.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91723E2514000DCD162 /* k_sin.c */; }; + A7D8BAAC23E2514400DCD162 /* k_sin.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91723E2514000DCD162 /* k_sin.c */; }; + A7D8BAAD23E2514400DCD162 /* k_sin.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91723E2514000DCD162 /* k_sin.c */; }; + A7D8BAAE23E2514400DCD162 /* k_sin.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91723E2514000DCD162 /* k_sin.c */; }; + A7D8BAAF23E2514400DCD162 /* s_atan.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91823E2514000DCD162 /* s_atan.c */; }; + A7D8BAB023E2514400DCD162 /* s_atan.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91823E2514000DCD162 /* s_atan.c */; }; + A7D8BAB123E2514400DCD162 /* s_atan.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91823E2514000DCD162 /* s_atan.c */; }; + A7D8BAB223E2514400DCD162 /* s_atan.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91823E2514000DCD162 /* s_atan.c */; }; + A7D8BAB323E2514400DCD162 /* s_atan.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91823E2514000DCD162 /* s_atan.c */; }; + A7D8BAB423E2514400DCD162 /* s_atan.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91823E2514000DCD162 /* s_atan.c */; }; + A7D8BAB523E2514400DCD162 /* k_cos.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91923E2514000DCD162 /* k_cos.c */; }; + A7D8BAB623E2514400DCD162 /* k_cos.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91923E2514000DCD162 /* k_cos.c */; }; + A7D8BAB723E2514400DCD162 /* k_cos.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91923E2514000DCD162 /* k_cos.c */; }; + A7D8BAB823E2514400DCD162 /* k_cos.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91923E2514000DCD162 /* k_cos.c */; }; + A7D8BAB923E2514400DCD162 /* k_cos.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91923E2514000DCD162 /* k_cos.c */; }; + A7D8BABA23E2514400DCD162 /* k_cos.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91923E2514000DCD162 /* k_cos.c */; }; + A7D8BABB23E2514400DCD162 /* s_scalbn.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91A23E2514000DCD162 /* s_scalbn.c */; }; + A7D8BABC23E2514400DCD162 /* s_scalbn.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91A23E2514000DCD162 /* s_scalbn.c */; }; + A7D8BABD23E2514400DCD162 /* s_scalbn.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91A23E2514000DCD162 /* s_scalbn.c */; }; + A7D8BABE23E2514400DCD162 /* s_scalbn.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91A23E2514000DCD162 /* s_scalbn.c */; }; + A7D8BABF23E2514400DCD162 /* s_scalbn.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91A23E2514000DCD162 /* s_scalbn.c */; }; + A7D8BAC023E2514500DCD162 /* s_scalbn.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91A23E2514000DCD162 /* s_scalbn.c */; }; + A7D8BAC123E2514500DCD162 /* math_private.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A91B23E2514000DCD162 /* math_private.h */; }; + A7D8BAC223E2514500DCD162 /* math_private.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A91B23E2514000DCD162 /* math_private.h */; }; + A7D8BAC323E2514500DCD162 /* math_private.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A91B23E2514000DCD162 /* math_private.h */; }; + A7D8BAC423E2514500DCD162 /* math_private.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A91B23E2514000DCD162 /* math_private.h */; }; + A7D8BAC523E2514500DCD162 /* math_private.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A91B23E2514000DCD162 /* math_private.h */; }; + A7D8BAC623E2514500DCD162 /* math_private.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A91B23E2514000DCD162 /* math_private.h */; }; + A7D8BAC723E2514500DCD162 /* e_pow.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91C23E2514000DCD162 /* e_pow.c */; }; + A7D8BAC823E2514500DCD162 /* e_pow.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91C23E2514000DCD162 /* e_pow.c */; }; + A7D8BAC923E2514500DCD162 /* e_pow.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91C23E2514000DCD162 /* e_pow.c */; }; + A7D8BACA23E2514500DCD162 /* e_pow.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91C23E2514000DCD162 /* e_pow.c */; }; + A7D8BACB23E2514500DCD162 /* e_pow.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91C23E2514000DCD162 /* e_pow.c */; }; + A7D8BACC23E2514500DCD162 /* e_pow.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91C23E2514000DCD162 /* e_pow.c */; }; + A7D8BACD23E2514500DCD162 /* e_atan2.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91D23E2514000DCD162 /* e_atan2.c */; }; + A7D8BACE23E2514500DCD162 /* e_atan2.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91D23E2514000DCD162 /* e_atan2.c */; }; + A7D8BACF23E2514500DCD162 /* e_atan2.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91D23E2514000DCD162 /* e_atan2.c */; }; + A7D8BAD023E2514500DCD162 /* e_atan2.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91D23E2514000DCD162 /* e_atan2.c */; }; + A7D8BAD123E2514500DCD162 /* e_atan2.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91D23E2514000DCD162 /* e_atan2.c */; }; + A7D8BAD223E2514500DCD162 /* e_atan2.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91D23E2514000DCD162 /* e_atan2.c */; }; + A7D8BAD323E2514500DCD162 /* s_tan.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91E23E2514000DCD162 /* s_tan.c */; }; + A7D8BAD423E2514500DCD162 /* s_tan.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91E23E2514000DCD162 /* s_tan.c */; }; + A7D8BAD523E2514500DCD162 /* s_tan.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91E23E2514000DCD162 /* s_tan.c */; }; + A7D8BAD623E2514500DCD162 /* s_tan.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91E23E2514000DCD162 /* s_tan.c */; }; + A7D8BAD723E2514500DCD162 /* s_tan.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91E23E2514000DCD162 /* s_tan.c */; }; + A7D8BAD823E2514500DCD162 /* s_tan.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91E23E2514000DCD162 /* s_tan.c */; }; + A7D8BAD923E2514500DCD162 /* e_rem_pio2.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91F23E2514000DCD162 /* e_rem_pio2.c */; }; + A7D8BADA23E2514500DCD162 /* e_rem_pio2.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91F23E2514000DCD162 /* e_rem_pio2.c */; }; + A7D8BADB23E2514500DCD162 /* e_rem_pio2.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91F23E2514000DCD162 /* e_rem_pio2.c */; }; + A7D8BADC23E2514500DCD162 /* e_rem_pio2.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91F23E2514000DCD162 /* e_rem_pio2.c */; }; + A7D8BADD23E2514500DCD162 /* e_rem_pio2.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91F23E2514000DCD162 /* e_rem_pio2.c */; }; + A7D8BADE23E2514500DCD162 /* e_rem_pio2.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A91F23E2514000DCD162 /* e_rem_pio2.c */; }; + A7D8BADF23E2514500DCD162 /* e_fmod.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92023E2514000DCD162 /* e_fmod.c */; }; + A7D8BAE023E2514500DCD162 /* e_fmod.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92023E2514000DCD162 /* e_fmod.c */; }; + A7D8BAE123E2514500DCD162 /* e_fmod.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92023E2514000DCD162 /* e_fmod.c */; }; + A7D8BAE223E2514500DCD162 /* e_fmod.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92023E2514000DCD162 /* e_fmod.c */; }; + A7D8BAE323E2514500DCD162 /* e_fmod.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92023E2514000DCD162 /* e_fmod.c */; }; + A7D8BAE423E2514500DCD162 /* e_fmod.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92023E2514000DCD162 /* e_fmod.c */; }; + A7D8BAE523E2514500DCD162 /* e_exp.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92123E2514000DCD162 /* e_exp.c */; }; + A7D8BAE623E2514500DCD162 /* e_exp.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92123E2514000DCD162 /* e_exp.c */; }; + A7D8BAE723E2514500DCD162 /* e_exp.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92123E2514000DCD162 /* e_exp.c */; }; + A7D8BAE823E2514500DCD162 /* e_exp.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92123E2514000DCD162 /* e_exp.c */; }; + A7D8BAE923E2514500DCD162 /* e_exp.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92123E2514000DCD162 /* e_exp.c */; }; + A7D8BAEA23E2514500DCD162 /* e_exp.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92123E2514000DCD162 /* e_exp.c */; }; + A7D8BAEB23E2514500DCD162 /* e_log10.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92223E2514000DCD162 /* e_log10.c */; }; + A7D8BAEC23E2514500DCD162 /* e_log10.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92223E2514000DCD162 /* e_log10.c */; }; + A7D8BAED23E2514500DCD162 /* e_log10.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92223E2514000DCD162 /* e_log10.c */; }; + A7D8BAEE23E2514500DCD162 /* e_log10.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92223E2514000DCD162 /* e_log10.c */; }; + A7D8BAEF23E2514500DCD162 /* e_log10.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92223E2514000DCD162 /* e_log10.c */; }; + A7D8BAF023E2514500DCD162 /* e_log10.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92223E2514000DCD162 /* e_log10.c */; }; + A7D8BAF123E2514500DCD162 /* e_log.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92323E2514000DCD162 /* e_log.c */; }; + A7D8BAF223E2514500DCD162 /* e_log.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92323E2514000DCD162 /* e_log.c */; }; + A7D8BAF323E2514500DCD162 /* e_log.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92323E2514000DCD162 /* e_log.c */; }; + A7D8BAF423E2514500DCD162 /* e_log.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92323E2514000DCD162 /* e_log.c */; }; + A7D8BAF523E2514500DCD162 /* e_log.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92323E2514000DCD162 /* e_log.c */; }; + A7D8BAF623E2514500DCD162 /* e_log.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92323E2514000DCD162 /* e_log.c */; }; + A7D8BAF723E2514500DCD162 /* e_sqrt.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92423E2514000DCD162 /* e_sqrt.c */; }; + A7D8BAF823E2514500DCD162 /* e_sqrt.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92423E2514000DCD162 /* e_sqrt.c */; }; + A7D8BAF923E2514500DCD162 /* e_sqrt.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92423E2514000DCD162 /* e_sqrt.c */; }; + A7D8BAFA23E2514500DCD162 /* e_sqrt.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92423E2514000DCD162 /* e_sqrt.c */; }; + A7D8BAFB23E2514500DCD162 /* e_sqrt.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92423E2514000DCD162 /* e_sqrt.c */; }; + A7D8BAFC23E2514500DCD162 /* e_sqrt.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92423E2514000DCD162 /* e_sqrt.c */; }; + A7D8BAFD23E2514500DCD162 /* s_floor.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92523E2514000DCD162 /* s_floor.c */; }; + A7D8BAFE23E2514500DCD162 /* s_floor.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92523E2514000DCD162 /* s_floor.c */; }; + A7D8BAFF23E2514500DCD162 /* s_floor.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92523E2514000DCD162 /* s_floor.c */; }; + A7D8BB0023E2514500DCD162 /* s_floor.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92523E2514000DCD162 /* s_floor.c */; }; + A7D8BB0123E2514500DCD162 /* s_floor.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92523E2514000DCD162 /* s_floor.c */; }; + A7D8BB0223E2514500DCD162 /* s_floor.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92523E2514000DCD162 /* s_floor.c */; }; + A7D8BB0323E2514500DCD162 /* math_libm.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A92623E2514000DCD162 /* math_libm.h */; }; + A7D8BB0423E2514500DCD162 /* math_libm.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A92623E2514000DCD162 /* math_libm.h */; }; + A7D8BB0523E2514500DCD162 /* math_libm.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A92623E2514000DCD162 /* math_libm.h */; }; + A7D8BB0623E2514500DCD162 /* math_libm.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A92623E2514000DCD162 /* math_libm.h */; }; + A7D8BB0723E2514500DCD162 /* math_libm.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A92623E2514000DCD162 /* math_libm.h */; }; + A7D8BB0823E2514500DCD162 /* math_libm.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A92623E2514000DCD162 /* math_libm.h */; }; + A7D8BB0923E2514500DCD162 /* k_tan.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92723E2514000DCD162 /* k_tan.c */; }; + A7D8BB0A23E2514500DCD162 /* k_tan.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92723E2514000DCD162 /* k_tan.c */; }; + A7D8BB0B23E2514500DCD162 /* k_tan.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92723E2514000DCD162 /* k_tan.c */; }; + A7D8BB0C23E2514500DCD162 /* k_tan.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92723E2514000DCD162 /* k_tan.c */; }; + A7D8BB0D23E2514500DCD162 /* k_tan.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92723E2514000DCD162 /* k_tan.c */; }; + A7D8BB0E23E2514500DCD162 /* k_tan.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92723E2514000DCD162 /* k_tan.c */; }; + A7D8BB0F23E2514500DCD162 /* SDL_dataqueue.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92823E2514000DCD162 /* SDL_dataqueue.c */; }; + A7D8BB1023E2514500DCD162 /* SDL_dataqueue.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92823E2514000DCD162 /* SDL_dataqueue.c */; }; + A7D8BB1123E2514500DCD162 /* SDL_dataqueue.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92823E2514000DCD162 /* SDL_dataqueue.c */; }; + A7D8BB1223E2514500DCD162 /* SDL_dataqueue.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92823E2514000DCD162 /* SDL_dataqueue.c */; }; + A7D8BB1323E2514500DCD162 /* SDL_dataqueue.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92823E2514000DCD162 /* SDL_dataqueue.c */; }; + A7D8BB1423E2514500DCD162 /* SDL_dataqueue.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92823E2514000DCD162 /* SDL_dataqueue.c */; }; + A7D8BB1523E2514500DCD162 /* SDL_mouse.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92A23E2514000DCD162 /* SDL_mouse.c */; }; + A7D8BB1623E2514500DCD162 /* SDL_mouse.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92A23E2514000DCD162 /* SDL_mouse.c */; }; + A7D8BB1723E2514500DCD162 /* SDL_mouse.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92A23E2514000DCD162 /* SDL_mouse.c */; }; + A7D8BB1823E2514500DCD162 /* SDL_mouse.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92A23E2514000DCD162 /* SDL_mouse.c */; }; + A7D8BB1923E2514500DCD162 /* SDL_mouse.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92A23E2514000DCD162 /* SDL_mouse.c */; }; + A7D8BB1A23E2514500DCD162 /* SDL_mouse.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92A23E2514000DCD162 /* SDL_mouse.c */; }; + A7D8BB1B23E2514500DCD162 /* SDL_mouse_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A92B23E2514000DCD162 /* SDL_mouse_c.h */; }; + A7D8BB1C23E2514500DCD162 /* SDL_mouse_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A92B23E2514000DCD162 /* SDL_mouse_c.h */; }; + A7D8BB1D23E2514500DCD162 /* SDL_mouse_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A92B23E2514000DCD162 /* SDL_mouse_c.h */; }; + A7D8BB1E23E2514500DCD162 /* SDL_mouse_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A92B23E2514000DCD162 /* SDL_mouse_c.h */; }; + A7D8BB1F23E2514500DCD162 /* SDL_mouse_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A92B23E2514000DCD162 /* SDL_mouse_c.h */; }; + A7D8BB2023E2514500DCD162 /* SDL_mouse_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A92B23E2514000DCD162 /* SDL_mouse_c.h */; }; + A7D8BB2123E2514500DCD162 /* scancodes_windows.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A92C23E2514000DCD162 /* scancodes_windows.h */; }; + A7D8BB2223E2514500DCD162 /* scancodes_windows.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A92C23E2514000DCD162 /* scancodes_windows.h */; }; + A7D8BB2323E2514500DCD162 /* scancodes_windows.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A92C23E2514000DCD162 /* scancodes_windows.h */; }; + A7D8BB2423E2514500DCD162 /* scancodes_windows.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A92C23E2514000DCD162 /* scancodes_windows.h */; }; + A7D8BB2523E2514500DCD162 /* scancodes_windows.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A92C23E2514000DCD162 /* scancodes_windows.h */; }; + A7D8BB2623E2514500DCD162 /* scancodes_windows.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A92C23E2514000DCD162 /* scancodes_windows.h */; }; + A7D8BB2723E2514500DCD162 /* SDL_displayevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92D23E2514000DCD162 /* SDL_displayevents.c */; }; + A7D8BB2823E2514500DCD162 /* SDL_displayevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92D23E2514000DCD162 /* SDL_displayevents.c */; }; + A7D8BB2923E2514500DCD162 /* SDL_displayevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92D23E2514000DCD162 /* SDL_displayevents.c */; }; + A7D8BB2A23E2514500DCD162 /* SDL_displayevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92D23E2514000DCD162 /* SDL_displayevents.c */; }; + A7D8BB2B23E2514500DCD162 /* SDL_displayevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92D23E2514000DCD162 /* SDL_displayevents.c */; }; + A7D8BB2C23E2514500DCD162 /* SDL_displayevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92D23E2514000DCD162 /* SDL_displayevents.c */; }; + A7D8BB2D23E2514500DCD162 /* SDL_dropevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A92E23E2514000DCD162 /* SDL_dropevents_c.h */; }; + A7D8BB2E23E2514500DCD162 /* SDL_dropevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A92E23E2514000DCD162 /* SDL_dropevents_c.h */; }; + A7D8BB2F23E2514500DCD162 /* SDL_dropevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A92E23E2514000DCD162 /* SDL_dropevents_c.h */; }; + A7D8BB3023E2514500DCD162 /* SDL_dropevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A92E23E2514000DCD162 /* SDL_dropevents_c.h */; }; + A7D8BB3123E2514500DCD162 /* SDL_dropevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A92E23E2514000DCD162 /* SDL_dropevents_c.h */; }; + A7D8BB3223E2514500DCD162 /* SDL_dropevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A92E23E2514000DCD162 /* SDL_dropevents_c.h */; }; + A7D8BB3323E2514500DCD162 /* SDL_windowevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92F23E2514000DCD162 /* SDL_windowevents.c */; }; + A7D8BB3423E2514500DCD162 /* SDL_windowevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92F23E2514000DCD162 /* SDL_windowevents.c */; }; + A7D8BB3523E2514500DCD162 /* SDL_windowevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92F23E2514000DCD162 /* SDL_windowevents.c */; }; + A7D8BB3623E2514500DCD162 /* SDL_windowevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92F23E2514000DCD162 /* SDL_windowevents.c */; }; + A7D8BB3723E2514500DCD162 /* SDL_windowevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92F23E2514000DCD162 /* SDL_windowevents.c */; }; + A7D8BB3823E2514500DCD162 /* SDL_windowevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A92F23E2514000DCD162 /* SDL_windowevents.c */; }; + A7D8BB3923E2514500DCD162 /* SDL_gesture_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93023E2514000DCD162 /* SDL_gesture_c.h */; }; + A7D8BB3A23E2514500DCD162 /* SDL_gesture_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93023E2514000DCD162 /* SDL_gesture_c.h */; }; + A7D8BB3B23E2514500DCD162 /* SDL_gesture_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93023E2514000DCD162 /* SDL_gesture_c.h */; }; + A7D8BB3C23E2514500DCD162 /* SDL_gesture_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93023E2514000DCD162 /* SDL_gesture_c.h */; }; + A7D8BB3D23E2514500DCD162 /* SDL_gesture_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93023E2514000DCD162 /* SDL_gesture_c.h */; }; + A7D8BB3E23E2514500DCD162 /* SDL_gesture_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93023E2514000DCD162 /* SDL_gesture_c.h */; }; + A7D8BB3F23E2514500DCD162 /* SDL_displayevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93123E2514000DCD162 /* SDL_displayevents_c.h */; }; + A7D8BB4023E2514500DCD162 /* SDL_displayevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93123E2514000DCD162 /* SDL_displayevents_c.h */; }; + A7D8BB4123E2514500DCD162 /* SDL_displayevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93123E2514000DCD162 /* SDL_displayevents_c.h */; }; + A7D8BB4223E2514500DCD162 /* SDL_displayevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93123E2514000DCD162 /* SDL_displayevents_c.h */; }; + A7D8BB4323E2514500DCD162 /* SDL_displayevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93123E2514000DCD162 /* SDL_displayevents_c.h */; }; + A7D8BB4423E2514500DCD162 /* SDL_displayevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93123E2514000DCD162 /* SDL_displayevents_c.h */; }; + A7D8BB4523E2514500DCD162 /* blank_cursor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93223E2514000DCD162 /* blank_cursor.h */; }; + A7D8BB4623E2514500DCD162 /* blank_cursor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93223E2514000DCD162 /* blank_cursor.h */; }; + A7D8BB4723E2514500DCD162 /* blank_cursor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93223E2514000DCD162 /* blank_cursor.h */; }; + A7D8BB4823E2514500DCD162 /* blank_cursor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93223E2514000DCD162 /* blank_cursor.h */; }; + A7D8BB4923E2514500DCD162 /* blank_cursor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93223E2514000DCD162 /* blank_cursor.h */; }; + A7D8BB4A23E2514500DCD162 /* blank_cursor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93223E2514000DCD162 /* blank_cursor.h */; }; + A7D8BB4B23E2514500DCD162 /* default_cursor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93323E2514000DCD162 /* default_cursor.h */; }; + A7D8BB4C23E2514500DCD162 /* default_cursor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93323E2514000DCD162 /* default_cursor.h */; }; + A7D8BB4D23E2514500DCD162 /* default_cursor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93323E2514000DCD162 /* default_cursor.h */; }; + A7D8BB4E23E2514500DCD162 /* default_cursor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93323E2514000DCD162 /* default_cursor.h */; }; + A7D8BB4F23E2514500DCD162 /* default_cursor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93323E2514000DCD162 /* default_cursor.h */; }; + A7D8BB5023E2514500DCD162 /* default_cursor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93323E2514000DCD162 /* default_cursor.h */; }; + A7D8BB5123E2514500DCD162 /* scancodes_darwin.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93423E2514000DCD162 /* scancodes_darwin.h */; }; + A7D8BB5223E2514500DCD162 /* scancodes_darwin.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93423E2514000DCD162 /* scancodes_darwin.h */; }; + A7D8BB5323E2514500DCD162 /* scancodes_darwin.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93423E2514000DCD162 /* scancodes_darwin.h */; }; + A7D8BB5423E2514500DCD162 /* scancodes_darwin.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93423E2514000DCD162 /* scancodes_darwin.h */; }; + A7D8BB5523E2514500DCD162 /* scancodes_darwin.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93423E2514000DCD162 /* scancodes_darwin.h */; }; + A7D8BB5623E2514500DCD162 /* scancodes_darwin.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93423E2514000DCD162 /* scancodes_darwin.h */; }; + A7D8BB5723E2514500DCD162 /* SDL_events.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93523E2514000DCD162 /* SDL_events.c */; }; + A7D8BB5823E2514500DCD162 /* SDL_events.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93523E2514000DCD162 /* SDL_events.c */; }; + A7D8BB5923E2514500DCD162 /* SDL_events.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93523E2514000DCD162 /* SDL_events.c */; }; + A7D8BB5A23E2514500DCD162 /* SDL_events.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93523E2514000DCD162 /* SDL_events.c */; }; + A7D8BB5B23E2514500DCD162 /* SDL_events.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93523E2514000DCD162 /* SDL_events.c */; }; + A7D8BB5C23E2514500DCD162 /* SDL_events.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93523E2514000DCD162 /* SDL_events.c */; }; + A7D8BB5D23E2514500DCD162 /* scancodes_linux.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93623E2514000DCD162 /* scancodes_linux.h */; }; + A7D8BB5E23E2514500DCD162 /* scancodes_linux.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93623E2514000DCD162 /* scancodes_linux.h */; }; + A7D8BB5F23E2514500DCD162 /* scancodes_linux.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93623E2514000DCD162 /* scancodes_linux.h */; }; + A7D8BB6023E2514500DCD162 /* scancodes_linux.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93623E2514000DCD162 /* scancodes_linux.h */; }; + A7D8BB6123E2514500DCD162 /* scancodes_linux.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93623E2514000DCD162 /* scancodes_linux.h */; }; + A7D8BB6223E2514500DCD162 /* scancodes_linux.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93623E2514000DCD162 /* scancodes_linux.h */; }; + A7D8BB6323E2514500DCD162 /* SDL_touch_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93723E2514000DCD162 /* SDL_touch_c.h */; }; + A7D8BB6423E2514500DCD162 /* SDL_touch_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93723E2514000DCD162 /* SDL_touch_c.h */; }; + A7D8BB6523E2514500DCD162 /* SDL_touch_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93723E2514000DCD162 /* SDL_touch_c.h */; }; + A7D8BB6623E2514500DCD162 /* SDL_touch_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93723E2514000DCD162 /* SDL_touch_c.h */; }; + A7D8BB6723E2514500DCD162 /* SDL_touch_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93723E2514000DCD162 /* SDL_touch_c.h */; }; + A7D8BB6823E2514500DCD162 /* SDL_touch_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93723E2514000DCD162 /* SDL_touch_c.h */; }; + A7D8BB6923E2514500DCD162 /* SDL_keyboard.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93823E2514000DCD162 /* SDL_keyboard.c */; }; + A7D8BB6A23E2514500DCD162 /* SDL_keyboard.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93823E2514000DCD162 /* SDL_keyboard.c */; }; + A7D8BB6B23E2514500DCD162 /* SDL_keyboard.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93823E2514000DCD162 /* SDL_keyboard.c */; }; + A7D8BB6C23E2514500DCD162 /* SDL_keyboard.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93823E2514000DCD162 /* SDL_keyboard.c */; }; + A7D8BB6D23E2514500DCD162 /* SDL_keyboard.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93823E2514000DCD162 /* SDL_keyboard.c */; }; + A7D8BB6E23E2514500DCD162 /* SDL_keyboard.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93823E2514000DCD162 /* SDL_keyboard.c */; }; + A7D8BB6F23E2514500DCD162 /* SDL_clipboardevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93923E2514000DCD162 /* SDL_clipboardevents_c.h */; }; + A7D8BB7023E2514500DCD162 /* SDL_clipboardevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93923E2514000DCD162 /* SDL_clipboardevents_c.h */; }; + A7D8BB7123E2514500DCD162 /* SDL_clipboardevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93923E2514000DCD162 /* SDL_clipboardevents_c.h */; }; + A7D8BB7223E2514500DCD162 /* SDL_clipboardevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93923E2514000DCD162 /* SDL_clipboardevents_c.h */; }; + A7D8BB7323E2514500DCD162 /* SDL_clipboardevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93923E2514000DCD162 /* SDL_clipboardevents_c.h */; }; + A7D8BB7423E2514500DCD162 /* SDL_clipboardevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93923E2514000DCD162 /* SDL_clipboardevents_c.h */; }; + A7D8BB7523E2514500DCD162 /* SDL_clipboardevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93A23E2514000DCD162 /* SDL_clipboardevents.c */; }; + A7D8BB7623E2514500DCD162 /* SDL_clipboardevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93A23E2514000DCD162 /* SDL_clipboardevents.c */; }; + A7D8BB7723E2514500DCD162 /* SDL_clipboardevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93A23E2514000DCD162 /* SDL_clipboardevents.c */; }; + A7D8BB7823E2514500DCD162 /* SDL_clipboardevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93A23E2514000DCD162 /* SDL_clipboardevents.c */; }; + A7D8BB7923E2514500DCD162 /* SDL_clipboardevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93A23E2514000DCD162 /* SDL_clipboardevents.c */; }; + A7D8BB7A23E2514500DCD162 /* SDL_clipboardevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93A23E2514000DCD162 /* SDL_clipboardevents.c */; }; + A7D8BB7B23E2514500DCD162 /* SDL_dropevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93B23E2514000DCD162 /* SDL_dropevents.c */; }; + A7D8BB7C23E2514500DCD162 /* SDL_dropevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93B23E2514000DCD162 /* SDL_dropevents.c */; }; + A7D8BB7D23E2514500DCD162 /* SDL_dropevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93B23E2514000DCD162 /* SDL_dropevents.c */; }; + A7D8BB7E23E2514500DCD162 /* SDL_dropevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93B23E2514000DCD162 /* SDL_dropevents.c */; }; + A7D8BB7F23E2514500DCD162 /* SDL_dropevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93B23E2514000DCD162 /* SDL_dropevents.c */; }; + A7D8BB8023E2514500DCD162 /* SDL_dropevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93B23E2514000DCD162 /* SDL_dropevents.c */; }; + A7D8BB8123E2514500DCD162 /* SDL_quit.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93C23E2514000DCD162 /* SDL_quit.c */; }; + A7D8BB8223E2514500DCD162 /* SDL_quit.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93C23E2514000DCD162 /* SDL_quit.c */; }; + A7D8BB8323E2514500DCD162 /* SDL_quit.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93C23E2514000DCD162 /* SDL_quit.c */; }; + A7D8BB8423E2514500DCD162 /* SDL_quit.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93C23E2514000DCD162 /* SDL_quit.c */; }; + A7D8BB8523E2514500DCD162 /* SDL_quit.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93C23E2514000DCD162 /* SDL_quit.c */; }; + A7D8BB8623E2514500DCD162 /* SDL_quit.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93C23E2514000DCD162 /* SDL_quit.c */; }; + A7D8BB8723E2514500DCD162 /* SDL_keyboard_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93D23E2514000DCD162 /* SDL_keyboard_c.h */; }; + A7D8BB8823E2514500DCD162 /* SDL_keyboard_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93D23E2514000DCD162 /* SDL_keyboard_c.h */; }; + A7D8BB8923E2514500DCD162 /* SDL_keyboard_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93D23E2514000DCD162 /* SDL_keyboard_c.h */; }; + A7D8BB8A23E2514500DCD162 /* SDL_keyboard_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93D23E2514000DCD162 /* SDL_keyboard_c.h */; }; + A7D8BB8B23E2514500DCD162 /* SDL_keyboard_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93D23E2514000DCD162 /* SDL_keyboard_c.h */; }; + A7D8BB8C23E2514500DCD162 /* SDL_keyboard_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93D23E2514000DCD162 /* SDL_keyboard_c.h */; }; + A7D8BB8D23E2514500DCD162 /* SDL_touch.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93E23E2514000DCD162 /* SDL_touch.c */; }; + A7D8BB8E23E2514500DCD162 /* SDL_touch.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93E23E2514000DCD162 /* SDL_touch.c */; }; + A7D8BB8F23E2514500DCD162 /* SDL_touch.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93E23E2514000DCD162 /* SDL_touch.c */; }; + A7D8BB9023E2514500DCD162 /* SDL_touch.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93E23E2514000DCD162 /* SDL_touch.c */; }; + A7D8BB9123E2514500DCD162 /* SDL_touch.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93E23E2514000DCD162 /* SDL_touch.c */; }; + A7D8BB9223E2514500DCD162 /* SDL_touch.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A93E23E2514000DCD162 /* SDL_touch.c */; }; + A7D8BB9923E2514500DCD162 /* SDL_gesture.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A94023E2514000DCD162 /* SDL_gesture.c */; }; + A7D8BB9A23E2514500DCD162 /* SDL_gesture.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A94023E2514000DCD162 /* SDL_gesture.c */; }; + A7D8BB9B23E2514500DCD162 /* SDL_gesture.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A94023E2514000DCD162 /* SDL_gesture.c */; }; + A7D8BB9C23E2514500DCD162 /* SDL_gesture.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A94023E2514000DCD162 /* SDL_gesture.c */; }; + A7D8BB9D23E2514500DCD162 /* SDL_gesture.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A94023E2514000DCD162 /* SDL_gesture.c */; }; + A7D8BB9E23E2514500DCD162 /* SDL_gesture.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A94023E2514000DCD162 /* SDL_gesture.c */; }; + A7D8BB9F23E2514500DCD162 /* scancodes_xfree86.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A94123E2514000DCD162 /* scancodes_xfree86.h */; }; + A7D8BBA023E2514500DCD162 /* scancodes_xfree86.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A94123E2514000DCD162 /* scancodes_xfree86.h */; }; + A7D8BBA123E2514500DCD162 /* scancodes_xfree86.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A94123E2514000DCD162 /* scancodes_xfree86.h */; }; + A7D8BBA223E2514500DCD162 /* scancodes_xfree86.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A94123E2514000DCD162 /* scancodes_xfree86.h */; }; + A7D8BBA323E2514500DCD162 /* scancodes_xfree86.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A94123E2514000DCD162 /* scancodes_xfree86.h */; }; + A7D8BBA423E2514500DCD162 /* scancodes_xfree86.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A94123E2514000DCD162 /* scancodes_xfree86.h */; }; + A7D8BBA523E2514500DCD162 /* SDL_events_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A94223E2514000DCD162 /* SDL_events_c.h */; }; + A7D8BBA623E2514500DCD162 /* SDL_events_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A94223E2514000DCD162 /* SDL_events_c.h */; }; + A7D8BBA723E2514500DCD162 /* SDL_events_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A94223E2514000DCD162 /* SDL_events_c.h */; }; + A7D8BBA823E2514500DCD162 /* SDL_events_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A94223E2514000DCD162 /* SDL_events_c.h */; }; + A7D8BBA923E2514500DCD162 /* SDL_events_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A94223E2514000DCD162 /* SDL_events_c.h */; }; + A7D8BBAA23E2514500DCD162 /* SDL_events_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A94223E2514000DCD162 /* SDL_events_c.h */; }; + A7D8BBAB23E2514500DCD162 /* SDL_windowevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A94323E2514000DCD162 /* SDL_windowevents_c.h */; }; + A7D8BBAC23E2514500DCD162 /* SDL_windowevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A94323E2514000DCD162 /* SDL_windowevents_c.h */; }; + A7D8BBAD23E2514500DCD162 /* SDL_windowevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A94323E2514000DCD162 /* SDL_windowevents_c.h */; }; + A7D8BBAE23E2514500DCD162 /* SDL_windowevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A94323E2514000DCD162 /* SDL_windowevents_c.h */; }; + A7D8BBAF23E2514500DCD162 /* SDL_windowevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A94323E2514000DCD162 /* SDL_windowevents_c.h */; }; + A7D8BBB023E2514500DCD162 /* SDL_windowevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A94323E2514000DCD162 /* SDL_windowevents_c.h */; }; + A7D8BBB123E2514500DCD162 /* SDL_assert.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A94423E2514000DCD162 /* SDL_assert.c */; }; + A7D8BBB223E2514500DCD162 /* SDL_assert.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A94423E2514000DCD162 /* SDL_assert.c */; }; + A7D8BBB323E2514500DCD162 /* SDL_assert.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A94423E2514000DCD162 /* SDL_assert.c */; }; + A7D8BBB423E2514500DCD162 /* SDL_assert.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A94423E2514000DCD162 /* SDL_assert.c */; }; + A7D8BBB523E2514500DCD162 /* SDL_assert.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A94423E2514000DCD162 /* SDL_assert.c */; }; + A7D8BBB623E2514500DCD162 /* SDL_assert.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A94423E2514000DCD162 /* SDL_assert.c */; }; + A7D8BBB923E2560500DCD162 /* SDL_steamcontroller.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7A723E2513E00DCD162 /* SDL_steamcontroller.c */; }; + A7D8BBBA23E2560600DCD162 /* SDL_steamcontroller.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7A723E2513E00DCD162 /* SDL_steamcontroller.c */; }; + A7D8BBC523E2561500DCD162 /* SDL_steamcontroller.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A7A723E2513E00DCD162 /* SDL_steamcontroller.c */; }; + A7D8BBC723E2561500DCD162 /* SDL_steamcontroller.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7A523E2513E00DCD162 /* SDL_steamcontroller.h */; }; + A7D8BBCB23E2561600DCD162 /* SDL_steamcontroller.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7A523E2513E00DCD162 /* SDL_steamcontroller.h */; }; + A7D8BBCF23E2561600DCD162 /* SDL_steamcontroller.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A7A523E2513E00DCD162 /* SDL_steamcontroller.h */; }; + A7D8BBD223E2574800DCD162 /* SDL_uikitappdelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62F23E2513D00DCD162 /* SDL_uikitappdelegate.h */; }; + A7D8BBD323E2574800DCD162 /* SDL_uikitappdelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61E23E2513D00DCD162 /* SDL_uikitappdelegate.m */; }; + A7D8BBD423E2574800DCD162 /* SDL_uikitclipboard.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62123E2513D00DCD162 /* SDL_uikitclipboard.h */; }; + A7D8BBD523E2574800DCD162 /* SDL_uikitclipboard.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62A23E2513D00DCD162 /* SDL_uikitclipboard.m */; }; + A7D8BBD623E2574800DCD162 /* SDL_uikitevents.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62D23E2513D00DCD162 /* SDL_uikitevents.h */; }; + A7D8BBD723E2574800DCD162 /* SDL_uikitevents.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61C23E2513D00DCD162 /* SDL_uikitevents.m */; }; + A7D8BBD823E2574800DCD162 /* SDL_uikitmessagebox.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62623E2513D00DCD162 /* SDL_uikitmessagebox.h */; }; + A7D8BBD923E2574800DCD162 /* SDL_uikitmessagebox.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61B23E2513D00DCD162 /* SDL_uikitmessagebox.m */; }; + A7D8BBDA23E2574800DCD162 /* SDL_uikitmetalview.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A61D23E2513D00DCD162 /* SDL_uikitmetalview.h */; }; + A7D8BBDB23E2574800DCD162 /* SDL_uikitmetalview.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62E23E2513D00DCD162 /* SDL_uikitmetalview.m */; }; + A7D8BBDC23E2574800DCD162 /* SDL_uikitmodes.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A61F23E2513D00DCD162 /* SDL_uikitmodes.h */; }; + A7D8BBDD23E2574800DCD162 /* SDL_uikitmodes.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62C23E2513D00DCD162 /* SDL_uikitmodes.m */; }; + A7D8BBDE23E2574800DCD162 /* SDL_uikitopengles.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A63123E2513D00DCD162 /* SDL_uikitopengles.h */; }; + A7D8BBDF23E2574800DCD162 /* SDL_uikitopengles.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62323E2513D00DCD162 /* SDL_uikitopengles.m */; }; + A7D8BBE023E2574800DCD162 /* SDL_uikitopenglview.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62B23E2513D00DCD162 /* SDL_uikitopenglview.h */; }; + A7D8BBE123E2574800DCD162 /* SDL_uikitopenglview.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62023E2513D00DCD162 /* SDL_uikitopenglview.m */; }; + A7D8BBE223E2574800DCD162 /* SDL_uikitvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62223E2513D00DCD162 /* SDL_uikitvideo.h */; }; + A7D8BBE323E2574800DCD162 /* SDL_uikitvideo.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A63223E2513D00DCD162 /* SDL_uikitvideo.m */; }; + A7D8BBE423E2574800DCD162 /* SDL_uikitview.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A61923E2513D00DCD162 /* SDL_uikitview.h */; }; + A7D8BBE523E2574800DCD162 /* SDL_uikitview.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62923E2513D00DCD162 /* SDL_uikitview.m */; }; + A7D8BBE623E2574800DCD162 /* SDL_uikitviewcontroller.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62423E2513D00DCD162 /* SDL_uikitviewcontroller.h */; }; + A7D8BBE723E2574800DCD162 /* SDL_uikitviewcontroller.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A63023E2513D00DCD162 /* SDL_uikitviewcontroller.m */; }; + A7D8BBE823E2574800DCD162 /* SDL_uikitvulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A63323E2513D00DCD162 /* SDL_uikitvulkan.h */; }; + A7D8BBE923E2574800DCD162 /* SDL_uikitvulkan.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62523E2513D00DCD162 /* SDL_uikitvulkan.m */; }; + A7D8BBEA23E2574800DCD162 /* SDL_uikitwindow.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62723E2513D00DCD162 /* SDL_uikitwindow.h */; }; + A7D8BBEB23E2574800DCD162 /* SDL_uikitwindow.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61A23E2513D00DCD162 /* SDL_uikitwindow.m */; }; + A7D8BBED23E2574800DCD162 /* SDL_uikitappdelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62F23E2513D00DCD162 /* SDL_uikitappdelegate.h */; }; + A7D8BBEE23E2574800DCD162 /* SDL_uikitappdelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61E23E2513D00DCD162 /* SDL_uikitappdelegate.m */; }; + A7D8BBEF23E2574800DCD162 /* SDL_uikitclipboard.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62123E2513D00DCD162 /* SDL_uikitclipboard.h */; }; + A7D8BBF023E2574800DCD162 /* SDL_uikitclipboard.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62A23E2513D00DCD162 /* SDL_uikitclipboard.m */; }; + A7D8BBF123E2574800DCD162 /* SDL_uikitevents.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62D23E2513D00DCD162 /* SDL_uikitevents.h */; }; + A7D8BBF223E2574800DCD162 /* SDL_uikitevents.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61C23E2513D00DCD162 /* SDL_uikitevents.m */; }; + A7D8BBF323E2574800DCD162 /* SDL_uikitmessagebox.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62623E2513D00DCD162 /* SDL_uikitmessagebox.h */; }; + A7D8BBF423E2574800DCD162 /* SDL_uikitmessagebox.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61B23E2513D00DCD162 /* SDL_uikitmessagebox.m */; }; + A7D8BBF523E2574800DCD162 /* SDL_uikitmetalview.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A61D23E2513D00DCD162 /* SDL_uikitmetalview.h */; }; + A7D8BBF623E2574800DCD162 /* SDL_uikitmetalview.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62E23E2513D00DCD162 /* SDL_uikitmetalview.m */; }; + A7D8BBF723E2574800DCD162 /* SDL_uikitmodes.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A61F23E2513D00DCD162 /* SDL_uikitmodes.h */; }; + A7D8BBF823E2574800DCD162 /* SDL_uikitmodes.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62C23E2513D00DCD162 /* SDL_uikitmodes.m */; }; + A7D8BBF923E2574800DCD162 /* SDL_uikitopengles.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A63123E2513D00DCD162 /* SDL_uikitopengles.h */; }; + A7D8BBFA23E2574800DCD162 /* SDL_uikitopengles.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62323E2513D00DCD162 /* SDL_uikitopengles.m */; }; + A7D8BBFB23E2574800DCD162 /* SDL_uikitopenglview.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62B23E2513D00DCD162 /* SDL_uikitopenglview.h */; }; + A7D8BBFC23E2574800DCD162 /* SDL_uikitopenglview.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62023E2513D00DCD162 /* SDL_uikitopenglview.m */; }; + A7D8BBFD23E2574800DCD162 /* SDL_uikitvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62223E2513D00DCD162 /* SDL_uikitvideo.h */; }; + A7D8BBFE23E2574800DCD162 /* SDL_uikitvideo.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A63223E2513D00DCD162 /* SDL_uikitvideo.m */; }; + A7D8BBFF23E2574800DCD162 /* SDL_uikitview.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A61923E2513D00DCD162 /* SDL_uikitview.h */; }; + A7D8BC0023E2574800DCD162 /* SDL_uikitview.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62923E2513D00DCD162 /* SDL_uikitview.m */; }; + A7D8BC0123E2574800DCD162 /* SDL_uikitviewcontroller.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62423E2513D00DCD162 /* SDL_uikitviewcontroller.h */; }; + A7D8BC0223E2574800DCD162 /* SDL_uikitviewcontroller.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A63023E2513D00DCD162 /* SDL_uikitviewcontroller.m */; }; + A7D8BC0323E2574800DCD162 /* SDL_uikitvulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A63323E2513D00DCD162 /* SDL_uikitvulkan.h */; }; + A7D8BC0423E2574800DCD162 /* SDL_uikitvulkan.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62523E2513D00DCD162 /* SDL_uikitvulkan.m */; }; + A7D8BC0523E2574800DCD162 /* SDL_uikitwindow.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62723E2513D00DCD162 /* SDL_uikitwindow.h */; }; + A7D8BC0623E2574800DCD162 /* SDL_uikitwindow.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61A23E2513D00DCD162 /* SDL_uikitwindow.m */; }; + A7D8BC0723E2590800DCD162 /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5B023E2513D00DCD162 /* SDL_uikit_main.c */; }; + AA7557FA1595D4D800BBD41B /* begin_code.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557C71595D4D800BBD41B /* begin_code.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA7557FC1595D4D800BBD41B /* close_code.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557C81595D4D800BBD41B /* close_code.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA7557FE1595D4D800BBD41B /* SDL_assert.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557C91595D4D800BBD41B /* SDL_assert.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA7558001595D4D800BBD41B /* SDL_atomic.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557CA1595D4D800BBD41B /* SDL_atomic.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA7558021595D4D800BBD41B /* SDL_audio.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557CB1595D4D800BBD41B /* SDL_audio.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA7558041595D4D800BBD41B /* SDL_blendmode.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557CC1595D4D800BBD41B /* SDL_blendmode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA7558061595D4D800BBD41B /* SDL_clipboard.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557CD1595D4D800BBD41B /* SDL_clipboard.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA7558081595D4D800BBD41B /* SDL_config_macosx.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557CE1595D4D800BBD41B /* SDL_config_macosx.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA75580A1595D4D800BBD41B /* SDL_config.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557CF1595D4D800BBD41B /* SDL_config.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA75580C1595D4D800BBD41B /* SDL_copying.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D01595D4D800BBD41B /* SDL_copying.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA75580E1595D4D800BBD41B /* SDL_cpuinfo.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D11595D4D800BBD41B /* SDL_cpuinfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA7558101595D4D800BBD41B /* SDL_endian.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D21595D4D800BBD41B /* SDL_endian.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA7558121595D4D800BBD41B /* SDL_error.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D31595D4D800BBD41B /* SDL_error.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA7558141595D4D800BBD41B /* SDL_events.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D41595D4D800BBD41B /* SDL_events.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA7558161595D4D800BBD41B /* SDL_gesture.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D51595D4D800BBD41B /* SDL_gesture.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA7558181595D4D800BBD41B /* SDL_haptic.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D61595D4D800BBD41B /* SDL_haptic.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA75581A1595D4D800BBD41B /* SDL_hints.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D71595D4D800BBD41B /* SDL_hints.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA75581E1595D4D800BBD41B /* SDL_joystick.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D91595D4D800BBD41B /* SDL_joystick.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA7558201595D4D800BBD41B /* SDL_keyboard.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557DA1595D4D800BBD41B /* SDL_keyboard.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA7558221595D4D800BBD41B /* SDL_keycode.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557DB1595D4D800BBD41B /* SDL_keycode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA7558241595D4D800BBD41B /* SDL_loadso.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557DC1595D4D800BBD41B /* SDL_loadso.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA7558261595D4D800BBD41B /* SDL_log.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557DD1595D4D800BBD41B /* SDL_log.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA7558281595D4D800BBD41B /* SDL_main.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557DE1595D4D800BBD41B /* SDL_main.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA75582A1595D4D800BBD41B /* SDL_mouse.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557DF1595D4D800BBD41B /* SDL_mouse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA75582C1595D4D800BBD41B /* SDL_mutex.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E01595D4D800BBD41B /* SDL_mutex.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA75582E1595D4D800BBD41B /* SDL_name.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E11595D4D800BBD41B /* SDL_name.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA7558301595D4D800BBD41B /* SDL_opengl.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E21595D4D800BBD41B /* SDL_opengl.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA7558321595D4D800BBD41B /* SDL_opengles.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E31595D4D800BBD41B /* SDL_opengles.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA7558341595D4D800BBD41B /* SDL_opengles2.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E41595D4D800BBD41B /* SDL_opengles2.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA7558361595D4D800BBD41B /* SDL_pixels.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E51595D4D800BBD41B /* SDL_pixels.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA7558381595D4D800BBD41B /* SDL_platform.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E61595D4D800BBD41B /* SDL_platform.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA75583A1595D4D800BBD41B /* SDL_power.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E71595D4D800BBD41B /* SDL_power.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA75583C1595D4D800BBD41B /* SDL_quit.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E81595D4D800BBD41B /* SDL_quit.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA75583E1595D4D800BBD41B /* SDL_rect.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E91595D4D800BBD41B /* SDL_rect.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA7558401595D4D800BBD41B /* SDL_render.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557EA1595D4D800BBD41B /* SDL_render.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA7558421595D4D800BBD41B /* SDL_revision.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557EB1595D4D800BBD41B /* SDL_revision.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA7558441595D4D800BBD41B /* SDL_rwops.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557EC1595D4D800BBD41B /* SDL_rwops.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA7558461595D4D800BBD41B /* SDL_scancode.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557ED1595D4D800BBD41B /* SDL_scancode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA7558481595D4D800BBD41B /* SDL_shape.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557EE1595D4D800BBD41B /* SDL_shape.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA75584A1595D4D800BBD41B /* SDL_stdinc.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557EF1595D4D800BBD41B /* SDL_stdinc.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA75584C1595D4D800BBD41B /* SDL_surface.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F01595D4D800BBD41B /* SDL_surface.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA75584E1595D4D800BBD41B /* SDL_system.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F11595D4D800BBD41B /* SDL_system.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA7558501595D4D800BBD41B /* SDL_syswm.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F21595D4D800BBD41B /* SDL_syswm.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA7558521595D4D800BBD41B /* SDL_thread.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F31595D4D800BBD41B /* SDL_thread.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA7558541595D4D800BBD41B /* SDL_timer.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F41595D4D800BBD41B /* SDL_timer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA7558561595D4D800BBD41B /* SDL_touch.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F51595D4D800BBD41B /* SDL_touch.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA7558581595D4D800BBD41B /* SDL_types.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F61595D4D800BBD41B /* SDL_types.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA75585A1595D4D800BBD41B /* SDL_version.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F71595D4D800BBD41B /* SDL_version.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA75585C1595D4D800BBD41B /* SDL_video.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F81595D4D800BBD41B /* SDL_video.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA75585E1595D4D800BBD41B /* SDL.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F91595D4D800BBD41B /* SDL.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA8167541F5E727800518735 /* SDL_vulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D4820431F0F10B400EDC31C /* SDL_vulkan.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA9FF95A1637CBF9000DF050 /* SDL_messagebox.h in Headers */ = {isa = PBXBuildFile; fileRef = AA9FF9591637CBF9000DF050 /* SDL_messagebox.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AAC070F9195606770073DCDF /* SDL_opengl_glext.h in Headers */ = {isa = PBXBuildFile; fileRef = AAC070F4195606770073DCDF /* SDL_opengl_glext.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AAC070FB195606770073DCDF /* SDL_opengl_glext.h in Headers */ = {isa = PBXBuildFile; fileRef = AAC070F4195606770073DCDF /* SDL_opengl_glext.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AAC070FC195606770073DCDF /* SDL_opengles2_gl2.h in Headers */ = {isa = PBXBuildFile; fileRef = AAC070F5195606770073DCDF /* SDL_opengles2_gl2.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AAC070FE195606770073DCDF /* SDL_opengles2_gl2.h in Headers */ = {isa = PBXBuildFile; fileRef = AAC070F5195606770073DCDF /* SDL_opengles2_gl2.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AAC070FF195606770073DCDF /* SDL_opengles2_gl2ext.h in Headers */ = {isa = PBXBuildFile; fileRef = AAC070F6195606770073DCDF /* SDL_opengles2_gl2ext.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AAC07101195606770073DCDF /* SDL_opengles2_gl2ext.h in Headers */ = {isa = PBXBuildFile; fileRef = AAC070F6195606770073DCDF /* SDL_opengles2_gl2ext.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AAC07102195606770073DCDF /* SDL_opengles2_gl2platform.h in Headers */ = {isa = PBXBuildFile; fileRef = AAC070F7195606770073DCDF /* SDL_opengles2_gl2platform.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AAC07104195606770073DCDF /* SDL_opengles2_gl2platform.h in Headers */ = {isa = PBXBuildFile; fileRef = AAC070F7195606770073DCDF /* SDL_opengles2_gl2platform.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AAC07105195606770073DCDF /* SDL_opengles2_khrplatform.h in Headers */ = {isa = PBXBuildFile; fileRef = AAC070F8195606770073DCDF /* SDL_opengles2_khrplatform.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AAC07107195606770073DCDF /* SDL_opengles2_khrplatform.h in Headers */ = {isa = PBXBuildFile; fileRef = AAC070F8195606770073DCDF /* SDL_opengles2_khrplatform.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AADA5B8716CCAB3000107CF7 /* SDL_bits.h in Headers */ = {isa = PBXBuildFile; fileRef = AADA5B8616CCAB3000107CF7 /* SDL_bits.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB0F489317C400E6008798C5 /* SDL_messagebox.h in Headers */ = {isa = PBXBuildFile; fileRef = AA9FF9591637CBF9000DF050 /* SDL_messagebox.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB0F490C17CA57ED008798C5 /* SDL_filesystem.h in Headers */ = {isa = PBXBuildFile; fileRef = 567E2F2017C44C35005F1892 /* SDL_filesystem.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB313FC817554B71006C0E22 /* begin_code.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557C71595D4D800BBD41B /* begin_code.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB313FC917554B71006C0E22 /* close_code.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557C81595D4D800BBD41B /* close_code.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB313FCA17554B71006C0E22 /* SDL_assert.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557C91595D4D800BBD41B /* SDL_assert.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB313FCB17554B71006C0E22 /* SDL_atomic.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557CA1595D4D800BBD41B /* SDL_atomic.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB313FCC17554B71006C0E22 /* SDL_audio.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557CB1595D4D800BBD41B /* SDL_audio.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB313FCD17554B71006C0E22 /* SDL_blendmode.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557CC1595D4D800BBD41B /* SDL_blendmode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB313FCE17554B71006C0E22 /* SDL_clipboard.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557CD1595D4D800BBD41B /* SDL_clipboard.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB313FCF17554B71006C0E22 /* SDL_config_macosx.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557CE1595D4D800BBD41B /* SDL_config_macosx.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB313FD017554B71006C0E22 /* SDL_config.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557CF1595D4D800BBD41B /* SDL_config.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB313FD117554B71006C0E22 /* SDL_copying.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D01595D4D800BBD41B /* SDL_copying.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB313FD217554B71006C0E22 /* SDL_cpuinfo.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D11595D4D800BBD41B /* SDL_cpuinfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB313FD317554B71006C0E22 /* SDL_endian.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D21595D4D800BBD41B /* SDL_endian.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB313FD417554B71006C0E22 /* SDL_error.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D31595D4D800BBD41B /* SDL_error.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB313FD517554B71006C0E22 /* SDL_events.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D41595D4D800BBD41B /* SDL_events.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB313FD617554B71006C0E22 /* SDL_gesture.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D51595D4D800BBD41B /* SDL_gesture.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB313FD717554B71006C0E22 /* SDL_haptic.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D61595D4D800BBD41B /* SDL_haptic.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB313FD817554B71006C0E22 /* SDL_hints.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D71595D4D800BBD41B /* SDL_hints.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB313FD917554B71006C0E22 /* SDL_joystick.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557D91595D4D800BBD41B /* SDL_joystick.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB313FDA17554B71006C0E22 /* SDL_keyboard.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557DA1595D4D800BBD41B /* SDL_keyboard.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB313FDB17554B71006C0E22 /* SDL_keycode.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557DB1595D4D800BBD41B /* SDL_keycode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB313FDC17554B71006C0E22 /* SDL_loadso.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557DC1595D4D800BBD41B /* SDL_loadso.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB313FDD17554B71006C0E22 /* SDL_log.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557DD1595D4D800BBD41B /* SDL_log.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB313FDE17554B71006C0E22 /* SDL_main.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557DE1595D4D800BBD41B /* SDL_main.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB313FDF17554B71006C0E22 /* SDL_mouse.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557DF1595D4D800BBD41B /* SDL_mouse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB313FE017554B71006C0E22 /* SDL_mutex.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E01595D4D800BBD41B /* SDL_mutex.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB313FE117554B71006C0E22 /* SDL_name.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E11595D4D800BBD41B /* SDL_name.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB313FE217554B71006C0E22 /* SDL_opengl.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E21595D4D800BBD41B /* SDL_opengl.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB313FE317554B71006C0E22 /* SDL_opengles.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E31595D4D800BBD41B /* SDL_opengles.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB313FE417554B71006C0E22 /* SDL_opengles2.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E41595D4D800BBD41B /* SDL_opengles2.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB313FE517554B71006C0E22 /* SDL_pixels.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E51595D4D800BBD41B /* SDL_pixels.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB313FE617554B71006C0E22 /* SDL_platform.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E61595D4D800BBD41B /* SDL_platform.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB313FE717554B71006C0E22 /* SDL_power.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E71595D4D800BBD41B /* SDL_power.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB313FE817554B71006C0E22 /* SDL_quit.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E81595D4D800BBD41B /* SDL_quit.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB313FE917554B71006C0E22 /* SDL_rect.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E91595D4D800BBD41B /* SDL_rect.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB313FEA17554B71006C0E22 /* SDL_render.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557EA1595D4D800BBD41B /* SDL_render.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB313FEB17554B71006C0E22 /* SDL_revision.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557EB1595D4D800BBD41B /* SDL_revision.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB313FEC17554B71006C0E22 /* SDL_rwops.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557EC1595D4D800BBD41B /* SDL_rwops.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB313FED17554B71006C0E22 /* SDL_scancode.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557ED1595D4D800BBD41B /* SDL_scancode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB313FEE17554B71006C0E22 /* SDL_shape.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557EE1595D4D800BBD41B /* SDL_shape.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB313FEF17554B71006C0E22 /* SDL_stdinc.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557EF1595D4D800BBD41B /* SDL_stdinc.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB313FF017554B71006C0E22 /* SDL_surface.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F01595D4D800BBD41B /* SDL_surface.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB313FF117554B71006C0E22 /* SDL_system.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F11595D4D800BBD41B /* SDL_system.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB313FF217554B71006C0E22 /* SDL_syswm.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F21595D4D800BBD41B /* SDL_syswm.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB313FF317554B71006C0E22 /* SDL_thread.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F31595D4D800BBD41B /* SDL_thread.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB313FF417554B71006C0E22 /* SDL_timer.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F41595D4D800BBD41B /* SDL_timer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB313FF517554B71006C0E22 /* SDL_touch.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F51595D4D800BBD41B /* SDL_touch.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB313FF617554B71006C0E22 /* SDL_types.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F61595D4D800BBD41B /* SDL_types.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB313FF717554B71006C0E22 /* SDL_version.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F71595D4D800BBD41B /* SDL_version.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB313FF817554B71006C0E22 /* SDL_video.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F81595D4D800BBD41B /* SDL_video.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB313FF917554B71006C0E22 /* SDL.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557F91595D4D800BBD41B /* SDL.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB313FFB17554B71006C0E22 /* SDL_gamecontroller.h in Headers */ = {isa = PBXBuildFile; fileRef = A77E6EB3167AB0A90010E40B /* SDL_gamecontroller.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB313FFC17554B71006C0E22 /* SDL_bits.h in Headers */ = {isa = PBXBuildFile; fileRef = AADA5B8616CCAB3000107CF7 /* SDL_bits.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB31406E17554B71006C0E22 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0073179D0858DECD00B2BC32 /* Cocoa.framework */; }; + DB31407017554B71006C0E22 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0073179F0858DECD00B2BC32 /* IOKit.framework */; }; + DB31407217554B71006C0E22 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 007317C10858E15000B2BC32 /* Carbon.framework */; }; + DB31408D17554D3C006C0E22 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00CFA89C106B4BA100758660 /* ForceFeedback.framework */; }; + F316AB852B5A02C3002EF551 /* yuv_rgb_common.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB7C2B5A02C2002EF551 /* yuv_rgb_common.h */; }; + F316AB862B5A02C3002EF551 /* yuv_rgb_common.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB7C2B5A02C2002EF551 /* yuv_rgb_common.h */; }; + F316AB872B5A02C3002EF551 /* yuv_rgb_common.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB7C2B5A02C2002EF551 /* yuv_rgb_common.h */; }; + F316AB882B5A02C3002EF551 /* yuv_rgb_common.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB7C2B5A02C2002EF551 /* yuv_rgb_common.h */; }; + F316AB892B5A02C3002EF551 /* yuv_rgb_common.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB7C2B5A02C2002EF551 /* yuv_rgb_common.h */; }; + F316AB8A2B5A02C3002EF551 /* yuv_rgb_common.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB7C2B5A02C2002EF551 /* yuv_rgb_common.h */; }; + F316AB8B2B5A02C3002EF551 /* yuv_rgb_common.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB7C2B5A02C2002EF551 /* yuv_rgb_common.h */; }; + F316AB8C2B5A02C3002EF551 /* yuv_rgb_common.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB7C2B5A02C2002EF551 /* yuv_rgb_common.h */; }; + F316AB8D2B5A02C3002EF551 /* yuv_rgb_common.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB7C2B5A02C2002EF551 /* yuv_rgb_common.h */; }; + F316AB8E2B5A02C3002EF551 /* yuv_rgb_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB7D2B5A02C2002EF551 /* yuv_rgb_internal.h */; }; + F316AB8F2B5A02C3002EF551 /* yuv_rgb_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB7D2B5A02C2002EF551 /* yuv_rgb_internal.h */; }; + F316AB902B5A02C3002EF551 /* yuv_rgb_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB7D2B5A02C2002EF551 /* yuv_rgb_internal.h */; }; + F316AB912B5A02C3002EF551 /* yuv_rgb_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB7D2B5A02C2002EF551 /* yuv_rgb_internal.h */; }; + F316AB922B5A02C3002EF551 /* yuv_rgb_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB7D2B5A02C2002EF551 /* yuv_rgb_internal.h */; }; + F316AB932B5A02C3002EF551 /* yuv_rgb_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB7D2B5A02C2002EF551 /* yuv_rgb_internal.h */; }; + F316AB942B5A02C3002EF551 /* yuv_rgb_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB7D2B5A02C2002EF551 /* yuv_rgb_internal.h */; }; + F316AB952B5A02C3002EF551 /* yuv_rgb_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB7D2B5A02C2002EF551 /* yuv_rgb_internal.h */; }; + F316AB962B5A02C3002EF551 /* yuv_rgb_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB7D2B5A02C2002EF551 /* yuv_rgb_internal.h */; }; + F316AB972B5A02C3002EF551 /* yuv_rgb_std.c in Sources */ = {isa = PBXBuildFile; fileRef = F316AB7E2B5A02C3002EF551 /* yuv_rgb_std.c */; }; + F316AB982B5A02C3002EF551 /* yuv_rgb_std.c in Sources */ = {isa = PBXBuildFile; fileRef = F316AB7E2B5A02C3002EF551 /* yuv_rgb_std.c */; }; + F316AB992B5A02C3002EF551 /* yuv_rgb_std.c in Sources */ = {isa = PBXBuildFile; fileRef = F316AB7E2B5A02C3002EF551 /* yuv_rgb_std.c */; }; + F316AB9A2B5A02C3002EF551 /* yuv_rgb_std.c in Sources */ = {isa = PBXBuildFile; fileRef = F316AB7E2B5A02C3002EF551 /* yuv_rgb_std.c */; }; + F316AB9B2B5A02C3002EF551 /* yuv_rgb_std.c in Sources */ = {isa = PBXBuildFile; fileRef = F316AB7E2B5A02C3002EF551 /* yuv_rgb_std.c */; }; + F316AB9C2B5A02C3002EF551 /* yuv_rgb_std.c in Sources */ = {isa = PBXBuildFile; fileRef = F316AB7E2B5A02C3002EF551 /* yuv_rgb_std.c */; }; + F316AB9D2B5A02C3002EF551 /* yuv_rgb_std.c in Sources */ = {isa = PBXBuildFile; fileRef = F316AB7E2B5A02C3002EF551 /* yuv_rgb_std.c */; }; + F316AB9E2B5A02C3002EF551 /* yuv_rgb_std.c in Sources */ = {isa = PBXBuildFile; fileRef = F316AB7E2B5A02C3002EF551 /* yuv_rgb_std.c */; }; + F316AB9F2B5A02C3002EF551 /* yuv_rgb_std.c in Sources */ = {isa = PBXBuildFile; fileRef = F316AB7E2B5A02C3002EF551 /* yuv_rgb_std.c */; }; + F316ABA02B5A02C3002EF551 /* yuv_rgb_sse.c in Sources */ = {isa = PBXBuildFile; fileRef = F316AB7F2B5A02C3002EF551 /* yuv_rgb_sse.c */; }; + F316ABA12B5A02C3002EF551 /* yuv_rgb_sse.c in Sources */ = {isa = PBXBuildFile; fileRef = F316AB7F2B5A02C3002EF551 /* yuv_rgb_sse.c */; }; + F316ABA22B5A02C3002EF551 /* yuv_rgb_sse.c in Sources */ = {isa = PBXBuildFile; fileRef = F316AB7F2B5A02C3002EF551 /* yuv_rgb_sse.c */; }; + F316ABA32B5A02C3002EF551 /* yuv_rgb_sse.c in Sources */ = {isa = PBXBuildFile; fileRef = F316AB7F2B5A02C3002EF551 /* yuv_rgb_sse.c */; }; + F316ABA42B5A02C3002EF551 /* yuv_rgb_sse.c in Sources */ = {isa = PBXBuildFile; fileRef = F316AB7F2B5A02C3002EF551 /* yuv_rgb_sse.c */; }; + F316ABA52B5A02C3002EF551 /* yuv_rgb_sse.c in Sources */ = {isa = PBXBuildFile; fileRef = F316AB7F2B5A02C3002EF551 /* yuv_rgb_sse.c */; }; + F316ABA62B5A02C3002EF551 /* yuv_rgb_sse.c in Sources */ = {isa = PBXBuildFile; fileRef = F316AB7F2B5A02C3002EF551 /* yuv_rgb_sse.c */; }; + F316ABA72B5A02C3002EF551 /* yuv_rgb_sse.c in Sources */ = {isa = PBXBuildFile; fileRef = F316AB7F2B5A02C3002EF551 /* yuv_rgb_sse.c */; }; + F316ABA82B5A02C3002EF551 /* yuv_rgb_sse.c in Sources */ = {isa = PBXBuildFile; fileRef = F316AB7F2B5A02C3002EF551 /* yuv_rgb_sse.c */; }; + F316ABA92B5A02C3002EF551 /* yuv_rgb_lsx.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB802B5A02C3002EF551 /* yuv_rgb_lsx.h */; }; + F316ABAA2B5A02C3002EF551 /* yuv_rgb_lsx.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB802B5A02C3002EF551 /* yuv_rgb_lsx.h */; }; + F316ABAB2B5A02C3002EF551 /* yuv_rgb_lsx.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB802B5A02C3002EF551 /* yuv_rgb_lsx.h */; }; + F316ABAC2B5A02C3002EF551 /* yuv_rgb_lsx.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB802B5A02C3002EF551 /* yuv_rgb_lsx.h */; }; + F316ABAD2B5A02C3002EF551 /* yuv_rgb_lsx.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB802B5A02C3002EF551 /* yuv_rgb_lsx.h */; }; + F316ABAE2B5A02C3002EF551 /* yuv_rgb_lsx.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB802B5A02C3002EF551 /* yuv_rgb_lsx.h */; }; + F316ABAF2B5A02C3002EF551 /* yuv_rgb_lsx.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB802B5A02C3002EF551 /* yuv_rgb_lsx.h */; }; + F316ABB02B5A02C3002EF551 /* yuv_rgb_lsx.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB802B5A02C3002EF551 /* yuv_rgb_lsx.h */; }; + F316ABB12B5A02C3002EF551 /* yuv_rgb_lsx.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB802B5A02C3002EF551 /* yuv_rgb_lsx.h */; }; + F316ABB22B5A02C3002EF551 /* yuv_rgb_lsx.c in Sources */ = {isa = PBXBuildFile; fileRef = F316AB812B5A02C3002EF551 /* yuv_rgb_lsx.c */; }; + F316ABB32B5A02C3002EF551 /* yuv_rgb_lsx.c in Sources */ = {isa = PBXBuildFile; fileRef = F316AB812B5A02C3002EF551 /* yuv_rgb_lsx.c */; }; + F316ABB42B5A02C3002EF551 /* yuv_rgb_lsx.c in Sources */ = {isa = PBXBuildFile; fileRef = F316AB812B5A02C3002EF551 /* yuv_rgb_lsx.c */; }; + F316ABB52B5A02C3002EF551 /* yuv_rgb_lsx.c in Sources */ = {isa = PBXBuildFile; fileRef = F316AB812B5A02C3002EF551 /* yuv_rgb_lsx.c */; }; + F316ABB62B5A02C3002EF551 /* yuv_rgb_lsx.c in Sources */ = {isa = PBXBuildFile; fileRef = F316AB812B5A02C3002EF551 /* yuv_rgb_lsx.c */; }; + F316ABB72B5A02C3002EF551 /* yuv_rgb_lsx.c in Sources */ = {isa = PBXBuildFile; fileRef = F316AB812B5A02C3002EF551 /* yuv_rgb_lsx.c */; }; + F316ABB82B5A02C3002EF551 /* yuv_rgb_lsx.c in Sources */ = {isa = PBXBuildFile; fileRef = F316AB812B5A02C3002EF551 /* yuv_rgb_lsx.c */; }; + F316ABB92B5A02C3002EF551 /* yuv_rgb_lsx.c in Sources */ = {isa = PBXBuildFile; fileRef = F316AB812B5A02C3002EF551 /* yuv_rgb_lsx.c */; }; + F316ABBA2B5A02C3002EF551 /* yuv_rgb_lsx.c in Sources */ = {isa = PBXBuildFile; fileRef = F316AB812B5A02C3002EF551 /* yuv_rgb_lsx.c */; }; + F316ABBB2B5A02C3002EF551 /* yuv_rgb_sse.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB822B5A02C3002EF551 /* yuv_rgb_sse.h */; }; + F316ABBC2B5A02C3002EF551 /* yuv_rgb_sse.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB822B5A02C3002EF551 /* yuv_rgb_sse.h */; }; + F316ABBD2B5A02C3002EF551 /* yuv_rgb_sse.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB822B5A02C3002EF551 /* yuv_rgb_sse.h */; }; + F316ABBE2B5A02C3002EF551 /* yuv_rgb_sse.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB822B5A02C3002EF551 /* yuv_rgb_sse.h */; }; + F316ABBF2B5A02C3002EF551 /* yuv_rgb_sse.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB822B5A02C3002EF551 /* yuv_rgb_sse.h */; }; + F316ABC02B5A02C3002EF551 /* yuv_rgb_sse.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB822B5A02C3002EF551 /* yuv_rgb_sse.h */; }; + F316ABC12B5A02C3002EF551 /* yuv_rgb_sse.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB822B5A02C3002EF551 /* yuv_rgb_sse.h */; }; + F316ABC22B5A02C3002EF551 /* yuv_rgb_sse.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB822B5A02C3002EF551 /* yuv_rgb_sse.h */; }; + F316ABC32B5A02C3002EF551 /* yuv_rgb_sse.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB822B5A02C3002EF551 /* yuv_rgb_sse.h */; }; + F316ABC42B5A02C3002EF551 /* yuv_rgb_std.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB832B5A02C3002EF551 /* yuv_rgb_std.h */; }; + F316ABC52B5A02C3002EF551 /* yuv_rgb_std.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB832B5A02C3002EF551 /* yuv_rgb_std.h */; }; + F316ABC62B5A02C3002EF551 /* yuv_rgb_std.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB832B5A02C3002EF551 /* yuv_rgb_std.h */; }; + F316ABC72B5A02C3002EF551 /* yuv_rgb_std.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB832B5A02C3002EF551 /* yuv_rgb_std.h */; }; + F316ABC82B5A02C3002EF551 /* yuv_rgb_std.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB832B5A02C3002EF551 /* yuv_rgb_std.h */; }; + F316ABC92B5A02C3002EF551 /* yuv_rgb_std.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB832B5A02C3002EF551 /* yuv_rgb_std.h */; }; + F316ABCA2B5A02C3002EF551 /* yuv_rgb_std.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB832B5A02C3002EF551 /* yuv_rgb_std.h */; }; + F316ABCB2B5A02C3002EF551 /* yuv_rgb_std.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB832B5A02C3002EF551 /* yuv_rgb_std.h */; }; + F316ABCC2B5A02C3002EF551 /* yuv_rgb_std.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB832B5A02C3002EF551 /* yuv_rgb_std.h */; }; + F316ABCD2B5A02C3002EF551 /* yuv_rgb_lsx_func.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB842B5A02C3002EF551 /* yuv_rgb_lsx_func.h */; }; + F316ABCE2B5A02C3002EF551 /* yuv_rgb_lsx_func.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB842B5A02C3002EF551 /* yuv_rgb_lsx_func.h */; }; + F316ABCF2B5A02C3002EF551 /* yuv_rgb_lsx_func.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB842B5A02C3002EF551 /* yuv_rgb_lsx_func.h */; }; + F316ABD02B5A02C3002EF551 /* yuv_rgb_lsx_func.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB842B5A02C3002EF551 /* yuv_rgb_lsx_func.h */; }; + F316ABD12B5A02C3002EF551 /* yuv_rgb_lsx_func.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB842B5A02C3002EF551 /* yuv_rgb_lsx_func.h */; }; + F316ABD22B5A02C3002EF551 /* yuv_rgb_lsx_func.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB842B5A02C3002EF551 /* yuv_rgb_lsx_func.h */; }; + F316ABD32B5A02C3002EF551 /* yuv_rgb_lsx_func.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB842B5A02C3002EF551 /* yuv_rgb_lsx_func.h */; }; + F316ABD42B5A02C3002EF551 /* yuv_rgb_lsx_func.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB842B5A02C3002EF551 /* yuv_rgb_lsx_func.h */; }; + F316ABD52B5A02C3002EF551 /* yuv_rgb_lsx_func.h in Headers */ = {isa = PBXBuildFile; fileRef = F316AB842B5A02C3002EF551 /* yuv_rgb_lsx_func.h */; }; + F31A92C828D4CB39003BFD6A /* SDL_offscreenopengles.h in Headers */ = {isa = PBXBuildFile; fileRef = F31A92C628D4CB39003BFD6A /* SDL_offscreenopengles.h */; }; + F31A92C928D4CB39003BFD6A /* SDL_offscreenopengles.h in Headers */ = {isa = PBXBuildFile; fileRef = F31A92C628D4CB39003BFD6A /* SDL_offscreenopengles.h */; }; + F31A92CA28D4CB39003BFD6A /* SDL_offscreenopengles.h in Headers */ = {isa = PBXBuildFile; fileRef = F31A92C628D4CB39003BFD6A /* SDL_offscreenopengles.h */; }; + F31A92CB28D4CB39003BFD6A /* SDL_offscreenopengles.h in Headers */ = {isa = PBXBuildFile; fileRef = F31A92C628D4CB39003BFD6A /* SDL_offscreenopengles.h */; }; + F31A92CC28D4CB39003BFD6A /* SDL_offscreenopengles.h in Headers */ = {isa = PBXBuildFile; fileRef = F31A92C628D4CB39003BFD6A /* SDL_offscreenopengles.h */; }; + F31A92CD28D4CB39003BFD6A /* SDL_offscreenopengles.h in Headers */ = {isa = PBXBuildFile; fileRef = F31A92C628D4CB39003BFD6A /* SDL_offscreenopengles.h */; }; + F31A92CE28D4CB39003BFD6A /* SDL_offscreenopengles.h in Headers */ = {isa = PBXBuildFile; fileRef = F31A92C628D4CB39003BFD6A /* SDL_offscreenopengles.h */; }; + F31A92CF28D4CB39003BFD6A /* SDL_offscreenopengles.h in Headers */ = {isa = PBXBuildFile; fileRef = F31A92C628D4CB39003BFD6A /* SDL_offscreenopengles.h */; }; + F31A92D028D4CB39003BFD6A /* SDL_offscreenopengles.h in Headers */ = {isa = PBXBuildFile; fileRef = F31A92C628D4CB39003BFD6A /* SDL_offscreenopengles.h */; }; + F31A92D128D4CB39003BFD6A /* SDL_offscreenopengles.h in Headers */ = {isa = PBXBuildFile; fileRef = F31A92C628D4CB39003BFD6A /* SDL_offscreenopengles.h */; }; + F31A92D228D4CB39003BFD6A /* SDL_offscreenopengles.c in Sources */ = {isa = PBXBuildFile; fileRef = F31A92C728D4CB39003BFD6A /* SDL_offscreenopengles.c */; }; + F31A92D328D4CB39003BFD6A /* SDL_offscreenopengles.c in Sources */ = {isa = PBXBuildFile; fileRef = F31A92C728D4CB39003BFD6A /* SDL_offscreenopengles.c */; }; + F31A92D428D4CB39003BFD6A /* SDL_offscreenopengles.c in Sources */ = {isa = PBXBuildFile; fileRef = F31A92C728D4CB39003BFD6A /* SDL_offscreenopengles.c */; }; + F31A92D528D4CB39003BFD6A /* SDL_offscreenopengles.c in Sources */ = {isa = PBXBuildFile; fileRef = F31A92C728D4CB39003BFD6A /* SDL_offscreenopengles.c */; }; + F31A92D628D4CB39003BFD6A /* SDL_offscreenopengles.c in Sources */ = {isa = PBXBuildFile; fileRef = F31A92C728D4CB39003BFD6A /* SDL_offscreenopengles.c */; }; + F31A92D728D4CB39003BFD6A /* SDL_offscreenopengles.c in Sources */ = {isa = PBXBuildFile; fileRef = F31A92C728D4CB39003BFD6A /* SDL_offscreenopengles.c */; }; + F31A92D828D4CB39003BFD6A /* SDL_offscreenopengles.c in Sources */ = {isa = PBXBuildFile; fileRef = F31A92C728D4CB39003BFD6A /* SDL_offscreenopengles.c */; }; + F31A92D928D4CB39003BFD6A /* SDL_offscreenopengles.c in Sources */ = {isa = PBXBuildFile; fileRef = F31A92C728D4CB39003BFD6A /* SDL_offscreenopengles.c */; }; + F31A92DA28D4CB39003BFD6A /* SDL_offscreenopengles.c in Sources */ = {isa = PBXBuildFile; fileRef = F31A92C728D4CB39003BFD6A /* SDL_offscreenopengles.c */; }; + F31A92DB28D4CB39003BFD6A /* SDL_offscreenopengles.c in Sources */ = {isa = PBXBuildFile; fileRef = F31A92C728D4CB39003BFD6A /* SDL_offscreenopengles.c */; }; + F32305FF28939F6400E66D30 /* SDL_hidapi_combined.c in Sources */ = {isa = PBXBuildFile; fileRef = F32305FE28939F6400E66D30 /* SDL_hidapi_combined.c */; }; + F323060028939F6400E66D30 /* SDL_hidapi_combined.c in Sources */ = {isa = PBXBuildFile; fileRef = F32305FE28939F6400E66D30 /* SDL_hidapi_combined.c */; }; + F323060128939F6400E66D30 /* SDL_hidapi_combined.c in Sources */ = {isa = PBXBuildFile; fileRef = F32305FE28939F6400E66D30 /* SDL_hidapi_combined.c */; }; + F323060228939F6400E66D30 /* SDL_hidapi_combined.c in Sources */ = {isa = PBXBuildFile; fileRef = F32305FE28939F6400E66D30 /* SDL_hidapi_combined.c */; }; + F323060328939F6400E66D30 /* SDL_hidapi_combined.c in Sources */ = {isa = PBXBuildFile; fileRef = F32305FE28939F6400E66D30 /* SDL_hidapi_combined.c */; }; + F323060428939F6400E66D30 /* SDL_hidapi_combined.c in Sources */ = {isa = PBXBuildFile; fileRef = F32305FE28939F6400E66D30 /* SDL_hidapi_combined.c */; }; + F323060528939F6400E66D30 /* SDL_hidapi_combined.c in Sources */ = {isa = PBXBuildFile; fileRef = F32305FE28939F6400E66D30 /* SDL_hidapi_combined.c */; }; + F323060628939F6400E66D30 /* SDL_hidapi_combined.c in Sources */ = {isa = PBXBuildFile; fileRef = F32305FE28939F6400E66D30 /* SDL_hidapi_combined.c */; }; + F323060728939F6400E66D30 /* SDL_hidapi_combined.c in Sources */ = {isa = PBXBuildFile; fileRef = F32305FE28939F6400E66D30 /* SDL_hidapi_combined.c */; }; + F34B9895291DEFF500AAC96E /* SDL_hidapi_steam.c in Sources */ = {isa = PBXBuildFile; fileRef = A75FDAAC23E2795C00529352 /* SDL_hidapi_steam.c */; }; + F34B9896291DEFF700AAC96E /* SDL_hidapi_steam.c in Sources */ = {isa = PBXBuildFile; fileRef = A75FDAAC23E2795C00529352 /* SDL_hidapi_steam.c */; }; + F34B9897291DEFFA00AAC96E /* SDL_hidapi_steam.c in Sources */ = {isa = PBXBuildFile; fileRef = A75FDAAC23E2795C00529352 /* SDL_hidapi_steam.c */; }; + F362B9322B33916600D30B94 /* controller_list.h in Headers */ = {isa = PBXBuildFile; fileRef = F362B91F2B33916600D30B94 /* controller_list.h */; }; + F362B9332B33916600D30B94 /* controller_list.h in Headers */ = {isa = PBXBuildFile; fileRef = F362B91F2B33916600D30B94 /* controller_list.h */; }; + F362B9342B33916600D30B94 /* controller_list.h in Headers */ = {isa = PBXBuildFile; fileRef = F362B91F2B33916600D30B94 /* controller_list.h */; }; + F362B9352B33916600D30B94 /* controller_list.h in Headers */ = {isa = PBXBuildFile; fileRef = F362B91F2B33916600D30B94 /* controller_list.h */; }; + F362B9362B33916600D30B94 /* controller_list.h in Headers */ = {isa = PBXBuildFile; fileRef = F362B91F2B33916600D30B94 /* controller_list.h */; }; + F362B9372B33916600D30B94 /* controller_list.h in Headers */ = {isa = PBXBuildFile; fileRef = F362B91F2B33916600D30B94 /* controller_list.h */; }; + F362B9382B33916600D30B94 /* controller_list.h in Headers */ = {isa = PBXBuildFile; fileRef = F362B91F2B33916600D30B94 /* controller_list.h */; }; + F362B9392B33916600D30B94 /* controller_list.h in Headers */ = {isa = PBXBuildFile; fileRef = F362B91F2B33916600D30B94 /* controller_list.h */; }; + F362B93A2B33916600D30B94 /* controller_list.h in Headers */ = {isa = PBXBuildFile; fileRef = F362B91F2B33916600D30B94 /* controller_list.h */; }; + F362B93D2B33920500D30B94 /* SDL_hidapi_steamdeck.c in Sources */ = {isa = PBXBuildFile; fileRef = F362B93B2B33920400D30B94 /* SDL_hidapi_steamdeck.c */; }; + F362B93E2B33920500D30B94 /* SDL_hidapi_steamdeck.c in Sources */ = {isa = PBXBuildFile; fileRef = F362B93B2B33920400D30B94 /* SDL_hidapi_steamdeck.c */; }; + F362B93F2B33920500D30B94 /* SDL_hidapi_steamdeck.c in Sources */ = {isa = PBXBuildFile; fileRef = F362B93B2B33920400D30B94 /* SDL_hidapi_steamdeck.c */; }; + F362B9402B33920500D30B94 /* SDL_hidapi_steamdeck.c in Sources */ = {isa = PBXBuildFile; fileRef = F362B93B2B33920400D30B94 /* SDL_hidapi_steamdeck.c */; }; + F362B9412B33920500D30B94 /* SDL_hidapi_steamdeck.c in Sources */ = {isa = PBXBuildFile; fileRef = F362B93B2B33920400D30B94 /* SDL_hidapi_steamdeck.c */; }; + F362B9422B33920500D30B94 /* SDL_hidapi_steamdeck.c in Sources */ = {isa = PBXBuildFile; fileRef = F362B93B2B33920400D30B94 /* SDL_hidapi_steamdeck.c */; }; + F362B9432B33920500D30B94 /* SDL_hidapi_steamdeck.c in Sources */ = {isa = PBXBuildFile; fileRef = F362B93B2B33920400D30B94 /* SDL_hidapi_steamdeck.c */; }; + F362B9442B33920500D30B94 /* SDL_hidapi_steamdeck.c in Sources */ = {isa = PBXBuildFile; fileRef = F362B93B2B33920400D30B94 /* SDL_hidapi_steamdeck.c */; }; + F362B9452B33920500D30B94 /* SDL_hidapi_steamdeck.c in Sources */ = {isa = PBXBuildFile; fileRef = F362B93B2B33920400D30B94 /* SDL_hidapi_steamdeck.c */; }; + F362B9462B33920500D30B94 /* SDL_hidapi_nintendo.h in Headers */ = {isa = PBXBuildFile; fileRef = F362B93C2B33920400D30B94 /* SDL_hidapi_nintendo.h */; }; + F362B9472B33920500D30B94 /* SDL_hidapi_nintendo.h in Headers */ = {isa = PBXBuildFile; fileRef = F362B93C2B33920400D30B94 /* SDL_hidapi_nintendo.h */; }; + F362B9482B33920500D30B94 /* SDL_hidapi_nintendo.h in Headers */ = {isa = PBXBuildFile; fileRef = F362B93C2B33920400D30B94 /* SDL_hidapi_nintendo.h */; }; + F362B9492B33920500D30B94 /* SDL_hidapi_nintendo.h in Headers */ = {isa = PBXBuildFile; fileRef = F362B93C2B33920400D30B94 /* SDL_hidapi_nintendo.h */; }; + F362B94A2B33920500D30B94 /* SDL_hidapi_nintendo.h in Headers */ = {isa = PBXBuildFile; fileRef = F362B93C2B33920400D30B94 /* SDL_hidapi_nintendo.h */; }; + F362B94B2B33920500D30B94 /* SDL_hidapi_nintendo.h in Headers */ = {isa = PBXBuildFile; fileRef = F362B93C2B33920400D30B94 /* SDL_hidapi_nintendo.h */; }; + F362B94C2B33920500D30B94 /* SDL_hidapi_nintendo.h in Headers */ = {isa = PBXBuildFile; fileRef = F362B93C2B33920400D30B94 /* SDL_hidapi_nintendo.h */; }; + F362B94D2B33920500D30B94 /* SDL_hidapi_nintendo.h in Headers */ = {isa = PBXBuildFile; fileRef = F362B93C2B33920400D30B94 /* SDL_hidapi_nintendo.h */; }; + F362B94E2B33920500D30B94 /* SDL_hidapi_nintendo.h in Headers */ = {isa = PBXBuildFile; fileRef = F362B93C2B33920400D30B94 /* SDL_hidapi_nintendo.h */; }; + F362B9522B33EB7300D30B94 /* SDL_steam_virtual_gamepad.h in Headers */ = {isa = PBXBuildFile; fileRef = F362B9502B33EB7300D30B94 /* SDL_steam_virtual_gamepad.h */; }; + F362B9532B33EB7300D30B94 /* SDL_steam_virtual_gamepad.h in Headers */ = {isa = PBXBuildFile; fileRef = F362B9502B33EB7300D30B94 /* SDL_steam_virtual_gamepad.h */; }; + F362B9542B33EB7300D30B94 /* SDL_steam_virtual_gamepad.h in Headers */ = {isa = PBXBuildFile; fileRef = F362B9502B33EB7300D30B94 /* SDL_steam_virtual_gamepad.h */; }; + F362B9552B33EB7300D30B94 /* SDL_steam_virtual_gamepad.h in Headers */ = {isa = PBXBuildFile; fileRef = F362B9502B33EB7300D30B94 /* SDL_steam_virtual_gamepad.h */; }; + F362B9562B33EB7300D30B94 /* SDL_steam_virtual_gamepad.h in Headers */ = {isa = PBXBuildFile; fileRef = F362B9502B33EB7300D30B94 /* SDL_steam_virtual_gamepad.h */; }; + F362B9572B33EB7300D30B94 /* SDL_steam_virtual_gamepad.h in Headers */ = {isa = PBXBuildFile; fileRef = F362B9502B33EB7300D30B94 /* SDL_steam_virtual_gamepad.h */; }; + F362B9582B33EB7300D30B94 /* SDL_steam_virtual_gamepad.h in Headers */ = {isa = PBXBuildFile; fileRef = F362B9502B33EB7300D30B94 /* SDL_steam_virtual_gamepad.h */; }; + F362B9592B33EB7300D30B94 /* SDL_steam_virtual_gamepad.h in Headers */ = {isa = PBXBuildFile; fileRef = F362B9502B33EB7300D30B94 /* SDL_steam_virtual_gamepad.h */; }; + F362B95A2B33EB7300D30B94 /* SDL_steam_virtual_gamepad.h in Headers */ = {isa = PBXBuildFile; fileRef = F362B9502B33EB7300D30B94 /* SDL_steam_virtual_gamepad.h */; }; + F362B95B2B33EB7300D30B94 /* SDL_steam_virtual_gamepad.c in Sources */ = {isa = PBXBuildFile; fileRef = F362B9512B33EB7300D30B94 /* SDL_steam_virtual_gamepad.c */; }; + F362B95C2B33EB7300D30B94 /* SDL_steam_virtual_gamepad.c in Sources */ = {isa = PBXBuildFile; fileRef = F362B9512B33EB7300D30B94 /* SDL_steam_virtual_gamepad.c */; }; + F362B95D2B33EB7300D30B94 /* SDL_steam_virtual_gamepad.c in Sources */ = {isa = PBXBuildFile; fileRef = F362B9512B33EB7300D30B94 /* SDL_steam_virtual_gamepad.c */; }; + F362B95E2B33EB7300D30B94 /* SDL_steam_virtual_gamepad.c in Sources */ = {isa = PBXBuildFile; fileRef = F362B9512B33EB7300D30B94 /* SDL_steam_virtual_gamepad.c */; }; + F362B95F2B33EB7300D30B94 /* SDL_steam_virtual_gamepad.c in Sources */ = {isa = PBXBuildFile; fileRef = F362B9512B33EB7300D30B94 /* SDL_steam_virtual_gamepad.c */; }; + F362B9602B33EB7300D30B94 /* SDL_steam_virtual_gamepad.c in Sources */ = {isa = PBXBuildFile; fileRef = F362B9512B33EB7300D30B94 /* SDL_steam_virtual_gamepad.c */; }; + F362B9612B33EB7300D30B94 /* SDL_steam_virtual_gamepad.c in Sources */ = {isa = PBXBuildFile; fileRef = F362B9512B33EB7300D30B94 /* SDL_steam_virtual_gamepad.c */; }; + F362B9622B33EB7300D30B94 /* SDL_steam_virtual_gamepad.c in Sources */ = {isa = PBXBuildFile; fileRef = F362B9512B33EB7300D30B94 /* SDL_steam_virtual_gamepad.c */; }; + F362B9632B33EB7300D30B94 /* SDL_steam_virtual_gamepad.c in Sources */ = {isa = PBXBuildFile; fileRef = F362B9512B33EB7300D30B94 /* SDL_steam_virtual_gamepad.c */; }; + F3631C6424884ACF004F28EA /* SDL_locale.h in Headers */ = {isa = PBXBuildFile; fileRef = 566E26792462701100718109 /* SDL_locale.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3631C652488534E004F28EA /* SDL_locale.h in Headers */ = {isa = PBXBuildFile; fileRef = 566E26792462701100718109 /* SDL_locale.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F376F6192559B29300CFC0BC /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F376F6182559B29300CFC0BC /* OpenGLES.framework */; platformFilter = ios; }; + F376F61B2559B2AF00CFC0BC /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F376F61A2559B2AF00CFC0BC /* UIKit.framework */; }; + F376F6322559B31D00CFC0BC /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F376F6312559B31D00CFC0BC /* GameController.framework */; }; + F376F6332559B33D00CFC0BC /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7381E931D8B69C300B177DD /* AudioToolbox.framework */; }; + F376F63E2559B35200CFC0BC /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A75FDABF23E28B8000529352 /* CoreMotion.framework */; }; + F376F63F2559B37300CFC0BC /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A75FDAC123E28B9600529352 /* CoreGraphics.framework */; }; + F376F6402559B38A00CFC0BC /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A75FDAB923E28A7A00529352 /* AVFoundation.framework */; }; + F376F6552559B4E300CFC0BC /* SDL_hidapi.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A81423E2513F00DCD162 /* SDL_hidapi.c */; }; + F376F6762559B4E500CFC0BC /* SDL_hidapi.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A81423E2513F00DCD162 /* SDL_hidapi.c */; }; + F376F68D2559B4E900CFC0BC /* SDL_hidapi.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A81423E2513F00DCD162 /* SDL_hidapi.c */; }; + F376F6D92559B59600CFC0BC /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F376F6D82559B59600CFC0BC /* AudioToolbox.framework */; }; + F376F6DB2559B5A000CFC0BC /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F376F6DA2559B5A000CFC0BC /* AVFoundation.framework */; }; + F376F6DD2559B5A900CFC0BC /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F376F6DC2559B5A900CFC0BC /* OpenGLES.framework */; }; + F376F6DF2559B5BA00CFC0BC /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F376F6DE2559B5BA00CFC0BC /* GameController.framework */; }; + F376F6EC2559B5DA00CFC0BC /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F376F6CC2559B54500CFC0BC /* UIKit.framework */; }; + F376F6F82559B5EC00CFC0BC /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F376F6F72559B5EC00CFC0BC /* CoreGraphics.framework */; }; + F376F70E2559B6B800CFC0BC /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F376F6182559B29300CFC0BC /* OpenGLES.framework */; }; + F376F70F2559B6BF00CFC0BC /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F376F61A2559B2AF00CFC0BC /* UIKit.framework */; }; + F376F71B2559B71C00CFC0BC /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F376F6D82559B59600CFC0BC /* AudioToolbox.framework */; }; + F376F71C2559B72900CFC0BC /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F376F6DA2559B5A000CFC0BC /* AVFoundation.framework */; }; + F376F71D2559B73200CFC0BC /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F376F6CC2559B54500CFC0BC /* UIKit.framework */; }; + F376F71F2559B73A00CFC0BC /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F376F71E2559B73A00CFC0BC /* QuartzCore.framework */; }; + F376F7202559B74200CFC0BC /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F376F6DC2559B5A900CFC0BC /* OpenGLES.framework */; }; + F376F7222559B74900CFC0BC /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F376F7212559B74900CFC0BC /* Metal.framework */; }; + F376F7232559B75800CFC0BC /* CoreVideo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F376F6E02559B5CA00CFC0BC /* CoreVideo.framework */; }; + F376F7242559B76100CFC0BC /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F376F6F72559B5EC00CFC0BC /* CoreGraphics.framework */; }; + F376F7262559B76800CFC0BC /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F376F7252559B76800CFC0BC /* CoreFoundation.framework */; }; + F376F7282559B77100CFC0BC /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F376F7272559B77100CFC0BC /* CoreAudio.framework */; }; + F376F7332559B79B00CFC0BC /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F376F6DE2559B5BA00CFC0BC /* GameController.framework */; }; + F37A8E1A28405AA100C38E95 /* CMake in Resources */ = {isa = PBXBuildFile; fileRef = F37A8E1928405AA100C38E95 /* CMake */; }; + F37A8E1B28405AA100C38E95 /* CMake in Resources */ = {isa = PBXBuildFile; fileRef = F37A8E1928405AA100C38E95 /* CMake */; }; + F37A8E1C28405AA100C38E95 /* CMake in Resources */ = {isa = PBXBuildFile; fileRef = F37A8E1928405AA100C38E95 /* CMake */; }; + F37DC5F325350EBC0002E6F7 /* CoreHaptics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F37DC5F225350EBC0002E6F7 /* CoreHaptics.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; + F37DC5F525350ECC0002E6F7 /* CoreHaptics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F37DC5F425350ECC0002E6F7 /* CoreHaptics.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; + F3820713284F3609004DD584 /* controller_type.c in Sources */ = {isa = PBXBuildFile; fileRef = F3820712284F3609004DD584 /* controller_type.c */; }; + F3820714284F3609004DD584 /* controller_type.c in Sources */ = {isa = PBXBuildFile; fileRef = F3820712284F3609004DD584 /* controller_type.c */; }; + F3820715284F3609004DD584 /* controller_type.c in Sources */ = {isa = PBXBuildFile; fileRef = F3820712284F3609004DD584 /* controller_type.c */; }; + F3820716284F3609004DD584 /* controller_type.c in Sources */ = {isa = PBXBuildFile; fileRef = F3820712284F3609004DD584 /* controller_type.c */; }; + F3820717284F3609004DD584 /* controller_type.c in Sources */ = {isa = PBXBuildFile; fileRef = F3820712284F3609004DD584 /* controller_type.c */; }; + F3820718284F3609004DD584 /* controller_type.c in Sources */ = {isa = PBXBuildFile; fileRef = F3820712284F3609004DD584 /* controller_type.c */; }; + F3820719284F3609004DD584 /* controller_type.c in Sources */ = {isa = PBXBuildFile; fileRef = F3820712284F3609004DD584 /* controller_type.c */; }; + F382071A284F3609004DD584 /* controller_type.c in Sources */ = {isa = PBXBuildFile; fileRef = F3820712284F3609004DD584 /* controller_type.c */; }; + F382071B284F3609004DD584 /* controller_type.c in Sources */ = {isa = PBXBuildFile; fileRef = F3820712284F3609004DD584 /* controller_type.c */; }; + F382071D284F362F004DD584 /* SDL_guid.c in Sources */ = {isa = PBXBuildFile; fileRef = F382071C284F362F004DD584 /* SDL_guid.c */; }; + F382071E284F362F004DD584 /* SDL_guid.c in Sources */ = {isa = PBXBuildFile; fileRef = F382071C284F362F004DD584 /* SDL_guid.c */; }; + F382071F284F362F004DD584 /* SDL_guid.c in Sources */ = {isa = PBXBuildFile; fileRef = F382071C284F362F004DD584 /* SDL_guid.c */; }; + F3820720284F362F004DD584 /* SDL_guid.c in Sources */ = {isa = PBXBuildFile; fileRef = F382071C284F362F004DD584 /* SDL_guid.c */; }; + F3820721284F362F004DD584 /* SDL_guid.c in Sources */ = {isa = PBXBuildFile; fileRef = F382071C284F362F004DD584 /* SDL_guid.c */; }; + F3820722284F362F004DD584 /* SDL_guid.c in Sources */ = {isa = PBXBuildFile; fileRef = F382071C284F362F004DD584 /* SDL_guid.c */; }; + F3820723284F362F004DD584 /* SDL_guid.c in Sources */ = {isa = PBXBuildFile; fileRef = F382071C284F362F004DD584 /* SDL_guid.c */; }; + F3820724284F362F004DD584 /* SDL_guid.c in Sources */ = {isa = PBXBuildFile; fileRef = F382071C284F362F004DD584 /* SDL_guid.c */; }; + F3820725284F362F004DD584 /* SDL_guid.c in Sources */ = {isa = PBXBuildFile; fileRef = F382071C284F362F004DD584 /* SDL_guid.c */; }; + F3820727284F3643004DD584 /* SDL_guid.h in Headers */ = {isa = PBXBuildFile; fileRef = F3820726284F3643004DD584 /* SDL_guid.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3820728284F3643004DD584 /* SDL_guid.h in Headers */ = {isa = PBXBuildFile; fileRef = F3820726284F3643004DD584 /* SDL_guid.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3820729284F3643004DD584 /* SDL_guid.h in Headers */ = {isa = PBXBuildFile; fileRef = F3820726284F3643004DD584 /* SDL_guid.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F382072A284F3643004DD584 /* SDL_guid.h in Headers */ = {isa = PBXBuildFile; fileRef = F3820726284F3643004DD584 /* SDL_guid.h */; }; + F382072B284F3643004DD584 /* SDL_guid.h in Headers */ = {isa = PBXBuildFile; fileRef = F3820726284F3643004DD584 /* SDL_guid.h */; }; + F382072C284F3643004DD584 /* SDL_guid.h in Headers */ = {isa = PBXBuildFile; fileRef = F3820726284F3643004DD584 /* SDL_guid.h */; }; + F382072D284F3643004DD584 /* SDL_guid.h in Headers */ = {isa = PBXBuildFile; fileRef = F3820726284F3643004DD584 /* SDL_guid.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F382072E284F3643004DD584 /* SDL_guid.h in Headers */ = {isa = PBXBuildFile; fileRef = F3820726284F3643004DD584 /* SDL_guid.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F382072F284F3643004DD584 /* SDL_guid.h in Headers */ = {isa = PBXBuildFile; fileRef = F3820726284F3643004DD584 /* SDL_guid.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F38233852738EB8600F7F527 /* SDL_hidapi.h in Headers */ = {isa = PBXBuildFile; fileRef = F38233842738EB8600F7F527 /* SDL_hidapi.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F38233862738EB8600F7F527 /* SDL_hidapi.h in Headers */ = {isa = PBXBuildFile; fileRef = F38233842738EB8600F7F527 /* SDL_hidapi.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F38233872738EB8600F7F527 /* SDL_hidapi.h in Headers */ = {isa = PBXBuildFile; fileRef = F38233842738EB8600F7F527 /* SDL_hidapi.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F382338B2738EB8600F7F527 /* SDL_hidapi.h in Headers */ = {isa = PBXBuildFile; fileRef = F38233842738EB8600F7F527 /* SDL_hidapi.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F382338C2738EB8600F7F527 /* SDL_hidapi.h in Headers */ = {isa = PBXBuildFile; fileRef = F38233842738EB8600F7F527 /* SDL_hidapi.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F382338D2738EB8600F7F527 /* SDL_hidapi.h in Headers */ = {isa = PBXBuildFile; fileRef = F38233842738EB8600F7F527 /* SDL_hidapi.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F382338E2738EBEC00F7F527 /* SDL_hidapi.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A81423E2513F00DCD162 /* SDL_hidapi.c */; }; + F382338F2738EBEF00F7F527 /* SDL_hidapi.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A81423E2513F00DCD162 /* SDL_hidapi.c */; }; + F38233902738EBF000F7F527 /* SDL_hidapi.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A81423E2513F00DCD162 /* SDL_hidapi.c */; }; + F38233912738EBF100F7F527 /* SDL_hidapi.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A81423E2513F00DCD162 /* SDL_hidapi.c */; }; + F38233922738EBF300F7F527 /* SDL_hidapi.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A81423E2513F00DCD162 /* SDL_hidapi.c */; }; + F38233932738EBF300F7F527 /* SDL_hidapi.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A81423E2513F00DCD162 /* SDL_hidapi.c */; }; + F38233942738EC1400F7F527 /* hid.m in Sources */ = {isa = PBXBuildFile; fileRef = A75FDAA523E2792500529352 /* hid.m */; }; + F38233952738EC1500F7F527 /* hid.m in Sources */ = {isa = PBXBuildFile; fileRef = A75FDAA523E2792500529352 /* hid.m */; }; + F38233962738EC1600F7F527 /* hid.m in Sources */ = {isa = PBXBuildFile; fileRef = A75FDAA523E2792500529352 /* hid.m */; }; + F38233972738EC1600F7F527 /* hid.m in Sources */ = {isa = PBXBuildFile; fileRef = A75FDAA523E2792500529352 /* hid.m */; }; + F38233982738EC1800F7F527 /* hid.m in Sources */ = {isa = PBXBuildFile; fileRef = A75FDAA523E2792500529352 /* hid.m */; }; + F38233992738EC1800F7F527 /* hid.m in Sources */ = {isa = PBXBuildFile; fileRef = A75FDAA523E2792500529352 /* hid.m */; }; + F382339A2738ED5600F7F527 /* CoreBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A75FDAC323E28BA700529352 /* CoreBluetooth.framework */; }; + F382339C2738ED6600F7F527 /* CoreBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F382339B2738ED6600F7F527 /* CoreBluetooth.framework */; }; + F382339D2738EE3F00F7F527 /* CoreBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F382339B2738ED6600F7F527 /* CoreBluetooth.framework */; }; + F386F6E72884663E001840AA /* SDL_log_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F386F6E42884663E001840AA /* SDL_log_c.h */; }; + F386F6E82884663E001840AA /* SDL_log_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F386F6E42884663E001840AA /* SDL_log_c.h */; }; + F386F6E92884663E001840AA /* SDL_log_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F386F6E42884663E001840AA /* SDL_log_c.h */; }; + F386F6EA2884663E001840AA /* SDL_log_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F386F6E42884663E001840AA /* SDL_log_c.h */; }; + F386F6EB2884663E001840AA /* SDL_log_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F386F6E42884663E001840AA /* SDL_log_c.h */; }; + F386F6EC2884663E001840AA /* SDL_log_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F386F6E42884663E001840AA /* SDL_log_c.h */; }; + F386F6ED2884663E001840AA /* SDL_log_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F386F6E42884663E001840AA /* SDL_log_c.h */; }; + F386F6EE2884663E001840AA /* SDL_log_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F386F6E42884663E001840AA /* SDL_log_c.h */; }; + F386F6EF2884663E001840AA /* SDL_log_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F386F6E42884663E001840AA /* SDL_log_c.h */; }; + F386F6F02884663E001840AA /* SDL_utils_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F386F6E52884663E001840AA /* SDL_utils_c.h */; }; + F386F6F12884663E001840AA /* SDL_utils_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F386F6E52884663E001840AA /* SDL_utils_c.h */; }; + F386F6F22884663E001840AA /* SDL_utils_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F386F6E52884663E001840AA /* SDL_utils_c.h */; }; + F386F6F32884663E001840AA /* SDL_utils_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F386F6E52884663E001840AA /* SDL_utils_c.h */; }; + F386F6F42884663E001840AA /* SDL_utils_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F386F6E52884663E001840AA /* SDL_utils_c.h */; }; + F386F6F52884663E001840AA /* SDL_utils_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F386F6E52884663E001840AA /* SDL_utils_c.h */; }; + F386F6F62884663E001840AA /* SDL_utils_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F386F6E52884663E001840AA /* SDL_utils_c.h */; }; + F386F6F72884663E001840AA /* SDL_utils_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F386F6E52884663E001840AA /* SDL_utils_c.h */; }; + F386F6F82884663E001840AA /* SDL_utils_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F386F6E52884663E001840AA /* SDL_utils_c.h */; }; + F386F6F92884663E001840AA /* SDL_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = F386F6E62884663E001840AA /* SDL_utils.c */; }; + F386F6FA2884663E001840AA /* SDL_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = F386F6E62884663E001840AA /* SDL_utils.c */; }; + F386F6FB2884663E001840AA /* SDL_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = F386F6E62884663E001840AA /* SDL_utils.c */; }; + F386F6FC2884663E001840AA /* SDL_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = F386F6E62884663E001840AA /* SDL_utils.c */; }; + F386F6FD2884663E001840AA /* SDL_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = F386F6E62884663E001840AA /* SDL_utils.c */; }; + F386F6FE2884663E001840AA /* SDL_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = F386F6E62884663E001840AA /* SDL_utils.c */; }; + F386F6FF2884663E001840AA /* SDL_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = F386F6E62884663E001840AA /* SDL_utils.c */; }; + F386F7002884663E001840AA /* SDL_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = F386F6E62884663E001840AA /* SDL_utils.c */; }; + F386F7012884663E001840AA /* SDL_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = F386F6E62884663E001840AA /* SDL_utils.c */; }; + F388C95528B5F6F700661ECF /* SDL_hidapi_ps3.c in Sources */ = {isa = PBXBuildFile; fileRef = F388C95428B5F6F600661ECF /* SDL_hidapi_ps3.c */; }; + F388C95628B5F6F700661ECF /* SDL_hidapi_ps3.c in Sources */ = {isa = PBXBuildFile; fileRef = F388C95428B5F6F600661ECF /* SDL_hidapi_ps3.c */; }; + F388C95728B5F6F700661ECF /* SDL_hidapi_ps3.c in Sources */ = {isa = PBXBuildFile; fileRef = F388C95428B5F6F600661ECF /* SDL_hidapi_ps3.c */; }; + F388C95828B5F6F700661ECF /* SDL_hidapi_ps3.c in Sources */ = {isa = PBXBuildFile; fileRef = F388C95428B5F6F600661ECF /* SDL_hidapi_ps3.c */; }; + F388C95928B5F6F700661ECF /* SDL_hidapi_ps3.c in Sources */ = {isa = PBXBuildFile; fileRef = F388C95428B5F6F600661ECF /* SDL_hidapi_ps3.c */; }; + F388C95A28B5F6F700661ECF /* SDL_hidapi_ps3.c in Sources */ = {isa = PBXBuildFile; fileRef = F388C95428B5F6F600661ECF /* SDL_hidapi_ps3.c */; }; + F388C95B28B5F6F700661ECF /* SDL_hidapi_ps3.c in Sources */ = {isa = PBXBuildFile; fileRef = F388C95428B5F6F600661ECF /* SDL_hidapi_ps3.c */; }; + F388C95C28B5F6F700661ECF /* SDL_hidapi_ps3.c in Sources */ = {isa = PBXBuildFile; fileRef = F388C95428B5F6F600661ECF /* SDL_hidapi_ps3.c */; }; + F388C95D28B5F6F700661ECF /* SDL_hidapi_ps3.c in Sources */ = {isa = PBXBuildFile; fileRef = F388C95428B5F6F600661ECF /* SDL_hidapi_ps3.c */; }; + F3928194258603F1003191A7 /* SDL_misc.h in Headers */ = {isa = PBXBuildFile; fileRef = 5616CA4F252BB2BE005D5928 /* SDL_misc.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F392819F25860422003191A7 /* SDL_misc.h in Headers */ = {isa = PBXBuildFile; fileRef = 5616CA4F252BB2BE005D5928 /* SDL_misc.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3942659253579B400B03694 /* CoreHaptics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F37DC5F225350EBC0002E6F7 /* CoreHaptics.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; + F394265A253579D200B03694 /* CoreHaptics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F37DC5F425350ECC0002E6F7 /* CoreHaptics.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; + F3950CD8212BC88D00F51292 /* SDL_sensor.h in Headers */ = {isa = PBXBuildFile; fileRef = F3950CD7212BC88D00F51292 /* SDL_sensor.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3950CDA212BC88D00F51292 /* SDL_sensor.h in Headers */ = {isa = PBXBuildFile; fileRef = F3950CD7212BC88D00F51292 /* SDL_sensor.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F395BF6525633B2400942BFF /* SDL_crc32.c in Sources */ = {isa = PBXBuildFile; fileRef = F395BF6425633B2400942BFF /* SDL_crc32.c */; }; + F395BF6625633B2400942BFF /* SDL_crc32.c in Sources */ = {isa = PBXBuildFile; fileRef = F395BF6425633B2400942BFF /* SDL_crc32.c */; }; + F395BF6725633B2400942BFF /* SDL_crc32.c in Sources */ = {isa = PBXBuildFile; fileRef = F395BF6425633B2400942BFF /* SDL_crc32.c */; }; + F395BF6825633B2400942BFF /* SDL_crc32.c in Sources */ = {isa = PBXBuildFile; fileRef = F395BF6425633B2400942BFF /* SDL_crc32.c */; }; + F395BF6925633B2400942BFF /* SDL_crc32.c in Sources */ = {isa = PBXBuildFile; fileRef = F395BF6425633B2400942BFF /* SDL_crc32.c */; }; + F395BF6A25633B2400942BFF /* SDL_crc32.c in Sources */ = {isa = PBXBuildFile; fileRef = F395BF6425633B2400942BFF /* SDL_crc32.c */; }; + F395BF6B25633B2400942BFF /* SDL_crc32.c in Sources */ = {isa = PBXBuildFile; fileRef = F395BF6425633B2400942BFF /* SDL_crc32.c */; }; + F395BF6C25633B2400942BFF /* SDL_crc32.c in Sources */ = {isa = PBXBuildFile; fileRef = F395BF6425633B2400942BFF /* SDL_crc32.c */; }; + F395BF6D25633B2400942BFF /* SDL_crc32.c in Sources */ = {isa = PBXBuildFile; fileRef = F395BF6425633B2400942BFF /* SDL_crc32.c */; }; + F395C1932569C68F00942BFF /* SDL_iokitjoystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F395C1912569C68E00942BFF /* SDL_iokitjoystick_c.h */; }; + F395C1942569C68F00942BFF /* SDL_iokitjoystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F395C1912569C68E00942BFF /* SDL_iokitjoystick_c.h */; }; + F395C1952569C68F00942BFF /* SDL_iokitjoystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F395C1912569C68E00942BFF /* SDL_iokitjoystick_c.h */; }; + F395C1962569C68F00942BFF /* SDL_iokitjoystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F395C1912569C68E00942BFF /* SDL_iokitjoystick_c.h */; }; + F395C1972569C68F00942BFF /* SDL_iokitjoystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F395C1912569C68E00942BFF /* SDL_iokitjoystick_c.h */; }; + F395C1982569C68F00942BFF /* SDL_iokitjoystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F395C1912569C68E00942BFF /* SDL_iokitjoystick_c.h */; }; + F395C1992569C68F00942BFF /* SDL_iokitjoystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F395C1912569C68E00942BFF /* SDL_iokitjoystick_c.h */; }; + F395C19A2569C68F00942BFF /* SDL_iokitjoystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F395C1912569C68E00942BFF /* SDL_iokitjoystick_c.h */; }; + F395C19B2569C68F00942BFF /* SDL_iokitjoystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F395C1912569C68E00942BFF /* SDL_iokitjoystick_c.h */; }; + F395C19C2569C68F00942BFF /* SDL_iokitjoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = F395C1922569C68E00942BFF /* SDL_iokitjoystick.c */; }; + F395C19D2569C68F00942BFF /* SDL_iokitjoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = F395C1922569C68E00942BFF /* SDL_iokitjoystick.c */; }; + F395C19E2569C68F00942BFF /* SDL_iokitjoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = F395C1922569C68E00942BFF /* SDL_iokitjoystick.c */; }; + F395C19F2569C68F00942BFF /* SDL_iokitjoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = F395C1922569C68E00942BFF /* SDL_iokitjoystick.c */; }; + F395C1A02569C68F00942BFF /* SDL_iokitjoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = F395C1922569C68E00942BFF /* SDL_iokitjoystick.c */; }; + F395C1A12569C68F00942BFF /* SDL_iokitjoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = F395C1922569C68E00942BFF /* SDL_iokitjoystick.c */; }; + F395C1A22569C68F00942BFF /* SDL_iokitjoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = F395C1922569C68E00942BFF /* SDL_iokitjoystick.c */; }; + F395C1A32569C68F00942BFF /* SDL_iokitjoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = F395C1922569C68E00942BFF /* SDL_iokitjoystick.c */; }; + F395C1A42569C68F00942BFF /* SDL_iokitjoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = F395C1922569C68E00942BFF /* SDL_iokitjoystick.c */; }; + F395C1B12569C6A000942BFF /* SDL_mfijoystick.m in Sources */ = {isa = PBXBuildFile; fileRef = F395C1AF2569C6A000942BFF /* SDL_mfijoystick.m */; }; + F395C1B22569C6A000942BFF /* SDL_mfijoystick.m in Sources */ = {isa = PBXBuildFile; fileRef = F395C1AF2569C6A000942BFF /* SDL_mfijoystick.m */; }; + F395C1B32569C6A000942BFF /* SDL_mfijoystick.m in Sources */ = {isa = PBXBuildFile; fileRef = F395C1AF2569C6A000942BFF /* SDL_mfijoystick.m */; }; + F395C1B42569C6A000942BFF /* SDL_mfijoystick.m in Sources */ = {isa = PBXBuildFile; fileRef = F395C1AF2569C6A000942BFF /* SDL_mfijoystick.m */; }; + F395C1B52569C6A000942BFF /* SDL_mfijoystick.m in Sources */ = {isa = PBXBuildFile; fileRef = F395C1AF2569C6A000942BFF /* SDL_mfijoystick.m */; }; + F395C1B62569C6A000942BFF /* SDL_mfijoystick.m in Sources */ = {isa = PBXBuildFile; fileRef = F395C1AF2569C6A000942BFF /* SDL_mfijoystick.m */; }; + F395C1B72569C6A000942BFF /* SDL_mfijoystick.m in Sources */ = {isa = PBXBuildFile; fileRef = F395C1AF2569C6A000942BFF /* SDL_mfijoystick.m */; }; + F395C1B82569C6A000942BFF /* SDL_mfijoystick.m in Sources */ = {isa = PBXBuildFile; fileRef = F395C1AF2569C6A000942BFF /* SDL_mfijoystick.m */; }; + F395C1B92569C6A000942BFF /* SDL_mfijoystick.m in Sources */ = {isa = PBXBuildFile; fileRef = F395C1AF2569C6A000942BFF /* SDL_mfijoystick.m */; }; + F395C1BA2569C6A000942BFF /* SDL_mfijoystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F395C1B02569C6A000942BFF /* SDL_mfijoystick_c.h */; }; + F395C1BB2569C6A000942BFF /* SDL_mfijoystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F395C1B02569C6A000942BFF /* SDL_mfijoystick_c.h */; }; + F395C1BC2569C6A000942BFF /* SDL_mfijoystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F395C1B02569C6A000942BFF /* SDL_mfijoystick_c.h */; }; + F395C1BD2569C6A000942BFF /* SDL_mfijoystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F395C1B02569C6A000942BFF /* SDL_mfijoystick_c.h */; }; + F395C1BE2569C6A000942BFF /* SDL_mfijoystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F395C1B02569C6A000942BFF /* SDL_mfijoystick_c.h */; }; + F395C1BF2569C6A000942BFF /* SDL_mfijoystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F395C1B02569C6A000942BFF /* SDL_mfijoystick_c.h */; }; + F395C1C02569C6A000942BFF /* SDL_mfijoystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F395C1B02569C6A000942BFF /* SDL_mfijoystick_c.h */; }; + F395C1C12569C6A000942BFF /* SDL_mfijoystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F395C1B02569C6A000942BFF /* SDL_mfijoystick_c.h */; }; + F395C1C22569C6A000942BFF /* SDL_mfijoystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F395C1B02569C6A000942BFF /* SDL_mfijoystick_c.h */; }; + F3973FA228A59BDD00B84553 /* SDL_vacopy.h in Headers */ = {isa = PBXBuildFile; fileRef = F3973FA028A59BDD00B84553 /* SDL_vacopy.h */; }; + F3973FA328A59BDD00B84553 /* SDL_vacopy.h in Headers */ = {isa = PBXBuildFile; fileRef = F3973FA028A59BDD00B84553 /* SDL_vacopy.h */; }; + F3973FA428A59BDD00B84553 /* SDL_vacopy.h in Headers */ = {isa = PBXBuildFile; fileRef = F3973FA028A59BDD00B84553 /* SDL_vacopy.h */; }; + F3973FA528A59BDD00B84553 /* SDL_vacopy.h in Headers */ = {isa = PBXBuildFile; fileRef = F3973FA028A59BDD00B84553 /* SDL_vacopy.h */; }; + F3973FA628A59BDD00B84553 /* SDL_vacopy.h in Headers */ = {isa = PBXBuildFile; fileRef = F3973FA028A59BDD00B84553 /* SDL_vacopy.h */; }; + F3973FA728A59BDD00B84553 /* SDL_vacopy.h in Headers */ = {isa = PBXBuildFile; fileRef = F3973FA028A59BDD00B84553 /* SDL_vacopy.h */; }; + F3973FA828A59BDD00B84553 /* SDL_vacopy.h in Headers */ = {isa = PBXBuildFile; fileRef = F3973FA028A59BDD00B84553 /* SDL_vacopy.h */; }; + F3973FA928A59BDD00B84553 /* SDL_vacopy.h in Headers */ = {isa = PBXBuildFile; fileRef = F3973FA028A59BDD00B84553 /* SDL_vacopy.h */; }; + F3973FAA28A59BDD00B84553 /* SDL_vacopy.h in Headers */ = {isa = PBXBuildFile; fileRef = F3973FA028A59BDD00B84553 /* SDL_vacopy.h */; }; + F3973FAB28A59BDD00B84553 /* SDL_crc16.c in Sources */ = {isa = PBXBuildFile; fileRef = F3973FA128A59BDD00B84553 /* SDL_crc16.c */; }; + F3973FAC28A59BDD00B84553 /* SDL_crc16.c in Sources */ = {isa = PBXBuildFile; fileRef = F3973FA128A59BDD00B84553 /* SDL_crc16.c */; }; + F3973FAD28A59BDD00B84553 /* SDL_crc16.c in Sources */ = {isa = PBXBuildFile; fileRef = F3973FA128A59BDD00B84553 /* SDL_crc16.c */; }; + F3973FAE28A59BDD00B84553 /* SDL_crc16.c in Sources */ = {isa = PBXBuildFile; fileRef = F3973FA128A59BDD00B84553 /* SDL_crc16.c */; }; + F3973FAF28A59BDD00B84553 /* SDL_crc16.c in Sources */ = {isa = PBXBuildFile; fileRef = F3973FA128A59BDD00B84553 /* SDL_crc16.c */; }; + F3973FB028A59BDD00B84553 /* SDL_crc16.c in Sources */ = {isa = PBXBuildFile; fileRef = F3973FA128A59BDD00B84553 /* SDL_crc16.c */; }; + F3973FB128A59BDD00B84553 /* SDL_crc16.c in Sources */ = {isa = PBXBuildFile; fileRef = F3973FA128A59BDD00B84553 /* SDL_crc16.c */; }; + F3973FB228A59BDD00B84553 /* SDL_crc16.c in Sources */ = {isa = PBXBuildFile; fileRef = F3973FA128A59BDD00B84553 /* SDL_crc16.c */; }; + F3973FB328A59BDD00B84553 /* SDL_crc16.c in Sources */ = {isa = PBXBuildFile; fileRef = F3973FA128A59BDD00B84553 /* SDL_crc16.c */; }; + F3984CD025BCC92900374F43 /* SDL_hidapi_stadia.c in Sources */ = {isa = PBXBuildFile; fileRef = F3984CCF25BCC92800374F43 /* SDL_hidapi_stadia.c */; }; + F3984CD125BCC92900374F43 /* SDL_hidapi_stadia.c in Sources */ = {isa = PBXBuildFile; fileRef = F3984CCF25BCC92800374F43 /* SDL_hidapi_stadia.c */; }; + F3984CD225BCC92900374F43 /* SDL_hidapi_stadia.c in Sources */ = {isa = PBXBuildFile; fileRef = F3984CCF25BCC92800374F43 /* SDL_hidapi_stadia.c */; }; + F3984CD325BCC92900374F43 /* SDL_hidapi_stadia.c in Sources */ = {isa = PBXBuildFile; fileRef = F3984CCF25BCC92800374F43 /* SDL_hidapi_stadia.c */; }; + F3984CD425BCC92900374F43 /* SDL_hidapi_stadia.c in Sources */ = {isa = PBXBuildFile; fileRef = F3984CCF25BCC92800374F43 /* SDL_hidapi_stadia.c */; }; + F3984CD525BCC92900374F43 /* SDL_hidapi_stadia.c in Sources */ = {isa = PBXBuildFile; fileRef = F3984CCF25BCC92800374F43 /* SDL_hidapi_stadia.c */; }; + F3984CD625BCC92900374F43 /* SDL_hidapi_stadia.c in Sources */ = {isa = PBXBuildFile; fileRef = F3984CCF25BCC92800374F43 /* SDL_hidapi_stadia.c */; }; + F3984CD725BCC92900374F43 /* SDL_hidapi_stadia.c in Sources */ = {isa = PBXBuildFile; fileRef = F3984CCF25BCC92800374F43 /* SDL_hidapi_stadia.c */; }; + F3984CD825BCC92900374F43 /* SDL_hidapi_stadia.c in Sources */ = {isa = PBXBuildFile; fileRef = F3984CCF25BCC92800374F43 /* SDL_hidapi_stadia.c */; }; + F3A4909E2554D38600E92A8B /* SDL_hidapi_ps5.c in Sources */ = {isa = PBXBuildFile; fileRef = F3A4909D2554D38500E92A8B /* SDL_hidapi_ps5.c */; }; + F3A4909F2554D38600E92A8B /* SDL_hidapi_ps5.c in Sources */ = {isa = PBXBuildFile; fileRef = F3A4909D2554D38500E92A8B /* SDL_hidapi_ps5.c */; }; + F3A490A02554D38600E92A8B /* SDL_hidapi_ps5.c in Sources */ = {isa = PBXBuildFile; fileRef = F3A4909D2554D38500E92A8B /* SDL_hidapi_ps5.c */; }; + F3A490A12554D38600E92A8B /* SDL_hidapi_ps5.c in Sources */ = {isa = PBXBuildFile; fileRef = F3A4909D2554D38500E92A8B /* SDL_hidapi_ps5.c */; }; + F3A490A22554D38600E92A8B /* SDL_hidapi_ps5.c in Sources */ = {isa = PBXBuildFile; fileRef = F3A4909D2554D38500E92A8B /* SDL_hidapi_ps5.c */; }; + F3A490A32554D38600E92A8B /* SDL_hidapi_ps5.c in Sources */ = {isa = PBXBuildFile; fileRef = F3A4909D2554D38500E92A8B /* SDL_hidapi_ps5.c */; }; + F3A490A42554D38600E92A8B /* SDL_hidapi_ps5.c in Sources */ = {isa = PBXBuildFile; fileRef = F3A4909D2554D38500E92A8B /* SDL_hidapi_ps5.c */; }; + F3A490A52554D38600E92A8B /* SDL_hidapi_ps5.c in Sources */ = {isa = PBXBuildFile; fileRef = F3A4909D2554D38500E92A8B /* SDL_hidapi_ps5.c */; }; + F3A490A62554D38600E92A8B /* SDL_hidapi_ps5.c in Sources */ = {isa = PBXBuildFile; fileRef = F3A4909D2554D38500E92A8B /* SDL_hidapi_ps5.c */; }; + F3ADAB8E2576F0B400A6B1D9 /* SDL_sysurl.m in Sources */ = {isa = PBXBuildFile; fileRef = F3ADAB8D2576F0B300A6B1D9 /* SDL_sysurl.m */; }; + F3ADAB8F2576F0B400A6B1D9 /* SDL_sysurl.m in Sources */ = {isa = PBXBuildFile; fileRef = F3ADAB8D2576F0B300A6B1D9 /* SDL_sysurl.m */; }; + F3ADAB902576F0B400A6B1D9 /* SDL_sysurl.m in Sources */ = {isa = PBXBuildFile; fileRef = F3ADAB8D2576F0B300A6B1D9 /* SDL_sysurl.m */; }; + F3ADAB912576F0B400A6B1D9 /* SDL_sysurl.m in Sources */ = {isa = PBXBuildFile; fileRef = F3ADAB8D2576F0B300A6B1D9 /* SDL_sysurl.m */; }; + F3ADAB922576F0B400A6B1D9 /* SDL_sysurl.m in Sources */ = {isa = PBXBuildFile; fileRef = F3ADAB8D2576F0B300A6B1D9 /* SDL_sysurl.m */; }; + F3ADAB932576F0B400A6B1D9 /* SDL_sysurl.m in Sources */ = {isa = PBXBuildFile; fileRef = F3ADAB8D2576F0B300A6B1D9 /* SDL_sysurl.m */; }; + F3D60A8328C16A1900788A3A /* SDL_hidapi_wii.c in Sources */ = {isa = PBXBuildFile; fileRef = F3D60A8228C16A1800788A3A /* SDL_hidapi_wii.c */; }; + F3D60A8428C16A1900788A3A /* SDL_hidapi_wii.c in Sources */ = {isa = PBXBuildFile; fileRef = F3D60A8228C16A1800788A3A /* SDL_hidapi_wii.c */; }; + F3D60A8528C16A1900788A3A /* SDL_hidapi_wii.c in Sources */ = {isa = PBXBuildFile; fileRef = F3D60A8228C16A1800788A3A /* SDL_hidapi_wii.c */; }; + F3D60A8628C16A1900788A3A /* SDL_hidapi_wii.c in Sources */ = {isa = PBXBuildFile; fileRef = F3D60A8228C16A1800788A3A /* SDL_hidapi_wii.c */; }; + F3D60A8728C16A1900788A3A /* SDL_hidapi_wii.c in Sources */ = {isa = PBXBuildFile; fileRef = F3D60A8228C16A1800788A3A /* SDL_hidapi_wii.c */; }; + F3D60A8828C16A1900788A3A /* SDL_hidapi_wii.c in Sources */ = {isa = PBXBuildFile; fileRef = F3D60A8228C16A1800788A3A /* SDL_hidapi_wii.c */; }; + F3D60A8928C16A1900788A3A /* SDL_hidapi_wii.c in Sources */ = {isa = PBXBuildFile; fileRef = F3D60A8228C16A1800788A3A /* SDL_hidapi_wii.c */; }; + F3D60A8A28C16A1900788A3A /* SDL_hidapi_wii.c in Sources */ = {isa = PBXBuildFile; fileRef = F3D60A8228C16A1800788A3A /* SDL_hidapi_wii.c */; }; + F3D60A8B28C16A1900788A3A /* SDL_hidapi_wii.c in Sources */ = {isa = PBXBuildFile; fileRef = F3D60A8228C16A1800788A3A /* SDL_hidapi_wii.c */; }; + F3F07D5A269640160074468B /* SDL_hidapi_luna.c in Sources */ = {isa = PBXBuildFile; fileRef = F3F07D59269640160074468B /* SDL_hidapi_luna.c */; }; + F3F07D5B269640160074468B /* SDL_hidapi_luna.c in Sources */ = {isa = PBXBuildFile; fileRef = F3F07D59269640160074468B /* SDL_hidapi_luna.c */; }; + F3F07D5C269640160074468B /* SDL_hidapi_luna.c in Sources */ = {isa = PBXBuildFile; fileRef = F3F07D59269640160074468B /* SDL_hidapi_luna.c */; }; + F3F07D5D269640160074468B /* SDL_hidapi_luna.c in Sources */ = {isa = PBXBuildFile; fileRef = F3F07D59269640160074468B /* SDL_hidapi_luna.c */; }; + F3F07D5E269640160074468B /* SDL_hidapi_luna.c in Sources */ = {isa = PBXBuildFile; fileRef = F3F07D59269640160074468B /* SDL_hidapi_luna.c */; }; + F3F07D5F269640160074468B /* SDL_hidapi_luna.c in Sources */ = {isa = PBXBuildFile; fileRef = F3F07D59269640160074468B /* SDL_hidapi_luna.c */; }; + F3F07D60269640160074468B /* SDL_hidapi_luna.c in Sources */ = {isa = PBXBuildFile; fileRef = F3F07D59269640160074468B /* SDL_hidapi_luna.c */; }; + F3F07D61269640160074468B /* SDL_hidapi_luna.c in Sources */ = {isa = PBXBuildFile; fileRef = F3F07D59269640160074468B /* SDL_hidapi_luna.c */; }; + F3F07D62269640160074468B /* SDL_hidapi_luna.c in Sources */ = {isa = PBXBuildFile; fileRef = F3F07D59269640160074468B /* SDL_hidapi_luna.c */; }; + FA24348B21D41FFB00B8918A /* SDL_metal.h in Headers */ = {isa = PBXBuildFile; fileRef = FA24348A21D41FFB00B8918A /* SDL_metal.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FA73671D19A540EF004122E4 /* CoreVideo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA73671C19A540EF004122E4 /* CoreVideo.framework */; }; + FA73671F19A54144004122E4 /* CoreVideo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA73671C19A540EF004122E4 /* CoreVideo.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + BECDF6C50761BA81005FE872 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0867D690FE84028FC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BECDF5FE0761BA81005FE872; + remoteInfo = "Framework (Upgraded)"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + A75FDB9C23E4CAEF00529352 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + A75FDB9F23E4CAFA00529352 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + A75FDBA223E4CAFF00529352 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 0073179D0858DECD00B2BC32 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; + 0073179F0858DECD00B2BC32 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = System/Library/Frameworks/IOKit.framework; sourceTree = SDKROOT; }; + 007317C10858E15000B2BC32 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = System/Library/Frameworks/Carbon.framework; sourceTree = SDKROOT; }; + 00794D3F09D0C461003FC8A1 /* License.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = License.txt; sourceTree = ""; }; + 00CFA89C106B4BA100758660 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ForceFeedback.framework; path = System/Library/Frameworks/ForceFeedback.framework; sourceTree = SDKROOT; }; + 00D0D08310675DD9004B05EF /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = System/Library/Frameworks/CoreFoundation.framework; sourceTree = SDKROOT; }; + 4D4820431F0F10B400EDC31C /* SDL_vulkan.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDL_vulkan.h; sourceTree = ""; }; + 5616CA49252BB2A5005D5928 /* SDL_url.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_url.c; sourceTree = ""; }; + 5616CA4A252BB2A6005D5928 /* SDL_sysurl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_sysurl.h; sourceTree = ""; }; + 5616CA4B252BB2A6005D5928 /* SDL_sysurl.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_sysurl.m; sourceTree = ""; }; + 5616CA4F252BB2BE005D5928 /* SDL_misc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_misc.h; sourceTree = ""; }; + 564624351FF821B80074AC87 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; + 564624371FF821CB0074AC87 /* Metal.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Metal.framework; path = System/Library/Frameworks/Metal.framework; sourceTree = SDKROOT; }; + 566E26792462701100718109 /* SDL_locale.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_locale.h; sourceTree = ""; }; + 566E26CC246274CB00718109 /* SDL_syslocale.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDL_syslocale.m; path = locale/macosx/SDL_syslocale.m; sourceTree = ""; }; + 566E26CD246274CB00718109 /* SDL_locale.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL_locale.c; path = locale/SDL_locale.c; sourceTree = ""; }; + 566E26CE246274CC00718109 /* SDL_syslocale.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_syslocale.h; path = locale/SDL_syslocale.h; sourceTree = ""; }; + 567E2F2017C44C35005F1892 /* SDL_filesystem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_filesystem.h; sourceTree = ""; }; + 5C2EF7001FC9EF0F003F5197 /* SDL_egl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_egl.h; sourceTree = ""; }; + 75E09158241EA924004729E1 /* SDL_virtualjoystick.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_virtualjoystick.c; sourceTree = ""; }; + 75E09159241EA924004729E1 /* SDL_virtualjoystick_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_virtualjoystick_c.h; sourceTree = ""; }; + 9846B07B287A9020000C35C8 /* SDL_hidapi_shield.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hidapi_shield.c; sourceTree = ""; }; + A1626A3D2617006A003F1973 /* SDL_triangle.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_triangle.c; sourceTree = ""; }; + A1626A512617008C003F1973 /* SDL_triangle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_triangle.h; sourceTree = ""; }; + A1BB8B6127F6CF320057CFA8 /* SDL_list.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_list.c; sourceTree = ""; }; + A1BB8B6227F6CF330057CFA8 /* SDL_list.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_list.h; sourceTree = ""; }; + A7381E931D8B69C300B177DD /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; + A7381E951D8B69D600B177DD /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; }; + A75FCEB323E25AB700529352 /* libSDL2.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = libSDL2.dylib; sourceTree = BUILT_PRODUCTS_DIR; }; + A75FD06C23E25AC700529352 /* libSDL2.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = libSDL2.dylib; sourceTree = BUILT_PRODUCTS_DIR; }; + A75FDAA523E2792500529352 /* hid.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = hid.m; sourceTree = ""; }; + A75FDAAC23E2795C00529352 /* SDL_hidapi_steam.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hidapi_steam.c; sourceTree = ""; }; + A75FDAB923E28A7A00529352 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; + A75FDABD23E28B6200529352 /* GameController.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GameController.framework; path = System/Library/Frameworks/GameController.framework; sourceTree = SDKROOT; }; + A75FDABF23E28B8000529352 /* CoreMotion.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMotion.framework; path = System/Library/Frameworks/CoreMotion.framework; sourceTree = SDKROOT; }; + A75FDAC123E28B9600529352 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; + A75FDAC323E28BA700529352 /* CoreBluetooth.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreBluetooth.framework; path = System/Library/Frameworks/CoreBluetooth.framework; sourceTree = SDKROOT; }; + A75FDAF523E35EC400529352 /* SDL_config_iphoneos.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_config_iphoneos.h; sourceTree = ""; }; + A75FDB5723E39E6100529352 /* hidapi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = hidapi.h; path = hidapi/hidapi.h; sourceTree = ""; }; + A75FDB9223E4C8DB00529352 /* hid.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = hid.c; sourceTree = ""; }; + A75FDBA323E4CB6F00529352 /* LICENSE-bsd.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "LICENSE-bsd.txt"; sourceTree = ""; }; + A75FDBA423E4CB6F00529352 /* AUTHORS.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = AUTHORS.txt; sourceTree = ""; }; + A75FDBA523E4CB6F00529352 /* LICENSE-orig.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "LICENSE-orig.txt"; sourceTree = ""; }; + A75FDBA623E4CB6F00529352 /* LICENSE-gpl3.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "LICENSE-gpl3.txt"; sourceTree = ""; }; + A75FDBA723E4CB6F00529352 /* LICENSE.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = LICENSE.txt; sourceTree = ""; }; + A75FDBC323EA380300529352 /* SDL_hidapi_rumble.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_hidapi_rumble.h; sourceTree = ""; }; + A75FDBC423EA380300529352 /* SDL_hidapi_rumble.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hidapi_rumble.c; sourceTree = ""; }; + A769B23D23E259AE00872273 /* libSDL2.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libSDL2.a; sourceTree = BUILT_PRODUCTS_DIR; }; + A77E6EB3167AB0A90010E40B /* SDL_gamecontroller.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_gamecontroller.h; sourceTree = ""; }; + A7D88B5423E2437C00DCD162 /* SDL2.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SDL2.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A7D88D1523E24BED00DCD162 /* SDL2.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SDL2.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A7D88E5423E24D3B00DCD162 /* libSDL2.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libSDL2.a; sourceTree = BUILT_PRODUCTS_DIR; }; + A7D8A57023E2513D00DCD162 /* SDL_dataqueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_dataqueue.h; sourceTree = ""; }; + A7D8A57123E2513D00DCD162 /* SDL.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL.c; sourceTree = ""; }; + A7D8A57323E2513D00DCD162 /* SDL_spinlock.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_spinlock.c; sourceTree = ""; }; + A7D8A57423E2513D00DCD162 /* SDL_atomic.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_atomic.c; sourceTree = ""; }; + A7D8A57523E2513D00DCD162 /* SDL_error_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_error_c.h; sourceTree = ""; }; + A7D8A57823E2513D00DCD162 /* SDL_dummysensor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_dummysensor.h; sourceTree = ""; }; + A7D8A57923E2513D00DCD162 /* SDL_dummysensor.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_dummysensor.c; sourceTree = ""; }; + A7D8A57B23E2513D00DCD162 /* SDL_coremotionsensor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_coremotionsensor.h; sourceTree = ""; }; + A7D8A57C23E2513D00DCD162 /* SDL_coremotionsensor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_coremotionsensor.m; sourceTree = ""; }; + A7D8A57D23E2513D00DCD162 /* SDL_syssensor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_syssensor.h; sourceTree = ""; }; + A7D8A58123E2513D00DCD162 /* SDL_sensor_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_sensor_c.h; sourceTree = ""; }; + A7D8A58223E2513D00DCD162 /* SDL_sensor.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_sensor.c; sourceTree = ""; }; + A7D8A58323E2513D00DCD162 /* SDL_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_internal.h; sourceTree = ""; }; + A7D8A5AB23E2513D00DCD162 /* SDL_hints.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hints.c; sourceTree = ""; }; + A7D8A5B023E2513D00DCD162 /* SDL_uikit_main.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_uikit_main.c; sourceTree = ""; }; + A7D8A5C423E2513D00DCD162 /* SDL_syshaptic.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_syshaptic.c; sourceTree = ""; }; + A7D8A5C523E2513D00DCD162 /* SDL_haptic.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_haptic.c; sourceTree = ""; }; + A7D8A5C623E2513D00DCD162 /* SDL_haptic_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_haptic_c.h; sourceTree = ""; }; + A7D8A5CC23E2513D00DCD162 /* SDL_syshaptic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_syshaptic.h; sourceTree = ""; }; + A7D8A5CE23E2513D00DCD162 /* SDL_syshaptic.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_syshaptic.c; sourceTree = ""; }; + A7D8A5CF23E2513D00DCD162 /* SDL_syshaptic_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_syshaptic_c.h; sourceTree = ""; }; + A7D8A5D823E2513D00DCD162 /* SDL_dynapi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_dynapi.h; sourceTree = ""; }; + A7D8A5D923E2513D00DCD162 /* SDL_dynapi_overrides.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_dynapi_overrides.h; sourceTree = ""; }; + A7D8A5DA23E2513D00DCD162 /* SDL_dynapi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_dynapi.c; sourceTree = ""; }; + A7D8A5DB23E2513D00DCD162 /* SDL_dynapi_procs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_dynapi_procs.h; sourceTree = ""; }; + A7D8A5DD23E2513D00DCD162 /* SDL_log.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_log.c; sourceTree = ""; }; + A7D8A5DF23E2513D00DCD162 /* SDL_timer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_timer.c; sourceTree = ""; }; + A7D8A5E023E2513D00DCD162 /* SDL_timer_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_timer_c.h; sourceTree = ""; }; + A7D8A5E223E2513D00DCD162 /* SDL_systimer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_systimer.c; sourceTree = ""; }; + A7D8A5E823E2513D00DCD162 /* SDL_systimer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_systimer.c; sourceTree = ""; }; + A7D8A5EE23E2513D00DCD162 /* SDL_offscreenevents_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_offscreenevents_c.h; sourceTree = ""; }; + A7D8A5EF23E2513D00DCD162 /* SDL_offscreenwindow.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_offscreenwindow.c; sourceTree = ""; }; + A7D8A5F023E2513D00DCD162 /* SDL_offscreenevents.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_offscreenevents.c; sourceTree = ""; }; + A7D8A5F123E2513D00DCD162 /* SDL_offscreenvideo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_offscreenvideo.h; sourceTree = ""; }; + A7D8A5F223E2513D00DCD162 /* SDL_offscreenframebuffer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_offscreenframebuffer.c; sourceTree = ""; }; + A7D8A5F423E2513D00DCD162 /* SDL_offscreenframebuffer_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_offscreenframebuffer_c.h; sourceTree = ""; }; + A7D8A5F523E2513D00DCD162 /* SDL_offscreenwindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_offscreenwindow.h; sourceTree = ""; }; + A7D8A5F623E2513D00DCD162 /* SDL_offscreenvideo.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_offscreenvideo.c; sourceTree = ""; }; + A7D8A60223E2513D00DCD162 /* SDL_blit_slow.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_blit_slow.c; sourceTree = ""; }; + A7D8A60323E2513D00DCD162 /* SDL_stretch.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_stretch.c; sourceTree = ""; }; + A7D8A60423E2513D00DCD162 /* SDL_egl_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_egl_c.h; sourceTree = ""; }; + A7D8A60623E2513D00DCD162 /* SDL_nullframebuffer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_nullframebuffer.c; sourceTree = ""; }; + A7D8A60723E2513D00DCD162 /* SDL_nullframebuffer_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_nullframebuffer_c.h; sourceTree = ""; }; + A7D8A60823E2513D00DCD162 /* SDL_nullvideo.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_nullvideo.c; sourceTree = ""; }; + A7D8A60923E2513D00DCD162 /* SDL_nullevents.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_nullevents.c; sourceTree = ""; }; + A7D8A60A23E2513D00DCD162 /* SDL_nullvideo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_nullvideo.h; sourceTree = ""; }; + A7D8A60B23E2513D00DCD162 /* SDL_nullevents_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_nullevents_c.h; sourceTree = ""; }; + A7D8A60C23E2513D00DCD162 /* SDL_rect_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_rect_c.h; sourceTree = ""; }; + A7D8A60D23E2513D00DCD162 /* SDL_shape_internals.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_shape_internals.h; sourceTree = ""; }; + A7D8A60E23E2513D00DCD162 /* SDL_video.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_video.c; sourceTree = ""; }; + A7D8A61423E2513D00DCD162 /* SDL_surface.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_surface.c; sourceTree = ""; }; + A7D8A61523E2513D00DCD162 /* SDL_RLEaccel.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_RLEaccel.c; sourceTree = ""; }; + A7D8A61623E2513D00DCD162 /* SDL_blit_copy.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_blit_copy.c; sourceTree = ""; }; + A7D8A61723E2513D00DCD162 /* SDL_sysvideo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_sysvideo.h; sourceTree = ""; }; + A7D8A61923E2513D00DCD162 /* SDL_uikitview.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_uikitview.h; sourceTree = ""; }; + A7D8A61A23E2513D00DCD162 /* SDL_uikitwindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_uikitwindow.m; sourceTree = ""; }; + A7D8A61B23E2513D00DCD162 /* SDL_uikitmessagebox.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_uikitmessagebox.m; sourceTree = ""; }; + A7D8A61C23E2513D00DCD162 /* SDL_uikitevents.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_uikitevents.m; sourceTree = ""; }; + A7D8A61D23E2513D00DCD162 /* SDL_uikitmetalview.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_uikitmetalview.h; sourceTree = ""; }; + A7D8A61E23E2513D00DCD162 /* SDL_uikitappdelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_uikitappdelegate.m; sourceTree = ""; }; + A7D8A61F23E2513D00DCD162 /* SDL_uikitmodes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_uikitmodes.h; sourceTree = ""; }; + A7D8A62023E2513D00DCD162 /* SDL_uikitopenglview.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_uikitopenglview.m; sourceTree = ""; }; + A7D8A62123E2513D00DCD162 /* SDL_uikitclipboard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_uikitclipboard.h; sourceTree = ""; }; + A7D8A62223E2513D00DCD162 /* SDL_uikitvideo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_uikitvideo.h; sourceTree = ""; }; + A7D8A62323E2513D00DCD162 /* SDL_uikitopengles.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_uikitopengles.m; sourceTree = ""; }; + A7D8A62423E2513D00DCD162 /* SDL_uikitviewcontroller.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_uikitviewcontroller.h; sourceTree = ""; }; + A7D8A62523E2513D00DCD162 /* SDL_uikitvulkan.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_uikitvulkan.m; sourceTree = ""; }; + A7D8A62623E2513D00DCD162 /* SDL_uikitmessagebox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_uikitmessagebox.h; sourceTree = ""; }; + A7D8A62723E2513D00DCD162 /* SDL_uikitwindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_uikitwindow.h; sourceTree = ""; }; + A7D8A62923E2513D00DCD162 /* SDL_uikitview.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_uikitview.m; sourceTree = ""; }; + A7D8A62A23E2513D00DCD162 /* SDL_uikitclipboard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_uikitclipboard.m; sourceTree = ""; }; + A7D8A62B23E2513D00DCD162 /* SDL_uikitopenglview.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_uikitopenglview.h; sourceTree = ""; }; + A7D8A62C23E2513D00DCD162 /* SDL_uikitmodes.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_uikitmodes.m; sourceTree = ""; }; + A7D8A62D23E2513D00DCD162 /* SDL_uikitevents.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_uikitevents.h; sourceTree = ""; }; + A7D8A62E23E2513D00DCD162 /* SDL_uikitmetalview.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_uikitmetalview.m; sourceTree = ""; }; + A7D8A62F23E2513D00DCD162 /* SDL_uikitappdelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_uikitappdelegate.h; sourceTree = ""; }; + A7D8A63023E2513D00DCD162 /* SDL_uikitviewcontroller.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_uikitviewcontroller.m; sourceTree = ""; }; + A7D8A63123E2513D00DCD162 /* SDL_uikitopengles.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_uikitopengles.h; sourceTree = ""; }; + A7D8A63223E2513D00DCD162 /* SDL_uikitvideo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_uikitvideo.m; sourceTree = ""; }; + A7D8A63323E2513D00DCD162 /* SDL_uikitvulkan.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_uikitvulkan.h; sourceTree = ""; }; + A7D8A63423E2513D00DCD162 /* SDL_rect.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_rect.c; sourceTree = ""; }; + A7D8A63E23E2513D00DCD162 /* SDL_vulkan_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_vulkan_internal.h; sourceTree = ""; }; + A7D8A63F23E2513D00DCD162 /* SDL_blit_auto.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_blit_auto.c; sourceTree = ""; }; + A7D8A64023E2513D00DCD162 /* SDL_vulkan_utils.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_vulkan_utils.c; sourceTree = ""; }; + A7D8A64223E2513D00DCD162 /* SDL_blit_N.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_blit_N.c; sourceTree = ""; }; + A7D8A64C23E2513D00DCD162 /* SDL_blit.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_blit.c; sourceTree = ""; }; + A7D8A64D23E2513D00DCD162 /* SDL_pixels.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_pixels.c; sourceTree = ""; }; + A7D8A66223E2513E00DCD162 /* SDL_blit_0.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_blit_0.c; sourceTree = ""; }; + A7D8A66323E2513E00DCD162 /* SDL_blit_slow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_blit_slow.h; sourceTree = ""; }; + A7D8A66423E2513E00DCD162 /* SDL_blit_A.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_blit_A.c; sourceTree = ""; }; + A7D8A67B23E2513E00DCD162 /* SDL_clipboard.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_clipboard.c; sourceTree = ""; }; + A7D8A67C23E2513E00DCD162 /* SDL_yuv.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_yuv.c; sourceTree = ""; }; + A7D8A67E23E2513E00DCD162 /* SDL_cocoashape.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_cocoashape.h; sourceTree = ""; }; + A7D8A67F23E2513E00DCD162 /* SDL_cocoaopengl.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_cocoaopengl.m; sourceTree = ""; }; + A7D8A68023E2513E00DCD162 /* SDL_cocoakeyboard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_cocoakeyboard.h; sourceTree = ""; }; + A7D8A68123E2513E00DCD162 /* SDL_cocoamodes.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_cocoamodes.m; sourceTree = ""; }; + A7D8A68223E2513E00DCD162 /* SDL_cocoaopengles.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_cocoaopengles.m; sourceTree = ""; }; + A7D8A68323E2513E00DCD162 /* SDL_cocoavulkan.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_cocoavulkan.m; sourceTree = ""; }; + A7D8A68423E2513E00DCD162 /* SDL_cocoawindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_cocoawindow.m; sourceTree = ""; }; + A7D8A68523E2513E00DCD162 /* SDL_cocoavideo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_cocoavideo.m; sourceTree = ""; }; + A7D8A68623E2513E00DCD162 /* SDL_cocoametalview.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_cocoametalview.h; sourceTree = ""; }; + A7D8A68723E2513E00DCD162 /* SDL_cocoamouse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_cocoamouse.m; sourceTree = ""; }; + A7D8A68923E2513E00DCD162 /* SDL_cocoaevents.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_cocoaevents.m; sourceTree = ""; }; + A7D8A68A23E2513E00DCD162 /* SDL_cocoaclipboard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_cocoaclipboard.h; sourceTree = ""; }; + A7D8A68B23E2513E00DCD162 /* SDL_cocoamessagebox.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_cocoamessagebox.m; sourceTree = ""; }; + A7D8A68C23E2513E00DCD162 /* SDL_cocoakeyboard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_cocoakeyboard.m; sourceTree = ""; }; + A7D8A68D23E2513E00DCD162 /* SDL_cocoaopengl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_cocoaopengl.h; sourceTree = ""; }; + A7D8A68E23E2513E00DCD162 /* SDL_cocoashape.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_cocoashape.m; sourceTree = ""; }; + A7D8A68F23E2513E00DCD162 /* SDL_cocoavulkan.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_cocoavulkan.h; sourceTree = ""; }; + A7D8A69023E2513E00DCD162 /* SDL_cocoaopengles.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_cocoaopengles.h; sourceTree = ""; }; + A7D8A69123E2513E00DCD162 /* SDL_cocoamodes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_cocoamodes.h; sourceTree = ""; }; + A7D8A69223E2513E00DCD162 /* SDL_cocoawindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_cocoawindow.h; sourceTree = ""; }; + A7D8A69323E2513E00DCD162 /* SDL_cocoavideo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_cocoavideo.h; sourceTree = ""; }; + A7D8A69423E2513E00DCD162 /* SDL_cocoamessagebox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_cocoamessagebox.h; sourceTree = ""; }; + A7D8A69523E2513E00DCD162 /* SDL_cocoaclipboard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_cocoaclipboard.m; sourceTree = ""; }; + A7D8A69623E2513E00DCD162 /* SDL_cocoaevents.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_cocoaevents.h; sourceTree = ""; }; + A7D8A69823E2513E00DCD162 /* SDL_cocoamouse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_cocoamouse.h; sourceTree = ""; }; + A7D8A69923E2513E00DCD162 /* SDL_cocoametalview.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_cocoametalview.m; sourceTree = ""; }; + A7D8A6B623E2513E00DCD162 /* SDL_egl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_egl.c; sourceTree = ""; }; + A7D8A6FA23E2513E00DCD162 /* SDL_blit_1.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_blit_1.c; sourceTree = ""; }; + A7D8A72323E2513E00DCD162 /* gl2ext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = gl2ext.h; sourceTree = ""; }; + A7D8A72423E2513E00DCD162 /* gl2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = gl2.h; sourceTree = ""; }; + A7D8A72523E2513E00DCD162 /* gl2platform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = gl2platform.h; sourceTree = ""; }; + A7D8A72723E2513E00DCD162 /* khrplatform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = khrplatform.h; sourceTree = ""; }; + A7D8A72923E2513E00DCD162 /* egl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = egl.h; sourceTree = ""; }; + A7D8A72A23E2513E00DCD162 /* eglext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = eglext.h; sourceTree = ""; }; + A7D8A72B23E2513E00DCD162 /* eglplatform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = eglplatform.h; sourceTree = ""; }; + A7D8A72D23E2513E00DCD162 /* vk_layer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vk_layer.h; sourceTree = ""; }; + A7D8A72E23E2513E00DCD162 /* vk_icd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vk_icd.h; sourceTree = ""; }; + A7D8A72F23E2513E00DCD162 /* vulkan_vi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_vi.h; sourceTree = ""; }; + A7D8A73023E2513E00DCD162 /* vulkan.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan.h; sourceTree = ""; }; + A7D8A73123E2513E00DCD162 /* vk_platform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vk_platform.h; sourceTree = ""; }; + A7D8A73323E2513E00DCD162 /* vulkan_fuchsia.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_fuchsia.h; sourceTree = ""; }; + A7D8A73423E2513E00DCD162 /* vulkan_wayland.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_wayland.h; sourceTree = ""; }; + A7D8A73523E2513E00DCD162 /* vulkan_win32.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_win32.h; sourceTree = ""; }; + A7D8A73623E2513E00DCD162 /* vulkan_macos.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_macos.h; sourceTree = ""; }; + A7D8A73723E2513E00DCD162 /* vulkan_xlib_xrandr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_xlib_xrandr.h; sourceTree = ""; }; + A7D8A73823E2513E00DCD162 /* vulkan_xcb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_xcb.h; sourceTree = ""; }; + A7D8A73A23E2513E00DCD162 /* vulkan_xlib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_xlib.h; sourceTree = ""; }; + A7D8A73B23E2513E00DCD162 /* vulkan_ios.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_ios.h; sourceTree = ""; }; + A7D8A73C23E2513E00DCD162 /* vulkan_core.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_core.h; sourceTree = ""; }; + A7D8A73D23E2513E00DCD162 /* vk_sdk_platform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vk_sdk_platform.h; sourceTree = ""; }; + A7D8A73E23E2513E00DCD162 /* vulkan_android.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_android.h; sourceTree = ""; }; + A7D8A73F23E2513E00DCD162 /* SDL_blit_auto.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_blit_auto.h; sourceTree = ""; }; + A7D8A74023E2513E00DCD162 /* SDL_pixels_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_pixels_c.h; sourceTree = ""; }; + A7D8A76623E2513E00DCD162 /* SDL_blit_copy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_blit_copy.h; sourceTree = ""; }; + A7D8A76723E2513E00DCD162 /* SDL_RLEaccel_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_RLEaccel_c.h; sourceTree = ""; }; + A7D8A76823E2513E00DCD162 /* SDL_fillrect.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_fillrect.c; sourceTree = ""; }; + A7D8A76923E2513E00DCD162 /* SDL_shape.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_shape.c; sourceTree = ""; }; + A7D8A76A23E2513E00DCD162 /* SDL_yuv_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_yuv_c.h; sourceTree = ""; }; + A7D8A76B23E2513E00DCD162 /* SDL_blit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_blit.h; sourceTree = ""; }; + A7D8A77023E2513E00DCD162 /* yuv_rgb_sse_func.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = yuv_rgb_sse_func.h; sourceTree = ""; }; + A7D8A77123E2513E00DCD162 /* yuv_rgb_std_func.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = yuv_rgb_std_func.h; sourceTree = ""; }; + A7D8A77223E2513E00DCD162 /* yuv_rgb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = yuv_rgb.h; sourceTree = ""; }; + A7D8A77323E2513E00DCD162 /* SDL_bmp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_bmp.c; sourceTree = ""; }; + A7D8A77523E2513E00DCD162 /* SDL_cpuinfo.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_cpuinfo.c; sourceTree = ""; }; + A7D8A77723E2513E00DCD162 /* SDL_systhread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_systhread.h; sourceTree = ""; }; + A7D8A77823E2513E00DCD162 /* SDL_thread_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_thread_c.h; sourceTree = ""; }; + A7D8A77923E2513E00DCD162 /* SDL_thread.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_thread.c; sourceTree = ""; }; + A7D8A78223E2513E00DCD162 /* SDL_systls.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_systls.c; sourceTree = ""; }; + A7D8A78323E2513E00DCD162 /* SDL_syssem.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_syssem.c; sourceTree = ""; }; + A7D8A78423E2513E00DCD162 /* SDL_systhread_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_systhread_c.h; sourceTree = ""; }; + A7D8A78523E2513E00DCD162 /* SDL_syscond.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_syscond.c; sourceTree = ""; }; + A7D8A78623E2513E00DCD162 /* SDL_systhread.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_systhread.c; sourceTree = ""; }; + A7D8A78723E2513E00DCD162 /* SDL_sysmutex.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_sysmutex.c; sourceTree = ""; }; + A7D8A78823E2513E00DCD162 /* SDL_sysmutex_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_sysmutex_c.h; sourceTree = ""; }; + A7D8A79E23E2513E00DCD162 /* SDL_gamecontrollerdb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_gamecontrollerdb.h; sourceTree = ""; }; + A7D8A7A023E2513E00DCD162 /* SDL_sysjoystick.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_sysjoystick.c; sourceTree = ""; }; + A7D8A7A523E2513E00DCD162 /* SDL_steamcontroller.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_steamcontroller.h; sourceTree = ""; }; + A7D8A7A723E2513E00DCD162 /* SDL_steamcontroller.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_steamcontroller.c; sourceTree = ""; }; + A7D8A7A923E2513E00DCD162 /* SDL_joystick.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_joystick.c; sourceTree = ""; }; + A7D8A7AD23E2513E00DCD162 /* SDL_gamecontroller.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_gamecontroller.c; sourceTree = ""; }; + A7D8A7C223E2513E00DCD162 /* SDL_hidapi_xbox360.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hidapi_xbox360.c; sourceTree = ""; }; + A7D8A7C323E2513E00DCD162 /* SDL_hidapi_ps4.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hidapi_ps4.c; sourceTree = ""; }; + A7D8A7C423E2513E00DCD162 /* SDL_hidapijoystick.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hidapijoystick.c; sourceTree = ""; }; + A7D8A7C523E2513E00DCD162 /* SDL_hidapi_xboxone.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hidapi_xboxone.c; sourceTree = ""; }; + A7D8A7C623E2513E00DCD162 /* SDL_hidapi_switch.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hidapi_switch.c; sourceTree = ""; }; + A7D8A7C723E2513E00DCD162 /* SDL_hidapijoystick_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_hidapijoystick_c.h; sourceTree = ""; }; + A7D8A7C823E2513E00DCD162 /* SDL_hidapi_xbox360w.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hidapi_xbox360w.c; sourceTree = ""; }; + A7D8A7C923E2513E00DCD162 /* SDL_hidapi_gamecube.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hidapi_gamecube.c; sourceTree = ""; }; + A7D8A7CB23E2513E00DCD162 /* usb_ids.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = usb_ids.h; sourceTree = ""; }; + A7D8A7CF23E2513E00DCD162 /* SDL_sysjoystick.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_sysjoystick.h; sourceTree = ""; }; + A7D8A7D023E2513E00DCD162 /* SDL_joystick_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_joystick_c.h; sourceTree = ""; }; + A7D8A7D923E2513E00DCD162 /* controller_type.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = controller_type.h; sourceTree = ""; }; + A7D8A7DB23E2513F00DCD162 /* SDL_rwops.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_rwops.c; sourceTree = ""; }; + A7D8A7DD23E2513F00DCD162 /* SDL_rwopsbundlesupport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_rwopsbundlesupport.h; sourceTree = ""; }; + A7D8A7DE23E2513F00DCD162 /* SDL_rwopsbundlesupport.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_rwopsbundlesupport.m; sourceTree = ""; }; + A7D8A7E123E2513F00DCD162 /* SDL_syspower.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_syspower.m; sourceTree = ""; }; + A7D8A7E223E2513F00DCD162 /* SDL_syspower.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_syspower.h; sourceTree = ""; }; + A7D8A7E723E2513F00DCD162 /* SDL_power.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_power.c; sourceTree = ""; }; + A7D8A7EB23E2513F00DCD162 /* SDL_syspower.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_syspower.c; sourceTree = ""; }; + A7D8A7F423E2513F00DCD162 /* SDL_syspower.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_syspower.h; sourceTree = ""; }; + A7D8A7F523E2513F00DCD162 /* SDL_assert_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_assert_c.h; sourceTree = ""; }; + A7D8A7F823E2513F00DCD162 /* SDL_sysfilesystem.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_sysfilesystem.c; sourceTree = ""; }; + A7D8A7FE23E2513F00DCD162 /* SDL_sysfilesystem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_sysfilesystem.m; sourceTree = ""; }; + A7D8A81423E2513F00DCD162 /* SDL_hidapi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hidapi.c; sourceTree = ""; }; + A7D8A85F23E2513F00DCD162 /* SDL_sysloadso.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_sysloadso.c; sourceTree = ""; }; + A7D8A86323E2513F00DCD162 /* SDL_sysloadso.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_sysloadso.c; sourceTree = ""; }; + A7D8A86523E2513F00DCD162 /* SDL_mixer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_mixer.c; sourceTree = ""; }; + A7D8A86623E2513F00DCD162 /* SDL_wave.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_wave.c; sourceTree = ""; }; + A7D8A87123E2513F00DCD162 /* SDL_dummyaudio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_dummyaudio.h; sourceTree = ""; }; + A7D8A87223E2513F00DCD162 /* SDL_dummyaudio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_dummyaudio.c; sourceTree = ""; }; + A7D8A87323E2513F00DCD162 /* SDL_audio_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_audio_c.h; sourceTree = ""; }; + A7D8A87723E2513F00DCD162 /* SDL_audiodev_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_audiodev_c.h; sourceTree = ""; }; + A7D8A88F23E2513F00DCD162 /* SDL_audiodev.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_audiodev.c; sourceTree = ""; }; + A7D8A89F23E2513F00DCD162 /* SDL_sysaudio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_sysaudio.h; sourceTree = ""; }; + A7D8A8A023E2513F00DCD162 /* SDL_audiotypecvt.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_audiotypecvt.c; sourceTree = ""; }; + A7D8A8A123E2513F00DCD162 /* SDL_audiocvt.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_audiocvt.c; sourceTree = ""; }; + A7D8A8A223E2513F00DCD162 /* SDL_wave.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_wave.h; sourceTree = ""; }; + A7D8A8B023E2513F00DCD162 /* SDL_diskaudio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_diskaudio.h; sourceTree = ""; }; + A7D8A8B123E2513F00DCD162 /* SDL_diskaudio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_diskaudio.c; sourceTree = ""; }; + A7D8A8B823E2513F00DCD162 /* SDL_audio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_audio.c; sourceTree = ""; }; + A7D8A8BA23E2513F00DCD162 /* SDL_coreaudio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_coreaudio.h; sourceTree = ""; }; + A7D8A8BB23E2513F00DCD162 /* SDL_coreaudio.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_coreaudio.m; sourceTree = ""; }; + A7D8A8BF23E2513F00DCD162 /* SDL_error.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_error.c; sourceTree = ""; }; + A7D8A8D123E2514000DCD162 /* SDL_hints_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_hints_c.h; sourceTree = ""; }; + A7D8A8D323E2514000DCD162 /* SDL_iconv.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_iconv.c; sourceTree = ""; }; + A7D8A8D423E2514000DCD162 /* SDL_getenv.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_getenv.c; sourceTree = ""; }; + A7D8A8D523E2514000DCD162 /* SDL_string.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_string.c; sourceTree = ""; }; + A7D8A8D623E2514000DCD162 /* SDL_strtokr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_strtokr.c; sourceTree = ""; }; + A7D8A8D723E2514000DCD162 /* SDL_qsort.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_qsort.c; sourceTree = ""; }; + A7D8A8D823E2514000DCD162 /* SDL_stdlib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_stdlib.c; sourceTree = ""; }; + A7D8A8D923E2514000DCD162 /* SDL_malloc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_malloc.c; sourceTree = ""; }; + A7D8A8DB23E2514000DCD162 /* SDL_render.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_render.c; sourceTree = ""; }; + A7D8A8DC23E2514000DCD162 /* SDL_d3dmath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_d3dmath.h; sourceTree = ""; }; + A7D8A8DE23E2514000DCD162 /* SDL_render_metal.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_render_metal.m; sourceTree = ""; }; + A7D8A8DF23E2514000DCD162 /* SDL_shaders_metal_ios.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_shaders_metal_ios.h; sourceTree = ""; }; + A7D8A8E023E2514000DCD162 /* SDL_shaders_metal.metal */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.metal; path = SDL_shaders_metal.metal; sourceTree = ""; }; + A7D8A8E223E2514000DCD162 /* SDL_shaders_metal_osx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_shaders_metal_osx.h; sourceTree = ""; }; + A7D8A8E323E2514000DCD162 /* SDL_shaders_metal_tvos.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_shaders_metal_tvos.h; sourceTree = ""; }; + A7D8A8EC23E2514000DCD162 /* SDL_yuv_sw_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_yuv_sw_c.h; sourceTree = ""; }; + A7D8A8ED23E2514000DCD162 /* SDL_yuv_sw.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_yuv_sw.c; sourceTree = ""; }; + A7D8A8EE23E2514000DCD162 /* SDL_sysrender.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_sysrender.h; sourceTree = ""; }; + A7D8A8F023E2514000DCD162 /* SDL_blendpoint.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_blendpoint.c; sourceTree = ""; }; + A7D8A8F123E2514000DCD162 /* SDL_drawline.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_drawline.c; sourceTree = ""; }; + A7D8A8F223E2514000DCD162 /* SDL_blendline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_blendline.h; sourceTree = ""; }; + A7D8A8F323E2514000DCD162 /* SDL_drawpoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_drawpoint.h; sourceTree = ""; }; + A7D8A8F423E2514000DCD162 /* SDL_rotate.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_rotate.c; sourceTree = ""; }; + A7D8A8F523E2514000DCD162 /* SDL_render_sw_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_render_sw_c.h; sourceTree = ""; }; + A7D8A8F623E2514000DCD162 /* SDL_blendfillrect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_blendfillrect.h; sourceTree = ""; }; + A7D8A8F723E2514000DCD162 /* SDL_drawline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_drawline.h; sourceTree = ""; }; + A7D8A8F823E2514000DCD162 /* SDL_blendpoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_blendpoint.h; sourceTree = ""; }; + A7D8A8F923E2514000DCD162 /* SDL_render_sw.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_render_sw.c; sourceTree = ""; }; + A7D8A8FA23E2514000DCD162 /* SDL_draw.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_draw.h; sourceTree = ""; }; + A7D8A8FB23E2514000DCD162 /* SDL_blendline.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_blendline.c; sourceTree = ""; }; + A7D8A8FC23E2514000DCD162 /* SDL_drawpoint.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_drawpoint.c; sourceTree = ""; }; + A7D8A8FD23E2514000DCD162 /* SDL_blendfillrect.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_blendfillrect.c; sourceTree = ""; }; + A7D8A8FE23E2514000DCD162 /* SDL_rotate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_rotate.h; sourceTree = ""; }; + A7D8A8FF23E2514000DCD162 /* SDL_d3dmath.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_d3dmath.c; sourceTree = ""; }; + A7D8A90123E2514000DCD162 /* SDL_render_gles.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_render_gles.c; sourceTree = ""; }; + A7D8A90223E2514000DCD162 /* SDL_glesfuncs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_glesfuncs.h; sourceTree = ""; }; + A7D8A90423E2514000DCD162 /* SDL_render_gles2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_render_gles2.c; sourceTree = ""; }; + A7D8A90523E2514000DCD162 /* SDL_shaders_gles2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_shaders_gles2.h; sourceTree = ""; }; + A7D8A90623E2514000DCD162 /* SDL_gles2funcs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_gles2funcs.h; sourceTree = ""; }; + A7D8A90723E2514000DCD162 /* SDL_shaders_gles2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_shaders_gles2.c; sourceTree = ""; }; + A7D8A90D23E2514000DCD162 /* SDL_shaders_gl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_shaders_gl.h; sourceTree = ""; }; + A7D8A90E23E2514000DCD162 /* SDL_glfuncs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_glfuncs.h; sourceTree = ""; }; + A7D8A90F23E2514000DCD162 /* SDL_render_gl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_render_gl.c; sourceTree = ""; }; + A7D8A91023E2514000DCD162 /* SDL_shaders_gl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_shaders_gl.c; sourceTree = ""; }; + A7D8A91223E2514000DCD162 /* s_sin.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = s_sin.c; sourceTree = ""; }; + A7D8A91323E2514000DCD162 /* s_cos.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = s_cos.c; sourceTree = ""; }; + A7D8A91423E2514000DCD162 /* s_copysign.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = s_copysign.c; sourceTree = ""; }; + A7D8A91523E2514000DCD162 /* s_fabs.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = s_fabs.c; sourceTree = ""; }; + A7D8A91623E2514000DCD162 /* k_rem_pio2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = k_rem_pio2.c; sourceTree = ""; }; + A7D8A91723E2514000DCD162 /* k_sin.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = k_sin.c; sourceTree = ""; }; + A7D8A91823E2514000DCD162 /* s_atan.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = s_atan.c; sourceTree = ""; }; + A7D8A91923E2514000DCD162 /* k_cos.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = k_cos.c; sourceTree = ""; }; + A7D8A91A23E2514000DCD162 /* s_scalbn.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = s_scalbn.c; sourceTree = ""; }; + A7D8A91B23E2514000DCD162 /* math_private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = math_private.h; sourceTree = ""; }; + A7D8A91C23E2514000DCD162 /* e_pow.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = e_pow.c; sourceTree = ""; }; + A7D8A91D23E2514000DCD162 /* e_atan2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = e_atan2.c; sourceTree = ""; }; + A7D8A91E23E2514000DCD162 /* s_tan.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = s_tan.c; sourceTree = ""; }; + A7D8A91F23E2514000DCD162 /* e_rem_pio2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = e_rem_pio2.c; sourceTree = ""; }; + A7D8A92023E2514000DCD162 /* e_fmod.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = e_fmod.c; sourceTree = ""; }; + A7D8A92123E2514000DCD162 /* e_exp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = e_exp.c; sourceTree = ""; }; + A7D8A92223E2514000DCD162 /* e_log10.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = e_log10.c; sourceTree = ""; }; + A7D8A92323E2514000DCD162 /* e_log.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = e_log.c; sourceTree = ""; }; + A7D8A92423E2514000DCD162 /* e_sqrt.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = e_sqrt.c; sourceTree = ""; }; + A7D8A92523E2514000DCD162 /* s_floor.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = s_floor.c; sourceTree = ""; }; + A7D8A92623E2514000DCD162 /* math_libm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = math_libm.h; sourceTree = ""; }; + A7D8A92723E2514000DCD162 /* k_tan.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = k_tan.c; sourceTree = ""; }; + A7D8A92823E2514000DCD162 /* SDL_dataqueue.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_dataqueue.c; sourceTree = ""; }; + A7D8A92A23E2514000DCD162 /* SDL_mouse.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_mouse.c; sourceTree = ""; }; + A7D8A92B23E2514000DCD162 /* SDL_mouse_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_mouse_c.h; sourceTree = ""; }; + A7D8A92C23E2514000DCD162 /* scancodes_windows.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = scancodes_windows.h; sourceTree = ""; }; + A7D8A92D23E2514000DCD162 /* SDL_displayevents.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_displayevents.c; sourceTree = ""; }; + A7D8A92E23E2514000DCD162 /* SDL_dropevents_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_dropevents_c.h; sourceTree = ""; }; + A7D8A92F23E2514000DCD162 /* SDL_windowevents.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_windowevents.c; sourceTree = ""; }; + A7D8A93023E2514000DCD162 /* SDL_gesture_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_gesture_c.h; sourceTree = ""; }; + A7D8A93123E2514000DCD162 /* SDL_displayevents_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_displayevents_c.h; sourceTree = ""; }; + A7D8A93223E2514000DCD162 /* blank_cursor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = blank_cursor.h; sourceTree = ""; }; + A7D8A93323E2514000DCD162 /* default_cursor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = default_cursor.h; sourceTree = ""; }; + A7D8A93423E2514000DCD162 /* scancodes_darwin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = scancodes_darwin.h; sourceTree = ""; }; + A7D8A93523E2514000DCD162 /* SDL_events.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_events.c; sourceTree = ""; }; + A7D8A93623E2514000DCD162 /* scancodes_linux.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = scancodes_linux.h; sourceTree = ""; }; + A7D8A93723E2514000DCD162 /* SDL_touch_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_touch_c.h; sourceTree = ""; }; + A7D8A93823E2514000DCD162 /* SDL_keyboard.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_keyboard.c; sourceTree = ""; }; + A7D8A93923E2514000DCD162 /* SDL_clipboardevents_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_clipboardevents_c.h; sourceTree = ""; }; + A7D8A93A23E2514000DCD162 /* SDL_clipboardevents.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_clipboardevents.c; sourceTree = ""; }; + A7D8A93B23E2514000DCD162 /* SDL_dropevents.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_dropevents.c; sourceTree = ""; }; + A7D8A93C23E2514000DCD162 /* SDL_quit.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_quit.c; sourceTree = ""; }; + A7D8A93D23E2514000DCD162 /* SDL_keyboard_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_keyboard_c.h; sourceTree = ""; }; + A7D8A93E23E2514000DCD162 /* SDL_touch.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_touch.c; sourceTree = ""; }; + A7D8A94023E2514000DCD162 /* SDL_gesture.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_gesture.c; sourceTree = ""; }; + A7D8A94123E2514000DCD162 /* scancodes_xfree86.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = scancodes_xfree86.h; sourceTree = ""; }; + A7D8A94223E2514000DCD162 /* SDL_events_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_events_c.h; sourceTree = ""; }; + A7D8A94323E2514000DCD162 /* SDL_windowevents_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_windowevents_c.h; sourceTree = ""; }; + A7D8A94423E2514000DCD162 /* SDL_assert.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_assert.c; sourceTree = ""; }; + AA7557C71595D4D800BBD41B /* begin_code.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = begin_code.h; sourceTree = ""; }; + AA7557C81595D4D800BBD41B /* close_code.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = close_code.h; sourceTree = ""; }; + AA7557C91595D4D800BBD41B /* SDL_assert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_assert.h; sourceTree = ""; }; + AA7557CA1595D4D800BBD41B /* SDL_atomic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_atomic.h; sourceTree = ""; }; + AA7557CB1595D4D800BBD41B /* SDL_audio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_audio.h; sourceTree = ""; }; + AA7557CC1595D4D800BBD41B /* SDL_blendmode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_blendmode.h; sourceTree = ""; }; + AA7557CD1595D4D800BBD41B /* SDL_clipboard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_clipboard.h; sourceTree = ""; }; + AA7557CE1595D4D800BBD41B /* SDL_config_macosx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_config_macosx.h; sourceTree = ""; }; + AA7557CF1595D4D800BBD41B /* SDL_config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_config.h; sourceTree = ""; }; + AA7557D01595D4D800BBD41B /* SDL_copying.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_copying.h; sourceTree = ""; }; + AA7557D11595D4D800BBD41B /* SDL_cpuinfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_cpuinfo.h; sourceTree = ""; }; + AA7557D21595D4D800BBD41B /* SDL_endian.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_endian.h; sourceTree = ""; }; + AA7557D31595D4D800BBD41B /* SDL_error.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_error.h; sourceTree = ""; }; + AA7557D41595D4D800BBD41B /* SDL_events.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_events.h; sourceTree = ""; }; + AA7557D51595D4D800BBD41B /* SDL_gesture.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_gesture.h; sourceTree = ""; }; + AA7557D61595D4D800BBD41B /* SDL_haptic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_haptic.h; sourceTree = ""; }; + AA7557D71595D4D800BBD41B /* SDL_hints.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_hints.h; sourceTree = ""; }; + AA7557D91595D4D800BBD41B /* SDL_joystick.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_joystick.h; sourceTree = ""; }; + AA7557DA1595D4D800BBD41B /* SDL_keyboard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_keyboard.h; sourceTree = ""; }; + AA7557DB1595D4D800BBD41B /* SDL_keycode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_keycode.h; sourceTree = ""; }; + AA7557DC1595D4D800BBD41B /* SDL_loadso.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_loadso.h; sourceTree = ""; }; + AA7557DD1595D4D800BBD41B /* SDL_log.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_log.h; sourceTree = ""; }; + AA7557DE1595D4D800BBD41B /* SDL_main.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_main.h; sourceTree = ""; }; + AA7557DF1595D4D800BBD41B /* SDL_mouse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_mouse.h; sourceTree = ""; }; + AA7557E01595D4D800BBD41B /* SDL_mutex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_mutex.h; sourceTree = ""; }; + AA7557E11595D4D800BBD41B /* SDL_name.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_name.h; sourceTree = ""; }; + AA7557E21595D4D800BBD41B /* SDL_opengl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_opengl.h; sourceTree = ""; }; + AA7557E31595D4D800BBD41B /* SDL_opengles.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_opengles.h; sourceTree = ""; }; + AA7557E41595D4D800BBD41B /* SDL_opengles2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_opengles2.h; sourceTree = ""; }; + AA7557E51595D4D800BBD41B /* SDL_pixels.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_pixels.h; sourceTree = ""; }; + AA7557E61595D4D800BBD41B /* SDL_platform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_platform.h; sourceTree = ""; }; + AA7557E71595D4D800BBD41B /* SDL_power.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_power.h; sourceTree = ""; }; + AA7557E81595D4D800BBD41B /* SDL_quit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_quit.h; sourceTree = ""; }; + AA7557E91595D4D800BBD41B /* SDL_rect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_rect.h; sourceTree = ""; }; + AA7557EA1595D4D800BBD41B /* SDL_render.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_render.h; sourceTree = ""; }; + AA7557EB1595D4D800BBD41B /* SDL_revision.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_revision.h; sourceTree = ""; }; + AA7557EC1595D4D800BBD41B /* SDL_rwops.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_rwops.h; sourceTree = ""; }; + AA7557ED1595D4D800BBD41B /* SDL_scancode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_scancode.h; sourceTree = ""; }; + AA7557EE1595D4D800BBD41B /* SDL_shape.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_shape.h; sourceTree = ""; }; + AA7557EF1595D4D800BBD41B /* SDL_stdinc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_stdinc.h; sourceTree = ""; }; + AA7557F01595D4D800BBD41B /* SDL_surface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_surface.h; sourceTree = ""; }; + AA7557F11595D4D800BBD41B /* SDL_system.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_system.h; sourceTree = ""; }; + AA7557F21595D4D800BBD41B /* SDL_syswm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_syswm.h; sourceTree = ""; }; + AA7557F31595D4D800BBD41B /* SDL_thread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_thread.h; sourceTree = ""; }; + AA7557F41595D4D800BBD41B /* SDL_timer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_timer.h; sourceTree = ""; }; + AA7557F51595D4D800BBD41B /* SDL_touch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_touch.h; sourceTree = ""; }; + AA7557F61595D4D800BBD41B /* SDL_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_types.h; sourceTree = ""; }; + AA7557F71595D4D800BBD41B /* SDL_version.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_version.h; sourceTree = ""; }; + AA7557F81595D4D800BBD41B /* SDL_video.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_video.h; sourceTree = ""; }; + AA7557F91595D4D800BBD41B /* SDL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL.h; sourceTree = ""; }; + AA9FF9591637CBF9000DF050 /* SDL_messagebox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_messagebox.h; sourceTree = ""; }; + AAC070F4195606770073DCDF /* SDL_opengl_glext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_opengl_glext.h; sourceTree = ""; }; + AAC070F5195606770073DCDF /* SDL_opengles2_gl2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_opengles2_gl2.h; sourceTree = ""; }; + AAC070F6195606770073DCDF /* SDL_opengles2_gl2ext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_opengles2_gl2ext.h; sourceTree = ""; }; + AAC070F7195606770073DCDF /* SDL_opengles2_gl2platform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_opengles2_gl2platform.h; sourceTree = ""; }; + AAC070F8195606770073DCDF /* SDL_opengles2_khrplatform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_opengles2_khrplatform.h; sourceTree = ""; }; + AADA5B8616CCAB3000107CF7 /* SDL_bits.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_bits.h; sourceTree = ""; }; + BECDF66B0761BA81005FE872 /* Info-Framework.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Info-Framework.plist"; sourceTree = ""; }; + BECDF66C0761BA81005FE872 /* SDL2.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SDL2.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + BECDF6B30761BA81005FE872 /* libSDL2.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libSDL2.a; sourceTree = BUILT_PRODUCTS_DIR; }; + BECDF6BE0761BA81005FE872 /* SDL2 */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = SDL2; sourceTree = BUILT_PRODUCTS_DIR; }; + DB31407717554B71006C0E22 /* libSDL2.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = libSDL2.dylib; sourceTree = BUILT_PRODUCTS_DIR; }; + E2D187CF28A5673500D2B4F1 /* SDL2.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SDL2.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + E2D187D228A5673500D2B4F1 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + F316AB7C2B5A02C2002EF551 /* yuv_rgb_common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = yuv_rgb_common.h; sourceTree = ""; }; + F316AB7D2B5A02C2002EF551 /* yuv_rgb_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = yuv_rgb_internal.h; sourceTree = ""; }; + F316AB7E2B5A02C3002EF551 /* yuv_rgb_std.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = yuv_rgb_std.c; sourceTree = ""; }; + F316AB7F2B5A02C3002EF551 /* yuv_rgb_sse.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = yuv_rgb_sse.c; sourceTree = ""; }; + F316AB802B5A02C3002EF551 /* yuv_rgb_lsx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = yuv_rgb_lsx.h; sourceTree = ""; }; + F316AB812B5A02C3002EF551 /* yuv_rgb_lsx.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = yuv_rgb_lsx.c; sourceTree = ""; }; + F316AB822B5A02C3002EF551 /* yuv_rgb_sse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = yuv_rgb_sse.h; sourceTree = ""; }; + F316AB832B5A02C3002EF551 /* yuv_rgb_std.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = yuv_rgb_std.h; sourceTree = ""; }; + F316AB842B5A02C3002EF551 /* yuv_rgb_lsx_func.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = yuv_rgb_lsx_func.h; sourceTree = ""; }; + F31A92C628D4CB39003BFD6A /* SDL_offscreenopengles.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_offscreenopengles.h; sourceTree = ""; }; + F31A92C728D4CB39003BFD6A /* SDL_offscreenopengles.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_offscreenopengles.c; sourceTree = ""; }; + F32305FE28939F6400E66D30 /* SDL_hidapi_combined.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hidapi_combined.c; sourceTree = ""; }; + F362B91F2B33916600D30B94 /* controller_list.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = controller_list.h; sourceTree = ""; }; + F362B93B2B33920400D30B94 /* SDL_hidapi_steamdeck.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hidapi_steamdeck.c; sourceTree = ""; }; + F362B93C2B33920400D30B94 /* SDL_hidapi_nintendo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_hidapi_nintendo.h; sourceTree = ""; }; + F362B9502B33EB7300D30B94 /* SDL_steam_virtual_gamepad.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_steam_virtual_gamepad.h; sourceTree = ""; }; + F362B9512B33EB7300D30B94 /* SDL_steam_virtual_gamepad.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_steam_virtual_gamepad.c; sourceTree = ""; }; + F376F6182559B29300CFC0BC /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.1.sdk/System/Library/Frameworks/OpenGLES.framework; sourceTree = DEVELOPER_DIR; }; + F376F61A2559B2AF00CFC0BC /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/iOSSupport/System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + F376F6312559B31D00CFC0BC /* GameController.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GameController.framework; path = System/iOSSupport/System/Library/Frameworks/GameController.framework; sourceTree = SDKROOT; }; + F376F6CC2559B54500CFC0BC /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS14.0.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; + F376F6D82559B59600CFC0BC /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS14.0.sdk/System/Library/Frameworks/AudioToolbox.framework; sourceTree = DEVELOPER_DIR; }; + F376F6DA2559B5A000CFC0BC /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS14.0.sdk/System/Library/Frameworks/AVFoundation.framework; sourceTree = DEVELOPER_DIR; }; + F376F6DC2559B5A900CFC0BC /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS14.0.sdk/System/Library/Frameworks/OpenGLES.framework; sourceTree = DEVELOPER_DIR; }; + F376F6DE2559B5BA00CFC0BC /* GameController.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GameController.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS14.0.sdk/System/Library/Frameworks/GameController.framework; sourceTree = DEVELOPER_DIR; }; + F376F6E02559B5CA00CFC0BC /* CoreVideo.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreVideo.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS14.0.sdk/System/Library/Frameworks/CoreVideo.framework; sourceTree = DEVELOPER_DIR; }; + F376F6F72559B5EC00CFC0BC /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS14.0.sdk/System/Library/Frameworks/CoreGraphics.framework; sourceTree = DEVELOPER_DIR; }; + F376F71E2559B73A00CFC0BC /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS14.0.sdk/System/Library/Frameworks/QuartzCore.framework; sourceTree = DEVELOPER_DIR; }; + F376F7212559B74900CFC0BC /* Metal.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Metal.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS14.0.sdk/System/Library/Frameworks/Metal.framework; sourceTree = DEVELOPER_DIR; }; + F376F7252559B76800CFC0BC /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS14.0.sdk/System/Library/Frameworks/CoreFoundation.framework; sourceTree = DEVELOPER_DIR; }; + F376F7272559B77100CFC0BC /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS14.0.sdk/System/Library/Frameworks/CoreAudio.framework; sourceTree = DEVELOPER_DIR; }; + F37A8E1928405AA100C38E95 /* CMake */ = {isa = PBXFileReference; lastKnownFileType = folder; path = CMake; sourceTree = ""; }; + F37DC5F225350EBC0002E6F7 /* CoreHaptics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreHaptics.framework; path = System/Library/Frameworks/CoreHaptics.framework; sourceTree = SDKROOT; }; + F37DC5F425350ECC0002E6F7 /* CoreHaptics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreHaptics.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS14.0.sdk/System/Library/Frameworks/CoreHaptics.framework; sourceTree = DEVELOPER_DIR; }; + F3820712284F3609004DD584 /* controller_type.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = controller_type.c; sourceTree = ""; }; + F382071C284F362F004DD584 /* SDL_guid.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_guid.c; sourceTree = ""; }; + F3820726284F3643004DD584 /* SDL_guid.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_guid.h; sourceTree = ""; }; + F38233842738EB8600F7F527 /* SDL_hidapi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_hidapi.h; sourceTree = ""; }; + F382339B2738ED6600F7F527 /* CoreBluetooth.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreBluetooth.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS15.0.sdk/System/Library/Frameworks/CoreBluetooth.framework; sourceTree = DEVELOPER_DIR; }; + F386F6E42884663E001840AA /* SDL_log_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_log_c.h; sourceTree = ""; }; + F386F6E52884663E001840AA /* SDL_utils_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_utils_c.h; sourceTree = ""; }; + F386F6E62884663E001840AA /* SDL_utils.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_utils.c; sourceTree = ""; }; + F388C95428B5F6F600661ECF /* SDL_hidapi_ps3.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hidapi_ps3.c; sourceTree = ""; }; + F3950CD7212BC88D00F51292 /* SDL_sensor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_sensor.h; sourceTree = ""; }; + F395BF6425633B2400942BFF /* SDL_crc32.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_crc32.c; sourceTree = ""; }; + F395C1912569C68E00942BFF /* SDL_iokitjoystick_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_iokitjoystick_c.h; sourceTree = ""; }; + F395C1922569C68E00942BFF /* SDL_iokitjoystick.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_iokitjoystick.c; sourceTree = ""; }; + F395C1AF2569C6A000942BFF /* SDL_mfijoystick.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_mfijoystick.m; sourceTree = ""; }; + F395C1B02569C6A000942BFF /* SDL_mfijoystick_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_mfijoystick_c.h; sourceTree = ""; }; + F3973FA028A59BDD00B84553 /* SDL_vacopy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_vacopy.h; sourceTree = ""; }; + F3973FA128A59BDD00B84553 /* SDL_crc16.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_crc16.c; sourceTree = ""; }; + F3984CCF25BCC92800374F43 /* SDL_hidapi_stadia.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hidapi_stadia.c; sourceTree = ""; }; + F3A4909D2554D38500E92A8B /* SDL_hidapi_ps5.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hidapi_ps5.c; sourceTree = ""; }; + F3ADAB8D2576F0B300A6B1D9 /* SDL_sysurl.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_sysurl.m; sourceTree = ""; }; + F3D60A8228C16A1800788A3A /* SDL_hidapi_wii.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hidapi_wii.c; sourceTree = ""; }; + F3F07D59269640160074468B /* SDL_hidapi_luna.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hidapi_luna.c; sourceTree = ""; }; + F59C710300D5CB5801000001 /* ReadMe.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = ReadMe.txt; sourceTree = ""; }; + F59C710600D5CB5801000001 /* SDL.info */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SDL.info; sourceTree = ""; }; + F5A2EF3900C6A39A01000001 /* BUGS.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; name = BUGS.txt; path = ../../BUGS.txt; sourceTree = SOURCE_ROOT; }; + FA24348A21D41FFB00B8918A /* SDL_metal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_metal.h; sourceTree = ""; }; + FA73671C19A540EF004122E4 /* CoreVideo.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreVideo.framework; path = System/Library/Frameworks/CoreVideo.framework; sourceTree = SDKROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + A75FCEA423E25AB700529352 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + A75FCEAE23E25AB700529352 /* AudioToolbox.framework in Frameworks */, + A75FDABA23E28A7A00529352 /* AVFoundation.framework in Frameworks */, + A75FCEA723E25AB700529352 /* CoreAudio.framework in Frameworks */, + A75FDAC423E28BA700529352 /* CoreBluetooth.framework in Frameworks */, + A75FCEAB23E25AB700529352 /* CoreFoundation.framework in Frameworks */, + A75FDAC223E28B9600529352 /* CoreGraphics.framework in Frameworks */, + F3942659253579B400B03694 /* CoreHaptics.framework in Frameworks */, + A75FDAC023E28B8000529352 /* CoreMotion.framework in Frameworks */, + A75FCEA823E25AB700529352 /* CoreVideo.framework in Frameworks */, + A75FDABE23E28B6200529352 /* GameController.framework in Frameworks */, + A75FCEAA23E25AB700529352 /* IOKit.framework in Frameworks */, + A75FCEA523E25AB700529352 /* Metal.framework in Frameworks */, + F376F70E2559B6B800CFC0BC /* OpenGLES.framework in Frameworks */, + A75FCEA623E25AB700529352 /* QuartzCore.framework in Frameworks */, + F376F70F2559B6BF00CFC0BC /* UIKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A75FD05D23E25AC700529352 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F376F71B2559B71C00CFC0BC /* AudioToolbox.framework in Frameworks */, + F376F71C2559B72900CFC0BC /* AVFoundation.framework in Frameworks */, + F376F7282559B77100CFC0BC /* CoreAudio.framework in Frameworks */, + F382339D2738EE3F00F7F527 /* CoreBluetooth.framework in Frameworks */, + F376F7262559B76800CFC0BC /* CoreFoundation.framework in Frameworks */, + F376F7242559B76100CFC0BC /* CoreGraphics.framework in Frameworks */, + F394265A253579D200B03694 /* CoreHaptics.framework in Frameworks */, + F376F7232559B75800CFC0BC /* CoreVideo.framework in Frameworks */, + F376F7332559B79B00CFC0BC /* GameController.framework in Frameworks */, + F376F7222559B74900CFC0BC /* Metal.framework in Frameworks */, + F376F7202559B74200CFC0BC /* OpenGLES.framework in Frameworks */, + F376F71F2559B73A00CFC0BC /* QuartzCore.framework in Frameworks */, + F376F71D2559B73200CFC0BC /* UIKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A769B22E23E259AE00872273 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A7D88B4623E2437C00DCD162 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F376F6332559B33D00CFC0BC /* AudioToolbox.framework in Frameworks */, + F376F6402559B38A00CFC0BC /* AVFoundation.framework in Frameworks */, + A7D88B4C23E2437C00DCD162 /* CoreAudio.framework in Frameworks */, + F382339A2738ED5600F7F527 /* CoreBluetooth.framework in Frameworks */, + A7D88B4D23E2437C00DCD162 /* CoreFoundation.framework in Frameworks */, + F376F63F2559B37300CFC0BC /* CoreGraphics.framework in Frameworks */, + F37DC5F325350EBC0002E6F7 /* CoreHaptics.framework in Frameworks */, + F376F63E2559B35200CFC0BC /* CoreMotion.framework in Frameworks */, + A7D88B4E23E2437C00DCD162 /* CoreVideo.framework in Frameworks */, + F376F6322559B31D00CFC0BC /* GameController.framework in Frameworks */, + A7D88B5023E2437C00DCD162 /* IOKit.framework in Frameworks */, + A7D88B4723E2437C00DCD162 /* Metal.framework in Frameworks */, + F376F6192559B29300CFC0BC /* OpenGLES.framework in Frameworks */, + A7D88B4823E2437C00DCD162 /* QuartzCore.framework in Frameworks */, + F376F61B2559B2AF00CFC0BC /* UIKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A7D88D0423E24BED00DCD162 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F376F6DB2559B5A000CFC0BC /* AVFoundation.framework in Frameworks */, + F376F6D92559B59600CFC0BC /* AudioToolbox.framework in Frameworks */, + A7D88D0723E24BED00DCD162 /* CoreAudio.framework in Frameworks */, + F382339C2738ED6600F7F527 /* CoreBluetooth.framework in Frameworks */, + A7D88D0823E24BED00DCD162 /* CoreFoundation.framework in Frameworks */, + F376F6F82559B5EC00CFC0BC /* CoreGraphics.framework in Frameworks */, + F37DC5F525350ECC0002E6F7 /* CoreHaptics.framework in Frameworks */, + A7D88D0B23E24BED00DCD162 /* CoreVideo.framework in Frameworks */, + F376F6DF2559B5BA00CFC0BC /* GameController.framework in Frameworks */, + A7D88D0E23E24BED00DCD162 /* Metal.framework in Frameworks */, + F376F6DD2559B5A900CFC0BC /* OpenGLES.framework in Frameworks */, + A7D88D1023E24BED00DCD162 /* QuartzCore.framework in Frameworks */, + F376F6EC2559B5DA00CFC0BC /* UIKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A7D88E4523E24D3B00DCD162 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BECDF6680761BA81005FE872 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 557D0CFB254586D7003913E3 /* GameController.framework in Frameworks */, + 557D0CFA254586CA003913E3 /* CoreHaptics.framework in Frameworks */, + 564624381FF821DA0074AC87 /* Metal.framework in Frameworks */, + 564624361FF821C20074AC87 /* QuartzCore.framework in Frameworks */, + A7381E971D8B6A0300B177DD /* AudioToolbox.framework in Frameworks */, + 00D0D0D810675E46004B05EF /* Carbon.framework in Frameworks */, + 007317A40858DECD00B2BC32 /* Cocoa.framework in Frameworks */, + A7381E961D8B69D600B177DD /* CoreAudio.framework in Frameworks */, + 00D0D08410675DD9004B05EF /* CoreFoundation.framework in Frameworks */, + FA73671D19A540EF004122E4 /* CoreVideo.framework in Frameworks */, + 00CFA89D106B4BA100758660 /* ForceFeedback.framework in Frameworks */, + 007317A60858DECD00B2BC32 /* IOKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BECDF6B10761BA81005FE872 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB31406B17554B71006C0E22 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 552673EC2546055000085751 /* CoreHaptics.framework in Frameworks */, + 552673EB2546054600085751 /* GameController.framework in Frameworks */, + 5646243C1FF822170074AC87 /* Metal.framework in Frameworks */, + 5646243B1FF822100074AC87 /* QuartzCore.framework in Frameworks */, + 56C5237F1D8F4985001F2F30 /* CoreAudio.framework in Frameworks */, + FA73671F19A54144004122E4 /* CoreVideo.framework in Frameworks */, + DB31406E17554B71006C0E22 /* Cocoa.framework in Frameworks */, + DB31407017554B71006C0E22 /* IOKit.framework in Frameworks */, + 56C523811D8F498C001F2F30 /* CoreFoundation.framework in Frameworks */, + DB31407217554B71006C0E22 /* Carbon.framework in Frameworks */, + DB31408D17554D3C006C0E22 /* ForceFeedback.framework in Frameworks */, + 562C4AEA1D8F496300AF9EBE /* AudioToolbox.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E2D187CC28A5673500D2B4F1 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 0153844A006D81B07F000001 /* Public Headers */ = { + isa = PBXGroup; + children = ( + AA7557C71595D4D800BBD41B /* begin_code.h */, + AA7557C81595D4D800BBD41B /* close_code.h */, + AA7557C91595D4D800BBD41B /* SDL_assert.h */, + AA7557CA1595D4D800BBD41B /* SDL_atomic.h */, + AA7557CB1595D4D800BBD41B /* SDL_audio.h */, + AADA5B8616CCAB3000107CF7 /* SDL_bits.h */, + AA7557CC1595D4D800BBD41B /* SDL_blendmode.h */, + AA7557CD1595D4D800BBD41B /* SDL_clipboard.h */, + A75FDAF523E35EC400529352 /* SDL_config_iphoneos.h */, + AA7557CE1595D4D800BBD41B /* SDL_config_macosx.h */, + AA7557CF1595D4D800BBD41B /* SDL_config.h */, + AA7557D01595D4D800BBD41B /* SDL_copying.h */, + AA7557D11595D4D800BBD41B /* SDL_cpuinfo.h */, + 5C2EF7001FC9EF0F003F5197 /* SDL_egl.h */, + AA7557D21595D4D800BBD41B /* SDL_endian.h */, + AA7557D31595D4D800BBD41B /* SDL_error.h */, + AA7557D41595D4D800BBD41B /* SDL_events.h */, + 567E2F2017C44C35005F1892 /* SDL_filesystem.h */, + A77E6EB3167AB0A90010E40B /* SDL_gamecontroller.h */, + AA7557D51595D4D800BBD41B /* SDL_gesture.h */, + F3820726284F3643004DD584 /* SDL_guid.h */, + AA7557D61595D4D800BBD41B /* SDL_haptic.h */, + F38233842738EB8600F7F527 /* SDL_hidapi.h */, + AA7557D71595D4D800BBD41B /* SDL_hints.h */, + AA7557D91595D4D800BBD41B /* SDL_joystick.h */, + AA7557DA1595D4D800BBD41B /* SDL_keyboard.h */, + AA7557DB1595D4D800BBD41B /* SDL_keycode.h */, + AA7557DC1595D4D800BBD41B /* SDL_loadso.h */, + 566E26792462701100718109 /* SDL_locale.h */, + AA7557DD1595D4D800BBD41B /* SDL_log.h */, + AA7557DE1595D4D800BBD41B /* SDL_main.h */, + AA9FF9591637CBF9000DF050 /* SDL_messagebox.h */, + FA24348A21D41FFB00B8918A /* SDL_metal.h */, + 5616CA4F252BB2BE005D5928 /* SDL_misc.h */, + AA7557DF1595D4D800BBD41B /* SDL_mouse.h */, + AA7557E01595D4D800BBD41B /* SDL_mutex.h */, + AA7557E11595D4D800BBD41B /* SDL_name.h */, + AAC070F4195606770073DCDF /* SDL_opengl_glext.h */, + AA7557E21595D4D800BBD41B /* SDL_opengl.h */, + AA7557E31595D4D800BBD41B /* SDL_opengles.h */, + AAC070F5195606770073DCDF /* SDL_opengles2_gl2.h */, + AAC070F6195606770073DCDF /* SDL_opengles2_gl2ext.h */, + AAC070F7195606770073DCDF /* SDL_opengles2_gl2platform.h */, + AAC070F8195606770073DCDF /* SDL_opengles2_khrplatform.h */, + AA7557E41595D4D800BBD41B /* SDL_opengles2.h */, + AA7557E51595D4D800BBD41B /* SDL_pixels.h */, + AA7557E61595D4D800BBD41B /* SDL_platform.h */, + AA7557E71595D4D800BBD41B /* SDL_power.h */, + AA7557E81595D4D800BBD41B /* SDL_quit.h */, + AA7557E91595D4D800BBD41B /* SDL_rect.h */, + AA7557EA1595D4D800BBD41B /* SDL_render.h */, + AA7557EB1595D4D800BBD41B /* SDL_revision.h */, + AA7557EC1595D4D800BBD41B /* SDL_rwops.h */, + AA7557ED1595D4D800BBD41B /* SDL_scancode.h */, + F3950CD7212BC88D00F51292 /* SDL_sensor.h */, + AA7557EE1595D4D800BBD41B /* SDL_shape.h */, + AA7557EF1595D4D800BBD41B /* SDL_stdinc.h */, + AA7557F01595D4D800BBD41B /* SDL_surface.h */, + AA7557F11595D4D800BBD41B /* SDL_system.h */, + AA7557F21595D4D800BBD41B /* SDL_syswm.h */, + AA7557F31595D4D800BBD41B /* SDL_thread.h */, + AA7557F41595D4D800BBD41B /* SDL_timer.h */, + AA7557F51595D4D800BBD41B /* SDL_touch.h */, + AA7557F61595D4D800BBD41B /* SDL_types.h */, + AA7557F71595D4D800BBD41B /* SDL_version.h */, + AA7557F81595D4D800BBD41B /* SDL_video.h */, + 4D4820431F0F10B400EDC31C /* SDL_vulkan.h */, + AA7557F91595D4D800BBD41B /* SDL.h */, + ); + name = "Public Headers"; + path = ../../include; + sourceTree = ""; + }; + 034768DDFF38A45A11DB9C8B /* Products */ = { + isa = PBXGroup; + children = ( + BECDF66C0761BA81005FE872 /* SDL2.framework */, + BECDF6B30761BA81005FE872 /* libSDL2.a */, + BECDF6BE0761BA81005FE872 /* SDL2 */, + DB31407717554B71006C0E22 /* libSDL2.dylib */, + A7D88B5423E2437C00DCD162 /* SDL2.framework */, + A7D88D1523E24BED00DCD162 /* SDL2.framework */, + A7D88E5423E24D3B00DCD162 /* libSDL2.a */, + A769B23D23E259AE00872273 /* libSDL2.a */, + A75FCEB323E25AB700529352 /* libSDL2.dylib */, + A75FD06C23E25AC700529352 /* libSDL2.dylib */, + E2D187CF28A5673500D2B4F1 /* SDL2.framework */, + ); + name = Products; + sourceTree = ""; + }; + 0867D691FE84028FC02AAC07 /* SDLFramework */ = { + isa = PBXGroup; + children = ( + F5A2EF3900C6A39A01000001 /* BUGS.txt */, + F59C70FC00D5CB5801000001 /* pkg-support */, + 0153844A006D81B07F000001 /* Public Headers */, + 08FB77ACFE841707C02AAC07 /* Library Source */, + E2D187D028A5673500D2B4F1 /* SDL2 */, + 034768DDFF38A45A11DB9C8B /* Products */, + BECDF66B0761BA81005FE872 /* Info-Framework.plist */, + 564624341FF821B70074AC87 /* Frameworks */, + ); + comments = "To build Universal Binaries, we have experimented with a variety of different options.\nThe complication is that we must retain compatibility with at least 10.2. \nThe Universal Binary defaults only work for > 10.3.9\n\nSo far, we have found:\ngcc 4.0.0 with Xcode 2.1 always links against libgcc_s. gcc 4.0.1 from Xcode 2.2 fixes this problem.\n\nBut gcc 4.0 will not work with < 10.3.9 because we continue to get an undefined symbol to _fprintf$LDBL128.\nSo we must use gcc 3.3 on PPC to accomplish 10.2 support. (But 4.0 is required for i386.)\n\nSetting the deployment target to 10.4 will disable prebinding, so for PPC, we set it less than 10.4 to preserve prebinding for legacy support.\n\nSetting the PPC SDKROOT to /Developers/SDKs/MacOSX10.2.8.sdk will link to 63.0.0 libSystem.B.dylib. Leaving it at current or 10.4u links to 88.1.2. However, as long as we are using gcc 3.3, it doesn't seem to matter as testing has demonstrated both will run. We have decided not to invoke the 10.2.8 SDK because it is not a default installed component with Xcode which will probably cause most people problems. However, rather than deleting the SDKROOT_ppc entry entirely, we have mapped it to 10.4u in case we decide we need to change this setting.\n\nTo use Altivec or SSE, we needed architecture specific flags:\nOTHER_CFLAGS_ppc\nOTHER_CFLAGS_i386\nOTHER_CFLAGS=$(OTHER_CFLAGS_($CURRENT_ARCH))\n\nThe general OTHER_CFLAGS needed to be manually mapped to architecture specific options because Xcode didn't do this automatically for us.\n\n\n"; + indentWidth = 4; + name = SDLFramework; + sourceTree = ""; + tabWidth = 4; + usesTabs = 0; + }; + 08FB77ACFE841707C02AAC07 /* Library Source */ = { + isa = PBXGroup; + children = ( + A7D8A57223E2513D00DCD162 /* atomic */, + A7D8A86423E2513F00DCD162 /* audio */, + A7D8A77423E2513E00DCD162 /* cpuinfo */, + A7D8A5D723E2513D00DCD162 /* dynapi */, + A7D8A92923E2514000DCD162 /* events */, + A7D8A7DA23E2513E00DCD162 /* file */, + A7D8A7F623E2513F00DCD162 /* filesystem */, + A7D8A5C223E2513D00DCD162 /* haptic */, + A7D8A80923E2513F00DCD162 /* hidapi */, + A7D8A79D23E2513E00DCD162 /* joystick */, + A7D8A91123E2514000DCD162 /* libm */, + A7D8A85D23E2513F00DCD162 /* loadso */, + 566E26CB246274AE00718109 /* locale */, + A7D8A5AC23E2513D00DCD162 /* main */, + 5616CA47252BB278005D5928 /* misc */, + A7D8A7DF23E2513F00DCD162 /* power */, + A7D8A8DA23E2514000DCD162 /* render */, + A7D8A57623E2513D00DCD162 /* sensor */, + A7D8A8D223E2514000DCD162 /* stdlib */, + A7D8A77623E2513E00DCD162 /* thread */, + A7D8A5DE23E2513D00DCD162 /* timer */, + A7D8A5EB23E2513D00DCD162 /* video */, + A7D8A7F523E2513F00DCD162 /* SDL_assert_c.h */, + A7D8A94423E2514000DCD162 /* SDL_assert.c */, + A7D8A92823E2514000DCD162 /* SDL_dataqueue.c */, + A7D8A57023E2513D00DCD162 /* SDL_dataqueue.h */, + A7D8A57523E2513D00DCD162 /* SDL_error_c.h */, + A7D8A8BF23E2513F00DCD162 /* SDL_error.c */, + F382071C284F362F004DD584 /* SDL_guid.c */, + A7D8A8D123E2514000DCD162 /* SDL_hints_c.h */, + A7D8A5AB23E2513D00DCD162 /* SDL_hints.c */, + A7D8A58323E2513D00DCD162 /* SDL_internal.h */, + A1BB8B6127F6CF320057CFA8 /* SDL_list.c */, + A1BB8B6227F6CF330057CFA8 /* SDL_list.h */, + F386F6E42884663E001840AA /* SDL_log_c.h */, + A7D8A5DD23E2513D00DCD162 /* SDL_log.c */, + F386F6E52884663E001840AA /* SDL_utils_c.h */, + F386F6E62884663E001840AA /* SDL_utils.c */, + A7D8A57123E2513D00DCD162 /* SDL.c */, + ); + name = "Library Source"; + path = ../../src; + sourceTree = ""; + }; + 5616CA47252BB278005D5928 /* misc */ = { + isa = PBXGroup; + children = ( + F3ADAB8C2576F08500A6B1D9 /* ios */, + 5616CA48252BB285005D5928 /* macosx */, + 5616CA4A252BB2A6005D5928 /* SDL_sysurl.h */, + 5616CA49252BB2A5005D5928 /* SDL_url.c */, + ); + path = misc; + sourceTree = ""; + }; + 5616CA48252BB285005D5928 /* macosx */ = { + isa = PBXGroup; + children = ( + 5616CA4B252BB2A6005D5928 /* SDL_sysurl.m */, + ); + path = macosx; + sourceTree = ""; + }; + 564624341FF821B70074AC87 /* Frameworks */ = { + isa = PBXGroup; + children = ( + F382339B2738ED6600F7F527 /* CoreBluetooth.framework */, + F376F7272559B77100CFC0BC /* CoreAudio.framework */, + F376F7252559B76800CFC0BC /* CoreFoundation.framework */, + F376F7212559B74900CFC0BC /* Metal.framework */, + F376F71E2559B73A00CFC0BC /* QuartzCore.framework */, + F376F6F72559B5EC00CFC0BC /* CoreGraphics.framework */, + F376F6E02559B5CA00CFC0BC /* CoreVideo.framework */, + F376F6DE2559B5BA00CFC0BC /* GameController.framework */, + F376F6DC2559B5A900CFC0BC /* OpenGLES.framework */, + F376F6DA2559B5A000CFC0BC /* AVFoundation.framework */, + F376F6D82559B59600CFC0BC /* AudioToolbox.framework */, + F376F6CC2559B54500CFC0BC /* UIKit.framework */, + F376F6312559B31D00CFC0BC /* GameController.framework */, + F376F61A2559B2AF00CFC0BC /* UIKit.framework */, + F376F6182559B29300CFC0BC /* OpenGLES.framework */, + F37DC5F225350EBC0002E6F7 /* CoreHaptics.framework */, + F37DC5F425350ECC0002E6F7 /* CoreHaptics.framework */, + A75FDAC323E28BA700529352 /* CoreBluetooth.framework */, + A75FDAC123E28B9600529352 /* CoreGraphics.framework */, + A75FDABF23E28B8000529352 /* CoreMotion.framework */, + A75FDABD23E28B6200529352 /* GameController.framework */, + A75FDAB923E28A7A00529352 /* AVFoundation.framework */, + A7381E931D8B69C300B177DD /* AudioToolbox.framework */, + 007317C10858E15000B2BC32 /* Carbon.framework */, + 0073179D0858DECD00B2BC32 /* Cocoa.framework */, + A7381E951D8B69D600B177DD /* CoreAudio.framework */, + 00D0D08310675DD9004B05EF /* CoreFoundation.framework */, + FA73671C19A540EF004122E4 /* CoreVideo.framework */, + 00CFA89C106B4BA100758660 /* ForceFeedback.framework */, + 0073179F0858DECD00B2BC32 /* IOKit.framework */, + 564624371FF821CB0074AC87 /* Metal.framework */, + 564624351FF821B80074AC87 /* QuartzCore.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 566E26CB246274AE00718109 /* locale */ = { + isa = PBXGroup; + children = ( + 566E26EA246274E800718109 /* macosx */, + 566E26CD246274CB00718109 /* SDL_locale.c */, + 566E26CE246274CC00718109 /* SDL_syslocale.h */, + ); + name = locale; + sourceTree = ""; + }; + 566E26EA246274E800718109 /* macosx */ = { + isa = PBXGroup; + children = ( + 566E26CC246274CB00718109 /* SDL_syslocale.m */, + ); + name = macosx; + sourceTree = ""; + }; + 75E09157241EA924004729E1 /* virtual */ = { + isa = PBXGroup; + children = ( + 75E09158241EA924004729E1 /* SDL_virtualjoystick.c */, + 75E09159241EA924004729E1 /* SDL_virtualjoystick_c.h */, + ); + path = virtual; + sourceTree = ""; + }; + A75FDAA423E2790500529352 /* ios */ = { + isa = PBXGroup; + children = ( + A75FDAA523E2792500529352 /* hid.m */, + ); + path = ios; + sourceTree = ""; + }; + A75FDB9123E4C8B800529352 /* mac */ = { + isa = PBXGroup; + children = ( + A75FDB9223E4C8DB00529352 /* hid.c */, + ); + path = mac; + sourceTree = ""; + }; + A7D8A57223E2513D00DCD162 /* atomic */ = { + isa = PBXGroup; + children = ( + A7D8A57423E2513D00DCD162 /* SDL_atomic.c */, + A7D8A57323E2513D00DCD162 /* SDL_spinlock.c */, + ); + path = atomic; + sourceTree = ""; + }; + A7D8A57623E2513D00DCD162 /* sensor */ = { + isa = PBXGroup; + children = ( + A7D8A57A23E2513D00DCD162 /* coremotion */, + A7D8A57723E2513D00DCD162 /* dummy */, + A7D8A58123E2513D00DCD162 /* SDL_sensor_c.h */, + A7D8A58223E2513D00DCD162 /* SDL_sensor.c */, + A7D8A57D23E2513D00DCD162 /* SDL_syssensor.h */, + ); + path = sensor; + sourceTree = ""; + }; + A7D8A57723E2513D00DCD162 /* dummy */ = { + isa = PBXGroup; + children = ( + A7D8A57923E2513D00DCD162 /* SDL_dummysensor.c */, + A7D8A57823E2513D00DCD162 /* SDL_dummysensor.h */, + ); + path = dummy; + sourceTree = ""; + }; + A7D8A57A23E2513D00DCD162 /* coremotion */ = { + isa = PBXGroup; + children = ( + A7D8A57B23E2513D00DCD162 /* SDL_coremotionsensor.h */, + A7D8A57C23E2513D00DCD162 /* SDL_coremotionsensor.m */, + ); + path = coremotion; + sourceTree = ""; + }; + A7D8A5AC23E2513D00DCD162 /* main */ = { + isa = PBXGroup; + children = ( + A7D8A5AF23E2513D00DCD162 /* uikit */, + ); + path = main; + sourceTree = ""; + }; + A7D8A5AF23E2513D00DCD162 /* uikit */ = { + isa = PBXGroup; + children = ( + A7D8A5B023E2513D00DCD162 /* SDL_uikit_main.c */, + ); + path = uikit; + sourceTree = ""; + }; + A7D8A5C223E2513D00DCD162 /* haptic */ = { + isa = PBXGroup; + children = ( + A7D8A5CD23E2513D00DCD162 /* darwin */, + A7D8A5C323E2513D00DCD162 /* dummy */, + A7D8A5C623E2513D00DCD162 /* SDL_haptic_c.h */, + A7D8A5C523E2513D00DCD162 /* SDL_haptic.c */, + A7D8A5CC23E2513D00DCD162 /* SDL_syshaptic.h */, + ); + path = haptic; + sourceTree = ""; + }; + A7D8A5C323E2513D00DCD162 /* dummy */ = { + isa = PBXGroup; + children = ( + A7D8A5C423E2513D00DCD162 /* SDL_syshaptic.c */, + ); + path = dummy; + sourceTree = ""; + }; + A7D8A5CD23E2513D00DCD162 /* darwin */ = { + isa = PBXGroup; + children = ( + A7D8A5CF23E2513D00DCD162 /* SDL_syshaptic_c.h */, + A7D8A5CE23E2513D00DCD162 /* SDL_syshaptic.c */, + ); + path = darwin; + sourceTree = ""; + }; + A7D8A5D723E2513D00DCD162 /* dynapi */ = { + isa = PBXGroup; + children = ( + A7D8A5D923E2513D00DCD162 /* SDL_dynapi_overrides.h */, + A7D8A5DB23E2513D00DCD162 /* SDL_dynapi_procs.h */, + A7D8A5DA23E2513D00DCD162 /* SDL_dynapi.c */, + A7D8A5D823E2513D00DCD162 /* SDL_dynapi.h */, + ); + path = dynapi; + sourceTree = ""; + }; + A7D8A5DE23E2513D00DCD162 /* timer */ = { + isa = PBXGroup; + children = ( + A7D8A5E123E2513D00DCD162 /* dummy */, + A7D8A5E723E2513D00DCD162 /* unix */, + A7D8A5E023E2513D00DCD162 /* SDL_timer_c.h */, + A7D8A5DF23E2513D00DCD162 /* SDL_timer.c */, + ); + path = timer; + sourceTree = ""; + }; + A7D8A5E123E2513D00DCD162 /* dummy */ = { + isa = PBXGroup; + children = ( + A7D8A5E223E2513D00DCD162 /* SDL_systimer.c */, + ); + path = dummy; + sourceTree = ""; + }; + A7D8A5E723E2513D00DCD162 /* unix */ = { + isa = PBXGroup; + children = ( + A7D8A5E823E2513D00DCD162 /* SDL_systimer.c */, + ); + path = unix; + sourceTree = ""; + }; + A7D8A5EB23E2513D00DCD162 /* video */ = { + isa = PBXGroup; + children = ( + A7D8A67D23E2513E00DCD162 /* cocoa */, + A7D8A60523E2513D00DCD162 /* dummy */, + A7D8A72123E2513E00DCD162 /* khronos */, + A7D8A5EC23E2513D00DCD162 /* offscreen */, + A7D8A61823E2513D00DCD162 /* uikit */, + A7D8A76C23E2513E00DCD162 /* yuv2rgb */, + A7D8A66223E2513E00DCD162 /* SDL_blit_0.c */, + A7D8A6FA23E2513E00DCD162 /* SDL_blit_1.c */, + A7D8A66423E2513E00DCD162 /* SDL_blit_A.c */, + A7D8A63F23E2513D00DCD162 /* SDL_blit_auto.c */, + A7D8A73F23E2513E00DCD162 /* SDL_blit_auto.h */, + A7D8A61623E2513D00DCD162 /* SDL_blit_copy.c */, + A7D8A76623E2513E00DCD162 /* SDL_blit_copy.h */, + A7D8A64223E2513D00DCD162 /* SDL_blit_N.c */, + A7D8A60223E2513D00DCD162 /* SDL_blit_slow.c */, + A7D8A66323E2513E00DCD162 /* SDL_blit_slow.h */, + A7D8A64C23E2513D00DCD162 /* SDL_blit.c */, + A7D8A76B23E2513E00DCD162 /* SDL_blit.h */, + A7D8A77323E2513E00DCD162 /* SDL_bmp.c */, + A7D8A67B23E2513E00DCD162 /* SDL_clipboard.c */, + A7D8A60423E2513D00DCD162 /* SDL_egl_c.h */, + A7D8A6B623E2513E00DCD162 /* SDL_egl.c */, + A7D8A76823E2513E00DCD162 /* SDL_fillrect.c */, + A7D8A74023E2513E00DCD162 /* SDL_pixels_c.h */, + A7D8A64D23E2513D00DCD162 /* SDL_pixels.c */, + A7D8A60C23E2513D00DCD162 /* SDL_rect_c.h */, + A7D8A63423E2513D00DCD162 /* SDL_rect.c */, + A7D8A76723E2513E00DCD162 /* SDL_RLEaccel_c.h */, + A7D8A61523E2513D00DCD162 /* SDL_RLEaccel.c */, + A7D8A60D23E2513D00DCD162 /* SDL_shape_internals.h */, + A7D8A76923E2513E00DCD162 /* SDL_shape.c */, + A7D8A60323E2513D00DCD162 /* SDL_stretch.c */, + A7D8A61423E2513D00DCD162 /* SDL_surface.c */, + A7D8A61723E2513D00DCD162 /* SDL_sysvideo.h */, + A7D8A60E23E2513D00DCD162 /* SDL_video.c */, + A7D8A63E23E2513D00DCD162 /* SDL_vulkan_internal.h */, + A7D8A64023E2513D00DCD162 /* SDL_vulkan_utils.c */, + A7D8A76A23E2513E00DCD162 /* SDL_yuv_c.h */, + A7D8A67C23E2513E00DCD162 /* SDL_yuv.c */, + ); + path = video; + sourceTree = ""; + }; + A7D8A5EC23E2513D00DCD162 /* offscreen */ = { + isa = PBXGroup; + children = ( + A7D8A5EE23E2513D00DCD162 /* SDL_offscreenevents_c.h */, + A7D8A5F023E2513D00DCD162 /* SDL_offscreenevents.c */, + A7D8A5F423E2513D00DCD162 /* SDL_offscreenframebuffer_c.h */, + A7D8A5F223E2513D00DCD162 /* SDL_offscreenframebuffer.c */, + F31A92C728D4CB39003BFD6A /* SDL_offscreenopengles.c */, + F31A92C628D4CB39003BFD6A /* SDL_offscreenopengles.h */, + A7D8A5F623E2513D00DCD162 /* SDL_offscreenvideo.c */, + A7D8A5F123E2513D00DCD162 /* SDL_offscreenvideo.h */, + A7D8A5EF23E2513D00DCD162 /* SDL_offscreenwindow.c */, + A7D8A5F523E2513D00DCD162 /* SDL_offscreenwindow.h */, + ); + path = offscreen; + sourceTree = ""; + }; + A7D8A60523E2513D00DCD162 /* dummy */ = { + isa = PBXGroup; + children = ( + A7D8A60B23E2513D00DCD162 /* SDL_nullevents_c.h */, + A7D8A60923E2513D00DCD162 /* SDL_nullevents.c */, + A7D8A60723E2513D00DCD162 /* SDL_nullframebuffer_c.h */, + A7D8A60623E2513D00DCD162 /* SDL_nullframebuffer.c */, + A7D8A60823E2513D00DCD162 /* SDL_nullvideo.c */, + A7D8A60A23E2513D00DCD162 /* SDL_nullvideo.h */, + ); + path = dummy; + sourceTree = ""; + }; + A7D8A61823E2513D00DCD162 /* uikit */ = { + isa = PBXGroup; + children = ( + A7D8A62F23E2513D00DCD162 /* SDL_uikitappdelegate.h */, + A7D8A61E23E2513D00DCD162 /* SDL_uikitappdelegate.m */, + A7D8A62123E2513D00DCD162 /* SDL_uikitclipboard.h */, + A7D8A62A23E2513D00DCD162 /* SDL_uikitclipboard.m */, + A7D8A62D23E2513D00DCD162 /* SDL_uikitevents.h */, + A7D8A61C23E2513D00DCD162 /* SDL_uikitevents.m */, + A7D8A62623E2513D00DCD162 /* SDL_uikitmessagebox.h */, + A7D8A61B23E2513D00DCD162 /* SDL_uikitmessagebox.m */, + A7D8A61D23E2513D00DCD162 /* SDL_uikitmetalview.h */, + A7D8A62E23E2513D00DCD162 /* SDL_uikitmetalview.m */, + A7D8A61F23E2513D00DCD162 /* SDL_uikitmodes.h */, + A7D8A62C23E2513D00DCD162 /* SDL_uikitmodes.m */, + A7D8A63123E2513D00DCD162 /* SDL_uikitopengles.h */, + A7D8A62323E2513D00DCD162 /* SDL_uikitopengles.m */, + A7D8A62B23E2513D00DCD162 /* SDL_uikitopenglview.h */, + A7D8A62023E2513D00DCD162 /* SDL_uikitopenglview.m */, + A7D8A62223E2513D00DCD162 /* SDL_uikitvideo.h */, + A7D8A63223E2513D00DCD162 /* SDL_uikitvideo.m */, + A7D8A61923E2513D00DCD162 /* SDL_uikitview.h */, + A7D8A62923E2513D00DCD162 /* SDL_uikitview.m */, + A7D8A62423E2513D00DCD162 /* SDL_uikitviewcontroller.h */, + A7D8A63023E2513D00DCD162 /* SDL_uikitviewcontroller.m */, + A7D8A63323E2513D00DCD162 /* SDL_uikitvulkan.h */, + A7D8A62523E2513D00DCD162 /* SDL_uikitvulkan.m */, + A7D8A62723E2513D00DCD162 /* SDL_uikitwindow.h */, + A7D8A61A23E2513D00DCD162 /* SDL_uikitwindow.m */, + ); + path = uikit; + sourceTree = ""; + }; + A7D8A67D23E2513E00DCD162 /* cocoa */ = { + isa = PBXGroup; + children = ( + A7D8A68A23E2513E00DCD162 /* SDL_cocoaclipboard.h */, + A7D8A69523E2513E00DCD162 /* SDL_cocoaclipboard.m */, + A7D8A69623E2513E00DCD162 /* SDL_cocoaevents.h */, + A7D8A68923E2513E00DCD162 /* SDL_cocoaevents.m */, + A7D8A68023E2513E00DCD162 /* SDL_cocoakeyboard.h */, + A7D8A68C23E2513E00DCD162 /* SDL_cocoakeyboard.m */, + A7D8A69423E2513E00DCD162 /* SDL_cocoamessagebox.h */, + A7D8A68B23E2513E00DCD162 /* SDL_cocoamessagebox.m */, + A7D8A68623E2513E00DCD162 /* SDL_cocoametalview.h */, + A7D8A69923E2513E00DCD162 /* SDL_cocoametalview.m */, + A7D8A69123E2513E00DCD162 /* SDL_cocoamodes.h */, + A7D8A68123E2513E00DCD162 /* SDL_cocoamodes.m */, + A7D8A69823E2513E00DCD162 /* SDL_cocoamouse.h */, + A7D8A68723E2513E00DCD162 /* SDL_cocoamouse.m */, + A7D8A68D23E2513E00DCD162 /* SDL_cocoaopengl.h */, + A7D8A67F23E2513E00DCD162 /* SDL_cocoaopengl.m */, + A7D8A69023E2513E00DCD162 /* SDL_cocoaopengles.h */, + A7D8A68223E2513E00DCD162 /* SDL_cocoaopengles.m */, + A7D8A67E23E2513E00DCD162 /* SDL_cocoashape.h */, + A7D8A68E23E2513E00DCD162 /* SDL_cocoashape.m */, + A7D8A69323E2513E00DCD162 /* SDL_cocoavideo.h */, + A7D8A68523E2513E00DCD162 /* SDL_cocoavideo.m */, + A7D8A68F23E2513E00DCD162 /* SDL_cocoavulkan.h */, + A7D8A68323E2513E00DCD162 /* SDL_cocoavulkan.m */, + A7D8A69223E2513E00DCD162 /* SDL_cocoawindow.h */, + A7D8A68423E2513E00DCD162 /* SDL_cocoawindow.m */, + ); + path = cocoa; + sourceTree = ""; + }; + A7D8A72123E2513E00DCD162 /* khronos */ = { + isa = PBXGroup; + children = ( + A7D8A72823E2513E00DCD162 /* EGL */, + A7D8A72223E2513E00DCD162 /* GLES2 */, + A7D8A72623E2513E00DCD162 /* KHR */, + A7D8A72C23E2513E00DCD162 /* vulkan */, + ); + path = khronos; + sourceTree = ""; + }; + A7D8A72223E2513E00DCD162 /* GLES2 */ = { + isa = PBXGroup; + children = ( + A7D8A72423E2513E00DCD162 /* gl2.h */, + A7D8A72323E2513E00DCD162 /* gl2ext.h */, + A7D8A72523E2513E00DCD162 /* gl2platform.h */, + ); + path = GLES2; + sourceTree = ""; + }; + A7D8A72623E2513E00DCD162 /* KHR */ = { + isa = PBXGroup; + children = ( + A7D8A72723E2513E00DCD162 /* khrplatform.h */, + ); + path = KHR; + sourceTree = ""; + }; + A7D8A72823E2513E00DCD162 /* EGL */ = { + isa = PBXGroup; + children = ( + A7D8A72923E2513E00DCD162 /* egl.h */, + A7D8A72A23E2513E00DCD162 /* eglext.h */, + A7D8A72B23E2513E00DCD162 /* eglplatform.h */, + ); + path = EGL; + sourceTree = ""; + }; + A7D8A72C23E2513E00DCD162 /* vulkan */ = { + isa = PBXGroup; + children = ( + A7D8A72E23E2513E00DCD162 /* vk_icd.h */, + A7D8A72D23E2513E00DCD162 /* vk_layer.h */, + A7D8A73123E2513E00DCD162 /* vk_platform.h */, + A7D8A73D23E2513E00DCD162 /* vk_sdk_platform.h */, + A7D8A73E23E2513E00DCD162 /* vulkan_android.h */, + A7D8A73C23E2513E00DCD162 /* vulkan_core.h */, + A7D8A73323E2513E00DCD162 /* vulkan_fuchsia.h */, + A7D8A73B23E2513E00DCD162 /* vulkan_ios.h */, + A7D8A73623E2513E00DCD162 /* vulkan_macos.h */, + A7D8A72F23E2513E00DCD162 /* vulkan_vi.h */, + A7D8A73423E2513E00DCD162 /* vulkan_wayland.h */, + A7D8A73523E2513E00DCD162 /* vulkan_win32.h */, + A7D8A73823E2513E00DCD162 /* vulkan_xcb.h */, + A7D8A73723E2513E00DCD162 /* vulkan_xlib_xrandr.h */, + A7D8A73A23E2513E00DCD162 /* vulkan_xlib.h */, + A7D8A73023E2513E00DCD162 /* vulkan.h */, + ); + path = vulkan; + sourceTree = ""; + }; + A7D8A76C23E2513E00DCD162 /* yuv2rgb */ = { + isa = PBXGroup; + children = ( + F316AB7C2B5A02C2002EF551 /* yuv_rgb_common.h */, + F316AB7D2B5A02C2002EF551 /* yuv_rgb_internal.h */, + F316AB842B5A02C3002EF551 /* yuv_rgb_lsx_func.h */, + F316AB812B5A02C3002EF551 /* yuv_rgb_lsx.c */, + F316AB802B5A02C3002EF551 /* yuv_rgb_lsx.h */, + A7D8A77023E2513E00DCD162 /* yuv_rgb_sse_func.h */, + F316AB7F2B5A02C3002EF551 /* yuv_rgb_sse.c */, + F316AB822B5A02C3002EF551 /* yuv_rgb_sse.h */, + A7D8A77123E2513E00DCD162 /* yuv_rgb_std_func.h */, + F316AB7E2B5A02C3002EF551 /* yuv_rgb_std.c */, + F316AB832B5A02C3002EF551 /* yuv_rgb_std.h */, + A7D8A77223E2513E00DCD162 /* yuv_rgb.h */, + ); + path = yuv2rgb; + sourceTree = ""; + }; + A7D8A77423E2513E00DCD162 /* cpuinfo */ = { + isa = PBXGroup; + children = ( + A7D8A77523E2513E00DCD162 /* SDL_cpuinfo.c */, + ); + path = cpuinfo; + sourceTree = ""; + }; + A7D8A77623E2513E00DCD162 /* thread */ = { + isa = PBXGroup; + children = ( + A7D8A78123E2513E00DCD162 /* pthread */, + A7D8A77723E2513E00DCD162 /* SDL_systhread.h */, + A7D8A77823E2513E00DCD162 /* SDL_thread_c.h */, + A7D8A77923E2513E00DCD162 /* SDL_thread.c */, + ); + path = thread; + sourceTree = ""; + }; + A7D8A78123E2513E00DCD162 /* pthread */ = { + isa = PBXGroup; + children = ( + A7D8A78523E2513E00DCD162 /* SDL_syscond.c */, + A7D8A78823E2513E00DCD162 /* SDL_sysmutex_c.h */, + A7D8A78723E2513E00DCD162 /* SDL_sysmutex.c */, + A7D8A78323E2513E00DCD162 /* SDL_syssem.c */, + A7D8A78423E2513E00DCD162 /* SDL_systhread_c.h */, + A7D8A78623E2513E00DCD162 /* SDL_systhread.c */, + A7D8A78223E2513E00DCD162 /* SDL_systls.c */, + ); + path = pthread; + sourceTree = ""; + }; + A7D8A79D23E2513E00DCD162 /* joystick */ = { + isa = PBXGroup; + children = ( + A7D8A7CC23E2513E00DCD162 /* darwin */, + A7D8A79F23E2513E00DCD162 /* dummy */, + A7D8A7BE23E2513E00DCD162 /* hidapi */, + A7D8A7AA23E2513E00DCD162 /* iphoneos */, + A7D8A7A123E2513E00DCD162 /* steam */, + 75E09157241EA924004729E1 /* virtual */, + F362B91F2B33916600D30B94 /* controller_list.h */, + F3820712284F3609004DD584 /* controller_type.c */, + A7D8A7D923E2513E00DCD162 /* controller_type.h */, + A7D8A7AD23E2513E00DCD162 /* SDL_gamecontroller.c */, + A7D8A79E23E2513E00DCD162 /* SDL_gamecontrollerdb.h */, + A7D8A7D023E2513E00DCD162 /* SDL_joystick_c.h */, + A7D8A7A923E2513E00DCD162 /* SDL_joystick.c */, + F362B9512B33EB7300D30B94 /* SDL_steam_virtual_gamepad.c */, + F362B9502B33EB7300D30B94 /* SDL_steam_virtual_gamepad.h */, + A7D8A7CF23E2513E00DCD162 /* SDL_sysjoystick.h */, + A7D8A7CB23E2513E00DCD162 /* usb_ids.h */, + ); + path = joystick; + sourceTree = ""; + }; + A7D8A79F23E2513E00DCD162 /* dummy */ = { + isa = PBXGroup; + children = ( + A7D8A7A023E2513E00DCD162 /* SDL_sysjoystick.c */, + ); + path = dummy; + sourceTree = ""; + }; + A7D8A7A123E2513E00DCD162 /* steam */ = { + isa = PBXGroup; + children = ( + A7D8A7A723E2513E00DCD162 /* SDL_steamcontroller.c */, + A7D8A7A523E2513E00DCD162 /* SDL_steamcontroller.h */, + ); + path = steam; + sourceTree = ""; + }; + A7D8A7AA23E2513E00DCD162 /* iphoneos */ = { + isa = PBXGroup; + children = ( + F395C1B02569C6A000942BFF /* SDL_mfijoystick_c.h */, + F395C1AF2569C6A000942BFF /* SDL_mfijoystick.m */, + ); + path = iphoneos; + sourceTree = ""; + }; + A7D8A7BE23E2513E00DCD162 /* hidapi */ = { + isa = PBXGroup; + children = ( + F32305FE28939F6400E66D30 /* SDL_hidapi_combined.c */, + A7D8A7C923E2513E00DCD162 /* SDL_hidapi_gamecube.c */, + F3F07D59269640160074468B /* SDL_hidapi_luna.c */, + F362B93C2B33920400D30B94 /* SDL_hidapi_nintendo.h */, + F388C95428B5F6F600661ECF /* SDL_hidapi_ps3.c */, + A7D8A7C323E2513E00DCD162 /* SDL_hidapi_ps4.c */, + F3A4909D2554D38500E92A8B /* SDL_hidapi_ps5.c */, + A75FDBC423EA380300529352 /* SDL_hidapi_rumble.c */, + A75FDBC323EA380300529352 /* SDL_hidapi_rumble.h */, + 9846B07B287A9020000C35C8 /* SDL_hidapi_shield.c */, + F3984CCF25BCC92800374F43 /* SDL_hidapi_stadia.c */, + A75FDAAC23E2795C00529352 /* SDL_hidapi_steam.c */, + F362B93B2B33920400D30B94 /* SDL_hidapi_steamdeck.c */, + A7D8A7C623E2513E00DCD162 /* SDL_hidapi_switch.c */, + F3D60A8228C16A1800788A3A /* SDL_hidapi_wii.c */, + A7D8A7C223E2513E00DCD162 /* SDL_hidapi_xbox360.c */, + A7D8A7C823E2513E00DCD162 /* SDL_hidapi_xbox360w.c */, + A7D8A7C523E2513E00DCD162 /* SDL_hidapi_xboxone.c */, + A7D8A7C723E2513E00DCD162 /* SDL_hidapijoystick_c.h */, + A7D8A7C423E2513E00DCD162 /* SDL_hidapijoystick.c */, + ); + path = hidapi; + sourceTree = ""; + }; + A7D8A7CC23E2513E00DCD162 /* darwin */ = { + isa = PBXGroup; + children = ( + F395C1912569C68E00942BFF /* SDL_iokitjoystick_c.h */, + F395C1922569C68E00942BFF /* SDL_iokitjoystick.c */, + ); + path = darwin; + sourceTree = ""; + }; + A7D8A7DA23E2513E00DCD162 /* file */ = { + isa = PBXGroup; + children = ( + A7D8A7DC23E2513F00DCD162 /* cocoa */, + A7D8A7DB23E2513F00DCD162 /* SDL_rwops.c */, + ); + path = file; + sourceTree = ""; + }; + A7D8A7DC23E2513F00DCD162 /* cocoa */ = { + isa = PBXGroup; + children = ( + A7D8A7DD23E2513F00DCD162 /* SDL_rwopsbundlesupport.h */, + A7D8A7DE23E2513F00DCD162 /* SDL_rwopsbundlesupport.m */, + ); + path = cocoa; + sourceTree = ""; + }; + A7D8A7DF23E2513F00DCD162 /* power */ = { + isa = PBXGroup; + children = ( + A7D8A7EA23E2513F00DCD162 /* macosx */, + A7D8A7E023E2513F00DCD162 /* uikit */, + A7D8A7E723E2513F00DCD162 /* SDL_power.c */, + A7D8A7F423E2513F00DCD162 /* SDL_syspower.h */, + ); + path = power; + sourceTree = ""; + }; + A7D8A7E023E2513F00DCD162 /* uikit */ = { + isa = PBXGroup; + children = ( + A7D8A7E123E2513F00DCD162 /* SDL_syspower.m */, + A7D8A7E223E2513F00DCD162 /* SDL_syspower.h */, + ); + path = uikit; + sourceTree = ""; + }; + A7D8A7EA23E2513F00DCD162 /* macosx */ = { + isa = PBXGroup; + children = ( + A7D8A7EB23E2513F00DCD162 /* SDL_syspower.c */, + ); + path = macosx; + sourceTree = ""; + }; + A7D8A7F623E2513F00DCD162 /* filesystem */ = { + isa = PBXGroup; + children = ( + A7D8A7FD23E2513F00DCD162 /* cocoa */, + A7D8A7F723E2513F00DCD162 /* dummy */, + ); + path = filesystem; + sourceTree = ""; + }; + A7D8A7F723E2513F00DCD162 /* dummy */ = { + isa = PBXGroup; + children = ( + A7D8A7F823E2513F00DCD162 /* SDL_sysfilesystem.c */, + ); + path = dummy; + sourceTree = ""; + }; + A7D8A7FD23E2513F00DCD162 /* cocoa */ = { + isa = PBXGroup; + children = ( + A7D8A7FE23E2513F00DCD162 /* SDL_sysfilesystem.m */, + ); + path = cocoa; + sourceTree = ""; + }; + A7D8A80923E2513F00DCD162 /* hidapi */ = { + isa = PBXGroup; + children = ( + A75FDBA423E4CB6F00529352 /* AUTHORS.txt */, + A75FDBA323E4CB6F00529352 /* LICENSE-bsd.txt */, + A75FDBA623E4CB6F00529352 /* LICENSE-gpl3.txt */, + A75FDBA523E4CB6F00529352 /* LICENSE-orig.txt */, + A75FDBA723E4CB6F00529352 /* LICENSE.txt */, + A75FDB5723E39E6100529352 /* hidapi.h */, + A75FDB9123E4C8B800529352 /* mac */, + A75FDAA423E2790500529352 /* ios */, + A7D8A81423E2513F00DCD162 /* SDL_hidapi.c */, + ); + path = hidapi; + sourceTree = ""; + }; + A7D8A85D23E2513F00DCD162 /* loadso */ = { + isa = PBXGroup; + children = ( + A7D8A86223E2513F00DCD162 /* dlopen */, + A7D8A85E23E2513F00DCD162 /* dummy */, + ); + path = loadso; + sourceTree = ""; + }; + A7D8A85E23E2513F00DCD162 /* dummy */ = { + isa = PBXGroup; + children = ( + A7D8A85F23E2513F00DCD162 /* SDL_sysloadso.c */, + ); + path = dummy; + sourceTree = ""; + }; + A7D8A86223E2513F00DCD162 /* dlopen */ = { + isa = PBXGroup; + children = ( + A7D8A86323E2513F00DCD162 /* SDL_sysloadso.c */, + ); + path = dlopen; + sourceTree = ""; + }; + A7D8A86423E2513F00DCD162 /* audio */ = { + isa = PBXGroup; + children = ( + A7D8A8B923E2513F00DCD162 /* coreaudio */, + A7D8A8AF23E2513F00DCD162 /* disk */, + A7D8A87023E2513F00DCD162 /* dummy */, + A7D8A87323E2513F00DCD162 /* SDL_audio_c.h */, + A7D8A8B823E2513F00DCD162 /* SDL_audio.c */, + A7D8A8A123E2513F00DCD162 /* SDL_audiocvt.c */, + A7D8A87723E2513F00DCD162 /* SDL_audiodev_c.h */, + A7D8A88F23E2513F00DCD162 /* SDL_audiodev.c */, + A7D8A8A023E2513F00DCD162 /* SDL_audiotypecvt.c */, + A7D8A86523E2513F00DCD162 /* SDL_mixer.c */, + A7D8A89F23E2513F00DCD162 /* SDL_sysaudio.h */, + A7D8A86623E2513F00DCD162 /* SDL_wave.c */, + A7D8A8A223E2513F00DCD162 /* SDL_wave.h */, + ); + path = audio; + sourceTree = ""; + }; + A7D8A87023E2513F00DCD162 /* dummy */ = { + isa = PBXGroup; + children = ( + A7D8A87123E2513F00DCD162 /* SDL_dummyaudio.h */, + A7D8A87223E2513F00DCD162 /* SDL_dummyaudio.c */, + ); + path = dummy; + sourceTree = ""; + }; + A7D8A8AF23E2513F00DCD162 /* disk */ = { + isa = PBXGroup; + children = ( + A7D8A8B023E2513F00DCD162 /* SDL_diskaudio.h */, + A7D8A8B123E2513F00DCD162 /* SDL_diskaudio.c */, + ); + path = disk; + sourceTree = ""; + }; + A7D8A8B923E2513F00DCD162 /* coreaudio */ = { + isa = PBXGroup; + children = ( + A7D8A8BA23E2513F00DCD162 /* SDL_coreaudio.h */, + A7D8A8BB23E2513F00DCD162 /* SDL_coreaudio.m */, + ); + path = coreaudio; + sourceTree = ""; + }; + A7D8A8D223E2514000DCD162 /* stdlib */ = { + isa = PBXGroup; + children = ( + F3973FA128A59BDD00B84553 /* SDL_crc16.c */, + F395BF6425633B2400942BFF /* SDL_crc32.c */, + A7D8A8D423E2514000DCD162 /* SDL_getenv.c */, + A7D8A8D323E2514000DCD162 /* SDL_iconv.c */, + A7D8A8D923E2514000DCD162 /* SDL_malloc.c */, + A7D8A8D723E2514000DCD162 /* SDL_qsort.c */, + A7D8A8D823E2514000DCD162 /* SDL_stdlib.c */, + A7D8A8D523E2514000DCD162 /* SDL_string.c */, + A7D8A8D623E2514000DCD162 /* SDL_strtokr.c */, + F3973FA028A59BDD00B84553 /* SDL_vacopy.h */, + ); + path = stdlib; + sourceTree = ""; + }; + A7D8A8DA23E2514000DCD162 /* render */ = { + isa = PBXGroup; + children = ( + A7D8A8DD23E2514000DCD162 /* metal */, + A7D8A90C23E2514000DCD162 /* opengl */, + A7D8A90023E2514000DCD162 /* opengles */, + A7D8A90323E2514000DCD162 /* opengles2 */, + A7D8A8EF23E2514000DCD162 /* software */, + A7D8A8FF23E2514000DCD162 /* SDL_d3dmath.c */, + A7D8A8DC23E2514000DCD162 /* SDL_d3dmath.h */, + A7D8A8DB23E2514000DCD162 /* SDL_render.c */, + A7D8A8EE23E2514000DCD162 /* SDL_sysrender.h */, + A7D8A8EC23E2514000DCD162 /* SDL_yuv_sw_c.h */, + A7D8A8ED23E2514000DCD162 /* SDL_yuv_sw.c */, + ); + path = render; + sourceTree = ""; + }; + A7D8A8DD23E2514000DCD162 /* metal */ = { + isa = PBXGroup; + children = ( + A7D8A8DE23E2514000DCD162 /* SDL_render_metal.m */, + A7D8A8DF23E2514000DCD162 /* SDL_shaders_metal_ios.h */, + A7D8A8E223E2514000DCD162 /* SDL_shaders_metal_osx.h */, + A7D8A8E323E2514000DCD162 /* SDL_shaders_metal_tvos.h */, + A7D8A8E023E2514000DCD162 /* SDL_shaders_metal.metal */, + ); + path = metal; + sourceTree = ""; + }; + A7D8A8EF23E2514000DCD162 /* software */ = { + isa = PBXGroup; + children = ( + A1626A512617008C003F1973 /* SDL_triangle.h */, + A1626A3D2617006A003F1973 /* SDL_triangle.c */, + A7D8A8FD23E2514000DCD162 /* SDL_blendfillrect.c */, + A7D8A8F623E2514000DCD162 /* SDL_blendfillrect.h */, + A7D8A8FB23E2514000DCD162 /* SDL_blendline.c */, + A7D8A8F223E2514000DCD162 /* SDL_blendline.h */, + A7D8A8F023E2514000DCD162 /* SDL_blendpoint.c */, + A7D8A8F823E2514000DCD162 /* SDL_blendpoint.h */, + A7D8A8FA23E2514000DCD162 /* SDL_draw.h */, + A7D8A8F123E2514000DCD162 /* SDL_drawline.c */, + A7D8A8F723E2514000DCD162 /* SDL_drawline.h */, + A7D8A8FC23E2514000DCD162 /* SDL_drawpoint.c */, + A7D8A8F323E2514000DCD162 /* SDL_drawpoint.h */, + A7D8A8F523E2514000DCD162 /* SDL_render_sw_c.h */, + A7D8A8F923E2514000DCD162 /* SDL_render_sw.c */, + A7D8A8F423E2514000DCD162 /* SDL_rotate.c */, + A7D8A8FE23E2514000DCD162 /* SDL_rotate.h */, + ); + path = software; + sourceTree = ""; + }; + A7D8A90023E2514000DCD162 /* opengles */ = { + isa = PBXGroup; + children = ( + A7D8A90223E2514000DCD162 /* SDL_glesfuncs.h */, + A7D8A90123E2514000DCD162 /* SDL_render_gles.c */, + ); + path = opengles; + sourceTree = ""; + }; + A7D8A90323E2514000DCD162 /* opengles2 */ = { + isa = PBXGroup; + children = ( + A7D8A90623E2514000DCD162 /* SDL_gles2funcs.h */, + A7D8A90423E2514000DCD162 /* SDL_render_gles2.c */, + A7D8A90723E2514000DCD162 /* SDL_shaders_gles2.c */, + A7D8A90523E2514000DCD162 /* SDL_shaders_gles2.h */, + ); + path = opengles2; + sourceTree = ""; + }; + A7D8A90C23E2514000DCD162 /* opengl */ = { + isa = PBXGroup; + children = ( + A7D8A90E23E2514000DCD162 /* SDL_glfuncs.h */, + A7D8A90F23E2514000DCD162 /* SDL_render_gl.c */, + A7D8A91023E2514000DCD162 /* SDL_shaders_gl.c */, + A7D8A90D23E2514000DCD162 /* SDL_shaders_gl.h */, + ); + path = opengl; + sourceTree = ""; + }; + A7D8A91123E2514000DCD162 /* libm */ = { + isa = PBXGroup; + children = ( + A7D8A91D23E2514000DCD162 /* e_atan2.c */, + A7D8A92123E2514000DCD162 /* e_exp.c */, + A7D8A92023E2514000DCD162 /* e_fmod.c */, + A7D8A92323E2514000DCD162 /* e_log.c */, + A7D8A92223E2514000DCD162 /* e_log10.c */, + A7D8A91C23E2514000DCD162 /* e_pow.c */, + A7D8A91F23E2514000DCD162 /* e_rem_pio2.c */, + A7D8A92423E2514000DCD162 /* e_sqrt.c */, + A7D8A91923E2514000DCD162 /* k_cos.c */, + A7D8A91623E2514000DCD162 /* k_rem_pio2.c */, + A7D8A91723E2514000DCD162 /* k_sin.c */, + A7D8A92723E2514000DCD162 /* k_tan.c */, + A7D8A92623E2514000DCD162 /* math_libm.h */, + A7D8A91B23E2514000DCD162 /* math_private.h */, + A7D8A91823E2514000DCD162 /* s_atan.c */, + A7D8A91423E2514000DCD162 /* s_copysign.c */, + A7D8A91323E2514000DCD162 /* s_cos.c */, + A7D8A91523E2514000DCD162 /* s_fabs.c */, + A7D8A92523E2514000DCD162 /* s_floor.c */, + A7D8A91A23E2514000DCD162 /* s_scalbn.c */, + A7D8A91223E2514000DCD162 /* s_sin.c */, + A7D8A91E23E2514000DCD162 /* s_tan.c */, + ); + path = libm; + sourceTree = ""; + }; + A7D8A92923E2514000DCD162 /* events */ = { + isa = PBXGroup; + children = ( + A7D8A93223E2514000DCD162 /* blank_cursor.h */, + A7D8A93323E2514000DCD162 /* default_cursor.h */, + A7D8A93423E2514000DCD162 /* scancodes_darwin.h */, + A7D8A93623E2514000DCD162 /* scancodes_linux.h */, + A7D8A92C23E2514000DCD162 /* scancodes_windows.h */, + A7D8A94123E2514000DCD162 /* scancodes_xfree86.h */, + A7D8A93923E2514000DCD162 /* SDL_clipboardevents_c.h */, + A7D8A93A23E2514000DCD162 /* SDL_clipboardevents.c */, + A7D8A93123E2514000DCD162 /* SDL_displayevents_c.h */, + A7D8A92D23E2514000DCD162 /* SDL_displayevents.c */, + A7D8A92E23E2514000DCD162 /* SDL_dropevents_c.h */, + A7D8A93B23E2514000DCD162 /* SDL_dropevents.c */, + A7D8A94223E2514000DCD162 /* SDL_events_c.h */, + A7D8A93523E2514000DCD162 /* SDL_events.c */, + A7D8A93023E2514000DCD162 /* SDL_gesture_c.h */, + A7D8A94023E2514000DCD162 /* SDL_gesture.c */, + A7D8A93D23E2514000DCD162 /* SDL_keyboard_c.h */, + A7D8A93823E2514000DCD162 /* SDL_keyboard.c */, + A7D8A92B23E2514000DCD162 /* SDL_mouse_c.h */, + A7D8A92A23E2514000DCD162 /* SDL_mouse.c */, + A7D8A93C23E2514000DCD162 /* SDL_quit.c */, + A7D8A93723E2514000DCD162 /* SDL_touch_c.h */, + A7D8A93E23E2514000DCD162 /* SDL_touch.c */, + A7D8A94323E2514000DCD162 /* SDL_windowevents_c.h */, + A7D8A92F23E2514000DCD162 /* SDL_windowevents.c */, + ); + path = events; + sourceTree = ""; + }; + E2D187D028A5673500D2B4F1 /* SDL2 */ = { + isa = PBXGroup; + children = ( + E2D187D228A5673500D2B4F1 /* Info.plist */, + ); + path = SDL2; + sourceTree = ""; + }; + F3ADAB8C2576F08500A6B1D9 /* ios */ = { + isa = PBXGroup; + children = ( + F3ADAB8D2576F0B300A6B1D9 /* SDL_sysurl.m */, + ); + path = ios; + sourceTree = ""; + }; + F59C70FC00D5CB5801000001 /* pkg-support */ = { + isa = PBXGroup; + children = ( + F59C710100D5CB5801000001 /* resources */, + F59C710600D5CB5801000001 /* SDL.info */, + ); + path = "pkg-support"; + sourceTree = SOURCE_ROOT; + }; + F59C710100D5CB5801000001 /* resources */ = { + isa = PBXGroup; + children = ( + F37A8E1928405AA100C38E95 /* CMake */, + 00794D3F09D0C461003FC8A1 /* License.txt */, + F59C710300D5CB5801000001 /* ReadMe.txt */, + ); + path = resources; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + A75FCCFC23E25AB700529352 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + A75FCCFD23E25AB700529352 /* SDL_shaders_metal_tvos.h in Headers */, + A75FCCFE23E25AB700529352 /* SDL_filesystem.h in Headers */, + A75FCD0023E25AB700529352 /* begin_code.h in Headers */, + A75FCD0123E25AB700529352 /* SDL_uikitopengles.h in Headers */, + A75FCD0223E25AB700529352 /* close_code.h in Headers */, + A75FCD0323E25AB700529352 /* SDL.h in Headers */, + A75FCD0423E25AB700529352 /* SDL_uikitmetalview.h in Headers */, + F362B9592B33EB7300D30B94 /* SDL_steam_virtual_gamepad.h in Headers */, + A75FCD0523E25AB700529352 /* SDL_assert.h in Headers */, + A75FCD0623E25AB700529352 /* SDL_shape_internals.h in Headers */, + A75FCD0723E25AB700529352 /* SDL_glfuncs.h in Headers */, + A75FCD0823E25AB700529352 /* SDL_atomic.h in Headers */, + F386F6F72884663E001840AA /* SDL_utils_c.h in Headers */, + A75FCD0923E25AB700529352 /* SDL_rect_c.h in Headers */, + A75FCD0B23E25AB700529352 /* SDL_shaders_metal_osx.h in Headers */, + F382072E284F3643004DD584 /* SDL_guid.h in Headers */, + A75FCD0C23E25AB700529352 /* SDL_shaders_metal_ios.h in Headers */, + A75FCD0D23E25AB700529352 /* SDL_offscreenwindow.h in Headers */, + A75FCD0E23E25AB700529352 /* SDL_audio.h in Headers */, + A75FCD0F23E25AB700529352 /* SDL_coremotionsensor.h in Headers */, + A75FCD1023E25AB700529352 /* SDL_uikitview.h in Headers */, + A75FCD1123E25AB700529352 /* SDL_bits.h in Headers */, + A75FCD1223E25AB700529352 /* SDL_uikitappdelegate.h in Headers */, + A75FCD1423E25AB700529352 /* SDL_blendmode.h in Headers */, + A75FCD1523E25AB700529352 /* SDL_dropevents_c.h in Headers */, + A75FCD1623E25AB700529352 /* SDL_haptic_c.h in Headers */, + A75FCD1723E25AB700529352 /* SDL_clipboard.h in Headers */, + A75FCD1823E25AB700529352 /* SDL_dataqueue.h in Headers */, + A75FCD1923E25AB700529352 /* SDL_error_c.h in Headers */, + A75FCD1B23E25AB700529352 /* SDL_config.h in Headers */, + A75FCD1C23E25AB700529352 /* SDL_d3dmath.h in Headers */, + A75FCD1F23E25AB700529352 /* SDL_egl_c.h in Headers */, + A75FCD2023E25AB700529352 /* SDL_copying.h in Headers */, + A75FCD2123E25AB700529352 /* yuv_rgb.h in Headers */, + A75FCD2223E25AB700529352 /* SDL_dummyaudio.h in Headers */, + F382338C2738EB8600F7F527 /* SDL_hidapi.h in Headers */, + A75FCD2323E25AB700529352 /* SDL_uikitmessagebox.h in Headers */, + A75FCD2523E25AB700529352 /* SDL_thread_c.h in Headers */, + A75FCD2623E25AB700529352 /* SDL_cocoamessagebox.h in Headers */, + F31A92D028D4CB39003BFD6A /* SDL_offscreenopengles.h in Headers */, + A75FCD2823E25AB700529352 /* SDL_cpuinfo.h in Headers */, + A75FCD2923E25AB700529352 /* SDL_endian.h in Headers */, + A75FCD2A23E25AB700529352 /* SDL_error.h in Headers */, + A75FCD2B23E25AB700529352 /* SDL_events.h in Headers */, + A75FCD2C23E25AB700529352 /* SDL_blendfillrect.h in Headers */, + A75FCD2D23E25AB700529352 /* SDL_gamecontroller.h in Headers */, + A75FCD2E23E25AB700529352 /* SDL_hidapijoystick_c.h in Headers */, + A75FCD3023E25AB700529352 /* SDL_pixels_c.h in Headers */, + A75FCD3223E25AB700529352 /* SDL_joystick_c.h in Headers */, + F395C19A2569C68F00942BFF /* SDL_iokitjoystick_c.h in Headers */, + A75FCD3323E25AB700529352 /* vk_sdk_platform.h in Headers */, + A75FCD3423E25AB700529352 /* blank_cursor.h in Headers */, + A75FDB5F23E39E6100529352 /* hidapi.h in Headers */, + A75FCD3523E25AB700529352 /* SDL_gesture.h in Headers */, + A75FDBCC23EA380300529352 /* SDL_hidapi_rumble.h in Headers */, + A75FCD3623E25AB700529352 /* SDL_sysaudio.h in Headers */, + A75FCD3723E25AB700529352 /* SDL_haptic.h in Headers */, + A75FCD3923E25AB700529352 /* math_libm.h in Headers */, + A75FCD3A23E25AB700529352 /* SDL_uikitvideo.h in Headers */, + A75FCD3B23E25AB700529352 /* SDL_cocoamouse.h in Headers */, + A75FCD3C23E25AB700529352 /* SDL_hints.h in Headers */, + A75FCD3D23E25AB700529352 /* SDL_blit_slow.h in Headers */, + A75FCD3E23E25AB700529352 /* SDL_yuv_sw_c.h in Headers */, + A75FCD4023E25AB700529352 /* SDL_windowevents_c.h in Headers */, + A75FCD4123E25AB700529352 /* SDL_joystick.h in Headers */, + A75FCD4223E25AB700529352 /* SDL_cocoavideo.h in Headers */, + 5605721D2473688E00B46B66 /* SDL_syslocale.h in Headers */, + A75FCD4323E25AB700529352 /* SDL_keyboard.h in Headers */, + A75FCD4423E25AB700529352 /* SDL_uikitevents.h in Headers */, + A75FCD4523E25AB700529352 /* SDL_gesture_c.h in Headers */, + F362B9392B33916600D30B94 /* controller_list.h in Headers */, + A75FCD4623E25AB700529352 /* SDL_shaders_gl.h in Headers */, + A75FCD4723E25AB700529352 /* SDL_systhread_c.h in Headers */, + A1BB8B7327F6CF330057CFA8 /* SDL_list.h in Headers */, + A75FCD4823E25AB700529352 /* SDL_keycode.h in Headers */, + 5616CA63252BB35F005D5928 /* SDL_sysurl.h in Headers */, + A75FCD4A23E25AB700529352 /* SDL_cocoakeyboard.h in Headers */, + A75FCD4B23E25AB700529352 /* SDL_uikitvulkan.h in Headers */, + A75FCD4F23E25AB700529352 /* SDL_loadso.h in Headers */, + A75FCD5023E25AB700529352 /* gl2ext.h in Headers */, + A75FCD5123E25AB700529352 /* SDL_clipboardevents_c.h in Headers */, + A75FCD5323E25AB700529352 /* SDL_syshaptic_c.h in Headers */, + F316ABC22B5A02C3002EF551 /* yuv_rgb_sse.h in Headers */, + A75FCD5423E25AB700529352 /* SDL_hints_c.h in Headers */, + A75FCD5523E25AB700529352 /* SDL_audiodev_c.h in Headers */, + A75FCD5623E25AB700529352 /* SDL_audio_c.h in Headers */, + A75FCD5723E25AB700529352 /* SDL_uikitmodes.h in Headers */, + A75FCD5823E25AB700529352 /* egl.h in Headers */, + A75FCD5923E25AB700529352 /* khrplatform.h in Headers */, + A75FCD5A23E25AB700529352 /* SDL_log.h in Headers */, + A75FCD5B23E25AB700529352 /* SDL_uikitviewcontroller.h in Headers */, + A75FCD5C23E25AB700529352 /* SDL_dummysensor.h in Headers */, + A75FCD5D23E25AB700529352 /* vulkan_android.h in Headers */, + A75FCD5E23E25AB700529352 /* yuv_rgb_std_func.h in Headers */, + A75FCD5F23E25AB700529352 /* vulkan_core.h in Headers */, + A75FCD6023E25AB700529352 /* SDL_syssensor.h in Headers */, + F316ABD42B5A02C3002EF551 /* yuv_rgb_lsx_func.h in Headers */, + A75FCD6123E25AB700529352 /* SDL_dynapi.h in Headers */, + A75FCD6223E25AB700529352 /* SDL_assert_c.h in Headers */, + A75FCD6323E25AB700529352 /* SDL_diskaudio.h in Headers */, + A75FCD6423E25AB700529352 /* SDL_main.h in Headers */, + A75FCD6523E25AB700529352 /* SDL_drawpoint.h in Headers */, + A75FCD6623E25AB700529352 /* SDL_opengles2_khrplatform.h in Headers */, + A75FCD6723E25AB700529352 /* SDL_wave.h in Headers */, + A75FCD6823E25AB700529352 /* SDL_cocoaopengl.h in Headers */, + A75FCD6923E25AB700529352 /* yuv_rgb_sse_func.h in Headers */, + F316ABCB2B5A02C3002EF551 /* yuv_rgb_std.h in Headers */, + A75FCD6B23E25AB700529352 /* SDL_offscreenevents_c.h in Headers */, + F3973FA928A59BDD00B84553 /* SDL_vacopy.h in Headers */, + A1626A592617008D003F1973 /* SDL_triangle.h in Headers */, + A75FCD6D23E25AB700529352 /* SDL_coreaudio.h in Headers */, + A75FCD6E23E25AB700529352 /* SDL_draw.h in Headers */, + A75FCD6F23E25AB700529352 /* SDL_drawline.h in Headers */, + A75FCD7023E25AB700529352 /* SDL_messagebox.h in Headers */, + A75FCD7123E25AB700529352 /* SDL_mouse.h in Headers */, + A75FCD7223E25AB700529352 /* SDL_mutex.h in Headers */, + A75FCD7323E25AB700529352 /* SDL_yuv_c.h in Headers */, + A75FCD7423E25AB700529352 /* scancodes_xfree86.h in Headers */, + A75FCD7523E25AB700529352 /* SDL_syspower.h in Headers */, + A75FDAFA23E35ED600529352 /* SDL_config_iphoneos.h in Headers */, + A75FCD7723E25AB700529352 /* SDL_name.h in Headers */, + A75FCD7823E25AB700529352 /* eglext.h in Headers */, + A75FCD7923E25AB700529352 /* SDL_events_c.h in Headers */, + A75FCD7A23E25AB700529352 /* math_private.h in Headers */, + A75FCD7C23E25AB700529352 /* vulkan_wayland.h in Headers */, + A75FCD7D23E25AB700529352 /* SDL_opengl.h in Headers */, + A75FCD7E23E25AB700529352 /* SDL_cocoashape.h in Headers */, + A75FCD7F23E25AB700529352 /* SDL_opengles.h in Headers */, + A75FCD8023E25AB700529352 /* SDL_shaders_gles2.h in Headers */, + A75FCD8123E25AB700529352 /* SDL_opengles2.h in Headers */, + F316AB8C2B5A02C3002EF551 /* yuv_rgb_common.h in Headers */, + F316ABB02B5A02C3002EF551 /* yuv_rgb_lsx.h in Headers */, + A75FCD8223E25AB700529352 /* SDL_glesfuncs.h in Headers */, + A75FCD8323E25AB700529352 /* SDL_blendpoint.h in Headers */, + A75FCD8423E25AB700529352 /* SDL_offscreenvideo.h in Headers */, + A75FCD8523E25AB700529352 /* SDL_nullevents_c.h in Headers */, + A75FCD8623E25AB700529352 /* SDL_sysjoystick.h in Headers */, + A75FCD8723E25AB700529352 /* SDL_steamcontroller.h in Headers */, + A75FCD8823E25AB700529352 /* scancodes_linux.h in Headers */, + A75FCD8A23E25AB700529352 /* SDL_touch_c.h in Headers */, + A75FCD8B23E25AB700529352 /* SDL_gamecontrollerdb.h in Headers */, + A75FCD8C23E25AB700529352 /* SDL_cocoavulkan.h in Headers */, + A75FCD8D23E25AB700529352 /* gl2platform.h in Headers */, + A75FCD8E23E25AB700529352 /* SDL_pixels.h in Headers */, + A75FCD8F23E25AB700529352 /* vk_layer.h in Headers */, + A75FCD9123E25AB700529352 /* vk_platform.h in Headers */, + A75FCD9223E25AB700529352 /* SDL_cocoametalview.h in Headers */, + A75FCD9323E25AB700529352 /* SDL_cocoaopengles.h in Headers */, + A75FCD9423E25AB700529352 /* SDL_blit.h in Headers */, + A75FCD9523E25AB700529352 /* vulkan_xlib_xrandr.h in Headers */, + A75FCD9623E25AB700529352 /* SDL_sensor_c.h in Headers */, + A75FCD9723E25AB700529352 /* SDL_sysrender.h in Headers */, + A75FCD9823E25AB700529352 /* SDL_rotate.h in Headers */, + A75FCD9923E25AB700529352 /* SDL_platform.h in Headers */, + A75FCD9A23E25AB700529352 /* SDL_power.h in Headers */, + A75FCD9D23E25AB700529352 /* scancodes_darwin.h in Headers */, + A75FCD9E23E25AB700529352 /* controller_type.h in Headers */, + A75FCDA023E25AB700529352 /* SDL_uikitclipboard.h in Headers */, + A75FCDA123E25AB700529352 /* vulkan_xlib.h in Headers */, + A75FCDA223E25AB700529352 /* SDL_uikitwindow.h in Headers */, + A75FCDA323E25AB700529352 /* vulkan_vi.h in Headers */, + A75FCDA523E25AB700529352 /* SDL_quit.h in Headers */, + A75FCDA623E25AB700529352 /* default_cursor.h in Headers */, + A75FCDA723E25AB700529352 /* SDL_render_sw_c.h in Headers */, + A75FCDA823E25AB700529352 /* SDL_rect.h in Headers */, + A75FCDA923E25AB700529352 /* SDL_render.h in Headers */, + A75FCDAA23E25AB700529352 /* SDL_nullvideo.h in Headers */, + A75FCDAB23E25AB700529352 /* SDL_blit_copy.h in Headers */, + 75E0916A241EA924004729E1 /* SDL_virtualjoystick_c.h in Headers */, + A75FCDAC23E25AB700529352 /* SDL_RLEaccel_c.h in Headers */, + A75FCDAD23E25AB700529352 /* eglplatform.h in Headers */, + A75FCDAF23E25AB700529352 /* SDL_revision.h in Headers */, + A75FCDB023E25AB700529352 /* SDL_systhread.h in Headers */, + A75FCDB123E25AB700529352 /* SDL_rwops.h in Headers */, + A75FCDB223E25AB700529352 /* SDL_scancode.h in Headers */, + A75FCDB323E25AB700529352 /* SDL_cocoaclipboard.h in Headers */, + A75FCDB423E25AB700529352 /* SDL_cocoamodes.h in Headers */, + A75FCDB523E25AB700529352 /* SDL_uikitopenglview.h in Headers */, + A75FCDB623E25AB700529352 /* vulkan_win32.h in Headers */, + A75FCDB723E25AB700529352 /* SDL_offscreenframebuffer_c.h in Headers */, + A75FCDB823E25AB700529352 /* SDL_displayevents_c.h in Headers */, + A75FCDBA23E25AB700529352 /* SDL_timer_c.h in Headers */, + A75FCDBB23E25AB700529352 /* gl2.h in Headers */, + A75FCDBC23E25AB700529352 /* SDL_sysmutex_c.h in Headers */, + A75FCDBD23E25AB700529352 /* scancodes_windows.h in Headers */, + A75FCDBE23E25AB700529352 /* SDL_rwopsbundlesupport.h in Headers */, + A75FCDBF23E25AB700529352 /* SDL_syspower.h in Headers */, + A75FCDC023E25AB700529352 /* vulkan_macos.h in Headers */, + A75FCDC123E25AB700529352 /* vulkan_xcb.h in Headers */, + A75FCDC223E25AB700529352 /* vulkan_ios.h in Headers */, + A75FCDC323E25AB700529352 /* SDL_internal.h in Headers */, + A75FCDC423E25AB700529352 /* SDL_shape.h in Headers */, + A75FCDC523E25AB700529352 /* SDL_stdinc.h in Headers */, + A75FCDC623E25AB700529352 /* SDL_surface.h in Headers */, + A75FCDC723E25AB700529352 /* vulkan.h in Headers */, + A75FCDC823E25AB700529352 /* SDL_keyboard_c.h in Headers */, + A75FCDC923E25AB700529352 /* SDL_system.h in Headers */, + A75FCDCA23E25AB700529352 /* SDL_syswm.h in Headers */, + A75FCDCB23E25AB700529352 /* SDL_opengl_glext.h in Headers */, + A75FCDCC23E25AB700529352 /* SDL_mouse_c.h in Headers */, + F395C1C12569C6A000942BFF /* SDL_mfijoystick_c.h in Headers */, + A75FCDCD23E25AB700529352 /* SDL_blit_auto.h in Headers */, + A75FCDCE23E25AB700529352 /* SDL_blendline.h in Headers */, + A75FCDCF23E25AB700529352 /* SDL_syshaptic.h in Headers */, + A75FCDD023E25AB700529352 /* SDL_vulkan_internal.h in Headers */, + A75FCDD123E25AB700529352 /* SDL_thread.h in Headers */, + A75FCDD223E25AB700529352 /* SDL_cocoaevents.h in Headers */, + A75FCDD323E25AB700529352 /* vk_icd.h in Headers */, + A75FCDD423E25AB700529352 /* SDL_nullframebuffer_c.h in Headers */, + A75FCDD523E25AB700529352 /* SDL_timer.h in Headers */, + A75FCDD623E25AB700529352 /* SDL_dynapi_procs.h in Headers */, + A75FCDD723E25AB700529352 /* vulkan_fuchsia.h in Headers */, + A75FCDD823E25AB700529352 /* SDL_touch.h in Headers */, + A75FCDD923E25AB700529352 /* SDL_types.h in Headers */, + A75FCDDA23E25AB700529352 /* usb_ids.h in Headers */, + A75FCDDB23E25AB700529352 /* SDL_gles2funcs.h in Headers */, + A75FCDDD23E25AB700529352 /* SDL_version.h in Headers */, + A75FCDDE23E25AB700529352 /* SDL_video.h in Headers */, + A75FCDDF23E25AB700529352 /* SDL_opengles2_gl2.h in Headers */, + A75FCDE023E25AB700529352 /* SDL_sensor.h in Headers */, + F362B94D2B33920500D30B94 /* SDL_hidapi_nintendo.h in Headers */, + A75FCDE123E25AB700529352 /* SDL_sysvideo.h in Headers */, + F386F6EE2884663E001840AA /* SDL_log_c.h in Headers */, + A75FCDE223E25AB700529352 /* SDL_opengles2_gl2platform.h in Headers */, + A75FCDE323E25AB700529352 /* SDL_opengles2_gl2ext.h in Headers */, + A75FCDE523E25AB700529352 /* SDL_dynapi_overrides.h in Headers */, + F316AB952B5A02C3002EF551 /* yuv_rgb_internal.h in Headers */, + A75FCDE623E25AB700529352 /* SDL_cocoawindow.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A75FCEB523E25AC700529352 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + A75FCEB623E25AC700529352 /* SDL_shaders_metal_tvos.h in Headers */, + A75FCEB723E25AC700529352 /* SDL_filesystem.h in Headers */, + A75FCEB923E25AC700529352 /* begin_code.h in Headers */, + A75FCEBA23E25AC700529352 /* SDL_uikitopengles.h in Headers */, + A75FCEBB23E25AC700529352 /* close_code.h in Headers */, + A75FCEBC23E25AC700529352 /* SDL.h in Headers */, + A75FCEBD23E25AC700529352 /* SDL_uikitmetalview.h in Headers */, + F362B95A2B33EB7300D30B94 /* SDL_steam_virtual_gamepad.h in Headers */, + A75FCEBE23E25AC700529352 /* SDL_assert.h in Headers */, + A75FCEBF23E25AC700529352 /* SDL_shape_internals.h in Headers */, + A75FCEC023E25AC700529352 /* SDL_glfuncs.h in Headers */, + A75FCEC123E25AC700529352 /* SDL_atomic.h in Headers */, + F386F6F82884663E001840AA /* SDL_utils_c.h in Headers */, + A75FCEC223E25AC700529352 /* SDL_rect_c.h in Headers */, + A75FCEC423E25AC700529352 /* SDL_shaders_metal_osx.h in Headers */, + A75FCEC523E25AC700529352 /* SDL_shaders_metal_ios.h in Headers */, + A75FCEC623E25AC700529352 /* SDL_offscreenwindow.h in Headers */, + A75FCEC723E25AC700529352 /* SDL_audio.h in Headers */, + F382072F284F3643004DD584 /* SDL_guid.h in Headers */, + A75FCEC823E25AC700529352 /* SDL_coremotionsensor.h in Headers */, + A75FCEC923E25AC700529352 /* SDL_uikitview.h in Headers */, + A75FCECA23E25AC700529352 /* SDL_bits.h in Headers */, + A75FCECB23E25AC700529352 /* SDL_uikitappdelegate.h in Headers */, + A75FCECD23E25AC700529352 /* SDL_blendmode.h in Headers */, + A75FCECE23E25AC700529352 /* SDL_dropevents_c.h in Headers */, + A75FCECF23E25AC700529352 /* SDL_haptic_c.h in Headers */, + A75FCED023E25AC700529352 /* SDL_clipboard.h in Headers */, + A75FCED123E25AC700529352 /* SDL_dataqueue.h in Headers */, + A75FCED223E25AC700529352 /* SDL_error_c.h in Headers */, + A75FCED423E25AC700529352 /* SDL_config.h in Headers */, + A75FCED523E25AC700529352 /* SDL_d3dmath.h in Headers */, + A75FCED823E25AC700529352 /* SDL_egl_c.h in Headers */, + A75FCED923E25AC700529352 /* SDL_copying.h in Headers */, + A75FCEDA23E25AC700529352 /* yuv_rgb.h in Headers */, + A75FCEDB23E25AC700529352 /* SDL_dummyaudio.h in Headers */, + F382338D2738EB8600F7F527 /* SDL_hidapi.h in Headers */, + A75FCEDC23E25AC700529352 /* SDL_uikitmessagebox.h in Headers */, + A75FCEDE23E25AC700529352 /* SDL_thread_c.h in Headers */, + A75FCEDF23E25AC700529352 /* SDL_cocoamessagebox.h in Headers */, + F31A92D128D4CB39003BFD6A /* SDL_offscreenopengles.h in Headers */, + A75FCEE123E25AC700529352 /* SDL_cpuinfo.h in Headers */, + A75FCEE223E25AC700529352 /* SDL_endian.h in Headers */, + A75FCEE323E25AC700529352 /* SDL_error.h in Headers */, + A75FCEE423E25AC700529352 /* SDL_events.h in Headers */, + A75FCEE523E25AC700529352 /* SDL_blendfillrect.h in Headers */, + A75FCEE623E25AC700529352 /* SDL_gamecontroller.h in Headers */, + A75FCEE723E25AC700529352 /* SDL_hidapijoystick_c.h in Headers */, + A75FCEE923E25AC700529352 /* SDL_pixels_c.h in Headers */, + A75FCEEB23E25AC700529352 /* SDL_joystick_c.h in Headers */, + F395C19B2569C68F00942BFF /* SDL_iokitjoystick_c.h in Headers */, + A75FCEEC23E25AC700529352 /* vk_sdk_platform.h in Headers */, + A75FCEED23E25AC700529352 /* blank_cursor.h in Headers */, + A75FDB6023E39E6100529352 /* hidapi.h in Headers */, + A75FCEEE23E25AC700529352 /* SDL_gesture.h in Headers */, + A75FDBCD23EA380300529352 /* SDL_hidapi_rumble.h in Headers */, + A75FCEEF23E25AC700529352 /* SDL_sysaudio.h in Headers */, + A75FCEF023E25AC700529352 /* SDL_haptic.h in Headers */, + A75FCEF223E25AC700529352 /* math_libm.h in Headers */, + A75FCEF323E25AC700529352 /* SDL_uikitvideo.h in Headers */, + A75FCEF423E25AC700529352 /* SDL_cocoamouse.h in Headers */, + A75FCEF523E25AC700529352 /* SDL_hints.h in Headers */, + A75FCEF623E25AC700529352 /* SDL_blit_slow.h in Headers */, + A75FCEF723E25AC700529352 /* SDL_yuv_sw_c.h in Headers */, + A75FCEF923E25AC700529352 /* SDL_windowevents_c.h in Headers */, + A75FCEFA23E25AC700529352 /* SDL_joystick.h in Headers */, + A75FCEFB23E25AC700529352 /* SDL_cocoavideo.h in Headers */, + 5605721E2473688F00B46B66 /* SDL_syslocale.h in Headers */, + A75FCEFC23E25AC700529352 /* SDL_keyboard.h in Headers */, + A75FCEFD23E25AC700529352 /* SDL_uikitevents.h in Headers */, + A75FCEFE23E25AC700529352 /* SDL_gesture_c.h in Headers */, + F362B93A2B33916600D30B94 /* controller_list.h in Headers */, + A75FCEFF23E25AC700529352 /* SDL_shaders_gl.h in Headers */, + A75FCF0023E25AC700529352 /* SDL_systhread_c.h in Headers */, + A1BB8B7427F6CF330057CFA8 /* SDL_list.h in Headers */, + A75FCF0123E25AC700529352 /* SDL_keycode.h in Headers */, + 5616CA66252BB361005D5928 /* SDL_sysurl.h in Headers */, + A75FCF0323E25AC700529352 /* SDL_cocoakeyboard.h in Headers */, + A75FCF0423E25AC700529352 /* SDL_uikitvulkan.h in Headers */, + A75FCF0823E25AC700529352 /* SDL_loadso.h in Headers */, + A75FCF0923E25AC700529352 /* gl2ext.h in Headers */, + A75FCF0A23E25AC700529352 /* SDL_clipboardevents_c.h in Headers */, + A75FCF0C23E25AC700529352 /* SDL_syshaptic_c.h in Headers */, + F316ABC32B5A02C3002EF551 /* yuv_rgb_sse.h in Headers */, + A75FCF0D23E25AC700529352 /* SDL_hints_c.h in Headers */, + A75FCF0E23E25AC700529352 /* SDL_audiodev_c.h in Headers */, + A75FCF0F23E25AC700529352 /* SDL_audio_c.h in Headers */, + A75FCF1023E25AC700529352 /* SDL_uikitmodes.h in Headers */, + A75FCF1123E25AC700529352 /* egl.h in Headers */, + A75FCF1223E25AC700529352 /* khrplatform.h in Headers */, + A75FCF1323E25AC700529352 /* SDL_log.h in Headers */, + A75FCF1423E25AC700529352 /* SDL_uikitviewcontroller.h in Headers */, + A75FCF1523E25AC700529352 /* SDL_dummysensor.h in Headers */, + A75FCF1623E25AC700529352 /* vulkan_android.h in Headers */, + A75FCF1723E25AC700529352 /* yuv_rgb_std_func.h in Headers */, + A75FCF1823E25AC700529352 /* vulkan_core.h in Headers */, + A75FCF1923E25AC700529352 /* SDL_syssensor.h in Headers */, + F316ABD52B5A02C3002EF551 /* yuv_rgb_lsx_func.h in Headers */, + A75FCF1A23E25AC700529352 /* SDL_dynapi.h in Headers */, + A75FCF1B23E25AC700529352 /* SDL_assert_c.h in Headers */, + A75FCF1C23E25AC700529352 /* SDL_diskaudio.h in Headers */, + A75FCF1D23E25AC700529352 /* SDL_main.h in Headers */, + A75FCF1E23E25AC700529352 /* SDL_drawpoint.h in Headers */, + A75FCF1F23E25AC700529352 /* SDL_opengles2_khrplatform.h in Headers */, + A75FCF2023E25AC700529352 /* SDL_wave.h in Headers */, + A75FCF2123E25AC700529352 /* SDL_cocoaopengl.h in Headers */, + A75FCF2223E25AC700529352 /* yuv_rgb_sse_func.h in Headers */, + F316ABCC2B5A02C3002EF551 /* yuv_rgb_std.h in Headers */, + A75FCF2423E25AC700529352 /* SDL_offscreenevents_c.h in Headers */, + F3973FAA28A59BDD00B84553 /* SDL_vacopy.h in Headers */, + A1626A5A2617008D003F1973 /* SDL_triangle.h in Headers */, + A75FCF2623E25AC700529352 /* SDL_coreaudio.h in Headers */, + A75FCF2723E25AC700529352 /* SDL_draw.h in Headers */, + A75FCF2823E25AC700529352 /* SDL_drawline.h in Headers */, + A75FCF2923E25AC700529352 /* SDL_messagebox.h in Headers */, + A75FCF2A23E25AC700529352 /* SDL_mouse.h in Headers */, + A75FCF2B23E25AC700529352 /* SDL_mutex.h in Headers */, + A75FCF2C23E25AC700529352 /* SDL_yuv_c.h in Headers */, + A75FCF2D23E25AC700529352 /* scancodes_xfree86.h in Headers */, + A75FCF2E23E25AC700529352 /* SDL_syspower.h in Headers */, + A75FDAFB23E35ED700529352 /* SDL_config_iphoneos.h in Headers */, + A75FCF3023E25AC700529352 /* SDL_name.h in Headers */, + A75FCF3123E25AC700529352 /* eglext.h in Headers */, + A75FCF3223E25AC700529352 /* SDL_events_c.h in Headers */, + A75FCF3323E25AC700529352 /* math_private.h in Headers */, + A75FCF3523E25AC700529352 /* vulkan_wayland.h in Headers */, + A75FCF3623E25AC700529352 /* SDL_opengl.h in Headers */, + A75FCF3723E25AC700529352 /* SDL_cocoashape.h in Headers */, + A75FCF3823E25AC700529352 /* SDL_opengles.h in Headers */, + A75FCF3923E25AC700529352 /* SDL_shaders_gles2.h in Headers */, + A75FCF3A23E25AC700529352 /* SDL_opengles2.h in Headers */, + F316AB8D2B5A02C3002EF551 /* yuv_rgb_common.h in Headers */, + F316ABB12B5A02C3002EF551 /* yuv_rgb_lsx.h in Headers */, + A75FCF3B23E25AC700529352 /* SDL_glesfuncs.h in Headers */, + A75FCF3C23E25AC700529352 /* SDL_blendpoint.h in Headers */, + A75FCF3D23E25AC700529352 /* SDL_offscreenvideo.h in Headers */, + A75FCF3E23E25AC700529352 /* SDL_nullevents_c.h in Headers */, + A75FCF3F23E25AC700529352 /* SDL_sysjoystick.h in Headers */, + A75FCF4023E25AC700529352 /* SDL_steamcontroller.h in Headers */, + A75FCF4123E25AC700529352 /* scancodes_linux.h in Headers */, + A75FCF4323E25AC700529352 /* SDL_touch_c.h in Headers */, + A75FCF4423E25AC700529352 /* SDL_gamecontrollerdb.h in Headers */, + A75FCF4523E25AC700529352 /* SDL_cocoavulkan.h in Headers */, + A75FCF4623E25AC700529352 /* gl2platform.h in Headers */, + A75FCF4723E25AC700529352 /* SDL_pixels.h in Headers */, + A75FCF4823E25AC700529352 /* vk_layer.h in Headers */, + A75FCF4A23E25AC700529352 /* vk_platform.h in Headers */, + A75FCF4B23E25AC700529352 /* SDL_cocoametalview.h in Headers */, + A75FCF4C23E25AC700529352 /* SDL_cocoaopengles.h in Headers */, + A75FCF4D23E25AC700529352 /* SDL_blit.h in Headers */, + A75FCF4E23E25AC700529352 /* vulkan_xlib_xrandr.h in Headers */, + A75FCF4F23E25AC700529352 /* SDL_sensor_c.h in Headers */, + A75FCF5023E25AC700529352 /* SDL_sysrender.h in Headers */, + A75FCF5123E25AC700529352 /* SDL_rotate.h in Headers */, + A75FCF5223E25AC700529352 /* SDL_platform.h in Headers */, + A75FCF5323E25AC700529352 /* SDL_power.h in Headers */, + A75FCF5623E25AC700529352 /* scancodes_darwin.h in Headers */, + A75FCF5723E25AC700529352 /* controller_type.h in Headers */, + A75FCF5923E25AC700529352 /* SDL_uikitclipboard.h in Headers */, + A75FCF5A23E25AC700529352 /* vulkan_xlib.h in Headers */, + A75FCF5B23E25AC700529352 /* SDL_uikitwindow.h in Headers */, + A75FCF5C23E25AC700529352 /* vulkan_vi.h in Headers */, + A75FCF5E23E25AC700529352 /* SDL_quit.h in Headers */, + A75FCF5F23E25AC700529352 /* default_cursor.h in Headers */, + A75FCF6023E25AC700529352 /* SDL_render_sw_c.h in Headers */, + A75FCF6123E25AC700529352 /* SDL_rect.h in Headers */, + A75FCF6223E25AC700529352 /* SDL_render.h in Headers */, + A75FCF6323E25AC700529352 /* SDL_nullvideo.h in Headers */, + A75FCF6423E25AC700529352 /* SDL_blit_copy.h in Headers */, + 75E0916B241EA924004729E1 /* SDL_virtualjoystick_c.h in Headers */, + A75FCF6523E25AC700529352 /* SDL_RLEaccel_c.h in Headers */, + A75FCF6623E25AC700529352 /* eglplatform.h in Headers */, + A75FCF6823E25AC700529352 /* SDL_revision.h in Headers */, + A75FCF6923E25AC700529352 /* SDL_systhread.h in Headers */, + A75FCF6A23E25AC700529352 /* SDL_rwops.h in Headers */, + A75FCF6B23E25AC700529352 /* SDL_scancode.h in Headers */, + A75FCF6C23E25AC700529352 /* SDL_cocoaclipboard.h in Headers */, + A75FCF6D23E25AC700529352 /* SDL_cocoamodes.h in Headers */, + A75FCF6E23E25AC700529352 /* SDL_uikitopenglview.h in Headers */, + A75FCF6F23E25AC700529352 /* vulkan_win32.h in Headers */, + A75FCF7023E25AC700529352 /* SDL_offscreenframebuffer_c.h in Headers */, + A75FCF7123E25AC700529352 /* SDL_displayevents_c.h in Headers */, + A75FCF7323E25AC700529352 /* SDL_timer_c.h in Headers */, + A75FCF7423E25AC700529352 /* gl2.h in Headers */, + A75FCF7523E25AC700529352 /* SDL_sysmutex_c.h in Headers */, + A75FCF7623E25AC700529352 /* scancodes_windows.h in Headers */, + A75FCF7723E25AC700529352 /* SDL_rwopsbundlesupport.h in Headers */, + A75FCF7823E25AC700529352 /* SDL_syspower.h in Headers */, + A75FCF7923E25AC700529352 /* vulkan_macos.h in Headers */, + A75FCF7A23E25AC700529352 /* vulkan_xcb.h in Headers */, + A75FCF7B23E25AC700529352 /* vulkan_ios.h in Headers */, + A75FCF7C23E25AC700529352 /* SDL_internal.h in Headers */, + A75FCF7D23E25AC700529352 /* SDL_shape.h in Headers */, + A75FCF7E23E25AC700529352 /* SDL_stdinc.h in Headers */, + A75FCF7F23E25AC700529352 /* SDL_surface.h in Headers */, + A75FCF8023E25AC700529352 /* vulkan.h in Headers */, + A75FCF8123E25AC700529352 /* SDL_keyboard_c.h in Headers */, + A75FCF8223E25AC700529352 /* SDL_system.h in Headers */, + A75FCF8323E25AC700529352 /* SDL_syswm.h in Headers */, + A75FCF8423E25AC700529352 /* SDL_opengl_glext.h in Headers */, + A75FCF8523E25AC700529352 /* SDL_mouse_c.h in Headers */, + F395C1C22569C6A000942BFF /* SDL_mfijoystick_c.h in Headers */, + A75FCF8623E25AC700529352 /* SDL_blit_auto.h in Headers */, + A75FCF8723E25AC700529352 /* SDL_blendline.h in Headers */, + A75FCF8823E25AC700529352 /* SDL_syshaptic.h in Headers */, + A75FCF8923E25AC700529352 /* SDL_vulkan_internal.h in Headers */, + A75FCF8A23E25AC700529352 /* SDL_thread.h in Headers */, + A75FCF8B23E25AC700529352 /* SDL_cocoaevents.h in Headers */, + A75FCF8C23E25AC700529352 /* vk_icd.h in Headers */, + A75FCF8D23E25AC700529352 /* SDL_nullframebuffer_c.h in Headers */, + A75FCF8E23E25AC700529352 /* SDL_timer.h in Headers */, + A75FCF8F23E25AC700529352 /* SDL_dynapi_procs.h in Headers */, + A75FCF9023E25AC700529352 /* vulkan_fuchsia.h in Headers */, + A75FCF9123E25AC700529352 /* SDL_touch.h in Headers */, + A75FCF9223E25AC700529352 /* SDL_types.h in Headers */, + A75FCF9323E25AC700529352 /* usb_ids.h in Headers */, + A75FCF9423E25AC700529352 /* SDL_gles2funcs.h in Headers */, + A75FCF9623E25AC700529352 /* SDL_version.h in Headers */, + A75FCF9723E25AC700529352 /* SDL_video.h in Headers */, + A75FCF9823E25AC700529352 /* SDL_opengles2_gl2.h in Headers */, + A75FCF9923E25AC700529352 /* SDL_sensor.h in Headers */, + F362B94E2B33920500D30B94 /* SDL_hidapi_nintendo.h in Headers */, + A75FCF9A23E25AC700529352 /* SDL_sysvideo.h in Headers */, + F386F6EF2884663E001840AA /* SDL_log_c.h in Headers */, + A75FCF9B23E25AC700529352 /* SDL_opengles2_gl2platform.h in Headers */, + A75FCF9C23E25AC700529352 /* SDL_opengles2_gl2ext.h in Headers */, + A75FCF9E23E25AC700529352 /* SDL_dynapi_overrides.h in Headers */, + F316AB962B5A02C3002EF551 /* yuv_rgb_internal.h in Headers */, + A75FCF9F23E25AC700529352 /* SDL_cocoawindow.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A769B08323E259AE00872273 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + A769B08423E259AE00872273 /* SDL_shaders_metal_tvos.h in Headers */, + A769B08823E259AE00872273 /* SDL_uikitopengles.h in Headers */, + A769B08B23E259AE00872273 /* SDL_uikitmetalview.h in Headers */, + A769B08D23E259AE00872273 /* SDL_shape_internals.h in Headers */, + A769B08E23E259AE00872273 /* SDL_glfuncs.h in Headers */, + A769B09023E259AE00872273 /* SDL_rect_c.h in Headers */, + A769B09223E259AE00872273 /* SDL_shaders_metal_osx.h in Headers */, + A769B09323E259AE00872273 /* SDL_shaders_metal_ios.h in Headers */, + A769B09423E259AE00872273 /* SDL_offscreenwindow.h in Headers */, + A769B09623E259AE00872273 /* SDL_coremotionsensor.h in Headers */, + A769B09723E259AE00872273 /* SDL_uikitview.h in Headers */, + A769B09923E259AE00872273 /* SDL_uikitappdelegate.h in Headers */, + A769B09C23E259AE00872273 /* SDL_dropevents_c.h in Headers */, + A769B09D23E259AE00872273 /* SDL_haptic_c.h in Headers */, + A769B09F23E259AE00872273 /* SDL_dataqueue.h in Headers */, + A769B0A023E259AE00872273 /* SDL_error_c.h in Headers */, + A769B0A323E259AE00872273 /* SDL_d3dmath.h in Headers */, + A769B0A623E259AE00872273 /* SDL_egl_c.h in Headers */, + A769B0A823E259AE00872273 /* yuv_rgb.h in Headers */, + A769B0A923E259AE00872273 /* SDL_dummyaudio.h in Headers */, + A769B0AA23E259AE00872273 /* SDL_uikitmessagebox.h in Headers */, + A769B0AC23E259AE00872273 /* SDL_thread_c.h in Headers */, + A769B0AD23E259AE00872273 /* SDL_cocoamessagebox.h in Headers */, + A769B0B323E259AE00872273 /* SDL_blendfillrect.h in Headers */, + A769B0B523E259AE00872273 /* SDL_hidapijoystick_c.h in Headers */, + A769B0B623E259AE00872273 /* SDL_pixels_c.h in Headers */, + A769B0B823E259AE00872273 /* SDL_joystick_c.h in Headers */, + F395C1982569C68F00942BFF /* SDL_iokitjoystick_c.h in Headers */, + A769B0B923E259AE00872273 /* vk_sdk_platform.h in Headers */, + A769B0BA23E259AE00872273 /* blank_cursor.h in Headers */, + A75FDB5D23E39E6100529352 /* hidapi.h in Headers */, + A75FDBCA23EA380300529352 /* SDL_hidapi_rumble.h in Headers */, + A769B0BC23E259AE00872273 /* SDL_sysaudio.h in Headers */, + A769B0BF23E259AE00872273 /* math_libm.h in Headers */, + A769B0C023E259AE00872273 /* SDL_uikitvideo.h in Headers */, + F316ABC02B5A02C3002EF551 /* yuv_rgb_sse.h in Headers */, + A769B0C123E259AE00872273 /* SDL_cocoamouse.h in Headers */, + A769B0C323E259AE00872273 /* SDL_blit_slow.h in Headers */, + F3973FA728A59BDD00B84553 /* SDL_vacopy.h in Headers */, + A769B0C423E259AE00872273 /* SDL_yuv_sw_c.h in Headers */, + A769B0C623E259AE00872273 /* SDL_windowevents_c.h in Headers */, + A769B0C823E259AE00872273 /* SDL_cocoavideo.h in Headers */, + 5605721C2473688D00B46B66 /* SDL_syslocale.h in Headers */, + A1BB8B7127F6CF330057CFA8 /* SDL_list.h in Headers */, + A769B0CA23E259AE00872273 /* SDL_uikitevents.h in Headers */, + A769B0CB23E259AE00872273 /* SDL_gesture_c.h in Headers */, + A769B0CC23E259AE00872273 /* SDL_shaders_gl.h in Headers */, + A769B0CD23E259AE00872273 /* SDL_systhread_c.h in Headers */, + A769B0D023E259AE00872273 /* SDL_cocoakeyboard.h in Headers */, + 5616CA5D252BB35E005D5928 /* SDL_sysurl.h in Headers */, + A769B0D123E259AE00872273 /* SDL_uikitvulkan.h in Headers */, + A769B0D623E259AE00872273 /* gl2ext.h in Headers */, + A769B0D723E259AE00872273 /* SDL_clipboardevents_c.h in Headers */, + A769B0D923E259AE00872273 /* SDL_syshaptic_c.h in Headers */, + A769B0DA23E259AE00872273 /* SDL_hints_c.h in Headers */, + A769B0DB23E259AE00872273 /* SDL_audiodev_c.h in Headers */, + A769B0DC23E259AE00872273 /* SDL_audio_c.h in Headers */, + A769B0DD23E259AE00872273 /* SDL_uikitmodes.h in Headers */, + A769B0DE23E259AE00872273 /* egl.h in Headers */, + A769B0DF23E259AE00872273 /* khrplatform.h in Headers */, + A769B0E123E259AE00872273 /* SDL_uikitviewcontroller.h in Headers */, + A769B0E223E259AE00872273 /* SDL_dummysensor.h in Headers */, + A769B0E423E259AE00872273 /* SDL_steamcontroller.h in Headers */, + A769B0E523E259AE00872273 /* vulkan_android.h in Headers */, + A769B0E623E259AE00872273 /* yuv_rgb_std_func.h in Headers */, + A769B0E723E259AE00872273 /* vulkan_core.h in Headers */, + F362B9572B33EB7300D30B94 /* SDL_steam_virtual_gamepad.h in Headers */, + A769B0E823E259AE00872273 /* SDL_syssensor.h in Headers */, + F316AB8A2B5A02C3002EF551 /* yuv_rgb_common.h in Headers */, + A769B0E923E259AE00872273 /* SDL_dynapi.h in Headers */, + A769B0EA23E259AE00872273 /* SDL_assert_c.h in Headers */, + A769B0EB23E259AE00872273 /* SDL_diskaudio.h in Headers */, + A769B0ED23E259AE00872273 /* SDL_drawpoint.h in Headers */, + A769B0EF23E259AE00872273 /* SDL_wave.h in Headers */, + A769B0F023E259AE00872273 /* SDL_cocoaopengl.h in Headers */, + F316ABC92B5A02C3002EF551 /* yuv_rgb_std.h in Headers */, + A1626A572617008D003F1973 /* SDL_triangle.h in Headers */, + A769B0F123E259AE00872273 /* yuv_rgb_sse_func.h in Headers */, + A769B0F323E259AE00872273 /* SDL_offscreenevents_c.h in Headers */, + A769B0F523E259AE00872273 /* SDL_coreaudio.h in Headers */, + A769B0F623E259AE00872273 /* SDL_draw.h in Headers */, + A769B0F723E259AE00872273 /* SDL_drawline.h in Headers */, + A769B0FB23E259AE00872273 /* SDL_yuv_c.h in Headers */, + A769B0FC23E259AE00872273 /* scancodes_xfree86.h in Headers */, + A769B0FD23E259AE00872273 /* SDL_syspower.h in Headers */, + A75FDAF923E35ED500529352 /* SDL_config_iphoneos.h in Headers */, + A769B10023E259AE00872273 /* eglext.h in Headers */, + A769B10123E259AE00872273 /* SDL_events_c.h in Headers */, + A769B10223E259AE00872273 /* math_private.h in Headers */, + A769B10323E259AE00872273 /* vulkan_wayland.h in Headers */, + A769B10523E259AE00872273 /* SDL_cocoashape.h in Headers */, + A769B10723E259AE00872273 /* SDL_shaders_gles2.h in Headers */, + A769B10923E259AE00872273 /* SDL_glesfuncs.h in Headers */, + A769B10A23E259AE00872273 /* SDL_blendpoint.h in Headers */, + A769B10B23E259AE00872273 /* SDL_offscreenvideo.h in Headers */, + A769B10C23E259AE00872273 /* SDL_nullevents_c.h in Headers */, + F316ABD22B5A02C3002EF551 /* yuv_rgb_lsx_func.h in Headers */, + A769B10D23E259AE00872273 /* SDL_sysjoystick.h in Headers */, + A769B10E23E259AE00872273 /* scancodes_linux.h in Headers */, + A769B11023E259AE00872273 /* SDL_touch_c.h in Headers */, + F362B94B2B33920500D30B94 /* SDL_hidapi_nintendo.h in Headers */, + A769B11123E259AE00872273 /* SDL_gamecontrollerdb.h in Headers */, + A769B11223E259AE00872273 /* SDL_cocoavulkan.h in Headers */, + A769B11323E259AE00872273 /* gl2platform.h in Headers */, + A769B11523E259AE00872273 /* vk_layer.h in Headers */, + A769B11823E259AE00872273 /* vk_platform.h in Headers */, + A769B11A23E259AE00872273 /* SDL_cocoametalview.h in Headers */, + A769B11B23E259AE00872273 /* SDL_cocoaopengles.h in Headers */, + A769B11C23E259AE00872273 /* SDL_blit.h in Headers */, + A769B11D23E259AE00872273 /* vulkan_xlib_xrandr.h in Headers */, + A769B11E23E259AE00872273 /* SDL_sensor_c.h in Headers */, + A769B11F23E259AE00872273 /* SDL_sysrender.h in Headers */, + F316AB932B5A02C3002EF551 /* yuv_rgb_internal.h in Headers */, + A769B12023E259AE00872273 /* SDL_rotate.h in Headers */, + A769B12523E259AE00872273 /* scancodes_darwin.h in Headers */, + A769B12623E259AE00872273 /* controller_type.h in Headers */, + A769B12823E259AE00872273 /* SDL_uikitclipboard.h in Headers */, + A769B12923E259AE00872273 /* vulkan_xlib.h in Headers */, + F386F6F52884663E001840AA /* SDL_utils_c.h in Headers */, + A769B12A23E259AE00872273 /* SDL_uikitwindow.h in Headers */, + A769B12B23E259AE00872273 /* vulkan_vi.h in Headers */, + A769B12E23E259AE00872273 /* default_cursor.h in Headers */, + A769B12F23E259AE00872273 /* SDL_render_sw_c.h in Headers */, + A769B13223E259AE00872273 /* SDL_nullvideo.h in Headers */, + A769B13323E259AE00872273 /* SDL_blit_copy.h in Headers */, + A769B13423E259AE00872273 /* SDL_RLEaccel_c.h in Headers */, + 75E09168241EA924004729E1 /* SDL_virtualjoystick_c.h in Headers */, + A769B13523E259AE00872273 /* eglplatform.h in Headers */, + A769B13823E259AE00872273 /* SDL_systhread.h in Headers */, + A769B13B23E259AE00872273 /* SDL_cocoaclipboard.h in Headers */, + A769B13C23E259AE00872273 /* SDL_cocoamodes.h in Headers */, + A769B13D23E259AE00872273 /* SDL_uikitopenglview.h in Headers */, + A769B13E23E259AE00872273 /* vulkan_win32.h in Headers */, + F31A92CE28D4CB39003BFD6A /* SDL_offscreenopengles.h in Headers */, + A769B13F23E259AE00872273 /* SDL_offscreenframebuffer_c.h in Headers */, + A769B14023E259AE00872273 /* SDL_displayevents_c.h in Headers */, + A769B14123E259AE00872273 /* SDL_timer_c.h in Headers */, + A769B14223E259AE00872273 /* gl2.h in Headers */, + A769B14323E259AE00872273 /* SDL_sysmutex_c.h in Headers */, + A769B14423E259AE00872273 /* scancodes_windows.h in Headers */, + A769B14523E259AE00872273 /* SDL_rwopsbundlesupport.h in Headers */, + F386F6EC2884663E001840AA /* SDL_log_c.h in Headers */, + A769B14623E259AE00872273 /* SDL_syspower.h in Headers */, + A769B14723E259AE00872273 /* vulkan_macos.h in Headers */, + A769B14823E259AE00872273 /* vulkan_xcb.h in Headers */, + F382072C284F3643004DD584 /* SDL_guid.h in Headers */, + A769B14923E259AE00872273 /* vulkan_ios.h in Headers */, + A769B14A23E259AE00872273 /* SDL_internal.h in Headers */, + A769B14E23E259AE00872273 /* vulkan.h in Headers */, + A769B14F23E259AE00872273 /* SDL_keyboard_c.h in Headers */, + A769B15323E259AE00872273 /* SDL_mouse_c.h in Headers */, + F395C1BF2569C6A000942BFF /* SDL_mfijoystick_c.h in Headers */, + A769B15423E259AE00872273 /* SDL_blit_auto.h in Headers */, + A769B15523E259AE00872273 /* SDL_blendline.h in Headers */, + A769B15623E259AE00872273 /* SDL_syshaptic.h in Headers */, + A769B15723E259AE00872273 /* SDL_vulkan_internal.h in Headers */, + A769B15923E259AE00872273 /* SDL_cocoaevents.h in Headers */, + F362B9372B33916600D30B94 /* controller_list.h in Headers */, + A769B15A23E259AE00872273 /* vk_icd.h in Headers */, + A769B15B23E259AE00872273 /* SDL_nullframebuffer_c.h in Headers */, + A769B15D23E259AE00872273 /* SDL_dynapi_procs.h in Headers */, + A769B15E23E259AE00872273 /* vulkan_fuchsia.h in Headers */, + A769B16123E259AE00872273 /* usb_ids.h in Headers */, + F316ABAE2B5A02C3002EF551 /* yuv_rgb_lsx.h in Headers */, + A769B16323E259AE00872273 /* SDL_gles2funcs.h in Headers */, + A769B16923E259AE00872273 /* SDL_sysvideo.h in Headers */, + A769B16D23E259AE00872273 /* SDL_dynapi_overrides.h in Headers */, + A769B16E23E259AE00872273 /* SDL_cocoawindow.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A7D88A1523E2437C00DCD162 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + A7D88A1923E2437C00DCD162 /* SDL.h in Headers */, + A7D8B39F23E2514200DCD162 /* SDL_RLEaccel_c.h in Headers */, + A7D88A1A23E2437C00DCD162 /* SDL_assert.h in Headers */, + A7D8B61823E2514300DCD162 /* SDL_assert_c.h in Headers */, + A7D88A1B23E2437C00DCD162 /* SDL_atomic.h in Headers */, + A7D88A1D23E2437C00DCD162 /* SDL_audio.h in Headers */, + A7D8B7A123E2514400DCD162 /* SDL_audio_c.h in Headers */, + A7D8B7B323E2514400DCD162 /* SDL_audiodev_c.h in Headers */, + A7D88A1E23E2437C00DCD162 /* SDL_bits.h in Headers */, + A7D8BA0223E2514400DCD162 /* SDL_blendfillrect.h in Headers */, + A7D8B9EA23E2514400DCD162 /* SDL_blendline.h in Headers */, + F316ABC52B5A02C3002EF551 /* yuv_rgb_std.h in Headers */, + A7D88A1F23E2437C00DCD162 /* SDL_blendmode.h in Headers */, + A7D8BA0E23E2514400DCD162 /* SDL_blendpoint.h in Headers */, + A7D8B3B723E2514200DCD162 /* SDL_blit.h in Headers */, + A7D8B2BB23E2514200DCD162 /* SDL_blit_auto.h in Headers */, + F3820728284F3643004DD584 /* SDL_guid.h in Headers */, + A7D8B39923E2514200DCD162 /* SDL_blit_copy.h in Headers */, + A7D8ADED23E2514100DCD162 /* SDL_blit_slow.h in Headers */, + A7D88A2123E2437C00DCD162 /* SDL_clipboard.h in Headers */, + A7D8BB7023E2514500DCD162 /* SDL_clipboardevents_c.h in Headers */, + A7D8AECB23E2514100DCD162 /* SDL_cocoaclipboard.h in Headers */, + A7D8AF1323E2514100DCD162 /* SDL_cocoaevents.h in Headers */, + A7D8AE8F23E2514100DCD162 /* SDL_cocoakeyboard.h in Headers */, + A7D8AF0723E2514100DCD162 /* SDL_cocoamessagebox.h in Headers */, + A7D8AEB323E2514100DCD162 /* SDL_cocoametalview.h in Headers */, + A7D8AEF523E2514100DCD162 /* SDL_cocoamodes.h in Headers */, + A7D8AF1F23E2514100DCD162 /* SDL_cocoamouse.h in Headers */, + A7D8AEDD23E2514100DCD162 /* SDL_cocoaopengl.h in Headers */, + A7D8AEEF23E2514100DCD162 /* SDL_cocoaopengles.h in Headers */, + A7D8AE8323E2514100DCD162 /* SDL_cocoashape.h in Headers */, + A7D8AF0123E2514100DCD162 /* SDL_cocoavideo.h in Headers */, + A7D8AEE923E2514100DCD162 /* SDL_cocoavulkan.h in Headers */, + A7D8AEFB23E2514100DCD162 /* SDL_cocoawindow.h in Headers */, + A7D88A2323E2437C00DCD162 /* SDL_config.h in Headers */, + A75FDAF623E35EC400529352 /* SDL_config_iphoneos.h in Headers */, + A7D88A2523E2437C00DCD162 /* SDL_copying.h in Headers */, + A7D8B8CD23E2514400DCD162 /* SDL_coreaudio.h in Headers */, + A7D8A97023E2514000DCD162 /* SDL_coremotionsensor.h in Headers */, + A7D88A2623E2437C00DCD162 /* SDL_cpuinfo.h in Headers */, + F31A92C928D4CB39003BFD6A /* SDL_offscreenopengles.h in Headers */, + A7D8B98123E2514400DCD162 /* SDL_d3dmath.h in Headers */, + A7D8A94623E2514000DCD162 /* SDL_dataqueue.h in Headers */, + A7D8B8A323E2514400DCD162 /* SDL_diskaudio.h in Headers */, + A7D8BB4023E2514500DCD162 /* SDL_displayevents_c.h in Headers */, + A7D8BA1A23E2514400DCD162 /* SDL_draw.h in Headers */, + A7D8BA0823E2514400DCD162 /* SDL_drawline.h in Headers */, + F316ABBC2B5A02C3002EF551 /* yuv_rgb_sse.h in Headers */, + A7D8B9F023E2514400DCD162 /* SDL_drawpoint.h in Headers */, + A7D8BB2E23E2514500DCD162 /* SDL_dropevents_c.h in Headers */, + A7D8B79523E2514400DCD162 /* SDL_dummyaudio.h in Headers */, + A7D8A96423E2514000DCD162 /* SDL_dummysensor.h in Headers */, + A7D8AB0B23E2514100DCD162 /* SDL_dynapi.h in Headers */, + A7D8AB1123E2514100DCD162 /* SDL_dynapi_overrides.h in Headers */, + A7D8AB1D23E2514100DCD162 /* SDL_dynapi_procs.h in Headers */, + A7D88A2023E2437C00DCD162 /* SDL_egl.h in Headers */, + A7D8ABDA23E2514100DCD162 /* SDL_egl_c.h in Headers */, + A7D88A2723E2437C00DCD162 /* SDL_endian.h in Headers */, + A7D88A2823E2437C00DCD162 /* SDL_error.h in Headers */, + A7D8A95E23E2514000DCD162 /* SDL_error_c.h in Headers */, + A7D88A2923E2437C00DCD162 /* SDL_events.h in Headers */, + A7D8BBA623E2514500DCD162 /* SDL_events_c.h in Headers */, + A7D88A2A23E2437C00DCD162 /* SDL_filesystem.h in Headers */, + A7D88A2B23E2437C00DCD162 /* SDL_gamecontroller.h in Headers */, + A7D8B4AD23E2514300DCD162 /* SDL_gamecontrollerdb.h in Headers */, + A7D88A2C23E2437C00DCD162 /* SDL_gesture.h in Headers */, + A7D8BB3A23E2514500DCD162 /* SDL_gesture_c.h in Headers */, + A7D8BA5623E2514400DCD162 /* SDL_gles2funcs.h in Headers */, + A7D8BA4423E2514400DCD162 /* SDL_glesfuncs.h in Headers */, + A7D8BA7A23E2514400DCD162 /* SDL_glfuncs.h in Headers */, + A7D88A2D23E2437C00DCD162 /* SDL_haptic.h in Headers */, + A7D8AABD23E2514100DCD162 /* SDL_haptic_c.h in Headers */, + F316AB8F2B5A02C3002EF551 /* yuv_rgb_internal.h in Headers */, + A75FDBC623EA380300529352 /* SDL_hidapi_rumble.h in Headers */, + A7D8B55823E2514300DCD162 /* SDL_hidapijoystick_c.h in Headers */, + A7D88A2E23E2437C00DCD162 /* SDL_hints.h in Headers */, + A7D8B94B23E2514400DCD162 /* SDL_hints_c.h in Headers */, + F316ABCE2B5A02C3002EF551 /* yuv_rgb_lsx_func.h in Headers */, + A7D8A99A23E2514000DCD162 /* SDL_internal.h in Headers */, + F395C1942569C68F00942BFF /* SDL_iokitjoystick_c.h in Headers */, + A7D88A2F23E2437C00DCD162 /* SDL_joystick.h in Headers */, + A7D8B58823E2514300DCD162 /* SDL_joystick_c.h in Headers */, + F316AB862B5A02C3002EF551 /* yuv_rgb_common.h in Headers */, + A7D88A3023E2437C00DCD162 /* SDL_keyboard.h in Headers */, + A7D8BB8823E2514500DCD162 /* SDL_keyboard_c.h in Headers */, + A7D88A3323E2437C00DCD162 /* SDL_keycode.h in Headers */, + A7D88A3523E2437C00DCD162 /* SDL_loadso.h in Headers */, + F3631C6424884ACF004F28EA /* SDL_locale.h in Headers */, + A7D88A3623E2437C00DCD162 /* SDL_log.h in Headers */, + A7D88A3823E2437C00DCD162 /* SDL_main.h in Headers */, + A7D88A3923E2437C00DCD162 /* SDL_messagebox.h in Headers */, + F386F6E82884663E001840AA /* SDL_log_c.h in Headers */, + A7D88A3223E2437C00DCD162 /* SDL_metal.h in Headers */, + F395C1BB2569C6A000942BFF /* SDL_mfijoystick_c.h in Headers */, + F3928194258603F1003191A7 /* SDL_misc.h in Headers */, + A7D88A3A23E2437C00DCD162 /* SDL_mouse.h in Headers */, + A7D8BB1C23E2514500DCD162 /* SDL_mouse_c.h in Headers */, + F38233862738EB8600F7F527 /* SDL_hidapi.h in Headers */, + A7D88A3B23E2437C00DCD162 /* SDL_mutex.h in Headers */, + A7D88A3C23E2437C00DCD162 /* SDL_name.h in Headers */, + A7D8ABFE23E2514100DCD162 /* SDL_nullevents_c.h in Headers */, + A7D8ABE623E2514100DCD162 /* SDL_nullframebuffer_c.h in Headers */, + A7D8ABF823E2514100DCD162 /* SDL_nullvideo.h in Headers */, + A7D8AB5C23E2514100DCD162 /* SDL_offscreenevents_c.h in Headers */, + A7D8AB8023E2514100DCD162 /* SDL_offscreenframebuffer_c.h in Headers */, + A7D8AB6E23E2514100DCD162 /* SDL_offscreenvideo.h in Headers */, + A7D8AB8623E2514100DCD162 /* SDL_offscreenwindow.h in Headers */, + A7D88A3D23E2437C00DCD162 /* SDL_opengl.h in Headers */, + A7D88A3E23E2437C00DCD162 /* SDL_opengl_glext.h in Headers */, + A7D88A3F23E2437C00DCD162 /* SDL_opengles.h in Headers */, + A7D88A4023E2437C00DCD162 /* SDL_opengles2.h in Headers */, + A7D88A4123E2437C00DCD162 /* SDL_opengles2_gl2.h in Headers */, + A7D88A4223E2437C00DCD162 /* SDL_opengles2_gl2ext.h in Headers */, + A7D88A4323E2437C00DCD162 /* SDL_opengles2_gl2platform.h in Headers */, + A7D88A4423E2437C00DCD162 /* SDL_opengles2_khrplatform.h in Headers */, + A7D88A4523E2437C00DCD162 /* SDL_pixels.h in Headers */, + A7D8B2C123E2514200DCD162 /* SDL_pixels_c.h in Headers */, + A7D88A4623E2437C00DCD162 /* SDL_platform.h in Headers */, + A7D88A4723E2437C00DCD162 /* SDL_power.h in Headers */, + A7D88A4823E2437C00DCD162 /* SDL_quit.h in Headers */, + A7D88A4923E2437C00DCD162 /* SDL_rect.h in Headers */, + A7D8AC0423E2514100DCD162 /* SDL_rect_c.h in Headers */, + A7D88A4B23E2437C00DCD162 /* SDL_render.h in Headers */, + A7D8B9FC23E2514400DCD162 /* SDL_render_sw_c.h in Headers */, + A7D88A4C23E2437C00DCD162 /* SDL_revision.h in Headers */, + A7D8BA3223E2514400DCD162 /* SDL_rotate.h in Headers */, + F3973FA328A59BDD00B84553 /* SDL_vacopy.h in Headers */, + A7D88A4D23E2437C00DCD162 /* SDL_rwops.h in Headers */, + A7D8B5C423E2514300DCD162 /* SDL_rwopsbundlesupport.h in Headers */, + A7D88A4E23E2437C00DCD162 /* SDL_scancode.h in Headers */, + A7D88A3123E2437C00DCD162 /* SDL_sensor.h in Headers */, + A7D8A98E23E2514000DCD162 /* SDL_sensor_c.h in Headers */, + F386F6F12884663E001840AA /* SDL_utils_c.h in Headers */, + A7D8BA7423E2514400DCD162 /* SDL_shaders_gl.h in Headers */, + A7D8BA5023E2514400DCD162 /* SDL_shaders_gles2.h in Headers */, + A1BB8B6D27F6CF330057CFA8 /* SDL_list.h in Headers */, + A7D8B98D23E2514400DCD162 /* SDL_shaders_metal_ios.h in Headers */, + A7D8B99C23E2514400DCD162 /* SDL_shaders_metal_osx.h in Headers */, + A7D8B9A223E2514400DCD162 /* SDL_shaders_metal_tvos.h in Headers */, + A7D88A5023E2437C00DCD162 /* SDL_shape.h in Headers */, + A7D8AC0A23E2514100DCD162 /* SDL_shape_internals.h in Headers */, + A7D88A5123E2437C00DCD162 /* SDL_stdinc.h in Headers */, + A7D8B4C523E2514300DCD162 /* SDL_steamcontroller.h in Headers */, + A7D88A5223E2437C00DCD162 /* SDL_surface.h in Headers */, + A7D8B85B23E2514400DCD162 /* SDL_sysaudio.h in Headers */, + A7D8AAD523E2514100DCD162 /* SDL_syshaptic.h in Headers */, + A7D8AAE123E2514100DCD162 /* SDL_syshaptic_c.h in Headers */, + A7D8B58223E2514300DCD162 /* SDL_sysjoystick.h in Headers */, + 560572172473688A00B46B66 /* SDL_syslocale.h in Headers */, + A7D8B44123E2514300DCD162 /* SDL_sysmutex_c.h in Headers */, + A7D8B5D623E2514300DCD162 /* SDL_syspower.h in Headers */, + A7D8B61223E2514300DCD162 /* SDL_syspower.h in Headers */, + A7D8B9D823E2514400DCD162 /* SDL_sysrender.h in Headers */, + F362B9472B33920500D30B94 /* SDL_hidapi_nintendo.h in Headers */, + F316ABAA2B5A02C3002EF551 /* yuv_rgb_lsx.h in Headers */, + A7D8A97C23E2514000DCD162 /* SDL_syssensor.h in Headers */, + A7D88A5323E2437C00DCD162 /* SDL_system.h in Headers */, + A7D8B3E723E2514300DCD162 /* SDL_systhread.h in Headers */, + A7D8B42923E2514300DCD162 /* SDL_systhread_c.h in Headers */, + 5616CA51252BB35A005D5928 /* SDL_sysurl.h in Headers */, + A7D8AC4023E2514100DCD162 /* SDL_sysvideo.h in Headers */, + A7D88A5423E2437C00DCD162 /* SDL_syswm.h in Headers */, + A7D88A5523E2437C00DCD162 /* SDL_thread.h in Headers */, + A7D8B3ED23E2514300DCD162 /* SDL_thread_c.h in Headers */, + A7D88A5623E2437C00DCD162 /* SDL_timer.h in Headers */, + A7D8AB3223E2514100DCD162 /* SDL_timer_c.h in Headers */, + A7D88A5723E2437C00DCD162 /* SDL_touch.h in Headers */, + A7D8BB6423E2514500DCD162 /* SDL_touch_c.h in Headers */, + A7D88A5823E2437C00DCD162 /* SDL_types.h in Headers */, + A7D8ACCA23E2514100DCD162 /* SDL_uikitappdelegate.h in Headers */, + A7D8AC7623E2514100DCD162 /* SDL_uikitclipboard.h in Headers */, + A7D8ACBE23E2514100DCD162 /* SDL_uikitevents.h in Headers */, + A7D8AC9423E2514100DCD162 /* SDL_uikitmessagebox.h in Headers */, + A7D8AC5E23E2514100DCD162 /* SDL_uikitmetalview.h in Headers */, + A7D8AC6A23E2514100DCD162 /* SDL_uikitmodes.h in Headers */, + A7D8ACD623E2514100DCD162 /* SDL_uikitopengles.h in Headers */, + A7D8ACB223E2514100DCD162 /* SDL_uikitopenglview.h in Headers */, + A7D8AC7C23E2514100DCD162 /* SDL_uikitvideo.h in Headers */, + A7D8AC4623E2514100DCD162 /* SDL_uikitview.h in Headers */, + A7D8AC8823E2514100DCD162 /* SDL_uikitviewcontroller.h in Headers */, + A7D8ACE223E2514100DCD162 /* SDL_uikitvulkan.h in Headers */, + A7D8AC9A23E2514100DCD162 /* SDL_uikitwindow.h in Headers */, + A7D88A5923E2437C00DCD162 /* SDL_version.h in Headers */, + A7D88A5A23E2437C00DCD162 /* SDL_video.h in Headers */, + 75E09164241EA924004729E1 /* SDL_virtualjoystick_c.h in Headers */, + A7D88A5C23E2437C00DCD162 /* SDL_vulkan.h in Headers */, + A7D8AD1E23E2514100DCD162 /* SDL_vulkan_internal.h in Headers */, + A7D8B86D23E2514400DCD162 /* SDL_wave.h in Headers */, + A7D8BBAC23E2514500DCD162 /* SDL_windowevents_c.h in Headers */, + A7D8B3B123E2514200DCD162 /* SDL_yuv_c.h in Headers */, + A7D8B9CC23E2514400DCD162 /* SDL_yuv_sw_c.h in Headers */, + A7D88A1623E2437C00DCD162 /* begin_code.h in Headers */, + A7D8BB4623E2514500DCD162 /* blank_cursor.h in Headers */, + F362B9532B33EB7300D30B94 /* SDL_steam_virtual_gamepad.h in Headers */, + A7D88A1823E2437C00DCD162 /* close_code.h in Headers */, + A7D8B5B823E2514300DCD162 /* controller_type.h in Headers */, + A7D8BB4C23E2514500DCD162 /* default_cursor.h in Headers */, + A7D8B23D23E2514200DCD162 /* egl.h in Headers */, + A7D8B24323E2514200DCD162 /* eglext.h in Headers */, + A7D8B24923E2514200DCD162 /* eglplatform.h in Headers */, + A7D8B22B23E2514200DCD162 /* gl2.h in Headers */, + A7D8B22523E2514200DCD162 /* gl2ext.h in Headers */, + A7D8B23123E2514200DCD162 /* gl2platform.h in Headers */, + A75FDB5923E39E6100529352 /* hidapi.h in Headers */, + A7D8B23723E2514200DCD162 /* khrplatform.h in Headers */, + A7D8BB0423E2514500DCD162 /* math_libm.h in Headers */, + A7D8BAC223E2514500DCD162 /* math_private.h in Headers */, + A7D8BB5223E2514500DCD162 /* scancodes_darwin.h in Headers */, + A7D8BB5E23E2514500DCD162 /* scancodes_linux.h in Headers */, + A7D8BB2223E2514500DCD162 /* scancodes_windows.h in Headers */, + A7D8BBA023E2514500DCD162 /* scancodes_xfree86.h in Headers */, + A7D8B57023E2514300DCD162 /* usb_ids.h in Headers */, + A1626A532617008D003F1973 /* SDL_triangle.h in Headers */, + A7D8B25523E2514200DCD162 /* vk_icd.h in Headers */, + A7D8B24F23E2514200DCD162 /* vk_layer.h in Headers */, + A7D8B26723E2514200DCD162 /* vk_platform.h in Headers */, + A7D8B2AF23E2514200DCD162 /* vk_sdk_platform.h in Headers */, + A7D8B26123E2514200DCD162 /* vulkan.h in Headers */, + A7D8B2B523E2514200DCD162 /* vulkan_android.h in Headers */, + A7D8B2A923E2514200DCD162 /* vulkan_core.h in Headers */, + A7D8B27323E2514200DCD162 /* vulkan_fuchsia.h in Headers */, + A7D8B2A323E2514200DCD162 /* vulkan_ios.h in Headers */, + A7D8B28523E2514200DCD162 /* vulkan_macos.h in Headers */, + A7D8B25B23E2514200DCD162 /* vulkan_vi.h in Headers */, + A7D8B27923E2514200DCD162 /* vulkan_wayland.h in Headers */, + A7D8B27F23E2514200DCD162 /* vulkan_win32.h in Headers */, + F362B9332B33916600D30B94 /* controller_list.h in Headers */, + A7D8B29123E2514200DCD162 /* vulkan_xcb.h in Headers */, + A7D8B29D23E2514200DCD162 /* vulkan_xlib.h in Headers */, + A7D8B28B23E2514200DCD162 /* vulkan_xlib_xrandr.h in Headers */, + A7D8B3D523E2514300DCD162 /* yuv_rgb.h in Headers */, + A7D8B3C923E2514300DCD162 /* yuv_rgb_sse_func.h in Headers */, + A7D8B3CF23E2514300DCD162 /* yuv_rgb_std_func.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A7D88BCA23E24BED00DCD162 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + A7D88BCF23E24BED00DCD162 /* SDL.h in Headers */, + A7D8B3A023E2514200DCD162 /* SDL_RLEaccel_c.h in Headers */, + A7D88BD023E24BED00DCD162 /* SDL_assert.h in Headers */, + A7D8B61923E2514300DCD162 /* SDL_assert_c.h in Headers */, + A7D88BD123E24BED00DCD162 /* SDL_atomic.h in Headers */, + A7D88BD423E24BED00DCD162 /* SDL_audio.h in Headers */, + A7D8B7A223E2514400DCD162 /* SDL_audio_c.h in Headers */, + A7D8B7B423E2514400DCD162 /* SDL_audiodev_c.h in Headers */, + A7D88BD523E24BED00DCD162 /* SDL_bits.h in Headers */, + A7D8BA0323E2514400DCD162 /* SDL_blendfillrect.h in Headers */, + A7D8B9EB23E2514400DCD162 /* SDL_blendline.h in Headers */, + F316ABC62B5A02C3002EF551 /* yuv_rgb_std.h in Headers */, + A7D88BD623E24BED00DCD162 /* SDL_blendmode.h in Headers */, + A7D8BA0F23E2514400DCD162 /* SDL_blendpoint.h in Headers */, + A7D8B3B823E2514200DCD162 /* SDL_blit.h in Headers */, + A7D8B2BC23E2514200DCD162 /* SDL_blit_auto.h in Headers */, + A7D8B39A23E2514200DCD162 /* SDL_blit_copy.h in Headers */, + F3820729284F3643004DD584 /* SDL_guid.h in Headers */, + A7D8ADEE23E2514100DCD162 /* SDL_blit_slow.h in Headers */, + A7D88BD823E24BED00DCD162 /* SDL_clipboard.h in Headers */, + A7D8BB7123E2514500DCD162 /* SDL_clipboardevents_c.h in Headers */, + A7D8AECC23E2514100DCD162 /* SDL_cocoaclipboard.h in Headers */, + A7D8AF1423E2514100DCD162 /* SDL_cocoaevents.h in Headers */, + A7D8AE9023E2514100DCD162 /* SDL_cocoakeyboard.h in Headers */, + A7D8AF0823E2514100DCD162 /* SDL_cocoamessagebox.h in Headers */, + A7D8AEB423E2514100DCD162 /* SDL_cocoametalview.h in Headers */, + A7D8AEF623E2514100DCD162 /* SDL_cocoamodes.h in Headers */, + A7D8AF2023E2514100DCD162 /* SDL_cocoamouse.h in Headers */, + A7D8AEDE23E2514100DCD162 /* SDL_cocoaopengl.h in Headers */, + A7D8AEF023E2514100DCD162 /* SDL_cocoaopengles.h in Headers */, + A7D8AE8423E2514100DCD162 /* SDL_cocoashape.h in Headers */, + A7D8AF0223E2514100DCD162 /* SDL_cocoavideo.h in Headers */, + A7D8AEEA23E2514100DCD162 /* SDL_cocoavulkan.h in Headers */, + A7D8AEFC23E2514100DCD162 /* SDL_cocoawindow.h in Headers */, + A7D88BDA23E24BED00DCD162 /* SDL_config.h in Headers */, + A75FDAF723E35EC400529352 /* SDL_config_iphoneos.h in Headers */, + A7D88BDC23E24BED00DCD162 /* SDL_copying.h in Headers */, + A7D8B8CE23E2514400DCD162 /* SDL_coreaudio.h in Headers */, + A7D8A97123E2514000DCD162 /* SDL_coremotionsensor.h in Headers */, + A7D88BDD23E24BED00DCD162 /* SDL_cpuinfo.h in Headers */, + F31A92CA28D4CB39003BFD6A /* SDL_offscreenopengles.h in Headers */, + A7D8B98223E2514400DCD162 /* SDL_d3dmath.h in Headers */, + A7D8A94723E2514000DCD162 /* SDL_dataqueue.h in Headers */, + A7D8B8A423E2514400DCD162 /* SDL_diskaudio.h in Headers */, + A7D8BB4123E2514500DCD162 /* SDL_displayevents_c.h in Headers */, + A7D8BA1B23E2514400DCD162 /* SDL_draw.h in Headers */, + A7D8BA0923E2514400DCD162 /* SDL_drawline.h in Headers */, + F316ABBD2B5A02C3002EF551 /* yuv_rgb_sse.h in Headers */, + A7D8B9F123E2514400DCD162 /* SDL_drawpoint.h in Headers */, + A7D8BB2F23E2514500DCD162 /* SDL_dropevents_c.h in Headers */, + A7D8B79623E2514400DCD162 /* SDL_dummyaudio.h in Headers */, + A7D8A96523E2514000DCD162 /* SDL_dummysensor.h in Headers */, + A7D8AB0C23E2514100DCD162 /* SDL_dynapi.h in Headers */, + A7D8AB1223E2514100DCD162 /* SDL_dynapi_overrides.h in Headers */, + A7D8AB1E23E2514100DCD162 /* SDL_dynapi_procs.h in Headers */, + A7D88BD723E24BED00DCD162 /* SDL_egl.h in Headers */, + A7D8ABDB23E2514100DCD162 /* SDL_egl_c.h in Headers */, + A7D88BDE23E24BED00DCD162 /* SDL_endian.h in Headers */, + A7D88BDF23E24BED00DCD162 /* SDL_error.h in Headers */, + A7D8A95F23E2514000DCD162 /* SDL_error_c.h in Headers */, + A7D88BE023E24BED00DCD162 /* SDL_events.h in Headers */, + A7D8BBA723E2514500DCD162 /* SDL_events_c.h in Headers */, + A7D88BE123E24BED00DCD162 /* SDL_filesystem.h in Headers */, + A7D88BE223E24BED00DCD162 /* SDL_gamecontroller.h in Headers */, + A7D8B4AE23E2514300DCD162 /* SDL_gamecontrollerdb.h in Headers */, + A7D88BE323E24BED00DCD162 /* SDL_gesture.h in Headers */, + A7D8BB3B23E2514500DCD162 /* SDL_gesture_c.h in Headers */, + A7D8BA5723E2514400DCD162 /* SDL_gles2funcs.h in Headers */, + A7D8BA4523E2514400DCD162 /* SDL_glesfuncs.h in Headers */, + A7D8BA7B23E2514400DCD162 /* SDL_glfuncs.h in Headers */, + A7D88BE423E24BED00DCD162 /* SDL_haptic.h in Headers */, + A7D8AABE23E2514100DCD162 /* SDL_haptic_c.h in Headers */, + F316AB902B5A02C3002EF551 /* yuv_rgb_internal.h in Headers */, + A75FDBC723EA380300529352 /* SDL_hidapi_rumble.h in Headers */, + A7D8B55923E2514300DCD162 /* SDL_hidapijoystick_c.h in Headers */, + A7D88BE523E24BED00DCD162 /* SDL_hints.h in Headers */, + A7D8B94C23E2514400DCD162 /* SDL_hints_c.h in Headers */, + F316ABCF2B5A02C3002EF551 /* yuv_rgb_lsx_func.h in Headers */, + A7D8A99B23E2514000DCD162 /* SDL_internal.h in Headers */, + F395C1952569C68F00942BFF /* SDL_iokitjoystick_c.h in Headers */, + A7D88BE623E24BED00DCD162 /* SDL_joystick.h in Headers */, + A7D8B58923E2514300DCD162 /* SDL_joystick_c.h in Headers */, + F316AB872B5A02C3002EF551 /* yuv_rgb_common.h in Headers */, + A7D88BE723E24BED00DCD162 /* SDL_keyboard.h in Headers */, + A7D8BB8923E2514500DCD162 /* SDL_keyboard_c.h in Headers */, + A7D88BEB23E24BED00DCD162 /* SDL_keycode.h in Headers */, + A7D88BED23E24BED00DCD162 /* SDL_loadso.h in Headers */, + F3631C652488534E004F28EA /* SDL_locale.h in Headers */, + A7D88BEF23E24BED00DCD162 /* SDL_log.h in Headers */, + A7D88BF123E24BED00DCD162 /* SDL_main.h in Headers */, + A7D88BF223E24BED00DCD162 /* SDL_messagebox.h in Headers */, + F386F6E92884663E001840AA /* SDL_log_c.h in Headers */, + A7D88BEA23E24BED00DCD162 /* SDL_metal.h in Headers */, + F395C1BC2569C6A000942BFF /* SDL_mfijoystick_c.h in Headers */, + F392819F25860422003191A7 /* SDL_misc.h in Headers */, + A7D88BF323E24BED00DCD162 /* SDL_mouse.h in Headers */, + A7D8BB1D23E2514500DCD162 /* SDL_mouse_c.h in Headers */, + F38233872738EB8600F7F527 /* SDL_hidapi.h in Headers */, + A7D88BF423E24BED00DCD162 /* SDL_mutex.h in Headers */, + A7D88BF523E24BED00DCD162 /* SDL_name.h in Headers */, + A7D8ABFF23E2514100DCD162 /* SDL_nullevents_c.h in Headers */, + A7D8ABE723E2514100DCD162 /* SDL_nullframebuffer_c.h in Headers */, + A7D8ABF923E2514100DCD162 /* SDL_nullvideo.h in Headers */, + A7D8AB5D23E2514100DCD162 /* SDL_offscreenevents_c.h in Headers */, + A7D8AB8123E2514100DCD162 /* SDL_offscreenframebuffer_c.h in Headers */, + A7D8AB6F23E2514100DCD162 /* SDL_offscreenvideo.h in Headers */, + A7D8AB8723E2514100DCD162 /* SDL_offscreenwindow.h in Headers */, + A7D88BF623E24BED00DCD162 /* SDL_opengl.h in Headers */, + A7D88BF723E24BED00DCD162 /* SDL_opengl_glext.h in Headers */, + A7D88BF823E24BED00DCD162 /* SDL_opengles.h in Headers */, + A7D88BF923E24BED00DCD162 /* SDL_opengles2.h in Headers */, + A7D88BFA23E24BED00DCD162 /* SDL_opengles2_gl2.h in Headers */, + A7D88BFB23E24BED00DCD162 /* SDL_opengles2_gl2ext.h in Headers */, + A7D88BFC23E24BED00DCD162 /* SDL_opengles2_gl2platform.h in Headers */, + A7D88BFD23E24BED00DCD162 /* SDL_opengles2_khrplatform.h in Headers */, + A7D88BFE23E24BED00DCD162 /* SDL_pixels.h in Headers */, + A7D8B2C223E2514200DCD162 /* SDL_pixels_c.h in Headers */, + A7D88BFF23E24BED00DCD162 /* SDL_platform.h in Headers */, + A7D88C0023E24BED00DCD162 /* SDL_power.h in Headers */, + A7D88C0123E24BED00DCD162 /* SDL_quit.h in Headers */, + A7D88C0223E24BED00DCD162 /* SDL_rect.h in Headers */, + A7D8AC0523E2514100DCD162 /* SDL_rect_c.h in Headers */, + A7D88C0423E24BED00DCD162 /* SDL_render.h in Headers */, + A7D8B9FD23E2514400DCD162 /* SDL_render_sw_c.h in Headers */, + A7D88C0523E24BED00DCD162 /* SDL_revision.h in Headers */, + A7D8BA3323E2514400DCD162 /* SDL_rotate.h in Headers */, + F3973FA428A59BDD00B84553 /* SDL_vacopy.h in Headers */, + A7D88C0723E24BED00DCD162 /* SDL_rwops.h in Headers */, + A7D8B5C523E2514300DCD162 /* SDL_rwopsbundlesupport.h in Headers */, + A7D88C0823E24BED00DCD162 /* SDL_scancode.h in Headers */, + A7D88BE923E24BED00DCD162 /* SDL_sensor.h in Headers */, + A7D8A98F23E2514000DCD162 /* SDL_sensor_c.h in Headers */, + F386F6F22884663E001840AA /* SDL_utils_c.h in Headers */, + A7D8BA7523E2514400DCD162 /* SDL_shaders_gl.h in Headers */, + A7D8BA5123E2514400DCD162 /* SDL_shaders_gles2.h in Headers */, + A1BB8B6E27F6CF330057CFA8 /* SDL_list.h in Headers */, + A7D8B98E23E2514400DCD162 /* SDL_shaders_metal_ios.h in Headers */, + A7D8B99D23E2514400DCD162 /* SDL_shaders_metal_osx.h in Headers */, + A7D8B9A323E2514400DCD162 /* SDL_shaders_metal_tvos.h in Headers */, + A7D88C0A23E24BED00DCD162 /* SDL_shape.h in Headers */, + A7D8AC0B23E2514100DCD162 /* SDL_shape_internals.h in Headers */, + A7D88C0C23E24BED00DCD162 /* SDL_stdinc.h in Headers */, + A7D8B4C623E2514300DCD162 /* SDL_steamcontroller.h in Headers */, + A7D88C0D23E24BED00DCD162 /* SDL_surface.h in Headers */, + A7D8B85C23E2514400DCD162 /* SDL_sysaudio.h in Headers */, + A7D8AAD623E2514100DCD162 /* SDL_syshaptic.h in Headers */, + A7D8AAE223E2514100DCD162 /* SDL_syshaptic_c.h in Headers */, + A7D8B58323E2514300DCD162 /* SDL_sysjoystick.h in Headers */, + 560572182473688B00B46B66 /* SDL_syslocale.h in Headers */, + A7D8B44223E2514300DCD162 /* SDL_sysmutex_c.h in Headers */, + A7D8B5D723E2514300DCD162 /* SDL_syspower.h in Headers */, + A7D8B61323E2514300DCD162 /* SDL_syspower.h in Headers */, + A7D8B9D923E2514400DCD162 /* SDL_sysrender.h in Headers */, + F362B9482B33920500D30B94 /* SDL_hidapi_nintendo.h in Headers */, + F316ABAB2B5A02C3002EF551 /* yuv_rgb_lsx.h in Headers */, + A7D8A97D23E2514000DCD162 /* SDL_syssensor.h in Headers */, + A7D88C0E23E24BED00DCD162 /* SDL_system.h in Headers */, + A7D8B3E823E2514300DCD162 /* SDL_systhread.h in Headers */, + A7D8B42A23E2514300DCD162 /* SDL_systhread_c.h in Headers */, + 5616CA54252BB35B005D5928 /* SDL_sysurl.h in Headers */, + A7D8AC4123E2514100DCD162 /* SDL_sysvideo.h in Headers */, + A7D88C0F23E24BED00DCD162 /* SDL_syswm.h in Headers */, + A7D88C1123E24BED00DCD162 /* SDL_thread.h in Headers */, + A7D8B3EE23E2514300DCD162 /* SDL_thread_c.h in Headers */, + A7D88C1223E24BED00DCD162 /* SDL_timer.h in Headers */, + A7D8AB3323E2514100DCD162 /* SDL_timer_c.h in Headers */, + A7D88C1423E24BED00DCD162 /* SDL_touch.h in Headers */, + A7D8BB6523E2514500DCD162 /* SDL_touch_c.h in Headers */, + A7D88C1523E24BED00DCD162 /* SDL_types.h in Headers */, + A7D8ACCB23E2514100DCD162 /* SDL_uikitappdelegate.h in Headers */, + A7D8AC7723E2514100DCD162 /* SDL_uikitclipboard.h in Headers */, + A7D8ACBF23E2514100DCD162 /* SDL_uikitevents.h in Headers */, + A7D8AC9523E2514100DCD162 /* SDL_uikitmessagebox.h in Headers */, + A7D8AC5F23E2514100DCD162 /* SDL_uikitmetalview.h in Headers */, + A7D8AC6B23E2514100DCD162 /* SDL_uikitmodes.h in Headers */, + A7D8ACD723E2514100DCD162 /* SDL_uikitopengles.h in Headers */, + A7D8ACB323E2514100DCD162 /* SDL_uikitopenglview.h in Headers */, + A7D8AC7D23E2514100DCD162 /* SDL_uikitvideo.h in Headers */, + A7D8AC4723E2514100DCD162 /* SDL_uikitview.h in Headers */, + A7D8AC8923E2514100DCD162 /* SDL_uikitviewcontroller.h in Headers */, + A7D8ACE323E2514100DCD162 /* SDL_uikitvulkan.h in Headers */, + A7D8AC9B23E2514100DCD162 /* SDL_uikitwindow.h in Headers */, + A7D88C1623E24BED00DCD162 /* SDL_version.h in Headers */, + A7D88C1723E24BED00DCD162 /* SDL_video.h in Headers */, + 75E09165241EA924004729E1 /* SDL_virtualjoystick_c.h in Headers */, + A7D88C1923E24BED00DCD162 /* SDL_vulkan.h in Headers */, + A7D8AD1F23E2514100DCD162 /* SDL_vulkan_internal.h in Headers */, + A7D8B86E23E2514400DCD162 /* SDL_wave.h in Headers */, + A7D8BBAD23E2514500DCD162 /* SDL_windowevents_c.h in Headers */, + A7D8B3B223E2514200DCD162 /* SDL_yuv_c.h in Headers */, + A7D8B9CD23E2514400DCD162 /* SDL_yuv_sw_c.h in Headers */, + A7D88BCC23E24BED00DCD162 /* begin_code.h in Headers */, + A7D8BB4723E2514500DCD162 /* blank_cursor.h in Headers */, + F362B9542B33EB7300D30B94 /* SDL_steam_virtual_gamepad.h in Headers */, + A7D88BCE23E24BED00DCD162 /* close_code.h in Headers */, + A7D8B5B923E2514300DCD162 /* controller_type.h in Headers */, + A7D8BB4D23E2514500DCD162 /* default_cursor.h in Headers */, + A7D8B23E23E2514200DCD162 /* egl.h in Headers */, + A7D8B24423E2514200DCD162 /* eglext.h in Headers */, + A7D8B24A23E2514200DCD162 /* eglplatform.h in Headers */, + A7D8B22C23E2514200DCD162 /* gl2.h in Headers */, + A7D8B22623E2514200DCD162 /* gl2ext.h in Headers */, + A7D8B23223E2514200DCD162 /* gl2platform.h in Headers */, + A75FDB5A23E39E6100529352 /* hidapi.h in Headers */, + A7D8B23823E2514200DCD162 /* khrplatform.h in Headers */, + A7D8BB0523E2514500DCD162 /* math_libm.h in Headers */, + A7D8BAC323E2514500DCD162 /* math_private.h in Headers */, + A7D8BB5323E2514500DCD162 /* scancodes_darwin.h in Headers */, + A7D8BB5F23E2514500DCD162 /* scancodes_linux.h in Headers */, + A7D8BB2323E2514500DCD162 /* scancodes_windows.h in Headers */, + A7D8BBA123E2514500DCD162 /* scancodes_xfree86.h in Headers */, + A7D8B57123E2514300DCD162 /* usb_ids.h in Headers */, + A1626A542617008D003F1973 /* SDL_triangle.h in Headers */, + A7D8B25623E2514200DCD162 /* vk_icd.h in Headers */, + A7D8B25023E2514200DCD162 /* vk_layer.h in Headers */, + A7D8B26823E2514200DCD162 /* vk_platform.h in Headers */, + A7D8B2B023E2514200DCD162 /* vk_sdk_platform.h in Headers */, + A7D8B26223E2514200DCD162 /* vulkan.h in Headers */, + A7D8B2B623E2514200DCD162 /* vulkan_android.h in Headers */, + A7D8B2AA23E2514200DCD162 /* vulkan_core.h in Headers */, + A7D8B27423E2514200DCD162 /* vulkan_fuchsia.h in Headers */, + A7D8B2A423E2514200DCD162 /* vulkan_ios.h in Headers */, + A7D8B28623E2514200DCD162 /* vulkan_macos.h in Headers */, + A7D8B25C23E2514200DCD162 /* vulkan_vi.h in Headers */, + A7D8B27A23E2514200DCD162 /* vulkan_wayland.h in Headers */, + A7D8B28023E2514200DCD162 /* vulkan_win32.h in Headers */, + F362B9342B33916600D30B94 /* controller_list.h in Headers */, + A7D8B29223E2514200DCD162 /* vulkan_xcb.h in Headers */, + A7D8B29E23E2514200DCD162 /* vulkan_xlib.h in Headers */, + A7D8B28C23E2514200DCD162 /* vulkan_xlib_xrandr.h in Headers */, + A7D8B3D623E2514300DCD162 /* yuv_rgb.h in Headers */, + A7D8B3CA23E2514300DCD162 /* yuv_rgb_sse_func.h in Headers */, + A7D8B3D023E2514300DCD162 /* yuv_rgb_std_func.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A7D88D1823E24D3B00DCD162 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + A7D8B9A523E2514400DCD162 /* SDL_shaders_metal_tvos.h in Headers */, + A7D8ACD923E2514100DCD162 /* SDL_uikitopengles.h in Headers */, + A7D8AC6123E2514100DCD162 /* SDL_uikitmetalview.h in Headers */, + A7D8AC0D23E2514100DCD162 /* SDL_shape_internals.h in Headers */, + A7D8BA7D23E2514400DCD162 /* SDL_glfuncs.h in Headers */, + A7D8AC0723E2514100DCD162 /* SDL_rect_c.h in Headers */, + A7D8B99F23E2514400DCD162 /* SDL_shaders_metal_osx.h in Headers */, + A7D8B99023E2514400DCD162 /* SDL_shaders_metal_ios.h in Headers */, + A7D8AB8923E2514100DCD162 /* SDL_offscreenwindow.h in Headers */, + A7D8A97323E2514000DCD162 /* SDL_coremotionsensor.h in Headers */, + A7D8AC4923E2514100DCD162 /* SDL_uikitview.h in Headers */, + A7D8ACCD23E2514100DCD162 /* SDL_uikitappdelegate.h in Headers */, + A7D8BB3123E2514500DCD162 /* SDL_dropevents_c.h in Headers */, + A7D8AAC023E2514100DCD162 /* SDL_haptic_c.h in Headers */, + A7D8A94923E2514000DCD162 /* SDL_dataqueue.h in Headers */, + A7D8A96123E2514000DCD162 /* SDL_error_c.h in Headers */, + A7D8B98423E2514400DCD162 /* SDL_d3dmath.h in Headers */, + A7D8ABDD23E2514100DCD162 /* SDL_egl_c.h in Headers */, + A7D8B3D823E2514300DCD162 /* yuv_rgb.h in Headers */, + A7D8B79823E2514400DCD162 /* SDL_dummyaudio.h in Headers */, + A7D8AC9723E2514100DCD162 /* SDL_uikitmessagebox.h in Headers */, + A7D8B3F023E2514300DCD162 /* SDL_thread_c.h in Headers */, + A7D8AF0A23E2514100DCD162 /* SDL_cocoamessagebox.h in Headers */, + A7D8BA0523E2514400DCD162 /* SDL_blendfillrect.h in Headers */, + A7D8B55B23E2514300DCD162 /* SDL_hidapijoystick_c.h in Headers */, + A7D8B2C423E2514200DCD162 /* SDL_pixels_c.h in Headers */, + A7D8B58B23E2514300DCD162 /* SDL_joystick_c.h in Headers */, + F395C1972569C68F00942BFF /* SDL_iokitjoystick_c.h in Headers */, + A7D8B2B223E2514200DCD162 /* vk_sdk_platform.h in Headers */, + A7D8BB4923E2514500DCD162 /* blank_cursor.h in Headers */, + A75FDB5C23E39E6100529352 /* hidapi.h in Headers */, + A75FDBC923EA380300529352 /* SDL_hidapi_rumble.h in Headers */, + A7D8B85E23E2514400DCD162 /* SDL_sysaudio.h in Headers */, + A7D8BB0723E2514500DCD162 /* math_libm.h in Headers */, + A7D8AC7F23E2514100DCD162 /* SDL_uikitvideo.h in Headers */, + F316ABBF2B5A02C3002EF551 /* yuv_rgb_sse.h in Headers */, + A7D8AF2223E2514100DCD162 /* SDL_cocoamouse.h in Headers */, + A7D8ADF023E2514100DCD162 /* SDL_blit_slow.h in Headers */, + F3973FA628A59BDD00B84553 /* SDL_vacopy.h in Headers */, + A7D8B9CF23E2514400DCD162 /* SDL_yuv_sw_c.h in Headers */, + A7D8BBAF23E2514500DCD162 /* SDL_windowevents_c.h in Headers */, + A7D8AF0423E2514100DCD162 /* SDL_cocoavideo.h in Headers */, + 5605721A2473688C00B46B66 /* SDL_syslocale.h in Headers */, + A1BB8B7027F6CF330057CFA8 /* SDL_list.h in Headers */, + A7D8ACC123E2514100DCD162 /* SDL_uikitevents.h in Headers */, + A7D8BB3D23E2514500DCD162 /* SDL_gesture_c.h in Headers */, + A7D8BA7723E2514400DCD162 /* SDL_shaders_gl.h in Headers */, + A7D8B42C23E2514300DCD162 /* SDL_systhread_c.h in Headers */, + A7D8AE9223E2514100DCD162 /* SDL_cocoakeyboard.h in Headers */, + 5616CA5A252BB35D005D5928 /* SDL_sysurl.h in Headers */, + A7D8ACE523E2514100DCD162 /* SDL_uikitvulkan.h in Headers */, + A7D8B22823E2514200DCD162 /* gl2ext.h in Headers */, + A7D8BB7323E2514500DCD162 /* SDL_clipboardevents_c.h in Headers */, + A7D8AAE423E2514100DCD162 /* SDL_syshaptic_c.h in Headers */, + A7D8B94E23E2514400DCD162 /* SDL_hints_c.h in Headers */, + A7D8B7B623E2514400DCD162 /* SDL_audiodev_c.h in Headers */, + A7D8B7A423E2514400DCD162 /* SDL_audio_c.h in Headers */, + A7D8AC6D23E2514100DCD162 /* SDL_uikitmodes.h in Headers */, + A7D8B24023E2514200DCD162 /* egl.h in Headers */, + A7D8B23A23E2514200DCD162 /* khrplatform.h in Headers */, + A7D8AC8B23E2514100DCD162 /* SDL_uikitviewcontroller.h in Headers */, + A7D8A96723E2514000DCD162 /* SDL_dummysensor.h in Headers */, + A7D8B4C823E2514300DCD162 /* SDL_steamcontroller.h in Headers */, + A7D8B2B823E2514200DCD162 /* vulkan_android.h in Headers */, + A7D8B3D223E2514300DCD162 /* yuv_rgb_std_func.h in Headers */, + A7D8B2AC23E2514200DCD162 /* vulkan_core.h in Headers */, + F362B9562B33EB7300D30B94 /* SDL_steam_virtual_gamepad.h in Headers */, + A7D8A97F23E2514000DCD162 /* SDL_syssensor.h in Headers */, + F316AB892B5A02C3002EF551 /* yuv_rgb_common.h in Headers */, + A7D8AB0E23E2514100DCD162 /* SDL_dynapi.h in Headers */, + A7D8B61B23E2514300DCD162 /* SDL_assert_c.h in Headers */, + A7D8B8A623E2514400DCD162 /* SDL_diskaudio.h in Headers */, + A7D8B9F323E2514400DCD162 /* SDL_drawpoint.h in Headers */, + A7D8B87023E2514400DCD162 /* SDL_wave.h in Headers */, + A7D8AEE023E2514100DCD162 /* SDL_cocoaopengl.h in Headers */, + F316ABC82B5A02C3002EF551 /* yuv_rgb_std.h in Headers */, + A1626A562617008D003F1973 /* SDL_triangle.h in Headers */, + A7D8B3CC23E2514300DCD162 /* yuv_rgb_sse_func.h in Headers */, + A7D8AB5F23E2514100DCD162 /* SDL_offscreenevents_c.h in Headers */, + A7D8B8D023E2514400DCD162 /* SDL_coreaudio.h in Headers */, + A7D8BA1D23E2514400DCD162 /* SDL_draw.h in Headers */, + A7D8BA0B23E2514400DCD162 /* SDL_drawline.h in Headers */, + A7D8B3B423E2514200DCD162 /* SDL_yuv_c.h in Headers */, + A7D8BBA323E2514500DCD162 /* scancodes_xfree86.h in Headers */, + A7D8B5D923E2514300DCD162 /* SDL_syspower.h in Headers */, + A75FDAF823E35ED500529352 /* SDL_config_iphoneos.h in Headers */, + A7D8B24623E2514200DCD162 /* eglext.h in Headers */, + A7D8BBA923E2514500DCD162 /* SDL_events_c.h in Headers */, + A7D8BAC523E2514500DCD162 /* math_private.h in Headers */, + A7D8B27C23E2514200DCD162 /* vulkan_wayland.h in Headers */, + A7D8AE8623E2514100DCD162 /* SDL_cocoashape.h in Headers */, + A7D8BA5323E2514400DCD162 /* SDL_shaders_gles2.h in Headers */, + A7D8BA4723E2514400DCD162 /* SDL_glesfuncs.h in Headers */, + A7D8BA1123E2514400DCD162 /* SDL_blendpoint.h in Headers */, + A7D8AB7123E2514100DCD162 /* SDL_offscreenvideo.h in Headers */, + A7D8AC0123E2514100DCD162 /* SDL_nullevents_c.h in Headers */, + F316ABD12B5A02C3002EF551 /* yuv_rgb_lsx_func.h in Headers */, + A7D8B58523E2514300DCD162 /* SDL_sysjoystick.h in Headers */, + A7D8BB6123E2514500DCD162 /* scancodes_linux.h in Headers */, + A7D8BB6723E2514500DCD162 /* SDL_touch_c.h in Headers */, + F362B94A2B33920500D30B94 /* SDL_hidapi_nintendo.h in Headers */, + A7D8B4B023E2514300DCD162 /* SDL_gamecontrollerdb.h in Headers */, + A7D8AEEC23E2514100DCD162 /* SDL_cocoavulkan.h in Headers */, + A7D8B23423E2514200DCD162 /* gl2platform.h in Headers */, + A7D8B25223E2514200DCD162 /* vk_layer.h in Headers */, + A7D8B26A23E2514200DCD162 /* vk_platform.h in Headers */, + A7D8AEB623E2514100DCD162 /* SDL_cocoametalview.h in Headers */, + A7D8AEF223E2514100DCD162 /* SDL_cocoaopengles.h in Headers */, + A7D8B3BA23E2514200DCD162 /* SDL_blit.h in Headers */, + A7D8B28E23E2514200DCD162 /* vulkan_xlib_xrandr.h in Headers */, + A7D8A99123E2514000DCD162 /* SDL_sensor_c.h in Headers */, + A7D8B9DB23E2514400DCD162 /* SDL_sysrender.h in Headers */, + F316AB922B5A02C3002EF551 /* yuv_rgb_internal.h in Headers */, + A7D8BA3523E2514400DCD162 /* SDL_rotate.h in Headers */, + A7D8BB5523E2514500DCD162 /* scancodes_darwin.h in Headers */, + A7D8B5BB23E2514300DCD162 /* controller_type.h in Headers */, + A7D8AC7923E2514100DCD162 /* SDL_uikitclipboard.h in Headers */, + A7D8B2A023E2514200DCD162 /* vulkan_xlib.h in Headers */, + F386F6F42884663E001840AA /* SDL_utils_c.h in Headers */, + A7D8AC9D23E2514100DCD162 /* SDL_uikitwindow.h in Headers */, + A7D8B25E23E2514200DCD162 /* vulkan_vi.h in Headers */, + A7D8BB4F23E2514500DCD162 /* default_cursor.h in Headers */, + A7D8B9FF23E2514400DCD162 /* SDL_render_sw_c.h in Headers */, + A7D8ABFB23E2514100DCD162 /* SDL_nullvideo.h in Headers */, + A7D8B39C23E2514200DCD162 /* SDL_blit_copy.h in Headers */, + A7D8B3A223E2514200DCD162 /* SDL_RLEaccel_c.h in Headers */, + 75E09167241EA924004729E1 /* SDL_virtualjoystick_c.h in Headers */, + A7D8B24C23E2514200DCD162 /* eglplatform.h in Headers */, + A7D8B3EA23E2514300DCD162 /* SDL_systhread.h in Headers */, + A7D8AECE23E2514100DCD162 /* SDL_cocoaclipboard.h in Headers */, + A7D8AEF823E2514100DCD162 /* SDL_cocoamodes.h in Headers */, + A7D8ACB523E2514100DCD162 /* SDL_uikitopenglview.h in Headers */, + A7D8B28223E2514200DCD162 /* vulkan_win32.h in Headers */, + F31A92CD28D4CB39003BFD6A /* SDL_offscreenopengles.h in Headers */, + A7D8AB8323E2514100DCD162 /* SDL_offscreenframebuffer_c.h in Headers */, + A7D8BB4323E2514500DCD162 /* SDL_displayevents_c.h in Headers */, + A7D8AB3523E2514100DCD162 /* SDL_timer_c.h in Headers */, + A7D8B22E23E2514200DCD162 /* gl2.h in Headers */, + A7D8B44423E2514300DCD162 /* SDL_sysmutex_c.h in Headers */, + A7D8BB2523E2514500DCD162 /* scancodes_windows.h in Headers */, + A7D8B5C723E2514300DCD162 /* SDL_rwopsbundlesupport.h in Headers */, + F386F6EB2884663E001840AA /* SDL_log_c.h in Headers */, + A7D8B61523E2514300DCD162 /* SDL_syspower.h in Headers */, + A7D8B28823E2514200DCD162 /* vulkan_macos.h in Headers */, + A7D8B29423E2514200DCD162 /* vulkan_xcb.h in Headers */, + F382072B284F3643004DD584 /* SDL_guid.h in Headers */, + A7D8B2A623E2514200DCD162 /* vulkan_ios.h in Headers */, + A7D8A99D23E2514000DCD162 /* SDL_internal.h in Headers */, + A7D8B26423E2514200DCD162 /* vulkan.h in Headers */, + A7D8BB8B23E2514500DCD162 /* SDL_keyboard_c.h in Headers */, + A7D8BB1F23E2514500DCD162 /* SDL_mouse_c.h in Headers */, + F395C1BE2569C6A000942BFF /* SDL_mfijoystick_c.h in Headers */, + A7D8B2BE23E2514200DCD162 /* SDL_blit_auto.h in Headers */, + A7D8B9ED23E2514400DCD162 /* SDL_blendline.h in Headers */, + A7D8AAD823E2514100DCD162 /* SDL_syshaptic.h in Headers */, + A7D8AD2123E2514100DCD162 /* SDL_vulkan_internal.h in Headers */, + A7D8AF1623E2514100DCD162 /* SDL_cocoaevents.h in Headers */, + F362B9362B33916600D30B94 /* controller_list.h in Headers */, + A7D8B25823E2514200DCD162 /* vk_icd.h in Headers */, + A7D8ABE923E2514100DCD162 /* SDL_nullframebuffer_c.h in Headers */, + A7D8AB2023E2514100DCD162 /* SDL_dynapi_procs.h in Headers */, + A7D8B27623E2514200DCD162 /* vulkan_fuchsia.h in Headers */, + A7D8B57323E2514300DCD162 /* usb_ids.h in Headers */, + F316ABAD2B5A02C3002EF551 /* yuv_rgb_lsx.h in Headers */, + A7D8BA5923E2514400DCD162 /* SDL_gles2funcs.h in Headers */, + A7D8AC4323E2514100DCD162 /* SDL_sysvideo.h in Headers */, + A7D8AB1423E2514100DCD162 /* SDL_dynapi_overrides.h in Headers */, + A7D8AEFE23E2514100DCD162 /* SDL_cocoawindow.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BECDF5FF0761BA81005FE872 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + AA75585E1595D4D800BBD41B /* SDL.h in Headers */, + A7D8B39E23E2514200DCD162 /* SDL_RLEaccel_c.h in Headers */, + AA7557FE1595D4D800BBD41B /* SDL_assert.h in Headers */, + A7D8B61723E2514300DCD162 /* SDL_assert_c.h in Headers */, + AA7558001595D4D800BBD41B /* SDL_atomic.h in Headers */, + AA7558021595D4D800BBD41B /* SDL_audio.h in Headers */, + A7D8B7A023E2514400DCD162 /* SDL_audio_c.h in Headers */, + A7D8B7B223E2514400DCD162 /* SDL_audiodev_c.h in Headers */, + AADA5B8716CCAB3000107CF7 /* SDL_bits.h in Headers */, + A7D8BA0123E2514400DCD162 /* SDL_blendfillrect.h in Headers */, + A7D8B9E923E2514400DCD162 /* SDL_blendline.h in Headers */, + F316ABC42B5A02C3002EF551 /* yuv_rgb_std.h in Headers */, + AA7558041595D4D800BBD41B /* SDL_blendmode.h in Headers */, + A7D8BA0D23E2514400DCD162 /* SDL_blendpoint.h in Headers */, + A7D8B3B623E2514200DCD162 /* SDL_blit.h in Headers */, + A7D8B2BA23E2514200DCD162 /* SDL_blit_auto.h in Headers */, + A7D8B39823E2514200DCD162 /* SDL_blit_copy.h in Headers */, + A7D8ADEC23E2514100DCD162 /* SDL_blit_slow.h in Headers */, + F3820727284F3643004DD584 /* SDL_guid.h in Headers */, + AA7558061595D4D800BBD41B /* SDL_clipboard.h in Headers */, + A7D8BB6F23E2514500DCD162 /* SDL_clipboardevents_c.h in Headers */, + A7D8AECA23E2514100DCD162 /* SDL_cocoaclipboard.h in Headers */, + A7D8AF1223E2514100DCD162 /* SDL_cocoaevents.h in Headers */, + A7D8AE8E23E2514100DCD162 /* SDL_cocoakeyboard.h in Headers */, + A7D8AF0623E2514100DCD162 /* SDL_cocoamessagebox.h in Headers */, + A7D8AEB223E2514100DCD162 /* SDL_cocoametalview.h in Headers */, + A7D8AEF423E2514100DCD162 /* SDL_cocoamodes.h in Headers */, + A7D8AF1E23E2514100DCD162 /* SDL_cocoamouse.h in Headers */, + A7D8AEDC23E2514100DCD162 /* SDL_cocoaopengl.h in Headers */, + A7D8AEEE23E2514100DCD162 /* SDL_cocoaopengles.h in Headers */, + A7D8AE8223E2514100DCD162 /* SDL_cocoashape.h in Headers */, + A7D8AF0023E2514100DCD162 /* SDL_cocoavideo.h in Headers */, + A7D8AEE823E2514100DCD162 /* SDL_cocoavulkan.h in Headers */, + A7D8AEFA23E2514100DCD162 /* SDL_cocoawindow.h in Headers */, + AA75580A1595D4D800BBD41B /* SDL_config.h in Headers */, + AA7558081595D4D800BBD41B /* SDL_config_macosx.h in Headers */, + AA75580C1595D4D800BBD41B /* SDL_copying.h in Headers */, + A7D8B8CC23E2514400DCD162 /* SDL_coreaudio.h in Headers */, + A7D8A96F23E2514000DCD162 /* SDL_coremotionsensor.h in Headers */, + AA75580E1595D4D800BBD41B /* SDL_cpuinfo.h in Headers */, + F31A92C828D4CB39003BFD6A /* SDL_offscreenopengles.h in Headers */, + A7D8B98023E2514400DCD162 /* SDL_d3dmath.h in Headers */, + A7D8A94523E2514000DCD162 /* SDL_dataqueue.h in Headers */, + A7D8B8A223E2514400DCD162 /* SDL_diskaudio.h in Headers */, + A7D8BB3F23E2514500DCD162 /* SDL_displayevents_c.h in Headers */, + A7D8BA1923E2514400DCD162 /* SDL_draw.h in Headers */, + A7D8BA0723E2514400DCD162 /* SDL_drawline.h in Headers */, + F316ABBB2B5A02C3002EF551 /* yuv_rgb_sse.h in Headers */, + A7D8B9EF23E2514400DCD162 /* SDL_drawpoint.h in Headers */, + A7D8BB2D23E2514500DCD162 /* SDL_dropevents_c.h in Headers */, + A7D8B79423E2514400DCD162 /* SDL_dummyaudio.h in Headers */, + A7D8A96323E2514000DCD162 /* SDL_dummysensor.h in Headers */, + A7D8AB0A23E2514100DCD162 /* SDL_dynapi.h in Headers */, + A7D8AB1023E2514100DCD162 /* SDL_dynapi_overrides.h in Headers */, + A7D8AB1C23E2514100DCD162 /* SDL_dynapi_procs.h in Headers */, + 5C2EF7011FC9EF10003F5197 /* SDL_egl.h in Headers */, + A7D8ABD923E2514100DCD162 /* SDL_egl_c.h in Headers */, + AA7558101595D4D800BBD41B /* SDL_endian.h in Headers */, + AA7558121595D4D800BBD41B /* SDL_error.h in Headers */, + A7D8A95D23E2514000DCD162 /* SDL_error_c.h in Headers */, + AA7558141595D4D800BBD41B /* SDL_events.h in Headers */, + A7D8BBA523E2514500DCD162 /* SDL_events_c.h in Headers */, + 567E2F2117C44C35005F1892 /* SDL_filesystem.h in Headers */, + A77E6EB4167AB0A90010E40B /* SDL_gamecontroller.h in Headers */, + A7D8B4AC23E2514300DCD162 /* SDL_gamecontrollerdb.h in Headers */, + AA7558161595D4D800BBD41B /* SDL_gesture.h in Headers */, + A7D8BB3923E2514500DCD162 /* SDL_gesture_c.h in Headers */, + A7D8BA5523E2514400DCD162 /* SDL_gles2funcs.h in Headers */, + A7D8BA4323E2514400DCD162 /* SDL_glesfuncs.h in Headers */, + A7D8BA7923E2514400DCD162 /* SDL_glfuncs.h in Headers */, + AA7558181595D4D800BBD41B /* SDL_haptic.h in Headers */, + A7D8AABC23E2514100DCD162 /* SDL_haptic_c.h in Headers */, + F316AB8E2B5A02C3002EF551 /* yuv_rgb_internal.h in Headers */, + A75FDBC523EA380300529352 /* SDL_hidapi_rumble.h in Headers */, + A7D8B55723E2514300DCD162 /* SDL_hidapijoystick_c.h in Headers */, + AA75581A1595D4D800BBD41B /* SDL_hints.h in Headers */, + A7D8B94A23E2514400DCD162 /* SDL_hints_c.h in Headers */, + F316ABCD2B5A02C3002EF551 /* yuv_rgb_lsx_func.h in Headers */, + A7D8A99923E2514000DCD162 /* SDL_internal.h in Headers */, + F395C1932569C68F00942BFF /* SDL_iokitjoystick_c.h in Headers */, + AA75581E1595D4D800BBD41B /* SDL_joystick.h in Headers */, + A7D8B58723E2514300DCD162 /* SDL_joystick_c.h in Headers */, + F316AB852B5A02C3002EF551 /* yuv_rgb_common.h in Headers */, + AA7558201595D4D800BBD41B /* SDL_keyboard.h in Headers */, + A7D8BB8723E2514500DCD162 /* SDL_keyboard_c.h in Headers */, + AA7558221595D4D800BBD41B /* SDL_keycode.h in Headers */, + AA7558241595D4D800BBD41B /* SDL_loadso.h in Headers */, + 566E267A2462701100718109 /* SDL_locale.h in Headers */, + AA7558261595D4D800BBD41B /* SDL_log.h in Headers */, + AA7558281595D4D800BBD41B /* SDL_main.h in Headers */, + AA9FF95A1637CBF9000DF050 /* SDL_messagebox.h in Headers */, + F386F6E72884663E001840AA /* SDL_log_c.h in Headers */, + FA24348B21D41FFB00B8918A /* SDL_metal.h in Headers */, + F395C1BA2569C6A000942BFF /* SDL_mfijoystick_c.h in Headers */, + 5616CA50252BB2BE005D5928 /* SDL_misc.h in Headers */, + AA75582A1595D4D800BBD41B /* SDL_mouse.h in Headers */, + A7D8BB1B23E2514500DCD162 /* SDL_mouse_c.h in Headers */, + F38233852738EB8600F7F527 /* SDL_hidapi.h in Headers */, + AA75582C1595D4D800BBD41B /* SDL_mutex.h in Headers */, + AA75582E1595D4D800BBD41B /* SDL_name.h in Headers */, + A7D8ABFD23E2514100DCD162 /* SDL_nullevents_c.h in Headers */, + A7D8ABE523E2514100DCD162 /* SDL_nullframebuffer_c.h in Headers */, + A7D8ABF723E2514100DCD162 /* SDL_nullvideo.h in Headers */, + A7D8AB5B23E2514100DCD162 /* SDL_offscreenevents_c.h in Headers */, + A7D8AB7F23E2514100DCD162 /* SDL_offscreenframebuffer_c.h in Headers */, + A7D8AB6D23E2514100DCD162 /* SDL_offscreenvideo.h in Headers */, + A7D8AB8523E2514100DCD162 /* SDL_offscreenwindow.h in Headers */, + AA7558301595D4D800BBD41B /* SDL_opengl.h in Headers */, + AAC070F9195606770073DCDF /* SDL_opengl_glext.h in Headers */, + AA7558321595D4D800BBD41B /* SDL_opengles.h in Headers */, + AA7558341595D4D800BBD41B /* SDL_opengles2.h in Headers */, + AAC070FC195606770073DCDF /* SDL_opengles2_gl2.h in Headers */, + AAC070FF195606770073DCDF /* SDL_opengles2_gl2ext.h in Headers */, + AAC07102195606770073DCDF /* SDL_opengles2_gl2platform.h in Headers */, + AAC07105195606770073DCDF /* SDL_opengles2_khrplatform.h in Headers */, + AA7558361595D4D800BBD41B /* SDL_pixels.h in Headers */, + A7D8B2C023E2514200DCD162 /* SDL_pixels_c.h in Headers */, + AA7558381595D4D800BBD41B /* SDL_platform.h in Headers */, + AA75583A1595D4D800BBD41B /* SDL_power.h in Headers */, + AA75583C1595D4D800BBD41B /* SDL_quit.h in Headers */, + AA75583E1595D4D800BBD41B /* SDL_rect.h in Headers */, + A7D8AC0323E2514100DCD162 /* SDL_rect_c.h in Headers */, + AA7558401595D4D800BBD41B /* SDL_render.h in Headers */, + A7D8B9FB23E2514400DCD162 /* SDL_render_sw_c.h in Headers */, + AA7558421595D4D800BBD41B /* SDL_revision.h in Headers */, + A7D8BA3123E2514400DCD162 /* SDL_rotate.h in Headers */, + F3973FA228A59BDD00B84553 /* SDL_vacopy.h in Headers */, + AA7558441595D4D800BBD41B /* SDL_rwops.h in Headers */, + A7D8B5C323E2514300DCD162 /* SDL_rwopsbundlesupport.h in Headers */, + AA7558461595D4D800BBD41B /* SDL_scancode.h in Headers */, + F3950CD8212BC88D00F51292 /* SDL_sensor.h in Headers */, + A7D8A98D23E2514000DCD162 /* SDL_sensor_c.h in Headers */, + F386F6F02884663E001840AA /* SDL_utils_c.h in Headers */, + A7D8BA7323E2514400DCD162 /* SDL_shaders_gl.h in Headers */, + A7D8BA4F23E2514400DCD162 /* SDL_shaders_gles2.h in Headers */, + A1BB8B6C27F6CF330057CFA8 /* SDL_list.h in Headers */, + A7D8B98C23E2514400DCD162 /* SDL_shaders_metal_ios.h in Headers */, + A7D8B99B23E2514400DCD162 /* SDL_shaders_metal_osx.h in Headers */, + A7D8B9A123E2514400DCD162 /* SDL_shaders_metal_tvos.h in Headers */, + AA7558481595D4D800BBD41B /* SDL_shape.h in Headers */, + A7D8AC0923E2514100DCD162 /* SDL_shape_internals.h in Headers */, + AA75584A1595D4D800BBD41B /* SDL_stdinc.h in Headers */, + A7D8BBC723E2561500DCD162 /* SDL_steamcontroller.h in Headers */, + AA75584C1595D4D800BBD41B /* SDL_surface.h in Headers */, + A7D8B85A23E2514400DCD162 /* SDL_sysaudio.h in Headers */, + A7D8AAD423E2514100DCD162 /* SDL_syshaptic.h in Headers */, + A7D8AAE023E2514100DCD162 /* SDL_syshaptic_c.h in Headers */, + A7D8B58123E2514300DCD162 /* SDL_sysjoystick.h in Headers */, + 566E26E1246274CC00718109 /* SDL_syslocale.h in Headers */, + A7D8B44023E2514300DCD162 /* SDL_sysmutex_c.h in Headers */, + A7D8B5D523E2514300DCD162 /* SDL_syspower.h in Headers */, + A7D8B61123E2514300DCD162 /* SDL_syspower.h in Headers */, + A7D8B9D723E2514400DCD162 /* SDL_sysrender.h in Headers */, + F362B9462B33920500D30B94 /* SDL_hidapi_nintendo.h in Headers */, + F316ABA92B5A02C3002EF551 /* yuv_rgb_lsx.h in Headers */, + A7D8A97B23E2514000DCD162 /* SDL_syssensor.h in Headers */, + AA75584E1595D4D800BBD41B /* SDL_system.h in Headers */, + A7D8B3E623E2514300DCD162 /* SDL_systhread.h in Headers */, + A7D8B42823E2514300DCD162 /* SDL_systhread_c.h in Headers */, + 5616CA4D252BB2A6005D5928 /* SDL_sysurl.h in Headers */, + A7D8AC3F23E2514100DCD162 /* SDL_sysvideo.h in Headers */, + AA7558501595D4D800BBD41B /* SDL_syswm.h in Headers */, + AA7558521595D4D800BBD41B /* SDL_thread.h in Headers */, + A7D8B3EC23E2514300DCD162 /* SDL_thread_c.h in Headers */, + AA7558541595D4D800BBD41B /* SDL_timer.h in Headers */, + A7D8AB3123E2514100DCD162 /* SDL_timer_c.h in Headers */, + AA7558561595D4D800BBD41B /* SDL_touch.h in Headers */, + A7D8BB6323E2514500DCD162 /* SDL_touch_c.h in Headers */, + AA7558581595D4D800BBD41B /* SDL_types.h in Headers */, + A7D8BBD223E2574800DCD162 /* SDL_uikitappdelegate.h in Headers */, + A7D8BBD423E2574800DCD162 /* SDL_uikitclipboard.h in Headers */, + A7D8BBD623E2574800DCD162 /* SDL_uikitevents.h in Headers */, + A7D8BBD823E2574800DCD162 /* SDL_uikitmessagebox.h in Headers */, + A7D8BBDA23E2574800DCD162 /* SDL_uikitmetalview.h in Headers */, + A7D8BBDC23E2574800DCD162 /* SDL_uikitmodes.h in Headers */, + A7D8BBDE23E2574800DCD162 /* SDL_uikitopengles.h in Headers */, + A7D8BBE023E2574800DCD162 /* SDL_uikitopenglview.h in Headers */, + A7D8BBE223E2574800DCD162 /* SDL_uikitvideo.h in Headers */, + A7D8BBE423E2574800DCD162 /* SDL_uikitview.h in Headers */, + A7D8BBE623E2574800DCD162 /* SDL_uikitviewcontroller.h in Headers */, + A7D8BBE823E2574800DCD162 /* SDL_uikitvulkan.h in Headers */, + A7D8BBEA23E2574800DCD162 /* SDL_uikitwindow.h in Headers */, + AA75585A1595D4D800BBD41B /* SDL_version.h in Headers */, + AA75585C1595D4D800BBD41B /* SDL_video.h in Headers */, + 75E09163241EA924004729E1 /* SDL_virtualjoystick_c.h in Headers */, + AA8167541F5E727800518735 /* SDL_vulkan.h in Headers */, + A7D8AD1D23E2514100DCD162 /* SDL_vulkan_internal.h in Headers */, + A7D8B86C23E2514400DCD162 /* SDL_wave.h in Headers */, + A7D8BBAB23E2514500DCD162 /* SDL_windowevents_c.h in Headers */, + A7D8B3B023E2514200DCD162 /* SDL_yuv_c.h in Headers */, + A7D8B9CB23E2514400DCD162 /* SDL_yuv_sw_c.h in Headers */, + AA7557FA1595D4D800BBD41B /* begin_code.h in Headers */, + A7D8BB4523E2514500DCD162 /* blank_cursor.h in Headers */, + F362B9522B33EB7300D30B94 /* SDL_steam_virtual_gamepad.h in Headers */, + AA7557FC1595D4D800BBD41B /* close_code.h in Headers */, + A7D8B5B723E2514300DCD162 /* controller_type.h in Headers */, + A7D8BB4B23E2514500DCD162 /* default_cursor.h in Headers */, + A7D8B23C23E2514200DCD162 /* egl.h in Headers */, + A7D8B24223E2514200DCD162 /* eglext.h in Headers */, + A7D8B24823E2514200DCD162 /* eglplatform.h in Headers */, + A7D8B22A23E2514200DCD162 /* gl2.h in Headers */, + A7D8B22423E2514200DCD162 /* gl2ext.h in Headers */, + A7D8B23023E2514200DCD162 /* gl2platform.h in Headers */, + A75FDB5823E39E6100529352 /* hidapi.h in Headers */, + A7D8B23623E2514200DCD162 /* khrplatform.h in Headers */, + A7D8BB0323E2514500DCD162 /* math_libm.h in Headers */, + A7D8BAC123E2514500DCD162 /* math_private.h in Headers */, + A7D8BB5123E2514500DCD162 /* scancodes_darwin.h in Headers */, + A7D8BB5D23E2514500DCD162 /* scancodes_linux.h in Headers */, + A7D8BB2123E2514500DCD162 /* scancodes_windows.h in Headers */, + A7D8BB9F23E2514500DCD162 /* scancodes_xfree86.h in Headers */, + A7D8B56F23E2514300DCD162 /* usb_ids.h in Headers */, + A1626A522617008D003F1973 /* SDL_triangle.h in Headers */, + A7D8B25423E2514200DCD162 /* vk_icd.h in Headers */, + A7D8B24E23E2514200DCD162 /* vk_layer.h in Headers */, + A7D8B26623E2514200DCD162 /* vk_platform.h in Headers */, + A7D8B2AE23E2514200DCD162 /* vk_sdk_platform.h in Headers */, + A7D8B26023E2514200DCD162 /* vulkan.h in Headers */, + A7D8B2B423E2514200DCD162 /* vulkan_android.h in Headers */, + A7D8B2A823E2514200DCD162 /* vulkan_core.h in Headers */, + A7D8B27223E2514200DCD162 /* vulkan_fuchsia.h in Headers */, + A7D8B2A223E2514200DCD162 /* vulkan_ios.h in Headers */, + A7D8B28423E2514200DCD162 /* vulkan_macos.h in Headers */, + A7D8B25A23E2514200DCD162 /* vulkan_vi.h in Headers */, + A7D8B27823E2514200DCD162 /* vulkan_wayland.h in Headers */, + A7D8B27E23E2514200DCD162 /* vulkan_win32.h in Headers */, + F362B9322B33916600D30B94 /* controller_list.h in Headers */, + A7D8B29023E2514200DCD162 /* vulkan_xcb.h in Headers */, + A7D8B29C23E2514200DCD162 /* vulkan_xlib.h in Headers */, + A7D8B28A23E2514200DCD162 /* vulkan_xlib_xrandr.h in Headers */, + A7D8B3D423E2514300DCD162 /* yuv_rgb.h in Headers */, + A7D8B3C823E2514200DCD162 /* yuv_rgb_sse_func.h in Headers */, + A7D8B3CE23E2514300DCD162 /* yuv_rgb_std_func.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BECDF66E0761BA81005FE872 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + A7D8B9A423E2514400DCD162 /* SDL_shaders_metal_tvos.h in Headers */, + F316ABBE2B5A02C3002EF551 /* yuv_rgb_sse.h in Headers */, + A7D8AC0C23E2514100DCD162 /* SDL_shape_internals.h in Headers */, + A7D8BA7C23E2514400DCD162 /* SDL_glfuncs.h in Headers */, + A7D8AC0623E2514100DCD162 /* SDL_rect_c.h in Headers */, + F362B9352B33916600D30B94 /* controller_list.h in Headers */, + 75E09166241EA924004729E1 /* SDL_virtualjoystick_c.h in Headers */, + A7D8B99E23E2514400DCD162 /* SDL_shaders_metal_osx.h in Headers */, + A7D8B98F23E2514400DCD162 /* SDL_shaders_metal_ios.h in Headers */, + A7D8AB8823E2514100DCD162 /* SDL_offscreenwindow.h in Headers */, + A7D8A97223E2514000DCD162 /* SDL_coremotionsensor.h in Headers */, + A7D8BB3023E2514500DCD162 /* SDL_dropevents_c.h in Headers */, + A7D8AABF23E2514100DCD162 /* SDL_haptic_c.h in Headers */, + A7D8A94823E2514000DCD162 /* SDL_dataqueue.h in Headers */, + A7D8A96023E2514000DCD162 /* SDL_error_c.h in Headers */, + A7D8B98323E2514400DCD162 /* SDL_d3dmath.h in Headers */, + A7D8ABDC23E2514100DCD162 /* SDL_egl_c.h in Headers */, + A7D8B3D723E2514300DCD162 /* yuv_rgb.h in Headers */, + A7D8B79723E2514400DCD162 /* SDL_dummyaudio.h in Headers */, + A7D8B3EF23E2514300DCD162 /* SDL_thread_c.h in Headers */, + A7D8AF0923E2514100DCD162 /* SDL_cocoamessagebox.h in Headers */, + A7D8BA0423E2514400DCD162 /* SDL_blendfillrect.h in Headers */, + F362B9552B33EB7300D30B94 /* SDL_steam_virtual_gamepad.h in Headers */, + A7D8B55A23E2514300DCD162 /* SDL_hidapijoystick_c.h in Headers */, + F316ABAC2B5A02C3002EF551 /* yuv_rgb_lsx.h in Headers */, + A7D8B2C323E2514200DCD162 /* SDL_pixels_c.h in Headers */, + A7D8B58A23E2514300DCD162 /* SDL_joystick_c.h in Headers */, + A75FDB5B23E39E6100529352 /* hidapi.h in Headers */, + F386F6F32884663E001840AA /* SDL_utils_c.h in Headers */, + A7D8B2B123E2514200DCD162 /* vk_sdk_platform.h in Headers */, + A7D8BB4823E2514500DCD162 /* blank_cursor.h in Headers */, + F395C1962569C68F00942BFF /* SDL_iokitjoystick_c.h in Headers */, + A7D8B85D23E2514400DCD162 /* SDL_sysaudio.h in Headers */, + A7D8BB0623E2514500DCD162 /* math_libm.h in Headers */, + A7D8AF2123E2514100DCD162 /* SDL_cocoamouse.h in Headers */, + A7D8ADEF23E2514100DCD162 /* SDL_blit_slow.h in Headers */, + A7D8B9CE23E2514400DCD162 /* SDL_yuv_sw_c.h in Headers */, + A7D8BBFD23E2574800DCD162 /* SDL_uikitvideo.h in Headers */, + A7D8BBAE23E2514500DCD162 /* SDL_windowevents_c.h in Headers */, + F316AB912B5A02C3002EF551 /* yuv_rgb_internal.h in Headers */, + A7D8AF0323E2514100DCD162 /* SDL_cocoavideo.h in Headers */, + A7D8BB3C23E2514500DCD162 /* SDL_gesture_c.h in Headers */, + A7D8BBEF23E2574800DCD162 /* SDL_uikitclipboard.h in Headers */, + A7D8BA7623E2514400DCD162 /* SDL_shaders_gl.h in Headers */, + A7D8B42B23E2514300DCD162 /* SDL_systhread_c.h in Headers */, + A7D8AE9123E2514100DCD162 /* SDL_cocoakeyboard.h in Headers */, + A7D8B22723E2514200DCD162 /* gl2ext.h in Headers */, + A7D8BB7223E2514500DCD162 /* SDL_clipboardevents_c.h in Headers */, + A7D8AAE323E2514100DCD162 /* SDL_syshaptic_c.h in Headers */, + A7D8B94D23E2514400DCD162 /* SDL_hints_c.h in Headers */, + A7D8B7B523E2514400DCD162 /* SDL_audiodev_c.h in Headers */, + A7D8B7A323E2514400DCD162 /* SDL_audio_c.h in Headers */, + A7D8B23F23E2514200DCD162 /* egl.h in Headers */, + A7D8B23923E2514200DCD162 /* khrplatform.h in Headers */, + A7D8A96623E2514000DCD162 /* SDL_dummysensor.h in Headers */, + A7D8B2B723E2514200DCD162 /* vulkan_android.h in Headers */, + A7D8B3D123E2514300DCD162 /* yuv_rgb_std_func.h in Headers */, + A7D8B2AB23E2514200DCD162 /* vulkan_core.h in Headers */, + A7D8A97E23E2514000DCD162 /* SDL_syssensor.h in Headers */, + A7D8AB0D23E2514100DCD162 /* SDL_dynapi.h in Headers */, + A7D8B61A23E2514300DCD162 /* SDL_assert_c.h in Headers */, + A7D8B8A523E2514400DCD162 /* SDL_diskaudio.h in Headers */, + A7D8B9F223E2514400DCD162 /* SDL_drawpoint.h in Headers */, + A7D8BBFB23E2574800DCD162 /* SDL_uikitopenglview.h in Headers */, + A7D8B86F23E2514400DCD162 /* SDL_wave.h in Headers */, + A7D8AEDF23E2514100DCD162 /* SDL_cocoaopengl.h in Headers */, + A7D8B3CB23E2514300DCD162 /* yuv_rgb_sse_func.h in Headers */, + A7D8AB5E23E2514100DCD162 /* SDL_offscreenevents_c.h in Headers */, + F3973FA528A59BDD00B84553 /* SDL_vacopy.h in Headers */, + A7D8B8CF23E2514400DCD162 /* SDL_coreaudio.h in Headers */, + A7D8BA1C23E2514400DCD162 /* SDL_draw.h in Headers */, + A7D8BA0A23E2514400DCD162 /* SDL_drawline.h in Headers */, + A7D8BBF723E2574800DCD162 /* SDL_uikitmodes.h in Headers */, + 560572192473688C00B46B66 /* SDL_syslocale.h in Headers */, + A7D8B3B323E2514200DCD162 /* SDL_yuv_c.h in Headers */, + A7D8BBA223E2514500DCD162 /* scancodes_xfree86.h in Headers */, + A7D8B5D823E2514300DCD162 /* SDL_syspower.h in Headers */, + A7D8BC0523E2574800DCD162 /* SDL_uikitwindow.h in Headers */, + A7D8B24523E2514200DCD162 /* eglext.h in Headers */, + A7D8BBF123E2574800DCD162 /* SDL_uikitevents.h in Headers */, + A7D8BBFF23E2574800DCD162 /* SDL_uikitview.h in Headers */, + A7D8BBA823E2514500DCD162 /* SDL_events_c.h in Headers */, + F316ABC72B5A02C3002EF551 /* yuv_rgb_std.h in Headers */, + A7D8BAC423E2514500DCD162 /* math_private.h in Headers */, + A7D8B27B23E2514200DCD162 /* vulkan_wayland.h in Headers */, + A7D8BBF523E2574800DCD162 /* SDL_uikitmetalview.h in Headers */, + A7D8AE8523E2514100DCD162 /* SDL_cocoashape.h in Headers */, + A7D8BA5223E2514400DCD162 /* SDL_shaders_gles2.h in Headers */, + A7D8BA4623E2514400DCD162 /* SDL_glesfuncs.h in Headers */, + A7D8BA1023E2514400DCD162 /* SDL_blendpoint.h in Headers */, + A7D8AB7023E2514100DCD162 /* SDL_offscreenvideo.h in Headers */, + A7D8AC0023E2514100DCD162 /* SDL_nullevents_c.h in Headers */, + A7D8B58423E2514300DCD162 /* SDL_sysjoystick.h in Headers */, + A7D8BB6023E2514500DCD162 /* scancodes_linux.h in Headers */, + A7D8BB6623E2514500DCD162 /* SDL_touch_c.h in Headers */, + A7D8B4AF23E2514300DCD162 /* SDL_gamecontrollerdb.h in Headers */, + A7D8AEEB23E2514100DCD162 /* SDL_cocoavulkan.h in Headers */, + A7D8B23323E2514200DCD162 /* gl2platform.h in Headers */, + A7D8B25123E2514200DCD162 /* vk_layer.h in Headers */, + A7D8B26923E2514200DCD162 /* vk_platform.h in Headers */, + A1626A552617008D003F1973 /* SDL_triangle.h in Headers */, + A7D8BBF323E2574800DCD162 /* SDL_uikitmessagebox.h in Headers */, + A7D8AEB523E2514100DCD162 /* SDL_cocoametalview.h in Headers */, + A7D8AEF123E2514100DCD162 /* SDL_cocoaopengles.h in Headers */, + A7D8B3B923E2514200DCD162 /* SDL_blit.h in Headers */, + A7D8B28D23E2514200DCD162 /* vulkan_xlib_xrandr.h in Headers */, + A7D8A99023E2514000DCD162 /* SDL_sensor_c.h in Headers */, + A7D8BC0323E2574800DCD162 /* SDL_uikitvulkan.h in Headers */, + A7D8B9DA23E2514400DCD162 /* SDL_sysrender.h in Headers */, + A7D8BA3423E2514400DCD162 /* SDL_rotate.h in Headers */, + A7D8BBCB23E2561600DCD162 /* SDL_steamcontroller.h in Headers */, + A7D8BB5423E2514500DCD162 /* scancodes_darwin.h in Headers */, + A7D8B5BA23E2514300DCD162 /* controller_type.h in Headers */, + A7D8B29F23E2514200DCD162 /* vulkan_xlib.h in Headers */, + A7D8B25D23E2514200DCD162 /* vulkan_vi.h in Headers */, + F316AB882B5A02C3002EF551 /* yuv_rgb_common.h in Headers */, + A1BB8B6F27F6CF330057CFA8 /* SDL_list.h in Headers */, + A7D8BB4E23E2514500DCD162 /* default_cursor.h in Headers */, + A7D8B9FE23E2514400DCD162 /* SDL_render_sw_c.h in Headers */, + A7D8BBED23E2574800DCD162 /* SDL_uikitappdelegate.h in Headers */, + F362B9492B33920500D30B94 /* SDL_hidapi_nintendo.h in Headers */, + A7D8BBF923E2574800DCD162 /* SDL_uikitopengles.h in Headers */, + F31A92CC28D4CB39003BFD6A /* SDL_offscreenopengles.h in Headers */, + A7D8ABFA23E2514100DCD162 /* SDL_nullvideo.h in Headers */, + A7D8B39B23E2514200DCD162 /* SDL_blit_copy.h in Headers */, + F386F6EA2884663E001840AA /* SDL_log_c.h in Headers */, + A7D8B3A123E2514200DCD162 /* SDL_RLEaccel_c.h in Headers */, + A7D8B24B23E2514200DCD162 /* eglplatform.h in Headers */, + A7D8BC0123E2574800DCD162 /* SDL_uikitviewcontroller.h in Headers */, + A7D8B3E923E2514300DCD162 /* SDL_systhread.h in Headers */, + A7D8AECD23E2514100DCD162 /* SDL_cocoaclipboard.h in Headers */, + A7D8AEF723E2514100DCD162 /* SDL_cocoamodes.h in Headers */, + A7D8B28123E2514200DCD162 /* vulkan_win32.h in Headers */, + A7D8AB8223E2514100DCD162 /* SDL_offscreenframebuffer_c.h in Headers */, + A7D8BB4223E2514500DCD162 /* SDL_displayevents_c.h in Headers */, + A7D8AB3423E2514100DCD162 /* SDL_timer_c.h in Headers */, + A7D8B22D23E2514200DCD162 /* gl2.h in Headers */, + A7D8B44323E2514300DCD162 /* SDL_sysmutex_c.h in Headers */, + A7D8BB2423E2514500DCD162 /* scancodes_windows.h in Headers */, + A7D8B5C623E2514300DCD162 /* SDL_rwopsbundlesupport.h in Headers */, + A7D8B61423E2514300DCD162 /* SDL_syspower.h in Headers */, + F316ABD02B5A02C3002EF551 /* yuv_rgb_lsx_func.h in Headers */, + A7D8B28723E2514200DCD162 /* vulkan_macos.h in Headers */, + A7D8B29323E2514200DCD162 /* vulkan_xcb.h in Headers */, + A7D8B2A523E2514200DCD162 /* vulkan_ios.h in Headers */, + A7D8A99C23E2514000DCD162 /* SDL_internal.h in Headers */, + A7D8B26323E2514200DCD162 /* vulkan.h in Headers */, + A7D8BB8A23E2514500DCD162 /* SDL_keyboard_c.h in Headers */, + A7D8BB1E23E2514500DCD162 /* SDL_mouse_c.h in Headers */, + A7D8B2BD23E2514200DCD162 /* SDL_blit_auto.h in Headers */, + A7D8B9EC23E2514400DCD162 /* SDL_blendline.h in Headers */, + F395C1BD2569C6A000942BFF /* SDL_mfijoystick_c.h in Headers */, + A7D8AAD723E2514100DCD162 /* SDL_syshaptic.h in Headers */, + A7D8AD2023E2514100DCD162 /* SDL_vulkan_internal.h in Headers */, + A7D8AF1523E2514100DCD162 /* SDL_cocoaevents.h in Headers */, + A7D8B25723E2514200DCD162 /* vk_icd.h in Headers */, + A7D8ABE823E2514100DCD162 /* SDL_nullframebuffer_c.h in Headers */, + F382072A284F3643004DD584 /* SDL_guid.h in Headers */, + A7D8AB1F23E2514100DCD162 /* SDL_dynapi_procs.h in Headers */, + A7D8B27523E2514200DCD162 /* vulkan_fuchsia.h in Headers */, + 5616CA57252BB35C005D5928 /* SDL_sysurl.h in Headers */, + A7D8B57223E2514300DCD162 /* usb_ids.h in Headers */, + A7D8BA5823E2514400DCD162 /* SDL_gles2funcs.h in Headers */, + A75FDBC823EA380300529352 /* SDL_hidapi_rumble.h in Headers */, + A7D8AC4223E2514100DCD162 /* SDL_sysvideo.h in Headers */, + A7D8AB1323E2514100DCD162 /* SDL_dynapi_overrides.h in Headers */, + A7D8AEFD23E2514100DCD162 /* SDL_cocoawindow.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB313F7317554B71006C0E22 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + A7D8B9A623E2514400DCD162 /* SDL_shaders_metal_tvos.h in Headers */, + DB0F490C17CA57ED008798C5 /* SDL_filesystem.h in Headers */, + DB313FC817554B71006C0E22 /* begin_code.h in Headers */, + A7D8ACDA23E2514100DCD162 /* SDL_uikitopengles.h in Headers */, + DB313FC917554B71006C0E22 /* close_code.h in Headers */, + DB313FF917554B71006C0E22 /* SDL.h in Headers */, + A7D8AC6223E2514100DCD162 /* SDL_uikitmetalview.h in Headers */, + F362B9582B33EB7300D30B94 /* SDL_steam_virtual_gamepad.h in Headers */, + DB313FCA17554B71006C0E22 /* SDL_assert.h in Headers */, + A7D8AC0E23E2514100DCD162 /* SDL_shape_internals.h in Headers */, + A7D8BA7E23E2514400DCD162 /* SDL_glfuncs.h in Headers */, + DB313FCB17554B71006C0E22 /* SDL_atomic.h in Headers */, + F386F6F62884663E001840AA /* SDL_utils_c.h in Headers */, + 75E09169241EA924004729E1 /* SDL_virtualjoystick_c.h in Headers */, + A7D8AC0823E2514100DCD162 /* SDL_rect_c.h in Headers */, + A7D8B9A023E2514400DCD162 /* SDL_shaders_metal_osx.h in Headers */, + A7D8B99123E2514400DCD162 /* SDL_shaders_metal_ios.h in Headers */, + F382072D284F3643004DD584 /* SDL_guid.h in Headers */, + A7D8AB8A23E2514100DCD162 /* SDL_offscreenwindow.h in Headers */, + DB313FCC17554B71006C0E22 /* SDL_audio.h in Headers */, + A7D8A97423E2514000DCD162 /* SDL_coremotionsensor.h in Headers */, + A7D8AC4A23E2514100DCD162 /* SDL_uikitview.h in Headers */, + DB313FFC17554B71006C0E22 /* SDL_bits.h in Headers */, + A7D8ACCE23E2514100DCD162 /* SDL_uikitappdelegate.h in Headers */, + DB313FCD17554B71006C0E22 /* SDL_blendmode.h in Headers */, + A7D8BB3223E2514500DCD162 /* SDL_dropevents_c.h in Headers */, + A7D8AAC123E2514100DCD162 /* SDL_haptic_c.h in Headers */, + DB313FCE17554B71006C0E22 /* SDL_clipboard.h in Headers */, + A7D8A94A23E2514000DCD162 /* SDL_dataqueue.h in Headers */, + A7D8A96223E2514000DCD162 /* SDL_error_c.h in Headers */, + DB313FD017554B71006C0E22 /* SDL_config.h in Headers */, + A7D8B98523E2514400DCD162 /* SDL_d3dmath.h in Headers */, + DB313FCF17554B71006C0E22 /* SDL_config_macosx.h in Headers */, + A7D8ABDE23E2514100DCD162 /* SDL_egl_c.h in Headers */, + DB313FD117554B71006C0E22 /* SDL_copying.h in Headers */, + F382338B2738EB8600F7F527 /* SDL_hidapi.h in Headers */, + A7D8B3D923E2514300DCD162 /* yuv_rgb.h in Headers */, + A7D8B79923E2514400DCD162 /* SDL_dummyaudio.h in Headers */, + A7D8AC9823E2514100DCD162 /* SDL_uikitmessagebox.h in Headers */, + F31A92CF28D4CB39003BFD6A /* SDL_offscreenopengles.h in Headers */, + A7D8B3F123E2514300DCD162 /* SDL_thread_c.h in Headers */, + A7D8AF0B23E2514100DCD162 /* SDL_cocoamessagebox.h in Headers */, + DB313FD217554B71006C0E22 /* SDL_cpuinfo.h in Headers */, + DB313FD317554B71006C0E22 /* SDL_endian.h in Headers */, + DB313FD417554B71006C0E22 /* SDL_error.h in Headers */, + DB313FD517554B71006C0E22 /* SDL_events.h in Headers */, + A75FDB5E23E39E6100529352 /* hidapi.h in Headers */, + A7D8BA0623E2514400DCD162 /* SDL_blendfillrect.h in Headers */, + DB313FFB17554B71006C0E22 /* SDL_gamecontroller.h in Headers */, + A7D8B55C23E2514300DCD162 /* SDL_hidapijoystick_c.h in Headers */, + F395C1992569C68F00942BFF /* SDL_iokitjoystick_c.h in Headers */, + A7D8B2C523E2514200DCD162 /* SDL_pixels_c.h in Headers */, + A7D8B58C23E2514300DCD162 /* SDL_joystick_c.h in Headers */, + A7D8B2B323E2514200DCD162 /* vk_sdk_platform.h in Headers */, + A7D8BB4A23E2514500DCD162 /* blank_cursor.h in Headers */, + DB313FD617554B71006C0E22 /* SDL_gesture.h in Headers */, + A7D8B85F23E2514400DCD162 /* SDL_sysaudio.h in Headers */, + DB313FD717554B71006C0E22 /* SDL_haptic.h in Headers */, + A7D8BB0823E2514500DCD162 /* math_libm.h in Headers */, + A7D8AC8023E2514100DCD162 /* SDL_uikitvideo.h in Headers */, + A7D8AF2323E2514100DCD162 /* SDL_cocoamouse.h in Headers */, + DB313FD817554B71006C0E22 /* SDL_hints.h in Headers */, + A7D8ADF123E2514100DCD162 /* SDL_blit_slow.h in Headers */, + A7D8B9D023E2514400DCD162 /* SDL_yuv_sw_c.h in Headers */, + A7D8BBB023E2514500DCD162 /* SDL_windowevents_c.h in Headers */, + DB313FD917554B71006C0E22 /* SDL_joystick.h in Headers */, + A7D8AF0523E2514100DCD162 /* SDL_cocoavideo.h in Headers */, + DB313FDA17554B71006C0E22 /* SDL_keyboard.h in Headers */, + A7D8ACC223E2514100DCD162 /* SDL_uikitevents.h in Headers */, + A7D8BB3E23E2514500DCD162 /* SDL_gesture_c.h in Headers */, + F362B9382B33916600D30B94 /* controller_list.h in Headers */, + A7D8BA7823E2514400DCD162 /* SDL_shaders_gl.h in Headers */, + A7D8B42D23E2514300DCD162 /* SDL_systhread_c.h in Headers */, + A1BB8B7227F6CF330057CFA8 /* SDL_list.h in Headers */, + DB313FDB17554B71006C0E22 /* SDL_keycode.h in Headers */, + A7D8AE9323E2514100DCD162 /* SDL_cocoakeyboard.h in Headers */, + A7D8ACE623E2514100DCD162 /* SDL_uikitvulkan.h in Headers */, + DB313FDC17554B71006C0E22 /* SDL_loadso.h in Headers */, + A7D8B22923E2514200DCD162 /* gl2ext.h in Headers */, + A7D8BB7423E2514500DCD162 /* SDL_clipboardevents_c.h in Headers */, + A7D8AAE523E2514100DCD162 /* SDL_syshaptic_c.h in Headers */, + A7D8B94F23E2514400DCD162 /* SDL_hints_c.h in Headers */, + F316ABC12B5A02C3002EF551 /* yuv_rgb_sse.h in Headers */, + A7D8B7B723E2514400DCD162 /* SDL_audiodev_c.h in Headers */, + A7D8B7A523E2514400DCD162 /* SDL_audio_c.h in Headers */, + A7D8AC6E23E2514100DCD162 /* SDL_uikitmodes.h in Headers */, + A7D8B24123E2514200DCD162 /* egl.h in Headers */, + A7D8B23B23E2514200DCD162 /* khrplatform.h in Headers */, + DB313FDD17554B71006C0E22 /* SDL_log.h in Headers */, + A7D8AC8C23E2514100DCD162 /* SDL_uikitviewcontroller.h in Headers */, + A7D8A96823E2514000DCD162 /* SDL_dummysensor.h in Headers */, + A7D8B2B923E2514200DCD162 /* vulkan_android.h in Headers */, + A7D8B3D323E2514300DCD162 /* yuv_rgb_std_func.h in Headers */, + A7D8B2AD23E2514200DCD162 /* vulkan_core.h in Headers */, + A7D8A98023E2514000DCD162 /* SDL_syssensor.h in Headers */, + A7D8AB0F23E2514100DCD162 /* SDL_dynapi.h in Headers */, + F316ABD32B5A02C3002EF551 /* yuv_rgb_lsx_func.h in Headers */, + A7D8B61C23E2514300DCD162 /* SDL_assert_c.h in Headers */, + A7D8B8A723E2514400DCD162 /* SDL_diskaudio.h in Headers */, + DB313FDE17554B71006C0E22 /* SDL_main.h in Headers */, + A7D8B9F423E2514400DCD162 /* SDL_drawpoint.h in Headers */, + AAC07107195606770073DCDF /* SDL_opengles2_khrplatform.h in Headers */, + A7D8B87123E2514400DCD162 /* SDL_wave.h in Headers */, + A7D8AEE123E2514100DCD162 /* SDL_cocoaopengl.h in Headers */, + A7D8B3CD23E2514300DCD162 /* yuv_rgb_sse_func.h in Headers */, + 5605721B2473688D00B46B66 /* SDL_syslocale.h in Headers */, + F316ABCA2B5A02C3002EF551 /* yuv_rgb_std.h in Headers */, + A7D8AB6023E2514100DCD162 /* SDL_offscreenevents_c.h in Headers */, + F3973FA828A59BDD00B84553 /* SDL_vacopy.h in Headers */, + A1626A582617008D003F1973 /* SDL_triangle.h in Headers */, + A7D8B8D123E2514400DCD162 /* SDL_coreaudio.h in Headers */, + A7D8BA1E23E2514400DCD162 /* SDL_draw.h in Headers */, + A7D8BA0C23E2514400DCD162 /* SDL_drawline.h in Headers */, + DB0F489317C400E6008798C5 /* SDL_messagebox.h in Headers */, + DB313FDF17554B71006C0E22 /* SDL_mouse.h in Headers */, + DB313FE017554B71006C0E22 /* SDL_mutex.h in Headers */, + A7D8B3B523E2514200DCD162 /* SDL_yuv_c.h in Headers */, + A7D8BBA423E2514500DCD162 /* scancodes_xfree86.h in Headers */, + A7D8B5DA23E2514300DCD162 /* SDL_syspower.h in Headers */, + DB313FE117554B71006C0E22 /* SDL_name.h in Headers */, + A7D8B24723E2514200DCD162 /* eglext.h in Headers */, + A7D8BBAA23E2514500DCD162 /* SDL_events_c.h in Headers */, + A7D8BAC623E2514500DCD162 /* math_private.h in Headers */, + A7D8B27D23E2514200DCD162 /* vulkan_wayland.h in Headers */, + DB313FE217554B71006C0E22 /* SDL_opengl.h in Headers */, + A7D8AE8723E2514100DCD162 /* SDL_cocoashape.h in Headers */, + DB313FE317554B71006C0E22 /* SDL_opengles.h in Headers */, + A7D8BA5423E2514400DCD162 /* SDL_shaders_gles2.h in Headers */, + DB313FE417554B71006C0E22 /* SDL_opengles2.h in Headers */, + A7D8BA4823E2514400DCD162 /* SDL_glesfuncs.h in Headers */, + F316AB8B2B5A02C3002EF551 /* yuv_rgb_common.h in Headers */, + F316ABAF2B5A02C3002EF551 /* yuv_rgb_lsx.h in Headers */, + A7D8BA1223E2514400DCD162 /* SDL_blendpoint.h in Headers */, + A7D8AB7223E2514100DCD162 /* SDL_offscreenvideo.h in Headers */, + A7D8AC0223E2514100DCD162 /* SDL_nullevents_c.h in Headers */, + A7D8B58623E2514300DCD162 /* SDL_sysjoystick.h in Headers */, + A7D8BBCF23E2561600DCD162 /* SDL_steamcontroller.h in Headers */, + A7D8BB6223E2514500DCD162 /* scancodes_linux.h in Headers */, + A7D8BB6823E2514500DCD162 /* SDL_touch_c.h in Headers */, + A7D8B4B123E2514300DCD162 /* SDL_gamecontrollerdb.h in Headers */, + A7D8AEED23E2514100DCD162 /* SDL_cocoavulkan.h in Headers */, + A7D8B23523E2514200DCD162 /* gl2platform.h in Headers */, + DB313FE517554B71006C0E22 /* SDL_pixels.h in Headers */, + A7D8B25323E2514200DCD162 /* vk_layer.h in Headers */, + A7D8B26B23E2514200DCD162 /* vk_platform.h in Headers */, + A7D8AEB723E2514100DCD162 /* SDL_cocoametalview.h in Headers */, + A7D8AEF323E2514100DCD162 /* SDL_cocoaopengles.h in Headers */, + A7D8B3BB23E2514200DCD162 /* SDL_blit.h in Headers */, + A7D8B28F23E2514200DCD162 /* vulkan_xlib_xrandr.h in Headers */, + A7D8A99223E2514000DCD162 /* SDL_sensor_c.h in Headers */, + A7D8B9DC23E2514400DCD162 /* SDL_sysrender.h in Headers */, + A7D8BA3623E2514400DCD162 /* SDL_rotate.h in Headers */, + DB313FE617554B71006C0E22 /* SDL_platform.h in Headers */, + DB313FE717554B71006C0E22 /* SDL_power.h in Headers */, + A7D8BB5623E2514500DCD162 /* scancodes_darwin.h in Headers */, + A7D8B5BC23E2514300DCD162 /* controller_type.h in Headers */, + A7D8AC7A23E2514100DCD162 /* SDL_uikitclipboard.h in Headers */, + A7D8B2A123E2514200DCD162 /* vulkan_xlib.h in Headers */, + A7D8AC9E23E2514100DCD162 /* SDL_uikitwindow.h in Headers */, + A7D8B25F23E2514200DCD162 /* vulkan_vi.h in Headers */, + DB313FE817554B71006C0E22 /* SDL_quit.h in Headers */, + A7D8BB5023E2514500DCD162 /* default_cursor.h in Headers */, + A7D8BA0023E2514400DCD162 /* SDL_render_sw_c.h in Headers */, + DB313FE917554B71006C0E22 /* SDL_rect.h in Headers */, + DB313FEA17554B71006C0E22 /* SDL_render.h in Headers */, + A7D8ABFC23E2514100DCD162 /* SDL_nullvideo.h in Headers */, + A7D8B39D23E2514200DCD162 /* SDL_blit_copy.h in Headers */, + A7D8B3A323E2514200DCD162 /* SDL_RLEaccel_c.h in Headers */, + A7D8B24D23E2514200DCD162 /* eglplatform.h in Headers */, + DB313FEB17554B71006C0E22 /* SDL_revision.h in Headers */, + A7D8B3EB23E2514300DCD162 /* SDL_systhread.h in Headers */, + DB313FEC17554B71006C0E22 /* SDL_rwops.h in Headers */, + DB313FED17554B71006C0E22 /* SDL_scancode.h in Headers */, + A7D8AECF23E2514100DCD162 /* SDL_cocoaclipboard.h in Headers */, + A7D8AEF923E2514100DCD162 /* SDL_cocoamodes.h in Headers */, + A7D8ACB623E2514100DCD162 /* SDL_uikitopenglview.h in Headers */, + A7D8B28323E2514200DCD162 /* vulkan_win32.h in Headers */, + A7D8AB8423E2514100DCD162 /* SDL_offscreenframebuffer_c.h in Headers */, + A7D8BB4423E2514500DCD162 /* SDL_displayevents_c.h in Headers */, + A7D8AB3623E2514100DCD162 /* SDL_timer_c.h in Headers */, + A7D8B22F23E2514200DCD162 /* gl2.h in Headers */, + A7D8B44523E2514300DCD162 /* SDL_sysmutex_c.h in Headers */, + A7D8BB2623E2514500DCD162 /* scancodes_windows.h in Headers */, + A7D8B5C823E2514300DCD162 /* SDL_rwopsbundlesupport.h in Headers */, + A7D8B61623E2514300DCD162 /* SDL_syspower.h in Headers */, + A7D8B28923E2514200DCD162 /* vulkan_macos.h in Headers */, + A7D8B29523E2514200DCD162 /* vulkan_xcb.h in Headers */, + A7D8B2A723E2514200DCD162 /* vulkan_ios.h in Headers */, + A7D8A99E23E2514000DCD162 /* SDL_internal.h in Headers */, + DB313FEE17554B71006C0E22 /* SDL_shape.h in Headers */, + DB313FEF17554B71006C0E22 /* SDL_stdinc.h in Headers */, + DB313FF017554B71006C0E22 /* SDL_surface.h in Headers */, + A7D8B26523E2514200DCD162 /* vulkan.h in Headers */, + A7D8BB8C23E2514500DCD162 /* SDL_keyboard_c.h in Headers */, + DB313FF117554B71006C0E22 /* SDL_system.h in Headers */, + DB313FF217554B71006C0E22 /* SDL_syswm.h in Headers */, + AAC070FB195606770073DCDF /* SDL_opengl_glext.h in Headers */, + A7D8BB2023E2514500DCD162 /* SDL_mouse_c.h in Headers */, + A7D8B2BF23E2514200DCD162 /* SDL_blit_auto.h in Headers */, + A7D8B9EE23E2514400DCD162 /* SDL_blendline.h in Headers */, + F395C1C02569C6A000942BFF /* SDL_mfijoystick_c.h in Headers */, + A7D8AAD923E2514100DCD162 /* SDL_syshaptic.h in Headers */, + A7D8AD2223E2514100DCD162 /* SDL_vulkan_internal.h in Headers */, + DB313FF317554B71006C0E22 /* SDL_thread.h in Headers */, + A7D8AF1723E2514100DCD162 /* SDL_cocoaevents.h in Headers */, + A7D8B25923E2514200DCD162 /* vk_icd.h in Headers */, + A7D8ABEA23E2514100DCD162 /* SDL_nullframebuffer_c.h in Headers */, + DB313FF417554B71006C0E22 /* SDL_timer.h in Headers */, + A7D8AB2123E2514100DCD162 /* SDL_dynapi_procs.h in Headers */, + A7D8B27723E2514200DCD162 /* vulkan_fuchsia.h in Headers */, + DB313FF517554B71006C0E22 /* SDL_touch.h in Headers */, + DB313FF617554B71006C0E22 /* SDL_types.h in Headers */, + 5616CA60252BB35E005D5928 /* SDL_sysurl.h in Headers */, + A7D8B57423E2514300DCD162 /* usb_ids.h in Headers */, + A7D8BA5A23E2514400DCD162 /* SDL_gles2funcs.h in Headers */, + DB313FF717554B71006C0E22 /* SDL_version.h in Headers */, + DB313FF817554B71006C0E22 /* SDL_video.h in Headers */, + AAC070FE195606770073DCDF /* SDL_opengles2_gl2.h in Headers */, + F3950CDA212BC88D00F51292 /* SDL_sensor.h in Headers */, + A75FDBCB23EA380300529352 /* SDL_hidapi_rumble.h in Headers */, + F362B94C2B33920500D30B94 /* SDL_hidapi_nintendo.h in Headers */, + A7D8AC4423E2514100DCD162 /* SDL_sysvideo.h in Headers */, + F386F6ED2884663E001840AA /* SDL_log_c.h in Headers */, + AAC07104195606770073DCDF /* SDL_opengles2_gl2platform.h in Headers */, + AAC07101195606770073DCDF /* SDL_opengles2_gl2ext.h in Headers */, + A7D8AB1523E2514100DCD162 /* SDL_dynapi_overrides.h in Headers */, + F316AB942B5A02C3002EF551 /* yuv_rgb_internal.h in Headers */, + A7D8AEFF23E2514100DCD162 /* SDL_cocoawindow.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E2D187CA28A5673500D2B4F1 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + F31A92CB28D4CB39003BFD6A /* SDL_offscreenopengles.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + A75FCCFB23E25AB700529352 /* Shared Library-iOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = A75FCEB023E25AB700529352 /* Build configuration list for PBXNativeTarget "Shared Library-iOS" */; + buildPhases = ( + A75FCCFC23E25AB700529352 /* Headers */, + A75FCDE823E25AB700529352 /* Sources */, + A75FCEA423E25AB700529352 /* Frameworks */, + A75FCEAF23E25AB700529352 /* Rez */, + ); + buildRules = ( + ); + comments = "This produces libSDL2.dylib, which is the shared build of SDL."; + dependencies = ( + ); + name = "Shared Library-iOS"; + productInstallPath = /usr/local/lib; + productName = "Shared Library"; + productReference = A75FCEB323E25AB700529352 /* libSDL2.dylib */; + productType = "com.apple.product-type.library.dynamic"; + }; + A75FCEB423E25AC700529352 /* Shared Library-tvOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = A75FD06923E25AC700529352 /* Build configuration list for PBXNativeTarget "Shared Library-tvOS" */; + buildPhases = ( + A75FCEB523E25AC700529352 /* Headers */, + A75FCFA123E25AC700529352 /* Sources */, + A75FD05D23E25AC700529352 /* Frameworks */, + A75FD06823E25AC700529352 /* Rez */, + ); + buildRules = ( + ); + comments = "This produces libSDL2.dylib, which is the shared build of SDL."; + dependencies = ( + ); + name = "Shared Library-tvOS"; + productInstallPath = /usr/local/lib; + productName = "Shared Library"; + productReference = A75FD06C23E25AC700529352 /* libSDL2.dylib */; + productType = "com.apple.product-type.library.dynamic"; + }; + A769B08223E259AE00872273 /* Static Library-tvOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = A769B23A23E259AE00872273 /* Build configuration list for PBXNativeTarget "Static Library-tvOS" */; + buildPhases = ( + A769B08323E259AE00872273 /* Headers */, + A769B17023E259AE00872273 /* Sources */, + A769B22E23E259AE00872273 /* Frameworks */, + A769B23923E259AE00872273 /* Rez */, + ); + buildRules = ( + ); + comments = "This produces libSDL.a, which is the static build of SDL. You will have to link to the Cocoa and OpenGL frameworks in your application."; + dependencies = ( + ); + name = "Static Library-tvOS"; + productInstallPath = /usr/local/lib; + productName = "Static Library"; + productReference = A769B23D23E259AE00872273 /* libSDL2.a */; + productType = "com.apple.product-type.library.static"; + }; + A7D88A1423E2437C00DCD162 /* Framework-iOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = A7D88B5123E2437C00DCD162 /* Build configuration list for PBXNativeTarget "Framework-iOS" */; + buildPhases = ( + A7D88A1523E2437C00DCD162 /* Headers */, + A7D88ABE23E2437C00DCD162 /* Resources */, + A7D88ABF23E2437C00DCD162 /* Sources */, + A7D88B4623E2437C00DCD162 /* Frameworks */, + A75FDB9F23E4CAFA00529352 /* Embed Frameworks */, + F3ED8107281DB8E600C33C5B /* Convert SDL includes to SDL Framework includes */, + ); + buildRules = ( + ); + comments = "We recommend installing to /Library/Frameworks\nAn alternative is $(HOME)/Library/Frameworks for per-user if permissions are an issue.\n\nAdd the framework to the Groups & Files panel (under Linked Frameworks is a good place) and enable the check box for the targets that need to link to it. You can also manually add \"-framework SDL\" to your linker flags if you don't like the check box system.\n\nAdd /Library/Frameworks/SDL.framework/Headers to your header search path\nAdd /Library/Frameworks to your library search path\n(Adjust the two above if installed in $(HOME)/Library/Frameworks. You can also list both paths if you want robustness.)\n\nWe used to use an exports file. It was becoming a maintenance issue we kept neglecting, so we have removed it. If you need it back, set the \"Exported Symbols File\" option to:\n../../src/main/macosx/exports/SDL.x\n(You may need to regenerate the exports list. There is a Makefile in that directory that you can run from the command line to rebuild it.)\nLong term, we want to utilize gcc 4.0's new visibility feature (analogous to declspec on Windows). Other platforms would benefit from this change too. The downside is that we still use gcc 3.3 for the PowerPC build here so only our x86 builds will cull the symbols if we go down this route (and don't use the exports file).\n\n"; + dependencies = ( + ); + name = "Framework-iOS"; + productInstallPath = "@executable_path/../Frameworks"; + productName = SDL; + productReference = A7D88B5423E2437C00DCD162 /* SDL2.framework */; + productType = "com.apple.product-type.framework"; + }; + A7D88BC923E24BED00DCD162 /* Framework-tvOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = A7D88D1223E24BED00DCD162 /* Build configuration list for PBXNativeTarget "Framework-tvOS" */; + buildPhases = ( + A7D88BCA23E24BED00DCD162 /* Headers */, + A7D88C7723E24BED00DCD162 /* Resources */, + A7D88C7823E24BED00DCD162 /* Sources */, + A7D88D0423E24BED00DCD162 /* Frameworks */, + A75FDBA223E4CAFF00529352 /* Embed Frameworks */, + F3ED8108281DB8F200C33C5B /* Convert SDL includes to SDL Framework includes */, + ); + buildRules = ( + ); + comments = "We recommend installing to /Library/Frameworks\nAn alternative is $(HOME)/Library/Frameworks for per-user if permissions are an issue.\n\nAdd the framework to the Groups & Files panel (under Linked Frameworks is a good place) and enable the check box for the targets that need to link to it. You can also manually add \"-framework SDL\" to your linker flags if you don't like the check box system.\n\nAdd /Library/Frameworks/SDL.framework/Headers to your header search path\nAdd /Library/Frameworks to your library search path\n(Adjust the two above if installed in $(HOME)/Library/Frameworks. You can also list both paths if you want robustness.)\n\nWe used to use an exports file. It was becoming a maintenance issue we kept neglecting, so we have removed it. If you need it back, set the \"Exported Symbols File\" option to:\n../../src/main/macosx/exports/SDL.x\n(You may need to regenerate the exports list. There is a Makefile in that directory that you can run from the command line to rebuild it.)\nLong term, we want to utilize gcc 4.0's new visibility feature (analogous to declspec on Windows). Other platforms would benefit from this change too. The downside is that we still use gcc 3.3 for the PowerPC build here so only our x86 builds will cull the symbols if we go down this route (and don't use the exports file).\n\n"; + dependencies = ( + ); + name = "Framework-tvOS"; + productInstallPath = "@executable_path/../Frameworks"; + productName = SDL; + productReference = A7D88D1523E24BED00DCD162 /* SDL2.framework */; + productType = "com.apple.product-type.framework"; + }; + A7D88D1723E24D3B00DCD162 /* Static Library-iOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = A7D88E5123E24D3B00DCD162 /* Build configuration list for PBXNativeTarget "Static Library-iOS" */; + buildPhases = ( + A7D88D1823E24D3B00DCD162 /* Headers */, + A7D88DBC23E24D3B00DCD162 /* Sources */, + A7D88E4523E24D3B00DCD162 /* Frameworks */, + A7D88E5023E24D3B00DCD162 /* Rez */, + ); + buildRules = ( + ); + comments = "This produces libSDL.a, which is the static build of SDL. You will have to link to the Cocoa and OpenGL frameworks in your application."; + dependencies = ( + ); + name = "Static Library-iOS"; + productInstallPath = /usr/local/lib; + productName = "Static Library"; + productReference = A7D88E5423E24D3B00DCD162 /* libSDL2.a */; + productType = "com.apple.product-type.library.static"; + }; + BECDF5FE0761BA81005FE872 /* Framework */ = { + isa = PBXNativeTarget; + buildConfigurationList = 0073177A0858DB0500B2BC32 /* Build configuration list for PBXNativeTarget "Framework" */; + buildPhases = ( + BECDF5FF0761BA81005FE872 /* Headers */, + BECDF62A0761BA81005FE872 /* Resources */, + BECDF62C0761BA81005FE872 /* Sources */, + BECDF6680761BA81005FE872 /* Frameworks */, + A75FDB9C23E4CAEF00529352 /* Embed Frameworks */, + F3ED8106281DB8A500C33C5B /* Convert SDL includes to SDL Framework includes */, + ); + buildRules = ( + ); + comments = "We recommend installing to /Library/Frameworks\nAn alternative is $(HOME)/Library/Frameworks for per-user if permissions are an issue.\n\nAdd the framework to the Groups & Files panel (under Linked Frameworks is a good place) and enable the check box for the targets that need to link to it. You can also manually add \"-framework SDL\" to your linker flags if you don't like the check box system.\n\nAdd /Library/Frameworks/SDL.framework/Headers to your header search path\nAdd /Library/Frameworks to your library search path\n(Adjust the two above if installed in $(HOME)/Library/Frameworks. You can also list both paths if you want robustness.)\n\nWe used to use an exports file. It was becoming a maintenance issue we kept neglecting, so we have removed it. If you need it back, set the \"Exported Symbols File\" option to:\n../../src/main/macosx/exports/SDL.x\n(You may need to regenerate the exports list. There is a Makefile in that directory that you can run from the command line to rebuild it.)\nLong term, we want to utilize gcc 4.0's new visibility feature (analogous to declspec on Windows). Other platforms would benefit from this change too. The downside is that we still use gcc 3.3 for the PowerPC build here so only our x86 builds will cull the symbols if we go down this route (and don't use the exports file).\n\n"; + dependencies = ( + ); + name = Framework; + productInstallPath = "@executable_path/../Frameworks"; + productName = SDL; + productReference = BECDF66C0761BA81005FE872 /* SDL2.framework */; + productType = "com.apple.product-type.framework"; + }; + BECDF66D0761BA81005FE872 /* Static Library */ = { + isa = PBXNativeTarget; + buildConfigurationList = 0073177E0858DB0500B2BC32 /* Build configuration list for PBXNativeTarget "Static Library" */; + buildPhases = ( + BECDF66E0761BA81005FE872 /* Headers */, + BECDF6790761BA81005FE872 /* Sources */, + BECDF6B10761BA81005FE872 /* Frameworks */, + BECDF6B20761BA81005FE872 /* Rez */, + ); + buildRules = ( + ); + comments = "This produces libSDL.a, which is the static build of SDL. You will have to link to the Cocoa and OpenGL frameworks in your application."; + dependencies = ( + ); + name = "Static Library"; + productInstallPath = /usr/local/lib; + productName = "Static Library"; + productReference = BECDF6B30761BA81005FE872 /* libSDL2.a */; + productType = "com.apple.product-type.library.static"; + }; + BECDF6BB0761BA81005FE872 /* Standard DMG */ = { + isa = PBXNativeTarget; + buildConfigurationList = 007317860858DB0500B2BC32 /* Build configuration list for PBXNativeTarget "Standard DMG" */; + buildPhases = ( + BECDF6BD0761BA81005FE872 /* ShellScript */, + ); + buildRules = ( + ); + dependencies = ( + BECDF6C60761BA81005FE872 /* PBXTargetDependency */, + ); + name = "Standard DMG"; + productInstallPath = /usr/local/bin; + productName = "Standard Package"; + productReference = BECDF6BE0761BA81005FE872 /* SDL2 */; + productType = "com.apple.product-type.tool"; + }; + DB313F7217554B71006C0E22 /* Shared Library */ = { + isa = PBXNativeTarget; + buildConfigurationList = DB31407417554B71006C0E22 /* Build configuration list for PBXNativeTarget "Shared Library" */; + buildPhases = ( + DB313F7317554B71006C0E22 /* Headers */, + DB313FFD17554B71006C0E22 /* Sources */, + DB31406B17554B71006C0E22 /* Frameworks */, + DB31407317554B71006C0E22 /* Rez */, + ); + buildRules = ( + ); + comments = "This produces libSDL2.dylib, which is the shared build of SDL."; + dependencies = ( + ); + name = "Shared Library"; + productInstallPath = /usr/local/lib; + productName = "Shared Library"; + productReference = DB31407717554B71006C0E22 /* libSDL2.dylib */; + productType = "com.apple.product-type.library.dynamic"; + }; + E2D187CE28A5673500D2B4F1 /* xcFramework-iOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = E2D187D628A5673500D2B4F1 /* Build configuration list for PBXNativeTarget "xcFramework-iOS" */; + buildPhases = ( + E2D187CA28A5673500D2B4F1 /* Headers */, + E2D187CB28A5673500D2B4F1 /* Sources */, + E2D187CC28A5673500D2B4F1 /* Frameworks */, + E2D187CD28A5673500D2B4F1 /* Resources */, + E2D187E728A5685000D2B4F1 /* ShellScript */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "xcFramework-iOS"; + productName = SDL2; + productReference = E2D187CF28A5673500D2B4F1 /* SDL2.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 0867D690FE84028FC02AAC07 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1130; + TargetAttributes = { + E2D187CE28A5673500D2B4F1 = { + CreatedOnToolsVersion = 12.4; + }; + }; + }; + buildConfigurationList = 0073178E0858DB0500B2BC32 /* Build configuration list for PBXProject "SDL" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 1; + knownRegions = ( + English, + en, + Base, + ); + mainGroup = 0867D691FE84028FC02AAC07 /* SDLFramework */; + productRefGroup = 034768DDFF38A45A11DB9C8B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + BECDF5FE0761BA81005FE872 /* Framework */, + A7D88A1423E2437C00DCD162 /* Framework-iOS */, + A7D88BC923E24BED00DCD162 /* Framework-tvOS */, + E2D187CE28A5673500D2B4F1 /* xcFramework-iOS */, + BECDF66D0761BA81005FE872 /* Static Library */, + A7D88D1723E24D3B00DCD162 /* Static Library-iOS */, + A769B08223E259AE00872273 /* Static Library-tvOS */, + DB313F7217554B71006C0E22 /* Shared Library */, + A75FCCFB23E25AB700529352 /* Shared Library-iOS */, + A75FCEB423E25AC700529352 /* Shared Library-tvOS */, + BECDF6BB0761BA81005FE872 /* Standard DMG */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + A7D88ABE23E2437C00DCD162 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F37A8E1B28405AA100C38E95 /* CMake in Resources */, + A75FDBBA23E4CBC700529352 /* ReadMe.txt in Resources */, + A75FDBB923E4CBC700529352 /* License.txt in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A7D88C7723E24BED00DCD162 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F37A8E1C28405AA100C38E95 /* CMake in Resources */, + A75FDBBC23E4CBC800529352 /* ReadMe.txt in Resources */, + A75FDBBB23E4CBC800529352 /* License.txt in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BECDF62A0761BA81005FE872 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F37A8E1A28405AA100C38E95 /* CMake in Resources */, + A75FDBB823E4CBC700529352 /* ReadMe.txt in Resources */, + A75FDBB723E4CBC700529352 /* License.txt in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E2D187CD28A5673500D2B4F1 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXRezBuildPhase section */ + A75FCEAF23E25AB700529352 /* Rez */ = { + isa = PBXRezBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A75FD06823E25AC700529352 /* Rez */ = { + isa = PBXRezBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A769B23923E259AE00872273 /* Rez */ = { + isa = PBXRezBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A7D88E5023E24D3B00DCD162 /* Rez */ = { + isa = PBXRezBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BECDF6B20761BA81005FE872 /* Rez */ = { + isa = PBXRezBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB31407317554B71006C0E22 /* Rez */ = { + isa = PBXRezBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXRezBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + BECDF6BD0761BA81005FE872 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 12; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "# Sign framework\nif [ \"$SDL_CODESIGN_IDENTITY\" != \"\" ]; then\n codesign --force --deep --sign \"$SDL_CODESIGN_IDENTITY\" $TARGET_BUILD_DIR/SDL2.framework/Versions/A || exit $?\nfi\n\n# clean up the framework, remove headers, extra files\nmkdir -p build/dmg-tmp\ncp -a $TARGET_BUILD_DIR/SDL2.framework build/dmg-tmp/\n\ncp pkg-support/resources/License.txt build/dmg-tmp\ncp pkg-support/resources/ReadMe.txt build/dmg-tmp\n\n# remove the .DS_Store files if any (we may want to provide one in the future for fancy .dmgs)\nfind build/dmg-tmp -name .DS_Store -exec rm -f \"{}\" \\;\n\n# for fancy .dmg\nmkdir -p build/dmg-tmp/.logo\ncp pkg-support/resources/SDL_DS_Store build/dmg-tmp/.DS_Store\ncp pkg-support/sdl_logo.pdf build/dmg-tmp/.logo\n\n# create the dmg\nhdiutil create -ov -fs HFS+ -volname SDL2 -srcfolder build/dmg-tmp build/SDL2.dmg\n\n# clean up\nrm -rf build/dmg-tmp\n"; + }; + E2D187E728A5685000D2B4F1 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "# Build an xcframework with both device and simulator files for all platforms.\n# Adapted from an answer in\n# https://developer.apple.com/forums/thread/666335?answerId=685927022#685927022\n\nif [ \"$XCODE_VERSION_ACTUAL\" -lt 1100 ]\nthen\n\techo \"error: Building an xcframework requires Xcode 11 minimum.\"\n\texit 1\nfi\n\nSCHEME_NAME=\"Framework-iOS\"\nFRAMEWORK_NAME=\"SDL2\"\nPROJECT_NAME=\"SDL\"\n\nSIMULATOR_ARCHIVE_PATH=\"${BUILD_DIR}/${CONFIGURATION}/${FRAMEWORK_NAME}-iphonesimulator.xcarchive\"\nDEVICE_ARCHIVE_PATH=\"${BUILD_DIR}/${CONFIGURATION}/${FRAMEWORK_NAME}-iphoneos.xcarchive\"\n\nOUTPUT_DIR=\"./Products/\"\n\n# Simulator xcarchive (arm64, i386, x86_64)\nxcodebuild archive \\\n\tONLY_ACTIVE_ARCH=NO \\\n\t-scheme ${SCHEME_NAME} \\\n\t-project \"${PROJECT_NAME}.xcodeproj\" \\\n\t-archivePath ${SIMULATOR_ARCHIVE_PATH} \\\n\t-sdk iphonesimulator \\\n\tBUILD_LIBRARY_FOR_DISTRIBUTION=YES \\\n\tSKIP_INSTALL=NO\n\n# Device xcarchive (arm64, armv7)\nxcodebuild archive \\\n\t-scheme ${SCHEME_NAME} \\\n\t-project \"${PROJECT_NAME}.xcodeproj\" \\\n\t-archivePath ${DEVICE_ARCHIVE_PATH} \\\n\t-sdk iphoneos \\\n\tBUILD_LIBRARY_FOR_DISTRIBUTION=YES \\\n\tSKIP_INSTALL=NO\n\n# Clean-up any existing instance of this xcframework from the Products directory\nrm -rf \"${OUTPUT_DIR}${FRAMEWORK_NAME}.xcframework\"\n\n# Create final xcframework\nxcodebuild -create-xcframework \\\n\t-framework \"${DEVICE_ARCHIVE_PATH}\"/Products/Library/Frameworks/${FRAMEWORK_NAME}.framework \\\n\t-framework \"${SIMULATOR_ARCHIVE_PATH}\"/Products/Library/Frameworks/${FRAMEWORK_NAME}.framework \\\n\t-output ${OUTPUT_DIR}/${FRAMEWORK_NAME}.xcframework\n\n# Ensure git doesn't pick up on our Products folder. \nrm -rf ${OUTPUT_DIR}/.gitignore\necho \"*\" >> ${OUTPUT_DIR}/.gitignore\n"; + }; + F3ED8106281DB8A500C33C5B /* Convert SDL includes to SDL Framework includes */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "Convert SDL includes to SDL Framework includes"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "cd \"$BUILT_PRODUCTS_DIR/$PUBLIC_HEADERS_FOLDER_PATH\"\nsed -i '' -e 's,#include \"\\(.*\\)\",#include ,' *.h\n"; + }; + F3ED8107281DB8E600C33C5B /* Convert SDL includes to SDL Framework includes */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "Convert SDL includes to SDL Framework includes"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "cd \"$BUILT_PRODUCTS_DIR/$PUBLIC_HEADERS_FOLDER_PATH\"\nsed -i '' -e 's,#include \"\\(.*\\)\",#include ,' *.h\n"; + }; + F3ED8108281DB8F200C33C5B /* Convert SDL includes to SDL Framework includes */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "Convert SDL includes to SDL Framework includes"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "cd \"$BUILT_PRODUCTS_DIR/$PUBLIC_HEADERS_FOLDER_PATH\"\nsed -i '' -e 's,#include \"\\(.*\\)\",#include ,' *.h\n"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + A75FCDE823E25AB700529352 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A75FCDE923E25AB700529352 /* SDL_drawline.c in Sources */, + A75FCDEA23E25AB700529352 /* SDL_yuv.c in Sources */, + A75FCDEB23E25AB700529352 /* SDL_sysfilesystem.m in Sources */, + F395BF6C25633B2400942BFF /* SDL_crc32.c in Sources */, + F3A490A52554D38600E92A8B /* SDL_hidapi_ps5.c in Sources */, + A75FCDEC23E25AB700529352 /* e_pow.c in Sources */, + A75FCDED23E25AB700529352 /* SDL_systls.c in Sources */, + A75FCDEE23E25AB700529352 /* SDL_vulkan_utils.c in Sources */, + A75FCDEF23E25AB700529352 /* SDL_spinlock.c in Sources */, + A75FDBD523EA380300529352 /* SDL_hidapi_rumble.c in Sources */, + A75FCDF023E25AB700529352 /* s_atan.c in Sources */, + A75FCDF123E25AB700529352 /* SDL_sysloadso.c in Sources */, + A75FCDF223E25AB700529352 /* SDL_render_metal.m in Sources */, + A75FCDF323E25AB700529352 /* SDL_clipboard.c in Sources */, + A75FCDF423E25AB700529352 /* SDL_cocoaevents.m in Sources */, + A75FCDF623E25AB700529352 /* SDL_audiocvt.c in Sources */, + A75FCDF723E25AB700529352 /* SDL_shape.c in Sources */, + A75FCDF823E25AB700529352 /* SDL_rotate.c in Sources */, + F3973FB228A59BDD00B84553 /* SDL_crc16.c in Sources */, + A75FCDF923E25AB700529352 /* SDL_coremotionsensor.m in Sources */, + A75FDAB123E2795C00529352 /* SDL_hidapi_steam.c in Sources */, + A75FCDFA23E25AB700529352 /* SDL_touch.c in Sources */, + A1626A452617006A003F1973 /* SDL_triangle.c in Sources */, + A75FCDFC23E25AB700529352 /* SDL_uikitmessagebox.m in Sources */, + A75FCDFD23E25AB700529352 /* SDL_thread.c in Sources */, + A75FCDFE23E25AB700529352 /* SDL_hidapi_xbox360w.c in Sources */, + A75FCDFF23E25AB700529352 /* SDL_atomic.c in Sources */, + A75FCE0023E25AB700529352 /* SDL_displayevents.c in Sources */, + A75FCE0223E25AB700529352 /* SDL_log.c in Sources */, + A75FCE0323E25AB700529352 /* SDL_cocoaopengl.m in Sources */, + A75FCE0423E25AB700529352 /* SDL_offscreenframebuffer.c in Sources */, + F323060628939F6400E66D30 /* SDL_hidapi_combined.c in Sources */, + A75FCE0623E25AB700529352 /* SDL_render_gles.c in Sources */, + A75FCE0723E25AB700529352 /* SDL_systhread.c in Sources */, + A75FCE0823E25AB700529352 /* SDL_windowevents.c in Sources */, + A75FCE0923E25AB700529352 /* s_scalbn.c in Sources */, + A75FCE0A23E25AB700529352 /* SDL_timer.c in Sources */, + A75FCE0B23E25AB700529352 /* SDL_blendpoint.c in Sources */, + A75FCE0C23E25AB700529352 /* SDL_gamecontroller.c in Sources */, + A75FCE0D23E25AB700529352 /* SDL_systimer.c in Sources */, + A75FCE0E23E25AB700529352 /* SDL_uikitclipboard.m in Sources */, + A75FCE0F23E25AB700529352 /* SDL_render_sw.c in Sources */, + A75FCE1123E25AB700529352 /* SDL_syssem.c in Sources */, + A75FCE1223E25AB700529352 /* SDL_hidapi_xbox360.c in Sources */, + A75FCE1323E25AB700529352 /* SDL_coreaudio.m in Sources */, + A75FCE1423E25AB700529352 /* SDL_blendline.c in Sources */, + F38233982738EC1800F7F527 /* hid.m in Sources */, + A75FCE1523E25AB700529352 /* SDL_blit_A.c in Sources */, + A75FCE1623E25AB700529352 /* SDL_d3dmath.c in Sources */, + A75FCE1823E25AB700529352 /* SDL_nullvideo.c in Sources */, + A75FCE1923E25AB700529352 /* SDL_offscreenevents.c in Sources */, + A75FCE1A23E25AB700529352 /* SDL_uikitview.m in Sources */, + A75FCE1B23E25AB700529352 /* SDL_nullevents.c in Sources */, + F362B9442B33920500D30B94 /* SDL_hidapi_steamdeck.c in Sources */, + A75FCE1C23E25AB700529352 /* SDL_audiodev.c in Sources */, + A75FCE1D23E25AB700529352 /* SDL_cocoaclipboard.m in Sources */, + A75FCE1E23E25AB700529352 /* SDL_blit_slow.c in Sources */, + A75FCE1F23E25AB700529352 /* s_copysign.c in Sources */, + A75FCE2023E25AB700529352 /* SDL_haptic.c in Sources */, + A75FCE2123E25AB700529352 /* SDL_uikitvulkan.m in Sources */, + F3984CD725BCC92900374F43 /* SDL_hidapi_stadia.c in Sources */, + F382071A284F3609004DD584 /* controller_type.c in Sources */, + 75E09161241EA924004729E1 /* SDL_virtualjoystick.c in Sources */, + A75FCE2323E25AB700529352 /* SDL_cocoametalview.m in Sources */, + A75FCE2423E25AB700529352 /* SDL_audiotypecvt.c in Sources */, + A75FCE2523E25AB700529352 /* SDL_uikitevents.m in Sources */, + F3820724284F362F004DD584 /* SDL_guid.c in Sources */, + A75FCE2623E25AB700529352 /* SDL_uikitmodes.m in Sources */, + A75FCE2723E25AB700529352 /* SDL_blit_N.c in Sources */, + A75FCE2823E25AB700529352 /* SDL_dropevents.c in Sources */, + A75FCE2923E25AB700529352 /* e_atan2.c in Sources */, + A75FCE2A23E25AB700529352 /* s_sin.c in Sources */, + A75FCE2B23E25AB700529352 /* SDL_power.c in Sources */, + A75FCE2C23E25AB700529352 /* SDL_cocoakeyboard.m in Sources */, + A75FCE2D23E25AB700529352 /* SDL_dynapi.c in Sources */, + F388C95C28B5F6F700661ECF /* SDL_hidapi_ps3.c in Sources */, + A75FCE2E23E25AB700529352 /* SDL_shaders_gl.c in Sources */, + 560572152473688300B46B66 /* SDL_locale.c in Sources */, + A75FCE2F23E25AB700529352 /* e_log.c in Sources */, + A75FCE3023E25AB700529352 /* SDL_cocoamessagebox.m in Sources */, + A75FCE3123E25AB700529352 /* SDL_blendfillrect.c in Sources */, + A75FCE3223E25AB700529352 /* SDL_uikitvideo.m in Sources */, + A75FCE3323E25AB700529352 /* SDL_cocoashape.m in Sources */, + A75FCE3423E25AB700529352 /* SDL_cocoamouse.m in Sources */, + A75FCE3523E25AB700529352 /* SDL_error.c in Sources */, + F3D60A8A28C16A1900788A3A /* SDL_hidapi_wii.c in Sources */, + A75FCE3623E25AB700529352 /* SDL_blit.c in Sources */, + A75FCE3723E25AB700529352 /* SDL_rwops.c in Sources */, + F38233922738EBF300F7F527 /* SDL_hidapi.c in Sources */, + A75FCE3823E25AB700529352 /* SDL_uikitviewcontroller.m in Sources */, + A75FCE3923E25AB700529352 /* s_cos.c in Sources */, + A75FCE3A23E25AB700529352 /* SDL_yuv_sw.c in Sources */, + A75FCE3B23E25AB700529352 /* SDL_wave.c in Sources */, + A75FCE3C23E25AB700529352 /* s_tan.c in Sources */, + A75FCE3D23E25AB700529352 /* SDL_hints.c in Sources */, + 9846B083287A9020000C35C8 /* SDL_hidapi_shield.c in Sources */, + A75FCE3E23E25AB700529352 /* SDL_hidapi_ps4.c in Sources */, + A75FCE3F23E25AB700529352 /* SDL_pixels.c in Sources */, + A75FCE4123E25AB700529352 /* SDL_sysloadso.c in Sources */, + F31A92DA28D4CB39003BFD6A /* SDL_offscreenopengles.c in Sources */, + A75FCE4323E25AB700529352 /* SDL_syspower.c in Sources */, + A75FCE4523E25AB700529352 /* SDL_iconv.c in Sources */, + A75FCE4623E25AB700529352 /* s_fabs.c in Sources */, + A75FCE4923E25AB700529352 /* SDL_shaders_metal.metal in Sources */, + F395C1B82569C6A000942BFF /* SDL_mfijoystick.m in Sources */, + A75FCE4A23E25AB700529352 /* SDL_uikitwindow.m in Sources */, + A75FCE4B23E25AB700529352 /* SDL_render.c in Sources */, + A75FCE4C23E25AB700529352 /* SDL_stretch.c in Sources */, + A75FCE4D23E25AB700529352 /* s_floor.c in Sources */, + A75FCE4E23E25AB700529352 /* SDL_blit_copy.c in Sources */, + A75FCE4F23E25AB700529352 /* e_fmod.c in Sources */, + A75FCE5023E25AB700529352 /* SDL_syspower.m in Sources */, + A75FCE5123E25AB700529352 /* e_log10.c in Sources */, + A75FCE5223E25AB700529352 /* SDL_uikitopenglview.m in Sources */, + A75FCE5323E25AB700529352 /* SDL_mixer.c in Sources */, + 5616CA64252BB35F005D5928 /* SDL_url.c in Sources */, + A75FCE5423E25AB700529352 /* SDL_events.c in Sources */, + F316AB9E2B5A02C3002EF551 /* yuv_rgb_std.c in Sources */, + F386F7002884663E001840AA /* SDL_utils.c in Sources */, + A75FCE5523E25AB700529352 /* SDL_blit_0.c in Sources */, + A75FCE5623E25AB700529352 /* k_tan.c in Sources */, + A75FCE5823E25AB700529352 /* SDL_diskaudio.c in Sources */, + A75FCE5923E25AB700529352 /* SDL_egl.c in Sources */, + A75FCE5A23E25AB700529352 /* SDL_RLEaccel.c in Sources */, + A75FCE5C23E25AB700529352 /* SDL_assert.c in Sources */, + A75FCE5D23E25AB700529352 /* SDL_bmp.c in Sources */, + A75FCE5E23E25AB700529352 /* SDL_stdlib.c in Sources */, + A75FCE5F23E25AB700529352 /* SDL_dummyaudio.c in Sources */, + A75FCE6023E25AB700529352 /* SDL_fillrect.c in Sources */, + A75FCE6123E25AB700529352 /* SDL_nullframebuffer.c in Sources */, + A75FCE6223E25AB700529352 /* SDL_dummysensor.c in Sources */, + F3ADAB922576F0B400A6B1D9 /* SDL_sysurl.m in Sources */, + A75FCE6323E25AB700529352 /* SDL_string.c in Sources */, + A75FCE6423E25AB700529352 /* SDL_render_gl.c in Sources */, + F316ABA72B5A02C3002EF551 /* yuv_rgb_sse.c in Sources */, + A75FCE6523E25AB700529352 /* SDL_uikitopengles.m in Sources */, + A75FCE6723E25AB700529352 /* SDL_cocoamodes.m in Sources */, + A75FCE6823E25AB700529352 /* k_rem_pio2.c in Sources */, + A75FCE6A23E25AB700529352 /* SDL_gesture.c in Sources */, + A75FCE6B23E25AB700529352 /* SDL_getenv.c in Sources */, + A75FCE6C23E25AB700529352 /* SDL_hidapi_gamecube.c in Sources */, + A75FCE6D23E25AB700529352 /* SDL_joystick.c in Sources */, + A75FCE6E23E25AB700529352 /* SDL_render_gles2.c in Sources */, + A75FCE6F23E25AB700529352 /* SDL_surface.c in Sources */, + A75FCE7023E25AB700529352 /* SDL_hidapi_xboxone.c in Sources */, + A75FCE7123E25AB700529352 /* SDL_blit_auto.c in Sources */, + A75FCE7323E25AB700529352 /* SDL_keyboard.c in Sources */, + A75FCE7523E25AB700529352 /* SDL_rect.c in Sources */, + A75FCE7623E25AB700529352 /* SDL_cocoaopengles.m in Sources */, + A75FCE7723E25AB700529352 /* SDL_qsort.c in Sources */, + 5605720D2473687B00B46B66 /* SDL_syslocale.m in Sources */, + A75FCE7823E25AB700529352 /* SDL_hidapi_switch.c in Sources */, + A75FCE7923E25AB700529352 /* SDL_strtokr.c in Sources */, + A75FCE7A23E25AB700529352 /* SDL_clipboardevents.c in Sources */, + A75FCE7C23E25AB700529352 /* k_cos.c in Sources */, + A75FCE7D23E25AB700529352 /* SDL_hidapijoystick.c in Sources */, + A75FCE7E23E25AB700529352 /* SDL_malloc.c in Sources */, + A75FCE7F23E25AB700529352 /* SDL_audio.c in Sources */, + A75FCE8023E25AB700529352 /* SDL_sysfilesystem.c in Sources */, + A75FCE8123E25AB700529352 /* SDL_offscreenvideo.c in Sources */, + A75FCE8223E25AB700529352 /* SDL_syscond.c in Sources */, + A75FCE8323E25AB700529352 /* SDL_syshaptic.c in Sources */, + A75FCE8423E25AB700529352 /* e_exp.c in Sources */, + A75FCE8523E25AB700529352 /* SDL_quit.c in Sources */, + A75FCE8623E25AB700529352 /* SDL_cocoawindow.m in Sources */, + A1BB8B6A27F6CF330057CFA8 /* SDL_list.c in Sources */, + A75FCE8723E25AB700529352 /* SDL_sysmutex.c in Sources */, + A75FCE8823E25AB700529352 /* SDL_syshaptic.c in Sources */, + F3F07D61269640160074468B /* SDL_hidapi_luna.c in Sources */, + A75FCE8923E25AB700529352 /* SDL_rwopsbundlesupport.m in Sources */, + A75FCE8A23E25AB700529352 /* SDL_video.c in Sources */, + A75FCE8C23E25AB700529352 /* SDL_uikitmetalview.m in Sources */, + A75FCE8D23E25AB700529352 /* SDL_steamcontroller.c in Sources */, + A75FCE8E23E25AB700529352 /* SDL_shaders_gles2.c in Sources */, + A75FCE8F23E25AB700529352 /* SDL_blit_1.c in Sources */, + A75FCE9123E25AB700529352 /* SDL_mouse.c in Sources */, + A75FCE9223E25AB700529352 /* e_rem_pio2.c in Sources */, + A75FCE9323E25AB700529352 /* SDL_dataqueue.c in Sources */, + F395C1A32569C68F00942BFF /* SDL_iokitjoystick.c in Sources */, + A75FCE9423E25AB700529352 /* SDL_sysjoystick.c in Sources */, + A75FCE9523E25AB700529352 /* SDL_cpuinfo.c in Sources */, + A75FCE9623E25AB700529352 /* SDL_sensor.c in Sources */, + A75FCE9823E25AB700529352 /* k_sin.c in Sources */, + A75FCE9A23E25AB700529352 /* SDL_systimer.c in Sources */, + A75FCE9B23E25AB700529352 /* SDL_drawpoint.c in Sources */, + A75FCE9C23E25AB700529352 /* e_sqrt.c in Sources */, + A75FCE9D23E25AB700529352 /* SDL_cocoavideo.m in Sources */, + F362B9622B33EB7300D30B94 /* SDL_steam_virtual_gamepad.c in Sources */, + A75FCE9F23E25AB700529352 /* SDL.c in Sources */, + A75FCEA123E25AB700529352 /* SDL_cocoavulkan.m in Sources */, + A75FCEA223E25AB700529352 /* SDL_uikitappdelegate.m in Sources */, + A75FCEA323E25AB700529352 /* SDL_offscreenwindow.c in Sources */, + F316ABB92B5A02C3002EF551 /* yuv_rgb_lsx.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A75FCFA123E25AC700529352 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A75FCFA223E25AC700529352 /* SDL_drawline.c in Sources */, + A75FCFA323E25AC700529352 /* SDL_yuv.c in Sources */, + A75FCFA423E25AC700529352 /* SDL_sysfilesystem.m in Sources */, + F395BF6D25633B2400942BFF /* SDL_crc32.c in Sources */, + F3A490A62554D38600E92A8B /* SDL_hidapi_ps5.c in Sources */, + A75FCFA523E25AC700529352 /* e_pow.c in Sources */, + A75FCFA623E25AC700529352 /* SDL_systls.c in Sources */, + A75FCFA723E25AC700529352 /* SDL_vulkan_utils.c in Sources */, + A75FCFA823E25AC700529352 /* SDL_spinlock.c in Sources */, + A75FDBD623EA380300529352 /* SDL_hidapi_rumble.c in Sources */, + A75FCFA923E25AC700529352 /* s_atan.c in Sources */, + A75FCFAA23E25AC700529352 /* SDL_sysloadso.c in Sources */, + A75FCFAB23E25AC700529352 /* SDL_render_metal.m in Sources */, + A75FCFAC23E25AC700529352 /* SDL_clipboard.c in Sources */, + A75FCFAD23E25AC700529352 /* SDL_cocoaevents.m in Sources */, + A75FCFAF23E25AC700529352 /* SDL_audiocvt.c in Sources */, + A75FCFB023E25AC700529352 /* SDL_shape.c in Sources */, + A75FCFB123E25AC700529352 /* SDL_rotate.c in Sources */, + F3973FB328A59BDD00B84553 /* SDL_crc16.c in Sources */, + A75FCFB223E25AC700529352 /* SDL_coremotionsensor.m in Sources */, + A75FDAB223E2795C00529352 /* SDL_hidapi_steam.c in Sources */, + A75FCFB323E25AC700529352 /* SDL_touch.c in Sources */, + A1626A462617006A003F1973 /* SDL_triangle.c in Sources */, + A75FCFB523E25AC700529352 /* SDL_uikitmessagebox.m in Sources */, + A75FCFB623E25AC700529352 /* SDL_thread.c in Sources */, + A75FCFB723E25AC700529352 /* SDL_hidapi_xbox360w.c in Sources */, + A75FCFB823E25AC700529352 /* SDL_atomic.c in Sources */, + A75FCFB923E25AC700529352 /* SDL_displayevents.c in Sources */, + A75FCFBB23E25AC700529352 /* SDL_log.c in Sources */, + A75FCFBC23E25AC700529352 /* SDL_cocoaopengl.m in Sources */, + A75FCFBD23E25AC700529352 /* SDL_offscreenframebuffer.c in Sources */, + F323060728939F6400E66D30 /* SDL_hidapi_combined.c in Sources */, + A75FCFBF23E25AC700529352 /* SDL_render_gles.c in Sources */, + A75FCFC023E25AC700529352 /* SDL_systhread.c in Sources */, + A75FCFC123E25AC700529352 /* SDL_windowevents.c in Sources */, + A75FCFC223E25AC700529352 /* s_scalbn.c in Sources */, + A75FCFC323E25AC700529352 /* SDL_timer.c in Sources */, + A75FCFC423E25AC700529352 /* SDL_blendpoint.c in Sources */, + A75FCFC523E25AC700529352 /* SDL_gamecontroller.c in Sources */, + A75FCFC623E25AC700529352 /* SDL_systimer.c in Sources */, + A75FCFC723E25AC700529352 /* SDL_uikitclipboard.m in Sources */, + A75FCFC823E25AC700529352 /* SDL_render_sw.c in Sources */, + A75FCFCA23E25AC700529352 /* SDL_syssem.c in Sources */, + A75FCFCB23E25AC700529352 /* SDL_hidapi_xbox360.c in Sources */, + A75FCFCC23E25AC700529352 /* SDL_coreaudio.m in Sources */, + A75FCFCD23E25AC700529352 /* SDL_blendline.c in Sources */, + F38233992738EC1800F7F527 /* hid.m in Sources */, + A75FCFCE23E25AC700529352 /* SDL_blit_A.c in Sources */, + A75FCFCF23E25AC700529352 /* SDL_d3dmath.c in Sources */, + A75FCFD123E25AC700529352 /* SDL_nullvideo.c in Sources */, + A75FCFD223E25AC700529352 /* SDL_offscreenevents.c in Sources */, + A75FCFD323E25AC700529352 /* SDL_uikitview.m in Sources */, + A75FCFD423E25AC700529352 /* SDL_nullevents.c in Sources */, + F362B9452B33920500D30B94 /* SDL_hidapi_steamdeck.c in Sources */, + A75FCFD523E25AC700529352 /* SDL_audiodev.c in Sources */, + A75FCFD623E25AC700529352 /* SDL_cocoaclipboard.m in Sources */, + A75FCFD723E25AC700529352 /* SDL_blit_slow.c in Sources */, + A75FCFD823E25AC700529352 /* s_copysign.c in Sources */, + A75FCFD923E25AC700529352 /* SDL_haptic.c in Sources */, + A75FCFDA23E25AC700529352 /* SDL_uikitvulkan.m in Sources */, + F3984CD825BCC92900374F43 /* SDL_hidapi_stadia.c in Sources */, + F382071B284F3609004DD584 /* controller_type.c in Sources */, + 75E09162241EA924004729E1 /* SDL_virtualjoystick.c in Sources */, + A75FCFDC23E25AC700529352 /* SDL_cocoametalview.m in Sources */, + A75FCFDD23E25AC700529352 /* SDL_audiotypecvt.c in Sources */, + A75FCFDE23E25AC700529352 /* SDL_uikitevents.m in Sources */, + F3820725284F362F004DD584 /* SDL_guid.c in Sources */, + A75FCFDF23E25AC700529352 /* SDL_uikitmodes.m in Sources */, + A75FCFE023E25AC700529352 /* SDL_blit_N.c in Sources */, + A75FCFE123E25AC700529352 /* SDL_dropevents.c in Sources */, + A75FCFE223E25AC700529352 /* e_atan2.c in Sources */, + A75FCFE323E25AC700529352 /* s_sin.c in Sources */, + A75FCFE423E25AC700529352 /* SDL_power.c in Sources */, + A75FCFE523E25AC700529352 /* SDL_cocoakeyboard.m in Sources */, + A75FCFE623E25AC700529352 /* SDL_dynapi.c in Sources */, + F388C95D28B5F6F700661ECF /* SDL_hidapi_ps3.c in Sources */, + A75FCFE723E25AC700529352 /* SDL_shaders_gl.c in Sources */, + 560572162473688400B46B66 /* SDL_locale.c in Sources */, + A75FCFE823E25AC700529352 /* e_log.c in Sources */, + A75FCFE923E25AC700529352 /* SDL_cocoamessagebox.m in Sources */, + A75FCFEA23E25AC700529352 /* SDL_blendfillrect.c in Sources */, + A75FCFEB23E25AC700529352 /* SDL_uikitvideo.m in Sources */, + A75FCFEC23E25AC700529352 /* SDL_cocoashape.m in Sources */, + A75FCFED23E25AC700529352 /* SDL_cocoamouse.m in Sources */, + A75FCFEE23E25AC700529352 /* SDL_error.c in Sources */, + F3D60A8B28C16A1900788A3A /* SDL_hidapi_wii.c in Sources */, + A75FCFEF23E25AC700529352 /* SDL_blit.c in Sources */, + A75FCFF023E25AC700529352 /* SDL_rwops.c in Sources */, + F38233932738EBF300F7F527 /* SDL_hidapi.c in Sources */, + A75FCFF123E25AC700529352 /* SDL_uikitviewcontroller.m in Sources */, + A75FCFF223E25AC700529352 /* s_cos.c in Sources */, + A75FCFF323E25AC700529352 /* SDL_yuv_sw.c in Sources */, + A75FCFF423E25AC700529352 /* SDL_wave.c in Sources */, + A75FCFF523E25AC700529352 /* s_tan.c in Sources */, + A75FCFF623E25AC700529352 /* SDL_hints.c in Sources */, + 9846B084287A9020000C35C8 /* SDL_hidapi_shield.c in Sources */, + A75FCFF723E25AC700529352 /* SDL_hidapi_ps4.c in Sources */, + A75FCFF823E25AC700529352 /* SDL_pixels.c in Sources */, + A75FCFFA23E25AC700529352 /* SDL_sysloadso.c in Sources */, + F31A92DB28D4CB39003BFD6A /* SDL_offscreenopengles.c in Sources */, + A75FCFFC23E25AC700529352 /* SDL_syspower.c in Sources */, + A75FCFFE23E25AC700529352 /* SDL_iconv.c in Sources */, + A75FCFFF23E25AC700529352 /* s_fabs.c in Sources */, + A75FD00223E25AC700529352 /* SDL_shaders_metal.metal in Sources */, + F395C1B92569C6A000942BFF /* SDL_mfijoystick.m in Sources */, + A75FD00323E25AC700529352 /* SDL_uikitwindow.m in Sources */, + A75FD00423E25AC700529352 /* SDL_render.c in Sources */, + A75FD00523E25AC700529352 /* SDL_stretch.c in Sources */, + A75FD00623E25AC700529352 /* s_floor.c in Sources */, + A75FD00723E25AC700529352 /* SDL_blit_copy.c in Sources */, + A75FD00823E25AC700529352 /* e_fmod.c in Sources */, + A75FD00923E25AC700529352 /* SDL_syspower.m in Sources */, + A75FD00A23E25AC700529352 /* e_log10.c in Sources */, + A75FD00B23E25AC700529352 /* SDL_uikitopenglview.m in Sources */, + A75FD00C23E25AC700529352 /* SDL_mixer.c in Sources */, + 5616CA67252BB361005D5928 /* SDL_url.c in Sources */, + A75FD00D23E25AC700529352 /* SDL_events.c in Sources */, + F316AB9F2B5A02C3002EF551 /* yuv_rgb_std.c in Sources */, + F386F7012884663E001840AA /* SDL_utils.c in Sources */, + A75FD00E23E25AC700529352 /* SDL_blit_0.c in Sources */, + A75FD00F23E25AC700529352 /* k_tan.c in Sources */, + A75FD01123E25AC700529352 /* SDL_diskaudio.c in Sources */, + A75FD01223E25AC700529352 /* SDL_egl.c in Sources */, + A75FD01323E25AC700529352 /* SDL_RLEaccel.c in Sources */, + A75FD01523E25AC700529352 /* SDL_assert.c in Sources */, + A75FD01623E25AC700529352 /* SDL_bmp.c in Sources */, + A75FD01723E25AC700529352 /* SDL_stdlib.c in Sources */, + A75FD01823E25AC700529352 /* SDL_dummyaudio.c in Sources */, + A75FD01923E25AC700529352 /* SDL_fillrect.c in Sources */, + A75FD01A23E25AC700529352 /* SDL_nullframebuffer.c in Sources */, + A75FD01B23E25AC700529352 /* SDL_dummysensor.c in Sources */, + F3ADAB932576F0B400A6B1D9 /* SDL_sysurl.m in Sources */, + A75FD01C23E25AC700529352 /* SDL_string.c in Sources */, + A75FD01D23E25AC700529352 /* SDL_render_gl.c in Sources */, + F316ABA82B5A02C3002EF551 /* yuv_rgb_sse.c in Sources */, + A75FD01E23E25AC700529352 /* SDL_uikitopengles.m in Sources */, + A75FD02023E25AC700529352 /* SDL_cocoamodes.m in Sources */, + A75FD02123E25AC700529352 /* k_rem_pio2.c in Sources */, + A75FD02323E25AC700529352 /* SDL_gesture.c in Sources */, + A75FD02423E25AC700529352 /* SDL_getenv.c in Sources */, + A75FD02523E25AC700529352 /* SDL_hidapi_gamecube.c in Sources */, + A75FD02623E25AC700529352 /* SDL_joystick.c in Sources */, + A75FD02723E25AC700529352 /* SDL_render_gles2.c in Sources */, + A75FD02823E25AC700529352 /* SDL_surface.c in Sources */, + A75FD02923E25AC700529352 /* SDL_hidapi_xboxone.c in Sources */, + A75FD02A23E25AC700529352 /* SDL_blit_auto.c in Sources */, + A75FD02C23E25AC700529352 /* SDL_keyboard.c in Sources */, + A75FD02E23E25AC700529352 /* SDL_rect.c in Sources */, + A75FD02F23E25AC700529352 /* SDL_cocoaopengles.m in Sources */, + A75FD03023E25AC700529352 /* SDL_qsort.c in Sources */, + 5605720E2473687C00B46B66 /* SDL_syslocale.m in Sources */, + A75FD03123E25AC700529352 /* SDL_hidapi_switch.c in Sources */, + A75FD03223E25AC700529352 /* SDL_strtokr.c in Sources */, + A75FD03323E25AC700529352 /* SDL_clipboardevents.c in Sources */, + A75FD03523E25AC700529352 /* k_cos.c in Sources */, + A75FD03623E25AC700529352 /* SDL_hidapijoystick.c in Sources */, + A75FD03723E25AC700529352 /* SDL_malloc.c in Sources */, + A75FD03823E25AC700529352 /* SDL_audio.c in Sources */, + A75FD03923E25AC700529352 /* SDL_sysfilesystem.c in Sources */, + A75FD03A23E25AC700529352 /* SDL_offscreenvideo.c in Sources */, + A75FD03B23E25AC700529352 /* SDL_syscond.c in Sources */, + A75FD03C23E25AC700529352 /* SDL_syshaptic.c in Sources */, + A75FD03D23E25AC700529352 /* e_exp.c in Sources */, + A75FD03E23E25AC700529352 /* SDL_quit.c in Sources */, + A75FD03F23E25AC700529352 /* SDL_cocoawindow.m in Sources */, + A1BB8B6B27F6CF330057CFA8 /* SDL_list.c in Sources */, + A75FD04023E25AC700529352 /* SDL_sysmutex.c in Sources */, + A75FD04123E25AC700529352 /* SDL_syshaptic.c in Sources */, + F3F07D62269640160074468B /* SDL_hidapi_luna.c in Sources */, + A75FD04223E25AC700529352 /* SDL_rwopsbundlesupport.m in Sources */, + A75FD04323E25AC700529352 /* SDL_video.c in Sources */, + A75FD04523E25AC700529352 /* SDL_uikitmetalview.m in Sources */, + A75FD04623E25AC700529352 /* SDL_steamcontroller.c in Sources */, + A75FD04723E25AC700529352 /* SDL_shaders_gles2.c in Sources */, + A75FD04823E25AC700529352 /* SDL_blit_1.c in Sources */, + A75FD04A23E25AC700529352 /* SDL_mouse.c in Sources */, + A75FD04B23E25AC700529352 /* e_rem_pio2.c in Sources */, + A75FD04C23E25AC700529352 /* SDL_dataqueue.c in Sources */, + F395C1A42569C68F00942BFF /* SDL_iokitjoystick.c in Sources */, + A75FD04D23E25AC700529352 /* SDL_sysjoystick.c in Sources */, + A75FD04E23E25AC700529352 /* SDL_cpuinfo.c in Sources */, + A75FD04F23E25AC700529352 /* SDL_sensor.c in Sources */, + A75FD05123E25AC700529352 /* k_sin.c in Sources */, + A75FD05323E25AC700529352 /* SDL_systimer.c in Sources */, + A75FD05423E25AC700529352 /* SDL_drawpoint.c in Sources */, + A75FD05523E25AC700529352 /* e_sqrt.c in Sources */, + A75FD05623E25AC700529352 /* SDL_cocoavideo.m in Sources */, + F362B9632B33EB7300D30B94 /* SDL_steam_virtual_gamepad.c in Sources */, + A75FD05823E25AC700529352 /* SDL.c in Sources */, + A75FD05A23E25AC700529352 /* SDL_cocoavulkan.m in Sources */, + A75FD05B23E25AC700529352 /* SDL_uikitappdelegate.m in Sources */, + A75FD05C23E25AC700529352 /* SDL_offscreenwindow.c in Sources */, + F316ABBA2B5A02C3002EF551 /* yuv_rgb_lsx.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A769B17023E259AE00872273 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A769B17123E259AE00872273 /* SDL_drawline.c in Sources */, + A769B17223E259AE00872273 /* SDL_yuv.c in Sources */, + A769B17323E259AE00872273 /* SDL_sysfilesystem.m in Sources */, + A769B17423E259AE00872273 /* e_pow.c in Sources */, + A769B17523E259AE00872273 /* SDL_systls.c in Sources */, + A769B17623E259AE00872273 /* SDL_vulkan_utils.c in Sources */, + A769B17723E259AE00872273 /* SDL_spinlock.c in Sources */, + A769B17823E259AE00872273 /* s_atan.c in Sources */, + A769B17923E259AE00872273 /* SDL_sysloadso.c in Sources */, + A75FDAB023E2795C00529352 /* SDL_hidapi_steam.c in Sources */, + A769B17A23E259AE00872273 /* SDL_render_metal.m in Sources */, + A769B17B23E259AE00872273 /* SDL_clipboard.c in Sources */, + A769B17C23E259AE00872273 /* SDL_cocoaevents.m in Sources */, + A769B17E23E259AE00872273 /* SDL_audiocvt.c in Sources */, + A769B17F23E259AE00872273 /* SDL_shape.c in Sources */, + A769B18023E259AE00872273 /* SDL_rotate.c in Sources */, + A769B18123E259AE00872273 /* SDL_coremotionsensor.m in Sources */, + A769B18223E259AE00872273 /* SDL_touch.c in Sources */, + A769B18523E259AE00872273 /* SDL_uikitmessagebox.m in Sources */, + A769B18623E259AE00872273 /* SDL_thread.c in Sources */, + A769B18723E259AE00872273 /* SDL_hidapi_xbox360w.c in Sources */, + A769B18823E259AE00872273 /* SDL_atomic.c in Sources */, + A769B18923E259AE00872273 /* SDL_displayevents.c in Sources */, + F316ABA52B5A02C3002EF551 /* yuv_rgb_sse.c in Sources */, + A769B18B23E259AE00872273 /* SDL_log.c in Sources */, + A769B18C23E259AE00872273 /* SDL_cocoaopengl.m in Sources */, + A769B18D23E259AE00872273 /* SDL_offscreenframebuffer.c in Sources */, + A769B18F23E259AE00872273 /* SDL_render_gles.c in Sources */, + F362B9602B33EB7300D30B94 /* SDL_steam_virtual_gamepad.c in Sources */, + A769B19023E259AE00872273 /* SDL_systhread.c in Sources */, + A769B19123E259AE00872273 /* SDL_windowevents.c in Sources */, + A769B19223E259AE00872273 /* s_scalbn.c in Sources */, + A769B19323E259AE00872273 /* SDL_timer.c in Sources */, + A769B19423E259AE00872273 /* SDL_blendpoint.c in Sources */, + A769B19523E259AE00872273 /* SDL_gamecontroller.c in Sources */, + A769B19623E259AE00872273 /* SDL_systimer.c in Sources */, + A769B19723E259AE00872273 /* SDL_uikitclipboard.m in Sources */, + A769B19823E259AE00872273 /* SDL_render_sw.c in Sources */, + A769B19A23E259AE00872273 /* SDL_syssem.c in Sources */, + A769B19B23E259AE00872273 /* SDL_hidapi_xbox360.c in Sources */, + A769B19C23E259AE00872273 /* SDL_coreaudio.m in Sources */, + F362B9422B33920500D30B94 /* SDL_hidapi_steamdeck.c in Sources */, + A769B19D23E259AE00872273 /* SDL_blendline.c in Sources */, + A769B19E23E259AE00872273 /* SDL_blit_A.c in Sources */, + A769B19F23E259AE00872273 /* SDL_d3dmath.c in Sources */, + A769B1A123E259AE00872273 /* SDL_nullvideo.c in Sources */, + A769B1A223E259AE00872273 /* SDL_offscreenevents.c in Sources */, + A769B1A323E259AE00872273 /* SDL_uikitview.m in Sources */, + A769B1A423E259AE00872273 /* SDL_nullevents.c in Sources */, + A769B1A523E259AE00872273 /* SDL_audiodev.c in Sources */, + A769B1A623E259AE00872273 /* SDL_cocoaclipboard.m in Sources */, + A769B1A723E259AE00872273 /* SDL_blit_slow.c in Sources */, + A769B1A823E259AE00872273 /* s_copysign.c in Sources */, + A769B1A923E259AE00872273 /* SDL_haptic.c in Sources */, + A769B1AA23E259AE00872273 /* SDL_uikitvulkan.m in Sources */, + A769B1AC23E259AE00872273 /* SDL_cocoametalview.m in Sources */, + A769B1AD23E259AE00872273 /* SDL_audiotypecvt.c in Sources */, + A769B1AE23E259AE00872273 /* SDL_uikitevents.m in Sources */, + F323060428939F6400E66D30 /* SDL_hidapi_combined.c in Sources */, + A769B1AF23E259AE00872273 /* SDL_uikitmodes.m in Sources */, + A769B1B023E259AE00872273 /* SDL_blit_N.c in Sources */, + F3ADAB912576F0B400A6B1D9 /* SDL_sysurl.m in Sources */, + A769B1B123E259AE00872273 /* SDL_dropevents.c in Sources */, + A769B1B223E259AE00872273 /* e_atan2.c in Sources */, + A769B1B323E259AE00872273 /* s_sin.c in Sources */, + A769B1B423E259AE00872273 /* SDL_power.c in Sources */, + F386F6FE2884663E001840AA /* SDL_utils.c in Sources */, + A769B1B523E259AE00872273 /* SDL_cocoakeyboard.m in Sources */, + A769B1B623E259AE00872273 /* SDL_dynapi.c in Sources */, + A769B1B723E259AE00872273 /* SDL_shaders_gl.c in Sources */, + F38233912738EBF100F7F527 /* SDL_hidapi.c in Sources */, + A769B1B823E259AE00872273 /* e_log.c in Sources */, + A769B1B923E259AE00872273 /* SDL_cocoamessagebox.m in Sources */, + A769B1BA23E259AE00872273 /* SDL_blendfillrect.c in Sources */, + F3820722284F362F004DD584 /* SDL_guid.c in Sources */, + A769B1BB23E259AE00872273 /* SDL_uikitvideo.m in Sources */, + A769B1BC23E259AE00872273 /* SDL_cocoashape.m in Sources */, + A769B1BD23E259AE00872273 /* SDL_cocoamouse.m in Sources */, + A769B1BE23E259AE00872273 /* SDL_error.c in Sources */, + A769B1BF23E259AE00872273 /* SDL_blit.c in Sources */, + A769B1C023E259AE00872273 /* SDL_rwops.c in Sources */, + 9846B081287A9020000C35C8 /* SDL_hidapi_shield.c in Sources */, + A769B1C123E259AE00872273 /* SDL_uikitviewcontroller.m in Sources */, + A769B1C223E259AE00872273 /* s_cos.c in Sources */, + A769B1C323E259AE00872273 /* SDL_steamcontroller.c in Sources */, + A769B1C423E259AE00872273 /* SDL_yuv_sw.c in Sources */, + A769B1C523E259AE00872273 /* SDL_wave.c in Sources */, + A769B1C623E259AE00872273 /* s_tan.c in Sources */, + A769B1C723E259AE00872273 /* SDL_hints.c in Sources */, + F3A490A32554D38600E92A8B /* SDL_hidapi_ps5.c in Sources */, + A769B1C823E259AE00872273 /* SDL_hidapi_ps4.c in Sources */, + A769B1C923E259AE00872273 /* SDL_pixels.c in Sources */, + A769B1CB23E259AE00872273 /* SDL_sysloadso.c in Sources */, + A769B1CD23E259AE00872273 /* SDL_syspower.c in Sources */, + A769B1CF23E259AE00872273 /* SDL_iconv.c in Sources */, + A769B1D023E259AE00872273 /* s_fabs.c in Sources */, + A769B1D323E259AE00872273 /* SDL_shaders_metal.metal in Sources */, + 5616CA5E252BB35E005D5928 /* SDL_url.c in Sources */, + A769B1D423E259AE00872273 /* SDL_uikitwindow.m in Sources */, + A769B1D523E259AE00872273 /* SDL_render.c in Sources */, + A769B1D623E259AE00872273 /* SDL_stretch.c in Sources */, + A769B1D723E259AE00872273 /* s_floor.c in Sources */, + A769B1D823E259AE00872273 /* SDL_blit_copy.c in Sources */, + A769B1D923E259AE00872273 /* e_fmod.c in Sources */, + A769B1DA23E259AE00872273 /* SDL_syspower.m in Sources */, + A769B1DB23E259AE00872273 /* e_log10.c in Sources */, + A769B1DC23E259AE00872273 /* SDL_uikitopenglview.m in Sources */, + A769B1DD23E259AE00872273 /* SDL_mixer.c in Sources */, + A769B1DE23E259AE00872273 /* SDL_events.c in Sources */, + A769B1DF23E259AE00872273 /* SDL_blit_0.c in Sources */, + A769B1E023E259AE00872273 /* k_tan.c in Sources */, + A769B1E223E259AE00872273 /* SDL_diskaudio.c in Sources */, + A769B1E423E259AE00872273 /* SDL_egl.c in Sources */, + A769B1E523E259AE00872273 /* SDL_RLEaccel.c in Sources */, + A769B1E723E259AE00872273 /* SDL_assert.c in Sources */, + A769B1E823E259AE00872273 /* SDL_bmp.c in Sources */, + 75E0915F241EA924004729E1 /* SDL_virtualjoystick.c in Sources */, + A769B1E923E259AE00872273 /* SDL_uikit_main.c in Sources */, + F3F07D5F269640160074468B /* SDL_hidapi_luna.c in Sources */, + A769B1EA23E259AE00872273 /* SDL_stdlib.c in Sources */, + F316ABB72B5A02C3002EF551 /* yuv_rgb_lsx.c in Sources */, + A769B1EB23E259AE00872273 /* SDL_dummyaudio.c in Sources */, + A769B1EC23E259AE00872273 /* SDL_fillrect.c in Sources */, + A769B1ED23E259AE00872273 /* SDL_nullframebuffer.c in Sources */, + A769B1EE23E259AE00872273 /* SDL_dummysensor.c in Sources */, + A769B1EF23E259AE00872273 /* SDL_string.c in Sources */, + A769B1F023E259AE00872273 /* SDL_render_gl.c in Sources */, + A769B1F123E259AE00872273 /* SDL_uikitopengles.m in Sources */, + A769B1F323E259AE00872273 /* SDL_cocoamodes.m in Sources */, + A769B1F423E259AE00872273 /* k_rem_pio2.c in Sources */, + A769B1F623E259AE00872273 /* SDL_gesture.c in Sources */, + A769B1F723E259AE00872273 /* SDL_getenv.c in Sources */, + A769B1F823E259AE00872273 /* SDL_hidapi_gamecube.c in Sources */, + A769B1F923E259AE00872273 /* SDL_joystick.c in Sources */, + A769B1FA23E259AE00872273 /* SDL_render_gles2.c in Sources */, + A769B1FB23E259AE00872273 /* SDL_surface.c in Sources */, + F316AB9C2B5A02C3002EF551 /* yuv_rgb_std.c in Sources */, + F395BF6A25633B2400942BFF /* SDL_crc32.c in Sources */, + A769B1FC23E259AE00872273 /* SDL_hidapi_xboxone.c in Sources */, + A769B1FD23E259AE00872273 /* SDL_blit_auto.c in Sources */, + A769B1FF23E259AE00872273 /* SDL_keyboard.c in Sources */, + F3973FB028A59BDD00B84553 /* SDL_crc16.c in Sources */, + F3D60A8828C16A1900788A3A /* SDL_hidapi_wii.c in Sources */, + 560572132473688200B46B66 /* SDL_locale.c in Sources */, + A769B20123E259AE00872273 /* SDL_rect.c in Sources */, + A769B20223E259AE00872273 /* SDL_cocoaopengles.m in Sources */, + A769B20323E259AE00872273 /* SDL_qsort.c in Sources */, + A769B20423E259AE00872273 /* SDL_hidapi_switch.c in Sources */, + F3984CD525BCC92900374F43 /* SDL_hidapi_stadia.c in Sources */, + A769B20523E259AE00872273 /* SDL_strtokr.c in Sources */, + 5605720B2473687A00B46B66 /* SDL_syslocale.m in Sources */, + F3820718284F3609004DD584 /* controller_type.c in Sources */, + A769B20623E259AE00872273 /* SDL_clipboardevents.c in Sources */, + A769B20823E259AE00872273 /* k_cos.c in Sources */, + F388C95A28B5F6F700661ECF /* SDL_hidapi_ps3.c in Sources */, + A769B20923E259AE00872273 /* SDL_hidapijoystick.c in Sources */, + A769B20A23E259AE00872273 /* SDL_malloc.c in Sources */, + A769B20B23E259AE00872273 /* SDL_audio.c in Sources */, + A769B20C23E259AE00872273 /* SDL_sysfilesystem.c in Sources */, + A75FDBD323EA380300529352 /* SDL_hidapi_rumble.c in Sources */, + A769B20D23E259AE00872273 /* SDL_offscreenvideo.c in Sources */, + A769B20E23E259AE00872273 /* SDL_syscond.c in Sources */, + A769B20F23E259AE00872273 /* SDL_syshaptic.c in Sources */, + A769B21023E259AE00872273 /* e_exp.c in Sources */, + F395C1A12569C68F00942BFF /* SDL_iokitjoystick.c in Sources */, + A1BB8B6827F6CF330057CFA8 /* SDL_list.c in Sources */, + A769B21123E259AE00872273 /* SDL_quit.c in Sources */, + A769B21223E259AE00872273 /* SDL_cocoawindow.m in Sources */, + A769B21323E259AE00872273 /* SDL_sysmutex.c in Sources */, + A769B21423E259AE00872273 /* SDL_syshaptic.c in Sources */, + A769B21523E259AE00872273 /* SDL_rwopsbundlesupport.m in Sources */, + A769B21623E259AE00872273 /* SDL_video.c in Sources */, + F38233972738EC1600F7F527 /* hid.m in Sources */, + A769B21823E259AE00872273 /* SDL_uikitmetalview.m in Sources */, + A769B21923E259AE00872273 /* SDL_shaders_gles2.c in Sources */, + A769B21A23E259AE00872273 /* SDL_blit_1.c in Sources */, + A769B21C23E259AE00872273 /* SDL_mouse.c in Sources */, + A769B21D23E259AE00872273 /* e_rem_pio2.c in Sources */, + A769B21E23E259AE00872273 /* SDL_dataqueue.c in Sources */, + A769B21F23E259AE00872273 /* SDL_sysjoystick.c in Sources */, + A769B22023E259AE00872273 /* SDL_cpuinfo.c in Sources */, + A769B22123E259AE00872273 /* SDL_sensor.c in Sources */, + A769B22323E259AE00872273 /* k_sin.c in Sources */, + A769B22523E259AE00872273 /* SDL_systimer.c in Sources */, + F31A92D828D4CB39003BFD6A /* SDL_offscreenopengles.c in Sources */, + A769B22623E259AE00872273 /* SDL_drawpoint.c in Sources */, + F395C1B62569C6A000942BFF /* SDL_mfijoystick.m in Sources */, + A769B22723E259AE00872273 /* e_sqrt.c in Sources */, + A769B22823E259AE00872273 /* SDL_cocoavideo.m in Sources */, + A769B22923E259AE00872273 /* SDL.c in Sources */, + A769B22B23E259AE00872273 /* SDL_cocoavulkan.m in Sources */, + A769B22C23E259AE00872273 /* SDL_uikitappdelegate.m in Sources */, + A1626A432617006A003F1973 /* SDL_triangle.c in Sources */, + A769B22D23E259AE00872273 /* SDL_offscreenwindow.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A7D88ABF23E2437C00DCD162 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A7D8B9E423E2514400DCD162 /* SDL_drawline.c in Sources */, + A7D8AE7D23E2514100DCD162 /* SDL_yuv.c in Sources */, + A7D8B63023E2514300DCD162 /* SDL_sysfilesystem.m in Sources */, + F395BF6625633B2400942BFF /* SDL_crc32.c in Sources */, + A7D8BAC823E2514500DCD162 /* e_pow.c in Sources */, + A7D8B41D23E2514300DCD162 /* SDL_systls.c in Sources */, + A7D8AD2A23E2514100DCD162 /* SDL_vulkan_utils.c in Sources */, + A7D8A95223E2514000DCD162 /* SDL_spinlock.c in Sources */, + A7D8BAB023E2514400DCD162 /* s_atan.c in Sources */, + A7D8B75323E2514300DCD162 /* SDL_sysloadso.c in Sources */, + A7D8B98723E2514400DCD162 /* SDL_render_metal.m in Sources */, + A7D8AE7723E2514100DCD162 /* SDL_clipboard.c in Sources */, + 75E0915B241EA924004729E1 /* SDL_virtualjoystick.c in Sources */, + A7D8AEC523E2514100DCD162 /* SDL_cocoaevents.m in Sources */, + A7D8B86723E2514400DCD162 /* SDL_audiocvt.c in Sources */, + A7D8B3AB23E2514200DCD162 /* SDL_shape.c in Sources */, + A7D8B9F623E2514400DCD162 /* SDL_rotate.c in Sources */, + A7D8A97623E2514000DCD162 /* SDL_coremotionsensor.m in Sources */, + F3973FAC28A59BDD00B84553 /* SDL_crc16.c in Sources */, + A7D8BB8E23E2514500DCD162 /* SDL_touch.c in Sources */, + A7D8AC5223E2514100DCD162 /* SDL_uikitmessagebox.m in Sources */, + A7D8B3F323E2514300DCD162 /* SDL_thread.c in Sources */, + A1626A3F2617006A003F1973 /* SDL_triangle.c in Sources */, + A7D8B55E23E2514300DCD162 /* SDL_hidapi_xbox360w.c in Sources */, + A7D8A95823E2514000DCD162 /* SDL_atomic.c in Sources */, + A7D8BB2823E2514500DCD162 /* SDL_displayevents.c in Sources */, + A7D8AB2623E2514100DCD162 /* SDL_log.c in Sources */, + A7D8AE8923E2514100DCD162 /* SDL_cocoaopengl.m in Sources */, + A7D8AB7423E2514100DCD162 /* SDL_offscreenframebuffer.c in Sources */, + A7D8BA3E23E2514400DCD162 /* SDL_render_gles.c in Sources */, + A7D8B43523E2514300DCD162 /* SDL_systhread.c in Sources */, + F323060028939F6400E66D30 /* SDL_hidapi_combined.c in Sources */, + A7D8BB3423E2514500DCD162 /* SDL_windowevents.c in Sources */, + A7D8BABC23E2514400DCD162 /* s_scalbn.c in Sources */, + A7D8AB2C23E2514100DCD162 /* SDL_timer.c in Sources */, + A7D8B9DE23E2514400DCD162 /* SDL_blendpoint.c in Sources */, + A7D8B4EF23E2514300DCD162 /* SDL_gamecontroller.c in Sources */, + A7D8AB3823E2514100DCD162 /* SDL_systimer.c in Sources */, + A7D8ACAC23E2514100DCD162 /* SDL_uikitclipboard.m in Sources */, + A7D8BA1423E2514400DCD162 /* SDL_render_sw.c in Sources */, + A7D8B42323E2514300DCD162 /* SDL_syssem.c in Sources */, + A7D8B53A23E2514300DCD162 /* SDL_hidapi_xbox360.c in Sources */, + A7D8B8D323E2514400DCD162 /* SDL_coreaudio.m in Sources */, + A7D8BA2023E2514400DCD162 /* SDL_blendline.c in Sources */, + A7D8ADF323E2514100DCD162 /* SDL_blit_A.c in Sources */, + A7D8BA3823E2514400DCD162 /* SDL_d3dmath.c in Sources */, + F38233942738EC1400F7F527 /* hid.m in Sources */, + A7D8ABEC23E2514100DCD162 /* SDL_nullvideo.c in Sources */, + A7D8AB6823E2514100DCD162 /* SDL_offscreenevents.c in Sources */, + A7D8ACA623E2514100DCD162 /* SDL_uikitview.m in Sources */, + A7D8ABF223E2514100DCD162 /* SDL_nullevents.c in Sources */, + A7D8B81923E2514400DCD162 /* SDL_audiodev.c in Sources */, + A7D8AF0D23E2514100DCD162 /* SDL_cocoaclipboard.m in Sources */, + F362B93E2B33920500D30B94 /* SDL_hidapi_steamdeck.c in Sources */, + A7D8ABCE23E2514100DCD162 /* SDL_blit_slow.c in Sources */, + A7D8BA9823E2514400DCD162 /* s_copysign.c in Sources */, + A7D8AAB723E2514100DCD162 /* SDL_haptic.c in Sources */, + A7D8AC8E23E2514100DCD162 /* SDL_uikitvulkan.m in Sources */, + A7D8AF2523E2514100DCD162 /* SDL_cocoametalview.m in Sources */, + A7D8B86123E2514400DCD162 /* SDL_audiotypecvt.c in Sources */, + F3984CD125BCC92900374F43 /* SDL_hidapi_stadia.c in Sources */, + F3820714284F3609004DD584 /* controller_type.c in Sources */, + A7D8AC5823E2514100DCD162 /* SDL_uikitevents.m in Sources */, + A7D8ACB823E2514100DCD162 /* SDL_uikitmodes.m in Sources */, + A7D8AD3323E2514100DCD162 /* SDL_blit_N.c in Sources */, + A7D8BB7C23E2514500DCD162 /* SDL_dropevents.c in Sources */, + F382071E284F362F004DD584 /* SDL_guid.c in Sources */, + A7D8BACE23E2514500DCD162 /* e_atan2.c in Sources */, + A7D8BA8C23E2514400DCD162 /* s_sin.c in Sources */, + A7D8B5E823E2514300DCD162 /* SDL_power.c in Sources */, + A7D8AED723E2514100DCD162 /* SDL_cocoakeyboard.m in Sources */, + A7D8AB1723E2514100DCD162 /* SDL_dynapi.c in Sources */, + A7D8BA8623E2514400DCD162 /* SDL_shaders_gl.c in Sources */, + A7D8BAF223E2514500DCD162 /* e_log.c in Sources */, + A7D8AED123E2514100DCD162 /* SDL_cocoamessagebox.m in Sources */, + F388C95628B5F6F700661ECF /* SDL_hidapi_ps3.c in Sources */, + A7D8BA2C23E2514400DCD162 /* SDL_blendfillrect.c in Sources */, + A7D8ACDC23E2514100DCD162 /* SDL_uikitvideo.m in Sources */, + A7D8AEE323E2514100DCD162 /* SDL_cocoashape.m in Sources */, + A7D8AEB923E2514100DCD162 /* SDL_cocoamouse.m in Sources */, + A7D8B8E523E2514400DCD162 /* SDL_error.c in Sources */, + A7D8AD6923E2514100DCD162 /* SDL_blit.c in Sources */, + A7D8B5BE23E2514300DCD162 /* SDL_rwops.c in Sources */, + A7D8ACD023E2514100DCD162 /* SDL_uikitviewcontroller.m in Sources */, + A7D8BA9223E2514400DCD162 /* s_cos.c in Sources */, + F3D60A8428C16A1900788A3A /* SDL_hidapi_wii.c in Sources */, + A7D8B4D123E2514300DCD162 /* SDL_steamcontroller.c in Sources */, + A7D8B9D223E2514400DCD162 /* SDL_yuv_sw.c in Sources */, + F382338E2738EBEC00F7F527 /* SDL_hidapi.c in Sources */, + A7D8B76B23E2514300DCD162 /* SDL_wave.c in Sources */, + A7D8BAD423E2514500DCD162 /* s_tan.c in Sources */, + A7D8AA6623E2514000DCD162 /* SDL_hints.c in Sources */, + A7D8B54023E2514300DCD162 /* SDL_hidapi_ps4.c in Sources */, + A7D8AD6F23E2514100DCD162 /* SDL_pixels.c in Sources */, + 5616CA52252BB35A005D5928 /* SDL_url.c in Sources */, + 9846B07D287A9020000C35C8 /* SDL_hidapi_shield.c in Sources */, + A7D8B75F23E2514300DCD162 /* SDL_sysloadso.c in Sources */, + A7D8B5F423E2514300DCD162 /* SDL_syspower.c in Sources */, + A7D8B95123E2514400DCD162 /* SDL_iconv.c in Sources */, + F31A92D328D4CB39003BFD6A /* SDL_offscreenopengles.c in Sources */, + A7D8BA9E23E2514400DCD162 /* s_fabs.c in Sources */, + A7D8B99323E2514400DCD162 /* SDL_shaders_metal.metal in Sources */, + A7D8AC4C23E2514100DCD162 /* SDL_uikitwindow.m in Sources */, + A7D8B97B23E2514400DCD162 /* SDL_render.c in Sources */, + F395C1B22569C6A000942BFF /* SDL_mfijoystick.m in Sources */, + A7D8ABD423E2514100DCD162 /* SDL_stretch.c in Sources */, + A7D8BAFE23E2514500DCD162 /* s_floor.c in Sources */, + A7D8AC3A23E2514100DCD162 /* SDL_blit_copy.c in Sources */, + A7D8BAE023E2514500DCD162 /* e_fmod.c in Sources */, + A7D8B5D023E2514300DCD162 /* SDL_syspower.m in Sources */, + A7D8BAEC23E2514500DCD162 /* e_log10.c in Sources */, + A7D8AC7023E2514100DCD162 /* SDL_uikitopenglview.m in Sources */, + A7D8B76523E2514300DCD162 /* SDL_mixer.c in Sources */, + A7D8BB5823E2514500DCD162 /* SDL_events.c in Sources */, + A7D8ADE723E2514100DCD162 /* SDL_blit_0.c in Sources */, + A7D8BB0A23E2514500DCD162 /* k_tan.c in Sources */, + A75FDBCF23EA380300529352 /* SDL_hidapi_rumble.c in Sources */, + F316AB982B5A02C3002EF551 /* yuv_rgb_std.c in Sources */, + F386F6FA2884663E001840AA /* SDL_utils.c in Sources */, + A7D8B8A923E2514400DCD162 /* SDL_diskaudio.c in Sources */, + A7D8AFC123E2514200DCD162 /* SDL_egl.c in Sources */, + A7D8AC3423E2514100DCD162 /* SDL_RLEaccel.c in Sources */, + A7D8BBB223E2514500DCD162 /* SDL_assert.c in Sources */, + A7D8B3DB23E2514300DCD162 /* SDL_bmp.c in Sources */, + A7D8B96F23E2514400DCD162 /* SDL_stdlib.c in Sources */, + A7D8B79B23E2514400DCD162 /* SDL_dummyaudio.c in Sources */, + A7D8B3A523E2514200DCD162 /* SDL_fillrect.c in Sources */, + A7D8ABE023E2514100DCD162 /* SDL_nullframebuffer.c in Sources */, + A7D8A96A23E2514000DCD162 /* SDL_dummysensor.c in Sources */, + A7D8B95D23E2514400DCD162 /* SDL_string.c in Sources */, + A7D8BA8023E2514400DCD162 /* SDL_render_gl.c in Sources */, + F3ADAB8E2576F0B400A6B1D9 /* SDL_sysurl.m in Sources */, + A7D8AC8223E2514100DCD162 /* SDL_uikitopengles.m in Sources */, + A7D8AE9523E2514100DCD162 /* SDL_cocoamodes.m in Sources */, + F316ABA12B5A02C3002EF551 /* yuv_rgb_sse.c in Sources */, + A7D8BAA423E2514400DCD162 /* k_rem_pio2.c in Sources */, + A7D8BB9A23E2514500DCD162 /* SDL_gesture.c in Sources */, + A7D8B95723E2514400DCD162 /* SDL_getenv.c in Sources */, + A7D8B56423E2514300DCD162 /* SDL_hidapi_gamecube.c in Sources */, + A7D8B4DD23E2514300DCD162 /* SDL_joystick.c in Sources */, + A7D8BA4A23E2514400DCD162 /* SDL_render_gles2.c in Sources */, + A7D8AC2E23E2514100DCD162 /* SDL_surface.c in Sources */, + A7D8B54C23E2514300DCD162 /* SDL_hidapi_xboxone.c in Sources */, + A7D8AD2423E2514100DCD162 /* SDL_blit_auto.c in Sources */, + A7D8BB6A23E2514500DCD162 /* SDL_keyboard.c in Sources */, + A7D8ACE823E2514100DCD162 /* SDL_rect.c in Sources */, + A7D8AE9B23E2514100DCD162 /* SDL_cocoaopengles.m in Sources */, + A7D8B96923E2514400DCD162 /* SDL_qsort.c in Sources */, + A7D8B55223E2514300DCD162 /* SDL_hidapi_switch.c in Sources */, + A7D8B96323E2514400DCD162 /* SDL_strtokr.c in Sources */, + A7D8BB7623E2514500DCD162 /* SDL_clipboardevents.c in Sources */, + A7D8BAB623E2514400DCD162 /* k_cos.c in Sources */, + A7D8B54623E2514300DCD162 /* SDL_hidapijoystick.c in Sources */, + A7D8B97523E2514400DCD162 /* SDL_malloc.c in Sources */, + A7D8B8C723E2514400DCD162 /* SDL_audio.c in Sources */, + A7D8B61E23E2514300DCD162 /* SDL_sysfilesystem.c in Sources */, + A7D8AB8C23E2514100DCD162 /* SDL_offscreenvideo.c in Sources */, + A7D8B42F23E2514300DCD162 /* SDL_syscond.c in Sources */, + A7D8AADB23E2514100DCD162 /* SDL_syshaptic.c in Sources */, + A7D8BAE623E2514500DCD162 /* e_exp.c in Sources */, + A7D8BB8223E2514500DCD162 /* SDL_quit.c in Sources */, + A7D8AEA723E2514100DCD162 /* SDL_cocoawindow.m in Sources */, + A7D8B43B23E2514300DCD162 /* SDL_sysmutex.c in Sources */, + A7D8AAB123E2514100DCD162 /* SDL_syshaptic.c in Sources */, + A7D8B5CA23E2514300DCD162 /* SDL_rwopsbundlesupport.m in Sources */, + A1BB8B6427F6CF330057CFA8 /* SDL_list.c in Sources */, + A7D8AC1023E2514100DCD162 /* SDL_video.c in Sources */, + 560572062473687700B46B66 /* SDL_syslocale.m in Sources */, + F3F07D5B269640160074468B /* SDL_hidapi_luna.c in Sources */, + A7D8ACC423E2514100DCD162 /* SDL_uikitmetalview.m in Sources */, + A7D8BA5C23E2514400DCD162 /* SDL_shaders_gles2.c in Sources */, + A7D8B14123E2514200DCD162 /* SDL_blit_1.c in Sources */, + 5605720F2473688000B46B66 /* SDL_locale.c in Sources */, + F3A4909F2554D38600E92A8B /* SDL_hidapi_ps5.c in Sources */, + A7D8BB1623E2514500DCD162 /* SDL_mouse.c in Sources */, + A7D8BADA23E2514500DCD162 /* e_rem_pio2.c in Sources */, + A7D8BB1023E2514500DCD162 /* SDL_dataqueue.c in Sources */, + A7D8B4B323E2514300DCD162 /* SDL_sysjoystick.c in Sources */, + F395C19D2569C68F00942BFF /* SDL_iokitjoystick.c in Sources */, + A7D8B3E123E2514300DCD162 /* SDL_cpuinfo.c in Sources */, + A7D8A99423E2514000DCD162 /* SDL_sensor.c in Sources */, + A75FDAAD23E2795C00529352 /* SDL_hidapi_steam.c in Sources */, + A7D8BAAA23E2514400DCD162 /* k_sin.c in Sources */, + A7D8AB4A23E2514100DCD162 /* SDL_systimer.c in Sources */, + A7D8BA2623E2514400DCD162 /* SDL_drawpoint.c in Sources */, + A7D8BAF823E2514500DCD162 /* e_sqrt.c in Sources */, + A7D8AEAD23E2514100DCD162 /* SDL_cocoavideo.m in Sources */, + F362B95C2B33EB7300D30B94 /* SDL_steam_virtual_gamepad.c in Sources */, + A7D8A94C23E2514000DCD162 /* SDL.c in Sources */, + A7D8AEA123E2514100DCD162 /* SDL_cocoavulkan.m in Sources */, + A7D8AC6423E2514100DCD162 /* SDL_uikitappdelegate.m in Sources */, + A7D8AB6223E2514100DCD162 /* SDL_offscreenwindow.c in Sources */, + F316ABB32B5A02C3002EF551 /* yuv_rgb_lsx.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A7D88C7823E24BED00DCD162 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A7D8B9E523E2514400DCD162 /* SDL_drawline.c in Sources */, + A7D8AE7E23E2514100DCD162 /* SDL_yuv.c in Sources */, + A7D8B63123E2514300DCD162 /* SDL_sysfilesystem.m in Sources */, + F395BF6725633B2400942BFF /* SDL_crc32.c in Sources */, + A7D8BAC923E2514500DCD162 /* e_pow.c in Sources */, + A7D8B41E23E2514300DCD162 /* SDL_systls.c in Sources */, + A7D8AD2B23E2514100DCD162 /* SDL_vulkan_utils.c in Sources */, + A7D8A95323E2514000DCD162 /* SDL_spinlock.c in Sources */, + A7D8BAB123E2514400DCD162 /* s_atan.c in Sources */, + A7D8B75423E2514300DCD162 /* SDL_sysloadso.c in Sources */, + A7D8B98823E2514400DCD162 /* SDL_render_metal.m in Sources */, + A7D8AE7823E2514100DCD162 /* SDL_clipboard.c in Sources */, + 75E0915C241EA924004729E1 /* SDL_virtualjoystick.c in Sources */, + A7D8AEC623E2514100DCD162 /* SDL_cocoaevents.m in Sources */, + A7D8B86823E2514400DCD162 /* SDL_audiocvt.c in Sources */, + A7D8B3AC23E2514200DCD162 /* SDL_shape.c in Sources */, + A7D8B9F723E2514400DCD162 /* SDL_rotate.c in Sources */, + A7D8A97723E2514000DCD162 /* SDL_coremotionsensor.m in Sources */, + F3973FAD28A59BDD00B84553 /* SDL_crc16.c in Sources */, + A7D8BB8F23E2514500DCD162 /* SDL_touch.c in Sources */, + A7D8AC5323E2514100DCD162 /* SDL_uikitmessagebox.m in Sources */, + A7D8B3F423E2514300DCD162 /* SDL_thread.c in Sources */, + A1626A402617006A003F1973 /* SDL_triangle.c in Sources */, + A7D8B55F23E2514300DCD162 /* SDL_hidapi_xbox360w.c in Sources */, + A7D8A95923E2514000DCD162 /* SDL_atomic.c in Sources */, + A7D8BB2923E2514500DCD162 /* SDL_displayevents.c in Sources */, + A7D8AB2723E2514100DCD162 /* SDL_log.c in Sources */, + A7D8AE8A23E2514100DCD162 /* SDL_cocoaopengl.m in Sources */, + A7D8AB7523E2514100DCD162 /* SDL_offscreenframebuffer.c in Sources */, + A7D8BA3F23E2514400DCD162 /* SDL_render_gles.c in Sources */, + A7D8B43623E2514300DCD162 /* SDL_systhread.c in Sources */, + F323060128939F6400E66D30 /* SDL_hidapi_combined.c in Sources */, + A7D8BB3523E2514500DCD162 /* SDL_windowevents.c in Sources */, + A7D8BABD23E2514400DCD162 /* s_scalbn.c in Sources */, + A7D8AB2D23E2514100DCD162 /* SDL_timer.c in Sources */, + A7D8B9DF23E2514400DCD162 /* SDL_blendpoint.c in Sources */, + A7D8B4F023E2514300DCD162 /* SDL_gamecontroller.c in Sources */, + A7D8AB3923E2514100DCD162 /* SDL_systimer.c in Sources */, + A7D8ACAD23E2514100DCD162 /* SDL_uikitclipboard.m in Sources */, + A7D8BA1523E2514400DCD162 /* SDL_render_sw.c in Sources */, + A7D8B42423E2514300DCD162 /* SDL_syssem.c in Sources */, + A7D8B53B23E2514300DCD162 /* SDL_hidapi_xbox360.c in Sources */, + A7D8B8D423E2514400DCD162 /* SDL_coreaudio.m in Sources */, + A7D8BA2123E2514400DCD162 /* SDL_blendline.c in Sources */, + A7D8ADF423E2514100DCD162 /* SDL_blit_A.c in Sources */, + A7D8BA3923E2514400DCD162 /* SDL_d3dmath.c in Sources */, + F38233952738EC1500F7F527 /* hid.m in Sources */, + A7D8ABED23E2514100DCD162 /* SDL_nullvideo.c in Sources */, + A7D8AB6923E2514100DCD162 /* SDL_offscreenevents.c in Sources */, + A7D8ACA723E2514100DCD162 /* SDL_uikitview.m in Sources */, + A7D8ABF323E2514100DCD162 /* SDL_nullevents.c in Sources */, + A7D8B81A23E2514400DCD162 /* SDL_audiodev.c in Sources */, + A7D8AF0E23E2514100DCD162 /* SDL_cocoaclipboard.m in Sources */, + F362B93F2B33920500D30B94 /* SDL_hidapi_steamdeck.c in Sources */, + A7D8ABCF23E2514100DCD162 /* SDL_blit_slow.c in Sources */, + A7D8BA9923E2514400DCD162 /* s_copysign.c in Sources */, + A7D8AAB823E2514100DCD162 /* SDL_haptic.c in Sources */, + A7D8AC8F23E2514100DCD162 /* SDL_uikitvulkan.m in Sources */, + A7D8AF2623E2514100DCD162 /* SDL_cocoametalview.m in Sources */, + A7D8B86223E2514400DCD162 /* SDL_audiotypecvt.c in Sources */, + F3984CD225BCC92900374F43 /* SDL_hidapi_stadia.c in Sources */, + F3820715284F3609004DD584 /* controller_type.c in Sources */, + A7D8AC5923E2514100DCD162 /* SDL_uikitevents.m in Sources */, + A7D8ACB923E2514100DCD162 /* SDL_uikitmodes.m in Sources */, + A7D8AD3423E2514100DCD162 /* SDL_blit_N.c in Sources */, + A7D8BB7D23E2514500DCD162 /* SDL_dropevents.c in Sources */, + F382071F284F362F004DD584 /* SDL_guid.c in Sources */, + A7D8BACF23E2514500DCD162 /* e_atan2.c in Sources */, + A7D8BA8D23E2514400DCD162 /* s_sin.c in Sources */, + A7D8B5E923E2514300DCD162 /* SDL_power.c in Sources */, + A7D8AED823E2514100DCD162 /* SDL_cocoakeyboard.m in Sources */, + A7D8AB1823E2514100DCD162 /* SDL_dynapi.c in Sources */, + A7D8BA8723E2514400DCD162 /* SDL_shaders_gl.c in Sources */, + A7D8BAF323E2514500DCD162 /* e_log.c in Sources */, + A7D8AED223E2514100DCD162 /* SDL_cocoamessagebox.m in Sources */, + F388C95728B5F6F700661ECF /* SDL_hidapi_ps3.c in Sources */, + A7D8BA2D23E2514400DCD162 /* SDL_blendfillrect.c in Sources */, + A7D8ACDD23E2514100DCD162 /* SDL_uikitvideo.m in Sources */, + A7D8AEE423E2514100DCD162 /* SDL_cocoashape.m in Sources */, + A7D8AEBA23E2514100DCD162 /* SDL_cocoamouse.m in Sources */, + A7D8B8E623E2514400DCD162 /* SDL_error.c in Sources */, + A7D8AD6A23E2514100DCD162 /* SDL_blit.c in Sources */, + A7D8B5BF23E2514300DCD162 /* SDL_rwops.c in Sources */, + A7D8ACD123E2514100DCD162 /* SDL_uikitviewcontroller.m in Sources */, + A7D8BA9323E2514400DCD162 /* s_cos.c in Sources */, + F3D60A8528C16A1900788A3A /* SDL_hidapi_wii.c in Sources */, + A7D8B4D223E2514300DCD162 /* SDL_steamcontroller.c in Sources */, + A7D8B9D323E2514400DCD162 /* SDL_yuv_sw.c in Sources */, + F382338F2738EBEF00F7F527 /* SDL_hidapi.c in Sources */, + A7D8B76C23E2514300DCD162 /* SDL_wave.c in Sources */, + A7D8BAD523E2514500DCD162 /* s_tan.c in Sources */, + A7D8AA6723E2514000DCD162 /* SDL_hints.c in Sources */, + A7D8B54123E2514300DCD162 /* SDL_hidapi_ps4.c in Sources */, + A7D8AD7023E2514100DCD162 /* SDL_pixels.c in Sources */, + 5616CA55252BB35B005D5928 /* SDL_url.c in Sources */, + 9846B07E287A9020000C35C8 /* SDL_hidapi_shield.c in Sources */, + A7D8B76023E2514300DCD162 /* SDL_sysloadso.c in Sources */, + A7D8B5F523E2514300DCD162 /* SDL_syspower.c in Sources */, + A7D8B95223E2514400DCD162 /* SDL_iconv.c in Sources */, + F31A92D428D4CB39003BFD6A /* SDL_offscreenopengles.c in Sources */, + A7D8BA9F23E2514400DCD162 /* s_fabs.c in Sources */, + A7D8B99423E2514400DCD162 /* SDL_shaders_metal.metal in Sources */, + A7D8AC4D23E2514100DCD162 /* SDL_uikitwindow.m in Sources */, + A7D8B97C23E2514400DCD162 /* SDL_render.c in Sources */, + F395C1B32569C6A000942BFF /* SDL_mfijoystick.m in Sources */, + A7D8ABD523E2514100DCD162 /* SDL_stretch.c in Sources */, + A7D8BAFF23E2514500DCD162 /* s_floor.c in Sources */, + A7D8AC3B23E2514100DCD162 /* SDL_blit_copy.c in Sources */, + A7D8BAE123E2514500DCD162 /* e_fmod.c in Sources */, + A7D8B5D123E2514300DCD162 /* SDL_syspower.m in Sources */, + A7D8BAED23E2514500DCD162 /* e_log10.c in Sources */, + A7D8AC7123E2514100DCD162 /* SDL_uikitopenglview.m in Sources */, + A7D8B76623E2514300DCD162 /* SDL_mixer.c in Sources */, + A7D8BB5923E2514500DCD162 /* SDL_events.c in Sources */, + A7D8ADE823E2514100DCD162 /* SDL_blit_0.c in Sources */, + A7D8BB0B23E2514500DCD162 /* k_tan.c in Sources */, + A75FDBD023EA380300529352 /* SDL_hidapi_rumble.c in Sources */, + F316AB992B5A02C3002EF551 /* yuv_rgb_std.c in Sources */, + F386F6FB2884663E001840AA /* SDL_utils.c in Sources */, + A7D8B8AA23E2514400DCD162 /* SDL_diskaudio.c in Sources */, + A7D8AFC223E2514200DCD162 /* SDL_egl.c in Sources */, + A7D8AC3523E2514100DCD162 /* SDL_RLEaccel.c in Sources */, + A7D8BBB323E2514500DCD162 /* SDL_assert.c in Sources */, + A7D8B3DC23E2514300DCD162 /* SDL_bmp.c in Sources */, + A7D8B97023E2514400DCD162 /* SDL_stdlib.c in Sources */, + A7D8B79C23E2514400DCD162 /* SDL_dummyaudio.c in Sources */, + A7D8B3A623E2514200DCD162 /* SDL_fillrect.c in Sources */, + A7D8ABE123E2514100DCD162 /* SDL_nullframebuffer.c in Sources */, + A7D8A96B23E2514000DCD162 /* SDL_dummysensor.c in Sources */, + A7D8B95E23E2514400DCD162 /* SDL_string.c in Sources */, + A7D8BA8123E2514400DCD162 /* SDL_render_gl.c in Sources */, + F3ADAB8F2576F0B400A6B1D9 /* SDL_sysurl.m in Sources */, + A7D8AC8323E2514100DCD162 /* SDL_uikitopengles.m in Sources */, + A7D8AE9623E2514100DCD162 /* SDL_cocoamodes.m in Sources */, + F316ABA22B5A02C3002EF551 /* yuv_rgb_sse.c in Sources */, + A7D8BAA523E2514400DCD162 /* k_rem_pio2.c in Sources */, + A7D8BB9B23E2514500DCD162 /* SDL_gesture.c in Sources */, + A7D8B95823E2514400DCD162 /* SDL_getenv.c in Sources */, + A7D8B56523E2514300DCD162 /* SDL_hidapi_gamecube.c in Sources */, + A7D8B4DE23E2514300DCD162 /* SDL_joystick.c in Sources */, + A7D8BA4B23E2514400DCD162 /* SDL_render_gles2.c in Sources */, + A7D8AC2F23E2514100DCD162 /* SDL_surface.c in Sources */, + A7D8B54D23E2514300DCD162 /* SDL_hidapi_xboxone.c in Sources */, + A7D8AD2523E2514100DCD162 /* SDL_blit_auto.c in Sources */, + A7D8BB6B23E2514500DCD162 /* SDL_keyboard.c in Sources */, + A7D8ACE923E2514100DCD162 /* SDL_rect.c in Sources */, + A7D8AE9C23E2514100DCD162 /* SDL_cocoaopengles.m in Sources */, + A7D8B96A23E2514400DCD162 /* SDL_qsort.c in Sources */, + A7D8B55323E2514300DCD162 /* SDL_hidapi_switch.c in Sources */, + A7D8B96423E2514400DCD162 /* SDL_strtokr.c in Sources */, + A7D8BB7723E2514500DCD162 /* SDL_clipboardevents.c in Sources */, + A7D8BAB723E2514400DCD162 /* k_cos.c in Sources */, + A7D8B54723E2514300DCD162 /* SDL_hidapijoystick.c in Sources */, + A7D8B97623E2514400DCD162 /* SDL_malloc.c in Sources */, + A7D8B8C823E2514400DCD162 /* SDL_audio.c in Sources */, + A7D8B61F23E2514300DCD162 /* SDL_sysfilesystem.c in Sources */, + A7D8AB8D23E2514100DCD162 /* SDL_offscreenvideo.c in Sources */, + A7D8B43023E2514300DCD162 /* SDL_syscond.c in Sources */, + A7D8AADC23E2514100DCD162 /* SDL_syshaptic.c in Sources */, + A7D8BAE723E2514500DCD162 /* e_exp.c in Sources */, + A7D8BB8323E2514500DCD162 /* SDL_quit.c in Sources */, + A7D8AEA823E2514100DCD162 /* SDL_cocoawindow.m in Sources */, + A7D8B43C23E2514300DCD162 /* SDL_sysmutex.c in Sources */, + A7D8AAB223E2514100DCD162 /* SDL_syshaptic.c in Sources */, + A7D8B5CB23E2514300DCD162 /* SDL_rwopsbundlesupport.m in Sources */, + A1BB8B6527F6CF330057CFA8 /* SDL_list.c in Sources */, + A7D8AC1123E2514100DCD162 /* SDL_video.c in Sources */, + 560572072473687800B46B66 /* SDL_syslocale.m in Sources */, + F3F07D5C269640160074468B /* SDL_hidapi_luna.c in Sources */, + A7D8ACC523E2514100DCD162 /* SDL_uikitmetalview.m in Sources */, + A7D8BA5D23E2514400DCD162 /* SDL_shaders_gles2.c in Sources */, + A7D8B14223E2514200DCD162 /* SDL_blit_1.c in Sources */, + 560572102473688000B46B66 /* SDL_locale.c in Sources */, + F3A490A02554D38600E92A8B /* SDL_hidapi_ps5.c in Sources */, + A7D8BB1723E2514500DCD162 /* SDL_mouse.c in Sources */, + A7D8BADB23E2514500DCD162 /* e_rem_pio2.c in Sources */, + A7D8BB1123E2514500DCD162 /* SDL_dataqueue.c in Sources */, + A7D8B4B423E2514300DCD162 /* SDL_sysjoystick.c in Sources */, + F395C19E2569C68F00942BFF /* SDL_iokitjoystick.c in Sources */, + A7D8B3E223E2514300DCD162 /* SDL_cpuinfo.c in Sources */, + A7D8A99523E2514000DCD162 /* SDL_sensor.c in Sources */, + A75FDAAE23E2795C00529352 /* SDL_hidapi_steam.c in Sources */, + A7D8BAAB23E2514400DCD162 /* k_sin.c in Sources */, + A7D8AB4B23E2514100DCD162 /* SDL_systimer.c in Sources */, + A7D8BA2723E2514400DCD162 /* SDL_drawpoint.c in Sources */, + A7D8BAF923E2514500DCD162 /* e_sqrt.c in Sources */, + A7D8AEAE23E2514100DCD162 /* SDL_cocoavideo.m in Sources */, + F362B95D2B33EB7300D30B94 /* SDL_steam_virtual_gamepad.c in Sources */, + A7D8A94D23E2514000DCD162 /* SDL.c in Sources */, + A7D8AEA223E2514100DCD162 /* SDL_cocoavulkan.m in Sources */, + A7D8AC6523E2514100DCD162 /* SDL_uikitappdelegate.m in Sources */, + A7D8AB6323E2514100DCD162 /* SDL_offscreenwindow.c in Sources */, + F316ABB42B5A02C3002EF551 /* yuv_rgb_lsx.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A7D88DBC23E24D3B00DCD162 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A7D8B9E723E2514400DCD162 /* SDL_drawline.c in Sources */, + A7D8AE8023E2514100DCD162 /* SDL_yuv.c in Sources */, + A7D8B63323E2514300DCD162 /* SDL_sysfilesystem.m in Sources */, + A7D8BACB23E2514500DCD162 /* e_pow.c in Sources */, + A7D8B42023E2514300DCD162 /* SDL_systls.c in Sources */, + A7D8AD2D23E2514100DCD162 /* SDL_vulkan_utils.c in Sources */, + A7D8A95523E2514000DCD162 /* SDL_spinlock.c in Sources */, + A7D8BAB323E2514400DCD162 /* s_atan.c in Sources */, + A7D8B75623E2514300DCD162 /* SDL_sysloadso.c in Sources */, + A75FDAAF23E2795C00529352 /* SDL_hidapi_steam.c in Sources */, + A7D8B98A23E2514400DCD162 /* SDL_render_metal.m in Sources */, + A7D8AE7A23E2514100DCD162 /* SDL_clipboard.c in Sources */, + A7D8AEC823E2514100DCD162 /* SDL_cocoaevents.m in Sources */, + A7D8B86A23E2514400DCD162 /* SDL_audiocvt.c in Sources */, + A7D8B3AE23E2514200DCD162 /* SDL_shape.c in Sources */, + A7D8B9F923E2514400DCD162 /* SDL_rotate.c in Sources */, + A7D8A97923E2514000DCD162 /* SDL_coremotionsensor.m in Sources */, + A7D8BB9123E2514500DCD162 /* SDL_touch.c in Sources */, + A7D8AC5523E2514100DCD162 /* SDL_uikitmessagebox.m in Sources */, + A7D8B3F623E2514300DCD162 /* SDL_thread.c in Sources */, + A7D8B56123E2514300DCD162 /* SDL_hidapi_xbox360w.c in Sources */, + A7D8A95B23E2514000DCD162 /* SDL_atomic.c in Sources */, + A7D8BB2B23E2514500DCD162 /* SDL_displayevents.c in Sources */, + F316ABA42B5A02C3002EF551 /* yuv_rgb_sse.c in Sources */, + A7D8AB2923E2514100DCD162 /* SDL_log.c in Sources */, + A7D8AE8C23E2514100DCD162 /* SDL_cocoaopengl.m in Sources */, + A7D8AB7723E2514100DCD162 /* SDL_offscreenframebuffer.c in Sources */, + A7D8BA4123E2514400DCD162 /* SDL_render_gles.c in Sources */, + F362B95F2B33EB7300D30B94 /* SDL_steam_virtual_gamepad.c in Sources */, + A7D8B43823E2514300DCD162 /* SDL_systhread.c in Sources */, + A7D8BB3723E2514500DCD162 /* SDL_windowevents.c in Sources */, + A7D8BABF23E2514400DCD162 /* s_scalbn.c in Sources */, + A7D8AB2F23E2514100DCD162 /* SDL_timer.c in Sources */, + A7D8B9E123E2514400DCD162 /* SDL_blendpoint.c in Sources */, + A7D8B4F223E2514300DCD162 /* SDL_gamecontroller.c in Sources */, + A7D8AB3B23E2514100DCD162 /* SDL_systimer.c in Sources */, + A7D8ACAF23E2514100DCD162 /* SDL_uikitclipboard.m in Sources */, + A7D8BA1723E2514400DCD162 /* SDL_render_sw.c in Sources */, + A7D8B42623E2514300DCD162 /* SDL_syssem.c in Sources */, + A7D8B53D23E2514300DCD162 /* SDL_hidapi_xbox360.c in Sources */, + A7D8B8D623E2514400DCD162 /* SDL_coreaudio.m in Sources */, + F362B9412B33920500D30B94 /* SDL_hidapi_steamdeck.c in Sources */, + A7D8BA2323E2514400DCD162 /* SDL_blendline.c in Sources */, + A7D8ADF623E2514100DCD162 /* SDL_blit_A.c in Sources */, + A7D8BA3B23E2514400DCD162 /* SDL_d3dmath.c in Sources */, + A7D8ABEF23E2514100DCD162 /* SDL_nullvideo.c in Sources */, + A7D8AB6B23E2514100DCD162 /* SDL_offscreenevents.c in Sources */, + A7D8ACA923E2514100DCD162 /* SDL_uikitview.m in Sources */, + A7D8ABF523E2514100DCD162 /* SDL_nullevents.c in Sources */, + A7D8B81C23E2514400DCD162 /* SDL_audiodev.c in Sources */, + A7D8AF1023E2514100DCD162 /* SDL_cocoaclipboard.m in Sources */, + A7D8ABD123E2514100DCD162 /* SDL_blit_slow.c in Sources */, + A7D8BA9B23E2514400DCD162 /* s_copysign.c in Sources */, + A7D8AABA23E2514100DCD162 /* SDL_haptic.c in Sources */, + A7D8AC9123E2514100DCD162 /* SDL_uikitvulkan.m in Sources */, + A7D8AF2823E2514100DCD162 /* SDL_cocoametalview.m in Sources */, + A7D8B86423E2514400DCD162 /* SDL_audiotypecvt.c in Sources */, + A7D8AC5B23E2514100DCD162 /* SDL_uikitevents.m in Sources */, + F323060328939F6400E66D30 /* SDL_hidapi_combined.c in Sources */, + A7D8ACBB23E2514100DCD162 /* SDL_uikitmodes.m in Sources */, + A7D8AD3623E2514100DCD162 /* SDL_blit_N.c in Sources */, + F3ADAB902576F0B400A6B1D9 /* SDL_sysurl.m in Sources */, + A7D8BB7F23E2514500DCD162 /* SDL_dropevents.c in Sources */, + A7D8BAD123E2514500DCD162 /* e_atan2.c in Sources */, + A7D8BA8F23E2514400DCD162 /* s_sin.c in Sources */, + A7D8B5EB23E2514300DCD162 /* SDL_power.c in Sources */, + F386F6FD2884663E001840AA /* SDL_utils.c in Sources */, + A7D8AEDA23E2514100DCD162 /* SDL_cocoakeyboard.m in Sources */, + A7D8AB1A23E2514100DCD162 /* SDL_dynapi.c in Sources */, + A7D8BA8923E2514400DCD162 /* SDL_shaders_gl.c in Sources */, + F38233902738EBF000F7F527 /* SDL_hidapi.c in Sources */, + A7D8BAF523E2514500DCD162 /* e_log.c in Sources */, + A7D8AED423E2514100DCD162 /* SDL_cocoamessagebox.m in Sources */, + A7D8BA2F23E2514400DCD162 /* SDL_blendfillrect.c in Sources */, + F3820721284F362F004DD584 /* SDL_guid.c in Sources */, + A7D8ACDF23E2514100DCD162 /* SDL_uikitvideo.m in Sources */, + A7D8AEE623E2514100DCD162 /* SDL_cocoashape.m in Sources */, + A7D8AEBC23E2514100DCD162 /* SDL_cocoamouse.m in Sources */, + A7D8B8E823E2514400DCD162 /* SDL_error.c in Sources */, + A7D8AD6C23E2514100DCD162 /* SDL_blit.c in Sources */, + A7D8B5C123E2514300DCD162 /* SDL_rwops.c in Sources */, + 9846B080287A9020000C35C8 /* SDL_hidapi_shield.c in Sources */, + A7D8ACD323E2514100DCD162 /* SDL_uikitviewcontroller.m in Sources */, + A7D8BA9523E2514400DCD162 /* s_cos.c in Sources */, + A7D8B4D423E2514300DCD162 /* SDL_steamcontroller.c in Sources */, + A7D8B9D523E2514400DCD162 /* SDL_yuv_sw.c in Sources */, + A7D8B76E23E2514300DCD162 /* SDL_wave.c in Sources */, + A7D8BAD723E2514500DCD162 /* s_tan.c in Sources */, + A7D8AA6923E2514000DCD162 /* SDL_hints.c in Sources */, + F3A490A22554D38600E92A8B /* SDL_hidapi_ps5.c in Sources */, + A7D8B54323E2514300DCD162 /* SDL_hidapi_ps4.c in Sources */, + A7D8AD7223E2514100DCD162 /* SDL_pixels.c in Sources */, + A7D8B76223E2514300DCD162 /* SDL_sysloadso.c in Sources */, + A7D8B5F723E2514300DCD162 /* SDL_syspower.c in Sources */, + A7D8B95423E2514400DCD162 /* SDL_iconv.c in Sources */, + A7D8BAA123E2514400DCD162 /* s_fabs.c in Sources */, + A7D8B99623E2514400DCD162 /* SDL_shaders_metal.metal in Sources */, + 5616CA5B252BB35D005D5928 /* SDL_url.c in Sources */, + A7D8AC4F23E2514100DCD162 /* SDL_uikitwindow.m in Sources */, + A7D8B97E23E2514400DCD162 /* SDL_render.c in Sources */, + A7D8ABD723E2514100DCD162 /* SDL_stretch.c in Sources */, + A7D8BB0123E2514500DCD162 /* s_floor.c in Sources */, + A7D8AC3D23E2514100DCD162 /* SDL_blit_copy.c in Sources */, + A7D8BAE323E2514500DCD162 /* e_fmod.c in Sources */, + A7D8B5D323E2514300DCD162 /* SDL_syspower.m in Sources */, + A7D8BAEF23E2514500DCD162 /* e_log10.c in Sources */, + A7D8AC7323E2514100DCD162 /* SDL_uikitopenglview.m in Sources */, + A7D8B76823E2514300DCD162 /* SDL_mixer.c in Sources */, + A7D8BB5B23E2514500DCD162 /* SDL_events.c in Sources */, + A7D8ADEA23E2514100DCD162 /* SDL_blit_0.c in Sources */, + A7D8BB0D23E2514500DCD162 /* k_tan.c in Sources */, + A7D8B8AC23E2514400DCD162 /* SDL_diskaudio.c in Sources */, + A7D8AFC423E2514200DCD162 /* SDL_egl.c in Sources */, + A7D8AC3723E2514100DCD162 /* SDL_RLEaccel.c in Sources */, + A7D8BBB523E2514500DCD162 /* SDL_assert.c in Sources */, + A7D8B3DE23E2514300DCD162 /* SDL_bmp.c in Sources */, + 75E0915E241EA924004729E1 /* SDL_virtualjoystick.c in Sources */, + A7D8BC0723E2590800DCD162 /* SDL_uikit_main.c in Sources */, + F3F07D5E269640160074468B /* SDL_hidapi_luna.c in Sources */, + A7D8B97223E2514400DCD162 /* SDL_stdlib.c in Sources */, + F316ABB62B5A02C3002EF551 /* yuv_rgb_lsx.c in Sources */, + A7D8B79E23E2514400DCD162 /* SDL_dummyaudio.c in Sources */, + A7D8B3A823E2514200DCD162 /* SDL_fillrect.c in Sources */, + A7D8ABE323E2514100DCD162 /* SDL_nullframebuffer.c in Sources */, + A7D8A96D23E2514000DCD162 /* SDL_dummysensor.c in Sources */, + A7D8B96023E2514400DCD162 /* SDL_string.c in Sources */, + A7D8BA8323E2514400DCD162 /* SDL_render_gl.c in Sources */, + A7D8AC8523E2514100DCD162 /* SDL_uikitopengles.m in Sources */, + A7D8AE9823E2514100DCD162 /* SDL_cocoamodes.m in Sources */, + A7D8BAA723E2514400DCD162 /* k_rem_pio2.c in Sources */, + A7D8BB9D23E2514500DCD162 /* SDL_gesture.c in Sources */, + A7D8B95A23E2514400DCD162 /* SDL_getenv.c in Sources */, + A7D8B56723E2514300DCD162 /* SDL_hidapi_gamecube.c in Sources */, + A7D8B4E023E2514300DCD162 /* SDL_joystick.c in Sources */, + A7D8BA4D23E2514400DCD162 /* SDL_render_gles2.c in Sources */, + A7D8AC3123E2514100DCD162 /* SDL_surface.c in Sources */, + F316AB9B2B5A02C3002EF551 /* yuv_rgb_std.c in Sources */, + F395BF6925633B2400942BFF /* SDL_crc32.c in Sources */, + A7D8B54F23E2514300DCD162 /* SDL_hidapi_xboxone.c in Sources */, + A7D8AD2723E2514100DCD162 /* SDL_blit_auto.c in Sources */, + A7D8BB6D23E2514500DCD162 /* SDL_keyboard.c in Sources */, + F3973FAF28A59BDD00B84553 /* SDL_crc16.c in Sources */, + F3D60A8728C16A1900788A3A /* SDL_hidapi_wii.c in Sources */, + 560572122473688200B46B66 /* SDL_locale.c in Sources */, + A7D8ACEB23E2514100DCD162 /* SDL_rect.c in Sources */, + A7D8AE9E23E2514100DCD162 /* SDL_cocoaopengles.m in Sources */, + A7D8B96C23E2514400DCD162 /* SDL_qsort.c in Sources */, + A7D8B55523E2514300DCD162 /* SDL_hidapi_switch.c in Sources */, + F3984CD425BCC92900374F43 /* SDL_hidapi_stadia.c in Sources */, + A7D8B96623E2514400DCD162 /* SDL_strtokr.c in Sources */, + 560572092473687900B46B66 /* SDL_syslocale.m in Sources */, + F3820717284F3609004DD584 /* controller_type.c in Sources */, + A7D8BB7923E2514500DCD162 /* SDL_clipboardevents.c in Sources */, + A7D8BAB923E2514400DCD162 /* k_cos.c in Sources */, + F388C95928B5F6F700661ECF /* SDL_hidapi_ps3.c in Sources */, + A7D8B54923E2514300DCD162 /* SDL_hidapijoystick.c in Sources */, + A7D8B97823E2514400DCD162 /* SDL_malloc.c in Sources */, + A7D8B8CA23E2514400DCD162 /* SDL_audio.c in Sources */, + A7D8B62123E2514300DCD162 /* SDL_sysfilesystem.c in Sources */, + A75FDBD223EA380300529352 /* SDL_hidapi_rumble.c in Sources */, + A7D8AB8F23E2514100DCD162 /* SDL_offscreenvideo.c in Sources */, + A7D8B43223E2514300DCD162 /* SDL_syscond.c in Sources */, + A7D8AADE23E2514100DCD162 /* SDL_syshaptic.c in Sources */, + A7D8BAE923E2514500DCD162 /* e_exp.c in Sources */, + F395C1A02569C68F00942BFF /* SDL_iokitjoystick.c in Sources */, + A1BB8B6727F6CF330057CFA8 /* SDL_list.c in Sources */, + A7D8BB8523E2514500DCD162 /* SDL_quit.c in Sources */, + A7D8AEAA23E2514100DCD162 /* SDL_cocoawindow.m in Sources */, + A7D8B43E23E2514300DCD162 /* SDL_sysmutex.c in Sources */, + A7D8AAB423E2514100DCD162 /* SDL_syshaptic.c in Sources */, + A7D8B5CD23E2514300DCD162 /* SDL_rwopsbundlesupport.m in Sources */, + A7D8AC1323E2514100DCD162 /* SDL_video.c in Sources */, + F38233962738EC1600F7F527 /* hid.m in Sources */, + A7D8ACC723E2514100DCD162 /* SDL_uikitmetalview.m in Sources */, + A7D8BA5F23E2514400DCD162 /* SDL_shaders_gles2.c in Sources */, + A7D8B14423E2514200DCD162 /* SDL_blit_1.c in Sources */, + A7D8BB1923E2514500DCD162 /* SDL_mouse.c in Sources */, + A7D8BADD23E2514500DCD162 /* e_rem_pio2.c in Sources */, + A7D8BB1323E2514500DCD162 /* SDL_dataqueue.c in Sources */, + A7D8B4B623E2514300DCD162 /* SDL_sysjoystick.c in Sources */, + A7D8B3E423E2514300DCD162 /* SDL_cpuinfo.c in Sources */, + A7D8A99723E2514000DCD162 /* SDL_sensor.c in Sources */, + A7D8BAAD23E2514400DCD162 /* k_sin.c in Sources */, + A7D8AB4D23E2514100DCD162 /* SDL_systimer.c in Sources */, + F31A92D728D4CB39003BFD6A /* SDL_offscreenopengles.c in Sources */, + A7D8BA2923E2514400DCD162 /* SDL_drawpoint.c in Sources */, + F395C1B52569C6A000942BFF /* SDL_mfijoystick.m in Sources */, + A7D8BAFB23E2514500DCD162 /* e_sqrt.c in Sources */, + A7D8AEB023E2514100DCD162 /* SDL_cocoavideo.m in Sources */, + A7D8A94F23E2514000DCD162 /* SDL.c in Sources */, + A7D8AEA423E2514100DCD162 /* SDL_cocoavulkan.m in Sources */, + A7D8AC6723E2514100DCD162 /* SDL_uikitappdelegate.m in Sources */, + A1626A422617006A003F1973 /* SDL_triangle.c in Sources */, + A7D8AB6523E2514100DCD162 /* SDL_offscreenwindow.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BECDF62C0761BA81005FE872 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A7D8B9E323E2514400DCD162 /* SDL_drawline.c in Sources */, + A7D8AE7C23E2514100DCD162 /* SDL_yuv.c in Sources */, + A7D8B62F23E2514300DCD162 /* SDL_sysfilesystem.m in Sources */, + A7D8BAC723E2514500DCD162 /* e_pow.c in Sources */, + A7D8B41C23E2514300DCD162 /* SDL_systls.c in Sources */, + 9846B07C287A9020000C35C8 /* SDL_hidapi_shield.c in Sources */, + A7D8BBD923E2574800DCD162 /* SDL_uikitmessagebox.m in Sources */, + A7D8AD2923E2514100DCD162 /* SDL_vulkan_utils.c in Sources */, + A7D8A95123E2514000DCD162 /* SDL_spinlock.c in Sources */, + F34B9895291DEFF500AAC96E /* SDL_hidapi_steam.c in Sources */, + A7D8BAAF23E2514400DCD162 /* s_atan.c in Sources */, + A7D8B75223E2514300DCD162 /* SDL_sysloadso.c in Sources */, + A7D8BBE123E2574800DCD162 /* SDL_uikitopenglview.m in Sources */, + A7D8B98623E2514400DCD162 /* SDL_render_metal.m in Sources */, + A7D8AE7623E2514100DCD162 /* SDL_clipboard.c in Sources */, + A7D8AEC423E2514100DCD162 /* SDL_cocoaevents.m in Sources */, + A7D8B86623E2514400DCD162 /* SDL_audiocvt.c in Sources */, + A7D8B3AA23E2514200DCD162 /* SDL_shape.c in Sources */, + A7D8B9F523E2514400DCD162 /* SDL_rotate.c in Sources */, + A7D8BBE323E2574800DCD162 /* SDL_uikitvideo.m in Sources */, + 5616CA4E252BB2A6005D5928 /* SDL_sysurl.m in Sources */, + A7D8A97523E2514000DCD162 /* SDL_coremotionsensor.m in Sources */, + F382071D284F362F004DD584 /* SDL_guid.c in Sources */, + A7D8BB8D23E2514500DCD162 /* SDL_touch.c in Sources */, + F31A92D228D4CB39003BFD6A /* SDL_offscreenopengles.c in Sources */, + A1626A3E2617006A003F1973 /* SDL_triangle.c in Sources */, + A7D8B3F223E2514300DCD162 /* SDL_thread.c in Sources */, + A7D8B55D23E2514300DCD162 /* SDL_hidapi_xbox360w.c in Sources */, + A7D8A95723E2514000DCD162 /* SDL_atomic.c in Sources */, + A75FDBCE23EA380300529352 /* SDL_hidapi_rumble.c in Sources */, + A7D8BB2723E2514500DCD162 /* SDL_displayevents.c in Sources */, + A7D8AB2523E2514100DCD162 /* SDL_log.c in Sources */, + A7D8AE8823E2514100DCD162 /* SDL_cocoaopengl.m in Sources */, + A7D8AB7323E2514100DCD162 /* SDL_offscreenframebuffer.c in Sources */, + A7D8BA3D23E2514400DCD162 /* SDL_render_gles.c in Sources */, + A7D8B43423E2514300DCD162 /* SDL_systhread.c in Sources */, + A7D8BB3323E2514500DCD162 /* SDL_windowevents.c in Sources */, + A7D8BABB23E2514400DCD162 /* s_scalbn.c in Sources */, + F3973FAB28A59BDD00B84553 /* SDL_crc16.c in Sources */, + A7D8AB2B23E2514100DCD162 /* SDL_timer.c in Sources */, + F3D60A8328C16A1900788A3A /* SDL_hidapi_wii.c in Sources */, + A7D8B9DD23E2514400DCD162 /* SDL_blendpoint.c in Sources */, + A7D8B4EE23E2514300DCD162 /* SDL_gamecontroller.c in Sources */, + A7D8AB3723E2514100DCD162 /* SDL_systimer.c in Sources */, + A7D8BA1323E2514400DCD162 /* SDL_render_sw.c in Sources */, + A7D8B42223E2514300DCD162 /* SDL_syssem.c in Sources */, + A7D8B53923E2514300DCD162 /* SDL_hidapi_xbox360.c in Sources */, + A7D8B8D223E2514400DCD162 /* SDL_coreaudio.m in Sources */, + A7D8BA1F23E2514400DCD162 /* SDL_blendline.c in Sources */, + A7D8BBE723E2574800DCD162 /* SDL_uikitviewcontroller.m in Sources */, + A7D8ADF223E2514100DCD162 /* SDL_blit_A.c in Sources */, + A7D8BBDD23E2574800DCD162 /* SDL_uikitmodes.m in Sources */, + A7D8BA3723E2514400DCD162 /* SDL_d3dmath.c in Sources */, + 75E0915A241EA924004729E1 /* SDL_virtualjoystick.c in Sources */, + A7D8ABEB23E2514100DCD162 /* SDL_nullvideo.c in Sources */, + A7D8AB6723E2514100DCD162 /* SDL_offscreenevents.c in Sources */, + A7D8ABF123E2514100DCD162 /* SDL_nullevents.c in Sources */, + A7D8B81823E2514400DCD162 /* SDL_audiodev.c in Sources */, + A7D8AF0C23E2514100DCD162 /* SDL_cocoaclipboard.m in Sources */, + A7D8BBE523E2574800DCD162 /* SDL_uikitview.m in Sources */, + A7D8BBE923E2574800DCD162 /* SDL_uikitvulkan.m in Sources */, + A7D8ABCD23E2514100DCD162 /* SDL_blit_slow.c in Sources */, + F362B93D2B33920500D30B94 /* SDL_hidapi_steamdeck.c in Sources */, + A7D8BA9723E2514400DCD162 /* s_copysign.c in Sources */, + F3984CD025BCC92900374F43 /* SDL_hidapi_stadia.c in Sources */, + A7D8AAB623E2514100DCD162 /* SDL_haptic.c in Sources */, + A7D8AF2423E2514100DCD162 /* SDL_cocoametalview.m in Sources */, + A7D8B86023E2514400DCD162 /* SDL_audiotypecvt.c in Sources */, + A7D8BBC523E2561500DCD162 /* SDL_steamcontroller.c in Sources */, + A7D8AD3223E2514100DCD162 /* SDL_blit_N.c in Sources */, + A7D8BB7B23E2514500DCD162 /* SDL_dropevents.c in Sources */, + F362B95B2B33EB7300D30B94 /* SDL_steam_virtual_gamepad.c in Sources */, + F316AB972B5A02C3002EF551 /* yuv_rgb_std.c in Sources */, + A7D8BACD23E2514500DCD162 /* e_atan2.c in Sources */, + A7D8BA8B23E2514400DCD162 /* s_sin.c in Sources */, + A7D8BBEB23E2574800DCD162 /* SDL_uikitwindow.m in Sources */, + F395BF6525633B2400942BFF /* SDL_crc32.c in Sources */, + A7D8B5E723E2514300DCD162 /* SDL_power.c in Sources */, + A7D8AED623E2514100DCD162 /* SDL_cocoakeyboard.m in Sources */, + A7D8AB1623E2514100DCD162 /* SDL_dynapi.c in Sources */, + A7D8BA8523E2514400DCD162 /* SDL_shaders_gl.c in Sources */, + A7D8BAF123E2514500DCD162 /* e_log.c in Sources */, + A7D8AED023E2514100DCD162 /* SDL_cocoamessagebox.m in Sources */, + F376F6552559B4E300CFC0BC /* SDL_hidapi.c in Sources */, + A7D8BA2B23E2514400DCD162 /* SDL_blendfillrect.c in Sources */, + A7D8AEE223E2514100DCD162 /* SDL_cocoashape.m in Sources */, + A7D8BBD323E2574800DCD162 /* SDL_uikitappdelegate.m in Sources */, + A7D8AEB823E2514100DCD162 /* SDL_cocoamouse.m in Sources */, + A7D8B8E423E2514400DCD162 /* SDL_error.c in Sources */, + A7D8AD6823E2514100DCD162 /* SDL_blit.c in Sources */, + A7D8B5BD23E2514300DCD162 /* SDL_rwops.c in Sources */, + A7D8BA9123E2514400DCD162 /* s_cos.c in Sources */, + A7D8B9D123E2514400DCD162 /* SDL_yuv_sw.c in Sources */, + A7D8B76A23E2514300DCD162 /* SDL_wave.c in Sources */, + 5616CA4C252BB2A6005D5928 /* SDL_url.c in Sources */, + A7D8BAD323E2514500DCD162 /* s_tan.c in Sources */, + A7D8AA6523E2514000DCD162 /* SDL_hints.c in Sources */, + A7D8B53F23E2514300DCD162 /* SDL_hidapi_ps4.c in Sources */, + A7D8AD6E23E2514100DCD162 /* SDL_pixels.c in Sources */, + A7D8B75E23E2514300DCD162 /* SDL_sysloadso.c in Sources */, + A7D8BBD723E2574800DCD162 /* SDL_uikitevents.m in Sources */, + A7D8B5F323E2514300DCD162 /* SDL_syspower.c in Sources */, + A7D8B95023E2514400DCD162 /* SDL_iconv.c in Sources */, + A7D8BA9D23E2514400DCD162 /* s_fabs.c in Sources */, + F395C1B12569C6A000942BFF /* SDL_mfijoystick.m in Sources */, + A7D8B99223E2514400DCD162 /* SDL_shaders_metal.metal in Sources */, + A7D8B97A23E2514400DCD162 /* SDL_render.c in Sources */, + A7D8ABD323E2514100DCD162 /* SDL_stretch.c in Sources */, + A7D8BAFD23E2514500DCD162 /* s_floor.c in Sources */, + A7D8AC3923E2514100DCD162 /* SDL_blit_copy.c in Sources */, + A7D8BADF23E2514500DCD162 /* e_fmod.c in Sources */, + A7D8B5CF23E2514300DCD162 /* SDL_syspower.m in Sources */, + A7D8BAEB23E2514500DCD162 /* e_log10.c in Sources */, + A7D8B76423E2514300DCD162 /* SDL_mixer.c in Sources */, + A7D8BB5723E2514500DCD162 /* SDL_events.c in Sources */, + A7D8ADE623E2514100DCD162 /* SDL_blit_0.c in Sources */, + A7D8BB0923E2514500DCD162 /* k_tan.c in Sources */, + A7D8B8A823E2514400DCD162 /* SDL_diskaudio.c in Sources */, + 566E26CF246274CC00718109 /* SDL_syslocale.m in Sources */, + A7D8AFC023E2514200DCD162 /* SDL_egl.c in Sources */, + A7D8AC3323E2514100DCD162 /* SDL_RLEaccel.c in Sources */, + A7D8BBB123E2514500DCD162 /* SDL_assert.c in Sources */, + A7D8B3DA23E2514300DCD162 /* SDL_bmp.c in Sources */, + A7D8B96E23E2514400DCD162 /* SDL_stdlib.c in Sources */, + A7D8BBDF23E2574800DCD162 /* SDL_uikitopengles.m in Sources */, + F32305FF28939F6400E66D30 /* SDL_hidapi_combined.c in Sources */, + A7D8B79A23E2514400DCD162 /* SDL_dummyaudio.c in Sources */, + A7D8B3A423E2514200DCD162 /* SDL_fillrect.c in Sources */, + A7D8ABDF23E2514100DCD162 /* SDL_nullframebuffer.c in Sources */, + A7D8A96923E2514000DCD162 /* SDL_dummysensor.c in Sources */, + A7D8B95C23E2514400DCD162 /* SDL_string.c in Sources */, + A7D8BA7F23E2514400DCD162 /* SDL_render_gl.c in Sources */, + A7D8AE9423E2514100DCD162 /* SDL_cocoamodes.m in Sources */, + A7D8BAA323E2514400DCD162 /* k_rem_pio2.c in Sources */, + A7D8BB9923E2514500DCD162 /* SDL_gesture.c in Sources */, + A7D8B95623E2514400DCD162 /* SDL_getenv.c in Sources */, + A7D8B56323E2514300DCD162 /* SDL_hidapi_gamecube.c in Sources */, + A7D8B4DC23E2514300DCD162 /* SDL_joystick.c in Sources */, + A7D8BA4923E2514400DCD162 /* SDL_render_gles2.c in Sources */, + A7D8AC2D23E2514100DCD162 /* SDL_surface.c in Sources */, + A7D8B54B23E2514300DCD162 /* SDL_hidapi_xboxone.c in Sources */, + A7D8AD2323E2514100DCD162 /* SDL_blit_auto.c in Sources */, + F3A4909E2554D38600E92A8B /* SDL_hidapi_ps5.c in Sources */, + A7D8BB6923E2514500DCD162 /* SDL_keyboard.c in Sources */, + A7D8ACE723E2514100DCD162 /* SDL_rect.c in Sources */, + A7D8AE9A23E2514100DCD162 /* SDL_cocoaopengles.m in Sources */, + F316ABB22B5A02C3002EF551 /* yuv_rgb_lsx.c in Sources */, + A7D8B96823E2514400DCD162 /* SDL_qsort.c in Sources */, + A7D8B55123E2514300DCD162 /* SDL_hidapi_switch.c in Sources */, + A7D8B96223E2514400DCD162 /* SDL_strtokr.c in Sources */, + F316ABA02B5A02C3002EF551 /* yuv_rgb_sse.c in Sources */, + A7D8BB7523E2514500DCD162 /* SDL_clipboardevents.c in Sources */, + A1BB8B6327F6CF330057CFA8 /* SDL_list.c in Sources */, + A7D8BAB523E2514400DCD162 /* k_cos.c in Sources */, + A7D8B54523E2514300DCD162 /* SDL_hidapijoystick.c in Sources */, + A7D8B97423E2514400DCD162 /* SDL_malloc.c in Sources */, + A7D8B8C623E2514400DCD162 /* SDL_audio.c in Sources */, + A7D8B61D23E2514300DCD162 /* SDL_sysfilesystem.c in Sources */, + F3820713284F3609004DD584 /* controller_type.c in Sources */, + A7D8AB8B23E2514100DCD162 /* SDL_offscreenvideo.c in Sources */, + A7D8B42E23E2514300DCD162 /* SDL_syscond.c in Sources */, + A7D8AADA23E2514100DCD162 /* SDL_syshaptic.c in Sources */, + A7D8BAE523E2514500DCD162 /* e_exp.c in Sources */, + A7D8BB8123E2514500DCD162 /* SDL_quit.c in Sources */, + A7D8AEA623E2514100DCD162 /* SDL_cocoawindow.m in Sources */, + A7D8B43A23E2514300DCD162 /* SDL_sysmutex.c in Sources */, + A7D8AAB023E2514100DCD162 /* SDL_syshaptic.c in Sources */, + F3F07D5A269640160074468B /* SDL_hidapi_luna.c in Sources */, + A7D8BBD523E2574800DCD162 /* SDL_uikitclipboard.m in Sources */, + A7D8B5C923E2514300DCD162 /* SDL_rwopsbundlesupport.m in Sources */, + F386F6F92884663E001840AA /* SDL_utils.c in Sources */, + A7D8AC0F23E2514100DCD162 /* SDL_video.c in Sources */, + A7D8BA5B23E2514400DCD162 /* SDL_shaders_gles2.c in Sources */, + A7D8B14023E2514200DCD162 /* SDL_blit_1.c in Sources */, + A7D8BBDB23E2574800DCD162 /* SDL_uikitmetalview.m in Sources */, + A7D8BB1523E2514500DCD162 /* SDL_mouse.c in Sources */, + A7D8BAD923E2514500DCD162 /* e_rem_pio2.c in Sources */, + A7D8BB0F23E2514500DCD162 /* SDL_dataqueue.c in Sources */, + F395C19C2569C68F00942BFF /* SDL_iokitjoystick.c in Sources */, + A7D8B4B223E2514300DCD162 /* SDL_sysjoystick.c in Sources */, + A7D8B3E023E2514300DCD162 /* SDL_cpuinfo.c in Sources */, + A7D8A99323E2514000DCD162 /* SDL_sensor.c in Sources */, + A7D8BAA923E2514400DCD162 /* k_sin.c in Sources */, + A7D8AB4923E2514100DCD162 /* SDL_systimer.c in Sources */, + A7D8BA2523E2514400DCD162 /* SDL_drawpoint.c in Sources */, + F388C95528B5F6F700661ECF /* SDL_hidapi_ps3.c in Sources */, + A7D8BAF723E2514500DCD162 /* e_sqrt.c in Sources */, + A7D8AEAC23E2514100DCD162 /* SDL_cocoavideo.m in Sources */, + A7D8A94B23E2514000DCD162 /* SDL.c in Sources */, + A7D8AEA023E2514100DCD162 /* SDL_cocoavulkan.m in Sources */, + A7D8AB6123E2514100DCD162 /* SDL_offscreenwindow.c in Sources */, + 566E26D8246274CC00718109 /* SDL_locale.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BECDF6790761BA81005FE872 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A7D8B9E623E2514400DCD162 /* SDL_drawline.c in Sources */, + A7D8BBEE23E2574800DCD162 /* SDL_uikitappdelegate.m in Sources */, + A7D8AE7F23E2514100DCD162 /* SDL_yuv.c in Sources */, + A7D8B63223E2514300DCD162 /* SDL_sysfilesystem.m in Sources */, + A7D8BACA23E2514500DCD162 /* e_pow.c in Sources */, + 9846B07F287A9020000C35C8 /* SDL_hidapi_shield.c in Sources */, + A7D8B41F23E2514300DCD162 /* SDL_systls.c in Sources */, + A7D8AD2C23E2514100DCD162 /* SDL_vulkan_utils.c in Sources */, + A7D8A95423E2514000DCD162 /* SDL_spinlock.c in Sources */, + F34B9896291DEFF700AAC96E /* SDL_hidapi_steam.c in Sources */, + A7D8BAB223E2514400DCD162 /* s_atan.c in Sources */, + F3A490A12554D38600E92A8B /* SDL_hidapi_ps5.c in Sources */, + A7D8B75523E2514300DCD162 /* SDL_sysloadso.c in Sources */, + A7D8B98923E2514400DCD162 /* SDL_render_metal.m in Sources */, + A7D8AE7923E2514100DCD162 /* SDL_clipboard.c in Sources */, + A7D8AEC723E2514100DCD162 /* SDL_cocoaevents.m in Sources */, + A7D8B86923E2514400DCD162 /* SDL_audiocvt.c in Sources */, + A7D8B3AD23E2514200DCD162 /* SDL_shape.c in Sources */, + A7D8B9F823E2514400DCD162 /* SDL_rotate.c in Sources */, + A7D8A97823E2514000DCD162 /* SDL_coremotionsensor.m in Sources */, + A7D8BB9023E2514500DCD162 /* SDL_touch.c in Sources */, + A7D8B3F523E2514300DCD162 /* SDL_thread.c in Sources */, + F3820720284F362F004DD584 /* SDL_guid.c in Sources */, + A7D8B56023E2514300DCD162 /* SDL_hidapi_xbox360w.c in Sources */, + F31A92D628D4CB39003BFD6A /* SDL_offscreenopengles.c in Sources */, + A1626A412617006A003F1973 /* SDL_triangle.c in Sources */, + 5616CA59252BB35C005D5928 /* SDL_sysurl.m in Sources */, + A7D8A95A23E2514000DCD162 /* SDL_atomic.c in Sources */, + A75FDBD123EA380300529352 /* SDL_hidapi_rumble.c in Sources */, + A7D8BB2A23E2514500DCD162 /* SDL_displayevents.c in Sources */, + A7D8BBFC23E2574800DCD162 /* SDL_uikitopenglview.m in Sources */, + A7D8AB2823E2514100DCD162 /* SDL_log.c in Sources */, + A7D8BC0223E2574800DCD162 /* SDL_uikitviewcontroller.m in Sources */, + A7D8AE8B23E2514100DCD162 /* SDL_cocoaopengl.m in Sources */, + A7D8AB7623E2514100DCD162 /* SDL_offscreenframebuffer.c in Sources */, + 5616CA58252BB35C005D5928 /* SDL_url.c in Sources */, + A7D8BA4023E2514400DCD162 /* SDL_render_gles.c in Sources */, + A7D8B43723E2514300DCD162 /* SDL_systhread.c in Sources */, + F3973FAE28A59BDD00B84553 /* SDL_crc16.c in Sources */, + A7D8BB3623E2514500DCD162 /* SDL_windowevents.c in Sources */, + F3D60A8628C16A1900788A3A /* SDL_hidapi_wii.c in Sources */, + A7D8BABE23E2514400DCD162 /* s_scalbn.c in Sources */, + A7D8AB2E23E2514100DCD162 /* SDL_timer.c in Sources */, + A7D8B9E023E2514400DCD162 /* SDL_blendpoint.c in Sources */, + A7D8B4F123E2514300DCD162 /* SDL_gamecontroller.c in Sources */, + A7D8AB3A23E2514100DCD162 /* SDL_systimer.c in Sources */, + A7D8BA1623E2514400DCD162 /* SDL_render_sw.c in Sources */, + A7D8B42523E2514300DCD162 /* SDL_syssem.c in Sources */, + A7D8B53C23E2514300DCD162 /* SDL_hidapi_xbox360.c in Sources */, + A7D8B8D523E2514400DCD162 /* SDL_coreaudio.m in Sources */, + A7D8BA2223E2514400DCD162 /* SDL_blendline.c in Sources */, + A7D8BC0623E2574800DCD162 /* SDL_uikitwindow.m in Sources */, + A7D8ADF523E2514100DCD162 /* SDL_blit_A.c in Sources */, + A7D8BA3A23E2514400DCD162 /* SDL_d3dmath.c in Sources */, + A7D8ABEE23E2514100DCD162 /* SDL_nullvideo.c in Sources */, + A7D8AB6A23E2514100DCD162 /* SDL_offscreenevents.c in Sources */, + A7D8ABF423E2514100DCD162 /* SDL_nullevents.c in Sources */, + A7D8B81B23E2514400DCD162 /* SDL_audiodev.c in Sources */, + A7D8AF0F23E2514100DCD162 /* SDL_cocoaclipboard.m in Sources */, + A7D8ABD023E2514100DCD162 /* SDL_blit_slow.c in Sources */, + A7D8BA9A23E2514400DCD162 /* s_copysign.c in Sources */, + A7D8AAB923E2514100DCD162 /* SDL_haptic.c in Sources */, + F362B9402B33920500D30B94 /* SDL_hidapi_steamdeck.c in Sources */, + F3984CD325BCC92900374F43 /* SDL_hidapi_stadia.c in Sources */, + A7D8AF2723E2514100DCD162 /* SDL_cocoametalview.m in Sources */, + A7D8B86323E2514400DCD162 /* SDL_audiotypecvt.c in Sources */, + A7D8AD3523E2514100DCD162 /* SDL_blit_N.c in Sources */, + A7D8BB7E23E2514500DCD162 /* SDL_dropevents.c in Sources */, + A7D8BBFA23E2574800DCD162 /* SDL_uikitopengles.m in Sources */, + A7D8BAD023E2514500DCD162 /* e_atan2.c in Sources */, + A7D8BA8E23E2514400DCD162 /* s_sin.c in Sources */, + F362B95E2B33EB7300D30B94 /* SDL_steam_virtual_gamepad.c in Sources */, + F316AB9A2B5A02C3002EF551 /* yuv_rgb_std.c in Sources */, + A7D8B5EA23E2514300DCD162 /* SDL_power.c in Sources */, + A7D8AED923E2514100DCD162 /* SDL_cocoakeyboard.m in Sources */, + A7D8AB1923E2514100DCD162 /* SDL_dynapi.c in Sources */, + F395BF6825633B2400942BFF /* SDL_crc32.c in Sources */, + A7D8BA8823E2514400DCD162 /* SDL_shaders_gl.c in Sources */, + A7D8BAF423E2514500DCD162 /* e_log.c in Sources */, + A7D8AED323E2514100DCD162 /* SDL_cocoamessagebox.m in Sources */, + A7D8BA2E23E2514400DCD162 /* SDL_blendfillrect.c in Sources */, + A7D8AEE523E2514100DCD162 /* SDL_cocoashape.m in Sources */, + A7D8AEBB23E2514100DCD162 /* SDL_cocoamouse.m in Sources */, + F376F6762559B4E500CFC0BC /* SDL_hidapi.c in Sources */, + A7D8B8E723E2514400DCD162 /* SDL_error.c in Sources */, + A7D8AD6B23E2514100DCD162 /* SDL_blit.c in Sources */, + A7D8B5C023E2514300DCD162 /* SDL_rwops.c in Sources */, + A7D8BA9423E2514400DCD162 /* s_cos.c in Sources */, + A7D8B9D423E2514400DCD162 /* SDL_yuv_sw.c in Sources */, + A7D8B76D23E2514300DCD162 /* SDL_wave.c in Sources */, + A7D8BAD623E2514500DCD162 /* s_tan.c in Sources */, + A7D8BBF423E2574800DCD162 /* SDL_uikitmessagebox.m in Sources */, + A7D8AA6823E2514000DCD162 /* SDL_hints.c in Sources */, + A7D8B54223E2514300DCD162 /* SDL_hidapi_ps4.c in Sources */, + A7D8AD7123E2514100DCD162 /* SDL_pixels.c in Sources */, + A7D8B76123E2514300DCD162 /* SDL_sysloadso.c in Sources */, + A7D8B5F623E2514300DCD162 /* SDL_syspower.c in Sources */, + A7D8B95323E2514400DCD162 /* SDL_iconv.c in Sources */, + 560572112473688100B46B66 /* SDL_locale.c in Sources */, + A7D8BAA023E2514400DCD162 /* s_fabs.c in Sources */, + A7D8BC0423E2574800DCD162 /* SDL_uikitvulkan.m in Sources */, + A7D8B99523E2514400DCD162 /* SDL_shaders_metal.metal in Sources */, + A7D8B97D23E2514400DCD162 /* SDL_render.c in Sources */, + F395C1B42569C6A000942BFF /* SDL_mfijoystick.m in Sources */, + A7D8ABD623E2514100DCD162 /* SDL_stretch.c in Sources */, + A7D8BB0023E2514500DCD162 /* s_floor.c in Sources */, + A7D8AC3C23E2514100DCD162 /* SDL_blit_copy.c in Sources */, + A7D8BAE223E2514500DCD162 /* e_fmod.c in Sources */, + A7D8B5D223E2514300DCD162 /* SDL_syspower.m in Sources */, + A7D8BBF623E2574800DCD162 /* SDL_uikitmetalview.m in Sources */, + A7D8BAEE23E2514500DCD162 /* e_log10.c in Sources */, + A7D8B76723E2514300DCD162 /* SDL_mixer.c in Sources */, + A7D8BB5A23E2514500DCD162 /* SDL_events.c in Sources */, + A7D8ADE923E2514100DCD162 /* SDL_blit_0.c in Sources */, + A7D8BB0C23E2514500DCD162 /* k_tan.c in Sources */, + A7D8BBF223E2574800DCD162 /* SDL_uikitevents.m in Sources */, + A7D8BBB923E2560500DCD162 /* SDL_steamcontroller.c in Sources */, + A7D8B8AB23E2514400DCD162 /* SDL_diskaudio.c in Sources */, + A7D8AFC323E2514200DCD162 /* SDL_egl.c in Sources */, + A7D8AC3623E2514100DCD162 /* SDL_RLEaccel.c in Sources */, + A7D8BBB423E2514500DCD162 /* SDL_assert.c in Sources */, + A7D8B3DD23E2514300DCD162 /* SDL_bmp.c in Sources */, + A7D8B97123E2514400DCD162 /* SDL_stdlib.c in Sources */, + A7D8B79D23E2514400DCD162 /* SDL_dummyaudio.c in Sources */, + A7D8B3A723E2514200DCD162 /* SDL_fillrect.c in Sources */, + F323060228939F6400E66D30 /* SDL_hidapi_combined.c in Sources */, + 75E0915D241EA924004729E1 /* SDL_virtualjoystick.c in Sources */, + A7D8ABE223E2514100DCD162 /* SDL_nullframebuffer.c in Sources */, + A7D8A96C23E2514000DCD162 /* SDL_dummysensor.c in Sources */, + A7D8B95F23E2514400DCD162 /* SDL_string.c in Sources */, + A7D8BA8223E2514400DCD162 /* SDL_render_gl.c in Sources */, + A7D8AE9723E2514100DCD162 /* SDL_cocoamodes.m in Sources */, + A7D8BAA623E2514400DCD162 /* k_rem_pio2.c in Sources */, + A7D8BB9C23E2514500DCD162 /* SDL_gesture.c in Sources */, + A7D8B95923E2514400DCD162 /* SDL_getenv.c in Sources */, + A7D8B56623E2514300DCD162 /* SDL_hidapi_gamecube.c in Sources */, + A7D8B4DF23E2514300DCD162 /* SDL_joystick.c in Sources */, + A7D8BA4C23E2514400DCD162 /* SDL_render_gles2.c in Sources */, + A7D8AC3023E2514100DCD162 /* SDL_surface.c in Sources */, + A7D8B54E23E2514300DCD162 /* SDL_hidapi_xboxone.c in Sources */, + A7D8AD2623E2514100DCD162 /* SDL_blit_auto.c in Sources */, + A7D8BB6C23E2514500DCD162 /* SDL_keyboard.c in Sources */, + A7D8ACEA23E2514100DCD162 /* SDL_rect.c in Sources */, + A7D8BC0023E2574800DCD162 /* SDL_uikitview.m in Sources */, + A7D8AE9D23E2514100DCD162 /* SDL_cocoaopengles.m in Sources */, + A7D8B96B23E2514400DCD162 /* SDL_qsort.c in Sources */, + F316ABB52B5A02C3002EF551 /* yuv_rgb_lsx.c in Sources */, + A7D8B55423E2514300DCD162 /* SDL_hidapi_switch.c in Sources */, + A7D8B96523E2514400DCD162 /* SDL_strtokr.c in Sources */, + A7D8BB7823E2514500DCD162 /* SDL_clipboardevents.c in Sources */, + F316ABA32B5A02C3002EF551 /* yuv_rgb_sse.c in Sources */, + A7D8BAB823E2514400DCD162 /* k_cos.c in Sources */, + A1BB8B6627F6CF330057CFA8 /* SDL_list.c in Sources */, + A7D8B54823E2514300DCD162 /* SDL_hidapijoystick.c in Sources */, + A7D8B97723E2514400DCD162 /* SDL_malloc.c in Sources */, + A7D8BBF023E2574800DCD162 /* SDL_uikitclipboard.m in Sources */, + A7D8B8C923E2514400DCD162 /* SDL_audio.c in Sources */, + A7D8B62023E2514300DCD162 /* SDL_sysfilesystem.c in Sources */, + F3820716284F3609004DD584 /* controller_type.c in Sources */, + A7D8AB8E23E2514100DCD162 /* SDL_offscreenvideo.c in Sources */, + A7D8B43123E2514300DCD162 /* SDL_syscond.c in Sources */, + A7D8AADD23E2514100DCD162 /* SDL_syshaptic.c in Sources */, + A7D8BAE823E2514500DCD162 /* e_exp.c in Sources */, + A7D8BBFE23E2574800DCD162 /* SDL_uikitvideo.m in Sources */, + A7D8BB8423E2514500DCD162 /* SDL_quit.c in Sources */, + A7D8AEA923E2514100DCD162 /* SDL_cocoawindow.m in Sources */, + A7D8B43D23E2514300DCD162 /* SDL_sysmutex.c in Sources */, + F3F07D5D269640160074468B /* SDL_hidapi_luna.c in Sources */, + A7D8AAB323E2514100DCD162 /* SDL_syshaptic.c in Sources */, + A7D8B5CC23E2514300DCD162 /* SDL_rwopsbundlesupport.m in Sources */, + F386F6FC2884663E001840AA /* SDL_utils.c in Sources */, + A7D8AC1223E2514100DCD162 /* SDL_video.c in Sources */, + A7D8BA5E23E2514400DCD162 /* SDL_shaders_gles2.c in Sources */, + 5605720A2473687900B46B66 /* SDL_syslocale.m in Sources */, + A7D8B14323E2514200DCD162 /* SDL_blit_1.c in Sources */, + A7D8BB1823E2514500DCD162 /* SDL_mouse.c in Sources */, + A7D8BADC23E2514500DCD162 /* e_rem_pio2.c in Sources */, + A7D8BB1223E2514500DCD162 /* SDL_dataqueue.c in Sources */, + A7D8B4B523E2514300DCD162 /* SDL_sysjoystick.c in Sources */, + F395C19F2569C68F00942BFF /* SDL_iokitjoystick.c in Sources */, + A7D8B3E323E2514300DCD162 /* SDL_cpuinfo.c in Sources */, + A7D8A99623E2514000DCD162 /* SDL_sensor.c in Sources */, + A7D8BAAC23E2514400DCD162 /* k_sin.c in Sources */, + A7D8AB4C23E2514100DCD162 /* SDL_systimer.c in Sources */, + A7D8BA2823E2514400DCD162 /* SDL_drawpoint.c in Sources */, + F388C95828B5F6F700661ECF /* SDL_hidapi_ps3.c in Sources */, + A7D8BAFA23E2514500DCD162 /* e_sqrt.c in Sources */, + A7D8AEAF23E2514100DCD162 /* SDL_cocoavideo.m in Sources */, + A7D8A94E23E2514000DCD162 /* SDL.c in Sources */, + A7D8BBF823E2574800DCD162 /* SDL_uikitmodes.m in Sources */, + A7D8AEA323E2514100DCD162 /* SDL_cocoavulkan.m in Sources */, + A7D8AB6423E2514100DCD162 /* SDL_offscreenwindow.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB313FFD17554B71006C0E22 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A7D8B9E823E2514400DCD162 /* SDL_drawline.c in Sources */, + A7D8AE8123E2514100DCD162 /* SDL_yuv.c in Sources */, + A7D8B63423E2514300DCD162 /* SDL_sysfilesystem.m in Sources */, + A7D8BACC23E2514500DCD162 /* e_pow.c in Sources */, + A7D8B42123E2514300DCD162 /* SDL_systls.c in Sources */, + 9846B082287A9020000C35C8 /* SDL_hidapi_shield.c in Sources */, + A7D8AD2E23E2514100DCD162 /* SDL_vulkan_utils.c in Sources */, + A7D8A95623E2514000DCD162 /* SDL_spinlock.c in Sources */, + A7D8BAB423E2514400DCD162 /* s_atan.c in Sources */, + F34B9897291DEFFA00AAC96E /* SDL_hidapi_steam.c in Sources */, + A7D8B75723E2514300DCD162 /* SDL_sysloadso.c in Sources */, + F3A490A42554D38600E92A8B /* SDL_hidapi_ps5.c in Sources */, + A7D8B98B23E2514400DCD162 /* SDL_render_metal.m in Sources */, + A7D8AE7B23E2514100DCD162 /* SDL_clipboard.c in Sources */, + A7D8AEC923E2514100DCD162 /* SDL_cocoaevents.m in Sources */, + A7D8B86B23E2514400DCD162 /* SDL_audiocvt.c in Sources */, + A7D8B3AF23E2514200DCD162 /* SDL_shape.c in Sources */, + A7D8B9FA23E2514400DCD162 /* SDL_rotate.c in Sources */, + A7D8A97A23E2514000DCD162 /* SDL_coremotionsensor.m in Sources */, + A7D8BB9223E2514500DCD162 /* SDL_touch.c in Sources */, + A7D8AC5623E2514100DCD162 /* SDL_uikitmessagebox.m in Sources */, + A7D8B3F723E2514300DCD162 /* SDL_thread.c in Sources */, + F3820723284F362F004DD584 /* SDL_guid.c in Sources */, + A7D8B56223E2514300DCD162 /* SDL_hidapi_xbox360w.c in Sources */, + F31A92D928D4CB39003BFD6A /* SDL_offscreenopengles.c in Sources */, + A1626A442617006A003F1973 /* SDL_triangle.c in Sources */, + 5616CA62252BB35E005D5928 /* SDL_sysurl.m in Sources */, + A7D8A95C23E2514000DCD162 /* SDL_atomic.c in Sources */, + A75FDBD423EA380300529352 /* SDL_hidapi_rumble.c in Sources */, + A7D8BB2C23E2514500DCD162 /* SDL_displayevents.c in Sources */, + A7D8AB2A23E2514100DCD162 /* SDL_log.c in Sources */, + A7D8AE8D23E2514100DCD162 /* SDL_cocoaopengl.m in Sources */, + A7D8AB7823E2514100DCD162 /* SDL_offscreenframebuffer.c in Sources */, + A7D8BA4223E2514400DCD162 /* SDL_render_gles.c in Sources */, + 5616CA61252BB35E005D5928 /* SDL_url.c in Sources */, + A7D8B43923E2514300DCD162 /* SDL_systhread.c in Sources */, + A7D8BB3823E2514500DCD162 /* SDL_windowevents.c in Sources */, + A7D8BAC023E2514500DCD162 /* s_scalbn.c in Sources */, + F3973FB128A59BDD00B84553 /* SDL_crc16.c in Sources */, + A7D8AB3023E2514100DCD162 /* SDL_timer.c in Sources */, + F3D60A8928C16A1900788A3A /* SDL_hidapi_wii.c in Sources */, + A7D8B9E223E2514400DCD162 /* SDL_blendpoint.c in Sources */, + A7D8B4F323E2514300DCD162 /* SDL_gamecontroller.c in Sources */, + A7D8AB3C23E2514100DCD162 /* SDL_systimer.c in Sources */, + A7D8ACB023E2514100DCD162 /* SDL_uikitclipboard.m in Sources */, + A7D8BA1823E2514400DCD162 /* SDL_render_sw.c in Sources */, + A7D8B42723E2514300DCD162 /* SDL_syssem.c in Sources */, + A7D8B53E23E2514300DCD162 /* SDL_hidapi_xbox360.c in Sources */, + A7D8B8D723E2514400DCD162 /* SDL_coreaudio.m in Sources */, + A7D8BA2423E2514400DCD162 /* SDL_blendline.c in Sources */, + A7D8ADF723E2514100DCD162 /* SDL_blit_A.c in Sources */, + A7D8BA3C23E2514400DCD162 /* SDL_d3dmath.c in Sources */, + A7D8ABF023E2514100DCD162 /* SDL_nullvideo.c in Sources */, + A7D8AB6C23E2514100DCD162 /* SDL_offscreenevents.c in Sources */, + A7D8ACAA23E2514100DCD162 /* SDL_uikitview.m in Sources */, + A7D8ABF623E2514100DCD162 /* SDL_nullevents.c in Sources */, + A7D8B81D23E2514400DCD162 /* SDL_audiodev.c in Sources */, + A7D8AF1123E2514100DCD162 /* SDL_cocoaclipboard.m in Sources */, + A7D8ABD223E2514100DCD162 /* SDL_blit_slow.c in Sources */, + A7D8BA9C23E2514400DCD162 /* s_copysign.c in Sources */, + A7D8AABB23E2514100DCD162 /* SDL_haptic.c in Sources */, + A7D8AC9223E2514100DCD162 /* SDL_uikitvulkan.m in Sources */, + F362B9432B33920500D30B94 /* SDL_hidapi_steamdeck.c in Sources */, + F3984CD625BCC92900374F43 /* SDL_hidapi_stadia.c in Sources */, + A7D8AF2923E2514100DCD162 /* SDL_cocoametalview.m in Sources */, + A7D8B86523E2514400DCD162 /* SDL_audiotypecvt.c in Sources */, + A7D8AC5C23E2514100DCD162 /* SDL_uikitevents.m in Sources */, + A7D8ACBC23E2514100DCD162 /* SDL_uikitmodes.m in Sources */, + A7D8AD3723E2514100DCD162 /* SDL_blit_N.c in Sources */, + A7D8BB8023E2514500DCD162 /* SDL_dropevents.c in Sources */, + A7D8BAD223E2514500DCD162 /* e_atan2.c in Sources */, + F362B9612B33EB7300D30B94 /* SDL_steam_virtual_gamepad.c in Sources */, + F316AB9D2B5A02C3002EF551 /* yuv_rgb_std.c in Sources */, + A7D8BA9023E2514400DCD162 /* s_sin.c in Sources */, + A7D8B5EC23E2514300DCD162 /* SDL_power.c in Sources */, + A7D8AEDB23E2514100DCD162 /* SDL_cocoakeyboard.m in Sources */, + F395BF6B25633B2400942BFF /* SDL_crc32.c in Sources */, + A7D8AB1B23E2514100DCD162 /* SDL_dynapi.c in Sources */, + A7D8BA8A23E2514400DCD162 /* SDL_shaders_gl.c in Sources */, + A7D8BAF623E2514500DCD162 /* e_log.c in Sources */, + A7D8AED523E2514100DCD162 /* SDL_cocoamessagebox.m in Sources */, + A7D8BA3023E2514400DCD162 /* SDL_blendfillrect.c in Sources */, + A7D8ACE023E2514100DCD162 /* SDL_uikitvideo.m in Sources */, + F376F68D2559B4E900CFC0BC /* SDL_hidapi.c in Sources */, + A7D8AEE723E2514100DCD162 /* SDL_cocoashape.m in Sources */, + A7D8AEBD23E2514100DCD162 /* SDL_cocoamouse.m in Sources */, + A7D8B8E923E2514400DCD162 /* SDL_error.c in Sources */, + A7D8AD6D23E2514100DCD162 /* SDL_blit.c in Sources */, + A7D8B5C223E2514300DCD162 /* SDL_rwops.c in Sources */, + A7D8ACD423E2514100DCD162 /* SDL_uikitviewcontroller.m in Sources */, + A7D8BA9623E2514400DCD162 /* s_cos.c in Sources */, + A7D8B9D623E2514400DCD162 /* SDL_yuv_sw.c in Sources */, + A7D8B76F23E2514300DCD162 /* SDL_wave.c in Sources */, + A7D8BAD823E2514500DCD162 /* s_tan.c in Sources */, + A7D8AA6A23E2514000DCD162 /* SDL_hints.c in Sources */, + A7D8B54423E2514300DCD162 /* SDL_hidapi_ps4.c in Sources */, + A7D8AD7323E2514100DCD162 /* SDL_pixels.c in Sources */, + A7D8B76323E2514300DCD162 /* SDL_sysloadso.c in Sources */, + A7D8B5F823E2514300DCD162 /* SDL_syspower.c in Sources */, + 560572142473688300B46B66 /* SDL_locale.c in Sources */, + A7D8B95523E2514400DCD162 /* SDL_iconv.c in Sources */, + A7D8BAA223E2514400DCD162 /* s_fabs.c in Sources */, + A7D8B99723E2514400DCD162 /* SDL_shaders_metal.metal in Sources */, + F395C1B72569C6A000942BFF /* SDL_mfijoystick.m in Sources */, + A7D8AC5023E2514100DCD162 /* SDL_uikitwindow.m in Sources */, + A7D8B97F23E2514400DCD162 /* SDL_render.c in Sources */, + A7D8ABD823E2514100DCD162 /* SDL_stretch.c in Sources */, + A7D8BB0223E2514500DCD162 /* s_floor.c in Sources */, + A7D8AC3E23E2514100DCD162 /* SDL_blit_copy.c in Sources */, + A7D8BAE423E2514500DCD162 /* e_fmod.c in Sources */, + A7D8B5D423E2514300DCD162 /* SDL_syspower.m in Sources */, + A7D8BAF023E2514500DCD162 /* e_log10.c in Sources */, + A7D8AC7423E2514100DCD162 /* SDL_uikitopenglview.m in Sources */, + A7D8B76923E2514300DCD162 /* SDL_mixer.c in Sources */, + A7D8BB5C23E2514500DCD162 /* SDL_events.c in Sources */, + A7D8ADEB23E2514100DCD162 /* SDL_blit_0.c in Sources */, + A7D8BB0E23E2514500DCD162 /* k_tan.c in Sources */, + A7D8B8AD23E2514400DCD162 /* SDL_diskaudio.c in Sources */, + A7D8AFC523E2514200DCD162 /* SDL_egl.c in Sources */, + A7D8AC3823E2514100DCD162 /* SDL_RLEaccel.c in Sources */, + A7D8BBB623E2514500DCD162 /* SDL_assert.c in Sources */, + A7D8B3DF23E2514300DCD162 /* SDL_bmp.c in Sources */, + A7D8B97323E2514400DCD162 /* SDL_stdlib.c in Sources */, + A7D8B79F23E2514400DCD162 /* SDL_dummyaudio.c in Sources */, + A7D8B3A923E2514200DCD162 /* SDL_fillrect.c in Sources */, + F323060528939F6400E66D30 /* SDL_hidapi_combined.c in Sources */, + 75E09160241EA924004729E1 /* SDL_virtualjoystick.c in Sources */, + A7D8ABE423E2514100DCD162 /* SDL_nullframebuffer.c in Sources */, + A7D8A96E23E2514000DCD162 /* SDL_dummysensor.c in Sources */, + A7D8B96123E2514400DCD162 /* SDL_string.c in Sources */, + A7D8BA8423E2514400DCD162 /* SDL_render_gl.c in Sources */, + A7D8AC8623E2514100DCD162 /* SDL_uikitopengles.m in Sources */, + A7D8AE9923E2514100DCD162 /* SDL_cocoamodes.m in Sources */, + A7D8BAA823E2514400DCD162 /* k_rem_pio2.c in Sources */, + A7D8BB9E23E2514500DCD162 /* SDL_gesture.c in Sources */, + A7D8B95B23E2514400DCD162 /* SDL_getenv.c in Sources */, + A7D8B56823E2514300DCD162 /* SDL_hidapi_gamecube.c in Sources */, + A7D8B4E123E2514300DCD162 /* SDL_joystick.c in Sources */, + A7D8BA4E23E2514400DCD162 /* SDL_render_gles2.c in Sources */, + A7D8AC3223E2514100DCD162 /* SDL_surface.c in Sources */, + A7D8B55023E2514300DCD162 /* SDL_hidapi_xboxone.c in Sources */, + A7D8AD2823E2514100DCD162 /* SDL_blit_auto.c in Sources */, + A7D8BB6E23E2514500DCD162 /* SDL_keyboard.c in Sources */, + A7D8ACEC23E2514100DCD162 /* SDL_rect.c in Sources */, + A7D8AE9F23E2514100DCD162 /* SDL_cocoaopengles.m in Sources */, + A7D8B96D23E2514400DCD162 /* SDL_qsort.c in Sources */, + F316ABB82B5A02C3002EF551 /* yuv_rgb_lsx.c in Sources */, + A7D8B55623E2514300DCD162 /* SDL_hidapi_switch.c in Sources */, + A7D8B96723E2514400DCD162 /* SDL_strtokr.c in Sources */, + A7D8BB7A23E2514500DCD162 /* SDL_clipboardevents.c in Sources */, + F316ABA62B5A02C3002EF551 /* yuv_rgb_sse.c in Sources */, + A7D8BABA23E2514400DCD162 /* k_cos.c in Sources */, + A1BB8B6927F6CF330057CFA8 /* SDL_list.c in Sources */, + A7D8B54A23E2514300DCD162 /* SDL_hidapijoystick.c in Sources */, + A7D8B97923E2514400DCD162 /* SDL_malloc.c in Sources */, + A7D8B8CB23E2514400DCD162 /* SDL_audio.c in Sources */, + A7D8B62223E2514300DCD162 /* SDL_sysfilesystem.c in Sources */, + A7D8AB9023E2514100DCD162 /* SDL_offscreenvideo.c in Sources */, + F3820719284F3609004DD584 /* controller_type.c in Sources */, + A7D8B43323E2514300DCD162 /* SDL_syscond.c in Sources */, + A7D8AADF23E2514100DCD162 /* SDL_syshaptic.c in Sources */, + A7D8BAEA23E2514500DCD162 /* e_exp.c in Sources */, + A7D8BB8623E2514500DCD162 /* SDL_quit.c in Sources */, + A7D8AEAB23E2514100DCD162 /* SDL_cocoawindow.m in Sources */, + A7D8B43F23E2514300DCD162 /* SDL_sysmutex.c in Sources */, + A7D8AAB523E2514100DCD162 /* SDL_syshaptic.c in Sources */, + A7D8B5CE23E2514300DCD162 /* SDL_rwopsbundlesupport.m in Sources */, + F3F07D60269640160074468B /* SDL_hidapi_luna.c in Sources */, + A7D8AC1423E2514100DCD162 /* SDL_video.c in Sources */, + F386F6FF2884663E001840AA /* SDL_utils.c in Sources */, + A7D8ACC823E2514100DCD162 /* SDL_uikitmetalview.m in Sources */, + A7D8BBBA23E2560600DCD162 /* SDL_steamcontroller.c in Sources */, + A7D8BA6023E2514400DCD162 /* SDL_shaders_gles2.c in Sources */, + 5605720C2473687B00B46B66 /* SDL_syslocale.m in Sources */, + A7D8B14523E2514200DCD162 /* SDL_blit_1.c in Sources */, + A7D8BB1A23E2514500DCD162 /* SDL_mouse.c in Sources */, + A7D8BADE23E2514500DCD162 /* e_rem_pio2.c in Sources */, + A7D8BB1423E2514500DCD162 /* SDL_dataqueue.c in Sources */, + A7D8B4B723E2514300DCD162 /* SDL_sysjoystick.c in Sources */, + F395C1A22569C68F00942BFF /* SDL_iokitjoystick.c in Sources */, + A7D8B3E523E2514300DCD162 /* SDL_cpuinfo.c in Sources */, + A7D8A99823E2514000DCD162 /* SDL_sensor.c in Sources */, + A7D8BAAE23E2514400DCD162 /* k_sin.c in Sources */, + A7D8AB4E23E2514100DCD162 /* SDL_systimer.c in Sources */, + A7D8BA2A23E2514400DCD162 /* SDL_drawpoint.c in Sources */, + F388C95B28B5F6F700661ECF /* SDL_hidapi_ps3.c in Sources */, + A7D8BAFC23E2514500DCD162 /* e_sqrt.c in Sources */, + A7D8AEB123E2514100DCD162 /* SDL_cocoavideo.m in Sources */, + A7D8A95023E2514000DCD162 /* SDL.c in Sources */, + A7D8AEA523E2514100DCD162 /* SDL_cocoavulkan.m in Sources */, + A7D8AC6823E2514100DCD162 /* SDL_uikitappdelegate.m in Sources */, + A7D8AB6623E2514100DCD162 /* SDL_offscreenwindow.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E2D187CB28A5673500D2B4F1 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F31A92D528D4CB39003BFD6A /* SDL_offscreenopengles.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + BECDF6C60761BA81005FE872 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = BECDF5FE0761BA81005FE872 /* Framework */; + targetProxy = BECDF6C50761BA81005FE872 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 00CFA621106A567900758660 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEPLOYMENT_POSTPROCESSING = YES; + DYLIB_COMPATIBILITY_VERSION = 3201.0.0; + DYLIB_CURRENT_VERSION = 3201.10.0; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_ALTIVEC_EXTENSIONS = YES; + GCC_AUTO_VECTORIZATION = YES; + GCC_ENABLE_SSE3_EXTENSIONS = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_SYMBOLS_PRIVATE_EXTERN = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + /usr/X11R6/include, + "$(VULKAN_SDK)/include", + ../../src/video/khronos, + ../../src/hidapi/hidapi, + ); + INFOPLIST_FILE = "Info-Framework.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 10.11; + PRODUCT_BUNDLE_IDENTIFIER = org.libsdl.SDL2; + PRODUCT_NAME = SDL2; + STRIP_STYLE = "non-global"; + TVOS_DEPLOYMENT_TARGET = 9.0; + }; + name = Release; + }; + 00CFA622106A567900758660 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_LINK_OBJC_RUNTIME = NO; + MARKETING_VERSION = 2.32.10; + OTHER_LDFLAGS = "-liconv"; + }; + name = Release; + }; + 00CFA623106A567900758660 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + GCC_SYMBOLS_PRIVATE_EXTERN = YES; + SKIP_INSTALL = YES; + }; + name = Release; + }; + 00CFA625106A567900758660 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + }; + name = Release; + }; + 00CFA627106A568900758660 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + DEBUG_INFORMATION_FORMAT = dwarf; + DYLIB_COMPATIBILITY_VERSION = 3201.0.0; + DYLIB_CURRENT_VERSION = 3201.10.0; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_ALTIVEC_EXTENSIONS = YES; + GCC_AUTO_VECTORIZATION = YES; + GCC_ENABLE_SSE3_EXTENSIONS = YES; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_SYMBOLS_PRIVATE_EXTERN = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + /usr/X11R6/include, + "$(VULKAN_SDK)/include", + ../../src/video/khronos, + ../../src/hidapi/hidapi, + ); + INFOPLIST_FILE = "Info-Framework.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 10.11; + ONLY_ACTIVE_ARCH = NO; + PRODUCT_BUNDLE_IDENTIFIER = org.libsdl.SDL2; + PRODUCT_NAME = SDL2; + STRIP_INSTALLED_PRODUCT = NO; + TVOS_DEPLOYMENT_TARGET = 9.0; + }; + name = Debug; + }; + 00CFA628106A568900758660 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_LINK_OBJC_RUNTIME = NO; + MARKETING_VERSION = 2.32.10; + OTHER_LDFLAGS = "-liconv"; + }; + name = Debug; + }; + 00CFA629106A568900758660 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + GCC_SYMBOLS_PRIVATE_EXTERN = YES; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + 00CFA62B106A568900758660 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + }; + name = Debug; + }; + A75FCEB123E25AB700529352 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_OBJC_ARC = YES; + EXECUTABLE_PREFIX = lib; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(SDKROOT)/System/iOSSupport/System/Library/Frameworks", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = YES; + INSTALL_PATH = "@rpath"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2,6"; + }; + name = Debug; + }; + A75FCEB223E25AB700529352 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_OBJC_ARC = YES; + EXECUTABLE_PREFIX = lib; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(SDKROOT)/System/iOSSupport/System/Library/Frameworks", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = YES; + INSTALL_PATH = "@rpath"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2,6"; + }; + name = Release; + }; + A75FD06A23E25AC700529352 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_OBJC_ARC = YES; + EXECUTABLE_PREFIX = lib; + GCC_SYMBOLS_PRIVATE_EXTERN = YES; + INSTALL_PATH = "@rpath"; + SDKROOT = appletvos; + }; + name = Debug; + }; + A75FD06B23E25AC700529352 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_OBJC_ARC = YES; + EXECUTABLE_PREFIX = lib; + GCC_SYMBOLS_PRIVATE_EXTERN = YES; + INSTALL_PATH = "@rpath"; + SDKROOT = appletvos; + }; + name = Release; + }; + A769B23B23E259AE00872273 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_LINK_OBJC_RUNTIME = NO; + GCC_SYMBOLS_PRIVATE_EXTERN = YES; + SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "appletvsimulator appletvos"; + }; + name = Debug; + }; + A769B23C23E259AE00872273 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_LINK_OBJC_RUNTIME = NO; + GCC_SYMBOLS_PRIVATE_EXTERN = YES; + SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "appletvsimulator appletvos"; + }; + name = Release; + }; + A7D88B5223E2437C00DCD162 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_LINK_OBJC_RUNTIME = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(SDKROOT)/System/iOSSupport/System/Library/Frameworks", + ); + OTHER_LDFLAGS = "-liconv"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2,6"; + }; + name = Debug; + }; + A7D88B5323E2437C00DCD162 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_LINK_OBJC_RUNTIME = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(SDKROOT)/System/iOSSupport/System/Library/Frameworks", + ); + OTHER_LDFLAGS = "-liconv"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2,6"; + }; + name = Release; + }; + A7D88D1323E24BED00DCD162 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_LINK_OBJC_RUNTIME = NO; + OTHER_LDFLAGS = "-liconv"; + SDKROOT = appletvos; + }; + name = Debug; + }; + A7D88D1423E24BED00DCD162 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_LINK_OBJC_RUNTIME = NO; + OTHER_LDFLAGS = "-liconv"; + SDKROOT = appletvos; + }; + name = Release; + }; + A7D88E5223E24D3B00DCD162 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_LINK_OBJC_RUNTIME = NO; + GCC_PREPROCESSOR_DEFINITIONS = GLES_SILENCE_DEPRECATION; + GCC_SYMBOLS_PRIVATE_EXTERN = YES; + SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; + }; + name = Debug; + }; + A7D88E5323E24D3B00DCD162 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_LINK_OBJC_RUNTIME = NO; + GCC_PREPROCESSOR_DEFINITIONS = GLES_SILENCE_DEPRECATION; + GCC_SYMBOLS_PRIVATE_EXTERN = YES; + SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; + }; + name = Release; + }; + DB31407517554B71006C0E22 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + EXECUTABLE_PREFIX = lib; + GCC_SYMBOLS_PRIVATE_EXTERN = YES; + INSTALL_PATH = "@rpath"; + }; + name = Debug; + }; + DB31407617554B71006C0E22 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + EXECUTABLE_PREFIX = lib; + GCC_SYMBOLS_PRIVATE_EXTERN = YES; + INSTALL_PATH = "@rpath"; + }; + name = Release; + }; + E2D187D428A5673500D2B4F1 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_STYLE = Automatic; + COPY_PHASE_STRIP = YES; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 3201.0.0; + DYLIB_CURRENT_VERSION = 3201.10.0; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + INFOPLIST_FILE = SDL2/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 12.1; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + OTHER_LDFLAGS = "-liconv"; + PRODUCT_BUNDLE_IDENTIFIER = ""; + PRODUCT_NAME = SDL2; + SDKROOT = iphoneos; + SKIP_INSTALL = NO; + SUPPORTS_MACCATALYST = NO; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + E2D187D528A5673500D2B4F1 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_STYLE = Automatic; + COPY_PHASE_STRIP = YES; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 3201.0.0; + DYLIB_CURRENT_VERSION = 3201.10.0; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_NS_ASSERTIONS = NO; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + INFOPLIST_FILE = SDL2/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 12.1; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + OTHER_LDFLAGS = "-liconv"; + PRODUCT_BUNDLE_IDENTIFIER = ""; + PRODUCT_NAME = SDL2; + SDKROOT = iphoneos; + SKIP_INSTALL = NO; + SUPPORTS_MACCATALYST = NO; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = NO; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 0073177A0858DB0500B2BC32 /* Build configuration list for PBXNativeTarget "Framework" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 00CFA628106A568900758660 /* Debug */, + 00CFA622106A567900758660 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 0073177E0858DB0500B2BC32 /* Build configuration list for PBXNativeTarget "Static Library" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 00CFA629106A568900758660 /* Debug */, + 00CFA623106A567900758660 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 007317860858DB0500B2BC32 /* Build configuration list for PBXNativeTarget "Standard DMG" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 00CFA62B106A568900758660 /* Debug */, + 00CFA625106A567900758660 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 0073178E0858DB0500B2BC32 /* Build configuration list for PBXProject "SDL" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 00CFA627106A568900758660 /* Debug */, + 00CFA621106A567900758660 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + A75FCEB023E25AB700529352 /* Build configuration list for PBXNativeTarget "Shared Library-iOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A75FCEB123E25AB700529352 /* Debug */, + A75FCEB223E25AB700529352 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + A75FD06923E25AC700529352 /* Build configuration list for PBXNativeTarget "Shared Library-tvOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A75FD06A23E25AC700529352 /* Debug */, + A75FD06B23E25AC700529352 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + A769B23A23E259AE00872273 /* Build configuration list for PBXNativeTarget "Static Library-tvOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A769B23B23E259AE00872273 /* Debug */, + A769B23C23E259AE00872273 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + A7D88B5123E2437C00DCD162 /* Build configuration list for PBXNativeTarget "Framework-iOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A7D88B5223E2437C00DCD162 /* Debug */, + A7D88B5323E2437C00DCD162 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + A7D88D1223E24BED00DCD162 /* Build configuration list for PBXNativeTarget "Framework-tvOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A7D88D1323E24BED00DCD162 /* Debug */, + A7D88D1423E24BED00DCD162 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + A7D88E5123E24D3B00DCD162 /* Build configuration list for PBXNativeTarget "Static Library-iOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A7D88E5223E24D3B00DCD162 /* Debug */, + A7D88E5323E24D3B00DCD162 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + DB31407417554B71006C0E22 /* Build configuration list for PBXNativeTarget "Shared Library" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DB31407517554B71006C0E22 /* Debug */, + DB31407617554B71006C0E22 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + E2D187D628A5673500D2B4F1 /* Build configuration list for PBXNativeTarget "xcFramework-iOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + E2D187D428A5673500D2B4F1 /* Debug */, + E2D187D528A5673500D2B4F1 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; +/* End XCConfigurationList section */ + }; + rootObject = 0867D690FE84028FC02AAC07 /* Project object */; +} diff --git a/engine/lib/sdl/Xcode/SDL/SDL.xcodeproj/xcshareddata/xcschemes/Framework-iOS.xcscheme b/engine/lib/sdl/Xcode/SDL/SDL.xcodeproj/xcshareddata/xcschemes/Framework-iOS.xcscheme new file mode 100644 index 000000000..b797feacb --- /dev/null +++ b/engine/lib/sdl/Xcode/SDL/SDL.xcodeproj/xcshareddata/xcschemes/Framework-iOS.xcscheme @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/engine/lib/sdl/Xcode/SDL/SDL.xcodeproj/xcshareddata/xcschemes/xcFramework-iOS.xcscheme b/engine/lib/sdl/Xcode/SDL/SDL.xcodeproj/xcshareddata/xcschemes/xcFramework-iOS.xcscheme new file mode 100644 index 000000000..82b464373 --- /dev/null +++ b/engine/lib/sdl/Xcode/SDL/SDL.xcodeproj/xcshareddata/xcschemes/xcFramework-iOS.xcscheme @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/engine/lib/sdl/Xcode/SDL/SDL2/Info.plist b/engine/lib/sdl/Xcode/SDL/SDL2/Info.plist new file mode 100644 index 000000000..9bcb24442 --- /dev/null +++ b/engine/lib/sdl/Xcode/SDL/SDL2/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + + diff --git a/engine/lib/sdl/Xcode/SDL/pkg-support/SDL.info b/engine/lib/sdl/Xcode/SDL/pkg-support/SDL.info new file mode 100644 index 000000000..0bec3ced5 --- /dev/null +++ b/engine/lib/sdl/Xcode/SDL/pkg-support/SDL.info @@ -0,0 +1,15 @@ +Title SDL 2.32.10 +Version 1 +Description SDL Library for Mac OS X (http://www.libsdl.org) +DefaultLocation /Library/Frameworks +Diskname (null) +DeleteWarning +NeedsAuthorization NO +DisableStop NO +UseUserMask NO +Application NO +Relocatable YES +Required NO +InstallOnly NO +RequiresReboot NO +InstallFat NO diff --git a/engine/lib/sdl/Xcode/SDL/pkg-support/resources/License.txt b/engine/lib/sdl/Xcode/SDL/pkg-support/resources/License.txt new file mode 100644 index 000000000..144831ccf --- /dev/null +++ b/engine/lib/sdl/Xcode/SDL/pkg-support/resources/License.txt @@ -0,0 +1,19 @@ + +Simple DirectMedia Layer +Copyright (C) 1997-2025 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. diff --git a/engine/lib/sdl/Xcode/SDL/pkg-support/resources/ReadMe.txt b/engine/lib/sdl/Xcode/SDL/pkg-support/resources/ReadMe.txt new file mode 100644 index 000000000..9f495913c --- /dev/null +++ b/engine/lib/sdl/Xcode/SDL/pkg-support/resources/ReadMe.txt @@ -0,0 +1,44 @@ +The Simple DirectMedia Layer (SDL for short) is a cross-platform +library designed to make it easy to write multi-media software, +such as games and emulators. + +The Simple DirectMedia Layer library source code is available from: +http://www.libsdl.org/ + +This library is distributed under the terms of the zlib license: +http://zlib.net/zlib_license.html + + +This packages contains the SDL framework for OS X. +Conforming with Apple guidelines, this framework +contains both the SDL runtime component and development header files. + + +To Install: +Copy the SDL2.framework to /Library/Frameworks + +You may alternatively install it in /Library/Frameworks +if your access privileges are not high enough. + + +Use in CMake projects: +SDL2.framework can be used in CMake projects using the following pattern: +``` +find_package(SDL2 REQUIRED COMPONENTS SDL2) +add_executable(my_game ${MY_SOURCES}) +target_link_libraries(my_game PRIVATE SDL2::SDL2) +``` +If SDL2.framework is installed in a non-standard location, +please refer to the following link for ways to configure CMake: +https://cmake.org/cmake/help/latest/command/find_package.html#config-mode-search-procedure + + +Additional References: + + - Screencast tutorials for getting started with OpenSceneGraph/Mac OS X are + available at: + http://www.openscenegraph.org/projects/osg/wiki/Support/Tutorials/MacOSXTips + Though these are OpenSceneGraph centric, the same exact concepts apply to + SDL, thus the videos are recommended for everybody getting started with + developing on Mac OS X. (You can skim over the PlugIns stuff since SDL + doesn't have any PlugIns to worry about.) diff --git a/engine/lib/sdl/Xcode/SDL/pkg-support/resources/SDL_DS_Store b/engine/lib/sdl/Xcode/SDL/pkg-support/resources/SDL_DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5658d15e4f13fbfd8a786e55c8b7a04cd1229cf8 GIT binary patch literal 15364 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 tEoYq39Hd|Co#requ7Ty+ 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�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 K{S$ATfB8RpYXpJ- literal 0 HcmV?d00001 diff --git a/engine/lib/sdl/Xcode/SDLTest/SDLTest.xcodeproj/project.pbxproj b/engine/lib/sdl/Xcode/SDLTest/SDLTest.xcodeproj/project.pbxproj new file mode 100644 index 000000000..543d100d7 --- /dev/null +++ b/engine/lib/sdl/Xcode/SDLTest/SDLTest.xcodeproj/project.pbxproj @@ -0,0 +1,5169 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXAggregateTarget section */ + BEC566920761D90300A33029 /* All */ = { + isa = PBXAggregateTarget; + buildConfigurationList = 001B599808BDB826006539E9 /* Build configuration list for PBXAggregateTarget "All" */; + buildPhases = ( + ); + dependencies = ( + DB0F490517CA5249008798C5 /* PBXTargetDependency */, + DB0F490717CA5249008798C5 /* PBXTargetDependency */, + DB166E9816A1D7CF00A1396C /* PBXTargetDependency */, + DB166E9616A1D7CD00A1396C /* PBXTargetDependency */, + DB166E6C16A1D72000A1396C /* PBXTargetDependency */, + DB166E5616A1D6B800A1396C /* PBXTargetDependency */, + DB166E3B16A1D65A00A1396C /* PBXTargetDependency */, + DB166E2016A1D5D000A1396C /* PBXTargetDependency */, + DB166E0916A1D5A400A1396C /* PBXTargetDependency */, + DB166DF216A1D53700A1396C /* PBXTargetDependency */, + DB166DD916A1D38900A1396C /* PBXTargetDependency */, + 001799481074403E00F5D044 /* PBXTargetDependency */, + 0017994C1074403E00F5D044 /* PBXTargetDependency */, + 001799501074403E00F5D044 /* PBXTargetDependency */, + 001799521074403E00F5D044 /* PBXTargetDependency */, + 0017995A1074403E00F5D044 /* PBXTargetDependency */, + 0017995E1074403E00F5D044 /* PBXTargetDependency */, + 001799601074403E00F5D044 /* PBXTargetDependency */, + 001799661074403E00F5D044 /* PBXTargetDependency */, + 001799681074403E00F5D044 /* PBXTargetDependency */, + 0017996A1074403E00F5D044 /* PBXTargetDependency */, + 0017996C1074403E00F5D044 /* PBXTargetDependency */, + 0017996E1074403E00F5D044 /* PBXTargetDependency */, + 001799701074403E00F5D044 /* PBXTargetDependency */, + 001799721074403E00F5D044 /* PBXTargetDependency */, + 001799741074403E00F5D044 /* PBXTargetDependency */, + 001799761074403E00F5D044 /* PBXTargetDependency */, + 001799781074403E00F5D044 /* PBXTargetDependency */, + 0017997C1074403E00F5D044 /* PBXTargetDependency */, + 001799801074403E00F5D044 /* PBXTargetDependency */, + 001799841074403E00F5D044 /* PBXTargetDependency */, + 001799881074403E00F5D044 /* PBXTargetDependency */, + 0017998A1074403E00F5D044 /* PBXTargetDependency */, + 0017998C1074403E00F5D044 /* PBXTargetDependency */, + 0017998E1074403E00F5D044 /* PBXTargetDependency */, + 001799921074403E00F5D044 /* PBXTargetDependency */, + 001799941074403E00F5D044 /* PBXTargetDependency */, + 001799961074403E00F5D044 /* PBXTargetDependency */, + 0017999E1074403E00F5D044 /* PBXTargetDependency */, + 001799A21074403E00F5D044 /* PBXTargetDependency */, + DB166D7016A1CEAF00A1396C /* PBXTargetDependency */, + DB166D6E16A1CEAA00A1396C /* PBXTargetDependency */, + DB166DC316A1D32C00A1396C /* PBXTargetDependency */, + ); + name = All; + productName = "Build All"; + }; +/* End PBXAggregateTarget section */ + +/* Begin PBXBuildFile section */ + 001795901074216E00F5D044 /* testatomic.c in Sources */ = {isa = PBXBuildFile; fileRef = 0017958F1074216E00F5D044 /* testatomic.c */; }; + 001795B11074222D00F5D044 /* testaudioinfo.c in Sources */ = {isa = PBXBuildFile; fileRef = 001795B01074222D00F5D044 /* testaudioinfo.c */; }; + 0017972810742FB900F5D044 /* testgl2.c in Sources */ = {isa = PBXBuildFile; fileRef = 0017972710742FB900F5D044 /* testgl2.c */; }; + 0017974F1074315700F5D044 /* testhaptic.c in Sources */ = {isa = PBXBuildFile; fileRef = 0017974E1074315700F5D044 /* testhaptic.c */; }; + 001797721074320D00F5D044 /* testdraw2.c in Sources */ = {isa = PBXBuildFile; fileRef = 001797711074320D00F5D044 /* testdraw2.c */; }; + 00179792107432FA00F5D044 /* testime.c in Sources */ = {isa = PBXBuildFile; fileRef = 00179791107432FA00F5D044 /* testime.c */; }; + 001797B41074339C00F5D044 /* testintersections.c in Sources */ = {isa = PBXBuildFile; fileRef = 001797B31074339C00F5D044 /* testintersections.c */; }; + 001797D41074343E00F5D044 /* testloadso.c in Sources */ = {isa = PBXBuildFile; fileRef = 001797D31074343E00F5D044 /* testloadso.c */; }; + 001798161074359B00F5D044 /* testmultiaudio.c in Sources */ = {isa = PBXBuildFile; fileRef = 001798151074359B00F5D044 /* testmultiaudio.c */; }; + 0017987F1074392D00F5D044 /* testnative.c in Sources */ = {isa = PBXBuildFile; fileRef = 0017985A107436ED00F5D044 /* testnative.c */; }; + 001798801074392D00F5D044 /* testnativecocoa.m in Sources */ = {isa = PBXBuildFile; fileRef = 0017985C107436ED00F5D044 /* testnativecocoa.m */; }; + 001798BA10743A4900F5D044 /* testpower.c in Sources */ = {isa = PBXBuildFile; fileRef = 001798B910743A4900F5D044 /* testpower.c */; }; + 001798FA10743E9200F5D044 /* testresample.c in Sources */ = {isa = PBXBuildFile; fileRef = 001798F910743E9200F5D044 /* testresample.c */; }; + 0017991A10743F5300F5D044 /* testsprite2.c in Sources */ = {isa = PBXBuildFile; fileRef = 0017991910743F5300F5D044 /* testsprite2.c */; }; + 0017993C10743FEF00F5D044 /* testwm2.c in Sources */ = {isa = PBXBuildFile; fileRef = 0017993B10743FEF00F5D044 /* testwm2.c */; }; + 002F341809CA1C5B00EBEB88 /* testfile.c in Sources */ = {isa = PBXBuildFile; fileRef = 002F341709CA1C5B00EBEB88 /* testfile.c */; }; + 002F343709CA1F6F00EBEB88 /* testiconv.c in Sources */ = {isa = PBXBuildFile; fileRef = 002F343609CA1F6F00EBEB88 /* testiconv.c */; }; + 002F345409CA202000EBEB88 /* testoverlay2.c in Sources */ = {isa = PBXBuildFile; fileRef = 002F345209CA201C00EBEB88 /* testoverlay2.c */; }; + 002F347009CA20A600EBEB88 /* testplatform.c in Sources */ = {isa = PBXBuildFile; fileRef = 002F346F09CA20A600EBEB88 /* testplatform.c */; }; + 00794E6609D20865003FC8A1 /* sample.wav in CopyFiles */ = {isa = PBXBuildFile; fileRef = 00794E6209D20839003FC8A1 /* sample.wav */; }; + 00794EF009D23739003FC8A1 /* utf8.txt in CopyFiles */ = {isa = PBXBuildFile; fileRef = 00794E6309D20839003FC8A1 /* utf8.txt */; }; + 00794EF709D237DE003FC8A1 /* moose.dat in CopyFiles */ = {isa = PBXBuildFile; fileRef = 00794E5E09D20839003FC8A1 /* moose.dat */; }; + 453774A5120915E3002F0F45 /* testshape.c in Sources */ = {isa = PBXBuildFile; fileRef = 453774A4120915E3002F0F45 /* testshape.c */; }; + 66E88E8B203B778F0004D44E /* testyuv_cvt.c in Sources */ = {isa = PBXBuildFile; fileRef = 66E88E8A203B778F0004D44E /* testyuv_cvt.c */; }; + AAF02FFA1F90092700B9A9FB /* SDL_test_memory.c in Sources */ = {isa = PBXBuildFile; fileRef = AAF02FF41F90089800B9A9FB /* SDL_test_memory.c */; }; + BBFC08D0164C6876003E6A99 /* testgamecontroller.c in Sources */ = {isa = PBXBuildFile; fileRef = BBFC088E164C6820003E6A99 /* testgamecontroller.c */; }; + BEC566B10761D90300A33029 /* checkkeys.c in Sources */ = {isa = PBXBuildFile; fileRef = 092D6D10FFB30A2C7F000001 /* checkkeys.c */; }; + BEC566CB0761D90300A33029 /* loopwave.c in Sources */ = {isa = PBXBuildFile; fileRef = 083E4872006D84C97F000001 /* loopwave.c */; }; + BEC567010761D90300A33029 /* testerror.c in Sources */ = {isa = PBXBuildFile; fileRef = 083E4878006D85357F000001 /* testerror.c */; }; + BEC567290761D90400A33029 /* testthread.c in Sources */ = {isa = PBXBuildFile; fileRef = 092D6D58FFB311A97F000001 /* testthread.c */; }; + BEC567360761D90400A33029 /* testjoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = 092D6D62FFB312AA7F000001 /* testjoystick.c */; }; + BEC567430761D90400A33029 /* testkeys.c in Sources */ = {isa = PBXBuildFile; fileRef = 092D6D6CFFB313437F000001 /* testkeys.c */; }; + BEC567500761D90400A33029 /* testlock.c in Sources */ = {isa = PBXBuildFile; fileRef = 092D6D75FFB313BB7F000001 /* testlock.c */; }; + BEC567780761D90500A33029 /* testsem.c in Sources */ = {isa = PBXBuildFile; fileRef = 083E487E006D86A17F000001 /* testsem.c */; }; + BEC567930761D90500A33029 /* testtimer.c in Sources */ = {isa = PBXBuildFile; fileRef = 083E4880006D86A17F000001 /* testtimer.c */; }; + BEC567AD0761D90500A33029 /* testver.c in Sources */ = {isa = PBXBuildFile; fileRef = 083E4882006D86A17F000001 /* testver.c */; }; + BEC567F00761D90600A33029 /* torturethread.c in Sources */ = {isa = PBXBuildFile; fileRef = 083E4887006D86A17F000001 /* torturethread.c */; }; + DB0F48EE17CA51F8008798C5 /* testdrawchessboard.c in Sources */ = {isa = PBXBuildFile; fileRef = DB0F48D717CA51D2008798C5 /* testdrawchessboard.c */; }; + DB0F490317CA5225008798C5 /* testfilesystem.c in Sources */ = {isa = PBXBuildFile; fileRef = DB0F48D817CA51D2008798C5 /* testfilesystem.c */; }; + DB166D9316A1D1A500A1396C /* SDL_test_assert.c in Sources */ = {isa = PBXBuildFile; fileRef = DB166D8416A1D1A500A1396C /* SDL_test_assert.c */; }; + DB166D9416A1D1A500A1396C /* SDL_test_common.c in Sources */ = {isa = PBXBuildFile; fileRef = DB166D8516A1D1A500A1396C /* SDL_test_common.c */; }; + DB166D9516A1D1A500A1396C /* SDL_test_compare.c in Sources */ = {isa = PBXBuildFile; fileRef = DB166D8616A1D1A500A1396C /* SDL_test_compare.c */; }; + DB166D9616A1D1A500A1396C /* SDL_test_crc32.c in Sources */ = {isa = PBXBuildFile; fileRef = DB166D8716A1D1A500A1396C /* SDL_test_crc32.c */; }; + DB166D9716A1D1A500A1396C /* SDL_test_font.c in Sources */ = {isa = PBXBuildFile; fileRef = DB166D8816A1D1A500A1396C /* SDL_test_font.c */; }; + DB166D9816A1D1A500A1396C /* SDL_test_fuzzer.c in Sources */ = {isa = PBXBuildFile; fileRef = DB166D8916A1D1A500A1396C /* SDL_test_fuzzer.c */; }; + DB166D9916A1D1A500A1396C /* SDL_test_harness.c in Sources */ = {isa = PBXBuildFile; fileRef = DB166D8A16A1D1A500A1396C /* SDL_test_harness.c */; }; + DB166D9A16A1D1A500A1396C /* SDL_test_imageBlit.c in Sources */ = {isa = PBXBuildFile; fileRef = DB166D8B16A1D1A500A1396C /* SDL_test_imageBlit.c */; }; + DB166D9B16A1D1A500A1396C /* SDL_test_imageBlitBlend.c in Sources */ = {isa = PBXBuildFile; fileRef = DB166D8C16A1D1A500A1396C /* SDL_test_imageBlitBlend.c */; }; + DB166D9C16A1D1A500A1396C /* SDL_test_imageFace.c in Sources */ = {isa = PBXBuildFile; fileRef = DB166D8D16A1D1A500A1396C /* SDL_test_imageFace.c */; }; + DB166D9D16A1D1A500A1396C /* SDL_test_imagePrimitives.c in Sources */ = {isa = PBXBuildFile; fileRef = DB166D8E16A1D1A500A1396C /* SDL_test_imagePrimitives.c */; }; + DB166D9E16A1D1A500A1396C /* SDL_test_imagePrimitivesBlend.c in Sources */ = {isa = PBXBuildFile; fileRef = DB166D8F16A1D1A500A1396C /* SDL_test_imagePrimitivesBlend.c */; }; + DB166D9F16A1D1A500A1396C /* SDL_test_log.c in Sources */ = {isa = PBXBuildFile; fileRef = DB166D9016A1D1A500A1396C /* SDL_test_log.c */; }; + DB166DA016A1D1A500A1396C /* SDL_test_md5.c in Sources */ = {isa = PBXBuildFile; fileRef = DB166D9116A1D1A500A1396C /* SDL_test_md5.c */; }; + DB166DA116A1D1A500A1396C /* SDL_test_random.c in Sources */ = {isa = PBXBuildFile; fileRef = DB166D9216A1D1A500A1396C /* SDL_test_random.c */; }; + DB166DA216A1D1E900A1396C /* libSDL_test.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DB166D7F16A1D12400A1396C /* libSDL_test.a */; }; + DB166DA316A1D1FA00A1396C /* libSDL_test.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DB166D7F16A1D12400A1396C /* libSDL_test.a */; }; + DB166DA416A1D21700A1396C /* libSDL_test.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DB166D7F16A1D12400A1396C /* libSDL_test.a */; }; + DB166DA716A1D24D00A1396C /* libSDL_test.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DB166D7F16A1D12400A1396C /* libSDL_test.a */; }; + DB166DAA16A1D27700A1396C /* libSDL_test.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DB166D7F16A1D12400A1396C /* libSDL_test.a */; }; + DB166DAB16A1D27C00A1396C /* libSDL_test.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DB166D7F16A1D12400A1396C /* libSDL_test.a */; }; + DB166DAC16A1D29000A1396C /* libSDL_test.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DB166D7F16A1D12400A1396C /* libSDL_test.a */; }; + DB166DC116A1D31E00A1396C /* testgesture.c in Sources */ = {isa = PBXBuildFile; fileRef = DB166CBB16A1C74100A1396C /* testgesture.c */; }; + DB166DD716A1D37800A1396C /* testmessage.c in Sources */ = {isa = PBXBuildFile; fileRef = DB166CBD16A1C74100A1396C /* testmessage.c */; }; + DB166DDB16A1D42F00A1396C /* icon.bmp in CopyFiles */ = {isa = PBXBuildFile; fileRef = 00794E5D09D20839003FC8A1 /* icon.bmp */; }; + DB166DEA16A1D50C00A1396C /* libSDL_test.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DB166D7F16A1D12400A1396C /* libSDL_test.a */; }; + DB166DF016A1D52500A1396C /* testrelative.c in Sources */ = {isa = PBXBuildFile; fileRef = DB166CBF16A1C74100A1396C /* testrelative.c */; }; + DB166E0116A1D57C00A1396C /* libSDL_test.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DB166D7F16A1D12400A1396C /* libSDL_test.a */; }; + DB166E0716A1D59400A1396C /* testrendercopyex.c in Sources */ = {isa = PBXBuildFile; fileRef = DB166CC016A1C74100A1396C /* testrendercopyex.c */; }; + DB166E1816A1D5AD00A1396C /* libSDL_test.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DB166D7F16A1D12400A1396C /* libSDL_test.a */; }; + DB166E1E16A1D5C300A1396C /* testrendertarget.c in Sources */ = {isa = PBXBuildFile; fileRef = DB166CC116A1C74100A1396C /* testrendertarget.c */; }; + DB166E2216A1D5EC00A1396C /* sample.bmp in CopyFiles */ = {isa = PBXBuildFile; fileRef = 00794E6109D20839003FC8A1 /* sample.bmp */; }; + DB166E2316A1D60B00A1396C /* icon.bmp in CopyFiles */ = {isa = PBXBuildFile; fileRef = 00794E5D09D20839003FC8A1 /* icon.bmp */; }; + DB166E2516A1D61900A1396C /* icon.bmp in CopyFiles */ = {isa = PBXBuildFile; fileRef = 00794E5D09D20839003FC8A1 /* icon.bmp */; }; + DB166E2616A1D61900A1396C /* sample.bmp in CopyFiles */ = {isa = PBXBuildFile; fileRef = 00794E6109D20839003FC8A1 /* sample.bmp */; }; + DB166E3C16A1D66500A1396C /* testrumble.c in Sources */ = {isa = PBXBuildFile; fileRef = DB166CC216A1C74100A1396C /* testrumble.c */; }; + DB166E4B16A1D69000A1396C /* libSDL_test.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DB166D7F16A1D12400A1396C /* libSDL_test.a */; }; + DB166E4D16A1D69000A1396C /* icon.bmp in CopyFiles */ = {isa = PBXBuildFile; fileRef = 00794E5D09D20839003FC8A1 /* icon.bmp */; }; + DB166E4E16A1D69000A1396C /* sample.bmp in CopyFiles */ = {isa = PBXBuildFile; fileRef = 00794E6109D20839003FC8A1 /* sample.bmp */; }; + DB166E5416A1D6A300A1396C /* testscale.c in Sources */ = {isa = PBXBuildFile; fileRef = DB166CC316A1C74100A1396C /* testscale.c */; }; + DB166E6A16A1D70C00A1396C /* testshader.c in Sources */ = {isa = PBXBuildFile; fileRef = DB166CC416A1C74100A1396C /* testshader.c */; }; + DB166E9316A1D7BC00A1396C /* testspriteminimal.c in Sources */ = {isa = PBXBuildFile; fileRef = DB166CC516A1C74100A1396C /* testspriteminimal.c */; }; + DB166E9416A1D7C700A1396C /* teststreaming.c in Sources */ = {isa = PBXBuildFile; fileRef = DB166CC616A1C74100A1396C /* teststreaming.c */; }; + DB166E9A16A1D7F700A1396C /* moose.dat in CopyFiles */ = {isa = PBXBuildFile; fileRef = 00794E5E09D20839003FC8A1 /* moose.dat */; }; + DB166E9C16A1D80900A1396C /* icon.bmp in CopyFiles */ = {isa = PBXBuildFile; fileRef = 00794E5D09D20839003FC8A1 /* icon.bmp */; }; + DB166ED016A1D88100A1396C /* shapes in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB166ECF16A1D87000A1396C /* shapes */; }; + DB445EF418184B7000B306B0 /* libSDL_test.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DB166D7F16A1D12400A1396C /* libSDL_test.a */; }; + DB445EFB18184BB600B306B0 /* testdropfile.c in Sources */ = {isa = PBXBuildFile; fileRef = DB445EFA18184BB600B306B0 /* testdropfile.c */; }; + DB89958418A19B130092407C /* testhotplug.c in Sources */ = {isa = PBXBuildFile; fileRef = DB89958318A19B130092407C /* testhotplug.c */; }; + DBEC54EB1A1A8205005B1EAB /* controllermap.c in Sources */ = {isa = PBXBuildFile; fileRef = DBEC54D11A1A811D005B1EAB /* controllermap.c */; }; + DBEC54ED1A1A828A005B1EAB /* axis.bmp in CopyFiles */ = {isa = PBXBuildFile; fileRef = DBEC54D61A1A8145005B1EAB /* axis.bmp */; }; + DBEC54EE1A1A828D005B1EAB /* button.bmp in CopyFiles */ = {isa = PBXBuildFile; fileRef = DBEC54D71A1A8145005B1EAB /* button.bmp */; }; + DBEC54EF1A1A828F005B1EAB /* controllermap.bmp in CopyFiles */ = {isa = PBXBuildFile; fileRef = DBEC54D81A1A8145005B1EAB /* controllermap.bmp */; }; + F3A249DB2B389C7A00A5162D /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; }; + F3A249DC2B389C7A00A5162D /* SDL2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3A249DE2B389CCA00A5162D /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; }; + F3A249DF2B389CCA00A5162D /* SDL2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3A249E12B389CDB00A5162D /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; }; + F3A249E22B389CDB00A5162D /* SDL2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3A249E42B389CE700A5162D /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; }; + F3A249E52B389CE700A5162D /* SDL2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3A249E72B389CF000A5162D /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; }; + F3A249E82B389CF000A5162D /* SDL2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3A249EA2B389CFB00A5162D /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; }; + F3A249EB2B389CFB00A5162D /* SDL2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3A249ED2B389D0900A5162D /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; }; + F3A249EE2B389D0900A5162D /* SDL2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3A249F02B389D3100A5162D /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; }; + F3A249F12B389D3100A5162D /* SDL2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3A249F32B389D3B00A5162D /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; }; + F3A249F42B389D3B00A5162D /* SDL2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3A249F62B389D4400A5162D /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; }; + F3A249F72B389D4400A5162D /* SDL2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3A249F92B389D5200A5162D /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; }; + F3A249FA2B389D5200A5162D /* SDL2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3A249FC2B389D5B00A5162D /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; }; + F3A249FD2B389D5B00A5162D /* SDL2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3A249FF2B389D6600A5162D /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; }; + F3A24A002B389D6600A5162D /* SDL2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3A24A022B389D6F00A5162D /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; }; + F3A24A032B389D6F00A5162D /* SDL2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3A24A052B389D7C00A5162D /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; }; + F3A24A062B389D7C00A5162D /* SDL2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3A24A082B389D8A00A5162D /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; }; + F3A24A092B389D8A00A5162D /* SDL2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3A24A0B2B389D9B00A5162D /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; }; + F3A24A0C2B389D9B00A5162D /* SDL2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3A24A0E2B389DA800A5162D /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; }; + F3A24A0F2B389DA800A5162D /* SDL2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3A24A112B389DB400A5162D /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; }; + F3A24A122B389DB400A5162D /* SDL2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3A24A142B389DC000A5162D /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; }; + F3A24A152B389DC000A5162D /* SDL2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3A24A172B389DCA00A5162D /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; }; + F3A24A182B389DCA00A5162D /* SDL2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3A24A1A2B389DD600A5162D /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; }; + F3A24A1B2B389DD600A5162D /* SDL2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3A24A1D2B389DE100A5162D /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; }; + F3A24A1E2B389DE100A5162D /* SDL2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3A24A202B389DEB00A5162D /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; }; + F3A24A212B389DEB00A5162D /* SDL2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3A24A232B389DF500A5162D /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; }; + F3A24A242B389DF500A5162D /* SDL2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3A24A262B389DFF00A5162D /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; }; + F3A24A272B389DFF00A5162D /* SDL2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3A24A292B389E0900A5162D /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; }; + F3A24A2A2B389E0900A5162D /* SDL2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3A24A2C2B389E1400A5162D /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; }; + F3A24A2D2B389E1400A5162D /* SDL2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3A24A302B389E2800A5162D /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; }; + F3A24A312B389E2800A5162D /* SDL2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3A24A332B389E3200A5162D /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; }; + F3A24A342B389E3200A5162D /* SDL2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3A24A362B389E4F00A5162D /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; }; + F3A24A372B389E4F00A5162D /* SDL2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3A24A392B389E5D00A5162D /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; }; + F3A24A3A2B389E5D00A5162D /* SDL2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3A24A3C2B389E6600A5162D /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; }; + F3A24A3D2B389E6600A5162D /* SDL2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3A24A3F2B389E7200A5162D /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; }; + F3A24A402B389E7200A5162D /* SDL2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3A24A422B389E7C00A5162D /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; }; + F3A24A432B389E7C00A5162D /* SDL2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3A24A452B389E8700A5162D /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; }; + F3A24A462B389E8700A5162D /* SDL2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3A24A482B389E9100A5162D /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; }; + F3A24A492B389E9100A5162D /* SDL2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3A24A4B2B389E9C00A5162D /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; }; + F3A24A4C2B389E9C00A5162D /* SDL2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3A24A4E2B389EA500A5162D /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; }; + F3A24A4F2B389EA500A5162D /* SDL2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3A24A512B389EB600A5162D /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; }; + F3A24A522B389EB600A5162D /* SDL2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3A24A542B389EC200A5162D /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; }; + F3A24A552B389EC200A5162D /* SDL2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3A24A572B389ECD00A5162D /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; }; + F3A24A582B389ECD00A5162D /* SDL2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3A24A5A2B389ED800A5162D /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; }; + F3A24A5B2B389ED800A5162D /* SDL2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3A24A5D2B389EE200A5162D /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; }; + F3A24A5E2B389EE200A5162D /* SDL2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3A24A602B389EED00A5162D /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; }; + F3A24A612B389EED00A5162D /* SDL2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3A24A632B389EF900A5162D /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; }; + F3A24A642B389EF900A5162D /* SDL2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3A24A662B389F0400A5162D /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; }; + F3A24A672B389F0400A5162D /* SDL2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 003FA643093FFD41000C53B3 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F3C17C6B28E4022A00E1A26D /* libSDL_test.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DB166D7F16A1D12400A1396C /* libSDL_test.a */; }; + F3C17C7428E40AF000E1A26D /* testutils.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17C7328E40ADE00E1A26D /* testutils.c */; }; + F3C17C7628E40BA200E1A26D /* controllermap_back.bmp in CopyFiles */ = {isa = PBXBuildFile; fileRef = F3C17C7528E40B6B00E1A26D /* controllermap_back.bmp */; }; + F3C17C7728E40BC800E1A26D /* testutils.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17C7328E40ADE00E1A26D /* testutils.c */; }; + F3C17C7928E40C6E00E1A26D /* testutils.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17C7328E40ADE00E1A26D /* testutils.c */; }; + F3C17C7A28E40CA600E1A26D /* libSDL_test.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DB166D7F16A1D12400A1396C /* libSDL_test.a */; }; + F3C17C7B28E40D4E00E1A26D /* testutils.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17C7328E40ADE00E1A26D /* testutils.c */; }; + F3C17C7C28E40D7400E1A26D /* testutils.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17C7328E40ADE00E1A26D /* testutils.c */; }; + F3C17C7D28E40F9D00E1A26D /* testutils.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17C7328E40ADE00E1A26D /* testutils.c */; }; + F3C17C7E28E40FDD00E1A26D /* testutils.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17C7328E40ADE00E1A26D /* testutils.c */; }; + F3C17C7F28E4101000E1A26D /* testutils.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17C7328E40ADE00E1A26D /* testutils.c */; }; + F3C17C8028E410A400E1A26D /* testutils.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17C7328E40ADE00E1A26D /* testutils.c */; }; + F3C17C8128E410C900E1A26D /* testutils.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17C7328E40ADE00E1A26D /* testutils.c */; }; + F3C17C8228E4112900E1A26D /* testutils.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17C7328E40ADE00E1A26D /* testutils.c */; }; + F3C17C8328E4124400E1A26D /* testutils.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17C7328E40ADE00E1A26D /* testutils.c */; }; + F3C17C8428E4126400E1A26D /* testutils.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17C7328E40ADE00E1A26D /* testutils.c */; }; + F3C17C8528E4127D00E1A26D /* testutils.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17C7328E40ADE00E1A26D /* testutils.c */; }; + F3C17CEB28E4177600E1A26D /* testgeometry.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CD628E416AC00E1A26D /* testgeometry.c */; }; + F3C17CEC28E417EB00E1A26D /* testutils.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17C7328E40ADE00E1A26D /* testutils.c */; }; + F3C17CED28E417F400E1A26D /* libSDL_test.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DB166D7F16A1D12400A1396C /* libSDL_test.a */; }; + F3C17CEE28E4184700E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; }; + F3C17CEF28E41D5800E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; }; + F3C17CFC28E41E9800E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; }; + F3C17CFD28E41EA100E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; }; + F3C17CFE28E41EAC00E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; }; + F3C17CFF28E41EB000E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; }; + F3C17D0028E41EB400E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; }; + F3C17D0128E41EB800E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; }; + F3C17D0228E41EBC00E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; }; + F3C17D0328E41EC500E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; }; + F3C17D0428E41EC800E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; }; + F3C17D0528E41ECB00E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; }; + F3C17D0628E41ECF00E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; }; + F3C17D0728E41ED300E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; }; + F3C17D0828E41EDB00E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; }; + F3C17D0928E41EE100E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; }; + F3C17D0A28E41EE700E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; }; + F3C17D0B28E41EEB00E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; }; + F3C17D0C28E41EF000E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; }; + F3C17D0D28E41EF400E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; }; + F3C17D0E28E41EF900E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; }; + F3C17D0F28E41EFE00E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; }; + F3C17D1028E41F0200E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; }; + F3C17D1128E41F0600E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; }; + F3C17D1228E41F0A00E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; }; + F3C17D1328E41F0D00E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; }; + F3C17D1428E41F1100E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; }; + F3C17D1528E41F1F00E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; }; + F3C17D1628E41F2400E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; }; + F3C17D1728E41F2800E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; }; + F3C17D1828E41F2C00E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; }; + F3C17D1928E41F3100E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; }; + F3C17D1A28E41F3500E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; }; + F3C17D1B28E41F3800E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; }; + F3C17D1C28E41F3C00E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; }; + F3C17D1D28E41F4000E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; }; + F3C17D1E28E41F4500E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; }; + F3C17D1F28E41F4800E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; }; + F3C17D2028E41F4D00E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; }; + F3C17D2228E41F5F00E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; }; + F3C17D2328E41F6200E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; }; + F3C17D2428E41F6600E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; }; + F3C17D2528E41F6A00E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; }; + F3C17D2628E41F6E00E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; }; + F3C17D2728E41FD800E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; }; + F3C17D2828E41FDC00E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; }; + F3C17D3928E424B800E1A26D /* sample.wav in Resources */ = {isa = PBXBuildFile; fileRef = 00794E6209D20839003FC8A1 /* sample.wav */; }; + F3C17D3B28E4252900E1A26D /* icon.bmp in Resources */ = {isa = PBXBuildFile; fileRef = 00794E5D09D20839003FC8A1 /* icon.bmp */; }; + F3C17D3C28E4277D00E1A26D /* axis.bmp in Resources */ = {isa = PBXBuildFile; fileRef = DBEC54D61A1A8145005B1EAB /* axis.bmp */; }; + F3C17D3D28E4277D00E1A26D /* button.bmp in Resources */ = {isa = PBXBuildFile; fileRef = DBEC54D71A1A8145005B1EAB /* button.bmp */; }; + F3C17D3E28E4277D00E1A26D /* controllermap_back.bmp in Resources */ = {isa = PBXBuildFile; fileRef = F3C17C7528E40B6B00E1A26D /* controllermap_back.bmp */; }; + F3C17D3F28E4277D00E1A26D /* controllermap.bmp in Resources */ = {isa = PBXBuildFile; fileRef = DBEC54D81A1A8145005B1EAB /* controllermap.bmp */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 001799471074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BEC566AB0761D90300A33029; + remoteInfo = checkkeys; + }; + 0017994B1074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BEC566C50761D90300A33029; + remoteInfo = loopwave; + }; + 0017994F1074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 0017957410741F7900F5D044; + remoteInfo = testatomic; + }; + 001799511074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 00179595107421BF00F5D044; + remoteInfo = testaudioinfo; + }; + 001799591074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 00179756107431B300F5D044; + remoteInfo = testdraw2; + }; + 0017995D1074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BEC566FB0761D90300A33029; + remoteInfo = testerror; + }; + 0017995F1074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 002F340109CA1BFF00EBEB88; + remoteInfo = testfile; + }; + 001799651074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 0017970910742F3200F5D044; + remoteInfo = testgl2; + }; + 001799671074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 00179730107430D600F5D044; + remoteInfo = testhaptic; + }; + 001799691074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BEC567230761D90400A33029; + remoteInfo = testthread; + }; + 0017996B1074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 002F342009CA1F0300EBEB88; + remoteInfo = testiconv; + }; + 0017996D1074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 00179776107432AE00F5D044; + remoteInfo = testime; + }; + 0017996F1074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 001797961074334C00F5D044; + remoteInfo = testintersections; + }; + 001799711074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BEC567300761D90400A33029; + remoteInfo = testjoystick; + }; + 001799731074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BEC5673D0761D90400A33029; + remoteInfo = testkeys; + }; + 001799751074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 001797B8107433C600F5D044; + remoteInfo = testloadso; + }; + 001799771074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BEC5674A0761D90400A33029; + remoteInfo = testlock; + }; + 0017997B1074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 001797FA1074355200F5D044; + remoteInfo = testmultiaudio; + }; + 0017997F1074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 001798781074392D00F5D044; + remoteInfo = testnativex11; + }; + 001799831074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 002F343C09CA1FB300EBEB88; + remoteInfo = testoverlay2; + }; + 001799871074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 002F345909CA204F00EBEB88; + remoteInfo = testplatform; + }; + 001799891074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 0017989D107439DF00F5D044; + remoteInfo = testpower; + }; + 0017998B1074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 001798DA10743BEC00F5D044; + remoteInfo = testresample; + }; + 0017998D1074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BEC567720761D90500A33029; + remoteInfo = testsem; + }; + 001799911074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 001798FE10743F1000F5D044; + remoteInfo = testsprite2; + }; + 001799931074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BEC5678D0761D90500A33029; + remoteInfo = testtimer; + }; + 001799951074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BEC567A70761D90500A33029; + remoteInfo = testversion; + }; + 0017999D1074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 0017992010743FB700F5D044; + remoteInfo = testwm2; + }; + 001799A11074403E00F5D044 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BEC567EA0761D90600A33029; + remoteInfo = torturethread; + }; + 003FA642093FFD41000C53B3 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 003FA63A093FFD41000C53B3 /* SDL.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = BECDF66C0761BA81005FE872; + remoteInfo = Framework; + }; + 003FA644093FFD41000C53B3 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 003FA63A093FFD41000C53B3 /* SDL.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = BECDF6B30761BA81005FE872; + remoteInfo = "Static Library"; + }; + 003FA648093FFD41000C53B3 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 003FA63A093FFD41000C53B3 /* SDL.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = BECDF6BE0761BA81005FE872; + remoteInfo = "Standard DMG"; + }; + DB0F490417CA5249008798C5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = DB0F48D917CA51E5008798C5; + remoteInfo = testdrawchessboard; + }; + DB0F490617CA5249008798C5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = DB0F48EF17CA5212008798C5; + remoteInfo = testfilesystem; + }; + DB166D6D16A1CEAA00A1396C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BBFC08B7164C6862003E6A99; + remoteInfo = testgamecontroller; + }; + DB166D6F16A1CEAF00A1396C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 4537749112091504002F0F45; + remoteInfo = testshape; + }; + DB166DC216A1D32C00A1396C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = DB166DAD16A1D2F600A1396C; + remoteInfo = testgesture; + }; + DB166DD816A1D38900A1396C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = DB166DC416A1D36A00A1396C; + remoteInfo = testmessage; + }; + DB166DF116A1D53700A1396C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = DB166DDC16A1D50C00A1396C; + remoteInfo = testrelative; + }; + DB166E0816A1D5A400A1396C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = DB166DF316A1D57C00A1396C; + remoteInfo = testrendercopyex; + }; + DB166E1F16A1D5D000A1396C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = DB166E0A16A1D5AD00A1396C; + remoteInfo = testrendertarget; + }; + DB166E3A16A1D65A00A1396C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = DB166E2716A1D64D00A1396C; + remoteInfo = testrumble; + }; + DB166E5516A1D6B800A1396C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = DB166E3D16A1D69000A1396C; + remoteInfo = testscale; + }; + DB166E6B16A1D72000A1396C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = DB166E5716A1D6F300A1396C; + remoteInfo = testshader; + }; + DB166E9516A1D7CD00A1396C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = DB166E6D16A1D78400A1396C; + remoteInfo = testspriteminimal; + }; + DB166E9716A1D7CF00A1396C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = DB166E8016A1D78C00A1396C; + remoteInfo = teststreaming; + }; + DB1D40D617B3F30D00D74CFC /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 003FA63A093FFD41000C53B3 /* SDL.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = DB31407717554B71006C0E22; + remoteInfo = "Shared Library"; + }; + F3C17C5C28E3FB2900E1A26D /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 003FA63A093FFD41000C53B3 /* SDL.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = A7D88B5423E2437C00DCD162; + remoteInfo = "Framework-iOS"; + }; + F3C17C5E28E3FB2900E1A26D /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 003FA63A093FFD41000C53B3 /* SDL.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = A7D88D1523E24BED00DCD162; + remoteInfo = "Framework-tvOS"; + }; + F3C17C6028E3FB2900E1A26D /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 003FA63A093FFD41000C53B3 /* SDL.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = E2D187CF28A5673500D2B4F1; + remoteInfo = "xcFramework-iOS"; + }; + F3C17C6228E3FB2900E1A26D /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 003FA63A093FFD41000C53B3 /* SDL.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = A7D88E5423E24D3B00DCD162; + remoteInfo = "Static Library-iOS"; + }; + F3C17C6428E3FB2900E1A26D /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 003FA63A093FFD41000C53B3 /* SDL.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = A769B23D23E259AE00872273; + remoteInfo = "Static Library-tvOS"; + }; + F3C17C6628E3FB2900E1A26D /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 003FA63A093FFD41000C53B3 /* SDL.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = A75FCEB323E25AB700529352; + remoteInfo = "Shared Library-iOS"; + }; + F3C17C6828E3FB2900E1A26D /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 003FA63A093FFD41000C53B3 /* SDL.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = A75FD06C23E25AC700529352; + remoteInfo = "Shared Library-tvOS"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 00794E6409D2084F003FC8A1 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 7; + files = ( + 00794E6609D20865003FC8A1 /* sample.wav in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 00794EEC09D2371F003FC8A1 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 7; + files = ( + 00794EF009D23739003FC8A1 /* utf8.txt in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 00794EF409D237C7003FC8A1 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 7; + files = ( + 00794EF709D237DE003FC8A1 /* moose.dat in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166DDA16A1D40F00A1396C /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 7; + files = ( + DB166DDB16A1D42F00A1396C /* icon.bmp in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166E2116A1D5DF00A1396C /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 7; + files = ( + DB166E2316A1D60B00A1396C /* icon.bmp in CopyFiles */, + DB166E2216A1D5EC00A1396C /* sample.bmp in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166E2416A1D61000A1396C /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 7; + files = ( + DB166E2516A1D61900A1396C /* icon.bmp in CopyFiles */, + DB166E2616A1D61900A1396C /* sample.bmp in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166E4C16A1D69000A1396C /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 7; + files = ( + DB166E4D16A1D69000A1396C /* icon.bmp in CopyFiles */, + DB166E4E16A1D69000A1396C /* sample.bmp in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166E9916A1D7EE00A1396C /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 7; + files = ( + DB166E9A16A1D7F700A1396C /* moose.dat in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166E9B16A1D7FC00A1396C /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 7; + files = ( + DB166E9C16A1D80900A1396C /* icon.bmp in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166ECE16A1D85400A1396C /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 7; + files = ( + DB166ED016A1D88100A1396C /* shapes in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DBEC54EC1A1A827C005B1EAB /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 7; + files = ( + DBEC54ED1A1A828A005B1EAB /* axis.bmp in CopyFiles */, + DBEC54EE1A1A828D005B1EAB /* button.bmp in CopyFiles */, + DBEC54EF1A1A828F005B1EAB /* controllermap.bmp in CopyFiles */, + F3C17C7628E40BA200E1A26D /* controllermap_back.bmp in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F3A249DD2B389C7A00A5162D /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3A249DC2B389C7A00A5162D /* SDL2.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3A249E02B389CCA00A5162D /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3A249DF2B389CCA00A5162D /* SDL2.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3A249E32B389CDB00A5162D /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3A249E22B389CDB00A5162D /* SDL2.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3A249E62B389CE700A5162D /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3A249E52B389CE700A5162D /* SDL2.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3A249E92B389CF000A5162D /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3A249E82B389CF000A5162D /* SDL2.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3A249EC2B389CFB00A5162D /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3A249EB2B389CFB00A5162D /* SDL2.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3A249EF2B389D0900A5162D /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3A249EE2B389D0900A5162D /* SDL2.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3A249F22B389D3100A5162D /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3A249F12B389D3100A5162D /* SDL2.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3A249F52B389D3B00A5162D /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3A249F42B389D3B00A5162D /* SDL2.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3A249F82B389D4400A5162D /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3A249F72B389D4400A5162D /* SDL2.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3A249FB2B389D5200A5162D /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3A249FA2B389D5200A5162D /* SDL2.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3A249FE2B389D5B00A5162D /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3A249FD2B389D5B00A5162D /* SDL2.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3A24A012B389D6600A5162D /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3A24A002B389D6600A5162D /* SDL2.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3A24A042B389D6F00A5162D /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3A24A032B389D6F00A5162D /* SDL2.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3A24A072B389D7C00A5162D /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3A24A062B389D7C00A5162D /* SDL2.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3A24A0A2B389D8A00A5162D /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3A24A092B389D8A00A5162D /* SDL2.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3A24A0D2B389D9B00A5162D /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3A24A0C2B389D9B00A5162D /* SDL2.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3A24A102B389DA800A5162D /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3A24A0F2B389DA800A5162D /* SDL2.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3A24A132B389DB400A5162D /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3A24A122B389DB400A5162D /* SDL2.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3A24A162B389DC000A5162D /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3A24A152B389DC000A5162D /* SDL2.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3A24A192B389DCA00A5162D /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3A24A182B389DCA00A5162D /* SDL2.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3A24A1C2B389DD600A5162D /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3A24A1B2B389DD600A5162D /* SDL2.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3A24A1F2B389DE100A5162D /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3A24A1E2B389DE100A5162D /* SDL2.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3A24A222B389DEB00A5162D /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3A24A212B389DEB00A5162D /* SDL2.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3A24A252B389DF500A5162D /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3A24A242B389DF500A5162D /* SDL2.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3A24A282B389E0000A5162D /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3A24A272B389DFF00A5162D /* SDL2.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3A24A2B2B389E0900A5162D /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3A24A2A2B389E0900A5162D /* SDL2.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3A24A2E2B389E1500A5162D /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3A24A2D2B389E1400A5162D /* SDL2.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3A24A322B389E2800A5162D /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3A24A312B389E2800A5162D /* SDL2.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3A24A352B389E3200A5162D /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3A24A342B389E3200A5162D /* SDL2.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3A24A382B389E4F00A5162D /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3A24A372B389E4F00A5162D /* SDL2.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3A24A3B2B389E5D00A5162D /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3A24A3A2B389E5D00A5162D /* SDL2.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3A24A3E2B389E6600A5162D /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3A24A3D2B389E6600A5162D /* SDL2.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3A24A412B389E7200A5162D /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3A24A402B389E7200A5162D /* SDL2.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3A24A442B389E7C00A5162D /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3A24A432B389E7C00A5162D /* SDL2.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3A24A472B389E8700A5162D /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3A24A462B389E8700A5162D /* SDL2.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3A24A4A2B389E9100A5162D /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3A24A492B389E9100A5162D /* SDL2.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3A24A4D2B389E9C00A5162D /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3A24A4C2B389E9C00A5162D /* SDL2.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3A24A502B389EA600A5162D /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3A24A4F2B389EA500A5162D /* SDL2.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3A24A532B389EB600A5162D /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3A24A522B389EB600A5162D /* SDL2.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3A24A562B389EC200A5162D /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3A24A552B389EC200A5162D /* SDL2.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3A24A592B389ECD00A5162D /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3A24A582B389ECD00A5162D /* SDL2.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3A24A5C2B389ED800A5162D /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3A24A5B2B389ED800A5162D /* SDL2.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3A24A5F2B389EE200A5162D /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3A24A5E2B389EE200A5162D /* SDL2.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3A24A622B389EED00A5162D /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3A24A612B389EED00A5162D /* SDL2.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3A24A652B389EF900A5162D /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3A24A642B389EF900A5162D /* SDL2.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + F3A24A682B389F0400A5162D /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F3A24A672B389F0400A5162D /* SDL2.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 0017958C10741F7900F5D044 /* testatomic.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testatomic.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 0017958F1074216E00F5D044 /* testatomic.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testatomic.c; sourceTree = ""; }; + 001795AD107421BF00F5D044 /* testaudioinfo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testaudioinfo.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 001795B01074222D00F5D044 /* testaudioinfo.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testaudioinfo.c; sourceTree = ""; }; + 0017972110742F3200F5D044 /* testgl2.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testgl2.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 0017972710742FB900F5D044 /* testgl2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testgl2.c; sourceTree = ""; }; + 00179748107430D600F5D044 /* testhaptic.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testhaptic.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 0017974E1074315700F5D044 /* testhaptic.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testhaptic.c; sourceTree = ""; }; + 0017976E107431B300F5D044 /* testdraw2.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testdraw2.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 001797711074320D00F5D044 /* testdraw2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testdraw2.c; sourceTree = ""; }; + 0017978E107432AE00F5D044 /* testime.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testime.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 00179791107432FA00F5D044 /* testime.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testime.c; sourceTree = ""; }; + 001797AE1074334C00F5D044 /* testintersections.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testintersections.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 001797B31074339C00F5D044 /* testintersections.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testintersections.c; sourceTree = ""; }; + 001797D0107433C600F5D044 /* testloadso.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testloadso.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 001797D31074343E00F5D044 /* testloadso.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testloadso.c; sourceTree = ""; }; + 001798121074355200F5D044 /* testmultiaudio.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testmultiaudio.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 001798151074359B00F5D044 /* testmultiaudio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testmultiaudio.c; sourceTree = ""; }; + 0017985A107436ED00F5D044 /* testnative.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testnative.c; sourceTree = ""; }; + 0017985B107436ED00F5D044 /* testnative.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = testnative.h; sourceTree = ""; }; + 0017985C107436ED00F5D044 /* testnativecocoa.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = testnativecocoa.m; sourceTree = ""; }; + 00179872107438D000F5D044 /* testnativex11.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testnativex11.c; sourceTree = ""; }; + 001798941074392D00F5D044 /* testnative.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testnative.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 001798B5107439DF00F5D044 /* testpower.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testpower.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 001798B910743A4900F5D044 /* testpower.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testpower.c; sourceTree = ""; }; + 001798F210743BEC00F5D044 /* testresample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testresample.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 001798F910743E9200F5D044 /* testresample.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testresample.c; sourceTree = ""; }; + 0017991610743F1000F5D044 /* testsprite2.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testsprite2.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 0017991910743F5300F5D044 /* testsprite2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testsprite2.c; sourceTree = ""; }; + 0017993810743FB700F5D044 /* testwm2.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testwm2.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 0017993B10743FEF00F5D044 /* testwm2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testwm2.c; sourceTree = ""; }; + 002F341209CA1BFF00EBEB88 /* testfile.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testfile.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 002F341709CA1C5B00EBEB88 /* testfile.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = testfile.c; sourceTree = ""; }; + 002F343109CA1F0300EBEB88 /* testiconv.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testiconv.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 002F343609CA1F6F00EBEB88 /* testiconv.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = testiconv.c; sourceTree = ""; }; + 002F344D09CA1FB300EBEB88 /* testoverlay2.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testoverlay2.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 002F345209CA201C00EBEB88 /* testoverlay2.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = testoverlay2.c; sourceTree = ""; }; + 002F346A09CA204F00EBEB88 /* testplatform.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testplatform.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 002F346F09CA20A600EBEB88 /* testplatform.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = testplatform.c; sourceTree = ""; }; + 003FA63A093FFD41000C53B3 /* SDL.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = SDL.xcodeproj; path = ../SDL/SDL.xcodeproj; sourceTree = SOURCE_ROOT; }; + 00794E5D09D20839003FC8A1 /* icon.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = icon.bmp; sourceTree = ""; }; + 00794E5E09D20839003FC8A1 /* moose.dat */ = {isa = PBXFileReference; lastKnownFileType = file; path = moose.dat; sourceTree = ""; }; + 00794E5F09D20839003FC8A1 /* picture.xbm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = picture.xbm; sourceTree = ""; }; + 00794E6109D20839003FC8A1 /* sample.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = sample.bmp; sourceTree = ""; }; + 00794E6209D20839003FC8A1 /* sample.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = sample.wav; sourceTree = ""; }; + 00794E6309D20839003FC8A1 /* utf8.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = utf8.txt; sourceTree = ""; }; + 083E4872006D84C97F000001 /* loopwave.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = loopwave.c; sourceTree = ""; }; + 083E4878006D85357F000001 /* testerror.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = testerror.c; sourceTree = ""; }; + 083E487E006D86A17F000001 /* testsem.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = testsem.c; sourceTree = ""; }; + 083E4880006D86A17F000001 /* testtimer.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = testtimer.c; sourceTree = ""; }; + 083E4882006D86A17F000001 /* testver.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = testver.c; sourceTree = ""; }; + 083E4887006D86A17F000001 /* torturethread.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = torturethread.c; sourceTree = ""; }; + 092D6D10FFB30A2C7F000001 /* checkkeys.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = checkkeys.c; sourceTree = ""; }; + 092D6D58FFB311A97F000001 /* testthread.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = testthread.c; sourceTree = ""; }; + 092D6D62FFB312AA7F000001 /* testjoystick.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = testjoystick.c; sourceTree = ""; }; + 092D6D6CFFB313437F000001 /* testkeys.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = testkeys.c; sourceTree = ""; }; + 092D6D75FFB313BB7F000001 /* testlock.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = testlock.c; sourceTree = ""; }; + 4537749212091504002F0F45 /* testshape.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testshape.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 453774A4120915E3002F0F45 /* testshape.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testshape.c; sourceTree = ""; }; + 66E88E8A203B778F0004D44E /* testyuv_cvt.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = testyuv_cvt.c; sourceTree = ""; }; + AAF02FF41F90089800B9A9FB /* SDL_test_memory.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_memory.c; sourceTree = ""; }; + BBFC088E164C6820003E6A99 /* testgamecontroller.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testgamecontroller.c; sourceTree = ""; }; + BBFC08CD164C6862003E6A99 /* testgamecontroller.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testgamecontroller.app; sourceTree = BUILT_PRODUCTS_DIR; }; + BEC566B60761D90300A33029 /* checkkeys.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = checkkeys.app; sourceTree = BUILT_PRODUCTS_DIR; }; + BEC566D10761D90300A33029 /* loopwave.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = loopwave.app; sourceTree = BUILT_PRODUCTS_DIR; }; + BEC567060761D90400A33029 /* testerror.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testerror.app; sourceTree = BUILT_PRODUCTS_DIR; }; + BEC5672E0761D90400A33029 /* testthread.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testthread.app; sourceTree = BUILT_PRODUCTS_DIR; }; + BEC5673B0761D90400A33029 /* testjoystick.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testjoystick.app; sourceTree = BUILT_PRODUCTS_DIR; }; + BEC567480761D90400A33029 /* testkeys.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testkeys.app; sourceTree = BUILT_PRODUCTS_DIR; }; + BEC567550761D90400A33029 /* testlock.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testlock.app; sourceTree = BUILT_PRODUCTS_DIR; }; + BEC5677D0761D90500A33029 /* testsem.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testsem.app; sourceTree = BUILT_PRODUCTS_DIR; }; + BEC567980761D90500A33029 /* testtimer.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testtimer.app; sourceTree = BUILT_PRODUCTS_DIR; }; + BEC567B20761D90500A33029 /* testversion.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testversion.app; sourceTree = BUILT_PRODUCTS_DIR; }; + BEC567F50761D90600A33029 /* torturethread.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = torturethread.app; sourceTree = BUILT_PRODUCTS_DIR; }; + DB0F48D717CA51D2008798C5 /* testdrawchessboard.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = testdrawchessboard.c; sourceTree = ""; }; + DB0F48D817CA51D2008798C5 /* testfilesystem.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = testfilesystem.c; sourceTree = ""; }; + DB0F48EC17CA51E5008798C5 /* testdrawchessboard.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testdrawchessboard.app; sourceTree = BUILT_PRODUCTS_DIR; }; + DB0F490117CA5212008798C5 /* testfilesystem.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testfilesystem.app; sourceTree = BUILT_PRODUCTS_DIR; }; + DB166CBB16A1C74100A1396C /* testgesture.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = testgesture.c; sourceTree = ""; }; + DB166CBC16A1C74100A1396C /* testgles.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = testgles.c; sourceTree = ""; }; + DB166CBD16A1C74100A1396C /* testmessage.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = testmessage.c; sourceTree = ""; }; + DB166CBF16A1C74100A1396C /* testrelative.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = testrelative.c; sourceTree = ""; }; + DB166CC016A1C74100A1396C /* testrendercopyex.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = testrendercopyex.c; sourceTree = ""; }; + DB166CC116A1C74100A1396C /* testrendertarget.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = testrendertarget.c; sourceTree = ""; }; + DB166CC216A1C74100A1396C /* testrumble.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = testrumble.c; sourceTree = ""; }; + DB166CC316A1C74100A1396C /* testscale.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = testscale.c; sourceTree = ""; }; + DB166CC416A1C74100A1396C /* testshader.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = testshader.c; sourceTree = ""; }; + DB166CC516A1C74100A1396C /* testspriteminimal.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = testspriteminimal.c; sourceTree = ""; }; + DB166CC616A1C74100A1396C /* teststreaming.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = teststreaming.c; sourceTree = ""; }; + DB166D7F16A1D12400A1396C /* libSDL_test.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libSDL_test.a; sourceTree = BUILT_PRODUCTS_DIR; }; + DB166D8416A1D1A500A1396C /* SDL_test_assert.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_assert.c; sourceTree = ""; }; + DB166D8516A1D1A500A1396C /* SDL_test_common.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_common.c; sourceTree = ""; }; + DB166D8616A1D1A500A1396C /* SDL_test_compare.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_compare.c; sourceTree = ""; }; + DB166D8716A1D1A500A1396C /* SDL_test_crc32.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_crc32.c; sourceTree = ""; }; + DB166D8816A1D1A500A1396C /* SDL_test_font.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_font.c; sourceTree = ""; }; + DB166D8916A1D1A500A1396C /* SDL_test_fuzzer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_fuzzer.c; sourceTree = ""; }; + DB166D8A16A1D1A500A1396C /* SDL_test_harness.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_harness.c; sourceTree = ""; }; + DB166D8B16A1D1A500A1396C /* SDL_test_imageBlit.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_imageBlit.c; sourceTree = ""; }; + DB166D8C16A1D1A500A1396C /* SDL_test_imageBlitBlend.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_imageBlitBlend.c; sourceTree = ""; }; + DB166D8D16A1D1A500A1396C /* SDL_test_imageFace.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_imageFace.c; sourceTree = ""; }; + DB166D8E16A1D1A500A1396C /* SDL_test_imagePrimitives.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_imagePrimitives.c; sourceTree = ""; }; + DB166D8F16A1D1A500A1396C /* SDL_test_imagePrimitivesBlend.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_imagePrimitivesBlend.c; sourceTree = ""; }; + DB166D9016A1D1A500A1396C /* SDL_test_log.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_log.c; sourceTree = ""; }; + DB166D9116A1D1A500A1396C /* SDL_test_md5.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_md5.c; sourceTree = ""; }; + DB166D9216A1D1A500A1396C /* SDL_test_random.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_random.c; sourceTree = ""; }; + DB166DBF16A1D2F600A1396C /* testgesture.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testgesture.app; sourceTree = BUILT_PRODUCTS_DIR; }; + DB166DD516A1D36A00A1396C /* testmessage.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testmessage.app; sourceTree = BUILT_PRODUCTS_DIR; }; + DB166DEE16A1D50C00A1396C /* testrelative.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testrelative.app; sourceTree = BUILT_PRODUCTS_DIR; }; + DB166E0516A1D57C00A1396C /* testrendercopyex.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testrendercopyex.app; sourceTree = BUILT_PRODUCTS_DIR; }; + DB166E1C16A1D5AD00A1396C /* testrendertarget.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testrendertarget.app; sourceTree = BUILT_PRODUCTS_DIR; }; + DB166E3816A1D64D00A1396C /* testrumble.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testrumble.app; sourceTree = BUILT_PRODUCTS_DIR; }; + DB166E5216A1D69000A1396C /* testscale.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testscale.app; sourceTree = BUILT_PRODUCTS_DIR; }; + DB166E6816A1D6F300A1396C /* testshader.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testshader.app; sourceTree = BUILT_PRODUCTS_DIR; }; + DB166E7E16A1D78400A1396C /* testspriteminimal.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testspriteminimal.app; sourceTree = BUILT_PRODUCTS_DIR; }; + DB166E9116A1D78C00A1396C /* teststreaming.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = teststreaming.app; sourceTree = BUILT_PRODUCTS_DIR; }; + DB166ECF16A1D87000A1396C /* shapes */ = {isa = PBXFileReference; lastKnownFileType = folder; path = shapes; sourceTree = ""; }; + DB445EF818184B7000B306B0 /* testdropfile.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testdropfile.app; sourceTree = BUILT_PRODUCTS_DIR; }; + DB445EFA18184BB600B306B0 /* testdropfile.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testdropfile.c; sourceTree = ""; }; + DB89957E18A19ABA0092407C /* testhotplug.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testhotplug.app; sourceTree = BUILT_PRODUCTS_DIR; }; + DB89958318A19B130092407C /* testhotplug.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testhotplug.c; sourceTree = ""; }; + DBBC552C182831D700F3CA8D /* TestDropFile-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "TestDropFile-Info.plist"; sourceTree = SOURCE_ROOT; }; + DBEC54D11A1A811D005B1EAB /* controllermap.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = controllermap.c; sourceTree = ""; }; + DBEC54D61A1A8145005B1EAB /* axis.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = axis.bmp; sourceTree = ""; }; + DBEC54D71A1A8145005B1EAB /* button.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = button.bmp; sourceTree = ""; }; + DBEC54D81A1A8145005B1EAB /* controllermap.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = controllermap.bmp; sourceTree = ""; }; + DBEC54EA1A1A81C3005B1EAB /* controllermap.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = controllermap.app; sourceTree = BUILT_PRODUCTS_DIR; }; + F3A24A2F2B389E1D00A5162D /* testoverlay2-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "testoverlay2-Info.plist"; sourceTree = ""; }; + F3C17C6A28E3FD4400E1A26D /* config.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = config.xcconfig; sourceTree = ""; }; + F3C17C7328E40ADE00E1A26D /* testutils.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = testutils.c; sourceTree = ""; }; + F3C17C7528E40B6B00E1A26D /* controllermap_back.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = controllermap_back.bmp; sourceTree = ""; }; + F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL_uikit_main.c; path = ../src/main/uikit/SDL_uikit_main.c; sourceTree = ""; }; + F3C17CD628E416AC00E1A26D /* testgeometry.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testgeometry.c; sourceTree = ""; }; + F3C17CDC28E416CF00E1A26D /* testgeometry.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testgeometry.app; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 0017957A10741F7900F5D044 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3A249E72B389CF000A5162D /* SDL2.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0017959B107421BF00F5D044 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3A249EA2B389CFB00A5162D /* SDL2.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0017970F10742F3200F5D044 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + DB166DA316A1D1FA00A1396C /* libSDL_test.a in Frameworks */, + F3A24A082B389D8A00A5162D /* SDL2.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 00179736107430D600F5D044 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3A24A0B2B389D9B00A5162D /* SDL2.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0017975C107431B300F5D044 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + DB166DA216A1D1E900A1396C /* libSDL_test.a in Frameworks */, + F3A249ED2B389D0900A5162D /* SDL2.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0017977C107432AE00F5D044 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + DB166DA716A1D24D00A1396C /* libSDL_test.a in Frameworks */, + F3A24A142B389DC000A5162D /* SDL2.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0017979C1074334C00F5D044 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + DB166DAA16A1D27700A1396C /* libSDL_test.a in Frameworks */, + F3A24A172B389DCA00A5162D /* SDL2.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 001797BE107433C600F5D044 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3A24A202B389DEB00A5162D /* SDL2.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 001798001074355200F5D044 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3A24A292B389E0900A5162D /* SDL2.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 001798821074392D00F5D044 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3A24A2C2B389E1400A5162D /* SDL2.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 001798A3107439DF00F5D044 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3A24A362B389E4F00A5162D /* SDL2.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 001798E010743BEC00F5D044 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3A24A422B389E7C00A5162D /* SDL2.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0017990410743F1000F5D044 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + DB166DAB16A1D27C00A1396C /* libSDL_test.a in Frameworks */, + F3A249DB2B389C7A00A5162D /* SDL2.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0017992610743FB700F5D044 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + DB166DAC16A1D29000A1396C /* libSDL_test.a in Frameworks */, + F3A24A632B389EF900A5162D /* SDL2.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 002F340809CA1BFF00EBEB88 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3A249F92B389D5200A5162D /* SDL2.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 002F342709CA1F0300EBEB88 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3A24A112B389DB400A5162D /* SDL2.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 002F344309CA1FB300EBEB88 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3A24A302B389E2800A5162D /* SDL2.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 002F346009CA204F00EBEB88 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3A24A332B389E3200A5162D /* SDL2.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 4537749012091504002F0F45 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + DB166DA416A1D21700A1396C /* libSDL_test.a in Frameworks */, + F3A24A512B389EB600A5162D /* SDL2.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BBFC08BE164C6862003E6A99 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3A249FF2B389D6600A5162D /* SDL2.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BEC566B20761D90300A33029 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17C6B28E4022A00E1A26D /* libSDL_test.a in Frameworks */, + F3A249DE2B389CCA00A5162D /* SDL2.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BEC566CC0761D90300A33029 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3A249E42B389CE700A5162D /* SDL2.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BEC567020761D90300A33029 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3A249F62B389D4400A5162D /* SDL2.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BEC5672A0761D90400A33029 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3A24A5A2B389ED800A5162D /* SDL2.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BEC567370761D90400A33029 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3A24A1A2B389DD600A5162D /* SDL2.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BEC567440761D90400A33029 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3A24A1D2B389DE100A5162D /* SDL2.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BEC567510761D90400A33029 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3A24A232B389DF500A5162D /* SDL2.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BEC567790761D90500A33029 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3A24A4B2B389E9C00A5162D /* SDL2.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BEC567940761D90500A33029 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3A24A5D2B389EE200A5162D /* SDL2.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BEC567AE0761D90500A33029 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3A24A602B389EED00A5162D /* SDL2.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BEC567F10761D90600A33029 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3A24A662B389F0400A5162D /* SDL2.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB0F48DC17CA51E5008798C5 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3A249F02B389D3100A5162D /* SDL2.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB0F48F217CA5212008798C5 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3A249FC2B389D5B00A5162D /* SDL2.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166D7C16A1D12400A1396C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166DB016A1D2F600A1396C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17C7A28E40CA600E1A26D /* libSDL_test.a in Frameworks */, + F3A24A052B389D7C00A5162D /* SDL2.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166DC716A1D36A00A1396C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3A24A262B389DFF00A5162D /* SDL2.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166DDF16A1D50C00A1396C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + DB166DEA16A1D50C00A1396C /* libSDL_test.a in Frameworks */, + F3A24A392B389E5D00A5162D /* SDL2.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166DF616A1D57C00A1396C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + DB166E0116A1D57C00A1396C /* libSDL_test.a in Frameworks */, + F3A24A3C2B389E6600A5162D /* SDL2.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166E0D16A1D5AD00A1396C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + DB166E1816A1D5AD00A1396C /* libSDL_test.a in Frameworks */, + F3A24A3F2B389E7200A5162D /* SDL2.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166E2A16A1D64D00A1396C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3A24A452B389E8700A5162D /* SDL2.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166E4016A1D69000A1396C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + DB166E4B16A1D69000A1396C /* libSDL_test.a in Frameworks */, + F3A24A482B389E9100A5162D /* SDL2.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166E5A16A1D6F300A1396C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3A24A4E2B389EA500A5162D /* SDL2.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166E7016A1D78400A1396C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3A24A542B389EC200A5162D /* SDL2.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166E8316A1D78C00A1396C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3A24A572B389ECD00A5162D /* SDL2.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB445EE918184B7000B306B0 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + DB445EF418184B7000B306B0 /* libSDL_test.a in Frameworks */, + F3A249F32B389D3B00A5162D /* SDL2.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB89957018A19ABA0092407C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3A24A0E2B389DA800A5162D /* SDL2.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DBEC54DC1A1A81C3005B1EAB /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3A249E12B389CDB00A5162D /* SDL2.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F3C17CD928E416CF00E1A26D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17CED28E417F400E1A26D /* libSDL_test.a in Frameworks */, + F3A24A022B389D6F00A5162D /* SDL2.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 003FA63B093FFD41000C53B3 /* Products */ = { + isa = PBXGroup; + children = ( + 003FA643093FFD41000C53B3 /* SDL2.framework */, + F3C17C5D28E3FB2900E1A26D /* SDL2.framework */, + F3C17C5F28E3FB2900E1A26D /* SDL2.framework */, + F3C17C6128E3FB2900E1A26D /* SDL2.framework */, + 003FA645093FFD41000C53B3 /* libSDL2.a */, + F3C17C6328E3FB2900E1A26D /* libSDL2.a */, + F3C17C6528E3FB2900E1A26D /* libSDL2.a */, + DB1D40D717B3F30D00D74CFC /* libSDL2.dylib */, + F3C17C6728E3FB2900E1A26D /* libSDL2.dylib */, + F3C17C6928E3FB2900E1A26D /* libSDL2.dylib */, + 003FA649093FFD41000C53B3 /* SDL2 */, + ); + name = Products; + sourceTree = ""; + }; + 00794E4609D207B4003FC8A1 /* Resources */ = { + isa = PBXGroup; + children = ( + DBEC54D61A1A8145005B1EAB /* axis.bmp */, + DBEC54D71A1A8145005B1EAB /* button.bmp */, + F3C17C7528E40B6B00E1A26D /* controllermap_back.bmp */, + DBEC54D81A1A8145005B1EAB /* controllermap.bmp */, + 00794E5D09D20839003FC8A1 /* icon.bmp */, + 00794E5E09D20839003FC8A1 /* moose.dat */, + 00794E5F09D20839003FC8A1 /* picture.xbm */, + 00794E6109D20839003FC8A1 /* sample.bmp */, + 00794E6209D20839003FC8A1 /* sample.wav */, + DB166ECF16A1D87000A1396C /* shapes */, + DBBC552C182831D700F3CA8D /* TestDropFile-Info.plist */, + 00794E6309D20839003FC8A1 /* utf8.txt */, + ); + name = Resources; + path = ../../test; + sourceTree = ""; + }; + 08FB7794FE84155DC02AAC07 /* SDLTest */ = { + isa = PBXGroup; + children = ( + F3A24A2F2B389E1D00A5162D /* testoverlay2-Info.plist */, + F3C17C6A28E3FD4400E1A26D /* config.xcconfig */, + 003FA63A093FFD41000C53B3 /* SDL.xcodeproj */, + 08FB7795FE84155DC02AAC07 /* Source */, + DB166D8316A1D17E00A1396C /* SDL_Test */, + 00794E4609D207B4003FC8A1 /* Resources */, + 1AB674ADFE9D54B511CA2CBB /* Products */, + F3A249CF2B389C7A00A5162D /* Frameworks */, + ); + comments = "I made these tests link against our \"default\" framework which includes X11 stuff. If you didn't install the X11 headers with Xcode, you might have problems building the SDL.framework (which is a dependency). You can swap the dependencies around to get around this, or you can modify the default SDL.framework target to not include X11 stuff. (Go into its target build options and remove all the Preprocessor macros.)\n\n\n\nWe are sort of in a half-way state at the moment. Going \"all-the-way\" means we copy the SDL.framework inside the app bundle so we can run the test without the step of the user \"installing\" the framework. But there is an oversight/bug in Xcode that doesn't correctly find the location of the framework when in an embedded/nested Xcode project. We could probably try to hack this with a shell script that checks multiple directories for existence, but this is messier and more work than I prefer, so I rather just wait for Apple to fix this. In the meantime...\n\nThe \"All\" target will build the SDL framework from the Xcode project. The other targets do not have this dependency set (for flexibility reasons in case we make changes). If you have not built the framework, you will probably be unable to link. You will either need to build the framework, or you need to add \"-framework SDL\" to the link options and make sure you have the SDL.framework installed somewhere where it can be seen (like /Library/Frameworks...I think we already set this one up.) \n\nTo run though, you should have a copy of the SDL.framework in /Library/Frameworks or ~/Library/Frameworks.\n\n\n\n\ntestgl and testdyngl need -DHAVE_OPENGL\ntestgl needs to link against OpenGL.framework\n\n"; + name = SDLTest; + sourceTree = ""; + }; + 08FB7795FE84155DC02AAC07 /* Source */ = { + isa = PBXGroup; + children = ( + F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */, + 092D6D10FFB30A2C7F000001 /* checkkeys.c */, + DBEC54D11A1A811D005B1EAB /* controllermap.c */, + 083E4872006D84C97F000001 /* loopwave.c */, + 0017958F1074216E00F5D044 /* testatomic.c */, + 001795B01074222D00F5D044 /* testaudioinfo.c */, + 001797711074320D00F5D044 /* testdraw2.c */, + DB0F48D717CA51D2008798C5 /* testdrawchessboard.c */, + DB445EFA18184BB600B306B0 /* testdropfile.c */, + 083E4878006D85357F000001 /* testerror.c */, + 002F341709CA1C5B00EBEB88 /* testfile.c */, + DB0F48D817CA51D2008798C5 /* testfilesystem.c */, + BBFC088E164C6820003E6A99 /* testgamecontroller.c */, + F3C17CD628E416AC00E1A26D /* testgeometry.c */, + DB166CBB16A1C74100A1396C /* testgesture.c */, + 0017972710742FB900F5D044 /* testgl2.c */, + DB166CBC16A1C74100A1396C /* testgles.c */, + 0017974E1074315700F5D044 /* testhaptic.c */, + DB89958318A19B130092407C /* testhotplug.c */, + 002F343609CA1F6F00EBEB88 /* testiconv.c */, + 00179791107432FA00F5D044 /* testime.c */, + 001797B31074339C00F5D044 /* testintersections.c */, + 092D6D62FFB312AA7F000001 /* testjoystick.c */, + 092D6D6CFFB313437F000001 /* testkeys.c */, + 001797D31074343E00F5D044 /* testloadso.c */, + 092D6D75FFB313BB7F000001 /* testlock.c */, + DB166CBD16A1C74100A1396C /* testmessage.c */, + 001798151074359B00F5D044 /* testmultiaudio.c */, + 0017985A107436ED00F5D044 /* testnative.c */, + 0017985B107436ED00F5D044 /* testnative.h */, + 0017985C107436ED00F5D044 /* testnativecocoa.m */, + 00179872107438D000F5D044 /* testnativex11.c */, + 002F345209CA201C00EBEB88 /* testoverlay2.c */, + 002F346F09CA20A600EBEB88 /* testplatform.c */, + 001798B910743A4900F5D044 /* testpower.c */, + DB166CBF16A1C74100A1396C /* testrelative.c */, + DB166CC016A1C74100A1396C /* testrendercopyex.c */, + DB166CC116A1C74100A1396C /* testrendertarget.c */, + 001798F910743E9200F5D044 /* testresample.c */, + DB166CC216A1C74100A1396C /* testrumble.c */, + DB166CC316A1C74100A1396C /* testscale.c */, + 083E487E006D86A17F000001 /* testsem.c */, + DB166CC416A1C74100A1396C /* testshader.c */, + 453774A4120915E3002F0F45 /* testshape.c */, + 0017991910743F5300F5D044 /* testsprite2.c */, + DB166CC516A1C74100A1396C /* testspriteminimal.c */, + DB166CC616A1C74100A1396C /* teststreaming.c */, + 092D6D58FFB311A97F000001 /* testthread.c */, + 083E4880006D86A17F000001 /* testtimer.c */, + F3C17C7328E40ADE00E1A26D /* testutils.c */, + 083E4882006D86A17F000001 /* testver.c */, + 0017993B10743FEF00F5D044 /* testwm2.c */, + 66E88E8A203B778F0004D44E /* testyuv_cvt.c */, + 083E4887006D86A17F000001 /* torturethread.c */, + ); + name = Source; + path = ../../test; + sourceTree = ""; + }; + 1AB674ADFE9D54B511CA2CBB /* Products */ = { + isa = PBXGroup; + children = ( + BEC566B60761D90300A33029 /* checkkeys.app */, + BEC566D10761D90300A33029 /* loopwave.app */, + BEC567060761D90400A33029 /* testerror.app */, + BEC5672E0761D90400A33029 /* testthread.app */, + BEC5673B0761D90400A33029 /* testjoystick.app */, + BEC567480761D90400A33029 /* testkeys.app */, + BEC567550761D90400A33029 /* testlock.app */, + BEC5677D0761D90500A33029 /* testsem.app */, + BEC567980761D90500A33029 /* testtimer.app */, + BEC567B20761D90500A33029 /* testversion.app */, + BEC567F50761D90600A33029 /* torturethread.app */, + 002F341209CA1BFF00EBEB88 /* testfile.app */, + 002F343109CA1F0300EBEB88 /* testiconv.app */, + 002F344D09CA1FB300EBEB88 /* testoverlay2.app */, + 002F346A09CA204F00EBEB88 /* testplatform.app */, + 0017958C10741F7900F5D044 /* testatomic.app */, + 001795AD107421BF00F5D044 /* testaudioinfo.app */, + 0017972110742F3200F5D044 /* testgl2.app */, + 00179748107430D600F5D044 /* testhaptic.app */, + 0017976E107431B300F5D044 /* testdraw2.app */, + 0017978E107432AE00F5D044 /* testime.app */, + 001797AE1074334C00F5D044 /* testintersections.app */, + 001797D0107433C600F5D044 /* testloadso.app */, + 001798121074355200F5D044 /* testmultiaudio.app */, + 001798941074392D00F5D044 /* testnative.app */, + 001798B5107439DF00F5D044 /* testpower.app */, + 001798F210743BEC00F5D044 /* testresample.app */, + 0017991610743F1000F5D044 /* testsprite2.app */, + 0017993810743FB700F5D044 /* testwm2.app */, + 4537749212091504002F0F45 /* testshape.app */, + BBFC08CD164C6862003E6A99 /* testgamecontroller.app */, + DB166D7F16A1D12400A1396C /* libSDL_test.a */, + DB166DBF16A1D2F600A1396C /* testgesture.app */, + DB166DD516A1D36A00A1396C /* testmessage.app */, + DB166DEE16A1D50C00A1396C /* testrelative.app */, + DB166E0516A1D57C00A1396C /* testrendercopyex.app */, + DB166E1C16A1D5AD00A1396C /* testrendertarget.app */, + DB166E3816A1D64D00A1396C /* testrumble.app */, + DB166E5216A1D69000A1396C /* testscale.app */, + DB166E6816A1D6F300A1396C /* testshader.app */, + DB166E7E16A1D78400A1396C /* testspriteminimal.app */, + DB166E9116A1D78C00A1396C /* teststreaming.app */, + DB0F48EC17CA51E5008798C5 /* testdrawchessboard.app */, + DB0F490117CA5212008798C5 /* testfilesystem.app */, + DB89957E18A19ABA0092407C /* testhotplug.app */, + DB445EF818184B7000B306B0 /* testdropfile.app */, + DBEC54EA1A1A81C3005B1EAB /* controllermap.app */, + F3C17CDC28E416CF00E1A26D /* testgeometry.app */, + ); + name = Products; + sourceTree = ""; + }; + DB166D8316A1D17E00A1396C /* SDL_Test */ = { + isa = PBXGroup; + children = ( + DB166D8416A1D1A500A1396C /* SDL_test_assert.c */, + DB166D8516A1D1A500A1396C /* SDL_test_common.c */, + DB166D8616A1D1A500A1396C /* SDL_test_compare.c */, + DB166D8716A1D1A500A1396C /* SDL_test_crc32.c */, + DB166D8816A1D1A500A1396C /* SDL_test_font.c */, + DB166D8916A1D1A500A1396C /* SDL_test_fuzzer.c */, + DB166D8A16A1D1A500A1396C /* SDL_test_harness.c */, + DB166D8B16A1D1A500A1396C /* SDL_test_imageBlit.c */, + DB166D8C16A1D1A500A1396C /* SDL_test_imageBlitBlend.c */, + DB166D8D16A1D1A500A1396C /* SDL_test_imageFace.c */, + DB166D8E16A1D1A500A1396C /* SDL_test_imagePrimitives.c */, + DB166D8F16A1D1A500A1396C /* SDL_test_imagePrimitivesBlend.c */, + DB166D9016A1D1A500A1396C /* SDL_test_log.c */, + DB166D9116A1D1A500A1396C /* SDL_test_md5.c */, + AAF02FF41F90089800B9A9FB /* SDL_test_memory.c */, + DB166D9216A1D1A500A1396C /* SDL_test_random.c */, + ); + name = SDL_Test; + path = ../../src/test; + sourceTree = ""; + }; + F3A249CF2B389C7A00A5162D /* Frameworks */ = { + isa = PBXGroup; + children = ( + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + DB166D7D16A1D12400A1396C /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 0017957410741F7900F5D044 /* testatomic */ = { + isa = PBXNativeTarget; + buildConfigurationList = 0017958610741F7900F5D044 /* Build configuration list for PBXNativeTarget "testatomic" */; + buildPhases = ( + 0017957910741F7900F5D044 /* Sources */, + 0017957A10741F7900F5D044 /* Frameworks */, + F3A249E92B389CF000A5162D /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testatomic; + productName = testalpha; + productReference = 0017958C10741F7900F5D044 /* testatomic.app */; + productType = "com.apple.product-type.application"; + }; + 00179595107421BF00F5D044 /* testaudioinfo */ = { + isa = PBXNativeTarget; + buildConfigurationList = 001795A7107421BF00F5D044 /* Build configuration list for PBXNativeTarget "testaudioinfo" */; + buildPhases = ( + 0017959A107421BF00F5D044 /* Sources */, + 0017959B107421BF00F5D044 /* Frameworks */, + F3A249EC2B389CFB00A5162D /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testaudioinfo; + productName = testalpha; + productReference = 001795AD107421BF00F5D044 /* testaudioinfo.app */; + productType = "com.apple.product-type.application"; + }; + 0017970910742F3200F5D044 /* testgl2 */ = { + isa = PBXNativeTarget; + buildConfigurationList = 0017971B10742F3200F5D044 /* Build configuration list for PBXNativeTarget "testgl2" */; + buildPhases = ( + 0017970E10742F3200F5D044 /* Sources */, + 0017970F10742F3200F5D044 /* Frameworks */, + F3A24A0A2B389D8A00A5162D /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testgl2; + productName = testalpha; + productReference = 0017972110742F3200F5D044 /* testgl2.app */; + productType = "com.apple.product-type.application"; + }; + 00179730107430D600F5D044 /* testhaptic */ = { + isa = PBXNativeTarget; + buildConfigurationList = 00179742107430D600F5D044 /* Build configuration list for PBXNativeTarget "testhaptic" */; + buildPhases = ( + 00179735107430D600F5D044 /* Sources */, + 00179736107430D600F5D044 /* Frameworks */, + F3A24A0D2B389D9B00A5162D /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testhaptic; + productName = testalpha; + productReference = 00179748107430D600F5D044 /* testhaptic.app */; + productType = "com.apple.product-type.application"; + }; + 00179756107431B300F5D044 /* testdraw2 */ = { + isa = PBXNativeTarget; + buildConfigurationList = 00179768107431B300F5D044 /* Build configuration list for PBXNativeTarget "testdraw2" */; + buildPhases = ( + 0017975B107431B300F5D044 /* Sources */, + 0017975C107431B300F5D044 /* Frameworks */, + F3A249EF2B389D0900A5162D /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testdraw2; + productName = testalpha; + productReference = 0017976E107431B300F5D044 /* testdraw2.app */; + productType = "com.apple.product-type.application"; + }; + 00179776107432AE00F5D044 /* testime */ = { + isa = PBXNativeTarget; + buildConfigurationList = 00179788107432AE00F5D044 /* Build configuration list for PBXNativeTarget "testime" */; + buildPhases = ( + 0017977B107432AE00F5D044 /* Sources */, + 0017977C107432AE00F5D044 /* Frameworks */, + F3A24A162B389DC000A5162D /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testime; + productName = testalpha; + productReference = 0017978E107432AE00F5D044 /* testime.app */; + productType = "com.apple.product-type.application"; + }; + 001797961074334C00F5D044 /* testintersections */ = { + isa = PBXNativeTarget; + buildConfigurationList = 001797A81074334C00F5D044 /* Build configuration list for PBXNativeTarget "testintersections" */; + buildPhases = ( + 0017979B1074334C00F5D044 /* Sources */, + 0017979C1074334C00F5D044 /* Frameworks */, + F3A24A192B389DCA00A5162D /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testintersections; + productName = testalpha; + productReference = 001797AE1074334C00F5D044 /* testintersections.app */; + productType = "com.apple.product-type.application"; + }; + 001797B8107433C600F5D044 /* testloadso */ = { + isa = PBXNativeTarget; + buildConfigurationList = 001797CA107433C600F5D044 /* Build configuration list for PBXNativeTarget "testloadso" */; + buildPhases = ( + 001797BD107433C600F5D044 /* Sources */, + 001797BE107433C600F5D044 /* Frameworks */, + F3A24A222B389DEB00A5162D /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testloadso; + productName = testalpha; + productReference = 001797D0107433C600F5D044 /* testloadso.app */; + productType = "com.apple.product-type.application"; + }; + 001797FA1074355200F5D044 /* testmultiaudio */ = { + isa = PBXNativeTarget; + buildConfigurationList = 0017980C1074355200F5D044 /* Build configuration list for PBXNativeTarget "testmultiaudio" */; + buildPhases = ( + 001797FF1074355200F5D044 /* Sources */, + 001798001074355200F5D044 /* Frameworks */, + F3C17D3828E424B100E1A26D /* Resources */, + F3A24A2B2B389E0900A5162D /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testmultiaudio; + productName = testalpha; + productReference = 001798121074355200F5D044 /* testmultiaudio.app */; + productType = "com.apple.product-type.application"; + }; + 001798781074392D00F5D044 /* testnative */ = { + isa = PBXNativeTarget; + buildConfigurationList = 0017988E1074392D00F5D044 /* Build configuration list for PBXNativeTarget "testnative" */; + buildPhases = ( + 0017987E1074392D00F5D044 /* Sources */, + 001798821074392D00F5D044 /* Frameworks */, + DB166DDA16A1D40F00A1396C /* CopyFiles */, + F3A24A2E2B389E1500A5162D /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testnative; + productName = testalpha; + productReference = 001798941074392D00F5D044 /* testnative.app */; + productType = "com.apple.product-type.application"; + }; + 0017989D107439DF00F5D044 /* testpower */ = { + isa = PBXNativeTarget; + buildConfigurationList = 001798AF107439DF00F5D044 /* Build configuration list for PBXNativeTarget "testpower" */; + buildPhases = ( + 001798A2107439DF00F5D044 /* Sources */, + 001798A3107439DF00F5D044 /* Frameworks */, + F3A24A382B389E4F00A5162D /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testpower; + productName = testalpha; + productReference = 001798B5107439DF00F5D044 /* testpower.app */; + productType = "com.apple.product-type.application"; + }; + 001798DA10743BEC00F5D044 /* testresample */ = { + isa = PBXNativeTarget; + buildConfigurationList = 001798EC10743BEC00F5D044 /* Build configuration list for PBXNativeTarget "testresample" */; + buildPhases = ( + 001798DF10743BEC00F5D044 /* Sources */, + 001798E010743BEC00F5D044 /* Frameworks */, + F3A24A442B389E7C00A5162D /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testresample; + productName = testalpha; + productReference = 001798F210743BEC00F5D044 /* testresample.app */; + productType = "com.apple.product-type.application"; + }; + 001798FE10743F1000F5D044 /* testsprite2 */ = { + isa = PBXNativeTarget; + buildConfigurationList = 0017991010743F1000F5D044 /* Build configuration list for PBXNativeTarget "testsprite2" */; + buildPhases = ( + 0017990310743F1000F5D044 /* Sources */, + 0017990410743F1000F5D044 /* Frameworks */, + F3C17D3A28E4252200E1A26D /* Resources */, + F3A249DD2B389C7A00A5162D /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testsprite2; + productName = testalpha; + productReference = 0017991610743F1000F5D044 /* testsprite2.app */; + productType = "com.apple.product-type.application"; + }; + 0017992010743FB700F5D044 /* testwm2 */ = { + isa = PBXNativeTarget; + buildConfigurationList = 0017993210743FB700F5D044 /* Build configuration list for PBXNativeTarget "testwm2" */; + buildPhases = ( + 0017992510743FB700F5D044 /* Sources */, + 0017992610743FB700F5D044 /* Frameworks */, + F3A24A652B389EF900A5162D /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testwm2; + productName = testalpha; + productReference = 0017993810743FB700F5D044 /* testwm2.app */; + productType = "com.apple.product-type.application"; + }; + 002F340109CA1BFF00EBEB88 /* testfile */ = { + isa = PBXNativeTarget; + buildConfigurationList = 002F340E09CA1BFF00EBEB88 /* Build configuration list for PBXNativeTarget "testfile" */; + buildPhases = ( + 002F340709CA1BFF00EBEB88 /* Sources */, + 002F340809CA1BFF00EBEB88 /* Frameworks */, + F3A249FB2B389D5200A5162D /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testfile; + productName = testalpha; + productReference = 002F341209CA1BFF00EBEB88 /* testfile.app */; + productType = "com.apple.product-type.application"; + }; + 002F342009CA1F0300EBEB88 /* testiconv */ = { + isa = PBXNativeTarget; + buildConfigurationList = 002F342D09CA1F0300EBEB88 /* Build configuration list for PBXNativeTarget "testiconv" */; + buildPhases = ( + 002F342609CA1F0300EBEB88 /* Sources */, + 002F342709CA1F0300EBEB88 /* Frameworks */, + 00794EEC09D2371F003FC8A1 /* CopyFiles */, + F3A24A132B389DB400A5162D /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testiconv; + productName = testalpha; + productReference = 002F343109CA1F0300EBEB88 /* testiconv.app */; + productType = "com.apple.product-type.application"; + }; + 002F343C09CA1FB300EBEB88 /* testoverlay2 */ = { + isa = PBXNativeTarget; + buildConfigurationList = 002F344909CA1FB300EBEB88 /* Build configuration list for PBXNativeTarget "testoverlay2" */; + buildPhases = ( + 002F344209CA1FB300EBEB88 /* Sources */, + 002F344309CA1FB300EBEB88 /* Frameworks */, + 00794EF409D237C7003FC8A1 /* CopyFiles */, + F3A24A322B389E2800A5162D /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testoverlay2; + productName = testalpha; + productReference = 002F344D09CA1FB300EBEB88 /* testoverlay2.app */; + productType = "com.apple.product-type.application"; + }; + 002F345909CA204F00EBEB88 /* testplatform */ = { + isa = PBXNativeTarget; + buildConfigurationList = 002F346609CA204F00EBEB88 /* Build configuration list for PBXNativeTarget "testplatform" */; + buildPhases = ( + 002F345F09CA204F00EBEB88 /* Sources */, + 002F346009CA204F00EBEB88 /* Frameworks */, + F3A24A352B389E3200A5162D /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testplatform; + productName = testalpha; + productReference = 002F346A09CA204F00EBEB88 /* testplatform.app */; + productType = "com.apple.product-type.application"; + }; + 4537749112091504002F0F45 /* testshape */ = { + isa = PBXNativeTarget; + buildConfigurationList = 4537749A1209150C002F0F45 /* Build configuration list for PBXNativeTarget "testshape" */; + buildPhases = ( + 4537748F12091504002F0F45 /* Sources */, + 4537749012091504002F0F45 /* Frameworks */, + DB166ECE16A1D85400A1396C /* CopyFiles */, + F3A24A532B389EB600A5162D /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testshape; + productName = testshape; + productReference = 4537749212091504002F0F45 /* testshape.app */; + productType = "com.apple.product-type.application"; + }; + BBFC08B7164C6862003E6A99 /* testgamecontroller */ = { + isa = PBXNativeTarget; + buildConfigurationList = BBFC08CA164C6862003E6A99 /* Build configuration list for PBXNativeTarget "testgamecontroller" */; + buildPhases = ( + BBFC08BC164C6862003E6A99 /* Sources */, + BBFC08BE164C6862003E6A99 /* Frameworks */, + F3C17D3528E4242100E1A26D /* Resources */, + F3A24A012B389D6600A5162D /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testgamecontroller; + productName = testjoystick; + productReference = BBFC08CD164C6862003E6A99 /* testgamecontroller.app */; + productType = "com.apple.product-type.application"; + }; + BEC566AB0761D90300A33029 /* checkkeys */ = { + isa = PBXNativeTarget; + buildConfigurationList = 001B593808BDB826006539E9 /* Build configuration list for PBXNativeTarget "checkkeys" */; + buildPhases = ( + BEC566B00761D90300A33029 /* Sources */, + BEC566B20761D90300A33029 /* Frameworks */, + F3A249E02B389CCA00A5162D /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = checkkeys; + productName = checkkeys; + productReference = BEC566B60761D90300A33029 /* checkkeys.app */; + productType = "com.apple.product-type.application"; + }; + BEC566C50761D90300A33029 /* loopwave */ = { + isa = PBXNativeTarget; + buildConfigurationList = 001B594008BDB826006539E9 /* Build configuration list for PBXNativeTarget "loopwave" */; + buildPhases = ( + BEC566CA0761D90300A33029 /* Sources */, + BEC566CC0761D90300A33029 /* Frameworks */, + 00794E6409D2084F003FC8A1 /* CopyFiles */, + F3A249E62B389CE700A5162D /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = loopwave; + productName = loopwave; + productReference = BEC566D10761D90300A33029 /* loopwave.app */; + productType = "com.apple.product-type.application"; + }; + BEC566FB0761D90300A33029 /* testerror */ = { + isa = PBXNativeTarget; + buildConfigurationList = 001B595008BDB826006539E9 /* Build configuration list for PBXNativeTarget "testerror" */; + buildPhases = ( + BEC567000761D90300A33029 /* Sources */, + BEC567020761D90300A33029 /* Frameworks */, + F3A249F82B389D4400A5162D /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testerror; + productName = testerror; + productReference = BEC567060761D90400A33029 /* testerror.app */; + productType = "com.apple.product-type.application"; + }; + BEC567230761D90400A33029 /* testthread */ = { + isa = PBXNativeTarget; + buildConfigurationList = 001B595C08BDB826006539E9 /* Build configuration list for PBXNativeTarget "testthread" */; + buildPhases = ( + BEC567280761D90400A33029 /* Sources */, + BEC5672A0761D90400A33029 /* Frameworks */, + F3A24A5C2B389ED800A5162D /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testthread; + productName = testthread; + productReference = BEC5672E0761D90400A33029 /* testthread.app */; + productType = "com.apple.product-type.application"; + }; + BEC567300761D90400A33029 /* testjoystick */ = { + isa = PBXNativeTarget; + buildConfigurationList = 001B596008BDB826006539E9 /* Build configuration list for PBXNativeTarget "testjoystick" */; + buildPhases = ( + BEC567350761D90400A33029 /* Sources */, + BEC567370761D90400A33029 /* Frameworks */, + F3A24A1C2B389DD600A5162D /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testjoystick; + productName = testjoystick; + productReference = BEC5673B0761D90400A33029 /* testjoystick.app */; + productType = "com.apple.product-type.application"; + }; + BEC5673D0761D90400A33029 /* testkeys */ = { + isa = PBXNativeTarget; + buildConfigurationList = 001B596408BDB826006539E9 /* Build configuration list for PBXNativeTarget "testkeys" */; + buildPhases = ( + BEC567420761D90400A33029 /* Sources */, + BEC567440761D90400A33029 /* Frameworks */, + F3A24A1F2B389DE100A5162D /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testkeys; + productName = testkeys; + productReference = BEC567480761D90400A33029 /* testkeys.app */; + productType = "com.apple.product-type.application"; + }; + BEC5674A0761D90400A33029 /* testlock */ = { + isa = PBXNativeTarget; + buildConfigurationList = 001B596808BDB826006539E9 /* Build configuration list for PBXNativeTarget "testlock" */; + buildPhases = ( + BEC5674F0761D90400A33029 /* Sources */, + BEC567510761D90400A33029 /* Frameworks */, + F3A24A252B389DF500A5162D /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testlock; + productName = testlock; + productReference = BEC567550761D90400A33029 /* testlock.app */; + productType = "com.apple.product-type.application"; + }; + BEC567720761D90500A33029 /* testsem */ = { + isa = PBXNativeTarget; + buildConfigurationList = 001B597008BDB826006539E9 /* Build configuration list for PBXNativeTarget "testsem" */; + buildPhases = ( + BEC567770761D90500A33029 /* Sources */, + BEC567790761D90500A33029 /* Frameworks */, + F3A24A4D2B389E9C00A5162D /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testsem; + productName = testsem; + productReference = BEC5677D0761D90500A33029 /* testsem.app */; + productType = "com.apple.product-type.application"; + }; + BEC5678D0761D90500A33029 /* testtimer */ = { + isa = PBXNativeTarget; + buildConfigurationList = 001B597808BDB826006539E9 /* Build configuration list for PBXNativeTarget "testtimer" */; + buildPhases = ( + BEC567920761D90500A33029 /* Sources */, + BEC567940761D90500A33029 /* Frameworks */, + F3A24A5F2B389EE200A5162D /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testtimer; + productName = testtimer; + productReference = BEC567980761D90500A33029 /* testtimer.app */; + productType = "com.apple.product-type.application"; + }; + BEC567A70761D90500A33029 /* testversion */ = { + isa = PBXNativeTarget; + buildConfigurationList = 001B598008BDB826006539E9 /* Build configuration list for PBXNativeTarget "testversion" */; + buildPhases = ( + BEC567AC0761D90500A33029 /* Sources */, + BEC567AE0761D90500A33029 /* Frameworks */, + F3A24A622B389EED00A5162D /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testversion; + productName = testversion; + productReference = BEC567B20761D90500A33029 /* testversion.app */; + productType = "com.apple.product-type.application"; + }; + BEC567EA0761D90600A33029 /* torturethread */ = { + isa = PBXNativeTarget; + buildConfigurationList = 001B599408BDB826006539E9 /* Build configuration list for PBXNativeTarget "torturethread" */; + buildPhases = ( + BEC567EF0761D90600A33029 /* Sources */, + BEC567F10761D90600A33029 /* Frameworks */, + F3A24A682B389F0400A5162D /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = torturethread; + productName = torturethread; + productReference = BEC567F50761D90600A33029 /* torturethread.app */; + productType = "com.apple.product-type.application"; + }; + DB0F48D917CA51E5008798C5 /* testdrawchessboard */ = { + isa = PBXNativeTarget; + buildConfigurationList = DB0F48E917CA51E5008798C5 /* Build configuration list for PBXNativeTarget "testdrawchessboard" */; + buildPhases = ( + DB0F48DA17CA51E5008798C5 /* Sources */, + DB0F48DC17CA51E5008798C5 /* Frameworks */, + F3A249F22B389D3100A5162D /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testdrawchessboard; + productName = testalpha; + productReference = DB0F48EC17CA51E5008798C5 /* testdrawchessboard.app */; + productType = "com.apple.product-type.application"; + }; + DB0F48EF17CA5212008798C5 /* testfilesystem */ = { + isa = PBXNativeTarget; + buildConfigurationList = DB0F48FE17CA5212008798C5 /* Build configuration list for PBXNativeTarget "testfilesystem" */; + buildPhases = ( + DB0F48F017CA5212008798C5 /* Sources */, + DB0F48F217CA5212008798C5 /* Frameworks */, + F3A249FE2B389D5B00A5162D /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testfilesystem; + productName = testalpha; + productReference = DB0F490117CA5212008798C5 /* testfilesystem.app */; + productType = "com.apple.product-type.application"; + }; + DB166D7E16A1D12400A1396C /* SDL_test */ = { + isa = PBXNativeTarget; + buildConfigurationList = DB166D8016A1D12400A1396C /* Build configuration list for PBXNativeTarget "SDL_test" */; + buildPhases = ( + DB166D7B16A1D12400A1396C /* Sources */, + DB166D7C16A1D12400A1396C /* Frameworks */, + DB166D7D16A1D12400A1396C /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = SDL_test; + productName = SDL_test; + productReference = DB166D7F16A1D12400A1396C /* libSDL_test.a */; + productType = "com.apple.product-type.library.static"; + }; + DB166DAD16A1D2F600A1396C /* testgesture */ = { + isa = PBXNativeTarget; + buildConfigurationList = DB166DBC16A1D2F600A1396C /* Build configuration list for PBXNativeTarget "testgesture" */; + buildPhases = ( + DB166DAE16A1D2F600A1396C /* Sources */, + DB166DB016A1D2F600A1396C /* Frameworks */, + F3A24A072B389D7C00A5162D /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testgesture; + productName = testalpha; + productReference = DB166DBF16A1D2F600A1396C /* testgesture.app */; + productType = "com.apple.product-type.application"; + }; + DB166DC416A1D36A00A1396C /* testmessage */ = { + isa = PBXNativeTarget; + buildConfigurationList = DB166DD216A1D36A00A1396C /* Build configuration list for PBXNativeTarget "testmessage" */; + buildPhases = ( + DB166DC516A1D36A00A1396C /* Sources */, + DB166DC716A1D36A00A1396C /* Frameworks */, + F3A24A282B389E0000A5162D /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testmessage; + productName = testalpha; + productReference = DB166DD516A1D36A00A1396C /* testmessage.app */; + productType = "com.apple.product-type.application"; + }; + DB166DDC16A1D50C00A1396C /* testrelative */ = { + isa = PBXNativeTarget; + buildConfigurationList = DB166DEB16A1D50C00A1396C /* Build configuration list for PBXNativeTarget "testrelative" */; + buildPhases = ( + DB166DDD16A1D50C00A1396C /* Sources */, + DB166DDF16A1D50C00A1396C /* Frameworks */, + F3A24A3B2B389E5D00A5162D /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testrelative; + productName = testalpha; + productReference = DB166DEE16A1D50C00A1396C /* testrelative.app */; + productType = "com.apple.product-type.application"; + }; + DB166DF316A1D57C00A1396C /* testrendercopyex */ = { + isa = PBXNativeTarget; + buildConfigurationList = DB166E0216A1D57C00A1396C /* Build configuration list for PBXNativeTarget "testrendercopyex" */; + buildPhases = ( + DB166DF416A1D57C00A1396C /* Sources */, + DB166DF616A1D57C00A1396C /* Frameworks */, + DB166E2116A1D5DF00A1396C /* CopyFiles */, + F3A24A3E2B389E6600A5162D /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testrendercopyex; + productName = testalpha; + productReference = DB166E0516A1D57C00A1396C /* testrendercopyex.app */; + productType = "com.apple.product-type.application"; + }; + DB166E0A16A1D5AD00A1396C /* testrendertarget */ = { + isa = PBXNativeTarget; + buildConfigurationList = DB166E1916A1D5AD00A1396C /* Build configuration list for PBXNativeTarget "testrendertarget" */; + buildPhases = ( + DB166E0B16A1D5AD00A1396C /* Sources */, + DB166E0D16A1D5AD00A1396C /* Frameworks */, + DB166E2416A1D61000A1396C /* CopyFiles */, + F3A24A412B389E7200A5162D /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testrendertarget; + productName = testalpha; + productReference = DB166E1C16A1D5AD00A1396C /* testrendertarget.app */; + productType = "com.apple.product-type.application"; + }; + DB166E2716A1D64D00A1396C /* testrumble */ = { + isa = PBXNativeTarget; + buildConfigurationList = DB166E3516A1D64D00A1396C /* Build configuration list for PBXNativeTarget "testrumble" */; + buildPhases = ( + DB166E2816A1D64D00A1396C /* Sources */, + DB166E2A16A1D64D00A1396C /* Frameworks */, + F3A24A472B389E8700A5162D /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testrumble; + productName = testalpha; + productReference = DB166E3816A1D64D00A1396C /* testrumble.app */; + productType = "com.apple.product-type.application"; + }; + DB166E3D16A1D69000A1396C /* testscale */ = { + isa = PBXNativeTarget; + buildConfigurationList = DB166E4F16A1D69000A1396C /* Build configuration list for PBXNativeTarget "testscale" */; + buildPhases = ( + DB166E3E16A1D69000A1396C /* Sources */, + DB166E4016A1D69000A1396C /* Frameworks */, + DB166E4C16A1D69000A1396C /* CopyFiles */, + F3A24A4A2B389E9100A5162D /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testscale; + productName = testalpha; + productReference = DB166E5216A1D69000A1396C /* testscale.app */; + productType = "com.apple.product-type.application"; + }; + DB166E5716A1D6F300A1396C /* testshader */ = { + isa = PBXNativeTarget; + buildConfigurationList = DB166E6516A1D6F300A1396C /* Build configuration list for PBXNativeTarget "testshader" */; + buildPhases = ( + DB166E5816A1D6F300A1396C /* Sources */, + DB166E5A16A1D6F300A1396C /* Frameworks */, + F3A24A502B389EA600A5162D /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testshader; + productName = testsem; + productReference = DB166E6816A1D6F300A1396C /* testshader.app */; + productType = "com.apple.product-type.application"; + }; + DB166E6D16A1D78400A1396C /* testspriteminimal */ = { + isa = PBXNativeTarget; + buildConfigurationList = DB166E7B16A1D78400A1396C /* Build configuration list for PBXNativeTarget "testspriteminimal" */; + buildPhases = ( + DB166E6E16A1D78400A1396C /* Sources */, + DB166E7016A1D78400A1396C /* Frameworks */, + DB166E9B16A1D7FC00A1396C /* CopyFiles */, + F3A24A562B389EC200A5162D /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testspriteminimal; + productName = testspriteminimal; + productReference = DB166E7E16A1D78400A1396C /* testspriteminimal.app */; + productType = "com.apple.product-type.application"; + }; + DB166E8016A1D78C00A1396C /* teststreaming */ = { + isa = PBXNativeTarget; + buildConfigurationList = DB166E8E16A1D78C00A1396C /* Build configuration list for PBXNativeTarget "teststreaming" */; + buildPhases = ( + DB166E8116A1D78C00A1396C /* Sources */, + DB166E8316A1D78C00A1396C /* Frameworks */, + DB166E9916A1D7EE00A1396C /* CopyFiles */, + F3A24A592B389ECD00A5162D /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = teststreaming; + productName = teststreaming; + productReference = DB166E9116A1D78C00A1396C /* teststreaming.app */; + productType = "com.apple.product-type.application"; + }; + DB445EE618184B7000B306B0 /* testdropfile */ = { + isa = PBXNativeTarget; + buildConfigurationList = DB445EF518184B7000B306B0 /* Build configuration list for PBXNativeTarget "testdropfile" */; + buildPhases = ( + DB445EE718184B7000B306B0 /* Sources */, + DB445EE918184B7000B306B0 /* Frameworks */, + F3A249F52B389D3B00A5162D /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testdropfile; + productName = testdropfile; + productReference = DB445EF818184B7000B306B0 /* testdropfile.app */; + productType = "com.apple.product-type.application"; + }; + DB89956D18A19ABA0092407C /* testhotplug */ = { + isa = PBXNativeTarget; + buildConfigurationList = DB89957B18A19ABA0092407C /* Build configuration list for PBXNativeTarget "testhotplug" */; + buildPhases = ( + DB89956E18A19ABA0092407C /* Sources */, + DB89957018A19ABA0092407C /* Frameworks */, + F3A24A102B389DA800A5162D /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testhotplug; + productName = testalpha; + productReference = DB89957E18A19ABA0092407C /* testhotplug.app */; + productType = "com.apple.product-type.application"; + }; + DBEC54D91A1A81C3005B1EAB /* controllermap */ = { + isa = PBXNativeTarget; + buildConfigurationList = DBEC54E71A1A81C3005B1EAB /* Build configuration list for PBXNativeTarget "controllermap" */; + buildPhases = ( + DBEC54DA1A1A81C3005B1EAB /* Sources */, + DBEC54DC1A1A81C3005B1EAB /* Frameworks */, + DBEC54EC1A1A827C005B1EAB /* CopyFiles */, + F3A249E32B389CDB00A5162D /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = controllermap; + productName = checkkeys; + productReference = DBEC54EA1A1A81C3005B1EAB /* controllermap.app */; + productType = "com.apple.product-type.application"; + }; + F3C17CDB28E416CF00E1A26D /* testgeometry */ = { + isa = PBXNativeTarget; + buildConfigurationList = F3C17CE828E416D000E1A26D /* Build configuration list for PBXNativeTarget "testgeometry" */; + buildPhases = ( + F3C17CD828E416CF00E1A26D /* Sources */, + F3C17CD928E416CF00E1A26D /* Frameworks */, + F3A24A042B389D6F00A5162D /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testgeometry; + productName = testgeometry; + productReference = F3C17CDC28E416CF00E1A26D /* testgeometry.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 1400; + LastUpgradeCheck = 0420; + TargetAttributes = { + 0017957410741F7900F5D044 = { + DevelopmentTeam = EH385AYQ6F; + }; + 00179595107421BF00F5D044 = { + DevelopmentTeam = EH385AYQ6F; + }; + 0017970910742F3200F5D044 = { + DevelopmentTeam = EH385AYQ6F; + }; + 00179730107430D600F5D044 = { + DevelopmentTeam = EH385AYQ6F; + }; + 00179756107431B300F5D044 = { + DevelopmentTeam = EH385AYQ6F; + }; + 00179776107432AE00F5D044 = { + DevelopmentTeam = EH385AYQ6F; + }; + 001797961074334C00F5D044 = { + DevelopmentTeam = EH385AYQ6F; + }; + 001797B8107433C600F5D044 = { + DevelopmentTeam = EH385AYQ6F; + }; + 001797FA1074355200F5D044 = { + DevelopmentTeam = EH385AYQ6F; + }; + 001798781074392D00F5D044 = { + DevelopmentTeam = EH385AYQ6F; + }; + 0017989D107439DF00F5D044 = { + DevelopmentTeam = EH385AYQ6F; + }; + 001798DA10743BEC00F5D044 = { + DevelopmentTeam = EH385AYQ6F; + }; + 001798FE10743F1000F5D044 = { + DevelopmentTeam = EH385AYQ6F; + }; + 0017992010743FB700F5D044 = { + DevelopmentTeam = EH385AYQ6F; + }; + 002F340109CA1BFF00EBEB88 = { + DevelopmentTeam = EH385AYQ6F; + }; + 002F342009CA1F0300EBEB88 = { + DevelopmentTeam = EH385AYQ6F; + }; + 002F343C09CA1FB300EBEB88 = { + DevelopmentTeam = EH385AYQ6F; + }; + 002F345909CA204F00EBEB88 = { + DevelopmentTeam = EH385AYQ6F; + }; + 4537749112091504002F0F45 = { + DevelopmentTeam = EH385AYQ6F; + }; + BBFC08B7164C6862003E6A99 = { + DevelopmentTeam = EH385AYQ6F; + }; + BEC566920761D90300A33029 = { + DevelopmentTeam = EH385AYQ6F; + }; + BEC566AB0761D90300A33029 = { + DevelopmentTeam = EH385AYQ6F; + }; + BEC566C50761D90300A33029 = { + DevelopmentTeam = EH385AYQ6F; + }; + BEC566FB0761D90300A33029 = { + DevelopmentTeam = EH385AYQ6F; + }; + BEC567230761D90400A33029 = { + DevelopmentTeam = EH385AYQ6F; + }; + BEC567300761D90400A33029 = { + DevelopmentTeam = EH385AYQ6F; + }; + BEC5673D0761D90400A33029 = { + DevelopmentTeam = EH385AYQ6F; + }; + BEC5674A0761D90400A33029 = { + DevelopmentTeam = EH385AYQ6F; + }; + BEC567720761D90500A33029 = { + DevelopmentTeam = EH385AYQ6F; + }; + BEC5678D0761D90500A33029 = { + DevelopmentTeam = EH385AYQ6F; + }; + BEC567A70761D90500A33029 = { + DevelopmentTeam = EH385AYQ6F; + }; + BEC567EA0761D90600A33029 = { + DevelopmentTeam = EH385AYQ6F; + }; + DB0F48D917CA51E5008798C5 = { + DevelopmentTeam = EH385AYQ6F; + }; + DB0F48EF17CA5212008798C5 = { + DevelopmentTeam = EH385AYQ6F; + }; + DB166D7E16A1D12400A1396C = { + DevelopmentTeam = EH385AYQ6F; + }; + DB166DAD16A1D2F600A1396C = { + DevelopmentTeam = EH385AYQ6F; + }; + DB166DC416A1D36A00A1396C = { + DevelopmentTeam = EH385AYQ6F; + }; + DB166DDC16A1D50C00A1396C = { + DevelopmentTeam = EH385AYQ6F; + }; + DB166DF316A1D57C00A1396C = { + DevelopmentTeam = EH385AYQ6F; + }; + DB166E0A16A1D5AD00A1396C = { + DevelopmentTeam = EH385AYQ6F; + }; + DB166E2716A1D64D00A1396C = { + DevelopmentTeam = EH385AYQ6F; + }; + DB166E3D16A1D69000A1396C = { + DevelopmentTeam = EH385AYQ6F; + }; + DB166E5716A1D6F300A1396C = { + DevelopmentTeam = EH385AYQ6F; + }; + DB166E6D16A1D78400A1396C = { + DevelopmentTeam = EH385AYQ6F; + }; + DB166E8016A1D78C00A1396C = { + DevelopmentTeam = EH385AYQ6F; + }; + DB445EE618184B7000B306B0 = { + DevelopmentTeam = EH385AYQ6F; + }; + DB89956D18A19ABA0092407C = { + DevelopmentTeam = EH385AYQ6F; + }; + DBEC54D91A1A81C3005B1EAB = { + DevelopmentTeam = EH385AYQ6F; + }; + F3C17CDB28E416CF00E1A26D = { + CreatedOnToolsVersion = 14.0.1; + DevelopmentTeam = EH385AYQ6F; + }; + }; + }; + buildConfigurationList = 001B5A0C08BDB826006539E9 /* Build configuration list for PBXProject "SDLTest" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 1; + knownRegions = ( + English, + Japanese, + French, + German, + en, + Base, + ); + mainGroup = 08FB7794FE84155DC02AAC07 /* SDLTest */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 003FA63B093FFD41000C53B3 /* Products */; + ProjectRef = 003FA63A093FFD41000C53B3 /* SDL.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + BEC566920761D90300A33029 /* All */, + DB166D7E16A1D12400A1396C /* SDL_test */, + BEC566AB0761D90300A33029 /* checkkeys */, + DBEC54D91A1A81C3005B1EAB /* controllermap */, + BEC566C50761D90300A33029 /* loopwave */, + 0017957410741F7900F5D044 /* testatomic */, + 00179595107421BF00F5D044 /* testaudioinfo */, + 00179756107431B300F5D044 /* testdraw2 */, + DB0F48D917CA51E5008798C5 /* testdrawchessboard */, + DB445EE618184B7000B306B0 /* testdropfile */, + BEC566FB0761D90300A33029 /* testerror */, + 002F340109CA1BFF00EBEB88 /* testfile */, + DB0F48EF17CA5212008798C5 /* testfilesystem */, + BBFC08B7164C6862003E6A99 /* testgamecontroller */, + F3C17CDB28E416CF00E1A26D /* testgeometry */, + DB166DAD16A1D2F600A1396C /* testgesture */, + 0017970910742F3200F5D044 /* testgl2 */, + 00179730107430D600F5D044 /* testhaptic */, + DB89956D18A19ABA0092407C /* testhotplug */, + 002F342009CA1F0300EBEB88 /* testiconv */, + 00179776107432AE00F5D044 /* testime */, + 001797961074334C00F5D044 /* testintersections */, + BEC567300761D90400A33029 /* testjoystick */, + BEC5673D0761D90400A33029 /* testkeys */, + 001797B8107433C600F5D044 /* testloadso */, + BEC5674A0761D90400A33029 /* testlock */, + DB166DC416A1D36A00A1396C /* testmessage */, + 001797FA1074355200F5D044 /* testmultiaudio */, + 001798781074392D00F5D044 /* testnative */, + 002F343C09CA1FB300EBEB88 /* testoverlay2 */, + 002F345909CA204F00EBEB88 /* testplatform */, + 0017989D107439DF00F5D044 /* testpower */, + DB166DDC16A1D50C00A1396C /* testrelative */, + DB166DF316A1D57C00A1396C /* testrendercopyex */, + DB166E0A16A1D5AD00A1396C /* testrendertarget */, + 001798DA10743BEC00F5D044 /* testresample */, + DB166E2716A1D64D00A1396C /* testrumble */, + DB166E3D16A1D69000A1396C /* testscale */, + BEC567720761D90500A33029 /* testsem */, + DB166E5716A1D6F300A1396C /* testshader */, + 4537749112091504002F0F45 /* testshape */, + 001798FE10743F1000F5D044 /* testsprite2 */, + DB166E6D16A1D78400A1396C /* testspriteminimal */, + DB166E8016A1D78C00A1396C /* teststreaming */, + BEC567230761D90400A33029 /* testthread */, + BEC5678D0761D90500A33029 /* testtimer */, + BEC567A70761D90500A33029 /* testversion */, + 0017992010743FB700F5D044 /* testwm2 */, + BEC567EA0761D90600A33029 /* torturethread */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 003FA643093FFD41000C53B3 /* SDL2.framework */ = { + isa = PBXReferenceProxy; + fileType = wrapper.framework; + path = SDL2.framework; + remoteRef = 003FA642093FFD41000C53B3 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 003FA645093FFD41000C53B3 /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libSDL2.a; + remoteRef = 003FA644093FFD41000C53B3 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 003FA649093FFD41000C53B3 /* SDL2 */ = { + isa = PBXReferenceProxy; + fileType = "compiled.mach-o.executable"; + path = SDL2; + remoteRef = 003FA648093FFD41000C53B3 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + DB1D40D717B3F30D00D74CFC /* libSDL2.dylib */ = { + isa = PBXReferenceProxy; + fileType = "compiled.mach-o.dylib"; + path = libSDL2.dylib; + remoteRef = DB1D40D617B3F30D00D74CFC /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + F3C17C5D28E3FB2900E1A26D /* SDL2.framework */ = { + isa = PBXReferenceProxy; + fileType = wrapper.framework; + path = SDL2.framework; + remoteRef = F3C17C5C28E3FB2900E1A26D /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + F3C17C5F28E3FB2900E1A26D /* SDL2.framework */ = { + isa = PBXReferenceProxy; + fileType = wrapper.framework; + path = SDL2.framework; + remoteRef = F3C17C5E28E3FB2900E1A26D /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + F3C17C6128E3FB2900E1A26D /* SDL2.framework */ = { + isa = PBXReferenceProxy; + fileType = wrapper.framework; + path = SDL2.framework; + remoteRef = F3C17C6028E3FB2900E1A26D /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + F3C17C6328E3FB2900E1A26D /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libSDL2.a; + remoteRef = F3C17C6228E3FB2900E1A26D /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + F3C17C6528E3FB2900E1A26D /* libSDL2.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libSDL2.a; + remoteRef = F3C17C6428E3FB2900E1A26D /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + F3C17C6728E3FB2900E1A26D /* libSDL2.dylib */ = { + isa = PBXReferenceProxy; + fileType = "compiled.mach-o.dylib"; + path = libSDL2.dylib; + remoteRef = F3C17C6628E3FB2900E1A26D /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + F3C17C6928E3FB2900E1A26D /* libSDL2.dylib */ = { + isa = PBXReferenceProxy; + fileType = "compiled.mach-o.dylib"; + path = libSDL2.dylib; + remoteRef = F3C17C6828E3FB2900E1A26D /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + F3C17D3528E4242100E1A26D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17D3C28E4277D00E1A26D /* axis.bmp in Resources */, + F3C17D3D28E4277D00E1A26D /* button.bmp in Resources */, + F3C17D3E28E4277D00E1A26D /* controllermap_back.bmp in Resources */, + F3C17D3F28E4277D00E1A26D /* controllermap.bmp in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F3C17D3828E424B100E1A26D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17D3928E424B800E1A26D /* sample.wav in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F3C17D3A28E4252200E1A26D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17D3B28E4252900E1A26D /* icon.bmp in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 0017957910741F7900F5D044 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17CFF28E41EB000E1A26D /* SDL_uikit_main.c in Sources */, + 001795901074216E00F5D044 /* testatomic.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0017959A107421BF00F5D044 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17D0028E41EB400E1A26D /* SDL_uikit_main.c in Sources */, + 001795B11074222D00F5D044 /* testaudioinfo.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0017970E10742F3200F5D044 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17D0928E41EE100E1A26D /* SDL_uikit_main.c in Sources */, + 0017972810742FB900F5D044 /* testgl2.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 00179735107430D600F5D044 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17D0A28E41EE700E1A26D /* SDL_uikit_main.c in Sources */, + 0017974F1074315700F5D044 /* testhaptic.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0017975B107431B300F5D044 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17D0128E41EB800E1A26D /* SDL_uikit_main.c in Sources */, + 001797721074320D00F5D044 /* testdraw2.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0017977B107432AE00F5D044 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17D0D28E41EF400E1A26D /* SDL_uikit_main.c in Sources */, + 00179792107432FA00F5D044 /* testime.c in Sources */, + F3C17C7C28E40D7400E1A26D /* testutils.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0017979B1074334C00F5D044 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17D0E28E41EF900E1A26D /* SDL_uikit_main.c in Sources */, + 001797B41074339C00F5D044 /* testintersections.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 001797BD107433C600F5D044 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17D1128E41F0600E1A26D /* SDL_uikit_main.c in Sources */, + 001797D41074343E00F5D044 /* testloadso.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 001797FF1074355200F5D044 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17D1428E41F1100E1A26D /* SDL_uikit_main.c in Sources */, + 001798161074359B00F5D044 /* testmultiaudio.c in Sources */, + F3C17C7D28E40F9D00E1A26D /* testutils.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0017987E1074392D00F5D044 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0017987F1074392D00F5D044 /* testnative.c in Sources */, + 001798801074392D00F5D044 /* testnativecocoa.m in Sources */, + F3C17C7E28E40FDD00E1A26D /* testutils.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 001798A2107439DF00F5D044 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17D1728E41F2800E1A26D /* SDL_uikit_main.c in Sources */, + 001798BA10743A4900F5D044 /* testpower.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 001798DF10743BEC00F5D044 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17D1B28E41F3800E1A26D /* SDL_uikit_main.c in Sources */, + 001798FA10743E9200F5D044 /* testresample.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0017990310743F1000F5D044 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17CEF28E41D5800E1A26D /* SDL_uikit_main.c in Sources */, + 0017991A10743F5300F5D044 /* testsprite2.c in Sources */, + F3C17C8328E4124400E1A26D /* testutils.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0017992510743FB700F5D044 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17D2728E41FD800E1A26D /* SDL_uikit_main.c in Sources */, + 0017993C10743FEF00F5D044 /* testwm2.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 002F340709CA1BFF00EBEB88 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17D0528E41ECB00E1A26D /* SDL_uikit_main.c in Sources */, + 002F341809CA1C5B00EBEB88 /* testfile.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 002F342609CA1F0300EBEB88 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17D0C28E41EF000E1A26D /* SDL_uikit_main.c in Sources */, + 002F343709CA1F6F00EBEB88 /* testiconv.c in Sources */, + F3C17C7B28E40D4E00E1A26D /* testutils.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 002F344209CA1FB300EBEB88 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17D1528E41F1F00E1A26D /* SDL_uikit_main.c in Sources */, + 002F345409CA202000EBEB88 /* testoverlay2.c in Sources */, + 66E88E8B203B778F0004D44E /* testyuv_cvt.c in Sources */, + F3C17C7F28E4101000E1A26D /* testutils.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 002F345F09CA204F00EBEB88 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17D1628E41F2400E1A26D /* SDL_uikit_main.c in Sources */, + 002F347009CA20A600EBEB88 /* testplatform.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 4537748F12091504002F0F45 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17D2028E41F4D00E1A26D /* SDL_uikit_main.c in Sources */, + 453774A5120915E3002F0F45 /* testshape.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BBFC08BC164C6862003E6A99 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17D0728E41ED300E1A26D /* SDL_uikit_main.c in Sources */, + BBFC08D0164C6876003E6A99 /* testgamecontroller.c in Sources */, + F3C17C7928E40C6E00E1A26D /* testutils.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BEC566B00761D90300A33029 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17CFC28E41E9800E1A26D /* SDL_uikit_main.c in Sources */, + BEC566B10761D90300A33029 /* checkkeys.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BEC566CA0761D90300A33029 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17CFE28E41EAC00E1A26D /* SDL_uikit_main.c in Sources */, + BEC566CB0761D90300A33029 /* loopwave.c in Sources */, + F3C17C7728E40BC800E1A26D /* testutils.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BEC567000761D90300A33029 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17D0428E41EC800E1A26D /* SDL_uikit_main.c in Sources */, + BEC567010761D90300A33029 /* testerror.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BEC567280761D90400A33029 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17D2428E41F6600E1A26D /* SDL_uikit_main.c in Sources */, + BEC567290761D90400A33029 /* testthread.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BEC567350761D90400A33029 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17D0F28E41EFE00E1A26D /* SDL_uikit_main.c in Sources */, + BEC567360761D90400A33029 /* testjoystick.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BEC567420761D90400A33029 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17D1028E41F0200E1A26D /* SDL_uikit_main.c in Sources */, + BEC567430761D90400A33029 /* testkeys.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BEC5674F0761D90400A33029 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17D1228E41F0A00E1A26D /* SDL_uikit_main.c in Sources */, + BEC567500761D90400A33029 /* testlock.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BEC567770761D90500A33029 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17D1E28E41F4500E1A26D /* SDL_uikit_main.c in Sources */, + BEC567780761D90500A33029 /* testsem.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BEC567920761D90500A33029 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17D2528E41F6A00E1A26D /* SDL_uikit_main.c in Sources */, + BEC567930761D90500A33029 /* testtimer.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BEC567AC0761D90500A33029 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17D2628E41F6E00E1A26D /* SDL_uikit_main.c in Sources */, + BEC567AD0761D90500A33029 /* testver.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BEC567EF0761D90600A33029 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17D2828E41FDC00E1A26D /* SDL_uikit_main.c in Sources */, + BEC567F00761D90600A33029 /* torturethread.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB0F48DA17CA51E5008798C5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17D0228E41EBC00E1A26D /* SDL_uikit_main.c in Sources */, + DB0F48EE17CA51F8008798C5 /* testdrawchessboard.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB0F48F017CA5212008798C5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17D0628E41ECF00E1A26D /* SDL_uikit_main.c in Sources */, + DB0F490317CA5225008798C5 /* testfilesystem.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166D7B16A1D12400A1396C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DB166D9316A1D1A500A1396C /* SDL_test_assert.c in Sources */, + DB166D9416A1D1A500A1396C /* SDL_test_common.c in Sources */, + DB166D9516A1D1A500A1396C /* SDL_test_compare.c in Sources */, + DB166D9616A1D1A500A1396C /* SDL_test_crc32.c in Sources */, + DB166D9716A1D1A500A1396C /* SDL_test_font.c in Sources */, + DB166D9816A1D1A500A1396C /* SDL_test_fuzzer.c in Sources */, + DB166D9916A1D1A500A1396C /* SDL_test_harness.c in Sources */, + DB166D9A16A1D1A500A1396C /* SDL_test_imageBlit.c in Sources */, + DB166D9B16A1D1A500A1396C /* SDL_test_imageBlitBlend.c in Sources */, + DB166D9C16A1D1A500A1396C /* SDL_test_imageFace.c in Sources */, + DB166D9D16A1D1A500A1396C /* SDL_test_imagePrimitives.c in Sources */, + DB166D9E16A1D1A500A1396C /* SDL_test_imagePrimitivesBlend.c in Sources */, + DB166D9F16A1D1A500A1396C /* SDL_test_log.c in Sources */, + DB166DA016A1D1A500A1396C /* SDL_test_md5.c in Sources */, + AAF02FFA1F90092700B9A9FB /* SDL_test_memory.c in Sources */, + DB166DA116A1D1A500A1396C /* SDL_test_random.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166DAE16A1D2F600A1396C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17D0828E41EDB00E1A26D /* SDL_uikit_main.c in Sources */, + DB166DC116A1D31E00A1396C /* testgesture.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166DC516A1D36A00A1396C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17D1328E41F0D00E1A26D /* SDL_uikit_main.c in Sources */, + DB166DD716A1D37800A1396C /* testmessage.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166DDD16A1D50C00A1396C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17D1828E41F2C00E1A26D /* SDL_uikit_main.c in Sources */, + DB166DF016A1D52500A1396C /* testrelative.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166DF416A1D57C00A1396C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17D1928E41F3100E1A26D /* SDL_uikit_main.c in Sources */, + DB166E0716A1D59400A1396C /* testrendercopyex.c in Sources */, + F3C17C8028E410A400E1A26D /* testutils.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166E0B16A1D5AD00A1396C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17D1A28E41F3500E1A26D /* SDL_uikit_main.c in Sources */, + DB166E1E16A1D5C300A1396C /* testrendertarget.c in Sources */, + F3C17C8128E410C900E1A26D /* testutils.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166E2816A1D64D00A1396C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17D1C28E41F3C00E1A26D /* SDL_uikit_main.c in Sources */, + DB166E3C16A1D66500A1396C /* testrumble.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166E3E16A1D69000A1396C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17D1D28E41F4000E1A26D /* SDL_uikit_main.c in Sources */, + DB166E5416A1D6A300A1396C /* testscale.c in Sources */, + F3C17C8228E4112900E1A26D /* testutils.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166E5816A1D6F300A1396C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17D1F28E41F4800E1A26D /* SDL_uikit_main.c in Sources */, + DB166E6A16A1D70C00A1396C /* testshader.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166E6E16A1D78400A1396C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17D2228E41F5F00E1A26D /* SDL_uikit_main.c in Sources */, + DB166E9316A1D7BC00A1396C /* testspriteminimal.c in Sources */, + F3C17C8428E4126400E1A26D /* testutils.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB166E8116A1D78C00A1396C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17D2328E41F6200E1A26D /* SDL_uikit_main.c in Sources */, + DB166E9416A1D7C700A1396C /* teststreaming.c in Sources */, + F3C17C8528E4127D00E1A26D /* testutils.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB445EE718184B7000B306B0 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17D0328E41EC500E1A26D /* SDL_uikit_main.c in Sources */, + DB445EFB18184BB600B306B0 /* testdropfile.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB89956E18A19ABA0092407C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17D0B28E41EEB00E1A26D /* SDL_uikit_main.c in Sources */, + DB89958418A19B130092407C /* testhotplug.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DBEC54DA1A1A81C3005B1EAB /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17CFD28E41EA100E1A26D /* SDL_uikit_main.c in Sources */, + DBEC54EB1A1A8205005B1EAB /* controllermap.c in Sources */, + F3C17C7428E40AF000E1A26D /* testutils.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F3C17CD828E416CF00E1A26D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C17CEE28E4184700E1A26D /* SDL_uikit_main.c in Sources */, + F3C17CEB28E4177600E1A26D /* testgeometry.c in Sources */, + F3C17CEC28E417EB00E1A26D /* testutils.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 001799481074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = BEC566AB0761D90300A33029 /* checkkeys */; + targetProxy = 001799471074403E00F5D044 /* PBXContainerItemProxy */; + }; + 0017994C1074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = BEC566C50761D90300A33029 /* loopwave */; + targetProxy = 0017994B1074403E00F5D044 /* PBXContainerItemProxy */; + }; + 001799501074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 0017957410741F7900F5D044 /* testatomic */; + targetProxy = 0017994F1074403E00F5D044 /* PBXContainerItemProxy */; + }; + 001799521074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 00179595107421BF00F5D044 /* testaudioinfo */; + targetProxy = 001799511074403E00F5D044 /* PBXContainerItemProxy */; + }; + 0017995A1074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 00179756107431B300F5D044 /* testdraw2 */; + targetProxy = 001799591074403E00F5D044 /* PBXContainerItemProxy */; + }; + 0017995E1074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = BEC566FB0761D90300A33029 /* testerror */; + targetProxy = 0017995D1074403E00F5D044 /* PBXContainerItemProxy */; + }; + 001799601074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 002F340109CA1BFF00EBEB88 /* testfile */; + targetProxy = 0017995F1074403E00F5D044 /* PBXContainerItemProxy */; + }; + 001799661074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 0017970910742F3200F5D044 /* testgl2 */; + targetProxy = 001799651074403E00F5D044 /* PBXContainerItemProxy */; + }; + 001799681074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 00179730107430D600F5D044 /* testhaptic */; + targetProxy = 001799671074403E00F5D044 /* PBXContainerItemProxy */; + }; + 0017996A1074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = BEC567230761D90400A33029 /* testthread */; + targetProxy = 001799691074403E00F5D044 /* PBXContainerItemProxy */; + }; + 0017996C1074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 002F342009CA1F0300EBEB88 /* testiconv */; + targetProxy = 0017996B1074403E00F5D044 /* PBXContainerItemProxy */; + }; + 0017996E1074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 00179776107432AE00F5D044 /* testime */; + targetProxy = 0017996D1074403E00F5D044 /* PBXContainerItemProxy */; + }; + 001799701074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 001797961074334C00F5D044 /* testintersections */; + targetProxy = 0017996F1074403E00F5D044 /* PBXContainerItemProxy */; + }; + 001799721074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = BEC567300761D90400A33029 /* testjoystick */; + targetProxy = 001799711074403E00F5D044 /* PBXContainerItemProxy */; + }; + 001799741074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = BEC5673D0761D90400A33029 /* testkeys */; + targetProxy = 001799731074403E00F5D044 /* PBXContainerItemProxy */; + }; + 001799761074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 001797B8107433C600F5D044 /* testloadso */; + targetProxy = 001799751074403E00F5D044 /* PBXContainerItemProxy */; + }; + 001799781074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = BEC5674A0761D90400A33029 /* testlock */; + targetProxy = 001799771074403E00F5D044 /* PBXContainerItemProxy */; + }; + 0017997C1074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 001797FA1074355200F5D044 /* testmultiaudio */; + targetProxy = 0017997B1074403E00F5D044 /* PBXContainerItemProxy */; + }; + 001799801074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 001798781074392D00F5D044 /* testnative */; + targetProxy = 0017997F1074403E00F5D044 /* PBXContainerItemProxy */; + }; + 001799841074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 002F343C09CA1FB300EBEB88 /* testoverlay2 */; + targetProxy = 001799831074403E00F5D044 /* PBXContainerItemProxy */; + }; + 001799881074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 002F345909CA204F00EBEB88 /* testplatform */; + targetProxy = 001799871074403E00F5D044 /* PBXContainerItemProxy */; + }; + 0017998A1074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 0017989D107439DF00F5D044 /* testpower */; + targetProxy = 001799891074403E00F5D044 /* PBXContainerItemProxy */; + }; + 0017998C1074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 001798DA10743BEC00F5D044 /* testresample */; + targetProxy = 0017998B1074403E00F5D044 /* PBXContainerItemProxy */; + }; + 0017998E1074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = BEC567720761D90500A33029 /* testsem */; + targetProxy = 0017998D1074403E00F5D044 /* PBXContainerItemProxy */; + }; + 001799921074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 001798FE10743F1000F5D044 /* testsprite2 */; + targetProxy = 001799911074403E00F5D044 /* PBXContainerItemProxy */; + }; + 001799941074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = BEC5678D0761D90500A33029 /* testtimer */; + targetProxy = 001799931074403E00F5D044 /* PBXContainerItemProxy */; + }; + 001799961074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = BEC567A70761D90500A33029 /* testversion */; + targetProxy = 001799951074403E00F5D044 /* PBXContainerItemProxy */; + }; + 0017999E1074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 0017992010743FB700F5D044 /* testwm2 */; + targetProxy = 0017999D1074403E00F5D044 /* PBXContainerItemProxy */; + }; + 001799A21074403E00F5D044 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = BEC567EA0761D90600A33029 /* torturethread */; + targetProxy = 001799A11074403E00F5D044 /* PBXContainerItemProxy */; + }; + DB0F490517CA5249008798C5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DB0F48D917CA51E5008798C5 /* testdrawchessboard */; + targetProxy = DB0F490417CA5249008798C5 /* PBXContainerItemProxy */; + }; + DB0F490717CA5249008798C5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DB0F48EF17CA5212008798C5 /* testfilesystem */; + targetProxy = DB0F490617CA5249008798C5 /* PBXContainerItemProxy */; + }; + DB166D6E16A1CEAA00A1396C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = BBFC08B7164C6862003E6A99 /* testgamecontroller */; + targetProxy = DB166D6D16A1CEAA00A1396C /* PBXContainerItemProxy */; + }; + DB166D7016A1CEAF00A1396C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 4537749112091504002F0F45 /* testshape */; + targetProxy = DB166D6F16A1CEAF00A1396C /* PBXContainerItemProxy */; + }; + DB166DC316A1D32C00A1396C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DB166DAD16A1D2F600A1396C /* testgesture */; + targetProxy = DB166DC216A1D32C00A1396C /* PBXContainerItemProxy */; + }; + DB166DD916A1D38900A1396C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DB166DC416A1D36A00A1396C /* testmessage */; + targetProxy = DB166DD816A1D38900A1396C /* PBXContainerItemProxy */; + }; + DB166DF216A1D53700A1396C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DB166DDC16A1D50C00A1396C /* testrelative */; + targetProxy = DB166DF116A1D53700A1396C /* PBXContainerItemProxy */; + }; + DB166E0916A1D5A400A1396C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DB166DF316A1D57C00A1396C /* testrendercopyex */; + targetProxy = DB166E0816A1D5A400A1396C /* PBXContainerItemProxy */; + }; + DB166E2016A1D5D000A1396C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DB166E0A16A1D5AD00A1396C /* testrendertarget */; + targetProxy = DB166E1F16A1D5D000A1396C /* PBXContainerItemProxy */; + }; + DB166E3B16A1D65A00A1396C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DB166E2716A1D64D00A1396C /* testrumble */; + targetProxy = DB166E3A16A1D65A00A1396C /* PBXContainerItemProxy */; + }; + DB166E5616A1D6B800A1396C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DB166E3D16A1D69000A1396C /* testscale */; + targetProxy = DB166E5516A1D6B800A1396C /* PBXContainerItemProxy */; + }; + DB166E6C16A1D72000A1396C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DB166E5716A1D6F300A1396C /* testshader */; + targetProxy = DB166E6B16A1D72000A1396C /* PBXContainerItemProxy */; + }; + DB166E9616A1D7CD00A1396C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DB166E6D16A1D78400A1396C /* testspriteminimal */; + targetProxy = DB166E9516A1D7CD00A1396C /* PBXContainerItemProxy */; + }; + DB166E9816A1D7CF00A1396C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DB166E8016A1D78C00A1396C /* teststreaming */; + targetProxy = DB166E9716A1D7CF00A1396C /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 0017958910741F7900F5D044 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testatomic; + }; + name = Debug; + }; + 0017958A10741F7900F5D044 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testatomic; + }; + name = Release; + }; + 001795AA107421BF00F5D044 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testaudioinfo; + }; + name = Debug; + }; + 001795AB107421BF00F5D044 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testaudioinfo; + }; + name = Release; + }; + 0017971E10742F3200F5D044 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + GCC_PREPROCESSOR_DEFINITIONS = HAVE_OPENGL; + PRODUCT_NAME = testgl2; + SUPPORTED_PLATFORMS = macosx; + }; + name = Debug; + }; + 0017971F10742F3200F5D044 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + GCC_PREPROCESSOR_DEFINITIONS = HAVE_OPENGL; + PRODUCT_NAME = testgl2; + SUPPORTED_PLATFORMS = macosx; + }; + name = Release; + }; + 00179745107430D600F5D044 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testhaptic; + }; + name = Debug; + }; + 00179746107430D600F5D044 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testhaptic; + }; + name = Release; + }; + 0017976B107431B300F5D044 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testdraw2; + }; + name = Debug; + }; + 0017976C107431B300F5D044 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testdraw2; + }; + name = Release; + }; + 0017978B107432AE00F5D044 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testime; + }; + name = Debug; + }; + 0017978C107432AE00F5D044 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testime; + }; + name = Release; + }; + 001797AB1074334C00F5D044 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testintersections; + }; + name = Debug; + }; + 001797AC1074334C00F5D044 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testintersections; + }; + name = Release; + }; + 001797CD107433C600F5D044 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testloadso; + }; + name = Debug; + }; + 001797CE107433C600F5D044 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testloadso; + }; + name = Release; + }; + 0017980F1074355200F5D044 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testmultiaudio; + }; + name = Debug; + }; + 001798101074355200F5D044 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testmultiaudio; + }; + name = Release; + }; + 001798911074392D00F5D044 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testnative; + SUPPORTED_PLATFORMS = macosx; + }; + name = Debug; + }; + 001798921074392D00F5D044 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testnative; + SUPPORTED_PLATFORMS = macosx; + }; + name = Release; + }; + 001798B2107439DF00F5D044 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testpower; + }; + name = Debug; + }; + 001798B3107439DF00F5D044 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testpower; + }; + name = Release; + }; + 001798EF10743BEC00F5D044 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testresample; + }; + name = Debug; + }; + 001798F010743BEC00F5D044 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testresample; + }; + name = Release; + }; + 0017991310743F1000F5D044 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testsprite2; + }; + name = Debug; + }; + 0017991410743F1000F5D044 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testsprite2; + }; + name = Release; + }; + 0017993510743FB700F5D044 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testwm2; + }; + name = Debug; + }; + 0017993610743FB700F5D044 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testwm2; + }; + name = Release; + }; + 002A85B21073008E007319AE /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F3C17C6A28E3FD4400E1A26D /* config.xcconfig */; + buildSettings = { + ALLOW_TARGET_PLATFORM_SPECIALIZATION = YES; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_TESTABILITY = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_SYMBOLS_PRIVATE_EXTERN = YES; + GENERATE_INFOPLIST_FILE = YES; + HEADER_SEARCH_PATHS = ../../include; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; + "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.9; + MARKETING_VERSION = 1.0; + ONLY_ACTIVE_ARCH = YES; + OTHER_LDFLAGS = "$(CONFIG_FRAMEWORK_LDFLAGS)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.libsdl.$(PRODUCT_NAME)"; + SUPPORTED_PLATFORMS = "macosx iphonesimulator iphoneos appletvsimulator appletvos"; + SUPPORTS_MACCATALYST = YES; + TVOS_DEPLOYMENT_TARGET = 9.0; + }; + name = Debug; + }; + 002A85B31073008E007319AE /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "Build All"; + }; + name = Debug; + }; + 002A85B41073008E007319AE /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = checkkeys; + }; + name = Debug; + }; + 002A85B61073008E007319AE /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = loopwave; + }; + name = Debug; + }; + 002A85BC1073008E007319AE /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testerror; + }; + name = Debug; + }; + 002A85BD1073008E007319AE /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testfile; + }; + name = Debug; + }; + 002A85C01073008E007319AE /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testiconv; + }; + name = Debug; + }; + 002A85C11073008E007319AE /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testjoystick; + }; + name = Debug; + }; + 002A85C21073008E007319AE /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testkeys; + }; + name = Debug; + }; + 002A85C31073008E007319AE /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testlock; + }; + name = Debug; + }; + 002A85C51073008E007319AE /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + INFOPLIST_FILE = "testoverlay2-Info.plist"; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + PRODUCT_NAME = testoverlay2; + }; + name = Debug; + }; + 002A85C71073008E007319AE /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testplatform; + }; + name = Debug; + }; + 002A85C81073008E007319AE /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testsem; + }; + name = Debug; + }; + 002A85CA1073008E007319AE /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testthread; + }; + name = Debug; + }; + 002A85CB1073008E007319AE /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testtimer; + }; + name = Debug; + }; + 002A85CC1073008E007319AE /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testversion; + }; + name = Debug; + }; + 002A85D11073008E007319AE /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = torturethread; + }; + name = Debug; + }; + 002A85D41073009D007319AE /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F3C17C6A28E3FD4400E1A26D /* config.xcconfig */; + buildSettings = { + ALLOW_TARGET_PLATFORM_SPECIALIZATION = YES; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEPLOYMENT_POSTPROCESSING = YES; + GCC_SYMBOLS_PRIVATE_EXTERN = YES; + GENERATE_INFOPLIST_FILE = YES; + HEADER_SEARCH_PATHS = ../../include; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; + "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.9; + MARKETING_VERSION = 1.0; + OTHER_LDFLAGS = "$(CONFIG_FRAMEWORK_LDFLAGS)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.libsdl.$(PRODUCT_NAME)"; + SUPPORTED_PLATFORMS = "macosx iphonesimulator iphoneos appletvsimulator appletvos"; + SUPPORTS_MACCATALYST = YES; + TVOS_DEPLOYMENT_TARGET = 9.0; + }; + name = Release; + }; + 002A85D51073009D007319AE /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "Build All"; + }; + name = Release; + }; + 002A85D61073009D007319AE /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = checkkeys; + }; + name = Release; + }; + 002A85D81073009D007319AE /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = loopwave; + }; + name = Release; + }; + 002A85DE1073009D007319AE /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testerror; + }; + name = Release; + }; + 002A85DF1073009D007319AE /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testfile; + }; + name = Release; + }; + 002A85E21073009D007319AE /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testiconv; + }; + name = Release; + }; + 002A85E31073009D007319AE /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testjoystick; + }; + name = Release; + }; + 002A85E41073009D007319AE /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testkeys; + }; + name = Release; + }; + 002A85E51073009D007319AE /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testlock; + }; + name = Release; + }; + 002A85E71073009D007319AE /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + INFOPLIST_FILE = "testoverlay2-Info.plist"; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + PRODUCT_NAME = testoverlay2; + }; + name = Release; + }; + 002A85E91073009D007319AE /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testplatform; + }; + name = Release; + }; + 002A85EA1073009D007319AE /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testsem; + }; + name = Release; + }; + 002A85EC1073009D007319AE /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testthread; + }; + name = Release; + }; + 002A85ED1073009D007319AE /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testtimer; + }; + name = Release; + }; + 002A85EE1073009D007319AE /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testversion; + }; + name = Release; + }; + 002A85F31073009D007319AE /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = torturethread; + }; + name = Release; + }; + 4537749712091509002F0F45 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testshape; + }; + name = Debug; + }; + 4537749812091509002F0F45 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testshape; + }; + name = Release; + }; + BBFC08CB164C6862003E6A99 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testgamecontroller; + }; + name = Debug; + }; + BBFC08CC164C6862003E6A99 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testgamecontroller; + }; + name = Release; + }; + DB0F48EA17CA51E5008798C5 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testdrawchessboard; + }; + name = Debug; + }; + DB0F48EB17CA51E5008798C5 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testdrawchessboard; + }; + name = Release; + }; + DB0F48FF17CA5212008798C5 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testfilesystem; + }; + name = Debug; + }; + DB0F490017CA5212008798C5 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testfilesystem; + }; + name = Release; + }; + DB166D8116A1D12400A1396C /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALLOW_TARGET_PLATFORM_SPECIALIZATION = YES; + EXECUTABLE_PREFIX = lib; + PRODUCT_NAME = "$(TARGET_NAME)"; + SUPPORTED_PLATFORMS = "watchsimulator watchos macosx iphonesimulator iphoneos driverkit appletvsimulator appletvos"; + SUPPORTS_MACCATALYST = YES; + }; + name = Debug; + }; + DB166D8216A1D12400A1396C /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALLOW_TARGET_PLATFORM_SPECIALIZATION = YES; + EXECUTABLE_PREFIX = lib; + PRODUCT_NAME = "$(TARGET_NAME)"; + SUPPORTED_PLATFORMS = "watchsimulator watchos macosx iphonesimulator iphoneos driverkit appletvsimulator appletvos"; + SUPPORTS_MACCATALYST = YES; + }; + name = Release; + }; + DB166DBD16A1D2F600A1396C /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testgesture; + }; + name = Debug; + }; + DB166DBE16A1D2F600A1396C /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testgesture; + }; + name = Release; + }; + DB166DD316A1D36A00A1396C /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testmessage; + }; + name = Debug; + }; + DB166DD416A1D36A00A1396C /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testmessage; + }; + name = Release; + }; + DB166DEC16A1D50C00A1396C /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testrelative; + }; + name = Debug; + }; + DB166DED16A1D50C00A1396C /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testrelative; + }; + name = Release; + }; + DB166E0316A1D57C00A1396C /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testrendercopyex; + }; + name = Debug; + }; + DB166E0416A1D57C00A1396C /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testrendercopyex; + }; + name = Release; + }; + DB166E1A16A1D5AD00A1396C /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testrendertarget; + }; + name = Debug; + }; + DB166E1B16A1D5AD00A1396C /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testrendertarget; + }; + name = Release; + }; + DB166E3616A1D64D00A1396C /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testrumble; + }; + name = Debug; + }; + DB166E3716A1D64D00A1396C /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testrumble; + }; + name = Release; + }; + DB166E5016A1D69000A1396C /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testscale; + }; + name = Debug; + }; + DB166E5116A1D69000A1396C /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testscale; + }; + name = Release; + }; + DB166E6616A1D6F300A1396C /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testshader; + }; + name = Debug; + }; + DB166E6716A1D6F300A1396C /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testshader; + }; + name = Release; + }; + DB166E7C16A1D78400A1396C /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testspriteminimal; + }; + name = Debug; + }; + DB166E7D16A1D78400A1396C /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testspriteminimal; + }; + name = Release; + }; + DB166E8F16A1D78C00A1396C /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = teststreaming; + }; + name = Debug; + }; + DB166E9016A1D78C00A1396C /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = teststreaming; + }; + name = Release; + }; + DB445EF618184B7000B306B0 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + INFOPLIST_FILE = "TestDropFile-Info.plist"; + PRODUCT_NAME = testdropfile; + }; + name = Debug; + }; + DB445EF718184B7000B306B0 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + INFOPLIST_FILE = "TestDropFile-Info.plist"; + PRODUCT_NAME = testdropfile; + }; + name = Release; + }; + DB89957C18A19ABA0092407C /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testhotplug; + }; + name = Debug; + }; + DB89957D18A19ABA0092407C /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = testhotplug; + }; + name = Release; + }; + DBEC54E81A1A81C3005B1EAB /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = controllermap; + }; + name = Debug; + }; + DBEC54E91A1A81C3005B1EAB /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = controllermap; + }; + name = Release; + }; + F3C17CE928E416D000E1A26D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + F3C17CEA28E416D000E1A26D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 0017958610741F7900F5D044 /* Build configuration list for PBXNativeTarget "testatomic" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0017958910741F7900F5D044 /* Debug */, + 0017958A10741F7900F5D044 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 001795A7107421BF00F5D044 /* Build configuration list for PBXNativeTarget "testaudioinfo" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 001795AA107421BF00F5D044 /* Debug */, + 001795AB107421BF00F5D044 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 0017971B10742F3200F5D044 /* Build configuration list for PBXNativeTarget "testgl2" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0017971E10742F3200F5D044 /* Debug */, + 0017971F10742F3200F5D044 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 00179742107430D600F5D044 /* Build configuration list for PBXNativeTarget "testhaptic" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 00179745107430D600F5D044 /* Debug */, + 00179746107430D600F5D044 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 00179768107431B300F5D044 /* Build configuration list for PBXNativeTarget "testdraw2" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0017976B107431B300F5D044 /* Debug */, + 0017976C107431B300F5D044 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 00179788107432AE00F5D044 /* Build configuration list for PBXNativeTarget "testime" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0017978B107432AE00F5D044 /* Debug */, + 0017978C107432AE00F5D044 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 001797A81074334C00F5D044 /* Build configuration list for PBXNativeTarget "testintersections" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 001797AB1074334C00F5D044 /* Debug */, + 001797AC1074334C00F5D044 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 001797CA107433C600F5D044 /* Build configuration list for PBXNativeTarget "testloadso" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 001797CD107433C600F5D044 /* Debug */, + 001797CE107433C600F5D044 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 0017980C1074355200F5D044 /* Build configuration list for PBXNativeTarget "testmultiaudio" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0017980F1074355200F5D044 /* Debug */, + 001798101074355200F5D044 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 0017988E1074392D00F5D044 /* Build configuration list for PBXNativeTarget "testnative" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 001798911074392D00F5D044 /* Debug */, + 001798921074392D00F5D044 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 001798AF107439DF00F5D044 /* Build configuration list for PBXNativeTarget "testpower" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 001798B2107439DF00F5D044 /* Debug */, + 001798B3107439DF00F5D044 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 001798EC10743BEC00F5D044 /* Build configuration list for PBXNativeTarget "testresample" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 001798EF10743BEC00F5D044 /* Debug */, + 001798F010743BEC00F5D044 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 0017991010743F1000F5D044 /* Build configuration list for PBXNativeTarget "testsprite2" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0017991310743F1000F5D044 /* Debug */, + 0017991410743F1000F5D044 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 0017993210743FB700F5D044 /* Build configuration list for PBXNativeTarget "testwm2" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0017993510743FB700F5D044 /* Debug */, + 0017993610743FB700F5D044 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 001B593808BDB826006539E9 /* Build configuration list for PBXNativeTarget "checkkeys" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 002A85B41073008E007319AE /* Debug */, + 002A85D61073009D007319AE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 001B594008BDB826006539E9 /* Build configuration list for PBXNativeTarget "loopwave" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 002A85B61073008E007319AE /* Debug */, + 002A85D81073009D007319AE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 001B595008BDB826006539E9 /* Build configuration list for PBXNativeTarget "testerror" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 002A85BC1073008E007319AE /* Debug */, + 002A85DE1073009D007319AE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 001B595C08BDB826006539E9 /* Build configuration list for PBXNativeTarget "testthread" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 002A85CA1073008E007319AE /* Debug */, + 002A85EC1073009D007319AE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 001B596008BDB826006539E9 /* Build configuration list for PBXNativeTarget "testjoystick" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 002A85C11073008E007319AE /* Debug */, + 002A85E31073009D007319AE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 001B596408BDB826006539E9 /* Build configuration list for PBXNativeTarget "testkeys" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 002A85C21073008E007319AE /* Debug */, + 002A85E41073009D007319AE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 001B596808BDB826006539E9 /* Build configuration list for PBXNativeTarget "testlock" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 002A85C31073008E007319AE /* Debug */, + 002A85E51073009D007319AE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 001B597008BDB826006539E9 /* Build configuration list for PBXNativeTarget "testsem" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 002A85C81073008E007319AE /* Debug */, + 002A85EA1073009D007319AE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 001B597808BDB826006539E9 /* Build configuration list for PBXNativeTarget "testtimer" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 002A85CB1073008E007319AE /* Debug */, + 002A85ED1073009D007319AE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 001B598008BDB826006539E9 /* Build configuration list for PBXNativeTarget "testversion" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 002A85CC1073008E007319AE /* Debug */, + 002A85EE1073009D007319AE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 001B599408BDB826006539E9 /* Build configuration list for PBXNativeTarget "torturethread" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 002A85D11073008E007319AE /* Debug */, + 002A85F31073009D007319AE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 001B599808BDB826006539E9 /* Build configuration list for PBXAggregateTarget "All" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 002A85B31073008E007319AE /* Debug */, + 002A85D51073009D007319AE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 001B5A0C08BDB826006539E9 /* Build configuration list for PBXProject "SDLTest" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 002A85B21073008E007319AE /* Debug */, + 002A85D41073009D007319AE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 002F340E09CA1BFF00EBEB88 /* Build configuration list for PBXNativeTarget "testfile" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 002A85BD1073008E007319AE /* Debug */, + 002A85DF1073009D007319AE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 002F342D09CA1F0300EBEB88 /* Build configuration list for PBXNativeTarget "testiconv" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 002A85C01073008E007319AE /* Debug */, + 002A85E21073009D007319AE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 002F344909CA1FB300EBEB88 /* Build configuration list for PBXNativeTarget "testoverlay2" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 002A85C51073008E007319AE /* Debug */, + 002A85E71073009D007319AE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 002F346609CA204F00EBEB88 /* Build configuration list for PBXNativeTarget "testplatform" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 002A85C71073008E007319AE /* Debug */, + 002A85E91073009D007319AE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 4537749A1209150C002F0F45 /* Build configuration list for PBXNativeTarget "testshape" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4537749712091509002F0F45 /* Debug */, + 4537749812091509002F0F45 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + BBFC08CA164C6862003E6A99 /* Build configuration list for PBXNativeTarget "testgamecontroller" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BBFC08CB164C6862003E6A99 /* Debug */, + BBFC08CC164C6862003E6A99 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + DB0F48E917CA51E5008798C5 /* Build configuration list for PBXNativeTarget "testdrawchessboard" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DB0F48EA17CA51E5008798C5 /* Debug */, + DB0F48EB17CA51E5008798C5 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + DB0F48FE17CA5212008798C5 /* Build configuration list for PBXNativeTarget "testfilesystem" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DB0F48FF17CA5212008798C5 /* Debug */, + DB0F490017CA5212008798C5 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + DB166D8016A1D12400A1396C /* Build configuration list for PBXNativeTarget "SDL_test" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DB166D8116A1D12400A1396C /* Debug */, + DB166D8216A1D12400A1396C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + DB166DBC16A1D2F600A1396C /* Build configuration list for PBXNativeTarget "testgesture" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DB166DBD16A1D2F600A1396C /* Debug */, + DB166DBE16A1D2F600A1396C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + DB166DD216A1D36A00A1396C /* Build configuration list for PBXNativeTarget "testmessage" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DB166DD316A1D36A00A1396C /* Debug */, + DB166DD416A1D36A00A1396C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + DB166DEB16A1D50C00A1396C /* Build configuration list for PBXNativeTarget "testrelative" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DB166DEC16A1D50C00A1396C /* Debug */, + DB166DED16A1D50C00A1396C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + DB166E0216A1D57C00A1396C /* Build configuration list for PBXNativeTarget "testrendercopyex" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DB166E0316A1D57C00A1396C /* Debug */, + DB166E0416A1D57C00A1396C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + DB166E1916A1D5AD00A1396C /* Build configuration list for PBXNativeTarget "testrendertarget" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DB166E1A16A1D5AD00A1396C /* Debug */, + DB166E1B16A1D5AD00A1396C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + DB166E3516A1D64D00A1396C /* Build configuration list for PBXNativeTarget "testrumble" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DB166E3616A1D64D00A1396C /* Debug */, + DB166E3716A1D64D00A1396C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + DB166E4F16A1D69000A1396C /* Build configuration list for PBXNativeTarget "testscale" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DB166E5016A1D69000A1396C /* Debug */, + DB166E5116A1D69000A1396C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + DB166E6516A1D6F300A1396C /* Build configuration list for PBXNativeTarget "testshader" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DB166E6616A1D6F300A1396C /* Debug */, + DB166E6716A1D6F300A1396C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + DB166E7B16A1D78400A1396C /* Build configuration list for PBXNativeTarget "testspriteminimal" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DB166E7C16A1D78400A1396C /* Debug */, + DB166E7D16A1D78400A1396C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + DB166E8E16A1D78C00A1396C /* Build configuration list for PBXNativeTarget "teststreaming" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DB166E8F16A1D78C00A1396C /* Debug */, + DB166E9016A1D78C00A1396C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + DB445EF518184B7000B306B0 /* Build configuration list for PBXNativeTarget "testdropfile" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DB445EF618184B7000B306B0 /* Debug */, + DB445EF718184B7000B306B0 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + DB89957B18A19ABA0092407C /* Build configuration list for PBXNativeTarget "testhotplug" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DB89957C18A19ABA0092407C /* Debug */, + DB89957D18A19ABA0092407C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + DBEC54E71A1A81C3005B1EAB /* Build configuration list for PBXNativeTarget "controllermap" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DBEC54E81A1A81C3005B1EAB /* Debug */, + DBEC54E91A1A81C3005B1EAB /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + F3C17CE828E416D000E1A26D /* Build configuration list for PBXNativeTarget "testgeometry" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + F3C17CE928E416D000E1A26D /* Debug */, + F3C17CEA28E416D000E1A26D /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; +/* End XCConfigurationList section */ + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/engine/lib/sdl/Xcode/SDLTest/TestDropFile-Info.plist b/engine/lib/sdl/Xcode/SDLTest/TestDropFile-Info.plist new file mode 100644 index 000000000..c9f6cb835 --- /dev/null +++ b/engine/lib/sdl/Xcode/SDLTest/TestDropFile-Info.plist @@ -0,0 +1,35 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleDocumentTypes + + + CFBundleTypeRole + Viewer + LSHandlerRank + Alternate + LSItemContentTypes + + public.data + + + + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + org.libsdl.test-dropfile + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1.0 + LSMinimumSystemVersion + 10.7 + + diff --git a/engine/lib/sdl/Xcode/SDLTest/config.xcconfig b/engine/lib/sdl/Xcode/SDLTest/config.xcconfig new file mode 100644 index 000000000..a73eec4d7 --- /dev/null +++ b/engine/lib/sdl/Xcode/SDLTest/config.xcconfig @@ -0,0 +1,14 @@ +// +// config.xcconfig +// SDL tests +// + +// Configuration settings file format documentation can be found at: +// https://help.apple.com/xcode/#/dev745c5c974 + +// Include any optional config for this build +#include? "build.xcconfig" + +CONFIG_FRAMEWORK_LDFLAGS[sdk=macos*] = $(inherited) -framework SDL2 -framework AudioToolbox -framework Carbon -framework Cocoa -framework CoreAudio -framework CoreHaptics -framework CoreVideo -framework ForceFeedback -framework GameController -framework IOKit -framework Metal +CONFIG_FRAMEWORK_LDFLAGS[sdk=iphone*] = $(inherited) -framework SDL2 -framework AVFoundation -framework AudioToolbox -framework CoreGraphics -framework CoreHaptics -framework CoreMotion -framework Foundation -framework GameController -framework Metal -framework OpenGLES -framework QuartzCore -framework UIKit +CONFIG_FRAMEWORK_LDFLAGS[sdk=appletv*] = $(inherited) -framework SDL2 -framework AVFoundation -framework AudioToolbox -framework CoreGraphics -framework CoreHaptics -framework Foundation -framework GameController -framework Metal -framework OpenGLES -framework QuartzCore -framework UIKit diff --git a/engine/lib/sdl/Xcode/XcodeDocSet/Doxyfile b/engine/lib/sdl/Xcode/XcodeDocSet/Doxyfile new file mode 100644 index 000000000..961ac98ef --- /dev/null +++ b/engine/lib/sdl/Xcode/XcodeDocSet/Doxyfile @@ -0,0 +1,1558 @@ +# Doxyfile 1.6.1 + +# 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 a sequence of words surrounded +# by quotes) that should identify the project. + +PROJECT_NAME = SDL + +# 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 = 1.3.0 + +# 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, Lithuanian, Norwegian, Macedonian, Persian, +# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, 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 = NO + +# 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. + +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 is your file systems +# 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 = YES + +# 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 = YES + +# 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 = + +# 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, C#, 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 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 make 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 to 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 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 = YES + +# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to +# determine which symbols to keep in memory and which to flush to disk. +# When the cache is full, less often used symbols will be written to disk. +# For small to medium size projects (<1000 input files) the default value is +# probably good enough. For larger projects a too small cache size can cause +# doxygen to be busy swapping symbols to and from disk most of the time +# causing a significant performance penality. +# If the system has enough physical memory increasing the cache will improve the +# performance by keeping more symbols in memory. Note that the value works on +# a logarithmic scale so increasing the size by one will rougly double the +# memory usage. The cache size is given by this formula: +# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, +# corresponding to a cache size of 2^16 = 65536 symbols + +SYMBOL_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 and EXTRACT_STATIC tags are set to YES + +EXTRACT_ALL = YES + +# 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_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 = NO + +# 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 namespace 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 = YES + +# 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 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 = NO + +# 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 + +# 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 sectionname ... \endif. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines +# the initial value of a variable or define 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 defines 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 + +# If the sources in your project are distributed over multiple directories +# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy +# in the documentation. The default is NO. + +SHOW_DIRECTORIES = NO + +# 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 = NO + +# 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. The 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 = + +#--------------------------------------------------------------------------- +# 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 = YES + +# 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 + +# This WARN_NO_PARAMDOC option can be abled 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 = YES + +# 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 = ../../include + +# 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++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx +# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90 + +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 \ + *.mm \ + *.dox \ + *.py \ + *.f90 \ + *.f \ + *.vhd \ + *.vhdl + +# 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 = NO + +# The EXCLUDE tag can be used to specify files and/or directories that should +# 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. + +EXCLUDE = + +# The EXCLUDE_SYMLINKS tag can be used select whether or not files or +# directories that are symbolic links (a Unix filesystem 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. + +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, INPUT_FILTER +# is applied to all files. + +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 + +#--------------------------------------------------------------------------- +# 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 and C++ 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 = YES + +# 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 = YES + +# 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 = NO + +#--------------------------------------------------------------------------- +# 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. + +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 the tag is left blank doxygen +# will generate a default style sheet. Note that doxygen will try to copy +# the style sheet file to the HTML output directory, so don't put your own +# stylesheet in the HTML output directory as well, or it will be erased! + +HTML_STYLESHEET = + +# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, +# files or namespaces will be aligned in HTML using tables. If set to +# NO a bullet list will be used. + +HTML_ALIGN_MEMBERS = 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. For this to work a browser that supports +# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox +# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). + +HTML_DYNAMIC_SECTIONS = NO + +# 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 = YES + +# 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 for SDL" + +# 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.libsdl.sdl + +# 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 = SDL.chm + +# 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 = "C:/Program Files/HTML Help Workshop/hhc.exe" + +# 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 = YES + +# 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 = + +# 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 = + +# The DISABLE_INDEX tag can be used to turn on/off the condensed index at +# top of each HTML page. The value NO (the default) enables the index and +# the value YES disables it. + +DISABLE_INDEX = NO + +# This tag can be used to set the number of enum values (range [1..20]) +# that doxygen will group on one line in the generated HTML documentation. + +ENUM_VALUES_PER_LINE = 4 + +# 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. + +GENERATE_TREEVIEW = NO + +# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories, +# and Class Hierarchy pages using a tree view instead of an ordered list. + +USE_INLINE_TREES = NO + +# 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 + +# 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 + +# When the SEARCHENGINE tag is enable 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) or Qt help (GENERATE_QHP) +# there is already a search function so this one should typically +# be disabled. + +SEARCHENGINE = NO + +#--------------------------------------------------------------------------- +# 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 = NO + +# 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. + +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, a4wide, letter, legal and +# executive. If left blank a4wide will be used. + +PAPER_TYPE = a4wide + +# 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 = + +# 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 + +#--------------------------------------------------------------------------- +# 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 stylesheet 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 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 = YES + +# 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 = YES + +# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files +# in the INCLUDE_PATH (see below) will be search if a #include is found. + +SEARCH_INCLUDES = NO + +# 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. + +EXPAND_AS_DEFINED = DECLSPEC \ + SDLCALL + +# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then +# doxygen's preprocessor will remove all function-like macros that are alone +# on a line, have an all uppercase name, and do not end with a semicolon. Such +# function macros are typically used for boiler-plate code, and 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. +# Optionally an initial location of the external documentation +# can be added for each tagfile. 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. If a location is present for each tag, the installdox tool +# does not have to be run to correct the links. +# 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 + +# 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 is superseded by the HAVE_DOT option below. This is only a +# fallback. It is recommended to install and use dot, since it yields more +# powerful graphs. + +CLASS_DIAGRAMS = NO + +# 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 + +# By default doxygen will write a font called FreeSans.ttf to the output +# directory and reference it in all dot files that doxygen generates. This +# font does not include all possible unicode characters however, so when you need +# these (or just want a differently looking font) you can specify the font name +# using DOT_FONTNAME. You need 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 = FreeSans + +# 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 output directory to look for the +# FreeSans.ttf font (which doxygen will put there itself). If you specify a +# different font using DOT_FONTNAME you can set the path where dot +# can find it using this tag. + +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 +# 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 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 graphical hierarchy of all classes instead of a textual one. + +GRAPHICAL_HIERARCHY = YES + +# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES 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 png, jpg, or gif +# If left blank png will be used. + +DOT_IMAGE_FORMAT = png + +# 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 = /Applications/Graphviz.app/Contents/MacOS + +# 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 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 = 67 + +# 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 = 2 + +# 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/engine/lib/sdl/acinclude/ac_check_define.m4 b/engine/lib/sdl/acinclude/ac_check_define.m4 new file mode 100644 index 000000000..d0e4c0c67 --- /dev/null +++ b/engine/lib/sdl/acinclude/ac_check_define.m4 @@ -0,0 +1,14 @@ +AC_DEFUN([AC_CHECK_DEFINE],[AC_REQUIRE([AC_PROG_CPP])dnl + AC_CACHE_CHECK(for $1 in $2, ac_cv_define_$1, + AC_EGREP_CPP([YES_IS_DEFINED], [ +#include <$2> +#ifdef $1 +YES_IS_DEFINED +#endif + ], ac_cv_define_$1=yes, ac_cv_define_$1=no) + ) + if test "$ac_cv_define_$1" = "yes" ; then + AC_DEFINE([HAVE_$1],[],[Added by AC_CHECK_DEFINE]) + fi +])dnl + diff --git a/engine/lib/sdl/acinclude/alsa.m4 b/engine/lib/sdl/acinclude/alsa.m4 new file mode 100644 index 000000000..1a276a23d --- /dev/null +++ b/engine/lib/sdl/acinclude/alsa.m4 @@ -0,0 +1,144 @@ +dnl Configure Paths for Alsa +dnl Some modifications by Richard Boulton +dnl Christopher Lansdown +dnl Jaroslav Kysela +dnl Last modification: alsa.m4,v 1.23 2004/01/16 18:14:22 tiwai Exp +dnl AM_PATH_ALSA([MINIMUM-VERSION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) +dnl Test for libasound, and define ALSA_CFLAGS and ALSA_LIBS as appropriate. +dnl enables arguments --with-alsa-prefix= +dnl --with-alsa-inc-prefix= +dnl --disable-alsatest +dnl +dnl For backwards compatibility, if ACTION_IF_NOT_FOUND is not specified, +dnl and the alsa libraries are not found, a fatal AC_MSG_ERROR() will result. +dnl + +AC_DEFUN([AM_PATH_ALSA], +[dnl Save the original CFLAGS, LDFLAGS, and LIBS +alsa_save_CFLAGS="$CFLAGS" +alsa_save_LDFLAGS="$LDFLAGS" +alsa_save_LIBS="$LIBS" +alsa_found=yes + +dnl +dnl Get the cflags and libraries for alsa +dnl +AC_ARG_WITH(alsa-prefix, +[ --with-alsa-prefix=PFX Prefix where Alsa library is installed(optional)], +[alsa_prefix="$withval"], [alsa_prefix=""]) + +AC_ARG_WITH(alsa-inc-prefix, +[ --with-alsa-inc-prefix=PFX Prefix where include libraries are (optional)], +[alsa_inc_prefix="$withval"], [alsa_inc_prefix=""]) + +dnl FIXME: this is not yet implemented +AC_ARG_ENABLE(alsatest, +[ --disable-alsatest Do not try to compile and run a test Alsa program], +[enable_alsatest="$enableval"], +[enable_alsatest=yes]) + +dnl Add any special include directories +AC_MSG_CHECKING(for ALSA CFLAGS) +if test "$alsa_inc_prefix" != "" ; then + ALSA_CFLAGS="$ALSA_CFLAGS -I$alsa_inc_prefix" + CFLAGS="$CFLAGS -I$alsa_inc_prefix" +fi +AC_MSG_RESULT($ALSA_CFLAGS) + +dnl add any special lib dirs +AC_MSG_CHECKING(for ALSA LDFLAGS) +if test "$alsa_prefix" != "" ; then + ALSA_LIBS="$ALSA_LIBS -L$alsa_prefix" + LDFLAGS="$LDFLAGS $ALSA_LIBS" +fi + +dnl add the alsa library +ALSA_LIBS="$ALSA_LIBS -lasound -lm -ldl -lpthread" +LIBS=`echo $LIBS | sed 's/-lm//'` +LIBS=`echo $LIBS | sed 's/-ldl//'` +LIBS=`echo $LIBS | sed 's/-lpthread//'` +LIBS=`echo $LIBS | sed 's/ //'` +LIBS="$ALSA_LIBS $LIBS" +AC_MSG_RESULT($ALSA_LIBS) + +dnl Check for a working version of libasound that is of the right version. +min_alsa_version=ifelse([$1], ,0.1.1, $1) +AC_MSG_CHECKING(for libasound headers version >= $min_alsa_version) +no_alsa="" + alsa_min_major_version=`echo $min_alsa_version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` + alsa_min_minor_version=`echo $min_alsa_version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` + alsa_min_micro_version=`echo $min_alsa_version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` + +AC_LANG_PUSH([C]) +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ +#include +]], [[ +/* ensure backward compatibility */ +#if !defined(SND_LIB_MAJOR) && defined(SOUNDLIB_VERSION_MAJOR) +#define SND_LIB_MAJOR SOUNDLIB_VERSION_MAJOR +#endif +#if !defined(SND_LIB_MINOR) && defined(SOUNDLIB_VERSION_MINOR) +#define SND_LIB_MINOR SOUNDLIB_VERSION_MINOR +#endif +#if !defined(SND_LIB_SUBMINOR) && defined(SOUNDLIB_VERSION_SUBMINOR) +#define SND_LIB_SUBMINOR SOUNDLIB_VERSION_SUBMINOR +#endif + +# if(SND_LIB_MAJOR > $alsa_min_major_version) + exit(0); +# else +# if(SND_LIB_MAJOR < $alsa_min_major_version) +# error not present +# endif + +# if(SND_LIB_MINOR > $alsa_min_minor_version) + exit(0); +# else +# if(SND_LIB_MINOR < $alsa_min_minor_version) +# error not present +# endif + +# if(SND_LIB_SUBMINOR < $alsa_min_micro_version) +# error not present +# endif +# endif +# endif +exit(0); +]])], + [AC_MSG_RESULT(found.)], + [AC_MSG_RESULT(not present.) + ifelse([$3], , [AC_MSG_ERROR(Sufficiently new version of libasound not found.)]) + alsa_found=no] +) +AC_LANG_POP([C]) + +dnl Now that we know that we have the right version, let's see if we have the library and not just the headers. +if test "x$enable_alsatest" = "xyes"; then +AC_CHECK_LIB([asound], [snd_ctl_open],, + [ifelse([$3], , [AC_MSG_ERROR(No linkable libasound was found.)]) + alsa_found=no] +) +fi + +if test "x$alsa_found" = "xyes" ; then + ifelse([$2], , :, [$2]) + LIBS=`echo $LIBS | sed 's/-lasound//g'` + LIBS=`echo $LIBS | sed 's/ //'` + LIBS="-lasound $LIBS" +fi +if test "x$alsa_found" = "xno" ; then + ifelse([$3], , :, [$3]) + CFLAGS="$alsa_save_CFLAGS" + LDFLAGS="$alsa_save_LDFLAGS" + LIBS="$alsa_save_LIBS" + ALSA_CFLAGS="" + ALSA_LIBS="" +fi + +dnl That should be it. Now just export out symbols: +AC_SUBST(ALSA_CFLAGS) +AC_SUBST(ALSA_LIBS) +]) diff --git a/engine/lib/sdl/acinclude/ax_check_compiler_flags.m4 b/engine/lib/sdl/acinclude/ax_check_compiler_flags.m4 new file mode 100644 index 000000000..35bfd2a5a --- /dev/null +++ b/engine/lib/sdl/acinclude/ax_check_compiler_flags.m4 @@ -0,0 +1,76 @@ +# =========================================================================== +# http://www.gnu.org/software/autoconf-archive/ax_check_compiler_flags.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_CHECK_COMPILER_FLAGS(FLAGS, [ACTION-SUCCESS], [ACTION-FAILURE]) +# +# DESCRIPTION +# +# Check whether the given compiler FLAGS work with the current language's +# compiler, or whether they give an error. (Warnings, however, are +# ignored.) +# +# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on +# success/failure. +# +# LICENSE +# +# Copyright (c) 2009 Steven G. Johnson +# Copyright (c) 2009 Matteo Frigo +# +# 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 3 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, see . +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +#serial 9 + +AC_DEFUN([AX_CHECK_COMPILER_FLAGS], +[AC_PREREQ(2.59) dnl for _AC_LANG_PREFIX +AC_MSG_CHECKING([whether _AC_LANG compiler accepts $1]) +dnl Some hackery here since AC_CACHE_VAL can't handle a non-literal varname: +AS_LITERAL_IF([$1], + [AC_CACHE_VAL(AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_[$1]), [ + ax_save_FLAGS=$[]_AC_LANG_PREFIX[]FLAGS + _AC_LANG_PREFIX[]FLAGS="$1" + AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], + AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_[$1])=yes, + AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_[$1])=no) + _AC_LANG_PREFIX[]FLAGS=$ax_save_FLAGS])], + [ax_save_FLAGS=$[]_AC_LANG_PREFIX[]FLAGS + _AC_LANG_PREFIX[]FLAGS="$1" + AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], + eval AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_[$1])=yes, + eval AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_[$1])=no) + _AC_LANG_PREFIX[]FLAGS=$ax_save_FLAGS]) +eval ax_check_compiler_flags=$AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_[$1]) +AC_MSG_RESULT($ax_check_compiler_flags) +if test "x$ax_check_compiler_flags" = xyes; then + m4_default([$2], :) +else + m4_default([$3], :) +fi +])dnl AX_CHECK_COMPILER_FLAGS diff --git a/engine/lib/sdl/acinclude/ax_compute_relative_paths.m4 b/engine/lib/sdl/acinclude/ax_compute_relative_paths.m4 new file mode 100644 index 000000000..102470798 --- /dev/null +++ b/engine/lib/sdl/acinclude/ax_compute_relative_paths.m4 @@ -0,0 +1,173 @@ +# ============================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_compute_relative_paths.html +# ============================================================================== +# +# SYNOPSIS +# +# AX_COMPUTE_RELATIVE_PATHS(PATH_LIST) +# +# DESCRIPTION +# +# PATH_LIST is a space-separated list of colon-separated triplets of the +# form 'FROM:TO:RESULT'. This function iterates over these triplets and +# set $RESULT to the relative path from $FROM to $TO. Note that $FROM and +# $TO needs to be absolute filenames for this macro to success. +# +# For instance, +# +# first=/usr/local/bin +# second=/usr/local/share +# AX_COMPUTE_RELATIVE_PATHS([first:second:fs second:first:sf]) +# # $fs is set to ../share +# # $sf is set to ../bin +# +# $FROM and $TO are both eval'ed recursively and normalized, this means +# that you can call this macro with autoconf's dirnames like `prefix' or +# `datadir'. For example: +# +# AX_COMPUTE_RELATIVE_PATHS([bindir:datadir:bin_to_data]) +# +# AX_COMPUTE_RELATIVE_PATHS should also works with DOS filenames. +# +# You may want to use this macro in order to make your package +# relocatable. Instead of hardcoding $datadir into your programs just +# encode $bin_to_data and try to determine $bindir at run-time. +# +# This macro requires AX_NORMALIZE_PATH and AX_RECURSIVE_EVAL. +# +# LICENSE +# +# Copyright (c) 2008 Alexandre Duret-Lutz +# +# 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, see . +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +#serial 12 + +AU_ALIAS([ADL_COMPUTE_RELATIVE_PATHS], [AX_COMPUTE_RELATIVE_PATHS]) +AC_DEFUN([AX_COMPUTE_RELATIVE_PATHS], +[for _lcl_i in $1; do + _lcl_from=\[$]`echo "[$]_lcl_i" | sed 's,:.*$,,'` + _lcl_to=\[$]`echo "[$]_lcl_i" | sed 's,^[[^:]]*:,,' | sed 's,:[[^:]]*$,,'` + _lcl_result_var=`echo "[$]_lcl_i" | sed 's,^.*:,,'` + AX_RECURSIVE_EVAL([[$]_lcl_from], [_lcl_from]) + AX_RECURSIVE_EVAL([[$]_lcl_to], [_lcl_to]) + _lcl_notation="$_lcl_from$_lcl_to" + AX_NORMALIZE_PATH([_lcl_from],['/']) + AX_NORMALIZE_PATH([_lcl_to],['/']) + AX_COMPUTE_RELATIVE_PATH([_lcl_from], [_lcl_to], [_lcl_result_tmp]) + AX_NORMALIZE_PATH([_lcl_result_tmp],["[$]_lcl_notation"]) + eval $_lcl_result_var='[$]_lcl_result_tmp' +done]) + +## Note: +## ***** +## The following helper macros are too fragile to be used out +## of AX_COMPUTE_RELATIVE_PATHS (mainly because they assume that +## paths are normalized), that's why I'm keeping them in the same file. +## Still, some of them maybe worth to reuse. + +dnl AX_COMPUTE_RELATIVE_PATH(FROM, TO, RESULT) +dnl =========================================== +dnl Compute the relative path to go from $FROM to $TO and set the value +dnl of $RESULT to that value. This function work on raw filenames +dnl (for instead it will considerate /usr//local and /usr/local as +dnl two distinct paths), you should really use AX_COMPUTE_RELATIVE_PATHS +dnl instead to have the paths sanitized automatically. +dnl +dnl For instance: +dnl first_dir=/somewhere/on/my/disk/bin +dnl second_dir=/somewhere/on/another/disk/share +dnl AX_COMPUTE_RELATIVE_PATH(first_dir, second_dir, first_to_second) +dnl will set $first_to_second to '../../../another/disk/share'. +AC_DEFUN([AX_COMPUTE_RELATIVE_PATH], +[AX_COMPUTE_COMMON_PATH([$1], [$2], [_lcl_common_prefix]) +AX_COMPUTE_BACK_PATH([$1], [_lcl_common_prefix], [_lcl_first_rel]) +AX_COMPUTE_SUFFIX_PATH([$2], [_lcl_common_prefix], [_lcl_second_suffix]) +$3="[$]_lcl_first_rel[$]_lcl_second_suffix"]) + +dnl AX_COMPUTE_COMMON_PATH(LEFT, RIGHT, RESULT) +dnl ============================================ +dnl Compute the common path to $LEFT and $RIGHT and set the result to $RESULT. +dnl +dnl For instance: +dnl first_path=/somewhere/on/my/disk/bin +dnl second_path=/somewhere/on/another/disk/share +dnl AX_COMPUTE_COMMON_PATH(first_path, second_path, common_path) +dnl will set $common_path to '/somewhere/on'. +AC_DEFUN([AX_COMPUTE_COMMON_PATH], +[$3='' +_lcl_second_prefix_match='' +while test "[$]_lcl_second_prefix_match" != 0; do + _lcl_first_prefix=`expr "x[$]$1" : "x\([$]$3/*[[^/]]*\)"` + _lcl_second_prefix_match=`expr "x[$]$2" : "x[$]_lcl_first_prefix"` + if test "[$]_lcl_second_prefix_match" != 0; then + if test "[$]_lcl_first_prefix" != "[$]$3"; then + $3="[$]_lcl_first_prefix" + else + _lcl_second_prefix_match=0 + fi + fi +done]) + +dnl AX_COMPUTE_SUFFIX_PATH(PATH, SUBPATH, RESULT) +dnl ============================================== +dnl Subtract $SUBPATH from $PATH, and set the resulting suffix +dnl (or the empty string if $SUBPATH is not a subpath of $PATH) +dnl to $RESULT. +dnl +dnl For instance: +dnl first_path=/somewhere/on/my/disk/bin +dnl second_path=/somewhere/on +dnl AX_COMPUTE_SUFFIX_PATH(first_path, second_path, common_path) +dnl will set $common_path to '/my/disk/bin'. +AC_DEFUN([AX_COMPUTE_SUFFIX_PATH], +[$3=`expr "x[$]$1" : "x[$]$2/*\(.*\)"`]) + +dnl AX_COMPUTE_BACK_PATH(PATH, SUBPATH, RESULT) +dnl ============================================ +dnl Compute the relative path to go from $PATH to $SUBPATH, knowing that +dnl $SUBPATH is a subpath of $PATH (any other words, only repeated '../' +dnl should be needed to move from $PATH to $SUBPATH) and set the value +dnl of $RESULT to that value. If $SUBPATH is not a subpath of PATH, +dnl set $RESULT to the empty string. +dnl +dnl For instance: +dnl first_path=/somewhere/on/my/disk/bin +dnl second_path=/somewhere/on +dnl AX_COMPUTE_BACK_PATH(first_path, second_path, back_path) +dnl will set $back_path to '../../../'. +AC_DEFUN([AX_COMPUTE_BACK_PATH], +[AX_COMPUTE_SUFFIX_PATH([$1], [$2], [_lcl_first_suffix]) +$3='' +_lcl_tmp='xxx' +while test "[$]_lcl_tmp" != ''; do + _lcl_tmp=`expr "x[$]_lcl_first_suffix" : "x[[^/]]*/*\(.*\)"` + if test "[$]_lcl_first_suffix" != ''; then + _lcl_first_suffix="[$]_lcl_tmp" + $3="../[$]$3" + fi +done]) diff --git a/engine/lib/sdl/acinclude/ax_gcc_archflag.m4 b/engine/lib/sdl/acinclude/ax_gcc_archflag.m4 new file mode 100644 index 000000000..d37a9134c --- /dev/null +++ b/engine/lib/sdl/acinclude/ax_gcc_archflag.m4 @@ -0,0 +1,215 @@ +# =========================================================================== +# http://www.gnu.org/software/autoconf-archive/ax_gcc_archflag.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_GCC_ARCHFLAG([PORTABLE?], [ACTION-SUCCESS], [ACTION-FAILURE]) +# +# DESCRIPTION +# +# This macro tries to guess the "native" arch corresponding to the target +# architecture for use with gcc's -march=arch or -mtune=arch flags. If +# found, the cache variable $ax_cv_gcc_archflag is set to this flag and +# ACTION-SUCCESS is executed; otherwise $ax_cv_gcc_archflag is is set to +# "unknown" and ACTION-FAILURE is executed. The default ACTION-SUCCESS is +# to add $ax_cv_gcc_archflag to the end of $CFLAGS. +# +# PORTABLE? should be either [yes] (default) or [no]. In the former case, +# the flag is set to -mtune (or equivalent) so that the architecture is +# only used for tuning, but the instruction set used is still portable. In +# the latter case, the flag is set to -march (or equivalent) so that +# architecture-specific instructions are enabled. +# +# The user can specify --with-gcc-arch= in order to override the +# macro's choice of architecture, or --without-gcc-arch to disable this. +# +# When cross-compiling, or if $CC is not gcc, then ACTION-FAILURE is +# called unless the user specified --with-gcc-arch manually. +# +# Requires macros: AX_CHECK_COMPILER_FLAGS, AX_GCC_X86_CPUID +# +# (The main emphasis here is on recent CPUs, on the principle that doing +# high-performance computing on old hardware is uncommon.) +# +# LICENSE +# +# Copyright (c) 2008 Steven G. Johnson +# Copyright (c) 2008 Matteo Frigo +# +# 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 3 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, see . +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +#serial 8 + +AC_DEFUN([AX_GCC_ARCHFLAG], +[AC_REQUIRE([AC_PROG_CC]) +AC_REQUIRE([AC_CANONICAL_HOST]) + +AC_ARG_WITH(gcc-arch, [AS_HELP_STRING([--with-gcc-arch=], [use architecture for gcc -march/-mtune, instead of guessing])], + ax_gcc_arch=$withval, ax_gcc_arch=yes) + +AC_MSG_CHECKING([for gcc architecture flag]) +AC_MSG_RESULT([]) +AC_CACHE_VAL(ax_cv_gcc_archflag, +[ +ax_cv_gcc_archflag="unknown" + +if test "$GCC" = yes; then + +if test "x$ax_gcc_arch" = xyes; then +ax_gcc_arch="" +if test "$cross_compiling" = no; then +case $host_cpu in + i[[3456]]86*|x86_64*) # use cpuid codes, in part from x86info-1.7 by D. Jones + AX_GCC_X86_CPUID(0) + AX_GCC_X86_CPUID(1) + case $ax_cv_gcc_x86_cpuid_0 in + *:756e6547:*:*) # Intel + case $ax_cv_gcc_x86_cpuid_1 in + *5[[48]]?:*:*:*) ax_gcc_arch="pentium-mmx pentium" ;; + *5??:*:*:*) ax_gcc_arch=pentium ;; + *6[[3456]]?:*:*:*) ax_gcc_arch="pentium2 pentiumpro" ;; + *6a?:*[[01]]:*:*) ax_gcc_arch="pentium2 pentiumpro" ;; + *6a?:*[[234]]:*:*) ax_gcc_arch="pentium3 pentiumpro" ;; + *6[[9d]]?:*:*:*) ax_gcc_arch="pentium-m pentium3 pentiumpro" ;; + *6[[78b]]?:*:*:*) ax_gcc_arch="pentium3 pentiumpro" ;; + *6??:*:*:*) ax_gcc_arch=pentiumpro ;; + *f3[[347]]:*:*:*|*f4[1347]:*:*:*) + case $host_cpu in + x86_64*) ax_gcc_arch="nocona pentium4 pentiumpro" ;; + *) ax_gcc_arch="prescott pentium4 pentiumpro" ;; + esac ;; + *f??:*:*:*) ax_gcc_arch="pentium4 pentiumpro";; + esac ;; + *:68747541:*:*) # AMD + case $ax_cv_gcc_x86_cpuid_1 in + *5[[67]]?:*:*:*) ax_gcc_arch=k6 ;; + *5[[8d]]?:*:*:*) ax_gcc_arch="k6-2 k6" ;; + *5[[9]]?:*:*:*) ax_gcc_arch="k6-3 k6" ;; + *60?:*:*:*) ax_gcc_arch=k7 ;; + *6[[12]]?:*:*:*) ax_gcc_arch="athlon k7" ;; + *6[[34]]?:*:*:*) ax_gcc_arch="athlon-tbird k7" ;; + *67?:*:*:*) ax_gcc_arch="athlon-4 athlon k7" ;; + *6[[68a]]?:*:*:*) + AX_GCC_X86_CPUID(0x80000006) # L2 cache size + case $ax_cv_gcc_x86_cpuid_0x80000006 in + *:*:*[[1-9a-f]]??????:*) # (L2 = ecx >> 16) >= 256 + ax_gcc_arch="athlon-xp athlon-4 athlon k7" ;; + *) ax_gcc_arch="athlon-4 athlon k7" ;; + esac ;; + *f[[4cef8b]]?:*:*:*) ax_gcc_arch="athlon64 k8" ;; + *f5?:*:*:*) ax_gcc_arch="opteron k8" ;; + *f7?:*:*:*) ax_gcc_arch="athlon-fx opteron k8" ;; + *f??:*:*:*) ax_gcc_arch="k8" ;; + esac ;; + *:746e6543:*:*) # IDT + case $ax_cv_gcc_x86_cpuid_1 in + *54?:*:*:*) ax_gcc_arch=winchip-c6 ;; + *58?:*:*:*) ax_gcc_arch=winchip2 ;; + *6[[78]]?:*:*:*) ax_gcc_arch=c3 ;; + *69?:*:*:*) ax_gcc_arch="c3-2 c3" ;; + esac ;; + esac + if test x"$ax_gcc_arch" = x; then # fallback + case $host_cpu in + i586*) ax_gcc_arch=pentium ;; + i686*) ax_gcc_arch=pentiumpro ;; + esac + fi + ;; + + sparc*) + AC_PATH_PROG([PRTDIAG], [prtdiag], [prtdiag], [$PATH:/usr/platform/`uname -i`/sbin/:/usr/platform/`uname -m`/sbin/]) + cputype=`(((grep cpu /proc/cpuinfo | cut -d: -f2) ; ($PRTDIAG -v |grep -i sparc) ; grep -i cpu /var/run/dmesg.boot ) | head -n 1) 2> /dev/null` + cputype=`echo "$cputype" | tr -d ' -' |tr $as_cr_LETTERS $as_cr_letters` + case $cputype in + *ultrasparciv*) ax_gcc_arch="ultrasparc4 ultrasparc3 ultrasparc v9" ;; + *ultrasparciii*) ax_gcc_arch="ultrasparc3 ultrasparc v9" ;; + *ultrasparc*) ax_gcc_arch="ultrasparc v9" ;; + *supersparc*|*tms390z5[[05]]*) ax_gcc_arch="supersparc v8" ;; + *hypersparc*|*rt62[[056]]*) ax_gcc_arch="hypersparc v8" ;; + *cypress*) ax_gcc_arch=cypress ;; + esac ;; + + alphaev5) ax_gcc_arch=ev5 ;; + alphaev56) ax_gcc_arch=ev56 ;; + alphapca56) ax_gcc_arch="pca56 ev56" ;; + alphapca57) ax_gcc_arch="pca57 pca56 ev56" ;; + alphaev6) ax_gcc_arch=ev6 ;; + alphaev67) ax_gcc_arch=ev67 ;; + alphaev68) ax_gcc_arch="ev68 ev67" ;; + alphaev69) ax_gcc_arch="ev69 ev68 ev67" ;; + alphaev7) ax_gcc_arch="ev7 ev69 ev68 ev67" ;; + alphaev79) ax_gcc_arch="ev79 ev7 ev69 ev68 ev67" ;; + + powerpc*) + cputype=`((grep cpu /proc/cpuinfo | head -n 1 | cut -d: -f2 | cut -d, -f1 | sed 's/ //g') ; /usr/bin/machine ; /bin/machine; grep CPU /var/run/dmesg.boot | head -n 1 | cut -d" " -f2) 2> /dev/null` + cputype=`echo $cputype | sed -e 's/ppc//g;s/ *//g'` + case $cputype in + *750*) ax_gcc_arch="750 G3" ;; + *740[[0-9]]*) ax_gcc_arch="$cputype 7400 G4" ;; + *74[[4-5]][[0-9]]*) ax_gcc_arch="$cputype 7450 G4" ;; + *74[[0-9]][[0-9]]*) ax_gcc_arch="$cputype G4" ;; + *970*) ax_gcc_arch="970 G5 power4";; + *POWER4*|*power4*|*gq*) ax_gcc_arch="power4 970";; + *POWER5*|*power5*|*gr*|*gs*) ax_gcc_arch="power5 power4 970";; + 603ev|8240) ax_gcc_arch="$cputype 603e 603";; + *) ax_gcc_arch=$cputype ;; + esac + ax_gcc_arch="$ax_gcc_arch powerpc" + ;; +esac +fi # not cross-compiling +fi # guess arch + +if test "x$ax_gcc_arch" != x -a "x$ax_gcc_arch" != xno; then +for arch in $ax_gcc_arch; do + if test "x[]m4_default([$1],yes)" = xyes; then # if we require portable code + flags="-mtune=$arch" + # -mcpu=$arch and m$arch generate nonportable code on every arch except + # x86. And some other arches (e.g. Alpha) don't accept -mtune. Grrr. + case $host_cpu in i*86|x86_64*) flags="$flags -mcpu=$arch -m$arch";; esac + else + flags="-march=$arch -mcpu=$arch -m$arch" + fi + for flag in $flags; do + AX_CHECK_COMPILER_FLAGS($flag, [ax_cv_gcc_archflag=$flag; break]) + done + test "x$ax_cv_gcc_archflag" = xunknown || break +done +fi + +fi # $GCC=yes +]) +AC_MSG_CHECKING([for gcc architecture flag]) +AC_MSG_RESULT($ax_cv_gcc_archflag) +if test "x$ax_cv_gcc_archflag" = xunknown; then + m4_default([$3],:) +else + m4_default([$2], [CFLAGS="$CFLAGS $ax_cv_gcc_archflag"]) +fi +]) diff --git a/engine/lib/sdl/acinclude/ax_gcc_x86_cpuid.m4 b/engine/lib/sdl/acinclude/ax_gcc_x86_cpuid.m4 new file mode 100644 index 000000000..7d46fee02 --- /dev/null +++ b/engine/lib/sdl/acinclude/ax_gcc_x86_cpuid.m4 @@ -0,0 +1,79 @@ +# =========================================================================== +# http://www.gnu.org/software/autoconf-archive/ax_gcc_x86_cpuid.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_GCC_X86_CPUID(OP) +# +# DESCRIPTION +# +# On Pentium and later x86 processors, with gcc or a compiler that has a +# compatible syntax for inline assembly instructions, run a small program +# that executes the cpuid instruction with input OP. This can be used to +# detect the CPU type. +# +# On output, the values of the eax, ebx, ecx, and edx registers are stored +# as hexadecimal strings as "eax:ebx:ecx:edx" in the cache variable +# ax_cv_gcc_x86_cpuid_OP. +# +# If the cpuid instruction fails (because you are running a +# cross-compiler, or because you are not using gcc, or because you are on +# a processor that doesn't have this instruction), ax_cv_gcc_x86_cpuid_OP +# is set to the string "unknown". +# +# This macro mainly exists to be used in AX_GCC_ARCHFLAG. +# +# LICENSE +# +# Copyright (c) 2008 Steven G. Johnson +# Copyright (c) 2008 Matteo Frigo +# +# 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 3 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, see . +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +#serial 7 + +AC_DEFUN([AX_GCC_X86_CPUID], +[AC_REQUIRE([AC_PROG_CC]) +AC_LANG_PUSH([C]) +AC_CACHE_CHECK(for x86 cpuid $1 output, ax_cv_gcc_x86_cpuid_$1, + [AC_RUN_IFELSE([AC_LANG_PROGRAM([#include ], [ + int op = $1, eax, ebx, ecx, edx; + FILE *f; + __asm__("cpuid" + : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx) + : "a" (op)); + f = fopen("conftest_cpuid", "w"); if (!f) return 1; + fprintf(f, "%x:%x:%x:%x\n", eax, ebx, ecx, edx); + fclose(f); + return 0; +])], + [ax_cv_gcc_x86_cpuid_$1=`cat conftest_cpuid`; rm -f conftest_cpuid], + [ax_cv_gcc_x86_cpuid_$1=unknown; rm -f conftest_cpuid], + [ax_cv_gcc_x86_cpuid_$1=unknown])]) +AC_LANG_POP([C]) +]) diff --git a/engine/lib/sdl/acinclude/ax_normalize_path.m4 b/engine/lib/sdl/acinclude/ax_normalize_path.m4 new file mode 100644 index 000000000..b789a9369 --- /dev/null +++ b/engine/lib/sdl/acinclude/ax_normalize_path.m4 @@ -0,0 +1,115 @@ +# =========================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_normalize_path.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_NORMALIZE_PATH(VARNAME, [REFERENCE_STRING]) +# +# DESCRIPTION +# +# Perform some cleanups on the value of $VARNAME (interpreted as a path): +# +# - empty paths are changed to '.' +# - trailing slashes are removed +# - repeated slashes are squeezed except a leading doubled slash '//' +# (which might indicate a networked disk on some OS). +# +# REFERENCE_STRING is used to turn '/' into '\' and vice-versa: if +# REFERENCE_STRING contains some backslashes, all slashes and backslashes +# are turned into backslashes, otherwise they are all turned into slashes. +# +# This makes processing of DOS filenames quite easier, because you can +# turn a filename to the Unix notation, make your processing, and turn it +# back to original notation. +# +# filename='A:\FOO\\BAR\' +# old_filename="$filename" +# # Switch to the unix notation +# AX_NORMALIZE_PATH([filename], ["/"]) +# # now we have $filename = 'A:/FOO/BAR' and we can process it as if +# # it was a Unix path. For instance let's say that you want +# # to append '/subpath': +# filename="$filename/subpath" +# # finally switch back to the original notation +# AX_NORMALIZE_PATH([filename], ["$old_filename"]) +# # now $filename equals to 'A:\FOO\BAR\subpath' +# +# One good reason to make all path processing with the unix convention is +# that backslashes have a special meaning in many cases. For instance +# +# expr 'A:\FOO' : 'A:\Foo' +# +# will return 0 because the second argument is a regex in which +# backslashes have to be backslashed. In other words, to have the two +# strings to match you should write this instead: +# +# expr 'A:\Foo' : 'A:\\Foo' +# +# Such behavior makes DOS filenames extremely unpleasant to work with. So +# temporary turn your paths to the Unix notation, and revert them to the +# original notation after the processing. See the macro +# AX_COMPUTE_RELATIVE_PATHS for a concrete example of this. +# +# REFERENCE_STRING defaults to $VARIABLE, this means that slashes will be +# converted to backslashes if $VARIABLE already contains some backslashes +# (see $thirddir below). +# +# firstdir='/usr/local//share' +# seconddir='C:\Program Files\\' +# thirddir='C:\home/usr/' +# AX_NORMALIZE_PATH([firstdir]) +# AX_NORMALIZE_PATH([seconddir]) +# AX_NORMALIZE_PATH([thirddir]) +# # $firstdir = '/usr/local/share' +# # $seconddir = 'C:\Program Files' +# # $thirddir = 'C:\home\usr' +# +# LICENSE +# +# Copyright (c) 2008 Alexandre Duret-Lutz +# +# 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, see . +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +#serial 8 + +AU_ALIAS([ADL_NORMALIZE_PATH], [AX_NORMALIZE_PATH]) +AC_DEFUN([AX_NORMALIZE_PATH], +[case ":[$]$1:" in +# change empty paths to '.' + ::) $1='.' ;; +# strip trailing slashes + :*[[\\/]]:) $1=`echo "[$]$1" | sed 's,[[\\/]]*[$],,'` ;; + :*:) ;; +esac +# squeeze repeated slashes +case ifelse($2,,"[$]$1",$2) in +# if the path contains any backslashes, turn slashes into backslashes + *\\*) $1=`echo "[$]$1" | sed 's,\(.\)[[\\/]][[\\/]]*,\1\\\\,g'` ;; +# if the path contains slashes, also turn backslashes into slashes + *) $1=`echo "[$]$1" | sed 's,\(.\)[[\\/]][[\\/]]*,\1/,g'` ;; +esac]) diff --git a/engine/lib/sdl/acinclude/ax_recursive_eval.m4 b/engine/lib/sdl/acinclude/ax_recursive_eval.m4 new file mode 100644 index 000000000..0625aca22 --- /dev/null +++ b/engine/lib/sdl/acinclude/ax_recursive_eval.m4 @@ -0,0 +1,56 @@ +# =========================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_recursive_eval.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_RECURSIVE_EVAL(VALUE, RESULT) +# +# DESCRIPTION +# +# Interpolate the VALUE in loop until it doesn't change, and set the +# result to $RESULT. WARNING: It's easy to get an infinite loop with some +# unsane input. +# +# LICENSE +# +# Copyright (c) 2008 Alexandre Duret-Lutz +# +# 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, see . +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +#serial 1 + +AC_DEFUN([AX_RECURSIVE_EVAL], +[_lcl_receval="$1" +$2=`(test "x$prefix" = xNONE && prefix="$ac_default_prefix" + test "x$exec_prefix" = xNONE && exec_prefix="${prefix}" + _lcl_receval_old='' + while test "[$]_lcl_receval_old" != "[$]_lcl_receval"; do + _lcl_receval_old="[$]_lcl_receval" + eval _lcl_receval="\"[$]_lcl_receval\"" + done + echo "[$]_lcl_receval")`]) diff --git a/engine/lib/sdl/acinclude/esd.m4 b/engine/lib/sdl/acinclude/esd.m4 new file mode 100644 index 000000000..bd4b84849 --- /dev/null +++ b/engine/lib/sdl/acinclude/esd.m4 @@ -0,0 +1,173 @@ +# Configure paths for ESD +# Manish Singh 98-9-30 +# stolen back from Frank Belew +# stolen from Manish Singh +# Shamelessly stolen from Owen Taylor + +dnl AM_PATH_ESD([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) +dnl Test for ESD, and define ESD_CFLAGS and ESD_LIBS +dnl +AC_DEFUN([AM_PATH_ESD], +[dnl +dnl Get the cflags and libraries from the esd-config script +dnl +AC_ARG_WITH(esd-prefix,[ --with-esd-prefix=PFX Prefix where ESD is installed (optional)], + esd_prefix="$withval", esd_prefix="") +AC_ARG_WITH(esd-exec-prefix,[ --with-esd-exec-prefix=PFX Exec prefix where ESD is installed (optional)], + esd_exec_prefix="$withval", esd_exec_prefix="") +AC_ARG_ENABLE(esdtest, [ --disable-esdtest Do not try to compile and run a test ESD program], + , enable_esdtest=yes) + + if test x$esd_exec_prefix != x ; then + esd_args="$esd_args --exec-prefix=$esd_exec_prefix" + if test x${ESD_CONFIG+set} != xset ; then + ESD_CONFIG=$esd_exec_prefix/bin/esd-config + fi + fi + if test x$esd_prefix != x ; then + esd_args="$esd_args --prefix=$esd_prefix" + if test x${ESD_CONFIG+set} != xset ; then + ESD_CONFIG=$esd_prefix/bin/esd-config + fi + fi + + AC_PATH_PROG(ESD_CONFIG, esd-config, no) + min_esd_version=ifelse([$1], ,0.2.7,$1) + AC_MSG_CHECKING(for ESD - version >= $min_esd_version) + no_esd="" + if test "$ESD_CONFIG" = "no" ; then + no_esd=yes + else + ESD_CFLAGS=`$ESD_CONFIG $esdconf_args --cflags` + ESD_LIBS=`$ESD_CONFIG $esdconf_args --libs` + + esd_major_version=`$ESD_CONFIG $esd_args --version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` + esd_minor_version=`$ESD_CONFIG $esd_args --version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` + esd_micro_version=`$ESD_CONFIG $esd_config_args --version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` + if test "x$enable_esdtest" = "xyes" ; then + AC_LANG_PUSH([C]) + ac_save_CFLAGS="$CFLAGS" + ac_save_LIBS="$LIBS" + CFLAGS="$CFLAGS $ESD_CFLAGS" + LIBS="$LIBS $ESD_LIBS" +dnl +dnl Now check if the installed ESD is sufficiently new. (Also sanity +dnl checks the results of esd-config to some extent +dnl + rm -f conf.esdtest + AC_RUN_IFELSE([AC_LANG_SOURCE([[ +#include +#include +#include + +int main (void) +{ + int major, minor, micro; + FILE *fp = fopen("conf.esdtest", "w"); + + if (fp) fclose(fp); + + if (sscanf("$min_esd_version", "%d.%d.%d", &major, &minor, µ) != 3) { + printf("%s, bad version string\n", "$min_esd_version"); + exit(1); + } + + if (($esd_major_version > major) || + (($esd_major_version == major) && ($esd_minor_version > minor)) || + (($esd_major_version == major) && ($esd_minor_version == minor) && ($esd_micro_version >= micro))) + { + return 0; + } + else + { + printf("\n*** 'esd-config --version' returned %d.%d.%d, but the minimum version\n", $esd_major_version, $esd_minor_version, $esd_micro_version); + printf("*** of ESD required is %d.%d.%d. If esd-config is correct, then it is\n", major, minor, micro); + printf("*** best to upgrade to the required version.\n"); + printf("*** If esd-config was wrong, set the environment variable ESD_CONFIG\n"); + printf("*** to point to the correct copy of esd-config, and remove the file\n"); + printf("*** config.cache before re-running configure\n"); + return 1; + } +} +]])], [], [no_esd=yes], [echo $ac_n "cross compiling; assumed OK... $ac_c"]) + CFLAGS="$ac_save_CFLAGS" + LIBS="$ac_save_LIBS" + AC_LANG_POP([C]) + fi + fi + if test "x$no_esd" = x ; then + AC_MSG_RESULT(yes) + ifelse([$2], , :, [$2]) + else + AC_MSG_RESULT(no) + if test "$ESD_CONFIG" = "no" ; then +dnl echo "*** The esd-config script installed by ESD could not be found" +dnl echo "*** If ESD was installed in PREFIX, make sure PREFIX/bin is in" +dnl echo "*** your path, or set the ESD_CONFIG environment variable to the" +dnl echo "*** full path to esd-config." + : + else + if test -f conf.esdtest ; then + : + else + echo "*** Could not run ESD test program, checking why..." + CFLAGS="$CFLAGS $ESD_CFLAGS" + LIBS="$LIBS $ESD_LIBS" + AC_LANG_PUSH([C]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[ +#include +#include +]], [[ return 0; ]])], + [ echo "*** The test program compiled, but did not run. This usually means" + echo "*** that the run-time linker is not finding ESD or finding the wrong" + echo "*** version of ESD. If it is not finding ESD, 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 ESD was incorrectly installed" + echo "*** or that you have moved ESD since it was installed. In the latter case, you" + echo "*** may want to edit the esd-config script: $ESD_CONFIG" ]) + CFLAGS="$ac_save_CFLAGS" + LIBS="$ac_save_LIBS" + AC_LANG_POP([C]) + fi + fi + ESD_CFLAGS="" + ESD_LIBS="" + ifelse([$3], , :, [$3]) + fi + AC_SUBST(ESD_CFLAGS) + AC_SUBST(ESD_LIBS) + rm -f conf.esdtest +]) + +dnl AM_ESD_SUPPORTS_MULTIPLE_RECORD([ACTION-IF-SUPPORTS [, ACTION-IF-NOT-SUPPORTS]]) +dnl Test, whether esd supports multiple recording clients (version >=0.2.21) +dnl +AC_DEFUN([AM_ESD_SUPPORTS_MULTIPLE_RECORD], +[dnl + AC_MSG_NOTICE([whether installed esd version supports multiple recording clients]) + ac_save_ESD_CFLAGS="$ESD_CFLAGS" + ac_save_ESD_LIBS="$ESD_LIBS" + AM_PATH_ESD(0.2.21, + ifelse([$1], , [ + AM_CONDITIONAL(ESD_SUPPORTS_MULTIPLE_RECORD, true) + AC_DEFINE(ESD_SUPPORTS_MULTIPLE_RECORD, 1, + [Define if you have esound with support of multiple recording clients.])], + [$1]), + ifelse([$2], , [AM_CONDITIONAL(ESD_SUPPORTS_MULTIPLE_RECORD, false)], [$2]) + if test "x$ac_save_ESD_CFLAGS" != x ; then + ESD_CFLAGS="$ac_save_ESD_CFLAGS" + fi + if test "x$ac_save_ESD_LIBS" != x ; then + ESD_LIBS="$ac_save_ESD_LIBS" + fi + ) +]) diff --git a/engine/lib/sdl/acinclude/libtool.m4 b/engine/lib/sdl/acinclude/libtool.m4 new file mode 100644 index 000000000..dd8e3962e --- /dev/null +++ b/engine/lib/sdl/acinclude/libtool.m4 @@ -0,0 +1,8399 @@ +# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- +# +# Copyright (C) 1996-2001, 2003-2015 Free Software Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +m4_define([_LT_COPYING], [dnl +# Copyright (C) 2014 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# GNU Libtool 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 of the License, or +# (at your option) any later version. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program or library that is built +# using GNU Libtool, you may include this file under the same +# distribution terms that you use for the rest of that program. +# +# GNU Libtool 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, see . +]) + +# serial 58 LT_INIT + + +# LT_PREREQ(VERSION) +# ------------------ +# Complain and exit if this libtool version is less that VERSION. +m4_defun([LT_PREREQ], +[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, + [m4_default([$3], + [m4_fatal([Libtool version $1 or higher is required], + 63)])], + [$2])]) + + +# _LT_CHECK_BUILDDIR +# ------------------ +# Complain if the absolute build directory name contains unusual characters +m4_defun([_LT_CHECK_BUILDDIR], +[case `pwd` in + *\ * | *\ *) + AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; +esac +]) + + +# LT_INIT([OPTIONS]) +# ------------------ +AC_DEFUN([LT_INIT], +[AC_PREREQ([2.62])dnl We use AC_PATH_PROGS_FEATURE_CHECK +AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl +AC_BEFORE([$0], [LT_LANG])dnl +AC_BEFORE([$0], [LT_OUTPUT])dnl +AC_BEFORE([$0], [LTDL_INIT])dnl +m4_require([_LT_CHECK_BUILDDIR])dnl + +dnl Autoconf doesn't catch unexpanded LT_ macros by default: +m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl +m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl +dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 +dnl unless we require an AC_DEFUNed macro: +AC_REQUIRE([LTOPTIONS_VERSION])dnl +AC_REQUIRE([LTSUGAR_VERSION])dnl +AC_REQUIRE([LTVERSION_VERSION])dnl +AC_REQUIRE([LTOBSOLETE_VERSION])dnl +m4_require([_LT_PROG_LTMAIN])dnl + +_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) + +dnl Parse OPTIONS +_LT_SET_OPTIONS([$0], [$1]) + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS=$ltmain + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' +AC_SUBST(LIBTOOL)dnl + +_LT_SETUP + +# Only expand once: +m4_define([LT_INIT]) +])# LT_INIT + +# Old names: +AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) +AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PROG_LIBTOOL], []) +dnl AC_DEFUN([AM_PROG_LIBTOOL], []) + + +# _LT_PREPARE_CC_BASENAME +# ----------------------- +m4_defun([_LT_PREPARE_CC_BASENAME], [ +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +func_cc_basename () +{ + for cc_temp in @S|@*""; do + case $cc_temp in + compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; + distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; + \-*) ;; + *) break;; + esac + done + func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +} +])# _LT_PREPARE_CC_BASENAME + + +# _LT_CC_BASENAME(CC) +# ------------------- +# It would be clearer to call AC_REQUIREs from _LT_PREPARE_CC_BASENAME, +# but that macro is also expanded into generated libtool script, which +# arranges for $SED and $ECHO to be set by different means. +m4_defun([_LT_CC_BASENAME], +[m4_require([_LT_PREPARE_CC_BASENAME])dnl +AC_REQUIRE([_LT_DECL_SED])dnl +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl +func_cc_basename $1 +cc_basename=$func_cc_basename_result +]) + + +# _LT_FILEUTILS_DEFAULTS +# ---------------------- +# It is okay to use these file commands and assume they have been set +# sensibly after 'm4_require([_LT_FILEUTILS_DEFAULTS])'. +m4_defun([_LT_FILEUTILS_DEFAULTS], +[: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} +])# _LT_FILEUTILS_DEFAULTS + + +# _LT_SETUP +# --------- +m4_defun([_LT_SETUP], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl + +_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl +dnl +_LT_DECL([], [host_alias], [0], [The host system])dnl +_LT_DECL([], [host], [0])dnl +_LT_DECL([], [host_os], [0])dnl +dnl +_LT_DECL([], [build_alias], [0], [The build system])dnl +_LT_DECL([], [build], [0])dnl +_LT_DECL([], [build_os], [0])dnl +dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +dnl +AC_REQUIRE([AC_PROG_LN_S])dnl +test -z "$LN_S" && LN_S="ln -s" +_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl +dnl +AC_REQUIRE([LT_CMD_MAX_LEN])dnl +_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl +_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl +dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_CHECK_SHELL_FEATURES])dnl +m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl +m4_require([_LT_CMD_RELOAD])dnl +m4_require([_LT_CHECK_MAGIC_METHOD])dnl +m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl +m4_require([_LT_CMD_OLD_ARCHIVE])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +m4_require([_LT_WITH_SYSROOT])dnl +m4_require([_LT_CMD_TRUNCATE])dnl + +_LT_CONFIG_LIBTOOL_INIT([ +# See if we are running on zsh, and set the options that allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST +fi +]) +if test -n "${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST +fi + +_LT_CHECK_OBJDIR + +m4_require([_LT_TAG_COMPILER])dnl + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test set != "${COLLECT_NAMES+set}"; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a '.a' archive for static linking (except MSVC and +# ICC, which need '.lib'). +libext=a + +with_gnu_ld=$lt_cv_prog_gnu_ld + +old_CC=$CC +old_CFLAGS=$CFLAGS + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +_LT_CC_BASENAME([$compiler]) + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + _LT_PATH_MAGIC + fi + ;; +esac + +# Use C for the default configuration in the libtool script +LT_SUPPORTED_TAG([CC]) +_LT_LANG_C_CONFIG +_LT_LANG_DEFAULT_CONFIG +_LT_CONFIG_COMMANDS +])# _LT_SETUP + + +# _LT_PREPARE_SED_QUOTE_VARS +# -------------------------- +# Define a few sed substitution that help us do robust quoting. +m4_defun([_LT_PREPARE_SED_QUOTE_VARS], +[# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\([["`\\]]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' +]) + +# _LT_PROG_LTMAIN +# --------------- +# Note that this code is called both from 'configure', and 'config.status' +# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, +# 'config.status' has no value for ac_aux_dir unless we are using Automake, +# so we pass a copy along to make sure it has a sensible value anyway. +m4_defun([_LT_PROG_LTMAIN], +[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl +_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) +ltmain=$ac_aux_dir/ltmain.sh +])# _LT_PROG_LTMAIN + + +## ------------------------------------- ## +## Accumulate code for creating libtool. ## +## ------------------------------------- ## + +# So that we can recreate a full libtool script including additional +# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS +# in macros and then make a single call at the end using the 'libtool' +# label. + + +# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) +# ---------------------------------------- +# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL_INIT], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_INIT], + [$1 +])])]) + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_INIT]) + + +# _LT_CONFIG_LIBTOOL([COMMANDS]) +# ------------------------------ +# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], + [$1 +])])]) + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) + + +# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) +# ----------------------------------------------------- +m4_defun([_LT_CONFIG_SAVE_COMMANDS], +[_LT_CONFIG_LIBTOOL([$1]) +_LT_CONFIG_LIBTOOL_INIT([$2]) +]) + + +# _LT_FORMAT_COMMENT([COMMENT]) +# ----------------------------- +# Add leading comment marks to the start of each line, and a trailing +# full-stop to the whole comment if one is not present already. +m4_define([_LT_FORMAT_COMMENT], +[m4_ifval([$1], [ +m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], + [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) +)]) + + + +## ------------------------ ## +## FIXME: Eliminate VARNAME ## +## ------------------------ ## + + +# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) +# ------------------------------------------------------------------- +# CONFIGNAME is the name given to the value in the libtool script. +# VARNAME is the (base) name used in the configure script. +# VALUE may be 0, 1 or 2 for a computed quote escaped value based on +# VARNAME. Any other value will be used directly. +m4_define([_LT_DECL], +[lt_if_append_uniq([lt_decl_varnames], [$2], [, ], + [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], + [m4_ifval([$1], [$1], [$2])]) + lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) + m4_ifval([$4], + [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) + lt_dict_add_subkey([lt_decl_dict], [$2], + [tagged?], [m4_ifval([$5], [yes], [no])])]) +]) + + +# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) +# -------------------------------------------------------- +m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) + + +# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_tag_varnames], +[_lt_decl_filter([tagged?], [yes], $@)]) + + +# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) +# --------------------------------------------------------- +m4_define([_lt_decl_filter], +[m4_case([$#], + [0], [m4_fatal([$0: too few arguments: $#])], + [1], [m4_fatal([$0: too few arguments: $#: $1])], + [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], + [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], + [lt_dict_filter([lt_decl_dict], $@)])[]dnl +]) + + +# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) +# -------------------------------------------------- +m4_define([lt_decl_quote_varnames], +[_lt_decl_filter([value], [1], $@)]) + + +# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_dquote_varnames], +[_lt_decl_filter([value], [2], $@)]) + + +# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_varnames_tagged], +[m4_assert([$# <= 2])dnl +_$0(m4_quote(m4_default([$1], [[, ]])), + m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), + m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) +m4_define([_lt_decl_varnames_tagged], +[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) + + +# lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_all_varnames], +[_$0(m4_quote(m4_default([$1], [[, ]])), + m4_if([$2], [], + m4_quote(lt_decl_varnames), + m4_quote(m4_shift($@))))[]dnl +]) +m4_define([_lt_decl_all_varnames], +[lt_join($@, lt_decl_varnames_tagged([$1], + lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl +]) + + +# _LT_CONFIG_STATUS_DECLARE([VARNAME]) +# ------------------------------------ +# Quote a variable value, and forward it to 'config.status' so that its +# declaration there will have the same value as in 'configure'. VARNAME +# must have a single quote delimited value for this to work. +m4_define([_LT_CONFIG_STATUS_DECLARE], +[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) + + +# _LT_CONFIG_STATUS_DECLARATIONS +# ------------------------------ +# We delimit libtool config variables with single quotes, so when +# we write them to config.status, we have to be sure to quote all +# embedded single quotes properly. In configure, this macro expands +# each variable declared with _LT_DECL (and _LT_TAGDECL) into: +# +# ='`$ECHO "$" | $SED "$delay_single_quote_subst"`' +m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], +[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), + [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) + + +# _LT_LIBTOOL_TAGS +# ---------------- +# Output comment and list of tags supported by the script +m4_defun([_LT_LIBTOOL_TAGS], +[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl +available_tags='_LT_TAGS'dnl +]) + + +# _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) +# ----------------------------------- +# Extract the dictionary values for VARNAME (optionally with TAG) and +# expand to a commented shell variable setting: +# +# # Some comment about what VAR is for. +# visible_name=$lt_internal_name +m4_define([_LT_LIBTOOL_DECLARE], +[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], + [description])))[]dnl +m4_pushdef([_libtool_name], + m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl +m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), + [0], [_libtool_name=[$]$1], + [1], [_libtool_name=$lt_[]$1], + [2], [_libtool_name=$lt_[]$1], + [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl +m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl +]) + + +# _LT_LIBTOOL_CONFIG_VARS +# ----------------------- +# Produce commented declarations of non-tagged libtool config variables +# suitable for insertion in the LIBTOOL CONFIG section of the 'libtool' +# script. Tagged libtool config variables (even for the LIBTOOL CONFIG +# section) are produced by _LT_LIBTOOL_TAG_VARS. +m4_defun([_LT_LIBTOOL_CONFIG_VARS], +[m4_foreach([_lt_var], + m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) + + +# _LT_LIBTOOL_TAG_VARS(TAG) +# ------------------------- +m4_define([_LT_LIBTOOL_TAG_VARS], +[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) + + +# _LT_TAGVAR(VARNAME, [TAGNAME]) +# ------------------------------ +m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) + + +# _LT_CONFIG_COMMANDS +# ------------------- +# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of +# variables for single and double quote escaping we saved from calls +# to _LT_DECL, we can put quote escaped variables declarations +# into 'config.status', and then the shell code to quote escape them in +# for loops in 'config.status'. Finally, any additional code accumulated +# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. +m4_defun([_LT_CONFIG_COMMANDS], +[AC_PROVIDE_IFELSE([LT_OUTPUT], + dnl If the libtool generation code has been placed in $CONFIG_LT, + dnl instead of duplicating it all over again into config.status, + dnl then we will have config.status run $CONFIG_LT later, so it + dnl needs to know what name is stored there: + [AC_CONFIG_COMMANDS([libtool], + [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], + dnl If the libtool generation code is destined for config.status, + dnl expand the accumulated commands and init code now: + [AC_CONFIG_COMMANDS([libtool], + [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) +])#_LT_CONFIG_COMMANDS + + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], +[ + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +_LT_CONFIG_STATUS_DECLARATIONS +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$[]1 +_LTECHO_EOF' +} + +# Quote evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_quote_varnames); do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_dquote_varnames); do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +_LT_OUTPUT_LIBTOOL_INIT +]) + +# _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) +# ------------------------------------ +# Generate a child script FILE with all initialization necessary to +# reuse the environment learned by the parent script, and make the +# file executable. If COMMENT is supplied, it is inserted after the +# '#!' sequence but before initialization text begins. After this +# macro, additional text can be appended to FILE to form the body of +# the child script. The macro ends with non-zero status if the +# file could not be fully written (such as if the disk is full). +m4_ifdef([AS_INIT_GENERATED], +[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], +[m4_defun([_LT_GENERATED_FILE_INIT], +[m4_require([AS_PREPARE])]dnl +[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl +[lt_write_fail=0 +cat >$1 <<_ASEOF || lt_write_fail=1 +#! $SHELL +# Generated by $as_me. +$2 +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$1 <<\_ASEOF || lt_write_fail=1 +AS_SHELL_SANITIZE +_AS_PREPARE +exec AS_MESSAGE_FD>&1 +_ASEOF +test 0 = "$lt_write_fail" && chmod +x $1[]dnl +m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT + +# LT_OUTPUT +# --------- +# This macro allows early generation of the libtool script (before +# AC_OUTPUT is called), incase it is used in configure for compilation +# tests. +AC_DEFUN([LT_OUTPUT], +[: ${CONFIG_LT=./config.lt} +AC_MSG_NOTICE([creating $CONFIG_LT]) +_LT_GENERATED_FILE_INIT(["$CONFIG_LT"], +[# Run this file to recreate a libtool stub with the current configuration.]) + +cat >>"$CONFIG_LT" <<\_LTEOF +lt_cl_silent=false +exec AS_MESSAGE_LOG_FD>>config.log +{ + echo + AS_BOX([Running $as_me.]) +} >&AS_MESSAGE_LOG_FD + +lt_cl_help="\ +'$as_me' creates a local libtool stub from the current configuration, +for use in further configure time tests before the real libtool is +generated. + +Usage: $[0] [[OPTIONS]] + + -h, --help print this help, then exit + -V, --version print version number, then exit + -q, --quiet do not print progress messages + -d, --debug don't remove temporary files + +Report bugs to ." + +lt_cl_version="\ +m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl +m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) +configured by $[0], generated by m4_PACKAGE_STRING. + +Copyright (C) 2011 Free Software Foundation, Inc. +This config.lt script is free software; the Free Software Foundation +gives unlimited permision to copy, distribute and modify it." + +while test 0 != $[#] +do + case $[1] in + --version | --v* | -V ) + echo "$lt_cl_version"; exit 0 ;; + --help | --h* | -h ) + echo "$lt_cl_help"; exit 0 ;; + --debug | --d* | -d ) + debug=: ;; + --quiet | --q* | --silent | --s* | -q ) + lt_cl_silent=: ;; + + -*) AC_MSG_ERROR([unrecognized option: $[1] +Try '$[0] --help' for more information.]) ;; + + *) AC_MSG_ERROR([unrecognized argument: $[1] +Try '$[0] --help' for more information.]) ;; + esac + shift +done + +if $lt_cl_silent; then + exec AS_MESSAGE_FD>/dev/null +fi +_LTEOF + +cat >>"$CONFIG_LT" <<_LTEOF +_LT_OUTPUT_LIBTOOL_COMMANDS_INIT +_LTEOF + +cat >>"$CONFIG_LT" <<\_LTEOF +AC_MSG_NOTICE([creating $ofile]) +_LT_OUTPUT_LIBTOOL_COMMANDS +AS_EXIT(0) +_LTEOF +chmod +x "$CONFIG_LT" + +# configure is writing to config.log, but config.lt does its own redirection, +# appending to config.log, which fails on DOS, as config.log is still kept +# open by configure. Here we exec the FD to /dev/null, effectively closing +# config.log, so it can be properly (re)opened and appended to by config.lt. +lt_cl_success=: +test yes = "$silent" && + lt_config_lt_args="$lt_config_lt_args --quiet" +exec AS_MESSAGE_LOG_FD>/dev/null +$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false +exec AS_MESSAGE_LOG_FD>>config.log +$lt_cl_success || AS_EXIT(1) +])# LT_OUTPUT + + +# _LT_CONFIG(TAG) +# --------------- +# If TAG is the built-in tag, create an initial libtool script with a +# default configuration from the untagged config vars. Otherwise add code +# to config.status for appending the configuration named by TAG from the +# matching tagged config vars. +m4_defun([_LT_CONFIG], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_CONFIG_SAVE_COMMANDS([ + m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl + m4_if(_LT_TAG, [C], [ + # See if we are running on zsh, and set the options that allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST + fi + + cfgfile=${ofile}T + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL +# Generated automatically by $as_me ($PACKAGE) $VERSION +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# NOTE: Changes made to this file will be lost: look at ltmain.sh. + +# Provide generalized library-building support services. +# Written by Gordon Matzigkeit, 1996 + +_LT_COPYING +_LT_LIBTOOL_TAGS + +# Configured defaults for sys_lib_dlsearch_path munging. +: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} + +# ### BEGIN LIBTOOL CONFIG +_LT_LIBTOOL_CONFIG_VARS +_LT_LIBTOOL_TAG_VARS +# ### END LIBTOOL CONFIG + +_LT_EOF + + cat <<'_LT_EOF' >> "$cfgfile" + +# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE + +_LT_PREPARE_MUNGE_PATH_LIST +_LT_PREPARE_CC_BASENAME + +# ### END FUNCTIONS SHARED WITH CONFIGURE + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test set != "${COLLECT_NAMES+set}"; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + _LT_PROG_LTMAIN + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" +], +[cat <<_LT_EOF >> "$ofile" + +dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded +dnl in a comment (ie after a #). +# ### BEGIN LIBTOOL TAG CONFIG: $1 +_LT_LIBTOOL_TAG_VARS(_LT_TAG) +# ### END LIBTOOL TAG CONFIG: $1 +_LT_EOF +])dnl /m4_if +], +[m4_if([$1], [], [ + PACKAGE='$PACKAGE' + VERSION='$VERSION' + RM='$RM' + ofile='$ofile'], []) +])dnl /_LT_CONFIG_SAVE_COMMANDS +])# _LT_CONFIG + + +# LT_SUPPORTED_TAG(TAG) +# --------------------- +# Trace this macro to discover what tags are supported by the libtool +# --tag option, using: +# autoconf --trace 'LT_SUPPORTED_TAG:$1' +AC_DEFUN([LT_SUPPORTED_TAG], []) + + +# C support is built-in for now +m4_define([_LT_LANG_C_enabled], []) +m4_define([_LT_TAGS], []) + + +# LT_LANG(LANG) +# ------------- +# Enable libtool support for the given language if not already enabled. +AC_DEFUN([LT_LANG], +[AC_BEFORE([$0], [LT_OUTPUT])dnl +m4_case([$1], + [C], [_LT_LANG(C)], + [C++], [_LT_LANG(CXX)], + [Go], [_LT_LANG(GO)], + [Java], [_LT_LANG(GCJ)], + [Fortran 77], [_LT_LANG(F77)], + [Fortran], [_LT_LANG(FC)], + [Windows Resource], [_LT_LANG(RC)], + [m4_ifdef([_LT_LANG_]$1[_CONFIG], + [_LT_LANG($1)], + [m4_fatal([$0: unsupported language: "$1"])])])dnl +])# LT_LANG + + +# _LT_LANG(LANGNAME) +# ------------------ +m4_defun([_LT_LANG], +[m4_ifdef([_LT_LANG_]$1[_enabled], [], + [LT_SUPPORTED_TAG([$1])dnl + m4_append([_LT_TAGS], [$1 ])dnl + m4_define([_LT_LANG_]$1[_enabled], [])dnl + _LT_LANG_$1_CONFIG($1)])dnl +])# _LT_LANG + + +m4_ifndef([AC_PROG_GO], [ +############################################################ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_GO. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +############################################################ +m4_defun([AC_PROG_GO], +[AC_LANG_PUSH(Go)dnl +AC_ARG_VAR([GOC], [Go compiler command])dnl +AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl +_AC_ARG_VAR_LDFLAGS()dnl +AC_CHECK_TOOL(GOC, gccgo) +if test -z "$GOC"; then + if test -n "$ac_tool_prefix"; then + AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo]) + fi +fi +if test -z "$GOC"; then + AC_CHECK_PROG(GOC, gccgo, gccgo, false) +fi +])#m4_defun +])#m4_ifndef + + +# _LT_LANG_DEFAULT_CONFIG +# ----------------------- +m4_defun([_LT_LANG_DEFAULT_CONFIG], +[AC_PROVIDE_IFELSE([AC_PROG_CXX], + [LT_LANG(CXX)], + [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) + +AC_PROVIDE_IFELSE([AC_PROG_F77], + [LT_LANG(F77)], + [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) + +AC_PROVIDE_IFELSE([AC_PROG_FC], + [LT_LANG(FC)], + [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) + +dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal +dnl pulling things in needlessly. +AC_PROVIDE_IFELSE([AC_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([LT_PROG_GCJ], + [LT_LANG(GCJ)], + [m4_ifdef([AC_PROG_GCJ], + [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([A][M_PROG_GCJ], + [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([LT_PROG_GCJ], + [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) + +AC_PROVIDE_IFELSE([AC_PROG_GO], + [LT_LANG(GO)], + [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])]) + +AC_PROVIDE_IFELSE([LT_PROG_RC], + [LT_LANG(RC)], + [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) +])# _LT_LANG_DEFAULT_CONFIG + +# Obsolete macros: +AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) +AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) +AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) +AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) +AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_CXX], []) +dnl AC_DEFUN([AC_LIBTOOL_F77], []) +dnl AC_DEFUN([AC_LIBTOOL_FC], []) +dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) +dnl AC_DEFUN([AC_LIBTOOL_RC], []) + + +# _LT_TAG_COMPILER +# ---------------- +m4_defun([_LT_TAG_COMPILER], +[AC_REQUIRE([AC_PROG_CC])dnl + +_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl +_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl +_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl +_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC +])# _LT_TAG_COMPILER + + +# _LT_COMPILER_BOILERPLATE +# ------------------------ +# Check for compiler boilerplate output or warnings with +# the simple compiler test code. +m4_defun([_LT_COMPILER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* +])# _LT_COMPILER_BOILERPLATE + + +# _LT_LINKER_BOILERPLATE +# ---------------------- +# Check for linker boilerplate output or warnings with +# the simple link test code. +m4_defun([_LT_LINKER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* +])# _LT_LINKER_BOILERPLATE + +# _LT_REQUIRED_DARWIN_CHECKS +# ------------------------- +m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ + case $host_os in + rhapsody* | darwin*) + AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) + AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) + AC_CHECK_TOOL([LIPO], [lipo], [:]) + AC_CHECK_TOOL([OTOOL], [otool], [:]) + AC_CHECK_TOOL([OTOOL64], [otool64], [:]) + _LT_DECL([], [DSYMUTIL], [1], + [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) + _LT_DECL([], [NMEDIT], [1], + [Tool to change global to local symbols on Mac OS X]) + _LT_DECL([], [LIPO], [1], + [Tool to manipulate fat objects and archives on Mac OS X]) + _LT_DECL([], [OTOOL], [1], + [ldd/readelf like tool for Mach-O binaries on Mac OS X]) + _LT_DECL([], [OTOOL64], [1], + [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) + + AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], + [lt_cv_apple_cc_single_mod=no + if test -z "$LT_MULTI_MODULE"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test 0 = "$_lt_result"; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&AS_MESSAGE_LOG_FD + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi]) + + # Feature test to disable chained fixups since it is not + # compatible with '-undefined dynamic_lookup' + AC_CACHE_CHECK([for -no_fixup_chains linker flag], + [lt_cv_support_no_fixup_chains], + [ save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -Wl,-no_fixup_chains" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM([],[])], + lt_cv_support_no_fixup_chains=yes, + lt_cv_support_no_fixup_chains=no + ) + LDFLAGS=$save_LDFLAGS + ] + ) + + AC_CACHE_CHECK([for -exported_symbols_list linker flag], + [lt_cv_ld_exported_symbols_list], + [lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [lt_cv_ld_exported_symbols_list=yes], + [lt_cv_ld_exported_symbols_list=no]) + LDFLAGS=$save_LDFLAGS + ]) + + AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], + [lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD + echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD + $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD + echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD + $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD + cat > conftest.c << _LT_EOF +int main(void) { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&AS_MESSAGE_LOG_FD + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + ]) + case $host_os in + rhapsody* | darwin1.[[012]]) + _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + darwin*) + case $MACOSX_DEPLOYMENT_TARGET,$host in + 10.[[012]],*|,*powerpc*-darwin[[5-8]]*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + *) + if test yes = "$lt_cv_support_no_fixup_chains"; then + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup $wl-no_fixup_chains' + else + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' + fi + ;; + esac + ;; + esac + if test yes = "$lt_cv_apple_cc_single_mod"; then + _lt_dar_single_mod='$single_module' + fi + if test yes = "$lt_cv_ld_exported_symbols_list"; then + _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib' + fi + if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac +]) + + +# _LT_DARWIN_LINKER_FEATURES([TAG]) +# --------------------------------- +# Checks for linker and compiler features on darwin +m4_defun([_LT_DARWIN_LINKER_FEATURES], +[ + m4_require([_LT_REQUIRED_DARWIN_CHECKS]) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_automatic, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + if test yes = "$lt_cv_ld_force_load"; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], + [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) + else + _LT_TAGVAR(whole_archive_flag_spec, $1)='' + fi + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=$_lt_dar_allow_undefined + case $cc_basename in + ifort*|nagfor*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test yes = "$_lt_dar_can_shared"; then + output_verbose_link_cmd=func_echo_all + _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" + _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" + _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" + m4_if([$1], [CXX], +[ if test yes != "$lt_cv_apple_cc_single_mod"; then + _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil" + fi +],[]) + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi +]) + +# _LT_SYS_MODULE_PATH_AIX([TAGNAME]) +# ---------------------------------- +# Links a minimal program and checks the executable +# for the system default hardcoded library path. In most cases, +# this is /usr/lib:/lib, but when the MPI compilers are used +# the location of the communication and MPI libs are included too. +# If we don't find anything, use the default library path according +# to the aix ld manual. +# Store the results from the different compilers for each TAGNAME. +# Allow to override them for all tags through lt_cv_aix_libpath. +m4_defun([_LT_SYS_MODULE_PATH_AIX], +[m4_require([_LT_DECL_SED])dnl +if test set = "${lt_cv_aix_libpath+set}"; then + aix_libpath=$lt_cv_aix_libpath +else + AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], + [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ + lt_aix_libpath_sed='[ + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }]' + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi],[]) + if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=/usr/lib:/lib + fi + ]) + aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) +fi +])# _LT_SYS_MODULE_PATH_AIX + + +# _LT_SHELL_INIT(ARG) +# ------------------- +m4_define([_LT_SHELL_INIT], +[m4_divert_text([M4SH-INIT], [$1 +])])# _LT_SHELL_INIT + + + +# _LT_PROG_ECHO_BACKSLASH +# ----------------------- +# Find how we can fake an echo command that does not interpret backslash. +# In particular, with Autoconf 2.60 or later we add some code to the start +# of the generated configure script that will find a shell with a builtin +# printf (that we can use as an echo command). +m4_defun([_LT_PROG_ECHO_BACKSLASH], +[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +AC_MSG_CHECKING([how to print strings]) +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' +else + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$[]1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' +fi + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} + +case $ECHO in + printf*) AC_MSG_RESULT([printf]) ;; + print*) AC_MSG_RESULT([print -r]) ;; + *) AC_MSG_RESULT([cat]) ;; +esac + +m4_ifdef([_AS_DETECT_SUGGESTED], +[_AS_DETECT_SUGGESTED([ + test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test "X`printf %s $ECHO`" = "X$ECHO" \ + || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) + +_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) +_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) +])# _LT_PROG_ECHO_BACKSLASH + + +# _LT_WITH_SYSROOT +# ---------------- +AC_DEFUN([_LT_WITH_SYSROOT], +[AC_MSG_CHECKING([for sysroot]) +AC_ARG_WITH([sysroot], +[AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@], + [Search for dependent libraries within DIR (or the compiler's sysroot + if not specified).])], +[], [with_sysroot=no]) + +dnl lt_sysroot will always be passed unquoted. We quote it here +dnl in case the user passed a directory name. +lt_sysroot= +case $with_sysroot in #( + yes) + if test yes = "$GCC"; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + AC_MSG_RESULT([$with_sysroot]) + AC_MSG_ERROR([The sysroot must be an absolute path.]) + ;; +esac + + AC_MSG_RESULT([${lt_sysroot:-no}]) +_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl +[dependent libraries, and where our libraries should be installed.])]) + +# _LT_ENABLE_LOCK +# --------------- +m4_defun([_LT_ENABLE_LOCK], +[AC_ARG_ENABLE([libtool-lock], + [AS_HELP_STRING([--disable-libtool-lock], + [avoid locking (might break parallel builds)])]) +test no = "$enable_libtool_lock" || enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out what ABI is being produced by ac_compile, and set mode + # options accordingly. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE=32 + ;; + *ELF-64*) + HPUX_IA64_MODE=64 + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + if test yes = "$lt_cv_prog_gnu_ld"; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +mips64*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + emul=elf + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + emul="${emul}32" + ;; + *64-bit*) + emul="${emul}64" + ;; + esac + case `/usr/bin/file conftest.$ac_objext` in + *MSB*) + emul="${emul}btsmip" + ;; + *LSB*) + emul="${emul}ltsmip" + ;; + esac + case `/usr/bin/file conftest.$ac_objext` in + *N32*) + emul="${emul}n32" + ;; + esac + LD="${LD-ld} -m $emul" + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*|x86_64-gnu*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. Note that the listed cases only cover the + # situations where additional linker options are needed (such as when + # doing 32-bit compilation for a host where ld defaults to 64-bit, or + # vice versa); the common cases where no linker options are needed do + # not appear in the list. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*|x86_64-gnu*) + case `/usr/bin/file conftest.o` in + *x86-64*) + LD="${LD-ld} -m elf32_x86_64" + ;; + *) + LD="${LD-ld} -m elf_i386" + ;; + esac + ;; + powerpc64le-*linux*) + LD="${LD-ld} -m elf32lppclinux" + ;; + powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*|x86_64-gnu*) + LD="${LD-ld} -m elf_x86_64" + ;; + powerpcle-*linux*|powerpc64le-*linux*) + LD="${LD-ld} -m elf64lppc" + ;; + powerpc-*linux*|powerpc64-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS -belf" + AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, + [AC_LANG_PUSH(C) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) + AC_LANG_POP]) + if test yes != "$lt_cv_cc_needs_belf"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS=$SAVE_CFLAGS + fi + ;; +*-*solaris*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) + case $host in + i?86-*-solaris*|x86_64-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD=${LD-ld}_sol2 + fi + ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks=$enable_libtool_lock +])# _LT_ENABLE_LOCK + + +# _LT_PROG_AR +# ----------- +m4_defun([_LT_PROG_AR], +[AC_CHECK_TOOLS(AR, [ar], false) +: ${AR=ar} +: ${AR_FLAGS=cru} +_LT_DECL([], [AR], [1], [The archiver]) +_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) + +AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], + [lt_cv_ar_at_file=no + AC_COMPILE_IFELSE([AC_LANG_PROGRAM], + [echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' + AC_TRY_EVAL([lt_ar_try]) + if test 0 -eq "$ac_status"; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + AC_TRY_EVAL([lt_ar_try]) + if test 0 -ne "$ac_status"; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + ]) + ]) + +if test no = "$lt_cv_ar_at_file"; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi +_LT_DECL([], [archiver_list_spec], [1], + [How to feed a file listing to the archiver]) +])# _LT_PROG_AR + + +# _LT_CMD_OLD_ARCHIVE +# ------------------- +m4_defun([_LT_CMD_OLD_ARCHIVE], +[_LT_PROG_AR + +AC_CHECK_TOOL(STRIP, strip, :) +test -z "$STRIP" && STRIP=: +_LT_DECL([], [STRIP], [1], [A symbol stripping program]) + +AC_CHECK_TOOL(RANLIB, ranlib, :) +test -z "$RANLIB" && RANLIB=: +_LT_DECL([], [RANLIB], [1], + [Commands used to install an old-style archive]) + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" +fi + +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac +_LT_DECL([], [old_postinstall_cmds], [2]) +_LT_DECL([], [old_postuninstall_cmds], [2]) +_LT_TAGDECL([], [old_archive_cmds], [2], + [Commands used to build an old-style archive]) +_LT_DECL([], [lock_old_archive_extraction], [0], + [Whether to use a lock for old archive extraction]) +])# _LT_CMD_OLD_ARCHIVE + + +# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------------------- +# Check whether the given compiler option works +AC_DEFUN([_LT_COMPILER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$3" ## exclude from sc_useless_quotes_in_assignment + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + fi + $RM conftest* +]) + +if test yes = "[$]$2"; then + m4_if([$5], , :, [$5]) +else + m4_if([$6], , :, [$6]) +fi +])# _LT_COMPILER_OPTION + +# Old name: +AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) + + +# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------- +# Check whether the given linker option works +AC_DEFUN([_LT_LINKER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS $3" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&AS_MESSAGE_LOG_FD + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + else + $2=yes + fi + fi + $RM -r conftest* + LDFLAGS=$save_LDFLAGS +]) + +if test yes = "[$]$2"; then + m4_if([$4], , :, [$4]) +else + m4_if([$5], , :, [$5]) +fi +])# _LT_LINKER_OPTION + +# Old name: +AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) + + +# LT_CMD_MAX_LEN +#--------------- +AC_DEFUN([LT_CMD_MAX_LEN], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +# find the maximum length of command line arguments +AC_MSG_CHECKING([the maximum length of command line arguments]) +AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl + i=0 + teststring=ABCD + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | windows* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + bitrig* | darwin* | dragonfly* | freebsd* | midnightbsd* | netbsd* | openbsd*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len" && \ + test undefined != "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test X`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && + test 17 != "$i" # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac +]) +if test -n "$lt_cv_sys_max_cmd_len"; then + AC_MSG_RESULT($lt_cv_sys_max_cmd_len) +else + AC_MSG_RESULT(none) +fi +max_cmd_len=$lt_cv_sys_max_cmd_len +_LT_DECL([], [max_cmd_len], [0], + [What is the maximum length of a command?]) +])# LT_CMD_MAX_LEN + +# Old name: +AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) + + +# _LT_HEADER_DLFCN +# ---------------- +m4_defun([_LT_HEADER_DLFCN], +[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl +])# _LT_HEADER_DLFCN + + +# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, +# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) +# ---------------------------------------------------------------- +m4_defun([_LT_TRY_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +if test yes = "$cross_compiling"; then : + [$4] +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +[#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisibility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord (void) __attribute__((visibility("default"))); +#endif + +int fnord (void) { return 42; } +int main (void) +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +}] +_LT_EOF + if AC_TRY_EVAL(ac_link) && test -s "conftest$ac_exeext" 2>/dev/null; then + (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) $1 ;; + x$lt_dlneed_uscore) $2 ;; + x$lt_dlunknown|x*) $3 ;; + esac + else : + # compilation failed + $3 + fi +fi +rm -fr conftest* +])# _LT_TRY_DLOPEN_SELF + + +# LT_SYS_DLOPEN_SELF +# ------------------ +AC_DEFUN([LT_SYS_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +if test yes != "$enable_dlopen"; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen=load_add_on + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | windows* | pw32* | cegcc*) + lt_cv_dlopen=LoadLibrary + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl],[ + lt_cv_dlopen=dyld + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ]) + ;; + + tpf*) + # Don't try to run any link tests for TPF. We know it's impossible + # because TPF is a cross-compiler, and we know how we open DSOs. + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + lt_cv_dlopen_self=no + ;; + + *) + AC_CHECK_FUNC([shl_load], + [lt_cv_dlopen=shl_load], + [AC_CHECK_LIB([dld], [shl_load], + [lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld], + [AC_CHECK_FUNC([dlopen], + [lt_cv_dlopen=dlopen], + [AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl], + [AC_CHECK_LIB([svld], [dlopen], + [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld], + [AC_CHECK_LIB([dld], [dld_link], + [lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld]) + ]) + ]) + ]) + ]) + ]) + ;; + esac + + if test no = "$lt_cv_dlopen"; then + enable_dlopen=no + else + enable_dlopen=yes + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS=$CPPFLAGS + test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS=$LDFLAGS + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS=$LIBS + LIBS="$lt_cv_dlopen_libs $LIBS" + + AC_CACHE_CHECK([whether a program can dlopen itself], + lt_cv_dlopen_self, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, + lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) + ]) + + if test yes = "$lt_cv_dlopen_self"; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + AC_CACHE_CHECK([whether a statically linked program can dlopen itself], + lt_cv_dlopen_self_static, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, + lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) + ]) + fi + + CPPFLAGS=$save_CPPFLAGS + LDFLAGS=$save_LDFLAGS + LIBS=$save_LIBS + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi +_LT_DECL([dlopen_support], [enable_dlopen], [0], + [Whether dlopen is supported]) +_LT_DECL([dlopen_self], [enable_dlopen_self], [0], + [Whether dlopen of programs is supported]) +_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], + [Whether dlopen of statically linked programs is supported]) +])# LT_SYS_DLOPEN_SELF + +# Old name: +AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) + + +# _LT_COMPILER_C_O([TAGNAME]) +# --------------------------- +# Check to see if options -c and -o are simultaneously supported by compiler. +# This macro does not hard code the compiler like AC_PROG_CC_C_O. +m4_defun([_LT_COMPILER_C_O], +[m4_require([_LT_DECL_SED])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + fi + fi + chmod u+w . 2>&AS_MESSAGE_LOG_FD + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* +]) +_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], + [Does compiler simultaneously support -c and -o options?]) +])# _LT_COMPILER_C_O + + +# _LT_COMPILER_FILE_LOCKS([TAGNAME]) +# ---------------------------------- +# Check to see if we can do hard links to lock some files if needed +m4_defun([_LT_COMPILER_FILE_LOCKS], +[m4_require([_LT_ENABLE_LOCK])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_COMPILER_C_O([$1]) + +hard_links=nottested +if test no = "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" && test no != "$need_locks"; then + # do not overwrite the value of need_locks provided by the user + AC_MSG_CHECKING([if we can lock with hard links]) + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + AC_MSG_RESULT([$hard_links]) + if test no = "$hard_links"; then + AC_MSG_WARN(['$CC' does not support '-c -o', so 'make -j' may be unsafe]) + need_locks=warn + fi +else + need_locks=no +fi +_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) +])# _LT_COMPILER_FILE_LOCKS + + +# _LT_CHECK_OBJDIR +# ---------------- +m4_defun([_LT_CHECK_OBJDIR], +[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], +[rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null]) +objdir=$lt_cv_objdir +_LT_DECL([], [objdir], [0], + [The name of the directory that contains temporary libtool files])dnl +m4_pattern_allow([LT_OBJDIR])dnl +AC_DEFINE_UNQUOTED([LT_OBJDIR], "$lt_cv_objdir/", + [Define to the sub-directory where libtool stores uninstalled libraries.]) +])# _LT_CHECK_OBJDIR + + +# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) +# -------------------------------------- +# Check hardcoding attributes. +m4_defun([_LT_LINKER_HARDCODE_LIBPATH], +[AC_MSG_CHECKING([how to hardcode library paths into programs]) +_LT_TAGVAR(hardcode_action, $1)= +if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || + test -n "$_LT_TAGVAR(runpath_var, $1)" || + test yes = "$_LT_TAGVAR(hardcode_automatic, $1)"; then + + # We can hardcode non-existent directories. + if test no != "$_LT_TAGVAR(hardcode_direct, $1)" && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" && + test no != "$_LT_TAGVAR(hardcode_minus_L, $1)"; then + # Linking always hardcodes the temporary library directory. + _LT_TAGVAR(hardcode_action, $1)=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + _LT_TAGVAR(hardcode_action, $1)=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + _LT_TAGVAR(hardcode_action, $1)=unsupported +fi +AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) + +if test relink = "$_LT_TAGVAR(hardcode_action, $1)" || + test yes = "$_LT_TAGVAR(inherit_rpath, $1)"; then + # Fast installation is not supported + enable_fast_install=no +elif test yes = "$shlibpath_overrides_runpath" || + test no = "$enable_shared"; then + # Fast installation is not necessary + enable_fast_install=needless +fi +_LT_TAGDECL([], [hardcode_action], [0], + [How to hardcode a shared library path into an executable]) +])# _LT_LINKER_HARDCODE_LIBPATH + + +# _LT_CMD_STRIPLIB +# ---------------- +m4_defun([_LT_CMD_STRIPLIB], +[m4_require([_LT_DECL_EGREP]) +striplib= +old_striplib= +AC_MSG_CHECKING([whether stripping libraries is possible]) +if test -z "$STRIP"; then + AC_MSG_RESULT([no]) +else + if $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + old_striplib="$STRIP --strip-debug" + striplib="$STRIP --strip-unneeded" + AC_MSG_RESULT([yes]) + else + case $host_os in + darwin*) + # FIXME - insert some real tests, host_os isn't really good enough + striplib="$STRIP -x" + old_striplib="$STRIP -S" + AC_MSG_RESULT([yes]) + ;; + freebsd*) + if $STRIP -V 2>&1 | $GREP "elftoolchain" >/dev/null; then + old_striplib="$STRIP --strip-debug" + striplib="$STRIP --strip-unneeded" + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + ;; + *) + AC_MSG_RESULT([no]) + ;; + esac + fi +fi +_LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) +_LT_DECL([], [striplib], [1]) +])# _LT_CMD_STRIPLIB + + +# _LT_PREPARE_MUNGE_PATH_LIST +# --------------------------- +# Make sure func_munge_path_list() is defined correctly. +m4_defun([_LT_PREPARE_MUNGE_PATH_LIST], +[[# func_munge_path_list VARIABLE PATH +# ----------------------------------- +# VARIABLE is name of variable containing _space_ separated list of +# directories to be munged by the contents of PATH, which is string +# having a format: +# "DIR[:DIR]:" +# string "DIR[ DIR]" will be prepended to VARIABLE +# ":DIR[:DIR]" +# string "DIR[ DIR]" will be appended to VARIABLE +# "DIRP[:DIRP]::[DIRA:]DIRA" +# string "DIRP[ DIRP]" will be prepended to VARIABLE and string +# "DIRA[ DIRA]" will be appended to VARIABLE +# "DIR[:DIR]" +# VARIABLE will be replaced by "DIR[ DIR]" +func_munge_path_list () +{ + case x@S|@2 in + x) + ;; + *:) + eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \@S|@@S|@1\" + ;; + x:*) + eval @S|@1=\"\@S|@@S|@1 `$ECHO @S|@2 | $SED 's/:/ /g'`\" + ;; + *::*) + eval @S|@1=\"\@S|@@S|@1\ `$ECHO @S|@2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" + eval @S|@1=\"`$ECHO @S|@2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \@S|@@S|@1\" + ;; + *) + eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'`\" + ;; + esac +} +]])# _LT_PREPARE_PATH_LIST + + +# _LT_SYS_DYNAMIC_LINKER([TAG]) +# ----------------------------- +# PORTME Fill in your ld.so characteristics +m4_defun([_LT_SYS_DYNAMIC_LINKER], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_OBJDUMP])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_CHECK_SHELL_FEATURES])dnl +m4_require([_LT_PREPARE_MUNGE_PATH_LIST])dnl +AC_MSG_CHECKING([dynamic linker characteristics]) +m4_if([$1], + [], [ +if test yes = "$GCC"; then + case $host_os in + darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; + *) lt_awk_arg='/^libraries:/' ;; + esac + case $host_os in + mingw* | windows* | cegcc*) lt_sed_strip_eq='s|=\([[A-Za-z]]:\)|\1|g' ;; + *) lt_sed_strip_eq='s|=/|/|g' ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary... + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + # ...but if some path component already ends with the multilib dir we assume + # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). + case "$lt_multi_os_dir; $lt_search_path_spec " in + "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) + lt_multi_os_dir= + ;; + esac + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir" + elif test -n "$lt_multi_os_dir"; then + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' +BEGIN {RS = " "; FS = "/|\n";} { + lt_foo = ""; + lt_count = 0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo = "/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[[lt_foo]]++; } + if (lt_freq[[lt_foo]] == 1) { print lt_foo; } +}'` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | windows* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's|/\([[A-Za-z]]:\)|\1|g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi]) +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=.so +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +AC_ARG_VAR([LT_SYS_LIBRARY_PATH], +[User-defined run-time library search path.]) + +case $host_os in +aix3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='$libname$release$shared_ext$major' + ;; + +aix[[4-9]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test ia64 = "$host_cpu"; then + # AIX 5 supports IA64 + library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line '#! .'. This would cause the generated library to + # depend on '.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[[01]] | aix4.[[01]].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # Using Import Files as archive members, it is possible to support + # filename-based versioning of shared library archives on AIX. While + # this would work for both with and without runtime linking, it will + # prevent static linking of such archives. So we do filename-based + # shared library versioning with .so extension only, which is used + # when both runtime linking and shared linking is enabled. + # Unfortunately, runtime linking may impact performance, so we do + # not want this to be the default eventually. Also, we use the + # versioned .so libs for executables only if there is the -brtl + # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. + # To allow for filename-based versioning support, we need to create + # libNAME.so.V as an archive file, containing: + # *) an Import File, referring to the versioned filename of the + # archive as well as the shared archive member, telling the + # bitwidth (32 or 64) of that shared object, and providing the + # list of exported symbols of that shared object, eventually + # decorated with the 'weak' keyword + # *) the shared object with the F_LOADONLY flag set, to really avoid + # it being seen by the linker. + # At run time we better use the real file rather than another symlink, + # but for link time we create the symlink libNAME.so -> libNAME.so.V + + case $with_aix_soname,$aix_use_runtimelinking in + # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + aix,yes) # traditional libtool + dynamic_linker='AIX unversionable lib.so' + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + aix,no) # traditional AIX only + dynamic_linker='AIX lib.a[(]lib.so.V[)]' + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + ;; + svr4,*) # full svr4 only + dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)]" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,yes) # both, prefer svr4 + dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)], lib.a[(]lib.so.V[)]" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # unpreferred sharedlib libNAME.a needs extra handling + postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' + postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,no) # both, prefer aix + dynamic_linker="AIX lib.a[(]lib.so.V[)], lib.so.V[(]$shared_archive_member_spec.o[)]" + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling + postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' + postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' + ;; + esac + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='$libname$shared_ext' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[[45]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | windows* | pw32* | cegcc*) + version_type=windows + shrext_cmds=.dll + need_version=no + need_lib_prefix=no + + case $GCC,$cc_basename in + yes,*) + # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + #soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' + soname_spec='`echo $libname | sed -e 's/^lib//'`$shared_ext' # SDL customization. +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) + ;; + mingw* | windows* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + #soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' + soname_spec='`echo $libname | $SED -e 's/^lib//'`$shared_ext' # SDL customization. + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' + ;; + esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl* | *,icl*) + # Native MSVC or ICC + libname_spec='$name' + soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' + library_names_spec='$libname.dll.lib' + + case $build_os in + mingw* | windows*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec=$LIB + if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' + ;; + + *) + # Assume MSVC and ICC wrapper + library_names_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib' + dynamic_linker='Win32 ld.exe' + ;; + esac + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' + soname_spec='$libname$release$major$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd* | dragonfly* | midnightbsd*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[[23]].*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2.*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[[01]]* | freebsdelf3.[[01]]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ + freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=no + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + if test 32 = "$HPUX_IA64_MODE"; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + sys_lib_dlsearch_path_spec=/usr/lib/hpux32 + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + sys_lib_dlsearch_path_spec=/usr/lib/hpux64 + fi + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; + +interix[[3-9]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test yes = "$lt_cv_prog_gnu_ld"; then + version_type=linux # correct to gnu/linux during the next big refactor + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" + sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +linux*android*) + version_type=none # Android doesn't support versioned libraries. + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext' + soname_spec='$libname$release$shared_ext' + finish_cmds= + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + dynamic_linker='Android linker' + # Don't embed -rpath directories since the linker doesn't support them. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + + # Some binutils ld are patched to set DT_RUNPATH + AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], + [lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ + LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], + [lt_cv_shlibpath_overrides_runpath=yes])]) + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + ]) + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Add ABI-specific directories to the system library path. + sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" + + # Ideally, we could use ldconfig to report *all* directores which are + # searched for libraries, however this is still not possible. Aside from not + # being certain /sbin/ldconfig is available, command + # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, + # even though it is searched at run-time. Try to do the best guess by + # appending ld.so.conf contents (and includes) to the search path. + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd* | bitrig*) + version_type=sunos + sys_lib_dlsearch_path_spec=/usr/lib + need_lib_prefix=no + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + need_version=no + else + need_version=yes + fi + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +os2*) + libname_spec='$name' + shrext_cmds=.dll + need_lib_prefix=no + # OS/2 can only load a DLL with a base name of 8 characters or less. +# SDL customization: removed versioning support. +# version_type=windows +# need_version=no +# soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; +# v=$($ECHO $release$versuffix | tr -d .-); +# n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); +# $ECHO $n$v`$shared_ext' + soname_spec='`test -n "$os2dllname" && libname=$os2dllname; $ECHO $libname | cut -b -8 | tr . _`$shared_ext' + library_names_spec='${libname}_dll.$libext' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=BEGINLIBPATH + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test yes = "$with_gnu_ld"; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec; then + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' + soname_spec='$libname$shared_ext.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=sco + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test yes = "$with_gnu_ld"; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +AC_MSG_RESULT([$dynamic_linker]) +test no = "$dynamic_linker" && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test yes = "$GCC"; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then + sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec +fi + +if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then + sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec +fi + +# remember unaugmented sys_lib_dlsearch_path content for libtool script decls... +configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec + +# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code +func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" + +# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool +configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH + +_LT_DECL([], [variables_saved_for_relink], [1], + [Variables whose values should be saved in libtool wrapper scripts and + restored at link time]) +_LT_DECL([], [need_lib_prefix], [0], + [Do we need the "lib" prefix for modules?]) +_LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) +_LT_DECL([], [version_type], [0], [Library versioning type]) +_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) +_LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) +_LT_DECL([], [shlibpath_overrides_runpath], [0], + [Is shlibpath searched before the hard-coded library search path?]) +_LT_DECL([], [libname_spec], [1], [Format of library name prefix]) +_LT_DECL([], [library_names_spec], [1], + [[List of archive names. First name is the real one, the rest are links. + The last name is the one that the linker finds with -lNAME]]) +_LT_DECL([], [soname_spec], [1], + [[The coded name of the library, if different from the real name]]) +_LT_DECL([], [install_override_mode], [1], + [Permission mode override for installation of shared libraries]) +_LT_DECL([], [postinstall_cmds], [2], + [Command to use after installation of a shared archive]) +_LT_DECL([], [postuninstall_cmds], [2], + [Command to use after uninstallation of a shared archive]) +_LT_DECL([], [finish_cmds], [2], + [Commands used to finish a libtool library installation in a directory]) +_LT_DECL([], [finish_eval], [1], + [[As "finish_cmds", except a single script fragment to be evaled but + not shown]]) +_LT_DECL([], [hardcode_into_libs], [0], + [Whether we should hardcode library paths into libraries]) +_LT_DECL([], [sys_lib_search_path_spec], [2], + [Compile-time system search path for libraries]) +_LT_DECL([sys_lib_dlsearch_path_spec], [configure_time_dlsearch_path], [2], + [Detected run-time system search path for libraries]) +_LT_DECL([], [configure_time_lt_sys_library_path], [2], + [Explicit LT_SYS_LIBRARY_PATH set during ./configure time]) +])# _LT_SYS_DYNAMIC_LINKER + + +# _LT_PATH_TOOL_PREFIX(TOOL) +# -------------------------- +# find a file program that can recognize shared library +AC_DEFUN([_LT_PATH_TOOL_PREFIX], +[m4_require([_LT_DECL_EGREP])dnl +AC_MSG_CHECKING([for $1]) +AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, +[case $MAGIC_CMD in +[[\\/*] | ?:[\\/]*]) + lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD=$MAGIC_CMD + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR +dnl $ac_dummy forces splitting on constant user-supplied paths. +dnl POSIX.2 word splitting is done only on the output of word expansions, +dnl not every word. This closes a longstanding sh security hole. + ac_dummy="m4_if([$2], , $PATH, [$2])" + for ac_dir in $ac_dummy; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$1"; then + lt_cv_path_MAGIC_CMD=$ac_dir/"$1" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD=$lt_cv_path_MAGIC_CMD + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS=$lt_save_ifs + MAGIC_CMD=$lt_save_MAGIC_CMD + ;; +esac]) +MAGIC_CMD=$lt_cv_path_MAGIC_CMD +if test -n "$MAGIC_CMD"; then + AC_MSG_RESULT($MAGIC_CMD) +else + AC_MSG_RESULT(no) +fi +_LT_DECL([], [MAGIC_CMD], [0], + [Used to examine libraries when file_magic_cmd begins with "file"])dnl +])# _LT_PATH_TOOL_PREFIX + +# Old name: +AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) + + +# _LT_PATH_MAGIC +# -------------- +# find a file program that can recognize a shared library +m4_defun([_LT_PATH_MAGIC], +[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) + else + MAGIC_CMD=: + fi +fi +])# _LT_PATH_MAGIC + + +# LT_PATH_LD +# ---------- +# find the pathname to the GNU or non-GNU linker +AC_DEFUN([LT_PATH_LD], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PROG_ECHO_BACKSLASH])dnl + +AC_ARG_WITH([gnu-ld], + [AS_HELP_STRING([--with-gnu-ld], + [assume the C compiler uses GNU ld @<:@default=no@:>@])], + [test no = "$withval" || with_gnu_ld=yes], + [with_gnu_ld=no])dnl + +ac_prog=ld +if test yes = "$GCC"; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by $CC]) + case $host in + *-*-mingw* | *-*-windows*) + # gcc leaves a trailing carriage return, which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD=$ac_prog + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test yes = "$with_gnu_ld"; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL(lt_cv_path_LD, +[if test -z "$LD"; then + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD=$ac_dir/$ac_prog + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &1 conftest.i +cat conftest.i conftest.i >conftest2.i +: ${lt_DD:=$DD} +AC_PATH_PROGS_FEATURE_CHECK([lt_DD], [dd], +[if "$ac_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: +fi]) +rm -f conftest.i conftest2.i conftest.out]) +])# _LT_PATH_DD + + +# _LT_CMD_TRUNCATE +# ---------------- +# find command to truncate a binary pipe +m4_defun([_LT_CMD_TRUNCATE], +[m4_require([_LT_PATH_DD]) +AC_CACHE_CHECK([how to truncate binary pipes], [lt_cv_truncate_bin], +[printf 0123456789abcdef0123456789abcdef >conftest.i +cat conftest.i conftest.i >conftest2.i +lt_cv_truncate_bin= +if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" +fi +rm -f conftest.i conftest2.i conftest.out +test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"]) +_LT_DECL([lt_truncate_bin], [lt_cv_truncate_bin], [1], + [Command to truncate a binary pipe]) +])# _LT_CMD_TRUNCATE + + +# _LT_CHECK_MAGIC_METHOD +# ---------------------- +# how to check for library dependencies +# -- PORTME fill in with the dynamic library characteristics +m4_defun([_LT_CHECK_MAGIC_METHOD], +[m4_require([_LT_DECL_EGREP]) +m4_require([_LT_DECL_OBJDUMP]) +AC_CACHE_CHECK([how to recognize dependent libraries], +lt_cv_deplibs_check_method, +[lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# 'unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# that responds to the $file_magic_cmd with a given extended regex. +# If you have 'file' or equivalent on your system and you're not sure +# whether 'pass_all' will *always* work, you probably want this one. + +case $host_os in +aix[[4-9]]*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi[[45]]*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + lt_cv_deplibs_check_method=pass_all # SDL customization. + ;; + +mingw* | windows* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump', + # unless we find 'file', for example because we are cross-compiling. + if ( file / ) >/dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64|pe-aarch64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + lt_cv_deplibs_check_method=pass_all # SDL customization. + ;; + +cegcc*) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly* | midnightbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[[3-9]]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd* | bitrig*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +os2*) + lt_cv_deplibs_check_method=pass_all + ;; +esac +]) + +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | windows* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` + fi + ;; + esac +fi + +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + +_LT_DECL([], [deplibs_check_method], [1], + [Method to check whether dependent libraries are shared objects]) +_LT_DECL([], [file_magic_cmd], [1], + [Command to use when deplibs_check_method = "file_magic"]) +_LT_DECL([], [file_magic_glob], [1], + [How to find potential files when deplibs_check_method = "file_magic"]) +_LT_DECL([], [want_nocaseglob], [1], + [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) +])# _LT_CHECK_MAGIC_METHOD + + +# LT_PATH_NM +# ---------- +# find the pathname to a BSD- or MS-compatible name lister +AC_DEFUN([LT_PATH_NM], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, +[if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM=$NM +else + lt_nm_to_check=${ac_tool_prefix}nm + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + tmp_nm=$ac_dir/$lt_tmp_nm + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the 'sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty + case $build_os in + mingw* | windows*) lt_bad_file=conftest.nm/nofile ;; + *) lt_bad_file=/dev/null ;; + esac + case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in + *$lt_bad_file* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break 2 + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break 2 + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS=$lt_save_ifs + done + : ${lt_cv_path_NM=no} +fi]) +if test no != "$lt_cv_path_NM"; then + NM=$lt_cv_path_NM +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) + case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols -headers" + ;; + *) + DUMPBIN=: + ;; + esac + fi + AC_SUBST([DUMPBIN]) + if test : != "$DUMPBIN"; then + NM=$DUMPBIN + fi +fi +test -z "$NM" && NM=nm +AC_SUBST([NM]) +_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl + +AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], + [lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) + cat conftest.out >&AS_MESSAGE_LOG_FD + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest*]) +])# LT_PATH_NM + +# Old names: +AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) +AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_PROG_NM], []) +dnl AC_DEFUN([AC_PROG_NM], []) + +# _LT_CHECK_SHAREDLIB_FROM_LINKLIB +# -------------------------------- +# how to determine the name of the shared library +# associated with a specific link library. +# -- PORTME fill in with the dynamic library characteristics +m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], +[m4_require([_LT_DECL_EGREP]) +m4_require([_LT_DECL_OBJDUMP]) +m4_require([_LT_DECL_DLLTOOL]) +AC_CACHE_CHECK([how to associate runtime and link libraries], +lt_cv_sharedlib_from_linklib_cmd, +[lt_cv_sharedlib_from_linklib_cmd='unknown' + +case $host_os in +cygwin* | mingw* | windows* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh; + # decide which one to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd=$ECHO + ;; +esac +]) +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO + +_LT_DECL([], [sharedlib_from_linklib_cmd], [1], + [Command to associate shared and link libraries]) +])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB + + +# _LT_PATH_MANIFEST_TOOL +# ---------------------- +# locate the manifest tool +m4_defun([_LT_PATH_MANIFEST_TOOL], +[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], + [lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&AS_MESSAGE_LOG_FD + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest*]) +if test yes != "$lt_cv_path_mainfest_tool"; then + MANIFEST_TOOL=: +fi +_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl +])# _LT_PATH_MANIFEST_TOOL + + +# _LT_DLL_DEF_P([FILE]) +# --------------------- +# True iff FILE is a Windows DLL '.def' file. +# Keep in sync with func_dll_def_p in the libtool script +AC_DEFUN([_LT_DLL_DEF_P], +[dnl + test DEF = "`$SED -n dnl + -e '\''s/^[[ ]]*//'\'' dnl Strip leading whitespace + -e '\''/^\(;.*\)*$/d'\'' dnl Delete empty lines and comments + -e '\''s/^\(EXPORTS\|LIBRARY\)\([[ ]].*\)*$/DEF/p'\'' dnl + -e q dnl Only consider the first "real" line + $1`" dnl +])# _LT_DLL_DEF_P + + +# LT_LIB_M +# -------- +# check for math library +AC_DEFUN([LT_LIB_M], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +LIBM= +case $host in +*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-mingw* | *-*-pw32* | *-*-darwin*) + # These system don't have libm, or don't need it + ;; +*-ncr-sysv4.3*) + AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM=-lmw) + AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") + ;; +*) + AC_CHECK_LIB(m, cos, LIBM=-lm) + ;; +esac +AC_SUBST([LIBM]) +])# LT_LIB_M + +# Old name: +AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_CHECK_LIBM], []) + + +# _LT_COMPILER_NO_RTTI([TAGNAME]) +# ------------------------------- +m4_defun([_LT_COMPILER_NO_RTTI], +[m4_require([_LT_TAG_COMPILER])dnl + +_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + +if test yes = "$GCC"; then + case $cc_basename in + nvcc*) + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; + *) + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; + esac + + _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], + lt_cv_prog_compiler_rtti_exceptions, + [-fno-rtti -fno-exceptions], [], + [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) +fi +_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], + [Compiler flag to turn off builtin functions]) +])# _LT_COMPILER_NO_RTTI + + +# _LT_CMD_GLOBAL_SYMBOLS +# ---------------------- +m4_defun([_LT_CMD_GLOBAL_SYMBOLS], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([LT_PATH_NM])dnl +AC_REQUIRE([LT_PATH_LD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_TAG_COMPILER])dnl + +# Check for command to grab the raw symbol name followed by C symbol from nm. +AC_MSG_CHECKING([command to parse $NM output from $compiler object]) +AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], +[ +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[[BCDEGRST]]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[[BCDT]]' + ;; +cygwin* | mingw* | windows* | pw32* | cegcc*) + symcode='[[ABCDGISTW]]' + ;; +hpux*) + if test ia64 = "$host_cpu"; then + symcode='[[ABCDEGRST]]' + fi + ;; +irix* | nonstopux*) + symcode='[[BCDEGRST]]' + ;; +osf*) + symcode='[[BCDEGQRST]]' + ;; +solaris*) + symcode='[[BCDRT]]' + ;; +sco3.2v5*) + symcode='[[DT]]' + ;; +sysv4.2uw2*) + symcode='[[DT]]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[[ABDT]]' + ;; +sysv4) + symcode='[[DFNSTU]]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[[ABCDGIRSTW]]' ;; +esac + +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Gets list of data symbols to import. + lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" + # Adjust the below global symbol transforms to fixup imported variables. + lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" + lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" + lt_c_name_lib_hook="\ + -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ + -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" +else + # Disable hooks by default. + lt_cv_sys_global_symbol_to_import= + lt_cdecl_hook= + lt_c_name_hook= + lt_c_name_lib_hook= +fi + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n"\ +$lt_cdecl_hook\ +" -e 's/^T .* \(.*\)$/extern int \1();/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n"\ +$lt_c_name_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" + +# Transform an extracted symbol line into symbol name with lib prefix and +# symbol address. +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ +$lt_c_name_lib_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw* | windows*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function, + # D for any global variable and I for any imported variable. + # Also find C++ and __fastcall symbols from MSVC++ or ICC, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK ['"\ +" {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ +" /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ +" /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ +" {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ +" s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx]" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(void){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if AC_TRY_EVAL(ac_compile); then + # Now try to grab the symbols. + nlist=conftest.nm + if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE +/* DATA imports from DLLs on WIN32 can't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT@&t@_DLSYM_CONST +#elif defined __osf__ +/* This system does not cope well with relocations in const data. */ +# define LT@&t@_DLSYM_CONST +#else +# define LT@&t@_DLSYM_CONST const +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +LT@&t@_DLSYM_CONST struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[[]] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS + LIBS=conftstm.$ac_objext + CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" + if AC_TRY_EVAL(ac_link) && test -s conftest$ac_exeext; then + pipe_works=yes + fi + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD + fi + else + echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test yes = "$pipe_works"; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done +]) +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + AC_MSG_RESULT(failed) +else + AC_MSG_RESULT(ok) +fi + +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then + nm_file_list_spec='@' +fi + +_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], + [Take the output of nm and produce a listing of raw symbols and C names]) +_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], + [Transform the output of nm in a proper C declaration]) +_LT_DECL([global_symbol_to_import], [lt_cv_sys_global_symbol_to_import], [1], + [Transform the output of nm into a list of symbols to manually relocate]) +_LT_DECL([global_symbol_to_c_name_address], + [lt_cv_sys_global_symbol_to_c_name_address], [1], + [Transform the output of nm in a C name address pair]) +_LT_DECL([global_symbol_to_c_name_address_lib_prefix], + [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], + [Transform the output of nm in a C name address pair when lib prefix is needed]) +_LT_DECL([nm_interface], [lt_cv_nm_interface], [1], + [The name lister interface]) +_LT_DECL([], [nm_file_list_spec], [1], + [Specify filename containing input files for $NM]) +]) # _LT_CMD_GLOBAL_SYMBOLS + + +# _LT_COMPILER_PIC([TAGNAME]) +# --------------------------- +m4_defun([_LT_COMPILER_PIC], +[m4_require([_LT_TAG_COMPILER])dnl +_LT_TAGVAR(lt_prog_compiler_wl, $1)= +_LT_TAGVAR(lt_prog_compiler_pic, $1)= +_LT_TAGVAR(lt_prog_compiler_static, $1)= + +m4_if([$1], [CXX], [ + # C++ specific cases for pic, static, wl, etc. + if test yes = "$GXX"; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the '-m68020' flag to GCC prevents building anything better, + # like '-m68040'. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | windows* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + case $host_os in + os2*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' + ;; + esac + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + *djgpp*) + # DJGPP does not support shared libraries at all + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + _LT_TAGVAR(lt_prog_compiler_static, $1)= + ;; + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + case $host_os in + aix[[4-9]]*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68*) + # Green Hills C++ Compiler + # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" + ;; + esac + ;; + mingw* | windows* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + dgux*) + case $cc_basename in + ec++*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + ghcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + freebsd* | dragonfly* | midnightbsd*) + # FreeBSD uses GNU C++ + ;; + hpux9* | hpux10* | hpux11*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' + if test ia64 != "$host_cpu"; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + fi + ;; + aCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + ;; + *) + ;; + esac + ;; + interix*) + # This is c89, which is MS Visual C++ (no shared libs) + # Anyone wants to do a port? + ;; + irix5* | irix6* | nonstopux*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + # CC pic flag -KPIC is the default. + ;; + *) + ;; + esac + ;; + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + KCC*) + # KAI C++ Compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + ecpc* ) + # old Intel C++ for x86_64, which still supported -KPIC. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + icpc* ) + # Intel C++, used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + cxx*) + # Compaq C++ + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) + # IBM XL 8.0, 9.0 on PPC and BlueGene + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + esac + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' + ;; + *) + ;; + esac + ;; + netbsd*) + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + ;; + RCC*) + # Rational C++ 2.4.1 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + cxx*) + # Digital/Compaq C++ + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + *) + ;; + esac + ;; + psos*) + ;; + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + ;; + *) + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + lcc*) + # Lucid + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + *) + ;; + esac + ;; + vxworks*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +], +[ + if test yes = "$GCC"; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the '-m68020' flag to GCC prevents building anything better, + # like '-m68040'. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | windows* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + case $host_os in + os2*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' + ;; + esac + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + _LT_TAGVAR(lt_prog_compiler_static, $1)= + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' + if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)" + fi + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + case $cc_basename in + nagfor*) + # NAG Fortran compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + + mingw* | windows* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + case $host_os in + os2*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' + ;; + esac + ;; + + hpux9* | hpux10* | hpux11*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC (with -KPIC) is the default. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + # old Intel for x86_64, which still supported -KPIC. + ecc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' + _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' + ;; + nagfor*) + # NAG Fortran compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + ccc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All Alpha code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='' + ;; + *Sun\ F* | *Sun*Fortran*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + *Sun\ C*) + # Sun C 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + ;; + *Intel*\ [[CF]]*Compiler*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + *Portland\ Group*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + esac + ;; + + newsos6) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All OSF/1 code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + rdos*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + solaris*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; + *) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; + esac + ;; + + sunos4*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + unicos*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + + uts4*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +]) +case $host_os in + # For platforms that do not support PIC, -DPIC is meaningless: + *djgpp*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" + ;; +esac + +AC_CACHE_CHECK([for $compiler option to produce PIC], + [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], + [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) +_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], + [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], + [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], + [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in + "" | " "*) ;; + *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; + esac], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) +fi +_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], + [Additional compiler flags for building library objects]) + +_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], + [How to pass a linker flag through the compiler]) +# +# Check to make sure the static flag actually works. +# +wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" +_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], + _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), + $lt_tmp_static_flag, + [], + [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) +_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], + [Compiler flag to prevent dynamic linking]) +])# _LT_COMPILER_PIC + + +# _LT_LINKER_SHLIBS([TAGNAME]) +# ---------------------------- +# See if the linker supports building shared libraries. +m4_defun([_LT_LINKER_SHLIBS], +[AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +m4_require([_LT_PATH_MANIFEST_TOOL])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) +m4_if([$1], [CXX], [ + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] + case $host_os in + aix[[4-9]]*) + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to GNU nm, but means don't demangle to AIX nm. + # Without the "-l" option, or with the "-B" option, AIX nm treats + # weak defined symbols like other global defined symbols, whereas + # GNU nm marks them as "W". + # While the 'weak' keyword is ignored in the Export File, we need + # it in the Import File for the 'aix-soname' feature, so we have + # to replace the "-B" option with "-P" for AIX nm. + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + _LT_TAGVAR(export_symbols_cmds, $1)=$ltdll_cmds + ;; + cygwin* | mingw* | windows* | cegcc*) + case $cc_basename in + cl* | icl*) + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] + ;; + esac + ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac +], [ + runpath_var= + _LT_TAGVAR(allow_undefined_flag, $1)= + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(archive_cmds, $1)= + _LT_TAGVAR(archive_expsym_cmds, $1)= + _LT_TAGVAR(compiler_needs_object, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(hardcode_automatic, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(hardcode_libdir_separator, $1)= + _LT_TAGVAR(hardcode_minus_L, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_TAGVAR(inherit_rpath, $1)=no + _LT_TAGVAR(link_all_deplibs, $1)=unknown + _LT_TAGVAR(module_cmds, $1)= + _LT_TAGVAR(module_expsym_cmds, $1)= + _LT_TAGVAR(old_archive_from_new_cmds, $1)= + _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= + _LT_TAGVAR(thread_safe_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + _LT_TAGVAR(include_expsyms, $1)= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ' (' and ')$', so one must not match beginning or + # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc', + # as well as any symbol that contains 'd'. + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. +dnl Note also adjust exclude_expsyms for C++ above. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | windows* | pw32* | cegcc*) + # FIXME: the MSVC++ and ICC port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++ or Intel C++ Compiler. + if test yes != "$GCC"; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++ or ICC) + with_gnu_ld=yes + ;; + openbsd* | bitrig*) + with_gnu_ld=no + ;; + esac + + _LT_TAGVAR(ld_shlibs, $1)=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no + if test yes = "$with_gnu_ld"; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; + *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test yes = "$lt_use_gnu_ld_interface"; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='$wl' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + supports_anon_versioning=no + case `$LD -v | $SED -e 's/([[^)]]\+)\s\+//' 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[[3-9]]*) + # On AIX/PPC, the GNU linker is very broken + if test ia64 != "$host_cpu"; then + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.19, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + cygwin* | mingw* | windows* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file, use it as + # is; otherwise, prepend EXPORTS... + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + haiku*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + shrext_cmds=.dll + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + ;; + + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + tmp_diet=no + if test linux-dietlibc = "$host_os"; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test no = "$tmp_diet" + then + tmp_addflag=' $pic_flag' + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + _LT_TAGVAR(whole_archive_flag_spec, $1)= + tmp_sharedflag='--shared' ;; + nagfor*) # NAGFOR 5.3 + tmp_sharedflag='-Wl,-shared' ;; + xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + + if test yes = "$supports_anon_versioning"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + tcc*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='-rdynamic' + ;; + xlf* | bgf* | bgxlf* | mpixlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test yes = "$supports_anon_versioning"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + sunos4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + + if test no = "$_LT_TAGVAR(ld_shlibs, $1)"; then + runpath_var= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + _LT_TAGVAR(hardcode_direct, $1)=unsupported + fi + ;; + + aix[[4-9]]*) + if test ia64 = "$host_cpu"; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag= + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to GNU nm, but means don't demangle to AIX nm. + # Without the "-l" option, or with the "-B" option, AIX nm treats + # weak defined symbols like other global defined symbols, whereas + # GNU nm marks them as "W". + # While the 'weak' keyword is ignored in the Export File, we need + # it in the Import File for the 'aix-soname' feature, so we have + # to replace the "-B" option with "-P" for AIX nm. + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # have runtime linking enabled, and use it for executables. + # For shared libraries, we enable/disable runtime linking + # depending on the kind of the shared library created - + # when "with_aix_soname,aix_use_runtimelinking" is: + # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables + # "aix,yes" lib.so shared, rtl:yes, for executables + # lib.a static archive + # "both,no" lib.so.V(shr.o) shared, rtl:yes + # lib.a(lib.so.V) shared, rtl:no, for executables + # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a(lib.so.V) shared, rtl:no + # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a static archive + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then + aix_use_runtimelinking=yes + break + fi + done + if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then + # With aix-soname=svr4, we create the lib.so.V shared archives only, + # so we don't have lib.a shared libs to link our executables. + # We have to force runtime linking in this case. + aix_use_runtimelinking=yes + LDFLAGS="$LDFLAGS -Wl,-brtl" + fi + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='$wl-f,' + case $with_aix_soname,$aix_use_runtimelinking in + aix,*) ;; # traditional, no import file + svr4,* | *,yes) # use import file + # The Import File defines what to hardcode. + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + ;; + esac + + if test yes = "$GCC"; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`$CC -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + ;; + esac + shared_flag='-shared' + if test yes = "$aix_use_runtimelinking"; then + shared_flag="$shared_flag "'$wl-G' + fi + # Need to ensure runtime linking is disabled for the traditional + # shared library, or the linker may eventually find shared libraries + # /with/ Import File - we do not want to mix them. + shared_flag_aix='-shared' + shared_flag_svr4='-shared $wl-G' + else + # not using gcc + if test ia64 = "$host_cpu"; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test yes = "$aix_use_runtimelinking"; then + shared_flag='$wl-G' + else + shared_flag='$wl-bM:SRE' + fi + shared_flag_aix='$wl-bM:SRE' + shared_flag_svr4='$wl-G' + fi + fi + + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + _LT_TAGVAR(always_export_symbols, $1)=yes + if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag + else + if test ia64 = "$host_cpu"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok' + if test yes = "$with_gnu_ld"; then + # We only use this code for GNU lds that support --whole-archive. + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' + # -brtl affects multiple linker settings, -berok does not and is overridden later + compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`' + if test svr4 != "$with_aix_soname"; then + # This is similar to how AIX traditionally builds its shared libraries. + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' + fi + if test aix != "$with_aix_soname"; then + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' + else + # used by -dlpreopen to get the symbols + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir' + fi + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + ;; + + bsdi[[45]]*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic + ;; + + cygwin* | mingw* | windows* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++ or Intel C++ Compiler. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + case $cc_basename in + cl* | icl*) + # Native MSVC or ICC + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -Fe $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp "$export_symbols" "$output_objdir/$soname.def"; + echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; + else + $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -Fe $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile=$lt_outputfile.exe + lt_tool_outputfile=$lt_tool_outputfile.exe + ;; + esac~ + if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC and ICC wrapper + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + # FIXME: Should let the user specify the lib program. + _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + esac + ;; + + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; + + dgux*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2.*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly* | midnightbsd*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + hpux9*) + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + ;; + + hpux10*) + if test yes,no = "$GCC,$with_gnu_ld"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + fi + ;; + + hpux11*) + if test yes,no = "$GCC,$with_gnu_ld"; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + m4_if($1, [], [ + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + _LT_LINKER_OPTION([if $CC understands -b], + _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], + [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], + [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], + [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) + ;; + esac + fi + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + # This should be the same for all languages, so no per-tag cache variable. + AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], + [lt_cv_irix_exported_symbol], + [save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" + AC_LINK_IFELSE( + [AC_LANG_SOURCE( + [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], + [C++], [[int foo (void) { return 0; }]], + [Fortran 77], [[ + subroutine foo + end]], + [Fortran], [[ + subroutine foo + end]])])], + [lt_cv_irix_exported_symbol=yes], + [lt_cv_irix_exported_symbol=no]) + LDFLAGS=$save_LDFLAGS]) + if test yes = "$lt_cv_irix_exported_symbol"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' + fi + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + linux*) + case $cc_basename in + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + _LT_TAGVAR(ld_shlibs, $1)=yes + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + newsos6) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *nto* | *qnx*) + ;; + + openbsd* | bitrig*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + fi + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + shrext_cmds=.dll + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + ;; + + osf3*) + if test yes = "$GCC"; then + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test yes = "$GCC"; then + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + solaris*) + _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' + if test yes = "$GCC"; then + wlarc='$wl' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + _LT_TAGVAR(archive_cmds, $1)='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='$wl' + _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands '-z linker_flag'. GCC discards it without '$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test yes = "$GCC"; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + fi + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + sunos4*) + if test sequent = "$host_vendor"; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4) + case $host_vendor in + sni) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' + _LT_TAGVAR(hardcode_direct, $1)=no + ;; + motorola) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4.3*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + _LT_TAGVAR(ld_shlibs, $1)=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We CANNOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport' + runpath_var='LD_RUN_PATH' + + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + + if test sni = "$host_vendor"; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Blargedynsym' + ;; + esac + fi + fi +]) +AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) +test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no + +_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld + +_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl +_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl +_LT_DECL([], [extract_expsyms_cmds], [2], + [The commands to extract the exported symbol list from a shared archive]) + +# +# Do we need to explicitly link libc? +# +case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in +x|xyes) + # Assume -lc should be added + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + + if test yes,yes = "$GCC,$enable_shared"; then + case $_LT_TAGVAR(archive_cmds, $1) in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + AC_CACHE_CHECK([whether -lc should be explicitly linked in], + [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), + [$RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if AC_TRY_EVAL(ac_compile) 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) + pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) + _LT_TAGVAR(allow_undefined_flag, $1)= + if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) + then + lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no + else + lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes + fi + _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + ]) + _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) + ;; + esac + fi + ;; +esac + +_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], + [Whether or not to add -lc for building shared libraries]) +_LT_TAGDECL([allow_libtool_libs_with_static_runtimes], + [enable_shared_with_static_runtimes], [0], + [Whether or not to disallow shared libs when runtime libs are static]) +_LT_TAGDECL([], [export_dynamic_flag_spec], [1], + [Compiler flag to allow reflexive dlopens]) +_LT_TAGDECL([], [whole_archive_flag_spec], [1], + [Compiler flag to generate shared objects directly from archives]) +_LT_TAGDECL([], [compiler_needs_object], [1], + [Whether the compiler copes with passing no objects directly]) +_LT_TAGDECL([], [old_archive_from_new_cmds], [2], + [Create an old-style archive from a shared archive]) +_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], + [Create a temporary old-style archive to link instead of a shared archive]) +_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) +_LT_TAGDECL([], [archive_expsym_cmds], [2]) +_LT_TAGDECL([], [module_cmds], [2], + [Commands used to build a loadable module if different from building + a shared archive.]) +_LT_TAGDECL([], [module_expsym_cmds], [2]) +_LT_TAGDECL([], [with_gnu_ld], [1], + [Whether we are building with GNU ld or not]) +_LT_TAGDECL([], [allow_undefined_flag], [1], + [Flag that allows shared libraries with undefined symbols to be built]) +_LT_TAGDECL([], [no_undefined_flag], [1], + [Flag that enforces no undefined symbols]) +_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], + [Flag to hardcode $libdir into a binary during linking. + This must work even if $libdir does not exist]) +_LT_TAGDECL([], [hardcode_libdir_separator], [1], + [Whether we need a single "-rpath" flag with a separated argument]) +_LT_TAGDECL([], [hardcode_direct], [0], + [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes + DIR into the resulting binary]) +_LT_TAGDECL([], [hardcode_direct_absolute], [0], + [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes + DIR into the resulting binary and the resulting library dependency is + "absolute", i.e impossible to change by setting $shlibpath_var if the + library is relocated]) +_LT_TAGDECL([], [hardcode_minus_L], [0], + [Set to "yes" if using the -LDIR flag during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_shlibpath_var], [0], + [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_automatic], [0], + [Set to "yes" if building a shared library automatically hardcodes DIR + into the library and all subsequent libraries and executables linked + against it]) +_LT_TAGDECL([], [inherit_rpath], [0], + [Set to yes if linker adds runtime paths of dependent libraries + to runtime path list]) +_LT_TAGDECL([], [link_all_deplibs], [0], + [Whether libtool must link a program against all its dependency libraries]) +_LT_TAGDECL([], [always_export_symbols], [0], + [Set to "yes" if exported symbols are required]) +_LT_TAGDECL([], [export_symbols_cmds], [2], + [The commands to list exported symbols]) +_LT_TAGDECL([], [exclude_expsyms], [1], + [Symbols that should not be listed in the preloaded symbols]) +_LT_TAGDECL([], [include_expsyms], [1], + [Symbols that must always be exported]) +_LT_TAGDECL([], [prelink_cmds], [2], + [Commands necessary for linking programs (against libraries) with templates]) +_LT_TAGDECL([], [postlink_cmds], [2], + [Commands necessary for finishing linking programs]) +_LT_TAGDECL([], [file_list_spec], [1], + [Specify filename containing input files]) +dnl FIXME: Not yet implemented +dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], +dnl [Compiler flag to generate thread safe objects]) +])# _LT_LINKER_SHLIBS + + +# _LT_LANG_C_CONFIG([TAG]) +# ------------------------ +# Ensure that the configuration variables for a C compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_C_CONFIG], +[m4_require([_LT_DECL_EGREP])dnl +lt_save_CC=$CC +AC_LANG_PUSH(C) + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(void){return(0);}' + +_LT_TAG_COMPILER +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + LT_SYS_DLOPEN_SELF + _LT_CMD_STRIPLIB + + # Report what library types will actually be built + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test no = "$can_build_shared" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test yes = "$enable_shared" && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[[4-9]]*) + if test ia64 != "$host_cpu"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test yes = "$enable_shared" || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_CONFIG($1) +fi +AC_LANG_POP +CC=$lt_save_CC +])# _LT_LANG_C_CONFIG + + +# _LT_LANG_CXX_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a C++ compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_CXX_CONFIG], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PATH_MANIFEST_TOOL])dnl +if test -n "$CXX" && ( test no != "$CXX" && + ( (test g++ = "$CXX" && `g++ -v >/dev/null 2>&1` ) || + (test g++ != "$CXX"))); then + AC_PROG_CXXCPP +else + _lt_caught_CXX_error=yes +fi + +AC_LANG_PUSH(C++) +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(compiler_needs_object, $1)=no +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for C++ test sources. +ac_ext=cpp + +# Object file extension for compiled C++ test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the CXX compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test yes != "$_lt_caught_CXX_error"; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="int some_variable = 0;" + + # Code to be used in simple link tests + lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_CFLAGS=$CFLAGS + lt_save_LD=$LD + lt_save_GCC=$GCC + GCC=$GXX + lt_save_with_gnu_ld=$with_gnu_ld + lt_save_path_LD=$lt_cv_path_LD + if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then + lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx + else + $as_unset lt_cv_prog_gnu_ld + fi + if test -n "${lt_cv_path_LDCXX+set}"; then + lt_cv_path_LD=$lt_cv_path_LDCXX + else + $as_unset lt_cv_path_LD + fi + test -z "${LDCXX+set}" || LD=$LDCXX + CC=${CXX-"c++"} + CFLAGS=$CXXFLAGS + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + + if test -n "$compiler"; then + # We don't want -fno-exception when compiling C++ code, so set the + # no_builtin_flag separately + if test yes = "$GXX"; then + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' + else + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + fi + + if test yes = "$GXX"; then + # Set up default GNU C++ configuration + + LT_PATH_LD + + # Check if GNU C++ uses GNU ld as the underlying linker, since the + # archiving commands below assume that GNU ld is being used. + if test yes = "$with_gnu_ld"; then + _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + + # If archive_cmds runs LD, not CC, wlarc should be empty + # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to + # investigate it a little bit more. (MM) + wlarc='$wl' + + # ancient GNU ld didn't support --whole-archive et. al. + if eval "`$CC -print-prog-name=ld` --help 2>&1" | + $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + with_gnu_ld=no + wlarc= + + # A generic and very simple default shared library creation + # command for GNU C++ for the case where it uses the native + # linker, instead of GNU ld. If possible, this setting should + # overridden to take advantage of the native linker features on + # the platform it is being used on. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + fi + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "[[-]]L"' + + else + GXX=no + with_gnu_ld=no + wlarc= + fi + + # PORTME: fill in a description of your system's C++ link characteristics + AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) + _LT_TAGVAR(ld_shlibs, $1)=yes + case $host_os in + aix3*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aix[[4-9]]*) + if test ia64 = "$host_cpu"; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag= + else + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # have runtime linking enabled, and use it for executables. + # For shared libraries, we enable/disable runtime linking + # depending on the kind of the shared library created - + # when "with_aix_soname,aix_use_runtimelinking" is: + # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables + # "aix,yes" lib.so shared, rtl:yes, for executables + # lib.a static archive + # "both,no" lib.so.V(shr.o) shared, rtl:yes + # lib.a(lib.so.V) shared, rtl:no, for executables + # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a(lib.so.V) shared, rtl:no + # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a static archive + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + case $ld_flag in + *-brtl*) + aix_use_runtimelinking=yes + break + ;; + esac + done + if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then + # With aix-soname=svr4, we create the lib.so.V shared archives only, + # so we don't have lib.a shared libs to link our executables. + # We have to force runtime linking in this case. + aix_use_runtimelinking=yes + LDFLAGS="$LDFLAGS -Wl,-brtl" + fi + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='$wl-f,' + case $with_aix_soname,$aix_use_runtimelinking in + aix,*) ;; # no import file + svr4,* | *,yes) # use import file + # The Import File defines what to hardcode. + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + ;; + esac + + if test yes = "$GXX"; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`$CC -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + esac + shared_flag='-shared' + if test yes = "$aix_use_runtimelinking"; then + shared_flag=$shared_flag' $wl-G' + fi + # Need to ensure runtime linking is disabled for the traditional + # shared library, or the linker may eventually find shared libraries + # /with/ Import File - we do not want to mix them. + shared_flag_aix='-shared' + shared_flag_svr4='-shared $wl-G' + else + # not using gcc + if test ia64 = "$host_cpu"; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test yes = "$aix_use_runtimelinking"; then + shared_flag='$wl-G' + else + shared_flag='$wl-bM:SRE' + fi + shared_flag_aix='$wl-bM:SRE' + shared_flag_svr4='$wl-G' + fi + fi + + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to + # export. + _LT_TAGVAR(always_export_symbols, $1)=yes + if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + # The "-G" linker flag allows undefined symbols. + _LT_TAGVAR(no_undefined_flag, $1)='-bernotok' + # Determine the default libpath from the value encoded in an empty + # executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" + + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag + else + if test ia64 = "$host_cpu"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok' + if test yes = "$with_gnu_ld"; then + # We only use this code for GNU lds that support --whole-archive. + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' + # -brtl affects multiple linker settings, -berok does not and is overridden later + compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`' + if test svr4 != "$with_aix_soname"; then + # This is similar to how AIX traditionally builds its shared + # libraries. Need -bnortl late, we may have -brtl in LDFLAGS. + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' + fi + if test aix != "$with_aix_soname"; then + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' + else + # used by -dlpreopen to get the symbols + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir' + fi + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d' + fi + fi + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + cygwin* | mingw* | windows* | pw32* | cegcc*) + case $GXX,$cc_basename in + ,cl* | no,cl* | ,icl* | no,icl*) + # Native MSVC or ICC + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp "$export_symbols" "$output_objdir/$soname.def"; + echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; + else + $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + # Don't use ranlib + _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile=$lt_outputfile.exe + lt_tool_outputfile=$lt_tool_outputfile.exe + ;; + esac~ + func_to_tool_file "$lt_outputfile"~ + if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # g++ + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file, use it as + # is; otherwise, prepend EXPORTS... + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; + + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + shrext_cmds=.dll + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + ;; + + dgux*) + case $cc_basename in + ec++*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + ghcx*) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + freebsd2.*) + # C++ shared libraries reported to be fairly broken before + # switch to ELF + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + freebsd-elf*) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + ;; + + freebsd* | dragonfly* | midnightbsd*) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; + + haiku*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + hpux9*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "[[-]]L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test yes = "$GXX"; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + hpux10*|hpux11*) + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + ;; + *) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + ;; + esac + fi + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + esac + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "[[-]]L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test yes = "$GXX"; then + if test no = "$with_gnu_ld"; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + fi + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + irix5* | irix6*) + case $cc_basename in + CC*) + # SGI C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + + # Archives containing C++ object files must be created using + # "CC -ar", where "CC" is the IRIX C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' + ;; + *) + if test yes = "$GXX"; then + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` -o $lib' + fi + fi + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + esac + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib $wl-retain-symbols-file,$export_symbols; mv \$templib $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' + ;; + icpc* | ecpc* ) + # Intel C++ + with_gnu_ld=yes + # version 8.0 and above of icpc choke on multiply defined symbols + # if we add $predep_objects and $postdep_objects, however 7.1 and + # earlier do not add the objects themselves. + case `$CC -V 2>&1` in + *"Version 7."*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 8.0 or newer + tmp_idyn= + case $host_cpu in + ia64*) tmp_idyn=' -i_dynamic';; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + case `$CC -V` in + *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) + _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ + compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ + $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl--rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + ;; + cxx*) + # Compaq C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib $wl-retain-symbols-file $wl$export_symbols' + + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' + ;; + xl* | mpixl* | bgxl*) + # IBM XL 8.0 on PPC, with GNU ld + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + if test yes = "$supports_anon_versioning"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' + fi + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file $wl$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + + # Not sure whether something based on + # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 + # would be better. + output_verbose_link_cmd='func_echo_all' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + esac + ;; + esac + ;; + + lynxos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + m88k*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + mvs*) + case $cc_basename in + cxx*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + fi + # Workaround some broken pre-1.5 toolchains + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' + ;; + + *nto* | *qnx*) + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; + + openbsd* | bitrig*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file,$export_symbols -o $lib' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + fi + output_verbose_link_cmd=func_echo_all + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Archives containing C++ object files must be created using + # the KAI C++ compiler. + case $host in + osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; + *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; + esac + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + cxx*) + case $host in + osf3*) + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $soname `test -n "$verstring" && func_echo_all "$wl-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + ;; + *) + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ + echo "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname $wl-input $wl$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~ + $RM $lib.exp' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test yes,no = "$GXX,$with_gnu_ld"; then + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + case $host in + osf3*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "[[-]]L"' + + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + psos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + lcc*) + # Lucid + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(archive_cmds_need_lc,$1)=yes + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G$allow_undefined_flag $wl-M $wl$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands '-z linker_flag'. + # Supported since Solaris 2.6 (maybe 2.5.1?) + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes + + output_verbose_link_cmd='func_echo_all' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' + + # The C++ compiler must be used to create the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' + ;; + *) + # GNU C++ compiler with Solaris linker + if test yes,no = "$GXX,$with_gnu_ld"; then + _LT_TAGVAR(no_undefined_flag, $1)=' $wl-z ${wl}defs' + if $CC --version | $GREP -v '^2\.7' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "[[-]]L"' + else + # g++ 2.7 appears to require '-G' NOT '-shared' on this + # platform. + _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "[[-]]L"' + fi + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $wl$libdir' + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' + ;; + esac + fi + ;; + esac + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We CANNOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport' + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ + '"$_LT_TAGVAR(old_archive_cmds, $1)" + _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ + '"$_LT_TAGVAR(reload_cmds, $1)" + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + vxworks*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + + AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) + test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no + + _LT_TAGVAR(GCC, $1)=$GXX + _LT_TAGVAR(LD, $1)=$LD + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS + LDCXX=$LD + LD=$lt_save_LD + GCC=$lt_save_GCC + with_gnu_ld=$lt_save_with_gnu_ld + lt_cv_path_LDCXX=$lt_cv_path_LD + lt_cv_path_LD=$lt_save_path_LD + lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld + lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld +fi # test yes != "$_lt_caught_CXX_error" + +AC_LANG_POP +])# _LT_LANG_CXX_CONFIG + + +# _LT_FUNC_STRIPNAME_CNF +# ---------------------- +# func_stripname_cnf prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +# +# This function is identical to the (non-XSI) version of func_stripname, +# except this one can be used by m4 code that may be executed by configure, +# rather than the libtool script. +m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl +AC_REQUIRE([_LT_DECL_SED]) +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) +func_stripname_cnf () +{ + case @S|@2 in + .*) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%\\\\@S|@2\$%%"`;; + *) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%@S|@2\$%%"`;; + esac +} # func_stripname_cnf +])# _LT_FUNC_STRIPNAME_CNF + + +# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) +# --------------------------------- +# Figure out "hidden" library dependencies from verbose +# compiler output when linking a shared library. +# Parse the compiler output and extract the necessary +# objects, libraries and library flags. +m4_defun([_LT_SYS_HIDDEN_LIBDEPS], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl +# Dependencies to place before and after the object being linked: +_LT_TAGVAR(predep_objects, $1)= +_LT_TAGVAR(postdep_objects, $1)= +_LT_TAGVAR(predeps, $1)= +_LT_TAGVAR(postdeps, $1)= +_LT_TAGVAR(compiler_lib_search_path, $1)= + +dnl we can't use the lt_simple_compile_test_code here, +dnl because it contains code intended for an executable, +dnl not a library. It's possible we should let each +dnl tag define a new lt_????_link_test_code variable, +dnl but it's only used here... +m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF +int a; +void foo (void) { a = 0; } +_LT_EOF +], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF +class Foo +{ +public: + Foo (void) { a = 0; } +private: + int a; +}; +_LT_EOF +], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer*4 a + a=0 + return + end +_LT_EOF +], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer a + a=0 + return + end +_LT_EOF +], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF +public class foo { + private int a; + public void bar (void) { + a = 0; + } +}; +_LT_EOF +], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF +package foo +func foo() { +} +_LT_EOF +]) + +_lt_libdeps_save_CFLAGS=$CFLAGS +case "$CC $CFLAGS " in #( +*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; +*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; +*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; +esac + +dnl Parse the compiler output and extract the necessary +dnl objects, libraries and library flags. +if AC_TRY_EVAL(ac_compile); then + # Parse the compiler output and extract the necessary + # objects, libraries and library flags. + + # Sentinel used to keep track of whether or not we are before + # the conftest object file. + pre_test_object_deps_done=no + + for p in `eval "$output_verbose_link_cmd"`; do + case $prev$p in + + -L* | -R* | -l*) + # Some compilers place space between "-{L,R}" and the path. + # Remove the space. + if test x-L = "x$p" || + test x-R = "x$p" || + test x-l = "x$p"; then + prev=$p + continue + fi + + # Expand the sysroot to ease extracting the directories later. + if test -z "$prev"; then + case $p in + -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; + -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; + -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; + esac + fi + case $p in + =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; + esac + if test no = "$pre_test_object_deps_done"; then + case $prev in + -L | -R) + # Internal compiler library paths should come after those + # provided the user. The postdeps already come after the + # user supplied libs so there is no need to process them. + if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then + _LT_TAGVAR(compiler_lib_search_path, $1)=$prev$p + else + _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} $prev$p" + fi + ;; + # The "-l" case would never come before the object being + # linked, so don't bother handling this case. + esac + else + if test -z "$_LT_TAGVAR(postdeps, $1)"; then + _LT_TAGVAR(postdeps, $1)=$prev$p + else + _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} $prev$p" + fi + fi + prev= + ;; + + *.lto.$objext) ;; # Ignore GCC LTO objects + *.$objext) + # This assumes that the test object file only shows up + # once in the compiler output. + if test "$p" = "conftest.$objext"; then + pre_test_object_deps_done=yes + continue + fi + + if test no = "$pre_test_object_deps_done"; then + if test -z "$_LT_TAGVAR(predep_objects, $1)"; then + _LT_TAGVAR(predep_objects, $1)=$p + else + _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" + fi + else + if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then + _LT_TAGVAR(postdep_objects, $1)=$p + else + _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" + fi + fi + ;; + + *) ;; # Ignore the rest. + + esac + done + + # Clean up. + rm -f a.out a.exe +else + echo "libtool.m4: error: problem compiling $1 test program" +fi + +$RM -f confest.$objext +CFLAGS=$_lt_libdeps_save_CFLAGS + +# PORTME: override above test on systems where it is broken +m4_if([$1], [CXX], +[case $host_os in +interix[[3-9]]*) + # Interix 3.5 installs completely hosed .la files for C++, so rather than + # hack all around it, let's just trust "g++" to DTRT. + _LT_TAGVAR(predep_objects,$1)= + _LT_TAGVAR(postdep_objects,$1)= + _LT_TAGVAR(postdeps,$1)= + ;; +esac +]) + +case " $_LT_TAGVAR(postdeps, $1) " in +*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; +esac + _LT_TAGVAR(compiler_lib_search_dirs, $1)= +if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then + _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | $SED -e 's! -L! !g' -e 's!^ !!'` +fi +_LT_TAGDECL([], [compiler_lib_search_dirs], [1], + [The directories searched by this compiler when creating a shared library]) +_LT_TAGDECL([], [predep_objects], [1], + [Dependencies to place before and after the objects being linked to + create a shared library]) +_LT_TAGDECL([], [postdep_objects], [1]) +_LT_TAGDECL([], [predeps], [1]) +_LT_TAGDECL([], [postdeps], [1]) +_LT_TAGDECL([], [compiler_lib_search_path], [1], + [The library search path used internally by the compiler when linking + a shared library]) +])# _LT_SYS_HIDDEN_LIBDEPS + + +# _LT_LANG_F77_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a Fortran 77 compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_F77_CONFIG], +[AC_LANG_PUSH(Fortran 77) +if test -z "$F77" || test no = "$F77"; then + _lt_disable_F77=yes +fi + +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for f77 test sources. +ac_ext=f + +# Object file extension for compiled f77 test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the F77 compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test yes != "$_lt_disable_F77"; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" + + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_GCC=$GCC + lt_save_CFLAGS=$CFLAGS + CC=${F77-"f77"} + CFLAGS=$FFLAGS + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + GCC=$G77 + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test no = "$can_build_shared" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test yes = "$enable_shared" && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test ia64 != "$host_cpu"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test yes = "$enable_shared" || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_TAGVAR(GCC, $1)=$G77 + _LT_TAGVAR(LD, $1)=$LD + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + GCC=$lt_save_GCC + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS +fi # test yes != "$_lt_disable_F77" + +AC_LANG_POP +])# _LT_LANG_F77_CONFIG + + +# _LT_LANG_FC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for a Fortran compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_FC_CONFIG], +[AC_LANG_PUSH(Fortran) + +if test -z "$FC" || test no = "$FC"; then + _lt_disable_FC=yes +fi + +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for fc test sources. +ac_ext=${ac_fc_srcext-f} + +# Object file extension for compiled fc test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the FC compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test yes != "$_lt_disable_FC"; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" + + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_GCC=$GCC + lt_save_CFLAGS=$CFLAGS + CC=${FC-"f95"} + CFLAGS=$FCFLAGS + compiler=$CC + GCC=$ac_cv_fc_compiler_gnu + + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test no = "$can_build_shared" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test yes = "$enable_shared" && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test ia64 != "$host_cpu"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test yes = "$enable_shared" || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_TAGVAR(GCC, $1)=$ac_cv_fc_compiler_gnu + _LT_TAGVAR(LD, $1)=$LD + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + GCC=$lt_save_GCC + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS +fi # test yes != "$_lt_disable_FC" + +AC_LANG_POP +])# _LT_LANG_FC_CONFIG + + +# _LT_LANG_GCJ_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Java Compiler compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_GCJ_CONFIG], +[AC_REQUIRE([LT_PROG_GCJ])dnl +AC_LANG_SAVE + +# Source file extension for Java test sources. +ac_ext=java + +# Object file extension for compiled Java test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="class foo {}" + +# Code to be used in simple link tests +lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC=yes +CC=${GCJ-"gcj"} +CFLAGS=$GCJFLAGS +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)=$LD +_LT_CC_BASENAME([$compiler]) + +# GCJ did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no + +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) +fi + +AC_LANG_RESTORE + +GCC=$lt_save_GCC +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_GCJ_CONFIG + + +# _LT_LANG_GO_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Go compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_GO_CONFIG], +[AC_REQUIRE([LT_PROG_GO])dnl +AC_LANG_SAVE + +# Source file extension for Go test sources. +ac_ext=go + +# Object file extension for compiled Go test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="package main; func main() { }" + +# Code to be used in simple link tests +lt_simple_link_test_code='package main; func main() { }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC=yes +CC=${GOC-"gccgo"} +CFLAGS=$GOFLAGS +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)=$LD +_LT_CC_BASENAME([$compiler]) + +# Go did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no + +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) +fi + +AC_LANG_RESTORE + +GCC=$lt_save_GCC +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_GO_CONFIG + + +# _LT_LANG_RC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for the Windows resource compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_RC_CONFIG], +[AC_REQUIRE([LT_PROG_RC])dnl +AC_LANG_SAVE + +# Source file extension for RC test sources. +ac_ext=rc + +# Object file extension for compiled RC test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' + +# Code to be used in simple link tests +lt_simple_link_test_code=$lt_simple_compile_test_code + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC= +CC=${RC-"windres"} +CFLAGS= +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_CC_BASENAME([$compiler]) +_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + +if test -n "$compiler"; then + : + _LT_CONFIG($1) +fi + +GCC=$lt_save_GCC +AC_LANG_RESTORE +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_RC_CONFIG + + +# LT_PROG_GCJ +# ----------- +AC_DEFUN([LT_PROG_GCJ], +[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], + [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], + [AC_CHECK_TOOL(GCJ, gcj,) + test set = "${GCJFLAGS+set}" || GCJFLAGS="-g -O2" + AC_SUBST(GCJFLAGS)])])[]dnl +]) + +# Old name: +AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_GCJ], []) + + +# LT_PROG_GO +# ---------- +AC_DEFUN([LT_PROG_GO], +[AC_CHECK_TOOL(GOC, gccgo,) +]) + + +# LT_PROG_RC +# ---------- +AC_DEFUN([LT_PROG_RC], +[AC_CHECK_TOOL(RC, windres,) +]) + +# Old name: +AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_RC], []) + + +# _LT_DECL_EGREP +# -------------- +# If we don't have a new enough Autoconf to choose the best grep +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_EGREP], +[AC_REQUIRE([AC_PROG_EGREP])dnl +AC_REQUIRE([AC_PROG_FGREP])dnl +test -z "$GREP" && GREP=grep +_LT_DECL([], [GREP], [1], [A grep program that handles long lines]) +_LT_DECL([], [EGREP], [1], [An ERE matcher]) +_LT_DECL([], [FGREP], [1], [A literal string matcher]) +dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too +AC_SUBST([GREP]) +]) + + +# _LT_DECL_OBJDUMP +# -------------- +# If we don't have a new enough Autoconf to choose the best objdump +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_OBJDUMP], +[AC_CHECK_TOOL(OBJDUMP, objdump, false) +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) +AC_SUBST([OBJDUMP]) +]) + +# _LT_DECL_DLLTOOL +# ---------------- +# Ensure DLLTOOL variable is set. +m4_defun([_LT_DECL_DLLTOOL], +[AC_CHECK_TOOL(DLLTOOL, dlltool, false) +test -z "$DLLTOOL" && DLLTOOL=dlltool +_LT_DECL([], [DLLTOOL], [1], [DLL creation program]) +AC_SUBST([DLLTOOL]) +]) + +# _LT_DECL_SED +# ------------ +# Check for a fully-functional sed program, that truncates +# as few characters as possible. Prefer GNU sed if found. +m4_defun([_LT_DECL_SED], +[AC_PROG_SED +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" +_LT_DECL([], [SED], [1], [A sed program that does not truncate output]) +_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], + [Sed that helps us avoid accidentally triggering echo(1) options like -n]) +])# _LT_DECL_SED + +m4_ifndef([AC_PROG_SED], [ +############################################################ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_SED. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +############################################################ + +m4_defun([AC_PROG_SED], +[AC_MSG_CHECKING([for a sed that does not truncate output]) +AC_CACHE_VAL(lt_cv_path_SED, +[# Loop through the user's path and test for sed and gsed. +# Then use that list of sed's as ones to test for truncation. +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for lt_ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then + lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" + fi + done + done +done +IFS=$as_save_IFS +lt_ac_max=0 +lt_ac_count=0 +# Add /usr/xpg4/bin/sed as it is typically found on Solaris +# along with /bin/sed that truncates output. +for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do + test ! -f "$lt_ac_sed" && continue + cat /dev/null > conftest.in + lt_ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >conftest.in + # Check for GNU sed and select it if it is found. + if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then + lt_cv_path_SED=$lt_ac_sed + break + fi + while true; do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo >>conftest.nl + $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break + cmp -s conftest.out conftest.nl || break + # 10000 chars as input seems more than enough + test 10 -lt "$lt_ac_count" && break + lt_ac_count=`expr $lt_ac_count + 1` + if test "$lt_ac_count" -gt "$lt_ac_max"; then + lt_ac_max=$lt_ac_count + lt_cv_path_SED=$lt_ac_sed + fi + done +done +]) +SED=$lt_cv_path_SED +AC_SUBST([SED]) +AC_MSG_RESULT([$SED]) +])#AC_PROG_SED +])#m4_ifndef + +# Old name: +AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_SED], []) + + +# _LT_CHECK_SHELL_FEATURES +# ------------------------ +# Find out whether the shell is Bourne or XSI compatible, +# or has some other useful features. +m4_defun([_LT_CHECK_SHELL_FEATURES], +[if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi +_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac +_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl +_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl +])# _LT_CHECK_SHELL_FEATURES + + +# _LT_PATH_CONVERSION_FUNCTIONS +# ----------------------------- +# Determine what file name conversion functions should be used by +# func_to_host_file (and, implicitly, by func_to_host_path). These are needed +# for certain cross-compile configurations and native mingw. +m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_MSG_CHECKING([how to convert $build file names to $host format]) +AC_CACHE_VAL(lt_cv_to_host_file_cmd, +[case $host in + *-*-mingw* ) + case $build in + *-*-mingw* | *-*-windows* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac + ;; + *-*-cygwin* ) + case $build in + *-*-mingw* | *-*-windows* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac + ;; + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac +]) +to_host_file_cmd=$lt_cv_to_host_file_cmd +AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) +_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], + [0], [convert $build file names to $host format])dnl + +AC_MSG_CHECKING([how to convert $build file names to toolchain format]) +AC_CACHE_VAL(lt_cv_to_tool_file_cmd, +[#assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* | *-*-windows* ) + case $build in + *-*-mingw* | *-*-windows* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac +]) +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) +_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], + [0], [convert $build files to toolchain format])dnl +])# _LT_PATH_CONVERSION_FUNCTIONS diff --git a/engine/lib/sdl/acinclude/ltoptions.m4 b/engine/lib/sdl/acinclude/ltoptions.m4 new file mode 100644 index 000000000..7d7e68864 --- /dev/null +++ b/engine/lib/sdl/acinclude/ltoptions.m4 @@ -0,0 +1,437 @@ +# Helper functions for option handling. -*- Autoconf -*- +# +# Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software +# Foundation, Inc. +# Written by Gary V. Vaughan, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 8 ltoptions.m4 + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) + + +# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) +# ------------------------------------------ +m4_define([_LT_MANGLE_OPTION], +[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) + + +# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) +# --------------------------------------- +# Set option OPTION-NAME for macro MACRO-NAME, and if there is a +# matching handler defined, dispatch to it. Other OPTION-NAMEs are +# saved as a flag. +m4_define([_LT_SET_OPTION], +[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl +m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), + _LT_MANGLE_DEFUN([$1], [$2]), + [m4_warning([Unknown $1 option '$2'])])[]dnl +]) + + +# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) +# ------------------------------------------------------------ +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +m4_define([_LT_IF_OPTION], +[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) + + +# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) +# ------------------------------------------------------- +# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME +# are set. +m4_define([_LT_UNLESS_OPTIONS], +[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), + [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), + [m4_define([$0_found])])])[]dnl +m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 +])[]dnl +]) + + +# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) +# ---------------------------------------- +# OPTION-LIST is a space-separated list of Libtool options associated +# with MACRO-NAME. If any OPTION has a matching handler declared with +# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about +# the unknown option and exit. +m4_defun([_LT_SET_OPTIONS], +[# Set options +m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), + [_LT_SET_OPTION([$1], _LT_Option)]) + +m4_if([$1],[LT_INIT],[ + dnl + dnl Simply set some default values (i.e off) if boolean options were not + dnl specified: + _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no + ]) + _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no + ]) + dnl + dnl If no reference was made to various pairs of opposing options, then + dnl we run the default mode handler for the pair. For example, if neither + dnl 'shared' nor 'disable-shared' was passed, we enable building of shared + dnl archives by default: + _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) + _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) + _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) + _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], + [_LT_ENABLE_FAST_INSTALL]) + _LT_UNLESS_OPTIONS([LT_INIT], [aix-soname=aix aix-soname=both aix-soname=svr4], + [_LT_WITH_AIX_SONAME([aix])]) + ]) +])# _LT_SET_OPTIONS + + +## --------------------------------- ## +## Macros to handle LT_INIT options. ## +## --------------------------------- ## + +# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) +# ----------------------------------------- +m4_define([_LT_MANGLE_DEFUN], +[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) + + +# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) +# ----------------------------------------------- +m4_define([LT_OPTION_DEFINE], +[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl +])# LT_OPTION_DEFINE + + +# dlopen +# ------ +LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes +]) + +AU_DEFUN([AC_LIBTOOL_DLOPEN], +[_LT_SET_OPTION([LT_INIT], [dlopen]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the 'dlopen' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) + + +# win32-dll +# --------- +# Declare package support for building win32 dll's. +LT_OPTION_DEFINE([LT_INIT], [win32-dll], +[enable_win32_dll=yes + +case $host in +*-*-cygwin* | *-*-mingw* | *-*-windows* | *-*-pw32* | *-*-cegcc*) + AC_CHECK_TOOL(AS, as, false) + AC_CHECK_TOOL(DLLTOOL, dlltool, false) + AC_CHECK_TOOL(OBJDUMP, objdump, false) + ;; +esac + +test -z "$AS" && AS=as +_LT_DECL([], [AS], [1], [Assembler program])dnl + +test -z "$DLLTOOL" && DLLTOOL=dlltool +_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl + +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl +])# win32-dll + +AU_DEFUN([AC_LIBTOOL_WIN32_DLL], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +_LT_SET_OPTION([LT_INIT], [win32-dll]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the 'win32-dll' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) + + +# _LT_ENABLE_SHARED([DEFAULT]) +# ---------------------------- +# implement the --enable-shared flag, and supports the 'shared' and +# 'disable-shared' LT_INIT options. +# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. +m4_define([_LT_ENABLE_SHARED], +[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([shared], + [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], + [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS=$lt_save_ifs + ;; + esac], + [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) + + _LT_DECL([build_libtool_libs], [enable_shared], [0], + [Whether or not to build shared libraries]) +])# _LT_ENABLE_SHARED + +LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) + +# Old names: +AC_DEFUN([AC_ENABLE_SHARED], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) +]) + +AC_DEFUN([AC_DISABLE_SHARED], +[_LT_SET_OPTION([LT_INIT], [disable-shared]) +]) + +AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) +AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_ENABLE_SHARED], []) +dnl AC_DEFUN([AM_DISABLE_SHARED], []) + + + +# _LT_ENABLE_STATIC([DEFAULT]) +# ---------------------------- +# implement the --enable-static flag, and support the 'static' and +# 'disable-static' LT_INIT options. +# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. +m4_define([_LT_ENABLE_STATIC], +[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([static], + [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], + [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS=$lt_save_ifs + ;; + esac], + [enable_static=]_LT_ENABLE_STATIC_DEFAULT) + + _LT_DECL([build_old_libs], [enable_static], [0], + [Whether or not to build static libraries]) +])# _LT_ENABLE_STATIC + +LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) + +# Old names: +AC_DEFUN([AC_ENABLE_STATIC], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) +]) + +AC_DEFUN([AC_DISABLE_STATIC], +[_LT_SET_OPTION([LT_INIT], [disable-static]) +]) + +AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) +AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_ENABLE_STATIC], []) +dnl AC_DEFUN([AM_DISABLE_STATIC], []) + + + +# _LT_ENABLE_FAST_INSTALL([DEFAULT]) +# ---------------------------------- +# implement the --enable-fast-install flag, and support the 'fast-install' +# and 'disable-fast-install' LT_INIT options. +# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. +m4_define([_LT_ENABLE_FAST_INSTALL], +[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([fast-install], + [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], + [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS=$lt_save_ifs + ;; + esac], + [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) + +_LT_DECL([fast_install], [enable_fast_install], [0], + [Whether or not to optimize for fast installation])dnl +])# _LT_ENABLE_FAST_INSTALL + +LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) + +# Old names: +AU_DEFUN([AC_ENABLE_FAST_INSTALL], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the 'fast-install' option into LT_INIT's first parameter.]) +]) + +AU_DEFUN([AC_DISABLE_FAST_INSTALL], +[_LT_SET_OPTION([LT_INIT], [disable-fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the 'disable-fast-install' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) +dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) + + +# _LT_WITH_AIX_SONAME([DEFAULT]) +# ---------------------------------- +# implement the --with-aix-soname flag, and support the `aix-soname=aix' +# and `aix-soname=both' and `aix-soname=svr4' LT_INIT options. DEFAULT +# is either `aix', `both' or `svr4'. If omitted, it defaults to `aix'. +m4_define([_LT_WITH_AIX_SONAME], +[m4_define([_LT_WITH_AIX_SONAME_DEFAULT], [m4_if($1, svr4, svr4, m4_if($1, both, both, aix))])dnl +shared_archive_member_spec= +case $host,$enable_shared in +power*-*-aix[[5-9]]*,yes) + AC_MSG_CHECKING([which variant of shared library versioning to provide]) + AC_ARG_WITH([aix-soname], + [AS_HELP_STRING([--with-aix-soname=aix|svr4|both], + [shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=]_LT_WITH_AIX_SONAME_DEFAULT[@:>@.])], + [case $withval in + aix|svr4|both) + ;; + *) + AC_MSG_ERROR([Unknown argument to --with-aix-soname]) + ;; + esac + lt_cv_with_aix_soname=$with_aix_soname], + [AC_CACHE_VAL([lt_cv_with_aix_soname], + [lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT) + with_aix_soname=$lt_cv_with_aix_soname]) + AC_MSG_RESULT([$with_aix_soname]) + if test aix != "$with_aix_soname"; then + # For the AIX way of multilib, we name the shared archive member + # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', + # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. + # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, + # the AIX toolchain works better with OBJECT_MODE set (default 32). + if test 64 = "${OBJECT_MODE-32}"; then + shared_archive_member_spec=shr_64 + else + shared_archive_member_spec=shr + fi + fi + ;; +*) + with_aix_soname=aix + ;; +esac + +_LT_DECL([], [shared_archive_member_spec], [0], + [Shared archive member basename, for filename based shared library versioning on AIX])dnl +])# _LT_WITH_AIX_SONAME + +LT_OPTION_DEFINE([LT_INIT], [aix-soname=aix], [_LT_WITH_AIX_SONAME([aix])]) +LT_OPTION_DEFINE([LT_INIT], [aix-soname=both], [_LT_WITH_AIX_SONAME([both])]) +LT_OPTION_DEFINE([LT_INIT], [aix-soname=svr4], [_LT_WITH_AIX_SONAME([svr4])]) + + +# _LT_WITH_PIC([MODE]) +# -------------------- +# implement the --with-pic flag, and support the 'pic-only' and 'no-pic' +# LT_INIT options. +# MODE is either 'yes' or 'no'. If omitted, it defaults to 'both'. +m4_define([_LT_WITH_PIC], +[AC_ARG_WITH([pic], + [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@], + [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], + [lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for lt_pkg in $withval; do + IFS=$lt_save_ifs + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS=$lt_save_ifs + ;; + esac], + [pic_mode=m4_default([$1], [default])]) + +_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl +])# _LT_WITH_PIC + +LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) +LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) + +# Old name: +AU_DEFUN([AC_LIBTOOL_PICMODE], +[_LT_SET_OPTION([LT_INIT], [pic-only]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the 'pic-only' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) + +## ----------------- ## +## LTDL_INIT Options ## +## ----------------- ## + +m4_define([_LTDL_MODE], []) +LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], + [m4_define([_LTDL_MODE], [nonrecursive])]) +LT_OPTION_DEFINE([LTDL_INIT], [recursive], + [m4_define([_LTDL_MODE], [recursive])]) +LT_OPTION_DEFINE([LTDL_INIT], [subproject], + [m4_define([_LTDL_MODE], [subproject])]) + +m4_define([_LTDL_TYPE], []) +LT_OPTION_DEFINE([LTDL_INIT], [installable], + [m4_define([_LTDL_TYPE], [installable])]) +LT_OPTION_DEFINE([LTDL_INIT], [convenience], + [m4_define([_LTDL_TYPE], [convenience])]) diff --git a/engine/lib/sdl/acinclude/ltsugar.m4 b/engine/lib/sdl/acinclude/ltsugar.m4 new file mode 100644 index 000000000..48bc9344a --- /dev/null +++ b/engine/lib/sdl/acinclude/ltsugar.m4 @@ -0,0 +1,124 @@ +# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- +# +# Copyright (C) 2004-2005, 2007-2008, 2011-2015 Free Software +# Foundation, Inc. +# Written by Gary V. Vaughan, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 6 ltsugar.m4 + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) + + +# lt_join(SEP, ARG1, [ARG2...]) +# ----------------------------- +# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their +# associated separator. +# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier +# versions in m4sugar had bugs. +m4_define([lt_join], +[m4_if([$#], [1], [], + [$#], [2], [[$2]], + [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) +m4_define([_lt_join], +[m4_if([$#$2], [2], [], + [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) + + +# lt_car(LIST) +# lt_cdr(LIST) +# ------------ +# Manipulate m4 lists. +# These macros are necessary as long as will still need to support +# Autoconf-2.59, which quotes differently. +m4_define([lt_car], [[$1]]) +m4_define([lt_cdr], +[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], + [$#], 1, [], + [m4_dquote(m4_shift($@))])]) +m4_define([lt_unquote], $1) + + +# lt_append(MACRO-NAME, STRING, [SEPARATOR]) +# ------------------------------------------ +# Redefine MACRO-NAME to hold its former content plus 'SEPARATOR''STRING'. +# Note that neither SEPARATOR nor STRING are expanded; they are appended +# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). +# No SEPARATOR is output if MACRO-NAME was previously undefined (different +# than defined and empty). +# +# This macro is needed until we can rely on Autoconf 2.62, since earlier +# versions of m4sugar mistakenly expanded SEPARATOR but not STRING. +m4_define([lt_append], +[m4_define([$1], + m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) + + + +# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) +# ---------------------------------------------------------- +# Produce a SEP delimited list of all paired combinations of elements of +# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list +# has the form PREFIXmINFIXSUFFIXn. +# Needed until we can rely on m4_combine added in Autoconf 2.62. +m4_define([lt_combine], +[m4_if(m4_eval([$# > 3]), [1], + [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl +[[m4_foreach([_Lt_prefix], [$2], + [m4_foreach([_Lt_suffix], + ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, + [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) + + +# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) +# ----------------------------------------------------------------------- +# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited +# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. +m4_define([lt_if_append_uniq], +[m4_ifdef([$1], + [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], + [lt_append([$1], [$2], [$3])$4], + [$5])], + [lt_append([$1], [$2], [$3])$4])]) + + +# lt_dict_add(DICT, KEY, VALUE) +# ----------------------------- +m4_define([lt_dict_add], +[m4_define([$1($2)], [$3])]) + + +# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) +# -------------------------------------------- +m4_define([lt_dict_add_subkey], +[m4_define([$1($2:$3)], [$4])]) + + +# lt_dict_fetch(DICT, KEY, [SUBKEY]) +# ---------------------------------- +m4_define([lt_dict_fetch], +[m4_ifval([$3], + m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), + m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) + + +# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) +# ----------------------------------------------------------------- +m4_define([lt_if_dict_fetch], +[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], + [$5], + [$6])]) + + +# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) +# -------------------------------------------------------------- +m4_define([lt_dict_filter], +[m4_if([$5], [], [], + [lt_join(m4_quote(m4_default([$4], [[, ]])), + lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), + [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl +]) diff --git a/engine/lib/sdl/acinclude/ltversion.m4 b/engine/lib/sdl/acinclude/ltversion.m4 new file mode 100644 index 000000000..fa04b52a3 --- /dev/null +++ b/engine/lib/sdl/acinclude/ltversion.m4 @@ -0,0 +1,23 @@ +# ltversion.m4 -- version numbers -*- Autoconf -*- +# +# Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc. +# Written by Scott James Remnant, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# @configure_input@ + +# serial 4179 ltversion.m4 +# This file is part of GNU Libtool + +m4_define([LT_PACKAGE_VERSION], [2.4.6]) +m4_define([LT_PACKAGE_REVISION], [2.4.6]) + +AC_DEFUN([LTVERSION_VERSION], +[macro_version='2.4.6' +macro_revision='2.4.6' +_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) +_LT_DECL(, macro_revision, 0) +]) diff --git a/engine/lib/sdl/acinclude/lt~obsolete.m4 b/engine/lib/sdl/acinclude/lt~obsolete.m4 new file mode 100644 index 000000000..c6b26f88f --- /dev/null +++ b/engine/lib/sdl/acinclude/lt~obsolete.m4 @@ -0,0 +1,99 @@ +# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- +# +# Copyright (C) 2004-2005, 2007, 2009, 2011-2015 Free Software +# Foundation, Inc. +# Written by Scott James Remnant, 2004. +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 5 lt~obsolete.m4 + +# These exist entirely to fool aclocal when bootstrapping libtool. +# +# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN), +# which have later been changed to m4_define as they aren't part of the +# exported API, or moved to Autoconf or Automake where they belong. +# +# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN +# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us +# using a macro with the same name in our local m4/libtool.m4 it'll +# pull the old libtool.m4 in (it doesn't see our shiny new m4_define +# and doesn't know about Autoconf macros at all.) +# +# So we provide this file, which has a silly filename so it's always +# included after everything else. This provides aclocal with the +# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything +# because those macros already exist, or will be overwritten later. +# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. +# +# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. +# Yes, that means every name once taken will need to remain here until +# we give up compatibility with versions before 1.7, at which point +# we need to keep only those names which we still refer to. + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) + +m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) +m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) +m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) +m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) +m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) +m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) +m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) +m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) +m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) +m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) +m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) +m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) +m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) +m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) +m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) +m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) +m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) +m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) +m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) +m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) +m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) +m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) +m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) +m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) +m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) +m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) +m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) +m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) +m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) +m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) +m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) +m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) +m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) +m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) +m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) +m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) +m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) +m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) +m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) +m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) +m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) +m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) +m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) +m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) +m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) +m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) +m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) +m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) +m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) +m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) +m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) +m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) +m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) +m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) +m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) diff --git a/engine/lib/sdl/acinclude/pkg.m4 b/engine/lib/sdl/acinclude/pkg.m4 new file mode 100644 index 000000000..13a889017 --- /dev/null +++ b/engine/lib/sdl/acinclude/pkg.m4 @@ -0,0 +1,275 @@ +# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- +# serial 12 (pkg-config-0.29.2) + +dnl Copyright © 2004 Scott James Remnant . +dnl Copyright © 2012-2015 Dan Nicholson +dnl +dnl This program is free software; you can redistribute it and/or modify +dnl it under the terms of the GNU General Public License as published by +dnl the Free Software Foundation; either version 2 of the License, or +dnl (at your option) any later version. +dnl +dnl This program is distributed in the hope that it will be useful, but +dnl WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl General Public License for more details. +dnl +dnl You should have received a copy of the GNU General Public License +dnl along with this program; if not, write to the Free Software +dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +dnl 02111-1307, USA. +dnl +dnl As a special exception to the GNU General Public License, if you +dnl distribute this file as part of a program that contains a +dnl configuration script generated by Autoconf, you may include it under +dnl the same distribution terms that you use for the rest of that +dnl program. + +dnl PKG_PREREQ(MIN-VERSION) +dnl ----------------------- +dnl Since: 0.29 +dnl +dnl Verify that the version of the pkg-config macros are at least +dnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's +dnl installed version of pkg-config, this checks the developer's version +dnl of pkg.m4 when generating configure. +dnl +dnl To ensure that this macro is defined, also add: +dnl m4_ifndef([PKG_PREREQ], +dnl [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])]) +dnl +dnl See the "Since" comment for each macro you use to see what version +dnl of the macros you require. +m4_defun([PKG_PREREQ], +[m4_define([PKG_MACROS_VERSION], [0.29.2]) +m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1, + [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])]) +])dnl PKG_PREREQ + +dnl PKG_PROG_PKG_CONFIG([MIN-VERSION]) +dnl ---------------------------------- +dnl Since: 0.16 +dnl +dnl Search for the pkg-config tool and set the PKG_CONFIG variable to +dnl first found in the path. Checks that the version of pkg-config found +dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is +dnl used since that's the first version where most current features of +dnl pkg-config existed. +AC_DEFUN([PKG_PROG_PKG_CONFIG], +[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) +m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) +m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) +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 +])dnl PKG_PROG_PKG_CONFIG + +dnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +dnl ------------------------------------------------------------------- +dnl Since: 0.18 +dnl +dnl Check to see whether a particular set of modules exists. Similar to +dnl PKG_CHECK_MODULES(), but does not set variables or print errors. +dnl +dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +dnl only at the first occurence in configure.ac, so if the first place +dnl it's called might be skipped (such as if it is within an "if", you +dnl 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]) + +dnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) +dnl --------------------------------------------- +dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting +dnl pkg_failed based on the result. +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` + test "x$?" != "x0" && pkg_failed=yes ], + [pkg_failed=yes]) + else + pkg_failed=untried +fi[]dnl +])dnl _PKG_CONFIG + +dnl _PKG_SHORT_ERRORS_SUPPORTED +dnl --------------------------- +dnl Internal check to see if pkg-config supports short errors. +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 +])dnl _PKG_SHORT_ERRORS_SUPPORTED + + +dnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +dnl [ACTION-IF-NOT-FOUND]) +dnl -------------------------------------------------------------- +dnl Since: 0.4.0 +dnl +dnl Note that if there is a possibility the first call to +dnl PKG_CHECK_MODULES might not happen, you should be sure to include an +dnl 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 $2]) + +_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 --cflags --libs "$2" 2>&1` + else + $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$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 +])dnl PKG_CHECK_MODULES + + +dnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +dnl [ACTION-IF-NOT-FOUND]) +dnl --------------------------------------------------------------------- +dnl Since: 0.29 +dnl +dnl Checks for existence of MODULES and gathers its build flags with +dnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags +dnl and VARIABLE-PREFIX_LIBS from --libs. +dnl +dnl Note that if there is a possibility the first call to +dnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to +dnl include an explicit call to PKG_PROG_PKG_CONFIG in your +dnl configure.ac. +AC_DEFUN([PKG_CHECK_MODULES_STATIC], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +_save_PKG_CONFIG=$PKG_CONFIG +PKG_CONFIG="$PKG_CONFIG --static" +PKG_CHECK_MODULES($@) +PKG_CONFIG=$_save_PKG_CONFIG[]dnl +])dnl PKG_CHECK_MODULES_STATIC + + +dnl PKG_INSTALLDIR([DIRECTORY]) +dnl ------------------------- +dnl Since: 0.27 +dnl +dnl Substitutes the variable pkgconfigdir as the location where a module +dnl should install pkg-config .pc files. By default the directory is +dnl $libdir/pkgconfig, but the default can be changed by passing +dnl DIRECTORY. The user can override through the --with-pkgconfigdir +dnl parameter. +AC_DEFUN([PKG_INSTALLDIR], +[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])]) +m4_pushdef([pkg_description], + [pkg-config installation directory @<:@]pkg_default[@:>@]) +AC_ARG_WITH([pkgconfigdir], + [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],, + [with_pkgconfigdir=]pkg_default) +AC_SUBST([pkgconfigdir], [$with_pkgconfigdir]) +m4_popdef([pkg_default]) +m4_popdef([pkg_description]) +])dnl PKG_INSTALLDIR + + +dnl PKG_NOARCH_INSTALLDIR([DIRECTORY]) +dnl -------------------------------- +dnl Since: 0.27 +dnl +dnl Substitutes the variable noarch_pkgconfigdir as the location where a +dnl module should install arch-independent pkg-config .pc files. By +dnl default the directory is $datadir/pkgconfig, but the default can be +dnl changed by passing DIRECTORY. The user can override through the +dnl --with-noarch-pkgconfigdir parameter. +AC_DEFUN([PKG_NOARCH_INSTALLDIR], +[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])]) +m4_pushdef([pkg_description], + [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@]) +AC_ARG_WITH([noarch-pkgconfigdir], + [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],, + [with_noarch_pkgconfigdir=]pkg_default) +AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir]) +m4_popdef([pkg_default]) +m4_popdef([pkg_description]) +])dnl PKG_NOARCH_INSTALLDIR + + +dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE, +dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +dnl ------------------------------------------- +dnl Since: 0.28 +dnl +dnl Retrieves the value of the pkg-config variable for the given module. +AC_DEFUN([PKG_CHECK_VAR], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl + +_PKG_CONFIG([$1], [variable="][$3]["], [$2]) +AS_VAR_COPY([$1], [pkg_cv_][$1]) + +AS_VAR_IF([$1], [""], [$5], [$4])dnl +])dnl PKG_CHECK_VAR diff --git a/engine/lib/sdl/android-project-ant/AndroidManifest.xml b/engine/lib/sdl/android-project-ant/AndroidManifest.xml new file mode 100644 index 000000000..94bcaefd0 --- /dev/null +++ b/engine/lib/sdl/android-project-ant/AndroidManifest.xml @@ -0,0 +1 @@ +../android-project/app/src/main/AndroidManifest.xml \ No newline at end of file diff --git a/engine/lib/sdl/android-project-ant/ant.properties b/engine/lib/sdl/android-project-ant/ant.properties new file mode 100644 index 000000000..b0971e891 --- /dev/null +++ b/engine/lib/sdl/android-project-ant/ant.properties @@ -0,0 +1,17 @@ +# This file is used to override default values used by the Ant build system. +# +# This file must be checked into Version Control Systems, as it is +# integral to the build system of your project. + +# This file is only used by the Ant script. + +# You can use this to override default values such as +# 'source.dir' for the location of your java source folder and +# 'out.dir' for the location of your output folder. + +# You can also use it define how the release builds are signed by declaring +# the following properties: +# 'key.store' for the location of your keystore and +# 'key.alias' for the name of the key to use. +# The password will be asked during the build when you use the 'release' target. + diff --git a/engine/lib/sdl/android-project-ant/build.properties b/engine/lib/sdl/android-project-ant/build.properties new file mode 100644 index 000000000..edc7f2305 --- /dev/null +++ b/engine/lib/sdl/android-project-ant/build.properties @@ -0,0 +1,17 @@ +# This file is used to override default values used by the Ant build system. +# +# This file must be checked in Version Control Systems, as it is +# integral to the build system of your project. + +# This file is only used by the Ant script. + +# You can use this to override default values such as +# 'source.dir' for the location of your java source folder and +# 'out.dir' for the location of your output folder. + +# You can also use it define how the release builds are signed by declaring +# the following properties: +# 'key.store' for the location of your keystore and +# 'key.alias' for the name of the key to use. +# The password will be asked during the build when you use the 'release' target. + diff --git a/engine/lib/sdl/android-project-ant/build.xml b/engine/lib/sdl/android-project-ant/build.xml new file mode 100644 index 000000000..9f19a077b --- /dev/null +++ b/engine/lib/sdl/android-project-ant/build.xml @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/engine/lib/sdl/android-project-ant/default.properties b/engine/lib/sdl/android-project-ant/default.properties new file mode 100644 index 000000000..0a69b7743 --- /dev/null +++ b/engine/lib/sdl/android-project-ant/default.properties @@ -0,0 +1,11 @@ +# This file is automatically generated by Android Tools. +# Do not modify this file -- YOUR CHANGES WILL BE ERASED! +# +# This file must be checked in Version Control Systems. +# +# To customize properties used by the Ant build system use, +# "build.properties", and override values to adapt the script to your +# project structure. + +# Project target. +target=android-16 diff --git a/engine/lib/sdl/android-project-ant/jni/Android.mk b/engine/lib/sdl/android-project-ant/jni/Android.mk new file mode 100644 index 000000000..5053e7d64 --- /dev/null +++ b/engine/lib/sdl/android-project-ant/jni/Android.mk @@ -0,0 +1 @@ +include $(call all-subdir-makefiles) diff --git a/engine/lib/sdl/android-project-ant/jni/Application.mk b/engine/lib/sdl/android-project-ant/jni/Application.mk new file mode 100644 index 000000000..5ea0fb4ce --- /dev/null +++ b/engine/lib/sdl/android-project-ant/jni/Application.mk @@ -0,0 +1,10 @@ + +# 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 + +# Min SDK level +APP_PLATFORM=android-10 + diff --git a/engine/lib/sdl/android-project-ant/jni/src/Android.mk b/engine/lib/sdl/android-project-ant/jni/src/Android.mk new file mode 100644 index 000000000..1adcb6e9a --- /dev/null +++ b/engine/lib/sdl/android-project-ant/jni/src/Android.mk @@ -0,0 +1,18 @@ +LOCAL_PATH := $(call my-dir) + +include $(CLEAR_VARS) + +LOCAL_MODULE := main + +SDL_PATH := ../SDL + +LOCAL_C_INCLUDES := $(LOCAL_PATH)/$(SDL_PATH)/include + +# Add your application source files here... +LOCAL_SRC_FILES := YourSourceHere.c + +LOCAL_SHARED_LIBRARIES := SDL2 + +LOCAL_LDLIBS := -lGLESv1_CM -lGLESv2 -llog + +include $(BUILD_SHARED_LIBRARY) diff --git a/engine/lib/sdl/android-project-ant/jni/src/Android_static.mk b/engine/lib/sdl/android-project-ant/jni/src/Android_static.mk new file mode 100644 index 000000000..faed669c0 --- /dev/null +++ b/engine/lib/sdl/android-project-ant/jni/src/Android_static.mk @@ -0,0 +1,12 @@ +LOCAL_PATH := $(call my-dir) + +include $(CLEAR_VARS) + +LOCAL_MODULE := main + +LOCAL_SRC_FILES := YourSourceHere.c + +LOCAL_STATIC_LIBRARIES := SDL2_static + +include $(BUILD_SHARED_LIBRARY) +$(call import-module,SDL)LOCAL_PATH := $(call my-dir) diff --git a/engine/lib/sdl/android-project-ant/proguard-project.txt b/engine/lib/sdl/android-project-ant/proguard-project.txt new file mode 100644 index 000000000..f2fe1559a --- /dev/null +++ b/engine/lib/sdl/android-project-ant/proguard-project.txt @@ -0,0 +1,20 @@ +# To enable ProGuard in your project, edit project.properties +# to define the proguard.config property as described in that file. +# +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in ${sdk.dir}/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the ProGuard +# include property in project.properties. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} diff --git a/engine/lib/sdl/android-project-ant/project.properties b/engine/lib/sdl/android-project-ant/project.properties new file mode 100644 index 000000000..9b84a6b4b --- /dev/null +++ b/engine/lib/sdl/android-project-ant/project.properties @@ -0,0 +1,14 @@ +# This file is automatically generated by Android Tools. +# Do not modify this file -- YOUR CHANGES WILL BE ERASED! +# +# This file must be checked in Version Control Systems. +# +# To customize properties used by the Ant build system edit +# "ant.properties", and override values to adapt the script to your +# project structure. +# +# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): +#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt + +# Project target. +target=android-16 diff --git a/engine/lib/sdl/android-project-ant/res/drawable-hdpi/ic_launcher.png b/engine/lib/sdl/android-project-ant/res/drawable-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..d50bdaae06ee5a8d3f39911f81715abd3bf7b24d GIT binary patch literal 2683 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 literal 0 HcmV?d00001 diff --git a/engine/lib/sdl/android-project-ant/res/drawable-mdpi/ic_launcher.png b/engine/lib/sdl/android-project-ant/res/drawable-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..0a299eb3cc0273ad1fc260cf0b4a2c35f5d373f5 GIT binary patch literal 1698 zcmV;T23`4yP)f} zu>|cMov+-ZzrP>60ufVbMfI5GD8S3sHU={Wz|3(0Iuu=S@d?FG>uvDs20IvRa=`Mf zj#y>tjJ0O2%(P!fEH>}&wob%R&H}5 zCGc-u(!|no5r`_`6U@PeT^`tAbpUc=l=XIx5}}*~W|%4>j>`bH?(t?i92~9nn5b`P z0>7Y$mEeQ`zFlE~MQf~ZG9n(urD7;YrS#B=Xsowzhmqy}5da!J%3kbpKFSQ6?LES3 zdZV=$HtqI=cTl8G16xp14uP;#cL2|TbNJ?WbCv}PLC1o@ra$3vG#sKQRjdsy89E-; znY%&Wrg-Hc0ikisFjZMa4gT2a!LsFbJVGacax#gWk55EjU*EU@vs5pnGl{G3Su9*> z!N$T5Ypq5G^s>zk;1`v_^H>BcvDMq12|&jy4-O2w$V^iek#aL6kcJj+tOIn78@KP` zS-n&hVAi+*!y%P5Bk6V~t9LpJEg6Dv^9^HW=&|J{j%XbP;NW?ZWriBBlQv?_b{7Wf z?jNR;`Laq0%pJT@Bot{6Kx_D6R>6O6CaG({;-O4fxdg!7FN{sE1|%b@0J(*wY`Ud# zI&>PHo!wYrvX5kIA6$-v>I9%5)46v*2=WER+5@z;cjB`jH^as)5b4Y=@KwIY|49kMQ$Jq^Dh2W~kwk@+x$8bu&m>dOMx`k@;AF zOr8K4IfY0k8eSOHMN@M#{DV%Rsz#yu)%WM&qwuw)N1vUEpCDpjN&f6V0!P?RG^g3&|W3X}!VA~OOk&(lPv85w2vT{aGqiO+W zYf57uSx8hDv*9QfJwZunB_z+Jkkm>cDyt-0fLi3{6{B7%LtVWLLei#2QU@6+!TiD! zl#~5aZJiXd#%46Pyg>bP8Oyk8^pf6|Hpt);7>u(~G3pkw+3Eo1=sLZnrDub4ArZ+b z_Yo2ni^%f{c*H9}V)8v)O}c|CM3)n8BIWKwa4ud)++{A##l(Y`E5KFmU4(Pu+2747 z*`g5=8ISd54mcALP0FuJ-Bx1G8vz)-chNQaRj#2MI5{az9zPF9gF_IX$VE?2kEYGs z!~iB@Qrq`{%xpdkcQ_(EDwdRD`FQUG69b?RqFdY^GAOBDH)`vilR+PWYe_e7@oFLp zi%XzX_GHnL8)uWgCx#|Gs=@G!ZNq|X!w*jD3DxnY32q2fsp%2msAeBm? z57GqikytE-K8Si%3m_B sCR#xB$vdJ2L!RajdHnFb`QMJe0XP&@60ho4VgLXD07*qoM6N<$f_SqK!TqaTn3XQ!tHPYHM zMO4&iY%%-veV@PJ`Ebs;u5&(|^Yz4;8tYtU;%5Q?;If{srukoW{y#9#{pID1*S7(H zg`}scZW%bcmF;ecvElDaT^OFJJjTv^$*;Ti;LFT#R`-WEepkZ;IVrQq7ItO*iUJ1n z;v!CUby^xpb51h`qadDQ-PB|$St=>r?<;Lb4MWPUi?XtJsq0AuzYBM|z>U2olP2<@ zbY(0U#rx>LB-a_6l%)ETOlA%3$Ky?iN2EJR#c{3NMpv?b^-vfY8B1X>n4E))iwl2S z>P?6Gf`DMp!mZxME!+2la*CeNvoPF3lf&aC9{Dh1@Ix;eH7=DwOo}Ny>LL$M;oty}0eDbZ3rlmO^PR@k-%G$Q?KH@6) z9|0;yPmkngLkG2L$N7NnZyRg?4FFOD{#Q{7JNb2unfcyoeyVVLsz`WuSDsG&6kOzM z(oKItI3iCc^y~mQ%fIT}MWRD4P!~LTcO~ zN?TPi3p;+XM*V8p)v%U_ghb!zTn0po4v++=>+FzbNFtDyx>rKvc|WUyw^e!K&>v{J zFVJx*yZmmkVV|aUu}$=!Tfv4r^$yc=Iibkpcdz%N)%_R3W0yyz&L}w?`ecAVd#-9> zp38#AqZ3zYC`;TJrUdSA56RE=g4vjnviLx#>cc95J)6+C5F7H6_Iq`0#aVy0A0G03 z)npczW4DqUF)qyq4A!z4(sd79CRkon5a66I4C!l5~s#Hn!OH;U$oxX z(m5UTx#^_${S6eoBaoGq>3%=U7U=Pq#6O`63%@{t0abe(twOp-k4KR@B%>)ubd#T| zy|W`-geXsqeN0qmaVd-I5v8G9ocok!53X2v5;=S-n4Dv_ZRk<5UH3d@f{pmMptof0 zhB!M-z8|}(6xoOwc+wX-hi>1J$FEua#%~SEi^Uda2cHlNPMxp}bf3#m{{k{98D&N&$q3t`7+q99srgYBV zPtIYYyqOuq$7-BNyLncIH(kH>(!KkaF#J)1C>rr5?4~53bSHuD-oUmv6~E6NJMzHs zKF=ql{{FwKfwj5i%)^QyvI^EvZUu3QU18Tp6$}np6v2dR`r zXy_jl2L>$%9OPA_Yp@0=kXq4UEtTYyg0|665VdS>PcS25g%%U#x;z#*CO^sUcSGpX z;E!6J|@D3c#F~W7GnIyu9+65Rx&X ziqH2FUaQM7Ay)RO0!Gs`?>{seSp}{q=%Gk1iEwN0$ITs}l~tb3`=Y#z1CqohUY&RJ z6Ekks*RY7;NAT+@u!4XqNVOMQl6=vz%_(1}-W302LaM20Q?m(jRVrcUza0-rGq$If zdutbpo8$#t6uN-spVbeZa6)e9Zma8R7WdLN`M`zMo?L$yk8!RO_Fe^U!Knh8aBA8c zS|;F(U2;6i?GtISz=|#nmjPE-9yHow2BPKUPn>lXh z0B3LiS|r%hG=h%KG-yM~`eh9wI#Izm|FXOwq9pB=;X`L+!u+zFBkutfh6fc>L@e#1 zoFrg)iYF|XOvFG1{NX|y^%BJL9_E}ZyZ$;b1g$Y^k$FY*ti0o6fyL0aabL@#2(L#y zo95C_RuP$w2MTFb)uTdIH3zdz3l#r=M`@zyBY)*xt17(~KE4AK;5H+)XP&db|^wJ&9U zx%0pXDI9#*01|h^x0})P2nP87oItCC&VILOQTA}}pEF=WE)I9<40|c0O|E8xu;9aQ z#&#^~_WUKZ)z7+oBL$;YxXkm=zR}|4-o9_X=6n7#(~A3qg9z!|y(*MH0wWde8C$@` zjWFax<#mt1pmLqJkEX~t#QR*1q-kZoT6Qs@Ew`E>JnMNeYCD~8@J>`4{+63?mBwXt zf}{c4J-p_JshFps+D;M!>Q9ki(7*Tzv4Xh zaW8pmgS7N+bDR51m#TpP4OV-oz<_;UJXSa@6)euMLYpPptP(5{vptey)of@uAj9ul zafunRFRLSunipGJtp5Wf6ozcGUAT}Y=8 zZqMzgm05wus~hy<0XK_4A1PCoub{b_MK!|g>{vz-hPwskLkruDMsftF(O2&pe6Q?q zh7P`68p`^7mtgqUn6D$^y2h}}2p=0@~ld?{6DBnwI z9&uWUZ_Fy^K(tj=_?$ZacK>9~tAtHqWPP z!y4`}{gNdZ`f$481iK|vQi9zxr^;ZC6jtC)pIE$zjEObS z?Ub|OzLGm{SMR4~`jqDMoI3ZdB(Nqsg6iE>gcKe8=-R305uCqgTebKGS-4CJvkILD zncC?GWzro$-*eS1u5QH~_bPjTn~jSWez-~-7uepsq}3Z02uuuGHd#1K_1(X-7VNLG zhAIuGDfgNZYs2!A>;iXol2kSh;=jrV1IW78b$VHH+=%rzW(!F1g9TZiLi z$Vus?wmmZn(NfIA{mI%)0UL#uMojc}f|Yf{n&5k>pl5!7`qSqPZ(jXWVTtbKg!iRh zL!Fvr^{y&8G^UO4OGCKH!9&`Z(ndE zInYzqS{md4uZ)E2K*?c}A&N>h&zK$0#m;_kw^-@mF_N1B{{DrnRqRi=-g&F=A?yrl zMei!H$W_@iEOVqLKQxUBvNk?EI1rd8UJd2aRCqgSG0TVUEpZ!{{EbZ^%a@nGI6i7r zJ}@1J%0?=-cM=3L8=}v8rpwp)EiJA8Eygh){tmuSxprV35uhjli2Wao6L_~mEKWP8EA)Gxio?JWcsReW8pf5C)m6f_plSIH5dw%#L z!CG{Ft&1%b0f+(&02Km|o!lvx%_M-Dr2s=2ME)W5`B}pm`5$-zTP^?q literal 0 HcmV?d00001 diff --git a/engine/lib/sdl/android-project-ant/res/drawable-xxhdpi/ic_launcher.png b/engine/lib/sdl/android-project-ant/res/drawable-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..d423dac2624cf0b5dc90821a15362bc29e5a1e6b GIT binary patch literal 6874 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 literal 0 HcmV?d00001 diff --git a/engine/lib/sdl/android-project-ant/res/layout/main.xml b/engine/lib/sdl/android-project-ant/res/layout/main.xml new file mode 100644 index 000000000..123c4b6ea --- /dev/null +++ b/engine/lib/sdl/android-project-ant/res/layout/main.xml @@ -0,0 +1,13 @@ + + + + + diff --git a/engine/lib/sdl/android-project-ant/res/values/strings.xml b/engine/lib/sdl/android-project-ant/res/values/strings.xml new file mode 100644 index 000000000..9bce51cb3 --- /dev/null +++ b/engine/lib/sdl/android-project-ant/res/values/strings.xml @@ -0,0 +1,4 @@ + + + SDL App + diff --git a/engine/lib/sdl/android-project-ant/src b/engine/lib/sdl/android-project-ant/src new file mode 100644 index 000000000..d5b63ee14 --- /dev/null +++ b/engine/lib/sdl/android-project-ant/src @@ -0,0 +1 @@ +../android-project/app/src/main/java \ No newline at end of file diff --git a/engine/lib/sdl/android-project/app/build.gradle b/engine/lib/sdl/android-project/app/build.gradle new file mode 100644 index 000000000..c6043616d --- /dev/null +++ b/engine/lib/sdl/android-project/app/build.gradle @@ -0,0 +1,75 @@ +def buildAsLibrary = project.hasProperty('BUILD_AS_LIBRARY'); +def buildAsApplication = !buildAsLibrary +if (buildAsApplication) { + apply plugin: 'com.android.application' +} +else { + apply plugin: 'com.android.library' +} + +android { + if (buildAsApplication) { + namespace "org.libsdl.app" + } + compileSdkVersion 34 + defaultConfig { + minSdkVersion 19 + targetSdkVersion 34 + versionCode 1 + versionName "1.0" + externalNativeBuild { + ndkBuild { + arguments "APP_PLATFORM=android-19" + abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64' + } + // cmake { + // arguments "-DANDROID_APP_PLATFORM=android-19", "-DANDROID_STL=c++_static" + // // abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64' + // abiFilters 'arm64-v8a' + // } + } + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } + applicationVariants.all { variant -> + tasks["merge${variant.name.capitalize()}Assets"] + .dependsOn("externalNativeBuild${variant.name.capitalize()}") + } + if (!project.hasProperty('EXCLUDE_NATIVE_LIBS')) { + sourceSets.main { + jniLibs.srcDir 'libs' + } + externalNativeBuild { + ndkBuild { + path 'jni/Android.mk' + } + // cmake { + // path 'jni/CMakeLists.txt' + // } + } + + } + lint { + abortOnError false + } + + if (buildAsLibrary) { + libraryVariants.all { variant -> + variant.outputs.each { output -> + def outputFile = output.outputFile + if (outputFile != null && outputFile.name.endsWith(".aar")) { + def fileName = "org.libsdl.app.aar"; + output.outputFile = new File(outputFile.parent, fileName); + } + } + } + } +} + +dependencies { + implementation fileTree(include: ['*.jar'], dir: 'libs') +} diff --git a/engine/lib/sdl/android-project/app/jni/Android.mk b/engine/lib/sdl/android-project/app/jni/Android.mk new file mode 100644 index 000000000..5053e7d64 --- /dev/null +++ b/engine/lib/sdl/android-project/app/jni/Android.mk @@ -0,0 +1 @@ +include $(call all-subdir-makefiles) diff --git a/engine/lib/sdl/android-project/app/jni/Application.mk b/engine/lib/sdl/android-project/app/jni/Application.mk new file mode 100644 index 000000000..023bc20df --- /dev/null +++ b/engine/lib/sdl/android-project/app/jni/Application.mk @@ -0,0 +1,10 @@ + +# Uncomment this if you're using STL in your project +# You can find more information here: +# https://developer.android.com/ndk/guides/cpp-support +# APP_STL := c++_shared + +APP_ABI := armeabi-v7a arm64-v8a x86 x86_64 + +# Min runtime API level +APP_PLATFORM=android-16 diff --git a/engine/lib/sdl/android-project/app/jni/CMakeLists.txt b/engine/lib/sdl/android-project/app/jni/CMakeLists.txt new file mode 100644 index 000000000..3d49cf343 --- /dev/null +++ b/engine/lib/sdl/android-project/app/jni/CMakeLists.txt @@ -0,0 +1,20 @@ +cmake_minimum_required(VERSION 3.6) + +project(GAME) + +# armeabi-v7a requires cpufeatures library +# include(AndroidNdkModules) +# android_ndk_import_module_cpufeatures() + + +# SDL sources are in a subfolder named "SDL" +add_subdirectory(SDL) + +# Compilation of companion libraries +#add_subdirectory(SDL_image) +#add_subdirectory(SDL_mixer) +#add_subdirectory(SDL_ttf) + +# Your game and its CMakeLists.txt are in a subfolder named "src" +add_subdirectory(src) + diff --git a/engine/lib/sdl/android-project/app/jni/src/Android.mk b/engine/lib/sdl/android-project/app/jni/src/Android.mk new file mode 100644 index 000000000..04e006ae9 --- /dev/null +++ b/engine/lib/sdl/android-project/app/jni/src/Android.mk @@ -0,0 +1,18 @@ +LOCAL_PATH := $(call my-dir) + +include $(CLEAR_VARS) + +LOCAL_MODULE := main + +SDL_PATH := ../SDL + +LOCAL_C_INCLUDES := $(LOCAL_PATH)/$(SDL_PATH)/include + +# Add your application source files here... +LOCAL_SRC_FILES := YourSourceHere.c + +LOCAL_SHARED_LIBRARIES := SDL2 + +LOCAL_LDLIBS := -lGLESv1_CM -lGLESv2 -lOpenSLES -llog -landroid + +include $(BUILD_SHARED_LIBRARY) diff --git a/engine/lib/sdl/android-project/app/jni/src/CMakeLists.txt b/engine/lib/sdl/android-project/app/jni/src/CMakeLists.txt new file mode 100644 index 000000000..fb021f9f8 --- /dev/null +++ b/engine/lib/sdl/android-project/app/jni/src/CMakeLists.txt @@ -0,0 +1,13 @@ +cmake_minimum_required(VERSION 3.6) + +project(MY_APP) + +find_library(SDL2 SDL2) + +add_library(main SHARED) + +target_sources(main PRIVATE YourSourceHere.c) + +target_link_libraries(main SDL2) + + diff --git a/engine/lib/sdl/android-project/app/proguard-rules.pro b/engine/lib/sdl/android-project/app/proguard-rules.pro new file mode 100644 index 000000000..a4c988665 --- /dev/null +++ b/engine/lib/sdl/android-project/app/proguard-rules.pro @@ -0,0 +1,98 @@ +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in [sdk]/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the proguardFiles +# directive in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +-keep,includedescriptorclasses,allowoptimization class org.libsdl.app.SDLInputConnection { + void nativeCommitText(java.lang.String, int); + void nativeGenerateScancodeForUnichar(char); +} + +-keep,includedescriptorclasses class org.libsdl.app.SDLActivity { + # for some reason these aren't compatible with allowoptimization modifier + boolean supportsRelativeMouse(); + void setWindowStyle(boolean); +} + +-keep,includedescriptorclasses,allowoptimization class org.libsdl.app.SDLActivity { + java.lang.String nativeGetHint(java.lang.String); # Java-side doesn't use this, so it gets minified, but C-side still tries to register it + boolean onNativeSoftReturnKey(); + void onNativeKeyboardFocusLost(); + boolean isScreenKeyboardShown(); + android.util.DisplayMetrics getDisplayDPI(); + java.lang.String clipboardGetText(); + boolean clipboardHasText(); + void clipboardSetText(java.lang.String); + int createCustomCursor(int[], int, int, int, int); + void destroyCustomCursor(int); + android.content.Context getContext(); + boolean getManifestEnvironmentVariables(); + android.view.Surface getNativeSurface(); + void initTouch(); + boolean isAndroidTV(); + boolean isChromebook(); + boolean isDeXMode(); + boolean isTablet(); + void manualBackButton(); + int messageboxShowMessageBox(int, java.lang.String, java.lang.String, int[], int[], java.lang.String[], int[]); + void minimizeWindow(); + int openURL(java.lang.String); + void requestPermission(java.lang.String, int); + int showToast(java.lang.String, int, int, int, int); + boolean sendMessage(int, int); + boolean setActivityTitle(java.lang.String); + boolean setCustomCursor(int); + void setOrientation(int, int, boolean, java.lang.String); + boolean setRelativeMouseEnabled(boolean); + boolean setSystemCursor(int); + boolean shouldMinimizeOnFocusLoss(); + boolean showTextInput(int, int, int, int); +} + +-keep,includedescriptorclasses,allowoptimization class org.libsdl.app.HIDDeviceManager { + boolean initialize(boolean, boolean); + boolean openDevice(int); + int sendOutputReport(int, byte[]); + int sendFeatureReport(int, byte[]); + boolean getFeatureReport(int, byte[]); + void closeDevice(int); +} + +-keep,includedescriptorclasses,allowoptimization class org.libsdl.app.SDLAudioManager { + int[] getAudioOutputDevices(); + int[] getAudioInputDevices(); + int[] audioOpen(int, int, int, int, int); + void audioWriteFloatBuffer(float[]); + void audioWriteShortBuffer(short[]); + void audioWriteByteBuffer(byte[]); + void audioClose(); + int[] captureOpen(int, int, int, int, int); + int captureReadFloatBuffer(float[], boolean); + int captureReadShortBuffer(short[], boolean); + int captureReadByteBuffer(byte[], boolean); + void captureClose(); + void audioSetThreadPriority(boolean, int); + native int nativeSetupJNI(); + native void removeAudioDevice(boolean, int); + native void addAudioDevice(boolean, int); +} + +-keep,includedescriptorclasses,allowoptimization class org.libsdl.app.SDLControllerManager { + void pollInputDevices(); + void pollHapticDevices(); + void hapticRun(int, float, int); + void hapticStop(int); +} diff --git a/engine/lib/sdl/android-project/app/src/main/AndroidManifest.xml b/engine/lib/sdl/android-project/app/src/main/AndroidManifest.xml new file mode 100644 index 000000000..5157374b5 --- /dev/null +++ b/engine/lib/sdl/android-project/app/src/main/AndroidManifest.xml @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/engine/lib/sdl/android-project/app/src/main/java/org/libsdl/app/HIDDevice.java b/engine/lib/sdl/android-project/app/src/main/java/org/libsdl/app/HIDDevice.java new file mode 100644 index 000000000..955df5d14 --- /dev/null +++ b/engine/lib/sdl/android-project/app/src/main/java/org/libsdl/app/HIDDevice.java @@ -0,0 +1,22 @@ +package org.libsdl.app; + +import android.hardware.usb.UsbDevice; + +interface HIDDevice +{ + public int getId(); + public int getVendorId(); + public int getProductId(); + public String getSerialNumber(); + public int getVersion(); + public String getManufacturerName(); + public String getProductName(); + public UsbDevice getDevice(); + public boolean open(); + public int sendFeatureReport(byte[] report); + public int sendOutputReport(byte[] report); + public boolean getFeatureReport(byte[] report); + public void setFrozen(boolean frozen); + public void close(); + public void shutdown(); +} diff --git a/engine/lib/sdl/android-project/app/src/main/java/org/libsdl/app/HIDDeviceBLESteamController.java b/engine/lib/sdl/android-project/app/src/main/java/org/libsdl/app/HIDDeviceBLESteamController.java new file mode 100644 index 000000000..ee5521fd5 --- /dev/null +++ b/engine/lib/sdl/android-project/app/src/main/java/org/libsdl/app/HIDDeviceBLESteamController.java @@ -0,0 +1,650 @@ +package org.libsdl.app; + +import android.content.Context; +import android.bluetooth.BluetoothDevice; +import android.bluetooth.BluetoothGatt; +import android.bluetooth.BluetoothGattCallback; +import android.bluetooth.BluetoothGattCharacteristic; +import android.bluetooth.BluetoothGattDescriptor; +import android.bluetooth.BluetoothManager; +import android.bluetooth.BluetoothProfile; +import android.bluetooth.BluetoothGattService; +import android.hardware.usb.UsbDevice; +import android.os.Handler; +import android.os.Looper; +import android.util.Log; +import android.os.*; + +//import com.android.internal.util.HexDump; + +import java.lang.Runnable; +import java.util.Arrays; +import java.util.LinkedList; +import java.util.UUID; + +class HIDDeviceBLESteamController extends BluetoothGattCallback implements HIDDevice { + + private static final String TAG = "hidapi"; + private HIDDeviceManager mManager; + private BluetoothDevice mDevice; + private int mDeviceId; + private BluetoothGatt mGatt; + private boolean mIsRegistered = false; + private boolean mIsConnected = false; + private boolean mIsChromebook = false; + private boolean mIsReconnecting = false; + private boolean mFrozen = false; + private LinkedList mOperations; + GattOperation mCurrentOperation = null; + private Handler mHandler; + + private static final int TRANSPORT_AUTO = 0; + private static final int TRANSPORT_BREDR = 1; + private static final int TRANSPORT_LE = 2; + + private static final int CHROMEBOOK_CONNECTION_CHECK_INTERVAL = 10000; + + static public final UUID steamControllerService = UUID.fromString("100F6C32-1735-4313-B402-38567131E5F3"); + static public final UUID inputCharacteristic = UUID.fromString("100F6C33-1735-4313-B402-38567131E5F3"); + static public final UUID reportCharacteristic = UUID.fromString("100F6C34-1735-4313-B402-38567131E5F3"); + static private final byte[] enterValveMode = new byte[] { (byte)0xC0, (byte)0x87, 0x03, 0x08, 0x07, 0x00 }; + + static class GattOperation { + private enum Operation { + CHR_READ, + CHR_WRITE, + ENABLE_NOTIFICATION + } + + Operation mOp; + UUID mUuid; + byte[] mValue; + BluetoothGatt mGatt; + boolean mResult = true; + + private GattOperation(BluetoothGatt gatt, GattOperation.Operation operation, UUID uuid) { + mGatt = gatt; + mOp = operation; + mUuid = uuid; + } + + private GattOperation(BluetoothGatt gatt, GattOperation.Operation operation, UUID uuid, byte[] value) { + mGatt = gatt; + mOp = operation; + mUuid = uuid; + mValue = value; + } + + public void run() { + // This is executed in main thread + BluetoothGattCharacteristic chr; + + switch (mOp) { + case CHR_READ: + chr = getCharacteristic(mUuid); + //Log.v(TAG, "Reading characteristic " + chr.getUuid()); + if (!mGatt.readCharacteristic(chr)) { + Log.e(TAG, "Unable to read characteristic " + mUuid.toString()); + mResult = false; + break; + } + mResult = true; + break; + case CHR_WRITE: + chr = getCharacteristic(mUuid); + //Log.v(TAG, "Writing characteristic " + chr.getUuid() + " value=" + HexDump.toHexString(value)); + chr.setValue(mValue); + if (!mGatt.writeCharacteristic(chr)) { + Log.e(TAG, "Unable to write characteristic " + mUuid.toString()); + mResult = false; + break; + } + mResult = true; + break; + case ENABLE_NOTIFICATION: + chr = getCharacteristic(mUuid); + //Log.v(TAG, "Writing descriptor of " + chr.getUuid()); + if (chr != null) { + BluetoothGattDescriptor cccd = chr.getDescriptor(UUID.fromString("00002902-0000-1000-8000-00805f9b34fb")); + if (cccd != null) { + int properties = chr.getProperties(); + byte[] value; + if ((properties & BluetoothGattCharacteristic.PROPERTY_NOTIFY) == BluetoothGattCharacteristic.PROPERTY_NOTIFY) { + value = BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE; + } else if ((properties & BluetoothGattCharacteristic.PROPERTY_INDICATE) == BluetoothGattCharacteristic.PROPERTY_INDICATE) { + value = BluetoothGattDescriptor.ENABLE_INDICATION_VALUE; + } else { + Log.e(TAG, "Unable to start notifications on input characteristic"); + mResult = false; + return; + } + + mGatt.setCharacteristicNotification(chr, true); + cccd.setValue(value); + if (!mGatt.writeDescriptor(cccd)) { + Log.e(TAG, "Unable to write descriptor " + mUuid.toString()); + mResult = false; + return; + } + mResult = true; + } + } + } + } + + public boolean finish() { + return mResult; + } + + private BluetoothGattCharacteristic getCharacteristic(UUID uuid) { + BluetoothGattService valveService = mGatt.getService(steamControllerService); + if (valveService == null) + return null; + return valveService.getCharacteristic(uuid); + } + + static public GattOperation readCharacteristic(BluetoothGatt gatt, UUID uuid) { + return new GattOperation(gatt, Operation.CHR_READ, uuid); + } + + static public GattOperation writeCharacteristic(BluetoothGatt gatt, UUID uuid, byte[] value) { + return new GattOperation(gatt, Operation.CHR_WRITE, uuid, value); + } + + static public GattOperation enableNotification(BluetoothGatt gatt, UUID uuid) { + return new GattOperation(gatt, Operation.ENABLE_NOTIFICATION, uuid); + } + } + + public HIDDeviceBLESteamController(HIDDeviceManager manager, BluetoothDevice device) { + mManager = manager; + mDevice = device; + mDeviceId = mManager.getDeviceIDForIdentifier(getIdentifier()); + mIsRegistered = false; + mIsChromebook = mManager.getContext().getPackageManager().hasSystemFeature("org.chromium.arc.device_management"); + mOperations = new LinkedList(); + mHandler = new Handler(Looper.getMainLooper()); + + mGatt = connectGatt(); + // final HIDDeviceBLESteamController finalThis = this; + // mHandler.postDelayed(new Runnable() { + // @Override + // public void run() { + // finalThis.checkConnectionForChromebookIssue(); + // } + // }, CHROMEBOOK_CONNECTION_CHECK_INTERVAL); + } + + public String getIdentifier() { + return String.format("SteamController.%s", mDevice.getAddress()); + } + + public BluetoothGatt getGatt() { + return mGatt; + } + + // Because on Chromebooks we show up as a dual-mode device, it will attempt to connect TRANSPORT_AUTO, which will use TRANSPORT_BREDR instead + // of TRANSPORT_LE. Let's force ourselves to connect low energy. + private BluetoothGatt connectGatt(boolean managed) { + if (Build.VERSION.SDK_INT >= 23 /* Android 6.0 (M) */) { + try { + return mDevice.connectGatt(mManager.getContext(), managed, this, TRANSPORT_LE); + } catch (Exception e) { + return mDevice.connectGatt(mManager.getContext(), managed, this); + } + } else { + return mDevice.connectGatt(mManager.getContext(), managed, this); + } + } + + private BluetoothGatt connectGatt() { + return connectGatt(false); + } + + protected int getConnectionState() { + + Context context = mManager.getContext(); + if (context == null) { + // We are lacking any context to get our Bluetooth information. We'll just assume disconnected. + return BluetoothProfile.STATE_DISCONNECTED; + } + + BluetoothManager btManager = (BluetoothManager)context.getSystemService(Context.BLUETOOTH_SERVICE); + if (btManager == null) { + // This device doesn't support Bluetooth. We should never be here, because how did + // we instantiate a device to start with? + return BluetoothProfile.STATE_DISCONNECTED; + } + + return btManager.getConnectionState(mDevice, BluetoothProfile.GATT); + } + + public void reconnect() { + + if (getConnectionState() != BluetoothProfile.STATE_CONNECTED) { + mGatt.disconnect(); + mGatt = connectGatt(); + } + + } + + protected void checkConnectionForChromebookIssue() { + if (!mIsChromebook) { + // We only do this on Chromebooks, because otherwise it's really annoying to just attempt + // over and over. + return; + } + + int connectionState = getConnectionState(); + + switch (connectionState) { + case BluetoothProfile.STATE_CONNECTED: + if (!mIsConnected) { + // We are in the Bad Chromebook Place. We can force a disconnect + // to try to recover. + Log.v(TAG, "Chromebook: We are in a very bad state; the controller shows as connected in the underlying Bluetooth layer, but we never received a callback. Forcing a reconnect."); + mIsReconnecting = true; + mGatt.disconnect(); + mGatt = connectGatt(false); + break; + } + else if (!isRegistered()) { + if (mGatt.getServices().size() > 0) { + Log.v(TAG, "Chromebook: We are connected to a controller, but never got our registration. Trying to recover."); + probeService(this); + } + else { + Log.v(TAG, "Chromebook: We are connected to a controller, but never discovered services. Trying to recover."); + mIsReconnecting = true; + mGatt.disconnect(); + mGatt = connectGatt(false); + break; + } + } + else { + Log.v(TAG, "Chromebook: We are connected, and registered. Everything's good!"); + return; + } + break; + + case BluetoothProfile.STATE_DISCONNECTED: + Log.v(TAG, "Chromebook: We have either been disconnected, or the Chromebook BtGatt.ContextMap bug has bitten us. Attempting a disconnect/reconnect, but we may not be able to recover."); + + mIsReconnecting = true; + mGatt.disconnect(); + mGatt = connectGatt(false); + break; + + case BluetoothProfile.STATE_CONNECTING: + Log.v(TAG, "Chromebook: We're still trying to connect. Waiting a bit longer."); + break; + } + + final HIDDeviceBLESteamController finalThis = this; + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + finalThis.checkConnectionForChromebookIssue(); + } + }, CHROMEBOOK_CONNECTION_CHECK_INTERVAL); + } + + private boolean isRegistered() { + return mIsRegistered; + } + + private void setRegistered() { + mIsRegistered = true; + } + + private boolean probeService(HIDDeviceBLESteamController controller) { + + if (isRegistered()) { + return true; + } + + if (!mIsConnected) { + return false; + } + + Log.v(TAG, "probeService controller=" + controller); + + for (BluetoothGattService service : mGatt.getServices()) { + if (service.getUuid().equals(steamControllerService)) { + Log.v(TAG, "Found Valve steam controller service " + service.getUuid()); + + for (BluetoothGattCharacteristic chr : service.getCharacteristics()) { + if (chr.getUuid().equals(inputCharacteristic)) { + Log.v(TAG, "Found input characteristic"); + // Start notifications + BluetoothGattDescriptor cccd = chr.getDescriptor(UUID.fromString("00002902-0000-1000-8000-00805f9b34fb")); + if (cccd != null) { + enableNotification(chr.getUuid()); + } + } + } + return true; + } + } + + if ((mGatt.getServices().size() == 0) && mIsChromebook && !mIsReconnecting) { + Log.e(TAG, "Chromebook: Discovered services were empty; this almost certainly means the BtGatt.ContextMap bug has bitten us."); + mIsConnected = false; + mIsReconnecting = true; + mGatt.disconnect(); + mGatt = connectGatt(false); + } + + return false; + } + + ////////////////////////////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////////////////////////////// + + private void finishCurrentGattOperation() { + GattOperation op = null; + synchronized (mOperations) { + if (mCurrentOperation != null) { + op = mCurrentOperation; + mCurrentOperation = null; + } + } + if (op != null) { + boolean result = op.finish(); // TODO: Maybe in main thread as well? + + // Our operation failed, let's add it back to the beginning of our queue. + if (!result) { + mOperations.addFirst(op); + } + } + executeNextGattOperation(); + } + + private void executeNextGattOperation() { + synchronized (mOperations) { + if (mCurrentOperation != null) + return; + + if (mOperations.isEmpty()) + return; + + mCurrentOperation = mOperations.removeFirst(); + } + + // Run in main thread + mHandler.post(new Runnable() { + @Override + public void run() { + synchronized (mOperations) { + if (mCurrentOperation == null) { + Log.e(TAG, "Current operation null in executor?"); + return; + } + + mCurrentOperation.run(); + // now wait for the GATT callback and when it comes, finish this operation + } + } + }); + } + + private void queueGattOperation(GattOperation op) { + synchronized (mOperations) { + mOperations.add(op); + } + executeNextGattOperation(); + } + + private void enableNotification(UUID chrUuid) { + GattOperation op = HIDDeviceBLESteamController.GattOperation.enableNotification(mGatt, chrUuid); + queueGattOperation(op); + } + + public void writeCharacteristic(UUID uuid, byte[] value) { + GattOperation op = HIDDeviceBLESteamController.GattOperation.writeCharacteristic(mGatt, uuid, value); + queueGattOperation(op); + } + + public void readCharacteristic(UUID uuid) { + GattOperation op = HIDDeviceBLESteamController.GattOperation.readCharacteristic(mGatt, uuid); + queueGattOperation(op); + } + + ////////////////////////////////////////////////////////////////////////////////////////////////////// + ////////////// BluetoothGattCallback overridden methods + ////////////////////////////////////////////////////////////////////////////////////////////////////// + + public void onConnectionStateChange(BluetoothGatt g, int status, int newState) { + //Log.v(TAG, "onConnectionStateChange status=" + status + " newState=" + newState); + mIsReconnecting = false; + if (newState == 2) { + mIsConnected = true; + // Run directly, without GattOperation + if (!isRegistered()) { + mHandler.post(new Runnable() { + @Override + public void run() { + mGatt.discoverServices(); + } + }); + } + } + else if (newState == 0) { + mIsConnected = false; + } + + // Disconnection is handled in SteamLink using the ACTION_ACL_DISCONNECTED Intent. + } + + public void onServicesDiscovered(BluetoothGatt gatt, int status) { + //Log.v(TAG, "onServicesDiscovered status=" + status); + if (status == 0) { + if (gatt.getServices().size() == 0) { + Log.v(TAG, "onServicesDiscovered returned zero services; something has gone horribly wrong down in Android's Bluetooth stack."); + mIsReconnecting = true; + mIsConnected = false; + gatt.disconnect(); + mGatt = connectGatt(false); + } + else { + probeService(this); + } + } + } + + public void onCharacteristicRead(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status) { + //Log.v(TAG, "onCharacteristicRead status=" + status + " uuid=" + characteristic.getUuid()); + + if (characteristic.getUuid().equals(reportCharacteristic) && !mFrozen) { + mManager.HIDDeviceFeatureReport(getId(), characteristic.getValue()); + } + + finishCurrentGattOperation(); + } + + public void onCharacteristicWrite(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status) { + //Log.v(TAG, "onCharacteristicWrite status=" + status + " uuid=" + characteristic.getUuid()); + + if (characteristic.getUuid().equals(reportCharacteristic)) { + // Only register controller with the native side once it has been fully configured + if (!isRegistered()) { + Log.v(TAG, "Registering Steam Controller with ID: " + getId()); + mManager.HIDDeviceConnected(getId(), getIdentifier(), getVendorId(), getProductId(), getSerialNumber(), getVersion(), getManufacturerName(), getProductName(), 0, 0, 0, 0); + setRegistered(); + } + } + + finishCurrentGattOperation(); + } + + public void onCharacteristicChanged(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic) { + // Enable this for verbose logging of controller input reports + //Log.v(TAG, "onCharacteristicChanged uuid=" + characteristic.getUuid() + " data=" + HexDump.dumpHexString(characteristic.getValue())); + + if (characteristic.getUuid().equals(inputCharacteristic) && !mFrozen) { + mManager.HIDDeviceInputReport(getId(), characteristic.getValue()); + } + } + + public void onDescriptorRead(BluetoothGatt gatt, BluetoothGattDescriptor descriptor, int status) { + //Log.v(TAG, "onDescriptorRead status=" + status); + } + + public void onDescriptorWrite(BluetoothGatt gatt, BluetoothGattDescriptor descriptor, int status) { + BluetoothGattCharacteristic chr = descriptor.getCharacteristic(); + //Log.v(TAG, "onDescriptorWrite status=" + status + " uuid=" + chr.getUuid() + " descriptor=" + descriptor.getUuid()); + + if (chr.getUuid().equals(inputCharacteristic)) { + boolean hasWrittenInputDescriptor = true; + BluetoothGattCharacteristic reportChr = chr.getService().getCharacteristic(reportCharacteristic); + if (reportChr != null) { + Log.v(TAG, "Writing report characteristic to enter valve mode"); + reportChr.setValue(enterValveMode); + gatt.writeCharacteristic(reportChr); + } + } + + finishCurrentGattOperation(); + } + + public void onReliableWriteCompleted(BluetoothGatt gatt, int status) { + //Log.v(TAG, "onReliableWriteCompleted status=" + status); + } + + public void onReadRemoteRssi(BluetoothGatt gatt, int rssi, int status) { + //Log.v(TAG, "onReadRemoteRssi status=" + status); + } + + public void onMtuChanged(BluetoothGatt gatt, int mtu, int status) { + //Log.v(TAG, "onMtuChanged status=" + status); + } + + ////////////////////////////////////////////////////////////////////////////////////////////////////// + //////// Public API + ////////////////////////////////////////////////////////////////////////////////////////////////////// + + @Override + public int getId() { + return mDeviceId; + } + + @Override + public int getVendorId() { + // Valve Corporation + final int VALVE_USB_VID = 0x28DE; + return VALVE_USB_VID; + } + + @Override + public int getProductId() { + // We don't have an easy way to query from the Bluetooth device, but we know what it is + final int D0G_BLE2_PID = 0x1106; + return D0G_BLE2_PID; + } + + @Override + public String getSerialNumber() { + // This will be read later via feature report by Steam + return "12345"; + } + + @Override + public int getVersion() { + return 0; + } + + @Override + public String getManufacturerName() { + return "Valve Corporation"; + } + + @Override + public String getProductName() { + return "Steam Controller"; + } + + @Override + public UsbDevice getDevice() { + return null; + } + + @Override + public boolean open() { + return true; + } + + @Override + public int sendFeatureReport(byte[] report) { + if (!isRegistered()) { + Log.e(TAG, "Attempted sendFeatureReport before Steam Controller is registered!"); + if (mIsConnected) { + probeService(this); + } + return -1; + } + + // We need to skip the first byte, as that doesn't go over the air + byte[] actual_report = Arrays.copyOfRange(report, 1, report.length - 1); + //Log.v(TAG, "sendFeatureReport " + HexDump.dumpHexString(actual_report)); + writeCharacteristic(reportCharacteristic, actual_report); + return report.length; + } + + @Override + public int sendOutputReport(byte[] report) { + if (!isRegistered()) { + Log.e(TAG, "Attempted sendOutputReport before Steam Controller is registered!"); + if (mIsConnected) { + probeService(this); + } + return -1; + } + + //Log.v(TAG, "sendFeatureReport " + HexDump.dumpHexString(report)); + writeCharacteristic(reportCharacteristic, report); + return report.length; + } + + @Override + public boolean getFeatureReport(byte[] report) { + if (!isRegistered()) { + Log.e(TAG, "Attempted getFeatureReport before Steam Controller is registered!"); + if (mIsConnected) { + probeService(this); + } + return false; + } + + //Log.v(TAG, "getFeatureReport"); + readCharacteristic(reportCharacteristic); + return true; + } + + @Override + public void close() { + } + + @Override + public void setFrozen(boolean frozen) { + mFrozen = frozen; + } + + @Override + public void shutdown() { + close(); + + BluetoothGatt g = mGatt; + if (g != null) { + g.disconnect(); + g.close(); + mGatt = null; + } + mManager = null; + mIsRegistered = false; + mIsConnected = false; + mOperations.clear(); + } + +} + diff --git a/engine/lib/sdl/android-project/app/src/main/java/org/libsdl/app/HIDDeviceManager.java b/engine/lib/sdl/android-project/app/src/main/java/org/libsdl/app/HIDDeviceManager.java new file mode 100644 index 000000000..21a1c1d18 --- /dev/null +++ b/engine/lib/sdl/android-project/app/src/main/java/org/libsdl/app/HIDDeviceManager.java @@ -0,0 +1,698 @@ +package org.libsdl.app; + +import android.app.Activity; +import android.app.AlertDialog; +import android.app.PendingIntent; +import android.bluetooth.BluetoothAdapter; +import android.bluetooth.BluetoothDevice; +import android.bluetooth.BluetoothManager; +import android.bluetooth.BluetoothProfile; +import android.os.Build; +import android.util.Log; +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.IntentFilter; +import android.content.SharedPreferences; +import android.content.pm.PackageManager; +import android.hardware.usb.*; +import android.os.Handler; +import android.os.Looper; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; + +public class HIDDeviceManager { + private static final String TAG = "hidapi"; + private static final String ACTION_USB_PERMISSION = "org.libsdl.app.USB_PERMISSION"; + + private static HIDDeviceManager sManager; + private static int sManagerRefCount = 0; + + public static HIDDeviceManager acquire(Context context) { + if (sManagerRefCount == 0) { + sManager = new HIDDeviceManager(context); + } + ++sManagerRefCount; + return sManager; + } + + public static void release(HIDDeviceManager manager) { + if (manager == sManager) { + --sManagerRefCount; + if (sManagerRefCount == 0) { + sManager.close(); + sManager = null; + } + } + } + + private Context mContext; + private HashMap mDevicesById = new HashMap(); + private HashMap mBluetoothDevices = new HashMap(); + private int mNextDeviceId = 0; + private SharedPreferences mSharedPreferences = null; + private boolean mIsChromebook = false; + private UsbManager mUsbManager; + private Handler mHandler; + private BluetoothManager mBluetoothManager; + private List mLastBluetoothDevices; + + private final BroadcastReceiver mUsbBroadcast = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + String action = intent.getAction(); + if (action.equals(UsbManager.ACTION_USB_DEVICE_ATTACHED)) { + UsbDevice usbDevice = intent.getParcelableExtra(UsbManager.EXTRA_DEVICE); + handleUsbDeviceAttached(usbDevice); + } else if (action.equals(UsbManager.ACTION_USB_DEVICE_DETACHED)) { + UsbDevice usbDevice = intent.getParcelableExtra(UsbManager.EXTRA_DEVICE); + handleUsbDeviceDetached(usbDevice); + } else if (action.equals(HIDDeviceManager.ACTION_USB_PERMISSION)) { + UsbDevice usbDevice = intent.getParcelableExtra(UsbManager.EXTRA_DEVICE); + handleUsbDevicePermission(usbDevice, intent.getBooleanExtra(UsbManager.EXTRA_PERMISSION_GRANTED, false)); + } + } + }; + + private final BroadcastReceiver mBluetoothBroadcast = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + String action = intent.getAction(); + // Bluetooth device was connected. If it was a Steam Controller, handle it + if (action.equals(BluetoothDevice.ACTION_ACL_CONNECTED)) { + BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); + Log.d(TAG, "Bluetooth device connected: " + device); + + if (isSteamController(device)) { + connectBluetoothDevice(device); + } + } + + // Bluetooth device was disconnected, remove from controller manager (if any) + if (action.equals(BluetoothDevice.ACTION_ACL_DISCONNECTED)) { + BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); + Log.d(TAG, "Bluetooth device disconnected: " + device); + + disconnectBluetoothDevice(device); + } + } + }; + + private HIDDeviceManager(final Context context) { + mContext = context; + + HIDDeviceRegisterCallback(); + + mSharedPreferences = mContext.getSharedPreferences("hidapi", Context.MODE_PRIVATE); + mIsChromebook = mContext.getPackageManager().hasSystemFeature("org.chromium.arc.device_management"); + +// if (shouldClear) { +// SharedPreferences.Editor spedit = mSharedPreferences.edit(); +// spedit.clear(); +// spedit.commit(); +// } +// else + { + mNextDeviceId = mSharedPreferences.getInt("next_device_id", 0); + } + } + + public Context getContext() { + return mContext; + } + + public int getDeviceIDForIdentifier(String identifier) { + SharedPreferences.Editor spedit = mSharedPreferences.edit(); + + int result = mSharedPreferences.getInt(identifier, 0); + if (result == 0) { + result = mNextDeviceId++; + spedit.putInt("next_device_id", mNextDeviceId); + } + + spedit.putInt(identifier, result); + spedit.commit(); + return result; + } + + private void initializeUSB() { + mUsbManager = (UsbManager)mContext.getSystemService(Context.USB_SERVICE); + if (mUsbManager == null) { + return; + } + + /* + // Logging + for (UsbDevice device : mUsbManager.getDeviceList().values()) { + Log.i(TAG,"Path: " + device.getDeviceName()); + Log.i(TAG,"Manufacturer: " + device.getManufacturerName()); + Log.i(TAG,"Product: " + device.getProductName()); + Log.i(TAG,"ID: " + device.getDeviceId()); + Log.i(TAG,"Class: " + device.getDeviceClass()); + Log.i(TAG,"Protocol: " + device.getDeviceProtocol()); + Log.i(TAG,"Vendor ID " + device.getVendorId()); + Log.i(TAG,"Product ID: " + device.getProductId()); + Log.i(TAG,"Interface count: " + device.getInterfaceCount()); + Log.i(TAG,"---------------------------------------"); + + // Get interface details + for (int index = 0; index < device.getInterfaceCount(); index++) { + UsbInterface mUsbInterface = device.getInterface(index); + Log.i(TAG," ***** *****"); + Log.i(TAG," Interface index: " + index); + Log.i(TAG," Interface ID: " + mUsbInterface.getId()); + Log.i(TAG," Interface class: " + mUsbInterface.getInterfaceClass()); + Log.i(TAG," Interface subclass: " + mUsbInterface.getInterfaceSubclass()); + Log.i(TAG," Interface protocol: " + mUsbInterface.getInterfaceProtocol()); + Log.i(TAG," Endpoint count: " + mUsbInterface.getEndpointCount()); + + // Get endpoint details + for (int epi = 0; epi < mUsbInterface.getEndpointCount(); epi++) + { + UsbEndpoint mEndpoint = mUsbInterface.getEndpoint(epi); + Log.i(TAG," ++++ ++++ ++++"); + Log.i(TAG," Endpoint index: " + epi); + Log.i(TAG," Attributes: " + mEndpoint.getAttributes()); + Log.i(TAG," Direction: " + mEndpoint.getDirection()); + Log.i(TAG," Number: " + mEndpoint.getEndpointNumber()); + Log.i(TAG," Interval: " + mEndpoint.getInterval()); + Log.i(TAG," Packet size: " + mEndpoint.getMaxPacketSize()); + Log.i(TAG," Type: " + mEndpoint.getType()); + } + } + } + Log.i(TAG," No more devices connected."); + */ + + // Register for USB broadcasts and permission completions + IntentFilter filter = new IntentFilter(); + filter.addAction(UsbManager.ACTION_USB_DEVICE_ATTACHED); + filter.addAction(UsbManager.ACTION_USB_DEVICE_DETACHED); + filter.addAction(HIDDeviceManager.ACTION_USB_PERMISSION); + mContext.registerReceiver(mUsbBroadcast, filter); + + for (UsbDevice usbDevice : mUsbManager.getDeviceList().values()) { + handleUsbDeviceAttached(usbDevice); + } + } + + UsbManager getUSBManager() { + return mUsbManager; + } + + private void shutdownUSB() { + try { + mContext.unregisterReceiver(mUsbBroadcast); + } catch (Exception e) { + // We may not have registered, that's okay + } + } + + private boolean isHIDDeviceInterface(UsbDevice usbDevice, UsbInterface usbInterface) { + if (usbInterface.getInterfaceClass() == UsbConstants.USB_CLASS_HID) { + return true; + } + if (isXbox360Controller(usbDevice, usbInterface) || isXboxOneController(usbDevice, usbInterface)) { + return true; + } + return false; + } + + private boolean isXbox360Controller(UsbDevice usbDevice, UsbInterface usbInterface) { + final int XB360_IFACE_SUBCLASS = 93; + final int XB360_IFACE_PROTOCOL = 1; // Wired + final int XB360W_IFACE_PROTOCOL = 129; // Wireless + final int[] SUPPORTED_VENDORS = { + 0x0079, // GPD Win 2 + 0x044f, // Thrustmaster + 0x045e, // Microsoft + 0x046d, // Logitech + 0x056e, // Elecom + 0x06a3, // Saitek + 0x0738, // Mad Catz + 0x07ff, // Mad Catz + 0x0e6f, // PDP + 0x0f0d, // Hori + 0x1038, // SteelSeries + 0x11c9, // Nacon + 0x12ab, // Unknown + 0x1430, // RedOctane + 0x146b, // BigBen + 0x1532, // Razer Sabertooth + 0x15e4, // Numark + 0x162e, // Joytech + 0x1689, // Razer Onza + 0x1949, // Lab126, Inc. + 0x1bad, // Harmonix + 0x20d6, // PowerA + 0x24c6, // PowerA + 0x2c22, // Qanba + 0x2dc8, // 8BitDo + 0x9886, // ASTRO Gaming + }; + + if (usbInterface.getInterfaceClass() == UsbConstants.USB_CLASS_VENDOR_SPEC && + usbInterface.getInterfaceSubclass() == XB360_IFACE_SUBCLASS && + (usbInterface.getInterfaceProtocol() == XB360_IFACE_PROTOCOL || + usbInterface.getInterfaceProtocol() == XB360W_IFACE_PROTOCOL)) { + int vendor_id = usbDevice.getVendorId(); + for (int supportedVid : SUPPORTED_VENDORS) { + if (vendor_id == supportedVid) { + return true; + } + } + } + return false; + } + + private boolean isXboxOneController(UsbDevice usbDevice, UsbInterface usbInterface) { + final int XB1_IFACE_SUBCLASS = 71; + final int XB1_IFACE_PROTOCOL = 208; + final int[] SUPPORTED_VENDORS = { + 0x03f0, // HP + 0x044f, // Thrustmaster + 0x045e, // Microsoft + 0x0738, // Mad Catz + 0x0b05, // ASUS + 0x0e6f, // PDP + 0x0f0d, // Hori + 0x10f5, // Turtle Beach + 0x1532, // Razer Wildcat + 0x20d6, // PowerA + 0x24c6, // PowerA + 0x2dc8, // 8BitDo + 0x2e24, // Hyperkin + 0x3537, // GameSir + }; + + if (usbInterface.getId() == 0 && + usbInterface.getInterfaceClass() == UsbConstants.USB_CLASS_VENDOR_SPEC && + usbInterface.getInterfaceSubclass() == XB1_IFACE_SUBCLASS && + usbInterface.getInterfaceProtocol() == XB1_IFACE_PROTOCOL) { + int vendor_id = usbDevice.getVendorId(); + for (int supportedVid : SUPPORTED_VENDORS) { + if (vendor_id == supportedVid) { + return true; + } + } + } + return false; + } + + private void handleUsbDeviceAttached(UsbDevice usbDevice) { + connectHIDDeviceUSB(usbDevice); + } + + private void handleUsbDeviceDetached(UsbDevice usbDevice) { + List devices = new ArrayList(); + for (HIDDevice device : mDevicesById.values()) { + if (usbDevice.equals(device.getDevice())) { + devices.add(device.getId()); + } + } + for (int id : devices) { + HIDDevice device = mDevicesById.get(id); + mDevicesById.remove(id); + device.shutdown(); + HIDDeviceDisconnected(id); + } + } + + private void handleUsbDevicePermission(UsbDevice usbDevice, boolean permission_granted) { + for (HIDDevice device : mDevicesById.values()) { + if (usbDevice.equals(device.getDevice())) { + boolean opened = false; + if (permission_granted) { + opened = device.open(); + } + HIDDeviceOpenResult(device.getId(), opened); + } + } + } + + private void connectHIDDeviceUSB(UsbDevice usbDevice) { + synchronized (this) { + int interface_mask = 0; + for (int interface_index = 0; interface_index < usbDevice.getInterfaceCount(); interface_index++) { + UsbInterface usbInterface = usbDevice.getInterface(interface_index); + if (isHIDDeviceInterface(usbDevice, usbInterface)) { + // Check to see if we've already added this interface + // This happens with the Xbox Series X controller which has a duplicate interface 0, which is inactive + int interface_id = usbInterface.getId(); + if ((interface_mask & (1 << interface_id)) != 0) { + continue; + } + interface_mask |= (1 << interface_id); + + HIDDeviceUSB device = new HIDDeviceUSB(this, usbDevice, interface_index); + int id = device.getId(); + mDevicesById.put(id, device); + HIDDeviceConnected(id, device.getIdentifier(), device.getVendorId(), device.getProductId(), device.getSerialNumber(), device.getVersion(), device.getManufacturerName(), device.getProductName(), usbInterface.getId(), usbInterface.getInterfaceClass(), usbInterface.getInterfaceSubclass(), usbInterface.getInterfaceProtocol()); + } + } + } + } + + private void initializeBluetooth() { + Log.d(TAG, "Initializing Bluetooth"); + + if (Build.VERSION.SDK_INT >= 31 /* Android 12 */ && + mContext.getPackageManager().checkPermission(android.Manifest.permission.BLUETOOTH_CONNECT, mContext.getPackageName()) != PackageManager.PERMISSION_GRANTED) { + Log.d(TAG, "Couldn't initialize Bluetooth, missing android.permission.BLUETOOTH_CONNECT"); + return; + } + + if (Build.VERSION.SDK_INT <= 30 /* Android 11.0 (R) */ && + mContext.getPackageManager().checkPermission(android.Manifest.permission.BLUETOOTH, mContext.getPackageName()) != PackageManager.PERMISSION_GRANTED) { + Log.d(TAG, "Couldn't initialize Bluetooth, missing android.permission.BLUETOOTH"); + return; + } + + if (!mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE) || (Build.VERSION.SDK_INT < 18 /* Android 4.3 (JELLY_BEAN_MR2) */)) { + Log.d(TAG, "Couldn't initialize Bluetooth, this version of Android does not support Bluetooth LE"); + return; + } + + // Find bonded bluetooth controllers and create SteamControllers for them + mBluetoothManager = (BluetoothManager)mContext.getSystemService(Context.BLUETOOTH_SERVICE); + if (mBluetoothManager == null) { + // This device doesn't support Bluetooth. + return; + } + + BluetoothAdapter btAdapter = mBluetoothManager.getAdapter(); + if (btAdapter == null) { + // This device has Bluetooth support in the codebase, but has no available adapters. + return; + } + + // Get our bonded devices. + for (BluetoothDevice device : btAdapter.getBondedDevices()) { + + Log.d(TAG, "Bluetooth device available: " + device); + if (isSteamController(device)) { + connectBluetoothDevice(device); + } + + } + + // NOTE: These don't work on Chromebooks, to my undying dismay. + IntentFilter filter = new IntentFilter(); + filter.addAction(BluetoothDevice.ACTION_ACL_CONNECTED); + filter.addAction(BluetoothDevice.ACTION_ACL_DISCONNECTED); + mContext.registerReceiver(mBluetoothBroadcast, filter); + + if (mIsChromebook) { + mHandler = new Handler(Looper.getMainLooper()); + mLastBluetoothDevices = new ArrayList(); + + // final HIDDeviceManager finalThis = this; + // mHandler.postDelayed(new Runnable() { + // @Override + // public void run() { + // finalThis.chromebookConnectionHandler(); + // } + // }, 5000); + } + } + + private void shutdownBluetooth() { + try { + mContext.unregisterReceiver(mBluetoothBroadcast); + } catch (Exception e) { + // We may not have registered, that's okay + } + } + + // Chromebooks do not pass along ACTION_ACL_CONNECTED / ACTION_ACL_DISCONNECTED properly. + // This function provides a sort of dummy version of that, watching for changes in the + // connected devices and attempting to add controllers as things change. + public void chromebookConnectionHandler() { + if (!mIsChromebook) { + return; + } + + ArrayList disconnected = new ArrayList(); + ArrayList connected = new ArrayList(); + + List currentConnected = mBluetoothManager.getConnectedDevices(BluetoothProfile.GATT); + + for (BluetoothDevice bluetoothDevice : currentConnected) { + if (!mLastBluetoothDevices.contains(bluetoothDevice)) { + connected.add(bluetoothDevice); + } + } + for (BluetoothDevice bluetoothDevice : mLastBluetoothDevices) { + if (!currentConnected.contains(bluetoothDevice)) { + disconnected.add(bluetoothDevice); + } + } + + mLastBluetoothDevices = currentConnected; + + for (BluetoothDevice bluetoothDevice : disconnected) { + disconnectBluetoothDevice(bluetoothDevice); + } + for (BluetoothDevice bluetoothDevice : connected) { + connectBluetoothDevice(bluetoothDevice); + } + + final HIDDeviceManager finalThis = this; + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + finalThis.chromebookConnectionHandler(); + } + }, 10000); + } + + public boolean connectBluetoothDevice(BluetoothDevice bluetoothDevice) { + Log.v(TAG, "connectBluetoothDevice device=" + bluetoothDevice); + synchronized (this) { + if (mBluetoothDevices.containsKey(bluetoothDevice)) { + Log.v(TAG, "Steam controller with address " + bluetoothDevice + " already exists, attempting reconnect"); + + HIDDeviceBLESteamController device = mBluetoothDevices.get(bluetoothDevice); + device.reconnect(); + + return false; + } + HIDDeviceBLESteamController device = new HIDDeviceBLESteamController(this, bluetoothDevice); + int id = device.getId(); + mBluetoothDevices.put(bluetoothDevice, device); + mDevicesById.put(id, device); + + // The Steam Controller will mark itself connected once initialization is complete + } + return true; + } + + public void disconnectBluetoothDevice(BluetoothDevice bluetoothDevice) { + synchronized (this) { + HIDDeviceBLESteamController device = mBluetoothDevices.get(bluetoothDevice); + if (device == null) + return; + + int id = device.getId(); + mBluetoothDevices.remove(bluetoothDevice); + mDevicesById.remove(id); + device.shutdown(); + HIDDeviceDisconnected(id); + } + } + + public boolean isSteamController(BluetoothDevice bluetoothDevice) { + // Sanity check. If you pass in a null device, by definition it is never a Steam Controller. + if (bluetoothDevice == null) { + return false; + } + + // If the device has no local name, we really don't want to try an equality check against it. + if (bluetoothDevice.getName() == null) { + return false; + } + + return bluetoothDevice.getName().equals("SteamController") && ((bluetoothDevice.getType() & BluetoothDevice.DEVICE_TYPE_LE) != 0); + } + + private void close() { + shutdownUSB(); + shutdownBluetooth(); + synchronized (this) { + for (HIDDevice device : mDevicesById.values()) { + device.shutdown(); + } + mDevicesById.clear(); + mBluetoothDevices.clear(); + HIDDeviceReleaseCallback(); + } + } + + public void setFrozen(boolean frozen) { + synchronized (this) { + for (HIDDevice device : mDevicesById.values()) { + device.setFrozen(frozen); + } + } + } + + ////////////////////////////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////////////////////////////// + + private HIDDevice getDevice(int id) { + synchronized (this) { + HIDDevice result = mDevicesById.get(id); + if (result == null) { + Log.v(TAG, "No device for id: " + id); + Log.v(TAG, "Available devices: " + mDevicesById.keySet()); + } + return result; + } + } + + ////////////////////////////////////////////////////////////////////////////////////////////////////// + ////////// JNI interface functions + ////////////////////////////////////////////////////////////////////////////////////////////////////// + + public boolean initialize(boolean usb, boolean bluetooth) { + Log.v(TAG, "initialize(" + usb + ", " + bluetooth + ")"); + + if (usb) { + initializeUSB(); + } + if (bluetooth) { + initializeBluetooth(); + } + return true; + } + + public boolean openDevice(int deviceID) { + Log.v(TAG, "openDevice deviceID=" + deviceID); + HIDDevice device = getDevice(deviceID); + if (device == null) { + HIDDeviceDisconnected(deviceID); + return false; + } + + // Look to see if this is a USB device and we have permission to access it + UsbDevice usbDevice = device.getDevice(); + if (usbDevice != null && !mUsbManager.hasPermission(usbDevice)) { + HIDDeviceOpenPending(deviceID); + try { + final int FLAG_MUTABLE = 0x02000000; // PendingIntent.FLAG_MUTABLE, but don't require SDK 31 + int flags; + if (Build.VERSION.SDK_INT >= 31 /* Android 12.0 (S) */) { + flags = FLAG_MUTABLE; + } else { + flags = 0; + } + if (Build.VERSION.SDK_INT >= 33 /* Android 14.0 (U) */) { + Intent intent = new Intent(HIDDeviceManager.ACTION_USB_PERMISSION); + intent.setPackage(mContext.getPackageName()); + mUsbManager.requestPermission(usbDevice, PendingIntent.getBroadcast(mContext, 0, intent, flags)); + } else { + mUsbManager.requestPermission(usbDevice, PendingIntent.getBroadcast(mContext, 0, new Intent(HIDDeviceManager.ACTION_USB_PERMISSION), flags)); + } + } catch (Exception e) { + Log.v(TAG, "Couldn't request permission for USB device " + usbDevice); + HIDDeviceOpenResult(deviceID, false); + } + return false; + } + + try { + return device.open(); + } catch (Exception e) { + Log.e(TAG, "Got exception: " + Log.getStackTraceString(e)); + } + return false; + } + + public int sendOutputReport(int deviceID, byte[] report) { + try { + //Log.v(TAG, "sendOutputReport deviceID=" + deviceID + " length=" + report.length); + HIDDevice device; + device = getDevice(deviceID); + if (device == null) { + HIDDeviceDisconnected(deviceID); + return -1; + } + + return device.sendOutputReport(report); + } catch (Exception e) { + Log.e(TAG, "Got exception: " + Log.getStackTraceString(e)); + } + return -1; + } + + public int sendFeatureReport(int deviceID, byte[] report) { + try { + //Log.v(TAG, "sendFeatureReport deviceID=" + deviceID + " length=" + report.length); + HIDDevice device; + device = getDevice(deviceID); + if (device == null) { + HIDDeviceDisconnected(deviceID); + return -1; + } + + return device.sendFeatureReport(report); + } catch (Exception e) { + Log.e(TAG, "Got exception: " + Log.getStackTraceString(e)); + } + return -1; + } + + public boolean getFeatureReport(int deviceID, byte[] report) { + try { + //Log.v(TAG, "getFeatureReport deviceID=" + deviceID); + HIDDevice device; + device = getDevice(deviceID); + if (device == null) { + HIDDeviceDisconnected(deviceID); + return false; + } + + return device.getFeatureReport(report); + } catch (Exception e) { + Log.e(TAG, "Got exception: " + Log.getStackTraceString(e)); + } + return false; + } + + public void closeDevice(int deviceID) { + try { + Log.v(TAG, "closeDevice deviceID=" + deviceID); + HIDDevice device; + device = getDevice(deviceID); + if (device == null) { + HIDDeviceDisconnected(deviceID); + return; + } + + device.close(); + } catch (Exception e) { + Log.e(TAG, "Got exception: " + Log.getStackTraceString(e)); + } + } + + + ////////////////////////////////////////////////////////////////////////////////////////////////////// + /////////////// Native methods + ////////////////////////////////////////////////////////////////////////////////////////////////////// + + private native void HIDDeviceRegisterCallback(); + private native void HIDDeviceReleaseCallback(); + + native void HIDDeviceConnected(int deviceID, String identifier, int vendorId, int productId, String serial_number, int release_number, String manufacturer_string, String product_string, int interface_number, int interface_class, int interface_subclass, int interface_protocol); + native void HIDDeviceOpenPending(int deviceID); + native void HIDDeviceOpenResult(int deviceID, boolean opened); + native void HIDDeviceDisconnected(int deviceID); + + native void HIDDeviceInputReport(int deviceID, byte[] report); + native void HIDDeviceFeatureReport(int deviceID, byte[] report); +} diff --git a/engine/lib/sdl/android-project/app/src/main/java/org/libsdl/app/HIDDeviceUSB.java b/engine/lib/sdl/android-project/app/src/main/java/org/libsdl/app/HIDDeviceUSB.java new file mode 100644 index 000000000..bfe0cf954 --- /dev/null +++ b/engine/lib/sdl/android-project/app/src/main/java/org/libsdl/app/HIDDeviceUSB.java @@ -0,0 +1,309 @@ +package org.libsdl.app; + +import android.hardware.usb.*; +import android.os.Build; +import android.util.Log; +import java.util.Arrays; + +class HIDDeviceUSB implements HIDDevice { + + private static final String TAG = "hidapi"; + + protected HIDDeviceManager mManager; + protected UsbDevice mDevice; + protected int mInterfaceIndex; + protected int mInterface; + protected int mDeviceId; + protected UsbDeviceConnection mConnection; + protected UsbEndpoint mInputEndpoint; + protected UsbEndpoint mOutputEndpoint; + protected InputThread mInputThread; + protected boolean mRunning; + protected boolean mFrozen; + + public HIDDeviceUSB(HIDDeviceManager manager, UsbDevice usbDevice, int interface_index) { + mManager = manager; + mDevice = usbDevice; + mInterfaceIndex = interface_index; + mInterface = mDevice.getInterface(mInterfaceIndex).getId(); + mDeviceId = manager.getDeviceIDForIdentifier(getIdentifier()); + mRunning = false; + } + + public String getIdentifier() { + return String.format("%s/%x/%x/%d", mDevice.getDeviceName(), mDevice.getVendorId(), mDevice.getProductId(), mInterfaceIndex); + } + + @Override + public int getId() { + return mDeviceId; + } + + @Override + public int getVendorId() { + return mDevice.getVendorId(); + } + + @Override + public int getProductId() { + return mDevice.getProductId(); + } + + @Override + public String getSerialNumber() { + String result = null; + if (Build.VERSION.SDK_INT >= 21 /* Android 5.0 (LOLLIPOP) */) { + try { + result = mDevice.getSerialNumber(); + } + catch (SecurityException exception) { + //Log.w(TAG, "App permissions mean we cannot get serial number for device " + getDeviceName() + " message: " + exception.getMessage()); + } + } + if (result == null) { + result = ""; + } + return result; + } + + @Override + public int getVersion() { + return 0; + } + + @Override + public String getManufacturerName() { + String result = null; + if (Build.VERSION.SDK_INT >= 21 /* Android 5.0 (LOLLIPOP) */) { + result = mDevice.getManufacturerName(); + } + if (result == null) { + result = String.format("%x", getVendorId()); + } + return result; + } + + @Override + public String getProductName() { + String result = null; + if (Build.VERSION.SDK_INT >= 21 /* Android 5.0 (LOLLIPOP) */) { + result = mDevice.getProductName(); + } + if (result == null) { + result = String.format("%x", getProductId()); + } + return result; + } + + @Override + public UsbDevice getDevice() { + return mDevice; + } + + public String getDeviceName() { + return getManufacturerName() + " " + getProductName() + "(0x" + String.format("%x", getVendorId()) + "/0x" + String.format("%x", getProductId()) + ")"; + } + + @Override + public boolean open() { + mConnection = mManager.getUSBManager().openDevice(mDevice); + if (mConnection == null) { + Log.w(TAG, "Unable to open USB device " + getDeviceName()); + return false; + } + + // Force claim our interface + UsbInterface iface = mDevice.getInterface(mInterfaceIndex); + if (!mConnection.claimInterface(iface, true)) { + Log.w(TAG, "Failed to claim interfaces on USB device " + getDeviceName()); + close(); + return false; + } + + // Find the endpoints + for (int j = 0; j < iface.getEndpointCount(); j++) { + UsbEndpoint endpt = iface.getEndpoint(j); + switch (endpt.getDirection()) { + case UsbConstants.USB_DIR_IN: + if (mInputEndpoint == null) { + mInputEndpoint = endpt; + } + break; + case UsbConstants.USB_DIR_OUT: + if (mOutputEndpoint == null) { + mOutputEndpoint = endpt; + } + break; + } + } + + // Make sure the required endpoints were present + if (mInputEndpoint == null || mOutputEndpoint == null) { + Log.w(TAG, "Missing required endpoint on USB device " + getDeviceName()); + close(); + return false; + } + + // Start listening for input + mRunning = true; + mInputThread = new InputThread(); + mInputThread.start(); + + return true; + } + + @Override + public int sendFeatureReport(byte[] report) { + int res = -1; + int offset = 0; + int length = report.length; + boolean skipped_report_id = false; + byte report_number = report[0]; + + if (report_number == 0x0) { + ++offset; + --length; + skipped_report_id = true; + } + + res = mConnection.controlTransfer( + UsbConstants.USB_TYPE_CLASS | 0x01 /*RECIPIENT_INTERFACE*/ | UsbConstants.USB_DIR_OUT, + 0x09/*HID set_report*/, + (3/*HID feature*/ << 8) | report_number, + mInterface, + report, offset, length, + 1000/*timeout millis*/); + + if (res < 0) { + Log.w(TAG, "sendFeatureReport() returned " + res + " on device " + getDeviceName()); + return -1; + } + + if (skipped_report_id) { + ++length; + } + return length; + } + + @Override + public int sendOutputReport(byte[] report) { + int r = mConnection.bulkTransfer(mOutputEndpoint, report, report.length, 1000); + if (r != report.length) { + Log.w(TAG, "sendOutputReport() returned " + r + " on device " + getDeviceName()); + } + return r; + } + + @Override + public boolean getFeatureReport(byte[] report) { + int res = -1; + int offset = 0; + int length = report.length; + boolean skipped_report_id = false; + byte report_number = report[0]; + + if (report_number == 0x0) { + /* Offset the return buffer by 1, so that the report ID + will remain in byte 0. */ + ++offset; + --length; + skipped_report_id = true; + } + + res = mConnection.controlTransfer( + UsbConstants.USB_TYPE_CLASS | 0x01 /*RECIPIENT_INTERFACE*/ | UsbConstants.USB_DIR_IN, + 0x01/*HID get_report*/, + (3/*HID feature*/ << 8) | report_number, + mInterface, + report, offset, length, + 1000/*timeout millis*/); + + if (res < 0) { + Log.w(TAG, "getFeatureReport() returned " + res + " on device " + getDeviceName()); + return false; + } + + if (skipped_report_id) { + ++res; + ++length; + } + + byte[] data; + if (res == length) { + data = report; + } else { + data = Arrays.copyOfRange(report, 0, res); + } + mManager.HIDDeviceFeatureReport(mDeviceId, data); + + return true; + } + + @Override + public void close() { + mRunning = false; + if (mInputThread != null) { + while (mInputThread.isAlive()) { + mInputThread.interrupt(); + try { + mInputThread.join(); + } catch (InterruptedException e) { + // Keep trying until we're done + } + } + mInputThread = null; + } + if (mConnection != null) { + UsbInterface iface = mDevice.getInterface(mInterfaceIndex); + mConnection.releaseInterface(iface); + mConnection.close(); + mConnection = null; + } + } + + @Override + public void shutdown() { + close(); + mManager = null; + } + + @Override + public void setFrozen(boolean frozen) { + mFrozen = frozen; + } + + protected class InputThread extends Thread { + @Override + public void run() { + int packetSize = mInputEndpoint.getMaxPacketSize(); + byte[] packet = new byte[packetSize]; + while (mRunning) { + int r; + try + { + r = mConnection.bulkTransfer(mInputEndpoint, packet, packetSize, 1000); + } + catch (Exception e) + { + Log.v(TAG, "Exception in UsbDeviceConnection bulktransfer: " + e); + break; + } + if (r < 0) { + // Could be a timeout or an I/O error + } + if (r > 0) { + byte[] data; + if (r == packetSize) { + data = packet; + } else { + data = Arrays.copyOfRange(packet, 0, r); + } + + if (!mFrozen) { + mManager.HIDDeviceInputReport(mDeviceId, data); + } + } + } + } + } +} diff --git a/engine/lib/sdl/android-project/app/src/main/java/org/libsdl/app/SDL.java b/engine/lib/sdl/android-project/app/src/main/java/org/libsdl/app/SDL.java new file mode 100644 index 000000000..139be9d15 --- /dev/null +++ b/engine/lib/sdl/android-project/app/src/main/java/org/libsdl/app/SDL.java @@ -0,0 +1,90 @@ +package org.libsdl.app; + +import android.content.Context; + +import java.lang.Class; +import java.lang.reflect.Method; + +/** + SDL library initialization +*/ +public class SDL { + + // This function should be called first and sets up the native code + // so it can call into the Java classes + public static void setupJNI() { + SDLActivity.nativeSetupJNI(); + SDLAudioManager.nativeSetupJNI(); + SDLControllerManager.nativeSetupJNI(); + } + + // This function should be called each time the activity is started + public static void initialize() { + setContext(null); + + SDLActivity.initialize(); + SDLAudioManager.initialize(); + SDLControllerManager.initialize(); + } + + // This function stores the current activity (SDL or not) + public static void setContext(Context context) { + SDLAudioManager.setContext(context); + mContext = context; + } + + public static Context getContext() { + return mContext; + } + + public static void loadLibrary(String libraryName) throws UnsatisfiedLinkError, SecurityException, NullPointerException { + loadLibrary(libraryName, mContext); + } + + public static void loadLibrary(String libraryName, Context context) throws UnsatisfiedLinkError, SecurityException, NullPointerException { + + if (libraryName == null) { + throw new NullPointerException("No library name provided."); + } + + try { + // Let's see if we have ReLinker available in the project. This is necessary for + // some projects that have huge numbers of local libraries bundled, and thus may + // trip a bug in Android's native library loader which ReLinker works around. (If + // loadLibrary works properly, ReLinker will simply use the normal Android method + // internally.) + // + // To use ReLinker, just add it as a dependency. For more information, see + // https://github.com/KeepSafe/ReLinker for ReLinker's repository. + // + Class relinkClass = context.getClassLoader().loadClass("com.getkeepsafe.relinker.ReLinker"); + Class relinkListenerClass = context.getClassLoader().loadClass("com.getkeepsafe.relinker.ReLinker$LoadListener"); + Class contextClass = context.getClassLoader().loadClass("android.content.Context"); + Class stringClass = context.getClassLoader().loadClass("java.lang.String"); + + // Get a 'force' instance of the ReLinker, so we can ensure libraries are reinstalled if + // they've changed during updates. + Method forceMethod = relinkClass.getDeclaredMethod("force"); + Object relinkInstance = forceMethod.invoke(null); + Class relinkInstanceClass = relinkInstance.getClass(); + + // Actually load the library! + Method loadMethod = relinkInstanceClass.getDeclaredMethod("loadLibrary", contextClass, stringClass, stringClass, relinkListenerClass); + loadMethod.invoke(relinkInstance, context, libraryName, null, null); + } + catch (final Throwable e) { + // Fall back + try { + System.loadLibrary(libraryName); + } + catch (final UnsatisfiedLinkError ule) { + throw ule; + } + catch (final SecurityException se) { + throw se; + } + } + } + + protected static Context mContext; +} diff --git a/engine/lib/sdl/android-project/app/src/main/java/org/libsdl/app/SDLActivity.java b/engine/lib/sdl/android-project/app/src/main/java/org/libsdl/app/SDLActivity.java new file mode 100644 index 000000000..974044f3e --- /dev/null +++ b/engine/lib/sdl/android-project/app/src/main/java/org/libsdl/app/SDLActivity.java @@ -0,0 +1,2120 @@ +package org.libsdl.app; + +import android.app.Activity; +import android.app.AlertDialog; +import android.app.Dialog; +import android.app.UiModeManager; +import android.content.ClipboardManager; +import android.content.ClipData; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.pm.ActivityInfo; +import android.content.pm.ApplicationInfo; +import android.content.pm.PackageManager; +import android.content.res.Configuration; +import android.graphics.Bitmap; +import android.graphics.Color; +import android.graphics.PorterDuff; +import android.graphics.drawable.Drawable; +import android.hardware.Sensor; +import android.net.Uri; +import android.os.Build; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.text.Editable; +import android.text.InputType; +import android.text.Selection; +import android.util.DisplayMetrics; +import android.util.Log; +import android.util.SparseArray; +import android.view.Display; +import android.view.Gravity; +import android.view.InputDevice; +import android.view.KeyEvent; +import android.view.PointerIcon; +import android.view.Surface; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; +import android.view.inputmethod.BaseInputConnection; +import android.view.inputmethod.EditorInfo; +import android.view.inputmethod.InputConnection; +import android.view.inputmethod.InputMethodManager; +import android.widget.Button; +import android.widget.EditText; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; +import android.widget.TextView; +import android.widget.Toast; + +import java.util.Hashtable; +import java.util.Locale; + + +/** + SDL Activity +*/ +public class SDLActivity extends Activity implements View.OnSystemUiVisibilityChangeListener { + private static final String TAG = "SDL"; + private static final int SDL_MAJOR_VERSION = 2; + private static final int SDL_MINOR_VERSION = 32; + private static final int SDL_MICRO_VERSION = 10; +/* + // Display InputType.SOURCE/CLASS of events and devices + // + // SDLActivity.debugSource(device.getSources(), "device[" + device.getName() + "]"); + // SDLActivity.debugSource(event.getSource(), "event"); + public static void debugSource(int sources, String prefix) { + int s = sources; + int s_copy = sources; + String cls = ""; + String src = ""; + int tst = 0; + int FLAG_TAINTED = 0x80000000; + + if ((s & InputDevice.SOURCE_CLASS_BUTTON) != 0) cls += " BUTTON"; + if ((s & InputDevice.SOURCE_CLASS_JOYSTICK) != 0) cls += " JOYSTICK"; + if ((s & InputDevice.SOURCE_CLASS_POINTER) != 0) cls += " POINTER"; + if ((s & InputDevice.SOURCE_CLASS_POSITION) != 0) cls += " POSITION"; + if ((s & InputDevice.SOURCE_CLASS_TRACKBALL) != 0) cls += " TRACKBALL"; + + + int s2 = s_copy & ~InputDevice.SOURCE_ANY; // keep class bits + s2 &= ~( InputDevice.SOURCE_CLASS_BUTTON + | InputDevice.SOURCE_CLASS_JOYSTICK + | InputDevice.SOURCE_CLASS_POINTER + | InputDevice.SOURCE_CLASS_POSITION + | InputDevice.SOURCE_CLASS_TRACKBALL); + + if (s2 != 0) cls += "Some_Unknown"; + + s2 = s_copy & InputDevice.SOURCE_ANY; // keep source only, no class; + + if (Build.VERSION.SDK_INT >= 23) { + tst = InputDevice.SOURCE_BLUETOOTH_STYLUS; + if ((s & tst) == tst) src += " BLUETOOTH_STYLUS"; + s2 &= ~tst; + } + + tst = InputDevice.SOURCE_DPAD; + if ((s & tst) == tst) src += " DPAD"; + s2 &= ~tst; + + tst = InputDevice.SOURCE_GAMEPAD; + if ((s & tst) == tst) src += " GAMEPAD"; + s2 &= ~tst; + + if (Build.VERSION.SDK_INT >= 21) { + tst = InputDevice.SOURCE_HDMI; + if ((s & tst) == tst) src += " HDMI"; + s2 &= ~tst; + } + + tst = InputDevice.SOURCE_JOYSTICK; + if ((s & tst) == tst) src += " JOYSTICK"; + s2 &= ~tst; + + tst = InputDevice.SOURCE_KEYBOARD; + if ((s & tst) == tst) src += " KEYBOARD"; + s2 &= ~tst; + + tst = InputDevice.SOURCE_MOUSE; + if ((s & tst) == tst) src += " MOUSE"; + s2 &= ~tst; + + if (Build.VERSION.SDK_INT >= 26) { + tst = InputDevice.SOURCE_MOUSE_RELATIVE; + if ((s & tst) == tst) src += " MOUSE_RELATIVE"; + s2 &= ~tst; + + tst = InputDevice.SOURCE_ROTARY_ENCODER; + if ((s & tst) == tst) src += " ROTARY_ENCODER"; + s2 &= ~tst; + } + tst = InputDevice.SOURCE_STYLUS; + if ((s & tst) == tst) src += " STYLUS"; + s2 &= ~tst; + + tst = InputDevice.SOURCE_TOUCHPAD; + if ((s & tst) == tst) src += " TOUCHPAD"; + s2 &= ~tst; + + tst = InputDevice.SOURCE_TOUCHSCREEN; + if ((s & tst) == tst) src += " TOUCHSCREEN"; + s2 &= ~tst; + + if (Build.VERSION.SDK_INT >= 18) { + tst = InputDevice.SOURCE_TOUCH_NAVIGATION; + if ((s & tst) == tst) src += " TOUCH_NAVIGATION"; + s2 &= ~tst; + } + + tst = InputDevice.SOURCE_TRACKBALL; + if ((s & tst) == tst) src += " TRACKBALL"; + s2 &= ~tst; + + tst = InputDevice.SOURCE_ANY; + if ((s & tst) == tst) src += " ANY"; + s2 &= ~tst; + + if (s == FLAG_TAINTED) src += " FLAG_TAINTED"; + s2 &= ~FLAG_TAINTED; + + if (s2 != 0) src += " Some_Unknown"; + + Log.v(TAG, prefix + "int=" + s_copy + " CLASS={" + cls + " } source(s):" + src); + } +*/ + + public static boolean mIsResumedCalled, mHasFocus; + public static final boolean mHasMultiWindow = (Build.VERSION.SDK_INT >= 24 /* Android 7.0 (N) */); + + // Cursor types + // private static final int SDL_SYSTEM_CURSOR_NONE = -1; + private static final int SDL_SYSTEM_CURSOR_ARROW = 0; + private static final int SDL_SYSTEM_CURSOR_IBEAM = 1; + private static final int SDL_SYSTEM_CURSOR_WAIT = 2; + private static final int SDL_SYSTEM_CURSOR_CROSSHAIR = 3; + private static final int SDL_SYSTEM_CURSOR_WAITARROW = 4; + private static final int SDL_SYSTEM_CURSOR_SIZENWSE = 5; + private static final int SDL_SYSTEM_CURSOR_SIZENESW = 6; + private static final int SDL_SYSTEM_CURSOR_SIZEWE = 7; + private static final int SDL_SYSTEM_CURSOR_SIZENS = 8; + private static final int SDL_SYSTEM_CURSOR_SIZEALL = 9; + private static final int SDL_SYSTEM_CURSOR_NO = 10; + private static final int SDL_SYSTEM_CURSOR_HAND = 11; + + protected static final int SDL_ORIENTATION_UNKNOWN = 0; + protected static final int SDL_ORIENTATION_LANDSCAPE = 1; + protected static final int SDL_ORIENTATION_LANDSCAPE_FLIPPED = 2; + protected static final int SDL_ORIENTATION_PORTRAIT = 3; + protected static final int SDL_ORIENTATION_PORTRAIT_FLIPPED = 4; + + protected static int mCurrentOrientation; + protected static Locale mCurrentLocale; + + // Handle the state of the native layer + public enum NativeState { + INIT, RESUMED, PAUSED + } + + public static NativeState mNextNativeState; + public static NativeState mCurrentNativeState; + + /** If shared libraries (e.g. SDL or the native application) could not be loaded. */ + public static boolean mBrokenLibraries = true; + + // Main components + protected static SDLActivity mSingleton; + protected static SDLSurface mSurface; + protected static DummyEdit mTextEdit; + protected static boolean mScreenKeyboardShown; + protected static ViewGroup mLayout; + protected static SDLClipboardHandler mClipboardHandler; + protected static Hashtable mCursors; + protected static int mLastCursorID; + protected static SDLGenericMotionListener_API12 mMotionListener; + protected static HIDDeviceManager mHIDDeviceManager; + + // This is what SDL runs in. It invokes SDL_main(), eventually + protected static Thread mSDLThread; + + protected static SDLGenericMotionListener_API12 getMotionListener() { + if (mMotionListener == null) { + if (Build.VERSION.SDK_INT >= 26 /* Android 8.0 (O) */) { + mMotionListener = new SDLGenericMotionListener_API26(); + } else if (Build.VERSION.SDK_INT >= 24 /* Android 7.0 (N) */) { + mMotionListener = new SDLGenericMotionListener_API24(); + } else { + mMotionListener = new SDLGenericMotionListener_API12(); + } + } + + return mMotionListener; + } + + /** + * This method returns the name of the shared object with the application entry point + * It can be overridden by derived classes. + */ + protected String getMainSharedObject() { + String library; + String[] libraries = SDLActivity.mSingleton.getLibraries(); + if (libraries.length > 0) { + library = "lib" + libraries[libraries.length - 1] + ".so"; + } else { + library = "libmain.so"; + } + return getContext().getApplicationInfo().nativeLibraryDir + "/" + library; + } + + /** + * This method returns the name of the application entry point + * It can be overridden by derived classes. + */ + protected String getMainFunction() { + return "SDL_main"; + } + + /** + * This method is called by SDL before loading the native shared libraries. + * It can be overridden to provide names of shared libraries to be loaded. + * The default implementation returns the defaults. It never returns null. + * An array returned by a new implementation must at least contain "SDL2". + * Also keep in mind that the order the libraries are loaded may matter. + * @return names of shared libraries to be loaded (e.g. "SDL2", "main"). + */ + protected String[] getLibraries() { + return new String[] { + "SDL2", + // "SDL2_image", + // "SDL2_mixer", + // "SDL2_net", + // "SDL2_ttf", + "main" + }; + } + + // Load the .so + public void loadLibraries() { + for (String lib : getLibraries()) { + SDL.loadLibrary(lib, this); + } + } + + /** + * This method is called by SDL before starting the native application thread. + * It can be overridden to provide the arguments after the application name. + * The default implementation returns an empty array. It never returns null. + * @return arguments for the native application. + */ + protected String[] getArguments() { + return new String[0]; + } + + public static void initialize() { + // The static nature of the singleton and Android quirkyness force us to initialize everything here + // Otherwise, when exiting the app and returning to it, these variables *keep* their pre exit values + mSingleton = null; + mSurface = null; + mTextEdit = null; + mLayout = null; + mClipboardHandler = null; + mCursors = new Hashtable(); + mLastCursorID = 0; + mSDLThread = null; + mIsResumedCalled = false; + mHasFocus = true; + mNextNativeState = NativeState.INIT; + mCurrentNativeState = NativeState.INIT; + } + + protected SDLSurface createSDLSurface(Context context) { + return new SDLSurface(context); + } + + // Setup + @Override + protected void onCreate(Bundle savedInstanceState) { + Log.v(TAG, "Device: " + Build.DEVICE); + Log.v(TAG, "Model: " + Build.MODEL); + Log.v(TAG, "onCreate()"); + super.onCreate(savedInstanceState); + + try { + Thread.currentThread().setName("SDLActivity"); + } catch (Exception e) { + Log.v(TAG, "modify thread properties failed " + e.toString()); + } + + // Load shared libraries + String errorMsgBrokenLib = ""; + try { + loadLibraries(); + mBrokenLibraries = false; /* success */ + } catch(UnsatisfiedLinkError e) { + System.err.println(e.getMessage()); + mBrokenLibraries = true; + errorMsgBrokenLib = e.getMessage(); + } catch(Exception e) { + System.err.println(e.getMessage()); + mBrokenLibraries = true; + errorMsgBrokenLib = e.getMessage(); + } + + if (!mBrokenLibraries) { + String expected_version = String.valueOf(SDL_MAJOR_VERSION) + "." + + String.valueOf(SDL_MINOR_VERSION) + "." + + String.valueOf(SDL_MICRO_VERSION); + String version = nativeGetVersion(); + if (!version.equals(expected_version)) { + mBrokenLibraries = true; + errorMsgBrokenLib = "SDL C/Java version mismatch (expected " + expected_version + ", got " + version + ")"; + } + } + + if (mBrokenLibraries) { + mSingleton = this; + AlertDialog.Builder dlgAlert = new AlertDialog.Builder(this); + dlgAlert.setMessage("An error occurred while trying to start the application. Please try again and/or reinstall." + + System.getProperty("line.separator") + + System.getProperty("line.separator") + + "Error: " + errorMsgBrokenLib); + dlgAlert.setTitle("SDL Error"); + dlgAlert.setPositiveButton("Exit", + new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog,int id) { + // if this button is clicked, close current activity + SDLActivity.mSingleton.finish(); + } + }); + dlgAlert.setCancelable(false); + dlgAlert.create().show(); + + return; + } + + // Set up JNI + SDL.setupJNI(); + + // Initialize state + SDL.initialize(); + + // So we can call stuff from static callbacks + mSingleton = this; + SDL.setContext(this); + + mClipboardHandler = new SDLClipboardHandler(); + + mHIDDeviceManager = HIDDeviceManager.acquire(this); + + // Set up the surface + mSurface = createSDLSurface(this); + + mLayout = new RelativeLayout(this); + mLayout.addView(mSurface); + + // Get our current screen orientation and pass it down. + mCurrentOrientation = SDLActivity.getCurrentOrientation(); + // Only record current orientation + SDLActivity.onNativeOrientationChanged(mCurrentOrientation); + + try { + if (Build.VERSION.SDK_INT < 24 /* Android 7.0 (N) */) { + mCurrentLocale = getContext().getResources().getConfiguration().locale; + } else { + mCurrentLocale = getContext().getResources().getConfiguration().getLocales().get(0); + } + } catch(Exception ignored) { + } + + setContentView(mLayout); + + setWindowStyle(false); + + getWindow().getDecorView().setOnSystemUiVisibilityChangeListener(this); + + // Get filename from "Open with" of another application + Intent intent = getIntent(); + if (intent != null && intent.getData() != null) { + String filename = intent.getData().getPath(); + if (filename != null) { + Log.v(TAG, "Got filename: " + filename); + SDLActivity.onNativeDropFile(filename); + } + } + } + + protected void pauseNativeThread() { + mNextNativeState = NativeState.PAUSED; + mIsResumedCalled = false; + + if (SDLActivity.mBrokenLibraries) { + return; + } + + SDLActivity.handleNativeState(); + } + + protected void resumeNativeThread() { + mNextNativeState = NativeState.RESUMED; + mIsResumedCalled = true; + + if (SDLActivity.mBrokenLibraries) { + return; + } + + SDLActivity.handleNativeState(); + } + + // Events + @Override + protected void onPause() { + Log.v(TAG, "onPause()"); + super.onPause(); + + if (mHIDDeviceManager != null) { + mHIDDeviceManager.setFrozen(true); + } + if (!mHasMultiWindow) { + pauseNativeThread(); + } + } + + @Override + protected void onResume() { + Log.v(TAG, "onResume()"); + super.onResume(); + + if (mHIDDeviceManager != null) { + mHIDDeviceManager.setFrozen(false); + } + if (!mHasMultiWindow) { + resumeNativeThread(); + } + } + + @Override + protected void onStop() { + Log.v(TAG, "onStop()"); + super.onStop(); + if (mHasMultiWindow) { + pauseNativeThread(); + } + } + + @Override + protected void onStart() { + Log.v(TAG, "onStart()"); + super.onStart(); + if (mHasMultiWindow) { + resumeNativeThread(); + } + } + + public static int getCurrentOrientation() { + int result = SDL_ORIENTATION_UNKNOWN; + + Activity activity = (Activity)getContext(); + if (activity == null) { + return result; + } + Display display = activity.getWindowManager().getDefaultDisplay(); + + switch (display.getRotation()) { + case Surface.ROTATION_0: + result = SDL_ORIENTATION_PORTRAIT; + break; + + case Surface.ROTATION_90: + result = SDL_ORIENTATION_LANDSCAPE; + break; + + case Surface.ROTATION_180: + result = SDL_ORIENTATION_PORTRAIT_FLIPPED; + break; + + case Surface.ROTATION_270: + result = SDL_ORIENTATION_LANDSCAPE_FLIPPED; + break; + } + + return result; + } + + @Override + public void onWindowFocusChanged(boolean hasFocus) { + super.onWindowFocusChanged(hasFocus); + Log.v(TAG, "onWindowFocusChanged(): " + hasFocus); + + if (SDLActivity.mBrokenLibraries) { + return; + } + + mHasFocus = hasFocus; + if (hasFocus) { + mNextNativeState = NativeState.RESUMED; + SDLActivity.getMotionListener().reclaimRelativeMouseModeIfNeeded(); + + SDLActivity.handleNativeState(); + nativeFocusChanged(true); + + } else { + nativeFocusChanged(false); + if (!mHasMultiWindow) { + mNextNativeState = NativeState.PAUSED; + SDLActivity.handleNativeState(); + } + } + } + + @Override + public void onLowMemory() { + Log.v(TAG, "onLowMemory()"); + super.onLowMemory(); + + if (SDLActivity.mBrokenLibraries) { + return; + } + + SDLActivity.nativeLowMemory(); + } + + @Override + public void onConfigurationChanged(Configuration newConfig) { + Log.v(TAG, "onConfigurationChanged()"); + super.onConfigurationChanged(newConfig); + + if (SDLActivity.mBrokenLibraries) { + return; + } + + if (mCurrentLocale == null || !mCurrentLocale.equals(newConfig.locale)) { + mCurrentLocale = newConfig.locale; + SDLActivity.onNativeLocaleChanged(); + } + } + + @Override + protected void onDestroy() { + Log.v(TAG, "onDestroy()"); + + if (mHIDDeviceManager != null) { + HIDDeviceManager.release(mHIDDeviceManager); + mHIDDeviceManager = null; + } + + SDLAudioManager.release(this); + + if (SDLActivity.mBrokenLibraries) { + super.onDestroy(); + return; + } + + if (SDLActivity.mSDLThread != null) { + + // Send Quit event to "SDLThread" thread + SDLActivity.nativeSendQuit(); + + // Wait for "SDLThread" thread to end + try { + SDLActivity.mSDLThread.join(); + } catch(Exception e) { + Log.v(TAG, "Problem stopping SDLThread: " + e); + } + } + + SDLActivity.nativeQuit(); + + super.onDestroy(); + } + + @Override + public void onBackPressed() { + // Check if we want to block the back button in case of mouse right click. + // + // If we do, the normal hardware back button will no longer work and people have to use home, + // but the mouse right click will work. + // + boolean trapBack = SDLActivity.nativeGetHintBoolean("SDL_ANDROID_TRAP_BACK_BUTTON", false); + if (trapBack) { + // Exit and let the mouse handler handle this button (if appropriate) + return; + } + + // Default system back button behavior. + if (!isFinishing()) { + super.onBackPressed(); + } + } + + // Called by JNI from SDL. + public static void manualBackButton() { + mSingleton.pressBackButton(); + } + + // Used to get us onto the activity's main thread + public void pressBackButton() { + runOnUiThread(new Runnable() { + @Override + public void run() { + if (!SDLActivity.this.isFinishing()) { + SDLActivity.this.superOnBackPressed(); + } + } + }); + } + + // Used to access the system back behavior. + public void superOnBackPressed() { + super.onBackPressed(); + } + + @Override + public boolean dispatchKeyEvent(KeyEvent event) { + + if (SDLActivity.mBrokenLibraries) { + return false; + } + + int keyCode = event.getKeyCode(); + // Ignore certain special keys so they're handled by Android + if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN || + keyCode == KeyEvent.KEYCODE_VOLUME_UP || + keyCode == KeyEvent.KEYCODE_CAMERA || + keyCode == KeyEvent.KEYCODE_ZOOM_IN || /* API 11 */ + keyCode == KeyEvent.KEYCODE_ZOOM_OUT /* API 11 */ + ) { + return false; + } + return super.dispatchKeyEvent(event); + } + + /* Transition to next state */ + public static void handleNativeState() { + + if (mNextNativeState == mCurrentNativeState) { + // Already in same state, discard. + return; + } + + // Try a transition to init state + if (mNextNativeState == NativeState.INIT) { + + mCurrentNativeState = mNextNativeState; + return; + } + + // Try a transition to paused state + if (mNextNativeState == NativeState.PAUSED) { + if (mSDLThread != null) { + nativePause(); + } + if (mSurface != null) { + mSurface.handlePause(); + } + mCurrentNativeState = mNextNativeState; + return; + } + + // Try a transition to resumed state + if (mNextNativeState == NativeState.RESUMED) { + if (mSurface.mIsSurfaceReady && mHasFocus && mIsResumedCalled) { + if (mSDLThread == null) { + // This is the entry point to the C app. + // Start up the C app thread and enable sensor input for the first time + // FIXME: Why aren't we enabling sensor input at start? + + mSDLThread = new Thread(new SDLMain(), "SDLThread"); + mSurface.enableSensor(Sensor.TYPE_ACCELEROMETER, true); + mSDLThread.start(); + + // No nativeResume(), don't signal Android_ResumeSem + } else { + nativeResume(); + } + mSurface.handleResume(); + + mCurrentNativeState = mNextNativeState; + } + } + } + + // Messages from the SDLMain thread + static final int COMMAND_CHANGE_TITLE = 1; + static final int COMMAND_CHANGE_WINDOW_STYLE = 2; + static final int COMMAND_TEXTEDIT_HIDE = 3; + static final int COMMAND_SET_KEEP_SCREEN_ON = 5; + + protected static final int COMMAND_USER = 0x8000; + + protected static boolean mFullscreenModeActive; + + /** + * This method is called by SDL if SDL did not handle a message itself. + * This happens if a received message contains an unsupported command. + * Method can be overwritten to handle Messages in a different class. + * @param command the command of the message. + * @param param the parameter of the message. May be null. + * @return if the message was handled in overridden method. + */ + protected boolean onUnhandledMessage(int command, Object param) { + return false; + } + + /** + * A Handler class for Messages from native SDL applications. + * It uses current Activities as target (e.g. for the title). + * static to prevent implicit references to enclosing object. + */ + protected static class SDLCommandHandler extends Handler { + @Override + public void handleMessage(Message msg) { + Context context = SDL.getContext(); + if (context == null) { + Log.e(TAG, "error handling message, getContext() returned null"); + return; + } + switch (msg.arg1) { + case COMMAND_CHANGE_TITLE: + if (context instanceof Activity) { + ((Activity) context).setTitle((String)msg.obj); + } else { + Log.e(TAG, "error handling message, getContext() returned no Activity"); + } + break; + case COMMAND_CHANGE_WINDOW_STYLE: + if (Build.VERSION.SDK_INT >= 19 /* Android 4.4 (KITKAT) */) { + if (context instanceof Activity) { + Window window = ((Activity) context).getWindow(); + if (window != null) { + if ((msg.obj instanceof Integer) && ((Integer) msg.obj != 0)) { + int flags = View.SYSTEM_UI_FLAG_FULLSCREEN | + View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | + View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | + View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | + View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | + View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.INVISIBLE; + window.getDecorView().setSystemUiVisibility(flags); + window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); + window.clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); + SDLActivity.mFullscreenModeActive = true; + } else { + int flags = View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_VISIBLE; + window.getDecorView().setSystemUiVisibility(flags); + window.addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); + window.clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); + SDLActivity.mFullscreenModeActive = false; + } + if (Build.VERSION.SDK_INT >= 28 /* Android 9 (Pie) */) { + window.getAttributes().layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES; + } + } + } else { + Log.e(TAG, "error handling message, getContext() returned no Activity"); + } + } + break; + case COMMAND_TEXTEDIT_HIDE: + if (mTextEdit != null) { + // Note: On some devices setting view to GONE creates a flicker in landscape. + // Setting the View's sizes to 0 is similar to GONE but without the flicker. + // The sizes will be set to useful values when the keyboard is shown again. + mTextEdit.setLayoutParams(new RelativeLayout.LayoutParams(0, 0)); + + InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE); + imm.hideSoftInputFromWindow(mTextEdit.getWindowToken(), 0); + + mScreenKeyboardShown = false; + + mSurface.requestFocus(); + } + break; + case COMMAND_SET_KEEP_SCREEN_ON: + { + if (context instanceof Activity) { + Window window = ((Activity) context).getWindow(); + if (window != null) { + if ((msg.obj instanceof Integer) && ((Integer) msg.obj != 0)) { + window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); + } else { + window.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); + } + } + } + break; + } + default: + if ((context instanceof SDLActivity) && !((SDLActivity) context).onUnhandledMessage(msg.arg1, msg.obj)) { + Log.e(TAG, "error handling message, command is " + msg.arg1); + } + } + } + } + + // Handler for the messages + Handler commandHandler = new SDLCommandHandler(); + + // Send a message from the SDLMain thread + boolean sendCommand(int command, Object data) { + Message msg = commandHandler.obtainMessage(); + msg.arg1 = command; + msg.obj = data; + boolean result = commandHandler.sendMessage(msg); + + if (Build.VERSION.SDK_INT >= 19 /* Android 4.4 (KITKAT) */) { + if (command == COMMAND_CHANGE_WINDOW_STYLE) { + // Ensure we don't return until the resize has actually happened, + // or 500ms have passed. + + boolean bShouldWait = false; + + if (data instanceof Integer) { + // Let's figure out if we're already laid out fullscreen or not. + Display display = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); + DisplayMetrics realMetrics = new DisplayMetrics(); + display.getRealMetrics(realMetrics); + + boolean bFullscreenLayout = ((realMetrics.widthPixels == mSurface.getWidth()) && + (realMetrics.heightPixels == mSurface.getHeight())); + + if ((Integer) data == 1) { + // If we aren't laid out fullscreen or actively in fullscreen mode already, we're going + // to change size and should wait for surfaceChanged() before we return, so the size + // is right back in native code. If we're already laid out fullscreen, though, we're + // not going to change size even if we change decor modes, so we shouldn't wait for + // surfaceChanged() -- which may not even happen -- and should return immediately. + bShouldWait = !bFullscreenLayout; + } else { + // If we're laid out fullscreen (even if the status bar and nav bar are present), + // or are actively in fullscreen, we're going to change size and should wait for + // surfaceChanged before we return, so the size is right back in native code. + bShouldWait = bFullscreenLayout; + } + } + + if (bShouldWait && (SDLActivity.getContext() != null)) { + // We'll wait for the surfaceChanged() method, which will notify us + // when called. That way, we know our current size is really the + // size we need, instead of grabbing a size that's still got + // the navigation and/or status bars before they're hidden. + // + // We'll wait for up to half a second, because some devices + // take a surprisingly long time for the surface resize, but + // then we'll just give up and return. + // + synchronized (SDLActivity.getContext()) { + try { + SDLActivity.getContext().wait(500); + } catch (InterruptedException ie) { + ie.printStackTrace(); + } + } + } + } + } + + return result; + } + + // C functions we call + public static native String nativeGetVersion(); + public static native int nativeSetupJNI(); + public static native int nativeRunMain(String library, String function, Object arguments); + public static native void nativeLowMemory(); + public static native void nativeSendQuit(); + public static native void nativeQuit(); + public static native void nativePause(); + public static native void nativeResume(); + public static native void nativeFocusChanged(boolean hasFocus); + public static native void onNativeDropFile(String filename); + public static native void nativeSetScreenResolution(int surfaceWidth, int surfaceHeight, int deviceWidth, int deviceHeight, float rate); + public static native void onNativeResize(); + public static native void onNativeKeyDown(int keycode); + public static native void onNativeKeyUp(int keycode); + public static native boolean onNativeSoftReturnKey(); + public static native void onNativeKeyboardFocusLost(); + public static native void onNativeMouse(int button, int action, float x, float y, boolean relative); + public static native void onNativeTouch(int touchDevId, int pointerFingerId, + int action, float x, + float y, float p); + public static native void onNativeAccel(float x, float y, float z); + public static native void onNativeClipboardChanged(); + public static native void onNativeSurfaceCreated(); + public static native void onNativeSurfaceChanged(); + public static native void onNativeSurfaceDestroyed(); + public static native String nativeGetHint(String name); + public static native boolean nativeGetHintBoolean(String name, boolean default_value); + public static native void nativeSetenv(String name, String value); + public static native void onNativeOrientationChanged(int orientation); + public static native void nativeAddTouch(int touchId, String name); + public static native void nativePermissionResult(int requestCode, boolean result); + public static native void onNativeLocaleChanged(); + + /** + * This method is called by SDL using JNI. + */ + public static boolean setActivityTitle(String title) { + // Called from SDLMain() thread and can't directly affect the view + return mSingleton.sendCommand(COMMAND_CHANGE_TITLE, title); + } + + /** + * This method is called by SDL using JNI. + */ + public static void setWindowStyle(boolean fullscreen) { + // Called from SDLMain() thread and can't directly affect the view + mSingleton.sendCommand(COMMAND_CHANGE_WINDOW_STYLE, fullscreen ? 1 : 0); + } + + /** + * This method is called by SDL using JNI. + * This is a static method for JNI convenience, it calls a non-static method + * so that is can be overridden + */ + public static void setOrientation(int w, int h, boolean resizable, String hint) + { + if (mSingleton != null) { + mSingleton.setOrientationBis(w, h, resizable, hint); + } + } + + /** + * This can be overridden + */ + public void setOrientationBis(int w, int h, boolean resizable, String hint) + { + int orientation_landscape = -1; + int orientation_portrait = -1; + + /* If set, hint "explicitly controls which UI orientations are allowed". */ + if (hint.contains("LandscapeRight") && hint.contains("LandscapeLeft")) { + orientation_landscape = ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE; + } else if (hint.contains("LandscapeLeft")) { + orientation_landscape = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE; + } else if (hint.contains("LandscapeRight")) { + orientation_landscape = ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE; + } + + /* exact match to 'Portrait' to distinguish with PortraitUpsideDown */ + boolean contains_Portrait = hint.contains("Portrait ") || hint.endsWith("Portrait"); + + if (contains_Portrait && hint.contains("PortraitUpsideDown")) { + orientation_portrait = ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT; + } else if (contains_Portrait) { + orientation_portrait = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT; + } else if (hint.contains("PortraitUpsideDown")) { + orientation_portrait = ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT; + } + + boolean is_landscape_allowed = (orientation_landscape != -1); + boolean is_portrait_allowed = (orientation_portrait != -1); + int req; /* Requested orientation */ + + /* No valid hint, nothing is explicitly allowed */ + if (!is_portrait_allowed && !is_landscape_allowed) { + if (resizable) { + /* All orientations are allowed, respecting user orientation lock setting */ + req = ActivityInfo.SCREEN_ORIENTATION_FULL_USER; + } else { + /* Fixed window and nothing specified. Get orientation from w/h of created window */ + req = (w > h ? ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE : ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT); + } + } else { + /* At least one orientation is allowed */ + if (resizable) { + if (is_portrait_allowed && is_landscape_allowed) { + /* hint allows both landscape and portrait, promote to full user */ + req = ActivityInfo.SCREEN_ORIENTATION_FULL_USER; + } else { + /* Use the only one allowed "orientation" */ + req = (is_landscape_allowed ? orientation_landscape : orientation_portrait); + } + } else { + /* Fixed window and both orientations are allowed. Choose one. */ + if (is_portrait_allowed && is_landscape_allowed) { + req = (w > h ? orientation_landscape : orientation_portrait); + } else { + /* Use the only one allowed "orientation" */ + req = (is_landscape_allowed ? orientation_landscape : orientation_portrait); + } + } + } + + Log.v(TAG, "setOrientation() requestedOrientation=" + req + " width=" + w +" height="+ h +" resizable=" + resizable + " hint=" + hint); + mSingleton.setRequestedOrientation(req); + } + + /** + * This method is called by SDL using JNI. + */ + public static void minimizeWindow() { + + if (mSingleton == null) { + return; + } + + Intent startMain = new Intent(Intent.ACTION_MAIN); + startMain.addCategory(Intent.CATEGORY_HOME); + startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + mSingleton.startActivity(startMain); + } + + /** + * This method is called by SDL using JNI. + */ + public static boolean shouldMinimizeOnFocusLoss() { +/* + if (Build.VERSION.SDK_INT >= 24) { + if (mSingleton == null) { + return true; + } + + if (mSingleton.isInMultiWindowMode()) { + return false; + } + + if (mSingleton.isInPictureInPictureMode()) { + return false; + } + } + + return true; +*/ + return false; + } + + /** + * This method is called by SDL using JNI. + */ + public static boolean isScreenKeyboardShown() + { + if (mTextEdit == null) { + return false; + } + + if (!mScreenKeyboardShown) { + return false; + } + + InputMethodManager imm = (InputMethodManager) SDL.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); + return imm.isAcceptingText(); + + } + + /** + * This method is called by SDL using JNI. + */ + public static boolean supportsRelativeMouse() + { + // DeX mode in Samsung Experience 9.0 and earlier doesn't support relative mice properly under + // Android 7 APIs, and simply returns no data under Android 8 APIs. + // + // This is fixed in Samsung Experience 9.5, which corresponds to Android 8.1.0, and + // thus SDK version 27. If we are in DeX mode and not API 27 or higher, as a result, + // we should stick to relative mode. + // + if (Build.VERSION.SDK_INT < 27 /* Android 8.1 (O_MR1) */ && isDeXMode()) { + return false; + } + + return SDLActivity.getMotionListener().supportsRelativeMouse(); + } + + /** + * This method is called by SDL using JNI. + */ + public static boolean setRelativeMouseEnabled(boolean enabled) + { + if (enabled && !supportsRelativeMouse()) { + return false; + } + + return SDLActivity.getMotionListener().setRelativeMouseEnabled(enabled); + } + + /** + * This method is called by SDL using JNI. + */ + public static boolean sendMessage(int command, int param) { + if (mSingleton == null) { + return false; + } + return mSingleton.sendCommand(command, param); + } + + /** + * This method is called by SDL using JNI. + */ + public static Context getContext() { + return SDL.getContext(); + } + + /** + * This method is called by SDL using JNI. + */ + public static boolean isAndroidTV() { + UiModeManager uiModeManager = (UiModeManager) getContext().getSystemService(UI_MODE_SERVICE); + if (uiModeManager.getCurrentModeType() == Configuration.UI_MODE_TYPE_TELEVISION) { + return true; + } + if (Build.MANUFACTURER.equals("MINIX") && Build.MODEL.equals("NEO-U1")) { + return true; + } + if (Build.MANUFACTURER.equals("Amlogic") && Build.MODEL.equals("X96-W")) { + return true; + } + return Build.MANUFACTURER.equals("Amlogic") && Build.MODEL.startsWith("TV"); + } + + public static double getDiagonal() + { + DisplayMetrics metrics = new DisplayMetrics(); + Activity activity = (Activity)getContext(); + if (activity == null) { + return 0.0; + } + activity.getWindowManager().getDefaultDisplay().getMetrics(metrics); + + double dWidthInches = metrics.widthPixels / (double)metrics.xdpi; + double dHeightInches = metrics.heightPixels / (double)metrics.ydpi; + + return Math.sqrt((dWidthInches * dWidthInches) + (dHeightInches * dHeightInches)); + } + + /** + * This method is called by SDL using JNI. + */ + public static boolean isTablet() { + // If our diagonal size is seven inches or greater, we consider ourselves a tablet. + return (getDiagonal() >= 7.0); + } + + /** + * This method is called by SDL using JNI. + */ + public static boolean isChromebook() { + if (getContext() == null) { + return false; + } + return getContext().getPackageManager().hasSystemFeature("org.chromium.arc.device_management"); + } + + /** + * This method is called by SDL using JNI. + */ + public static boolean isDeXMode() { + if (Build.VERSION.SDK_INT < 24 /* Android 7.0 (N) */) { + return false; + } + try { + final Configuration config = getContext().getResources().getConfiguration(); + final Class configClass = config.getClass(); + return configClass.getField("SEM_DESKTOP_MODE_ENABLED").getInt(configClass) + == configClass.getField("semDesktopModeEnabled").getInt(config); + } catch(Exception ignored) { + return false; + } + } + + /** + * This method is called by SDL using JNI. + */ + public static DisplayMetrics getDisplayDPI() { + return getContext().getResources().getDisplayMetrics(); + } + + /** + * This method is called by SDL using JNI. + */ + public static boolean getManifestEnvironmentVariables() { + try { + if (getContext() == null) { + return false; + } + + ApplicationInfo applicationInfo = getContext().getPackageManager().getApplicationInfo(getContext().getPackageName(), PackageManager.GET_META_DATA); + Bundle bundle = applicationInfo.metaData; + if (bundle == null) { + return false; + } + String prefix = "SDL_ENV."; + final int trimLength = prefix.length(); + for (String key : bundle.keySet()) { + if (key.startsWith(prefix)) { + String name = key.substring(trimLength); + String value = bundle.get(key).toString(); + nativeSetenv(name, value); + } + } + /* environment variables set! */ + return true; + } catch (Exception e) { + Log.v(TAG, "exception " + e.toString()); + } + return false; + } + + // This method is called by SDLControllerManager's API 26 Generic Motion Handler. + public static View getContentView() { + return mLayout; + } + + static class ShowTextInputTask implements Runnable { + /* + * This is used to regulate the pan&scan method to have some offset from + * the bottom edge of the input region and the top edge of an input + * method (soft keyboard) + */ + static final int HEIGHT_PADDING = 15; + + public int x, y, w, h; + + public ShowTextInputTask(int x, int y, int w, int h) { + this.x = x; + this.y = y; + this.w = w; + this.h = h; + + /* Minimum size of 1 pixel, so it takes focus. */ + if (this.w <= 0) { + this.w = 1; + } + if (this.h + HEIGHT_PADDING <= 0) { + this.h = 1 - HEIGHT_PADDING; + } + } + + @Override + public void run() { + RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(w, h + HEIGHT_PADDING); + params.leftMargin = x; + params.topMargin = y; + + if (mTextEdit == null) { + mTextEdit = new DummyEdit(SDL.getContext()); + + mLayout.addView(mTextEdit, params); + } else { + mTextEdit.setLayoutParams(params); + } + + mTextEdit.setVisibility(View.VISIBLE); + mTextEdit.requestFocus(); + + InputMethodManager imm = (InputMethodManager) SDL.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); + imm.showSoftInput(mTextEdit, 0); + + mScreenKeyboardShown = true; + } + } + + /** + * This method is called by SDL using JNI. + */ + public static boolean showTextInput(int x, int y, int w, int h) { + // Transfer the task to the main thread as a Runnable + return mSingleton.commandHandler.post(new ShowTextInputTask(x, y, w, h)); + } + + public static boolean isTextInputEvent(KeyEvent event) { + + // Key pressed with Ctrl should be sent as SDL_KEYDOWN/SDL_KEYUP and not SDL_TEXTINPUT + if (event.isCtrlPressed()) { + return false; + } + + return event.isPrintingKey() || event.getKeyCode() == KeyEvent.KEYCODE_SPACE; + } + + public static boolean handleKeyEvent(View v, int keyCode, KeyEvent event, InputConnection ic) { + int deviceId = event.getDeviceId(); + int source = event.getSource(); + + if (source == InputDevice.SOURCE_UNKNOWN) { + InputDevice device = InputDevice.getDevice(deviceId); + if (device != null) { + source = device.getSources(); + } + } + +// if (event.getAction() == KeyEvent.ACTION_DOWN) { +// Log.v("SDL", "key down: " + keyCode + ", deviceId = " + deviceId + ", source = " + source); +// } else if (event.getAction() == KeyEvent.ACTION_UP) { +// Log.v("SDL", "key up: " + keyCode + ", deviceId = " + deviceId + ", source = " + source); +// } + + // Dispatch the different events depending on where they come from + // Some SOURCE_JOYSTICK, SOURCE_DPAD or SOURCE_GAMEPAD are also SOURCE_KEYBOARD + // So, we try to process them as JOYSTICK/DPAD/GAMEPAD events first, if that fails we try them as KEYBOARD + // + // Furthermore, it's possible a game controller has SOURCE_KEYBOARD and + // SOURCE_JOYSTICK, while its key events arrive from the keyboard source + // So, retrieve the device itself and check all of its sources + if (SDLControllerManager.isDeviceSDLJoystick(deviceId)) { + // Note that we process events with specific key codes here + if (event.getAction() == KeyEvent.ACTION_DOWN) { + if (SDLControllerManager.onNativePadDown(deviceId, keyCode) == 0) { + return true; + } + } else if (event.getAction() == KeyEvent.ACTION_UP) { + if (SDLControllerManager.onNativePadUp(deviceId, keyCode) == 0) { + return true; + } + } + } + + if ((source & InputDevice.SOURCE_MOUSE) == InputDevice.SOURCE_MOUSE) { + // on some devices key events are sent for mouse BUTTON_BACK/FORWARD presses + // they are ignored here because sending them as mouse input to SDL is messy + if ((keyCode == KeyEvent.KEYCODE_BACK) || (keyCode == KeyEvent.KEYCODE_FORWARD)) { + switch (event.getAction()) { + case KeyEvent.ACTION_DOWN: + case KeyEvent.ACTION_UP: + // mark the event as handled or it will be handled by system + // handling KEYCODE_BACK by system will call onBackPressed() + return true; + } + } + } + + if (event.getAction() == KeyEvent.ACTION_DOWN) { + if (isTextInputEvent(event)) { + if (ic != null) { + ic.commitText(String.valueOf((char) event.getUnicodeChar()), 1); + } else { + SDLInputConnection.nativeCommitText(String.valueOf((char) event.getUnicodeChar()), 1); + } + } + onNativeKeyDown(keyCode); + return true; + } else if (event.getAction() == KeyEvent.ACTION_UP) { + onNativeKeyUp(keyCode); + return true; + } + + return false; + } + + /** + * This method is called by SDL using JNI. + */ + public static Surface getNativeSurface() { + if (SDLActivity.mSurface == null) { + return null; + } + return SDLActivity.mSurface.getNativeSurface(); + } + + // Input + + /** + * This method is called by SDL using JNI. + */ + public static void initTouch() { + int[] ids = InputDevice.getDeviceIds(); + + for (int id : ids) { + InputDevice device = InputDevice.getDevice(id); + /* Allow SOURCE_TOUCHSCREEN and also Virtual InputDevices because they can send TOUCHSCREEN events */ + if (device != null && ((device.getSources() & InputDevice.SOURCE_TOUCHSCREEN) == InputDevice.SOURCE_TOUCHSCREEN + || device.isVirtual())) { + + int touchDevId = device.getId(); + /* + * Prevent id to be -1, since it's used in SDL internal for synthetic events + * Appears when using Android emulator, eg: + * adb shell input mouse tap 100 100 + * adb shell input touchscreen tap 100 100 + */ + if (touchDevId < 0) { + touchDevId -= 1; + } + nativeAddTouch(touchDevId, device.getName()); + } + } + } + + // Messagebox + + /** Result of current messagebox. Also used for blocking the calling thread. */ + protected final int[] messageboxSelection = new int[1]; + + /** + * This method is called by SDL using JNI. + * Shows the messagebox from UI thread and block calling thread. + * buttonFlags, buttonIds and buttonTexts must have same length. + * @param buttonFlags array containing flags for every button. + * @param buttonIds array containing id for every button. + * @param buttonTexts array containing text for every button. + * @param colors null for default or array of length 5 containing colors. + * @return button id or -1. + */ + public int messageboxShowMessageBox( + final int flags, + final String title, + final String message, + final int[] buttonFlags, + final int[] buttonIds, + final String[] buttonTexts, + final int[] colors) { + + messageboxSelection[0] = -1; + + // sanity checks + + if ((buttonFlags.length != buttonIds.length) && (buttonIds.length != buttonTexts.length)) { + return -1; // implementation broken + } + + // collect arguments for Dialog + + final Bundle args = new Bundle(); + args.putInt("flags", flags); + args.putString("title", title); + args.putString("message", message); + args.putIntArray("buttonFlags", buttonFlags); + args.putIntArray("buttonIds", buttonIds); + args.putStringArray("buttonTexts", buttonTexts); + args.putIntArray("colors", colors); + + // trigger Dialog creation on UI thread + + runOnUiThread(new Runnable() { + @Override + public void run() { + messageboxCreateAndShow(args); + } + }); + + // block the calling thread + + synchronized (messageboxSelection) { + try { + messageboxSelection.wait(); + } catch (InterruptedException ex) { + ex.printStackTrace(); + return -1; + } + } + + // return selected value + + return messageboxSelection[0]; + } + + protected void messageboxCreateAndShow(Bundle args) { + + // TODO set values from "flags" to messagebox dialog + + // get colors + + int[] colors = args.getIntArray("colors"); + int backgroundColor; + int textColor; + int buttonBorderColor; + int buttonBackgroundColor; + int buttonSelectedColor; + if (colors != null) { + int i = -1; + backgroundColor = colors[++i]; + textColor = colors[++i]; + buttonBorderColor = colors[++i]; + buttonBackgroundColor = colors[++i]; + buttonSelectedColor = colors[++i]; + } else { + backgroundColor = Color.TRANSPARENT; + textColor = Color.TRANSPARENT; + buttonBorderColor = Color.TRANSPARENT; + buttonBackgroundColor = Color.TRANSPARENT; + buttonSelectedColor = Color.TRANSPARENT; + } + + // create dialog with title and a listener to wake up calling thread + + final AlertDialog dialog = new AlertDialog.Builder(this).create(); + dialog.setTitle(args.getString("title")); + dialog.setCancelable(false); + dialog.setOnDismissListener(new DialogInterface.OnDismissListener() { + @Override + public void onDismiss(DialogInterface unused) { + synchronized (messageboxSelection) { + messageboxSelection.notify(); + } + } + }); + + // create text + + TextView message = new TextView(this); + message.setGravity(Gravity.CENTER); + message.setText(args.getString("message")); + if (textColor != Color.TRANSPARENT) { + message.setTextColor(textColor); + } + + // create buttons + + int[] buttonFlags = args.getIntArray("buttonFlags"); + int[] buttonIds = args.getIntArray("buttonIds"); + String[] buttonTexts = args.getStringArray("buttonTexts"); + + final SparseArray

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