Commit graph

1051 commits

Author SHA1 Message Date
Kp edea687627 Remove HAVE_STRUCT_TIMEVAL
SConstruct defines it for all platforms.  It is only false on Mac OS 9,
which is no longer supported.
2015-10-27 03:04:49 +00:00
Kp e7c65dbc3f Use property for LinuxPlatformSettings ogllibs
It is only called once per instance, so caching it as an instance
value is not helpful.  Change it to a property so that __init__ can be
removed.
2015-10-27 03:04:49 +00:00
Kp a4eda5e6f7 Include commented tool versions in sconf tests
Encourage SCons not to reuse test results when the printed version
strings have changed.
2015-10-24 03:13:11 +00:00
Kp 4951cb0b8f Fix build break if no git and extra_version='' 2015-10-18 21:01:20 +00:00
Kp 927b14848f Add optional cpp output targets 2015-10-18 21:01:18 +00:00
Kp 091bcbec26 Support skipping configure/compile stages 2015-10-18 21:01:18 +00:00
Kp 2a1e07adfa Detect failure to git ls-files for check_header_includes 2015-10-13 02:43:25 +00:00
Kp d3198ab0bd Use env.Textfile to generate stub check_header_includes.cpp 2015-10-13 02:43:24 +00:00
Kp 365340560d Cache result of checking for .git 2015-10-13 02:43:24 +00:00
Kp c1b1da61e5 Support unusual values of CPP define SHAREPATH
Use the full CPP define quoting function instead of just hoping
sharepath is clean.
2015-10-13 02:43:24 +00:00
Kp 2e17c03c9e Remove unnecessary list comprehension for vers_id.cpp
It was a convenience for binding 's' to one value, but that can be
rewritten without the comprehension.
2015-10-13 02:43:24 +00:00
Kp a71e886fce Add scons option to skip pch optimization
Add option to compute indirect includes even when not necessary, since
indirect includes influence the inclusion count shown in the comments.
Enabling this option makes SCons work harder for the same output binary.
It should only be used by developers who want to see precise file
inclusion counts.
2015-10-09 02:46:10 +00:00
Kp 4041e3ba53 Test whether compiler can use PCHs it generates
Current gcc requires a non-PIE cc1plus for working PCH support.  If the
chosen compiler is PIE, it will succeed in building the PCH, then fail
when trying to use it.
2015-10-03 17:17:49 +00:00
Kp f37e55737c Shorten secondary calls to Git.pcall 2015-09-29 02:41:22 +00:00
Kp 433b80c0b3 Reduce copying of pkg-config result 2015-09-29 02:41:22 +00:00
Kp e2d16844a8 Fix handling of pch_cpp_assume_unchanged 2015-09-26 21:17:14 +00:00
Kp f3470cef5f Show tool versions in sconf output 2015-09-26 21:17:13 +00:00
Kp 51a86c62ef Hide undocumented options
If no help text is defined, hide the associated option from --help.
2015-09-26 21:17:13 +00:00
Kp 0b242833f5 Always set StaticSubprocess.stdout to PIPE 2015-09-26 21:17:13 +00:00
Kp 63dd2656ed Document some SConstruct tests 2015-09-26 21:17:12 +00:00
Kp 76b94de1de Add commented out hook for warning on valptridx exceptions 2015-09-26 21:17:12 +00:00
Kp 4afae87883 Remove -Wcast-align from default compiler options
Per issue from MattWatt, gcc for Raspberry Pi warns about alignment
issues.

Per issue from kreator, clang warns about alignment issues on OS X.
However, it does not warn on x86_64-pc-linux-gnu.

GCC only warns when compiling for a target architecture that requires
alignment, so it does not warn for i686-pc-linux-gnu or
x86_64-pc-linux-gnu.

Using this warning would be nice, but since it only triggers on
architectures not maintained by active developers, it causes more
trouble than it may solve.

Alignment sensitive users will have to get by with software fixups until
an active developer begins targeting alignment sensitive hardware.

