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 |