premake/changelog
author Sam Lantinga <slouken@libsdl.org>
Wed, 04 Jun 2014 10:56:56 -0700
changeset 8820 0e935d5b193a
parent 7925 f090a47eb7f7
permissions -rwxr-xr-x
Added annotations to help code analysis tools

CR: Bruce Dawson
icculus@7925
     1
This file contains a log of most of the changes and evolutions of the meta-build
icculus@7925
     2
system for Simple DirectMedia Layer 2.0 and related projects.
icculus@7925
     3
icculus@7925
     4
Changes as of 09/18/2013:
icculus@7925
     5
  -Enabled executable bits on the Mac OS X build-scripts command files.
icculus@7925
     6
  -Replaced the Xcode directory structure with two folders for Xcode 3
icculus@7925
     7
   and Xcode 4. It now looks like the VisualC folder, wherein there is
icculus@7925
     8
   premake/Xcode/Xcode3 and premake/Xcode/Xcode4 default workspaces.
icculus@7925
     9
  -Updated premake/Xcode/build-scripts/xcode3.command and the
icculus@7925
    10
   xcode4.command files to properly generate the workspaces in the above
icculus@7925
    11
   mentioned directories.
icculus@7925
    12
  -Regenerated the Visual Studio projects to push the 'current working
icculus@7925
    13
   directory' fix to the repository.
icculus@7925
    14
  -Verified the projects are building and running properly across all platforms.
icculus@7925
    15
icculus@7925
    16
Changes as of 09/13/2013-09/14/2013:
icculus@7925
    17
  -Analyzed structure and existing problems to be fixed in the system.
icculus@7925
    18
  -Updated the OpenGL dependency to not include "C:\Windows\System32" since that
icculus@7925
    19
   is implicitly included for any compiler building the project on Windows
icculus@7925
    20
   anyway.
icculus@7925
    21
  -Removed the build.all.vs2012.bat script since it hasn't been working and
icculus@7925
    22
   trying to get it to work or figure out why it doesn't is beyond the scope of
icculus@7925
    23
   the project at this point.
icculus@7925
    24
  -The above also applies to check.bin.compatibility.vs2010.bat.
icculus@7925
    25
  -Updated typo in run.tests.bat to make testchessboard run properly (it was
icculus@7925
    26
   looking for testdrawchessboard instead).
icculus@7925
    27
  -Corrected OpenGL dependency to properly look for "libGL" instead of
icculus@7925
    28
   "OpenGL32" on Linux.
icculus@7925
    29
  -Updated OpenGL dependency to link to "libGL" instead of "OpenGL32" on Linux.
icculus@7925
    30
  -Updated OpenGL dependency to properly notify the dependency system whether
icculus@7925
    31
   OpenGL support has been found or not (it was always indicating OpenGL
icculus@7925
    32
   support accidentally).
icculus@7925
    33
  -Modified the vs2008/vs2010/vs2012 generation scripts to generate to specific
icculus@7925
    34
   subfolders (ie, ./VS2008, etc.) so they can all be generated at once. Updated
icculus@7925
    35
   the clean script appropriately. Originally, it was desired to generate
icculus@7925
    36
   something more like SDL_VS2008.sln, etc., but premake has troubles correcting
icculus@7925
    37
   interproject dependencies without renaming the binary files to similar names
icculus@7925
    38
   (like SDL_main_VS2008.lib), which seemed much worse than just separating by
icculus@7925
    39
   directory.
icculus@7925
    40
  -Altered the working directories for the Visual Studio debugger to run from
icculus@7925
    41
   the path of the binary for each test application, rather than from the
icculus@7925
    42
   project directory. This allows the tests to utilize any locally copied
icculus@7925
    43
   resource files from both inside and outside Visual Studio.
icculus@7925
    44
  -Added execution bits to Linux build scripts.
icculus@7925
    45
  -Clarified the second paragraph in README-windows.txt.
icculus@7925
    46
  -Fixed typos in README.txt and added a plethora of code examples and
icculus@7925
    47
   explanations to demonstrate how to add on to the current system.
icculus@7925
    48
  -Regenerated default projects for MinGW, Linux, and Windows (this time serving
icculus@7925
    49
   VS2008, VS2010, and VS2012).
icculus@7925
    50
icculus@7925
    51
Changes as of 08/30/2013:
icculus@7925
    52
  -Updated README-windows.txt, README-macosx.txt, and README-mingw.txt.
icculus@7925
    53
  -Created README-linux.txt, README-ios.txt, README-linux.txt.
icculus@7925
    54
  -Modified premake4.lua to not generate any files if simply printing help text.
icculus@7925
    55
  -Created the entire primary README.txt help file.
icculus@7925
    56
  -Updated the automated test command file for OS X to randomly select a file
icculus@7925
    57
   for testshape, just like the windows version. However, there is an issue
icculus@7925
    58
   with it so that test is currently commented out.
icculus@7925
    59
  -Updated all 4 OS X build scripts to automatically build all of the generated
icculus@7925
    60
   test projects, rather than maintaining a list.
icculus@7925
    61
  -Generated an initial Xcode 4 workspace for iOS.
icculus@7925
    62
  -Generated an initial Xcode 4 workspace for Mac OS X.
icculus@7925
    63
  -Updated a bug in the windows automated test batch file within the label for
icculus@7925
    64
   handling the specially randomized arguments passed to an application, such as
icculus@7925
    65
   for testshape (it was hardcoded for testshape, rather than using a variable
icculus@7925
    66
   as intended).
icculus@7925
    67
  -Fixed a typo in the windows automated test batch file wherein it was not able
icculus@7925
    68
   to run the chess board application correctly.
icculus@7925
    69
  -Updated the automated test bash script for Linux targets to run the new
icculus@7925
    70
   chessboard test and to randomly pick an image to send to testshape. It runs
icculus@7925
    71
   testresample and testatomic now, too.
icculus@7925
    72
icculus@7925
    73
Changes as of 08/28/2013 & 08/29/2013:
icculus@7925
    74
  -Removed TODO.txt. It's no longer necessary; a lot of what was in it is no
icculus@7925
    75
   longer relevant, completed, or replaced by something different and thus
icculus@7925
    76
   implemented in some variety.
icculus@7925
    77
  -Stopped the premake engine from executing the project definitions if simply
icculus@7925
    78
   executing the help procedure, listing available options and acitons for the
icculus@7925
    79
   target premake file.
icculus@7925
    80
  -Modified the dependency function handling so that the function names are case
icculus@7925
    81
   insensitive both for registering functions and checking or testing them.
icculus@7925
    82
  -Created a function in sdl_projects.lua that can be used to retrieve all of
icculus@7925
    83
   the known names of the dependencies registered with the system at that point.
icculus@7925
    84
  -Implemented automated generation of options to forcibly enable certain
icculus@7925
    85
   dependencies, even if they are explicitly defined to not work on a given
icculus@7925
    86
   platform or if they simply cannot be found. This is useful, for instance, to
icculus@7925
    87
   force on the DirectX dependency for MinGW if the user has successfully setup
icculus@7925
    88
   the environment to work with it.
icculus@7925
    89
  -Modified the behavior of the dependency functions to provide the libraries,
icculus@7925
    90
   library paths, and include paths for platforms that don't support that
icculus@7925
    91
   dependency, allowing the override command line options to properly work on
icculus@7925
    92
   those platforms for those dependencies (again, the DirectX dependency on
icculus@7925
    93
   MinGW comes to mind).
icculus@7925
    94
  -Cleaned up premake4.lua.
icculus@7925
    95
  -Removed hardcoded links in Linux from premake4.lua to its proper locations in
icculus@7925
    96
   SDL2.lua and dependency functions.
icculus@7925
    97
  -Renamed the 'reset_links' function in sdl_check_compile.lua to be
