Commit Graph

25 Commits

Author SHA1 Message Date
Misa 3f4df82583 Remove TinyXML-1
This removes the TinyXML source files, removes it from CMakeLists.txt,
removes all the includes, and removes the functions
FILESYSTEM_saveTiXmlDocument() and FILESYSTEM_loadTiXmlDocument() (use
FILESYSTEM_saveTiXml2Document() and FILESYSTEM_loadTiXml2Document()
instead).

Additionally I've cleaned up the tinyxml2.h include in FileSystemUtils.h
so that it doesn't actually include tinyxml2.h unnecessarily, meaning a
change to TinyXML2 shouldn't rebuild all files that include
FileSystemUtils.h.
2020-06-12 15:08:29 -04:00
Misa b67ac8a43b Add TinyXML2
This adds the TinyXML2 files, as well as updates them in CMakeLists.txt
so it will be compiled in, too. Temporarily, the old TinyXML is kept for
now.
2020-06-12 15:08:29 -04:00
leo60228 9b91047bba Find SDL_mixer.h instead of assuming it's in the same location as SDL.h 2020-06-07 22:40:03 -04:00
leo60228 098fb77611 Set C++ standard to C++98 2020-06-07 22:40:03 -04:00
Misa d22d08af87 Add C++98/C++03 standards declaration to CMakeFiles.txt
This enforces the C++03 standard for people making pull requests who may
not realize their fancy features are too new and shouldn't be used
(cough, cough, @leo60228).

I did some internet searching and this is what I got from this page:
https://crascit.com/2015/03/28/enabling-cxx11-in-cmake/
2020-06-07 22:39:44 -04:00
Misa 2ef6a056aa Allow for conditional building of Steam and GOG APIs
I think it's a bit silly to always include the Steam and GOG APIs
whenever we build VVVVVV, since the only time they'll ever be used is in
a live build and not a dev build.

So now Steam and GOG are disabled by default. If you want them, you'll
need to add -DSTEAM=ON or -DGOG=ON respectively at CMake time. They're
also both automatically enabled for release builds.
2020-06-01 14:21:06 -04:00
Ethan Lee ac7ee0e959 Check for GCC7 for implicit-fallthrough support 2020-04-23 15:32:34 -04:00
Misa ae6c4223e2 Don't add -Werror=implicit-fallthrough for MSVC
MSVC doesn't have a neat equivalent, but most development happens on
Linux anyway with Clang/GCC, so it's fine to leave this error out for
MSVC.
2020-04-17 15:41:48 -04:00
Misa 57f027e478 Add -Werror=implicit-fallthrough to CMakeLists.txt
This turns the implicit-fallthrough warning into a full compile-time
error.

Implicit fallthrough is when you forget a break statement in a
case-switch, thus letting one case fall through into the next case and
causing debugging headaches.

This is different from the good type of fallthrough that you use to have
one case with multiple different names, like so:

    case 0:
    case 1:
    case 2:

In that case, it's obvious that you want to have fallthrough there.
2020-04-17 15:41:48 -04:00
Misa 37a3670dde Rename titlerender.cpp to Render.cpp
This also renames titlerender.h to Render.h, and updates all references
to titlerender.cpp accordingly.
2020-04-04 02:05:41 -04:00
Matt Penny 1b00d12600 Add option to allow custom levels when the editor is disabled 2020-02-09 23:31:44 -05:00
Matt Penny 7d35c5ce4e Add option to compile without the level editor 2020-02-09 23:31:44 -05:00
leo60228 6a17625727
Add support for Unicode rendering (#47)
This uses utfcpp combined with a custom font, in the form of a PNG and text file. By default, the game acts exactly as it did before; custom fonts can be provided by third parties.
2020-01-31 13:25:37 -05:00
Ethan Lee 6a0ee21082 Untested Haiku port? 2020-01-13 23:31:14 -05:00
Ethan Lee 9758290cf3 Add support for multiple Network backends, stub in GOGNetwork 2020-01-13 11:15:22 -05:00
Ethan Lee 894675c512 Create third_party folder, note it in the license text 2020-01-12 12:54:34 -05:00
Wouter 833b2fbf1d Fix Werror always being enabled 2020-01-11 19:39:40 -05:00
Ethan Lee a977f49725 Use RPATH for lib folder, use PHYSFS_getBaseDir on all platforms.
The next official VVVVVV build removes 32-bit Linux (like all my other games),
and I need to get rid of the shell script on macOS at some point, so this
basically brings it up to what my other games are doing. Plus, this probably
fixes a bug where someone tries to run their executable away from the root...
2020-01-11 11:23:49 -05:00
Marvin Scholz 1312c10d11 Do not hardcode default macOS SDK path
Doing this is not necessary as CMake already looks up the default one
correctly and in fact breaks whenever you have multiple Xcode versions
installed so Xcode is not called Xcode.app.
(And it does not respect the default Xcode set using xcode-select)

The behavior now is to respect CMAKE_OSX_SYSROOT if set by the
user on the command line. If it's not set, try to use the hardcoded
path to the 10.9 SDK if it's present. If not, warn about the fact
that a different SDK is used.
2020-01-11 09:02:27 -05:00
Rémi Verschelde d4ee5dec1a CMake: Add ENABLE_WARNINGS and ENABLE_WERROR build options
ENABLE_WARNINGS is enabled by default, with `-Wall` on GCC/Clang and
`/W4` on MSVC.

ENABLE_WERROR is disabled by default, treats warnings as errors.
2020-01-11 08:53:32 -05:00
Charlie Bruce d6392ccbe3 Move PROJECT line after CMAKE_OSX_DEPLOYMENT_TARGET line
This is suggested by the documentation: https://cmake.org/cmake/help/latest/variable/CMAKE_OSX_DEPLOYMENT_TARGET.html
2020-01-11 05:18:29 +00:00
Charlie Bruce 1a6ce2617a On macOS, use default SDK if version 10.9 is not installed. 2020-01-11 05:18:29 +00:00
Marvin Scholz eb7920ec47 Add workaround for missing macOS 10.9 SDK 2020-01-10 19:53:11 -05:00
Marvin Scholz 51b2420181 Add partial-availability error on macOS
When building on macOS targeting an older version than the version of
the SDK currently used, this prevents accidentally using APIs that are
too new (introduced in macOS versions newer than the deployment target).
2020-01-10 19:53:11 -05:00
Ethan Lee f7c0321b71 Hello WWWWWWorld! 2020-01-08 10:37:50 -05:00