Commit graph

1296 commits

Author SHA1 Message Date
Kp 401f5581c8 Remove guessed -lSDL on OS X
OS X handles linking differently than other platforms.  Asking to link
to SDL breaks the test.
2016-02-23 04:18:13 +00:00
Kp 42ef6b2e72 Add applelink to Darwin tools 2016-02-23 04:18:13 +00:00
Kp 3cb4d99a49 Remove dsx safety net for clang
Clang becomes confused trying to resolve X::a when:
- both `namespace ::X` and `class ::B::X` exist
- `using namespace B;` is active

even if class ::B::X is only a forward-declaration.  Add an SConf test
to recognize when the compiler rejects this pattern and hide the safety
nets that are implemented using it.
2016-02-06 22:12:55 +00:00
Kp fa8ceaeb5f Use extend for OGL defines
Fixes: 04e3c1e9a3 ("Move OpenGL cpp flag tracking to SConf")
2016-02-03 03:00:32 +00:00
Kp 30783846fe Improve SCons ipv6 option documentation 2016-02-02 03:10:53 +00:00
Kp 42a1c560cd Move UDP cpp processing to sconf 2016-01-26 03:45:08 +00:00
Kp cb4600456d Move IPv6 cpp processing to sconf 2016-01-26 03:45:07 +00:00
Kp d35a51e766 Move editor cpp processing to sconf 2016-01-26 03:45:07 +00:00
Kp 29740cf80c Move memdebug cpp processing to sconf 2016-01-26 03:45:07 +00:00
Kp e73e44de79 Move developer-mode cpp processing to sconf 2016-01-26 03:45:07 +00:00
Kp 04e3c1e9a3 Move OpenGL cpp flag tracking to SConf 2016-01-26 03:45:07 +00:00
Kp 1a11370084 Pass archive to prepare_environment 2016-01-26 03:45:07 +00:00
Kp 7b2426fd3e Add gcc to Darwin tool list 2016-01-21 03:57:38 +00:00
Kp 5d7796c344 Swap single/double quote due to Windows shell bug
Microsoft cmd.exe has strange quoting rules.  Where other shells treat
single quote as a quote character, cmd.exe seems to pass it through to
the underlying process.  This breaks the vers_id compilation with
strange error messages.  In practice, SCons does not need the
no-interpolation semantics that single quote provides, so switch to
double quote for compatibility with Windows.  This is probably slightly
less efficient on Bash, since it will now scan the value for expansions.
However, the efficiency loss is tiny compared to overhead elsewhere in
the build.
2016-01-19 04:29:34 +00:00
Kp 65790ec925 Guess pkg-config flags when pkg-config is missing/broken 2016-01-13 04:33:44 +00:00
Kp 15e4130e1a Write more sconf actions to sconf.log 2016-01-12 03:28:45 +00:00
Kp 1e28cb52e3 Remove explicit assignment of subprocess.Popen(executable)
Windows systems get confused and fail to find the process if the
executable name is assigned.
2016-01-09 16:38:15 +00:00
Kp 0a2ef79242 Remove close_fds=True from StaticSubprocess
Per the documentation, on Linux, the default is true.  On Windows,
setting it to true causes a Python exception because Windows relies on
disabling inheritance as a hack to close all descriptors, but
inheritance needs to be enabled to capture the output of the child
process.