icculus@7925
    98
   'reset_link_flags' since it fits the functionality better.
icculus@7925
    99
  -Corrected a mistake in 'check_include_directory' in sdl_check_compile.lua
icculus@7925
   100
   where it simply checked for files existing in a directory, rather than
icculus@7925
   101
   specifically header files.
icculus@7925
   102
  -Removed the 'projects' table declaration in premake4.lua, since its defined
icculus@7925
   103
   in sdl_projects.lua anyway.
icculus@7925
   104
  -Removed directive for copying the Info.plist file from the Xcode-iOS
icculus@7925
   105
   directory for the testsprite2.lua project, since it makes no sense.
icculus@7925
   106
  -Modified 'addConfig' in sdl_gen_config.lua to be extra cautious about
icculus@7925
   107
   ensuring that keys and values in the supplied config table are, indeed,
icculus@7925
   108
   strings as they need to be for concatenation.
icculus@7925
   109
  -Added documentation for premake4.lua, sdl_check_compile.lua,
icculus@7925
   110
   sdl_dependency_checkers.lua, sdl_depends.lua, sdl_file.lua,
icculus@7925
   111
   sdl_gen_config.lua, sdl_string.lua, and sdl_projects.lua.
icculus@7925
   112
  -Implemented file headers for every single project definition file.
icculus@7925
   113
  -Significantly cleaned up the commenting in SDL2.lua and added a file header
icculus@7925
   114
   description.
icculus@7925
   115
  -Added a print line in premake4.lua to indicate when the generation of the
icculus@7925
   116
   premake Lua file begins.
icculus@7925
   117
  -Added initial sample projects for VS2010, Linux make, and MinGW make.
icculus@7925
   118
icculus@7925
   119
Changes as of 08/27/2013:
icculus@7925
   120
  -Updated the Linux premake executable based on all the patches applied to
icculus@7925
   121
   premake thus far, as documented in the patches folder.
icculus@7925
   122
  -Updated the Linux definition of SDL2.lua to have all of the subsequent source
icculus@7925
   123
   files associated with each dependency to be within that dependency using the
icculus@7925
   124
   SDL_paths directive.
icculus@7925
   125
  -Implemented a function for modifying the search path for libraries during
icculus@7925
   126
   the various compiler test functions in sdl_check_compile.lua.
icculus@7925
   127
  -sdl_check_compile.lua: implemented a function for checking wether a library
icculus@7925
   128
   exists using os.findlib, adding its directory to the library path, then
icculus@7925
   129
   using check_library_exists to see if it can be linked to properly.
icculus@7925
   130
  -sdl_check_compile.lua: implemented check_include_directory and
icculus@7925
   131
   check_include_directories functions to see whether specified directories
icculus@7925
   132
   exist and contains .h files. This could be modified later on for other types
icculus@7925
   133
   of files that would exist in include directories (such as hpp, hxx, etc.).
icculus@7925
   134
  -sdl_projects.lua: implemented a function that checks whether a dependency
icculus@7925
   135
   exists and was found (the function must have been executed already). This is
icculus@7925
   136
   used by many of the dependencies for Linux (specifically that most of its
icculus@7925
   137
   dependencies depend on DLOpen for shared library binding).
icculus@7925
   138
  -Modified the dependency order for Linux in SDL2.lua so that DLOpen is listed
icculus@7925
   139
   first, as to help the dependency resolution process.
icculus@7925
   140
  -Corrected the link order in sdl_check_compile.lua, fixing the
icculus@7925
   141
   check_library_exists, check_library_exists_multiple, and
icculus@7925
   142
   check_library_exists_lookup functions.
icculus@7925
   143
  -Corrected the size definitions for SDL_config_linux.template.h so that it
icculus@7925
   144
   will work cross-platform.
icculus@7925
   145
  -Implemented better dependency support for the following Linux dependencies:
icculus@7925
   146
   DLOpen, ALSA, PulseAudio, ESD, NAS, OSS, and X11. The dependency code is
icculus@7925
   147
   based on CMake's definitions for those dependencies. The dependency function
icculus@7925
   148
   for D-Bus is improved.
icculus@7925
   149
  -Removed the commented code for the Windows SDK in the
icculus@7925
   150
   sdl_dependency_checkers.lua file.
icculus@7925
   151
  -Re-enabled the ifndef checks for the generate premake header file.
icculus@7925
   152
  -Moved the clean action in premake4.lua to before the project definitions, so
icculus@7925
   153
   that cleaning is immediate and doesn't have to wait on unnecessary dependency
icculus@7925
   154
   checks.
icculus@7925
   155
  -Renamed the macro defining whether to use the premake config header from
icculus@7925
   156
   USING_PREMAKE_HEADER_H to USING_PREMAKE_CONFIG_H, which involved changes in
icculus@7925
   157
   premake4.lua and include/SDL_config.h in the root source tree.
icculus@7925
   158
  -Corrected a mistake in the OpenGL dependency function that would mishandle
icculus@7925
   159
   forbidding desktop GL functionality on iOS.
icculus@7925
   160
  -Corrected a bug that would properly setup MinGW targets to work with OpenGL,
icculus@7925
   161
   but it would not link to WGL so there was no way for SDL to actually load the
icculus@7925
   162
   OpenGL library and attach it to a window.
icculus@7925
   163
  -Blocked support for OpenGL on Cygwin.
icculus@7925
   164
  -Blocked support for testfilesystem on Cygwin due to lack of support, though
icculus@7925
   165
   unix file system support is now enabled on Cygwin. The test accesses some
icculus@7925
   166
   windows functions that do not link properly in the Cygwin environment.
icculus@7925
   167
icculus@7925
   168
Changes as of 08/26/2013:
icculus@7925
   169
  -Implemented the testdrawchessboard test application.
icculus@7925
   170
  -Disabled the path-searching functionality for the DirectX dependency so it
icculus@7925
   171
   would be significantly sped up. It makes the assumption that DirectX is only
icculus@7925
   172
   installed if its DXSDK_DIR variable is set. The code is still there if users
icculus@7925
   173
   wish to implement the functionality again.
icculus@7925
   174
  -Modified the clean action to remove the 'ipch' directory since it sometimes
icculus@7925
   175
   shows up in various Visual Studio solution builds.
icculus@7925
   176
  -Fixed a bug in the post-build copy step that wouldn't correctly create nested
icculus@7925
   177
   directories during the copy stage in Visual Studio on Windows targets. This
icculus@7925
   178
   reflects an earlier bug fix that would stop the non-nested files from being
icculus@7925
   179
   copied correctly; both work now.
icculus@7925
   180
  -Modified the testshape project to copy all of the shape images instead of the
icculus@7925
   181
   sample image.
icculus@7925
   182
  -Updated the automated test batch file on Windows to randomly pick one of the
icculus@7925
   183
   intended shapes while running testshape. It also runs testshape three times,
icculus@7925
   184
   to demonstrate both the randomness and adequate testing of testshape over
icculus@7925
   185
   multiple shapes.
icculus@7925
   186
  -Changed the resample test to copy the sample.wav.
icculus@7925
   187
  -Updated the 'pass' label in the windows run.tests.bat file to accept a
icculus@7925
   188
   variable-number of arguments to be passed to the executable.
icculus@7925
   189
  -Re-enabeld the testresample test to try and resample sample.wav at 44.1Khz.
icculus@7925
   190
  -Updated testoverlay to copy moose.dat, since it depends on it now.
icculus@7925
   191
  -Updated testshader to properly depend on OpenGL and link to it, as well as
icculus@7925
   192
   copy the file it needs (icon.bmp).
icculus@7925
   193
  -Moved the dependency checker file over to the util directory.
