7 Commits

Author SHA1 Message Date
Martin Natano a8b9c1da09 Replace some SM cmake macros with builtin functions 2022-03-31 12:06:18 -07:00
Tracy Ward e8725daddd Fix link error on MSVC with lua (#2055)
Lua wasn't actually being built as C++, but SM was being built
as if it was, which caused symbol mismatches.
2020-09-09 13:30:13 -04:00
Prcuvu 123b01930e Force Lua to be compiled as C++ code when using MSVC
The setjmp/longjmp error handling mechanism may fail with Microsoft C++ since
they utilize the same stack-unwinding mechanism with C++ exception handling.
Lua calling longjmp after luaD_rawrunprotected returns causes unpredictable
behaviour. On Windows x64 build, this causes lua_error to crash the whole
StepMania program.

Lua provides the same macros to utilize C++ throw/catch, which effectively
solve the problem. Just specify Lua library as C++ code to enable them.

Reference: https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/longjmp
2019-12-22 18:38:07 +08:00
Tatsh b8a79cd0f6 Allow linking against system libraries for almost everything (#1790) 2019-02-16 08:32:52 -08:00
Naftuli Tzvi Kay aa0e8690b7 Compile dependencies statically into the binary.
On Linux when building this under RPM, RPM insisted on linking in
standard system libraries like libpng, libjpeg-turbo, libGLEW,
Lua, etc. This patch causes all dependencies to be statically
compiled into the binary, which is ideal as the alternative is
segfaulting because of incompatible library changes.

StepMania also uses a modified Lua library which exports functions
that don't exist in any standard Lua library, so there's no easy
way around this.
2016-02-12 12:07:38 -08:00
Prcuvu 457adef083 Remove lua.c from CMake project. 2015-10-02 19:10:03 +08:00
Jason Felds dc94728628 Introduce cmake (min 2.8.12) to StepMania.
tl-dr: view the Build directory to see.

This is intended to replace the project files that we presently maintain
so that only a single set is needed instead of multiples.

The following setups were used for testing:

* Windows 8 and Visual Studio 2013 Desktop Express
* Windows 7 and Visual Studio 2012
* Mac OS X Mavericks and Xcode
* Ubuntu and makefiles
* Fedora 21 and makefiles

All three operating systems can generate projects, compile, link, and
run. Windows and Mac OS X users will find their compiled binary in the
same location as before, but Linux users will be surprised: it goes
straight into the root directory, along with a symlinked GtkModules.so
as appropriate. There is no more need for a manual symlinking step.

Known issues:

* At this time, MinGW likely does not work. Extra time will be needed.
* The WITH_JPEG option may go away, and we'll just always require it.
* Some linux libraries can use the system equivalents, but that is not up yet.

For more information, check out the Build directory.
2015-03-21 20:15:15 -04:00