326 Commits

Author SHA1 Message Date
laikh
c5a1ac03e8 Fix MINGW (with MSYS2) build in Windows 2020-01-31 09:44:09 -06:00
loonycyborg
1d80308325 Revert "Remove check for boost.thread from buildsystems since it's not used anymore"
This reverts commit 4c7497722700f40fb9aa807dcbc4b6dfe75457bf.
Explicit linking against boost_thread is required when using boost as
static libraries.
2019-10-25 19:05:28 +03:00
loonycyborg
4c74977227 Remove check for boost.thread from buildsystems since it's not used anymore 2019-09-28 14:21:04 +03:00
loonycyborg
c7271646b7 Remove config check for gobject
It's not supposed to be required and was mandatory only for particular
pango version(s) due to bug
2019-09-24 12:07:48 +03:00
josteph
d76a7ba5d0 Disable -Wunused-lambda-capture on clang.
In a nutshell, capturing a local "const constexpr int foo;" variable
with [foo](){} warns on clang that the program would be valid even if
the square brackets had been left empty, but making them so warns on
VC15.  See
https://stackoverflow.com/questions/52416362/unused-lambda-capture-warning-when-capture-is-actually-used

Disable the warning since explicitly capturing foo is good practice.
2019-06-05 10:31:09 +00:00
loonycyborg
798e809512 Rename appdata and desktop files to contain D-Bus well-known name
as per freedesktop spec
2019-03-27 22:18:01 +03:00
Jyrki Vesterinen
4147df7efc Explicitly link to GObject (should fix #3840) 2019-01-05 17:31:00 +02:00
pentarctagon
e273684f66 Disable requirements for OpenGL/GLEW. 2018-12-31 13:26:48 -06:00
Victor Sergienko
8716b8f9d0 #3634, #3557: Port from iOS: Compile with Apple crypto framework instead of OpenSSL. 2018-10-25 23:20:04 -07:00
pentarctagon
617c69529e Fix cmake linking against libboost_thread. 2018-10-14 21:40:53 -05:00
Pentarctagon
6714ef32e0 Fixes #3518
Certain distro/compiler combinations will apparently warn about not optimizing when _FORTIFY_SOURCE is set.

(cherry-picked from commit 09fcc6b0519d458cbc3e16788576000a8484020b)
2018-10-07 03:24:57 +00:00
Pentarctagon
e405dc2bff Disabling hardening on Windows due to tdm-gcc's poor support.
As per sigurd's trial and error: RELRO's options are unknown entirely and -fstack-protector-strong results in compile errors.  Building with just PIE and _FORTIFY_SOURCE enabled does then compile, but results in a broken executable.

(cherry-picked from commit c9541176776aeb676e99f1804d123552430582ee)
2018-10-07 03:22:51 +00:00
Pentarctagon
9e78232e0e Fixup hardening options for Windows.
(cherry-picked from commit 277158222200d4131bbbb385e45a8c6993020b44)
2018-10-07 03:22:43 +00:00
Pentarctagon
bc3ad71f03 Fixup for osx hardening options.
(cherry-picked from commit da6ebc7423ea7b2e8a242ceb44f7bc72f2d08426)
2018-10-07 03:22:37 +00:00
Pentarctagon
6be6646a4e Enabled hardened executables by default.
The result of running "hardening-check wesnoth" now shows:
* Position Independent Executable: yes
* Stack protected: yes
* Fortify Source functions: yes (some protected functions found)
* Read-only relocations: yes
* Immediate binding: yes

(cherry-picked from commit 3290961db2eb00221c94f88f02f77ab640f497a4)
2018-10-07 03:22:36 +00:00
Charles Dang
848062fde6 Remove the CMake/Scons compile-time check for IEEE 754 compliance
Now handled by a static assertion.

(cherry-picked from commit d9315199ee44dfa8a36e4e01a9332ef21505df3c)
2018-10-07 03:21:31 +00:00
Pentarctagon
461ce4975d Don't require SDL2 or OGL for building the servers.
Requiring SDL2 was masking needing to add -lpthread explicitly.

(cherry-picked from commit fd34fe849770de379096ac1ffe612fb22473a846)
2018-10-07 03:21:16 +00:00
Pentarctagon
bb87cef484 Mark OpenGL and GLEW as required in cmake.
(cherry-picked from commit 8582ce10445f1e9d6ecc22621a6265a10c52cdb1)
2018-10-07 03:20:50 +00:00
Pentarctagon
e2501940a0 Warn about use of trampolines for nested functions.
Use of this feature with GCC in particular causes the stack to become marked as executable.

(cherry-picked from commit 96b43a9af4ec76882afe6924e9c3dafb5b8beac5)
2018-10-07 03:20:41 +00:00
pentarctagon
36eae8c771 Add option to build wesnoth with hardening options.
(cherry-picked from commit 6c5fc82b1baa0fc7b40beaccd975d595c5db728f)
2018-10-07 03:20:23 +00:00
pentarctagon
a040d521a4 Updates cmake and scons to be able to compile with OGL.
Scons OpenGL/GLEW test taken mostly verbatim from 3e2eba22a96cb2c6c69ee5109059b806f22a372f

(cherry-picked from commit 5e36a90039ddde3625690ace5259198e1932a7f8)
2018-10-07 03:20:04 +00:00
Nils Kneuper
f8df22f7d9 fixed issues with building translation via cmake
commit 3effecd added an "if" block in CMakeLists with a variable that
does not exist ("NLS"). This breaks running translation updates for
every cmake user. Changed the variable to the existing "ENABLE_NLS".

@Pentarctagon I don't know if the travis script has to be adjusted as
well. Please test.

(cherry-picked from commit 64fe3988d87b61e40199297d710c035d85dedd49)
2018-10-07 03:20:01 +00:00
pentarctagon
ff0009aa52 Don't copy the po/ directory into the docker image for non-NLS jobs.
(cherry-picked from commit 3effecdb069dad3036011ddb47f07d56e8ded121)
2018-10-07 03:19:57 +00:00
Matthias Krüger
4c5e74b2da cmake/scons: if sanitizers are enabled, also add -fno-omit-frame-pointer and -fno-optimize-sibling-calls.
Otherwise, if we build with sanitizers and optimizations, the sanitizer stacktraces can become quite hard to read.

(cherry-picked from commit 29089a47369c32d4eabb93ac7f5b33222c047670)
2018-10-07 03:19:54 +00:00
pentarctagon
c75a083541 Allow specifying a sanitizer with cmake.
(cherry-picked from commit 5b94101975abd1ab81cc79bc18710478129446af)
2018-10-07 03:19:37 +00:00
pentarctagon
1ef1704fd9 Adds the opt/OPT option to scons/cmake.
Travis now also makes use of this to set the optimization level for the -O0 builds, rather than extra_flags_*.  This additionally fixes an issue where using -O0 in the release build with LTO resulted in the individual *.o files being compiled with -O0, but LTO then still linked with release's default -O3.

(cherry-picked from commit 63ff641662d4192401a49f9a002d7872000a3f02)
2018-10-07 03:19:35 +00:00
Charles Dang
31e6c40653 Removed OpenMP-related code
After some discussion, we concluded that this code was unmaintained, not even used in
some places (display.cpp, units/frame.cpp), leaving the only area that really used it
at all the image surface cache. Considering there was never really a conclusive benchmark
of its benefits and because said surface cache will be used a lot less going forward,
we're just removing it and simplifying everything for everyone.

Closes #1260 since it's now irrelevant.

(cherry-picked from commit 3792612fb759942e6eb5de51364c2cca4ed16b40)
2018-10-07 03:19:30 +00:00
Charles Dang
32da54b059 Removed Boost Thread as a built-time dependency
We use std::thread now.

(cherry-picked from commit 9de7aff9044b1aae7fc56c4b78a400d93c0f6750)
2018-10-07 03:19:10 +00:00
Iris Morelle
6f5f1482d2 cmake, scons: Drop option to enable or disable the removed SDL_SavePNG code
Commit dfc42e8a8dd550ca04ae16e2d2d7ebffbba0bc21 removed said code since
Wesnoth can use IMG_SavePNG() from SDL_image 2.0 instead. However, the
author left the build-time configuration options intact, and also part
of the necessary code for CMake to link Wesnoth against libpng.

Note that this change also eliminates an unnecessary direct link-time
dependency on libpng when using both CMake and SCons.

(cherry-picked from commit 4799ca05fe40838c41814433780d0464d9b8f071)
2018-10-07 03:18:33 +00:00
Iris Morelle
d0c9a02189 Revert "Revert "Bump min Boost version to 1.56.0""
This reverts commit cdf9b465c668648721c4638ce117da130ad36284.

May this noise be my vengeance.

(cherry-picked from commit f6a128579ad6d94cc7c8a57bebd1fc2bb0f735a0)
2018-10-07 03:18:08 +00:00
Iris Morelle
777eb9ef2d Revert "Bump min Boost version to 1.56.0"
This reverts commit c82c1ff9059aa19adda6a527f41595a18b8c0a1f.

(cherry-picked from commit cdf9b465c668648721c4638ce117da130ad36284)
2018-10-07 03:18:08 +00:00
pentarctagon
7f0827b848 Stop hard-coding cmake's -std version.
Adds the CXX_STD variable which can be set.  Currently defaults to 14.  This also now makes cmake honor the CXXSTD env variable set on travis.

(cherry-picked from commit 983045718aa13a2b7b1b45bb37baa76a88a1d47e)
2018-10-07 03:17:58 +00:00
Gregory A Lundberg
cc5fe2adc1 Change SCons and CMake to C++14
(cherry-picked from commit 2a17ecccfcbf30f0d966db74c176cae87648c6d6)
2018-10-07 03:17:57 +00:00
Celtic Minstrel
c82c1ff905 Bump min Boost version to 1.56.0 2018-03-18 01:59:36 -04:00
Charles Dang
471c9e876a Addressed a large chunk of the whitespace issues from #2613
[ci skip]
2018-03-09 11:37:00 +11:00
pentarctagon
68f8055807 Add building the servers with mysql support to cmake. 2018-03-02 13:55:22 -06:00
Charles Dang
5c570841d3 Bump required Pango version from 1.21.3 to 1.22.0
Just enough to get rid of that conditional use of pango_cairo_font_map_create_context.
2018-02-17 12:18:17 +11:00
Jyrki Vesterinen
1d47c23efe Revert "Enable LTO by default."
This reverts commit 44f567c6a3252992907d320e38bb93ab14ff7359.

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.
2018-02-12 08:11:50 +02:00
Nils Kneuper
ca17047d07 fixed building of translations with cmake 2018-02-08 22:07:05 +01:00
Severin Glöckner
3777a5b307 add an appdata file for appstream software centers
(closes #1831 & #2160)
2018-02-02 23:46:59 +01:00
pentarctagon
44f567c6a3 Enable LTO by default.
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.
2018-02-02 17:56:07 +11:00
pentarctagon
ce628e028b Remove checking for a different SDL2 minimum version.
I removed this from scons a while ago, though it looks like I forgot or didn't notice that cmake does the same.
2018-01-28 12:53:26 -06:00
pentarctagon
729b2984f7 Have cmake not copy over everything for server-only installs. 2018-01-23 13:26:34 -06:00
pentarctagon
73a3e3cc63 Adds cmake's pedantic option to scons. 2017-12-04 09:23:33 -06:00
pentarctagon
49b6ede463 Move most strict warning flags to the default build flags.
This moves all the warnings flags from the strict build to the regular build, except for -Werror. This means that the only difference between strict builds and non-strict builds will be if warnings are turned into errors.
2017-12-03 15:30:52 -06:00
Severin Glöckner
e0cebdd402 desktop_entry: include high resolution icons
wesnoth-optipng has been applied to the new images
2017-11-27 01:52:36 +01:00
pentarctagon
42a44ff668 Remove ENABLE_TOOLS and ENABLE_SDL2_TOOLS from cmake. 2017-11-25 12:01:49 -06:00
pentarctagon
75b73043e3 Remove MSVC support from cmake. 2017-11-25 12:01:49 -06:00
pentarctagon
7ff30491fe Make strict builds consistent between scons and cmake 2017-11-24 15:00:01 -06:00
Gregory A Lundberg
81fc44ad5d Fix typos in ad01dbd404e092e258fece5d1ad473fea1717d12 2017-11-23 16:32:56 -06:00