icculus@7925
   194
  -Updated premake4.lua to recursively execute all the files in the projects
icculus@7925
   195
   folder, so they don't have to be hardcoded into premake4.lua and can be
icculus@7925
   196
   organized in whichever way desired (so long as their internal paths are
icculus@7925
   197
   correct).
icculus@7925
   198
  -Implemented text-based file writing in the sdl_file.lua utility file, as to
icculus@7925
   199
   prep for going around generating a lua file and loading the generated file
icculus@7925
   200
   from memory, instead.
icculus@7925
   201
  -Updated all of the current SDL dependency functions to properly check for
icculus@7925
   202
   MinGW and Cygwin support.
icculus@7925
   203
  -Fixed a few bugs in premake4.lua that would break Cygwin and MinGW support
icculus@7925
   204
   due to improper checking.
icculus@7925
   205
  -Fixed bugs that made it tricky to do wildcard copying on *nix systems (needed
icculus@7925
   206
   by testshape). Tested to work on MinGW and Windows.
icculus@7925
   207
icculus@7925
   208
Changes as of 08/23/2013:
icculus@7925
   209
  -Removed hardcoded definitions for the Linux config template.
icculus@7925
   210
  -Moved definitions over to SDL2.lua.
icculus@7925
   211
  -Added definition for enabling the file system module on Linux.
icculus@7925
   212
  -Separated the OpenGL dependency into one for Windows (WGL) and Linux (GLX).
icculus@7925
   213
   The core dependency is still there, but the windowing part is separate.
icculus@7925
   214
  -Separated the library-based dependencies from the Linux implementation into
icculus@7925
   215
   a series of dependency functions.
icculus@7925
   216
  -Changed the dependency function to return a named table instead of variable
icculus@7925
   217
   returns.
icculus@7925
   218
icculus@7925
   219
Changes as of 08/22/2013:
icculus@7925
   220
  -Rearranged a few more things in the top 'dofile' section in premake4.lua.
icculus@7925
   221
  -Reverted accidental changs to include/SDL_config.h which rendered it specific
icculus@7925
   222
   to a single platform, per cmake generation. All building was broken due to
icculus@7925
   223
   this accidental change, but it should be fixed after this commit.
icculus@7925
   224
  -Merged repository with the latest version from live SDL repository.
icculus@7925
   225
  -Implemented new file system source tree on Windows.
icculus@7925
   226
  -Implemented file system test.
icculus@7925
   227
  -Removed files accidentally committed from the Linux directory.
icculus@7925
   228
  -Implemented tests for the file system test for windows and Mac OS X.
icculus@7925
   229
  -Implemented cocoa file system support.
icculus@7925
   230
  -Implemented cocoa filesystem support on iOS.
icculus@7925
   231
  -Fixed a bug that was leading to the Xcode-iOS trying to build the
icculus@7925
   232
   OpenGL renderer on iOS, which isn't supported.
icculus@7925
   233
icculus@7925
   234
Changes as of 08/21/2013:
icculus@7925
   235
  -Changed names of generated files in check_compile.lua to more readable names,
icculus@7925
   236
   within the format "premakecheck.*"
icculus@7925
   237
  -Updated the check build function in check_compile.lua to support executing
icculus@7925
   238
   the build and redirecting all output to "./premakecheck.stdout".
icculus@7925
   239
  -Implemented a function for checking the size of a given type by generating a
icculus@7925
   240
   program that prints it to the screen, then reads the result from a file and
icculus@7925
   241
   converts it to an integer. This function is dependent on the existence of
icculus@7925
   242
   stdio.h and the printf function.
icculus@7925
   243
  -Tested the size function on Linux using various types.
icculus@7925
   244
  -Clumped the "dofile" directives for all utility scripts together in
icculus@7925
   245
   premake4.lua.
icculus@7925
   246
  -Removed the *Mode variables for MinGW, Cygwin, and iOS. All checking for
icculus@7925
   247
   these systems should be done using SDL_getos().
icculus@7925
   248
  -Updated SDL_getos() to check the _OPTIONS table directly.
icculus@7925
   249
  -From depends.lua, moved dirpathsearch and getenvpath to sdl_file.lua.
icculus@7925
   250
  -Created a sdl_string.lua file to contain various string-related functions.
icculus@7925
   251
  -From depends.lua, moved indexOf and explode to sdl_string.lua.
icculus@7925
   252
  -From premake4.lua, moved implode to sdl_string.lua.
icculus@7925
   253
  -Renamed depends.lua to sdl_depends.lua. Indicated that the file is
icculus@7925
   254
   particularly for windows dependency testing.
icculus@7925
   255
  -Rename check_compile.lua to sdl_check_compile.lua.
icculus@7925
   256
  -Updated premake4.lua to reflect file changes and modified the order of doing
icculus@7925
   257
   the util files, since their interdependencies have changed slightly.
icculus@7925
   258
  -Added sdl_string.lua to the list of utility files done in the beginning of
icculus@7925
   259
   premake4.lua.
icculus@7925
   260
  -Updated header in every file to reflect that I did not create premake (old
icculus@7925
   261
   wording was a bit vague).
icculus@7925
   262
  -Added header to new files.
icculus@7925
   263
icculus@7925
   264
Changes as of 08/20/2013:
icculus@7925
   265
  -Fixed logical mistakes in the check build sources function.
icculus@7925
   266
  -Added a check_function_exists function.
icculus@7925
   267
  -Whenever an include header or headers are checked, if they are found
icculus@7925
   268
   and build properly then they will be added to an internal list that
icculus@7925
   269
   will be prepended whenever doing future check_function_exists and
icculus@7925
   270
   check_library_exists calls.
icculus@7925
   271
  -Added a function which will check if a function exists in any of a set
icculus@7925
   272
   of libraries, rather than just one.
icculus@7925
   273
  -Added support for linking libraries for the check_library_exists
icculus@7925
   274
   function.
icculus@7925
   275
  -Silenced building and linking commands.
icculus@7925
   276
  -Incorporated check_compile.lua in premake4.lua.
icculus@7925
   277
  -Tested the various functions with X11, DLOpen, and ALSA dependency
icculus@7925
   278
   compatibility. some future tweaking may be necessary, but the
icculus@7925
   279
   dependency checking happening in cmake should be reproducable using
icculus@7925
   280
   these functions with some tweaking of the implementation itself.
icculus@7925
   281
icculus@7925
   282
Changes as of 08/16/2013:
icculus@7925
   283
  -Updated Cygwin build to foster a very trimmed down version of the Linux
icculus@7925
   284
   build, with no audio, video, haptic, joystick, or input support.
icculus@7925
   285
  -Cygwin uses a shared library. Read SDL2.lua for more information.
icculus@7925
   286
  -Slimmed and trimmed the cygwin config template to its bare minimum.
icculus@7925
   287
  -Implemented the configurations needed for Cygwin in SDL2.lua.
icculus@7925
   288
  -Updated many projects to be excluded if building on Cygwin, since many of
icculus@7925
   289
   them are incompatible without the aforementioned support.
icculus@7925
   290
  -Implemented a Cygwin directory and separate build-scripts, working similarly
icculus@7925
   291
   to that of MinGW.
icculus@7925
   292
  -Implemented a check_compile.lua utility file emulating a lot of the same
icculus@7925
   293
   functions used in cmake to check for dependencies and various libraries.
icculus@7925
   294
   These will be added to a Linux-specific dependency checker function later on,
icculus@7925
   295
   allowing all the Linux dependencies to follow a similar routine to that of
icculus@7925
   296
   autotools and cmake.
icculus@7925
   297
icculus@7925
   298
Changes as of 08/15/2013:
icculus@7925
   299
  -Created a separate template configuration file for Cygwin.
icculus@7925
   300
  -Created separate SDL2 project definitions for Cygwin, alongside Linux.
