Commit Graph
90 Commits
Author SHA1 Message Date
quietly-turningandCrystal Squirrel 6bd6963406 Revert "Merge pull request #1888 from mwkroening/notes_loader-invalid_argument"
This reverts commit 56caf6da4b.
2021-08-14 21:25:27 +01:00
TatshandGitHub c7c54bb013 Fix linking against system GLEW (#1935) 2021-02-03 09:25:42 -08:00
Crystal SquirrelandGitHub 8ae4beb2d4 Merge pull request #1971 from ChronoAndross/5_1-new
Update Vorbis from 1.3.2 to 1.3.6. Updating to this version addresses…
2021-01-28 08:52:44 +00:00
quietly-turning 72cd6edf5c give Lua access to tomcrypt's SHA256
This adds Lua hooks to CryptManager for libtomcrypt's SHA256 hash
function.  It follows along with the C++ patterns Glenn wrote a decade
and a half ago for CryptMananger's MD5 and SHA1 hooks.

StepMania's CMakeProject-tomcrypt file has been updated to build with
sha256 symbols.  Invoking cmake to build with system tomcrypt works fine
as-is.

Note that these functions return binary formatted strings, but themers
can convert to hexadecimal format using the global Lua function
BinaryToHex().
2020-09-09 15:37:01 -04:00
Tracy WardandGitHub 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
Martin KröningandGitHub bfc167fe6d Replace libpng submodule with source (#2023)
* Replace libpng submodule with source

Taken from 505e70834d35383537b6491e7ae8641f1a4bed1876dbfe361201fc80868d88ca  libpng-1.6.37.tar.xz

* Remove submodule-related config from CI
2020-06-23 15:41:52 -07:00
Martin Kröning 7ecc7b262b Upgrade libpng to tag v1.6.37
gtk_image_new_from_file results in a segmentation fault with the new version.
2020-06-20 12:37:56 +02:00
Martin KröningandMartin Kröning 37e60ffc97 Adjust to vanilla libpng 2020-06-20 12:35:04 +02:00
Martin KröningandMartin Kröning d4caf2c8f8 Replace in-tree libpng 1.5.10 src with submodule at tag v1.5.30 2020-06-20 12:35:04 +02:00
Martin Kröning 092cffa182 Find system jsoncpp via pkg-config, add system include 2020-06-18 23:27:12 +02:00
Martin Kröning 76f805fe9c jsoncpp: Reset existing files to svn-release-0.5.0 2020-06-18 20:35:17 +02:00
aeubanksandGitHub bbafb49b3a Don't force libc++ with clang (#1984)
Clang works with libstdc++.
2020-04-30 13:24:58 -07:00
ChronoAndross cdf4349bbc Update Vorbis from 1.3.2 to 1.3.6. Updating to this version addresses issue #1890 which discusses vulnerabilities with the current Vorbis version. 2020-03-14 23:33:00 -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
Prcuvu 333abe5934 Upgrade to libtomcrypt 1.18.2 2019-10-15 17:43:01 +08:00
Prcuvu d63957ed0b Fix CMake syntax 2019-10-01 16:48:00 +08:00
Prcuvu 3cd1bdcc8f Add WinDDK x64 libraries 2019-10-01 14:45:55 +08:00
Prcuvu b9a4d71c23 Add FFmpeg 2.1.3 Windows x64 libraries and auto copy binaries on configuration 2019-10-01 14:37:46 +08:00
Prcuvu b55760811b Make libmad work on Windows x64 2019-10-01 14:04:28 +08:00
teejusb 7e3789b131 Integrate C++11 branch into 5_1-new 2019-06-22 12:35:38 -07:00
TatshandColby Klein b8a79cd0f6 Allow linking against system libraries for almost everything (#1790) 2019-02-16 08:32:52 -08:00
TatshandColby Klein d395028bd4 Mac fixes (#1776)
* macOS build fixes (#1773)

* macOS build fixes

Add missing headers
Threads_Pthreads: do not call pthread_setname_np() on macOS as it does not do
the same as on Linux
DebugStr() -> os_log()

* Make the project build with Makefiles on macOS

* Fix getting modifier key state on Mac (#1774)

We really need to clean up all Carbon calls here (many will go away when the
project switches to SDL2 for all platforms)

* Fix Xcode build; bump minimum version of macOS (#1775)

* Build fixes for the "Unix Makefiles" generator
Pass CMAKE_BUILD_TYPE to the external projects
* Fix indent
2018-12-31 19:28:59 -08:00
Alexander HaiblandGitHub 01a3571df8 Add files via upload 2018-01-20 19:29:27 +01:00
Alexander HaiblandGitHub 25f88b8131 Delete mmmagic.h 2018-01-20 19:29:16 +01:00
Alexander HaiblandGitHub 9e10633f48 Add files via upload 2018-01-20 19:28:04 +01:00
Alexander HaiblandGitHub 7d033faba9 Add files via upload 2018-01-20 19:27:35 +01:00
Drew BarbarelloandColby Klein 557be7cf1b 5 1 new backport x11 fs rework (#1485)
* Use XRandR 1.2 to set fullscreen resolution for single output

Squash of roothorick's PR #497
(also includes Kyzentun's CMake changes from PR #716)

* Cherry-pick json c++1x stuff (b9e3d7174e)

* Cherry-pick c++11 support from 5bba5c0038 and 9f8b045309

* rework Linux (X11) fullscreen, improve display-related Graphics Options

Implement option to select between monitors for exclusive fullscreen mode
on X11 (using XRandR 1.2), or use a fullscreen borderless window.

Reimplement resolution/refresh rate/display mode-related option rows
using Lua, update choices dynamically so only known-good groupings of
resolution/refresh rate/aspect ratio can be selected.

Minimally update Windows/MacOS LowLevelWindow implementations to support
changes made for Linux side. Fullscreen Borderless Window/multi monitor
support from X11 not implemented for those in this commit.

* allow forcibly disabling xinerama use on Linux

When libXinerama is available, SM tries to use it to find the proper
monitor indexes to use to set _NET_WM_FULLSCREEN_MONITORS (on borderless
fullscreen). xfwm4 seems to assume that monitors are numbered in increasing
order from left to right (rather than using the Xinerama-assigned numbers),
so _NET_WM_FULLSCREEN_MONITORS misbehaves on Xfce.

This commit bypasses use of libXinerama, and instead forces SM to induce fullscreen
on the desired monitor in the backup, hacky way: remove all window hints, move window
to desired monitor, then add _NET_WM_STATE_FULLSCREEN hint. This works on
mutter and Xfce.

* Remove multiple warnings on redundant define.

This used to be hard-coded due to pthread related items, but now it's dynamically determined.

* fix _fallback menu behavior for unrecognized aspect ratios

* Fix error recreating existing FS texture

* Bump deployment target to 10.7 to use libc++ on XCode 8

* Add explicit casts to please clang

* Update changelog
2017-06-18 08:55:16 -07:00
Kyzentun Keeslala d3ca850ea6 Forgot to add mmmagic.h 2016-02-16 20:11:58 -07:00
Kyzentun Keeslala 4b0e6f3e0a Moved minimaid linking command to proper place in src/CMakeLists.txt. Removed wrapper function pointers from LightsDriver_LinuxMinimaid.h because it doesn't load a dynamic lib. Link udev when linking libmmmagic. 2016-02-16 20:06:46 -07:00
Kyzentun Keeslala 385c1dd525 Forgot to add mmmagic cmake project file. 2016-02-14 22:58:57 -07:00
Kyzentun Keeslala 10c304a80d Add libmmmagic lights support to linux. Mostly copy paste of windows driver. 2016-02-13 17:53:39 -07: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 de5f3721ef Cleaning up deprecated binaries and VS projects. 2015-10-06 19:23:48 +08:00
Jason Felds fdac0835b8 Use ffmpeg 2.1.3 on Windows.
Once again, thanks to Zeranoe's builds.
2015-10-04 14:39:07 -04:00
Prcuvu 457adef083 Remove lua.c from CMake project. 2015-10-02 19:10:03 +08:00
Jason Felds 0382929bd4 Build vorbis & vorbisfile in Windows now. 2015-09-20 13:13:47 -04:00
Jason Felds baebe951b8 Enable static compiling of ogg.
Using "newogg" as the directory since I wish to reserve libogg for eventual `git submodule`-ing.
2015-09-20 09:36:38 -04:00
Prcuvu 4ca2ea289f Remove old jpeg.lib. 2015-09-19 15:40:13 +08:00
Jason Felds 95d73e9df1 ...these other files were command line programs.
They are not needed here.
2015-09-13 13:30:41 -04:00
Jason Felds 66b371a6bb Corrections to the jpeg compilation fix.
* Only compile one memory manager.
* Remove the no longer used jpeg.dll file.
2015-09-13 13:27:06 -04:00
Jason Felds 68b3620bac Allow proper compiling of libjpeg for windows.
This expands on #777 to work with jconfig.h properly.

To facilitate these operations, a new macro was added for doing compile tests.

Note that this commit does NOT bring in the other files associated with this version of libjpeg.

At some point, it would be desirable to automatically get the files as part of the cmake configuration step, similar to ffmpeg.
2015-09-13 13:10:58 -04:00
Jason Felds 381870f9ea Allow libmad to be compiled in Windows.
This removes the need for an externally built library, thus officially removing the deprecated Xbox projects.

Other minimal changes were made to ensure consistency. Comments will be made in the PR.

Thanks to @Prcuvu for the initial push.
2015-09-07 09:50:01 -04:00
Jason Felds 42ad044817 Linux broke somehow. Restore it with system jpeg. 2015-06-19 20:53:13 -04:00
Jason Felds 028229f881 Allow for assembly free[r] tomcrypt builds. 2015-04-16 18:31:29 -04:00
Jason Felds 33f183938e Allow for system pcre to take precedence. 2015-03-22 15:46:53 -04: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
Jason Felds 9738ba9b20 Move JSON to separate project (2011) 2014-03-21 21:22:25 -04:00
Jason Felds 0b1de9ba87 Correct my mistake from 83df0ad3d6.
...3+ years too late!

This should compile in all systems due to NotesLoaderJson inclusion.
2014-03-21 21:11:19 -04:00
Jason Felds 9912c51e88 Move LUA to separate project (2011) 2014-03-16 14:03:02 -04:00
Jason Felds c578ac69d4 Move GLEW to separate project (2011)
Note: glext.h was removed due to it not being used.
2014-03-16 13:09:07 -04:00