Reported-by: MattWatt <https://github.com/dxx-rebirth/dxx-rebirth/issues/119>
Reported-by: kreatordxx <https://github.com/dxx-rebirth/dxx-rebirth/issues/120>
2015-09-19 23:04:36 +00:00
Kp f1021de448 Add SDL_NumJoysticks() to SDL library test
Some builds of SDL lack joystick support.  Rebirth requires joystick
support in SDL, even if the user never connects a joystick.  Add a call
to SDL_NumJoysticks during the SDL test so that systems without SDL
joystick support fail the "usable library SDL" test.
2015-09-19 23:04:36 +00:00
Kp ae5fc1b74b Remove wrapper Cxx11Compile
All compilation is now at least C++11.
2015-09-19 23:04:36 +00:00
Kp 348c656311 Explicitly require C++11 support 2015-09-19 23:04:36 +00:00
Kp 6c49f5b95d Disable ccache/distcc during SConf 2015-09-19 23:04:36 +00:00
Kp d18835bcf9 Invert sense of {} messages
Prefer to always have 'yes' for good results and 'no' for bad results.
2015-09-19 23:04:35 +00:00
Kp 22a7d121f5 Restructure compiler preferred option tests 2015-09-19 23:04:35 +00:00
Kp 61044df4f7 Use string formatting consistently 2015-09-19 23:04:35 +00:00
Kp 451325c89b Improve lazy object setup 2015-09-19 23:04:35 +00:00
Kp 54928db871 Cache os.environ.get 2015-09-19 23:04:35 +00:00
Kp 8f7ed1f5ee Remove unused program_specific_objects 2015-09-19 23:04:35 +00:00
Kp d954cdf279 Look up configure test docstring at record time 2015-09-13 21:02:19 +00:00
Kp 198b8295c4 Force sconf.log verbose for LINKCOMSTR 2015-09-13 21:02:19 +00:00
Kp f2d9ffe48d Rewrite PCH generation 2015-09-13 20:23:05 +00:00
Kp 0ec66ef673 Use collections.defaultdict for successful_flags 2015-09-13 20:23:05 +00:00
Kp 433fc96505 Avoid redefining LazyObjectConstructor.__strip_extension 2015-09-09 03:27:52 +00:00
Kp 80f70fbc34 Remove SConf test check_compiler_template_parentheses_warning
Test check_compiler_template_parentheses_warning probes for a bug in
gcc-4.6.  Upstream fixed the bug in gcc-4.7.  Using gcc-4.6 is no longer
supported, so remove the test for the bug.
2015-08-22 20:43:04 +00:00
Kp 37838329a1 Add SConf hook to check result against expected value 2015-08-22 20:43:04 +00:00
Kp 3bf0c93067 Factor out lookup of sconf overrides 2015-08-22 20:43:03 +00:00
Kp b5bf4cf9cc Change - to _ for check_compiler_option names 2015-08-22 20:43:03 +00:00
Kp 389cd42f47 Default verbosebuild on for non-tty outputs 2015-08-14 03:02:04 +00:00
Kp 41ecab004f Skip message for unknown variables when there is nothing to do
Reported-by: zicodxx <https://github.com/dxx-rebirth/dxx-rebirth/issues/115>
Fixes: 870ed653b5 ("Warn about unknown scons variables")
2015-08-11 03:05:55 +00:00
Kp 001fdfff37 Add workaround for gcc-4.8 ref qualifier quirk
In gcc-4.8, a member method with const lvalue and const rvalue methods
is ambiguous.

	$ cat t.cpp
	class A
	{
	public:
	    void a() const &;
	    void a() const &&;
	};

	A b();
	void c()
	{
	    b().a();	// fails in gcc-4.8, works in later
	}
	$ gcc-4.8 -Wall -Wextra -std=gnu++0x -O2 -c t.cpp
	t.cpp: In function 'void c()':
	t.cpp:11:8: error: call of overloaded 'a()' is ambiguous
	  b().a();
		^
	t.cpp:11:8: note: candidates are:
	t.cpp:4:7: note: void A::a() const &
	  void a() const &;
	       ^
	t.cpp:5:7: note: void A::a() const &&
	  void a() const &&;
	       ^
	$ gcc-4.9 -Wall -Wextra -std=gnu++0x -O2 -c t.cpp
	$