icculus@7925
   301
  -Added various other side definitions for Cygwin support, though it is still
icculus@7925
   302
   not building correctly due to some misunderstandings with library support.
icculus@7925
   303
  -Patched premake to support custom source trees for Xcode projects to fix
icculus@7925
   304
   issues finding the correct iOS frameworks in Xcode.
icculus@7925
   305
  -Updated all Win32 premake executables containing the patch.
icculus@7925
   306
  -Updated executables for Xcode and Xcode-iOS for above patch.
icculus@7925
   307
  -Updated SDL2.lua for iOS to use the SDKROOT source tree for the frameworks,
icculus@7925
   308
   as per the new patch.
icculus@7925
   309
  -Successfully built and ran all the iOS demos.
icculus@7925
   310
icculus@7925
   311
Changes as of 08/14/2013:
icculus@7925
   312
  -Fixed a mistake in the windows-side copy command that was changed yesterday;
icculus@7925
   313
   without parentheses it was inhibiting the ability to copy the SDL2.dll file
icculus@7925
   314
   to the built directories if the directories already existed; this has been
icculus@7925
   315
   fixed.
icculus@7925
   316
  -Reintegrated MinGW support on Windows with a few slight changes to various
icculus@7925
   317
   OS dependencies, since "MinGW" is now considered the target OS, versus
icculus@7925
   318
   Windows. This involved changes in SDL2.lua, SDL2main.lua, testnative.lua.
icculus@7925
   319
  -Reenabled both debug and release configurations.
icculus@7925
   320
  -Separated post-build commands to being separate for debug and release.
icculus@7925
   321
  -Setup temporary hardcoded linkoptions for MinGW on the release configuration.
icculus@7925
   322
  -Verified both configurations build correctly for VS2010 and MinGW.
icculus@7925
   323
  -Updated the premake executables for VS and MinGW to reflect the recent
icculus@7925
   324
   patch.
icculus@7925
   325
  -Updated premake executables for Xcode and Xcode-iOS to contain features
icculus@7925
   326
   added from the latest patch.
icculus@7925
   327
  -Verified working debug/release builds on Xcode, though the target
icculus@7925
   328
   directories for the binaries clash, so they override each other. This
icculus@7925
   329
   will be fixed in the future as the system starts to get cleaned up.
icculus@7925
   330
icculus@7925
   331
Changes as of 08/13/2013:
icculus@7925
   332
  -Implemented special SDL_getos function which gets the current build
icculus@7925
   333
   platform, taking into consideration Cygwin, iOS, and MinGW modes.
icculus@7925
   334
   Although it's invalid to consider Cygwin and MinGW operating systems,
icculus@7925
   335
   for all intensive purposes they are considered separate for the build
icculus@7925
   336
   system. This may be renamed later on.
icculus@7925
   337
  -Updated OS-compatibility functions for SDL projects to use the new
icculus@7925
   338
   SDL_getos function, so they can be dependent on Cygwin, MinGW, iOS, etc.
icculus@7925
   339
  -Removed the iOS dependency function and updated the iOS portion of the
icculus@7925
   340
   SDL2 project to depend on iOS rather than Mac OS X.
icculus@7925
   341
  -Changed the explode function in depends.lua to be part of the string
icculus@7925
   342
   table.
icculus@7925
   343
  -Modified SDL_isos to accept patterns, such as "macosx|ios".
icculus@7925
   344
  -Updated SDL2 and SDL2main to be compatible on Mac OS X and iOS
icculus@7925
   345
   simultaneously.
icculus@7925
   346
  -Updated SDL_os to work with the patterns, as well, by merging the
icculus@7925
   347
   functionalities of SDL_os and SDL_isos to a local function.
icculus@7925
   348
  -Updated SDL_notos similarly.
icculus@7925
   349
  -Updated SDL_os to work on projects as well as dependencies, and updated
icculus@7925
   350
   premake4.lua to check for overall project compatibility.
icculus@7925
   351
  -Implemented SDL_notos to inhibit compatibility for projects that simply
icculus@7925
   352
   cannot work on specific platforms.
icculus@7925
   353
  -Added exclusions for every single current test project to not be added
icculus@7925
   354
   to the iOS solution, since none of them are designed to run on iOS.
icculus@7925
   355
  -Removed hacked override for info.plist and properly implemented plist
icculus@7925
   356
   inclusion for Xcode projects. Premake already supported this well.
icculus@7925
   357
  -Changed a few references in premake4.lua of os.get to SDL_getos to
icculus@7925
   358
   avoid some of the hardcoding that was going on in various places.
icculus@7925
   359
  -Advanced the SDL_copy feature for project resources to being able to
icculus@7925
   360
   copy files to more complicated destination paths, with scripted support
icculus@7925
   361
   to create the destination directories if they do not yet exist during
icculus@7925
   362
   post-build execution.
icculus@7925
   363
  -Patched premake to allow BMPamd WAV files to be considered as assets
icculus@7925
   364
   for Xcode projects.
icculus@7925
   365
  -Updated the premake executables for Xcode and Xcode-iOS, respectively.
icculus@7925
   366
  -Successfully ported, built, and ran all working Xcode-iOS demos using
icculus@7925
   367
   project files generated by the meta-build system for those demos. There
icculus@7925
   368
   are a few hiccups that need to be ironed out yet, but overall it's a
icculus@7925
   369
   hopeful step forward to decent iOS support.
icculus@7925
   370
  -Upgraded the clean action to also delete the demos folder for iOS.
icculus@7925
   371
  -Unhardcoded a lot of the iOS stuff added in previous commits, which
icculus@7925
   372
   included switching a lot more references to os.get() to SDL_getos()
icculus@7925
   373
   in premake4.lua.
icculus@7925
   374
  -Preliminarily fixed some potential bugs stemming from SDL_getos()
icculus@7925
   375
   versus os.get().
icculus@7925
   376
  -Moved hardcoded iOS links from premake4.lua to their correct location
icculus@7925
   377
   in SDL2.lua.
icculus@7925
   378
  -Reinstated correct platforms directives, versus hardcoded iOS, etc.
icculus@7925
   379
  -Double checked Xcode projects still are generated, built, and run
icculus@7925
   380
   properly.
icculus@7925
   381
  -Updated the patches listing and files portion appropriately for the
icculus@7925
   382
   aforementioned premake modification.
icculus@7925
   383
icculus@7925
   384
Changes as of 08/09/2013:
icculus@7925
   385
  -More bruteforcing on trying to hack premake into generating a correct
icculus@7925
   386
   iOS-compatible Xcode project.
icculus@7925
   387
  -Added code to convert all ConsoleApps to WindowedApps in iOS mode
icculus@7925
   388
   because ConsoleApps translate to 'tool' on Mac OS X and tools are
icculus@7925
   389
   not supported on iOS.
icculus@7925
   390
  -Forcefully implemented a list of links taken from the Demos SDL
icculus@7925
   391
   iOS Xcode project for all generated SDL2 projects so they can
icculus@7925
   392
   correctly link to the iOS system.
icculus@7925
   393
  -Successfully built SDL2 and tests for iOS, though the test projects will
icculus@7925
   394
   not run correctly on iOS due to not being built for iOS.
icculus@7925
   395
  -Fixed a bug in the testgles project where it was not linking to SDL2test,
icculus@7925
   396
   on which it was dependent.
icculus@7925
   397
icculus@7925
   398
Changes as of 08/08/2013:
icculus@7925
   399
  -Implemented template header for iOS configurations.
icculus@7925
   400
  -Successfully built SDL2 library for iOS on Xcode.
icculus@7925
   401
  -Implemented configuration for iOS similar to that of Cygwin and MinGW.
icculus@7925
   402
  -Implemented command-line option for selecting iOS mode on Mac OS X.
