Commit Graph
122 Commits
Author SHA1 Message Date
Martin Natano 7b9a799cdb Statically link MSVC runtime 2022-06-03 19:47:45 +02:00
Martin Natano 2fc8705f45 Force dead code elimination for libtommath 2022-05-31 18:21:35 +02:00
Martin Natano 327278436d Remove support for building with system libraries 2022-05-31 18:21:35 +02:00
Martin Natano f83dd1989d Move libtomcrypt to submodule 2022-05-30 23:57:33 +02:00
Martin Natano 967ff91cc6 Upgrade libtommath unknown version from 2010 -> 1.2.0 and move to submodule 2022-05-30 23:57:33 +02:00
Martin Natano 9723a67ad7 Upgrade pcre 4.5 -> 8.45 2022-05-30 23:57:33 +02:00
Martin Natano d112fdd1d2 Rename libmad directory 2022-05-30 23:57:33 +02:00
Martin Natano 06154a0094 Upgrade libjpeg 8c -> 9e 2022-05-30 23:57:33 +02:00
Martin Natano 2934af7784 Upgrade glew 1.5.8 -> 2.2.0 2022-05-30 23:57:33 +02:00
Martin Natano 2bb9124c72 Clean up build system 2022-05-30 23:57:33 +02:00
Martin Natano 7d29ee308d Upgrade vorbis 1.3.6 -> 1.3.7 and move to submodule 2022-05-30 23:57:33 +02:00
Martin Natano 1a44af0cf4 Upgrade ogg 1.3.2 -> 1.3.5 and move to submodule 2022-05-30 23:57:33 +02:00
Martin Natano 1764dbcea8 Move libpng to submodule 2022-05-30 23:57:33 +02:00
Martin Natano b6620d50ed Move ffmpeg to submodule 2022-05-30 23:57:33 +02:00
Martin Natano 3d05e523c8 Upgrade zlib 1.2.11 -> 1.2.12 and move to submodule 2022-05-30 23:57:33 +02:00
Martin Natano 7f06ca703d Upgrade IXWebSocket 11.3.2 -> 11.4.3 and move to submodule 2022-05-30 23:57:33 +02:00
Martin Natano 9cf66ae643 Update ffmpeg 2.1.3 -> 5.0.1
Old ffmpeg has a lot of vulnerabilities that have been fixed in newer
versions, see https://www.cvedetails.com/vulnerability-list/vendor_id-3611/Ffmpeg.html.
2022-04-30 23:22:52 +02:00
Martin Natanoandteejusb 3ca3bb0773 Fix macOS build 2022-04-11 14:50:00 -07:00
Martin Natanoandteejusb 5019625aaf Remove unused extern cmake project 2022-04-11 14:50:00 -07:00
Martin Natanoandteejusb a8b9c1da09 Replace some SM cmake macros with builtin functions 2022-03-31 12:06:18 -07:00
Martin Natanoandteejusb 67d1c78450 Implement FILEMAN:Unzip(string zipPath, string targetPath, int strip)
Unzip zip file at `zipPath` to `targetPath`.
`strip` is optional and defaults to `0`. If set to a number larger than
`0`, that many components are removed from the paths of the extracted
files. e.g. `a/b/c` is replaced with `b/c` when stripping one component
or just `c` when stripping two.
Returns whether all files were extracted successfully.
2022-03-13 11:46:28 -07:00
Martin Natanoandteejusb ca86f80743 Add support for onProgress and downloadFile to NETWORK:HttpRequest() 2022-03-13 11:31:49 -07:00
Martin Natanoandteejusb 394bc93915 Add support for streaming transfers
This change adds onChunkCallback to the request. If defined it will be
called repeatedly with the incoming data. This allows to process data on
the go or write it to disk instead of accumulating the data in memory.

Submitted upstream:
https://github.com/machinezone/IXWebSocket/pull/353
2022-03-12 14:18:48 -08:00
Martin Natano e1b5664f21 Update jsoncpp from version 0.5.0 to 1.9.5
Aside from including a ton of bug fixes, this should fix an issue in the
CI pipeline when building with system libraries that was caused by a
minor incompatibility between 0.5.0 and less ancient versions.

Also, switch to the amalgamated source, because it makes it easier to
keep it up to date.
https://github.com/open-source-parsers/jsoncpp/wiki/Amalgamated-(Possibly-outdated)
2022-02-19 14:10:55 +01:00
teejusbandGitHub 2005713a32 Merge pull request #14 from natano/remove-crypto
Remove unused crypto & move mbedtls to "External Libraries"
2022-01-23 08:38:41 -08:00
Martin Natano b46ba8f66c Move mbedtls to "External Libraries" in cmake 2022-01-23 15:42:25 +01:00
Martin Natano c4851955e8 Remove unused extern/crypto 2022-01-23 15:31:27 +01:00
Martin Natano f49cb9eff5 Update lua from 5.1.1 to 5.1.5
This keeps all the SM patches intact, but applies the 5.1.5 fixes on
top. All newlines normalized to make diffing with upstream easier.

https://www.lua.org/bugs.html#5.1.2
https://www.lua.org/bugs.html#5.1.3
https://www.lua.org/bugs.html#5.1.4
https://www.lua.org/bugs.html#5.1.5
2022-01-23 12:19:16 +01:00
Martin Natano 69ca42e18c Update zlib from version 1.2.5 to 1.2.11 2022-01-22 20:17:48 +01:00
Martin Natano 6de676984d Add mbedtls and use it on windows 2022-01-18 20:50:15 +01:00
Martin Natano 134fa9a3d9 IXWebSocket: Allow to cancel asynchronous HTTP requests
Usage:

    auto args = this->httpClient.createRequest(url, method);
    httpClient.performRequest(args, ...);
    [...]
    // Oops, we don't actually want to complete the request!
    args->cancel = true;

Submitted upstream:
https://github.com/machinezone/IXWebSocket/pull/332
2022-01-15 22:56:22 +01:00
Martin Natano dc49af3c59 Implement NetworkManager
For now there are two methods:

- `NETWORK:IsUrlAllowed()`: Check whether access to a certain URL is allowed.
- `NETWORK:HttpRequest()`: Perform an HTTP request.

By default access to the network is disabled for all target hosts. It
can be enabled by setting `HttpEnable=1` in the preferences. Individual
hosts have to be added to `HttpAllowHosts` as a comma separated list to
allow access.

See included docs for more details on usage.
2022-01-15 22:56:08 +01:00
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