* 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.
The only thing that the ENABLE_PANDORA flag does now is to allow the
resolution of 800x480 and using a special theme automatically.
Everything else is 100% "mainline code". This means if someone wants to
package for pandora several system libraries will have to be
handcompiled and shipped in the pnd including:
* >=boost 1.48 (at least one component (locale) requires this)
* >=SDL_mixer 1.2.12
* VorbisFile
See commit c62d53239ce7397615eb6cdb0a1b096e206ad297 for the SCons
counterpart.
This does *not* remove the ENABLE_PANDORA config-time requirement
exceptions, which we need to decide on before releasing 1.13.0.
Otherwise attempting to compile with any other compiler targeting Win32
results in build errors with the Lua code, unless (presumably) you are
targeting Cygwin or another full POSIX implementation on Win32.
In CMake the notifications are enabled by default, switching them to
disabled didn't clear the LIBDBUS_FOUND flag properly causing the
the compilation to fail due to the #error in
src/desktop/dbus_notification.cpp.
The option should control the compilation, in wesnoth-core, of
filesystem_boost.cpp, and gettext_boost.cpp, vs. the old versions.
Using the new code is now the default option, you must explicitly
deactivate with both cmake and scons to get the old stuff back.
This commit adds a "minimal interface to lib png to support writing
png files from SDL surfaces", to the codebase. It adds a save_image
function to namespace image, and this checks compiler flags to see
if lib png is available. The function will save as a png if png
support is included and save file name doesn't have bmp extension,
and otherwise it will save as a BMP as usual.
We already had lib png as a dependency to build the tools, just not
the main game. This commit changes cmake and scons but makes the
dependency only optional, changing nothing if lib png is not
available.
See here: https://github.com/driedfruit/SDL_SavePNG
SDL 1.2's own filesystem functions have very limited unicode support,
so provide an SDL_RWops struct to let them use ours.
This also bumps the minimum required SDL_mixer version to 1.2.12
Conflicts:
SConstruct
src/filesystem.hpp
Clang 3.4 compiles cleanly with this warning enabled, but Clang 3.2
fails. (Clang 3.3 hasn't been tested.)
This reverts 5fb8dc8a3356b284b8890481df62cfb087a2c300
Clang 3.4 is unhappy that Doxygen comment with @deprecated is not
accompanied with a deprecated attribute. Since we don't do that, disable
the warning.
Extension of commit 329e7cea968a by fendrin. Now when a build parameter
is defined, the cmake recipe will no longer link in libvorbisfile (just
linking it in makes the app crash when ogg-vorbis music is played).