icculus@7925
   403
  -Currently, iOS projects will have some issues regarding correct
icculus@7925
   404
   project types, so building and running are a bit off yet for iOS.
icculus@7925
   405
  -Added a new folder for iOS generation.
icculus@7925
   406
  -Added scripts for iOS generation and such.
icculus@7925
   407
  -Added exclusion for the OpenGL dependency checker for always failing
icculus@7925
   408
   on iOS, since iOS uses OpenGL ES 1.1/2.0, not desktop GL.
icculus@7925
   409
  -Fixed a bug in sdl_projects.lua that led to excluded dependency
icculus@7925
   410
   function calls to give a false positive if they lead to invoking
icculus@7925
   411
   the function rather than using a cached result.
icculus@7925
   412
icculus@7925
   413
Changes as of 08/07/2013:
icculus@7925
   414
  -Created a fork for premake-stable to try and implement some of the necessary
icculus@7925
   415
   changes in order to support many new features to the meta-build system.
icculus@7925
   416
  -Created a directory for patches as part of the meta-build system. This may be
icculus@7925
   417
   removed later on.
icculus@7925
   418
  -Restored linking to MinGW32 in MinGW mode after temporarily removing it and
icculus@7925
   419
   forgetting to restore it.
icculus@7925
   420
  -Submitted a ticket and patch to premake for fixing the linker order that
icculus@7925
   421
   prevented proper linking to SDL2main on the MinGW project.
icculus@7925
   422
  -Created a manifest of patches made to premake needed for MinGW.
icculus@7925
   423
  -Added a patch for adding iOS support on Xcode, though currently untested.
icculus@7925
   424
  -Updated all Mac OS X, Windows, and MinGW binaries to reflect the above
icculus@7925
   425
   patches.
icculus@7925
   426
icculus@7925
   427
Changes as of 08/06/2013:
icculus@7925
   428
  -Corrected a mistake in the Linux template config header that was preventing
icculus@7925
   429
   it from being built on Linux. It was using the same header guard as
icculus@7925
   430
   SDL_config.h, rendering it completely blank during compile time.
icculus@7925
   431
  -Added a dependency function for checking for D-Bus support on Linux.
icculus@7925
   432
  -Implemented a summary implementation for the Linux project in SDL2.lua,
icculus@7925
   433
   making use of the D-Bus dependency function.
icculus@7925
   434
  -Added temporary global links in premake4.lua for all projects on Linux.
icculus@7925
   435
  -Successfully built SDL2.lua on 64-bit Linux Mint 15.
icculus@7925
   436
  -Updated the testnative test project to have a Linux dependency, binding to
icculus@7925
   437
   testnativex11.c.
icculus@7925
   438
  -Implemented an X11 dependency function for testnative and related projects,
icculus@7925
   439
   though only testnative currently uses it.
icculus@7925
   440
  -Had to switch over to using a static library instead of a shared library on
icculus@7925
   441
   Linux for now, because Linux requires the end executable to be aware of
icculus@7925
   442
   where the shared library is, and we have no way currently to generate any
icculus@7925
   443
   sort of install rule for the generated SDL2 makefile. Premake will have to
icculus@7925
   444
   be patched to proceed on that route.
icculus@7925
   445
  -Successfully built all test projects on 64-bit Linux Mint 15.
icculus@7925
   446
  -Added a shell script to automatically run through the compatible tests in
icculus@7925
   447
   Linux/build-scripts, similar to those of the other platforms.
icculus@7925
   448
  -Successfully ran through many of the tests, though without OpenGL support.
icculus@7925
   449
  -Added clean shell script for Linux targets.
icculus@7925
   450
icculus@7925
   451
Changes as of 08/05/2013:
icculus@7925
   452
  -Implemented global flags for checking if the current premake system is
icculus@7925
   453
   targeting MinGW or Cygwin.
icculus@7925
   454
  -Corrected previous checks that were directly using _OPTIONS to using the
icculus@7925
   455
   MinGWMode flag, instead.
icculus@7925
   456
  -Corrected typos where I was misspelling 'targeted' as 'targetted'
icculus@7925
   457
  -Moved the options declarations a bit earlier in premake4.lua.
icculus@7925
   458
  -Corrected a mistake in the clean batch file for MinGW where it wasn't
icculus@7925
   459
   actually cleaning in MinGW mode.
icculus@7925
   460
  -Started working on a Cygwin implementation.
icculus@7925
   461
  -Started working on a Linux implementation (using Linux Mint 15).
icculus@7925
   462
  -Setup a basic SDL_config_linux.template.h based on a SDL_config.h production
icculus@7925
   463
   on 64bit Linux Mint 15 using the configure script.
icculus@7925
   464
  -Setup the Linux directory and a basic build script. The system completely
icculus@7925
   465
   does not build at this point, it's simply a step in the right direction.
icculus@7925
   466
  -Fixed a bug in the testnative project where it was trying to build the X11
icculus@7925
   467
   implementation on Mac OS X instead of the cocoa implementation. The test
icculus@7925
   468
   now builds and runs correctly on Mac OS X.
icculus@7925
   469
icculus@7925
   470
Changes as of 08/02/2013:
icculus@7925
   471
  -Actually added a README file for MinGW.
icculus@7925
   472
  -Changed all the README files to be named similar to those in the top level
icculus@7925
   473
   directory.
icculus@7925
   474
  -Updated the READMEs for more accurate and up-to-date information.
icculus@7925
   475
  -Split this primary README.txt into three files: README.txt, TODO.txt, and
icculus@7925
   476
   changelog.
icculus@7925
   477
  -Updated the depends.lua file to automatically fail on the windows dependency
icculus@7925
   478
   search if the current OS is not windows and corrected a bug that would result
icculus@7925
   479
   in an infinite loop if the main search path provided is empty but not nil.
icculus@7925
   480
  -Implemented a utility function in depends.lua for joining together a series
icculus@7925
   481
   of evaluated environmental variables, taking into consideration of they do
icculus@7925
   482
   not exist. This function is cross-platform.
icculus@7925
   483
  -Fixed a bug where the recently added code for surrounding paths with spaces
icculus@7925
   484
   in quotes would lead to premake placing a "../" before the path. Besides the
icculus@7925
   485
   convention of using double quotes is not universal, this bug existed both
icculus@7925
   486
   with Visual Studio and MinGW gmakefiles. The code has been completely
icculus@7925
   487
   removed, as it was found unnecessary.
icculus@7925
   488
  -Modified DirectX dependency function to fail if targeting MinGW.
icculus@7925
   489
  -After fully testing support for MinGW, I found there were a few differences
icculus@7925
   490
   in execution between that and VS builds (without DirectX), one of which is
icculus@7925
   491
   torturethread crashing on MinGW builds.
icculus@7925
   492
  -Changed testshape.lua to copy sample.bmp and changed the run test scripts
icculus@7925
   493
   to use the local sample.bmp as the shape for the window. This was just to
icculus@7925
   494
   make the built environment independent of the top-level SDL directory.
icculus@7925
   495
  -Changed the test run scripts to properly run the semaphore test.
icculus@7925
   496
  -Edited the build scripts for Visual Studio to parallelize builds when
icculus@7925
   497
   possible.
icculus@7925
   498
  -Moved build scripts for VS and MinGW projects into respective build-scripts
icculus@7925
   499
   folders, similar to the top level SDL directory. Tested all the tests for
icculus@7925
   500
   builds using VS2008, VS2010, VS2012, and MinGW.
icculus@7925
   501
  -Moved the build scripts for Xcode 3 and 4 to their own build-scripts folder.
icculus@7925
   502
  -Updated the build scripts for Mac OS X to run the semaphore test.
