659 Commits

Author SHA1 Message Date
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
Charles Dang
ee2b9d242e Bump min required Windows version to 7
Technically, all this code should work on Vista, (including the recent switch to using
SHGetKnownFolderPath), but since we're also considering requiring Visual Studio 2017
for building, we need Windows 7.

(cherry-picked from commit 2a585118d8b6c4b37d0ff9446a72ca20419ff7f7)
2018-10-07 03:20:45 +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
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
Martin Hrubý (hrubymar10)
75d6df374d Remove rest of Growl things which I forgot before
(cherry-picked from commit 783738b2f52f12c998a94ae9483803eeace89b38)
2018-10-07 03:19:36 +00:00
pentarctagon
754b8a6221 Print the value of STRICT and build_timeout.
(cherry-picked from commit 96c41271d80937da778d05477b0e1caadc6def10)
2018-10-07 03:19:35 +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
loonycyborg
a0c91ac41e Fix build against static libboost
(cherry-picked from commit c51065e39c85bfd8e4705cefa381451385c29bf8)
2018-10-07 03:19:28 +00:00
pentarctagon
b32ce37de5 Allow setting c++17 in scons.
(cherry-picked from commit 7aeca70cb04f1990aeef0213b88ec80b0f4d24f8)
2018-10-07 03:19:14 +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
cdae5011bf scons: Sort help text with a custom function that will run on Python 3
(cherry-picked from commit 6b67c18d8927cf7f982a1feac867c301211a186e)
2018-10-07 03:18:30 +00:00
Iris Morelle
2584a21716 Sort scons --help output
(cherry-picked from commit a31b5ebcba90787eb9d0de8ceecfbc5293dd2eb3)
2018-10-07 03:18:30 +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
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
loonycyborg
0eb314c4b5 scons: reorder boost checks to avoid linker errors with static libboost 2018-03-13 21:51:47 +03:00
loonycyborg
e637c55d50 scons: added a check for icu support in boost locale 2018-03-13 18:23:32 +03: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
6f02d1bebb Make scons' mysql handling more normal. 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
Jyrki Vesterinen
a5a9f6ab19 Revert "Fix release builds with Clang and SCons"
This reverts commit a1e821fb953f401b5d7f23a7a5d4fa80cd367866.

This won't be necessary with the next commit.
2018-02-12 08:08:01 +02:00
pentarctagon
bdd5089dd7 CC should be checked for gcc, not CXX. 2018-02-11 10:46:11 +02:00
Jyrki Vesterinen
a1e821fb95 Fix release builds with Clang and SCons
The detection for when Clang is used was incorrect, resulting in GCC-only
parameter being passed to Clang.

In addition, at least on my system LTO+Clang caused linking errors even
with that fixed. As an emergency fix, I completely disabled LTO for Clang.
2018-02-11 01:27:22 +02:00
pentarctagon
c8200093b2 Fixes LTO/PGO options not being used when ccache is enabled.
When ccache is enabled, env["CC"] becomes - 'CC': '$CCACHE gcc'
2018-02-09 19:33:47 +02: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
73a3e3cc63 Adds cmake's pedantic option to scons. 2017-12-04 09:23:33 -06:00
pentarctagon
817e9dbb33 Remove the scons workaround for Travis only having SDL 2.0.2 2017-12-04 09:35:58 +11: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
7ff30491fe Make strict builds consistent between scons and cmake 2017-11-24 15:00:01 -06:00
pentarctagon
e45e824499 Have scons and cmake link against same static libraries. 2017-11-20 07:38:18 +02:00
pentarctagon
ad3b3d8d9f Add ability to not create the .scons-option-cache file. 2017-11-08 19:52:04 +02:00
Gregory A Lundberg
d091391899 Renamed the target and binary for the Boost unit tests from test to boost_unit_tests
This quells warnings from CMake about reserved target names, and reduces confusion about which `test` is intended: the wesnoth executable or the standard shell command.
2017-11-06 20:32:27 +02:00
pentarctagon
699407d7f0 Replace base build with use_srcdir option. 2017-10-29 14:50:27 +02:00
Jyrki Vesterinen
0c137c79cf Globally suppress -Wmaybe-uninitialized
We have needed to suppress it in a bunch of places because GCC has kept
giving false positives depending on optimization settings. When I noticed
yet another false positive when I attempted to build the game with PGO
profiling data using CMake, it was the last straw.

Let's just suppress the warning globally and move on with our lives.
2017-10-27 21:28:06 +03:00
pentarctagon
757762b1e6 Add support for PGO builds. 2017-10-27 20:43:36 +03:00
Jyrki Vesterinen
86163094ee Merge branch 'profile-build'
Manual merge of pull request #2096.

Closes #2096.
2017-10-21 20:14:05 +03:00
pentarctagon
e58c709dbb Added perf support. 2017-10-11 10:39:14 -05:00
loonycyborg
a180e09bb6 Made build with scons 3.0.0 work fixing issue #2093 2017-10-11 16:36:20 +03:00
pentarctagon
b0f91e4a4d Add gcov and gperftools support to scons 2017-10-11 03:11:31 -05:00
pentarctagon
152c40d206 Address feedback. 2017-10-09 19:58:24 +03:00
pentarctagon
401f33d565 Re-add profile build description. 2017-10-09 19:58:24 +03:00
pentarctagon
2f3502b607 Re-added things based on replies, and added glibcxx_debug ability to cmake. 2017-10-09 19:58:24 +03:00