This adds running the WML schema validation in travis. It also updates the schema itself and fixes a few WML errors so that core and all campaigns under all difficulties pass the schema validation.
This makes it simpler in the future to have branches that have dependencies that are different from master, rather than having a single image with all necessary dependencies installed, which may at some point end up not being possible to do.
(cherry-picked from commit 1bb5fdf283)
This is the current default, and even though the job uses scons this also sets the osx version to use. Therefore it's better to set it explicitly in case the default changes at some point.
(cherry-picked from commit 376f2e9dbe)
Moving it out of the same directory as the git repository means that the object files won't be copied into the temporary docker container when it's being created.
Travis runs all commands in .travis.yml in its own wrapper script, so by sourcing steps/script.sh and then using exit explicitly, it resulted in the entire travis wrapper immediately terminating. With steps/script.sh no longer sourced, using exit works as expected again, and only exits steps/script.sh rather than quitting everything. Another solution, should sourcing steps/script.sh become necessary, is to use return instead of exit.
With that addressed, it's then possible to re-add printing the ccache statistics after the build ends while also making sure that the script exits with the return code of the xcodebuild/cmake+make command rather than the return code of the ccache statistics commands.
This replaces the custom python script which manipulated various files' mtime with ccache for allowing cmake builds to not need full recompiles every travis run.
This reverts commit 44f567c6a3.
Enabling LTO by default causes too many problems, inclusing build
failures for @doofus-01 and link failures with Clang for me.
Players and packagers can still amanually enable LTO in case it
works fine for them.
Scons makes this simple - all the object files are placed in build/release/, and the build/sconsign.dblite file keeps track of the md5 sum of each file built. This then means all that's necessary to prevent scons from doing a full rebuild each time is to cache the build/ directory.
Keep in mind however, that this does not make the actual compiling faster, it just means that most of the time fewer things will need to be compiled. Any change that would trigger a rebuild of most or all of the source files will still take just as long as before.
LTO for Windows is disabled for now, as TDM-GCC does not work well with it.
LTO for Travis is also disabled, due to the extra time linking with LTO takes.
The tests haven't been run for a couple of months.
The test executable crashes on startup with the error message
Xlib: extension "RANDR" missing on display ":99.0".
After ten attempts, the test wrapper just gives up and returns success.
So, let's not even pretend that we have C++ unit tests running in Travis.
We just don't. Explicitly disabling the tests makes it more clear.
This also removes the included SHA1 and MD5 implementations
in favour of those from OpenSSL.
Thanks to @jyrkive for helping to get the CMake build working and
ensuring the game still compiles with OpenSSL 1.1.0.
(The SHA_xxx() aliases were removed in OpenSSL 1.1.0.)