icculus@7925
   503
  -Tested the build environment and tests with Xcode 3 and 4 with architectures
icculus@7925
   504
   i386 and x86_64.
icculus@7925
   505
icculus@7925
   506
Changes as of 08/01/2013:
icculus@7925
   507
  -Implemented the SDL_notdepfunc function in sdl_projects.lua so dependencies
icculus@7925
   508
   can depend on the absence of a dependency. For example, the haptic and
icculus@7925
   509
   joystick systems have dummy systems that cannot be built alongside the Dinput
icculus@7925
   510
   implementations, so they have to be added only in the absence of DirectX.
icculus@7925
   511
  -Implement a dependency for handling the situation where DirectX is not found
icculus@7925
   512
   on the windows platform.
icculus@7925
   513
  -Tested SDL and its tests without DirectX support. Properly built SDL and ran
icculus@7925
   514
   through the tests. Most of the tests ran great. There were a few tests that
icculus@7925
   515
   did not work quite right, though.
icculus@7925
   516
  -Began working on MinGW gmakefile support.
icculus@7925
   517
  -Implemented custom option for specifying mingw mode (using --mingw); this is
icculus@7925
   518
   used to ensure -lmingw32 is specified to gcc for proper linking with
icculus@7925
   519
   SDL2main.
icculus@7925
   520
  -Had to change make_cpp.lua as part of premake in order to ensure the linker
icculus@7925
   521
   flags were specified before input, so that I could properly ensure the order
icculus@7925
   522
   of library linking. The premake in the VisualC folder is now customized.
icculus@7925
   523
  -Changed all of the projects' dependency orders to be logically correct, since
icculus@7925
   524
   gcc requires linking order to be exact.
icculus@7925
   525
  -Successfully built the entire project using MinGW and a generated GNU
icculus@7925
   526
   makefile.
icculus@7925
   527
  -Modified MinGW setup to statically link to libgcc so it can run independently
icculus@7925
   528
   of the MinGW system.
icculus@7925
   529
  -Successfully ran all tests with MinGW-built executables and library.
icculus@7925
   530
  -Setup a directory, README, and generation script for MinGW builds.
icculus@7925
   531
  -Updated clean action for makefiles.
icculus@7925
   532
  -Implemented quoted libpath and incpaths incase they have spaces.
icculus@7925
   533
  -DirectX and OpenGL currently not supported on MinGW due to build errors. This
icculus@7925
   534
   will be fixed and should be supported soon.
icculus@7925
   535
icculus@7925
   536
Changes as of 07/31/2013:
icculus@7925
   537
  -Implemented functions for checking whether the current system is 64bit
icculus@7925
   538
   per-project specification. This is similar to SDL_isos. There is a
icculus@7925
   539
   negated version implemented, too.
icculus@7925
   540
  -Implemented native and universal build platforms for the Mac OS X
icculus@7925
   541
   projects. This translates to x32 and x64 build targets within Xcode.
icculus@7925
   542
  -Modified the SDL_defines function to add table values instead of replace.
icculus@7925
   543
  -Corrected a mistake that was defining _WINDOWS on the Mac OS X project.
icculus@7925
   544
  -Changed the dependency and custom links listing functions for sdl_projects
icculus@7925
   545
   to prevent duplicates.
icculus@7925
   546
  -Upgraded the premake4.lua handling of dependency lists and custom links
icculus@7925
   547
   to support prevented duplicates.
icculus@7925
   548
  -Reimplemented OpenGL support on Mac OS X.
icculus@7925
   549
  -Separated frameworks on Mac OS X into proper SDL_dependency declarations
icculus@7925
   550
   so they are no longer hardcoded.
icculus@7925
   551
  -Upgraded project dependency system so that when a project is dependent
icculus@7925
   552
   on a static library, it inherits all of the dependencies of that project
icculus@7925
   553
   as well.
icculus@7925
   554
  -Created build scripts for i386 and x86_64 for both Xcode 3 and Xcode 4.
icculus@7925
   555
  -Tested all of the above (including with OpenGL and without OpenGL) on all
icculus@7925
   556
   tests for Xcode 3 and 4, on architecture targets i386 and x86_64.
icculus@7925
   557
  -Removed the old premake4 executable in Xcode.
icculus@7925
   558
icculus@7925
   559
Changes as of 07/30/2013:
icculus@7925
   560
  -Began investigating different architectures for Windows, MacOSX, etc.
icculus@7925
   561
  -Implemented functionality for specifying which platforms a project is
icculus@7925
   562
   supported on, so as to start providing preliminary support for multiple
icculus@7925
   563
   build platforms.
icculus@7925
   564
  -Changed function declaration requirement for dependency functions.
icculus@7925
   565
  -Changed the dependency function invocation to be table-based.
icculus@7925
   566
  -Implemented features to cleanup using dependency functions for projects and
icculus@7925
   567
   allowed possibility for multiple dependency functions on one project.
icculus@7925
   568
  -Moved invocation of dependency functions from premake4.lua to
icculus@7925
   569
   sdl_projects.lua.
icculus@7925
   570
  -Some nested statements have been cleaned up in premake4.lua due to changing
icculus@7925
   571
   the dependency function calling location.
icculus@7925
   572
  -Moved all dependency functions to a unified location for order-independent
icculus@7925
   573
   referencing of them. Ie, this allows SDL2 and testgl2 to both reference the
icculus@7925
   574
   OpenGL checker function.
icculus@7925
   575
  -Ensured all dependencies are invoked exactly one time even if referenced
icculus@7925
   576
   multiple times.
icculus@7925
   577
  -Implemented opengl dependencies for SDL2 so that opengl support should now be
icculus@7925
   578
   reenabled in the SDL project.
icculus@7925
   579
icculus@7925
   580
Changes as of 07/29/2013:
icculus@7925
   581
  -Implemented scripts to automatically build all of the projects in the VS2010
icculus@7925
   582
   and VS2012 solutions.
icculus@7925
   583
  -Implemented scripts to automatically perform binary compatibility testing for
icculus@7925
   584
   premake VS2010 and VS2012 libraries against the manual projects' test
icculus@7925
   585
   executables.
icculus@7925
   586
  -Tested binary compatibility for VS2010 and VS2012 solutions on Windows. The
icculus@7925
   587
   usual lack of standard output is still ocurring. The testgl2 application
icculus@7925
   588
   currently crashes on both, but that's because it's not linking to OpenGL
icculus@7925
   589
   currently. The test shouldn't actually crash, but it reports no OpenGL
icculus@7925
   590
   when it runs correctly. The other visual tests seem to run fine.
icculus@7925
   591
  -Cleaned up this README a bit, adding the rest of the points discussed with
icculus@7925
   592
   Gabriel.
icculus@7925
   593
icculus@7925
   594
Changes as of 07/26/2013:
icculus@7925
   595
  -Corrected a bug in SDL2.lua that didn't correctly define the compile-time
icculus@7925
   596
   defines for Mac OS X.
icculus@7925
   597
  -Added template configuration headers for minimal builds and Mac OS X
icculus@7925
   598
  -Added template config selection based on current platform, defaulting to
icculus@7925
   599
   minimal if on an unknown system
icculus@7925
   600
  -Corrected bug in sdl_gen_config.lua to allow using templates that have no
icculus@7925
   601
   area to paste generated tokens, thereby ignoring the tokens and just
icculus@7925
   602
   copying the template right into the generated header
icculus@7925
   603
  -Upgraded build.all.xcode4.command in the Xcode directory to give some
icculus@7925
   604
   information regarding how many tests were attempted to be built, how
icculus@7925
   605
   many passed, failed, and were skipped.
icculus@7925
   606
  -Added support in the clean option to correctly remove the Xcode 4 workspace
icculus@7925
   607
   file. It almost perfectly cleans Xcode projects now. It actually will only
