Commit graph

1010 commits

Author SHA1 Message Date
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
derhass beda132361 RPi: use SConstruct's message() function for the RPi build message 2015-03-21 17:53:58 +01:00
derhass f46e4a2a7c RPi: use -isystem for the VideoCore library header path
Rebirth builds with -Werror=redundant-decls -Werror=undef, which are
triggered by the bcm_host.h. Making gcc treat those paths as
system headers avoids these issues. This was suggested by Kp.
2015-03-21 17:53:13 +01:00
Kp 13d85fa38e Make d1x=value imply d2x=0 and vice versa 2015-03-12 02:21:21 +00:00
Kp 650831c0fe Set -O2 for debug builds
Enable optimization by default for all builds.  Users can pass -O0 if an
unoptimized build is needed.
2015-03-07 17:20:41 +00:00
Bradley Bell bbb32d0175 added cmd and cvar modules from d2x 2015-02-10 23:35:44 -08:00
Bradley Bell 0db11cc139 add d2x command-line interface to console 2015-02-10 17:01:00 -08:00
Kp 8d3f047427 Make udt_to_message __attribute__((unused))
Clang warns for unused static inline functions defined in a source file,
including those defined in a macro in a header, when the macro is
expanded in the source file.
2015-02-05 03:03:50 +00:00
Kp 4488458ed8 Reactivate check_attribute_alloc_size
Fixes: c8022a1001 ("Abstract socket array/sockaddr dispatch")
2015-01-25 05:32:45 +00:00
Kp c8022a1001 Abstract socket array/sockaddr dispatch 2015-01-18 01:58:33 +00:00
Kp 95aaf09ae0 Add -Wno-missing-field-initializers if needed
GCC with -Wmissing-field-initializers warns for a={}, but this is a
common construct in Rebirth code to zero-initialize an entire structure.
Users might add -Wmissing-field-initializers or a group option which
enables -Wmissing-field-initializers, so add code to explicitly disable
this warning when the compiler rejects this form of initialization.
2015-01-15 04:30:03 +00:00
Kp fd01d4c673 Reorder wall_is_doorway to favor likely results 2015-01-12 00:26:03 +00:00
Kp 484a2a705d Use strcasecmp when available 2015-01-12 00:26:03 +00:00
Kp e71d91d411 Skip ccache/distcc for link 2015-01-11 05:08:30 +00:00
Kp 662cf903ca Add $CXXFLAGS to $LINKFLAGS for LTO 2015-01-11 05:08:30 +00:00
Kp 4be02cd9c5 Add support for poison=overwrite 2015-01-03 23:44:32 +00:00
Kp 2cc77d647f Add ccache/distcc support 2015-01-03 23:44:32 +00:00
Kp 62f4a847bc Check for usable libSDL 2015-01-03 23:44:32 +00:00
Kp 44b4a54495 Fix duplicate -lSDL_mixer 2015-01-03 23:44:32 +00:00
Kp b86870f5ef Make d_debugbreak cold 2014-12-24 03:34:33 +00:00
Kp 100e6ceedf Shorten DXX_BUILD_DESCENT_I macro 2014-12-20 04:36:11 +00:00
Kp e1bb249176 Remove unused UI_GADGET_KEYTRAP 2014-12-20 04:36:09 +00:00
Kp 5f6a54875c Make pkg-config errors non-fatal
Later configure tests will abort if the package is not found some other
way.
2014-12-11 02:32:28 +00:00
Kp e216b709d4 Use pkg-config on Darwin if available 2014-12-05 04:11:37 +00:00
Kp 84932930c8 Fix escaping empty flags 2014-12-05 04:11:37 +00:00
Kp 813d88bb55 Combine pkg-config caches 2014-12-05 04:11:37 +00:00
Matt Vandermeulen b94274e5a5 Merge pull request #16 from btb/osx-issues
Osx issues
2014-12-04 21:46:19 -05:00
Bradley Bell 0cc88280ba Simplify by using generic Info.plist, builtin substitions 2014-12-04 18:11:57 -08:00
Bradley Bell 876c4522b3 use correct path for localized strings 2014-12-04 16:39:45 -08:00
Bradley Bell 6cf4e86185 use correct path for bundle executable 2014-12-04 15:58:50 -08:00
Kp a977d5d202 Search for SDL_mixer pkg-config too
Users might install SDL and SDL_mixer to separate paths, so search for
SDL_mixer.pc too.
2014-12-04 03:31:07 +00:00
Bradley Bell 3daa0f63b1 Add search SDL_mixer framework paths for headers instead of using <Framework/Header.h> notation 2014-12-03 15:14:18 -08:00
Bradley Bell 782e12fd49 For Darwin, code expects SDL_mixer to be in the framework path.
Use that here too.
2014-12-02 14:29:41 -08:00
Kp ec8738ca62 Merge branch 'btb/osx-fixes' into unification/master
Merge Mac OS X specific fixes from btb.  The Windows and Linux builds
are unaffected.  The OS X changes look sane, but cannot be tested here.

Changes not specific to OS X were previously committed separately.

Requested by btb: https://github.com/dxx-rebirth/dxx-rebirth/pull/12
2014-12-01 23:47:10 +00:00
Kp d0ec27898b Detect -Wnarrowing constructor calls even without inheritance 2014-11-26 02:57:36 +00:00
Bradley Bell 7f10bb28bf use NSAlert for cocoa. Carbon support totally deprecated 2014-11-23 19:53:02 -08:00
Bradley Bell d822d09d35 move messagebox and SDLMain to platform_objects 2014-11-23 04:25:42 -08:00
Kp 57ed5c24fd Add developer option to test header completeness 2014-11-17 04:02:25 +00:00
Kp 177c935b9d Move 3d/clipper.cpp to SDL-only build 2014-11-16 19:14:51 +00:00
Kp e766381265 Fix __builtin_constant_p test at -Og
Remove explicit 'inline' on __builtin_constant_p test, since -Og will
inline simple functions on request but not inline speculatively or
inline complex templates.  When testing at -Og with 'static inline',
__builtin_constant_p is marked as functional, but physfsx checks are not
inlined and result in spurious failures.  When testing at -Og with
'static', __builtin_constant_p is marked as broken and the physfsx
checks are skipped.  When testing at -O2, __builtin_constant_p is marked
as working and the physfsx checks are included.
2014-11-02 16:46:11 +00:00
Kp 1312008dca Filter duplicate prefixes in register_program
Without a filter, certain combinations add $CXXFLAGS multiple times.
2014-10-16 01:56:30 +00:00
Kp 870ed653b5 Warn about unknown scons variables 2014-10-10 02:58:05 +00:00