premake/changelog
changeset 7925 f090a47eb7f7
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/premake/changelog	Sun Nov 10 00:38:37 2013 -0500
     1.3 @@ -0,0 +1,828 @@
     1.4 +This file contains a log of most of the changes and evolutions of the meta-build
     1.5 +system for Simple DirectMedia Layer 2.0 and related projects.
     1.6 +
     1.7 +Changes as of 09/18/2013:
     1.8 +  -Enabled executable bits on the Mac OS X build-scripts command files.
     1.9 +  -Replaced the Xcode directory structure with two folders for Xcode 3
    1.10 +   and Xcode 4. It now looks like the VisualC folder, wherein there is
    1.11 +   premake/Xcode/Xcode3 and premake/Xcode/Xcode4 default workspaces.
    1.12 +  -Updated premake/Xcode/build-scripts/xcode3.command and the
    1.13 +   xcode4.command files to properly generate the workspaces in the above
    1.14 +   mentioned directories.
    1.15 +  -Regenerated the Visual Studio projects to push the 'current working
    1.16 +   directory' fix to the repository.
    1.17 +  -Verified the projects are building and running properly across all platforms.
    1.18 +
    1.19 +Changes as of 09/13/2013-09/14/2013:
    1.20 +  -Analyzed structure and existing problems to be fixed in the system.
    1.21 +  -Updated the OpenGL dependency to not include "C:\Windows\System32" since that
    1.22 +   is implicitly included for any compiler building the project on Windows
    1.23 +   anyway.
    1.24 +  -Removed the build.all.vs2012.bat script since it hasn't been working and
    1.25 +   trying to get it to work or figure out why it doesn't is beyond the scope of
    1.26 +   the project at this point.
    1.27 +  -The above also applies to check.bin.compatibility.vs2010.bat.
    1.28 +  -Updated typo in run.tests.bat to make testchessboard run properly (it was
    1.29 +   looking for testdrawchessboard instead).
    1.30 +  -Corrected OpenGL dependency to properly look for "libGL" instead of
    1.31 +   "OpenGL32" on Linux.
    1.32 +  -Updated OpenGL dependency to link to "libGL" instead of "OpenGL32" on Linux.
    1.33 +  -Updated OpenGL dependency to properly notify the dependency system whether
    1.34 +   OpenGL support has been found or not (it was always indicating OpenGL
    1.35 +   support accidentally).
    1.36 +  -Modified the vs2008/vs2010/vs2012 generation scripts to generate to specific
    1.37 +   subfolders (ie, ./VS2008, etc.) so they can all be generated at once. Updated
    1.38 +   the clean script appropriately. Originally, it was desired to generate
    1.39 +   something more like SDL_VS2008.sln, etc., but premake has troubles correcting
    1.40 +   interproject dependencies without renaming the binary files to similar names
    1.41 +   (like SDL_main_VS2008.lib), which seemed much worse than just separating by
    1.42 +   directory.
    1.43 +  -Altered the working directories for the Visual Studio debugger to run from
    1.44 +   the path of the binary for each test application, rather than from the
    1.45 +   project directory. This allows the tests to utilize any locally copied
    1.46 +   resource files from both inside and outside Visual Studio.
    1.47 +  -Added execution bits to Linux build scripts.
    1.48 +  -Clarified the second paragraph in README-windows.txt.
    1.49 +  -Fixed typos in README.txt and added a plethora of code examples and
    1.50 +   explanations to demonstrate how to add on to the current system.
    1.51 +  -Regenerated default projects for MinGW, Linux, and Windows (this time serving
    1.52 +   VS2008, VS2010, and VS2012).
    1.53 +
    1.54 +Changes as of 08/30/2013:
    1.55 +  -Updated README-windows.txt, README-macosx.txt, and README-mingw.txt.
    1.56 +  -Created README-linux.txt, README-ios.txt, README-linux.txt.
    1.57 +  -Modified premake4.lua to not generate any files if simply printing help text.
    1.58 +  -Created the entire primary README.txt help file.
    1.59 +  -Updated the automated test command file for OS X to randomly select a file
    1.60 +   for testshape, just like the windows version. However, there is an issue
    1.61 +   with it so that test is currently commented out.
    1.62 +  -Updated all 4 OS X build scripts to automatically build all of the generated
    1.63 +   test projects, rather than maintaining a list.
    1.64 +  -Generated an initial Xcode 4 workspace for iOS.
    1.65 +  -Generated an initial Xcode 4 workspace for Mac OS X.
    1.66 +  -Updated a bug in the windows automated test batch file within the label for
    1.67 +   handling the specially randomized arguments passed to an application, such as
    1.68 +   for testshape (it was hardcoded for testshape, rather than using a variable
    1.69 +   as intended).
    1.70 +  -Fixed a typo in the windows automated test batch file wherein it was not able
    1.71 +   to run the chess board application correctly.
    1.72 +  -Updated the automated test bash script for Linux targets to run the new
    1.73 +   chessboard test and to randomly pick an image to send to testshape. It runs
    1.74 +   testresample and testatomic now, too.
    1.75 +
    1.76 +Changes as of 08/28/2013 & 08/29/2013:
    1.77 +  -Removed TODO.txt. It's no longer necessary; a lot of what was in it is no
    1.78 +   longer relevant, completed, or replaced by something different and thus
    1.79 +   implemented in some variety.
    1.80 +  -Stopped the premake engine from executing the project definitions if simply
    1.81 +   executing the help procedure, listing available options and acitons for the
    1.82 +   target premake file.
    1.83 +  -Modified the dependency function handling so that the function names are case
    1.84 +   insensitive both for registering functions and checking or testing them.
    1.85 +  -Created a function in sdl_projects.lua that can be used to retrieve all of
    1.86 +   the known names of the dependencies registered with the system at that point.
    1.87 +  -Implemented automated generation of options to forcibly enable certain
    1.88 +   dependencies, even if they are explicitly defined to not work on a given
    1.89 +   platform or if they simply cannot be found. This is useful, for instance, to
    1.90 +   force on the DirectX dependency for MinGW if the user has successfully setup
    1.91 +   the environment to work with it.
    1.92 +  -Modified the behavior of the dependency functions to provide the libraries,
    1.93 +   library paths, and include paths for platforms that don't support that
    1.94 +   dependency, allowing the override command line options to properly work on
    1.95 +   those platforms for those dependencies (again, the DirectX dependency on
    1.96 +   MinGW comes to mind).
    1.97 +  -Cleaned up premake4.lua.
    1.98 +  -Removed hardcoded links in Linux from premake4.lua to its proper locations in
    1.99 +   SDL2.lua and dependency functions.
   1.100 +  -Renamed the 'reset_links' function in sdl_check_compile.lua to be
   1.101 +   'reset_link_flags' since it fits the functionality better.
   1.102 +  -Corrected a mistake in 'check_include_directory' in sdl_check_compile.lua
   1.103 +   where it simply checked for files existing in a directory, rather than
   1.104 +   specifically header files.
   1.105 +  -Removed the 'projects' table declaration in premake4.lua, since its defined
   1.106 +   in sdl_projects.lua anyway.
   1.107 +  -Removed directive for copying the Info.plist file from the Xcode-iOS
   1.108 +   directory for the testsprite2.lua project, since it makes no sense.
   1.109 +  -Modified 'addConfig' in sdl_gen_config.lua to be extra cautious about
   1.110 +   ensuring that keys and values in the supplied config table are, indeed,
   1.111 +   strings as they need to be for concatenation.
   1.112 +  -Added documentation for premake4.lua, sdl_check_compile.lua,
   1.113 +   sdl_dependency_checkers.lua, sdl_depends.lua, sdl_file.lua,
   1.114 +   sdl_gen_config.lua, sdl_string.lua, and sdl_projects.lua.
   1.115 +  -Implemented file headers for every single project definition file.
   1.116 +  -Significantly cleaned up the commenting in SDL2.lua and added a file header
   1.117 +   description.
   1.118 +  -Added a print line in premake4.lua to indicate when the generation of the
   1.119 +   premake Lua file begins.
   1.120 +  -Added initial sample projects for VS2010, Linux make, and MinGW make.
   1.121 +
   1.122 +Changes as of 08/27/2013:
   1.123 +  -Updated the Linux premake executable based on all the patches applied to
   1.124 +   premake thus far, as documented in the patches folder.
   1.125 +  -Updated the Linux definition of SDL2.lua to have all of the subsequent source
   1.126 +   files associated with each dependency to be within that dependency using the
   1.127 +   SDL_paths directive.
   1.128 +  -Implemented a function for modifying the search path for libraries during
   1.129 +   the various compiler test functions in sdl_check_compile.lua.
   1.130 +  -sdl_check_compile.lua: implemented a function for checking wether a library
   1.131 +   exists using os.findlib, adding its directory to the library path, then
   1.132 +   using check_library_exists to see if it can be linked to properly.
   1.133 +  -sdl_check_compile.lua: implemented check_include_directory and
   1.134 +   check_include_directories functions to see whether specified directories
   1.135 +   exist and contains .h files. This could be modified later on for other types
   1.136 +   of files that would exist in include directories (such as hpp, hxx, etc.).
   1.137 +  -sdl_projects.lua: implemented a function that checks whether a dependency
   1.138 +   exists and was found (the function must have been executed already). This is
   1.139 +   used by many of the dependencies for Linux (specifically that most of its
   1.140 +   dependencies depend on DLOpen for shared library binding).
   1.141 +  -Modified the dependency order for Linux in SDL2.lua so that DLOpen is listed
   1.142 +   first, as to help the dependency resolution process.
   1.143 +  -Corrected the link order in sdl_check_compile.lua, fixing the
   1.144 +   check_library_exists, check_library_exists_multiple, and
   1.145 +   check_library_exists_lookup functions.
   1.146 +  -Corrected the size definitions for SDL_config_linux.template.h so that it
   1.147 +   will work cross-platform.
   1.148 +  -Implemented better dependency support for the following Linux dependencies:
   1.149 +   DLOpen, ALSA, PulseAudio, ESD, NAS, OSS, and X11. The dependency code is
   1.150 +   based on CMake's definitions for those dependencies. The dependency function
   1.151 +   for D-Bus is improved.
   1.152 +  -Removed the commented code for the Windows SDK in the
   1.153 +   sdl_dependency_checkers.lua file.
   1.154 +  -Re-enabled the ifndef checks for the generate premake header file.
   1.155 +  -Moved the clean action in premake4.lua to before the project definitions, so
   1.156 +   that cleaning is immediate and doesn't have to wait on unnecessary dependency
   1.157 +   checks.
   1.158 +  -Renamed the macro defining whether to use the premake config header from
   1.159 +   USING_PREMAKE_HEADER_H to USING_PREMAKE_CONFIG_H, which involved changes in
   1.160 +   premake4.lua and include/SDL_config.h in the root source tree.
   1.161 +  -Corrected a mistake in the OpenGL dependency function that would mishandle
   1.162 +   forbidding desktop GL functionality on iOS.
   1.163 +  -Corrected a bug that would properly setup MinGW targets to work with OpenGL,
   1.164 +   but it would not link to WGL so there was no way for SDL to actually load the
   1.165 +   OpenGL library and attach it to a window.
   1.166 +  -Blocked support for OpenGL on Cygwin.
   1.167 +  -Blocked support for testfilesystem on Cygwin due to lack of support, though
   1.168 +   unix file system support is now enabled on Cygwin. The test accesses some
   1.169 +   windows functions that do not link properly in the Cygwin environment.
   1.170 +
   1.171 +Changes as of 08/26/2013:
   1.172 +  -Implemented the testdrawchessboard test application.
   1.173 +  -Disabled the path-searching functionality for the DirectX dependency so it
   1.174 +   would be significantly sped up. It makes the assumption that DirectX is only
   1.175 +   installed if its DXSDK_DIR variable is set. The code is still there if users
   1.176 +   wish to implement the functionality again.
   1.177 +  -Modified the clean action to remove the 'ipch' directory since it sometimes
   1.178 +   shows up in various Visual Studio solution builds.
   1.179 +  -Fixed a bug in the post-build copy step that wouldn't correctly create nested
   1.180 +   directories during the copy stage in Visual Studio on Windows targets. This
   1.181 +   reflects an earlier bug fix that would stop the non-nested files from being
   1.182 +   copied correctly; both work now.
   1.183 +  -Modified the testshape project to copy all of the shape images instead of the
   1.184 +   sample image.
   1.185 +  -Updated the automated test batch file on Windows to randomly pick one of the
   1.186 +   intended shapes while running testshape. It also runs testshape three times,
   1.187 +   to demonstrate both the randomness and adequate testing of testshape over
   1.188 +   multiple shapes.
   1.189 +  -Changed the resample test to copy the sample.wav.
   1.190 +  -Updated the 'pass' label in the windows run.tests.bat file to accept a
   1.191 +   variable-number of arguments to be passed to the executable.
   1.192 +  -Re-enabeld the testresample test to try and resample sample.wav at 44.1Khz.
   1.193 +  -Updated testoverlay to copy moose.dat, since it depends on it now.
   1.194 +  -Updated testshader to properly depend on OpenGL and link to it, as well as
   1.195 +   copy the file it needs (icon.bmp).
   1.196 +  -Moved the dependency checker file over to the util directory.
   1.197 +  -Updated premake4.lua to recursively execute all the files in the projects
   1.198 +   folder, so they don't have to be hardcoded into premake4.lua and can be
   1.199 +   organized in whichever way desired (so long as their internal paths are
   1.200 +   correct).
   1.201 +  -Implemented text-based file writing in the sdl_file.lua utility file, as to
   1.202 +   prep for going around generating a lua file and loading the generated file
   1.203 +   from memory, instead.
   1.204 +  -Updated all of the current SDL dependency functions to properly check for
   1.205 +   MinGW and Cygwin support.
   1.206 +  -Fixed a few bugs in premake4.lua that would break Cygwin and MinGW support
   1.207 +   due to improper checking.
   1.208 +  -Fixed bugs that made it tricky to do wildcard copying on *nix systems (needed
   1.209 +   by testshape). Tested to work on MinGW and Windows.
   1.210 +
   1.211 +Changes as of 08/23/2013:
   1.212 +  -Removed hardcoded definitions for the Linux config template.
   1.213 +  -Moved definitions over to SDL2.lua.
   1.214 +  -Added definition for enabling the file system module on Linux.
   1.215 +  -Separated the OpenGL dependency into one for Windows (WGL) and Linux (GLX).
   1.216 +   The core dependency is still there, but the windowing part is separate.
   1.217 +  -Separated the library-based dependencies from the Linux implementation into
   1.218 +   a series of dependency functions.
   1.219 +  -Changed the dependency function to return a named table instead of variable
   1.220 +   returns.
   1.221 +
   1.222 +Changes as of 08/22/2013:
   1.223 +  -Rearranged a few more things in the top 'dofile' section in premake4.lua.
   1.224 +  -Reverted accidental changs to include/SDL_config.h which rendered it specific
   1.225 +   to a single platform, per cmake generation. All building was broken due to
   1.226 +   this accidental change, but it should be fixed after this commit.
   1.227 +  -Merged repository with the latest version from live SDL repository.
   1.228 +  -Implemented new file system source tree on Windows.
   1.229 +  -Implemented file system test.
   1.230 +  -Removed files accidentally committed from the Linux directory.
   1.231 +  -Implemented tests for the file system test for windows and Mac OS X.
   1.232 +  -Implemented cocoa file system support.
   1.233 +  -Implemented cocoa filesystem support on iOS.
   1.234 +  -Fixed a bug that was leading to the Xcode-iOS trying to build the
   1.235 +   OpenGL renderer on iOS, which isn't supported.
   1.236 +
   1.237 +Changes as of 08/21/2013:
   1.238 +  -Changed names of generated files in check_compile.lua to more readable names,
   1.239 +   within the format "premakecheck.*"
   1.240 +  -Updated the check build function in check_compile.lua to support executing
   1.241 +   the build and redirecting all output to "./premakecheck.stdout".
   1.242 +  -Implemented a function for checking the size of a given type by generating a
   1.243 +   program that prints it to the screen, then reads the result from a file and
   1.244 +   converts it to an integer. This function is dependent on the existence of
   1.245 +   stdio.h and the printf function.
   1.246 +  -Tested the size function on Linux using various types.
   1.247 +  -Clumped the "dofile" directives for all utility scripts together in
   1.248 +   premake4.lua.
   1.249 +  -Removed the *Mode variables for MinGW, Cygwin, and iOS. All checking for
   1.250 +   these systems should be done using SDL_getos().
   1.251 +  -Updated SDL_getos() to check the _OPTIONS table directly.
   1.252 +  -From depends.lua, moved dirpathsearch and getenvpath to sdl_file.lua.
   1.253 +  -Created a sdl_string.lua file to contain various string-related functions.
   1.254 +  -From depends.lua, moved indexOf and explode to sdl_string.lua.
   1.255 +  -From premake4.lua, moved implode to sdl_string.lua.
   1.256 +  -Renamed depends.lua to sdl_depends.lua. Indicated that the file is
   1.257 +   particularly for windows dependency testing.
   1.258 +  -Rename check_compile.lua to sdl_check_compile.lua.
   1.259 +  -Updated premake4.lua to reflect file changes and modified the order of doing
   1.260 +   the util files, since their interdependencies have changed slightly.
   1.261 +  -Added sdl_string.lua to the list of utility files done in the beginning of
   1.262 +   premake4.lua.
   1.263 +  -Updated header in every file to reflect that I did not create premake (old
   1.264 +   wording was a bit vague).
   1.265 +  -Added header to new files.
   1.266 +
   1.267 +Changes as of 08/20/2013:
   1.268 +  -Fixed logical mistakes in the check build sources function.
   1.269 +  -Added a check_function_exists function.
   1.270 +  -Whenever an include header or headers are checked, if they are found
   1.271 +   and build properly then they will be added to an internal list that
   1.272 +   will be prepended whenever doing future check_function_exists and
   1.273 +   check_library_exists calls.
   1.274 +  -Added a function which will check if a function exists in any of a set
   1.275 +   of libraries, rather than just one.
   1.276 +  -Added support for linking libraries for the check_library_exists
   1.277 +   function.
   1.278 +  -Silenced building and linking commands.
   1.279 +  -Incorporated check_compile.lua in premake4.lua.
   1.280 +  -Tested the various functions with X11, DLOpen, and ALSA dependency
   1.281 +   compatibility. some future tweaking may be necessary, but the
   1.282 +   dependency checking happening in cmake should be reproducable using
   1.283 +   these functions with some tweaking of the implementation itself.
   1.284 +
   1.285 +Changes as of 08/16/2013:
   1.286 +  -Updated Cygwin build to foster a very trimmed down version of the Linux
   1.287 +   build, with no audio, video, haptic, joystick, or input support.
   1.288 +  -Cygwin uses a shared library. Read SDL2.lua for more information.
   1.289 +  -Slimmed and trimmed the cygwin config template to its bare minimum.
   1.290 +  -Implemented the configurations needed for Cygwin in SDL2.lua.
   1.291 +  -Updated many projects to be excluded if building on Cygwin, since many of
   1.292 +   them are incompatible without the aforementioned support.
   1.293 +  -Implemented a Cygwin directory and separate build-scripts, working similarly
   1.294 +   to that of MinGW.
   1.295 +  -Implemented a check_compile.lua utility file emulating a lot of the same
   1.296 +   functions used in cmake to check for dependencies and various libraries.
   1.297 +   These will be added to a Linux-specific dependency checker function later on,
   1.298 +   allowing all the Linux dependencies to follow a similar routine to that of
   1.299 +   autotools and cmake.
   1.300 +
   1.301 +Changes as of 08/15/2013:
   1.302 +  -Created a separate template configuration file for Cygwin.
   1.303 +  -Created separate SDL2 project definitions for Cygwin, alongside Linux.
   1.304 +  -Added various other side definitions for Cygwin support, though it is still
   1.305 +   not building correctly due to some misunderstandings with library support.
   1.306 +  -Patched premake to support custom source trees for Xcode projects to fix
   1.307 +   issues finding the correct iOS frameworks in Xcode.
   1.308 +  -Updated all Win32 premake executables containing the patch.
   1.309 +  -Updated executables for Xcode and Xcode-iOS for above patch.
   1.310 +  -Updated SDL2.lua for iOS to use the SDKROOT source tree for the frameworks,
   1.311 +   as per the new patch.
   1.312 +  -Successfully built and ran all the iOS demos.
   1.313 +
   1.314 +Changes as of 08/14/2013:
   1.315 +  -Fixed a mistake in the windows-side copy command that was changed yesterday;
   1.316 +   without parentheses it was inhibiting the ability to copy the SDL2.dll file
   1.317 +   to the built directories if the directories already existed; this has been
   1.318 +   fixed.
   1.319 +  -Reintegrated MinGW support on Windows with a few slight changes to various
   1.320 +   OS dependencies, since "MinGW" is now considered the target OS, versus
   1.321 +   Windows. This involved changes in SDL2.lua, SDL2main.lua, testnative.lua.
   1.322 +  -Reenabled both debug and release configurations.
   1.323 +  -Separated post-build commands to being separate for debug and release.
   1.324 +  -Setup temporary hardcoded linkoptions for MinGW on the release configuration.
   1.325 +  -Verified both configurations build correctly for VS2010 and MinGW.
   1.326 +  -Updated the premake executables for VS and MinGW to reflect the recent
   1.327 +   patch.
   1.328 +  -Updated premake executables for Xcode and Xcode-iOS to contain features
   1.329 +   added from the latest patch.
   1.330 +  -Verified working debug/release builds on Xcode, though the target
   1.331 +   directories for the binaries clash, so they override each other. This
   1.332 +   will be fixed in the future as the system starts to get cleaned up.
   1.333 +
   1.334 +Changes as of 08/13/2013:
   1.335 +  -Implemented special SDL_getos function which gets the current build
   1.336 +   platform, taking into consideration Cygwin, iOS, and MinGW modes.
   1.337 +   Although it's invalid to consider Cygwin and MinGW operating systems,
   1.338 +   for all intensive purposes they are considered separate for the build
   1.339 +   system. This may be renamed later on.
   1.340 +  -Updated OS-compatibility functions for SDL projects to use the new
   1.341 +   SDL_getos function, so they can be dependent on Cygwin, MinGW, iOS, etc.
   1.342 +  -Removed the iOS dependency function and updated the iOS portion of the
   1.343 +   SDL2 project to depend on iOS rather than Mac OS X.
   1.344 +  -Changed the explode function in depends.lua to be part of the string
   1.345 +   table.
   1.346 +  -Modified SDL_isos to accept patterns, such as "macosx|ios".
   1.347 +  -Updated SDL2 and SDL2main to be compatible on Mac OS X and iOS
   1.348 +   simultaneously.
   1.349 +  -Updated SDL_os to work with the patterns, as well, by merging the
   1.350 +   functionalities of SDL_os and SDL_isos to a local function.
   1.351 +  -Updated SDL_notos similarly.
   1.352 +  -Updated SDL_os to work on projects as well as dependencies, and updated
   1.353 +   premake4.lua to check for overall project compatibility.
   1.354 +  -Implemented SDL_notos to inhibit compatibility for projects that simply
   1.355 +   cannot work on specific platforms.
   1.356 +  -Added exclusions for every single current test project to not be added
   1.357 +   to the iOS solution, since none of them are designed to run on iOS.
   1.358 +  -Removed hacked override for info.plist and properly implemented plist
   1.359 +   inclusion for Xcode projects. Premake already supported this well.
   1.360 +  -Changed a few references in premake4.lua of os.get to SDL_getos to
   1.361 +   avoid some of the hardcoding that was going on in various places.
   1.362 +  -Advanced the SDL_copy feature for project resources to being able to
   1.363 +   copy files to more complicated destination paths, with scripted support
   1.364 +   to create the destination directories if they do not yet exist during
   1.365 +   post-build execution.
   1.366 +  -Patched premake to allow BMPamd WAV files to be considered as assets
   1.367 +   for Xcode projects.
   1.368 +  -Updated the premake executables for Xcode and Xcode-iOS, respectively.
   1.369 +  -Successfully ported, built, and ran all working Xcode-iOS demos using
   1.370 +   project files generated by the meta-build system for those demos. There
   1.371 +   are a few hiccups that need to be ironed out yet, but overall it's a
   1.372 +   hopeful step forward to decent iOS support.
   1.373 +  -Upgraded the clean action to also delete the demos folder for iOS.
   1.374 +  -Unhardcoded a lot of the iOS stuff added in previous commits, which
   1.375 +   included switching a lot more references to os.get() to SDL_getos()
   1.376 +   in premake4.lua.
   1.377 +  -Preliminarily fixed some potential bugs stemming from SDL_getos()
   1.378 +   versus os.get().
   1.379 +  -Moved hardcoded iOS links from premake4.lua to their correct location
   1.380 +   in SDL2.lua.
   1.381 +  -Reinstated correct platforms directives, versus hardcoded iOS, etc.
   1.382 +  -Double checked Xcode projects still are generated, built, and run
   1.383 +   properly.
   1.384 +  -Updated the patches listing and files portion appropriately for the
   1.385 +   aforementioned premake modification.
   1.386 +
   1.387 +Changes as of 08/09/2013:
   1.388 +  -More bruteforcing on trying to hack premake into generating a correct
   1.389 +   iOS-compatible Xcode project.
   1.390 +  -Added code to convert all ConsoleApps to WindowedApps in iOS mode
   1.391 +   because ConsoleApps translate to 'tool' on Mac OS X and tools are
   1.392 +   not supported on iOS.
   1.393 +  -Forcefully implemented a list of links taken from the Demos SDL
   1.394 +   iOS Xcode project for all generated SDL2 projects so they can
   1.395 +   correctly link to the iOS system.
   1.396 +  -Successfully built SDL2 and tests for iOS, though the test projects will
   1.397 +   not run correctly on iOS due to not being built for iOS.
   1.398 +  -Fixed a bug in the testgles project where it was not linking to SDL2test,
   1.399 +   on which it was dependent.
   1.400 +
   1.401 +Changes as of 08/08/2013:
   1.402 +  -Implemented template header for iOS configurations.
   1.403 +  -Successfully built SDL2 library for iOS on Xcode.
   1.404 +  -Implemented configuration for iOS similar to that of Cygwin and MinGW.
   1.405 +  -Implemented command-line option for selecting iOS mode on Mac OS X.
   1.406 +  -Currently, iOS projects will have some issues regarding correct
   1.407 +   project types, so building and running are a bit off yet for iOS.
   1.408 +  -Added a new folder for iOS generation.
   1.409 +  -Added scripts for iOS generation and such.
   1.410 +  -Added exclusion for the OpenGL dependency checker for always failing
   1.411 +   on iOS, since iOS uses OpenGL ES 1.1/2.0, not desktop GL.
   1.412 +  -Fixed a bug in sdl_projects.lua that led to excluded dependency
   1.413 +   function calls to give a false positive if they lead to invoking
   1.414 +   the function rather than using a cached result.
   1.415 +
   1.416 +Changes as of 08/07/2013:
   1.417 +  -Created a fork for premake-stable to try and implement some of the necessary
   1.418 +   changes in order to support many new features to the meta-build system.
   1.419 +  -Created a directory for patches as part of the meta-build system. This may be
   1.420 +   removed later on.
   1.421 +  -Restored linking to MinGW32 in MinGW mode after temporarily removing it and
   1.422 +   forgetting to restore it.
   1.423 +  -Submitted a ticket and patch to premake for fixing the linker order that
   1.424 +   prevented proper linking to SDL2main on the MinGW project.
   1.425 +  -Created a manifest of patches made to premake needed for MinGW.
   1.426 +  -Added a patch for adding iOS support on Xcode, though currently untested.
   1.427 +  -Updated all Mac OS X, Windows, and MinGW binaries to reflect the above
   1.428 +   patches.
   1.429 +
   1.430 +Changes as of 08/06/2013:
   1.431 +  -Corrected a mistake in the Linux template config header that was preventing
   1.432 +   it from being built on Linux. It was using the same header guard as
   1.433 +   SDL_config.h, rendering it completely blank during compile time.
   1.434 +  -Added a dependency function for checking for D-Bus support on Linux.
   1.435 +  -Implemented a summary implementation for the Linux project in SDL2.lua,
   1.436 +   making use of the D-Bus dependency function.
   1.437 +  -Added temporary global links in premake4.lua for all projects on Linux.
   1.438 +  -Successfully built SDL2.lua on 64-bit Linux Mint 15.
   1.439 +  -Updated the testnative test project to have a Linux dependency, binding to
   1.440 +   testnativex11.c.
   1.441 +  -Implemented an X11 dependency function for testnative and related projects,
   1.442 +   though only testnative currently uses it.
   1.443 +  -Had to switch over to using a static library instead of a shared library on
   1.444 +   Linux for now, because Linux requires the end executable to be aware of
   1.445 +   where the shared library is, and we have no way currently to generate any
   1.446 +   sort of install rule for the generated SDL2 makefile. Premake will have to
   1.447 +   be patched to proceed on that route.
   1.448 +  -Successfully built all test projects on 64-bit Linux Mint 15.
   1.449 +  -Added a shell script to automatically run through the compatible tests in
   1.450 +   Linux/build-scripts, similar to those of the other platforms.
   1.451 +  -Successfully ran through many of the tests, though without OpenGL support.
   1.452 +  -Added clean shell script for Linux targets.
   1.453 +
   1.454 +Changes as of 08/05/2013:
   1.455 +  -Implemented global flags for checking if the current premake system is
   1.456 +   targeting MinGW or Cygwin.
   1.457 +  -Corrected previous checks that were directly using _OPTIONS to using the
   1.458 +   MinGWMode flag, instead.
   1.459 +  -Corrected typos where I was misspelling 'targeted' as 'targetted'
   1.460 +  -Moved the options declarations a bit earlier in premake4.lua.
   1.461 +  -Corrected a mistake in the clean batch file for MinGW where it wasn't
   1.462 +   actually cleaning in MinGW mode.
   1.463 +  -Started working on a Cygwin implementation.
   1.464 +  -Started working on a Linux implementation (using Linux Mint 15).
   1.465 +  -Setup a basic SDL_config_linux.template.h based on a SDL_config.h production
   1.466 +   on 64bit Linux Mint 15 using the configure script.
   1.467 +  -Setup the Linux directory and a basic build script. The system completely
   1.468 +   does not build at this point, it's simply a step in the right direction.
   1.469 +  -Fixed a bug in the testnative project where it was trying to build the X11
   1.470 +   implementation on Mac OS X instead of the cocoa implementation. The test
   1.471 +   now builds and runs correctly on Mac OS X.
   1.472 +
   1.473 +Changes as of 08/02/2013:
   1.474 +  -Actually added a README file for MinGW.
   1.475 +  -Changed all the README files to be named similar to those in the top level
   1.476 +   directory.
   1.477 +  -Updated the READMEs for more accurate and up-to-date information.
   1.478 +  -Split this primary README.txt into three files: README.txt, TODO.txt, and
   1.479 +   changelog.
   1.480 +  -Updated the depends.lua file to automatically fail on the windows dependency
   1.481 +   search if the current OS is not windows and corrected a bug that would result
   1.482 +   in an infinite loop if the main search path provided is empty but not nil.
   1.483 +  -Implemented a utility function in depends.lua for joining together a series
   1.484 +   of evaluated environmental variables, taking into consideration of they do
   1.485 +   not exist. This function is cross-platform.
   1.486 +  -Fixed a bug where the recently added code for surrounding paths with spaces
   1.487 +   in quotes would lead to premake placing a "../" before the path. Besides the
   1.488 +   convention of using double quotes is not universal, this bug existed both
   1.489 +   with Visual Studio and MinGW gmakefiles. The code has been completely
   1.490 +   removed, as it was found unnecessary.
   1.491 +  -Modified DirectX dependency function to fail if targeting MinGW.
   1.492 +  -After fully testing support for MinGW, I found there were a few differences
   1.493 +   in execution between that and VS builds (without DirectX), one of which is
   1.494 +   torturethread crashing on MinGW builds.
   1.495 +  -Changed testshape.lua to copy sample.bmp and changed the run test scripts
   1.496 +   to use the local sample.bmp as the shape for the window. This was just to
   1.497 +   make the built environment independent of the top-level SDL directory.
   1.498 +  -Changed the test run scripts to properly run the semaphore test.
   1.499 +  -Edited the build scripts for Visual Studio to parallelize builds when
   1.500 +   possible.
   1.501 +  -Moved build scripts for VS and MinGW projects into respective build-scripts
   1.502 +   folders, similar to the top level SDL directory. Tested all the tests for
   1.503 +   builds using VS2008, VS2010, VS2012, and MinGW.
   1.504 +  -Moved the build scripts for Xcode 3 and 4 to their own build-scripts folder.
   1.505 +  -Updated the build scripts for Mac OS X to run the semaphore test.
   1.506 +  -Tested the build environment and tests with Xcode 3 and 4 with architectures
   1.507 +   i386 and x86_64.
   1.508 +
   1.509 +Changes as of 08/01/2013:
   1.510 +  -Implemented the SDL_notdepfunc function in sdl_projects.lua so dependencies
   1.511 +   can depend on the absence of a dependency. For example, the haptic and
   1.512 +   joystick systems have dummy systems that cannot be built alongside the Dinput
   1.513 +   implementations, so they have to be added only in the absence of DirectX.
   1.514 +  -Implement a dependency for handling the situation where DirectX is not found
   1.515 +   on the windows platform.
   1.516 +  -Tested SDL and its tests without DirectX support. Properly built SDL and ran
   1.517 +   through the tests. Most of the tests ran great. There were a few tests that
   1.518 +   did not work quite right, though.
   1.519 +  -Began working on MinGW gmakefile support.
   1.520 +  -Implemented custom option for specifying mingw mode (using --mingw); this is
   1.521 +   used to ensure -lmingw32 is specified to gcc for proper linking with
   1.522 +   SDL2main.
   1.523 +  -Had to change make_cpp.lua as part of premake in order to ensure the linker
   1.524 +   flags were specified before input, so that I could properly ensure the order
   1.525 +   of library linking. The premake in the VisualC folder is now customized.
   1.526 +  -Changed all of the projects' dependency orders to be logically correct, since
   1.527 +   gcc requires linking order to be exact.
   1.528 +  -Successfully built the entire project using MinGW and a generated GNU
   1.529 +   makefile.
   1.530 +  -Modified MinGW setup to statically link to libgcc so it can run independently
   1.531 +   of the MinGW system.
   1.532 +  -Successfully ran all tests with MinGW-built executables and library.
   1.533 +  -Setup a directory, README, and generation script for MinGW builds.
   1.534 +  -Updated clean action for makefiles.
   1.535 +  -Implemented quoted libpath and incpaths incase they have spaces.
   1.536 +  -DirectX and OpenGL currently not supported on MinGW due to build errors. This
   1.537 +   will be fixed and should be supported soon.
   1.538 +
   1.539 +Changes as of 07/31/2013:
   1.540 +  -Implemented functions for checking whether the current system is 64bit
   1.541 +   per-project specification. This is similar to SDL_isos. There is a
   1.542 +   negated version implemented, too.
   1.543 +  -Implemented native and universal build platforms for the Mac OS X
   1.544 +   projects. This translates to x32 and x64 build targets within Xcode.
   1.545 +  -Modified the SDL_defines function to add table values instead of replace.
   1.546 +  -Corrected a mistake that was defining _WINDOWS on the Mac OS X project.
   1.547 +  -Changed the dependency and custom links listing functions for sdl_projects
   1.548 +   to prevent duplicates.
   1.549 +  -Upgraded the premake4.lua handling of dependency lists and custom links
   1.550 +   to support prevented duplicates.
   1.551 +  -Reimplemented OpenGL support on Mac OS X.
   1.552 +  -Separated frameworks on Mac OS X into proper SDL_dependency declarations
   1.553 +   so they are no longer hardcoded.
   1.554 +  -Upgraded project dependency system so that when a project is dependent
   1.555 +   on a static library, it inherits all of the dependencies of that project
   1.556 +   as well.
   1.557 +  -Created build scripts for i386 and x86_64 for both Xcode 3 and Xcode 4.
   1.558 +  -Tested all of the above (including with OpenGL and without OpenGL) on all
   1.559 +   tests for Xcode 3 and 4, on architecture targets i386 and x86_64.
   1.560 +  -Removed the old premake4 executable in Xcode.
   1.561 +
   1.562 +Changes as of 07/30/2013:
   1.563 +  -Began investigating different architectures for Windows, MacOSX, etc.
   1.564 +  -Implemented functionality for specifying which platforms a project is
   1.565 +   supported on, so as to start providing preliminary support for multiple
   1.566 +   build platforms.
   1.567 +  -Changed function declaration requirement for dependency functions.
   1.568 +  -Changed the dependency function invocation to be table-based.
   1.569 +  -Implemented features to cleanup using dependency functions for projects and
   1.570 +   allowed possibility for multiple dependency functions on one project.
   1.571 +  -Moved invocation of dependency functions from premake4.lua to
   1.572 +   sdl_projects.lua.
   1.573 +  -Some nested statements have been cleaned up in premake4.lua due to changing
   1.574 +   the dependency function calling location.
   1.575 +  -Moved all dependency functions to a unified location for order-independent
   1.576 +   referencing of them. Ie, this allows SDL2 and testgl2 to both reference the
   1.577 +   OpenGL checker function.
   1.578 +  -Ensured all dependencies are invoked exactly one time even if referenced
   1.579 +   multiple times.
   1.580 +  -Implemented opengl dependencies for SDL2 so that opengl support should now be
   1.581 +   reenabled in the SDL project.
   1.582 +
   1.583 +Changes as of 07/29/2013:
   1.584 +  -Implemented scripts to automatically build all of the projects in the VS2010
   1.585 +   and VS2012 solutions.
   1.586 +  -Implemented scripts to automatically perform binary compatibility testing for
   1.587 +   premake VS2010 and VS2012 libraries against the manual projects' test
   1.588 +   executables.
   1.589 +  -Tested binary compatibility for VS2010 and VS2012 solutions on Windows. The
   1.590 +   usual lack of standard output is still ocurring. The testgl2 application
   1.591 +   currently crashes on both, but that's because it's not linking to OpenGL
   1.592 +   currently. The test shouldn't actually crash, but it reports no OpenGL
   1.593 +   when it runs correctly. The other visual tests seem to run fine.
   1.594 +  -Cleaned up this README a bit, adding the rest of the points discussed with
   1.595 +   Gabriel.
   1.596 +
   1.597 +Changes as of 07/26/2013:
   1.598 +  -Corrected a bug in SDL2.lua that didn't correctly define the compile-time
   1.599 +   defines for Mac OS X.
   1.600 +  -Added template configuration headers for minimal builds and Mac OS X
   1.601 +  -Added template config selection based on current platform, defaulting to
   1.602 +   minimal if on an unknown system
   1.603 +  -Corrected bug in sdl_gen_config.lua to allow using templates that have no
   1.604 +   area to paste generated tokens, thereby ignoring the tokens and just
   1.605 +   copying the template right into the generated header
   1.606 +  -Upgraded build.all.xcode4.command in the Xcode directory to give some
   1.607 +   information regarding how many tests were attempted to be built, how
   1.608 +   many passed, failed, and were skipped.
   1.609 +  -Added support in the clean option to correctly remove the Xcode 4 workspace
   1.610 +   file. It almost perfectly cleans Xcode projects now. It actually will only
   1.611 +   miss folders if the user goes into those folders with Finder, otherwise it
   1.612 +   cleans up properly right now.
   1.613 +  -Added support build.all.xcode3.command for Xcode 3 projects, rather than
   1.614 +   having to manually go into each project and build it individually.
   1.615 +
   1.616 +Changes as of 07/25/2013:
   1.617 +  -Moved file-based operations to a separate utility sdl_file.lua file
   1.618 +  -Began the configuration generation system using sdl_gen_config.lua
   1.619 +  -Created a config folder for *config.h templates and added the
   1.620 +   SDL_config_windows.template.h file, omitting everything premake will add
   1.621 +   itself
   1.622 +  -Fixed a bug where the base location would have a backslash on windows in the
   1.623 +   final generated Lua file, where it wasn't supposed to
   1.624 +  -Implemented clean option for the generated header file
   1.625 +  -Modified SDL_config.h to include SDL_config_premake.h (generated) if the
   1.626 +   preprocessor value 'USING_PREMAKE_HEADER_H' is defined, which the meta-build
   1.627 +   system ensures it is
   1.628 +  -Merged winmm dependency back into the windows dependency for SDL2.lua,
   1.629 +   because the windows timer module depends on winmm, as well
   1.630 +  -Partially tested configuration system via Visual Studio 2008; Mac OS X
   1.631 +   projects will be broken until that side is upgraded
   1.632 +
   1.633 +Changes as of 07/24/2013:
   1.634 +  -Updated mac os x test file to include all the new tests
   1.635 +  -Added script to automatically batch together all the scheme builds for
   1.636 +   the tests, so they don't have to be manually built through Xcode
   1.637 +  -Tested new tests and build environment on Xcode 4 successfully (weren't
   1.638 +   tested on here yet)
   1.639 +  -Began investigating implementing iOS Xcode projects using meta-build
   1.640 +   system
   1.641 +  -Began investigating implementing gmakefile generation support for
   1.642 +   GNU/Linux, Cygwin, and MinGW.
   1.643 +
   1.644 +Changes as of 07/23/2013:
   1.645 +  -Latest changes tested on Xcode 3 and 4; test suites running as expected
   1.646 +  -Implemented the entire test suite and tested it in Visual Studio on Windows;
   1.647 +   incompatible tests will build and run, but they will fail if there are no
   1.648 +   appropriate devices or settings for them to run correctly; this is correct
   1.649 +   behavior. Tested most suites on VS2008, VS2010, and VS2012. Only testerror
   1.650 +   crashed.
   1.651 +
   1.652 +Changes as of 07/22/2013:
   1.653 +  -Cleaned up the mixture of forward/back slashes in the generated LUA file. The
   1.654 +   only backslashes that exist are for copy commands, since they are copied as
   1.655 +   text into the generated projects. The rest use forward slashes, since premake
   1.656 +   actions handle per-system translation of directory paths.
   1.657 +  -Implemented SDL_isos function for projects so that they can have some control
   1.658 +   over certain functions where arguments or function calls changed with
   1.659 +   different operating systems (such as SDL_kind for SDL2 project)
   1.660 +  -Documented the new project functions. The documentation could be formatted a
   1.661 +   bit better and the arguments could be explicitly formatted.
   1.662 +  -Cleaned up SDL2.lua
   1.663 +  -Implemented project-level files and paths directives for projects, so that
   1.664 +   SDL_dependency isn't needed to specify files and file search paths for
   1.665 +   projects
   1.666 +  -Applied the above changes to all the project files and named a few other
   1.667 +   dependencies such as for SDL_main and testgl2. No projects should have
   1.668 +   unnamed dependencies at this point.
   1.669 +  -Tested the changes of the last few days on VS2008, VS2010, and VS2012. All
   1.670 +   the test suites run as expected.
   1.671 +
   1.672 +Changes as of 07/19/2013:
   1.673 +  -Updated generation backend to be more concise and less like it was before;
   1.674 +   this also fixed the duplicate dependency function calls bug
   1.675 +  -Implemented config function for constants to set in a generated SDL config
   1.676 +   header
   1.677 +  -Preliminarily set the config values for the SDL2 project
   1.678 +  -Updated generation code so that it won't generate empty projects, which stems
   1.679 +   from projects in which all of its dependencies are not compatible with the
   1.680 +   current system
   1.681 +  -Updated windows automated tests batch file to work more like Xcode's shell
   1.682 +   command file wherein it uses a labeled batch of commands as a sort of
   1.683 +   procedure; it's cleaner now and it will work if some projects aren't there
   1.684 +   (such as if they aren't supported on that platform)
   1.685 +  -Separated the winmm portion of the SDL2 project from the windows portion, so
   1.686 +   it has its own dependence now and uses a dependency check function that's
   1.687 +   dependent on premake's os.findlib
   1.688 +
   1.689 +Changes as of 07/18/2013:
   1.690 +  -Converted all projects over to the new, simpler format and tested on VS2008,
   1.691 +   VS2010, and VS2012
   1.692 +  -Corrected a mistake in the SDL2main project that always built the main file
   1.693 +   for windows, even on mac os x
   1.694 +  -Added some more features to the new project definition system to support
   1.695 +   project locations, custom defines, copy tables, and project dependencies
   1.696 +  -Moved new project definition system to a separate lua file
   1.697 +  -Fixed using 'copy' on windows for post-build commands and 'cp' on all
   1.698 +   other systems
   1.699 +  -Tested projects on Xcode 3; everything working correctly
   1.700 +  -Modified SDL2main project to use the dummy main for macosx
   1.701 +  -Changed the convenience scripts on macosx to .command files for the ability
   1.702 +   to conveniently double-click-execute them like an application or windows batch
   1.703 +   file 
   1.704 +
   1.705 +Changes as of 07/17/2013:
   1.706 +  -Tested that the generated Xcode 3 projects correctly work as expected
   1.707 +  -Implemented a new backend system for defining projects that majorly cleans
   1.708 +   up the syntax and eases the process of defining projects; currently only
   1.709 +   tested with VS2010 on Windows.
   1.710 +
   1.711 +Changes as of 07/09/2013-07/10/2013:
   1.712 +  -Fixed a bug that premake was causing where the mac project wouldn't execute
   1.713 +   any of its post-build options because premake was incorrectly generating the
   1.714 +   project in specific situations; the generated lua file now works around it
   1.715 +   correctly
   1.716 +
   1.717 +Changes as of 07/08/2013:
   1.718 +  -Unified SDL2.lua a bit by pulling out the source commonalities (generic
   1.719 +   interfaces and dummy implementations) and keeping the platform-specific
   1.720 +   implementations separate
   1.721 +  -Converted absolute paths to relative paths where appropriate, so now
   1.722 +   the generated VS solutions (and possibly Xcode) should be more portable
   1.723 +  -Modified premake script to support different base locations, so now the
   1.724 +   Visual Studio project directory structure is built within the VisualC
   1.725 +   directory, and similarly for Xcode (better organization and separation)
   1.726 +  -Fixed a minor bug in the cleanup action for VS2008 and VS2012 solutions
   1.727 +
   1.728 +Changes as of 07/05/2013:
   1.729 +  -Setup proper dependencies for XCode and successfully built the library
   1.730 +  -Ran test suites to ensure working Mac OSX binaries (64 bit, on Mac OS X 10.8
   1.731 +   Mountain Lion)
   1.732 +  -Redid the entire build environment to run out of a root premake folder,
   1.733 +   instead of separate premake folders for VisualC and Xcode
   1.734 +  -Setup convenient scripts for both Xcode and VisualC in the generic
   1.735 +   premake folder
   1.736 +  -Consolidated the premake scripts into a singular script for both targets
   1.737 +
   1.738 +Changes as of 07/02/2013 & 07/03/2013:
   1.739 +  -Finished implementing base setup for XCode
   1.740 +  -Configured the premake projects for XCode (using a parallel directory tree
   1.741 +   for now)
   1.742 +  -Implemented base XCode project using premake, though it still doesn't link
   1.743 +   properly
   1.744 +
   1.745 +Changes as of 06/30/2013 & 07/01/2013:
   1.746 +  -Implemented release configurations for projects
   1.747 +  -Began setting up environment for implementing the XCode projects
   1.748 +
   1.749 +Changes as of 06/29/2013:
   1.750 +  -Implemented copying intra-solution project dependencies shared libraries to
   1.751 +   the binary folders of other projects (such as copying SDL2.dll to subsequent
   1.752 +   directories of applications that depend on it).
   1.753 +  -Fixed a bug in the testscale and testrendertarget project lua files: they
   1.754 +   were copying sample.bmp for usage, but they depended on both icon.bmp and
   1.755 +   sample.bmp.
   1.756 +  -Added temporary batch script to simplify the process of running through all
   1.757 +   the currently available tests on windows.
   1.758 +  -Ensured binary compatibility for using SDL2.dll built with manual solutions
   1.759 +   with test suite applications built with automatic premake solution. This was
   1.760 +   tested successfully for VS2008, VS2010, and VS2012.
   1.761 +  -Binary compatibility has been ensured to not currently work vice versa,
   1.762 +   that is, using hand-rolled test suite applications with a generated-built
   1.763 +   SDL2.dll shared library.
   1.764 +
   1.765 +Changes as of 06/27/2013 & 06/28/2013:
   1.766 +  -Added premake5-dev to the repository, though it's still called premake4.exe
   1.767 +   and the main lua file is named similarly because it's still not officially
   1.768 +   premake5.
   1.769 +  -Setup generated project to nearly exactly match the flags of the manual
   1.770 +   project. Binary compatibility has been tested for SDL2.dll built with the
   1.771 +   manual projects against the applications built with the generated project.
   1.772 +   All seems to work so far. Only tested on VS2010. Much more testing to
   1.773 +   happen later.
   1.774 +
   1.775 +Changes as of 06/24/2013 & 06/25/2013:
   1.776 +  -Implemented basic meta-meta building system, where premake4.lua now
   1.777 +   generates a lua file and executes that to generate the project, allowing
   1.778 +   forward compatibility for premake5
   1.779 +  -Began working on binary compatibility verification by testing the test
   1.780 +   executables built by the manual VS solution using the SDL2.dll built
   1.781 +   from the premake solution. There are some issues, but nothing crashes
   1.782 +   that didn't crash before.
   1.783 +
   1.784 +Changes as of 06/21/2013:
   1.785 +  -Fixed multiple linker problem by adding an exclusion filter for
   1.786 +   src/thread/generic so that the duplicate objects wouldn't be doubly linked
   1.787 +  -Above linker fix also fixed the execution of all VS2008 project builds. All
   1.788 +   the projects run the same in terms of success or failure.
   1.789 +  -Added rudimentary clean action to premake files
   1.790 +  -Organized the project and build directory structures for the VS projects
   1.791 +   similar to that of the manually-built VS projects (though they no longer run
   1.792 +   out of the box, since SDL2.dll is now in a different directory; soon to be
   1.793 +   fixed)
   1.794 +
   1.795 +Changes as of 06/20/2013:
   1.796 +  -Implemented an optional copy table for projects that allow automatic copying
   1.797 +   of each file in the copy table from the source directory to the destination
   1.798 +   directory. These copy strings can actually be relative paths, as they will
   1.799 +   be made absolute and normalized in the handler code (but not validated!)
   1.800 +  -Implemented custom, per-project defines (needed for testgl2)
   1.801 +  -Fixed many warnings from VS2008 project by making sure shared libraries
   1.802 +   weren't being linked into shared library projects (such as SDLtest).
   1.803 +  -Tested all builds on VS2008, VS2010, and VS2012. Everything works as expected
   1.804 +   on the latter two.
   1.805 +
   1.806 +Changes as of 06/19/2013:
   1.807 +  -Implemented all of the currently supported projects in the hand-built
   1.808 +   Visual Studio solution, which successful building
   1.809 +  -Updated the dependency system to handle cross-linking of projects, such as
   1.810 +   the testing suite applications being dependent on SDL2 and SDL2main (and
   1.811 +   some even on SDL2test, which further emphasizes the capabilities)
   1.812 +  -Organized the folder structure to be less cluttered than before: only
   1.813 +   premake4.lua needs to exist at the root directory
   1.814 +  -Hardcoded the build path for all the projects to ./bin/Debug
   1.815 +  -Implemented support for adding input library links from dependency
   1.816 +   resolutions (for opengl in testgl2 in this case)
   1.817 +
   1.818 +Changes as of 06/18/2013:
   1.819 +  -Implemented a dependency for handling complex building scenarios, though
   1.820 +   it's only very simple right now
   1.821 +  -Implemented utility depends.lua for handling dependency searching on windows
   1.822 +  -Ported over hardcoded solution for SDL2 library to using dependency tree and
   1.823 +   a separate lua file
   1.824 +  -Implemented SDL2main static library, which involved more flexibility in the
   1.825 +   existing system
   1.826 +
   1.827 +Initial:
   1.828 +  -Built premake 4 binary and pasted it into secluded directory in SDL's build
   1.829 +   folder for Visual Studio
   1.830 +  -Created the initial premake script which recreated the SDL2.dll shared binary
   1.831 +   library, as based on the manually-created SDL project
   1.832 \ No newline at end of file