icculus@7925
   608
   miss folders if the user goes into those folders with Finder, otherwise it
icculus@7925
   609
   cleans up properly right now.
icculus@7925
   610
  -Added support build.all.xcode3.command for Xcode 3 projects, rather than
icculus@7925
   611
   having to manually go into each project and build it individually.
icculus@7925
   612
icculus@7925
   613
Changes as of 07/25/2013:
icculus@7925
   614
  -Moved file-based operations to a separate utility sdl_file.lua file
icculus@7925
   615
  -Began the configuration generation system using sdl_gen_config.lua
icculus@7925
   616
  -Created a config folder for *config.h templates and added the
icculus@7925
   617
   SDL_config_windows.template.h file, omitting everything premake will add
icculus@7925
   618
   itself
icculus@7925
   619
  -Fixed a bug where the base location would have a backslash on windows in the
icculus@7925
   620
   final generated Lua file, where it wasn't supposed to
icculus@7925
   621
  -Implemented clean option for the generated header file
icculus@7925
   622
  -Modified SDL_config.h to include SDL_config_premake.h (generated) if the
icculus@7925
   623
   preprocessor value 'USING_PREMAKE_HEADER_H' is defined, which the meta-build
icculus@7925
   624
   system ensures it is
icculus@7925
   625
  -Merged winmm dependency back into the windows dependency for SDL2.lua,
icculus@7925
   626
   because the windows timer module depends on winmm, as well
icculus@7925
   627
  -Partially tested configuration system via Visual Studio 2008; Mac OS X
icculus@7925
   628
   projects will be broken until that side is upgraded
icculus@7925
   629
icculus@7925
   630
Changes as of 07/24/2013:
icculus@7925
   631
  -Updated mac os x test file to include all the new tests
icculus@7925
   632
  -Added script to automatically batch together all the scheme builds for
icculus@7925
   633
   the tests, so they don't have to be manually built through Xcode
icculus@7925
   634
  -Tested new tests and build environment on Xcode 4 successfully (weren't
icculus@7925
   635
   tested on here yet)
icculus@7925
   636
  -Began investigating implementing iOS Xcode projects using meta-build
icculus@7925
   637
   system
icculus@7925
   638
  -Began investigating implementing gmakefile generation support for
icculus@7925
   639
   GNU/Linux, Cygwin, and MinGW.
icculus@7925
   640
icculus@7925
   641
Changes as of 07/23/2013:
icculus@7925
   642
  -Latest changes tested on Xcode 3 and 4; test suites running as expected
icculus@7925
   643
  -Implemented the entire test suite and tested it in Visual Studio on Windows;
icculus@7925
   644
   incompatible tests will build and run, but they will fail if there are no
icculus@7925
   645
   appropriate devices or settings for them to run correctly; this is correct
icculus@7925
   646
   behavior. Tested most suites on VS2008, VS2010, and VS2012. Only testerror
icculus@7925
   647
   crashed.
icculus@7925
   648
icculus@7925
   649
Changes as of 07/22/2013:
icculus@7925
   650
  -Cleaned up the mixture of forward/back slashes in the generated LUA file. The
icculus@7925
   651
   only backslashes that exist are for copy commands, since they are copied as
icculus@7925
   652
   text into the generated projects. The rest use forward slashes, since premake
icculus@7925
   653
   actions handle per-system translation of directory paths.
icculus@7925
   654
  -Implemented SDL_isos function for projects so that they can have some control
icculus@7925
   655
   over certain functions where arguments or function calls changed with
icculus@7925
   656
   different operating systems (such as SDL_kind for SDL2 project)
icculus@7925
   657
  -Documented the new project functions. The documentation could be formatted a
icculus@7925
   658
   bit better and the arguments could be explicitly formatted.
icculus@7925
   659
  -Cleaned up SDL2.lua
icculus@7925
   660
  -Implemented project-level files and paths directives for projects, so that
icculus@7925
   661
   SDL_dependency isn't needed to specify files and file search paths for
icculus@7925
   662
   projects
icculus@7925
   663
  -Applied the above changes to all the project files and named a few other
icculus@7925
   664
   dependencies such as for SDL_main and testgl2. No projects should have
icculus@7925
   665
   unnamed dependencies at this point.
icculus@7925
   666
  -Tested the changes of the last few days on VS2008, VS2010, and VS2012. All
icculus@7925
   667
   the test suites run as expected.
icculus@7925
   668
icculus@7925
   669
Changes as of 07/19/2013:
icculus@7925
   670
  -Updated generation backend to be more concise and less like it was before;
icculus@7925
   671
   this also fixed the duplicate dependency function calls bug
icculus@7925
   672
  -Implemented config function for constants to set in a generated SDL config
icculus@7925
   673
   header
icculus@7925
   674
  -Preliminarily set the config values for the SDL2 project
icculus@7925
   675
  -Updated generation code so that it won't generate empty projects, which stems
icculus@7925
   676
   from projects in which all of its dependencies are not compatible with the
icculus@7925
   677
   current system
icculus@7925
   678
  -Updated windows automated tests batch file to work more like Xcode's shell
icculus@7925
   679
   command file wherein it uses a labeled batch of commands as a sort of
icculus@7925
   680
   procedure; it's cleaner now and it will work if some projects aren't there