Fixes: bda7fef3a0 ("Use get_local_player to compute reference to local player")
2015-08-05 02:59:03 +00:00
Kp b979f52ebf Centralize required C++11 features 2015-08-03 03:11:25 +00:00
Kp 7086bbae14 Simplify automatic compiler test 2015-08-03 03:11:24 +00:00
Kp 4d8ae44794 Add helper macro DXX_CONSTANT_TRUE 2015-07-29 03:05:28 +00:00
Kp 4a6ae13367 Centralize PCH object hook 2015-07-25 23:10:48 +00:00
Kp d4dc3df3de Support PCH+LTO 2015-07-25 23:10:48 +00:00
Kp 9a5654e002 Move similar/editor/autosave.cpp -> common/editor/autosave.cpp 2015-07-25 23:10:47 +00:00
Kp 15fb75c1c7 Fix check_header_includes build 2015-07-25 23:10:45 +00:00
Kp cdb113a050 Diagnose including compiler-type_traits without dxxsconf.h 2015-07-25 23:10:45 +00:00
Kp 9f84f0851d Enable clang LTO
clang does not support -flto=N syntax for parallel LTO.

Remove -fno-fat-lto-objects too.  clang does not understand it;
gcc 4.9 and later default to non-fat LTO.

Fixes: 1037a92d60 ("Allow parallel lto")
2015-07-18 21:01:56 +00:00
Kp 82e1ea5636 Move similar/mem/mem.cpp -> common/mem/mem.cpp 2015-07-18 21:01:56 +00:00
Kp a58e8f87a0 Move similar/misc/hash.cpp -> common/misc/hash.cpp 2015-07-18 21:01:56 +00:00
Kp cfdffa184f Move similar/arch/sdl/event.cpp -> common/arch/sdl/event.cpp 2015-07-18 21:01:56 +00:00
Kp 04d9f82a50 Move similar/arch/sdl/key.cpp -> common/arch/sdl/key.cpp 2015-07-18 21:01:56 +00:00
Kp c7542fe9fc Move similar/arch/sdl/mouse.cpp -> common/arch/sdl/mouse.cpp 2015-07-18 21:01:56 +00:00
Kp 51ee9d2833 SDL2: skip build of rbaudio.cpp 2015-07-14 02:42:12 +00:00
Kp a2cb5fea6e Add SConf option to use SDL2 2015-07-14 02:42:12 +00:00
Kp 658102a868 Improve static_assert test
Previously, SConstruct tested whether static_assert worked with trivial
constant expressions.  Extend the test to more complicated expressions
like the ones used in the program.

Replace the typedef based approach with an inline enum to avoid warnings
about unused local typedefs.