Reported-by: Mako88 <https://github.com/dxx-rebirth/dxx-rebirth/issues/173>
Fixes: bb3f414128 ("Cache scons subprocess calls")
2016-01-03 20:21:36 +00:00
Kp ba17de4cd5 Add -Wuninitialized to default warning options 2016-01-03 20:21:35 +00:00
Kp 26e948d5f1 Uninline namespace dsx 2015-12-13 18:00:49 +00:00
Kp dc8c0323d8 Uninline namespace dcx 2015-12-13 18:00:49 +00:00
Kp 30cb6d8c8d Improve dcx/dsx comments
Move the boilerplate up onto the outer namespace line.  Decorate each
collision with a comment stating its purpose, so that compiler error
output echoes the type of collision.
2015-12-13 18:00:48 +00:00
Kp 80ea17a61c Convert OSError to StopError for failed tool version checks 2015-12-11 03:39:40 +00:00
Kp 69c5a79058 Use inline namespace dcx for common/2d 2015-12-05 22:57:23 +00:00
Kp 60e6c23ccc Always pass tuple for argument prefix list
Fixes: dd59be7163 ("Cache various SConstruct temporaries")
2015-12-04 03:36:33 +00:00
Kp ff51ff5474 Copy sdl-config CPPDEFINES before modification
Fixes: 6111e5adbf ("Allow configuring max joysticks at build time")
2015-12-04 03:36:32 +00:00
Kp dd59be7163 Cache various SConstruct temporaries
This started as a project to make SConstruct take less time on an empty
build.  Unforunately, most of the major gains lie elsewhere and require
deeper changes to the build system.  These changes do not help much, but
they are better than nothing.
2015-12-03 03:26:49 +00:00
Kp 3528acb78d Add $DXX_EFFECTIVE_SOURCE to check_header_includes dependencies 2015-11-24 04:05:35 +00:00
Kp a2b4dcbd9c Use $DXX_EFFECTIVE_SOURCE for quiet header check builds 2015-11-24 04:05:35 +00:00
Kp 7b4eeb8c0c Suppress debug info for check_header_includes outputs 2015-11-17 03:31:21 +00:00
Kp d36e86f8bc Factor out some Scons None assignments 2015-11-14 18:17:22 +00:00
Kp 0c86fd507d Fix mingw32 build
Fixes: 38df160341 ("Create platform_settings, env on first use")
2015-11-07 21:56:00 +00:00
Kp 6111e5adbf Allow configuring max joysticks at build time 2015-11-01 21:15:40 +00:00
Kp 139f2aaa44 Reduce scope of LazyObjectConstructor.__strip_extension 2015-11-01 21:15:39 +00:00
Kp 0a041018c8 Let register_cpp_output_targets see check_header_includes 2015-11-01 21:15:39 +00:00
Kp 83f1a94ec4 Move __shared_header_file_list to create_header_targets 2015-11-01 21:15:39 +00:00
Kp afb1fc3383 Remove special-case for profiler support
Stackable build profiles allow this to be specified without a special
case in SConstruct.
2015-11-01 21:15:39 +00:00
Kp f5dfa1a3b2 Inline banner() 2015-11-01 21:15:39 +00:00
Kp 38df160341 Create platform_settings, env on first use 2015-11-01 21:15:39 +00:00
Kp b35ef80a0f Reduce global lookups 2015-11-01 21:15:38 +00:00
Kp bab5f5f1be Reduce env lookups 2015-11-01 21:15:38 +00:00
Kp e86e1a882a Combine adjacent env.Append calls 2015-10-29 03:01:42 +00:00
Kp fd51188e57 Simplify DXXCommon instance counter 2015-10-29 03:01:42 +00:00
Kp 9c4a4e3cf8 Remove unnecessary __init__ methods 2015-10-28 02:44:36 +00:00
Kp def268faf9 Combine lazy object caches 2015-10-28 02:44:36 +00:00
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
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
Kp ec1eb03cc2 Move d2x-rebirth/main/segment.cpp -> similar/main/segment.cpp 2014-10-04 17:53:09 +00:00
Kp d8ca0b2e70 Add initial LTO support 2014-09-28 21:09:19 +00:00
Kp 6384f8dffe Move main body into configure _Test method 2014-09-28 21:09:19 +00:00
Kp e6bd1ae52c Handle None in get_Werror_string 2014-09-27 00:32:22 +00:00
Kp 703f60ac3f Fix -Wtype-limits warnings 2014-09-21 21:41:55 +00:00
Kp fece9f51a4 Optimize serial using __builtin_bswap if available 2014-09-20 22:15:32 +00:00
Kp ef42a7cdad Compact version number definition 2014-09-17 02:45:32 +00:00
Kp 5b70836203 Fix -Werror leakage on failed CXXFLAGS-free tests 2014-09-17 02:11:43 +00:00
Kp 85b09fd380 Avoid redundant -Werror usage
If -Werror is set by the user, use -Wflag instead of -Werror=flag.
2014-09-17 02:09:53 +00:00
Kp d1a36bfc6a Add option to rebuild vers_id when any object file changes 2014-09-13 22:10:24 +00:00
Kp a11c4aed3d Shorten vers_id command line 2014-09-13 22:09:32 +00:00
Kp 0387a2c771 Disallow using RAIIdmem::operator T* on rvalues 2014-09-07 23:56:37 +00:00
Kp 7d166a70e0 Prevent accidental RAIIdmem construction 2014-09-07 23:56:37 +00:00
Kp 07176ece8b Add Valgrind poison stubs 2014-09-07 19:39:18 +00:00
Kp 7f6299aaa7 Use built-in __linux__ instead of custom __LINUX__ 2014-09-02 22:10:34 +00:00
Kp 56e7fa5f37 Add special case for escaped newline 2014-09-02 22:09:44 +00:00
Kp 4a0d0b3800 Move '-o $TARGET' to end of command line 2014-09-02 22:09:07 +00:00
Kp 94550355a8 Use make_unique instead of bare new 2014-08-24 18:28:09 +00:00
Kp 8b51e0fda5 Test for nonconforming template instantiation depth 2014-08-20 01:08:12 +00:00
Kp ecd0ff1557 Check whether C++ linker works 2014-08-12 02:31:31 +00:00
Kp c4eabfd388 Use wider alignment for sconf options
SConf option names are long and look bad with the regular alignment.
2014-08-05 02:43:29 +00:00
Kp 5b01c33d94 Allow scons prefix list to have empty inner element
All targets have the unqualified entry in their search list.  Allow an
explicitly specified unqualified entry to suppress the implicit entry.
For example:

	scons dxx=e,,f