icculus@7925
   681
   (such as if they aren't supported on that platform)
icculus@7925
   682
  -Separated the winmm portion of the SDL2 project from the windows portion, so
icculus@7925
   683
   it has its own dependence now and uses a dependency check function that's
icculus@7925
   684
   dependent on premake's os.findlib
icculus@7925
   685
icculus@7925
   686
Changes as of 07/18/2013:
icculus@7925
   687
  -Converted all projects over to the new, simpler format and tested on VS2008,
icculus@7925
   688
   VS2010, and VS2012
icculus@7925
   689
  -Corrected a mistake in the SDL2main project that always built the main file
icculus@7925
   690
   for windows, even on mac os x
icculus@7925
   691
  -Added some more features to the new project definition system to support
icculus@7925
   692
   project locations, custom defines, copy tables, and project dependencies
icculus@7925
   693
  -Moved new project definition system to a separate lua file
icculus@7925
   694
  -Fixed using 'copy' on windows for post-build commands and 'cp' on all
icculus@7925
   695
   other systems
icculus@7925
   696
  -Tested projects on Xcode 3; everything working correctly
icculus@7925
   697
  -Modified SDL2main project to use the dummy main for macosx
icculus@7925
   698
  -Changed the convenience scripts on macosx to .command files for the ability
icculus@7925
   699
   to conveniently double-click-execute them like an application or windows batch
icculus@7925
   700
   file 
icculus@7925
   701
icculus@7925
   702
Changes as of 07/17/2013:
icculus@7925
   703
  -Tested that the generated Xcode 3 projects correctly work as expected
icculus@7925
   704
  -Implemented a new backend system for defining projects that majorly cleans
icculus@7925
   705
   up the syntax and eases the process of defining projects; currently only
icculus@7925
   706
   tested with VS2010 on Windows.
icculus@7925
   707
icculus@7925
   708
Changes as of 07/09/2013-07/10/2013:
icculus@7925
   709
  -Fixed a bug that premake was causing where the mac project wouldn't execute
icculus@7925
   710
   any of its post-build options because premake was incorrectly generating the
icculus@7925
   711
   project in specific situations; the generated lua file now works around it
icculus@7925
   712
   correctly
icculus@7925
   713
icculus@7925
   714
Changes as of 07/08/2013:
icculus@7925
   715
  -Unified SDL2.lua a bit by pulling out the source commonalities (generic
icculus@7925
   716
   interfaces and dummy implementations) and keeping the platform-specific
icculus@7925
   717
   implementations separate
icculus@7925
   718
  -Converted absolute paths to relative paths where appropriate, so now
icculus@7925
   719
   the generated VS solutions (and possibly Xcode) should be more portable
icculus@7925
   720
  -Modified premake script to support different base locations, so now the
icculus@7925
   721
   Visual Studio project directory structure is built within the VisualC
icculus@7925
   722
   directory, and similarly for Xcode (better organization and separation)
icculus@7925
   723
  -Fixed a minor bug in the cleanup action for VS2008 and VS2012 solutions
icculus@7925
   724
icculus@7925
   725
Changes as of 07/05/2013:
icculus@7925
   726
  -Setup proper dependencies for XCode and successfully built the library
icculus@7925
   727
  -Ran test suites to ensure working Mac OSX binaries (64 bit, on Mac OS X 10.8
icculus@7925
   728
   Mountain Lion)
icculus@7925
   729
  -Redid the entire build environment to run out of a root premake folder,
icculus@7925
   730
   instead of separate premake folders for VisualC and Xcode
icculus@7925
   731
  -Setup convenient scripts for both Xcode and VisualC in the generic
icculus@7925
   732
   premake folder
icculus@7925
   733
  -Consolidated the premake scripts into a singular script for both targets
icculus@7925
   734
icculus@7925
   735
Changes as of 07/02/2013 & 07/03/2013:
icculus@7925
   736
  -Finished implementing base setup for XCode
icculus@7925
   737
  -Configured the premake projects for XCode (using a parallel directory tree
icculus@7925
   738
   for now)
icculus@7925
   739
  -Implemented base XCode project using premake, though it still doesn't link
icculus@7925
   740
   properly
icculus@7925
   741
icculus@7925
   742
Changes as of 06/30/2013 & 07/01/2013:
icculus@7925
   743
  -Implemented release configurations for projects
icculus@7925
   744
  -Began setting up environment for implementing the XCode projects
icculus@7925
   745
icculus@7925
   746
Changes as of 06/29/2013:
icculus@7925
   747
  -Implemented copying intra-solution project dependencies shared libraries to
icculus@7925
   748
   the binary folders of other projects (such as copying SDL2.dll to subsequent
icculus@7925
   749
   directories of applications that depend on it).
icculus@7925
   750
  -Fixed a bug in the testscale and testrendertarget project lua files: they
icculus@7925
   751
   were copying sample.bmp for usage, but they depended on both icon.bmp and
icculus@7925
   752
   sample.bmp.
icculus@7925
   753
  -Added temporary batch script to simplify the process of running through all
icculus@7925
   754
   the currently available tests on windows.
icculus@7925
   755
  -Ensured binary compatibility for using SDL2.dll built with manual solutions
icculus@7925
   756
   with test suite applications built with automatic premake solution. This was
icculus@7925
   757
   tested successfully for VS2008, VS2010, and VS2012.
icculus@7925
   758
  -Binary compatibility has been ensured to not currently work vice versa,
icculus@7925
   759
   that is, using hand-rolled test suite applications with a generated-built
icculus@7925
   760
   SDL2.dll shared library.
icculus@7925
   761
icculus@7925
   762
Changes as of 06/27/2013 & 06/28/2013:
icculus@7925
   763
  -Added premake5-dev to the repository, though it's still called premake4.exe
icculus@7925
   764
   and the main lua file is named similarly because it's still not officially
icculus@7925
   765
   premake5.
icculus@7925
   766
  -Setup generated project to nearly exactly match the flags of the manual
icculus@7925
   767
   project. Binary compatibility has been tested for SDL2.dll built with the
icculus@7925
   768
   manual projects against the applications built with the generated project.
icculus@7925
   769
   All seems to work so far. Only tested on VS2010. Much more testing to
icculus@7925
   770
   happen later.
icculus@7925
   771
icculus@7925
   772
Changes as of 06/24/2013 & 06/25/2013:
icculus@7925
   773
  -Implemented basic meta-meta building system, where premake4.lua now
icculus@7925
   774
   generates a lua file and executes that to generate the project, allowing
icculus@7925
   775
   forward compatibility for premake5
icculus@7925
   776
  -Began working on binary compatibility verification by testing the test
icculus@7925
   777
   executables built by the manual VS solution using the SDL2.dll built
icculus@7925
   778
   from the premake solution. There are some issues, but nothing crashes
icculus@7925
   779
   that didn't crash before.
icculus@7925
   780
icculus@7925
   781
Changes as of 06/21/2013:
icculus@7925
   782
  -Fixed multiple linker problem by adding an exclusion filter for
icculus@7925
   783
   src/thread/generic so that the duplicate objects wouldn't be doubly linked
icculus@7925
   784
  -Above linker fix also fixed the execution of all VS2008 project builds. All
icculus@7925
   785
   the projects run the same in terms of success or failure.
icculus@7925
   786
  -Added rudimentary clean action to premake files
icculus@7925
   787
  -Organized the project and build directory structures for the VS projects
icculus@7925
   788
   similar to that of the manually-built VS projects (though they no longer run
icculus@7925
   789
   out of the box, since SDL2.dll is now in a different directory; soon to be
icculus@7925
   790
   fixed)
icculus@7925
   791
icculus@7925
   792
Changes as of 06/20/2013:
icculus@7925
   793
  -Implemented an optional copy table for projects that allow automatic copying
icculus@7925
   794
   of each file in the copy table from the source directory to the destination
icculus@7925
   795
   directory. These copy strings can actually be relative paths, as they will
icculus@7925
   796
   be made absolute and normalized in the handler code (but not validated!)
icculus@7925
   797
  -Implemented custom, per-project defines (needed for testgl2)
icculus@7925
   798
  -Fixed many warnings from VS2008 project by making sure shared libraries
icculus@7925
   799
   weren't being linked into shared library projects (such as SDLtest).
icculus@7925
   800
  -Tested all builds on VS2008, VS2010, and VS2012. Everything works as expected
icculus@7925
   801
   on the latter two.
icculus@7925
   802
icculus@7925
   803
Changes as of 06/19/2013:
icculus@7925
   804
  -Implemented all of the currently supported projects in the hand-built
icculus@7925
   805
   Visual Studio solution, which successful building
icculus@7925
   806
  -Updated the dependency system to handle cross-linking of projects, such as
icculus@7925
   807
   the testing suite applications being dependent on SDL2 and SDL2main (and
icculus@7925
   808
   some even on SDL2test, which further emphasizes the capabilities)
icculus@7925
   809
  -Organized the folder structure to be less cluttered than before: only
icculus@7925
   810
   premake4.lua needs to exist at the root directory
icculus@7925
   811
  -Hardcoded the build path for all the projects to ./bin/Debug
icculus@7925
   812
  -Implemented support for adding input library links from dependency
icculus@7925
   813
   resolutions (for opengl in testgl2 in this case)
icculus@7925
   814
icculus@7925
   815
Changes as of 06/18/2013:
icculus@7925
   816
  -Implemented a dependency for handling complex building scenarios, though
icculus@7925
   817
   it's only very simple right now
icculus@7925
   818
  -Implemented utility depends.lua for handling dependency searching on windows
icculus@7925
   819
  -Ported over hardcoded solution for SDL2 library to using dependency tree and
icculus@7925
   820
   a separate lua file
icculus@7925
   821
  -Implemented SDL2main static library, which involved more flexibility in the
icculus@7925
   822
   existing system
icculus@7925
   823
icculus@7925
   824
Initial:
icculus@7925
   825
  -Built premake 4 binary and pasted it into secluded directory in SDL's build
icculus@7925
   826
   folder for Visual Studio
icculus@7925
   827
  -Created the initial premake script which recreated the SDL2.dll shared binary
icculus@7925
   828
   library, as based on the manually-created SDL project