Allow use with compilers that lack working static_assert or that cannot
accept complicated expressions.  Add a non-checking definition that uses
the input parameter.  This prevents warnings when types or constants are
used only for the static_assert.
2015-07-09 03:12:45 +00:00
Kp c03fe30fc2 Move similar/arch/sdl/timer.cpp -> common/arch/sdl/timer.cpp 2015-07-04 21:01:17 +00:00
Kp 2bc1f786d5 Test for -Wlogical-op before using it
clang does not understand it, so using it unconditionally breaks the
clang build.
2015-06-20 03:50:46 +00:00
Kp 3905f1a668 Enable -Wcast-qual 2015-06-13 22:42:21 +00:00
Kp 92f44fcaaa Enable -Wmissing-include-dirs 2015-06-13 22:42:21 +00:00
Kp 7c436f1fbb Merge pull #39 into unification/master
Requested-by: btb <https://github.com/dxx-rebirth/dxx-rebirth/pull/39>
Acked-by: Matt1360 <https://github.com/dxx-rebirth/dxx-rebirth/pull/39#issuecomment-88712761>
Acked-by: zico <https://github.com/dxx-rebirth/dxx-rebirth/pull/39#issuecomment-88907523>
2015-06-07 16:21:37 +00:00
Kp ff452dbded Move CLI code to common
None of it depends on D1 vs D2.
2015-06-07 16:20:46 +00:00
Kp a8431a1933 Fix noreturn test with LTO 2015-05-28 03:08:38 +00:00
Kp 41c58ec70e Remove zlib.h from physfs test
The test does not use zlib functions directly.
2015-05-23 04:13:29 +00:00
Kp 3caea6d618 Enable -Wvla 2015-05-17 00:59:26 +00:00
Kp 0ece005dfa Use screen_mode for screen resolution 2015-05-14 02:23:13 +00:00
Kp 8daf33b422 Blacklist broken clang C++11 constructor inheritance 2015-05-09 17:39:02 +00:00
Kp f92e890f50 Improve valptridx exception reporting 2015-05-09 17:39:02 +00:00
Kp 1037a92d60 Allow parallel lto 2015-05-09 17:38:57 +00:00
Kp ee3731ccd1 Add workaround for clang -Wunused-parameter bug 2015-05-06 02:11:03 +00:00
Kp 9dc22b1ee6 Expand DXX_CXX11_EXPLICIT_DELETE
Various functions use the non-macro form, so support for =delete is
already mandatory.  Remove the remnants of support for compilers which
lack =delete and replace it with a hard stop when the compiler rejects
declaring explicitly deleted functions.
2015-05-01 02:18:33 +00:00
Kp 596ece352b Enable -Wextra 2015-04-26 20:15:57 +00:00
Kp 6792c1bc4b Enable -Wunused-parameter 2015-04-26 20:15:56 +00:00
Bradley Bell 844aad2639 Merge branch 'unification/master' into command-line 2015-04-24 20:54:35 -07:00
Kp bb3f414128 Cache scons subprocess calls 2015-04-22 02:44:30 +00:00
Kp f86f06f1d4 Add -fvisibility=hidden when supported
Saves ~4k of text on debug+editor build
2015-04-22 02:44:29 +00:00
Kp eee5e8d4b9 Require compiler support for constexpr 2015-04-22 02:44:29 +00:00
Kp 239f633356 Remove unused include directory 2015-04-19 04:18:50 +00:00
Kp be4eef36dd Always add -g to CXXFLAGS 2015-04-17 02:38:12 +00:00
Kp 6633eef18b Fix spurious quote on version string 2015-04-16 01:48:15 +00:00
Kp fa82c1bd3b Add special case for physfs requiring zlib
Dynamic linked physfs handles its own zlib dependencies.  If the user
links to a static physfs and physfs is built with support for zip files,
then we need to add zlib to the link line.
2015-04-09 02:29:58 +00:00
Kp add7107cc7 Fix preserving CCACHE_PREFIX 2015-04-04 17:23:47 +00:00
Kp 942f867926 Always set -Wredundant-decls
<gcc-4.7 no longer builds due to incomplete decltype handling
>=gcc-4.7 handles -Wredundant-decls correctly

Remove the SConf test and always set -Wredundant-decls.
2015-04-03 02:46:25 +00:00
Kp 85a777d300 Move pkg-config lookups into configure tests 2015-04-02 02:36:52 +00:00
Kp 66806e1f34 Enable -Wmissing-braces
clang includes it in -Wall, so add it for gcc
2015-04-02 02:36:52 +00:00
Kp 05bf944bee Fix gcc-4.7 objptridx narrowing error
Constructor forwarding using braces causes a -Wnarrowing warning in
objptridx constructors.  Switch to using parentheses to avoid the
warning.
2015-03-28 01:16:11 +00:00
Kp 9fe3fdd2bb Add sconf check for gcc bug #51064
Set -Wparentheses only if the compiler accepts template computed expressions.
2015-03-27 02:50:23 +00:00
Kp 06a1c74c18 Fix Windows OpenGL build
Fixes: 9d33fad4dd ("Implement different GL synchronization methods")
2015-03-25 01:59:21 +00:00
derhass 639b569496 Merge branch 'unification/master' into unification/syncgl_v2
Conflicts:
	similar/arch/ogl/gr.cpp
	similar/misc/args.cpp
2015-03-23 20:18:17 +01:00
derhass 6d41224638 move GL synchronization code into its own class 2015-03-22 21:19:06 +01:00
derhass db267af6f2 add basic OpenGL extension handling
Currently only used for fence sync objects.
2015-03-22 20:32:14 +01:00
Kp 945914f1d6 Enable -Wuninitialized, -Wempty-body, -Wignored-qualifiers, -Wunused 2015-03-22 18:49:21 +00:00
Kp d9bfced915 Blacklist moving _REENTRANT to dxxsconf.h
Passing -pthread implies -D_REENTRANT, so if -D_REENTRANT is moved to
dxxsconf.h, then _REENTRANT is defined twice.
2015-03-22 18:49:21 +00:00
Kp 28a5b70c7c Remove write-only osasmdef 2015-03-22 18:49:21 +00:00
derhass 6d4ee7a329 RPi: use CPPFLAGS instead of CXXFLAGS for -isystem
Suggested by Kp.
2015-03-21 17:54:04 +01:00