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.)
This is needed because the CAIRO_STATUS_INVALID_SIZE constant was added in
that version.
1.10 is old enough that this change shouldn't cause problems for anyone.
For example, Debian Wheezy (2013) has Cairo 1.12.2.
Apparently due to a CMake bug, some (but not all) CMake versions attempt to
compile the test with default flags, which means C++98 mode with GCC < 6.
As a result, compiling the test fails, and the whole game fails to build.
@gfgtdf pointed out to me that CMake reports the compile and run status
separately, and therefore it's possible to detect the situation where the
test fails to compile. Thus, I decided to allow building in that situation.
By default, TDM-GCC-64 was using -march=x86-64, which for whatever reason caused issues when compiling with -O3. This makes scons force it to use -march=pentiumpro, the same as TDM-GCC-32. This also changes the release build to use -O3 instead of -O2, which matches the release build default used by cmake and code::blocks.
Added -march=pentiumpro on Windows for -O3 build
m5
When using:
scons strict=true ctool=clang
A number of issues appear concerning a known bug in Boost::Bind; applying the patch which should appear in Boost 1.63. Comments on the Boost ticket indicate this may also be an issue for earlier versions of GCC.
For the ticket, see
https://svn.boost.org/trac/boost/ticket/12397
and the patch is at
3c56630b54
NOTE: This does NOT create a dependency upon the patched header. If the header is changed, you must do a full re-build of all sources by hand.
The code conditionals using SDL_gpu in the source tree are unmaintained
and likely broken. From past discussions with vultraz and Aginor, the
plan ahead is to completely drop SDL_gpu and its support code once
there's no risk of conflict with certain WIP branches.
Pretty much all of the code for supporting OpenPandora is gone from the
source tree, and the last two mentions have just been slated for
removal, so it's effectively dead.
* Switched from C++98 to C++11 (as announced on the dev-ml)
* Added support for boost-thread
The current implementation is hacky and not clean. It at least builds on
my gentoo ~amd64 system.
This drops the required version to 2.0.2 on Linux and *BSD, as there are no known bugs that require us to have a later version on these platforms. Windows and Os X remains as 2.0.4.
Cross-compiling to Windows with MXE [1] requires providing custom
CMAKE_MODULE_PATH variable for CMake:
$ cmake -DCMAKE_MODULE_PATH=/file/provided/by/mxe.cmake
As Wesnoth's CMakeLists.txt resets CMAKE_MODULE_PATH, the effect of
CMAKE_MODULE_PATH provided by MXE is disabled and the build fails
with linking errors [2].
This commit changes CMakeLists.txt to respect the value of
user provided CMAKE_MODULE_PATH, so both MXE and Wesnoth
customizations of CMake variables are applied.
[1] http://mxe.cc/
[2] https://gist.github.com/starius/abfb9033d92f21ef521d
This project was never completed, the author left, and what we had was
too buggy to use in production (including such gems as a server DoS
bug).
Only removed from the CMake recipe since it was already removed from the
SCons script in commit 634b0039f80e3ba3ecf9729516071d533c25d3d5.
This also makes it so libintl isn't mandatory when this option isn't
enabled anymore.
Additionally, the BFS and Boost.Locale checks are now properly shared
between ENABLE_SERVER and ENABLE_GAME configurations without duplicating
code in the CMake recipe.
* FriBiDi can be found using pkgconfig, switch to using it instead of
using our homegrown FindFriBiDi.cmake file for finding it in cmake
* had to set some extra "do not consider these warnings" for font.cpp,
is this really no issue for scons for strict compilation with -Wall?
If no build type is selected it can happen that the game builds without
any optimization. Now the user has to explicitly specify the 'none' type
if they want it.