Commit graph

675 commits

Author SHA1 Message Date
pentarctagon
eec60d08aa Adds OpenGL/GLEW checks to scons.
Taken mostly verbatim from 3e2eba22a9
2018-09-27 20:00:01 +03:00
pentarctagon
e0953798e4 Remove forgotten environment dump. 2018-09-27 20:00:01 +03:00
pentarctagon
4db3d913e6 Updates cmake and scons to be able to compile with OGL. 2018-09-27 20:00:01 +03:00
Pentarctagon
09fcc6b051 Fixes #3518
Certain distro/compiler combinations will apparently warn about not optimizing when _FORTIFY_SOURCE is set.
2018-09-07 12:36:11 -05:00
loonycyborg
0c3ba36d68 scons: fix strict hardened builds on Gentoo 2018-07-27 16:28:23 +03:00
josteph
bad6897cbc Revert "Excluded data/test/ from tarball"
This reverts commit c934825607.

Keep data/test/ in 'scons dist' tarballs to match official tarballs.
2018-06-23 09:33:30 +03:00
josteph
0ee4854157 Fix 'scons dist'
This makes 'scons dist' work, although the resulting tarballs are not
yet identical to cmake tarballs.

Remove awk usage made obsolete by the git transition
(7f85fa000c).

Update src/revision.hpp reference to use src/revision.h.  The former
name is unused since at least 7625b1e079.
2018-06-23 09:33:30 +03:00
Pentarctagon
c954117677 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.
2018-06-22 08:46:34 -05:00
Pentarctagon
2771582222 Fixup hardening options for Windows. 2018-06-16 13:29:15 -05:00
Pentarctagon
da6ebc7423 Fixup for osx hardening options. 2018-06-15 02:18:32 -05:00
Pentarctagon
3290961db2 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
2018-06-15 01:31:31 -05:00
Pentarctagon
5a2d1bc992 Fix stack protection with LTO. 2018-06-10 20:23:27 -05:00
loonycyborg
d96d5c506c scons: add missing winapi lib dependencies to mingw build 2018-06-02 11:53:35 +03:00
loonycyborg
b347bc70b1 scons: don't let pkg-config to add prefix on msys2
This is workaround for windows style path confusing scons if they appear
in CPPATH etc. Paths without prefix still happen to be valid and they
start with "/", not "c:".
2018-06-02 11:53:35 +03:00
loonycyborg
8b1a5c0dde Enable ASLR and NX bit security features for mingw builds 2018-05-31 12:07:27 +03:00
Charles Dang
d9315199ee Remove the CMake/Scons compile-time check for IEEE 754 compliance
Now handled by a static assertion.
2018-05-21 14:38:16 +11:00
Charles Dang
2a585118d8 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.
2018-05-11 10:56:11 +11:00
Pentarctagon
96b43a9af4 Warn about use of trampolines for nested functions.
Use of this feature with GCC in particular causes the stack to become marked as executable.
2018-05-09 10:38:23 +03:00
pentarctagon
6c5fc82b1b Add option to build wesnoth with hardening options. 2018-05-05 10:05:53 -05:00
pentarctagon
5e36a90039 Updates cmake and scons to be able to compile with OGL.
Scons OpenGL/GLEW test taken mostly verbatim from 3e2eba22a9
2018-04-30 17:14:18 +03:00
Matthias Krüger
29089a4736 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.
2018-04-25 19:08:14 -05:00
Martin Hrubý (hrubymar10)
783738b2f5 Remove rest of Growl things which I forgot before 2018-04-21 13:06:08 +02:00
pentarctagon
96c41271d8 Print the value of STRICT and build_timeout. 2018-04-21 01:32:21 -05:00
pentarctagon
63ff641662 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.
2018-04-21 01:32:21 -05:00
Charles Dang
3792612fb7 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.
2018-04-19 23:06:04 +11:00
loonycyborg
c51065e39c Fix build against static libboost 2018-04-18 15:42:29 +03:00
pentarctagon
7aeca70cb0 Allow setting c++17 in scons. 2018-04-14 11:39:20 +03:00
Charles Dang
9de7aff904 Removed Boost Thread as a built-time dependency
We use std::thread now.
2018-04-13 23:55:25 +11:00
Iris Morelle
4799ca05fe cmake, scons: Drop option to enable or disable the removed SDL_SavePNG code
Commit dfc42e8a8d 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.
2018-03-27 18:56:03 -03:00
Iris Morelle
6b67c18d89 scons: Sort help text with a custom function that will run on Python 3 2018-03-27 03:52:43 -03:00
Iris Morelle
a31b5ebcba Sort scons --help output 2018-03-27 03:46:02 -03:00
pentarctagon
3343a9451a Remove SDL2_TTF 2018-03-26 17:56:36 +11:00
Iris Morelle
f6a128579a Revert "Revert "Bump min Boost version to 1.56.0""
This reverts commit cdf9b465c6.

May this noise be my vengeance.
2018-03-24 01:53:47 -03:00
Iris Morelle
cdf9b465c6 Revert "Bump min Boost version to 1.56.0"
This reverts commit c82c1ff905.
2018-03-24 01:46:52 -03:00
Gregory A Lundberg
2a17ecccfc Change SCons and CMake to C++14 2018-03-18 18:29:23 +02: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 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.
2018-02-12 08:11:50 +02:00
Jyrki Vesterinen
a5a9f6ab19 Revert "Fix release builds with Clang and SCons"
This reverts commit a1e821fb95.

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