Previously, this was equal to scons dxx=e,f and would set CXXFLAGS to
the concatenation of:

	e_CXXFLAGS
	f_CXXFLAGS
	CXXFLAGS

Now, it remains dxx=e,,f and will concatenate:

	e_CXXFLAGS
	CXXFLAGS
	f_CXXFLAGS
2014-08-05 02:41:42 +00:00
Kp 1adaad4147 Remove broken assembler support
Assembler failed to build in 0.58.1.  Assembler failed to run correctly
after 59344482 / fc92651eb changed y_pointers from int[] to int*.
2014-08-04 03:09:33 +00:00
Kp d9f6e944c9 Use template aliases when available 2014-08-03 03:08:15 +00:00
Kp 2ec453f636 Fix tests with -Wunused-parameter 2014-08-01 03:34:08 +00:00
Kp af6e4c2218 Optimistically reorder tests
Run tests last-to-first to detect success immediately.  Run the lesser
tests next, so that build logs show what the compiler can do.
2014-08-01 03:34:08 +00:00
Kp 17dd525029 Improve __builtin_constant_p test
Discourage compiler from inlining due to -finline-functions-called-once.
Otherwise, -O2 -fno-inline will inline the sconf test, but not inline
real usage.
2014-08-01 03:34:08 +00:00
Kp ecc49d0a11 Prefer compound statements to lambdas
Compound statements produce better error messages.
2014-08-01 03:34:08 +00:00
Kp b37c295c59 Pick default extra_version from git tag 2014-07-26 22:53:41 +00:00
Kp 99555d0e73 Extend sconf force support
Allow forcing a test to succeed without changing flags.
2014-07-19 22:25:27 +00:00
Kp b4a778ed9d Use DXX_ALWAYS_ERROR_FUNCTION for printf check
Enable printf check without relying on embedded compound statements.
2014-07-19 21:15:01 +00:00
Kp 602da5a93c Enable DXX_ALWAYS_ERROR_FUNCTION wherever lambdas are allowed 2014-07-19 18:01:15 +00:00
Kp 66890d16a7 Centralize quoting macro values 2014-07-19 18:01:15 +00:00
Kp 9cf70f29f6 Fix forcing features off 2014-06-30 03:31:54 +00:00
Kp 90300d54d9 Precompute fix_recip table 2014-06-23 04:46:07 +00:00
Kp ef20958fcc Refactor C++ standard test 2014-06-23 04:46:07 +00:00
Kp fb89da37d1 Remove _may_repeat on check_cxx_works
self.__automatic_compiler_tests prevents repetition.
2014-06-22 21:05:25 +00:00
Kp e6a691c5c7 Check that types passed to PHYSFS_write are POD
More is needed to trap some misuses, but those traps flag existing code.
2014-06-22 03:54:35 +00:00
Kp 5eb3c6267a Remove C-only warnings 2014-06-08 00:05:33 +00:00
Kp b5701bf202 Add __attribute__((warn_unused_result)) to partial_range 2014-06-08 00:05:33 +00:00
Kp 9b0fb5da0a Write eclip structures carefully 2014-02-01 18:55:18 +00:00
Kp 917ef39258 Use array<> for Vclip 2014-01-23 03:48:25 +00:00
Kp 5cc3885478 Remove executable= in subprocess spawn; Windows handles it poorly 2014-01-07 04:12:39 +00:00
Kp b3af37e976 Exclude library settings from DXXArchive environment
Archives link nothing, so this simplifies reaching the bug fixed in the
previous commit.
2014-01-04 18:04:04 +00:00
Kp 3fadf28751 Avoid KeyError when preserving an environment key that does not exist 2014-01-04 18:04:04 +00:00
Kp 8218af34b5 Add special type to let obj_*link take either pointer or index 2014-01-03 04:04:04 +00:00
Kp 1e8036bd24 Split compiler.h for PCH compatibility 2013-12-21 05:12:38 +00:00
Kp fbf1f8a658 Annotate mem_malloc/calloc/realloc as __attribute__((alloc_size)) 2013-12-20 03:33:32 +00:00
Kp 737fe73dd7 Annotate mem_malloc/mem_calloc as __attribute__((malloc)) 2013-12-20 03:24:39 +00:00
Kp c561c3d514 Move multi_send_data_direct type into template parameter
Optimizing compilers may now delete the size check.
2013-12-20 03:08:19 +00:00
Kp 2f18c5037d Store group lists as countarray objects 2013-12-18 03:48:52 +00:00
Kp e8de74b8bf Reject inappropriate printf usage 2013-12-17 04:03:35 +00:00
Kp 9a189bcfd1 Unify SDL_mixer setup 2013-12-17 04:01:22 +00:00
Kp 08767eb1c5 Probe for libphysfs during configure stage 2013-12-17 04:01:22 +00:00
Kp 15e03d7e9a Factor out configure functionality 2013-12-17 04:01:22 +00:00
Kp b30639b0c4 Add special case to save CPPDEFINES to configure header
Avoid cluttering the command line by moving CPPDEFINES to the configure
header.
2013-12-15 21:53:20 +00:00
Kp adee72c624 Move -pthread to be Linux only 2013-12-15 18:59:01 +00:00
Kp f05b6f0008 Use on-stack bit array for tracking AI segment visits 2013-12-15 18:50:39 +00:00
Kp f351cc024d Add convenience alias 'dxx' to SConstruct 2013-12-15 18:46:42 +00:00
Kp 8a5644fc07 Only pass -Werror=redundant-decls if it works well 2013-12-13 03:59:49 +00:00
Kp 3f92639efc Remove unnecessary PCH variable 2013-12-13 03:44:02 +00:00
Kp 8bd9f9bccd Make vers_id.o depend on PCH if present 2013-12-13 03:44:02 +00:00
Kp ac6fe9aca6 Test for compiler support for pre-compiled headers
Fix interaction of pre-compiled headers with configure-modified flags.
2013-12-13 03:44:02 +00:00
Kp 07877853ba Use static_assert where available 2013-12-13 03:44:02 +00:00
Kp e784dd4357 Remove C compiler handling from SConstruct 2013-12-13 03:44:02 +00:00
Kp 322c61ef01 Remove use of heap-based splitword 2013-12-08 21:43:53 +00:00
Kp 706b458699 Mark PHYSFSX_find* functions nonnull 2013-12-07 18:40:32 +00:00
Kp 7f5410cc8b Use lengthof instead of sizeof(A)/sizeof(A[0])
The latter form can accept pointers, but the template lengthof cannot.
2013-12-07 18:38:10 +00:00
Kp babbe8e9e6 Move */arch/carbon -> common/arch/carbon 2013-12-06 03:58:10 +00:00
Kp 18bf9b94ea Move */arch/cocoa -> common/arch/cocoa 2013-12-06 03:57:18 +00:00
Kp 6e8684da0f Remove duplicate FRAMEWORKS setup 2013-12-06 03:56:56 +00:00
Kp d7ab757393 Remove Darwin physfs hacks
When physfs is in the library search path, the regular usage of adding
physfs to LIBS is sufficient.
2013-12-06 03:55:58 +00:00
Kp a14acee361 Clean up install handling 2013-12-06 03:54:52 +00:00
Kp 320d22aae1 Move similar/main/collide.c -> similar/main/collide.cpp 2013-12-06 03:27:30 +00:00
Kp fcf216474b Move */main/collide.c -> similar/main/collide.c 2013-12-06 03:27:30 +00:00
Kp 517a8c1e37 Move similar/main/fireball.c -> similar/main/fireball.cpp 2013-12-06 03:27:30 +00:00
Kp bd4029c922 Clean platform handling 2013-12-06 00:24:07 +00:00
Kp c6d68ca288 Check for game-specific prefix before general ones 2013-12-06 00:24:07 +00:00
Kp dc6ba09b62 Suppress duplicate registration of the same configuration prefix 2013-12-06 00:24:07 +00:00
Kp 0619afcc52 Remove repetitive short name in program setup 2013-12-06 00:24:07 +00:00
Kp 18aea17f9e Move */main/fireball.c -> similar/main/fireball.c 2013-12-02 00:21:31 +00:00
Kp ff9c15b51f Move d2x-rebirth/libmve/mveplay.c -> d2x-rebirth/libmve/mveplay.cpp 2013-12-02 00:11:33 +00:00
Kp 22f3f78ac5 Move d2x-rebirth/libmve/mvelib.c -> d2x-rebirth/libmve/mvelib.cpp 2013-12-01 23:57:00 +00:00
Kp 59e4a8f1ba Move d2x-rebirth/libmve/mve_audio.c -> d2x-rebirth/libmve/mve_audio.cpp 2013-12-01 23:57:00 +00:00
Kp 20a9c83182 Move d2x-rebirth/libmve/decoder8.c -> d2x-rebirth/libmve/decoder8.cpp 2013-12-01 23:57:00 +00:00
Kp f65d7e8d5c Move d2x-rebirth/libmve/decoder16.c -> d2x-rebirth/libmve/decoder16.cpp 2013-12-01 23:57:00 +00:00
Kp 8b50798bf7 Move d2x-rebirth/misc/physfsrwops.c -> d2x-rebirth/misc/physfsrwops.cpp 2013-12-01 23:56:17 +00:00
Kp 5fae3a5e28 Move similar/main/gamemine.c -> similar/main/gamemine.cpp 2013-12-01 23:55:50 +00:00
Kp 2ac98f7269 Move */main/gamemine.c -> similar/main/gamemine.c 2013-12-01 23:55:29 +00:00
Kp 6fda1ab889 Move similar/main/iff.c -> similar/main/iff.cpp 2013-12-01 23:32:56 +00:00
Kp f99c2b739a Move */iff/iff.c -> similar/main/iff.c 2013-12-01 23:24:51 +00:00
Kp 1b59de804b Move d2x-rebirth/main/bmread.c -> d2x-rebirth/main/bmread.cpp 2013-12-01 23:24:33 +00:00
Kp de366b12ee Move d1x-rebirth/main/bmread.c -> d1x-rebirth/main/bmread.cpp 2013-12-01 23:24:33 +00:00
Kp 9db2badadb Move similar/main/bm.c -> similar/main/bm.cpp 2013-12-01 22:52:54 +00:00
Kp c258115b30 Move */main/bm.c -> similar/main/bm.c 2013-12-01 22:51:44 +00:00
Kp e9f6a6ba13 Support stacking *FLAGS via site-local.py 2013-12-01 22:49:37 +00:00
Kp 25c731cc2c Probe for usable array template 2013-12-01 22:42:47 +00:00
Kp abd503dd0d Record build environment in generated file 2013-12-01 00:56:24 +00:00
Kp 9fd6cfd59d Move __STDC_FORMAT_MACROS to SConstruct for PCH compatibility
__STDC_FORMAT_MACROS is needed to enable PRIi64.  __STDC_FORMAT_MACROS
must be set before including any headers, so when PCH is used, it must
be set on the command line.
2013-12-01 00:54:23 +00:00
Kp c8225369c7 Fix flag restore in configure tests 2013-11-24 22:53:30 +00:00
Kp 6296dbc749 Do not document tests with leading underscore 2013-11-24 22:53:30 +00:00
Kp ba1bbce571 Move similar/main/fuelcen.c -> similar/main/fuelcen.cpp 2013-11-24 22:51:56 +00:00
Kp 8f23539485 Propagate probed flags into all environments 2013-11-24 22:51:01 +00:00
Kp 2d920e5f7b Move similar/main/gameseq.c -> similar/main/gameseq.cpp 2013-11-24 22:49:52 +00:00
Kp aa05263b29 Move */main/gameseq.c -> similar/main/gameseq.c 2013-11-24 22:47:19 +00:00
Kp 53149e6bcd Move similar/main/ai.c -> similar/main/ai.cpp 2013-11-23 22:47:45 +00:00
Kp 47a4bb1ff1 Move */main/ai.c -> similar/main/ai.c 2013-11-23 22:47:45 +00:00
Kp 5ff051cf4e Move */main/fuelcen.c -> similar/main/fuelcen.c 2013-11-10 22:56:12 +00:00
Kp bcd6ea5eed Move similar/main/piggy.c -> similar/main/piggy.cpp 2013-11-10 19:08:12 +00:00
Kp 4ef3937d35 Move */main/piggy.c -> similar/main/piggy.c 2013-11-10 19:08:12 +00:00
Kp 313c36d8ee Move d1x-rebirth/main/snddecom.c -> d1x-rebirth/main/snddecom.cpp 2013-11-09 18:07:28 +00:00
Kp f720f937f5 Move d1x-rebirth/main/hostage.c -> d1x-rebirth/main/hostage.cpp 2013-11-09 18:07:28 +00:00
Kp ee0f60ddb7 Move d1x-rebirth/main/custom.c -> d1x-rebirth/main/custom.cpp 2013-11-09 18:07:28 +00:00
Kp e04dc4e29e Move d2x-rebirth/main/escort.c -> d2x-rebirth/main/escort.cpp 2013-11-09 18:07:28 +00:00